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::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - std::string
    - Botan::URI::from_any
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void fuzz(std::span<const uint8_t> input)
  - 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:
    - std::span<const uint8_t>::empty
    - Botan::basecase_sqr
    - Botan::bigint_comba_sqr9
    - Botan::bigint_comba_sqr16
    - std::span<const uint8_t>::data
    - Botan::bigint_comba_mul9
    - std::span<const uint8_t>::size
    - Botan::bigint_comba_sqr4
    - Botan::bigint_comba_mul6
    - Botan::bigint_comba_mul16
    - Botan::bigint_comba_sqr24
    - Botan::bigint_comba_sqr6
    - Botan::bigint_comba_mul24
    - Botan::bigint_comba_sqr8
    - Botan::bigint_comba_mul8
    - Botan::bigint_comba_mul4
    - std::memcpy
    - compare_word_vec
    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:24,1
    - Dst: std::setfill
      Src: /src/botan/src/fuzzer/mp_fuzzers.h:24,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/fuzzer/mp_fuzzers.h:28,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: 29
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 29
    functionName: format_word_vec
    functionSourceFile: /src/botan/src/fuzzer/mp_fuzzers.h
    functionUses: 0
    functionsReached:
    - std::setw
    - std::ostringstream::str
    - 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:32,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: 33
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 33
    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:36,1
    - Dst: dump_word_vec
      Src: /src/botan/src/fuzzer/mp_fuzzers.h:40,1
    - Dst: dump_word_vec
      Src: /src/botan/src/fuzzer/mp_fuzzers.h:41,1
    - Dst: FUZZER_WRITE_AND_CRASH
      Src: /src/botan/src/fuzzer/mp_fuzzers.h:42,1
    - Dst: dump_word_vec
      Src: /src/botan/src/fuzzer/mp_fuzzers.h:49,1
    - Dst: dump_word_vec
      Src: /src/botan/src/fuzzer/mp_fuzzers.h:50,1
    - Dst: FUZZER_WRITE_AND_CRASH
      Src: /src/botan/src/fuzzer/mp_fuzzers.h:51,1
    - Dst: dump_word_vec
      Src: /src/botan/src/fuzzer/mp_fuzzers.h:56,1
    - Dst: dump_word_vec
      Src: /src/botan/src/fuzzer/mp_fuzzers.h:57,1
    - Dst: FUZZER_WRITE_AND_CRASH
      Src: /src/botan/src/fuzzer/mp_fuzzers.h:58,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: 61
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 61
    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:
    - std::vector::push_back
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - std::unique_ptr::get
    - x509_path_validate
    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::string_to_ipv4
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - auto::has_value
    - Botan::ipv4_to_string
    - Botan::load_be<uint32_t>
    - auto::value
    - FUZZER_ASSERT_TRUE
    - reinterpret_cast<const char*>
    - FUZZER_ASSERT_EQUAL
    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>::size
    - std::span<const uint8_t>::subspan
    - Botan::BigInt::word_at
    - FUZZER_ASSERT_TRUE
    - Botan::ct_divide_word
    - Botan::vartime_divide
    - FUZZER_ASSERT_EQUAL
    - Botan::BigInt::from_bytes
    - Botan::BigInt::BigInt
    - Botan::ct_divide
    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:
    - Botan::BigInt::is_nonzero
    - Botan::low_zero_bits
    - Botan::BigInt::is_odd
    - is_even
    - Botan::BigInt::is_negative
    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:
    - Botan::BigInt::is_nonzero
    - Botan::low_zero_bits
    - Botan::BigInt::is_odd
    - is_even
    - Botan::BigInt::is_negative
    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:
    - ref_inverse_mod
    - Botan::BigInt::to_hex_string
    - gcd
    - Botan::inverse_mod
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::subspan
    - FUZZER_WRITE_AND_CRASH
    - 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: 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:
    - Botan::BigInt::to_hex_string
    - std::span<const uint8_t>::size
    - random_prime
    - Botan::Barrett_Reduction::for_public_modulus
    - fuzzer_rng
    - auto::reduce
    - FUZZER_WRITE_AND_CRASH
    - auto::square
    - Botan::BigInt::from_bytes
    - Botan::sqrt_modulo_prime
    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:20,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - plen
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 25
    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: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    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:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    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: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    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: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    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:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - RawPage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    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:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - RawPage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 46
    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: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    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:56,1
    - Dst: ::posix_memalign
      Src: /src/botan/src/fuzzer/mem_pool.cpp:61,1
    - Dst: FUZZER_ASSERT_EQUAL
      Src: /src/botan/src/fuzzer/mem_pool.cpp:62,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/fuzzer/mem_pool.cpp:65,1
    - Dst: RawPage
      Src: /src/botan/src/fuzzer/mem_pool.cpp:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - count
    - page_size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 70
    functionName: allocate_raw_pages
    functionSourceFile: /src/botan/src/fuzzer/mem_pool.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - FUZZER_ASSERT_EQUAL
    - RawPage
    - ::posix_memalign
    - std::vector::reserve
    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:20,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - plen
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 25
    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: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    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:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    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: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    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: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    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:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - RawPage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    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:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - RawPage
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 46
    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: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    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:56,1
    - Dst: ::posix_memalign
      Src: /src/botan/src/fuzzer/mem_pool.cpp:61,1
    - Dst: FUZZER_ASSERT_EQUAL
      Src: /src/botan/src/fuzzer/mem_pool.cpp:62,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/fuzzer/mem_pool.cpp:65,1
    - Dst: RawPage
      Src: /src/botan/src/fuzzer/mem_pool.cpp:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - count
    - page_size
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 70
    functionName: allocate_raw_pages
    functionSourceFile: /src/botan/src/fuzzer/mem_pool.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - FUZZER_ASSERT_EQUAL
    - RawPage
    - ::posix_memalign
    - std::vector::reserve
    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:79,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/fuzzer/mem_pool.cpp:82,1
    - Dst: std::vector::size
      Src: /src/botan/src/fuzzer/mem_pool.cpp:82,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/fuzzer/mem_pool.cpp:84,1
    - Dst: ptr
      Src: /src/botan/src/fuzzer/mem_pool.cpp:84,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/mem_pool.cpp:90,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/fuzzer/mem_pool.cpp:91,1
    - Dst: static_cast<uint8_t*>
      Src: /src/botan/src/fuzzer/mem_pool.cpp:106,1
    - Dst: Botan::Memory_Pool::allocate
      Src: /src/botan/src/fuzzer/mem_pool.cpp:106,1
    - Dst: compute_expected_alignment
      Src: /src/botan/src/fuzzer/mem_pool.cpp:109,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/botan/src/fuzzer/mem_pool.cpp:110,1
    - Dst: FUZZER_WRITE_AND_CRASH
      Src: /src/botan/src/fuzzer/mem_pool.cpp:112,1
    - Dst: static_cast<void*>
      Src: /src/botan/src/fuzzer/mem_pool.cpp:113,1
    - Dst: FUZZER_WRITE_AND_CRASH
      Src: /src/botan/src/fuzzer/mem_pool.cpp:121,1
    - Dst: std::memset
      Src: /src/botan/src/fuzzer/mem_pool.cpp:126,1
    - Dst: static_cast<int>
      Src: /src/botan/src/fuzzer/mem_pool.cpp:126,1
    - Dst: std::map::insert
      Src: /src/botan/src/fuzzer/mem_pool.cpp:128,1
    - Dst: std::make_pair
      Src: /src/botan/src/fuzzer/mem_pool.cpp:128,1
    - Dst: FUZZER_WRITE_AND_CRASH
      Src: /src/botan/src/fuzzer/mem_pool.cpp:130,1
    - Dst: static_cast<void*>
      Src: /src/botan/src/fuzzer/mem_pool.cpp:130,1
    - Dst: std::map::begin
      Src: /src/botan/src/fuzzer/mem_pool.cpp:136,1
    - Dst: std::prev
      Src: /src/botan/src/fuzzer/mem_pool.cpp:137,1
    - Dst: FUZZER_WRITE_AND_CRASH
      Src: /src/botan/src/fuzzer/mem_pool.cpp:141,1
    - Dst: static_cast<void*>
      Src: /src/botan/src/fuzzer/mem_pool.cpp:141,1
    - Dst: static_cast<void*>
      Src: /src/botan/src/fuzzer/mem_pool.cpp:142,1
    - Dst: next
      Src: /src/botan/src/fuzzer/mem_pool.cpp:146,1
    - Dst: std::map::end
      Src: /src/botan/src/fuzzer/mem_pool.cpp:148,1
    - Dst: FUZZER_WRITE_AND_CRASH
      Src: /src/botan/src/fuzzer/mem_pool.cpp:150,1
    - Dst: static_cast<void*>
      Src: /src/botan/src/fuzzer/mem_pool.cpp:150,1
    - Dst: static_cast<void*>
      Src: /src/botan/src/fuzzer/mem_pool.cpp:151,1
    - Dst: std::map::empty
      Src: /src/botan/src/fuzzer/mem_pool.cpp:156,1
    - Dst: std::map::size
      Src: /src/botan/src/fuzzer/mem_pool.cpp:160,1
    - Dst: std::map::begin
      Src: /src/botan/src/fuzzer/mem_pool.cpp:162,1
    - Dst: FUZZER_ASSERT_TRUE
      Src: /src/botan/src/fuzzer/mem_pool.cpp:169,1
    - Dst: Botan::Memory_Pool::deallocate
      Src: /src/botan/src/fuzzer/mem_pool.cpp:169,1
    - Dst: std::map::erase
      Src: /src/botan/src/fuzzer/mem_pool.cpp:170,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 49
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 173
    functionName: fuzz
    functionSourceFile: /src/botan/src/fuzzer/mem_pool.cpp
    functionUses: 0
    functionsReached:
    - compute_expected_alignment
    - std::memset
    - Botan::Memory_Pool::allocate
    - std::map::end
    - static_cast<int>
    - FUZZER_WRITE_AND_CRASH
    - reinterpret_cast<uintptr_t>
    - std::map::erase
    - static_cast<void*>
    - std::vector::reserve
    - std::map::size
    - static_cast<uint8_t*>
    - std::map::begin
    - FUZZER_ASSERT_TRUE
    - std::prev
    - std::vector::push_back
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - next
    - std::vector::size
    - Botan::Memory_Pool::deallocate
    - std::make_pair
    - std::map::insert
    - std::map::empty
    - allocate_raw_pages
    - ptr
    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:
    - abort
    - what
    - std::span<const uint8_t>
    - fuzz
    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: 3
    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::gcount
    - std::ifstream::good
    - std::ifstream::read
    - LLVMFuzzerTestOneInput
    - std::vector::data
    - std::vector::resize
    - static_cast<std::streamsize>
    - std::vector::shrink_to_fit
    - std::vector::size
    - reinterpret_cast<char*>
    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:
    - gcount
    - std::vector::shrink_to_fit
    - LLVMFuzzerInitialize
    - fuzz_files
    - std::vector::data
    - LLVMFuzzerTestOneInput
    - std::vector::resize
    - static_cast<std::streamsize>
    - read
    - __AFL_LOOP
    - std::vector::size
    - reinterpret_cast<char*>
    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
    - LLVMFuzzerInitialize
    - klee_make_symbolic
    - LLVMFuzzerTestOneInput
    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:
    - std::span<const uint8_t>::empty
    - Botan::basecase_mul
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - Botan::bigint_comba_mul6
    - Botan::bigint_comba_mul9
    - Botan::bigint_comba_mul16
    - Botan::bigint_comba_mul24
    - Botan::bigint_comba_mul8
    - Botan::bigint_comba_mul4
    - std::memcpy
    - compare_word_vec
    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
    - ASN1_Parser::print_to_stream
    - std::span<const uint8_t>::data
    - 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: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 15
    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&, const std::string&)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 17
    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&, const std::string&, const
      std::string&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/fuzzer/tls_client.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: 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: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: 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:32,1
    - Dst: std::find
      Src: /src/botan/src/fuzzer/tls_client.cpp:32,1
    - Dst: begin
      Src: /src/botan/src/fuzzer/tls_client.cpp:32,1
    - Dst: end
      Src: /src/botan/src/fuzzer/tls_client.cpp:32,1
    - Dst: end
      Src: /src/botan/src/fuzzer/tls_client.cpp:32,1
    - Dst: Botan::Credentials_Manager::find_preshared_keys
      Src: /src/botan/src/fuzzer/tls_client.cpp:33,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/fuzzer/tls_client.cpp:37,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/fuzzer/tls_client.cpp:37,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: 39
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 39
    functionName: Fuzzer_TLS_Client_Creds::find_preshared_keys
    functionSourceFile: /src/botan/src/fuzzer/tls_client.cpp
    functionUses: 0
    functionsReached:
    - begin
    - Botan::hex_decode_locked
    - std::vector::emplace_back
    - Botan::Credentials_Manager::find_preshared_keys
    - empty
    - end
    - std::find
    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:47,1
    - Dst: valid
      Src: /src/botan/src/fuzzer/tls_client.cpp:48,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/fuzzer/tls_client.cpp:49,1
    - Dst: ciphersuite_code
      Src: /src/botan/src/fuzzer/tls_client.cpp:49,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 54
    functionName: Fuzzer_TLS_Policy::ciphersuite_list
    functionSourceFile: /src/botan/src/fuzzer/tls_client.cpp
    functionUses: 0
    functionsReached:
    - valid
    - ciphersuite_code
    - std::vector::push_back
    - Botan::TLS::Ciphersuite::all_known_ciphersuites
    linkageType: ''
    returnType: std::vector<uint16_t>
    signature: std::vector<uint16_t> ciphersuite_list(Botan::TLS::Protocol_Version)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    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>) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    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, std::span<const uint8_t>) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    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) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Fuzzer_TLS_Client_Callbacks::tls_verify_cert_chain
      Src: /src/botan/src/fuzzer/tls_client.cpp:79,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: 84
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 84
    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:88,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_Noop>
      Src: /src/botan/src/fuzzer/tls_client.cpp:92,1
    - Dst: std::make_shared<Fuzzer_TLS_Policy>
      Src: /src/botan/src/fuzzer/tls_client.cpp:93,1
    - Dst: std::make_shared<Fuzzer_TLS_Client_Callbacks>
      Src: /src/botan/src/fuzzer/tls_client.cpp:96,1
    - Dst: std::make_shared<Fuzzer_TLS_Client_Creds>
      Src: /src/botan/src/fuzzer/tls_client.cpp:97,1
    - Dst: Botan::TLS::Client::received_data
      Src: /src/botan/src/fuzzer/tls_client.cpp:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 104
    functionName: fuzz
    functionSourceFile: /src/botan/src/fuzzer/tls_client.cpp
    functionUses: 1
    functionsReached:
    - std::span<const uint8_t>::empty
    - Botan::TLS::Client::received_data
    - std::make_shared<Fuzzer_TLS_Client_Creds>
    - std::make_shared<Botan::TLS::Session_Manager_Noop>
    - std::make_shared<Fuzzer_TLS_Policy>
    - std::make_shared<Fuzzer_TLS_Client_Callbacks>
    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>::data
    - 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/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:
    - FUZZER_ASSERT_EQUAL
    - Botan::BigInt::from_bytes
    - square
    - std::span<const uint8_t>::size
    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: 5
    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: 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:
    - ref_oaep_unpad
    - auto::has_value
    - Botan::oaep_find_delim
    - auto::value
    - FUZZER_WRITE_AND_CRASH
    - 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_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:
    - Botan::ANSI_X923_Padding::valid_blocksize
    - ref_x923_unpad
    - Botan::TLS::check_tls_cbc_padding
    - Botan::OneAndZeros_Padding::valid_blocksize
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - Botan::PKCS7_Padding::unpad
    - FUZZER_ASSERT_EQUAL
    - Botan::OneAndZeros_Padding::unpad
    - ref_tls_cbc_unpad
    - Botan::ESP_Padding::valid_blocksize
    - Botan::ESP_Padding::unpad
    - Botan::ANSI_X923_Padding::unpad
    - ref_pkcs7_unpad
    - Botan::PKCS7_Padding::valid_blocksize
    - ref_oneandzero_unpad
    - ref_esp_unpad
    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:
    - std::vector<uint8_t>
    - Botan::Decoding_Error
    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:
    - std::vector<uint8_t>
    - Botan::Decoding_Error
    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:
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - Botan::hex_encode
    - auto::has_value
    - simple_pkcs1_unpad
    - FUZZER_WRITE_AND_CRASH
    - std::vector::resize
    - auto::value_or
    - unpad
    - static_cast<Botan::EncryptionPaddingScheme*>
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Handshake_Layer::copy_data
      Src: /src/botan/src/fuzzer/tls_13_handshake_layer.cpp:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 20
    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:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 20
    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:28,1
    - Dst: auto::next_message
      Src: /src/botan/src/fuzzer/tls_13_handshake_layer.cpp:30,1
    - Dst: prepare
      Src: /src/botan/src/fuzzer/tls_13_handshake_layer.cpp:32,1
    - Dst: auto::next_post_handshake_message
      Src: /src/botan/src/fuzzer/tls_13_handshake_layer.cpp:33,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 35
    functionName: fuzz
    functionSourceFile: /src/botan/src/fuzzer/tls_13_handshake_layer.cpp
    functionUses: 1
    functionsReached:
    - auto::next_message
    - prepare
    - auto::next_post_handshake_message
    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:
    - Botan::BigInt::is_zero
    - Botan::BigInt::to_hex_string
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::subspan
    - FUZZER_WRITE_AND_CRASH
    - Botan::Barrett_Reduction::for_public_modulus
    - auto::reduce
    - ct_modulo
    - 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:
    - Botan::BigInt::is_zero
    - std::span<const uint8_t>::size
    - Botan::BigInt::is_nonzero
    - std::span<const uint8_t>::subspan
    - Botan::BigInt::cmp
    - Botan::BigInt::is_positive
    - FUZZER_ASSERT_TRUE
    - Botan::BigInt::from_bytes
    - Botan::BigInt::is_negative
    - Botan::BigInt::flip_sign
    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:
    - auto::data
    - auto::sig_words
    - Botan::load_be<word>
    - std::span<const uint8_t>::size
    - crandall_C
    - Botan::redc_crandall<word, 4, C>
    - std::span<const uint8_t>::subspan
    - auto::_data
    - Botan_Tests::BitOps_Tests::test_power_of_2
    - Botan::BigInt::from_bytes
    - compare_word_vec
    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>::end
    - std::span<const uint8_t>::begin
    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::swap
    - Botan::BigInt::BigInt
    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::swap
    - Botan::BigInt::BigInt
    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: Botan::BigInt::from_bytes
      Src: /src/botan/src/fuzzer/gcd.cpp:32,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/fuzzer/gcd.cpp:32,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: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/gcd.cpp:33,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/gcd.cpp:33,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/gcd.cpp:33,1
    - Dst: ref_gcd
      Src: /src/botan/src/fuzzer/gcd.cpp:35,1
    - Dst: Botan::gcd
      Src: /src/botan/src/fuzzer/gcd.cpp:36,1
    - Dst: FUZZER_WRITE_AND_CRASH
      Src: /src/botan/src/fuzzer/gcd.cpp:39,1
    - Dst: Botan::BigInt::to_hex_string
      Src: /src/botan/src/fuzzer/gcd.cpp:39,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
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 44
    functionName: fuzz
    functionSourceFile: /src/botan/src/fuzzer/gcd.cpp
    functionUses: 1
    functionsReached:
    - ref_gcd
    - Botan::BigInt::to_hex_string
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::subspan
    - FUZZER_WRITE_AND_CRASH
    - Botan::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_generic
    - Botan::bigint_monty_redc_6
    - Botan::bigint_monty_redc_4
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - Botan::bigint_monty_redc_16
    - dump_word_vec
    - Botan::bigint_monty_redc_8
    - std::abort
    - FUZZER_ASSERT_EQUAL
    - Botan::bigint_monty_redc_24
    - Botan::bigint_monty_redc_32
    - std::memcpy
    - compare_word_vec
    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_generic
    - Botan::bigint_monty_redc_6
    - Botan::bigint_monty_redc_4
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - Botan::bigint_monty_redc_16
    - dump_word_vec
    - Botan::bigint_monty_redc_8
    - std::abort
    - FUZZER_ASSERT_EQUAL
    - Botan::bigint_monty_redc_24
    - Botan::bigint_monty_redc_32
    - std::memcpy
    - compare_word_vec
    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
    - fuzz_mp_redc
    - std::span<const uint8_t>::size
    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:
    - check_os2ecp
    - Botan::EC_Group::from_name
    - 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:
    - sqrt_modulo_prime
    - Botan::BigInt::get_bit
    - Botan::Exception
    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: 3
    functionsReached:
    - auto::is_zero
    - Botan::EC_Scalar::from_bytes_mod_order
    - Botan::EC_AffinePoint::g_mul
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::subspan
    - fuzzer_rng
    - Botan::EC_AffinePoint::generator
    - auto::mul
    - FUZZER_ASSERT_EQUAL
    - auto::add
    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:45,1
    - Dst: reset
      Src: /src/botan/src/fuzzer/tls_server.cpp:48,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/fuzzer/tls_server.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 49
    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>
    - Botan::PKCS8::load_key
    - reset
    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:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' algos'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 66
    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: 75
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 75
    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:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 79
    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:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 83
    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: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    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&, const std::string&)
      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: 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&, const std::string&, const
      std::string&) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/fuzzer/tls_server.cpp:94,1
    - Dst: std::find
      Src: /src/botan/src/fuzzer/tls_server.cpp:94,1
    - Dst: begin
      Src: /src/botan/src/fuzzer/tls_server.cpp:94,1
    - Dst: end
      Src: /src/botan/src/fuzzer/tls_server.cpp:94,1
    - Dst: end
      Src: /src/botan/src/fuzzer/tls_server.cpp:94,1
    - Dst: Botan::Credentials_Manager::find_preshared_keys
      Src: /src/botan/src/fuzzer/tls_server.cpp:95,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/fuzzer/tls_server.cpp:99,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/fuzzer/tls_server.cpp:99,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: 101
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 101
    functionName: Fuzzer_TLS_Server_Creds::find_preshared_keys
    functionSourceFile: /src/botan/src/fuzzer/tls_server.cpp
    functionUses: 0
    functionsReached:
    - begin
    - Botan::hex_decode_locked
    - std::vector::emplace_back
    - Botan::Credentials_Manager::find_preshared_keys
    - empty
    - end
    - std::find
    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:113,1
    - Dst: valid
      Src: /src/botan/src/fuzzer/tls_server.cpp:114,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/fuzzer/tls_server.cpp:115,1
    - Dst: ciphersuite_code
      Src: /src/botan/src/fuzzer/tls_server.cpp:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 120
    functionName: Fuzzer_TLS_Policy::ciphersuite_list
    functionSourceFile: /src/botan/src/fuzzer/tls_server.cpp
    functionUses: 0
    functionsReached:
    - valid
    - ciphersuite_code
    - std::vector::push_back
    - Botan::TLS::Ciphersuite::all_known_ciphersuites
    linkageType: ''
    returnType: std::vector<uint16_t>
    signature: std::vector<uint16_t> ciphersuite_list(Botan::TLS::Protocol_Version)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    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>) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 131
    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, std::span<const uint8_t>) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 135
    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) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/fuzzer/tls_server.cpp:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' client_protos'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 143
    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:153,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: 158
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 158
    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:45,1
    - Dst: reset
      Src: /src/botan/src/fuzzer/tls_server.cpp:48,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/fuzzer/tls_server.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 49
    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>
    - Botan::PKCS8::load_key
    - reset
    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:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' algos'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 66
    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: 75
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 75
    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:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 79
    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:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 83
    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: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    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&, const std::string&)
      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: 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&, const std::string&, const
      std::string&) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/fuzzer/tls_server.cpp:94,1
    - Dst: std::find
      Src: /src/botan/src/fuzzer/tls_server.cpp:94,1
    - Dst: begin
      Src: /src/botan/src/fuzzer/tls_server.cpp:94,1
    - Dst: end
      Src: /src/botan/src/fuzzer/tls_server.cpp:94,1
    - Dst: end
      Src: /src/botan/src/fuzzer/tls_server.cpp:94,1
    - Dst: Botan::Credentials_Manager::find_preshared_keys
      Src: /src/botan/src/fuzzer/tls_server.cpp:95,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/fuzzer/tls_server.cpp:99,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/fuzzer/tls_server.cpp:99,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: 101
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 101
    functionName: Fuzzer_TLS_Server_Creds::find_preshared_keys
    functionSourceFile: /src/botan/src/fuzzer/tls_server.cpp
    functionUses: 0
    functionsReached:
    - begin
    - Botan::hex_decode_locked
    - std::vector::emplace_back
    - Botan::Credentials_Manager::find_preshared_keys
    - empty
    - end
    - std::find
    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:113,1
    - Dst: valid
      Src: /src/botan/src/fuzzer/tls_server.cpp:114,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/fuzzer/tls_server.cpp:115,1
    - Dst: ciphersuite_code
      Src: /src/botan/src/fuzzer/tls_server.cpp:115,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 120
    functionName: Fuzzer_TLS_Policy::ciphersuite_list
    functionSourceFile: /src/botan/src/fuzzer/tls_server.cpp
    functionUses: 0
    functionsReached:
    - valid
    - ciphersuite_code
    - std::vector::push_back
    - Botan::TLS::Ciphersuite::all_known_ciphersuites
    linkageType: ''
    returnType: std::vector<uint16_t>
    signature: std::vector<uint16_t> ciphersuite_list(Botan::TLS::Protocol_Version)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 127
    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>) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 131
    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, std::span<const uint8_t>) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 135
    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) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/fuzzer/tls_server.cpp:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' client_protos'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 143
    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:153,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: 158
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 158
    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:164,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_Noop>
      Src: /src/botan/src/fuzzer/tls_server.cpp:168,1
    - Dst: std::make_shared<Fuzzer_TLS_Policy>
      Src: /src/botan/src/fuzzer/tls_server.cpp:169,1
    - Dst: std::make_shared<Fuzzer_TLS_Server_Creds>
      Src: /src/botan/src/fuzzer/tls_server.cpp:171,1
    - Dst: std::make_shared<Fuzzer_TLS_Server_Callbacks>
      Src: /src/botan/src/fuzzer/tls_server.cpp:172,1
    - Dst: Botan::TLS::Server::received_data
      Src: /src/botan/src/fuzzer/tls_server.cpp:179,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/fuzzer/tls_server.cpp:179,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/fuzzer/tls_server.cpp:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 181
    functionName: fuzz
    functionSourceFile: /src/botan/src/fuzzer/tls_server.cpp
    functionUses: 1
    functionsReached:
    - std::span<const uint8_t>::size
    - std::make_shared<Fuzzer_TLS_Server_Creds>
    - std::span<const uint8_t>::subspan
    - std::make_shared<Fuzzer_TLS_Server_Callbacks>
    - std::make_shared<Botan::TLS::Session_Manager_Noop>
    - std::make_shared<Fuzzer_TLS_Policy>
    - Botan::TLS::Server::received_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_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:
    - Botan::Barrett_Reduction::for_public_modulus
    - auto::multiply
    - auto::square
    - Botan::BigInt::is_odd
    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:
    - Botan::Barrett_Reduction::for_public_modulus
    - auto::multiply
    - auto::square
    - Botan::BigInt::is_odd
    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:
    - Botan::BigInt::to_hex_string
    - std::span<const uint8_t>::size
    - simple_power_mod
    - std::span<const uint8_t>::subspan
    - FUZZER_WRITE_AND_CRASH
    - Botan::BigInt::from_bytes
    - Botan::power_mod
    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:46,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/test_tls.cpp:47,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/test_tls.cpp:49,1
    - Dst: Botan::TLS::Session::PEM_encode
      Src: /src/botan/src/tests/test_tls.cpp:51,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls.cpp:53,1
    - Dst: Botan::TLS::Session::DER_encode
      Src: /src/botan/src/tests/test_tls.cpp:53,1
    - Dst: Botan::TLS::Session::DER_encode
      Src: /src/botan/src/tests/test_tls.cpp:53,1
    - Dst: Botan::TLS::Session::DER_encode
      Src: /src/botan/src/tests/test_tls.cpp:55,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls.cpp:57,1
    - Dst: Botan::TLS::Session::DER_encode
      Src: /src/botan/src/tests/test_tls.cpp:57,1
    - Dst: Botan::TLS::Session::DER_encode
      Src: /src/botan/src/tests/test_tls.cpp:57,1
    - Dst: Botan::TLS::Session::encrypt
      Src: /src/botan/src/tests/test_tls.cpp:60,1
    - Dst: Botan_Tests::TLS_Session_Tests::rng
      Src: /src/botan/src/tests/test_tls.cpp:60,1
    - Dst: Botan::TLS::Session::encrypt
      Src: /src/botan/src/tests/test_tls.cpp:61,1
    - Dst: Botan_Tests::TLS_Session_Tests::rng
      Src: /src/botan/src/tests/test_tls.cpp:61,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_tls.cpp:63,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_tls.cpp:64,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls.cpp:64,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_tls.cpp:64,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls.cpp:64,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls.cpp:66,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls.cpp:68,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_tls.cpp:68,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_tls.cpp:68,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls.cpp:69,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_tls.cpp:69,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_tls.cpp:69,1
    - Dst: Botan::TLS::Session::decrypt
      Src: /src/botan/src/tests/test_tls.cpp:71,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_tls.cpp:71,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls.cpp:71,1
    - Dst: Botan::TLS::Session::encrypt
      Src: /src/botan/src/tests/test_tls.cpp:74,1
    - Dst: Botan::TLS::Session::encrypt
      Src: /src/botan/src/tests/test_tls.cpp:76,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls.cpp:78,1
    - Dst: std::vector<Botan::X509_Certificate>
      Src: /src/botan/src/tests/test_tls.cpp:86,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/test_tls.cpp:87,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/test_tls.cpp:89,1
    - Dst: Botan::TLS::Session::PEM_encode
      Src: /src/botan/src/tests/test_tls.cpp:90,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 97
    functionName: Botan_Tests::TLS_Session_Tests::run
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Session::DER_encode
    - Botan::hex_decode
    - Test::Result::test_throws
    - Test::Result::test_ne
    - Botan::TLS::Server_Information
    - std::vector<Botan::X509_Certificate>
    - Botan::TLS::Session::encrypt
    - Botan::TLS::Session::PEM_encode
    - std::vector::data
    - Botan::TLS::detail::AsyncBase::complete_now
    - Test::Result::test_eq
    - Botan_Tests::TLS_Session_Tests::rng
    - std::vector::size
    - Botan::TLS::Session::decrypt
    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: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    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:109,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_tls.cpp:110,1
    - Dst: Botan::TLS::check_tls_cbc_padding
      Src: /src/botan/src/tests/test_tls.cpp:112,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_tls.cpp:112,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls.cpp:112,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 117
    functionName: Botan_Tests::TLS_CBC_Padding_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::check_tls_cbc_padding
    - std::vector::data
    - get_req_sz
    - Test::Result::test_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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mac_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    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: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    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: 130
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 130
    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: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    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: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    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: 140
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 140
    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: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    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: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_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: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: 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: 153
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 153
    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: 160
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 160
    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:163,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: 164
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 164
    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:167,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: 168
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 168
    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: 170
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 170
    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: 172
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 172
    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: 174
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 174
    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: 176
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 176
    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:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 180
    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:183,1
    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_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: 187
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 187
    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: 192
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 192
    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:197,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_tls.cpp:198,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:199,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_tls.cpp:200,1
    - Dst: std::make_unique<Noop_Block_Cipher>
      Src: /src/botan/src/tests/test_tls.cpp:205,1
    - Dst: std::make_unique<ZeroMac>
      Src: /src/botan/src/tests/test_tls.cpp:206,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::set_key
      Src: /src/botan/src/tests/test_tls.cpp:212,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls.cpp:212,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::set_associated_data
      Src: /src/botan/src/tests/test_tls.cpp:214,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_tls.cpp:214,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls.cpp:214,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tls.cpp:216,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_tls.cpp:216,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::finish
      Src: /src/botan/src/tests/test_tls.cpp:219,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tls.cpp:221,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tls.cpp:223,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tls.cpp:227,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tls.cpp:229,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 234
    functionName: Botan_Tests::TLS_CBC_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - std::make_unique<ZeroMac>
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::set_key
    - Test::Result::test_failure
    - std::vector::data
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::set_associated_data
    - get_req_sz
    - std::make_unique<Noop_Block_Cipher>
    - std::vector::end
    - std::vector<uint8_t>
    - get_req_bin
    - std::vector::size
    - Test::Result::test_success
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::finish
    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: 243
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 243
    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:248,1
    - Dst: Botan_Tests::TLS_CBC_KAT_Tests::run_kat
      Src: /src/botan/src/tests/test_tls.cpp:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 252
    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:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 261
    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:268,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls.cpp:268,1
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/tests/test_tls.cpp:269,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls.cpp:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 271
    functionName: Botan_Tests::TLS_CBC_KAT_Tests::get_cipher_and_mac
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 1
    functionsReached:
    - Botan::BlockCipher::create_or_throw
    - Botan::MessageAuthenticationCode::create_or_throw
    - get_req_str
    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:286,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_tls.cpp:287,1
    - Dst: get_req_bool
      Src: /src/botan/src/tests/test_tls.cpp:288,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls.cpp:290,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls.cpp:296,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:300,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:301,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:302,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:303,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:304,1
    - Dst: Botan_Tests::TLS_CBC_KAT_Tests::get_cipher_and_mac
      Src: /src/botan/src/tests/test_tls.cpp:306,1
    - Dst: T
      Src: /src/botan/src/tests/test_tls.cpp:308,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls.cpp:308,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls.cpp:308,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_tls.cpp:310,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_tls.cpp:311,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls.cpp:313,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls.cpp:313,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls.cpp:314,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls.cpp:314,1
    - Dst: std::swap
      Src: /src/botan/src/tests/test_tls.cpp:317,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_tls.cpp:322,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_tls.cpp:323,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls.cpp:324,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls.cpp:324,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_tls.cpp:328,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls.cpp:330,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls.cpp:330,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_tls.cpp:330,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tls.cpp:331,1
    - Dst: auto::first
      Src: /src/botan/src/tests/test_tls.cpp:331,1
    - Dst: auto::subspan
      Src: /src/botan/src/tests/test_tls.cpp:332,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls.cpp:335,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls.cpp:335,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_tls.cpp:336,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls.cpp:337,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls.cpp:337,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 2
    argNames:
    - ' result'
    - ' vars'
    argTypes:
    - Test::Result
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 338
    functionName: Botan_Tests::TLS_CBC_KAT_Tests::run_kat
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 1
    functionsReached:
    - test_eq
    - auto::set_key
    - auto::end
    - std::swap
    - T
    - auto::size
    - Test_Error
    - auto::first
    - get_req_sz
    - get_req_bin
    - auto::process
    - auto::subspan
    - auto::begin
    - auto::finish
    - get_req_str
    - std::move
    - auto::minimum_final_size
    - std::string
    - Botan_Tests::TLS_CBC_KAT_Tests::get_cipher_and_mac
    - auto::set_associated_data
    - auto::start
    - get_req_bool
    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: 350
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 350
    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:358,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls.cpp:358,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tls.cpp:360,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption::set_key
      Src: /src/botan/src/tests/test_tls.cpp:363,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption::set_associated_data
      Src: /src/botan/src/tests/test_tls.cpp:364,1
    - Dst: begin
      Src: /src/botan/src/tests/test_tls.cpp:366,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls.cpp:366,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption::finish
      Src: /src/botan/src/tests/test_tls.cpp:367,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls.cpp:369,1
    - Dst: Botan::unlock
      Src: /src/botan/src/tests/test_tls.cpp:369,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: 370
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 370
    functionName: Botan_Tests::TLS_Null_Tests::encryption_test
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan::unlock
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption::set_associated_data
    - Botan::fmt
    - auto::output_length
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption::finish
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption::set_key
    - Botan::MessageAuthenticationCode::create_or_throw
    - end
    - begin
    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:379,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls.cpp:379,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tls.cpp:381,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::set_key
      Src: /src/botan/src/tests/test_tls.cpp:384,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::set_associated_data
      Src: /src/botan/src/tests/test_tls.cpp:385,1
    - Dst: begin
      Src: /src/botan/src/tests/test_tls.cpp:387,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls.cpp:387,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls.cpp:390,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::finish
      Src: /src/botan/src/tests/test_tls.cpp:391,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::finish
      Src: /src/botan/src/tests/test_tls.cpp:394,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls.cpp:395,1
    - Dst: Botan::unlock
      Src: /src/botan/src/tests/test_tls.cpp:395,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: 397
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 397
    functionName: Botan_Tests::TLS_Null_Tests::decryption_test
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - begin
    - test_eq
    - Botan::unlock
    - Botan::fmt
    - test_throws
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::set_associated_data
    - auto::output_length
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::finish
    - Botan::MessageAuthenticationCode::create_or_throw
    - end
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::set_key
    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:402,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls.cpp:402,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tls.cpp:404,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls.cpp:407,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::set_associated_data
      Src: /src/botan/src/tests/test_tls.cpp:408,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: 410
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 410
    functionName: Botan_Tests::TLS_Null_Tests::invalid_ad_length_test
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - test_throws
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::set_associated_data
    - auto::output_length
    - Botan::MessageAuthenticationCode::create_or_throw
    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:415,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:416,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:417,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:418,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:419,1
    - Dst: empty
      Src: /src/botan/src/tests/test_tls.cpp:421,1
    - Dst: Botan_Tests::TLS_Null_Tests::encryption_test
      Src: /src/botan/src/tests/test_tls.cpp:422,1
    - Dst: Botan_Tests::TLS_Null_Tests::decryption_test
      Src: /src/botan/src/tests/test_tls.cpp:423,1
    - Dst: Botan_Tests::TLS_Null_Tests::decryption_test
      Src: /src/botan/src/tests/test_tls.cpp:427,1
    - Dst: Botan_Tests::TLS_Null_Tests::invalid_ad_length_test
      Src: /src/botan/src/tests/test_tls.cpp:431,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 412
    functionDepth: 2
    functionLinenumber: 412
    functionLinenumberEnd: 435
    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::decryption_test
    - Botan_Tests::TLS_Null_Tests::invalid_ad_length_test
    - Botan_Tests::TLS_Null_Tests::encryption_test
    - empty
    - get_req_bin
    - get_req_str
    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:486,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls.cpp:487,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_tls.cpp:487,1
    - Dst: std::set::insert
      Src: /src/botan/src/tests/test_tls.cpp:488,1
    - Dst: Botan::TLS::Alert
      Src: /src/botan/src/tests/test_tls.cpp:491,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls.cpp:493,1
    - Dst: Botan::TLS::Alert::type_string
      Src: /src/botan/src/tests/test_tls.cpp:493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 496
    functionName: Botan_Tests::Test_TLS_Alert_Strings::run
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Alert
    - std::set::count
    - Test::Result::test_eq
    - Botan::TLS::Alert::type_string
    - std::set::insert
    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:512,1
    - Dst: Botan_Tests::Test_TLS_Policy_Text::read_tls_policy
      Src: /src/botan/src/tests/test_tls.cpp:516,1
    - Dst: Botan_Tests::Test_TLS_Policy_Text::diff
      Src: /src/botan/src/tests/test_tls.cpp:519,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tls.cpp:520,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls.cpp:520,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tls.cpp:522,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 506
    functionDepth: 1
    functionLinenumber: 506
    functionLinenumberEnd: 527
    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::read_tls_policy
    - Botan::fmt
    - Test::Result::test_failure
    - Botan_Tests::Test_TLS_Policy_Text::tls_policy_string
    - Test::Result::test_success
    - Botan_Tests::Test_TLS_Policy_Text::diff
    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:542,1
    - Dst: std::getline
      Src: /src/botan/src/tests/test_tls.cpp:545,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_tls.cpp:553,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - ' a_str'
    - ' b_str'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 554
    functionName: Botan_Tests::Test_TLS_Policy_Text::diff
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 1
    functionsReached:
    - std::getline
    - std::ostringstream::str
    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:557,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_tls.cpp:559,1
    - Dst: std::ifstream::good
      Src: /src/botan/src/tests/test_tls.cpp:560,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls.cpp:561,1
    - Dst: Botan::TLS::Text_Policy::to_string
      Src: /src/botan/src/tests/test_tls.cpp:565,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' policy_str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 556
    functionDepth: 1
    functionLinenumber: 556
    functionLinenumberEnd: 566
    functionName: Botan_Tests::Test_TLS_Policy_Text::read_tls_policy
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 1
    functionsReached:
    - Test_Error
    - std::ifstream::good
    - Botan_Tests::Test::data_file
    - std::string::c_str
    - Botan::TLS::Text_Policy::to_string
    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:571,1
    - Dst: std::make_unique<Botan::TLS::NSA_Suite_B_128>
      Src: /src/botan/src/tests/test_tls.cpp:573,1
    - Dst: std::make_unique<Botan::TLS::NSA_Suite_B_192>
      Src: /src/botan/src/tests/test_tls.cpp:575,1
    - Dst: std::make_unique<Botan::TLS::BSI_TR_02102_2>
      Src: /src/botan/src/tests/test_tls.cpp:577,1
    - Dst: std::make_unique<Botan::TLS::Strict_Policy>
      Src: /src/botan/src/tests/test_tls.cpp:579,1
    - Dst: std::make_unique<Botan::TLS::Datagram_Policy>
      Src: /src/botan/src/tests/test_tls.cpp:581,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls.cpp:583,1
    - Dst: std::unique_ptr::to_string
      Src: /src/botan/src/tests/test_tls.cpp:586,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - ' policy_str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 587
    functionName: Botan_Tests::Test_TLS_Policy_Text::tls_policy_string
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 1
    functionsReached:
    - std::make_unique<Botan::TLS::BSI_TR_02102_2>
    - Test_Error
    - std::make_unique<Botan::TLS::NSA_Suite_B_128>
    - std::make_unique<Botan::TLS::Datagram_Policy>
    - std::make_unique<Botan::TLS::Strict_Policy>
    - std::make_unique<Botan::TLS::Policy>
    - std::make_unique<Botan::TLS::NSA_Suite_B_192>
    - std::unique_ptr::to_string
    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:599,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/tests/test_tls.cpp:600,1
    - Dst: auto::valid
      Src: /src/botan/src/tests/test_tls.cpp:602,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls.cpp:603,1
    - Dst: Botan::TLS::Ciphersuite::is_scsv
      Src: /src/botan/src/tests/test_tls.cpp:603,1
    - Dst: auto::cbc_ciphersuite
      Src: /src/botan/src/tests/test_tls.cpp:605,1
    - Dst: auto::null_ciphersuite
      Src: /src/botan/src/tests/test_tls.cpp:605,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls.cpp:606,1
    - Dst: auto::aead_ciphersuite
      Src: /src/botan/src/tests/test_tls.cpp:606,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls.cpp:607,1
    - Dst: auto::mac_algo
      Src: /src/botan/src/tests/test_tls.cpp:607,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls.cpp:609,1
    - Dst: auto::aead_ciphersuite
      Src: /src/botan/src/tests/test_tls.cpp:609,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls.cpp:610,1
    - Dst: auto::prf_algo
      Src: /src/botan/src/tests/test_tls.cpp:611,1
    - Dst: auto::mac_algo
      Src: /src/botan/src/tests/test_tls.cpp:612,1
    - Dst: auto::null_ciphersuite
      Src: /src/botan/src/tests/test_tls.cpp:615,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls.cpp:616,1
    - Dst: auto::cipher_algo
      Src: /src/botan/src/tests/test_tls.cpp:616,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 595
    functionDepth: 1
    functionLinenumber: 595
    functionLinenumberEnd: 624
    functionName: Botan_Tests::Test_TLS_Ciphersuites::run
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - auto::null_ciphersuite
    - auto::cbc_ciphersuite
    - auto::mac_algo
    - auto::aead_ciphersuite
    - auto::valid
    - Botan::TLS::Ciphersuite::by_id
    - Test::Result::test_eq
    - Botan::TLS::Ciphersuite::is_scsv
    - auto::cipher_algo
    - auto::prf_algo
    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:634,1
    - Dst: Botan_Tests::Test_TLS_Algo_Strings::test_auth_method_strings
      Src: /src/botan/src/tests/test_tls.cpp:634,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls.cpp:635,1
    - Dst: Botan_Tests::Test_TLS_Algo_Strings::test_kex_algo_strings
      Src: /src/botan/src/tests/test_tls.cpp:635,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls.cpp:636,1
    - Dst: Botan_Tests::Test_TLS_Algo_Strings::test_tls_sig_method_strings
      Src: /src/botan/src/tests/test_tls.cpp:636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 639
    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
    - std::vector::push_back
    - Botan_Tests::Test_TLS_Algo_Strings::test_auth_method_strings
    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:645,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_tls.cpp:649,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls.cpp:651,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_tls.cpp:651,1
    - Dst: std::set::insert
      Src: /src/botan/src/tests/test_tls.cpp:653,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 642
    functionDepth: 0
    functionLinenumber: 642
    functionLinenumberEnd: 657
    functionName: Botan_Tests::Test_TLS_Algo_Strings::test_tls_sig_method_strings
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 1
    functionsReached:
    - std::set::count
    - to_string
    - Botan::TLS::Signature_Scheme::all_available_schemes
    - Test::Result::test_eq
    - std::set::insert
    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:669,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_tls.cpp:670,1
    - Dst: Botan::TLS::auth_method_from_string
      Src: /src/botan/src/tests/test_tls.cpp:671,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls.cpp:672,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 676
    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
    - Botan::TLS::auth_method_from_string
    - Test::Result::confirm
    - Test::Result::test_ne
    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:688,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_tls.cpp:689,1
    - Dst: Botan::TLS::kex_method_from_string
      Src: /src/botan/src/tests/test_tls.cpp:690,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls.cpp:691,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 678
    functionDepth: 1
    functionLinenumber: 678
    functionLinenumberEnd: 695
    functionName: Botan_Tests::Test_TLS_Algo_Strings::test_kex_algo_strings
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::confirm
    - Test::Result::test_ne
    - 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:46,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/test_tls.cpp:47,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/test_tls.cpp:49,1
    - Dst: Botan::TLS::Session::PEM_encode
      Src: /src/botan/src/tests/test_tls.cpp:51,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls.cpp:53,1
    - Dst: Botan::TLS::Session::DER_encode
      Src: /src/botan/src/tests/test_tls.cpp:53,1
    - Dst: Botan::TLS::Session::DER_encode
      Src: /src/botan/src/tests/test_tls.cpp:53,1
    - Dst: Botan::TLS::Session::DER_encode
      Src: /src/botan/src/tests/test_tls.cpp:55,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls.cpp:57,1
    - Dst: Botan::TLS::Session::DER_encode
      Src: /src/botan/src/tests/test_tls.cpp:57,1
    - Dst: Botan::TLS::Session::DER_encode
      Src: /src/botan/src/tests/test_tls.cpp:57,1
    - Dst: Botan::TLS::Session::encrypt
      Src: /src/botan/src/tests/test_tls.cpp:60,1
    - Dst: Botan_Tests::TLS_Session_Tests::rng
      Src: /src/botan/src/tests/test_tls.cpp:60,1
    - Dst: Botan::TLS::Session::encrypt
      Src: /src/botan/src/tests/test_tls.cpp:61,1
    - Dst: Botan_Tests::TLS_Session_Tests::rng
      Src: /src/botan/src/tests/test_tls.cpp:61,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_tls.cpp:63,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_tls.cpp:64,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls.cpp:64,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_tls.cpp:64,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls.cpp:64,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls.cpp:66,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls.cpp:68,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_tls.cpp:68,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_tls.cpp:68,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls.cpp:69,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_tls.cpp:69,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_tls.cpp:69,1
    - Dst: Botan::TLS::Session::decrypt
      Src: /src/botan/src/tests/test_tls.cpp:71,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_tls.cpp:71,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls.cpp:71,1
    - Dst: Botan::TLS::Session::encrypt
      Src: /src/botan/src/tests/test_tls.cpp:74,1
    - Dst: Botan::TLS::Session::encrypt
      Src: /src/botan/src/tests/test_tls.cpp:76,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls.cpp:78,1
    - Dst: std::vector<Botan::X509_Certificate>
      Src: /src/botan/src/tests/test_tls.cpp:86,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/test_tls.cpp:87,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/test_tls.cpp:89,1
    - Dst: Botan::TLS::Session::PEM_encode
      Src: /src/botan/src/tests/test_tls.cpp:90,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 97
    functionName: Botan_Tests::TLS_Session_Tests::run
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Session::DER_encode
    - Botan::hex_decode
    - Test::Result::test_throws
    - Test::Result::test_ne
    - Botan::TLS::Server_Information
    - std::vector<Botan::X509_Certificate>
    - Botan::TLS::Session::encrypt
    - Botan::TLS::Session::PEM_encode
    - std::vector::data
    - Botan::TLS::detail::AsyncBase::complete_now
    - Test::Result::test_eq
    - Botan_Tests::TLS_Session_Tests::rng
    - std::vector::size
    - Botan::TLS::Session::decrypt
    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: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    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:109,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_tls.cpp:110,1
    - Dst: Botan::TLS::check_tls_cbc_padding
      Src: /src/botan/src/tests/test_tls.cpp:112,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_tls.cpp:112,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls.cpp:112,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 117
    functionName: Botan_Tests::TLS_CBC_Padding_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::check_tls_cbc_padding
    - std::vector::data
    - get_req_sz
    - Test::Result::test_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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - mac_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    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: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    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: 130
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 130
    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: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    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: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    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: 140
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 140
    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: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    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: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_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: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: 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: 153
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 153
    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: 160
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 160
    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:163,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: 164
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 164
    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:167,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: 168
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 168
    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: 170
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 170
    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: 172
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 172
    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: 174
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 174
    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: 176
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 176
    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:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 180
    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:183,1
    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_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: 187
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 187
    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: 192
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 192
    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:197,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_tls.cpp:198,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:199,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_tls.cpp:200,1
    - Dst: std::make_unique<Noop_Block_Cipher>
      Src: /src/botan/src/tests/test_tls.cpp:205,1
    - Dst: std::make_unique<ZeroMac>
      Src: /src/botan/src/tests/test_tls.cpp:206,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::set_key
      Src: /src/botan/src/tests/test_tls.cpp:212,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls.cpp:212,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::set_associated_data
      Src: /src/botan/src/tests/test_tls.cpp:214,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_tls.cpp:214,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls.cpp:214,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tls.cpp:216,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_tls.cpp:216,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::finish
      Src: /src/botan/src/tests/test_tls.cpp:219,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tls.cpp:221,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tls.cpp:223,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tls.cpp:227,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tls.cpp:229,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 234
    functionName: Botan_Tests::TLS_CBC_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - std::make_unique<ZeroMac>
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::set_key
    - Test::Result::test_failure
    - std::vector::data
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::set_associated_data
    - get_req_sz
    - std::make_unique<Noop_Block_Cipher>
    - std::vector::end
    - std::vector<uint8_t>
    - get_req_bin
    - std::vector::size
    - Test::Result::test_success
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::finish
    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: 243
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 243
    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:248,1
    - Dst: Botan_Tests::TLS_CBC_KAT_Tests::run_kat
      Src: /src/botan/src/tests/test_tls.cpp:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 245
    functionDepth: 3
    functionLinenumber: 245
    functionLinenumberEnd: 252
    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:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 254
    functionDepth: 2
    functionLinenumber: 254
    functionLinenumberEnd: 261
    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:268,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls.cpp:268,1
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/tests/test_tls.cpp:269,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls.cpp:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 271
    functionName: Botan_Tests::TLS_CBC_KAT_Tests::get_cipher_and_mac
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 3
    functionsReached:
    - Botan::BlockCipher::create_or_throw
    - Botan::MessageAuthenticationCode::create_or_throw
    - get_req_str
    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:286,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_tls.cpp:287,1
    - Dst: get_req_bool
      Src: /src/botan/src/tests/test_tls.cpp:288,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls.cpp:290,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls.cpp:296,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:300,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:301,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:302,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:303,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:304,1
    - Dst: Botan_Tests::TLS_CBC_KAT_Tests::get_cipher_and_mac
      Src: /src/botan/src/tests/test_tls.cpp:306,1
    - Dst: T
      Src: /src/botan/src/tests/test_tls.cpp:308,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls.cpp:308,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls.cpp:308,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_tls.cpp:310,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_tls.cpp:311,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls.cpp:313,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls.cpp:313,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls.cpp:314,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls.cpp:314,1
    - Dst: std::swap
      Src: /src/botan/src/tests/test_tls.cpp:317,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_tls.cpp:322,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_tls.cpp:323,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls.cpp:324,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls.cpp:324,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_tls.cpp:328,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls.cpp:330,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls.cpp:330,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_tls.cpp:330,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tls.cpp:331,1
    - Dst: auto::first
      Src: /src/botan/src/tests/test_tls.cpp:331,1
    - Dst: auto::subspan
      Src: /src/botan/src/tests/test_tls.cpp:332,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls.cpp:335,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls.cpp:335,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_tls.cpp:336,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls.cpp:337,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls.cpp:337,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 2
    argNames:
    - ' result'
    - ' vars'
    argTypes:
    - Test::Result
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 338
    functionName: Botan_Tests::TLS_CBC_KAT_Tests::run_kat
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 2
    functionsReached:
    - test_eq
    - auto::set_key
    - auto::end
    - std::swap
    - T
    - auto::size
    - Test_Error
    - auto::first
    - get_req_sz
    - get_req_bin
    - auto::process
    - auto::subspan
    - auto::begin
    - auto::finish
    - get_req_str
    - std::move
    - auto::minimum_final_size
    - std::string
    - Botan_Tests::TLS_CBC_KAT_Tests::get_cipher_and_mac
    - auto::set_associated_data
    - auto::start
    - get_req_bool
    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: 350
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 350
    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:358,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls.cpp:358,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tls.cpp:360,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption::set_key
      Src: /src/botan/src/tests/test_tls.cpp:363,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption::set_associated_data
      Src: /src/botan/src/tests/test_tls.cpp:364,1
    - Dst: begin
      Src: /src/botan/src/tests/test_tls.cpp:366,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls.cpp:366,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption::finish
      Src: /src/botan/src/tests/test_tls.cpp:367,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls.cpp:369,1
    - Dst: Botan::unlock
      Src: /src/botan/src/tests/test_tls.cpp:369,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: 370
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 370
    functionName: Botan_Tests::TLS_Null_Tests::encryption_test
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 1
    functionsReached:
    - test_eq
    - Botan::unlock
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption::set_associated_data
    - Botan::fmt
    - auto::output_length
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption::finish
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption::set_key
    - Botan::MessageAuthenticationCode::create_or_throw
    - end
    - begin
    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:379,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls.cpp:379,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tls.cpp:381,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::set_key
      Src: /src/botan/src/tests/test_tls.cpp:384,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::set_associated_data
      Src: /src/botan/src/tests/test_tls.cpp:385,1
    - Dst: begin
      Src: /src/botan/src/tests/test_tls.cpp:387,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls.cpp:387,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls.cpp:390,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::finish
      Src: /src/botan/src/tests/test_tls.cpp:391,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::finish
      Src: /src/botan/src/tests/test_tls.cpp:394,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls.cpp:395,1
    - Dst: Botan::unlock
      Src: /src/botan/src/tests/test_tls.cpp:395,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: 397
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 397
    functionName: Botan_Tests::TLS_Null_Tests::decryption_test
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 1
    functionsReached:
    - begin
    - test_eq
    - Botan::unlock
    - Botan::fmt
    - test_throws
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::set_associated_data
    - auto::output_length
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::finish
    - Botan::MessageAuthenticationCode::create_or_throw
    - end
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::set_key
    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:402,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls.cpp:402,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tls.cpp:404,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls.cpp:407,1
    - Dst: Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::set_associated_data
      Src: /src/botan/src/tests/test_tls.cpp:408,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: 410
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 410
    functionName: Botan_Tests::TLS_Null_Tests::invalid_ad_length_test
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 1
    functionsReached:
    - Botan::fmt
    - test_throws
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption::set_associated_data
    - auto::output_length
    - Botan::MessageAuthenticationCode::create_or_throw
    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:415,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:416,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:417,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:418,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls.cpp:419,1
    - Dst: empty
      Src: /src/botan/src/tests/test_tls.cpp:421,1
    - Dst: Botan_Tests::TLS_Null_Tests::encryption_test
      Src: /src/botan/src/tests/test_tls.cpp:422,1
    - Dst: Botan_Tests::TLS_Null_Tests::decryption_test
      Src: /src/botan/src/tests/test_tls.cpp:423,1
    - Dst: Botan_Tests::TLS_Null_Tests::decryption_test
      Src: /src/botan/src/tests/test_tls.cpp:427,1
    - Dst: Botan_Tests::TLS_Null_Tests::invalid_ad_length_test
      Src: /src/botan/src/tests/test_tls.cpp:431,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 412
    functionDepth: 2
    functionLinenumber: 412
    functionLinenumberEnd: 435
    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::decryption_test
    - Botan_Tests::TLS_Null_Tests::invalid_ad_length_test
    - Botan_Tests::TLS_Null_Tests::encryption_test
    - empty
    - get_req_bin
    - get_req_str
    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:486,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls.cpp:487,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_tls.cpp:487,1
    - Dst: std::set::insert
      Src: /src/botan/src/tests/test_tls.cpp:488,1
    - Dst: Botan::TLS::Alert
      Src: /src/botan/src/tests/test_tls.cpp:491,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls.cpp:493,1
    - Dst: Botan::TLS::Alert::type_string
      Src: /src/botan/src/tests/test_tls.cpp:493,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 496
    functionName: Botan_Tests::Test_TLS_Alert_Strings::run
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Alert
    - std::set::count
    - Test::Result::test_eq
    - Botan::TLS::Alert::type_string
    - std::set::insert
    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:512,1
    - Dst: Botan_Tests::Test_TLS_Policy_Text::read_tls_policy
      Src: /src/botan/src/tests/test_tls.cpp:516,1
    - Dst: Botan_Tests::Test_TLS_Policy_Text::diff
      Src: /src/botan/src/tests/test_tls.cpp:519,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tls.cpp:520,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls.cpp:520,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tls.cpp:522,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 506
    functionDepth: 2
    functionLinenumber: 506
    functionLinenumberEnd: 527
    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::read_tls_policy
    - Botan::fmt
    - Test::Result::test_failure
    - Botan_Tests::Test_TLS_Policy_Text::tls_policy_string
    - Test::Result::test_success
    - Botan_Tests::Test_TLS_Policy_Text::diff
    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:542,1
    - Dst: std::getline
      Src: /src/botan/src/tests/test_tls.cpp:545,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_tls.cpp:553,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - ' a_str'
    - ' b_str'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 554
    functionName: Botan_Tests::Test_TLS_Policy_Text::diff
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 2
    functionsReached:
    - std::getline
    - std::ostringstream::str
    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:557,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_tls.cpp:559,1
    - Dst: std::ifstream::good
      Src: /src/botan/src/tests/test_tls.cpp:560,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls.cpp:561,1
    - Dst: Botan::TLS::Text_Policy::to_string
      Src: /src/botan/src/tests/test_tls.cpp:565,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' policy_str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 556
    functionDepth: 1
    functionLinenumber: 556
    functionLinenumberEnd: 566
    functionName: Botan_Tests::Test_TLS_Policy_Text::read_tls_policy
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 2
    functionsReached:
    - Test_Error
    - std::ifstream::good
    - Botan_Tests::Test::data_file
    - std::string::c_str
    - Botan::TLS::Text_Policy::to_string
    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:571,1
    - Dst: std::make_unique<Botan::TLS::NSA_Suite_B_128>
      Src: /src/botan/src/tests/test_tls.cpp:573,1
    - Dst: std::make_unique<Botan::TLS::NSA_Suite_B_192>
      Src: /src/botan/src/tests/test_tls.cpp:575,1
    - Dst: std::make_unique<Botan::TLS::BSI_TR_02102_2>
      Src: /src/botan/src/tests/test_tls.cpp:577,1
    - Dst: std::make_unique<Botan::TLS::Strict_Policy>
      Src: /src/botan/src/tests/test_tls.cpp:579,1
    - Dst: std::make_unique<Botan::TLS::Datagram_Policy>
      Src: /src/botan/src/tests/test_tls.cpp:581,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls.cpp:583,1
    - Dst: std::unique_ptr::to_string
      Src: /src/botan/src/tests/test_tls.cpp:586,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - ' policy_str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 587
    functionName: Botan_Tests::Test_TLS_Policy_Text::tls_policy_string
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 2
    functionsReached:
    - std::make_unique<Botan::TLS::BSI_TR_02102_2>
    - Test_Error
    - std::make_unique<Botan::TLS::NSA_Suite_B_128>
    - std::make_unique<Botan::TLS::Datagram_Policy>
    - std::make_unique<Botan::TLS::Strict_Policy>
    - std::make_unique<Botan::TLS::Policy>
    - std::make_unique<Botan::TLS::NSA_Suite_B_192>
    - std::unique_ptr::to_string
    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:599,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/tests/test_tls.cpp:600,1
    - Dst: auto::valid
      Src: /src/botan/src/tests/test_tls.cpp:602,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls.cpp:603,1
    - Dst: Botan::TLS::Ciphersuite::is_scsv
      Src: /src/botan/src/tests/test_tls.cpp:603,1
    - Dst: auto::cbc_ciphersuite
      Src: /src/botan/src/tests/test_tls.cpp:605,1
    - Dst: auto::null_ciphersuite
      Src: /src/botan/src/tests/test_tls.cpp:605,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls.cpp:606,1
    - Dst: auto::aead_ciphersuite
      Src: /src/botan/src/tests/test_tls.cpp:606,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls.cpp:607,1
    - Dst: auto::mac_algo
      Src: /src/botan/src/tests/test_tls.cpp:607,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls.cpp:609,1
    - Dst: auto::aead_ciphersuite
      Src: /src/botan/src/tests/test_tls.cpp:609,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls.cpp:610,1
    - Dst: auto::prf_algo
      Src: /src/botan/src/tests/test_tls.cpp:611,1
    - Dst: auto::mac_algo
      Src: /src/botan/src/tests/test_tls.cpp:612,1
    - Dst: auto::null_ciphersuite
      Src: /src/botan/src/tests/test_tls.cpp:615,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls.cpp:616,1
    - Dst: auto::cipher_algo
      Src: /src/botan/src/tests/test_tls.cpp:616,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 595
    functionDepth: 1
    functionLinenumber: 595
    functionLinenumberEnd: 624
    functionName: Botan_Tests::Test_TLS_Ciphersuites::run
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - auto::null_ciphersuite
    - auto::cbc_ciphersuite
    - auto::mac_algo
    - auto::aead_ciphersuite
    - auto::valid
    - Botan::TLS::Ciphersuite::by_id
    - Test::Result::test_eq
    - Botan::TLS::Ciphersuite::is_scsv
    - auto::cipher_algo
    - auto::prf_algo
    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:634,1
    - Dst: Botan_Tests::Test_TLS_Algo_Strings::test_auth_method_strings
      Src: /src/botan/src/tests/test_tls.cpp:634,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls.cpp:635,1
    - Dst: Botan_Tests::Test_TLS_Algo_Strings::test_kex_algo_strings
      Src: /src/botan/src/tests/test_tls.cpp:635,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls.cpp:636,1
    - Dst: Botan_Tests::Test_TLS_Algo_Strings::test_tls_sig_method_strings
      Src: /src/botan/src/tests/test_tls.cpp:636,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 631
    functionDepth: 2
    functionLinenumber: 631
    functionLinenumberEnd: 639
    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
    - std::vector::push_back
    - Botan_Tests::Test_TLS_Algo_Strings::test_auth_method_strings
    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:645,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_tls.cpp:649,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls.cpp:651,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_tls.cpp:651,1
    - Dst: std::set::insert
      Src: /src/botan/src/tests/test_tls.cpp:653,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 642
    functionDepth: 0
    functionLinenumber: 642
    functionLinenumberEnd: 657
    functionName: Botan_Tests::Test_TLS_Algo_Strings::test_tls_sig_method_strings
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 2
    functionsReached:
    - std::set::count
    - to_string
    - Botan::TLS::Signature_Scheme::all_available_schemes
    - Test::Result::test_eq
    - std::set::insert
    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:669,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_tls.cpp:670,1
    - Dst: Botan::TLS::auth_method_from_string
      Src: /src/botan/src/tests/test_tls.cpp:671,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls.cpp:672,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 676
    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
    - Botan::TLS::auth_method_from_string
    - Test::Result::confirm
    - Test::Result::test_ne
    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:688,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_tls.cpp:689,1
    - Dst: Botan::TLS::kex_method_from_string
      Src: /src/botan/src/tests/test_tls.cpp:690,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls.cpp:691,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 678
    functionDepth: 1
    functionLinenumber: 678
    functionLinenumberEnd: 695
    functionName: Botan_Tests::Test_TLS_Algo_Strings::test_kex_algo_strings
    functionSourceFile: /src/botan/src/tests/test_tls.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::confirm
    - Test::Result::test_ne
    - 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:21,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_monty.cpp:31,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/tests/test_monty.cpp:35,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/tests/test_monty.cpp:36,1
    - Dst: Botan::Montgomery_Int
      Src: /src/botan/src/tests/test_monty.cpp:38,1
    - Dst: Botan::Montgomery_Int
      Src: /src/botan/src/tests/test_monty.cpp:39,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_monty.cpp:41,1
    - Dst: value
      Src: /src/botan/src/tests/test_monty.cpp:41,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_monty.cpp:42,1
    - Dst: value
      Src: /src/botan/src/tests/test_monty.cpp:42,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_monty.cpp:43,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_monty.cpp:43,1
    - Dst: value
      Src: /src/botan/src/tests/test_monty.cpp:43,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_monty.cpp:45,1
    - Dst: auto::square
      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_eq
      Src: /src/botan/src/tests/test_monty.cpp:46,1
    - Dst: auto::square
      Src: /src/botan/src/tests/test_monty.cpp:46,1
    - Dst: value
      Src: /src/botan/src/tests/test_monty.cpp:46,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_monty.cpp:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 52
    functionName: Botan_Tests::Montgomery_Integer_Tests::run
    functionSourceFile: /src/botan/src/tests/test_monty.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - Botan::BigInt::random_integer
    - Botan::random_prime
    - Test::Result::test_eq
    - auto::square
    - auto::mul
    - Botan_Tests::Test::new_rng
    - value
    - Botan::Montgomery_Int
    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:21,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_monty.cpp:31,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/tests/test_monty.cpp:35,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/tests/test_monty.cpp:36,1
    - Dst: Botan::Montgomery_Int
      Src: /src/botan/src/tests/test_monty.cpp:38,1
    - Dst: Botan::Montgomery_Int
      Src: /src/botan/src/tests/test_monty.cpp:39,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_monty.cpp:41,1
    - Dst: value
      Src: /src/botan/src/tests/test_monty.cpp:41,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_monty.cpp:42,1
    - Dst: value
      Src: /src/botan/src/tests/test_monty.cpp:42,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_monty.cpp:43,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_monty.cpp:43,1
    - Dst: value
      Src: /src/botan/src/tests/test_monty.cpp:43,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_monty.cpp:45,1
    - Dst: auto::square
      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_eq
      Src: /src/botan/src/tests/test_monty.cpp:46,1
    - Dst: auto::square
      Src: /src/botan/src/tests/test_monty.cpp:46,1
    - Dst: value
      Src: /src/botan/src/tests/test_monty.cpp:46,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_monty.cpp:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 52
    functionName: Botan_Tests::Montgomery_Integer_Tests::run
    functionSourceFile: /src/botan/src/tests/test_monty.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - Botan::BigInt::random_integer
    - Botan::random_prime
    - Test::Result::test_eq
    - auto::square
    - auto::mul
    - Botan_Tests::Test::new_rng
    - value
    - Botan::Montgomery_Int
    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:
    - BOTAN_ASSERT_NOMSG
    - auto::end
    - Botan_Tests::get_utf8_dn_alternatives
    - auto::begin
    - std::find_if
    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:
    - BOTAN_ASSERT_NOMSG
    - auto::end
    - Botan_Tests::get_utf8_dn_alternatives
    - auto::begin
    - std::find_if
    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: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    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:28,1
    - Dst: std::make_unique<Botan::Ed25519_PublicKey>
      Src: /src/botan/src/tests/test_ed25519.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    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: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    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: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    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:41,1
    - Dst: std::make_unique<Botan::Ed25519_PublicKey>
      Src: /src/botan/src/tests/test_ed25519.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    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: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    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: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    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:54,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed25519.cpp:55,1
    - Dst: std::make_unique<Botan::Ed25519_PrivateKey>
      Src: /src/botan/src/tests/test_ed25519.cpp:57,1
    - Dst: Botan::Ed25519_PrivateKey::from_seed
      Src: /src/botan/src/tests/test_ed25519.cpp:57,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/tests/test_ed25519.cpp:59,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_ed25519.cpp:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 64
    functionName: Botan_Tests::Ed25519_Signature_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - Test_Error
    - Botan::Ed25519_PrivateKey::from_seed
    - std::make_unique<Botan::Ed25519_PrivateKey>
    - auto::raw_public_key_bits
    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:84,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ed25519.cpp:85,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_ed25519.cpp:88,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ed25519.cpp:89,1
    - Dst: Botan_Tests::Ed25519_Curdle_Format_Tests::rng
      Src: /src/botan/src/tests/test_ed25519.cpp:91,1
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/tests/test_ed25519.cpp:92,1
    - Dst: Botan::PK_Signer::signature
      Src: /src/botan/src/tests/test_ed25519.cpp:93,1
    - Dst: Botan_Tests::Ed25519_Curdle_Format_Tests::rng
      Src: /src/botan/src/tests/test_ed25519.cpp:93,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/tests/test_ed25519.cpp:96,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ed25519.cpp:97,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/tests/test_ed25519.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 100
    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_Verifier::check_signature
    - Botan::PKCS8::load_key
    - Botan::PK_Signer::signature
    - Test::Result::confirm
    - Botan::X509::load_key
    - Botan_Tests::Ed25519_Curdle_Format_Tests::rng
    - Botan::PK_Verifier::update
    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: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    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: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    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:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - raw_pk
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 113
    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: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    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:28,1
    - Dst: std::make_unique<Botan::Ed25519_PublicKey>
      Src: /src/botan/src/tests/test_ed25519.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    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: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    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: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    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:41,1
    - Dst: std::make_unique<Botan::Ed25519_PublicKey>
      Src: /src/botan/src/tests/test_ed25519.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    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: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    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: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    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:54,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed25519.cpp:55,1
    - Dst: std::make_unique<Botan::Ed25519_PrivateKey>
      Src: /src/botan/src/tests/test_ed25519.cpp:57,1
    - Dst: Botan::Ed25519_PrivateKey::from_seed
      Src: /src/botan/src/tests/test_ed25519.cpp:57,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/tests/test_ed25519.cpp:59,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_ed25519.cpp:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 64
    functionName: Botan_Tests::Ed25519_Signature_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - Test_Error
    - Botan::Ed25519_PrivateKey::from_seed
    - std::make_unique<Botan::Ed25519_PrivateKey>
    - auto::raw_public_key_bits
    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:84,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ed25519.cpp:85,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_ed25519.cpp:88,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ed25519.cpp:89,1
    - Dst: Botan_Tests::Ed25519_Curdle_Format_Tests::rng
      Src: /src/botan/src/tests/test_ed25519.cpp:91,1
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/tests/test_ed25519.cpp:92,1
    - Dst: Botan::PK_Signer::signature
      Src: /src/botan/src/tests/test_ed25519.cpp:93,1
    - Dst: Botan_Tests::Ed25519_Curdle_Format_Tests::rng
      Src: /src/botan/src/tests/test_ed25519.cpp:93,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/tests/test_ed25519.cpp:96,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ed25519.cpp:97,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/tests/test_ed25519.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 100
    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_Verifier::check_signature
    - Botan::PKCS8::load_key
    - Botan::PK_Signer::signature
    - Test::Result::confirm
    - Botan::X509::load_key
    - Botan_Tests::Ed25519_Curdle_Format_Tests::rng
    - Botan::PK_Verifier::update
    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: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    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: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    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:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - raw_pk
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 113
    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: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    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:28,1
    - Dst: std::make_unique<Botan::Ed25519_PublicKey>
      Src: /src/botan/src/tests/test_ed25519.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    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: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    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: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    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:41,1
    - Dst: std::make_unique<Botan::Ed25519_PublicKey>
      Src: /src/botan/src/tests/test_ed25519.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    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: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    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: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    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:54,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed25519.cpp:55,1
    - Dst: std::make_unique<Botan::Ed25519_PrivateKey>
      Src: /src/botan/src/tests/test_ed25519.cpp:57,1
    - Dst: Botan::Ed25519_PrivateKey::from_seed
      Src: /src/botan/src/tests/test_ed25519.cpp:57,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/tests/test_ed25519.cpp:59,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_ed25519.cpp:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 64
    functionName: Botan_Tests::Ed25519_Signature_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - Test_Error
    - Botan::Ed25519_PrivateKey::from_seed
    - std::make_unique<Botan::Ed25519_PrivateKey>
    - auto::raw_public_key_bits
    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:84,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ed25519.cpp:85,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_ed25519.cpp:88,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ed25519.cpp:89,1
    - Dst: Botan_Tests::Ed25519_Curdle_Format_Tests::rng
      Src: /src/botan/src/tests/test_ed25519.cpp:91,1
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/tests/test_ed25519.cpp:92,1
    - Dst: Botan::PK_Signer::signature
      Src: /src/botan/src/tests/test_ed25519.cpp:93,1
    - Dst: Botan_Tests::Ed25519_Curdle_Format_Tests::rng
      Src: /src/botan/src/tests/test_ed25519.cpp:93,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/tests/test_ed25519.cpp:96,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ed25519.cpp:97,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/tests/test_ed25519.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 100
    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_Verifier::check_signature
    - Botan::PKCS8::load_key
    - Botan::PK_Signer::signature
    - Test::Result::confirm
    - Botan::X509::load_key
    - Botan_Tests::Ed25519_Curdle_Format_Tests::rng
    - Botan::PK_Verifier::update
    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: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    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: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    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:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - raw_pk
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 113
    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: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    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:28,1
    - Dst: std::make_unique<Botan::Ed25519_PublicKey>
      Src: /src/botan/src/tests/test_ed25519.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    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: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    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: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    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:41,1
    - Dst: std::make_unique<Botan::Ed25519_PublicKey>
      Src: /src/botan/src/tests/test_ed25519.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    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: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    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: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    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:54,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed25519.cpp:55,1
    - Dst: std::make_unique<Botan::Ed25519_PrivateKey>
      Src: /src/botan/src/tests/test_ed25519.cpp:57,1
    - Dst: Botan::Ed25519_PrivateKey::from_seed
      Src: /src/botan/src/tests/test_ed25519.cpp:57,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/tests/test_ed25519.cpp:59,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_ed25519.cpp:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 64
    functionName: Botan_Tests::Ed25519_Signature_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_ed25519.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - Test_Error
    - Botan::Ed25519_PrivateKey::from_seed
    - std::make_unique<Botan::Ed25519_PrivateKey>
    - auto::raw_public_key_bits
    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:84,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ed25519.cpp:85,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_ed25519.cpp:88,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ed25519.cpp:89,1
    - Dst: Botan_Tests::Ed25519_Curdle_Format_Tests::rng
      Src: /src/botan/src/tests/test_ed25519.cpp:91,1
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/tests/test_ed25519.cpp:92,1
    - Dst: Botan::PK_Signer::signature
      Src: /src/botan/src/tests/test_ed25519.cpp:93,1
    - Dst: Botan_Tests::Ed25519_Curdle_Format_Tests::rng
      Src: /src/botan/src/tests/test_ed25519.cpp:93,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/tests/test_ed25519.cpp:96,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ed25519.cpp:97,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/tests/test_ed25519.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 100
    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_Verifier::check_signature
    - Botan::PKCS8::load_key
    - Botan::PK_Signer::signature
    - Test::Result::confirm
    - Botan::X509::load_key
    - Botan_Tests::Ed25519_Curdle_Format_Tests::rng
    - Botan::PK_Verifier::update
    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: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    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: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    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:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - raw_pk
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 113
    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: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    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:24,1
    - Dst: Botan::Cipher_Mode::providers
      Src: /src/botan/src/tests/test_modes.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 25
    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:28,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_modes.cpp:29,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_modes.cpp:30,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_modes.cpp:31,1
    - Dst: Botan_Tests::Cipher_Mode_Tests::possible_providers
      Src: /src/botan/src/tests/test_modes.cpp:35,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_modes.cpp:37,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_modes.cpp:38,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_modes.cpp:43,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_modes.cpp:45,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_modes.cpp:49,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_modes.cpp:52,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_modes.cpp:54,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_modes.cpp:58,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_modes.cpp:58,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_modes.cpp:58,1
    - Dst: Test::Result::test_gt
      Src: /src/botan/src/tests/test_modes.cpp:60,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_modes.cpp:60,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_modes.cpp:62,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_modes.cpp:63,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_modes.cpp:63,1
    - Dst: Test::Result::test_gt
      Src: /src/botan/src/tests/test_modes.cpp:65,1
    - Dst: auto::ideal_granularity
      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::confirm
      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::update_granularity
      Src: /src/botan/src/tests/test_modes.cpp:69,1
    - Dst: Botan_Tests::Cipher_Mode_Tests::test_mode
      Src: /src/botan/src/tests/test_modes.cpp:72,1
    - Dst: Botan_Tests::Cipher_Mode_Tests::rng
      Src: /src/botan/src/tests/test_modes.cpp:72,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_modes.cpp:74,1
    - Dst: what
      Src: /src/botan/src/tests/test_modes.cpp:74,1
    - Dst: Botan_Tests::Cipher_Mode_Tests::test_mode
      Src: /src/botan/src/tests/test_modes.cpp:79,1
    - Dst: Botan_Tests::Cipher_Mode_Tests::rng
      Src: /src/botan/src/tests/test_modes.cpp:79,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_modes.cpp:81,1
    - Dst: what
      Src: /src/botan/src/tests/test_modes.cpp:81,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 86
    functionName: Botan_Tests::Cipher_Mode_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_modes.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Cipher_Mode_Tests::rng
    - Test::Result::note_missing
    - Botan_Tests::Cipher_Mode_Tests::possible_providers
    - auto::ideal_granularity
    - Test::Result::test_failure
    - std::vector::empty
    - auto::update_granularity
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::Cipher_Mode::create
    - Test::Result::test_gt
    - what
    - get_req_bin
    - Botan_Tests::Cipher_Mode_Tests::test_mode
    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:99,1
    - Dst: find
      Src: /src/botan/src/tests/test_modes.cpp:100,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_modes.cpp:102,1
    - Dst: name
      Src: /src/botan/src/tests/test_modes.cpp:102,1
    - Dst: provider
      Src: /src/botan/src/tests/test_modes.cpp:105,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_modes.cpp:106,1
    - Dst: provider
      Src: /src/botan/src/tests/test_modes.cpp:106,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_modes.cpp:109,1
    - Dst: authenticated
      Src: /src/botan/src/tests/test_modes.cpp:109,1
    - Dst: update_granularity
      Src: /src/botan/src/tests/test_modes.cpp:111,1
    - Dst: minimum_final_size
      Src: /src/botan/src/tests/test_modes.cpp:112,1
    - Dst: test_gt
      Src: /src/botan/src/tests/test_modes.cpp:115,1
    - Dst: ideal_granularity
      Src: /src/botan/src/tests/test_modes.cpp:115,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_modes.cpp:117,1
    - Dst: has_keying_material
      Src: /src/botan/src/tests/test_modes.cpp:117,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_modes.cpp:119,1
    - Dst: finish
      Src: /src/botan/src/tests/test_modes.cpp:121,1
    - Dst: test_lte
      Src: /src/botan/src/tests/test_modes.cpp:128,1
    - Dst: output_length
      Src: /src/botan/src/tests/test_modes.cpp:128,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:128,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:128,1
    - Dst: test_gte
      Src: /src/botan/src/tests/test_modes.cpp:130,1
    - Dst: output_length
      Src: /src/botan/src/tests/test_modes.cpp:130,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:130,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:130,1
    - Dst: test_eq
      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: confirm
      Src: /src/botan/src/tests/test_modes.cpp:137,1
    - Dst: valid_nonce_length
      Src: /src/botan/src/tests/test_modes.cpp:137,1
    - Dst: default_nonce_length
      Src: /src/botan/src/tests/test_modes.cpp:137,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_modes.cpp:141,1
    - Dst: valid_nonce_length
      Src: /src/botan/src/tests/test_modes.cpp:141,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_modes.cpp:142,1
    - Dst: start
      Src: /src/botan/src/tests/test_modes.cpp:143,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_modes.cpp:145,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_modes.cpp:146,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_modes.cpp:149,1
    - Dst: update
      Src: /src/botan/src/tests/test_modes.cpp:150,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_modes.cpp:151,1
    - Dst: finish
      Src: /src/botan/src/tests/test_modes.cpp:152,1
    - Dst: set_key
      Src: /src/botan/src/tests/test_modes.cpp:154,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_modes.cpp:154,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_modes.cpp:157,1
    - Dst: update
      Src: /src/botan/src/tests/test_modes.cpp:158,1
    - Dst: start
      Src: /src/botan/src/tests/test_modes.cpp:161,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_modes.cpp:161,1
    - Dst: reset
      Src: /src/botan/src/tests/test_modes.cpp:162,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_modes.cpp:165,1
    - Dst: update
      Src: /src/botan/src/tests/test_modes.cpp:166,1
    - Dst: start
      Src: /src/botan/src/tests/test_modes.cpp:169,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_modes.cpp:169,1
    - Dst: update
      Src: /src/botan/src/tests/test_modes.cpp:170,1
    - Dst: reset
      Src: /src/botan/src/tests/test_modes.cpp:172,1
    - Dst: set_key
      Src: /src/botan/src/tests/test_modes.cpp:174,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_modes.cpp:175,1
    - Dst: has_keying_material
      Src: /src/botan/src/tests/test_modes.cpp:175,1
    - Dst: start
      Src: /src/botan/src/tests/test_modes.cpp:176,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_modes.cpp:180,1
    - Dst: begin
      Src: /src/botan/src/tests/test_modes.cpp:180,1
    - Dst: end
      Src: /src/botan/src/tests/test_modes.cpp:180,1
    - Dst: finish
      Src: /src/botan/src/tests/test_modes.cpp:181,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_modes.cpp:182,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:185,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:186,1
    - Dst: Botan::secure_vector::clear
      Src: /src/botan/src/tests/test_modes.cpp:192,1
    - Dst: start
      Src: /src/botan/src/tests/test_modes.cpp:194,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_modes.cpp:196,1
    - Dst: data
      Src: /src/botan/src/tests/test_modes.cpp:196,1
    - Dst: data
      Src: /src/botan/src/tests/test_modes.cpp:196,1
    - Dst: update
      Src: /src/botan/src/tests/test_modes.cpp:198,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: size
      Src: /src/botan/src/tests/test_modes.cpp:202,1
    - Dst: finish
      Src: /src/botan/src/tests/test_modes.cpp:203,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_modes.cpp:206,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_modes.cpp:210,1
    - Dst: data
      Src: /src/botan/src/tests/test_modes.cpp:210,1
    - Dst: data
      Src: /src/botan/src/tests/test_modes.cpp:210,1
    - Dst: data
      Src: /src/botan/src/tests/test_modes.cpp:211,1
    - Dst: data
      Src: /src/botan/src/tests/test_modes.cpp:211,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:211,1
    - Dst: start
      Src: /src/botan/src/tests/test_modes.cpp:213,1
    - Dst: update
      Src: /src/botan/src/tests/test_modes.cpp:214,1
    - Dst: finish
      Src: /src/botan/src/tests/test_modes.cpp:215,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_modes.cpp:219,1
    - Dst: start
      Src: /src/botan/src/tests/test_modes.cpp:222,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_modes.cpp:223,1
    - Dst: begin
      Src: /src/botan/src/tests/test_modes.cpp:223,1
    - Dst: end
      Src: /src/botan/src/tests/test_modes.cpp:223,1
    - Dst: process
      Src: /src/botan/src/tests/test_modes.cpp:225,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_modes.cpp:225,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_modes.cpp:227,1
    - Dst: finish
      Src: /src/botan/src/tests/test_modes.cpp:229,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_modes.cpp:230,1
    - Dst: clear
      Src: /src/botan/src/tests/test_modes.cpp:233,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_modes.cpp:234,1
    - Dst: has_keying_material
      Src: /src/botan/src/tests/test_modes.cpp:234,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_modes.cpp:236,1
    - Dst: finish
      Src: /src/botan/src/tests/test_modes.cpp:238,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: 240
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 240
    functionName: Botan_Tests::Cipher_Mode_Tests::test_mode
    functionSourceFile: /src/botan/src/tests/test_modes.cpp
    functionUses: 1
    functionsReached:
    - test_eq
    - ideal_granularity
    - process
    - test_throws
    - test_lte
    - set_key
    - authenticated
    - Botan::secure_vector::clear
    - Botan::secure_vector::data
    - begin
    - minimum_final_size
    - output_length
    - test_gt
    - reset
    - data
    - name
    - find
    - confirm
    - finish
    - Botan::secure_vector::assign
    - mutate_vec
    - provider
    - update_granularity
    - start
    - valid_nonce_length
    - update
    - default_nonce_length
    - has_keying_material
    - size
    - clear
    - test_gte
    - random_vec
    - 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:249,1
    - Dst: Botan_Tests::Cipher_Mode_IV_Carry_Tests::test_cbc_iv_carry
      Src: /src/botan/src/tests/test_modes.cpp:249,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_modes.cpp:250,1
    - Dst: Botan_Tests::Cipher_Mode_IV_Carry_Tests::test_cfb_iv_carry
      Src: /src/botan/src/tests/test_modes.cpp:250,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_modes.cpp:251,1
    - Dst: Botan_Tests::Cipher_Mode_IV_Carry_Tests::test_ctr_iv_carry
      Src: /src/botan/src/tests/test_modes.cpp:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 253
    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_cbc_iv_carry
    - Botan_Tests::Cipher_Mode_IV_Carry_Tests::test_cfb_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:261,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_modes.cpp:263,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_modes.cpp:269,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_modes.cpp:270,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_modes.cpp:271,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_modes.cpp:273,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_modes.cpp:274,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:276,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:277,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_modes.cpp:278,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:280,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:281,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_modes.cpp:283,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:285,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:286,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_modes.cpp:288,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:290,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:291,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:293,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:294,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:296,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:297,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_modes.cpp:298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 302
    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
    - Test::Result::test_eq
    - std::unique_ptr::set_key
    - Botan::Cipher_Mode::create
    - std::unique_ptr::start
    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:308,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_modes.cpp:310,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_modes.cpp:315,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_modes.cpp:316,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_modes.cpp:317,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_modes.cpp:319,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_modes.cpp:320,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:322,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:323,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_modes.cpp:324,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:326,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:327,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_modes.cpp:329,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:331,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:332,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_modes.cpp:334,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:336,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:337,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_modes.cpp:338,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:340,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:341,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_modes.cpp:342,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:344,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:345,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_modes.cpp:346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 349
    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
    - Test::Result::test_eq
    - std::unique_ptr::set_key
    - Botan::Cipher_Mode::create
    - std::unique_ptr::start
    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:356,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_modes.cpp:358,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_modes.cpp:360,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_modes.cpp:361,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_modes.cpp:363,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_modes.cpp:364,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:381,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:382,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:384,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:385,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:389,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_modes.cpp:391,1
    - Dst: c_str
      Src: /src/botan/src/tests/test_modes.cpp:391,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:393,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_modes.cpp:396,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_modes.cpp:396,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 401
    functionName: Botan_Tests::Cipher_Mode_IV_Carry_Tests::test_ctr_iv_carry
    functionSourceFile: /src/botan/src/tests/test_modes.cpp
    functionUses: 1
    functionsReached:
    - Botan::hex_decode
    - std::unique_ptr::finish
    - static_cast<size_t>
    - Test::Result::test_eq
    - std::unique_ptr::set_key
    - Botan::Cipher_Mode::create
    - std::unique_ptr::start
    - c_str
    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: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    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:24,1
    - Dst: Botan::Cipher_Mode::providers
      Src: /src/botan/src/tests/test_modes.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 25
    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:28,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_modes.cpp:29,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_modes.cpp:30,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_modes.cpp:31,1
    - Dst: Botan_Tests::Cipher_Mode_Tests::possible_providers
      Src: /src/botan/src/tests/test_modes.cpp:35,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_modes.cpp:37,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_modes.cpp:38,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_modes.cpp:43,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_modes.cpp:45,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_modes.cpp:49,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_modes.cpp:52,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_modes.cpp:54,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_modes.cpp:58,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_modes.cpp:58,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_modes.cpp:58,1
    - Dst: Test::Result::test_gt
      Src: /src/botan/src/tests/test_modes.cpp:60,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_modes.cpp:60,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_modes.cpp:62,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_modes.cpp:63,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_modes.cpp:63,1
    - Dst: Test::Result::test_gt
      Src: /src/botan/src/tests/test_modes.cpp:65,1
    - Dst: auto::ideal_granularity
      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::confirm
      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::update_granularity
      Src: /src/botan/src/tests/test_modes.cpp:69,1
    - Dst: Botan_Tests::Cipher_Mode_Tests::test_mode
      Src: /src/botan/src/tests/test_modes.cpp:72,1
    - Dst: Botan_Tests::Cipher_Mode_Tests::rng
      Src: /src/botan/src/tests/test_modes.cpp:72,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_modes.cpp:74,1
    - Dst: what
      Src: /src/botan/src/tests/test_modes.cpp:74,1
    - Dst: Botan_Tests::Cipher_Mode_Tests::test_mode
      Src: /src/botan/src/tests/test_modes.cpp:79,1
    - Dst: Botan_Tests::Cipher_Mode_Tests::rng
      Src: /src/botan/src/tests/test_modes.cpp:79,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_modes.cpp:81,1
    - Dst: what
      Src: /src/botan/src/tests/test_modes.cpp:81,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 86
    functionName: Botan_Tests::Cipher_Mode_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_modes.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Cipher_Mode_Tests::rng
    - Test::Result::note_missing
    - Botan_Tests::Cipher_Mode_Tests::possible_providers
    - auto::ideal_granularity
    - Test::Result::test_failure
    - std::vector::empty
    - auto::update_granularity
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::Cipher_Mode::create
    - Test::Result::test_gt
    - what
    - get_req_bin
    - Botan_Tests::Cipher_Mode_Tests::test_mode
    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:99,1
    - Dst: find
      Src: /src/botan/src/tests/test_modes.cpp:100,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_modes.cpp:102,1
    - Dst: name
      Src: /src/botan/src/tests/test_modes.cpp:102,1
    - Dst: provider
      Src: /src/botan/src/tests/test_modes.cpp:105,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_modes.cpp:106,1
    - Dst: provider
      Src: /src/botan/src/tests/test_modes.cpp:106,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_modes.cpp:109,1
    - Dst: authenticated
      Src: /src/botan/src/tests/test_modes.cpp:109,1
    - Dst: update_granularity
      Src: /src/botan/src/tests/test_modes.cpp:111,1
    - Dst: minimum_final_size
      Src: /src/botan/src/tests/test_modes.cpp:112,1
    - Dst: test_gt
      Src: /src/botan/src/tests/test_modes.cpp:115,1
    - Dst: ideal_granularity
      Src: /src/botan/src/tests/test_modes.cpp:115,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_modes.cpp:117,1
    - Dst: has_keying_material
      Src: /src/botan/src/tests/test_modes.cpp:117,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_modes.cpp:119,1
    - Dst: finish
      Src: /src/botan/src/tests/test_modes.cpp:121,1
    - Dst: test_lte
      Src: /src/botan/src/tests/test_modes.cpp:128,1
    - Dst: output_length
      Src: /src/botan/src/tests/test_modes.cpp:128,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:128,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:128,1
    - Dst: test_gte
      Src: /src/botan/src/tests/test_modes.cpp:130,1
    - Dst: output_length
      Src: /src/botan/src/tests/test_modes.cpp:130,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:130,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:130,1
    - Dst: test_eq
      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: confirm
      Src: /src/botan/src/tests/test_modes.cpp:137,1
    - Dst: valid_nonce_length
      Src: /src/botan/src/tests/test_modes.cpp:137,1
    - Dst: default_nonce_length
      Src: /src/botan/src/tests/test_modes.cpp:137,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_modes.cpp:141,1
    - Dst: valid_nonce_length
      Src: /src/botan/src/tests/test_modes.cpp:141,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_modes.cpp:142,1
    - Dst: start
      Src: /src/botan/src/tests/test_modes.cpp:143,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_modes.cpp:145,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_modes.cpp:146,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_modes.cpp:149,1
    - Dst: update
      Src: /src/botan/src/tests/test_modes.cpp:150,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_modes.cpp:151,1
    - Dst: finish
      Src: /src/botan/src/tests/test_modes.cpp:152,1
    - Dst: set_key
      Src: /src/botan/src/tests/test_modes.cpp:154,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_modes.cpp:154,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_modes.cpp:157,1
    - Dst: update
      Src: /src/botan/src/tests/test_modes.cpp:158,1
    - Dst: start
      Src: /src/botan/src/tests/test_modes.cpp:161,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_modes.cpp:161,1
    - Dst: reset
      Src: /src/botan/src/tests/test_modes.cpp:162,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_modes.cpp:165,1
    - Dst: update
      Src: /src/botan/src/tests/test_modes.cpp:166,1
    - Dst: start
      Src: /src/botan/src/tests/test_modes.cpp:169,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_modes.cpp:169,1
    - Dst: update
      Src: /src/botan/src/tests/test_modes.cpp:170,1
    - Dst: reset
      Src: /src/botan/src/tests/test_modes.cpp:172,1
    - Dst: set_key
      Src: /src/botan/src/tests/test_modes.cpp:174,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_modes.cpp:175,1
    - Dst: has_keying_material
      Src: /src/botan/src/tests/test_modes.cpp:175,1
    - Dst: start
      Src: /src/botan/src/tests/test_modes.cpp:176,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_modes.cpp:180,1
    - Dst: begin
      Src: /src/botan/src/tests/test_modes.cpp:180,1
    - Dst: end
      Src: /src/botan/src/tests/test_modes.cpp:180,1
    - Dst: finish
      Src: /src/botan/src/tests/test_modes.cpp:181,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_modes.cpp:182,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:185,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:186,1
    - Dst: Botan::secure_vector::clear
      Src: /src/botan/src/tests/test_modes.cpp:192,1
    - Dst: start
      Src: /src/botan/src/tests/test_modes.cpp:194,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_modes.cpp:196,1
    - Dst: data
      Src: /src/botan/src/tests/test_modes.cpp:196,1
    - Dst: data
      Src: /src/botan/src/tests/test_modes.cpp:196,1
    - Dst: update
      Src: /src/botan/src/tests/test_modes.cpp:198,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: size
      Src: /src/botan/src/tests/test_modes.cpp:202,1
    - Dst: finish
      Src: /src/botan/src/tests/test_modes.cpp:203,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_modes.cpp:206,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_modes.cpp:210,1
    - Dst: data
      Src: /src/botan/src/tests/test_modes.cpp:210,1
    - Dst: data
      Src: /src/botan/src/tests/test_modes.cpp:210,1
    - Dst: data
      Src: /src/botan/src/tests/test_modes.cpp:211,1
    - Dst: data
      Src: /src/botan/src/tests/test_modes.cpp:211,1
    - Dst: size
      Src: /src/botan/src/tests/test_modes.cpp:211,1
    - Dst: start
      Src: /src/botan/src/tests/test_modes.cpp:213,1
    - Dst: update
      Src: /src/botan/src/tests/test_modes.cpp:214,1
    - Dst: finish
      Src: /src/botan/src/tests/test_modes.cpp:215,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_modes.cpp:219,1
    - Dst: start
      Src: /src/botan/src/tests/test_modes.cpp:222,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_modes.cpp:223,1
    - Dst: begin
      Src: /src/botan/src/tests/test_modes.cpp:223,1
    - Dst: end
      Src: /src/botan/src/tests/test_modes.cpp:223,1
    - Dst: process
      Src: /src/botan/src/tests/test_modes.cpp:225,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_modes.cpp:225,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_modes.cpp:227,1
    - Dst: finish
      Src: /src/botan/src/tests/test_modes.cpp:229,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_modes.cpp:230,1
    - Dst: clear
      Src: /src/botan/src/tests/test_modes.cpp:233,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_modes.cpp:234,1
    - Dst: has_keying_material
      Src: /src/botan/src/tests/test_modes.cpp:234,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_modes.cpp:236,1
    - Dst: finish
      Src: /src/botan/src/tests/test_modes.cpp:238,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: 240
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 240
    functionName: Botan_Tests::Cipher_Mode_Tests::test_mode
    functionSourceFile: /src/botan/src/tests/test_modes.cpp
    functionUses: 2
    functionsReached:
    - test_eq
    - ideal_granularity
    - process
    - test_throws
    - test_lte
    - set_key
    - authenticated
    - Botan::secure_vector::clear
    - Botan::secure_vector::data
    - begin
    - minimum_final_size
    - output_length
    - test_gt
    - reset
    - data
    - name
    - find
    - confirm
    - finish
    - Botan::secure_vector::assign
    - mutate_vec
    - provider
    - update_granularity
    - start
    - valid_nonce_length
    - update
    - default_nonce_length
    - has_keying_material
    - size
    - clear
    - test_gte
    - random_vec
    - 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:249,1
    - Dst: Botan_Tests::Cipher_Mode_IV_Carry_Tests::test_cbc_iv_carry
      Src: /src/botan/src/tests/test_modes.cpp:249,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_modes.cpp:250,1
    - Dst: Botan_Tests::Cipher_Mode_IV_Carry_Tests::test_cfb_iv_carry
      Src: /src/botan/src/tests/test_modes.cpp:250,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_modes.cpp:251,1
    - Dst: Botan_Tests::Cipher_Mode_IV_Carry_Tests::test_ctr_iv_carry
      Src: /src/botan/src/tests/test_modes.cpp:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 253
    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_cbc_iv_carry
    - Botan_Tests::Cipher_Mode_IV_Carry_Tests::test_cfb_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:261,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_modes.cpp:263,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_modes.cpp:269,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_modes.cpp:270,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_modes.cpp:271,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_modes.cpp:273,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_modes.cpp:274,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:276,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:277,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_modes.cpp:278,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:280,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:281,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_modes.cpp:283,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:285,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:286,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_modes.cpp:288,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:290,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:291,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:293,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:294,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:296,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:297,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_modes.cpp:298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 302
    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
    - Test::Result::test_eq
    - std::unique_ptr::set_key
    - Botan::Cipher_Mode::create
    - std::unique_ptr::start
    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:308,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_modes.cpp:310,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_modes.cpp:315,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_modes.cpp:316,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_modes.cpp:317,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_modes.cpp:319,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_modes.cpp:320,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:322,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:323,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_modes.cpp:324,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:326,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:327,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_modes.cpp:329,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:331,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:332,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_modes.cpp:334,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:336,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:337,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_modes.cpp:338,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:340,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:341,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_modes.cpp:342,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:344,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:345,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_modes.cpp:346,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 349
    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
    - Test::Result::test_eq
    - std::unique_ptr::set_key
    - Botan::Cipher_Mode::create
    - std::unique_ptr::start
    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:356,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_modes.cpp:358,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_modes.cpp:360,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_modes.cpp:361,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_modes.cpp:363,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_modes.cpp:364,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:381,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:382,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:384,1
    - Dst: std::unique_ptr::start
      Src: /src/botan/src/tests/test_modes.cpp:385,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:389,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_modes.cpp:391,1
    - Dst: c_str
      Src: /src/botan/src/tests/test_modes.cpp:391,1
    - Dst: std::unique_ptr::finish
      Src: /src/botan/src/tests/test_modes.cpp:393,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_modes.cpp:396,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_modes.cpp:396,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 401
    functionName: Botan_Tests::Cipher_Mode_IV_Carry_Tests::test_ctr_iv_carry
    functionSourceFile: /src/botan/src/tests/test_modes.cpp
    functionUses: 2
    functionsReached:
    - Botan::hex_decode
    - std::unique_ptr::finish
    - static_cast<size_t>
    - Test::Result::test_eq
    - std::unique_ptr::set_key
    - Botan::Cipher_Mode::create
    - std::unique_ptr::start
    - c_str
    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: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    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: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    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:29,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/test_otp.cpp:34,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_otp.cpp:34,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_otp.cpp:35,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_otp.cpp:35,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_otp.cpp:36,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_otp.cpp:37,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_otp.cpp:41,1
    - Dst: Botan::HOTP::generate_hotp
      Src: /src/botan/src/tests/test_otp.cpp:41,1
    - Dst: Botan::HOTP::verify_hotp
      Src: /src/botan/src/tests/test_otp.cpp:43,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_otp.cpp:44,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_otp.cpp:45,1
    - Dst: Botan::HOTP::verify_hotp
      Src: /src/botan/src/tests/test_otp.cpp:48,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_otp.cpp:49,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_otp.cpp:50,1
    - Dst: Botan::HOTP::verify_hotp
      Src: /src/botan/src/tests/test_otp.cpp:53,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_otp.cpp:54,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_otp.cpp:55,1
    - Dst: Botan::HOTP::verify_hotp
      Src: /src/botan/src/tests/test_otp.cpp:58,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_otp.cpp:59,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_otp.cpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - ' hash_algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 63
    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::SymmetricKey
    - get_req_sz
    - Test::Result::test_eq
    - Botan::HOTP::verify_hotp
    - Test::Result::confirm
    - Botan::HashFunction::create
    - get_req_bin
    - Botan::HOTP::generate_hotp
    - Test::Result::test_int_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: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    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: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    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:77,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/test_otp.cpp:82,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_otp.cpp:82,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_otp.cpp:83,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_otp.cpp:83,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_otp.cpp:84,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_otp.cpp:85,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_otp.cpp:86,1
    - Dst: Botan_Tests::TOTP_KAT_Tests::from_timestring
      Src: /src/botan/src/tests/test_otp.cpp:90,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/tests/test_otp.cpp:91,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/tests/test_otp.cpp:92,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_otp.cpp:94,1
    - Dst: Botan::TOTP::generate_totp
      Src: /src/botan/src/tests/test_otp.cpp:94,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_otp.cpp:96,1
    - Dst: Botan::TOTP::verify_totp
      Src: /src/botan/src/tests/test_otp.cpp:96,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_otp.cpp:97,1
    - Dst: Botan::TOTP::verify_totp
      Src: /src/botan/src/tests/test_otp.cpp:97,1
    - Dst: Test::Result::test_eq
      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_eq
      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_eq
      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
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ' hash_algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 103
    functionName: Botan_Tests::TOTP_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_otp.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - Botan::SymmetricKey
    - Botan_CLI::Timer::seconds
    - Test::Result::test_int_eq
    - Botan::TOTP::generate_totp
    - Botan::TOTP::verify_totp
    - get_req_sz
    - Botan_Tests::TOTP_KAT_Tests::from_timestring
    - Test::Result::test_eq
    - Botan::HashFunction::create
    - get_req_bin
    - get_req_str
    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:107,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_otp.cpp:108,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_otp.cpp:112,1
    - Dst: std::stoi
      Src: /src/botan/src/tests/test_otp.cpp:112,1
    - Dst: substr
      Src: /src/botan/src/tests/test_otp.cpp:112,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_otp.cpp:113,1
    - Dst: std::stoi
      Src: /src/botan/src/tests/test_otp.cpp:113,1
    - Dst: substr
      Src: /src/botan/src/tests/test_otp.cpp:113,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: Botan::calendar_point
      Src: /src/botan/src/tests/test_otp.cpp:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' time_str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 119
    functionName: Botan_Tests::TOTP_KAT_Tests::from_timestring
    functionSourceFile: /src/botan/src/tests/test_otp.cpp
    functionUses: 1
    functionsReached:
    - substr
    - static_cast<uint32_t>
    - Test_Error
    - size
    - std::stoi
    - Botan::calendar_point
    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: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    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: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    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:29,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/test_otp.cpp:34,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_otp.cpp:34,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_otp.cpp:35,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_otp.cpp:35,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_otp.cpp:36,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_otp.cpp:37,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_otp.cpp:41,1
    - Dst: Botan::HOTP::generate_hotp
      Src: /src/botan/src/tests/test_otp.cpp:41,1
    - Dst: Botan::HOTP::verify_hotp
      Src: /src/botan/src/tests/test_otp.cpp:43,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_otp.cpp:44,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_otp.cpp:45,1
    - Dst: Botan::HOTP::verify_hotp
      Src: /src/botan/src/tests/test_otp.cpp:48,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_otp.cpp:49,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_otp.cpp:50,1
    - Dst: Botan::HOTP::verify_hotp
      Src: /src/botan/src/tests/test_otp.cpp:53,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_otp.cpp:54,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_otp.cpp:55,1
    - Dst: Botan::HOTP::verify_hotp
      Src: /src/botan/src/tests/test_otp.cpp:58,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_otp.cpp:59,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_otp.cpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 2
    argNames:
    - ' hash_algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 63
    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::SymmetricKey
    - get_req_sz
    - Test::Result::test_eq
    - Botan::HOTP::verify_hotp
    - Test::Result::confirm
    - Botan::HashFunction::create
    - get_req_bin
    - Botan::HOTP::generate_hotp
    - Test::Result::test_int_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: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    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: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    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:77,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/test_otp.cpp:82,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_otp.cpp:82,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_otp.cpp:83,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_otp.cpp:83,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_otp.cpp:84,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_otp.cpp:85,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_otp.cpp:86,1
    - Dst: Botan_Tests::TOTP_KAT_Tests::from_timestring
      Src: /src/botan/src/tests/test_otp.cpp:90,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/tests/test_otp.cpp:91,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/tests/test_otp.cpp:92,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_otp.cpp:94,1
    - Dst: Botan::TOTP::generate_totp
      Src: /src/botan/src/tests/test_otp.cpp:94,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_otp.cpp:96,1
    - Dst: Botan::TOTP::verify_totp
      Src: /src/botan/src/tests/test_otp.cpp:96,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_otp.cpp:97,1
    - Dst: Botan::TOTP::verify_totp
      Src: /src/botan/src/tests/test_otp.cpp:97,1
    - Dst: Test::Result::test_eq
      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_eq
      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_eq
      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
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ' hash_algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 103
    functionName: Botan_Tests::TOTP_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_otp.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - Botan::SymmetricKey
    - Botan_CLI::Timer::seconds
    - Test::Result::test_int_eq
    - Botan::TOTP::generate_totp
    - Botan::TOTP::verify_totp
    - get_req_sz
    - Botan_Tests::TOTP_KAT_Tests::from_timestring
    - Test::Result::test_eq
    - Botan::HashFunction::create
    - get_req_bin
    - get_req_str
    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:107,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_otp.cpp:108,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_otp.cpp:112,1
    - Dst: std::stoi
      Src: /src/botan/src/tests/test_otp.cpp:112,1
    - Dst: substr
      Src: /src/botan/src/tests/test_otp.cpp:112,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_otp.cpp:113,1
    - Dst: std::stoi
      Src: /src/botan/src/tests/test_otp.cpp:113,1
    - Dst: substr
      Src: /src/botan/src/tests/test_otp.cpp:113,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: Botan::calendar_point
      Src: /src/botan/src/tests/test_otp.cpp:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' time_str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 119
    functionName: Botan_Tests::TOTP_KAT_Tests::from_timestring
    functionSourceFile: /src/botan/src/tests/test_otp.cpp
    functionUses: 2
    functionsReached:
    - substr
    - static_cast<uint32_t>
    - Test_Error
    - size
    - std::stoi
    - Botan::calendar_point
    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:
    - get_req_bn
    - std::make_unique<Botan::DSA_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: 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::BigInt
    - Botan::DL_Group::from_name
    - std::make_unique<Botan::DSA_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: 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:
    - get_req_bn
    - std::make_unique<Botan::DSA_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: 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::BigInt
    - Botan::DL_Group::from_name
    - std::make_unique<Botan::DSA_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: 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:
    - get_req_bn
    - std::make_unique<Botan::DSA_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: 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::BigInt
    - Botan::DL_Group::from_name
    - std::make_unique<Botan::DSA_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: 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:
    - get_req_bn
    - std::make_unique<Botan::DSA_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: 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::BigInt
    - Botan::DL_Group::from_name
    - std::make_unique<Botan::DSA_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::CHECK
      Src: /src/botan/src/tests/test_hss_lms.cpp:28,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:30,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:33,1
    - Dst: Botan::HSS_LMS_Params::L
      Src: /src/botan/src/tests/test_hss_lms.cpp:33,1
    - Dst: Botan::HSS_Level
      Src: /src/botan/src/tests/test_hss_lms.cpp:33,1
    - Dst: Botan::HSS_LMS_Params::params_at_level
      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: test_is_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:35,1
    - Dst: lms_params
      Src: /src/botan/src/tests/test_hss_lms.cpp:35,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_hss_lms.cpp:35,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:36,1
    - Dst: lms_params
      Src: /src/botan/src/tests/test_hss_lms.cpp:37,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:39,1
    - Dst: lmots_params
      Src: /src/botan/src/tests/test_hss_lms.cpp:40,1
    - Dst: Botan::HSS_LMS_Params::params_at_level
      Src: /src/botan/src/tests/test_hss_lms.cpp:43,1
    - Dst: Botan::HSS_Level
      Src: /src/botan/src/tests/test_hss_lms.cpp:43,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:44,1
    - Dst: lms_params
      Src: /src/botan/src/tests/test_hss_lms.cpp:45,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:47,1
    - Dst: lmots_params
      Src: /src/botan/src/tests/test_hss_lms.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 54
    functionName: Botan_Tests::test_hss_lms_params_parsing
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::CHECK
    - Botan::HSS_LMS_Params::params_at_level
    - lms_params
    - lmots_params
    - test_no_throw
    - Botan::HSS_LMS_Params::L
    - std::string
    - Botan::HSS_Level
    - test_is_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: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    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: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    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: Botan::lock
      Src: /src/botan/src/tests/test_hss_lms.cpp:67,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hss_lms.cpp:67,1
    - Dst: std::make_unique<Botan::HSS_LMS_PrivateKey>
      Src: /src/botan/src/tests/test_hss_lms.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: Botan_Tests::HSS_LMS_Signature_Generation_Test::load_private_key
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - Botan::lock
    - 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: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    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: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    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:83,1
    - Dst: std::make_unique<Botan::HSS_LMS_PublicKey>
      Src: /src/botan/src/tests/test_hss_lms.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: Botan_Tests::HSS_LMS_Signature_Verify_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - std::make_unique<Botan::HSS_LMS_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: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    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: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    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:100,1
    - Dst: std::make_unique<Botan::HSS_LMS_PublicKey>
      Src: /src/botan/src/tests/test_hss_lms.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: Botan_Tests::HSS_LMS_Signature_Verify_Invalid_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - std::make_unique<Botan::HSS_LMS_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: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    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: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    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:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - raw_pk
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 118
    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:128,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:128,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:130,1
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:135,1
    - Dst: Botan::PK_Signer::signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:136,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:136,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:137,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hss_lms.cpp:138,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:138,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_hss_lms.cpp:138,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_hss_lms.cpp:138,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_hss_lms.cpp:139,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_hss_lms.cpp:141,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:142,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_hss_lms.cpp:142,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:143,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:144,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hss_lms.cpp:145,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_hss_lms.cpp:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 150
    functionName: Botan_Tests::HSS_LMS_Negative_Tests::test_flipped_signature_bits
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - Botan::PK_Signer::update
    - auto::at
    - Botan::fmt
    - Botan::create_private_key
    - Botan::PK_Verifier::check_signature
    - Botan::PK_Signer::signature
    - fuzzer_rng
    - Test::Result::test_no_throw
    - Test::Result::confirm
    - auto::size
    - Botan::PK_Verifier::update
    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:155,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:155,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:157,1
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:162,1
    - Dst: Botan::PK_Signer::signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:163,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:163,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:164,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hss_lms.cpp:165,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:165,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_hss_lms.cpp:165,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_hss_lms.cpp:165,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_hss_lms.cpp:166,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:167,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:168,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:169,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_hss_lms.cpp:169,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hss_lms.cpp:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 175
    functionName: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_signature
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - Botan::PK_Signer::update
    - Botan::create_private_key
    - Botan::PK_Verifier::check_signature
    - Botan::PK_Signer::signature
    - fuzzer_rng
    - Test::Result::test_no_throw
    - Test::Result::confirm
    - auto::size
    - Botan::PK_Verifier::update
    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:181,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:181,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:183,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:184,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_hss_lms.cpp:186,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_hss_lms.cpp:188,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_hss_lms.cpp:189,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_hss_lms.cpp:190,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_hss_lms.cpp:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 196
    functionName: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_private_key
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - auto::private_key_bits
    - Test::Result::test_throws
    - Botan::create_private_key
    - fuzzer_rng
    - Test::Result::test_no_throw
    - BOTAN_UNUSED
    - auto::size
    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:202,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:202,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:204,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:205,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_hss_lms.cpp:207,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_hss_lms.cpp:209,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_hss_lms.cpp:210,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_hss_lms.cpp:211,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_hss_lms.cpp:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 217
    functionName: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_public_key
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - Test::Result::test_throws
    - auto::public_key_bits
    - Botan::create_private_key
    - fuzzer_rng
    - Test::Result::test_no_throw
    - BOTAN_UNUSED
    - auto::size
    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:220,1
    - Dst: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:221,1
    - Dst: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_private_key
      Src: /src/botan/src/tests/test_hss_lms.cpp:222,1
    - Dst: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_public_key
      Src: /src/botan/src/tests/test_hss_lms.cpp:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 219
    functionDepth: 3
    functionLinenumber: 219
    functionLinenumberEnd: 224
    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_too_short_public_key
    - Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_signature
    - Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_private_key
    - Botan_Tests::HSS_LMS_Negative_Tests::test_flipped_signature_bits
    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:232,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:232,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:233,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_hss_lms.cpp:235,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_hss_lms.cpp:235,1
    - Dst: HSS_LMS_PrivateKey
      Src: /src/botan/src/tests/test_hss_lms.cpp:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - idx
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 237
    functionName: Botan_Tests::HSS_LMS_Statefulness_Test::create_private_key_with_idx
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - auto::private_key_bits
    - Botan::store_be
    - fuzzer_rng
    - HSS_LMS_PrivateKey
    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:242,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:242,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:243,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:245,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hss_lms.cpp:249,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_hss_lms.cpp:250,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_hss_lms.cpp:253,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:253,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hss_lms.cpp:254,1
    - Dst: Botan::HSS_Signature::from_bytes_or_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:256,1
    - Dst: Botan::LMS_Tree_Node_Idx
      Src: /src/botan/src/tests/test_hss_lms.cpp:256,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:258,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hss_lms.cpp:260,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_hss_lms.cpp:261,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_hss_lms.cpp:262,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_hss_lms.cpp:264,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:264,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hss_lms.cpp:265,1
    - Dst: Botan::HSS_Signature::from_bytes_or_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:267,1
    - Dst: Botan::LMS_Tree_Node_Idx
      Src: /src/botan/src/tests/test_hss_lms.cpp:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 239
    functionDepth: 2
    functionLinenumber: 239
    functionLinenumberEnd: 270
    functionName: Botan_Tests::HSS_LMS_Statefulness_Test::test_sig_changes_state
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - auto::private_key_bits
    - auto::remaining_operations
    - Test::Result::test_ne
    - fuzzer_rng
    - Botan::PK_Signer::sign_message
    - Botan::HSS_Signature::from_bytes_or_throw
    - Test::Result::confirm
    - HSS_LMS_PrivateKey
    - Botan::LMS_Tree_Node_Idx
    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:276,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:278,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:280,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hss_lms.cpp:282,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_hss_lms.cpp:282,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:283,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_hss_lms.cpp:283,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:283,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hss_lms.cpp:284,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_hss_lms.cpp:284,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_hss_lms.cpp:285,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_hss_lms.cpp:285,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:285,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hss_lms.cpp:286,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_hss_lms.cpp:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 272
    functionDepth: 3
    functionLinenumber: 272
    functionLinenumberEnd: 289
    functionName: Botan_Tests::HSS_LMS_Statefulness_Test::test_max_sig_count
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - auto::private_key_bits
    - Test::Result::test_throws
    - auto::remaining_operations
    - Botan_Tests::HSS_LMS_Statefulness_Test::create_private_key_with_idx
    - fuzzer_rng
    - Botan::PK_Signer::sign_message
    - Test::Result::test_no_throw
    - Test::Result::confirm
    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:291,1
    - Dst: Botan_Tests::HSS_LMS_Statefulness_Test::test_max_sig_count
      Src: /src/botan/src/tests/test_hss_lms.cpp:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 291
    functionDepth: 4
    functionLinenumber: 291
    functionLinenumberEnd: 291
    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_max_sig_count
    - Botan_Tests::HSS_LMS_Statefulness_Test::test_sig_changes_state
    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:302,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:302,1
    - Dst: auto::key_length
      Src: /src/botan/src/tests/test_hss_lms.cpp:303,1
    - Dst: Test::Result::test_gt
      Src: /src/botan/src/tests/test_hss_lms.cpp:304,1
    - Dst: auto::key_length
      Src: /src/botan/src/tests/test_hss_lms.cpp:305,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:310,1
    - Dst: Botan::PK_Verifier::hash_function
      Src: /src/botan/src/tests/test_hss_lms.cpp:310,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:313,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:313,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:313,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:316,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:317,1
    - Dst: Botan::PK_Signer::algorithm_identifier
      Src: /src/botan/src/tests/test_hss_lms.cpp:317,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_hss_lms.cpp:317,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:320,1
    - Dst: Botan::PK_Signer::hash_function
      Src: /src/botan/src/tests/test_hss_lms.cpp:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 298
    functionDepth: 2
    functionLinenumber: 298
    functionLinenumberEnd: 323
    functionName: Botan_Tests::HSS_LMS_Missing_API_Test::run
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - auto::private_key_bits
    - Botan::create_private_key
    - Test::Result::test_is_eq
    - auto::key_length
    - fuzzer_rng
    - Test::Result::test_eq
    - Botan::PK_Signer::hash_function
    - Test::Result::test_gt
    - auto::raw_private_key_bits
    - Botan::PK_Signer::algorithm_identifier
    - 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:28,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:30,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:33,1
    - Dst: Botan::HSS_LMS_Params::L
      Src: /src/botan/src/tests/test_hss_lms.cpp:33,1
    - Dst: Botan::HSS_Level
      Src: /src/botan/src/tests/test_hss_lms.cpp:33,1
    - Dst: Botan::HSS_LMS_Params::params_at_level
      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: test_is_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:35,1
    - Dst: lms_params
      Src: /src/botan/src/tests/test_hss_lms.cpp:35,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_hss_lms.cpp:35,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:36,1
    - Dst: lms_params
      Src: /src/botan/src/tests/test_hss_lms.cpp:37,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:39,1
    - Dst: lmots_params
      Src: /src/botan/src/tests/test_hss_lms.cpp:40,1
    - Dst: Botan::HSS_LMS_Params::params_at_level
      Src: /src/botan/src/tests/test_hss_lms.cpp:43,1
    - Dst: Botan::HSS_Level
      Src: /src/botan/src/tests/test_hss_lms.cpp:43,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:44,1
    - Dst: lms_params
      Src: /src/botan/src/tests/test_hss_lms.cpp:45,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:47,1
    - Dst: lmots_params
      Src: /src/botan/src/tests/test_hss_lms.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 54
    functionName: Botan_Tests::test_hss_lms_params_parsing
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::CHECK
    - Botan::HSS_LMS_Params::params_at_level
    - lms_params
    - lmots_params
    - test_no_throw
    - Botan::HSS_LMS_Params::L
    - std::string
    - Botan::HSS_Level
    - test_is_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: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    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: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    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: Botan::lock
      Src: /src/botan/src/tests/test_hss_lms.cpp:67,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hss_lms.cpp:67,1
    - Dst: std::make_unique<Botan::HSS_LMS_PrivateKey>
      Src: /src/botan/src/tests/test_hss_lms.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: Botan_Tests::HSS_LMS_Signature_Generation_Test::load_private_key
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - Botan::lock
    - 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: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    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: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    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:83,1
    - Dst: std::make_unique<Botan::HSS_LMS_PublicKey>
      Src: /src/botan/src/tests/test_hss_lms.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: Botan_Tests::HSS_LMS_Signature_Verify_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - std::make_unique<Botan::HSS_LMS_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: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    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: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    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:100,1
    - Dst: std::make_unique<Botan::HSS_LMS_PublicKey>
      Src: /src/botan/src/tests/test_hss_lms.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: Botan_Tests::HSS_LMS_Signature_Verify_Invalid_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - std::make_unique<Botan::HSS_LMS_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: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    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: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    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:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - raw_pk
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 118
    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:128,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:128,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:130,1
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:135,1
    - Dst: Botan::PK_Signer::signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:136,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:136,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:137,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hss_lms.cpp:138,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:138,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_hss_lms.cpp:138,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_hss_lms.cpp:138,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_hss_lms.cpp:139,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_hss_lms.cpp:141,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:142,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_hss_lms.cpp:142,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:143,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:144,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hss_lms.cpp:145,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_hss_lms.cpp:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 150
    functionName: Botan_Tests::HSS_LMS_Negative_Tests::test_flipped_signature_bits
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 1
    functionsReached:
    - auto::data
    - Botan::PK_Signer::update
    - auto::at
    - Botan::fmt
    - Botan::create_private_key
    - Botan::PK_Verifier::check_signature
    - Botan::PK_Signer::signature
    - fuzzer_rng
    - Test::Result::test_no_throw
    - Test::Result::confirm
    - auto::size
    - Botan::PK_Verifier::update
    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:155,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:155,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:157,1
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:162,1
    - Dst: Botan::PK_Signer::signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:163,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:163,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:164,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hss_lms.cpp:165,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:165,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_hss_lms.cpp:165,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_hss_lms.cpp:165,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_hss_lms.cpp:166,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:167,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:168,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:169,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_hss_lms.cpp:169,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hss_lms.cpp:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 175
    functionName: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_signature
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 1
    functionsReached:
    - auto::data
    - Botan::PK_Signer::update
    - Botan::create_private_key
    - Botan::PK_Verifier::check_signature
    - Botan::PK_Signer::signature
    - fuzzer_rng
    - Test::Result::test_no_throw
    - Test::Result::confirm
    - auto::size
    - Botan::PK_Verifier::update
    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:181,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:181,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:183,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:184,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_hss_lms.cpp:186,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_hss_lms.cpp:188,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_hss_lms.cpp:189,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_hss_lms.cpp:190,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_hss_lms.cpp:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 196
    functionName: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_private_key
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 1
    functionsReached:
    - auto::data
    - auto::private_key_bits
    - Test::Result::test_throws
    - Botan::create_private_key
    - fuzzer_rng
    - Test::Result::test_no_throw
    - BOTAN_UNUSED
    - auto::size
    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:202,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:202,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:204,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:205,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_hss_lms.cpp:207,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_hss_lms.cpp:209,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_hss_lms.cpp:210,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_hss_lms.cpp:211,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_hss_lms.cpp:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 217
    functionName: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_public_key
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 1
    functionsReached:
    - auto::data
    - Test::Result::test_throws
    - auto::public_key_bits
    - Botan::create_private_key
    - fuzzer_rng
    - Test::Result::test_no_throw
    - BOTAN_UNUSED
    - auto::size
    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:220,1
    - Dst: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:221,1
    - Dst: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_private_key
      Src: /src/botan/src/tests/test_hss_lms.cpp:222,1
    - Dst: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_public_key
      Src: /src/botan/src/tests/test_hss_lms.cpp:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 219
    functionDepth: 3
    functionLinenumber: 219
    functionLinenumberEnd: 224
    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_too_short_public_key
    - Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_signature
    - Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_private_key
    - Botan_Tests::HSS_LMS_Negative_Tests::test_flipped_signature_bits
    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:232,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:232,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:233,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_hss_lms.cpp:235,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_hss_lms.cpp:235,1
    - Dst: HSS_LMS_PrivateKey
      Src: /src/botan/src/tests/test_hss_lms.cpp:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - idx
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 237
    functionName: Botan_Tests::HSS_LMS_Statefulness_Test::create_private_key_with_idx
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 1
    functionsReached:
    - auto::data
    - auto::private_key_bits
    - Botan::store_be
    - fuzzer_rng
    - HSS_LMS_PrivateKey
    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:242,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:242,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:243,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:245,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hss_lms.cpp:249,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_hss_lms.cpp:250,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_hss_lms.cpp:253,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:253,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hss_lms.cpp:254,1
    - Dst: Botan::HSS_Signature::from_bytes_or_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:256,1
    - Dst: Botan::LMS_Tree_Node_Idx
      Src: /src/botan/src/tests/test_hss_lms.cpp:256,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:258,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hss_lms.cpp:260,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_hss_lms.cpp:261,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_hss_lms.cpp:262,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_hss_lms.cpp:264,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:264,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hss_lms.cpp:265,1
    - Dst: Botan::HSS_Signature::from_bytes_or_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:267,1
    - Dst: Botan::LMS_Tree_Node_Idx
      Src: /src/botan/src/tests/test_hss_lms.cpp:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 239
    functionDepth: 2
    functionLinenumber: 239
    functionLinenumberEnd: 270
    functionName: Botan_Tests::HSS_LMS_Statefulness_Test::test_sig_changes_state
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 1
    functionsReached:
    - auto::private_key_bits
    - auto::remaining_operations
    - Test::Result::test_ne
    - fuzzer_rng
    - Botan::PK_Signer::sign_message
    - Botan::HSS_Signature::from_bytes_or_throw
    - Test::Result::confirm
    - HSS_LMS_PrivateKey
    - Botan::LMS_Tree_Node_Idx
    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:276,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:278,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:280,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hss_lms.cpp:282,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_hss_lms.cpp:282,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:283,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_hss_lms.cpp:283,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:283,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hss_lms.cpp:284,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_hss_lms.cpp:284,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_hss_lms.cpp:285,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_hss_lms.cpp:285,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:285,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hss_lms.cpp:286,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_hss_lms.cpp:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 272
    functionDepth: 3
    functionLinenumber: 272
    functionLinenumberEnd: 289
    functionName: Botan_Tests::HSS_LMS_Statefulness_Test::test_max_sig_count
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 1
    functionsReached:
    - auto::private_key_bits
    - Test::Result::test_throws
    - auto::remaining_operations
    - Botan_Tests::HSS_LMS_Statefulness_Test::create_private_key_with_idx
    - fuzzer_rng
    - Botan::PK_Signer::sign_message
    - Test::Result::test_no_throw
    - Test::Result::confirm
    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:291,1
    - Dst: Botan_Tests::HSS_LMS_Statefulness_Test::test_max_sig_count
      Src: /src/botan/src/tests/test_hss_lms.cpp:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 291
    functionDepth: 4
    functionLinenumber: 291
    functionLinenumberEnd: 291
    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_max_sig_count
    - Botan_Tests::HSS_LMS_Statefulness_Test::test_sig_changes_state
    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:302,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:302,1
    - Dst: auto::key_length
      Src: /src/botan/src/tests/test_hss_lms.cpp:303,1
    - Dst: Test::Result::test_gt
      Src: /src/botan/src/tests/test_hss_lms.cpp:304,1
    - Dst: auto::key_length
      Src: /src/botan/src/tests/test_hss_lms.cpp:305,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:310,1
    - Dst: Botan::PK_Verifier::hash_function
      Src: /src/botan/src/tests/test_hss_lms.cpp:310,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:313,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:313,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:313,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:316,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:317,1
    - Dst: Botan::PK_Signer::algorithm_identifier
      Src: /src/botan/src/tests/test_hss_lms.cpp:317,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_hss_lms.cpp:317,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:320,1
    - Dst: Botan::PK_Signer::hash_function
      Src: /src/botan/src/tests/test_hss_lms.cpp:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 298
    functionDepth: 2
    functionLinenumber: 298
    functionLinenumberEnd: 323
    functionName: Botan_Tests::HSS_LMS_Missing_API_Test::run
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - auto::private_key_bits
    - Botan::create_private_key
    - Test::Result::test_is_eq
    - auto::key_length
    - fuzzer_rng
    - Test::Result::test_eq
    - Botan::PK_Signer::hash_function
    - Test::Result::test_gt
    - auto::raw_private_key_bits
    - Botan::PK_Signer::algorithm_identifier
    - 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:28,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:30,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:33,1
    - Dst: Botan::HSS_LMS_Params::L
      Src: /src/botan/src/tests/test_hss_lms.cpp:33,1
    - Dst: Botan::HSS_Level
      Src: /src/botan/src/tests/test_hss_lms.cpp:33,1
    - Dst: Botan::HSS_LMS_Params::params_at_level
      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: test_is_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:35,1
    - Dst: lms_params
      Src: /src/botan/src/tests/test_hss_lms.cpp:35,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_hss_lms.cpp:35,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:36,1
    - Dst: lms_params
      Src: /src/botan/src/tests/test_hss_lms.cpp:37,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:39,1
    - Dst: lmots_params
      Src: /src/botan/src/tests/test_hss_lms.cpp:40,1
    - Dst: Botan::HSS_LMS_Params::params_at_level
      Src: /src/botan/src/tests/test_hss_lms.cpp:43,1
    - Dst: Botan::HSS_Level
      Src: /src/botan/src/tests/test_hss_lms.cpp:43,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:44,1
    - Dst: lms_params
      Src: /src/botan/src/tests/test_hss_lms.cpp:45,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:47,1
    - Dst: lmots_params
      Src: /src/botan/src/tests/test_hss_lms.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 54
    functionName: Botan_Tests::test_hss_lms_params_parsing
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::CHECK
    - Botan::HSS_LMS_Params::params_at_level
    - lms_params
    - lmots_params
    - test_no_throw
    - Botan::HSS_LMS_Params::L
    - std::string
    - Botan::HSS_Level
    - test_is_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: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    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: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    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: Botan::lock
      Src: /src/botan/src/tests/test_hss_lms.cpp:67,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hss_lms.cpp:67,1
    - Dst: std::make_unique<Botan::HSS_LMS_PrivateKey>
      Src: /src/botan/src/tests/test_hss_lms.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: Botan_Tests::HSS_LMS_Signature_Generation_Test::load_private_key
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - Botan::lock
    - 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: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    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: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    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:83,1
    - Dst: std::make_unique<Botan::HSS_LMS_PublicKey>
      Src: /src/botan/src/tests/test_hss_lms.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: Botan_Tests::HSS_LMS_Signature_Verify_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - std::make_unique<Botan::HSS_LMS_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: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    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: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    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:100,1
    - Dst: std::make_unique<Botan::HSS_LMS_PublicKey>
      Src: /src/botan/src/tests/test_hss_lms.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: Botan_Tests::HSS_LMS_Signature_Verify_Invalid_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - std::make_unique<Botan::HSS_LMS_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: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    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: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    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:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - raw_pk
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 118
    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:128,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:128,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:130,1
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:135,1
    - Dst: Botan::PK_Signer::signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:136,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:136,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:137,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hss_lms.cpp:138,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:138,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_hss_lms.cpp:138,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_hss_lms.cpp:138,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_hss_lms.cpp:139,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_hss_lms.cpp:141,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:142,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_hss_lms.cpp:142,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:143,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:144,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hss_lms.cpp:145,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_hss_lms.cpp:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 150
    functionName: Botan_Tests::HSS_LMS_Negative_Tests::test_flipped_signature_bits
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 2
    functionsReached:
    - auto::data
    - Botan::PK_Signer::update
    - auto::at
    - Botan::fmt
    - Botan::create_private_key
    - Botan::PK_Verifier::check_signature
    - Botan::PK_Signer::signature
    - fuzzer_rng
    - Test::Result::test_no_throw
    - Test::Result::confirm
    - auto::size
    - Botan::PK_Verifier::update
    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:155,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:155,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:157,1
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:162,1
    - Dst: Botan::PK_Signer::signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:163,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:163,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:164,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hss_lms.cpp:165,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:165,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_hss_lms.cpp:165,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_hss_lms.cpp:165,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_hss_lms.cpp:166,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:167,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:168,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:169,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_hss_lms.cpp:169,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hss_lms.cpp:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 175
    functionName: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_signature
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 2
    functionsReached:
    - auto::data
    - Botan::PK_Signer::update
    - Botan::create_private_key
    - Botan::PK_Verifier::check_signature
    - Botan::PK_Signer::signature
    - fuzzer_rng
    - Test::Result::test_no_throw
    - Test::Result::confirm
    - auto::size
    - Botan::PK_Verifier::update
    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:181,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:181,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:183,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:184,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_hss_lms.cpp:186,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_hss_lms.cpp:188,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_hss_lms.cpp:189,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_hss_lms.cpp:190,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_hss_lms.cpp:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 196
    functionName: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_private_key
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 2
    functionsReached:
    - auto::data
    - auto::private_key_bits
    - Test::Result::test_throws
    - Botan::create_private_key
    - fuzzer_rng
    - Test::Result::test_no_throw
    - BOTAN_UNUSED
    - auto::size
    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:202,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:202,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:204,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:205,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_hss_lms.cpp:207,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_hss_lms.cpp:209,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_hss_lms.cpp:210,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_hss_lms.cpp:211,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_hss_lms.cpp:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 217
    functionName: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_public_key
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 2
    functionsReached:
    - auto::data
    - Test::Result::test_throws
    - auto::public_key_bits
    - Botan::create_private_key
    - fuzzer_rng
    - Test::Result::test_no_throw
    - BOTAN_UNUSED
    - auto::size
    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:220,1
    - Dst: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:221,1
    - Dst: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_private_key
      Src: /src/botan/src/tests/test_hss_lms.cpp:222,1
    - Dst: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_public_key
      Src: /src/botan/src/tests/test_hss_lms.cpp:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 219
    functionDepth: 3
    functionLinenumber: 219
    functionLinenumberEnd: 224
    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_too_short_public_key
    - Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_signature
    - Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_private_key
    - Botan_Tests::HSS_LMS_Negative_Tests::test_flipped_signature_bits
    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:232,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:232,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:233,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_hss_lms.cpp:235,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_hss_lms.cpp:235,1
    - Dst: HSS_LMS_PrivateKey
      Src: /src/botan/src/tests/test_hss_lms.cpp:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - idx
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 237
    functionName: Botan_Tests::HSS_LMS_Statefulness_Test::create_private_key_with_idx
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 2
    functionsReached:
    - auto::data
    - auto::private_key_bits
    - Botan::store_be
    - fuzzer_rng
    - HSS_LMS_PrivateKey
    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:242,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:242,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:243,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:245,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hss_lms.cpp:249,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_hss_lms.cpp:250,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_hss_lms.cpp:253,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:253,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hss_lms.cpp:254,1
    - Dst: Botan::HSS_Signature::from_bytes_or_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:256,1
    - Dst: Botan::LMS_Tree_Node_Idx
      Src: /src/botan/src/tests/test_hss_lms.cpp:256,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:258,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hss_lms.cpp:260,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_hss_lms.cpp:261,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_hss_lms.cpp:262,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_hss_lms.cpp:264,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:264,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hss_lms.cpp:265,1
    - Dst: Botan::HSS_Signature::from_bytes_or_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:267,1
    - Dst: Botan::LMS_Tree_Node_Idx
      Src: /src/botan/src/tests/test_hss_lms.cpp:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 239
    functionDepth: 2
    functionLinenumber: 239
    functionLinenumberEnd: 270
    functionName: Botan_Tests::HSS_LMS_Statefulness_Test::test_sig_changes_state
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 2
    functionsReached:
    - auto::private_key_bits
    - auto::remaining_operations
    - Test::Result::test_ne
    - fuzzer_rng
    - Botan::PK_Signer::sign_message
    - Botan::HSS_Signature::from_bytes_or_throw
    - Test::Result::confirm
    - HSS_LMS_PrivateKey
    - Botan::LMS_Tree_Node_Idx
    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:276,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:278,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:280,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hss_lms.cpp:282,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_hss_lms.cpp:282,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:283,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_hss_lms.cpp:283,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:283,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hss_lms.cpp:284,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_hss_lms.cpp:284,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_hss_lms.cpp:285,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_hss_lms.cpp:285,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:285,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hss_lms.cpp:286,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_hss_lms.cpp:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 272
    functionDepth: 3
    functionLinenumber: 272
    functionLinenumberEnd: 289
    functionName: Botan_Tests::HSS_LMS_Statefulness_Test::test_max_sig_count
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 2
    functionsReached:
    - auto::private_key_bits
    - Test::Result::test_throws
    - auto::remaining_operations
    - Botan_Tests::HSS_LMS_Statefulness_Test::create_private_key_with_idx
    - fuzzer_rng
    - Botan::PK_Signer::sign_message
    - Test::Result::test_no_throw
    - Test::Result::confirm
    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:291,1
    - Dst: Botan_Tests::HSS_LMS_Statefulness_Test::test_max_sig_count
      Src: /src/botan/src/tests/test_hss_lms.cpp:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 291
    functionDepth: 4
    functionLinenumber: 291
    functionLinenumberEnd: 291
    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_max_sig_count
    - Botan_Tests::HSS_LMS_Statefulness_Test::test_sig_changes_state
    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:302,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:302,1
    - Dst: auto::key_length
      Src: /src/botan/src/tests/test_hss_lms.cpp:303,1
    - Dst: Test::Result::test_gt
      Src: /src/botan/src/tests/test_hss_lms.cpp:304,1
    - Dst: auto::key_length
      Src: /src/botan/src/tests/test_hss_lms.cpp:305,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:310,1
    - Dst: Botan::PK_Verifier::hash_function
      Src: /src/botan/src/tests/test_hss_lms.cpp:310,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:313,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:313,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:313,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:316,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:317,1
    - Dst: Botan::PK_Signer::algorithm_identifier
      Src: /src/botan/src/tests/test_hss_lms.cpp:317,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_hss_lms.cpp:317,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:320,1
    - Dst: Botan::PK_Signer::hash_function
      Src: /src/botan/src/tests/test_hss_lms.cpp:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 298
    functionDepth: 2
    functionLinenumber: 298
    functionLinenumberEnd: 323
    functionName: Botan_Tests::HSS_LMS_Missing_API_Test::run
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - auto::private_key_bits
    - Botan::create_private_key
    - Test::Result::test_is_eq
    - auto::key_length
    - fuzzer_rng
    - Test::Result::test_eq
    - Botan::PK_Signer::hash_function
    - Test::Result::test_gt
    - auto::raw_private_key_bits
    - Botan::PK_Signer::algorithm_identifier
    - 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:28,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:30,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:33,1
    - Dst: Botan::HSS_LMS_Params::L
      Src: /src/botan/src/tests/test_hss_lms.cpp:33,1
    - Dst: Botan::HSS_Level
      Src: /src/botan/src/tests/test_hss_lms.cpp:33,1
    - Dst: Botan::HSS_LMS_Params::params_at_level
      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: test_is_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:35,1
    - Dst: lms_params
      Src: /src/botan/src/tests/test_hss_lms.cpp:35,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_hss_lms.cpp:35,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:36,1
    - Dst: lms_params
      Src: /src/botan/src/tests/test_hss_lms.cpp:37,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:39,1
    - Dst: lmots_params
      Src: /src/botan/src/tests/test_hss_lms.cpp:40,1
    - Dst: Botan::HSS_LMS_Params::params_at_level
      Src: /src/botan/src/tests/test_hss_lms.cpp:43,1
    - Dst: Botan::HSS_Level
      Src: /src/botan/src/tests/test_hss_lms.cpp:43,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:44,1
    - Dst: lms_params
      Src: /src/botan/src/tests/test_hss_lms.cpp:45,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:47,1
    - Dst: lmots_params
      Src: /src/botan/src/tests/test_hss_lms.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 54
    functionName: Botan_Tests::test_hss_lms_params_parsing
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::CHECK
    - Botan::HSS_LMS_Params::params_at_level
    - lms_params
    - lmots_params
    - test_no_throw
    - Botan::HSS_LMS_Params::L
    - std::string
    - Botan::HSS_Level
    - test_is_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: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    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: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    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: Botan::lock
      Src: /src/botan/src/tests/test_hss_lms.cpp:67,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hss_lms.cpp:67,1
    - Dst: std::make_unique<Botan::HSS_LMS_PrivateKey>
      Src: /src/botan/src/tests/test_hss_lms.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: Botan_Tests::HSS_LMS_Signature_Generation_Test::load_private_key
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - Botan::lock
    - 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: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    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: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    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:83,1
    - Dst: std::make_unique<Botan::HSS_LMS_PublicKey>
      Src: /src/botan/src/tests/test_hss_lms.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: Botan_Tests::HSS_LMS_Signature_Verify_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - std::make_unique<Botan::HSS_LMS_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: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    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: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    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:100,1
    - Dst: std::make_unique<Botan::HSS_LMS_PublicKey>
      Src: /src/botan/src/tests/test_hss_lms.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: Botan_Tests::HSS_LMS_Signature_Verify_Invalid_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - std::make_unique<Botan::HSS_LMS_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: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    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: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    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:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - raw_pk
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 118
    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:128,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:128,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:130,1
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:135,1
    - Dst: Botan::PK_Signer::signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:136,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:136,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:137,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hss_lms.cpp:138,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:138,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_hss_lms.cpp:138,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_hss_lms.cpp:138,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_hss_lms.cpp:139,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_hss_lms.cpp:141,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:142,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_hss_lms.cpp:142,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:143,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:144,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hss_lms.cpp:145,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_hss_lms.cpp:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 150
    functionName: Botan_Tests::HSS_LMS_Negative_Tests::test_flipped_signature_bits
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 3
    functionsReached:
    - auto::data
    - Botan::PK_Signer::update
    - auto::at
    - Botan::fmt
    - Botan::create_private_key
    - Botan::PK_Verifier::check_signature
    - Botan::PK_Signer::signature
    - fuzzer_rng
    - Test::Result::test_no_throw
    - Test::Result::confirm
    - auto::size
    - Botan::PK_Verifier::update
    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:155,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:155,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:157,1
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:162,1
    - Dst: Botan::PK_Signer::signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:163,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:163,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:164,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hss_lms.cpp:165,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:165,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_hss_lms.cpp:165,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_hss_lms.cpp:165,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_hss_lms.cpp:166,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:167,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/tests/test_hss_lms.cpp:168,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:169,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_hss_lms.cpp:169,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hss_lms.cpp:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 175
    functionName: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_signature
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 3
    functionsReached:
    - auto::data
    - Botan::PK_Signer::update
    - Botan::create_private_key
    - Botan::PK_Verifier::check_signature
    - Botan::PK_Signer::signature
    - fuzzer_rng
    - Test::Result::test_no_throw
    - Test::Result::confirm
    - auto::size
    - Botan::PK_Verifier::update
    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:181,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:181,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:183,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:184,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_hss_lms.cpp:186,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_hss_lms.cpp:188,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_hss_lms.cpp:189,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_hss_lms.cpp:190,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_hss_lms.cpp:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 196
    functionName: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_private_key
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 3
    functionsReached:
    - auto::data
    - auto::private_key_bits
    - Test::Result::test_throws
    - Botan::create_private_key
    - fuzzer_rng
    - Test::Result::test_no_throw
    - BOTAN_UNUSED
    - auto::size
    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:202,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:202,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:204,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:205,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_hss_lms.cpp:207,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_hss_lms.cpp:209,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_hss_lms.cpp:210,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_hss_lms.cpp:211,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_hss_lms.cpp:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 217
    functionName: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_public_key
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 3
    functionsReached:
    - auto::data
    - Test::Result::test_throws
    - auto::public_key_bits
    - Botan::create_private_key
    - fuzzer_rng
    - Test::Result::test_no_throw
    - BOTAN_UNUSED
    - auto::size
    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:220,1
    - Dst: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_signature
      Src: /src/botan/src/tests/test_hss_lms.cpp:221,1
    - Dst: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_private_key
      Src: /src/botan/src/tests/test_hss_lms.cpp:222,1
    - Dst: Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_public_key
      Src: /src/botan/src/tests/test_hss_lms.cpp:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 219
    functionDepth: 3
    functionLinenumber: 219
    functionLinenumberEnd: 224
    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_too_short_public_key
    - Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_signature
    - Botan_Tests::HSS_LMS_Negative_Tests::test_too_short_private_key
    - Botan_Tests::HSS_LMS_Negative_Tests::test_flipped_signature_bits
    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:232,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:232,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:233,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_hss_lms.cpp:235,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_hss_lms.cpp:235,1
    - Dst: HSS_LMS_PrivateKey
      Src: /src/botan/src/tests/test_hss_lms.cpp:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - idx
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 231
    functionDepth: 2
    functionLinenumber: 231
    functionLinenumberEnd: 237
    functionName: Botan_Tests::HSS_LMS_Statefulness_Test::create_private_key_with_idx
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 3
    functionsReached:
    - auto::data
    - auto::private_key_bits
    - Botan::store_be
    - fuzzer_rng
    - HSS_LMS_PrivateKey
    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:242,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:242,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:243,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:245,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hss_lms.cpp:249,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_hss_lms.cpp:250,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_hss_lms.cpp:253,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:253,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hss_lms.cpp:254,1
    - Dst: Botan::HSS_Signature::from_bytes_or_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:256,1
    - Dst: Botan::LMS_Tree_Node_Idx
      Src: /src/botan/src/tests/test_hss_lms.cpp:256,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:258,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hss_lms.cpp:260,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_hss_lms.cpp:261,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_hss_lms.cpp:262,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_hss_lms.cpp:264,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:264,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hss_lms.cpp:265,1
    - Dst: Botan::HSS_Signature::from_bytes_or_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:267,1
    - Dst: Botan::LMS_Tree_Node_Idx
      Src: /src/botan/src/tests/test_hss_lms.cpp:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 239
    functionDepth: 2
    functionLinenumber: 239
    functionLinenumberEnd: 270
    functionName: Botan_Tests::HSS_LMS_Statefulness_Test::test_sig_changes_state
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 3
    functionsReached:
    - auto::private_key_bits
    - auto::remaining_operations
    - Test::Result::test_ne
    - fuzzer_rng
    - Botan::PK_Signer::sign_message
    - Botan::HSS_Signature::from_bytes_or_throw
    - Test::Result::confirm
    - HSS_LMS_PrivateKey
    - Botan::LMS_Tree_Node_Idx
    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:276,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:278,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:280,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hss_lms.cpp:282,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_hss_lms.cpp:282,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_hss_lms.cpp:283,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_hss_lms.cpp:283,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:283,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hss_lms.cpp:284,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_hss_lms.cpp:284,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_hss_lms.cpp:285,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_hss_lms.cpp:285,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:285,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hss_lms.cpp:286,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_hss_lms.cpp:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 272
    functionDepth: 3
    functionLinenumber: 272
    functionLinenumberEnd: 289
    functionName: Botan_Tests::HSS_LMS_Statefulness_Test::test_max_sig_count
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 3
    functionsReached:
    - auto::private_key_bits
    - Test::Result::test_throws
    - auto::remaining_operations
    - Botan_Tests::HSS_LMS_Statefulness_Test::create_private_key_with_idx
    - fuzzer_rng
    - Botan::PK_Signer::sign_message
    - Test::Result::test_no_throw
    - Test::Result::confirm
    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:291,1
    - Dst: Botan_Tests::HSS_LMS_Statefulness_Test::test_max_sig_count
      Src: /src/botan/src/tests/test_hss_lms.cpp:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 291
    functionDepth: 4
    functionLinenumber: 291
    functionLinenumberEnd: 291
    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_max_sig_count
    - Botan_Tests::HSS_LMS_Statefulness_Test::test_sig_changes_state
    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:302,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:302,1
    - Dst: auto::key_length
      Src: /src/botan/src/tests/test_hss_lms.cpp:303,1
    - Dst: Test::Result::test_gt
      Src: /src/botan/src/tests/test_hss_lms.cpp:304,1
    - Dst: auto::key_length
      Src: /src/botan/src/tests/test_hss_lms.cpp:305,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:310,1
    - Dst: Botan::PK_Verifier::hash_function
      Src: /src/botan/src/tests/test_hss_lms.cpp:310,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:313,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:313,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_hss_lms.cpp:313,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_hss_lms.cpp:316,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:317,1
    - Dst: Botan::PK_Signer::algorithm_identifier
      Src: /src/botan/src/tests/test_hss_lms.cpp:317,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_hss_lms.cpp:317,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hss_lms.cpp:320,1
    - Dst: Botan::PK_Signer::hash_function
      Src: /src/botan/src/tests/test_hss_lms.cpp:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 298
    functionDepth: 2
    functionLinenumber: 298
    functionLinenumberEnd: 323
    functionName: Botan_Tests::HSS_LMS_Missing_API_Test::run
    functionSourceFile: /src/botan/src/tests/test_hss_lms.cpp
    functionUses: 0
    functionsReached:
    - auto::private_key_bits
    - Botan::create_private_key
    - Test::Result::test_is_eq
    - auto::key_length
    - fuzzer_rng
    - Test::Result::test_eq
    - Botan::PK_Signer::hash_function
    - Test::Result::test_gt
    - auto::raw_private_key_bits
    - Botan::PK_Signer::algorithm_identifier
    - 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:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: Botan_Tests::encode_size
    functionSourceFile: /src/botan/src/tests/test_keccak_helpers.cpp
    functionUses: 0
    functionsReached:
    - Botan::keccak_int_encoding_size
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) encode_size(size_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::keccak_int_encoding_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:30,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:32,1
    - Dst: Botan::keccak_int_left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' result'
    - x
    argTypes:
    - Test::Result
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: Botan_Tests::left_encode
    functionSourceFile: /src/botan/src/tests/test_keccak_helpers.cpp
    functionUses: 0
    functionsReached:
    - Botan::keccak_int_encoding_size
    - test_eq
    - Botan::keccak_int_left_encode
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) 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:37,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:39,1
    - Dst: Botan::keccak_int_right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' result'
    - x
    argTypes:
    - Test::Result
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: Botan_Tests::right_encode
    functionSourceFile: /src/botan/src/tests/test_keccak_helpers.cpp
    functionUses: 0
    functionsReached:
    - Botan::keccak_int_right_encode
    - Botan::keccak_int_encoding_size
    - test_eq
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) right_encode(Test::Result& result, size_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: Botan_Tests::hex
    functionSourceFile: /src/botan/src/tests/test_keccak_helpers.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) hex(std::string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:50,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:51,1
    - Dst: auto::output_stdvec
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: Botan_Tests::shake32
    functionSourceFile: /src/botan/src/tests/test_keccak_helpers.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - Botan::XOF::create_or_throw
    - auto::output_stdvec
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) shake32(std::vector<uint8_t> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:59,1
    - Dst: test_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_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: test_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:63,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:63,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:64,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:64,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:65,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:65,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:66,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:66,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:67,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:67,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:70,1
    - Dst: test_is_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: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:72,1
    - Dst: test_is_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: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:73,1
    - Dst: test_is_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: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:74,1
    - Dst: test_is_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: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:75,1
    - Dst: test_is_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::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:76,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:77,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:77,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:77,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:78,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:78,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:78,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:79,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:79,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:79,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:80,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:80,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:80,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:81,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:81,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:81,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:84,1
    - Dst: test_is_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: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:86,1
    - Dst: test_is_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: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:87,1
    - Dst: test_is_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: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:88,1
    - Dst: test_is_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: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:89,1
    - Dst: test_is_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::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:90,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:91,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:91,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:91,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:92,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:92,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:92,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:93,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:93,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:93,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:94,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:94,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:94,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:95,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:95,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:95,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:98,1
    - Dst: Botan::keccak_absorb_padded_strings_encoding
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:105,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:106,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:108,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:110,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:117,1
    - Dst: Botan::keccak_absorb_padded_strings_encoding
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:127,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:127,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:128,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:130,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:132,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:143,1
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:147,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:148,1
    - Dst: Botan::keccak_absorb_padded_strings_encoding
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:151,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:152,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:154,1
    - Dst: auto::output_stdvec
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:155,1
    - Dst: Botan_Tests::shake32
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:156,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:156,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:163,1
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:165,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:166,1
    - Dst: Botan::keccak_absorb_padded_strings_encoding
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:172,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:172,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:173,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:175,1
    - Dst: auto::output_stdvec
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:176,1
    - Dst: Botan_Tests::shake32
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:177,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 188
    functionName: Botan_Tests::keccak_helpers
    functionSourceFile: /src/botan/src/tests/test_keccak_helpers.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan_Tests::CHECK
    - Botan_Tests::right_encode
    - Botan::keccak_absorb_padded_strings_encoding
    - Botan_Tests::left_encode
    - Botan::as_span_of_bytes
    - Botan::XOF::create_or_throw
    - Botan_Tests::shake32
    - Botan_Tests::encode_size
    - Botan_Tests::hex
    - auto::output_stdvec
    - auto::block_size
    - test_is_eq
    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:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: Botan_Tests::encode_size
    functionSourceFile: /src/botan/src/tests/test_keccak_helpers.cpp
    functionUses: 1
    functionsReached:
    - Botan::keccak_int_encoding_size
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) encode_size(size_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::keccak_int_encoding_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:30,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:32,1
    - Dst: Botan::keccak_int_left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' result'
    - x
    argTypes:
    - Test::Result
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: Botan_Tests::left_encode
    functionSourceFile: /src/botan/src/tests/test_keccak_helpers.cpp
    functionUses: 1
    functionsReached:
    - Botan::keccak_int_encoding_size
    - test_eq
    - Botan::keccak_int_left_encode
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) 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:37,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:39,1
    - Dst: Botan::keccak_int_right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' result'
    - x
    argTypes:
    - Test::Result
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: Botan_Tests::right_encode
    functionSourceFile: /src/botan/src/tests/test_keccak_helpers.cpp
    functionUses: 1
    functionsReached:
    - Botan::keccak_int_right_encode
    - Botan::keccak_int_encoding_size
    - test_eq
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) right_encode(Test::Result& result, size_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: Botan_Tests::hex
    functionSourceFile: /src/botan/src/tests/test_keccak_helpers.cpp
    functionUses: 1
    functionsReached:
    - Botan::hex_decode
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) hex(std::string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:50,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:51,1
    - Dst: auto::output_stdvec
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: Botan_Tests::shake32
    functionSourceFile: /src/botan/src/tests/test_keccak_helpers.cpp
    functionUses: 1
    functionsReached:
    - auto::update
    - Botan::XOF::create_or_throw
    - auto::output_stdvec
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) shake32(std::vector<uint8_t> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:59,1
    - Dst: test_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_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: test_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:63,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:63,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:64,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:64,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:65,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:65,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:66,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:66,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:67,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:67,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:70,1
    - Dst: test_is_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: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:72,1
    - Dst: test_is_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: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:73,1
    - Dst: test_is_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: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:74,1
    - Dst: test_is_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: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:75,1
    - Dst: test_is_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::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:76,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:77,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:77,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:77,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:78,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:78,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:78,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:79,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:79,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:79,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:80,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:80,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:80,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:81,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:81,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:81,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:84,1
    - Dst: test_is_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: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:86,1
    - Dst: test_is_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: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:87,1
    - Dst: test_is_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: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:88,1
    - Dst: test_is_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: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:89,1
    - Dst: test_is_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::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:90,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:91,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:91,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:91,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:92,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:92,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:92,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:93,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:93,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:93,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:94,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:94,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:94,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:95,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:95,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:95,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:98,1
    - Dst: Botan::keccak_absorb_padded_strings_encoding
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:105,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:106,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:108,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:110,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:117,1
    - Dst: Botan::keccak_absorb_padded_strings_encoding
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:127,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:127,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:128,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:130,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:132,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:143,1
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:147,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:148,1
    - Dst: Botan::keccak_absorb_padded_strings_encoding
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:151,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:152,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:154,1
    - Dst: auto::output_stdvec
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:155,1
    - Dst: Botan_Tests::shake32
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:156,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:156,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:163,1
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:165,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:166,1
    - Dst: Botan::keccak_absorb_padded_strings_encoding
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:172,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:172,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:173,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:175,1
    - Dst: auto::output_stdvec
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:176,1
    - Dst: Botan_Tests::shake32
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:177,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 188
    functionName: Botan_Tests::keccak_helpers
    functionSourceFile: /src/botan/src/tests/test_keccak_helpers.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan_Tests::CHECK
    - Botan_Tests::right_encode
    - Botan::keccak_absorb_padded_strings_encoding
    - Botan_Tests::left_encode
    - Botan::as_span_of_bytes
    - Botan::XOF::create_or_throw
    - Botan_Tests::shake32
    - Botan_Tests::encode_size
    - Botan_Tests::hex
    - auto::output_stdvec
    - auto::block_size
    - test_is_eq
    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:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: Botan_Tests::encode_size
    functionSourceFile: /src/botan/src/tests/test_keccak_helpers.cpp
    functionUses: 2
    functionsReached:
    - Botan::keccak_int_encoding_size
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) encode_size(size_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::keccak_int_encoding_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:30,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:32,1
    - Dst: Botan::keccak_int_left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' result'
    - x
    argTypes:
    - Test::Result
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: Botan_Tests::left_encode
    functionSourceFile: /src/botan/src/tests/test_keccak_helpers.cpp
    functionUses: 2
    functionsReached:
    - Botan::keccak_int_encoding_size
    - test_eq
    - Botan::keccak_int_left_encode
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) 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:37,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:39,1
    - Dst: Botan::keccak_int_right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' result'
    - x
    argTypes:
    - Test::Result
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: Botan_Tests::right_encode
    functionSourceFile: /src/botan/src/tests/test_keccak_helpers.cpp
    functionUses: 2
    functionsReached:
    - Botan::keccak_int_right_encode
    - Botan::keccak_int_encoding_size
    - test_eq
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) right_encode(Test::Result& result, size_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: Botan_Tests::hex
    functionSourceFile: /src/botan/src/tests/test_keccak_helpers.cpp
    functionUses: 2
    functionsReached:
    - Botan::hex_decode
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) hex(std::string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:50,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:51,1
    - Dst: auto::output_stdvec
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: Botan_Tests::shake32
    functionSourceFile: /src/botan/src/tests/test_keccak_helpers.cpp
    functionUses: 2
    functionsReached:
    - auto::update
    - Botan::XOF::create_or_throw
    - auto::output_stdvec
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) shake32(std::vector<uint8_t> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:59,1
    - Dst: test_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_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: test_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:63,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:63,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:64,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:64,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:65,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:65,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:66,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:66,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:67,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:67,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:70,1
    - Dst: test_is_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: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:72,1
    - Dst: test_is_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: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:73,1
    - Dst: test_is_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: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:74,1
    - Dst: test_is_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: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:75,1
    - Dst: test_is_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::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:76,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:77,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:77,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:77,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:78,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:78,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:78,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:79,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:79,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:79,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:80,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:80,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:80,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:81,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:81,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:81,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:84,1
    - Dst: test_is_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: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:86,1
    - Dst: test_is_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: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:87,1
    - Dst: test_is_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: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:88,1
    - Dst: test_is_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: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:89,1
    - Dst: test_is_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::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:90,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:91,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:91,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:91,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:92,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:92,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:92,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:93,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:93,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:93,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:94,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:94,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:94,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:95,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:95,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:95,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:98,1
    - Dst: Botan::keccak_absorb_padded_strings_encoding
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:105,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:106,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:108,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:110,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:117,1
    - Dst: Botan::keccak_absorb_padded_strings_encoding
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:127,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:127,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:128,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:130,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:132,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:143,1
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:147,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:148,1
    - Dst: Botan::keccak_absorb_padded_strings_encoding
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:151,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:152,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:154,1
    - Dst: auto::output_stdvec
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:155,1
    - Dst: Botan_Tests::shake32
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:156,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:156,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:163,1
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:165,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:166,1
    - Dst: Botan::keccak_absorb_padded_strings_encoding
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:172,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:172,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:173,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:175,1
    - Dst: auto::output_stdvec
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:176,1
    - Dst: Botan_Tests::shake32
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:177,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 188
    functionName: Botan_Tests::keccak_helpers
    functionSourceFile: /src/botan/src/tests/test_keccak_helpers.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan_Tests::CHECK
    - Botan_Tests::right_encode
    - Botan::keccak_absorb_padded_strings_encoding
    - Botan_Tests::left_encode
    - Botan::as_span_of_bytes
    - Botan::XOF::create_or_throw
    - Botan_Tests::shake32
    - Botan_Tests::encode_size
    - Botan_Tests::hex
    - auto::output_stdvec
    - auto::block_size
    - test_is_eq
    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:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: Botan_Tests::encode_size
    functionSourceFile: /src/botan/src/tests/test_keccak_helpers.cpp
    functionUses: 3
    functionsReached:
    - Botan::keccak_int_encoding_size
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) encode_size(size_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::keccak_int_encoding_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:30,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:32,1
    - Dst: Botan::keccak_int_left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' result'
    - x
    argTypes:
    - Test::Result
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: Botan_Tests::left_encode
    functionSourceFile: /src/botan/src/tests/test_keccak_helpers.cpp
    functionUses: 3
    functionsReached:
    - Botan::keccak_int_encoding_size
    - test_eq
    - Botan::keccak_int_left_encode
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) 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:37,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:39,1
    - Dst: Botan::keccak_int_right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' result'
    - x
    argTypes:
    - Test::Result
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: Botan_Tests::right_encode
    functionSourceFile: /src/botan/src/tests/test_keccak_helpers.cpp
    functionUses: 3
    functionsReached:
    - Botan::keccak_int_right_encode
    - Botan::keccak_int_encoding_size
    - test_eq
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) right_encode(Test::Result& result, size_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: Botan_Tests::hex
    functionSourceFile: /src/botan/src/tests/test_keccak_helpers.cpp
    functionUses: 3
    functionsReached:
    - Botan::hex_decode
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) hex(std::string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:50,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:51,1
    - Dst: auto::output_stdvec
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: Botan_Tests::shake32
    functionSourceFile: /src/botan/src/tests/test_keccak_helpers.cpp
    functionUses: 3
    functionsReached:
    - auto::update
    - Botan::XOF::create_or_throw
    - auto::output_stdvec
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) shake32(std::vector<uint8_t> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:59,1
    - Dst: test_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_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: test_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:63,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:63,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:64,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:64,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:65,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:65,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:66,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:66,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:67,1
    - Dst: Botan_Tests::encode_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:67,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:70,1
    - Dst: test_is_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: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:72,1
    - Dst: test_is_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: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:73,1
    - Dst: test_is_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: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:74,1
    - Dst: test_is_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: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:75,1
    - Dst: test_is_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::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:76,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:77,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:77,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:77,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:78,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:78,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:78,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:79,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:79,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:79,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:80,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:80,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:80,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:81,1
    - Dst: Botan_Tests::left_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:81,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:81,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:84,1
    - Dst: test_is_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: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:86,1
    - Dst: test_is_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: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:87,1
    - Dst: test_is_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: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:88,1
    - Dst: test_is_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: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:89,1
    - Dst: test_is_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::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:90,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:91,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:91,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:91,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:92,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:92,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:92,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:93,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:93,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:93,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:94,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:94,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:94,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:95,1
    - Dst: Botan_Tests::right_encode
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:95,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:95,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:98,1
    - Dst: Botan::keccak_absorb_padded_strings_encoding
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:105,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:106,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:108,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:110,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:117,1
    - Dst: Botan::keccak_absorb_padded_strings_encoding
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:127,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:127,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:128,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:130,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:132,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:143,1
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:147,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:148,1
    - Dst: Botan::keccak_absorb_padded_strings_encoding
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:151,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:152,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:154,1
    - Dst: auto::output_stdvec
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:155,1
    - Dst: Botan_Tests::shake32
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:156,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:156,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:163,1
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:165,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:166,1
    - Dst: Botan::keccak_absorb_padded_strings_encoding
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:172,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:172,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:173,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:175,1
    - Dst: auto::output_stdvec
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:176,1
    - Dst: Botan_Tests::shake32
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:177,1
    - Dst: Botan_Tests::hex
      Src: /src/botan/src/tests/test_keccak_helpers.cpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 188
    functionName: Botan_Tests::keccak_helpers
    functionSourceFile: /src/botan/src/tests/test_keccak_helpers.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan_Tests::CHECK
    - Botan_Tests::right_encode
    - Botan::keccak_absorb_padded_strings_encoding
    - Botan_Tests::left_encode
    - Botan::as_span_of_bytes
    - Botan::XOF::create_or_throw
    - Botan_Tests::shake32
    - Botan_Tests::encode_size
    - Botan_Tests::hex
    - auto::output_stdvec
    - auto::block_size
    - test_is_eq
    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: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::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: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_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:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 62
    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: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_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: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_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: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_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:75,1
    - Dst: std::chrono::hours
      Src: /src/botan/src/tests/test_tls_session_manager.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_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: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    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:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 86
    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: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    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: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    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: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    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: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    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:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 105
    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:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 109
    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:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    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: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    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:123,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:124,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:125,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:125,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:128,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:131,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:133,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:137,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:138,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:140,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: 143
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 143
    functionName: Botan_Tests::default_session
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Ciphersuite::from_name
    - TestSession::TestSession
    - Test_Error
    - Botan_CLI::Timer::seconds
    - Botan_Tests::server_info
    - is_pre_tls_13
    - tls_current_timestamp
    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:148,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:150,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:158,1
    - Dst: std::optional::emplace
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:158,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:160,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:162,1
    - Dst: std::optional::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:162,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:162,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:164,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:165,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:167,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:167,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:168,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:168,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:171,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:172,1
    - Dst: std::optional::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:172,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:174,1
    - Dst: std::optional::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:176,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:176,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:177,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:177,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:178,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:178,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:179,1
    - Dst: auto::ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:179,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:180,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:180,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:184,1
    - Dst: std::optional::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:186,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:186,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:187,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:187,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:188,1
    - Dst: session::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:189,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:190,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:191,1
    - Dst: session::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:191,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:192,1
    - Dst: handle::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:192,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:193,1
    - Dst: handle::ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:193,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:197,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:199,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:200,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:200,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:201,1
    - Dst: auto::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:202,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:203,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:204,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:204,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:208,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:210,1
    - Dst: Botan::TLS::Opaque_Session_Handle
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:210,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:211,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:211,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:212,1
    - Dst: auto::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:213,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:214,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:215,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:215,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:219,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:221,1
    - Dst: Botan::TLS::Session_Ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:221,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:222,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:222,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:225,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:227,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:227,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:228,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:228,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:231,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:233,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:233,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:234,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:234,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:237,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:239,1
    - Dst: std::optional::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:239,1
    - Dst: test_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: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:243,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:245,1
    - Dst: std::optional::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:247,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:247,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:248,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:248,1
    - Dst: std::optional::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:250,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:250,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:251,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:251,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:252,1
    - Dst: session::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:253,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:254,1
    - Dst: test_is_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_is_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: confirm
      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:265,1
    - Dst: std::optional::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:267,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:267,1
    - Dst: std::optional::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:270,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:270,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:271,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:271,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:272,1
    - Dst: session::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:273,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:274,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:275,1
    - Dst: session::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:275,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:276,1
    - Dst: handle::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:276,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:277,1
    - Dst: handle::ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:277,1
    - Dst: std::optional::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:280,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:283,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: Botan::TLS::Session_Manager_In_Memory::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:289,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:289,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:290,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:292,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:292,1
    - Dst: auto::ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:292,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:293,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:295,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:295,1
    - Dst: auto::ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:295,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:297,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:298,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:298,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:300,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:300,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:301,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:302,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:303,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:304,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:304,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:306,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:307,1
    - Dst: Botan::TLS::Opaque_Session_Handle
      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: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:309,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:310,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:310,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:311,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:311,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:311,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:314,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:318,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:319,1
    - Dst: Botan_Tests::random_ticket
      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:322,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:322,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:323,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:323,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:324,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:324,1
    - Dst: test_is_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:326,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:326,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:328,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:328,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:329,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:330,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:330,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:332,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:333,1
    - Dst: Botan::TLS::Opaque_Session_Handle
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:333,1
    - Dst: Botan::TLS::Session_Ticket::get
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:333,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:335,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:336,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:336,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:339,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:342,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:342,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:346,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:346,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:347,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:348,1
    - Dst: std::optional::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:349,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:349,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:349,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:353,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:353,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:357,1
    - Dst: std::optional::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:358,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:358,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:358,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:360,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:360,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:361,1
    - Dst: confirm
      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: std::optional::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:366,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:367,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:367,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:368,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:368,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:369,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:370,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:370,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:374,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:375,1
    - Dst: std::optional::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:376,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:376,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:376,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:379,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:379,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:380,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:380,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:383,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:383,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:383,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:384,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:384,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:388,1
    - Dst: std::optional::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:388,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 109
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 391
    functionName: Botan_Tests::test_session_manager_in_memory
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - handle::ticket
    - Botan::TLS::Session_Manager_In_Memory::establish
    - std::optional::establish
    - Botan::TLS::Session_Manager_In_Memory::remove
    - auto::ticket
    - Botan::TLS::Session_Manager_In_Memory::retrieve
    - auto::size
    - handle::id
    - std::optional::capacity
    - std::vector::reserve
    - session::ciphersuite_code
    - Botan_Tests::CHECK
    - auto::has_value
    - Botan::TLS::Session_Manager_In_Memory::store
    - auto::id
    - std::optional::remove
    - Botan::TLS::Session_Ticket::get
    - confirm
    - std::optional::emplace
    - std::optional::find
    - Botan::TLS::Opaque_Session_Handle
    - std::vector::push_back
    - require
    - std::vector::size
    - auto::version
    - session::version
    - Botan::TLS::Session_Manager_In_Memory::find
    - auto::random_vec
    - Botan_Tests::random_ticket
    - Botan::TLS::Protocol_Version
    - Botan::TLS::Session_Ticket
    - Botan_Tests::server_info
    - Botan_Tests::default_session
    - Botan_Tests::random_id
    - std::optional::store
    - Botan_Tests::Test::new_shared_rng
    - std::optional::retrieve
    - auto::ciphersuite_code
    - test_is_eq
    - std::optional::remove_all
    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:398,1
    - Dst: is_pre_tls_13
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:403,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:404,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:406,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:411,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:413,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:414,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:417,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:419,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:423,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:424,1
    - Dst: Botan::TLS::PskIdentity::PskIdentity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:428,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:428,1
    - Dst: begin
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:428,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:428,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:432,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:436,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:438,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:439,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:440,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:442,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:442,1
    - Dst: Botan_Tests::CHECK
      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:451,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:451,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:451,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:452,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:452,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:452,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:456,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:456,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:456,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:457,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:457,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:458,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:462,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:462,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:463,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:463,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:464,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:467,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:468,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:468,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:468,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:468,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:469,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:469,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:470,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:473,1
    - Dst: std::make_shared<Test_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:475,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:479,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:479,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:479,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:480,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:480,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:480,1
    - Dst: Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:483,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:484,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:484,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:485,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:485,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:486,1
    - Dst: Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:489,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:490,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:490,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:491,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:491,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:492,1
    - Dst: Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:495,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:496,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:496,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:496,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:496,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:497,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:497,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:498,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:501,1
    - Dst: std::make_shared<Test_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:503,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:507,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:507,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:507,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:508,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:508,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:508,1
    - Dst: Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:510,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:510,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:510,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:511,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:511,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:512,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:512,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:516,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:516,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:517,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:520,1
    - Dst: std::make_shared<Test_Credentials_Manager>
      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:526,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:527,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:527,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:528,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:529,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:529,1
    - Dst: Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:531,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:531,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:531,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:532,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:532,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:533,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:533,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:537,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:537,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 393
    functionDepth: 2
    functionLinenumber: 393
    functionLinenumberEnd: 544
    functionName: Botan_Tests::test_session_manager_choose_ticket
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Session_Manager_In_Memory::establish
    - TestSession::TestSession
    - Botan::TLS::Session_Manager_Stateless::establish
    - Botan_CLI::Timer::seconds
    - begin
    - std::vector
    - Botan::TLS::Session_Manager_In_Memory::choose_from_offered_tickets
    - Botan::TLS::Ciphersuite::from_name
    - Botan_Tests::CHECK
    - auto::has_value
    - confirm
    - ticket
    - std::vector::push_back
    - id
    - is_pre_tls_13
    - require
    - std::make_shared<Test_Credentials_Manager>
    - tls_current_timestamp
    - Botan::TLS::PskIdentity::PskIdentity
    - Botan_Tests::random_ticket
    - Botan_Tests::server_info
    - Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
    - Botan_Tests::default_session
    - end
    - Botan_Tests::Test::new_shared_rng
    - test_is_eq
    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:547,1
    - Dst: Botan_Tests::Test::new_shared_rng
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:549,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:557,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:559,1
    - Dst: Botan::TLS::Session_Manager_Stateless::emits_session_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:559,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:560,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:560,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:561,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:561,1
    - Dst: auto::is_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:561,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:564,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:566,1
    - Dst: Botan::TLS::Session_Manager_Stateless::emits_session_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:566,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:568,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:568,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:569,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:569,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:572,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:576,1
    - Dst: Botan::TLS::Session_Manager_Stateless::emits_session_tickets
      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:577,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:577,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:578,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:578,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:581,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:583,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:583,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:584,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:584,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:585,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:585,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:585,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:588,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:588,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:588,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:589,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:590,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:590,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:593,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:595,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:595,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:596,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:596,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:596,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:598,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:598,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:598,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:601,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:603,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:603,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:604,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:604,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:604,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:606,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:607,1
    - Dst: auto::opaque_handle
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:607,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:610,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:612,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:612,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:613,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:613,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:613,1
    - Dst: confirm
      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:621,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:621,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:622,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:623,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:623,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:624,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:624,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:624,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:627,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:629,1
    - Dst: Botan::TLS::Session_Manager_Stateless::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:630,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:630,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:630,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:632,1
    - Dst: Botan::TLS::Session_Manager_Stateless::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:633,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:633,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:633,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:635,1
    - Dst: Botan::TLS::Session_Manager_Stateless::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:636,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:636,1
    - Dst: Botan_Tests::random_opaque_handle
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:636,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:639,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:639,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:640,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:640,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:640,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:641,1
    - Dst: Botan::TLS::Session_Manager_Stateless::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:641,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:641,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:644,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:646,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:646,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:647,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:647,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:647,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:649,1
    - Dst: Botan::TLS::Session_Manager_Stateless::remove
      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: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:650,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:650,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:650,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:652,1
    - Dst: Botan::TLS::Session_Manager_Stateless::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:652,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:653,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:653,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:653,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:656,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:659,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:660,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:661,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:661,1
    - Dst: auto::is_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:661,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:662,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:662,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:663,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:663,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:665,1
    - Dst: std::chrono::duration_cast<std::chrono::seconds>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:667,1
    - Dst: auto::start_time
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:667,1
    - Dst: std::chrono::duration_cast<std::chrono::seconds>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:668,1
    - Dst: auto::start_time
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:668,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 546
    functionDepth: 2
    functionLinenumber: 546
    functionLinenumberEnd: 672
    functionName: Botan_Tests::test_session_manager_stateless
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - test_throws
    - Botan::TLS::Session_Manager_Stateless::establish
    - Botan::TLS::Session_Manager_Stateless::remove_all
    - Botan::TLS::Session_Manager_Stateless::retrieve
    - Botan::TLS::Session_Manager_Stateless::remove
    - auto::start_time
    - Botan_Tests::CHECK
    - auto::has_value
    - confirm
    - auto::opaque_handle
    - std::chrono::duration_cast<std::chrono::seconds>
    - Botan::TLS::Session_Manager_Stateless::store
    - auto::value
    - std::make_shared<Test_Credentials_Manager>
    - require
    - Botan::TLS::Session_Manager_Stateless::find
    - Botan_Tests::random_ticket
    - Botan_Tests::server_info
    - Botan_Tests::default_session
    - Botan_Tests::random_id
    - auto::is_ticket
    - Botan_Tests::Test::new_shared_rng
    - Botan_Tests::random_opaque_handle
    - Botan::TLS::Session_Manager_Stateless::emits_session_tickets
    - test_is_eq
    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:675,1
    - Dst: std::make_shared<Test_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:677,1
    - Dst: std::unique_ptr<Botan::TLS::Session_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:686,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:690,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_SQLite>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:695,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:696,1
    - Dst: Botan::TLS::Session_Manager_Hybrid::Session_Manager_Hybrid
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:707,1
    - Dst: stateful_manager_factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:707,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:710,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:711,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:712,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:712,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:712,1
    - Dst: Botan_Tests::Test::flatten_result_lists
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:717,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:718,1
    - Dst: make_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:720,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: confirm
      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_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:723,1
    - Dst: make_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:725,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:726,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:726,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:727,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:727,1
    - Dst: auto::is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:727,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:729,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:729,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:732,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:732,1
    - Dst: auto::is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:732,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:734,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:734,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:737,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:737,1
    - Dst: auto::is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:737,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:740,1
    - Dst: make_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:742,1
    - Dst: make_manager
      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:745,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:746,1
    - Dst: auto::underlying_stateful_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:747,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:748,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:750,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:750,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:752,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:752,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:752,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:752,1
    - Dst: confirm
      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: confirm
      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: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:756,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:756,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:756,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:757,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:757,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:757,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:758,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:758,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:758,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:759,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:759,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:759,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:762,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:765,1
    - Dst: std::make_shared<Empty_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:766,1
    - Dst: make_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:768,1
    - Dst: make_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:769,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:771,1
    - Dst: Botan::TLS::Session_Manager_Hybrid::emits_session_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:771,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:772,1
    - Dst: auto::emits_session_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:772,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:773,1
    - Dst: auto::emits_session_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:773,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 674
    functionDepth: 2
    functionLinenumber: 674
    functionLinenumberEnd: 776
    functionName: Botan_Tests::test_session_manager_hybrid
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<Empty_Credentials_Manager>
    - auto::c_str
    - auto::underlying_stateful_manager
    - stateful_manager_factory
    - Botan_Tests::CHECK
    - auto::has_value
    - auto::is_id
    - Botan::TLS::Session_Manager_Hybrid::emits_session_tickets
    - make_manager
    - auto::retrieve
    - auto::establish
    - auto::emits_session_tickets
    - confirm
    - std::make_unique<Botan::TLS::Session_Manager_SQLite>
    - std::vector::push_back
    - auto::value
    - std::make_shared<Test_Credentials_Manager>
    - require
    - Botan::TLS::Session_Manager_Hybrid::Session_Manager_Hybrid
    - std::bind
    - Botan_Tests::Test::flatten_result_lists
    - Botan::fmt
    - Botan_Tests::Test::temp_file_name
    - Botan_Tests::default_session
    - CHECK_all
    - auto::is_ticket
    - Botan_Tests::Test::new_shared_rng
    - std::make_unique<Botan::TLS::Session_Manager_In_Memory>
    - std::unique_ptr<Botan::TLS::Session_Manager>
    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:786,1
    - Dst: empty
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:787,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:788,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' db_file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 785
    functionDepth: 1
    functionLinenumber: 785
    functionLinenumberEnd: 790
    functionName: Botan_Tests::Temporary_Database_File::Temporary_Database_File
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - empty
    - Botan_Tests::Test::data_file_as_temporary_copy
    - Test_Error
    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:794,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:795,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 792
    functionDepth: 1
    functionLinenumber: 792
    functionLinenumberEnd: 798
    functionName: ~Temporary_Database_File()
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - empty
    - Botan_Tests::RFC8448_Session_Manager::remove
    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: 800
      start: 800
    functionDepth: 0
    functionLinenumber: 800
    functionLinenumberEnd: 800
    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: 802
      start: 802
    functionDepth: 0
    functionLinenumber: 802
    functionLinenumberEnd: 802
    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: 803
      start: 803
    functionDepth: 0
    functionLinenumber: 803
    functionLinenumberEnd: 803
    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: 804
      start: 804
    functionDepth: 0
    functionLinenumber: 804
    functionLinenumberEnd: 804
    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: 805
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 805
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file_as_temporary_copy
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:786,1
    - Dst: empty
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:787,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:788,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' db_file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 785
    functionDepth: 1
    functionLinenumber: 785
    functionLinenumberEnd: 790
    functionName: Botan_Tests::Temporary_Database_File::Temporary_Database_File
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - empty
    - Botan_Tests::Test::data_file_as_temporary_copy
    - Test_Error
    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:794,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:795,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 792
    functionDepth: 1
    functionLinenumber: 792
    functionLinenumberEnd: 798
    functionName: ~Temporary_Database_File()
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - empty
    - Botan_Tests::RFC8448_Session_Manager::remove
    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: 800
      start: 800
    functionDepth: 0
    functionLinenumber: 800
    functionLinenumberEnd: 800
    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: 802
      start: 802
    functionDepth: 0
    functionLinenumber: 802
    functionLinenumberEnd: 802
    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: 803
      start: 803
    functionDepth: 0
    functionLinenumber: 803
    functionLinenumberEnd: 803
    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: 804
      start: 804
    functionDepth: 0
    functionLinenumber: 804
    functionLinenumberEnd: 804
    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: 805
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 805
    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:812,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:817,1
    - Dst: Temporary_Database_File::get
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:825,1
    - Dst: confirm
      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: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:834,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:835,1
    - Dst: Botan::TLS::Session_ID
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:836,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:836,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:841,1
    - Dst: Botan::TLS::Session_Manager_SQLite::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:842,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:842,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:843,1
    - Dst: Botan::TLS::Session_Manager_SQLite::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:844,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:844,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:846,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:846,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:849,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:851,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:852,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:852,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:855,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:858,1
    - Dst: Botan_Tests::random_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: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:864,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:864,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:866,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:866,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:867,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:867,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:868,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:868,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:871,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:874,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:875,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:877,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:877,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:878,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:878,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:880,1
    - Dst: auto::is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:881,1
    - Dst: auto::is_id
      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:883,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:883,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:884,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:884,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:885,1
    - Dst: auto::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:886,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:887,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:888,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:888,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:891,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:891,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:892,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:892,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:893,1
    - Dst: auto::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:894,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:895,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:896,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:896,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      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: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:900,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:900,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:903,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:906,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:908,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:908,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:908,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:909,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:909,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:911,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:912,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:912,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:915,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:918,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:919,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:920,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:921,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:921,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:922,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:922,1
    - Dst: Botan::TLS::Session_Manager_SQLite::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:924,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:924,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:925,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:925,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:927,1
    - Dst: is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:927,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:927,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:928,1
    - Dst: is_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:928,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:928,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:933,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:935,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:936,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:937,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:938,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:938,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:939,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:939,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:940,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:940,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:940,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:941,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:941,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:941,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:943,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:943,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:944,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:944,1
    - Dst: Botan::TLS::Session_Manager_SQLite::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:946,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:946,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:947,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:947,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:949,1
    - Dst: is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:949,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:949,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:950,1
    - Dst: is_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:950,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:950,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:954,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:954,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:957,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:960,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:962,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:962,1
    - Dst: Botan_Tests::random_id
      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: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:970,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:971,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:971,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:972,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:972,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:973,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:973,1
    - Dst: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:975,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:976,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:976,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:977,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:977,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:978,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:978,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:980,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:980,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:983,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:986,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:989,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:989,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:989,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:992,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:992,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 810
    functionDepth: 2
    functionLinenumber: 810
    functionLinenumberEnd: 998
    functionName: Botan_Tests::test_session_manager_sqlite
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - Botan::TLS::Session_Manager_SQLite::remove
    - Botan::TLS::Session_ID
    - auto::size
    - Botan_Tests::CHECK
    - auto::has_value
    - auto::is_id
    - auto::id
    - is_id
    - confirm
    - ticket
    - id
    - Botan::TLS::Server_Information
    - Botan::TLS::Session_Manager_SQLite::retrieve
    - auto::value
    - require
    - auto::version
    - Botan::TLS::Session_Manager_SQLite::find
    - Botan_Tests::Test::temp_file_name
    - Botan::TLS::Session_Manager_SQLite::remove_all
    - Botan::TLS::Session_Manager_SQLite::establish
    - Botan_Tests::random_ticket
    - Temporary_Database_File::get
    - Botan::TLS::Protocol_Version
    - Botan_Tests::server_info
    - Botan_Tests::default_session
    - Botan_Tests::random_id
    - is_ticket
    - Botan_Tests::Test::new_shared_rng
    - Botan::TLS::Session_Manager_SQLite::store
    - auto::ciphersuite_code
    - Session_Manager_Callbacks::tick
    - test_is_eq
    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:1001,1
    - Dst: std::unique_ptr<Botan::TLS::Session_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1006,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1010,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_Stateless>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1014,1
    - Dst: std::make_shared<Test_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1015,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_SQLite>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1020,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1021,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1027,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1027,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1030,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1031,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1032,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1032,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1032,1
    - Dst: Botan_Tests::Test::flatten_result_lists
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1037,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1038,1
    - Dst: factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1040,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1042,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1042,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1043,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1043,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1044,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1044,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1044,1
    - Dst: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1045,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1046,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1046,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1046,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1047,1
    - Dst: auto::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1047,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1050,1
    - Dst: factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1056,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1058,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1059,1
    - Dst: Botan_Tests::default_session
      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::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1060,1
    - Dst: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1062,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1063,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1064,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1064,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1065,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1065,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1067,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1067,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1068,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1068,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1069,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1069,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1070,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1071,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1071,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1073,1
    - Dst: auto::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1073,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1076,1
    - Dst: factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1083,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: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1093,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1094,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1094,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1096,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1097,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1097,1
    - Dst: Session_Manager_Policy::set_allow_session_reuse
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1101,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1103,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1103,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1104,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1104,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1106,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1106,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1107,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1107,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1108,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1108,1
    - Dst: is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1108,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1109,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1110,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1110,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1111,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1112,1
    - Dst: version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1112,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1115,1
    - Dst: factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1121,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1125,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1126,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1126,1
    - Dst: Session_Manager_Policy::set_allow_session_reuse
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1129,1
    - Dst: Session_Manager_Policy::set_session_limit
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1131,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1132,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1133,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1133,1
    - Dst: Session_Manager_Policy::maximum_session_tickets_per_client_hello
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1134,1
    - Dst: Session_Manager_Policy::set_session_limit
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1136,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1137,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1138,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1138,1
    - Dst: Session_Manager_Policy::maximum_session_tickets_per_client_hello
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1139,1
    - Dst: Session_Manager_Policy::set_session_limit
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1141,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1142,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1142,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1142,1
    - Dst: factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1152,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1154,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1155,1
    - Dst: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1156,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1157,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1158,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1159,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1159,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1159,1
    - Dst: auto::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1161,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1162,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1162,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1162,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1162,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1163,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1163,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1164,1
    - Dst: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1166,1
    - Dst: auto::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1168,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1169,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1169,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1169,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1169,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1170,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1170,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1000
    functionDepth: 2
    functionLinenumber: 1000
    functionLinenumberEnd: 1171
    functionName: Botan_Tests::tls_session_manager_expiry
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - auto::empty
    - auto::find
    - version
    - auto::choose_from_offered_tickets
    - auto::c_str
    - auto::size
    - std::vector::reserve
    - Botan_Tests::CHECK
    - auto::has_value
    - auto::remove_all
    - auto::retrieve
    - auto::establish
    - is_id
    - confirm
    - Session_Manager_Policy::set_session_limit
    - ticket
    - std::make_unique<Botan::TLS::Session_Manager_SQLite>
    - std::vector::push_back
    - id
    - Session_Manager_Policy::maximum_session_tickets_per_client_hello
    - auto::value
    - std::make_shared<Test_Credentials_Manager>
    - std::make_unique<Botan::TLS::Session_Manager_Stateless>
    - require
    - std::bind
    - auto::store
    - std::vector::size
    - Botan_Tests::Test::flatten_result_lists
    - Botan::fmt
    - Botan_Tests::Test::temp_file_name
    - auto::front
    - factory
    - Botan_Tests::random_ticket
    - Botan_Tests::server_info
    - Session_Manager_Policy::set_allow_session_reuse
    - Botan_Tests::default_session
    - CHECK_all
    - Session_Manager_Callbacks::tick
    - Botan_Tests::random_id
    - Botan_Tests::Test::new_shared_rng
    - std::make_unique<Botan::TLS::Session_Manager_In_Memory>
    - std::unique_ptr<Botan::TLS::Session_Manager>
    - test_is_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> tls_session_manager_expiry()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random_vec
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 105
    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:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 109
    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:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    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: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    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:123,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:124,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:125,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:125,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:128,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:131,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:133,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:137,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:138,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:140,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: 143
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 143
    functionName: Botan_Tests::default_session
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 6
    functionsReached:
    - Botan::TLS::Ciphersuite::from_name
    - TestSession::TestSession
    - Test_Error
    - Botan_CLI::Timer::seconds
    - Botan_Tests::server_info
    - is_pre_tls_13
    - tls_current_timestamp
    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:148,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:150,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:158,1
    - Dst: std::optional::emplace
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:158,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:160,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:162,1
    - Dst: std::optional::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:162,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:162,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:164,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:165,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:167,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:167,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:168,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:168,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:171,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:172,1
    - Dst: std::optional::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:172,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:174,1
    - Dst: std::optional::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:176,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:176,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:177,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:177,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:178,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:178,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:179,1
    - Dst: auto::ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:179,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:180,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:180,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:184,1
    - Dst: std::optional::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:186,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:186,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:187,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:187,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:188,1
    - Dst: session::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:189,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:190,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:191,1
    - Dst: session::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:191,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:192,1
    - Dst: handle::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:192,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:193,1
    - Dst: handle::ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:193,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:197,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:199,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:200,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:200,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:201,1
    - Dst: auto::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:202,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:203,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:204,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:204,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:208,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:210,1
    - Dst: Botan::TLS::Opaque_Session_Handle
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:210,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:211,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:211,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:212,1
    - Dst: auto::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:213,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:214,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:215,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:215,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:219,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:221,1
    - Dst: Botan::TLS::Session_Ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:221,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:222,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:222,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:225,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:227,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:227,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:228,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:228,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:231,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:233,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:233,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:234,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:234,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:237,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:239,1
    - Dst: std::optional::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:239,1
    - Dst: test_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: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:243,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:245,1
    - Dst: std::optional::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:247,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:247,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:248,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:248,1
    - Dst: std::optional::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:250,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:250,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:251,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:251,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:252,1
    - Dst: session::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:253,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:254,1
    - Dst: test_is_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_is_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: confirm
      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:265,1
    - Dst: std::optional::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:267,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:267,1
    - Dst: std::optional::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:270,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:270,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:271,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:271,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:272,1
    - Dst: session::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:273,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:274,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:275,1
    - Dst: session::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:275,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:276,1
    - Dst: handle::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:276,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:277,1
    - Dst: handle::ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:277,1
    - Dst: std::optional::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:280,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:283,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: Botan::TLS::Session_Manager_In_Memory::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:289,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:289,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:290,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:292,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:292,1
    - Dst: auto::ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:292,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:293,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:295,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:295,1
    - Dst: auto::ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:295,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:297,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:298,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:298,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:300,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:300,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:301,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:302,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:303,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:304,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:304,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:306,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:307,1
    - Dst: Botan::TLS::Opaque_Session_Handle
      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: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:309,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:310,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:310,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:311,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:311,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:311,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:314,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:318,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:319,1
    - Dst: Botan_Tests::random_ticket
      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:322,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:322,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:323,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:323,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:324,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:324,1
    - Dst: test_is_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:326,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:326,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:328,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:328,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:329,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:330,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:330,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:332,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:333,1
    - Dst: Botan::TLS::Opaque_Session_Handle
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:333,1
    - Dst: Botan::TLS::Session_Ticket::get
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:333,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:335,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:336,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:336,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:339,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:342,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:342,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:346,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:346,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:347,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:348,1
    - Dst: std::optional::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:349,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:349,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:349,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:353,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:353,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:357,1
    - Dst: std::optional::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:358,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:358,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:358,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:360,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:360,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:361,1
    - Dst: confirm
      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: std::optional::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:366,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:367,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:367,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:368,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:368,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:369,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:370,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:370,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:374,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:375,1
    - Dst: std::optional::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:376,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:376,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:376,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:379,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:379,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:380,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:380,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:383,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:383,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:383,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:384,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:384,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:388,1
    - Dst: std::optional::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:388,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 109
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 391
    functionName: Botan_Tests::test_session_manager_in_memory
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - handle::ticket
    - Botan::TLS::Session_Manager_In_Memory::establish
    - std::optional::establish
    - Botan::TLS::Session_Manager_In_Memory::remove
    - auto::ticket
    - Botan::TLS::Session_Manager_In_Memory::retrieve
    - auto::size
    - handle::id
    - std::optional::capacity
    - std::vector::reserve
    - session::ciphersuite_code
    - Botan_Tests::CHECK
    - auto::has_value
    - Botan::TLS::Session_Manager_In_Memory::store
    - auto::id
    - std::optional::remove
    - Botan::TLS::Session_Ticket::get
    - confirm
    - std::optional::emplace
    - std::optional::find
    - Botan::TLS::Opaque_Session_Handle
    - std::vector::push_back
    - require
    - std::vector::size
    - auto::version
    - session::version
    - Botan::TLS::Session_Manager_In_Memory::find
    - auto::random_vec
    - Botan_Tests::random_ticket
    - Botan::TLS::Protocol_Version
    - Botan::TLS::Session_Ticket
    - Botan_Tests::server_info
    - Botan_Tests::default_session
    - Botan_Tests::random_id
    - std::optional::store
    - Botan_Tests::Test::new_shared_rng
    - std::optional::retrieve
    - auto::ciphersuite_code
    - test_is_eq
    - std::optional::remove_all
    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:398,1
    - Dst: is_pre_tls_13
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:403,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:404,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:406,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:411,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:413,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:414,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:417,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:419,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:423,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:424,1
    - Dst: Botan::TLS::PskIdentity::PskIdentity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:428,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:428,1
    - Dst: begin
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:428,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:428,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:432,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:436,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:438,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:439,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:440,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:442,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:442,1
    - Dst: Botan_Tests::CHECK
      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:451,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:451,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:451,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:452,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:452,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:452,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:456,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:456,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:456,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:457,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:457,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:458,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:462,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:462,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:463,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:463,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:464,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:467,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:468,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:468,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:468,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:468,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:469,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:469,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:470,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:473,1
    - Dst: std::make_shared<Test_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:475,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:479,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:479,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:479,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:480,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:480,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:480,1
    - Dst: Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:483,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:484,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:484,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:485,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:485,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:486,1
    - Dst: Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:489,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:490,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:490,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:491,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:491,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:492,1
    - Dst: Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:495,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:496,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:496,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:496,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:496,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:497,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:497,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:498,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:501,1
    - Dst: std::make_shared<Test_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:503,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:507,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:507,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:507,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:508,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:508,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:508,1
    - Dst: Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:510,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:510,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:510,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:511,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:511,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:512,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:512,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:516,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:516,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:517,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:520,1
    - Dst: std::make_shared<Test_Credentials_Manager>
      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:526,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:527,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:527,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:528,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:529,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:529,1
    - Dst: Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:531,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:531,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:531,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:532,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:532,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:533,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:533,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:537,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:537,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 393
    functionDepth: 2
    functionLinenumber: 393
    functionLinenumberEnd: 544
    functionName: Botan_Tests::test_session_manager_choose_ticket
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Session_Manager_In_Memory::establish
    - TestSession::TestSession
    - Botan::TLS::Session_Manager_Stateless::establish
    - Botan_CLI::Timer::seconds
    - begin
    - std::vector
    - Botan::TLS::Session_Manager_In_Memory::choose_from_offered_tickets
    - Botan::TLS::Ciphersuite::from_name
    - Botan_Tests::CHECK
    - auto::has_value
    - confirm
    - ticket
    - std::vector::push_back
    - id
    - is_pre_tls_13
    - require
    - std::make_shared<Test_Credentials_Manager>
    - tls_current_timestamp
    - Botan::TLS::PskIdentity::PskIdentity
    - Botan_Tests::random_ticket
    - Botan_Tests::server_info
    - Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
    - Botan_Tests::default_session
    - end
    - Botan_Tests::Test::new_shared_rng
    - test_is_eq
    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:547,1
    - Dst: Botan_Tests::Test::new_shared_rng
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:549,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:557,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:559,1
    - Dst: Botan::TLS::Session_Manager_Stateless::emits_session_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:559,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:560,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:560,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:561,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:561,1
    - Dst: auto::is_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:561,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:564,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:566,1
    - Dst: Botan::TLS::Session_Manager_Stateless::emits_session_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:566,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:568,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:568,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:569,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:569,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:572,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:576,1
    - Dst: Botan::TLS::Session_Manager_Stateless::emits_session_tickets
      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:577,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:577,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:578,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:578,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:581,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:583,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:583,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:584,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:584,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:585,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:585,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:585,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:588,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:588,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:588,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:589,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:590,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:590,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:593,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:595,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:595,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:596,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:596,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:596,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:598,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:598,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:598,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:601,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:603,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:603,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:604,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:604,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:604,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:606,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:607,1
    - Dst: auto::opaque_handle
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:607,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:610,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:612,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:612,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:613,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:613,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:613,1
    - Dst: confirm
      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:621,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:621,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:622,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:623,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:623,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:624,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:624,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:624,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:627,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:629,1
    - Dst: Botan::TLS::Session_Manager_Stateless::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:630,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:630,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:630,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:632,1
    - Dst: Botan::TLS::Session_Manager_Stateless::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:633,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:633,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:633,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:635,1
    - Dst: Botan::TLS::Session_Manager_Stateless::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:636,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:636,1
    - Dst: Botan_Tests::random_opaque_handle
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:636,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:639,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:639,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:640,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:640,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:640,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:641,1
    - Dst: Botan::TLS::Session_Manager_Stateless::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:641,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:641,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:644,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:646,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:646,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:647,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:647,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:647,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:649,1
    - Dst: Botan::TLS::Session_Manager_Stateless::remove
      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: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:650,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:650,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:650,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:652,1
    - Dst: Botan::TLS::Session_Manager_Stateless::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:652,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:653,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:653,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:653,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:656,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:659,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:660,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:661,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:661,1
    - Dst: auto::is_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:661,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:662,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:662,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:663,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:663,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:665,1
    - Dst: std::chrono::duration_cast<std::chrono::seconds>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:667,1
    - Dst: auto::start_time
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:667,1
    - Dst: std::chrono::duration_cast<std::chrono::seconds>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:668,1
    - Dst: auto::start_time
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:668,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 546
    functionDepth: 2
    functionLinenumber: 546
    functionLinenumberEnd: 672
    functionName: Botan_Tests::test_session_manager_stateless
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - test_throws
    - Botan::TLS::Session_Manager_Stateless::establish
    - Botan::TLS::Session_Manager_Stateless::remove_all
    - Botan::TLS::Session_Manager_Stateless::retrieve
    - Botan::TLS::Session_Manager_Stateless::remove
    - auto::start_time
    - Botan_Tests::CHECK
    - auto::has_value
    - confirm
    - auto::opaque_handle
    - std::chrono::duration_cast<std::chrono::seconds>
    - Botan::TLS::Session_Manager_Stateless::store
    - auto::value
    - std::make_shared<Test_Credentials_Manager>
    - require
    - Botan::TLS::Session_Manager_Stateless::find
    - Botan_Tests::random_ticket
    - Botan_Tests::server_info
    - Botan_Tests::default_session
    - Botan_Tests::random_id
    - auto::is_ticket
    - Botan_Tests::Test::new_shared_rng
    - Botan_Tests::random_opaque_handle
    - Botan::TLS::Session_Manager_Stateless::emits_session_tickets
    - test_is_eq
    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:675,1
    - Dst: std::make_shared<Test_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:677,1
    - Dst: std::unique_ptr<Botan::TLS::Session_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:686,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:690,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_SQLite>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:695,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:696,1
    - Dst: Botan::TLS::Session_Manager_Hybrid::Session_Manager_Hybrid
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:707,1
    - Dst: stateful_manager_factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:707,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:710,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:711,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:712,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:712,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:712,1
    - Dst: Botan_Tests::Test::flatten_result_lists
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:717,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:718,1
    - Dst: make_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:720,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: confirm
      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_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:723,1
    - Dst: make_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:725,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:726,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:726,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:727,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:727,1
    - Dst: auto::is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:727,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:729,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:729,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:732,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:732,1
    - Dst: auto::is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:732,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:734,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:734,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:737,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:737,1
    - Dst: auto::is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:737,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:740,1
    - Dst: make_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:742,1
    - Dst: make_manager
      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:745,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:746,1
    - Dst: auto::underlying_stateful_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:747,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:748,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:750,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:750,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:752,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:752,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:752,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:752,1
    - Dst: confirm
      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: confirm
      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: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:756,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:756,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:756,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:757,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:757,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:757,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:758,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:758,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:758,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:759,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:759,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:759,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:762,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:765,1
    - Dst: std::make_shared<Empty_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:766,1
    - Dst: make_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:768,1
    - Dst: make_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:769,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:771,1
    - Dst: Botan::TLS::Session_Manager_Hybrid::emits_session_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:771,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:772,1
    - Dst: auto::emits_session_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:772,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:773,1
    - Dst: auto::emits_session_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:773,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 674
    functionDepth: 2
    functionLinenumber: 674
    functionLinenumberEnd: 776
    functionName: Botan_Tests::test_session_manager_hybrid
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<Empty_Credentials_Manager>
    - auto::c_str
    - auto::underlying_stateful_manager
    - stateful_manager_factory
    - Botan_Tests::CHECK
    - auto::has_value
    - auto::is_id
    - Botan::TLS::Session_Manager_Hybrid::emits_session_tickets
    - make_manager
    - auto::retrieve
    - auto::establish
    - auto::emits_session_tickets
    - confirm
    - std::make_unique<Botan::TLS::Session_Manager_SQLite>
    - std::vector::push_back
    - auto::value
    - std::make_shared<Test_Credentials_Manager>
    - require
    - Botan::TLS::Session_Manager_Hybrid::Session_Manager_Hybrid
    - std::bind
    - Botan_Tests::Test::flatten_result_lists
    - Botan::fmt
    - Botan_Tests::Test::temp_file_name
    - Botan_Tests::default_session
    - CHECK_all
    - auto::is_ticket
    - Botan_Tests::Test::new_shared_rng
    - std::make_unique<Botan::TLS::Session_Manager_In_Memory>
    - std::unique_ptr<Botan::TLS::Session_Manager>
    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:786,1
    - Dst: empty
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:787,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:788,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' db_file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 785
    functionDepth: 1
    functionLinenumber: 785
    functionLinenumberEnd: 790
    functionName: Botan_Tests::Temporary_Database_File::Temporary_Database_File
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - empty
    - Botan_Tests::Test::data_file_as_temporary_copy
    - Test_Error
    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:794,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:795,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 792
    functionDepth: 1
    functionLinenumber: 792
    functionLinenumberEnd: 798
    functionName: ~Temporary_Database_File()
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - empty
    - Botan_Tests::RFC8448_Session_Manager::remove
    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: 800
      start: 800
    functionDepth: 0
    functionLinenumber: 800
    functionLinenumberEnd: 800
    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: 802
      start: 802
    functionDepth: 0
    functionLinenumber: 802
    functionLinenumberEnd: 802
    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: 803
      start: 803
    functionDepth: 0
    functionLinenumber: 803
    functionLinenumberEnd: 803
    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: 804
      start: 804
    functionDepth: 0
    functionLinenumber: 804
    functionLinenumberEnd: 804
    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: 805
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 805
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file_as_temporary_copy
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:786,1
    - Dst: empty
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:787,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:788,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' db_file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 785
    functionDepth: 1
    functionLinenumber: 785
    functionLinenumberEnd: 790
    functionName: Botan_Tests::Temporary_Database_File::Temporary_Database_File
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - empty
    - Botan_Tests::Test::data_file_as_temporary_copy
    - Test_Error
    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:794,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:795,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 792
    functionDepth: 1
    functionLinenumber: 792
    functionLinenumberEnd: 798
    functionName: ~Temporary_Database_File()
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - empty
    - Botan_Tests::RFC8448_Session_Manager::remove
    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: 800
      start: 800
    functionDepth: 0
    functionLinenumber: 800
    functionLinenumberEnd: 800
    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: 802
      start: 802
    functionDepth: 0
    functionLinenumber: 802
    functionLinenumberEnd: 802
    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: 803
      start: 803
    functionDepth: 0
    functionLinenumber: 803
    functionLinenumberEnd: 803
    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: 804
      start: 804
    functionDepth: 0
    functionLinenumber: 804
    functionLinenumberEnd: 804
    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: 805
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 805
    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:812,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:817,1
    - Dst: Temporary_Database_File::get
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:825,1
    - Dst: confirm
      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: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:834,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:835,1
    - Dst: Botan::TLS::Session_ID
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:836,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:836,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:841,1
    - Dst: Botan::TLS::Session_Manager_SQLite::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:842,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:842,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:843,1
    - Dst: Botan::TLS::Session_Manager_SQLite::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:844,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:844,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:846,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:846,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:849,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:851,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:852,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:852,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:855,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:858,1
    - Dst: Botan_Tests::random_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: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:864,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:864,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:866,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:866,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:867,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:867,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:868,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:868,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:871,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:874,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:875,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:877,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:877,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:878,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:878,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:880,1
    - Dst: auto::is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:881,1
    - Dst: auto::is_id
      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:883,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:883,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:884,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:884,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:885,1
    - Dst: auto::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:886,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:887,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:888,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:888,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:891,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:891,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:892,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:892,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:893,1
    - Dst: auto::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:894,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:895,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:896,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:896,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      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: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:900,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:900,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:903,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:906,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:908,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:908,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:908,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:909,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:909,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:911,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:912,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:912,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:915,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:918,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:919,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:920,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:921,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:921,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:922,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:922,1
    - Dst: Botan::TLS::Session_Manager_SQLite::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:924,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:924,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:925,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:925,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:927,1
    - Dst: is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:927,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:927,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:928,1
    - Dst: is_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:928,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:928,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:933,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:935,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:936,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:937,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:938,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:938,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:939,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:939,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:940,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:940,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:940,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:941,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:941,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:941,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:943,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:943,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:944,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:944,1
    - Dst: Botan::TLS::Session_Manager_SQLite::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:946,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:946,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:947,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:947,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:949,1
    - Dst: is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:949,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:949,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:950,1
    - Dst: is_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:950,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:950,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:954,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:954,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:957,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:960,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:962,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:962,1
    - Dst: Botan_Tests::random_id
      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: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:970,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:971,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:971,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:972,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:972,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:973,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:973,1
    - Dst: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:975,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:976,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:976,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:977,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:977,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:978,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:978,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:980,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:980,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:983,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:986,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:989,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:989,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:989,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:992,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:992,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 810
    functionDepth: 2
    functionLinenumber: 810
    functionLinenumberEnd: 998
    functionName: Botan_Tests::test_session_manager_sqlite
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - Botan::TLS::Session_Manager_SQLite::remove
    - Botan::TLS::Session_ID
    - auto::size
    - Botan_Tests::CHECK
    - auto::has_value
    - auto::is_id
    - auto::id
    - is_id
    - confirm
    - ticket
    - id
    - Botan::TLS::Server_Information
    - Botan::TLS::Session_Manager_SQLite::retrieve
    - auto::value
    - require
    - auto::version
    - Botan::TLS::Session_Manager_SQLite::find
    - Botan_Tests::Test::temp_file_name
    - Botan::TLS::Session_Manager_SQLite::remove_all
    - Botan::TLS::Session_Manager_SQLite::establish
    - Botan_Tests::random_ticket
    - Temporary_Database_File::get
    - Botan::TLS::Protocol_Version
    - Botan_Tests::server_info
    - Botan_Tests::default_session
    - Botan_Tests::random_id
    - is_ticket
    - Botan_Tests::Test::new_shared_rng
    - Botan::TLS::Session_Manager_SQLite::store
    - auto::ciphersuite_code
    - Session_Manager_Callbacks::tick
    - test_is_eq
    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:1001,1
    - Dst: std::unique_ptr<Botan::TLS::Session_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1006,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1010,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_Stateless>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1014,1
    - Dst: std::make_shared<Test_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1015,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_SQLite>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1020,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1021,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1027,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1027,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1030,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1031,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1032,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1032,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1032,1
    - Dst: Botan_Tests::Test::flatten_result_lists
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1037,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1038,1
    - Dst: factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1040,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1042,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1042,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1043,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1043,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1044,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1044,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1044,1
    - Dst: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1045,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1046,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1046,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1046,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1047,1
    - Dst: auto::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1047,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1050,1
    - Dst: factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1056,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1058,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1059,1
    - Dst: Botan_Tests::default_session
      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::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1060,1
    - Dst: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1062,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1063,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1064,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1064,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1065,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1065,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1067,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1067,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1068,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1068,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1069,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1069,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1070,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1071,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1071,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1073,1
    - Dst: auto::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1073,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1076,1
    - Dst: factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1083,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: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1093,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1094,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1094,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1096,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1097,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1097,1
    - Dst: Session_Manager_Policy::set_allow_session_reuse
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1101,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1103,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1103,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1104,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1104,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1106,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1106,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1107,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1107,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1108,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1108,1
    - Dst: is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1108,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1109,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1110,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1110,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1111,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1112,1
    - Dst: version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1112,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1115,1
    - Dst: factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1121,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1125,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1126,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1126,1
    - Dst: Session_Manager_Policy::set_allow_session_reuse
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1129,1
    - Dst: Session_Manager_Policy::set_session_limit
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1131,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1132,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1133,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1133,1
    - Dst: Session_Manager_Policy::maximum_session_tickets_per_client_hello
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1134,1
    - Dst: Session_Manager_Policy::set_session_limit
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1136,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1137,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1138,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1138,1
    - Dst: Session_Manager_Policy::maximum_session_tickets_per_client_hello
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1139,1
    - Dst: Session_Manager_Policy::set_session_limit
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1141,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1142,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1142,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1142,1
    - Dst: factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1152,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1154,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1155,1
    - Dst: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1156,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1157,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1158,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1159,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1159,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1159,1
    - Dst: auto::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1161,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1162,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1162,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1162,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1162,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1163,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1163,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1164,1
    - Dst: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1166,1
    - Dst: auto::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1168,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1169,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1169,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1169,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1169,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1170,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1170,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1000
    functionDepth: 2
    functionLinenumber: 1000
    functionLinenumberEnd: 1171
    functionName: Botan_Tests::tls_session_manager_expiry
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - auto::empty
    - auto::find
    - version
    - auto::choose_from_offered_tickets
    - auto::c_str
    - auto::size
    - std::vector::reserve
    - Botan_Tests::CHECK
    - auto::has_value
    - auto::remove_all
    - auto::retrieve
    - auto::establish
    - is_id
    - confirm
    - Session_Manager_Policy::set_session_limit
    - ticket
    - std::make_unique<Botan::TLS::Session_Manager_SQLite>
    - std::vector::push_back
    - id
    - Session_Manager_Policy::maximum_session_tickets_per_client_hello
    - auto::value
    - std::make_shared<Test_Credentials_Manager>
    - std::make_unique<Botan::TLS::Session_Manager_Stateless>
    - require
    - std::bind
    - auto::store
    - std::vector::size
    - Botan_Tests::Test::flatten_result_lists
    - Botan::fmt
    - Botan_Tests::Test::temp_file_name
    - auto::front
    - factory
    - Botan_Tests::random_ticket
    - Botan_Tests::server_info
    - Session_Manager_Policy::set_allow_session_reuse
    - Botan_Tests::default_session
    - CHECK_all
    - Session_Manager_Callbacks::tick
    - Botan_Tests::random_id
    - Botan_Tests::Test::new_shared_rng
    - std::make_unique<Botan::TLS::Session_Manager_In_Memory>
    - std::unique_ptr<Botan::TLS::Session_Manager>
    - test_is_eq
    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: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::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: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_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:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 62
    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: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_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: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_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: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_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:75,1
    - Dst: std::chrono::hours
      Src: /src/botan/src/tests/test_tls_session_manager.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_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: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    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:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 86
    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: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    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: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    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: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    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: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    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:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 105
    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:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 109
    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:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    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: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    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:123,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:124,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:125,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:125,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:128,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:131,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:133,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:137,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:138,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:140,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: 143
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 143
    functionName: Botan_Tests::default_session
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 12
    functionsReached:
    - Botan::TLS::Ciphersuite::from_name
    - TestSession::TestSession
    - Test_Error
    - Botan_CLI::Timer::seconds
    - Botan_Tests::server_info
    - is_pre_tls_13
    - tls_current_timestamp
    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:148,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:150,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:158,1
    - Dst: std::optional::emplace
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:158,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:160,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:162,1
    - Dst: std::optional::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:162,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:162,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:164,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:165,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:167,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:167,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:168,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:168,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:171,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:172,1
    - Dst: std::optional::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:172,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:174,1
    - Dst: std::optional::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:176,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:176,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:177,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:177,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:178,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:178,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:179,1
    - Dst: auto::ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:179,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:180,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:180,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:184,1
    - Dst: std::optional::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:186,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:186,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:187,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:187,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:188,1
    - Dst: session::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:189,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:190,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:191,1
    - Dst: session::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:191,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:192,1
    - Dst: handle::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:192,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:193,1
    - Dst: handle::ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:193,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:197,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:199,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:200,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:200,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:201,1
    - Dst: auto::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:202,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:203,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:204,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:204,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:208,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:210,1
    - Dst: Botan::TLS::Opaque_Session_Handle
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:210,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:211,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:211,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:212,1
    - Dst: auto::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:213,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:214,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:215,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:215,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:219,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:221,1
    - Dst: Botan::TLS::Session_Ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:221,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:222,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:222,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:225,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:227,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:227,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:228,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:228,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:231,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:233,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:233,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:234,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:234,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:237,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:239,1
    - Dst: std::optional::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:239,1
    - Dst: test_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: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:243,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:245,1
    - Dst: std::optional::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:247,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:247,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:248,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:248,1
    - Dst: std::optional::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:250,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:250,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:251,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:251,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:252,1
    - Dst: session::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:253,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:254,1
    - Dst: test_is_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_is_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: confirm
      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:265,1
    - Dst: std::optional::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:267,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:267,1
    - Dst: std::optional::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:270,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:270,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:271,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:271,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:272,1
    - Dst: session::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:273,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:274,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:275,1
    - Dst: session::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:275,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:276,1
    - Dst: handle::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:276,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:277,1
    - Dst: handle::ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:277,1
    - Dst: std::optional::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:280,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:283,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: Botan::TLS::Session_Manager_In_Memory::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:289,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:289,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:290,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:292,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:292,1
    - Dst: auto::ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:292,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:293,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:295,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:295,1
    - Dst: auto::ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:295,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:297,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:298,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:298,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:300,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:300,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:301,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:302,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:303,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:304,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:304,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:306,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:307,1
    - Dst: Botan::TLS::Opaque_Session_Handle
      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: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:309,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:310,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:310,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:311,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:311,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:311,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:314,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:318,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:319,1
    - Dst: Botan_Tests::random_ticket
      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:322,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:322,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:323,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:323,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:324,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:324,1
    - Dst: test_is_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:326,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:326,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:328,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:328,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:329,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:330,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:330,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:332,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:333,1
    - Dst: Botan::TLS::Opaque_Session_Handle
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:333,1
    - Dst: Botan::TLS::Session_Ticket::get
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:333,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:335,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:336,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:336,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:339,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:342,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:342,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:346,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:346,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:347,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:348,1
    - Dst: std::optional::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:349,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:349,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:349,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:353,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:353,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:357,1
    - Dst: std::optional::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:358,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:358,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:358,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:360,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:360,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:361,1
    - Dst: confirm
      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: std::optional::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:366,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:367,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:367,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:368,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:368,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:369,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:370,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:370,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:374,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:375,1
    - Dst: std::optional::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:376,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:376,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:376,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:379,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:379,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:380,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:380,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:383,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:383,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:383,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:384,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:384,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:388,1
    - Dst: std::optional::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:388,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 109
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 391
    functionName: Botan_Tests::test_session_manager_in_memory
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - handle::ticket
    - Botan::TLS::Session_Manager_In_Memory::establish
    - std::optional::establish
    - Botan::TLS::Session_Manager_In_Memory::remove
    - auto::ticket
    - Botan::TLS::Session_Manager_In_Memory::retrieve
    - auto::size
    - handle::id
    - std::optional::capacity
    - std::vector::reserve
    - session::ciphersuite_code
    - Botan_Tests::CHECK
    - auto::has_value
    - Botan::TLS::Session_Manager_In_Memory::store
    - auto::id
    - std::optional::remove
    - Botan::TLS::Session_Ticket::get
    - confirm
    - std::optional::emplace
    - std::optional::find
    - Botan::TLS::Opaque_Session_Handle
    - std::vector::push_back
    - require
    - std::vector::size
    - auto::version
    - session::version
    - Botan::TLS::Session_Manager_In_Memory::find
    - auto::random_vec
    - Botan_Tests::random_ticket
    - Botan::TLS::Protocol_Version
    - Botan::TLS::Session_Ticket
    - Botan_Tests::server_info
    - Botan_Tests::default_session
    - Botan_Tests::random_id
    - std::optional::store
    - Botan_Tests::Test::new_shared_rng
    - std::optional::retrieve
    - auto::ciphersuite_code
    - test_is_eq
    - std::optional::remove_all
    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:398,1
    - Dst: is_pre_tls_13
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:403,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:404,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:406,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:411,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:413,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:414,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:417,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:419,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:423,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:424,1
    - Dst: Botan::TLS::PskIdentity::PskIdentity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:428,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:428,1
    - Dst: begin
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:428,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:428,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:432,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:436,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:438,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:439,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:440,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:442,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:442,1
    - Dst: Botan_Tests::CHECK
      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:451,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:451,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:451,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:452,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:452,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:452,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:456,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:456,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:456,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:457,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:457,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:458,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:462,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:462,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:463,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:463,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:464,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:467,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:468,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:468,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:468,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:468,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:469,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:469,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:470,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:473,1
    - Dst: std::make_shared<Test_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:475,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:479,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:479,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:479,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:480,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:480,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:480,1
    - Dst: Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:483,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:484,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:484,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:485,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:485,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:486,1
    - Dst: Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:489,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:490,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:490,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:491,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:491,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:492,1
    - Dst: Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:495,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:496,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:496,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:496,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:496,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:497,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:497,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:498,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:501,1
    - Dst: std::make_shared<Test_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:503,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:507,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:507,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:507,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:508,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:508,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:508,1
    - Dst: Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:510,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:510,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:510,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:511,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:511,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:512,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:512,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:516,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:516,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:517,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:520,1
    - Dst: std::make_shared<Test_Credentials_Manager>
      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:526,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:527,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:527,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:528,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:529,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:529,1
    - Dst: Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:531,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:531,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:531,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:532,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:532,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:533,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:533,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:537,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:537,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 393
    functionDepth: 2
    functionLinenumber: 393
    functionLinenumberEnd: 544
    functionName: Botan_Tests::test_session_manager_choose_ticket
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Session_Manager_In_Memory::establish
    - TestSession::TestSession
    - Botan::TLS::Session_Manager_Stateless::establish
    - Botan_CLI::Timer::seconds
    - begin
    - std::vector
    - Botan::TLS::Session_Manager_In_Memory::choose_from_offered_tickets
    - Botan::TLS::Ciphersuite::from_name
    - Botan_Tests::CHECK
    - auto::has_value
    - confirm
    - ticket
    - std::vector::push_back
    - id
    - is_pre_tls_13
    - require
    - std::make_shared<Test_Credentials_Manager>
    - tls_current_timestamp
    - Botan::TLS::PskIdentity::PskIdentity
    - Botan_Tests::random_ticket
    - Botan_Tests::server_info
    - Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
    - Botan_Tests::default_session
    - end
    - Botan_Tests::Test::new_shared_rng
    - test_is_eq
    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:547,1
    - Dst: Botan_Tests::Test::new_shared_rng
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:549,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:557,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:559,1
    - Dst: Botan::TLS::Session_Manager_Stateless::emits_session_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:559,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:560,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:560,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:561,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:561,1
    - Dst: auto::is_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:561,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:564,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:566,1
    - Dst: Botan::TLS::Session_Manager_Stateless::emits_session_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:566,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:568,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:568,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:569,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:569,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:572,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:576,1
    - Dst: Botan::TLS::Session_Manager_Stateless::emits_session_tickets
      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:577,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:577,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:578,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:578,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:581,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:583,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:583,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:584,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:584,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:585,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:585,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:585,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:588,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:588,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:588,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:589,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:590,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:590,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:593,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:595,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:595,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:596,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:596,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:596,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:598,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:598,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:598,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:601,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:603,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:603,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:604,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:604,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:604,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:606,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:607,1
    - Dst: auto::opaque_handle
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:607,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:610,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:612,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:612,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:613,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:613,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:613,1
    - Dst: confirm
      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:621,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:621,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:622,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:623,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:623,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:624,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:624,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:624,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:627,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:629,1
    - Dst: Botan::TLS::Session_Manager_Stateless::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:630,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:630,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:630,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:632,1
    - Dst: Botan::TLS::Session_Manager_Stateless::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:633,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:633,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:633,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:635,1
    - Dst: Botan::TLS::Session_Manager_Stateless::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:636,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:636,1
    - Dst: Botan_Tests::random_opaque_handle
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:636,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:639,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:639,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:640,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:640,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:640,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:641,1
    - Dst: Botan::TLS::Session_Manager_Stateless::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:641,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:641,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:644,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:646,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:646,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:647,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:647,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:647,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:649,1
    - Dst: Botan::TLS::Session_Manager_Stateless::remove
      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: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:650,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:650,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:650,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:652,1
    - Dst: Botan::TLS::Session_Manager_Stateless::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:652,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:653,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:653,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:653,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:656,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:659,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:660,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:661,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:661,1
    - Dst: auto::is_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:661,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:662,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:662,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:663,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:663,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:665,1
    - Dst: std::chrono::duration_cast<std::chrono::seconds>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:667,1
    - Dst: auto::start_time
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:667,1
    - Dst: std::chrono::duration_cast<std::chrono::seconds>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:668,1
    - Dst: auto::start_time
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:668,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 546
    functionDepth: 2
    functionLinenumber: 546
    functionLinenumberEnd: 672
    functionName: Botan_Tests::test_session_manager_stateless
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - test_throws
    - Botan::TLS::Session_Manager_Stateless::establish
    - Botan::TLS::Session_Manager_Stateless::remove_all
    - Botan::TLS::Session_Manager_Stateless::retrieve
    - Botan::TLS::Session_Manager_Stateless::remove
    - auto::start_time
    - Botan_Tests::CHECK
    - auto::has_value
    - confirm
    - auto::opaque_handle
    - std::chrono::duration_cast<std::chrono::seconds>
    - Botan::TLS::Session_Manager_Stateless::store
    - auto::value
    - std::make_shared<Test_Credentials_Manager>
    - require
    - Botan::TLS::Session_Manager_Stateless::find
    - Botan_Tests::random_ticket
    - Botan_Tests::server_info
    - Botan_Tests::default_session
    - Botan_Tests::random_id
    - auto::is_ticket
    - Botan_Tests::Test::new_shared_rng
    - Botan_Tests::random_opaque_handle
    - Botan::TLS::Session_Manager_Stateless::emits_session_tickets
    - test_is_eq
    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:675,1
    - Dst: std::make_shared<Test_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:677,1
    - Dst: std::unique_ptr<Botan::TLS::Session_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:686,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:690,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_SQLite>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:695,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:696,1
    - Dst: Botan::TLS::Session_Manager_Hybrid::Session_Manager_Hybrid
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:707,1
    - Dst: stateful_manager_factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:707,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:710,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:711,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:712,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:712,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:712,1
    - Dst: Botan_Tests::Test::flatten_result_lists
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:717,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:718,1
    - Dst: make_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:720,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: confirm
      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_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:723,1
    - Dst: make_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:725,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:726,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:726,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:727,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:727,1
    - Dst: auto::is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:727,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:729,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:729,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:732,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:732,1
    - Dst: auto::is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:732,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:734,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:734,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:737,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:737,1
    - Dst: auto::is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:737,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:740,1
    - Dst: make_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:742,1
    - Dst: make_manager
      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:745,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:746,1
    - Dst: auto::underlying_stateful_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:747,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:748,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:750,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:750,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:752,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:752,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:752,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:752,1
    - Dst: confirm
      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: confirm
      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: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:756,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:756,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:756,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:757,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:757,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:757,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:758,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:758,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:758,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:759,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:759,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:759,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:762,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:765,1
    - Dst: std::make_shared<Empty_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:766,1
    - Dst: make_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:768,1
    - Dst: make_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:769,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:771,1
    - Dst: Botan::TLS::Session_Manager_Hybrid::emits_session_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:771,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:772,1
    - Dst: auto::emits_session_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:772,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:773,1
    - Dst: auto::emits_session_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:773,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 674
    functionDepth: 2
    functionLinenumber: 674
    functionLinenumberEnd: 776
    functionName: Botan_Tests::test_session_manager_hybrid
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<Empty_Credentials_Manager>
    - auto::c_str
    - auto::underlying_stateful_manager
    - stateful_manager_factory
    - Botan_Tests::CHECK
    - auto::has_value
    - auto::is_id
    - Botan::TLS::Session_Manager_Hybrid::emits_session_tickets
    - make_manager
    - auto::retrieve
    - auto::establish
    - auto::emits_session_tickets
    - confirm
    - std::make_unique<Botan::TLS::Session_Manager_SQLite>
    - std::vector::push_back
    - auto::value
    - std::make_shared<Test_Credentials_Manager>
    - require
    - Botan::TLS::Session_Manager_Hybrid::Session_Manager_Hybrid
    - std::bind
    - Botan_Tests::Test::flatten_result_lists
    - Botan::fmt
    - Botan_Tests::Test::temp_file_name
    - Botan_Tests::default_session
    - CHECK_all
    - auto::is_ticket
    - Botan_Tests::Test::new_shared_rng
    - std::make_unique<Botan::TLS::Session_Manager_In_Memory>
    - std::unique_ptr<Botan::TLS::Session_Manager>
    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:786,1
    - Dst: empty
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:787,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:788,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' db_file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 785
    functionDepth: 1
    functionLinenumber: 785
    functionLinenumberEnd: 790
    functionName: Botan_Tests::Temporary_Database_File::Temporary_Database_File
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - empty
    - Botan_Tests::Test::data_file_as_temporary_copy
    - Test_Error
    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:794,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:795,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 792
    functionDepth: 1
    functionLinenumber: 792
    functionLinenumberEnd: 798
    functionName: ~Temporary_Database_File()
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - empty
    - Botan_Tests::RFC8448_Session_Manager::remove
    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: 800
      start: 800
    functionDepth: 0
    functionLinenumber: 800
    functionLinenumberEnd: 800
    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: 802
      start: 802
    functionDepth: 0
    functionLinenumber: 802
    functionLinenumberEnd: 802
    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: 803
      start: 803
    functionDepth: 0
    functionLinenumber: 803
    functionLinenumberEnd: 803
    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: 804
      start: 804
    functionDepth: 0
    functionLinenumber: 804
    functionLinenumberEnd: 804
    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: 805
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 805
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file_as_temporary_copy
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:786,1
    - Dst: empty
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:787,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:788,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' db_file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 785
    functionDepth: 1
    functionLinenumber: 785
    functionLinenumberEnd: 790
    functionName: Botan_Tests::Temporary_Database_File::Temporary_Database_File
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - empty
    - Botan_Tests::Test::data_file_as_temporary_copy
    - Test_Error
    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:794,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:795,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 792
    functionDepth: 1
    functionLinenumber: 792
    functionLinenumberEnd: 798
    functionName: ~Temporary_Database_File()
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - empty
    - Botan_Tests::RFC8448_Session_Manager::remove
    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: 800
      start: 800
    functionDepth: 0
    functionLinenumber: 800
    functionLinenumberEnd: 800
    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: 802
      start: 802
    functionDepth: 0
    functionLinenumber: 802
    functionLinenumberEnd: 802
    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: 803
      start: 803
    functionDepth: 0
    functionLinenumber: 803
    functionLinenumberEnd: 803
    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: 804
      start: 804
    functionDepth: 0
    functionLinenumber: 804
    functionLinenumberEnd: 804
    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: 805
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 805
    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:812,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:817,1
    - Dst: Temporary_Database_File::get
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:825,1
    - Dst: confirm
      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: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:834,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:835,1
    - Dst: Botan::TLS::Session_ID
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:836,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:836,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:841,1
    - Dst: Botan::TLS::Session_Manager_SQLite::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:842,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:842,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:843,1
    - Dst: Botan::TLS::Session_Manager_SQLite::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:844,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:844,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:846,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:846,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:849,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:851,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:852,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:852,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:855,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:858,1
    - Dst: Botan_Tests::random_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: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:864,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:864,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:866,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:866,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:867,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:867,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:868,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:868,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:871,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:874,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:875,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:877,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:877,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:878,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:878,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:880,1
    - Dst: auto::is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:881,1
    - Dst: auto::is_id
      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:883,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:883,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:884,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:884,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:885,1
    - Dst: auto::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:886,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:887,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:888,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:888,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:891,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:891,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:892,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:892,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:893,1
    - Dst: auto::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:894,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:895,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:896,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:896,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      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: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:900,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:900,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:903,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:906,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:908,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:908,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:908,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:909,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:909,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:911,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:912,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:912,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:915,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:918,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:919,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:920,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:921,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:921,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:922,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:922,1
    - Dst: Botan::TLS::Session_Manager_SQLite::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:924,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:924,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:925,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:925,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:927,1
    - Dst: is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:927,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:927,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:928,1
    - Dst: is_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:928,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:928,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:933,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:935,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:936,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:937,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:938,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:938,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:939,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:939,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:940,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:940,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:940,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:941,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:941,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:941,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:943,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:943,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:944,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:944,1
    - Dst: Botan::TLS::Session_Manager_SQLite::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:946,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:946,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:947,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:947,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:949,1
    - Dst: is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:949,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:949,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:950,1
    - Dst: is_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:950,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:950,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:954,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:954,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:957,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:960,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:962,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:962,1
    - Dst: Botan_Tests::random_id
      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: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:970,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:971,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:971,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:972,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:972,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:973,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:973,1
    - Dst: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:975,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:976,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:976,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:977,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:977,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:978,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:978,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:980,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:980,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:983,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:986,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:989,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:989,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:989,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:992,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:992,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 810
    functionDepth: 2
    functionLinenumber: 810
    functionLinenumberEnd: 998
    functionName: Botan_Tests::test_session_manager_sqlite
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - Botan::TLS::Session_Manager_SQLite::remove
    - Botan::TLS::Session_ID
    - auto::size
    - Botan_Tests::CHECK
    - auto::has_value
    - auto::is_id
    - auto::id
    - is_id
    - confirm
    - ticket
    - id
    - Botan::TLS::Server_Information
    - Botan::TLS::Session_Manager_SQLite::retrieve
    - auto::value
    - require
    - auto::version
    - Botan::TLS::Session_Manager_SQLite::find
    - Botan_Tests::Test::temp_file_name
    - Botan::TLS::Session_Manager_SQLite::remove_all
    - Botan::TLS::Session_Manager_SQLite::establish
    - Botan_Tests::random_ticket
    - Temporary_Database_File::get
    - Botan::TLS::Protocol_Version
    - Botan_Tests::server_info
    - Botan_Tests::default_session
    - Botan_Tests::random_id
    - is_ticket
    - Botan_Tests::Test::new_shared_rng
    - Botan::TLS::Session_Manager_SQLite::store
    - auto::ciphersuite_code
    - Session_Manager_Callbacks::tick
    - test_is_eq
    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:1001,1
    - Dst: std::unique_ptr<Botan::TLS::Session_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1006,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1010,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_Stateless>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1014,1
    - Dst: std::make_shared<Test_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1015,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_SQLite>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1020,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1021,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1027,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1027,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1030,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1031,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1032,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1032,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1032,1
    - Dst: Botan_Tests::Test::flatten_result_lists
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1037,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1038,1
    - Dst: factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1040,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1042,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1042,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1043,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1043,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1044,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1044,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1044,1
    - Dst: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1045,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1046,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1046,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1046,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1047,1
    - Dst: auto::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1047,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1050,1
    - Dst: factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1056,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1058,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1059,1
    - Dst: Botan_Tests::default_session
      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::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1060,1
    - Dst: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1062,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1063,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1064,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1064,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1065,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1065,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1067,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1067,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1068,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1068,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1069,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1069,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1070,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1071,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1071,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1073,1
    - Dst: auto::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1073,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1076,1
    - Dst: factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1083,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: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1093,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1094,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1094,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1096,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1097,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1097,1
    - Dst: Session_Manager_Policy::set_allow_session_reuse
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1101,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1103,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1103,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1104,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1104,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1106,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1106,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1107,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1107,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1108,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1108,1
    - Dst: is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1108,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1109,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1110,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1110,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1111,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1112,1
    - Dst: version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1112,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1115,1
    - Dst: factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1121,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1125,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1126,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1126,1
    - Dst: Session_Manager_Policy::set_allow_session_reuse
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1129,1
    - Dst: Session_Manager_Policy::set_session_limit
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1131,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1132,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1133,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1133,1
    - Dst: Session_Manager_Policy::maximum_session_tickets_per_client_hello
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1134,1
    - Dst: Session_Manager_Policy::set_session_limit
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1136,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1137,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1138,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1138,1
    - Dst: Session_Manager_Policy::maximum_session_tickets_per_client_hello
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1139,1
    - Dst: Session_Manager_Policy::set_session_limit
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1141,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1142,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1142,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1142,1
    - Dst: factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1152,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1154,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1155,1
    - Dst: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1156,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1157,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1158,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1159,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1159,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1159,1
    - Dst: auto::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1161,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1162,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1162,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1162,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1162,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1163,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1163,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1164,1
    - Dst: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1166,1
    - Dst: auto::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1168,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1169,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1169,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1169,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1169,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1170,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1170,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1000
    functionDepth: 2
    functionLinenumber: 1000
    functionLinenumberEnd: 1171
    functionName: Botan_Tests::tls_session_manager_expiry
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - auto::empty
    - auto::find
    - version
    - auto::choose_from_offered_tickets
    - auto::c_str
    - auto::size
    - std::vector::reserve
    - Botan_Tests::CHECK
    - auto::has_value
    - auto::remove_all
    - auto::retrieve
    - auto::establish
    - is_id
    - confirm
    - Session_Manager_Policy::set_session_limit
    - ticket
    - std::make_unique<Botan::TLS::Session_Manager_SQLite>
    - std::vector::push_back
    - id
    - Session_Manager_Policy::maximum_session_tickets_per_client_hello
    - auto::value
    - std::make_shared<Test_Credentials_Manager>
    - std::make_unique<Botan::TLS::Session_Manager_Stateless>
    - require
    - std::bind
    - auto::store
    - std::vector::size
    - Botan_Tests::Test::flatten_result_lists
    - Botan::fmt
    - Botan_Tests::Test::temp_file_name
    - auto::front
    - factory
    - Botan_Tests::random_ticket
    - Botan_Tests::server_info
    - Session_Manager_Policy::set_allow_session_reuse
    - Botan_Tests::default_session
    - CHECK_all
    - Session_Manager_Callbacks::tick
    - Botan_Tests::random_id
    - Botan_Tests::Test::new_shared_rng
    - std::make_unique<Botan::TLS::Session_Manager_In_Memory>
    - std::unique_ptr<Botan::TLS::Session_Manager>
    - test_is_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> tls_session_manager_expiry()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random_vec
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 105
    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:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 109
    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:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    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: 118
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 118
    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:123,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:124,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:125,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:125,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:128,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:131,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:133,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:137,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:138,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:140,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: 143
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 143
    functionName: Botan_Tests::default_session
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 18
    functionsReached:
    - Botan::TLS::Ciphersuite::from_name
    - TestSession::TestSession
    - Test_Error
    - Botan_CLI::Timer::seconds
    - Botan_Tests::server_info
    - is_pre_tls_13
    - tls_current_timestamp
    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:148,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:150,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:158,1
    - Dst: std::optional::emplace
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:158,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:160,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:162,1
    - Dst: std::optional::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:162,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:162,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:164,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:165,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:167,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:167,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:168,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:168,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:171,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:172,1
    - Dst: std::optional::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:172,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:174,1
    - Dst: std::optional::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:176,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:176,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:177,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:177,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:178,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:178,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:179,1
    - Dst: auto::ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:179,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:180,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:180,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:184,1
    - Dst: std::optional::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:186,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:186,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:187,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:187,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:188,1
    - Dst: session::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:189,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:190,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:191,1
    - Dst: session::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:191,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:192,1
    - Dst: handle::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:192,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:193,1
    - Dst: handle::ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:193,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:197,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:199,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:200,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:200,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:201,1
    - Dst: auto::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:202,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:203,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:204,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:204,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:208,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:210,1
    - Dst: Botan::TLS::Opaque_Session_Handle
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:210,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:211,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:211,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:212,1
    - Dst: auto::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:213,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:214,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:215,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:215,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:219,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:221,1
    - Dst: Botan::TLS::Session_Ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:221,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:222,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:222,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:225,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:227,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:227,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:228,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:228,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:231,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:233,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:233,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:234,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:234,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:237,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:239,1
    - Dst: std::optional::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:239,1
    - Dst: test_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: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:243,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:245,1
    - Dst: std::optional::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:247,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:247,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:248,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:248,1
    - Dst: std::optional::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:250,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:250,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:251,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:251,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:252,1
    - Dst: session::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:253,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:254,1
    - Dst: test_is_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_is_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: confirm
      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:265,1
    - Dst: std::optional::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:267,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:267,1
    - Dst: std::optional::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:270,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:270,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:271,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:271,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:272,1
    - Dst: session::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:273,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:274,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:275,1
    - Dst: session::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:275,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:276,1
    - Dst: handle::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:276,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:277,1
    - Dst: handle::ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:277,1
    - Dst: std::optional::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:280,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:283,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: Botan::TLS::Session_Manager_In_Memory::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:289,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:289,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:290,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:292,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:292,1
    - Dst: auto::ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:292,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:293,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:295,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:295,1
    - Dst: auto::ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:295,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:297,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:298,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:298,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:300,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:300,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:301,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:302,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:303,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:304,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:304,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:306,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:307,1
    - Dst: Botan::TLS::Opaque_Session_Handle
      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: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:309,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:310,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:310,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:311,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:311,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:311,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:314,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:318,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:319,1
    - Dst: Botan_Tests::random_ticket
      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:322,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:322,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:323,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:323,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:324,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:324,1
    - Dst: test_is_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:326,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:326,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:328,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:328,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:329,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:330,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:330,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:332,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:333,1
    - Dst: Botan::TLS::Opaque_Session_Handle
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:333,1
    - Dst: Botan::TLS::Session_Ticket::get
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:333,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:335,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:336,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:336,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:339,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:342,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:342,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:346,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:346,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:347,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:348,1
    - Dst: std::optional::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:349,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:349,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:349,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:353,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:353,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:357,1
    - Dst: std::optional::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:358,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:358,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:358,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:360,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:360,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:361,1
    - Dst: confirm
      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: std::optional::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:366,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:367,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:367,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:368,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:368,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:369,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:370,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:370,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:374,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:375,1
    - Dst: std::optional::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:376,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:376,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:376,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:379,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:379,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:380,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:380,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:383,1
    - Dst: std::optional::capacity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:383,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:383,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:384,1
    - Dst: std::optional::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:384,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:388,1
    - Dst: std::optional::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:388,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 109
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 391
    functionName: Botan_Tests::test_session_manager_in_memory
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - handle::ticket
    - Botan::TLS::Session_Manager_In_Memory::establish
    - std::optional::establish
    - Botan::TLS::Session_Manager_In_Memory::remove
    - auto::ticket
    - Botan::TLS::Session_Manager_In_Memory::retrieve
    - auto::size
    - handle::id
    - std::optional::capacity
    - std::vector::reserve
    - session::ciphersuite_code
    - Botan_Tests::CHECK
    - auto::has_value
    - Botan::TLS::Session_Manager_In_Memory::store
    - auto::id
    - std::optional::remove
    - Botan::TLS::Session_Ticket::get
    - confirm
    - std::optional::emplace
    - std::optional::find
    - Botan::TLS::Opaque_Session_Handle
    - std::vector::push_back
    - require
    - std::vector::size
    - auto::version
    - session::version
    - Botan::TLS::Session_Manager_In_Memory::find
    - auto::random_vec
    - Botan_Tests::random_ticket
    - Botan::TLS::Protocol_Version
    - Botan::TLS::Session_Ticket
    - Botan_Tests::server_info
    - Botan_Tests::default_session
    - Botan_Tests::random_id
    - std::optional::store
    - Botan_Tests::Test::new_shared_rng
    - std::optional::retrieve
    - auto::ciphersuite_code
    - test_is_eq
    - std::optional::remove_all
    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:398,1
    - Dst: is_pre_tls_13
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:403,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:404,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:406,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:411,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:413,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:414,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:417,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:419,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:423,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:424,1
    - Dst: Botan::TLS::PskIdentity::PskIdentity
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:428,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:428,1
    - Dst: begin
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:428,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:428,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:432,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:436,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:438,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:439,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:440,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:442,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:442,1
    - Dst: Botan_Tests::CHECK
      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:451,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:451,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:451,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:452,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:452,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:452,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:456,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:456,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:456,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:457,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:457,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:458,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:462,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:462,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:463,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:463,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:464,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:467,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:468,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:468,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:468,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:468,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:469,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:469,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:470,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:473,1
    - Dst: std::make_shared<Test_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:475,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:479,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:479,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:479,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:480,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:480,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:480,1
    - Dst: Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:483,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:484,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:484,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:485,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:485,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:486,1
    - Dst: Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:489,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:490,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:490,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:491,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:491,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:492,1
    - Dst: Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:495,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:496,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:496,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:496,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:496,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:497,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:497,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:498,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:501,1
    - Dst: std::make_shared<Test_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:503,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:507,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:507,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:507,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:508,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:508,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:508,1
    - Dst: Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:510,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:510,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:510,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:511,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:511,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:512,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:512,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:516,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:516,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:517,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:520,1
    - Dst: std::make_shared<Test_Credentials_Manager>
      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:526,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:527,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:527,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:528,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:529,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:529,1
    - Dst: Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:531,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:531,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:531,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:532,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:532,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:533,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:533,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:537,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:537,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 393
    functionDepth: 2
    functionLinenumber: 393
    functionLinenumberEnd: 544
    functionName: Botan_Tests::test_session_manager_choose_ticket
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Session_Manager_In_Memory::establish
    - TestSession::TestSession
    - Botan::TLS::Session_Manager_Stateless::establish
    - Botan_CLI::Timer::seconds
    - begin
    - std::vector
    - Botan::TLS::Session_Manager_In_Memory::choose_from_offered_tickets
    - Botan::TLS::Ciphersuite::from_name
    - Botan_Tests::CHECK
    - auto::has_value
    - confirm
    - ticket
    - std::vector::push_back
    - id
    - is_pre_tls_13
    - require
    - std::make_shared<Test_Credentials_Manager>
    - tls_current_timestamp
    - Botan::TLS::PskIdentity::PskIdentity
    - Botan_Tests::random_ticket
    - Botan_Tests::server_info
    - Botan::TLS::Session_Manager_Stateless::choose_from_offered_tickets
    - Botan_Tests::default_session
    - end
    - Botan_Tests::Test::new_shared_rng
    - test_is_eq
    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:547,1
    - Dst: Botan_Tests::Test::new_shared_rng
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:549,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:557,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:559,1
    - Dst: Botan::TLS::Session_Manager_Stateless::emits_session_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:559,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:560,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:560,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:561,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:561,1
    - Dst: auto::is_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:561,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:564,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:566,1
    - Dst: Botan::TLS::Session_Manager_Stateless::emits_session_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:566,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:568,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:568,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:569,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:569,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:572,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:576,1
    - Dst: Botan::TLS::Session_Manager_Stateless::emits_session_tickets
      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:577,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:577,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:578,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:578,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:581,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:583,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:583,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:584,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:584,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:585,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:585,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:585,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:588,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:588,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:588,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:589,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:590,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:590,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:593,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:595,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:595,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:596,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:596,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:596,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:598,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:598,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:598,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:601,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:603,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:603,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:604,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:604,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:604,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:606,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:607,1
    - Dst: auto::opaque_handle
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:607,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:610,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:612,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:612,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:613,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:613,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:613,1
    - Dst: confirm
      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:621,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:621,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:622,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:623,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:623,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:624,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:624,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:624,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:627,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:629,1
    - Dst: Botan::TLS::Session_Manager_Stateless::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:630,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:630,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:630,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:632,1
    - Dst: Botan::TLS::Session_Manager_Stateless::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:633,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:633,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:633,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:635,1
    - Dst: Botan::TLS::Session_Manager_Stateless::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:636,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:636,1
    - Dst: Botan_Tests::random_opaque_handle
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:636,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:639,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:639,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:640,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:640,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:640,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:641,1
    - Dst: Botan::TLS::Session_Manager_Stateless::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:641,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:641,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:644,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:646,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:646,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:647,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:647,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:647,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:649,1
    - Dst: Botan::TLS::Session_Manager_Stateless::remove
      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: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:650,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:650,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:650,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:652,1
    - Dst: Botan::TLS::Session_Manager_Stateless::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:652,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:653,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:653,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:653,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:656,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:659,1
    - Dst: Botan::TLS::Session_Manager_Stateless::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:660,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:661,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:661,1
    - Dst: auto::is_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:661,1
    - Dst: Botan::TLS::Session_Manager_Stateless::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:662,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:662,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:663,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:663,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:665,1
    - Dst: std::chrono::duration_cast<std::chrono::seconds>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:667,1
    - Dst: auto::start_time
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:667,1
    - Dst: std::chrono::duration_cast<std::chrono::seconds>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:668,1
    - Dst: auto::start_time
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:668,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 546
    functionDepth: 2
    functionLinenumber: 546
    functionLinenumberEnd: 672
    functionName: Botan_Tests::test_session_manager_stateless
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - test_throws
    - Botan::TLS::Session_Manager_Stateless::establish
    - Botan::TLS::Session_Manager_Stateless::remove_all
    - Botan::TLS::Session_Manager_Stateless::retrieve
    - Botan::TLS::Session_Manager_Stateless::remove
    - auto::start_time
    - Botan_Tests::CHECK
    - auto::has_value
    - confirm
    - auto::opaque_handle
    - std::chrono::duration_cast<std::chrono::seconds>
    - Botan::TLS::Session_Manager_Stateless::store
    - auto::value
    - std::make_shared<Test_Credentials_Manager>
    - require
    - Botan::TLS::Session_Manager_Stateless::find
    - Botan_Tests::random_ticket
    - Botan_Tests::server_info
    - Botan_Tests::default_session
    - Botan_Tests::random_id
    - auto::is_ticket
    - Botan_Tests::Test::new_shared_rng
    - Botan_Tests::random_opaque_handle
    - Botan::TLS::Session_Manager_Stateless::emits_session_tickets
    - test_is_eq
    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:675,1
    - Dst: std::make_shared<Test_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:677,1
    - Dst: std::unique_ptr<Botan::TLS::Session_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:686,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:690,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_SQLite>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:695,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:696,1
    - Dst: Botan::TLS::Session_Manager_Hybrid::Session_Manager_Hybrid
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:707,1
    - Dst: stateful_manager_factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:707,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:710,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:711,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:712,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:712,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:712,1
    - Dst: Botan_Tests::Test::flatten_result_lists
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:717,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:718,1
    - Dst: make_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:720,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: confirm
      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_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:723,1
    - Dst: make_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:725,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:726,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:726,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:727,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:727,1
    - Dst: auto::is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:727,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:729,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:729,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:732,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:732,1
    - Dst: auto::is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:732,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:734,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:734,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:737,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:737,1
    - Dst: auto::is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:737,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:740,1
    - Dst: make_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:742,1
    - Dst: make_manager
      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:745,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:746,1
    - Dst: auto::underlying_stateful_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:747,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:748,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:750,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:750,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:752,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:752,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:752,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:752,1
    - Dst: confirm
      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: confirm
      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: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:756,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:756,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:756,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:757,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:757,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:757,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:758,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:758,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:758,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:759,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:759,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:759,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:762,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:765,1
    - Dst: std::make_shared<Empty_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:766,1
    - Dst: make_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:768,1
    - Dst: make_manager
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:769,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:771,1
    - Dst: Botan::TLS::Session_Manager_Hybrid::emits_session_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:771,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:772,1
    - Dst: auto::emits_session_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:772,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:773,1
    - Dst: auto::emits_session_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:773,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 674
    functionDepth: 2
    functionLinenumber: 674
    functionLinenumberEnd: 776
    functionName: Botan_Tests::test_session_manager_hybrid
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<Empty_Credentials_Manager>
    - auto::c_str
    - auto::underlying_stateful_manager
    - stateful_manager_factory
    - Botan_Tests::CHECK
    - auto::has_value
    - auto::is_id
    - Botan::TLS::Session_Manager_Hybrid::emits_session_tickets
    - make_manager
    - auto::retrieve
    - auto::establish
    - auto::emits_session_tickets
    - confirm
    - std::make_unique<Botan::TLS::Session_Manager_SQLite>
    - std::vector::push_back
    - auto::value
    - std::make_shared<Test_Credentials_Manager>
    - require
    - Botan::TLS::Session_Manager_Hybrid::Session_Manager_Hybrid
    - std::bind
    - Botan_Tests::Test::flatten_result_lists
    - Botan::fmt
    - Botan_Tests::Test::temp_file_name
    - Botan_Tests::default_session
    - CHECK_all
    - auto::is_ticket
    - Botan_Tests::Test::new_shared_rng
    - std::make_unique<Botan::TLS::Session_Manager_In_Memory>
    - std::unique_ptr<Botan::TLS::Session_Manager>
    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:786,1
    - Dst: empty
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:787,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:788,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' db_file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 785
    functionDepth: 1
    functionLinenumber: 785
    functionLinenumberEnd: 790
    functionName: Botan_Tests::Temporary_Database_File::Temporary_Database_File
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - empty
    - Botan_Tests::Test::data_file_as_temporary_copy
    - Test_Error
    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:794,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:795,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 792
    functionDepth: 1
    functionLinenumber: 792
    functionLinenumberEnd: 798
    functionName: ~Temporary_Database_File()
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - empty
    - Botan_Tests::RFC8448_Session_Manager::remove
    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: 800
      start: 800
    functionDepth: 0
    functionLinenumber: 800
    functionLinenumberEnd: 800
    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: 802
      start: 802
    functionDepth: 0
    functionLinenumber: 802
    functionLinenumberEnd: 802
    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: 803
      start: 803
    functionDepth: 0
    functionLinenumber: 803
    functionLinenumberEnd: 803
    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: 804
      start: 804
    functionDepth: 0
    functionLinenumber: 804
    functionLinenumberEnd: 804
    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: 805
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 805
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file_as_temporary_copy
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:786,1
    - Dst: empty
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:787,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:788,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' db_file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 785
    functionDepth: 1
    functionLinenumber: 785
    functionLinenumberEnd: 790
    functionName: Botan_Tests::Temporary_Database_File::Temporary_Database_File
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - empty
    - Botan_Tests::Test::data_file_as_temporary_copy
    - Test_Error
    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:794,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:795,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 792
    functionDepth: 1
    functionLinenumber: 792
    functionLinenumberEnd: 798
    functionName: ~Temporary_Database_File()
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - empty
    - Botan_Tests::RFC8448_Session_Manager::remove
    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: 800
      start: 800
    functionDepth: 0
    functionLinenumber: 800
    functionLinenumberEnd: 800
    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: 802
      start: 802
    functionDepth: 0
    functionLinenumber: 802
    functionLinenumberEnd: 802
    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: 803
      start: 803
    functionDepth: 0
    functionLinenumber: 803
    functionLinenumberEnd: 803
    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: 804
      start: 804
    functionDepth: 0
    functionLinenumber: 804
    functionLinenumberEnd: 804
    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: 805
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 805
    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:812,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:817,1
    - Dst: Temporary_Database_File::get
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:825,1
    - Dst: confirm
      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: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:834,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:835,1
    - Dst: Botan::TLS::Session_ID
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:836,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:836,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:841,1
    - Dst: Botan::TLS::Session_Manager_SQLite::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:842,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:842,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:843,1
    - Dst: Botan::TLS::Session_Manager_SQLite::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:844,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:844,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:846,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:846,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:849,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:851,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:852,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:852,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:855,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:858,1
    - Dst: Botan_Tests::random_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: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:864,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:864,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:866,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:866,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:867,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:867,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:868,1
    - Dst: auto::id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:868,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:871,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:874,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:875,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:877,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:877,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:878,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:878,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:880,1
    - Dst: auto::is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:881,1
    - Dst: auto::is_id
      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:883,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:883,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:884,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:884,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:885,1
    - Dst: auto::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:886,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:887,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:888,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:888,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:891,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:891,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:892,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:892,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:893,1
    - Dst: auto::version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:894,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:895,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:896,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:896,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      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: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:900,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:900,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:903,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:906,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:908,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:908,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:908,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:909,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:909,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:911,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:912,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:912,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:915,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:918,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:919,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:920,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:921,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:921,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:922,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:922,1
    - Dst: Botan::TLS::Session_Manager_SQLite::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:924,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:924,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:925,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:925,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:927,1
    - Dst: is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:927,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:927,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:928,1
    - Dst: is_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:928,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:928,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:933,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:935,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:936,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:937,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:938,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:938,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:939,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:939,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:940,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:940,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:940,1
    - Dst: Botan::TLS::Session_Manager_SQLite::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:941,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:941,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:941,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:943,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:943,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:944,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:944,1
    - Dst: Botan::TLS::Session_Manager_SQLite::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:946,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:946,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:947,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:947,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:949,1
    - Dst: is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:949,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:949,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:950,1
    - Dst: is_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:950,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:950,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:954,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:954,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:957,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:960,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:962,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:962,1
    - Dst: Botan_Tests::random_id
      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: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:970,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:971,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:971,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:972,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:972,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:973,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:973,1
    - Dst: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:975,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:976,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:976,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:977,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:977,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:978,1
    - Dst: Botan::TLS::Session_Manager_SQLite::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:978,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:980,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:980,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:983,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:986,1
    - Dst: Botan::TLS::Session_Manager_SQLite::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:989,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:989,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:989,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:992,1
    - Dst: Botan::TLS::Session_Manager_SQLite::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:992,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 810
    functionDepth: 2
    functionLinenumber: 810
    functionLinenumberEnd: 998
    functionName: Botan_Tests::test_session_manager_sqlite
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - Botan::TLS::Session_Manager_SQLite::remove
    - Botan::TLS::Session_ID
    - auto::size
    - Botan_Tests::CHECK
    - auto::has_value
    - auto::is_id
    - auto::id
    - is_id
    - confirm
    - ticket
    - id
    - Botan::TLS::Server_Information
    - Botan::TLS::Session_Manager_SQLite::retrieve
    - auto::value
    - require
    - auto::version
    - Botan::TLS::Session_Manager_SQLite::find
    - Botan_Tests::Test::temp_file_name
    - Botan::TLS::Session_Manager_SQLite::remove_all
    - Botan::TLS::Session_Manager_SQLite::establish
    - Botan_Tests::random_ticket
    - Temporary_Database_File::get
    - Botan::TLS::Protocol_Version
    - Botan_Tests::server_info
    - Botan_Tests::default_session
    - Botan_Tests::random_id
    - is_ticket
    - Botan_Tests::Test::new_shared_rng
    - Botan::TLS::Session_Manager_SQLite::store
    - auto::ciphersuite_code
    - Session_Manager_Callbacks::tick
    - test_is_eq
    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:1001,1
    - Dst: std::unique_ptr<Botan::TLS::Session_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1006,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1010,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_Stateless>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1014,1
    - Dst: std::make_shared<Test_Credentials_Manager>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1015,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_SQLite>
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1020,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1021,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1027,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1027,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1030,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1031,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1032,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1032,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1032,1
    - Dst: Botan_Tests::Test::flatten_result_lists
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1037,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1038,1
    - Dst: factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1040,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1042,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1042,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1043,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1043,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1044,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1044,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1044,1
    - Dst: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1045,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1046,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1046,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1046,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1047,1
    - Dst: auto::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1047,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1050,1
    - Dst: factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1056,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1058,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1059,1
    - Dst: Botan_Tests::default_session
      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::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1060,1
    - Dst: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1062,1
    - Dst: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1063,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1064,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1064,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1065,1
    - Dst: auto::retrieve
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1065,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1067,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1067,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1068,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1068,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1069,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1069,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1070,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1071,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1071,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1073,1
    - Dst: auto::remove_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1073,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1076,1
    - Dst: factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1083,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: Botan_Tests::random_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1093,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1094,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1094,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1096,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1097,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1097,1
    - Dst: Session_Manager_Policy::set_allow_session_reuse
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1101,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1103,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1103,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1104,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1104,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1106,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1106,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1107,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1107,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1108,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1108,1
    - Dst: is_id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1108,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1109,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1110,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1110,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1111,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1112,1
    - Dst: version
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1112,1
    - Dst: CHECK_all
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1115,1
    - Dst: factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1121,1
    - Dst: Botan_Tests::random_ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1125,1
    - Dst: auto::store
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1126,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1126,1
    - Dst: Session_Manager_Policy::set_allow_session_reuse
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1129,1
    - Dst: Session_Manager_Policy::set_session_limit
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1131,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1132,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1133,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1133,1
    - Dst: Session_Manager_Policy::maximum_session_tickets_per_client_hello
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1134,1
    - Dst: Session_Manager_Policy::set_session_limit
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1136,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1137,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1138,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1138,1
    - Dst: Session_Manager_Policy::maximum_session_tickets_per_client_hello
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1139,1
    - Dst: Session_Manager_Policy::set_session_limit
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1141,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1142,1
    - Dst: auto::find
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1142,1
    - Dst: Botan_Tests::server_info
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1142,1
    - Dst: factory
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1152,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1154,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1155,1
    - Dst: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1156,1
    - Dst: auto::establish
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1157,1
    - Dst: Botan_Tests::default_session
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1158,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1159,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1159,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1159,1
    - Dst: auto::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1161,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1162,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1162,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1162,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1162,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1163,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1163,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1164,1
    - Dst: Session_Manager_Callbacks::tick
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1166,1
    - Dst: auto::choose_from_offered_tickets
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1168,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1169,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1169,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1169,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1169,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1170,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_tls_session_manager.cpp:1170,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1000
    functionDepth: 2
    functionLinenumber: 1000
    functionLinenumberEnd: 1171
    functionName: Botan_Tests::tls_session_manager_expiry
    functionSourceFile: /src/botan/src/tests/test_tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - auto::empty
    - auto::find
    - version
    - auto::choose_from_offered_tickets
    - auto::c_str
    - auto::size
    - std::vector::reserve
    - Botan_Tests::CHECK
    - auto::has_value
    - auto::remove_all
    - auto::retrieve
    - auto::establish
    - is_id
    - confirm
    - Session_Manager_Policy::set_session_limit
    - ticket
    - std::make_unique<Botan::TLS::Session_Manager_SQLite>
    - std::vector::push_back
    - id
    - Session_Manager_Policy::maximum_session_tickets_per_client_hello
    - auto::value
    - std::make_shared<Test_Credentials_Manager>
    - std::make_unique<Botan::TLS::Session_Manager_Stateless>
    - require
    - std::bind
    - auto::store
    - std::vector::size
    - Botan_Tests::Test::flatten_result_lists
    - Botan::fmt
    - Botan_Tests::Test::temp_file_name
    - auto::front
    - factory
    - Botan_Tests::random_ticket
    - Botan_Tests::server_info
    - Session_Manager_Policy::set_allow_session_reuse
    - Botan_Tests::default_session
    - CHECK_all
    - Session_Manager_Callbacks::tick
    - Botan_Tests::random_id
    - Botan_Tests::Test::new_shared_rng
    - std::make_unique<Botan::TLS::Session_Manager_In_Memory>
    - std::unique_ptr<Botan::TLS::Session_Manager>
    - test_is_eq
    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: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    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:31,1
    - 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_opt_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:35,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:36,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_kat.cpp:40,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_rng_kat.cpp:43,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_rng_kat.cpp:47,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_kat.cpp:47,1
    - Dst: auto::initialize_with
      Src: /src/botan/src/tests/test_rng_kat.cpp:48,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:48,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:48,1
    - Dst: auto::add_entropy
      Src: /src/botan/src/tests/test_rng_kat.cpp:51,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:51,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:51,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:53,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_rng_kat.cpp:55,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:55,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:55,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:55,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:55,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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_kat.cpp:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 60
    functionName: Botan_Tests::HMAC_DRBG_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_rng_kat.cpp
    functionUses: 0
    functionsReached:
    - auto::initialize_with
    - std::move
    - Test::Result::note_missing
    - get_opt_bin
    - std::vector::data
    - auto::randomize_with_input
    - auto::add_entropy
    - Test::Result::test_eq
    - Botan::MessageAuthenticationCode::create
    - get_req_bin
    - std::vector::size
    - std::make_unique<Botan::HMAC_DRBG>
    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: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    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:76,1
    - 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_opt_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:80,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:81,1
    - Dst: Botan::ChaCha_RNG::ChaCha_RNG
      Src: /src/botan/src/tests/test_rng_kat.cpp:85,1
    - Dst: Botan::ChaCha_RNG::initialize_with
      Src: /src/botan/src/tests/test_rng_kat.cpp:86,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:86,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:86,1
    - Dst: Botan::ChaCha_RNG::add_entropy
      Src: /src/botan/src/tests/test_rng_kat.cpp:89,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:89,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:89,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:91,1
    - Dst: Botan::ChaCha_RNG::randomize_with_input
      Src: /src/botan/src/tests/test_rng_kat.cpp:93,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:93,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:93,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:93,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:93,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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_kat.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 98
    functionName: Botan_Tests::ChaCha_RNG_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_rng_kat.cpp
    functionUses: 0
    functionsReached:
    - Botan::ChaCha_RNG::ChaCha_RNG
    - get_opt_bin
    - Botan::ChaCha_RNG::initialize_with
    - Botan::ChaCha_RNG::randomize_with_input
    - std::vector::data
    - Test::Result::test_eq
    - get_req_bin
    - std::vector::size
    - Botan::ChaCha_RNG::add_entropy
    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: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    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:31,1
    - 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_opt_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:35,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:36,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_kat.cpp:40,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_rng_kat.cpp:43,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_rng_kat.cpp:47,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_kat.cpp:47,1
    - Dst: auto::initialize_with
      Src: /src/botan/src/tests/test_rng_kat.cpp:48,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:48,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:48,1
    - Dst: auto::add_entropy
      Src: /src/botan/src/tests/test_rng_kat.cpp:51,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:51,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:51,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:53,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_rng_kat.cpp:55,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:55,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:55,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:55,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:55,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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_kat.cpp:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 60
    functionName: Botan_Tests::HMAC_DRBG_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_rng_kat.cpp
    functionUses: 0
    functionsReached:
    - auto::initialize_with
    - std::move
    - Test::Result::note_missing
    - get_opt_bin
    - std::vector::data
    - auto::randomize_with_input
    - auto::add_entropy
    - Test::Result::test_eq
    - Botan::MessageAuthenticationCode::create
    - get_req_bin
    - std::vector::size
    - std::make_unique<Botan::HMAC_DRBG>
    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: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    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:76,1
    - 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_opt_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:80,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:81,1
    - Dst: Botan::ChaCha_RNG::ChaCha_RNG
      Src: /src/botan/src/tests/test_rng_kat.cpp:85,1
    - Dst: Botan::ChaCha_RNG::initialize_with
      Src: /src/botan/src/tests/test_rng_kat.cpp:86,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:86,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:86,1
    - Dst: Botan::ChaCha_RNG::add_entropy
      Src: /src/botan/src/tests/test_rng_kat.cpp:89,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:89,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:89,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:91,1
    - Dst: Botan::ChaCha_RNG::randomize_with_input
      Src: /src/botan/src/tests/test_rng_kat.cpp:93,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:93,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:93,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:93,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:93,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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_kat.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 98
    functionName: Botan_Tests::ChaCha_RNG_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_rng_kat.cpp
    functionUses: 0
    functionsReached:
    - Botan::ChaCha_RNG::ChaCha_RNG
    - get_opt_bin
    - Botan::ChaCha_RNG::initialize_with
    - Botan::ChaCha_RNG::randomize_with_input
    - std::vector::data
    - Test::Result::test_eq
    - get_req_bin
    - std::vector::size
    - Botan::ChaCha_RNG::add_entropy
    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: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    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:31,1
    - 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_opt_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:35,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:36,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_kat.cpp:40,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_rng_kat.cpp:43,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_rng_kat.cpp:47,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_kat.cpp:47,1
    - Dst: auto::initialize_with
      Src: /src/botan/src/tests/test_rng_kat.cpp:48,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:48,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:48,1
    - Dst: auto::add_entropy
      Src: /src/botan/src/tests/test_rng_kat.cpp:51,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:51,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:51,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:53,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_rng_kat.cpp:55,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:55,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:55,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:55,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:55,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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_kat.cpp:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 60
    functionName: Botan_Tests::HMAC_DRBG_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_rng_kat.cpp
    functionUses: 0
    functionsReached:
    - auto::initialize_with
    - std::move
    - Test::Result::note_missing
    - get_opt_bin
    - std::vector::data
    - auto::randomize_with_input
    - auto::add_entropy
    - Test::Result::test_eq
    - Botan::MessageAuthenticationCode::create
    - get_req_bin
    - std::vector::size
    - std::make_unique<Botan::HMAC_DRBG>
    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: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    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:76,1
    - 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_opt_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:80,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:81,1
    - Dst: Botan::ChaCha_RNG::ChaCha_RNG
      Src: /src/botan/src/tests/test_rng_kat.cpp:85,1
    - Dst: Botan::ChaCha_RNG::initialize_with
      Src: /src/botan/src/tests/test_rng_kat.cpp:86,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:86,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:86,1
    - Dst: Botan::ChaCha_RNG::add_entropy
      Src: /src/botan/src/tests/test_rng_kat.cpp:89,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:89,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:89,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:91,1
    - Dst: Botan::ChaCha_RNG::randomize_with_input
      Src: /src/botan/src/tests/test_rng_kat.cpp:93,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:93,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:93,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:93,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:93,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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_kat.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 98
    functionName: Botan_Tests::ChaCha_RNG_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_rng_kat.cpp
    functionUses: 0
    functionsReached:
    - Botan::ChaCha_RNG::ChaCha_RNG
    - get_opt_bin
    - Botan::ChaCha_RNG::initialize_with
    - Botan::ChaCha_RNG::randomize_with_input
    - std::vector::data
    - Test::Result::test_eq
    - get_req_bin
    - std::vector::size
    - Botan::ChaCha_RNG::add_entropy
    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: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    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:31,1
    - 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_opt_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:35,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:36,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_kat.cpp:40,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_rng_kat.cpp:43,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_rng_kat.cpp:47,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_kat.cpp:47,1
    - Dst: auto::initialize_with
      Src: /src/botan/src/tests/test_rng_kat.cpp:48,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:48,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:48,1
    - Dst: auto::add_entropy
      Src: /src/botan/src/tests/test_rng_kat.cpp:51,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:51,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:51,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:53,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_rng_kat.cpp:55,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:55,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:55,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:55,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:55,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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_kat.cpp:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 60
    functionName: Botan_Tests::HMAC_DRBG_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_rng_kat.cpp
    functionUses: 0
    functionsReached:
    - auto::initialize_with
    - std::move
    - Test::Result::note_missing
    - get_opt_bin
    - std::vector::data
    - auto::randomize_with_input
    - auto::add_entropy
    - Test::Result::test_eq
    - Botan::MessageAuthenticationCode::create
    - get_req_bin
    - std::vector::size
    - std::make_unique<Botan::HMAC_DRBG>
    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: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    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:76,1
    - 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_opt_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:80,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_rng_kat.cpp:81,1
    - Dst: Botan::ChaCha_RNG::ChaCha_RNG
      Src: /src/botan/src/tests/test_rng_kat.cpp:85,1
    - Dst: Botan::ChaCha_RNG::initialize_with
      Src: /src/botan/src/tests/test_rng_kat.cpp:86,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:86,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:86,1
    - Dst: Botan::ChaCha_RNG::add_entropy
      Src: /src/botan/src/tests/test_rng_kat.cpp:89,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:89,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:89,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:91,1
    - Dst: Botan::ChaCha_RNG::randomize_with_input
      Src: /src/botan/src/tests/test_rng_kat.cpp:93,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:93,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:93,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_kat.cpp:93,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_kat.cpp:93,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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_kat.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 98
    functionName: Botan_Tests::ChaCha_RNG_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_rng_kat.cpp
    functionUses: 0
    functionsReached:
    - Botan::ChaCha_RNG::ChaCha_RNG
    - get_opt_bin
    - Botan::ChaCha_RNG::initialize_with
    - Botan::ChaCha_RNG::randomize_with_input
    - std::vector::data
    - Test::Result::test_eq
    - get_req_bin
    - std::vector::size
    - Botan::ChaCha_RNG::add_entropy
    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::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:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' group_id'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 27
    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:32,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:33,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:35,1
    - Dst: auto::OS2ECP
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:40,1
    - Dst: auto::get_base_point
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:41,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:42,1
    - Dst: Botan::EC_Point::encode
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:42,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:45,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:46,1
    - Dst: Botan_Tests::ECC_Basepoint_Mul_Tests::rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:46,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:47,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:47,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:49,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:50,1
    - Dst: Botan_Tests::ECC_Basepoint_Mul_Tests::rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:50,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:51,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' group_id'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 54
    functionName: Botan_Tests::ECC_Basepoint_Mul_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::ECC_Basepoint_Mul_Tests::rng
    - auto::serialize_uncompressed
    - Botan::EC_Point::encode
    - Botan::EC_AffinePoint::g_mul
    - auto::get_base_point
    - Botan::EC_Group::from_name
    - auto::OS2ECP
    - Botan::EC_Scalar::from_bigint
    - Test::Result::test_eq
    - Botan::EC_AffinePoint::generator
    - auto::mul
    - 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: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    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:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' group_id'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 65
    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:70,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:71,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:72,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:74,1
    - Dst: auto::OS2ECP
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:77,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:78,1
    - Dst: Botan::EC_Point::encode
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:78,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:81,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:82,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:83,1
    - Dst: Botan_Tests::ECC_Varpoint_Mul_Tests::rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:83,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:84,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:84,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:86,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:86,1
    - Dst: Botan_Tests::ECC_Varpoint_Mul_Tests::rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:86,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:87,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:87,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:89,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:89,1
    - Dst: Botan_Tests::ECC_Varpoint_Mul_Tests::rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:89,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:90,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' group_id'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 93
    functionName: Botan_Tests::ECC_Varpoint_Mul_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Point::encode
    - Botan_Tests::ECC_Varpoint_Mul_Tests::rng
    - auto::serialize_compressed
    - Botan::EC_Group::from_name
    - auto::OS2ECP
    - Botan::EC_Scalar::from_bigint
    - Test::Result::test_eq
    - Botan::EC_AffinePoint::deserialize
    - auto::mul
    - get_req_bin
    - get_req_bn
    - auto::negate
    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: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    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:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' group_id'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 104
    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:109,1
    - Dst: Botan::EC_AffinePoint::mul_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:117,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:117,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:119,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:119,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:121,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:121,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:124,1
    - Dst: mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:128,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:128,1
    - Dst: mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:128,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:128,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:130,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:132,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:132,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:135,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:137,1
    - Dst: get_req_bin
      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:138,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:138,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:139,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:139,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:140,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:140,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:142,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:143,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: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:147,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:148,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
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - ' group_id'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 153
    functionName: Botan_Tests::ECC_Mul2_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - rng
    - mul
    - check_px_qy
    - auto::serialize_compressed
    - Test::Result::test_failure
    - Botan::EC_Group::from_name
    - get_req_bn
    - Botan::EC_Scalar::from_bigint
    - Test::Result::test_eq
    - Botan::EC_AffinePoint::deserialize
    - get_req_bin
    - auto::negate
    - Botan::EC_AffinePoint::mul_px_qy
    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:163,1
    - Dst: Botan::EC_AffinePoint::mul_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:171,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:171,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:172,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:172,1
    - Dst: Test::Result::test_success
      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: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:178,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:180,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:183,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:183,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:183,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:183,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: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:186,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:190,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:190,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:192,1
    - Dst: Botan::EC_AffinePoint::identity
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:194,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:196,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:197,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: auto::negate
      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: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:205,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:205,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:206,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:206,1
    - Dst: auto::zeroize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:207,1
    - Dst: Test::Result::confirm
      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: std::vector::push_back
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 214
    functionName: Botan_Tests::ECC_Mul2_Inf_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - rng
    - auto::is_zero
    - Botan::fmt
    - check_px_qy
    - Botan::EC_Group::known_named_groups
    - std::vector::push_back
    - Test::Result::test_failure
    - Botan::EC_Group::from_name
    - Botan::EC_Scalar::random
    - auto::zeroize
    - Botan::EC_AffinePoint::generator
    - Test::Result::confirm
    - auto::mul
    - auto::negate
    - Botan::EC_AffinePoint::identity
    - Test::Result::test_success
    - auto::add
    - Botan::EC_AffinePoint::mul_px_qy
    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:224,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:227,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:229,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:230,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:230,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:233,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:233,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:233,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:233,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:234,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:234,1
    - Dst: Botan::EC_AffinePoint::identity
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:236,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:237,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:237,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:239,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:242,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:242,1
    - Dst: serialize_uncompressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:242,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:245,1
    - Dst: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:247,1
    - Dst: auto::add
      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:248,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:248,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: auto::negate
      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: auto::negate
      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::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: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:254,1
    - Dst: auto::add
      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: std::vector::push_back
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 262
    functionName: Botan_Tests::ECC_Point_Addition_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - auto::serialize_uncompressed
    - rng
    - std::vector::push_back
    - Botan::fmt
    - Botan::EC_Group::known_named_groups
    - serialize_uncompressed
    - auto::is_identity
    - Botan::EC_Group::from_name
    - Botan::EC_Scalar::random
    - auto::add
    - Test::Result::test_eq
    - Botan::EC_AffinePoint::generator
    - auto::mul
    - auto::negate
    - Botan::EC_AffinePoint::identity
    - check_expr_is_g
    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:272,1
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:274,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:275,1
    - Dst: Botan_Tests::ECC_Scalar_Arithmetic_Tests::test_scalar_arith
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:278,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 282
    functionName: Botan_Tests::ECC_Scalar_Arithmetic_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - Botan::EC_Group::known_named_groups
    - Botan::EC_Group::from_name
    - fuzzer_rng
    - 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:288,1
    - Dst: get_order_bytes
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:292,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:294,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:298,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:298,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:299,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:303,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:303,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:304,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:304,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:306,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:306,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:307,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:307,1
    - Dst: test_eq
      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_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:311,1
    - Dst: auto::invert
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:311,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:312,1
    - Dst: auto::invert
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:312,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:314,1
    - Dst: auto::invert_vartime
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:314,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:315,1
    - Dst: auto::invert_vartime
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:315,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:320,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:323,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:323,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:323,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:326,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:327,1
    - Dst: Botan::EC_Scalar::deserialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:328,1
    - Dst: auto::invert
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:333,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:334,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:334,1
    - Dst: auto::invert_vartime
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:336,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:337,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:341,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:342,1
    - Dst: auto::invert
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:345,1
    - Dst: auto::invert
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:346,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:348,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:348,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:348,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:349,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:349,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:349,1
    - Dst: test_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_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:353,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:353,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:353,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:354,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:354,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:354,1
    - Dst: test_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::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:355,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:359,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:360,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:361,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:366,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:366,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:366,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:370,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:371,1
    - Dst: auto::to_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:374,1
    - Dst: auto::to_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:374,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:375,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:375,1
    - Dst: get_order
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:375,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:375,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:377,1
    - Dst: test_lte
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:378,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:378,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:380,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:382,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:382,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:382,1
    - Dst: get_order_bytes
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:386,1
    - Dst: randomize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:388,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:390,1
    - Dst: get_order
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:390,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:392,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:394,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:394,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:394,1
    - Dst: get_order_bytes
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:394,1
    - Dst: end_timer
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:397,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: 398
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 398
    functionName: Botan_Tests::ECC_Scalar_Arithmetic_Tests::test_scalar_arith
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - test_eq
    - Botan::EC_Scalar::from_bytes_mod_order
    - randomize
    - test_lte
    - auto::negate
    - auto::size
    - Botan::BigInt::from_bytes
    - end_timer
    - auto::is_zero
    - Botan::EC_Scalar::random
    - std::vector<uint8_t>
    - auto::invert
    - confirm
    - get_order_bytes
    - get_order
    - Botan::EC_Scalar::one
    - Botan::EC_Scalar::deserialize
    - auto::to_bigint
    - auto::serialize
    - auto::invert_vartime
    - serialize
    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: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    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:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' group_id'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 27
    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:32,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:33,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:35,1
    - Dst: auto::OS2ECP
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:40,1
    - Dst: auto::get_base_point
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:41,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:42,1
    - Dst: Botan::EC_Point::encode
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:42,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:45,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:46,1
    - Dst: Botan_Tests::ECC_Basepoint_Mul_Tests::rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:46,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:47,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:47,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:49,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:50,1
    - Dst: Botan_Tests::ECC_Basepoint_Mul_Tests::rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:50,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:51,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' group_id'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 54
    functionName: Botan_Tests::ECC_Basepoint_Mul_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::ECC_Basepoint_Mul_Tests::rng
    - auto::serialize_uncompressed
    - Botan::EC_Point::encode
    - Botan::EC_AffinePoint::g_mul
    - auto::get_base_point
    - Botan::EC_Group::from_name
    - auto::OS2ECP
    - Botan::EC_Scalar::from_bigint
    - Test::Result::test_eq
    - Botan::EC_AffinePoint::generator
    - auto::mul
    - 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: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    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:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' group_id'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 65
    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:70,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:71,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:72,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:74,1
    - Dst: auto::OS2ECP
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:77,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:78,1
    - Dst: Botan::EC_Point::encode
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:78,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:81,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:82,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:83,1
    - Dst: Botan_Tests::ECC_Varpoint_Mul_Tests::rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:83,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:84,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:84,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:86,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:86,1
    - Dst: Botan_Tests::ECC_Varpoint_Mul_Tests::rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:86,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:87,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:87,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:89,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:89,1
    - Dst: Botan_Tests::ECC_Varpoint_Mul_Tests::rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:89,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:90,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' group_id'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 93
    functionName: Botan_Tests::ECC_Varpoint_Mul_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Point::encode
    - Botan_Tests::ECC_Varpoint_Mul_Tests::rng
    - auto::serialize_compressed
    - Botan::EC_Group::from_name
    - auto::OS2ECP
    - Botan::EC_Scalar::from_bigint
    - Test::Result::test_eq
    - Botan::EC_AffinePoint::deserialize
    - auto::mul
    - get_req_bin
    - get_req_bn
    - auto::negate
    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: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    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:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' group_id'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 104
    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:109,1
    - Dst: Botan::EC_AffinePoint::mul_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:117,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:117,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:119,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:119,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:121,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:121,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:124,1
    - Dst: mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:128,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:128,1
    - Dst: mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:128,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:128,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:130,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:132,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:132,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:135,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:137,1
    - Dst: get_req_bin
      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:138,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:138,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:139,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:139,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:140,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:140,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:142,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:143,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: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:147,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:148,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
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - ' group_id'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 153
    functionName: Botan_Tests::ECC_Mul2_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - rng
    - mul
    - check_px_qy
    - auto::serialize_compressed
    - Test::Result::test_failure
    - Botan::EC_Group::from_name
    - get_req_bn
    - Botan::EC_Scalar::from_bigint
    - Test::Result::test_eq
    - Botan::EC_AffinePoint::deserialize
    - get_req_bin
    - auto::negate
    - Botan::EC_AffinePoint::mul_px_qy
    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:163,1
    - Dst: Botan::EC_AffinePoint::mul_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:171,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:171,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:172,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:172,1
    - Dst: Test::Result::test_success
      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: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:178,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:180,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:183,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:183,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:183,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:183,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: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:186,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:190,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:190,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:192,1
    - Dst: Botan::EC_AffinePoint::identity
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:194,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:196,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:197,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: auto::negate
      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: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:205,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:205,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:206,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:206,1
    - Dst: auto::zeroize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:207,1
    - Dst: Test::Result::confirm
      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: std::vector::push_back
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 214
    functionName: Botan_Tests::ECC_Mul2_Inf_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - rng
    - auto::is_zero
    - Botan::fmt
    - check_px_qy
    - Botan::EC_Group::known_named_groups
    - std::vector::push_back
    - Test::Result::test_failure
    - Botan::EC_Group::from_name
    - Botan::EC_Scalar::random
    - auto::zeroize
    - Botan::EC_AffinePoint::generator
    - Test::Result::confirm
    - auto::mul
    - auto::negate
    - Botan::EC_AffinePoint::identity
    - Test::Result::test_success
    - auto::add
    - Botan::EC_AffinePoint::mul_px_qy
    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:224,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:227,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:229,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:230,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:230,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:233,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:233,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:233,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:233,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:234,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:234,1
    - Dst: Botan::EC_AffinePoint::identity
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:236,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:237,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:237,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:239,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:242,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:242,1
    - Dst: serialize_uncompressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:242,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:245,1
    - Dst: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:247,1
    - Dst: auto::add
      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:248,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:248,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: auto::negate
      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: auto::negate
      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::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: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:254,1
    - Dst: auto::add
      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: std::vector::push_back
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 262
    functionName: Botan_Tests::ECC_Point_Addition_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - auto::serialize_uncompressed
    - rng
    - std::vector::push_back
    - Botan::fmt
    - Botan::EC_Group::known_named_groups
    - serialize_uncompressed
    - auto::is_identity
    - Botan::EC_Group::from_name
    - Botan::EC_Scalar::random
    - auto::add
    - Test::Result::test_eq
    - Botan::EC_AffinePoint::generator
    - auto::mul
    - auto::negate
    - Botan::EC_AffinePoint::identity
    - check_expr_is_g
    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:272,1
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:274,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:275,1
    - Dst: Botan_Tests::ECC_Scalar_Arithmetic_Tests::test_scalar_arith
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:278,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 282
    functionName: Botan_Tests::ECC_Scalar_Arithmetic_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - Botan::EC_Group::known_named_groups
    - Botan::EC_Group::from_name
    - fuzzer_rng
    - 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:288,1
    - Dst: get_order_bytes
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:292,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:294,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:298,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:298,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:299,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:303,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:303,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:304,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:304,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:306,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:306,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:307,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:307,1
    - Dst: test_eq
      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_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:311,1
    - Dst: auto::invert
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:311,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:312,1
    - Dst: auto::invert
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:312,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:314,1
    - Dst: auto::invert_vartime
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:314,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:315,1
    - Dst: auto::invert_vartime
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:315,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:320,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:323,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:323,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:323,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:326,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:327,1
    - Dst: Botan::EC_Scalar::deserialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:328,1
    - Dst: auto::invert
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:333,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:334,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:334,1
    - Dst: auto::invert_vartime
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:336,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:337,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:341,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:342,1
    - Dst: auto::invert
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:345,1
    - Dst: auto::invert
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:346,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:348,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:348,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:348,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:349,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:349,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:349,1
    - Dst: test_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_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:353,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:353,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:353,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:354,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:354,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:354,1
    - Dst: test_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::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:355,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:359,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:360,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:361,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:366,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:366,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:366,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:370,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:371,1
    - Dst: auto::to_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:374,1
    - Dst: auto::to_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:374,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:375,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:375,1
    - Dst: get_order
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:375,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:375,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:377,1
    - Dst: test_lte
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:378,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:378,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:380,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:382,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:382,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:382,1
    - Dst: get_order_bytes
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:386,1
    - Dst: randomize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:388,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:390,1
    - Dst: get_order
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:390,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:392,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:394,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:394,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:394,1
    - Dst: get_order_bytes
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:394,1
    - Dst: end_timer
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:397,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: 398
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 398
    functionName: Botan_Tests::ECC_Scalar_Arithmetic_Tests::test_scalar_arith
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - test_eq
    - Botan::EC_Scalar::from_bytes_mod_order
    - randomize
    - test_lte
    - auto::negate
    - auto::size
    - Botan::BigInt::from_bytes
    - end_timer
    - auto::is_zero
    - Botan::EC_Scalar::random
    - std::vector<uint8_t>
    - auto::invert
    - confirm
    - get_order_bytes
    - get_order
    - Botan::EC_Scalar::one
    - Botan::EC_Scalar::deserialize
    - auto::to_bigint
    - auto::serialize
    - auto::invert_vartime
    - serialize
    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: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    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:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' group_id'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 27
    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:32,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:33,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:35,1
    - Dst: auto::OS2ECP
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:40,1
    - Dst: auto::get_base_point
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:41,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:42,1
    - Dst: Botan::EC_Point::encode
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:42,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:45,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:46,1
    - Dst: Botan_Tests::ECC_Basepoint_Mul_Tests::rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:46,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:47,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:47,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:49,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:50,1
    - Dst: Botan_Tests::ECC_Basepoint_Mul_Tests::rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:50,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:51,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' group_id'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 54
    functionName: Botan_Tests::ECC_Basepoint_Mul_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::ECC_Basepoint_Mul_Tests::rng
    - auto::serialize_uncompressed
    - Botan::EC_Point::encode
    - Botan::EC_AffinePoint::g_mul
    - auto::get_base_point
    - Botan::EC_Group::from_name
    - auto::OS2ECP
    - Botan::EC_Scalar::from_bigint
    - Test::Result::test_eq
    - Botan::EC_AffinePoint::generator
    - auto::mul
    - 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: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    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:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' group_id'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 65
    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:70,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:71,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:72,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:74,1
    - Dst: auto::OS2ECP
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:77,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:78,1
    - Dst: Botan::EC_Point::encode
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:78,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:81,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:82,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:83,1
    - Dst: Botan_Tests::ECC_Varpoint_Mul_Tests::rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:83,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:84,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:84,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:86,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:86,1
    - Dst: Botan_Tests::ECC_Varpoint_Mul_Tests::rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:86,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:87,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:87,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:89,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:89,1
    - Dst: Botan_Tests::ECC_Varpoint_Mul_Tests::rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:89,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:90,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' group_id'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 93
    functionName: Botan_Tests::ECC_Varpoint_Mul_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Point::encode
    - Botan_Tests::ECC_Varpoint_Mul_Tests::rng
    - auto::serialize_compressed
    - Botan::EC_Group::from_name
    - auto::OS2ECP
    - Botan::EC_Scalar::from_bigint
    - Test::Result::test_eq
    - Botan::EC_AffinePoint::deserialize
    - auto::mul
    - get_req_bin
    - get_req_bn
    - auto::negate
    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: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    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:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' group_id'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 104
    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:109,1
    - Dst: Botan::EC_AffinePoint::mul_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:117,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:117,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:119,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:119,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:121,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:121,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:124,1
    - Dst: mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:128,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:128,1
    - Dst: mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:128,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:128,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:130,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:132,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:132,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:135,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:137,1
    - Dst: get_req_bin
      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:138,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:138,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:139,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:139,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:140,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:140,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:142,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:143,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: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:147,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:148,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
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - ' group_id'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 153
    functionName: Botan_Tests::ECC_Mul2_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - rng
    - mul
    - check_px_qy
    - auto::serialize_compressed
    - Test::Result::test_failure
    - Botan::EC_Group::from_name
    - get_req_bn
    - Botan::EC_Scalar::from_bigint
    - Test::Result::test_eq
    - Botan::EC_AffinePoint::deserialize
    - get_req_bin
    - auto::negate
    - Botan::EC_AffinePoint::mul_px_qy
    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:163,1
    - Dst: Botan::EC_AffinePoint::mul_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:171,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:171,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:172,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:172,1
    - Dst: Test::Result::test_success
      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: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:178,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:180,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:183,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:183,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:183,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:183,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: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:186,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:190,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:190,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:192,1
    - Dst: Botan::EC_AffinePoint::identity
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:194,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:196,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:197,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: auto::negate
      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: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:205,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:205,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:206,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:206,1
    - Dst: auto::zeroize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:207,1
    - Dst: Test::Result::confirm
      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: std::vector::push_back
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 214
    functionName: Botan_Tests::ECC_Mul2_Inf_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - rng
    - auto::is_zero
    - Botan::fmt
    - check_px_qy
    - Botan::EC_Group::known_named_groups
    - std::vector::push_back
    - Test::Result::test_failure
    - Botan::EC_Group::from_name
    - Botan::EC_Scalar::random
    - auto::zeroize
    - Botan::EC_AffinePoint::generator
    - Test::Result::confirm
    - auto::mul
    - auto::negate
    - Botan::EC_AffinePoint::identity
    - Test::Result::test_success
    - auto::add
    - Botan::EC_AffinePoint::mul_px_qy
    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:224,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:227,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:229,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:230,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:230,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:233,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:233,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:233,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:233,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:234,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:234,1
    - Dst: Botan::EC_AffinePoint::identity
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:236,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:237,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:237,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:239,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:242,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:242,1
    - Dst: serialize_uncompressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:242,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:245,1
    - Dst: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:247,1
    - Dst: auto::add
      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:248,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:248,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: auto::negate
      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: auto::negate
      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::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: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:254,1
    - Dst: auto::add
      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: std::vector::push_back
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 262
    functionName: Botan_Tests::ECC_Point_Addition_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - auto::serialize_uncompressed
    - rng
    - std::vector::push_back
    - Botan::fmt
    - Botan::EC_Group::known_named_groups
    - serialize_uncompressed
    - auto::is_identity
    - Botan::EC_Group::from_name
    - Botan::EC_Scalar::random
    - auto::add
    - Test::Result::test_eq
    - Botan::EC_AffinePoint::generator
    - auto::mul
    - auto::negate
    - Botan::EC_AffinePoint::identity
    - check_expr_is_g
    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:272,1
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:274,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:275,1
    - Dst: Botan_Tests::ECC_Scalar_Arithmetic_Tests::test_scalar_arith
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:278,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 282
    functionName: Botan_Tests::ECC_Scalar_Arithmetic_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - Botan::EC_Group::known_named_groups
    - Botan::EC_Group::from_name
    - fuzzer_rng
    - 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:288,1
    - Dst: get_order_bytes
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:292,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:294,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:298,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:298,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:299,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:303,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:303,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:304,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:304,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:306,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:306,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:307,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:307,1
    - Dst: test_eq
      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_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:311,1
    - Dst: auto::invert
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:311,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:312,1
    - Dst: auto::invert
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:312,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:314,1
    - Dst: auto::invert_vartime
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:314,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:315,1
    - Dst: auto::invert_vartime
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:315,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:320,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:323,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:323,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:323,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:326,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:327,1
    - Dst: Botan::EC_Scalar::deserialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:328,1
    - Dst: auto::invert
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:333,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:334,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:334,1
    - Dst: auto::invert_vartime
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:336,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:337,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:341,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:342,1
    - Dst: auto::invert
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:345,1
    - Dst: auto::invert
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:346,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:348,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:348,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:348,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:349,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:349,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:349,1
    - Dst: test_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_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:353,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:353,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:353,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:354,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:354,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:354,1
    - Dst: test_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::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:355,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:359,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:360,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:361,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:366,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:366,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:366,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:370,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:371,1
    - Dst: auto::to_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:374,1
    - Dst: auto::to_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:374,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:375,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:375,1
    - Dst: get_order
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:375,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:375,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:377,1
    - Dst: test_lte
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:378,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:378,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:380,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:382,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:382,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:382,1
    - Dst: get_order_bytes
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:386,1
    - Dst: randomize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:388,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:390,1
    - Dst: get_order
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:390,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:392,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:394,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:394,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:394,1
    - Dst: get_order_bytes
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:394,1
    - Dst: end_timer
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:397,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: 398
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 398
    functionName: Botan_Tests::ECC_Scalar_Arithmetic_Tests::test_scalar_arith
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 3
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - test_eq
    - Botan::EC_Scalar::from_bytes_mod_order
    - randomize
    - test_lte
    - auto::negate
    - auto::size
    - Botan::BigInt::from_bytes
    - end_timer
    - auto::is_zero
    - Botan::EC_Scalar::random
    - std::vector<uint8_t>
    - auto::invert
    - confirm
    - get_order_bytes
    - get_order
    - Botan::EC_Scalar::one
    - Botan::EC_Scalar::deserialize
    - auto::to_bigint
    - auto::serialize
    - auto::invert_vartime
    - serialize
    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: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    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:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' group_id'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 27
    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:32,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:33,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:35,1
    - Dst: auto::OS2ECP
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:40,1
    - Dst: auto::get_base_point
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:41,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:42,1
    - Dst: Botan::EC_Point::encode
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:42,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:45,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:46,1
    - Dst: Botan_Tests::ECC_Basepoint_Mul_Tests::rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:46,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:47,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:47,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:49,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:50,1
    - Dst: Botan_Tests::ECC_Basepoint_Mul_Tests::rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:50,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:51,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' group_id'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 54
    functionName: Botan_Tests::ECC_Basepoint_Mul_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::ECC_Basepoint_Mul_Tests::rng
    - auto::serialize_uncompressed
    - Botan::EC_Point::encode
    - Botan::EC_AffinePoint::g_mul
    - auto::get_base_point
    - Botan::EC_Group::from_name
    - auto::OS2ECP
    - Botan::EC_Scalar::from_bigint
    - Test::Result::test_eq
    - Botan::EC_AffinePoint::generator
    - auto::mul
    - 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: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    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:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' group_id'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 65
    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:70,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:71,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:72,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:74,1
    - Dst: auto::OS2ECP
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:77,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:78,1
    - Dst: Botan::EC_Point::encode
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:78,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:81,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:82,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:83,1
    - Dst: Botan_Tests::ECC_Varpoint_Mul_Tests::rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:83,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:84,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:84,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:86,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:86,1
    - Dst: Botan_Tests::ECC_Varpoint_Mul_Tests::rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:86,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:87,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:87,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:89,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:89,1
    - Dst: Botan_Tests::ECC_Varpoint_Mul_Tests::rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:89,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:90,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' group_id'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 93
    functionName: Botan_Tests::ECC_Varpoint_Mul_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Point::encode
    - Botan_Tests::ECC_Varpoint_Mul_Tests::rng
    - auto::serialize_compressed
    - Botan::EC_Group::from_name
    - auto::OS2ECP
    - Botan::EC_Scalar::from_bigint
    - Test::Result::test_eq
    - Botan::EC_AffinePoint::deserialize
    - auto::mul
    - get_req_bin
    - get_req_bn
    - auto::negate
    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: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    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:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' group_id'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 104
    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:109,1
    - Dst: Botan::EC_AffinePoint::mul_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:117,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:117,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:119,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:119,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:121,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:121,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:124,1
    - Dst: mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:128,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:128,1
    - Dst: mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:128,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:128,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:130,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:132,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:132,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:135,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:137,1
    - Dst: get_req_bin
      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:138,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:138,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:139,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:139,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:140,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:140,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:142,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:143,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: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:147,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:148,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
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - ' group_id'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 153
    functionName: Botan_Tests::ECC_Mul2_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - rng
    - mul
    - check_px_qy
    - auto::serialize_compressed
    - Test::Result::test_failure
    - Botan::EC_Group::from_name
    - get_req_bn
    - Botan::EC_Scalar::from_bigint
    - Test::Result::test_eq
    - Botan::EC_AffinePoint::deserialize
    - get_req_bin
    - auto::negate
    - Botan::EC_AffinePoint::mul_px_qy
    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:163,1
    - Dst: Botan::EC_AffinePoint::mul_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:171,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:171,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:172,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:172,1
    - Dst: Test::Result::test_success
      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: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:178,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:180,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:183,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:183,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:183,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:183,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: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:186,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:190,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:190,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:192,1
    - Dst: Botan::EC_AffinePoint::identity
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:194,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:196,1
    - Dst: check_px_qy
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:197,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: auto::negate
      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: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:205,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:205,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:206,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:206,1
    - Dst: auto::zeroize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:207,1
    - Dst: Test::Result::confirm
      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: std::vector::push_back
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:210,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 214
    functionName: Botan_Tests::ECC_Mul2_Inf_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - rng
    - auto::is_zero
    - Botan::fmt
    - check_px_qy
    - Botan::EC_Group::known_named_groups
    - std::vector::push_back
    - Test::Result::test_failure
    - Botan::EC_Group::from_name
    - Botan::EC_Scalar::random
    - auto::zeroize
    - Botan::EC_AffinePoint::generator
    - Test::Result::confirm
    - auto::mul
    - auto::negate
    - Botan::EC_AffinePoint::identity
    - Test::Result::test_success
    - auto::add
    - Botan::EC_AffinePoint::mul_px_qy
    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:224,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:227,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:229,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:230,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:230,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:233,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:233,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:233,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:233,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:234,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:234,1
    - Dst: Botan::EC_AffinePoint::identity
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:236,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:237,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:237,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:239,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:242,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:242,1
    - Dst: serialize_uncompressed
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:242,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:245,1
    - Dst: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:247,1
    - Dst: auto::add
      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:248,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:248,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: auto::negate
      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: auto::negate
      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::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: check_expr_is_g
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:254,1
    - Dst: auto::add
      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: std::vector::push_back
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 262
    functionName: Botan_Tests::ECC_Point_Addition_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - auto::serialize_uncompressed
    - rng
    - std::vector::push_back
    - Botan::fmt
    - Botan::EC_Group::known_named_groups
    - serialize_uncompressed
    - auto::is_identity
    - Botan::EC_Group::from_name
    - Botan::EC_Scalar::random
    - auto::add
    - Test::Result::test_eq
    - Botan::EC_AffinePoint::generator
    - auto::mul
    - auto::negate
    - Botan::EC_AffinePoint::identity
    - check_expr_is_g
    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:272,1
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:274,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:275,1
    - Dst: Botan_Tests::ECC_Scalar_Arithmetic_Tests::test_scalar_arith
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:278,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:279,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 282
    functionName: Botan_Tests::ECC_Scalar_Arithmetic_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - Botan::EC_Group::known_named_groups
    - Botan::EC_Group::from_name
    - fuzzer_rng
    - 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:288,1
    - Dst: get_order_bytes
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:292,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:294,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:298,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:298,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:299,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:303,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:303,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:304,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:304,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:306,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:306,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:307,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:307,1
    - Dst: test_eq
      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_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:311,1
    - Dst: auto::invert
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:311,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:312,1
    - Dst: auto::invert
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:312,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:314,1
    - Dst: auto::invert_vartime
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:314,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:315,1
    - Dst: auto::invert_vartime
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:315,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:320,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:323,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:323,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:323,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:326,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:327,1
    - Dst: Botan::EC_Scalar::deserialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:328,1
    - Dst: auto::invert
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:333,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:334,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:334,1
    - Dst: auto::invert_vartime
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:336,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:337,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:341,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:342,1
    - Dst: auto::invert
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:345,1
    - Dst: auto::invert
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:346,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:348,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:348,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:348,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:349,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:349,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:349,1
    - Dst: test_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_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:353,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:353,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:353,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:354,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:354,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:354,1
    - Dst: test_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::negate
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:355,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:359,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:360,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:361,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:366,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:366,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:366,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:370,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:371,1
    - Dst: auto::to_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:374,1
    - Dst: auto::to_bigint
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:374,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:375,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:375,1
    - Dst: get_order
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:375,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:375,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:377,1
    - Dst: test_lte
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:378,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:378,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:380,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:382,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:382,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:382,1
    - Dst: get_order_bytes
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:386,1
    - Dst: randomize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:388,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:390,1
    - Dst: get_order
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:390,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:392,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:394,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:394,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:394,1
    - Dst: get_order_bytes
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:394,1
    - Dst: end_timer
      Src: /src/botan/src/tests/test_ecc_pointmul.cpp:397,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: 398
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 398
    functionName: Botan_Tests::ECC_Scalar_Arithmetic_Tests::test_scalar_arith
    functionSourceFile: /src/botan/src/tests/test_ecc_pointmul.cpp
    functionUses: 4
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - test_eq
    - Botan::EC_Scalar::from_bytes_mod_order
    - randomize
    - test_lte
    - auto::negate
    - auto::size
    - Botan::BigInt::from_bytes
    - end_timer
    - auto::is_zero
    - Botan::EC_Scalar::random
    - std::vector<uint8_t>
    - auto::invert
    - confirm
    - get_order_bytes
    - get_order
    - Botan::EC_Scalar::one
    - Botan::EC_Scalar::deserialize
    - auto::to_bigint
    - auto::serialize
    - auto::invert_vartime
    - serialize
    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: 19
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 19
    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:22,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_fpe.cpp:23,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_fpe.cpp:24,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/test_fpe.cpp:25,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_fpe.cpp:25,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_fpe.cpp:26,1
    - Dst: Botan::FPE::fe1_encrypt
      Src: /src/botan/src/tests/test_fpe.cpp:30,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_fpe.cpp:32,1
    - Dst: Botan::FPE::fe1_decrypt
      Src: /src/botan/src/tests/test_fpe.cpp:34,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_fpe.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 39
    functionName: Botan_Tests::FPE_FE1_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_fpe.cpp
    functionUses: 0
    functionsReached:
    - Botan::SymmetricKey
    - Botan::FPE::fe1_encrypt
    - Test::Result::test_eq
    - Botan::FPE::fe1_decrypt
    - 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: 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::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:22,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_fpe.cpp:23,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_fpe.cpp:24,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/test_fpe.cpp:25,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_fpe.cpp:25,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_fpe.cpp:26,1
    - Dst: Botan::FPE::fe1_encrypt
      Src: /src/botan/src/tests/test_fpe.cpp:30,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_fpe.cpp:32,1
    - Dst: Botan::FPE::fe1_decrypt
      Src: /src/botan/src/tests/test_fpe.cpp:34,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_fpe.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 39
    functionName: Botan_Tests::FPE_FE1_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_fpe.cpp
    functionUses: 0
    functionsReached:
    - Botan::SymmetricKey
    - Botan::FPE::fe1_encrypt
    - Test::Result::test_eq
    - Botan::FPE::fe1_decrypt
    - 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: 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_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_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_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_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_lt
      Src: /src/botan/src/tests/test_entropy.cpp:97,1
    - Dst: Test::Result::test_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::end
    - Botan::Compression_Algorithm::create
    - Test::Result::test_failure
    - poll_just
    - Test::Result::test_gte
    - what
    - Botan::secure_vector::size
    - Test::Result::test_lt
    - Botan::secure_vector::insert
    - Test::Result::start_timer
    - Botan::Entropy_Sources::global_sources
    - std::vector::push_back
    - Botan::secure_vector::assign
    - enabled_sources
    - auto::finish
    - Test::Result::test_note
    - Test::Result::end_timer
    - auto::start
    - SeedCapturing_RNG::seed_material
    - SeedCapturing_RNG::samples
    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_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_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_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_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_lt
      Src: /src/botan/src/tests/test_entropy.cpp:97,1
    - Dst: Test::Result::test_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::end
    - Botan::Compression_Algorithm::create
    - Test::Result::test_failure
    - poll_just
    - Test::Result::test_gte
    - what
    - Botan::secure_vector::size
    - Test::Result::test_lt
    - Botan::secure_vector::insert
    - Test::Result::start_timer
    - Botan::Entropy_Sources::global_sources
    - std::vector::push_back
    - Botan::secure_vector::assign
    - enabled_sources
    - auto::finish
    - Test::Result::test_note
    - Test::Result::end_timer
    - auto::start
    - SeedCapturing_RNG::seed_material
    - SeedCapturing_RNG::samples
    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_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_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_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_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_lt
      Src: /src/botan/src/tests/test_entropy.cpp:97,1
    - Dst: Test::Result::test_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::end
    - Botan::Compression_Algorithm::create
    - Test::Result::test_failure
    - poll_just
    - Test::Result::test_gte
    - what
    - Botan::secure_vector::size
    - Test::Result::test_lt
    - Botan::secure_vector::insert
    - Test::Result::start_timer
    - Botan::Entropy_Sources::global_sources
    - std::vector::push_back
    - Botan::secure_vector::assign
    - enabled_sources
    - auto::finish
    - Test::Result::test_note
    - Test::Result::end_timer
    - auto::start
    - SeedCapturing_RNG::seed_material
    - SeedCapturing_RNG::samples
    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_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_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_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_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_lt
      Src: /src/botan/src/tests/test_entropy.cpp:97,1
    - Dst: Test::Result::test_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::end
    - Botan::Compression_Algorithm::create
    - Test::Result::test_failure
    - poll_just
    - Test::Result::test_gte
    - what
    - Botan::secure_vector::size
    - Test::Result::test_lt
    - Botan::secure_vector::insert
    - Test::Result::start_timer
    - Botan::Entropy_Sources::global_sources
    - std::vector::push_back
    - Botan::secure_vector::assign
    - enabled_sources
    - auto::finish
    - Test::Result::test_note
    - Test::Result::end_timer
    - auto::start
    - SeedCapturing_RNG::seed_material
    - SeedCapturing_RNG::samples
    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: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    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:28,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_eckcdsa.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: Botan_Tests::ECKCDSA_Signature_KAT_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - get_req_str
    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:32,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_eckcdsa.cpp:33,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_eckcdsa.cpp:34,1
    - Dst: std::make_unique<Botan::ECKCDSA_PrivateKey>
      Src: /src/botan/src/tests/test_eckcdsa.cpp:36,1
    - Dst: Botan_Tests::ECKCDSA_Signature_KAT_Tests::rng
      Src: /src/botan/src/tests/test_eckcdsa.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: Botan_Tests::ECKCDSA_Signature_KAT_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::from_name
    - Botan_Tests::ECKCDSA_Signature_KAT_Tests::rng
    - get_req_bn
    - std::make_unique<Botan::ECKCDSA_PrivateKey>
    - get_req_str
    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:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    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:44,1
    - Dst: Botan_Tests::ECKCDSA_Signature_KAT_Tests::rng
      Src: /src/botan/src/tests/test_eckcdsa.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: Botan_Tests::ECKCDSA_Signature_KAT_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Fixed_Output_Position_RNG>
    - Botan_Tests::ECKCDSA_Signature_KAT_Tests::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: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    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: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    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:57,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/test_eckcdsa.cpp:58,1
    - Dst: std::make_unique<Botan::ECKCDSA_PublicKey>
      Src: /src/botan/src/tests/test_eckcdsa.cpp:59,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: 60
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: Botan_Tests::ECKCDSA_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_AffinePoint::EC_AffinePoint
    - std::make_unique<Botan::ECKCDSA_PublicKey>
    - Botan::EC_Group
    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: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    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:28,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_eckcdsa.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: Botan_Tests::ECKCDSA_Signature_KAT_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - get_req_str
    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:32,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_eckcdsa.cpp:33,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_eckcdsa.cpp:34,1
    - Dst: std::make_unique<Botan::ECKCDSA_PrivateKey>
      Src: /src/botan/src/tests/test_eckcdsa.cpp:36,1
    - Dst: Botan_Tests::ECKCDSA_Signature_KAT_Tests::rng
      Src: /src/botan/src/tests/test_eckcdsa.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: Botan_Tests::ECKCDSA_Signature_KAT_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::from_name
    - Botan_Tests::ECKCDSA_Signature_KAT_Tests::rng
    - get_req_bn
    - std::make_unique<Botan::ECKCDSA_PrivateKey>
    - get_req_str
    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:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    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:44,1
    - Dst: Botan_Tests::ECKCDSA_Signature_KAT_Tests::rng
      Src: /src/botan/src/tests/test_eckcdsa.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: Botan_Tests::ECKCDSA_Signature_KAT_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Fixed_Output_Position_RNG>
    - Botan_Tests::ECKCDSA_Signature_KAT_Tests::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: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    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: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    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:57,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/test_eckcdsa.cpp:58,1
    - Dst: std::make_unique<Botan::ECKCDSA_PublicKey>
      Src: /src/botan/src/tests/test_eckcdsa.cpp:59,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: 60
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: Botan_Tests::ECKCDSA_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_AffinePoint::EC_AffinePoint
    - std::make_unique<Botan::ECKCDSA_PublicKey>
    - Botan::EC_Group
    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: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    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:28,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_eckcdsa.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: Botan_Tests::ECKCDSA_Signature_KAT_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - get_req_str
    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:32,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_eckcdsa.cpp:33,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_eckcdsa.cpp:34,1
    - Dst: std::make_unique<Botan::ECKCDSA_PrivateKey>
      Src: /src/botan/src/tests/test_eckcdsa.cpp:36,1
    - Dst: Botan_Tests::ECKCDSA_Signature_KAT_Tests::rng
      Src: /src/botan/src/tests/test_eckcdsa.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: Botan_Tests::ECKCDSA_Signature_KAT_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::from_name
    - Botan_Tests::ECKCDSA_Signature_KAT_Tests::rng
    - get_req_bn
    - std::make_unique<Botan::ECKCDSA_PrivateKey>
    - get_req_str
    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:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    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:44,1
    - Dst: Botan_Tests::ECKCDSA_Signature_KAT_Tests::rng
      Src: /src/botan/src/tests/test_eckcdsa.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: Botan_Tests::ECKCDSA_Signature_KAT_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Fixed_Output_Position_RNG>
    - Botan_Tests::ECKCDSA_Signature_KAT_Tests::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: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    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: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    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:57,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/test_eckcdsa.cpp:58,1
    - Dst: std::make_unique<Botan::ECKCDSA_PublicKey>
      Src: /src/botan/src/tests/test_eckcdsa.cpp:59,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: 60
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: Botan_Tests::ECKCDSA_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_AffinePoint::EC_AffinePoint
    - std::make_unique<Botan::ECKCDSA_PublicKey>
    - Botan::EC_Group
    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: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    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:28,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_eckcdsa.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: Botan_Tests::ECKCDSA_Signature_KAT_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - get_req_str
    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:32,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_eckcdsa.cpp:33,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_eckcdsa.cpp:34,1
    - Dst: std::make_unique<Botan::ECKCDSA_PrivateKey>
      Src: /src/botan/src/tests/test_eckcdsa.cpp:36,1
    - Dst: Botan_Tests::ECKCDSA_Signature_KAT_Tests::rng
      Src: /src/botan/src/tests/test_eckcdsa.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: Botan_Tests::ECKCDSA_Signature_KAT_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::from_name
    - Botan_Tests::ECKCDSA_Signature_KAT_Tests::rng
    - get_req_bn
    - std::make_unique<Botan::ECKCDSA_PrivateKey>
    - get_req_str
    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:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    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:44,1
    - Dst: Botan_Tests::ECKCDSA_Signature_KAT_Tests::rng
      Src: /src/botan/src/tests/test_eckcdsa.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: Botan_Tests::ECKCDSA_Signature_KAT_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Fixed_Output_Position_RNG>
    - Botan_Tests::ECKCDSA_Signature_KAT_Tests::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: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    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: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    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:57,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/test_eckcdsa.cpp:58,1
    - Dst: std::make_unique<Botan::ECKCDSA_PublicKey>
      Src: /src/botan/src/tests/test_eckcdsa.cpp:59,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: 60
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: Botan_Tests::ECKCDSA_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_AffinePoint::EC_AffinePoint
    - std::make_unique<Botan::ECKCDSA_PublicKey>
    - Botan::EC_Group
    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:22,1
    - Dst: Botan_Tests::Sodium_API_Tests::aead_chacha20poly1305
      Src: /src/botan/src/tests/test_sodium.cpp:22,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:23,1
    - Dst: Botan_Tests::Sodium_API_Tests::aead_chacha20poly1305_ietf
      Src: /src/botan/src/tests/test_sodium.cpp:23,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:24,1
    - Dst: Botan_Tests::Sodium_API_Tests::aead_xchacha20poly1305
      Src: /src/botan/src/tests/test_sodium.cpp:24,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:25,1
    - Dst: Botan_Tests::Sodium_API_Tests::auth_hmacsha256
      Src: /src/botan/src/tests/test_sodium.cpp:25,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:26,1
    - Dst: Botan_Tests::Sodium_API_Tests::auth_hmacsha512
      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::auth_hmacsha512256
      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::auth_poly1305
      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::box_curve25519xsalsa20poly1305
      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::hash_sha256
      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::hash_sha512
      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::randombytes_buf_deterministic
      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::secretbox_xsalsa20poly1305
      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::secretbox_xsalsa20poly1305_detached
      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::shorthash_siphash24
      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::stream_chacha20
      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::stream_chacha20_ietf
      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::stream_salsa20
      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::stream_xchacha20
      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_xsalsa20
      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::sign_ed25519
      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::sodium_malloc
      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::sodium_utils
      Src: /src/botan/src/tests/test_sodium.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 46
    functionName: Botan_Tests::Sodium_API_Tests::run
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Sodium_API_Tests::sodium_utils
    - Botan_Tests::Sodium_API_Tests::box_curve25519xsalsa20poly1305
    - Botan_Tests::Sodium_API_Tests::hash_sha256
    - Botan_Tests::Sodium_API_Tests::secretbox_xsalsa20poly1305_detached
    - Botan_Tests::Sodium_API_Tests::hash_sha512
    - Botan_Tests::Sodium_API_Tests::sign_ed25519
    - Botan_Tests::Sodium_API_Tests::aead_chacha20poly1305_ietf
    - Botan_Tests::Sodium_API_Tests::randombytes_buf_deterministic
    - Botan_Tests::Sodium_API_Tests::sodium_malloc
    - Botan_Tests::Sodium_API_Tests::stream_chacha20_ietf
    - std::vector::push_back
    - Botan_Tests::Sodium_API_Tests::auth_poly1305
    - Botan_Tests::Sodium_API_Tests::aead_chacha20poly1305
    - Botan_Tests::Sodium_API_Tests::stream_chacha20
    - Botan_Tests::Sodium_API_Tests::stream_xsalsa20
    - Botan_Tests::Sodium_API_Tests::secretbox_xsalsa20poly1305
    - Botan_Tests::Sodium_API_Tests::auth_hmacsha512256
    - Botan_Tests::Sodium_API_Tests::auth_hmacsha512
    - Botan_Tests::Sodium_API_Tests::shorthash_siphash24
    - Botan_Tests::Sodium_API_Tests::stream_xchacha20
    - Botan_Tests::Sodium_API_Tests::auth_hmacsha256
    - Botan_Tests::Sodium_API_Tests::aead_xchacha20poly1305
    - Botan_Tests::Sodium_API_Tests::stream_salsa20
    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:52,1
    - Dst: std::memset
      Src: /src/botan/src/tests/test_sodium.cpp:53,1
    - Dst: Botan::Sodium::sodium_free
      Src: /src/botan/src/tests/test_sodium.cpp:55,1
    - Dst: Botan::Sodium::sodium_free
      Src: /src/botan/src/tests/test_sodium.cpp:56,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_sodium.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 61
    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::confirm
      Src: /src/botan/src/tests/test_sodium.cpp:66,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_sodium.cpp:66,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_sodium.cpp:69,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_sodium.cpp:69,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:69,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:69,1
    - Dst: Botan::Sodium::sodium_increment
      Src: /src/botan/src/tests/test_sodium.cpp:70,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:70,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:70,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:71,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_sodium.cpp:72,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_sodium.cpp:72,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:72,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:72,1
    - Dst: std::memset
      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: Botan::Sodium::sodium_increment
      Src: /src/botan/src/tests/test_sodium.cpp:75,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:75,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:75,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:76,1
    - Dst: Botan::Sodium::sodium_increment
      Src: /src/botan/src/tests/test_sodium.cpp:77,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:77,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:77,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:78,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_sodium.cpp:80,1
    - Dst: Botan::Sodium::sodium_compare
      Src: /src/botan/src/tests/test_sodium.cpp:80,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:80,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:80,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:80,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_sodium.cpp:81,1
    - Dst: Botan::Sodium::sodium_memcmp
      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::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::confirm
      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::confirm
      Src: /src/botan/src/tests/test_sodium.cpp:85,1
    - Dst: Botan::Sodium::sodium_compare
      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::confirm
      Src: /src/botan/src/tests/test_sodium.cpp:86,1
    - Dst: Botan::Sodium::sodium_memcmp
      Src: /src/botan/src/tests/test_sodium.cpp:86,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:86,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:86,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:86,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_sodium.cpp:87,1
    - Dst: Botan::Sodium::sodium_memcmp
      Src: /src/botan/src/tests/test_sodium.cpp:87,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:87,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:87,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:87,1
    - Dst: Botan::Sodium::sodium_add
      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_eq
      Src: /src/botan/src/tests/test_sodium.cpp:90,1
    - Dst: Botan::Sodium::sodium_add
      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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:92,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_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_eq
      Src: /src/botan/src/tests/test_sodium.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 99
    functionName: Botan_Tests::Sodium_API_Tests::sodium_utils
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 1
    functionsReached:
    - std::memset
    - Botan::Sodium::sodium_compare
    - std::vector::data
    - Botan::Sodium::sodium_memcmp
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::Sodium::sodium_increment
    - Botan::Sodium::sodium_is_zero
    - Botan::Sodium::sodium_add
    - 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:107,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:107,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:107,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 112
    functionName: Botan_Tests::Sodium_API_Tests::randombytes_buf_deterministic
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_eq
    - std::vector::size
    - std::vector::data
    - Botan::Sodium::randombytes_buf_deterministic
    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:118,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:118,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:120,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: Botan_Tests::Sodium_API_Tests::hash_sha512
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 1
    functionsReached:
    - Botan::Sodium::crypto_hash_sha512
    - Test::Result::test_eq
    - 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:132,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:132,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 137
    functionName: Botan_Tests::Sodium_API_Tests::hash_sha256
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_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:146,1
    - Dst: Botan::Sodium::crypto_box_seed_keypair
      Src: /src/botan/src/tests/test_sodium.cpp:146,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:146,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:146,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:146,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:147,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:148,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:152,1
    - Dst: Botan::Sodium::crypto_box_seed_keypair
      Src: /src/botan/src/tests/test_sodium.cpp:152,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:152,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:152,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:152,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:153,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:154,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:157,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:160,1
    - Dst: Botan::Sodium::crypto_box_easy
      Src: /src/botan/src/tests/test_sodium.cpp:161,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:162,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:162,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:162,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:162,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:162,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:162,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:164,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:166,1
    - Dst: Botan::Sodium::crypto_box_easy
      Src: /src/botan/src/tests/test_sodium.cpp:167,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:168,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:168,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:168,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:168,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:168,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:168,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:171,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:175,1
    - Dst: Botan::Sodium::crypto_box_open_easy
      Src: /src/botan/src/tests/test_sodium.cpp:176,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:177,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:177,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:177,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:177,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:177,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:177,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:179,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:181,1
    - Dst: Botan::Sodium::crypto_box_open_easy
      Src: /src/botan/src/tests/test_sodium.cpp:182,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:183,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:183,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:183,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:183,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:183,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:183,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 188
    functionName: Botan_Tests::Sodium_API_Tests::box_curve25519xsalsa20poly1305
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 1
    functionsReached:
    - Botan::Sodium::crypto_box_seed_keypair
    - Botan::Sodium::crypto_box_easy
    - std::vector::data
    - Test::Result::test_rc_ok
    - Test::Result::test_eq
    - std::vector::size
    - Botan::Sodium::crypto_box_open_easy
    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:194,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:196,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:197,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:199,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_keybytes
      Src: /src/botan/src/tests/test_sodium.cpp:199,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:199,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:200,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_npubbytes
      Src: /src/botan/src/tests/test_sodium.cpp:200,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:200,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:202,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_encrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:205,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:205,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:206,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:208,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:209,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:210,1
    - Dst: std::vector::size
      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::data
      Src: /src/botan/src/tests/test_sodium.cpp:214,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:216,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:217,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:218,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:220,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:221,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_decrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:222,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:222,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:224,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:225,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:226,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:227,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:228,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:229,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:230,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:232,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_sodium.cpp:235,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_decrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:237,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:237,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:239,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:240,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:241,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:242,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:243,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:244,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:245,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_sodium.cpp:247,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:247,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:247,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:249,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_encrypt
      Src: /src/botan/src/tests/test_sodium.cpp:250,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:250,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:252,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:253,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:254,1
    - Dst: std::vector::size
      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::data
      Src: /src/botan/src/tests/test_sodium.cpp:258,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:260,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:260,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:261,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:264,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_decrypt
      Src: /src/botan/src/tests/test_sodium.cpp:265,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:265,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:268,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:269,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:270,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:271,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:272,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:273,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 278
    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
    - Botan::Sodium::crypto_aead_chacha20poly1305_keybytes
    - std::vector::data
    - Botan::Sodium::crypto_aead_chacha20poly1305_npubbytes
    - Test::Result::test_eq
    - Test::Result::test_rc_ok
    - Botan::Sodium::crypto_aead_chacha20poly1305_decrypt_detached
    - std::vector::resize
    - Botan::Sodium::crypto_aead_chacha20poly1305_encrypt_detached
    - Test::Result::test_rc_fail
    - std::vector::size
    - Botan::Sodium::crypto_aead_chacha20poly1305_decrypt
    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:284,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:286,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:287,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:289,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_keybytes
      Src: /src/botan/src/tests/test_sodium.cpp:289,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:289,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:290,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_npubbytes
      Src: /src/botan/src/tests/test_sodium.cpp:290,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:290,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:292,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_encrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:295,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:295,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:296,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:298,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:299,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:300,1
    - Dst: std::vector::size
      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::data
      Src: /src/botan/src/tests/test_sodium.cpp:304,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:306,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:307,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:308,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:310,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:311,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_decrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:312,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:312,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:314,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:315,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:316,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:317,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:318,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:319,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:320,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:322,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_sodium.cpp:325,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_decrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:327,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:327,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:329,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:330,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:331,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:332,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:333,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:334,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:335,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_sodium.cpp:337,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:337,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:337,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:339,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_encrypt
      Src: /src/botan/src/tests/test_sodium.cpp:340,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:340,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:342,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:343,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:344,1
    - Dst: std::vector::size
      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::data
      Src: /src/botan/src/tests/test_sodium.cpp:348,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:350,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:350,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:351,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:354,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_decrypt
      Src: /src/botan/src/tests/test_sodium.cpp:355,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:355,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:358,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:359,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:360,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:361,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:362,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:363,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 368
    functionName: Botan_Tests::Sodium_API_Tests::aead_chacha20poly1305_ietf
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 1
    functionsReached:
    - Botan::hex_decode
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_decrypt_detached
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_npubbytes
    - std::vector::data
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_encrypt
    - Test::Result::test_rc_ok
    - Test::Result::test_eq
    - std::vector::resize
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_decrypt
    - Test::Result::test_rc_fail
    - std::vector::size
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_encrypt_detached
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_keybytes
    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:374,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:376,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:377,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:379,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_keybytes
      Src: /src/botan/src/tests/test_sodium.cpp:379,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:379,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:380,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_npubbytes
      Src: /src/botan/src/tests/test_sodium.cpp:380,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:380,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:382,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_encrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:385,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:385,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:386,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:388,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:389,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:390,1
    - Dst: std::vector::size
      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::data
      Src: /src/botan/src/tests/test_sodium.cpp:394,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:396,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:397,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:398,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:400,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:401,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_decrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:402,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:402,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:404,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:405,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:406,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:407,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:408,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:409,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:410,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:412,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_sodium.cpp:415,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_decrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:417,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:417,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:419,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:420,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:421,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:422,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:423,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:424,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:425,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_sodium.cpp:427,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:427,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:427,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:429,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_encrypt
      Src: /src/botan/src/tests/test_sodium.cpp:430,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:430,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:432,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:433,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:434,1
    - Dst: std::vector::size
      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::data
      Src: /src/botan/src/tests/test_sodium.cpp:438,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:440,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:440,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:441,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:444,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_decrypt
      Src: /src/botan/src/tests/test_sodium.cpp:445,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:445,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:448,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:449,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:450,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:451,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:452,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:453,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 458
    functionName: Botan_Tests::Sodium_API_Tests::aead_xchacha20poly1305
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 1
    functionsReached:
    - Botan::hex_decode
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_decrypt_detached
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_keybytes
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_decrypt
    - std::vector::data
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_encrypt_detached
    - Test::Result::test_rc_ok
    - Test::Result::test_eq
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_npubbytes
    - std::vector::resize
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_encrypt
    - Test::Result::test_rc_fail
    - 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:464,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:465,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:467,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:467,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha512_keybytes
      Src: /src/botan/src/tests/test_sodium.cpp:467,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha512
      Src: /src/botan/src/tests/test_sodium.cpp:470,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:470,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:470,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:470,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:470,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:472,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:477,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha512_verify
      Src: /src/botan/src/tests/test_sodium.cpp:478,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:478,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:478,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:478,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:478,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_sodium.cpp:481,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha512_verify
      Src: /src/botan/src/tests/test_sodium.cpp:484,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:484,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:484,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:484,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 487
    functionName: Botan_Tests::Sodium_API_Tests::auth_hmacsha512
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 1
    functionsReached:
    - Botan::hex_decode
    - std::vector::data
    - Test::Result::test_rc_ok
    - Test::Result::test_eq
    - Botan::Sodium::crypto_auth_hmacsha512_keybytes
    - Botan::Sodium::crypto_auth_hmacsha512
    - Botan::Sodium::crypto_auth_hmacsha512_verify
    - Test::Result::test_rc_fail
    - 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:493,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:494,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha512256
      Src: /src/botan/src/tests/test_sodium.cpp:497,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:497,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:497,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:497,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:497,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:499,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:501,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha512256_verify
      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_rc_fail
      Src: /src/botan/src/tests/test_sodium.cpp:505,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha512256_verify
      Src: /src/botan/src/tests/test_sodium.cpp:508,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:508,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:508,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:508,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 511
    functionName: Botan_Tests::Sodium_API_Tests::auth_hmacsha512256
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 1
    functionsReached:
    - Botan::hex_decode
    - Botan::Sodium::crypto_auth_hmacsha512256_verify
    - Botan::Sodium::crypto_auth_hmacsha512256
    - std::vector::data
    - Test::Result::test_rc_ok
    - Test::Result::test_eq
    - Test::Result::test_rc_fail
    - 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:517,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:518,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha256
      Src: /src/botan/src/tests/test_sodium.cpp:521,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:521,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:521,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:521,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:521,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:523,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:525,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha256_verify
      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_rc_fail
      Src: /src/botan/src/tests/test_sodium.cpp:529,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha256_verify
      Src: /src/botan/src/tests/test_sodium.cpp:532,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:532,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:532,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:532,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 535
    functionName: Botan_Tests::Sodium_API_Tests::auth_hmacsha256
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 1
    functionsReached:
    - Botan::hex_decode
    - Botan::Sodium::crypto_auth_hmacsha256
    - std::vector::data
    - Test::Result::test_rc_ok
    - Test::Result::test_eq
    - Botan::Sodium::crypto_auth_hmacsha256_verify
    - Test::Result::test_rc_fail
    - 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:540,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:545,1
    - Dst: Botan::Sodium::crypto_onetimeauth_poly1305
      Src: /src/botan/src/tests/test_sodium.cpp:546,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:546,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:546,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:546,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:546,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:548,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:550,1
    - Dst: Botan::Sodium::crypto_onetimeauth_poly1305_verify
      Src: /src/botan/src/tests/test_sodium.cpp:552,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:552,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:552,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:552,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:552,1
    - Dst: Test::Result::test_rc_fail
      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:558,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:558,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:558,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:558,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 561
    functionName: Botan_Tests::Sodium_API_Tests::auth_poly1305
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 1
    functionsReached:
    - std::vector::data
    - Test::Result::test_rc_ok
    - Test::Result::test_eq
    - Botan::Sodium::crypto_onetimeauth_poly1305_verify
    - Botan::Sodium::crypto_onetimeauth_keybytes
    - Botan::Sodium::crypto_onetimeauth_poly1305
    - Test::Result::test_rc_fail
    - 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:566,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:567,1
    - Dst: Botan::Sodium::crypto_shorthash_siphash24
      Src: /src/botan/src/tests/test_sodium.cpp:570,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:570,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:570,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:570,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:570,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 575
    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_eq
    - std::vector::size
    - Botan::Sodium::crypto_shorthash_siphash24
    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:585,1
    - Dst: Botan::Sodium::crypto_secretbox_xsalsa20poly1305
      Src: /src/botan/src/tests/test_sodium.cpp:586,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:587,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:587,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:587,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:587,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:587,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:589,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:592,1
    - Dst: Botan::Sodium::crypto_secretbox_xsalsa20poly1305_open
      Src: /src/botan/src/tests/test_sodium.cpp:593,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:594,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:594,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:594,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:594,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:594,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 599
    functionName: Botan_Tests::Sodium_API_Tests::secretbox_xsalsa20poly1305
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 1
    functionsReached:
    - std::vector::data
    - Botan::Sodium::crypto_secretbox_xsalsa20poly1305_open
    - Botan::Sodium::crypto_secretbox_xsalsa20poly1305
    - Test::Result::test_rc_ok
    - Test::Result::test_eq
    - 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:610,1
    - Dst: Botan::Sodium::crypto_secretbox_detached
      Src: /src/botan/src/tests/test_sodium.cpp:611,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:612,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:612,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:612,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:612,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:612,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:612,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:614,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:615,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:617,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:619,1
    - Dst: Botan::Sodium::crypto_secretbox_open_detached
      Src: /src/botan/src/tests/test_sodium.cpp:620,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:621,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:621,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:621,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:621,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:621,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:621,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 601
    functionDepth: 1
    functionLinenumber: 601
    functionLinenumberEnd: 626
    functionName: Botan_Tests::Sodium_API_Tests::secretbox_xsalsa20poly1305_detached
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 1
    functionsReached:
    - Botan::Sodium::crypto_secretbox_detached
    - std::vector::data
    - Test::Result::test_rc_ok
    - Test::Result::test_eq
    - std::vector::size
    - Botan::Sodium::crypto_secretbox_open_detached
    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:635,1
    - Dst: Botan::Sodium::crypto_sign_ed25519_seed_keypair
      Src: /src/botan/src/tests/test_sodium.cpp:636,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:636,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:636,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:636,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:638,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:639,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:647,1
    - Dst: Botan::Sodium::crypto_sign_ed25519_detached
      Src: /src/botan/src/tests/test_sodium.cpp:649,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:649,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:649,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:649,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:649,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_sodium.cpp:650,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:652,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:657,1
    - Dst: Botan::Sodium::crypto_sign_ed25519_verify_detached
      Src: /src/botan/src/tests/test_sodium.cpp:659,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:659,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:659,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:659,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:659,1
    - Dst: Test::Result::test_rc_fail
      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:665,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:665,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:665,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:665,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 628
    functionDepth: 1
    functionLinenumber: 628
    functionLinenumberEnd: 668
    functionName: Botan_Tests::Sodium_API_Tests::sign_ed25519
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 1
    functionsReached:
    - std::vector::data
    - Test::Result::test_rc_fail
    - Test::Result::test_rc_ok
    - Botan::Sodium::crypto_sign_ed25519_seed_keypair
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::Sodium::crypto_sign_ed25519_detached
    - std::vector::size
    - Botan::Sodium::crypto_sign_ed25519_verify_detached
    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:674,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:675,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:677,1
    - Dst: Botan::Sodium::crypto_stream_salsa20
      Src: /src/botan/src/tests/test_sodium.cpp:680,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:680,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:680,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:680,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:680,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:681,1
    - Dst: Botan::Sodium::crypto_stream_salsa20_xor
      Src: /src/botan/src/tests/test_sodium.cpp:684,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: 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_eq
      Src: /src/botan/src/tests/test_sodium.cpp:686,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_sodium.cpp:686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 689
    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::data
    - Botan::Sodium::crypto_stream_salsa20
    - Test::Result::test_eq
    - std::vector<uint8_t>
    - 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:695,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:696,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:698,1
    - Dst: Botan::Sodium::crypto_stream_xsalsa20
      Src: /src/botan/src/tests/test_sodium.cpp:701,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:701,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:701,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:701,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:701,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:702,1
    - Dst: Botan::Sodium::crypto_stream_xsalsa20_xor
      Src: /src/botan/src/tests/test_sodium.cpp:705,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: 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_eq
      Src: /src/botan/src/tests/test_sodium.cpp:707,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_sodium.cpp:707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 691
    functionDepth: 1
    functionLinenumber: 691
    functionLinenumberEnd: 710
    functionName: Botan_Tests::Sodium_API_Tests::stream_xsalsa20
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 1
    functionsReached:
    - Botan::hex_decode
    - Botan::Sodium::crypto_stream_xsalsa20
    - std::vector::data
    - Test::Result::test_eq
    - Botan::Sodium::crypto_stream_xsalsa20_xor
    - std::vector<uint8_t>
    - 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:716,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:717,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:719,1
    - Dst: Botan::Sodium::crypto_stream_chacha20
      Src: /src/botan/src/tests/test_sodium.cpp:722,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:722,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:722,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:722,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:722,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:723,1
    - Dst: Botan::Sodium::crypto_stream_chacha20_xor
      Src: /src/botan/src/tests/test_sodium.cpp:726,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: 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_eq
      Src: /src/botan/src/tests/test_sodium.cpp:728,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_sodium.cpp:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 712
    functionDepth: 1
    functionLinenumber: 712
    functionLinenumberEnd: 731
    functionName: Botan_Tests::Sodium_API_Tests::stream_chacha20
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 1
    functionsReached:
    - Botan::hex_decode
    - Botan::Sodium::crypto_stream_chacha20_xor
    - std::vector::data
    - Botan::Sodium::crypto_stream_chacha20
    - Test::Result::test_eq
    - std::vector<uint8_t>
    - 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:737,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:738,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:740,1
    - Dst: Botan::Sodium::crypto_stream_chacha20_ietf
      Src: /src/botan/src/tests/test_sodium.cpp:743,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:743,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:743,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:743,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:743,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:744,1
    - Dst: Botan::Sodium::crypto_stream_chacha20_ietf_xor
      Src: /src/botan/src/tests/test_sodium.cpp:747,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: 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_eq
      Src: /src/botan/src/tests/test_sodium.cpp:749,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_sodium.cpp:749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 752
    functionName: Botan_Tests::Sodium_API_Tests::stream_chacha20_ietf
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 1
    functionsReached:
    - Botan::hex_decode
    - Botan::Sodium::crypto_stream_chacha20_ietf_xor
    - std::vector::data
    - Test::Result::test_eq
    - std::vector<uint8_t>
    - std::vector::size
    - Botan::Sodium::crypto_stream_chacha20_ietf
    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:758,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:759,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:761,1
    - Dst: Botan::Sodium::crypto_stream_xchacha20
      Src: /src/botan/src/tests/test_sodium.cpp:764,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:764,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:764,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:764,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:764,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:765,1
    - Dst: Botan::Sodium::crypto_stream_xchacha20_xor
      Src: /src/botan/src/tests/test_sodium.cpp:768,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: 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_eq
      Src: /src/botan/src/tests/test_sodium.cpp:770,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_sodium.cpp:770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 754
    functionDepth: 1
    functionLinenumber: 754
    functionLinenumberEnd: 773
    functionName: Botan_Tests::Sodium_API_Tests::stream_xchacha20
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 1
    functionsReached:
    - Botan::hex_decode
    - std::vector::data
    - Test::Result::test_eq
    - Botan::Sodium::crypto_stream_xchacha20_xor
    - std::vector<uint8_t>
    - 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:22,1
    - Dst: Botan_Tests::Sodium_API_Tests::aead_chacha20poly1305
      Src: /src/botan/src/tests/test_sodium.cpp:22,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:23,1
    - Dst: Botan_Tests::Sodium_API_Tests::aead_chacha20poly1305_ietf
      Src: /src/botan/src/tests/test_sodium.cpp:23,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:24,1
    - Dst: Botan_Tests::Sodium_API_Tests::aead_xchacha20poly1305
      Src: /src/botan/src/tests/test_sodium.cpp:24,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:25,1
    - Dst: Botan_Tests::Sodium_API_Tests::auth_hmacsha256
      Src: /src/botan/src/tests/test_sodium.cpp:25,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_sodium.cpp:26,1
    - Dst: Botan_Tests::Sodium_API_Tests::auth_hmacsha512
      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::auth_hmacsha512256
      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::auth_poly1305
      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::box_curve25519xsalsa20poly1305
      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::hash_sha256
      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::hash_sha512
      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::randombytes_buf_deterministic
      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::secretbox_xsalsa20poly1305
      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::secretbox_xsalsa20poly1305_detached
      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::shorthash_siphash24
      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::stream_chacha20
      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::stream_chacha20_ietf
      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::stream_salsa20
      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::stream_xchacha20
      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_xsalsa20
      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::sign_ed25519
      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::sodium_malloc
      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::sodium_utils
      Src: /src/botan/src/tests/test_sodium.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 46
    functionName: Botan_Tests::Sodium_API_Tests::run
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Sodium_API_Tests::sodium_utils
    - Botan_Tests::Sodium_API_Tests::box_curve25519xsalsa20poly1305
    - Botan_Tests::Sodium_API_Tests::hash_sha256
    - Botan_Tests::Sodium_API_Tests::secretbox_xsalsa20poly1305_detached
    - Botan_Tests::Sodium_API_Tests::hash_sha512
    - Botan_Tests::Sodium_API_Tests::sign_ed25519
    - Botan_Tests::Sodium_API_Tests::aead_chacha20poly1305_ietf
    - Botan_Tests::Sodium_API_Tests::randombytes_buf_deterministic
    - Botan_Tests::Sodium_API_Tests::sodium_malloc
    - Botan_Tests::Sodium_API_Tests::stream_chacha20_ietf
    - std::vector::push_back
    - Botan_Tests::Sodium_API_Tests::auth_poly1305
    - Botan_Tests::Sodium_API_Tests::aead_chacha20poly1305
    - Botan_Tests::Sodium_API_Tests::stream_chacha20
    - Botan_Tests::Sodium_API_Tests::stream_xsalsa20
    - Botan_Tests::Sodium_API_Tests::secretbox_xsalsa20poly1305
    - Botan_Tests::Sodium_API_Tests::auth_hmacsha512256
    - Botan_Tests::Sodium_API_Tests::auth_hmacsha512
    - Botan_Tests::Sodium_API_Tests::shorthash_siphash24
    - Botan_Tests::Sodium_API_Tests::stream_xchacha20
    - Botan_Tests::Sodium_API_Tests::auth_hmacsha256
    - Botan_Tests::Sodium_API_Tests::aead_xchacha20poly1305
    - Botan_Tests::Sodium_API_Tests::stream_salsa20
    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:52,1
    - Dst: std::memset
      Src: /src/botan/src/tests/test_sodium.cpp:53,1
    - Dst: Botan::Sodium::sodium_free
      Src: /src/botan/src/tests/test_sodium.cpp:55,1
    - Dst: Botan::Sodium::sodium_free
      Src: /src/botan/src/tests/test_sodium.cpp:56,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_sodium.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 61
    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::confirm
      Src: /src/botan/src/tests/test_sodium.cpp:66,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_sodium.cpp:66,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_sodium.cpp:69,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_sodium.cpp:69,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:69,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:69,1
    - Dst: Botan::Sodium::sodium_increment
      Src: /src/botan/src/tests/test_sodium.cpp:70,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:70,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:70,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:71,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_sodium.cpp:72,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_sodium.cpp:72,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:72,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:72,1
    - Dst: std::memset
      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: Botan::Sodium::sodium_increment
      Src: /src/botan/src/tests/test_sodium.cpp:75,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:75,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:75,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:76,1
    - Dst: Botan::Sodium::sodium_increment
      Src: /src/botan/src/tests/test_sodium.cpp:77,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:77,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:77,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:78,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_sodium.cpp:80,1
    - Dst: Botan::Sodium::sodium_compare
      Src: /src/botan/src/tests/test_sodium.cpp:80,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:80,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:80,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:80,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_sodium.cpp:81,1
    - Dst: Botan::Sodium::sodium_memcmp
      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::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::confirm
      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::confirm
      Src: /src/botan/src/tests/test_sodium.cpp:85,1
    - Dst: Botan::Sodium::sodium_compare
      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::confirm
      Src: /src/botan/src/tests/test_sodium.cpp:86,1
    - Dst: Botan::Sodium::sodium_memcmp
      Src: /src/botan/src/tests/test_sodium.cpp:86,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:86,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:86,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:86,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_sodium.cpp:87,1
    - Dst: Botan::Sodium::sodium_memcmp
      Src: /src/botan/src/tests/test_sodium.cpp:87,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:87,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:87,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:87,1
    - Dst: Botan::Sodium::sodium_add
      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_eq
      Src: /src/botan/src/tests/test_sodium.cpp:90,1
    - Dst: Botan::Sodium::sodium_add
      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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:92,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_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_eq
      Src: /src/botan/src/tests/test_sodium.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 99
    functionName: Botan_Tests::Sodium_API_Tests::sodium_utils
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 2
    functionsReached:
    - std::memset
    - Botan::Sodium::sodium_compare
    - std::vector::data
    - Botan::Sodium::sodium_memcmp
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::Sodium::sodium_increment
    - Botan::Sodium::sodium_is_zero
    - Botan::Sodium::sodium_add
    - 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:107,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:107,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:107,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 112
    functionName: Botan_Tests::Sodium_API_Tests::randombytes_buf_deterministic
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::test_eq
    - std::vector::size
    - std::vector::data
    - Botan::Sodium::randombytes_buf_deterministic
    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:118,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:118,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:120,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: Botan_Tests::Sodium_API_Tests::hash_sha512
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 2
    functionsReached:
    - Botan::Sodium::crypto_hash_sha512
    - Test::Result::test_eq
    - 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:132,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:132,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 137
    functionName: Botan_Tests::Sodium_API_Tests::hash_sha256
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::test_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:146,1
    - Dst: Botan::Sodium::crypto_box_seed_keypair
      Src: /src/botan/src/tests/test_sodium.cpp:146,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:146,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:146,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:146,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:147,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:148,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:152,1
    - Dst: Botan::Sodium::crypto_box_seed_keypair
      Src: /src/botan/src/tests/test_sodium.cpp:152,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:152,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:152,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:152,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:153,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:154,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:157,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:160,1
    - Dst: Botan::Sodium::crypto_box_easy
      Src: /src/botan/src/tests/test_sodium.cpp:161,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:162,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:162,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:162,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:162,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:162,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:162,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:164,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:166,1
    - Dst: Botan::Sodium::crypto_box_easy
      Src: /src/botan/src/tests/test_sodium.cpp:167,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:168,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:168,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:168,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:168,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:168,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:168,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:171,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:175,1
    - Dst: Botan::Sodium::crypto_box_open_easy
      Src: /src/botan/src/tests/test_sodium.cpp:176,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:177,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:177,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:177,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:177,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:177,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:177,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:179,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:181,1
    - Dst: Botan::Sodium::crypto_box_open_easy
      Src: /src/botan/src/tests/test_sodium.cpp:182,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:183,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:183,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:183,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:183,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:183,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:183,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 188
    functionName: Botan_Tests::Sodium_API_Tests::box_curve25519xsalsa20poly1305
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 2
    functionsReached:
    - Botan::Sodium::crypto_box_seed_keypair
    - Botan::Sodium::crypto_box_easy
    - std::vector::data
    - Test::Result::test_rc_ok
    - Test::Result::test_eq
    - std::vector::size
    - Botan::Sodium::crypto_box_open_easy
    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:194,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:196,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:197,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:199,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_keybytes
      Src: /src/botan/src/tests/test_sodium.cpp:199,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:199,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:200,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_npubbytes
      Src: /src/botan/src/tests/test_sodium.cpp:200,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:200,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:202,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_encrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:205,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:205,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:206,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:208,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:209,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:210,1
    - Dst: std::vector::size
      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::data
      Src: /src/botan/src/tests/test_sodium.cpp:214,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:216,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:217,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:218,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:220,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:221,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_decrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:222,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:222,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:224,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:225,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:226,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:227,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:228,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:229,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:230,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:232,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_sodium.cpp:235,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_decrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:237,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:237,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:239,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:240,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:241,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:242,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:243,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:244,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:245,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_sodium.cpp:247,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:247,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:247,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:249,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_encrypt
      Src: /src/botan/src/tests/test_sodium.cpp:250,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:250,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:252,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:253,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:254,1
    - Dst: std::vector::size
      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::data
      Src: /src/botan/src/tests/test_sodium.cpp:258,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:260,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:260,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:261,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:264,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_decrypt
      Src: /src/botan/src/tests/test_sodium.cpp:265,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:265,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:268,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:269,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:270,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:271,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:272,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:273,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 278
    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
    - Botan::Sodium::crypto_aead_chacha20poly1305_keybytes
    - std::vector::data
    - Botan::Sodium::crypto_aead_chacha20poly1305_npubbytes
    - Test::Result::test_eq
    - Test::Result::test_rc_ok
    - Botan::Sodium::crypto_aead_chacha20poly1305_decrypt_detached
    - std::vector::resize
    - Botan::Sodium::crypto_aead_chacha20poly1305_encrypt_detached
    - Test::Result::test_rc_fail
    - std::vector::size
    - Botan::Sodium::crypto_aead_chacha20poly1305_decrypt
    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:284,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:286,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:287,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:289,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_keybytes
      Src: /src/botan/src/tests/test_sodium.cpp:289,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:289,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:290,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_npubbytes
      Src: /src/botan/src/tests/test_sodium.cpp:290,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:290,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:292,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_encrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:295,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:295,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:296,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:298,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:299,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:300,1
    - Dst: std::vector::size
      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::data
      Src: /src/botan/src/tests/test_sodium.cpp:304,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:306,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:307,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:308,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:310,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:311,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_decrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:312,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:312,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:314,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:315,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:316,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:317,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:318,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:319,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:320,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:322,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_sodium.cpp:325,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_decrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:327,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:327,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:329,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:330,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:331,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:332,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:333,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:334,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:335,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_sodium.cpp:337,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:337,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:337,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:339,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_encrypt
      Src: /src/botan/src/tests/test_sodium.cpp:340,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:340,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:342,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:343,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:344,1
    - Dst: std::vector::size
      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::data
      Src: /src/botan/src/tests/test_sodium.cpp:348,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:350,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:350,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:351,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:354,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_decrypt
      Src: /src/botan/src/tests/test_sodium.cpp:355,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:355,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:358,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:359,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:360,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:361,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:362,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:363,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 368
    functionName: Botan_Tests::Sodium_API_Tests::aead_chacha20poly1305_ietf
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 2
    functionsReached:
    - Botan::hex_decode
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_decrypt_detached
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_npubbytes
    - std::vector::data
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_encrypt
    - Test::Result::test_rc_ok
    - Test::Result::test_eq
    - std::vector::resize
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_decrypt
    - Test::Result::test_rc_fail
    - std::vector::size
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_encrypt_detached
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_keybytes
    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:374,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:376,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:377,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:379,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_keybytes
      Src: /src/botan/src/tests/test_sodium.cpp:379,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:379,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:380,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_npubbytes
      Src: /src/botan/src/tests/test_sodium.cpp:380,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:380,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:382,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_encrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:385,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:385,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:386,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:388,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:389,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:390,1
    - Dst: std::vector::size
      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::data
      Src: /src/botan/src/tests/test_sodium.cpp:394,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:396,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:397,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:398,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:400,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:401,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_decrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:402,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:402,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:404,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:405,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:406,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:407,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:408,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:409,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:410,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:412,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_sodium.cpp:415,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_decrypt_detached
      Src: /src/botan/src/tests/test_sodium.cpp:417,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:417,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:419,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:420,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:421,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:422,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:423,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:424,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:425,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_sodium.cpp:427,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:427,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:427,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:429,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_encrypt
      Src: /src/botan/src/tests/test_sodium.cpp:430,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:430,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:432,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:433,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:434,1
    - Dst: std::vector::size
      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::data
      Src: /src/botan/src/tests/test_sodium.cpp:438,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:440,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:440,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:441,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:444,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_decrypt
      Src: /src/botan/src/tests/test_sodium.cpp:445,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:445,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:448,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:449,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:450,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:451,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:452,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:453,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 458
    functionName: Botan_Tests::Sodium_API_Tests::aead_xchacha20poly1305
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 2
    functionsReached:
    - Botan::hex_decode
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_decrypt_detached
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_keybytes
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_decrypt
    - std::vector::data
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_encrypt_detached
    - Test::Result::test_rc_ok
    - Test::Result::test_eq
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_npubbytes
    - std::vector::resize
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_encrypt
    - Test::Result::test_rc_fail
    - 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:464,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:465,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:467,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:467,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha512_keybytes
      Src: /src/botan/src/tests/test_sodium.cpp:467,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha512
      Src: /src/botan/src/tests/test_sodium.cpp:470,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:470,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:470,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:470,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:470,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:472,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:477,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha512_verify
      Src: /src/botan/src/tests/test_sodium.cpp:478,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:478,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:478,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:478,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:478,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_sodium.cpp:481,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha512_verify
      Src: /src/botan/src/tests/test_sodium.cpp:484,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:484,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:484,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:484,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 487
    functionName: Botan_Tests::Sodium_API_Tests::auth_hmacsha512
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 2
    functionsReached:
    - Botan::hex_decode
    - std::vector::data
    - Test::Result::test_rc_ok
    - Test::Result::test_eq
    - Botan::Sodium::crypto_auth_hmacsha512_keybytes
    - Botan::Sodium::crypto_auth_hmacsha512
    - Botan::Sodium::crypto_auth_hmacsha512_verify
    - Test::Result::test_rc_fail
    - 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:493,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:494,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha512256
      Src: /src/botan/src/tests/test_sodium.cpp:497,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:497,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:497,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:497,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:497,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:499,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:501,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha512256_verify
      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_rc_fail
      Src: /src/botan/src/tests/test_sodium.cpp:505,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha512256_verify
      Src: /src/botan/src/tests/test_sodium.cpp:508,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:508,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:508,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:508,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 489
    functionDepth: 1
    functionLinenumber: 489
    functionLinenumberEnd: 511
    functionName: Botan_Tests::Sodium_API_Tests::auth_hmacsha512256
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 2
    functionsReached:
    - Botan::hex_decode
    - Botan::Sodium::crypto_auth_hmacsha512256_verify
    - Botan::Sodium::crypto_auth_hmacsha512256
    - std::vector::data
    - Test::Result::test_rc_ok
    - Test::Result::test_eq
    - Test::Result::test_rc_fail
    - 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:517,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:518,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha256
      Src: /src/botan/src/tests/test_sodium.cpp:521,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:521,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:521,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:521,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:521,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:523,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:525,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha256_verify
      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_rc_fail
      Src: /src/botan/src/tests/test_sodium.cpp:529,1
    - Dst: Botan::Sodium::crypto_auth_hmacsha256_verify
      Src: /src/botan/src/tests/test_sodium.cpp:532,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:532,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:532,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:532,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 535
    functionName: Botan_Tests::Sodium_API_Tests::auth_hmacsha256
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 2
    functionsReached:
    - Botan::hex_decode
    - Botan::Sodium::crypto_auth_hmacsha256
    - std::vector::data
    - Test::Result::test_rc_ok
    - Test::Result::test_eq
    - Botan::Sodium::crypto_auth_hmacsha256_verify
    - Test::Result::test_rc_fail
    - 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:540,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:545,1
    - Dst: Botan::Sodium::crypto_onetimeauth_poly1305
      Src: /src/botan/src/tests/test_sodium.cpp:546,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:546,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:546,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:546,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:546,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:548,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:550,1
    - Dst: Botan::Sodium::crypto_onetimeauth_poly1305_verify
      Src: /src/botan/src/tests/test_sodium.cpp:552,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:552,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:552,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:552,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:552,1
    - Dst: Test::Result::test_rc_fail
      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:558,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:558,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:558,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:558,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 537
    functionDepth: 1
    functionLinenumber: 537
    functionLinenumberEnd: 561
    functionName: Botan_Tests::Sodium_API_Tests::auth_poly1305
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 2
    functionsReached:
    - std::vector::data
    - Test::Result::test_rc_ok
    - Test::Result::test_eq
    - Botan::Sodium::crypto_onetimeauth_poly1305_verify
    - Botan::Sodium::crypto_onetimeauth_keybytes
    - Botan::Sodium::crypto_onetimeauth_poly1305
    - Test::Result::test_rc_fail
    - 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:566,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:567,1
    - Dst: Botan::Sodium::crypto_shorthash_siphash24
      Src: /src/botan/src/tests/test_sodium.cpp:570,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:570,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:570,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:570,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:570,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 575
    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_eq
    - std::vector::size
    - Botan::Sodium::crypto_shorthash_siphash24
    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:585,1
    - Dst: Botan::Sodium::crypto_secretbox_xsalsa20poly1305
      Src: /src/botan/src/tests/test_sodium.cpp:586,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:587,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:587,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:587,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:587,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:587,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:589,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:592,1
    - Dst: Botan::Sodium::crypto_secretbox_xsalsa20poly1305_open
      Src: /src/botan/src/tests/test_sodium.cpp:593,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:594,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:594,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:594,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:594,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:594,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 599
    functionName: Botan_Tests::Sodium_API_Tests::secretbox_xsalsa20poly1305
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 2
    functionsReached:
    - std::vector::data
    - Botan::Sodium::crypto_secretbox_xsalsa20poly1305_open
    - Botan::Sodium::crypto_secretbox_xsalsa20poly1305
    - Test::Result::test_rc_ok
    - Test::Result::test_eq
    - 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:610,1
    - Dst: Botan::Sodium::crypto_secretbox_detached
      Src: /src/botan/src/tests/test_sodium.cpp:611,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:612,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:612,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:612,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:612,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:612,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:612,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:614,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:615,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:617,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:619,1
    - Dst: Botan::Sodium::crypto_secretbox_open_detached
      Src: /src/botan/src/tests/test_sodium.cpp:620,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:621,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:621,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:621,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:621,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:621,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:621,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 601
    functionDepth: 1
    functionLinenumber: 601
    functionLinenumberEnd: 626
    functionName: Botan_Tests::Sodium_API_Tests::secretbox_xsalsa20poly1305_detached
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 2
    functionsReached:
    - Botan::Sodium::crypto_secretbox_detached
    - std::vector::data
    - Test::Result::test_rc_ok
    - Test::Result::test_eq
    - std::vector::size
    - Botan::Sodium::crypto_secretbox_open_detached
    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:635,1
    - Dst: Botan::Sodium::crypto_sign_ed25519_seed_keypair
      Src: /src/botan/src/tests/test_sodium.cpp:636,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:636,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:636,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:636,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:638,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:639,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:647,1
    - Dst: Botan::Sodium::crypto_sign_ed25519_detached
      Src: /src/botan/src/tests/test_sodium.cpp:649,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:649,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:649,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:649,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:649,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_sodium.cpp:650,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:652,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_sodium.cpp:657,1
    - Dst: Botan::Sodium::crypto_sign_ed25519_verify_detached
      Src: /src/botan/src/tests/test_sodium.cpp:659,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:659,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:659,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:659,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:659,1
    - Dst: Test::Result::test_rc_fail
      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:665,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:665,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:665,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:665,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 628
    functionDepth: 1
    functionLinenumber: 628
    functionLinenumberEnd: 668
    functionName: Botan_Tests::Sodium_API_Tests::sign_ed25519
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 2
    functionsReached:
    - std::vector::data
    - Test::Result::test_rc_fail
    - Test::Result::test_rc_ok
    - Botan::Sodium::crypto_sign_ed25519_seed_keypair
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::Sodium::crypto_sign_ed25519_detached
    - std::vector::size
    - Botan::Sodium::crypto_sign_ed25519_verify_detached
    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:674,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:675,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:677,1
    - Dst: Botan::Sodium::crypto_stream_salsa20
      Src: /src/botan/src/tests/test_sodium.cpp:680,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:680,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:680,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:680,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:680,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:681,1
    - Dst: Botan::Sodium::crypto_stream_salsa20_xor
      Src: /src/botan/src/tests/test_sodium.cpp:684,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: 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_eq
      Src: /src/botan/src/tests/test_sodium.cpp:686,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_sodium.cpp:686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 689
    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::data
    - Botan::Sodium::crypto_stream_salsa20
    - Test::Result::test_eq
    - std::vector<uint8_t>
    - 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:695,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:696,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:698,1
    - Dst: Botan::Sodium::crypto_stream_xsalsa20
      Src: /src/botan/src/tests/test_sodium.cpp:701,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:701,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:701,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:701,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:701,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:702,1
    - Dst: Botan::Sodium::crypto_stream_xsalsa20_xor
      Src: /src/botan/src/tests/test_sodium.cpp:705,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: 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_eq
      Src: /src/botan/src/tests/test_sodium.cpp:707,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_sodium.cpp:707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 691
    functionDepth: 1
    functionLinenumber: 691
    functionLinenumberEnd: 710
    functionName: Botan_Tests::Sodium_API_Tests::stream_xsalsa20
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 2
    functionsReached:
    - Botan::hex_decode
    - Botan::Sodium::crypto_stream_xsalsa20
    - std::vector::data
    - Test::Result::test_eq
    - Botan::Sodium::crypto_stream_xsalsa20_xor
    - std::vector<uint8_t>
    - 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:716,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:717,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:719,1
    - Dst: Botan::Sodium::crypto_stream_chacha20
      Src: /src/botan/src/tests/test_sodium.cpp:722,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:722,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:722,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:722,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:722,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:723,1
    - Dst: Botan::Sodium::crypto_stream_chacha20_xor
      Src: /src/botan/src/tests/test_sodium.cpp:726,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: 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_eq
      Src: /src/botan/src/tests/test_sodium.cpp:728,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_sodium.cpp:728,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 712
    functionDepth: 1
    functionLinenumber: 712
    functionLinenumberEnd: 731
    functionName: Botan_Tests::Sodium_API_Tests::stream_chacha20
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 2
    functionsReached:
    - Botan::hex_decode
    - Botan::Sodium::crypto_stream_chacha20_xor
    - std::vector::data
    - Botan::Sodium::crypto_stream_chacha20
    - Test::Result::test_eq
    - std::vector<uint8_t>
    - 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:737,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:738,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:740,1
    - Dst: Botan::Sodium::crypto_stream_chacha20_ietf
      Src: /src/botan/src/tests/test_sodium.cpp:743,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:743,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:743,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:743,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:743,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:744,1
    - Dst: Botan::Sodium::crypto_stream_chacha20_ietf_xor
      Src: /src/botan/src/tests/test_sodium.cpp:747,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: 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_eq
      Src: /src/botan/src/tests/test_sodium.cpp:749,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_sodium.cpp:749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 752
    functionName: Botan_Tests::Sodium_API_Tests::stream_chacha20_ietf
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 2
    functionsReached:
    - Botan::hex_decode
    - Botan::Sodium::crypto_stream_chacha20_ietf_xor
    - std::vector::data
    - Test::Result::test_eq
    - std::vector<uint8_t>
    - std::vector::size
    - Botan::Sodium::crypto_stream_chacha20_ietf
    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:758,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:759,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sodium.cpp:761,1
    - Dst: Botan::Sodium::crypto_stream_xchacha20
      Src: /src/botan/src/tests/test_sodium.cpp:764,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:764,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sodium.cpp:764,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:764,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sodium.cpp:764,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_sodium.cpp:765,1
    - Dst: Botan::Sodium::crypto_stream_xchacha20_xor
      Src: /src/botan/src/tests/test_sodium.cpp:768,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: 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_eq
      Src: /src/botan/src/tests/test_sodium.cpp:770,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_sodium.cpp:770,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 754
    functionDepth: 1
    functionLinenumber: 754
    functionLinenumberEnd: 773
    functionName: Botan_Tests::Sodium_API_Tests::stream_xchacha20
    functionSourceFile: /src/botan/src/tests/test_sodium.cpp
    functionUses: 2
    functionsReached:
    - Botan::hex_decode
    - std::vector::data
    - Test::Result::test_eq
    - Botan::Sodium::crypto_stream_xchacha20_xor
    - std::vector<uint8_t>
    - Botan::Sodium::crypto_stream_xchacha20
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result stream_xchacha20()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/tests/test_cmce.cpp:35,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_cmce.cpp:35,1
    - Dst: degree
      Src: /src/botan/src/tests/test_cmce.cpp:35,1
    - Dst: degree
      Src: /src/botan/src/tests/test_cmce.cpp:36,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_cmce.cpp:37,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_cmce.cpp:37,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/test_cmce.cpp:37,1
    - Dst: degree
      Src: /src/botan/src/tests/test_cmce.cpp:37,1
    - Dst: transform
      Src: /src/botan/src/tests/test_cmce.cpp:40,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_cmce.cpp:40,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_cmce.cpp:40,1
    - Dst: std::back_inserter
      Src: /src/botan/src/tests/test_cmce.cpp:40,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: 0
    EdgeCount: 0
    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: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 44
    functionName: Botan_Tests::create_element_from_bytes
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - Botan::Classic_McEliece_Polynomial
    - std::vector::begin
    - std::span<const uint8_t>::data
    - degree
    - std::span<const uint8_t>::size
    - Botan::load_le<uint16_t>
    - std::vector::data
    - BOTAN_ARG_CHECK
    - std::back_inserter
    - std::vector::end
    - transform
    - Botan::CmceGfElem
    - poly_f
    - Botan::Classic_McEliece_GF
    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::Test::run_long_tests
    - Botan_Tests::get_test_instances_min
    - 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:
    - Botan::Classic_McEliece_Parameters::create
    - auto::end
    - auto::parameter_set
    - std::find
    - auto::begin
    - Botan_Tests::instances_to_test
    linkageType: ''
    returnType: bool
    signature: bool skip_cmce_test(const std::string& params_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/tests/test_cmce.cpp:35,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_cmce.cpp:35,1
    - Dst: degree
      Src: /src/botan/src/tests/test_cmce.cpp:35,1
    - Dst: degree
      Src: /src/botan/src/tests/test_cmce.cpp:36,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_cmce.cpp:37,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_cmce.cpp:37,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/test_cmce.cpp:37,1
    - Dst: degree
      Src: /src/botan/src/tests/test_cmce.cpp:37,1
    - Dst: transform
      Src: /src/botan/src/tests/test_cmce.cpp:40,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_cmce.cpp:40,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_cmce.cpp:40,1
    - Dst: std::back_inserter
      Src: /src/botan/src/tests/test_cmce.cpp:40,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: 0
    EdgeCount: 0
    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: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 44
    functionName: Botan_Tests::create_element_from_bytes
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - Botan::Classic_McEliece_Polynomial
    - std::vector::begin
    - std::span<const uint8_t>::data
    - degree
    - std::span<const uint8_t>::size
    - Botan::load_le<uint16_t>
    - std::vector::data
    - BOTAN_ARG_CHECK
    - std::back_inserter
    - std::vector::end
    - transform
    - Botan::CmceGfElem
    - poly_f
    - Botan::Classic_McEliece_GF
    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::Test::run_long_tests
    - Botan_Tests::get_test_instances_min
    - 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:
    - Botan::Classic_McEliece_Parameters::create
    - auto::end
    - auto::parameter_set
    - std::find
    - auto::begin
    - Botan_Tests::instances_to_test
    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:97,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_cmce.cpp:100,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_cmce.cpp:102,1
    - Dst: auto::n
      Src: /src/botan/src/tests/test_cmce.cpp:107,1
    - Dst: auto::sigma2
      Src: /src/botan/src/tests/test_cmce.cpp:107,1
    - Dst: auto::q
      Src: /src/botan/src/tests/test_cmce.cpp:107,1
    - Dst: auto::sigma1
      Src: /src/botan/src/tests/test_cmce.cpp:107,1
    - Dst: auto::t
      Src: /src/botan/src/tests/test_cmce.cpp:107,1
    - Dst: auto::ell
      Src: /src/botan/src/tests/test_cmce.cpp:107,1
    - Dst: auto::prg
      Src: /src/botan/src/tests/test_cmce.cpp:109,1
    - Dst: auto::erase
      Src: /src/botan/src/tests/test_cmce.cpp:110,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_cmce.cpp:110,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_cmce.cpp:110,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_cmce.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 115
    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::prg
    - Botan::Classic_McEliece_Parameters::create
    - auto::n
    - auto::erase
    - auto::ell
    - auto::end
    - Test::Result::test_is_eq
    - auto::sigma2
    - auto::t
    - auto::q
    - auto::begin
    - auto::sigma1
    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:121,1
    - Dst: Botan::CmceIrreducibleBits
      Src: /src/botan/src/tests/test_cmce.cpp:124,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_cmce.cpp:124,1
    - Dst: Botan::Classic_McEliece_Minimal_Polynomial::from_bytes
      Src: /src/botan/src/tests/test_cmce.cpp:128,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_cmce.cpp:129,1
    - Dst: auto::poly_f
      Src: /src/botan/src/tests/test_cmce.cpp:132,1
    - Dst: auto::poly_ring
      Src: /src/botan/src/tests/test_cmce.cpp:134,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_cmce.cpp:135,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_cmce.cpp:135,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_cmce.cpp:136,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_cmce.cpp:136,1
    - Dst: auto::coef
      Src: /src/botan/src/tests/test_cmce.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 139
    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_Parameters::create
    - auto::poly_f
    - auto::has_value
    - Test::Result::test_is_eq
    - auto::poly_ring
    - Botan::CmceIrreducibleBits
    - auto::value
    - auto::coef
    - Botan::Classic_McEliece_Minimal_Polynomial::from_bytes
    - Test::Result::confirm
    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:145,1
    - Dst: auto::gf
      Src: /src/botan/src/tests/test_cmce.cpp:147,1
    - Dst: Botan::CmceGfElem
      Src: /src/botan/src/tests/test_cmce.cpp:147,1
    - Dst: auto::inv
      Src: /src/botan/src/tests/test_cmce.cpp:148,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_cmce.cpp:149,1
    - Dst: elem
      Src: /src/botan/src/tests/test_cmce.cpp:149,1
    - Dst: Botan::CmceGfElem
      Src: /src/botan/src/tests/test_cmce.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 152
    functionName: Botan_Tests::CMCE_Utility_Tests::gf_inv_test
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - Botan::Classic_McEliece_Parameters::create
    - auto::inv
    - Test::Result::test_is_eq
    - auto::gf
    - Botan::CmceGfElem
    - elem
    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:158,1
    - Dst: auto::poly_ring
      Src: /src/botan/src/tests/test_cmce.cpp:160,1
    - Dst: create_element_from_bytes
      Src: /src/botan/src/tests/test_cmce.cpp:162,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_cmce.cpp:163,1
    - Dst: create_element_from_bytes
      Src: /src/botan/src/tests/test_cmce.cpp:168,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_cmce.cpp:169,1
    - Dst: create_element_from_bytes
      Src: /src/botan/src/tests/test_cmce.cpp:174,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_cmce.cpp:175,1
    - Dst: multiply
      Src: /src/botan/src/tests/test_cmce.cpp:180,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_cmce.cpp:181,1
    - Dst: auto::coef
      Src: /src/botan/src/tests/test_cmce.cpp:181,1
    - Dst: auto::coef
      Src: /src/botan/src/tests/test_cmce.cpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 184
    functionName: Botan_Tests::CMCE_Utility_Tests::gf_poly_mul_test
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - multiply
    - Botan::hex_decode
    - Botan::Classic_McEliece_Parameters::create
    - Test::Result::test_is_eq
    - create_element_from_bytes
    - auto::poly_ring
    - auto::coef
    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:191,1
    - Dst: begin
      Src: /src/botan/src/tests/test_cmce.cpp:191,1
    - Dst: end
      Src: /src/botan/src/tests/test_cmce.cpp:191,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_cmce.cpp:191,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_cmce.cpp:205,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_cmce.cpp:207,1
    - Dst: Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
      Src: /src/botan/src/tests/test_cmce.cpp:210,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_cmce.cpp:211,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_cmce.cpp:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 214
    functionName: Botan_Tests::CMCE_Utility_Tests::rigged_rng_encryption_test
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Test::Result::test_failure
    - Botan::create_private_key
    - static_cast<uint8_t>
    - std::fill
    - end
    - begin
    - Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
    - auto::encrypt
    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:191,1
    - Dst: std::span<uint8_t>::begin
      Src: /src/botan/src/tests/test_cmce.cpp:191,1
    - Dst: std::span<uint8_t>::end
      Src: /src/botan/src/tests/test_cmce.cpp:191,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_cmce.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 192
    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
    - static_cast<uint8_t>
    - std::span<uint8_t>::end
    - std::fill
    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: 194
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 194
    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: 196
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 196
    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: 198
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 198
    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: 200
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 200
    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:217,1
    - Dst: Botan_Tests::CMCE_Utility_Tests::irreducible_poly_gen_test
      Src: /src/botan/src/tests/test_cmce.cpp:218,1
    - Dst: Botan_Tests::CMCE_Utility_Tests::gf_inv_test
      Src: /src/botan/src/tests/test_cmce.cpp:219,1
    - Dst: Botan_Tests::CMCE_Utility_Tests::gf_poly_mul_test
      Src: /src/botan/src/tests/test_cmce.cpp:220,1
    - Dst: Botan_Tests::CMCE_Utility_Tests::rigged_rng_encryption_test
      Src: /src/botan/src/tests/test_cmce.cpp:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 222
    functionName: Botan_Tests::CMCE_Utility_Tests::run
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::CMCE_Utility_Tests::gf_poly_mul_test
    - Botan_Tests::CMCE_Utility_Tests::expand_seed_test
    - Botan_Tests::CMCE_Utility_Tests::gf_inv_test
    - Botan_Tests::CMCE_Utility_Tests::irreducible_poly_gen_test
    - Botan_Tests::CMCE_Utility_Tests::rigged_rng_encryption_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: 229
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 229
    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:234,1
    - Dst: Botan::lock
      Src: /src/botan/src/tests/test_cmce.cpp:236,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: Botan::lock
      Src: /src/botan/src/tests/test_cmce.cpp:238,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_cmce.cpp:238,1
    - Dst: std::make_unique<CTR_DRBG_AES256>
      Src: /src/botan/src/tests/test_cmce.cpp:240,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_cmce.cpp:242,1
    - Dst: Botan::PK_KEM_Decryptor::PK_KEM_Decryptor
      Src: /src/botan/src/tests/test_cmce.cpp:245,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_cmce.cpp:246,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_cmce.cpp:248,1
    - Dst: auto::is_pc
      Src: /src/botan/src/tests/test_cmce.cpp:250,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_cmce.cpp:254,1
    - Dst: Botan::lock
      Src: /src/botan/src/tests/test_cmce.cpp:255,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_cmce.cpp:255,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_cmce.cpp:256,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_cmce.cpp:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' params_str'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 262
    functionName: Botan_Tests::CMCE_Invalid_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - auto::is_pc
    - Botan::Classic_McEliece_Parameters::create
    - get_opt_bin
    - std::make_unique<CTR_DRBG_AES256>
    - Botan::create_private_key
    - Test::Result::test_is_eq
    - Botan::lock
    - auto::decrypt
    - Botan::PK_KEM_Decryptor::PK_KEM_Decryptor
    - get_req_bin
    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: transform
      Src: /src/botan/src/tests/test_cmce.cpp:272,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_cmce.cpp:272,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_cmce.cpp:272,1
    - Dst: std::back_inserter
      Src: /src/botan/src/tests/test_cmce.cpp:272,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_cmce.cpp:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 277
    functionName: Botan_Tests::CMCE_Generic_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - get_test_instances_min
    - auto::end
    - to_string
    - std::back_inserter
    - transform
    - auto::begin
    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:282,1
    - Dst: Botan::Classic_McEliece_Parameter_Set::from_string
      Src: /src/botan/src/tests/test_cmce.cpp:283,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: 284
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 284
    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: 286
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 286
    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: 291
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 291
    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:295,1
    - Dst: Botan::Classic_McEliece_Parameter_Set::from_string
      Src: /src/botan/src/tests/test_cmce.cpp:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' header'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 296
    functionName: Botan_Tests::Classic_McEliece_KAT_Tests::get_params
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - Botan::Classic_McEliece_Parameter_Set::from_string
    - Botan::Classic_McEliece_Parameters::create
    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:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' alg_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 298
    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:304,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_cmce.cpp:304,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/tests/test_cmce.cpp:306,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_cmce.cpp:307,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: 308
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 308
    functionName: Botan_Tests::Classic_McEliece_KAT_Tests::map_value
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - auto::process
    - Botan::HashFunction::create_or_throw
    - std::span<const uint8_t>::begin
    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:311,1
    - Dst: Botan::seed_len
      Src: /src/botan/src/tests/test_cmce.cpp:311,1
    - Dst: Fixed_Output_RNG
      Src: /src/botan/src/tests/test_cmce.cpp:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 313
    functionName: Botan_Tests::Classic_McEliece_KAT_Tests::rng_for_keygen
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - random_vec
    - Botan::seed_len
    - Fixed_Output_RNG
    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:320,1
    - Dst: auto::sigma1
      Src: /src/botan/src/tests/test_cmce.cpp:322,1
    - Dst: auto::tau
      Src: /src/botan/src/tests/test_cmce.cpp:322,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_cmce.cpp:326,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_cmce.cpp:327,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_cmce.cpp:327,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_cmce.cpp:327,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_cmce.cpp:327,1
    - Dst: Fixed_Output_RNG
      Src: /src/botan/src/tests/test_cmce.cpp:330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' alg_name'
    - ' rng'
    argTypes:
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 315
    functionDepth: 2
    functionLinenumber: 315
    functionLinenumberEnd: 331
    functionName: Botan_Tests::Classic_McEliece_KAT_Tests::rng_for_encapsulation
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Classic_McEliece_KAT_Tests::get_params
    - auto::end
    - Fixed_Output_RNG
    - std::vector::insert
    - std::vector::end
    - random_vec
    - auto::tau
    - auto::begin
    - auto::sigma1
    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: 335
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 335
    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*/, const
      Fixed_Output_RNG&, Test::Result&) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/tests/test_cmce.cpp:35,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_cmce.cpp:35,1
    - Dst: degree
      Src: /src/botan/src/tests/test_cmce.cpp:35,1
    - Dst: degree
      Src: /src/botan/src/tests/test_cmce.cpp:36,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_cmce.cpp:37,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_cmce.cpp:37,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/test_cmce.cpp:37,1
    - Dst: degree
      Src: /src/botan/src/tests/test_cmce.cpp:37,1
    - Dst: transform
      Src: /src/botan/src/tests/test_cmce.cpp:40,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_cmce.cpp:40,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_cmce.cpp:40,1
    - Dst: std::back_inserter
      Src: /src/botan/src/tests/test_cmce.cpp:40,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: 0
    EdgeCount: 0
    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: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 44
    functionName: Botan_Tests::create_element_from_bytes
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - Botan::Classic_McEliece_Polynomial
    - std::vector::begin
    - std::span<const uint8_t>::data
    - degree
    - std::span<const uint8_t>::size
    - Botan::load_le<uint16_t>
    - std::vector::data
    - BOTAN_ARG_CHECK
    - std::back_inserter
    - std::vector::end
    - transform
    - Botan::CmceGfElem
    - poly_f
    - Botan::Classic_McEliece_GF
    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::Test::run_long_tests
    - Botan_Tests::get_test_instances_min
    - 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:
    - Botan::Classic_McEliece_Parameters::create
    - auto::end
    - auto::parameter_set
    - std::find
    - auto::begin
    - Botan_Tests::instances_to_test
    linkageType: ''
    returnType: bool
    signature: bool skip_cmce_test(const std::string& params_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/tests/test_cmce.cpp:35,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_cmce.cpp:35,1
    - Dst: degree
      Src: /src/botan/src/tests/test_cmce.cpp:35,1
    - Dst: degree
      Src: /src/botan/src/tests/test_cmce.cpp:36,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_cmce.cpp:37,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_cmce.cpp:37,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/test_cmce.cpp:37,1
    - Dst: degree
      Src: /src/botan/src/tests/test_cmce.cpp:37,1
    - Dst: transform
      Src: /src/botan/src/tests/test_cmce.cpp:40,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_cmce.cpp:40,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_cmce.cpp:40,1
    - Dst: std::back_inserter
      Src: /src/botan/src/tests/test_cmce.cpp:40,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: 0
    EdgeCount: 0
    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: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 44
    functionName: Botan_Tests::create_element_from_bytes
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - Botan::Classic_McEliece_Polynomial
    - std::vector::begin
    - std::span<const uint8_t>::data
    - degree
    - std::span<const uint8_t>::size
    - Botan::load_le<uint16_t>
    - std::vector::data
    - BOTAN_ARG_CHECK
    - std::back_inserter
    - std::vector::end
    - transform
    - Botan::CmceGfElem
    - poly_f
    - Botan::Classic_McEliece_GF
    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::Test::run_long_tests
    - Botan_Tests::get_test_instances_min
    - 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:
    - Botan::Classic_McEliece_Parameters::create
    - auto::end
    - auto::parameter_set
    - std::find
    - auto::begin
    - Botan_Tests::instances_to_test
    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:97,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_cmce.cpp:100,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_cmce.cpp:102,1
    - Dst: auto::n
      Src: /src/botan/src/tests/test_cmce.cpp:107,1
    - Dst: auto::sigma2
      Src: /src/botan/src/tests/test_cmce.cpp:107,1
    - Dst: auto::q
      Src: /src/botan/src/tests/test_cmce.cpp:107,1
    - Dst: auto::sigma1
      Src: /src/botan/src/tests/test_cmce.cpp:107,1
    - Dst: auto::t
      Src: /src/botan/src/tests/test_cmce.cpp:107,1
    - Dst: auto::ell
      Src: /src/botan/src/tests/test_cmce.cpp:107,1
    - Dst: auto::prg
      Src: /src/botan/src/tests/test_cmce.cpp:109,1
    - Dst: auto::erase
      Src: /src/botan/src/tests/test_cmce.cpp:110,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_cmce.cpp:110,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_cmce.cpp:110,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_cmce.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 115
    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::prg
    - Botan::Classic_McEliece_Parameters::create
    - auto::n
    - auto::erase
    - auto::ell
    - auto::end
    - Test::Result::test_is_eq
    - auto::sigma2
    - auto::t
    - auto::q
    - auto::begin
    - auto::sigma1
    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:121,1
    - Dst: Botan::CmceIrreducibleBits
      Src: /src/botan/src/tests/test_cmce.cpp:124,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_cmce.cpp:124,1
    - Dst: Botan::Classic_McEliece_Minimal_Polynomial::from_bytes
      Src: /src/botan/src/tests/test_cmce.cpp:128,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_cmce.cpp:129,1
    - Dst: auto::poly_f
      Src: /src/botan/src/tests/test_cmce.cpp:132,1
    - Dst: auto::poly_ring
      Src: /src/botan/src/tests/test_cmce.cpp:134,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_cmce.cpp:135,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_cmce.cpp:135,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_cmce.cpp:136,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_cmce.cpp:136,1
    - Dst: auto::coef
      Src: /src/botan/src/tests/test_cmce.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 139
    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_Parameters::create
    - auto::poly_f
    - auto::has_value
    - Test::Result::test_is_eq
    - auto::poly_ring
    - Botan::CmceIrreducibleBits
    - auto::value
    - auto::coef
    - Botan::Classic_McEliece_Minimal_Polynomial::from_bytes
    - Test::Result::confirm
    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:145,1
    - Dst: auto::gf
      Src: /src/botan/src/tests/test_cmce.cpp:147,1
    - Dst: Botan::CmceGfElem
      Src: /src/botan/src/tests/test_cmce.cpp:147,1
    - Dst: auto::inv
      Src: /src/botan/src/tests/test_cmce.cpp:148,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_cmce.cpp:149,1
    - Dst: elem
      Src: /src/botan/src/tests/test_cmce.cpp:149,1
    - Dst: Botan::CmceGfElem
      Src: /src/botan/src/tests/test_cmce.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 152
    functionName: Botan_Tests::CMCE_Utility_Tests::gf_inv_test
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 1
    functionsReached:
    - Botan::Classic_McEliece_Parameters::create
    - auto::inv
    - Test::Result::test_is_eq
    - auto::gf
    - Botan::CmceGfElem
    - elem
    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:158,1
    - Dst: auto::poly_ring
      Src: /src/botan/src/tests/test_cmce.cpp:160,1
    - Dst: create_element_from_bytes
      Src: /src/botan/src/tests/test_cmce.cpp:162,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_cmce.cpp:163,1
    - Dst: create_element_from_bytes
      Src: /src/botan/src/tests/test_cmce.cpp:168,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_cmce.cpp:169,1
    - Dst: create_element_from_bytes
      Src: /src/botan/src/tests/test_cmce.cpp:174,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_cmce.cpp:175,1
    - Dst: multiply
      Src: /src/botan/src/tests/test_cmce.cpp:180,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_cmce.cpp:181,1
    - Dst: auto::coef
      Src: /src/botan/src/tests/test_cmce.cpp:181,1
    - Dst: auto::coef
      Src: /src/botan/src/tests/test_cmce.cpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 184
    functionName: Botan_Tests::CMCE_Utility_Tests::gf_poly_mul_test
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 1
    functionsReached:
    - multiply
    - Botan::hex_decode
    - Botan::Classic_McEliece_Parameters::create
    - Test::Result::test_is_eq
    - create_element_from_bytes
    - auto::poly_ring
    - auto::coef
    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:191,1
    - Dst: begin
      Src: /src/botan/src/tests/test_cmce.cpp:191,1
    - Dst: end
      Src: /src/botan/src/tests/test_cmce.cpp:191,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_cmce.cpp:191,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_cmce.cpp:205,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_cmce.cpp:207,1
    - Dst: Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
      Src: /src/botan/src/tests/test_cmce.cpp:210,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_cmce.cpp:211,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_cmce.cpp:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 214
    functionName: Botan_Tests::CMCE_Utility_Tests::rigged_rng_encryption_test
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_throws
    - Test::Result::test_failure
    - Botan::create_private_key
    - static_cast<uint8_t>
    - std::fill
    - end
    - begin
    - Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
    - auto::encrypt
    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:191,1
    - Dst: std::span<uint8_t>::begin
      Src: /src/botan/src/tests/test_cmce.cpp:191,1
    - Dst: std::span<uint8_t>::end
      Src: /src/botan/src/tests/test_cmce.cpp:191,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_cmce.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 192
    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
    - static_cast<uint8_t>
    - std::span<uint8_t>::end
    - std::fill
    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: 194
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 194
    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: 196
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 196
    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: 198
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 198
    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: 200
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 200
    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:217,1
    - Dst: Botan_Tests::CMCE_Utility_Tests::irreducible_poly_gen_test
      Src: /src/botan/src/tests/test_cmce.cpp:218,1
    - Dst: Botan_Tests::CMCE_Utility_Tests::gf_inv_test
      Src: /src/botan/src/tests/test_cmce.cpp:219,1
    - Dst: Botan_Tests::CMCE_Utility_Tests::gf_poly_mul_test
      Src: /src/botan/src/tests/test_cmce.cpp:220,1
    - Dst: Botan_Tests::CMCE_Utility_Tests::rigged_rng_encryption_test
      Src: /src/botan/src/tests/test_cmce.cpp:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 222
    functionName: Botan_Tests::CMCE_Utility_Tests::run
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::CMCE_Utility_Tests::gf_poly_mul_test
    - Botan_Tests::CMCE_Utility_Tests::expand_seed_test
    - Botan_Tests::CMCE_Utility_Tests::gf_inv_test
    - Botan_Tests::CMCE_Utility_Tests::irreducible_poly_gen_test
    - Botan_Tests::CMCE_Utility_Tests::rigged_rng_encryption_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: 229
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 229
    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:234,1
    - Dst: Botan::lock
      Src: /src/botan/src/tests/test_cmce.cpp:236,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: Botan::lock
      Src: /src/botan/src/tests/test_cmce.cpp:238,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_cmce.cpp:238,1
    - Dst: std::make_unique<CTR_DRBG_AES256>
      Src: /src/botan/src/tests/test_cmce.cpp:240,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_cmce.cpp:242,1
    - Dst: Botan::PK_KEM_Decryptor::PK_KEM_Decryptor
      Src: /src/botan/src/tests/test_cmce.cpp:245,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_cmce.cpp:246,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_cmce.cpp:248,1
    - Dst: auto::is_pc
      Src: /src/botan/src/tests/test_cmce.cpp:250,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_cmce.cpp:254,1
    - Dst: Botan::lock
      Src: /src/botan/src/tests/test_cmce.cpp:255,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_cmce.cpp:255,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_cmce.cpp:256,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_cmce.cpp:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' params_str'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 262
    functionName: Botan_Tests::CMCE_Invalid_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - auto::is_pc
    - Botan::Classic_McEliece_Parameters::create
    - get_opt_bin
    - std::make_unique<CTR_DRBG_AES256>
    - Botan::create_private_key
    - Test::Result::test_is_eq
    - Botan::lock
    - auto::decrypt
    - Botan::PK_KEM_Decryptor::PK_KEM_Decryptor
    - get_req_bin
    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: transform
      Src: /src/botan/src/tests/test_cmce.cpp:272,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_cmce.cpp:272,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_cmce.cpp:272,1
    - Dst: std::back_inserter
      Src: /src/botan/src/tests/test_cmce.cpp:272,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_cmce.cpp:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 277
    functionName: Botan_Tests::CMCE_Generic_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - get_test_instances_min
    - auto::end
    - to_string
    - std::back_inserter
    - transform
    - auto::begin
    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:282,1
    - Dst: Botan::Classic_McEliece_Parameter_Set::from_string
      Src: /src/botan/src/tests/test_cmce.cpp:283,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: 284
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 284
    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: 286
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 286
    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: 291
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 291
    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:295,1
    - Dst: Botan::Classic_McEliece_Parameter_Set::from_string
      Src: /src/botan/src/tests/test_cmce.cpp:295,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' header'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 296
    functionName: Botan_Tests::Classic_McEliece_KAT_Tests::get_params
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 1
    functionsReached:
    - Botan::Classic_McEliece_Parameter_Set::from_string
    - Botan::Classic_McEliece_Parameters::create
    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:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' alg_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 298
    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:304,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_cmce.cpp:304,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/tests/test_cmce.cpp:306,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_cmce.cpp:307,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: 308
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 308
    functionName: Botan_Tests::Classic_McEliece_KAT_Tests::map_value
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - auto::process
    - Botan::HashFunction::create_or_throw
    - std::span<const uint8_t>::begin
    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:311,1
    - Dst: Botan::seed_len
      Src: /src/botan/src/tests/test_cmce.cpp:311,1
    - Dst: Fixed_Output_RNG
      Src: /src/botan/src/tests/test_cmce.cpp:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 313
    functionName: Botan_Tests::Classic_McEliece_KAT_Tests::rng_for_keygen
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - random_vec
    - Botan::seed_len
    - Fixed_Output_RNG
    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:320,1
    - Dst: auto::sigma1
      Src: /src/botan/src/tests/test_cmce.cpp:322,1
    - Dst: auto::tau
      Src: /src/botan/src/tests/test_cmce.cpp:322,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_cmce.cpp:326,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_cmce.cpp:327,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_cmce.cpp:327,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_cmce.cpp:327,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_cmce.cpp:327,1
    - Dst: Fixed_Output_RNG
      Src: /src/botan/src/tests/test_cmce.cpp:330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' alg_name'
    - ' rng'
    argTypes:
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 315
    functionDepth: 2
    functionLinenumber: 315
    functionLinenumberEnd: 331
    functionName: Botan_Tests::Classic_McEliece_KAT_Tests::rng_for_encapsulation
    functionSourceFile: /src/botan/src/tests/test_cmce.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Classic_McEliece_KAT_Tests::get_params
    - auto::end
    - Fixed_Output_RNG
    - std::vector::insert
    - std::vector::end
    - random_vec
    - auto::tau
    - auto::begin
    - auto::sigma1
    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: 335
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 335
    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*/, const
      Fixed_Output_RNG&, Test::Result&) const final
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    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:33,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_xmss.cpp:34,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 44
    functionName: Botan_Tests::XMSS_Signature_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::run_long_tests
    - get_req_str
    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:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    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:49,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_xmss.cpp:50,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_xmss.cpp:50,1
    - Dst: std::make_unique<Botan::XMSS_PrivateKey>
      Src: /src/botan/src/tests/test_xmss.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: Botan_Tests::XMSS_Signature_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - std::vector::begin
    - std::make_unique<Botan::XMSS_PrivateKey>
    - std::vector::end
    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: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    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:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    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:64,1
    - Dst: std::make_unique<Botan::XMSS_PublicKey>
      Src: /src/botan/src/tests/test_xmss.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: Botan_Tests::XMSS_Signature_Verify_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - std::make_unique<Botan::XMSS_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: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    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:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    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:78,1
    - Dst: std::make_unique<Botan::XMSS_PublicKey>
      Src: /src/botan/src/tests/test_xmss.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: Botan_Tests::XMSS_Signature_Verify_Invalid_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - std::make_unique<Botan::XMSS_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: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    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: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    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:93,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_xmss.cpp:93,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_xmss.cpp:93,1
    - Dst: Botan::XMSS_Parameters::XMSS_Parameters
      Src: /src/botan/src/tests/test_xmss.cpp:94,1
    - Dst: Botan::BufferSlicer::copy_as_secure_vector
      Src: /src/botan/src/tests/test_xmss.cpp:95,1
    - Dst: auto::element_size
      Src: /src/botan/src/tests/test_xmss.cpp:95,1
    - Dst: Botan::BufferSlicer::copy_as_secure_vector
      Src: /src/botan/src/tests/test_xmss.cpp:96,1
    - Dst: auto::element_size
      Src: /src/botan/src/tests/test_xmss.cpp:96,1
    - Dst: std::make_unique<Botan::XMSS_PublicKey>
      Src: /src/botan/src/tests/test_xmss.cpp:98,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_xmss.cpp:98,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_xmss.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - raw_pk
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 99
    functionName: Botan_Tests::XMSS_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::BufferSlicer::take
    - Botan::BufferSlicer::copy_as_secure_vector
    - Botan::XMSS_Parameters::xmss_algorithm_t
    - auto::element_size
    - std::make_unique<Botan::XMSS_PublicKey>
    - Botan::XMSS_Parameters::XMSS_Parameters
    - Botan::load_be
    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: 110
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 110
    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:113,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_xmss.cpp:116,1
    - Dst: data
      Src: /src/botan/src/tests/test_xmss.cpp:116,1
    - Dst: size
      Src: /src/botan/src/tests/test_xmss.cpp:116,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_xmss.cpp:120,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:120,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_xmss.cpp:121,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:121,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: Botan::XMSS_Parameters::xmss_id_from_string
      Src: /src/botan/src/tests/test_xmss.cpp:124,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_xmss.cpp:124,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_xmss.cpp:127,1
    - Dst: Botan::XMSS_PrivateKey::raw_private_key
      Src: /src/botan/src/tests/test_xmss.cpp:127,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:127,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_xmss.cpp:128,1
    - Dst: Botan::XMSS_PrivateKey::raw_public_key
      Src: /src/botan/src/tests/test_xmss.cpp:128,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 131
    functionName: Botan_Tests::XMSS_Keygen_Reference_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - Fixed_Output_RNG::add_entropy
    - data
    - size
    - Botan::XMSS_PrivateKey::raw_private_key
    - Botan::XMSS_PrivateKey::raw_public_key
    - add_entropy
    - Test::Result::test_eq
    - get_req_bin
    - Botan::XMSS_Parameters::xmss_id_from_string
    - get_req_str
    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:134,1
    - Dst: Botan::XMSS_Parameters::XMSS_Parameters
      Src: /src/botan/src/tests/test_xmss.cpp:135,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_xmss.cpp:136,1
    - Dst: auto::hash_function_name
      Src: /src/botan/src/tests/test_xmss.cpp:136,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_xmss.cpp:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 139
    functionName: Botan_Tests::XMSS_Keygen_Reference_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::run_long_tests
    - get_req_str
    - auto::hash_function_name
    - Botan::HashFunction::create
    - Botan::XMSS_Parameters::XMSS_Parameters
    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:143,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_xmss.cpp:146,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_xmss.cpp:149,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_xmss.cpp:152,1
    - Dst: require
      Src: /src/botan/src/tests/test_xmss.cpp:155,1
    - Dst: Botan::XMSS_PrivateKey::remaining_operations
      Src: /src/botan/src/tests/test_xmss.cpp:155,1
    - Dst: sign_something
      Src: /src/botan/src/tests/test_xmss.cpp:157,1
    - Dst: require
      Src: /src/botan/src/tests/test_xmss.cpp:159,1
    - Dst: Botan::XMSS_PrivateKey::remaining_operations
      Src: /src/botan/src/tests/test_xmss.cpp:159,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_xmss.cpp:162,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_xmss.cpp:163,1
    - Dst: require
      Src: /src/botan/src/tests/test_xmss.cpp:170,1
    - Dst: Botan::XMSS_PrivateKey::remaining_operations
      Src: /src/botan/src/tests/test_xmss.cpp:170,1
    - Dst: sign_something
      Src: /src/botan/src/tests/test_xmss.cpp:172,1
    - Dst: require
      Src: /src/botan/src/tests/test_xmss.cpp:174,1
    - Dst: Botan::XMSS_PrivateKey::remaining_operations
      Src: /src/botan/src/tests/test_xmss.cpp:174,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_xmss.cpp:175,1
    - Dst: sign_something
      Src: /src/botan/src/tests/test_xmss.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 177
    functionName: Botan_Tests::xmss_statefulness
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - sign_something
    - Botan::hex_decode
    - Botan_Tests::CHECK
    - test_throws
    - require
    - Botan::PK_Signer::sign_message
    - Botan::XMSS_PrivateKey::remaining_operations
    - 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:180,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_xmss.cpp:186,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_xmss.cpp:192,1
    - Dst: Botan::XMSS_PrivateKey::XMSS_PrivateKey
      Src: /src/botan/src/tests/test_xmss.cpp:265,1
    - Dst: Botan::XMSS_PrivateKey::public_key
      Src: /src/botan/src/tests/test_xmss.cpp:266,1
    - Dst: Botan::XMSS_PublicKey::XMSS_PublicKey
      Src: /src/botan/src/tests/test_xmss.cpp:267,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_xmss.cpp:269,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_xmss.cpp:272,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_xmss.cpp:275,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_xmss.cpp:278,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_xmss.cpp:281,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_xmss.cpp:282,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_xmss.cpp:285,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_xmss.cpp:288,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_xmss.cpp:289,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_xmss.cpp:292,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_xmss.cpp:295,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_xmss.cpp:298,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_xmss.cpp:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 302
    functionName: Botan_Tests::xmss_legacy_private_key
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Botan::XMSS_PrivateKey::XMSS_PrivateKey
    - Botan_Tests::CHECK
    - Botan::XMSS_PrivateKey::public_key
    - Botan::PK_Verifier::verify_message
    - Botan::XMSS_PublicKey::XMSS_PublicKey
    - Botan::PK_Signer::sign_message
    - Botan_Tests::Test::new_rng
    - confirm
    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: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    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:33,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_xmss.cpp:34,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 44
    functionName: Botan_Tests::XMSS_Signature_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::run_long_tests
    - get_req_str
    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:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    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:49,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_xmss.cpp:50,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_xmss.cpp:50,1
    - Dst: std::make_unique<Botan::XMSS_PrivateKey>
      Src: /src/botan/src/tests/test_xmss.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: Botan_Tests::XMSS_Signature_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - std::vector::begin
    - std::make_unique<Botan::XMSS_PrivateKey>
    - std::vector::end
    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: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    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:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    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:64,1
    - Dst: std::make_unique<Botan::XMSS_PublicKey>
      Src: /src/botan/src/tests/test_xmss.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: Botan_Tests::XMSS_Signature_Verify_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - std::make_unique<Botan::XMSS_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: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    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:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    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:78,1
    - Dst: std::make_unique<Botan::XMSS_PublicKey>
      Src: /src/botan/src/tests/test_xmss.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: Botan_Tests::XMSS_Signature_Verify_Invalid_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - std::make_unique<Botan::XMSS_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: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    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: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    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:93,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_xmss.cpp:93,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_xmss.cpp:93,1
    - Dst: Botan::XMSS_Parameters::XMSS_Parameters
      Src: /src/botan/src/tests/test_xmss.cpp:94,1
    - Dst: Botan::BufferSlicer::copy_as_secure_vector
      Src: /src/botan/src/tests/test_xmss.cpp:95,1
    - Dst: auto::element_size
      Src: /src/botan/src/tests/test_xmss.cpp:95,1
    - Dst: Botan::BufferSlicer::copy_as_secure_vector
      Src: /src/botan/src/tests/test_xmss.cpp:96,1
    - Dst: auto::element_size
      Src: /src/botan/src/tests/test_xmss.cpp:96,1
    - Dst: std::make_unique<Botan::XMSS_PublicKey>
      Src: /src/botan/src/tests/test_xmss.cpp:98,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_xmss.cpp:98,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_xmss.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - raw_pk
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 99
    functionName: Botan_Tests::XMSS_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::BufferSlicer::take
    - Botan::BufferSlicer::copy_as_secure_vector
    - Botan::XMSS_Parameters::xmss_algorithm_t
    - auto::element_size
    - std::make_unique<Botan::XMSS_PublicKey>
    - Botan::XMSS_Parameters::XMSS_Parameters
    - Botan::load_be
    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: 110
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 110
    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:113,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_xmss.cpp:116,1
    - Dst: data
      Src: /src/botan/src/tests/test_xmss.cpp:116,1
    - Dst: size
      Src: /src/botan/src/tests/test_xmss.cpp:116,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_xmss.cpp:120,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:120,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_xmss.cpp:121,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:121,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: Botan::XMSS_Parameters::xmss_id_from_string
      Src: /src/botan/src/tests/test_xmss.cpp:124,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_xmss.cpp:124,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_xmss.cpp:127,1
    - Dst: Botan::XMSS_PrivateKey::raw_private_key
      Src: /src/botan/src/tests/test_xmss.cpp:127,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:127,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_xmss.cpp:128,1
    - Dst: Botan::XMSS_PrivateKey::raw_public_key
      Src: /src/botan/src/tests/test_xmss.cpp:128,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 131
    functionName: Botan_Tests::XMSS_Keygen_Reference_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - Fixed_Output_RNG::add_entropy
    - data
    - size
    - Botan::XMSS_PrivateKey::raw_private_key
    - Botan::XMSS_PrivateKey::raw_public_key
    - add_entropy
    - Test::Result::test_eq
    - get_req_bin
    - Botan::XMSS_Parameters::xmss_id_from_string
    - get_req_str
    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:134,1
    - Dst: Botan::XMSS_Parameters::XMSS_Parameters
      Src: /src/botan/src/tests/test_xmss.cpp:135,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_xmss.cpp:136,1
    - Dst: auto::hash_function_name
      Src: /src/botan/src/tests/test_xmss.cpp:136,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_xmss.cpp:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 139
    functionName: Botan_Tests::XMSS_Keygen_Reference_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::run_long_tests
    - get_req_str
    - auto::hash_function_name
    - Botan::HashFunction::create
    - Botan::XMSS_Parameters::XMSS_Parameters
    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:143,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_xmss.cpp:146,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_xmss.cpp:149,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_xmss.cpp:152,1
    - Dst: require
      Src: /src/botan/src/tests/test_xmss.cpp:155,1
    - Dst: Botan::XMSS_PrivateKey::remaining_operations
      Src: /src/botan/src/tests/test_xmss.cpp:155,1
    - Dst: sign_something
      Src: /src/botan/src/tests/test_xmss.cpp:157,1
    - Dst: require
      Src: /src/botan/src/tests/test_xmss.cpp:159,1
    - Dst: Botan::XMSS_PrivateKey::remaining_operations
      Src: /src/botan/src/tests/test_xmss.cpp:159,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_xmss.cpp:162,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_xmss.cpp:163,1
    - Dst: require
      Src: /src/botan/src/tests/test_xmss.cpp:170,1
    - Dst: Botan::XMSS_PrivateKey::remaining_operations
      Src: /src/botan/src/tests/test_xmss.cpp:170,1
    - Dst: sign_something
      Src: /src/botan/src/tests/test_xmss.cpp:172,1
    - Dst: require
      Src: /src/botan/src/tests/test_xmss.cpp:174,1
    - Dst: Botan::XMSS_PrivateKey::remaining_operations
      Src: /src/botan/src/tests/test_xmss.cpp:174,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_xmss.cpp:175,1
    - Dst: sign_something
      Src: /src/botan/src/tests/test_xmss.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 177
    functionName: Botan_Tests::xmss_statefulness
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - sign_something
    - Botan::hex_decode
    - Botan_Tests::CHECK
    - test_throws
    - require
    - Botan::PK_Signer::sign_message
    - Botan::XMSS_PrivateKey::remaining_operations
    - 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:180,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_xmss.cpp:186,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_xmss.cpp:192,1
    - Dst: Botan::XMSS_PrivateKey::XMSS_PrivateKey
      Src: /src/botan/src/tests/test_xmss.cpp:265,1
    - Dst: Botan::XMSS_PrivateKey::public_key
      Src: /src/botan/src/tests/test_xmss.cpp:266,1
    - Dst: Botan::XMSS_PublicKey::XMSS_PublicKey
      Src: /src/botan/src/tests/test_xmss.cpp:267,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_xmss.cpp:269,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_xmss.cpp:272,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_xmss.cpp:275,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_xmss.cpp:278,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_xmss.cpp:281,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_xmss.cpp:282,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_xmss.cpp:285,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_xmss.cpp:288,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_xmss.cpp:289,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_xmss.cpp:292,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_xmss.cpp:295,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_xmss.cpp:298,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_xmss.cpp:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 302
    functionName: Botan_Tests::xmss_legacy_private_key
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Botan::XMSS_PrivateKey::XMSS_PrivateKey
    - Botan_Tests::CHECK
    - Botan::XMSS_PrivateKey::public_key
    - Botan::PK_Verifier::verify_message
    - Botan::XMSS_PublicKey::XMSS_PublicKey
    - Botan::PK_Signer::sign_message
    - Botan_Tests::Test::new_rng
    - confirm
    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: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    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:33,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_xmss.cpp:34,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 44
    functionName: Botan_Tests::XMSS_Signature_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::run_long_tests
    - get_req_str
    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:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    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:49,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_xmss.cpp:50,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_xmss.cpp:50,1
    - Dst: std::make_unique<Botan::XMSS_PrivateKey>
      Src: /src/botan/src/tests/test_xmss.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: Botan_Tests::XMSS_Signature_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - std::vector::begin
    - std::make_unique<Botan::XMSS_PrivateKey>
    - std::vector::end
    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: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    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:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    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:64,1
    - Dst: std::make_unique<Botan::XMSS_PublicKey>
      Src: /src/botan/src/tests/test_xmss.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: Botan_Tests::XMSS_Signature_Verify_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - std::make_unique<Botan::XMSS_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: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    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:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    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:78,1
    - Dst: std::make_unique<Botan::XMSS_PublicKey>
      Src: /src/botan/src/tests/test_xmss.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: Botan_Tests::XMSS_Signature_Verify_Invalid_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - std::make_unique<Botan::XMSS_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: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    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: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    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:93,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_xmss.cpp:93,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_xmss.cpp:93,1
    - Dst: Botan::XMSS_Parameters::XMSS_Parameters
      Src: /src/botan/src/tests/test_xmss.cpp:94,1
    - Dst: Botan::BufferSlicer::copy_as_secure_vector
      Src: /src/botan/src/tests/test_xmss.cpp:95,1
    - Dst: auto::element_size
      Src: /src/botan/src/tests/test_xmss.cpp:95,1
    - Dst: Botan::BufferSlicer::copy_as_secure_vector
      Src: /src/botan/src/tests/test_xmss.cpp:96,1
    - Dst: auto::element_size
      Src: /src/botan/src/tests/test_xmss.cpp:96,1
    - Dst: std::make_unique<Botan::XMSS_PublicKey>
      Src: /src/botan/src/tests/test_xmss.cpp:98,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_xmss.cpp:98,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_xmss.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - raw_pk
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 99
    functionName: Botan_Tests::XMSS_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::BufferSlicer::take
    - Botan::BufferSlicer::copy_as_secure_vector
    - Botan::XMSS_Parameters::xmss_algorithm_t
    - auto::element_size
    - std::make_unique<Botan::XMSS_PublicKey>
    - Botan::XMSS_Parameters::XMSS_Parameters
    - Botan::load_be
    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: 110
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 110
    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:113,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_xmss.cpp:116,1
    - Dst: data
      Src: /src/botan/src/tests/test_xmss.cpp:116,1
    - Dst: size
      Src: /src/botan/src/tests/test_xmss.cpp:116,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_xmss.cpp:120,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:120,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_xmss.cpp:121,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:121,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: Botan::XMSS_Parameters::xmss_id_from_string
      Src: /src/botan/src/tests/test_xmss.cpp:124,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_xmss.cpp:124,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_xmss.cpp:127,1
    - Dst: Botan::XMSS_PrivateKey::raw_private_key
      Src: /src/botan/src/tests/test_xmss.cpp:127,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:127,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_xmss.cpp:128,1
    - Dst: Botan::XMSS_PrivateKey::raw_public_key
      Src: /src/botan/src/tests/test_xmss.cpp:128,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 131
    functionName: Botan_Tests::XMSS_Keygen_Reference_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - Fixed_Output_RNG::add_entropy
    - data
    - size
    - Botan::XMSS_PrivateKey::raw_private_key
    - Botan::XMSS_PrivateKey::raw_public_key
    - add_entropy
    - Test::Result::test_eq
    - get_req_bin
    - Botan::XMSS_Parameters::xmss_id_from_string
    - get_req_str
    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:134,1
    - Dst: Botan::XMSS_Parameters::XMSS_Parameters
      Src: /src/botan/src/tests/test_xmss.cpp:135,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_xmss.cpp:136,1
    - Dst: auto::hash_function_name
      Src: /src/botan/src/tests/test_xmss.cpp:136,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_xmss.cpp:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 139
    functionName: Botan_Tests::XMSS_Keygen_Reference_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::run_long_tests
    - get_req_str
    - auto::hash_function_name
    - Botan::HashFunction::create
    - Botan::XMSS_Parameters::XMSS_Parameters
    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:143,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_xmss.cpp:146,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_xmss.cpp:149,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_xmss.cpp:152,1
    - Dst: require
      Src: /src/botan/src/tests/test_xmss.cpp:155,1
    - Dst: Botan::XMSS_PrivateKey::remaining_operations
      Src: /src/botan/src/tests/test_xmss.cpp:155,1
    - Dst: sign_something
      Src: /src/botan/src/tests/test_xmss.cpp:157,1
    - Dst: require
      Src: /src/botan/src/tests/test_xmss.cpp:159,1
    - Dst: Botan::XMSS_PrivateKey::remaining_operations
      Src: /src/botan/src/tests/test_xmss.cpp:159,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_xmss.cpp:162,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_xmss.cpp:163,1
    - Dst: require
      Src: /src/botan/src/tests/test_xmss.cpp:170,1
    - Dst: Botan::XMSS_PrivateKey::remaining_operations
      Src: /src/botan/src/tests/test_xmss.cpp:170,1
    - Dst: sign_something
      Src: /src/botan/src/tests/test_xmss.cpp:172,1
    - Dst: require
      Src: /src/botan/src/tests/test_xmss.cpp:174,1
    - Dst: Botan::XMSS_PrivateKey::remaining_operations
      Src: /src/botan/src/tests/test_xmss.cpp:174,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_xmss.cpp:175,1
    - Dst: sign_something
      Src: /src/botan/src/tests/test_xmss.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 177
    functionName: Botan_Tests::xmss_statefulness
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - sign_something
    - Botan::hex_decode
    - Botan_Tests::CHECK
    - test_throws
    - require
    - Botan::PK_Signer::sign_message
    - Botan::XMSS_PrivateKey::remaining_operations
    - 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:180,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_xmss.cpp:186,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_xmss.cpp:192,1
    - Dst: Botan::XMSS_PrivateKey::XMSS_PrivateKey
      Src: /src/botan/src/tests/test_xmss.cpp:265,1
    - Dst: Botan::XMSS_PrivateKey::public_key
      Src: /src/botan/src/tests/test_xmss.cpp:266,1
    - Dst: Botan::XMSS_PublicKey::XMSS_PublicKey
      Src: /src/botan/src/tests/test_xmss.cpp:267,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_xmss.cpp:269,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_xmss.cpp:272,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_xmss.cpp:275,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_xmss.cpp:278,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_xmss.cpp:281,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_xmss.cpp:282,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_xmss.cpp:285,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_xmss.cpp:288,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_xmss.cpp:289,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_xmss.cpp:292,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_xmss.cpp:295,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_xmss.cpp:298,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_xmss.cpp:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 302
    functionName: Botan_Tests::xmss_legacy_private_key
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Botan::XMSS_PrivateKey::XMSS_PrivateKey
    - Botan_Tests::CHECK
    - Botan::XMSS_PrivateKey::public_key
    - Botan::PK_Verifier::verify_message
    - Botan::XMSS_PublicKey::XMSS_PublicKey
    - Botan::PK_Signer::sign_message
    - Botan_Tests::Test::new_rng
    - confirm
    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: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    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:33,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_xmss.cpp:34,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 44
    functionName: Botan_Tests::XMSS_Signature_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::run_long_tests
    - get_req_str
    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:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    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:49,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_xmss.cpp:50,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_xmss.cpp:50,1
    - Dst: std::make_unique<Botan::XMSS_PrivateKey>
      Src: /src/botan/src/tests/test_xmss.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: Botan_Tests::XMSS_Signature_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - std::vector::begin
    - std::make_unique<Botan::XMSS_PrivateKey>
    - std::vector::end
    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: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    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:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    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:64,1
    - Dst: std::make_unique<Botan::XMSS_PublicKey>
      Src: /src/botan/src/tests/test_xmss.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: Botan_Tests::XMSS_Signature_Verify_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - std::make_unique<Botan::XMSS_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: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    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:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    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:78,1
    - Dst: std::make_unique<Botan::XMSS_PublicKey>
      Src: /src/botan/src/tests/test_xmss.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: Botan_Tests::XMSS_Signature_Verify_Invalid_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - std::make_unique<Botan::XMSS_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: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    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: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    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:93,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_xmss.cpp:93,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_xmss.cpp:93,1
    - Dst: Botan::XMSS_Parameters::XMSS_Parameters
      Src: /src/botan/src/tests/test_xmss.cpp:94,1
    - Dst: Botan::BufferSlicer::copy_as_secure_vector
      Src: /src/botan/src/tests/test_xmss.cpp:95,1
    - Dst: auto::element_size
      Src: /src/botan/src/tests/test_xmss.cpp:95,1
    - Dst: Botan::BufferSlicer::copy_as_secure_vector
      Src: /src/botan/src/tests/test_xmss.cpp:96,1
    - Dst: auto::element_size
      Src: /src/botan/src/tests/test_xmss.cpp:96,1
    - Dst: std::make_unique<Botan::XMSS_PublicKey>
      Src: /src/botan/src/tests/test_xmss.cpp:98,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_xmss.cpp:98,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_xmss.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - raw_pk
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 99
    functionName: Botan_Tests::XMSS_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::BufferSlicer::take
    - Botan::BufferSlicer::copy_as_secure_vector
    - Botan::XMSS_Parameters::xmss_algorithm_t
    - auto::element_size
    - std::make_unique<Botan::XMSS_PublicKey>
    - Botan::XMSS_Parameters::XMSS_Parameters
    - Botan::load_be
    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: 110
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 110
    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:113,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_xmss.cpp:116,1
    - Dst: data
      Src: /src/botan/src/tests/test_xmss.cpp:116,1
    - Dst: size
      Src: /src/botan/src/tests/test_xmss.cpp:116,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_xmss.cpp:120,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:120,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_xmss.cpp:121,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:121,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: Botan::XMSS_Parameters::xmss_id_from_string
      Src: /src/botan/src/tests/test_xmss.cpp:124,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_xmss.cpp:124,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_xmss.cpp:127,1
    - Dst: Botan::XMSS_PrivateKey::raw_private_key
      Src: /src/botan/src/tests/test_xmss.cpp:127,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:127,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_xmss.cpp:128,1
    - Dst: Botan::XMSS_PrivateKey::raw_public_key
      Src: /src/botan/src/tests/test_xmss.cpp:128,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xmss.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 131
    functionName: Botan_Tests::XMSS_Keygen_Reference_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - Fixed_Output_RNG::add_entropy
    - data
    - size
    - Botan::XMSS_PrivateKey::raw_private_key
    - Botan::XMSS_PrivateKey::raw_public_key
    - add_entropy
    - Test::Result::test_eq
    - get_req_bin
    - Botan::XMSS_Parameters::xmss_id_from_string
    - get_req_str
    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:134,1
    - Dst: Botan::XMSS_Parameters::XMSS_Parameters
      Src: /src/botan/src/tests/test_xmss.cpp:135,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_xmss.cpp:136,1
    - Dst: auto::hash_function_name
      Src: /src/botan/src/tests/test_xmss.cpp:136,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_xmss.cpp:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 139
    functionName: Botan_Tests::XMSS_Keygen_Reference_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::run_long_tests
    - get_req_str
    - auto::hash_function_name
    - Botan::HashFunction::create
    - Botan::XMSS_Parameters::XMSS_Parameters
    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:143,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_xmss.cpp:146,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_xmss.cpp:149,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_xmss.cpp:152,1
    - Dst: require
      Src: /src/botan/src/tests/test_xmss.cpp:155,1
    - Dst: Botan::XMSS_PrivateKey::remaining_operations
      Src: /src/botan/src/tests/test_xmss.cpp:155,1
    - Dst: sign_something
      Src: /src/botan/src/tests/test_xmss.cpp:157,1
    - Dst: require
      Src: /src/botan/src/tests/test_xmss.cpp:159,1
    - Dst: Botan::XMSS_PrivateKey::remaining_operations
      Src: /src/botan/src/tests/test_xmss.cpp:159,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_xmss.cpp:162,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_xmss.cpp:163,1
    - Dst: require
      Src: /src/botan/src/tests/test_xmss.cpp:170,1
    - Dst: Botan::XMSS_PrivateKey::remaining_operations
      Src: /src/botan/src/tests/test_xmss.cpp:170,1
    - Dst: sign_something
      Src: /src/botan/src/tests/test_xmss.cpp:172,1
    - Dst: require
      Src: /src/botan/src/tests/test_xmss.cpp:174,1
    - Dst: Botan::XMSS_PrivateKey::remaining_operations
      Src: /src/botan/src/tests/test_xmss.cpp:174,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_xmss.cpp:175,1
    - Dst: sign_something
      Src: /src/botan/src/tests/test_xmss.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 177
    functionName: Botan_Tests::xmss_statefulness
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - sign_something
    - Botan::hex_decode
    - Botan_Tests::CHECK
    - test_throws
    - require
    - Botan::PK_Signer::sign_message
    - Botan::XMSS_PrivateKey::remaining_operations
    - 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:180,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_xmss.cpp:186,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_xmss.cpp:192,1
    - Dst: Botan::XMSS_PrivateKey::XMSS_PrivateKey
      Src: /src/botan/src/tests/test_xmss.cpp:265,1
    - Dst: Botan::XMSS_PrivateKey::public_key
      Src: /src/botan/src/tests/test_xmss.cpp:266,1
    - Dst: Botan::XMSS_PublicKey::XMSS_PublicKey
      Src: /src/botan/src/tests/test_xmss.cpp:267,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_xmss.cpp:269,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_xmss.cpp:272,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_xmss.cpp:275,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_xmss.cpp:278,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_xmss.cpp:281,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_xmss.cpp:282,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_xmss.cpp:285,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_xmss.cpp:288,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_xmss.cpp:289,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_xmss.cpp:292,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_xmss.cpp:295,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_xmss.cpp:298,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_xmss.cpp:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 302
    functionName: Botan_Tests::xmss_legacy_private_key
    functionSourceFile: /src/botan/src/tests/test_xmss.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Botan::XMSS_PrivateKey::XMSS_PrivateKey
    - Botan_Tests::CHECK
    - Botan::XMSS_PrivateKey::public_key
    - Botan::PK_Verifier::verify_message
    - Botan::XMSS_PublicKey::XMSS_PublicKey
    - Botan::PK_Signer::sign_message
    - Botan_Tests::Test::new_rng
    - confirm
    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: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    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:25,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_siv.cpp:26,1
    - Dst: get_req_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: Botan::split_on
      Src: /src/botan/src/tests/test_siv.cpp:29,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_siv.cpp:29,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/tests/test_siv.cpp:35,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_siv.cpp:38,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_siv.cpp:42,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_siv.cpp:44,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_siv.cpp:45,1
    - Dst: auto::set_associated_data_n
      Src: /src/botan/src/tests/test_siv.cpp:46,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_siv.cpp:49,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_siv.cpp:49,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_siv.cpp:50,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_siv.cpp:51,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_siv.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 56
    functionName: Botan_Tests::SIV_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_siv.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - std::vector::begin
    - get_opt_bin
    - auto::set_key
    - Botan::split_on
    - Botan::AEAD_Mode::create
    - auto::set_associated_data_n
    - std::vector::end
    - auto::start
    - Test::Result::test_eq
    - get_req_bin
    - std::vector::size
    - auto::finish
    - get_req_str
    - Test::Result::test_note
    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: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    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:25,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_siv.cpp:26,1
    - Dst: get_req_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: Botan::split_on
      Src: /src/botan/src/tests/test_siv.cpp:29,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_siv.cpp:29,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/tests/test_siv.cpp:35,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_siv.cpp:38,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_siv.cpp:42,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_siv.cpp:44,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_siv.cpp:45,1
    - Dst: auto::set_associated_data_n
      Src: /src/botan/src/tests/test_siv.cpp:46,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_siv.cpp:49,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_siv.cpp:49,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_siv.cpp:50,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_siv.cpp:51,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_siv.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 56
    functionName: Botan_Tests::SIV_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_siv.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - std::vector::begin
    - get_opt_bin
    - auto::set_key
    - Botan::split_on
    - Botan::AEAD_Mode::create
    - auto::set_associated_data_n
    - std::vector::end
    - auto::start
    - Test::Result::test_eq
    - get_req_bin
    - std::vector::size
    - auto::finish
    - get_req_str
    - Test::Result::test_note
    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: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    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:25,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_siv.cpp:26,1
    - Dst: get_req_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: Botan::split_on
      Src: /src/botan/src/tests/test_siv.cpp:29,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_siv.cpp:29,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/tests/test_siv.cpp:35,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_siv.cpp:38,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_siv.cpp:42,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_siv.cpp:44,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_siv.cpp:45,1
    - Dst: auto::set_associated_data_n
      Src: /src/botan/src/tests/test_siv.cpp:46,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_siv.cpp:49,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_siv.cpp:49,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_siv.cpp:50,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_siv.cpp:51,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_siv.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 56
    functionName: Botan_Tests::SIV_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_siv.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - std::vector::begin
    - get_opt_bin
    - auto::set_key
    - Botan::split_on
    - Botan::AEAD_Mode::create
    - auto::set_associated_data_n
    - std::vector::end
    - auto::start
    - Test::Result::test_eq
    - get_req_bin
    - std::vector::size
    - auto::finish
    - get_req_str
    - Test::Result::test_note
    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: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    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:25,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_siv.cpp:26,1
    - Dst: get_req_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: Botan::split_on
      Src: /src/botan/src/tests/test_siv.cpp:29,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_siv.cpp:29,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/tests/test_siv.cpp:35,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_siv.cpp:38,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_siv.cpp:42,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_siv.cpp:44,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_siv.cpp:45,1
    - Dst: auto::set_associated_data_n
      Src: /src/botan/src/tests/test_siv.cpp:46,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_siv.cpp:49,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_siv.cpp:49,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_siv.cpp:50,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_siv.cpp:51,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_siv.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 56
    functionName: Botan_Tests::SIV_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_siv.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - std::vector::begin
    - get_opt_bin
    - auto::set_key
    - Botan::split_on
    - Botan::AEAD_Mode::create
    - auto::set_associated_data_n
    - std::vector::end
    - auto::start
    - Test::Result::test_eq
    - get_req_bin
    - std::vector::size
    - auto::finish
    - get_req_str
    - Test::Result::test_note
    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::confirm
      Src: /src/botan/src/tests/test_uri.cpp:23,1
    - Dst: Botan::URI::type
      Src: /src/botan/src/tests/test_uri.cpp:23,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_uri.cpp:24,1
    - Dst: Botan::URI::host
      Src: /src/botan/src/tests/test_uri.cpp:24,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_uri.cpp:25,1
    - Dst: Botan::URI::port
      Src: /src/botan/src/tests/test_uri.cpp:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 27
    functionName: Botan_Tests::URI_Tests::test_uri_ctor
    functionSourceFile: /src/botan/src/tests/test_uri.cpp
    functionUses: 0
    functionsReached:
    - Botan::URI::type
    - Botan::URI::port
    - Test::Result::test_eq
    - Botan::URI::host
    - Test::Result::confirm
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_uri_ctor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_uri.cpp:32,1
    - Dst: Botan::URI
      Src: /src/botan/src/tests/test_uri.cpp:32,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_uri.cpp:33,1
    - Dst: Botan::URI
      Src: /src/botan/src/tests/test_uri.cpp:33,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_uri.cpp:34,1
    - Dst: Botan::URI
      Src: /src/botan/src/tests/test_uri.cpp:34,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_uri.cpp:35,1
    - Dst: Botan::URI
      Src: /src/botan/src/tests/test_uri.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 38
    functionName: Botan_Tests::URI_Tests::test_uri_tostring
    functionSourceFile: /src/botan/src/tests/test_uri.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_eq
    - Botan::URI
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_uri_tostring()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_uri.cpp:60,1
    - Dst: host
      Src: /src/botan/src/tests/test_uri.cpp:60,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_uri.cpp:61,1
    - Dst: port
      Src: /src/botan/src/tests/test_uri.cpp:61,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_uri.cpp:65,1
    - Dst: Botan::URI::from_ipv4
      Src: /src/botan/src/tests/test_uri.cpp:65,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_uri.cpp:68,1
    - Dst: Botan::URI::from_ipv6
      Src: /src/botan/src/tests/test_uri.cpp:68,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_uri.cpp:71,1
    - Dst: Botan::URI::from_domain
      Src: /src/botan/src/tests/test_uri.cpp:71,1
    - Dst: Botan::URI::from_any
      Src: /src/botan/src/tests/test_uri.cpp:74,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_uri.cpp:75,1
    - Dst: auto::type
      Src: /src/botan/src/tests/test_uri.cpp:75,1
    - Dst: test_URI
      Src: /src/botan/src/tests/test_uri.cpp:76,1
    - Dst: test_URI
      Src: /src/botan/src/tests/test_uri.cpp:78,1
    - Dst: Botan::URI::from_domain
      Src: /src/botan/src/tests/test_uri.cpp:78,1
    - Dst: test_URI
      Src: /src/botan/src/tests/test_uri.cpp:80,1
    - Dst: Botan::URI::from_ipv4
      Src: /src/botan/src/tests/test_uri.cpp:80,1
    - Dst: test_URI
      Src: /src/botan/src/tests/test_uri.cpp:82,1
    - Dst: Botan::URI::from_ipv6
      Src: /src/botan/src/tests/test_uri.cpp:82,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_uri.cpp:88,1
    - Dst: Botan::URI::from_ipv6
      Src: /src/botan/src/tests/test_uri.cpp:88,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_uri.cpp:89,1
    - Dst: Botan::URI::from_ipv6
      Src: /src/botan/src/tests/test_uri.cpp:89,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 92
    functionName: Botan_Tests::URI_Tests::test_uri_parsing
    functionSourceFile: /src/botan/src/tests/test_uri.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::URI::from_domain
    - auto::type
    - host
    - test_URI
    - Botan::URI::from_ipv4
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::URI::from_any
    - Botan::URI::from_ipv6
    - Test::Result::test_int_eq
    - port
    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:109,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_uri.cpp:110,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_uri.cpp:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 116
    functionName: Botan_Tests::URI_Tests::test_uri_parsing_invalid
    functionSourceFile: /src/botan/src/tests/test_uri.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_failure
    - Test::Result::test_success
    - Botan::URI::from_any
    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:122,1
    - Dst: Botan_Tests::URI_Tests::test_uri_ctor
      Src: /src/botan/src/tests/test_uri.cpp:122,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_uri.cpp:123,1
    - Dst: Botan_Tests::URI_Tests::test_uri_tostring
      Src: /src/botan/src/tests/test_uri.cpp:123,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_uri.cpp:124,1
    - Dst: Botan_Tests::URI_Tests::test_uri_parsing
      Src: /src/botan/src/tests/test_uri.cpp:124,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_uri.cpp:125,1
    - Dst: Botan_Tests::URI_Tests::test_uri_parsing_invalid
      Src: /src/botan/src/tests/test_uri.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 128
    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_parsing
    - Botan_Tests::URI_Tests::test_uri_ctor
    - Botan_Tests::URI_Tests::test_uri_parsing_invalid
    - Botan_Tests::URI_Tests::test_uri_tostring
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_uri.cpp:23,1
    - Dst: Botan::URI::type
      Src: /src/botan/src/tests/test_uri.cpp:23,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_uri.cpp:24,1
    - Dst: Botan::URI::host
      Src: /src/botan/src/tests/test_uri.cpp:24,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_uri.cpp:25,1
    - Dst: Botan::URI::port
      Src: /src/botan/src/tests/test_uri.cpp:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 27
    functionName: Botan_Tests::URI_Tests::test_uri_ctor
    functionSourceFile: /src/botan/src/tests/test_uri.cpp
    functionUses: 1
    functionsReached:
    - Botan::URI::type
    - Botan::URI::port
    - Test::Result::test_eq
    - Botan::URI::host
    - Test::Result::confirm
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_uri_ctor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_uri.cpp:32,1
    - Dst: Botan::URI
      Src: /src/botan/src/tests/test_uri.cpp:32,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_uri.cpp:33,1
    - Dst: Botan::URI
      Src: /src/botan/src/tests/test_uri.cpp:33,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_uri.cpp:34,1
    - Dst: Botan::URI
      Src: /src/botan/src/tests/test_uri.cpp:34,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_uri.cpp:35,1
    - Dst: Botan::URI
      Src: /src/botan/src/tests/test_uri.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 38
    functionName: Botan_Tests::URI_Tests::test_uri_tostring
    functionSourceFile: /src/botan/src/tests/test_uri.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_eq
    - Botan::URI
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_uri_tostring()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_uri.cpp:60,1
    - Dst: host
      Src: /src/botan/src/tests/test_uri.cpp:60,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_uri.cpp:61,1
    - Dst: port
      Src: /src/botan/src/tests/test_uri.cpp:61,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_uri.cpp:65,1
    - Dst: Botan::URI::from_ipv4
      Src: /src/botan/src/tests/test_uri.cpp:65,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_uri.cpp:68,1
    - Dst: Botan::URI::from_ipv6
      Src: /src/botan/src/tests/test_uri.cpp:68,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_uri.cpp:71,1
    - Dst: Botan::URI::from_domain
      Src: /src/botan/src/tests/test_uri.cpp:71,1
    - Dst: Botan::URI::from_any
      Src: /src/botan/src/tests/test_uri.cpp:74,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_uri.cpp:75,1
    - Dst: auto::type
      Src: /src/botan/src/tests/test_uri.cpp:75,1
    - Dst: test_URI
      Src: /src/botan/src/tests/test_uri.cpp:76,1
    - Dst: test_URI
      Src: /src/botan/src/tests/test_uri.cpp:78,1
    - Dst: Botan::URI::from_domain
      Src: /src/botan/src/tests/test_uri.cpp:78,1
    - Dst: test_URI
      Src: /src/botan/src/tests/test_uri.cpp:80,1
    - Dst: Botan::URI::from_ipv4
      Src: /src/botan/src/tests/test_uri.cpp:80,1
    - Dst: test_URI
      Src: /src/botan/src/tests/test_uri.cpp:82,1
    - Dst: Botan::URI::from_ipv6
      Src: /src/botan/src/tests/test_uri.cpp:82,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_uri.cpp:88,1
    - Dst: Botan::URI::from_ipv6
      Src: /src/botan/src/tests/test_uri.cpp:88,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_uri.cpp:89,1
    - Dst: Botan::URI::from_ipv6
      Src: /src/botan/src/tests/test_uri.cpp:89,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 92
    functionName: Botan_Tests::URI_Tests::test_uri_parsing
    functionSourceFile: /src/botan/src/tests/test_uri.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_throws
    - Botan::URI::from_domain
    - auto::type
    - host
    - test_URI
    - Botan::URI::from_ipv4
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::URI::from_any
    - Botan::URI::from_ipv6
    - Test::Result::test_int_eq
    - port
    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:109,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_uri.cpp:110,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_uri.cpp:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 116
    functionName: Botan_Tests::URI_Tests::test_uri_parsing_invalid
    functionSourceFile: /src/botan/src/tests/test_uri.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_failure
    - Test::Result::test_success
    - Botan::URI::from_any
    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:122,1
    - Dst: Botan_Tests::URI_Tests::test_uri_ctor
      Src: /src/botan/src/tests/test_uri.cpp:122,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_uri.cpp:123,1
    - Dst: Botan_Tests::URI_Tests::test_uri_tostring
      Src: /src/botan/src/tests/test_uri.cpp:123,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_uri.cpp:124,1
    - Dst: Botan_Tests::URI_Tests::test_uri_parsing
      Src: /src/botan/src/tests/test_uri.cpp:124,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_uri.cpp:125,1
    - Dst: Botan_Tests::URI_Tests::test_uri_parsing_invalid
      Src: /src/botan/src/tests/test_uri.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 128
    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_parsing
    - Botan_Tests::URI_Tests::test_uri_ctor
    - Botan_Tests::URI_Tests::test_uri_parsing_invalid
    - Botan_Tests::URI_Tests::test_uri_tostring
    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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: Botan_Tests::Test_Error::Test_Error
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_Error(const std::string& what)
  - 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::Test_Error::error_type
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Botan::ErrorType
    signature: Botan::ErrorType error_type() const noexcept override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' what'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: Botan_Tests::Test_Aborted::Test_Aborted
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_Aborted(const std::string& what)
  - 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_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:
    - Dst: begin
      Src: /src/botan/src/tests/tests.h:87,1
    - Dst: end
      Src: /src/botan/src/tests/tests.h:87,1
    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: 107
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 107
    functionName: Botan_Tests::Test_Options::Test_Options
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - begin
    - end
    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: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    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: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: '& skip_tests() const'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::set<std::string>
    signature: std::set<std::string> & skip_tests() 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: '& 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: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    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: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    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: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    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: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    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:123,1
    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::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:125,1
    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: 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: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    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: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    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: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    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: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    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: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    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: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    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: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    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: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    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: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    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: 147
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 147
    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: 149
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 149
    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: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    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:
    - Dst: std::move
      Src: /src/botan/src/tests/tests.h:230,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/tests.h:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - who
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 230
    functionName: Botan_Tests::Test::Result::Result
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::detail::AsyncBase::complete_now
    - std::move
    linkageType: ''
    returnType: void
    signature: void Result(std::string who)
  - 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_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:240,1
    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_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:242,1
    - Dst: Botan_Tests::Test::Result::tests_failed
      Src: /src/botan/src/tests/tests.h:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 242
    functionName: Botan_Tests::Test::Result::tests_run
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::Result::tests_failed
    - Botan_Tests::Test::Result::tests_passed
    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:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 244
    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: 246
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 246
    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: 248
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 248
    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: 250
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 250
    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:
    - Dst: Botan_CLI::Timer::nanoseconds
      Src: /src/botan/src/tests/tests.h: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::Test::Result::elapsed_time
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timer::nanoseconds
    linkageType: ''
    returnType: std::optional<std::chrono::nanoseconds>
    signature: std::optional<std::chrono::nanoseconds> elapsed_time() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 260
    functionName: '& timestamp() const'
    functionSourceFile: /src/botan/src/tests/tests.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:
    - Dst: Result::test_failure
      Src: /src/botan/src/tests/tests.h:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' who'
    - ' what'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 268
    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(const std::string& who, const std::string& what)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Result::test_note
      Src: /src/botan/src/tests/tests.h:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' who'
    - ' what'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 274
    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(const std::string& who, const std::string& what)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::Result::tests_failed
      Src: /src/botan/src/tests/tests.h:281,1
    - Dst: Result::test_failure
      Src: /src/botan/src/tests/tests.h:283,1
    - Dst: who
      Src: /src/botan/src/tests/tests.h:286,1
    - Dst: Result::test_note
      Src: /src/botan/src/tests/tests.h:287,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - expecting_failure
    - ' result'
    argTypes:
    - bool
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 290
    functionName: Botan_Tests::Test::Result::OfExpectedFailure
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::Result::tests_failed
    - Result::test_failure
    - who
    - Result::test_note
    linkageType: ''
    returnType: Result
    signature: Result OfExpectedFailure(bool expecting_failure, const Test::Result&
      result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/tests.h:298,1
    - Dst: Botan_Tests::Test::Result::test_note
      Src: /src/botan/src/tests/tests.h:299,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/tests.h:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' who'
    - ' vec'
    argTypes:
    - std::string
    - std::vector<uint8_t, Alloc>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 300
    functionName: Botan_Tests::Test::Result::test_note
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 1
    functionsReached:
    - std::string::c_str
    - Botan_Tests::Test::Result::test_note
    - Botan::hex_encode
    linkageType: ''
    returnType: void
    signature: void test_note(const std::string& who, const std::vector<uint8_t, Alloc>&
      vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::Result::test_failure
      Src: /src/botan/src/tests/tests.h:314,1
    - Dst: data
      Src: /src/botan/src/tests/tests.h:314,1
    - Dst: size
      Src: /src/botan/src/tests/tests.h:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' what'
    - ' buf'
    argTypes:
    - std::string
    - std::vector<uint8_t, Alloc>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 315
    functionName: Botan_Tests::Test::Result::test_failure
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 1
    functionsReached:
    - size
    - Botan_Tests::Test::Result::test_failure
    - data
    linkageType: ''
    returnType: void
    signature: void test_failure(const std::string& what, const std::vector<uint8_t,
      Alloc>& buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::Result::test_eq
      Src: /src/botan/src/tests/tests.h:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' what'
    - expr
    argTypes:
    - std::string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 319
    functionName: Botan_Tests::Test::Result::confirm
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::Result::test_eq
    linkageType: ''
    returnType: bool
    signature: bool confirm(const std::string& what, bool expr, bool expected = true)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::Result::confirm
      Src: /src/botan/src/tests/tests.h:326,1
    - Dst: Test_Aborted
      Src: /src/botan/src/tests/tests.h:327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' what'
    - expr
    argTypes:
    - std::string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 329
    functionName: Botan_Tests::Test::Result::require
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::Result::confirm
    - Test_Aborted
    linkageType: ''
    returnType: void
    signature: void require(const std::string& what, bool expr, bool expected = true)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::Result::test_is_eq
      Src: /src/botan/src/tests/tests.h:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' produced'
    - ' expected'
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 334
    functionName: Botan_Tests::Test::Result::test_is_eq
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 1
    functionsReached:
    - Botan_Tests::Test::Result::test_is_eq
    linkageType: ''
    returnType: bool
    signature: bool test_is_eq(const T& produced, const T& expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/tests.h:343,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.h:343,1
    - Dst: Botan_Tests::Test::Result::to_string
      Src: /src/botan/src/tests/tests.h:345,1
    - Dst: Botan_Tests::Test::Result::to_string
      Src: /src/botan/src/tests/tests.h:345,1
    - Dst: Botan_Tests::Test::Result::test_failure
      Src: /src/botan/src/tests/tests.h:347,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.h:347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ' what'
    - ' produced'
    - ' expected'
    argTypes:
    - std::string
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 349
    functionName: Botan_Tests::Test::Result::test_is_eq
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 1
    functionsReached:
    - std::ostringstream::str
    - test_success
    - Botan_Tests::Test::Result::test_failure
    - Botan_Tests::Test::Result::to_string
    linkageType: ''
    returnType: bool
    signature: bool test_is_eq(const std::string& what, const T& produced, const T&
      expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::Result::test_failure
      Src: /src/botan/src/tests/tests.h:354,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.h:356,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' what'
    - ' ptr'
    argTypes:
    - std::string
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 352
    functionDepth: 2
    functionLinenumber: 352
    functionLinenumberEnd: 358
    functionName: Botan_Tests::Test::Result::test_not_null
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - test_success
    - Botan_Tests::Test::Result::test_failure
    linkageType: ''
    returnType: bool
    signature: bool test_not_null(const std::string& what, const T& ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::Result::test_failure
      Src: /src/botan/src/tests/tests.h:363,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.h:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' what'
    - ' val'
    argTypes:
    - std::string
    - std::optional<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 361
    functionDepth: 2
    functionLinenumber: 361
    functionLinenumberEnd: 367
    functionName: Botan_Tests::Test::Result::test_not_nullopt
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - test_success
    - Botan_Tests::Test::Result::test_failure
    linkageType: ''
    returnType: bool
    signature: bool test_not_nullopt(const std::string& what, const std::optional<T>&
      val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::Result::test_eq
      Src: /src/botan/src/tests/tests.h:386,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/tests.h:386,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/tests.h:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - y
    - what
    argTypes:
    - I1
    - I2
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 387
    functionName: Botan_Tests::Test::Result::test_int_eq
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::Result::test_eq
    - static_cast<size_t>
    linkageType: ''
    returnType: bool
    signature: bool test_int_eq(I1 x, I2 y, const char* what)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::Result::test_eq
      Src: /src/botan/src/tests/tests.h:391,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/tests.h:391,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/tests.h:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' what'
    - x
    - y
    argTypes:
    - std::string
    - I1
    - I2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 392
    functionName: Botan_Tests::Test::Result::test_int_eq
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::Result::test_eq
    - static_cast<size_t>
    linkageType: ''
    returnType: bool
    signature: bool test_int_eq(const std::string& what, I1 x, I2 y)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/tests/tests.h:396,1
    - Dst: has_value
      Src: /src/botan/src/tests/tests.h:396,1
    - Dst: Botan_Tests::Test::Result::test_failure
      Src: /src/botan/src/tests/tests.h:399,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.h:399,1
    - Dst: has_value
      Src: /src/botan/src/tests/tests.h:400,1
    - Dst: has_value
      Src: /src/botan/src/tests/tests.h:400,1
    - Dst: Botan_Tests::Test::Result::test_is_eq
      Src: /src/botan/src/tests/tests.h:401,1
    - Dst: value
      Src: /src/botan/src/tests/tests.h:401,1
    - Dst: value
      Src: /src/botan/src/tests/tests.h:401,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.h:404,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - ' what'
    - ' a'
    - ' b'
    argTypes:
    - std::string
    - std::optional<T>
    - std::optional<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 395
    functionDepth: 2
    functionLinenumber: 395
    functionLinenumberEnd: 406
    functionName: Botan_Tests::Test::Result::test_eq
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 3
    functionsReached:
    - test_success
    - std::ostringstream::str
    - Botan_Tests::Test::Result::test_failure
    - Botan_Tests::Test::Result::test_is_eq
    - has_value
    - value
    linkageType: ''
    returnType: bool
    signature: bool test_eq(const std::string& what, const std::optional<T>& a, const
      std::optional<T>& b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::Result::test_failure
      Src: /src/botan/src/tests/tests.h:422,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.h:422,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.h:425,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' func'
    - rc
    argTypes:
    - std::string
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 414
    functionDepth: 2
    functionLinenumber: 414
    functionLinenumberEnd: 426
    functionName: Botan_Tests::Test::Result::test_rc_ok
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - test_success
    - Botan_Tests::Test::Result::test_failure
    linkageType: ''
    returnType: bool
    signature: bool test_rc_ok(const std::string& func, T rc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::Result::test_failure
      Src: /src/botan/src/tests/tests.h:437,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.h:437,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.h:440,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' func'
    - ' why'
    - rc
    argTypes:
    - std::string
    - std::string
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 429
    functionDepth: 2
    functionLinenumber: 429
    functionLinenumberEnd: 441
    functionName: Botan_Tests::Test::Result::test_rc_fail
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - test_success
    - Botan_Tests::Test::Result::test_failure
    linkageType: ''
    returnType: bool
    signature: bool test_rc_fail(const std::string& func, const std::string& why,
      T rc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::Result::test_eq
      Src: /src/botan/src/tests/tests.h:476,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/tests.h:476,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/tests.h:476,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/tests.h:476,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/tests.h:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' what'
    - produced
    - expected
    argTypes:
    - std::string
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 477
    functionName: Botan_Tests::Test::Result::test_eq
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 4
    functionsReached:
    - Botan_Tests::Test::Result::test_eq
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: bool
    signature: "bool test_eq(const std::string& what,\n                         std::span<const
      uint8_t> produced,\n                         std::span<const uint8_t> expected)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::Result::test_eq
      Src: /src/botan/src/tests/tests.h:483,1
    - Dst: c_str
      Src: /src/botan/src/tests/tests.h:484,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/tests.h:484,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/tests.h:484,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/tests.h:484,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/tests.h:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' producer'
    - ' what'
    - produced
    - expected
    argTypes:
    - std::string
    - std::string
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 485
    functionName: Botan_Tests::Test::Result::test_eq
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 5
    functionsReached:
    - Botan_Tests::Test::Result::test_eq
    - std::span<const uint8_t>::data
    - c_str
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: bool
    signature: "bool test_eq(const std::string& producer,\n                         const
      std::string& 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.h:488,1
    - Dst: Botan_Tests::Test::Result::test_eq
      Src: /src/botan/src/tests/tests.h:489,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/tests.h:489,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/tests.h:489,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/tests.h:489,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/tests.h:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' what'
    - produced
    - expected_hex
    argTypes:
    - std::string
    - std::span<const uint8_t>
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 490
    functionName: Botan_Tests::Test::Result::test_eq
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 6
    functionsReached:
    - Botan::hex_decode
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - Botan_Tests::Test::Result::test_eq
    - std::vector::data
    - std::vector::size
    linkageType: ''
    returnType: bool
    signature: bool test_eq(const std::string& what, std::span<const uint8_t> produced,
      const char* expected_hex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::Result::test_eq
      Src: /src/botan/src/tests/tests.h:496,1
    - Dst: data
      Src: /src/botan/src/tests/tests.h:496,1
    - Dst: size
      Src: /src/botan/src/tests/tests.h:496,1
    - Dst: data
      Src: /src/botan/src/tests/tests.h:496,1
    - Dst: size
      Src: /src/botan/src/tests/tests.h:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' what'
    - ' produced'
    - ' expected'
    argTypes:
    - std::string
    - std::array<uint8_t, N>
    - std::array<uint8_t, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 497
    functionName: Botan_Tests::Test::Result::test_eq
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 7
    functionsReached:
    - Botan_Tests::Test::Result::test_eq
    - size
    - data
    linkageType: ''
    returnType: bool
    signature: "bool test_eq(const std::string& what,\n                         const
      std::array<uint8_t, N>& produced,\n                         const std::array<uint8_t,
      N>& expected)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::Result::test_ne
      Src: /src/botan/src/tests/tests.h:502,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/tests.h:502,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/tests.h:502,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/tests.h:502,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/tests.h:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' what'
    - produced
    - expected
    argTypes:
    - std::string
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 503
    functionName: Botan_Tests::Test::Result::test_ne
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 1
    functionsReached:
    - std::span<const uint8_t>::data
    - Botan_Tests::Test::Result::test_ne
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: bool
    signature: "bool test_ne(const std::string& what,\n                         std::span<const
      uint8_t> produced,\n                         std::span<const uint8_t> expected)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/tests.h:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - fn
    argTypes:
    - std::function<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 508
    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: 510
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 510
    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: 511
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 511
    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: 512
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 512
    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: 513
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 513
    functionName: '& operator=(ThrowExpectations&&)'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ThrowExpectations
    signature: ThrowExpectations & operator=(ThrowExpectations&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/tests.h:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 515
    functionName: ~ThrowExpectations()
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: void
    signature: void ~ThrowExpectations()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/tests.h:518,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 517
    functionDepth: 1
    functionLinenumber: 517
    functionLinenumberEnd: 521
    functionName: '& expect_success()'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: ThrowExpectations
    signature: ThrowExpectations & expect_success()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/tests.h:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 527
    functionName: '& expect_message(const std::string& message)'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: ThrowExpectations
    signature: ThrowExpectations & expect_message(const std::string& message)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/tests.h:531,1
    - Dst: std::rethrow_exception
      Src: /src/botan/src/tests/tests.h:535,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 545
    functionName: Botan_Tests::Test::Result::ThrowExpectations::expect_exception_type
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::rethrow_exception
    linkageType: ''
    returnType: ThrowExpectations
    signature: ThrowExpectations & expect_exception_type()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowExpectations
      Src: /src/botan/src/tests/tests.h:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' what'
    - ' fn'
    argTypes:
    - std::string
    - std::function<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 567
    functionName: Botan_Tests::Test::Result::test_throws
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - ThrowExpectations
    linkageType: ''
    returnType: bool
    signature: bool test_throws(const std::string& what, const std::function<void()>&
      fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowExpectations
      Src: /src/botan/src/tests/tests.h:571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' what'
    - ' expected'
    - ' fn'
    argTypes:
    - std::string
    - std::string
    - std::function<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 573
    functionName: Botan_Tests::Test::Result::test_throws
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - ThrowExpectations
    linkageType: ''
    returnType: bool
    signature: bool test_throws(const std::string& what, const std::string& expected,
      const 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: 575
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 575
    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: 580
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 580
    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: 582
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 582
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/tests/tests.h:588,1
    - Dst: Botan_Tests::Test::Result::to_string
      Src: /src/botan/src/tests/tests.h:588,1
    - Dst: value
      Src: /src/botan/src/tests/tests.h:588,1
    - Dst: std::string
      Src: /src/botan/src/tests/tests.h:588,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/tests.h:590,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.h:594,1
    - Dst: Botan_Tests::Test::Result::to_string
      Src: /src/botan/src/tests/tests.h:596,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 586
    functionDepth: 1
    functionLinenumber: 586
    functionLinenumberEnd: 600
    functionName: Botan_Tests::Test::Result::to_string
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 2
    functionsReached:
    - std::ostringstream::str
    - std::string
    - Botan::to_string
    - Botan_Tests::Test::Result::to_string
    - has_value
    - value
    linkageType: ''
    returnType: std::string
    signature: std::string to_string(const T& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 613
    functionName: ~Test()
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 615
    functionDepth: 0
    functionLinenumber: 615
    functionLinenumberEnd: 615
    functionName: Botan_Tests::Test::Test
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Test
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 616
    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: 617
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 617
    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: 618
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 618
    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: 619
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 619
    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: 627
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 627
    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: 631
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 631
    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:
    - Dst: Botan_Tests::Test::format_time
      Src: /src/botan/src/tests/tests.h:656,1
    - Dst: std::chrono::nanoseconds::count
      Src: /src/botan/src/tests/tests.h:656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nanoseconds
    argTypes:
    - std::chrono::nanoseconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 657
    functionName: Botan_Tests::Test::format_time
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 1
    functionsReached:
    - Botan_Tests::Test::format_time
    - std::chrono::nanoseconds::count
    linkageType: ''
    returnType: std::string
    signature: std::string format_time(const std::chrono::nanoseconds nanoseconds)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/tests.h:666,1
    - Dst: next_byte
      Src: /src/botan/src/tests/tests.h:666,1
    - Dst: next_byte
      Src: /src/botan/src/tests/tests.h:668,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/tests.h:669,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/tests.h:669,1
    - Dst: randomize
      Src: /src/botan/src/tests/tests.h:670,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/tests.h:670,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/tests.h:673,1
    - Dst: std::max<size_t>
      Src: /src/botan/src/tests/tests.h:674,1
    - Dst: next_byte
      Src: /src/botan/src/tests/tests.h:674,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/tests.h:674,1
    - Dst: next_nonzero_byte
      Src: /src/botan/src/tests/tests.h:675,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - ' v'
    - ' rng'
    argTypes:
    - std::vector<uint8_t, Alloc>
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 680
    functionName: Botan_Tests::Test::mutate_vec
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - std::max<size_t>
    - next_byte
    - next_nonzero_byte
    - randomize
    - std::vector::empty
    - std::vector::resize
    - std::vector::size
    linkageType: ''
    returnType: std::vector<uint8_t, Alloc>
    signature: "std::vector<uint8_t, Alloc> mutate_vec(const std::vector<uint8_t,
      Alloc>& v,\n                                                    Botan::RandomNumberGenerator&
      rng,\n                                                    bool maybe_resize
      = false,\n                                                    size_t min_offset
      = 0)"
  - 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: '& 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:688,1
    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_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:690,1
    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_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:692,1
    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: '& 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:734,1
    - Dst: std::make_unique<Test_Class>
      Src: /src/botan/src/tests/tests.h:735,1
    - Dst: auto::initialize
      Src: /src/botan/src/tests/tests.h:736,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: 739
      start: 729
    functionDepth: 1
    functionLinenumber: 729
    functionLinenumberEnd: 739
    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: 747
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 747
    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: 750
      start: 747
    functionDepth: 0
    functionLinenumber: 747
    functionLinenumberEnd: 750
    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: 753
      start: 750
    functionDepth: 0
    functionLinenumber: 750
    functionLinenumberEnd: 753
    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: 756
      start: 753
    functionDepth: 0
    functionLinenumber: 753
    functionLinenumberEnd: 756
    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: 773
      start: 767
    functionDepth: 0
    functionLinenumber: 767
    functionLinenumberEnd: 773
    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:777,1
    - Dst: auto::emplace_back
      Src: /src/botan/src/tests/tests.h:778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' fn'
    argTypes:
    - TestFn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 776
    functionDepth: 1
    functionLinenumber: 776
    functionLinenumberEnd: 780
    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:784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 784
    functionDepth: 1
    functionLinenumber: 784
    functionLinenumberEnd: 784
    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:791,1
    - Dst: crend
      Src: /src/botan/src/tests/tests.h:791,1
    - Dst: std::visit
      Src: /src/botan/src/tests/tests.h:792,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/tests.h:796,1
    - Dst: fn
      Src: /src/botan/src/tests/tests.h:796,1
    - Dst: fn
      Src: /src/botan/src/tests/tests.h:798,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/tests.h:799,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/tests.h:799,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/tests.h:799,1
    - Dst: auto::end
      Src: /src/botan/src/tests/tests.h:799,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 786
    functionDepth: 0
    functionLinenumber: 786
    functionLinenumberEnd: 806
    functionName: Botan_Tests::FnTest::run
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - crbegin
    - fn
    - std::vector::emplace_back
    - auto::end
    - std::vector::end
    - std::visit
    - crend
    - auto::begin
    - std::vector::insert
    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:821,1
    - Dst: std::make_unique<FnTest>
      Src: /src/botan/src/tests/tests.h:822,1
    - Dst: auto::initialize
      Src: /src/botan/src/tests/tests.h:823,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: 826
      start: 815
    functionDepth: 1
    functionLinenumber: 815
    functionLinenumberEnd: 826
    functionName: Botan_Tests::TestFnRegistration::TestFnRegistration
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - std::make_unique<FnTest>
    - auto::initialize
    - 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: 835
      start: 831
    functionDepth: 0
    functionLinenumber: 831
    functionLinenumberEnd: 835
    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: 838
      start: 836
    functionDepth: 0
    functionLinenumber: 836
    functionLinenumberEnd: 838
    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: 840
      start: 838
    functionDepth: 0
    functionLinenumber: 838
    functionLinenumberEnd: 840
    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: 842
      start: 840
    functionDepth: 0
    functionLinenumber: 840
    functionLinenumberEnd: 842
    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: 844
      start: 842
    functionDepth: 0
    functionLinenumber: 842
    functionLinenumberEnd: 844
    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:
    - Dst: Botan_Tests::VarMap::clear
      Src: /src/botan/src/tests/tests.h:849,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 849
    functionDepth: 0
    functionLinenumber: 849
    functionLinenumberEnd: 849
    functionName: Botan_Tests::VarMap::clear
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 1
    functionsReached:
    - Botan_Tests::VarMap::clear
    linkageType: ''
    returnType: void
    signature: void clear()
  - 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: 851
      start: 851
    functionDepth: 0
    functionLinenumber: 851
    functionLinenumberEnd: 851
    functionName: Botan_Tests::VarMap::add
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void add(const std::string& key, const std::string& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: count
      Src: /src/botan/src/tests/tests.h:853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 853
    functionDepth: 0
    functionLinenumber: 853
    functionLinenumberEnd: 853
    functionName: Botan_Tests::VarMap::has_key
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - count
    linkageType: ''
    returnType: bool
    signature: bool has_key(const std::string& key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 905
    functionDepth: 0
    functionLinenumber: 905
    functionLinenumberEnd: 905
    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:916,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 916
    functionDepth: 0
    functionLinenumber: 916
    functionLinenumberEnd: 916
    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:963,1
    - Dst: Botan_Tests::Test::Result::test_failure
      Src: /src/botan/src/tests/tests.h:967,1
    - Dst: what
      Src: /src/botan/src/tests/tests.h:967,1
    - Dst: Botan_Tests::Test::Result::test_failure
      Src: /src/botan/src/tests/tests.h:969,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - name
    - check_fun
    argTypes:
    - char*
    - FunT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 959
    functionDepth: 2
    functionLinenumber: 959
    functionLinenumberEnd: 973
    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
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: Botan_Tests::Test_Error::Test_Error
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_Error(const std::string& what)
  - 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::Test_Error::error_type
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Botan::ErrorType
    signature: Botan::ErrorType error_type() const noexcept override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' what'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: Botan_Tests::Test_Aborted::Test_Aborted
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test_Aborted(const std::string& what)
  - 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_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:
    - Dst: begin
      Src: /src/botan/src/tests/tests.h:87,1
    - Dst: end
      Src: /src/botan/src/tests/tests.h:87,1
    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: 107
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 107
    functionName: Botan_Tests::Test_Options::Test_Options
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - begin
    - end
    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: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    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: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: '& skip_tests() const'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::set<std::string>
    signature: std::set<std::string> & skip_tests() 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: '& 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: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    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: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    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: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    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: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    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:123,1
    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::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:125,1
    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: 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: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    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: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    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: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    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: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    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: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    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: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    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: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    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: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    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: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    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: 147
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 147
    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: 149
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 149
    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: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    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:
    - Dst: std::move
      Src: /src/botan/src/tests/tests.h:230,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/tests.h:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - who
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 230
    functionName: Botan_Tests::Test::Result::Result
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::detail::AsyncBase::complete_now
    - std::move
    linkageType: ''
    returnType: void
    signature: void Result(std::string who)
  - 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_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:240,1
    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_Tests::Test::Result::tests_failed
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 2
    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:242,1
    - Dst: Botan_Tests::Test::Result::tests_failed
      Src: /src/botan/src/tests/tests.h:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 242
    functionName: Botan_Tests::Test::Result::tests_run
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 1
    functionsReached:
    - Botan_Tests::Test::Result::tests_failed
    - Botan_Tests::Test::Result::tests_passed
    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:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 244
    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: 246
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 246
    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: 248
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 248
    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: 250
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 250
    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:
    - Dst: Botan_CLI::Timer::nanoseconds
      Src: /src/botan/src/tests/tests.h: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::Test::Result::elapsed_time
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timer::nanoseconds
    linkageType: ''
    returnType: std::optional<std::chrono::nanoseconds>
    signature: std::optional<std::chrono::nanoseconds> elapsed_time() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 260
    functionName: '& timestamp() const'
    functionSourceFile: /src/botan/src/tests/tests.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:
    - Dst: Result::test_failure
      Src: /src/botan/src/tests/tests.h:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' who'
    - ' what'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 268
    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(const std::string& who, const std::string& what)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Result::test_note
      Src: /src/botan/src/tests/tests.h:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' who'
    - ' what'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 274
    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(const std::string& who, const std::string& what)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::Result::tests_failed
      Src: /src/botan/src/tests/tests.h:281,1
    - Dst: Result::test_failure
      Src: /src/botan/src/tests/tests.h:283,1
    - Dst: who
      Src: /src/botan/src/tests/tests.h:286,1
    - Dst: Result::test_note
      Src: /src/botan/src/tests/tests.h:287,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - expecting_failure
    - ' result'
    argTypes:
    - bool
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 290
    functionName: Botan_Tests::Test::Result::OfExpectedFailure
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::Result::tests_failed
    - Result::test_failure
    - who
    - Result::test_note
    linkageType: ''
    returnType: Result
    signature: Result OfExpectedFailure(bool expecting_failure, const Test::Result&
      result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/tests.h:298,1
    - Dst: Botan_Tests::Test::Result::test_note
      Src: /src/botan/src/tests/tests.h:299,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/tests.h:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' who'
    - ' vec'
    argTypes:
    - std::string
    - std::vector<uint8_t, Alloc>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 300
    functionName: Botan_Tests::Test::Result::test_note
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 2
    functionsReached:
    - std::string::c_str
    - Botan_Tests::Test::Result::test_note
    - Botan::hex_encode
    linkageType: ''
    returnType: void
    signature: void test_note(const std::string& who, const std::vector<uint8_t, Alloc>&
      vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::Result::test_failure
      Src: /src/botan/src/tests/tests.h:314,1
    - Dst: data
      Src: /src/botan/src/tests/tests.h:314,1
    - Dst: size
      Src: /src/botan/src/tests/tests.h:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' what'
    - ' buf'
    argTypes:
    - std::string
    - std::vector<uint8_t, Alloc>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 315
    functionName: Botan_Tests::Test::Result::test_failure
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 9
    functionsReached:
    - size
    - Botan_Tests::Test::Result::test_failure
    - data
    linkageType: ''
    returnType: void
    signature: void test_failure(const std::string& what, const std::vector<uint8_t,
      Alloc>& buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::Result::test_eq
      Src: /src/botan/src/tests/tests.h:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' what'
    - expr
    argTypes:
    - std::string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 317
    functionDepth: 3
    functionLinenumber: 317
    functionLinenumberEnd: 319
    functionName: Botan_Tests::Test::Result::confirm
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 1
    functionsReached:
    - Botan_Tests::Test::Result::test_eq
    linkageType: ''
    returnType: bool
    signature: bool confirm(const std::string& what, bool expr, bool expected = true)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::Result::confirm
      Src: /src/botan/src/tests/tests.h:326,1
    - Dst: Test_Aborted
      Src: /src/botan/src/tests/tests.h:327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' what'
    - expr
    argTypes:
    - std::string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 329
    functionName: Botan_Tests::Test::Result::require
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::Result::confirm
    - Test_Aborted
    linkageType: ''
    returnType: void
    signature: void require(const std::string& what, bool expr, bool expected = true)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::Result::test_is_eq
      Src: /src/botan/src/tests/tests.h:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' produced'
    - ' expected'
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 334
    functionName: Botan_Tests::Test::Result::test_is_eq
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 3
    functionsReached:
    - Botan_Tests::Test::Result::test_is_eq
    linkageType: ''
    returnType: bool
    signature: bool test_is_eq(const T& produced, const T& expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/tests.h:343,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.h:343,1
    - Dst: Botan_Tests::Test::Result::to_string
      Src: /src/botan/src/tests/tests.h:345,1
    - Dst: Botan_Tests::Test::Result::to_string
      Src: /src/botan/src/tests/tests.h:345,1
    - Dst: Botan_Tests::Test::Result::test_failure
      Src: /src/botan/src/tests/tests.h:347,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.h:347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ' what'
    - ' produced'
    - ' expected'
    argTypes:
    - std::string
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 349
    functionName: Botan_Tests::Test::Result::test_is_eq
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 3
    functionsReached:
    - std::ostringstream::str
    - test_success
    - Botan_Tests::Test::Result::test_failure
    - Botan_Tests::Test::Result::to_string
    linkageType: ''
    returnType: bool
    signature: bool test_is_eq(const std::string& what, const T& produced, const T&
      expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::Result::test_failure
      Src: /src/botan/src/tests/tests.h:354,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.h:356,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' what'
    - ' ptr'
    argTypes:
    - std::string
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 352
    functionDepth: 2
    functionLinenumber: 352
    functionLinenumberEnd: 358
    functionName: Botan_Tests::Test::Result::test_not_null
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - test_success
    - Botan_Tests::Test::Result::test_failure
    linkageType: ''
    returnType: bool
    signature: bool test_not_null(const std::string& what, const T& ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::Result::test_failure
      Src: /src/botan/src/tests/tests.h:363,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.h:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' what'
    - ' val'
    argTypes:
    - std::string
    - std::optional<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 361
    functionDepth: 2
    functionLinenumber: 361
    functionLinenumberEnd: 367
    functionName: Botan_Tests::Test::Result::test_not_nullopt
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - test_success
    - Botan_Tests::Test::Result::test_failure
    linkageType: ''
    returnType: bool
    signature: bool test_not_nullopt(const std::string& what, const std::optional<T>&
      val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::Result::test_eq
      Src: /src/botan/src/tests/tests.h:386,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/tests.h:386,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/tests.h:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - y
    - what
    argTypes:
    - I1
    - I2
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 385
    functionDepth: 3
    functionLinenumber: 385
    functionLinenumberEnd: 387
    functionName: Botan_Tests::Test::Result::test_int_eq
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::Result::test_eq
    - static_cast<size_t>
    linkageType: ''
    returnType: bool
    signature: bool test_int_eq(I1 x, I2 y, const char* what)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::Result::test_eq
      Src: /src/botan/src/tests/tests.h:391,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/tests.h:391,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/tests.h:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' what'
    - x
    - y
    argTypes:
    - std::string
    - I1
    - I2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 390
    functionDepth: 3
    functionLinenumber: 390
    functionLinenumberEnd: 392
    functionName: Botan_Tests::Test::Result::test_int_eq
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::Result::test_eq
    - static_cast<size_t>
    linkageType: ''
    returnType: bool
    signature: bool test_int_eq(const std::string& what, I1 x, I2 y)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/tests/tests.h:396,1
    - Dst: has_value
      Src: /src/botan/src/tests/tests.h:396,1
    - Dst: Botan_Tests::Test::Result::test_failure
      Src: /src/botan/src/tests/tests.h:399,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.h:399,1
    - Dst: has_value
      Src: /src/botan/src/tests/tests.h:400,1
    - Dst: has_value
      Src: /src/botan/src/tests/tests.h:400,1
    - Dst: Botan_Tests::Test::Result::test_is_eq
      Src: /src/botan/src/tests/tests.h:401,1
    - Dst: value
      Src: /src/botan/src/tests/tests.h:401,1
    - Dst: value
      Src: /src/botan/src/tests/tests.h:401,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.h:404,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - ' what'
    - ' a'
    - ' b'
    argTypes:
    - std::string
    - std::optional<T>
    - std::optional<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 395
    functionDepth: 2
    functionLinenumber: 395
    functionLinenumberEnd: 406
    functionName: Botan_Tests::Test::Result::test_eq
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 10
    functionsReached:
    - test_success
    - std::ostringstream::str
    - Botan_Tests::Test::Result::test_failure
    - Botan_Tests::Test::Result::test_is_eq
    - has_value
    - value
    linkageType: ''
    returnType: bool
    signature: bool test_eq(const std::string& what, const std::optional<T>& a, const
      std::optional<T>& b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::Result::test_failure
      Src: /src/botan/src/tests/tests.h:422,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.h:422,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.h:425,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' func'
    - rc
    argTypes:
    - std::string
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 414
    functionDepth: 2
    functionLinenumber: 414
    functionLinenumberEnd: 426
    functionName: Botan_Tests::Test::Result::test_rc_ok
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - test_success
    - Botan_Tests::Test::Result::test_failure
    linkageType: ''
    returnType: bool
    signature: bool test_rc_ok(const std::string& func, T rc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::Result::test_failure
      Src: /src/botan/src/tests/tests.h:437,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.h:437,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.h:440,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' func'
    - ' why'
    - rc
    argTypes:
    - std::string
    - std::string
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 429
    functionDepth: 2
    functionLinenumber: 429
    functionLinenumberEnd: 441
    functionName: Botan_Tests::Test::Result::test_rc_fail
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - test_success
    - Botan_Tests::Test::Result::test_failure
    linkageType: ''
    returnType: bool
    signature: bool test_rc_fail(const std::string& func, const std::string& why,
      T rc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::Result::test_eq
      Src: /src/botan/src/tests/tests.h:476,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/tests.h:476,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/tests.h:476,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/tests.h:476,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/tests.h:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' what'
    - produced
    - expected
    argTypes:
    - std::string
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 477
    functionName: Botan_Tests::Test::Result::test_eq
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 11
    functionsReached:
    - Botan_Tests::Test::Result::test_eq
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: bool
    signature: "bool test_eq(const std::string& what,\n                         std::span<const
      uint8_t> produced,\n                         std::span<const uint8_t> expected)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::Result::test_eq
      Src: /src/botan/src/tests/tests.h:483,1
    - Dst: c_str
      Src: /src/botan/src/tests/tests.h:484,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/tests.h:484,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/tests.h:484,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/tests.h:484,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/tests.h:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' producer'
    - ' what'
    - produced
    - expected
    argTypes:
    - std::string
    - std::string
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 485
    functionName: Botan_Tests::Test::Result::test_eq
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 12
    functionsReached:
    - Botan_Tests::Test::Result::test_eq
    - std::span<const uint8_t>::data
    - c_str
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: bool
    signature: "bool test_eq(const std::string& producer,\n                         const
      std::string& 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.h:488,1
    - Dst: Botan_Tests::Test::Result::test_eq
      Src: /src/botan/src/tests/tests.h:489,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/tests.h:489,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/tests.h:489,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/tests.h:489,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/tests.h:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' what'
    - produced
    - expected_hex
    argTypes:
    - std::string
    - std::span<const uint8_t>
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 490
    functionName: Botan_Tests::Test::Result::test_eq
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 13
    functionsReached:
    - Botan::hex_decode
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - Botan_Tests::Test::Result::test_eq
    - std::vector::data
    - std::vector::size
    linkageType: ''
    returnType: bool
    signature: bool test_eq(const std::string& what, std::span<const uint8_t> produced,
      const char* expected_hex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::Result::test_eq
      Src: /src/botan/src/tests/tests.h:496,1
    - Dst: data
      Src: /src/botan/src/tests/tests.h:496,1
    - Dst: size
      Src: /src/botan/src/tests/tests.h:496,1
    - Dst: data
      Src: /src/botan/src/tests/tests.h:496,1
    - Dst: size
      Src: /src/botan/src/tests/tests.h:496,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' what'
    - ' produced'
    - ' expected'
    argTypes:
    - std::string
    - std::array<uint8_t, N>
    - std::array<uint8_t, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 497
    functionName: Botan_Tests::Test::Result::test_eq
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 14
    functionsReached:
    - Botan_Tests::Test::Result::test_eq
    - size
    - data
    linkageType: ''
    returnType: bool
    signature: "bool test_eq(const std::string& what,\n                         const
      std::array<uint8_t, N>& produced,\n                         const std::array<uint8_t,
      N>& expected)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::Result::test_ne
      Src: /src/botan/src/tests/tests.h:502,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/tests.h:502,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/tests.h:502,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/tests.h:502,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/tests.h:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' what'
    - produced
    - expected
    argTypes:
    - std::string
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 503
    functionName: Botan_Tests::Test::Result::test_ne
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 2
    functionsReached:
    - std::span<const uint8_t>::data
    - Botan_Tests::Test::Result::test_ne
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: bool
    signature: "bool test_ne(const std::string& what,\n                         std::span<const
      uint8_t> produced,\n                         std::span<const uint8_t> expected)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/tests.h:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - fn
    argTypes:
    - std::function<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 508
    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: 510
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 510
    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: 511
      start: 511
    functionDepth: 0
    functionLinenumber: 511
    functionLinenumberEnd: 511
    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: 512
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 512
    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: 513
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 513
    functionName: '& operator=(ThrowExpectations&&)'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ThrowExpectations
    signature: ThrowExpectations & operator=(ThrowExpectations&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/tests.h:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 515
    functionName: ~ThrowExpectations()
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: void
    signature: void ~ThrowExpectations()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/tests.h:518,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 517
    functionDepth: 1
    functionLinenumber: 517
    functionLinenumberEnd: 521
    functionName: '& expect_success()'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: ThrowExpectations
    signature: ThrowExpectations & expect_success()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/tests.h:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 527
    functionName: '& expect_message(const std::string& message)'
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    linkageType: ''
    returnType: ThrowExpectations
    signature: ThrowExpectations & expect_message(const std::string& message)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/tests.h:531,1
    - Dst: std::rethrow_exception
      Src: /src/botan/src/tests/tests.h:535,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 545
    functionName: Botan_Tests::Test::Result::ThrowExpectations::expect_exception_type
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::rethrow_exception
    linkageType: ''
    returnType: ThrowExpectations
    signature: ThrowExpectations & expect_exception_type()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowExpectations
      Src: /src/botan/src/tests/tests.h:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' what'
    - ' fn'
    argTypes:
    - std::string
    - std::function<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 567
    functionName: Botan_Tests::Test::Result::test_throws
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - ThrowExpectations
    linkageType: ''
    returnType: bool
    signature: bool test_throws(const std::string& what, const std::function<void()>&
      fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowExpectations
      Src: /src/botan/src/tests/tests.h:571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' what'
    - ' expected'
    - ' fn'
    argTypes:
    - std::string
    - std::string
    - std::function<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 573
    functionName: Botan_Tests::Test::Result::test_throws
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - ThrowExpectations
    linkageType: ''
    returnType: bool
    signature: bool test_throws(const std::string& what, const std::string& expected,
      const 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: 575
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 575
    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: 580
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 580
    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: 582
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 582
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: has_value
      Src: /src/botan/src/tests/tests.h:588,1
    - Dst: Botan_Tests::Test::Result::to_string
      Src: /src/botan/src/tests/tests.h:588,1
    - Dst: value
      Src: /src/botan/src/tests/tests.h:588,1
    - Dst: std::string
      Src: /src/botan/src/tests/tests.h:588,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/tests.h:590,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.h:594,1
    - Dst: Botan_Tests::Test::Result::to_string
      Src: /src/botan/src/tests/tests.h:596,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 586
    functionDepth: 1
    functionLinenumber: 586
    functionLinenumberEnd: 600
    functionName: Botan_Tests::Test::Result::to_string
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 4
    functionsReached:
    - std::ostringstream::str
    - std::string
    - Botan::to_string
    - Botan_Tests::Test::Result::to_string
    - has_value
    - value
    linkageType: ''
    returnType: std::string
    signature: std::string to_string(const T& v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 613
    functionName: ~Test()
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 615
    functionDepth: 0
    functionLinenumber: 615
    functionLinenumberEnd: 615
    functionName: Botan_Tests::Test::Test
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Test()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Test
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 616
    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: 617
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 617
    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: 618
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 618
    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: 619
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 619
    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: 627
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 627
    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: 631
      start: 631
    functionDepth: 0
    functionLinenumber: 631
    functionLinenumberEnd: 631
    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:
    - Dst: Botan_Tests::Test::format_time
      Src: /src/botan/src/tests/tests.h:656,1
    - Dst: std::chrono::nanoseconds::count
      Src: /src/botan/src/tests/tests.h:656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nanoseconds
    argTypes:
    - std::chrono::nanoseconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 657
    functionName: Botan_Tests::Test::format_time
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 2
    functionsReached:
    - Botan_Tests::Test::format_time
    - std::chrono::nanoseconds::count
    linkageType: ''
    returnType: std::string
    signature: std::string format_time(const std::chrono::nanoseconds nanoseconds)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/tests.h:666,1
    - Dst: next_byte
      Src: /src/botan/src/tests/tests.h:666,1
    - Dst: next_byte
      Src: /src/botan/src/tests/tests.h:668,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/tests.h:669,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/tests.h:669,1
    - Dst: randomize
      Src: /src/botan/src/tests/tests.h:670,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/tests.h:670,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/tests.h:673,1
    - Dst: std::max<size_t>
      Src: /src/botan/src/tests/tests.h:674,1
    - Dst: next_byte
      Src: /src/botan/src/tests/tests.h:674,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/tests.h:674,1
    - Dst: next_nonzero_byte
      Src: /src/botan/src/tests/tests.h:675,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - ' v'
    - ' rng'
    argTypes:
    - std::vector<uint8_t, Alloc>
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 680
    functionName: Botan_Tests::Test::mutate_vec
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - std::max<size_t>
    - next_byte
    - next_nonzero_byte
    - randomize
    - std::vector::empty
    - std::vector::resize
    - std::vector::size
    linkageType: ''
    returnType: std::vector<uint8_t, Alloc>
    signature: "std::vector<uint8_t, Alloc> mutate_vec(const std::vector<uint8_t,
      Alloc>& v,\n                                                    Botan::RandomNumberGenerator&
      rng,\n                                                    bool maybe_resize
      = false,\n                                                    size_t min_offset
      = 0)"
  - 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: '& 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:688,1
    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_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:690,1
    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_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:692,1
    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: '& 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:734,1
    - Dst: std::make_unique<Test_Class>
      Src: /src/botan/src/tests/tests.h:735,1
    - Dst: auto::initialize
      Src: /src/botan/src/tests/tests.h:736,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: 739
      start: 729
    functionDepth: 1
    functionLinenumber: 729
    functionLinenumberEnd: 739
    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: 747
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 747
    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: 750
      start: 747
    functionDepth: 0
    functionLinenumber: 747
    functionLinenumberEnd: 750
    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: 753
      start: 750
    functionDepth: 0
    functionLinenumber: 750
    functionLinenumberEnd: 753
    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: 756
      start: 753
    functionDepth: 0
    functionLinenumber: 753
    functionLinenumberEnd: 756
    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: 773
      start: 767
    functionDepth: 0
    functionLinenumber: 767
    functionLinenumberEnd: 773
    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:777,1
    - Dst: auto::emplace_back
      Src: /src/botan/src/tests/tests.h:778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' fn'
    argTypes:
    - TestFn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 776
    functionDepth: 1
    functionLinenumber: 776
    functionLinenumberEnd: 780
    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:784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 784
    functionDepth: 1
    functionLinenumber: 784
    functionLinenumberEnd: 784
    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:791,1
    - Dst: crend
      Src: /src/botan/src/tests/tests.h:791,1
    - Dst: std::visit
      Src: /src/botan/src/tests/tests.h:792,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/tests.h:796,1
    - Dst: fn
      Src: /src/botan/src/tests/tests.h:796,1
    - Dst: fn
      Src: /src/botan/src/tests/tests.h:798,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/tests.h:799,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/tests.h:799,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/tests.h:799,1
    - Dst: auto::end
      Src: /src/botan/src/tests/tests.h:799,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 786
    functionDepth: 0
    functionLinenumber: 786
    functionLinenumberEnd: 806
    functionName: Botan_Tests::FnTest::run
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - crbegin
    - fn
    - std::vector::emplace_back
    - auto::end
    - std::vector::end
    - std::visit
    - crend
    - auto::begin
    - std::vector::insert
    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:821,1
    - Dst: std::make_unique<FnTest>
      Src: /src/botan/src/tests/tests.h:822,1
    - Dst: auto::initialize
      Src: /src/botan/src/tests/tests.h:823,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: 826
      start: 815
    functionDepth: 1
    functionLinenumber: 815
    functionLinenumberEnd: 826
    functionName: Botan_Tests::TestFnRegistration::TestFnRegistration
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - std::make_unique<FnTest>
    - auto::initialize
    - 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: 835
      start: 831
    functionDepth: 0
    functionLinenumber: 831
    functionLinenumberEnd: 835
    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: 838
      start: 836
    functionDepth: 0
    functionLinenumber: 836
    functionLinenumberEnd: 838
    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: 840
      start: 838
    functionDepth: 0
    functionLinenumber: 838
    functionLinenumberEnd: 840
    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: 842
      start: 840
    functionDepth: 0
    functionLinenumber: 840
    functionLinenumberEnd: 842
    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: 844
      start: 842
    functionDepth: 0
    functionLinenumber: 842
    functionLinenumberEnd: 844
    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:
    - Dst: Botan_Tests::VarMap::clear
      Src: /src/botan/src/tests/tests.h:849,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 849
    functionDepth: 0
    functionLinenumber: 849
    functionLinenumberEnd: 849
    functionName: Botan_Tests::VarMap::clear
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 2
    functionsReached:
    - Botan_Tests::VarMap::clear
    linkageType: ''
    returnType: void
    signature: void clear()
  - 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: 851
      start: 851
    functionDepth: 0
    functionLinenumber: 851
    functionLinenumberEnd: 851
    functionName: Botan_Tests::VarMap::add
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void add(const std::string& key, const std::string& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: count
      Src: /src/botan/src/tests/tests.h:853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 853
    functionDepth: 0
    functionLinenumber: 853
    functionLinenumberEnd: 853
    functionName: Botan_Tests::VarMap::has_key
    functionSourceFile: /src/botan/src/tests/tests.h
    functionUses: 0
    functionsReached:
    - count
    linkageType: ''
    returnType: bool
    signature: bool has_key(const std::string& key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 905
    functionDepth: 0
    functionLinenumber: 905
    functionLinenumberEnd: 905
    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:916,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 916
    functionDepth: 0
    functionLinenumber: 916
    functionLinenumberEnd: 916
    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:963,1
    - Dst: Botan_Tests::Test::Result::test_failure
      Src: /src/botan/src/tests/tests.h:967,1
    - Dst: what
      Src: /src/botan/src/tests/tests.h:967,1
    - Dst: Botan_Tests::Test::Result::test_failure
      Src: /src/botan/src/tests/tests.h:969,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - name
    - check_fun
    argTypes:
    - char*
    - FunT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 959
    functionDepth: 2
    functionLinenumber: 959
    functionLinenumberEnd: 973
    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_swap
    - Botan_Tests::MP_Unit_Tests::test_cnd_abs
    - Botan_Tests::MP_Unit_Tests::test_cnd_add
    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_int_eq
      Src: /src/botan/src/tests/test_mp.cpp:41,1
    - Dst: Result::test_int_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_int_eq
      Src: /src/botan/src/tests/test_mp.cpp:46,1
    - Dst: Result::test_int_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:
    - Botan::bigint_cnd_add<Botan::word>
    - Result::test_int_eq
    - static_cast<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_int_eq
      Src: /src/botan/src/tests/test_mp.cpp:61,1
    - Dst: Result::test_int_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_int_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_int_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:
    - Botan::bigint_cnd_sub<Botan::word>
    - Result::test_int_eq
    - static_cast<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_int_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_int_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_int_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_int_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_int_eq
      Src: /src/botan/src/tests/test_mp.cpp:96,1
    - Dst: Result::test_int_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_int_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_int_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_int_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_int_eq
      Src: /src/botan/src/tests/test_mp.cpp:124,1
    - Dst: Result::test_int_eq
      Src: /src/botan/src/tests/test_mp.cpp:126,1
    - Dst: Result::test_int_eq
      Src: /src/botan/src/tests/test_mp.cpp:129,1
    - Dst: Result::test_int_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:
    - Result::test_int_eq
    - Botan::bigint_cnd_swap<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_swap
    - Botan_Tests::MP_Unit_Tests::test_cnd_abs
    - Botan_Tests::MP_Unit_Tests::test_cnd_add
    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_int_eq
      Src: /src/botan/src/tests/test_mp.cpp:41,1
    - Dst: Result::test_int_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_int_eq
      Src: /src/botan/src/tests/test_mp.cpp:46,1
    - Dst: Result::test_int_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:
    - Botan::bigint_cnd_add<Botan::word>
    - Result::test_int_eq
    - static_cast<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_int_eq
      Src: /src/botan/src/tests/test_mp.cpp:61,1
    - Dst: Result::test_int_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_int_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_int_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:
    - Botan::bigint_cnd_sub<Botan::word>
    - Result::test_int_eq
    - static_cast<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_int_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_int_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_int_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_int_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_int_eq
      Src: /src/botan/src/tests/test_mp.cpp:96,1
    - Dst: Result::test_int_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_int_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_int_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_int_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_int_eq
      Src: /src/botan/src/tests/test_mp.cpp:124,1
    - Dst: Result::test_int_eq
      Src: /src/botan/src/tests/test_mp.cpp:126,1
    - Dst: Result::test_int_eq
      Src: /src/botan/src/tests/test_mp.cpp:129,1
    - Dst: Result::test_int_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:
    - Result::test_int_eq
    - Botan::bigint_cnd_swap<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_swap
    - Botan_Tests::MP_Unit_Tests::test_cnd_abs
    - Botan_Tests::MP_Unit_Tests::test_cnd_add
    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_int_eq
      Src: /src/botan/src/tests/test_mp.cpp:41,1
    - Dst: Result::test_int_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_int_eq
      Src: /src/botan/src/tests/test_mp.cpp:46,1
    - Dst: Result::test_int_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:
    - Botan::bigint_cnd_add<Botan::word>
    - Result::test_int_eq
    - static_cast<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_int_eq
      Src: /src/botan/src/tests/test_mp.cpp:61,1
    - Dst: Result::test_int_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_int_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_int_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:
    - Botan::bigint_cnd_sub<Botan::word>
    - Result::test_int_eq
    - static_cast<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_int_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_int_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_int_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_int_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_int_eq
      Src: /src/botan/src/tests/test_mp.cpp:96,1
    - Dst: Result::test_int_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_int_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_int_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_int_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_int_eq
      Src: /src/botan/src/tests/test_mp.cpp:124,1
    - Dst: Result::test_int_eq
      Src: /src/botan/src/tests/test_mp.cpp:126,1
    - Dst: Result::test_int_eq
      Src: /src/botan/src/tests/test_mp.cpp:129,1
    - Dst: Result::test_int_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:
    - Result::test_int_eq
    - Botan::bigint_cnd_swap<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_swap
    - Botan_Tests::MP_Unit_Tests::test_cnd_abs
    - Botan_Tests::MP_Unit_Tests::test_cnd_add
    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_int_eq
      Src: /src/botan/src/tests/test_mp.cpp:41,1
    - Dst: Result::test_int_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_int_eq
      Src: /src/botan/src/tests/test_mp.cpp:46,1
    - Dst: Result::test_int_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:
    - Botan::bigint_cnd_add<Botan::word>
    - Result::test_int_eq
    - static_cast<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_int_eq
      Src: /src/botan/src/tests/test_mp.cpp:61,1
    - Dst: Result::test_int_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_int_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_int_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:
    - Botan::bigint_cnd_sub<Botan::word>
    - Result::test_int_eq
    - static_cast<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_int_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_int_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_int_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_int_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_int_eq
      Src: /src/botan/src/tests/test_mp.cpp:96,1
    - Dst: Result::test_int_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_int_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_int_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_int_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_int_eq
      Src: /src/botan/src/tests/test_mp.cpp:124,1
    - Dst: Result::test_int_eq
      Src: /src/botan/src/tests/test_mp.cpp:126,1
    - Dst: Result::test_int_eq
      Src: /src/botan/src/tests/test_mp.cpp:129,1
    - Dst: Result::test_int_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:
    - Result::test_int_eq
    - Botan::bigint_cnd_swap<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:33,1
    - Dst: auto::disable_sending_compat_mode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 41
    functionName: Botan_Tests::record_layer_client
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - auto::disable_sending_compat_mode
    - Botan::TLS::Record_Layer
    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:44,1
    - Dst: auto::disable_receiving_compat_mode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: Botan_Tests::record_layer_server
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - auto::disable_receiving_compat_mode
    - Botan::TLS::Record_Layer
    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: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    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:61,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:64,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:67,1
    - Dst: Botan::TLS::Cipher_State::init_with_server_hello
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:69,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 70
    functionName: Botan_Tests::rfc8448_rtt1_handshake_traffic
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - std::move
    - Botan::hex_decode_locked
    - 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:73,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:84,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:86,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:88,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:90,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:91,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:92,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:92,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:94,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:95,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:96,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:96,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:98,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:98,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:98,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:101,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:103,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:105,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:107,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:109,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:110,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:110,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:111,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:113,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:114,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:114,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:116,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:117,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:117,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:118,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:120,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:121,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:121,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:123,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:123,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:123,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:126,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:128,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:129,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:131,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:132,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:132,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:134,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:135,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:136,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:137,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:137,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:138,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:141,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:141,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:141,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:144,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:145,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:147,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:148,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:150,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:151,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:151,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:153,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:154,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:155,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:156,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:156,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:157,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:160,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:161,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:161,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:163,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:164,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:165,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:165,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:167,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:167,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 72
    functionDepth: 3
    functionLinenumber: 72
    functionLinenumberEnd: 169
    functionName: Botan_Tests::read_full_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - Botan_Tests::CHECK
    - std::holds_alternative<TLS::BytesNeeded>
    - auto::copy_data
    - auto::end
    - Botan::concat
    - require
    - Botan_Tests::record_layer_server
    - Botan::secure_vector<uint8_t>
    - std::holds_alternative<TLS::Record>
    - std::get<TLS::Record>
    - auto::next_record
    - auto::begin
    - confirm
    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:173,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:173,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:174,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:175,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:178,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:180,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:181,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:181,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:182,1
    - Dst: std::get<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:183,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:186,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:189,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:190,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:190,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:192,1
    - Dst: std::get<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:193,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:194,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:197,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:200,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:201,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:201,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:203,1
    - Dst: std::get<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:203,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:206,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:209,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:209,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:212,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:215,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:216,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:217,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:217,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:220,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:223,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:224,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:225,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:229,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:234,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:238,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:239,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:241,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:241,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:244,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:247,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:248,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:249,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:253,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:256,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:257,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:261,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:264,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:265,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:269,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:271,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:272,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:273,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:273,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:275,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:276,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:276,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:278,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:279,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:279,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:281,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:282,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:282,1
    - Dst: auto::disable_receiving_compat_mode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:284,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:286,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:287,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:287,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:289,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:290,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:290,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:293,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:296,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 74
    argCount: 1
    argNames:
    - side
    argTypes:
    - TLS::Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 302
    functionName: Botan_Tests::basic_sanitization_parse_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan_Tests::CHECK
    - std::holds_alternative<TLS::BytesNeeded>
    - test_throws
    - auto::copy_data
    - Botan_Tests::rfc8448_rtt1_handshake_traffic
    - Botan_Tests::record_layer_client
    - test_no_throw
    - auto::get
    - require
    - Botan_Tests::record_layer_server
    - std::vector::resize
    - auto::disable_receiving_compat_mode
    - std::get<TLS::BytesNeeded>
    - auto::next_record
    - std::vector::size
    - confirm
    - parse_records
    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:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 304
    functionDepth: 4
    functionLinenumber: 304
    functionLinenumberEnd: 306
    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:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 308
    functionDepth: 4
    functionLinenumber: 308
    functionLinenumberEnd: 310
    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:313,1
    - Dst: copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:317,1
    - Dst: next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:318,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:319,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:319,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:320,1
    - Dst: std::get<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:320,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:324,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: wait_for_more_bytes
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:332,1
    - Dst: TLS::Record_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:334,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:335,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:336,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:336,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:338,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:339,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:340,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:340,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:342,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:342,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:342,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:345,1
    - Dst: wait_for_more_bytes
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:346,1
    - Dst: TLS::Record_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:348,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:350,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:351,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:351,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:353,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:354,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:355,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:355,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:355,1
    - Dst: wait_for_more_bytes
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:357,1
    - Dst: TLS::Record_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:359,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:360,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:361,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:361,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:363,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:364,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:366,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:366,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:366,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 312
    functionDepth: 3
    functionLinenumber: 312
    functionLinenumberEnd: 368
    functionName: Botan_Tests::read_fragmented_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - TLS::Record_Layer::next_record
    - Botan::hex_decode
    - Botan_Tests::CHECK
    - std::holds_alternative<TLS::BytesNeeded>
    - wait_for_more_bytes
    - Botan_Tests::record_layer_client
    - require
    - TLS::Record_Layer::copy_data
    - std::get<TLS::BytesNeeded>
    - std::holds_alternative<TLS::Record>
    - std::get<TLS::Record>
    - next_record
    - confirm
    - copy_data
    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:371,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:373,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:376,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:376,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:378,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:379,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:381,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:383,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:395,1
    - Dst: require
      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:398,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:398,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:400,1
    - Dst: auto::cbegin
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:400,1
    - Dst: auto::cbegin
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:400,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:401,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:401,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:403,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:407,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:408,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:408,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:410,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:410,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:412,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:414,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:415,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:416,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:419,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:421,1
    - Dst: test_gte
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:423,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:424,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 370
    functionDepth: 3
    functionLinenumber: 370
    functionLinenumberEnd: 427
    functionName: Botan_Tests::write_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - Botan_Tests::CHECK
    - test_throws
    - Botan_Tests::rfc8448_rtt1_handshake_traffic
    - Botan_Tests::record_layer_client
    - auto::get
    - auto::cbegin
    - require
    - test_gte
    - std::vector<uint8_t>
    - std::vector::size
    - auto::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:432,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:441,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:477,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:509,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:510,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:515,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:517,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:518,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:520,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:520,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:521,1
    - Dst: std::holds_alternative<Botan::TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:521,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:522,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:524,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:525,1
    - Dst: auto::fragment::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:525,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:527,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:527,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:527,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:530,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:532,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:533,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:535,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:538,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:541,1
    - Dst: auto::back
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:544,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:546,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:547,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:548,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:549,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:549,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:553,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:555,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:557,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:558,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:559,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:560,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:560,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:564,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:567,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:569,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:571,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:572,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:573,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:573,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:577,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:579,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:581,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:582,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:583,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:584,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:584,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:588,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:590,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:591,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:595,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:596,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:597,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:598,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:598,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:601,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:605,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:606,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:607,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:607,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:610,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:614,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:615,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:616,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:616,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:619,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:623,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:624,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:625,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:625,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:629,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:631,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:632,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:633,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:634,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:634,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:638,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:640,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::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:649,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:651,1
    - Dst: auto::advance_with_server_finished
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:654,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:655,1
    - Dst: auto::advance_with_client_finished
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:656,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:657,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:659,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:660,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:660,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:661,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:661,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:662,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:663,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:663,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:665,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:665,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:666,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:666,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:667,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:668,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:668,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:670,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:670,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:671,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:671,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:672,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:673,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:673,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:675,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:675,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:675,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:678,1
    - Dst: auto::insert
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:683,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:683,1
    - Dst: auto::cbegin
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:683,1
    - Dst: auto::cend
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:683,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:685,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:686,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:688,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:689,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:689,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:690,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:690,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:692,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:693,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:693,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:694,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:694,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:695,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: confirm
      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: confirm
      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: 429
    functionDepth: 3
    functionLinenumber: 429
    functionLinenumberEnd: 716
    functionName: Botan_Tests::read_encrypted_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - auto::back
    - Botan::hex_decode
    - test_eq
    - auto::advance_with_server_finished
    - test_throws
    - Botan_Tests::rfc8448_rtt1_handshake_traffic
    - auto::advance_with_client_finished
    - auto::end
    - auto::get
    - std::get<TLS::Record>
    - parse_records
    - Botan_Tests::CHECK
    - auto::copy_data
    - std::holds_alternative<TLS::Record>
    - auto::cend
    - confirm
    - auto::fragment::size
    - std::holds_alternative<TLS::BytesNeeded>
    - std::vector::at
    - test_no_throw
    - auto::cbegin
    - require
    - auto::insert
    - std::holds_alternative<Botan::TLS::BytesNeeded>
    - Botan_Tests::record_layer_client
    - auto::next_record
    - test_is_eq
    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_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_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:743,1
    - Dst: Botan::hex_decode
      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_is_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_is_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_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: confirm
      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: 3
    functionLinenumber: 718
    functionLinenumberEnd: 772
    functionName: Botan_Tests::write_encrypted_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - Botan_Tests::CHECK
    - Botan_Tests::rfc8448_rtt1_handshake_traffic
    - Botan_Tests::record_layer_client
    - get_byte
    - auto::get
    - static_cast<uint8_t>
    - test_lte
    - require
    - read_record_header
    - get_uint16_t
    - TLS::TLS_Data_Reader::has_remaining
    - TLS::TLS_Data_Reader::discard_next
    - std::vector::size
    - auto::size
    - test_is_eq
    - confirm
    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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: 3
    functionLinenumber: 774
    functionLinenumberEnd: 883
    functionName: Botan_Tests::legacy_version_handling
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - auto::prepare_records
    - test_throws
    - parse_record
    - Botan_Tests::CHECK
    - auto::disable_sending_compat_mode
    - auto::disable_receiving_compat_mode
    - std::vector<uint8_t>
    - confirm
    - copy_data
    - TLS::TLS_Data_Reader::get_uint16_t
    - has_version
    - test_no_throw
    - TLS::TLS_Data_Reader::discard_next
    - Botan_Tests::record_layer_client
    - TLS::TLS_Data_Reader::has_remaining
    - Botan_Tests::record_layer_server
    - TLS::TLS_Data_Reader::assert_done
    - next_record
    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_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_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_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_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_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_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_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_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_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_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_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_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_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: 3
    functionLinenumber: 885
    functionLinenumberEnd: 1020
    functionName: Botan_Tests::record_size_limits
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - test_eq
    - Botan::hex_decode
    - auto::prepare_records
    - Botan::TLS::TLS_Data_Reader::has_remaining
    - test_throws
    - Botan_Tests::rfc8448_rtt1_handshake_traffic
    - auto::get
    - fragment::size
    - Botan::TLS::TLS_Data_Reader::discard_next
    - Botan_Tests::CHECK
    - auto::copy_data
    - std::vector<uint8_t>
    - std::holds_alternative<Botan::TLS::Record>
    - Botan::TLS::TLS_Data_Reader::get_uint16_t
    - std::get<Botan::TLS::Record>
    - Botan::TLS::TLS_Data_Reader::get_tls_length_value
    - record_length
    - auto::set_record_size_limits
    - require
    - count_records
    - Botan_Tests::record_layer_client
    - Botan::concat
    - Botan_Tests::record_layer_server
    - auto::next_record
    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:33,1
    - Dst: auto::disable_sending_compat_mode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 41
    functionName: Botan_Tests::record_layer_client
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 7
    functionsReached:
    - auto::disable_sending_compat_mode
    - Botan::TLS::Record_Layer
    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:44,1
    - Dst: auto::disable_receiving_compat_mode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: Botan_Tests::record_layer_server
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 4
    functionsReached:
    - auto::disable_receiving_compat_mode
    - Botan::TLS::Record_Layer
    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: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    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:61,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:64,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:67,1
    - Dst: Botan::TLS::Cipher_State::init_with_server_hello
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:69,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 70
    functionName: Botan_Tests::rfc8448_rtt1_handshake_traffic
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 5
    functionsReached:
    - Botan::hex_decode
    - std::move
    - Botan::hex_decode_locked
    - 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:73,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:84,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:86,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:88,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:90,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:91,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:92,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:92,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:94,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:95,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:96,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:96,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:98,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:98,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:98,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:101,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:103,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:105,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:107,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:109,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:110,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:110,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:111,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:113,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:114,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:114,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:116,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:117,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:117,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:118,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:120,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:121,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:121,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:123,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:123,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:123,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:126,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:128,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:129,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:131,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:132,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:132,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:134,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:135,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:136,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:137,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:137,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:138,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:141,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:141,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:141,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:144,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:145,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:147,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:148,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:150,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:151,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:151,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:153,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:154,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:155,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:156,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:156,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:157,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:160,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:161,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:161,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:163,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:164,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:165,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:165,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:167,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:167,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 72
    functionDepth: 3
    functionLinenumber: 72
    functionLinenumberEnd: 169
    functionName: Botan_Tests::read_full_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - Botan_Tests::CHECK
    - std::holds_alternative<TLS::BytesNeeded>
    - auto::copy_data
    - auto::end
    - Botan::concat
    - require
    - Botan_Tests::record_layer_server
    - Botan::secure_vector<uint8_t>
    - std::holds_alternative<TLS::Record>
    - std::get<TLS::Record>
    - auto::next_record
    - auto::begin
    - confirm
    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:173,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:173,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:174,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:175,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:178,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:180,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:181,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:181,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:182,1
    - Dst: std::get<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:183,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:186,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:189,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:190,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:190,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:192,1
    - Dst: std::get<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:193,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:194,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:197,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:200,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:201,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:201,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:203,1
    - Dst: std::get<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:203,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:206,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:209,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:209,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:212,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:215,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:216,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:217,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:217,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:220,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:223,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:224,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:225,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:229,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:234,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:238,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:239,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:241,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:241,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:244,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:247,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:248,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:249,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:253,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:256,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:257,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:261,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:264,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:265,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:269,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:271,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:272,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:273,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:273,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:275,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:276,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:276,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:278,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:279,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:279,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:281,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:282,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:282,1
    - Dst: auto::disable_receiving_compat_mode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:284,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:286,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:287,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:287,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:289,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:290,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:290,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:293,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:296,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 74
    argCount: 1
    argNames:
    - side
    argTypes:
    - TLS::Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 302
    functionName: Botan_Tests::basic_sanitization_parse_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 2
    functionsReached:
    - test_eq
    - Botan_Tests::CHECK
    - std::holds_alternative<TLS::BytesNeeded>
    - test_throws
    - auto::copy_data
    - Botan_Tests::rfc8448_rtt1_handshake_traffic
    - Botan_Tests::record_layer_client
    - test_no_throw
    - auto::get
    - require
    - Botan_Tests::record_layer_server
    - std::vector::resize
    - auto::disable_receiving_compat_mode
    - std::get<TLS::BytesNeeded>
    - auto::next_record
    - std::vector::size
    - confirm
    - parse_records
    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:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 304
    functionDepth: 4
    functionLinenumber: 304
    functionLinenumberEnd: 306
    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:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 308
    functionDepth: 4
    functionLinenumber: 308
    functionLinenumberEnd: 310
    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:313,1
    - Dst: copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:317,1
    - Dst: next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:318,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:319,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:319,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:320,1
    - Dst: std::get<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:320,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:324,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: wait_for_more_bytes
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:332,1
    - Dst: TLS::Record_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:334,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:335,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:336,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:336,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:338,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:339,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:340,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:340,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:342,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:342,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:342,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:345,1
    - Dst: wait_for_more_bytes
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:346,1
    - Dst: TLS::Record_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:348,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:350,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:351,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:351,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:353,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:354,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:355,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:355,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:355,1
    - Dst: wait_for_more_bytes
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:357,1
    - Dst: TLS::Record_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:359,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:360,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:361,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:361,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:363,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:364,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:366,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:366,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:366,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 312
    functionDepth: 3
    functionLinenumber: 312
    functionLinenumberEnd: 368
    functionName: Botan_Tests::read_fragmented_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - TLS::Record_Layer::next_record
    - Botan::hex_decode
    - Botan_Tests::CHECK
    - std::holds_alternative<TLS::BytesNeeded>
    - wait_for_more_bytes
    - Botan_Tests::record_layer_client
    - require
    - TLS::Record_Layer::copy_data
    - std::get<TLS::BytesNeeded>
    - std::holds_alternative<TLS::Record>
    - std::get<TLS::Record>
    - next_record
    - confirm
    - copy_data
    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:371,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:373,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:376,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:376,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:378,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:379,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:381,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:383,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:395,1
    - Dst: require
      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:398,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:398,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:400,1
    - Dst: auto::cbegin
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:400,1
    - Dst: auto::cbegin
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:400,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:401,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:401,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:403,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:407,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:408,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:408,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:410,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:410,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:412,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:414,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:415,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:416,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:419,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:421,1
    - Dst: test_gte
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:423,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:424,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 370
    functionDepth: 3
    functionLinenumber: 370
    functionLinenumberEnd: 427
    functionName: Botan_Tests::write_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - Botan_Tests::CHECK
    - test_throws
    - Botan_Tests::rfc8448_rtt1_handshake_traffic
    - Botan_Tests::record_layer_client
    - auto::get
    - auto::cbegin
    - require
    - test_gte
    - std::vector<uint8_t>
    - std::vector::size
    - auto::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:432,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:441,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:477,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:509,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:510,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:515,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:517,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:518,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:520,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:520,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:521,1
    - Dst: std::holds_alternative<Botan::TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:521,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:522,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:524,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:525,1
    - Dst: auto::fragment::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:525,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:527,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:527,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:527,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:530,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:532,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:533,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:535,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:538,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:541,1
    - Dst: auto::back
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:544,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:546,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:547,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:548,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:549,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:549,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:553,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:555,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:557,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:558,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:559,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:560,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:560,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:564,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:567,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:569,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:571,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:572,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:573,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:573,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:577,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:579,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:581,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:582,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:583,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:584,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:584,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:588,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:590,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:591,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:595,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:596,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:597,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:598,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:598,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:601,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:605,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:606,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:607,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:607,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:610,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:614,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:615,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:616,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:616,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:619,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:623,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:624,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:625,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:625,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:629,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:631,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:632,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:633,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:634,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:634,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:638,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:640,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::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:649,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:651,1
    - Dst: auto::advance_with_server_finished
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:654,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:655,1
    - Dst: auto::advance_with_client_finished
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:656,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:657,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:659,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:660,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:660,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:661,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:661,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:662,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:663,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:663,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:665,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:665,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:666,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:666,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:667,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:668,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:668,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:670,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:670,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:671,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:671,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:672,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:673,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:673,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:675,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:675,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:675,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:678,1
    - Dst: auto::insert
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:683,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:683,1
    - Dst: auto::cbegin
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:683,1
    - Dst: auto::cend
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:683,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:685,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:686,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:688,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:689,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:689,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:690,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:690,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:692,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:693,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:693,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:694,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:694,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:695,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: confirm
      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: confirm
      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: 429
    functionDepth: 3
    functionLinenumber: 429
    functionLinenumberEnd: 716
    functionName: Botan_Tests::read_encrypted_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - auto::back
    - Botan::hex_decode
    - test_eq
    - auto::advance_with_server_finished
    - test_throws
    - Botan_Tests::rfc8448_rtt1_handshake_traffic
    - auto::advance_with_client_finished
    - auto::end
    - auto::get
    - std::get<TLS::Record>
    - parse_records
    - Botan_Tests::CHECK
    - auto::copy_data
    - std::holds_alternative<TLS::Record>
    - auto::cend
    - confirm
    - auto::fragment::size
    - std::holds_alternative<TLS::BytesNeeded>
    - std::vector::at
    - test_no_throw
    - auto::cbegin
    - require
    - auto::insert
    - std::holds_alternative<Botan::TLS::BytesNeeded>
    - Botan_Tests::record_layer_client
    - auto::next_record
    - test_is_eq
    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_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_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:743,1
    - Dst: Botan::hex_decode
      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_is_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_is_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_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: confirm
      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: 3
    functionLinenumber: 718
    functionLinenumberEnd: 772
    functionName: Botan_Tests::write_encrypted_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - Botan_Tests::CHECK
    - Botan_Tests::rfc8448_rtt1_handshake_traffic
    - Botan_Tests::record_layer_client
    - get_byte
    - auto::get
    - static_cast<uint8_t>
    - test_lte
    - require
    - read_record_header
    - get_uint16_t
    - TLS::TLS_Data_Reader::has_remaining
    - TLS::TLS_Data_Reader::discard_next
    - std::vector::size
    - auto::size
    - test_is_eq
    - confirm
    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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: 3
    functionLinenumber: 774
    functionLinenumberEnd: 883
    functionName: Botan_Tests::legacy_version_handling
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - auto::prepare_records
    - test_throws
    - parse_record
    - Botan_Tests::CHECK
    - auto::disable_sending_compat_mode
    - auto::disable_receiving_compat_mode
    - std::vector<uint8_t>
    - confirm
    - copy_data
    - TLS::TLS_Data_Reader::get_uint16_t
    - has_version
    - test_no_throw
    - TLS::TLS_Data_Reader::discard_next
    - Botan_Tests::record_layer_client
    - TLS::TLS_Data_Reader::has_remaining
    - Botan_Tests::record_layer_server
    - TLS::TLS_Data_Reader::assert_done
    - next_record
    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_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_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_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_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_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_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_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_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_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_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_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_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_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: 3
    functionLinenumber: 885
    functionLinenumberEnd: 1020
    functionName: Botan_Tests::record_size_limits
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - test_eq
    - Botan::hex_decode
    - auto::prepare_records
    - Botan::TLS::TLS_Data_Reader::has_remaining
    - test_throws
    - Botan_Tests::rfc8448_rtt1_handshake_traffic
    - auto::get
    - fragment::size
    - Botan::TLS::TLS_Data_Reader::discard_next
    - Botan_Tests::CHECK
    - auto::copy_data
    - std::vector<uint8_t>
    - std::holds_alternative<Botan::TLS::Record>
    - Botan::TLS::TLS_Data_Reader::get_uint16_t
    - std::get<Botan::TLS::Record>
    - Botan::TLS::TLS_Data_Reader::get_tls_length_value
    - record_length
    - auto::set_record_size_limits
    - require
    - count_records
    - Botan_Tests::record_layer_client
    - Botan::concat
    - Botan_Tests::record_layer_server
    - auto::next_record
    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:33,1
    - Dst: auto::disable_sending_compat_mode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 41
    functionName: Botan_Tests::record_layer_client
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 14
    functionsReached:
    - auto::disable_sending_compat_mode
    - Botan::TLS::Record_Layer
    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:44,1
    - Dst: auto::disable_receiving_compat_mode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: Botan_Tests::record_layer_server
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 8
    functionsReached:
    - auto::disable_receiving_compat_mode
    - Botan::TLS::Record_Layer
    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: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    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:61,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:64,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:67,1
    - Dst: Botan::TLS::Cipher_State::init_with_server_hello
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:69,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 70
    functionName: Botan_Tests::rfc8448_rtt1_handshake_traffic
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 10
    functionsReached:
    - Botan::hex_decode
    - std::move
    - Botan::hex_decode_locked
    - 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:73,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:84,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:86,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:88,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:90,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:91,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:92,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:92,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:94,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:95,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:96,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:96,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:98,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:98,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:98,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:101,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:103,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:105,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:107,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:109,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:110,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:110,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:111,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:113,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:114,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:114,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:116,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:117,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:117,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:118,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:120,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:121,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:121,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:123,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:123,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:123,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:126,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:128,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:129,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:131,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:132,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:132,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:134,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:135,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:136,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:137,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:137,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:138,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:141,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:141,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:141,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:144,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:145,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:147,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:148,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:150,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:151,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:151,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:153,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:154,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:155,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:156,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:156,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:157,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:160,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:161,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:161,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:163,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:164,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:165,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:165,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:167,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:167,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 72
    functionDepth: 3
    functionLinenumber: 72
    functionLinenumberEnd: 169
    functionName: Botan_Tests::read_full_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - Botan_Tests::CHECK
    - std::holds_alternative<TLS::BytesNeeded>
    - auto::copy_data
    - auto::end
    - Botan::concat
    - require
    - Botan_Tests::record_layer_server
    - Botan::secure_vector<uint8_t>
    - std::holds_alternative<TLS::Record>
    - std::get<TLS::Record>
    - auto::next_record
    - auto::begin
    - confirm
    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:173,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:173,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:174,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:175,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:178,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:180,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:181,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:181,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:182,1
    - Dst: std::get<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:183,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:186,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:189,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:190,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:190,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:192,1
    - Dst: std::get<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:193,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:194,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:197,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:200,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:201,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:201,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:203,1
    - Dst: std::get<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:203,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:206,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:209,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:209,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:212,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:215,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:216,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:217,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:217,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:220,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:223,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:224,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:225,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:229,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:234,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:238,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:239,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:241,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:241,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:244,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:247,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:248,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:249,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:253,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:256,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:257,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:261,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:264,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:265,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:269,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:271,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:272,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:273,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:273,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:275,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:276,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:276,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:278,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:279,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:279,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:281,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:282,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:282,1
    - Dst: auto::disable_receiving_compat_mode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:284,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:286,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:287,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:287,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:289,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:290,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:290,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:293,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:296,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 74
    argCount: 1
    argNames:
    - side
    argTypes:
    - TLS::Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 302
    functionName: Botan_Tests::basic_sanitization_parse_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 4
    functionsReached:
    - test_eq
    - Botan_Tests::CHECK
    - std::holds_alternative<TLS::BytesNeeded>
    - test_throws
    - auto::copy_data
    - Botan_Tests::rfc8448_rtt1_handshake_traffic
    - Botan_Tests::record_layer_client
    - test_no_throw
    - auto::get
    - require
    - Botan_Tests::record_layer_server
    - std::vector::resize
    - auto::disable_receiving_compat_mode
    - std::get<TLS::BytesNeeded>
    - auto::next_record
    - std::vector::size
    - confirm
    - parse_records
    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:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 304
    functionDepth: 4
    functionLinenumber: 304
    functionLinenumberEnd: 306
    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:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 308
    functionDepth: 4
    functionLinenumber: 308
    functionLinenumberEnd: 310
    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:313,1
    - Dst: copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:317,1
    - Dst: next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:318,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:319,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:319,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:320,1
    - Dst: std::get<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:320,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:324,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: wait_for_more_bytes
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:332,1
    - Dst: TLS::Record_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:334,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:335,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:336,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:336,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:338,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:339,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:340,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:340,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:342,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:342,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:342,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:345,1
    - Dst: wait_for_more_bytes
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:346,1
    - Dst: TLS::Record_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:348,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:350,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:351,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:351,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:353,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:354,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:355,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:355,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:355,1
    - Dst: wait_for_more_bytes
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:357,1
    - Dst: TLS::Record_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:359,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:360,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:361,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:361,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:363,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:364,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:366,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:366,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:366,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 312
    functionDepth: 3
    functionLinenumber: 312
    functionLinenumberEnd: 368
    functionName: Botan_Tests::read_fragmented_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - TLS::Record_Layer::next_record
    - Botan::hex_decode
    - Botan_Tests::CHECK
    - std::holds_alternative<TLS::BytesNeeded>
    - wait_for_more_bytes
    - Botan_Tests::record_layer_client
    - require
    - TLS::Record_Layer::copy_data
    - std::get<TLS::BytesNeeded>
    - std::holds_alternative<TLS::Record>
    - std::get<TLS::Record>
    - next_record
    - confirm
    - copy_data
    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:371,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:373,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:376,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:376,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:378,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:379,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:381,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:383,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:395,1
    - Dst: require
      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:398,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:398,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:400,1
    - Dst: auto::cbegin
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:400,1
    - Dst: auto::cbegin
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:400,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:401,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:401,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:403,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:407,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:408,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:408,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:410,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:410,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:412,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:414,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:415,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:416,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:419,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:421,1
    - Dst: test_gte
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:423,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:424,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 370
    functionDepth: 3
    functionLinenumber: 370
    functionLinenumberEnd: 427
    functionName: Botan_Tests::write_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - Botan_Tests::CHECK
    - test_throws
    - Botan_Tests::rfc8448_rtt1_handshake_traffic
    - Botan_Tests::record_layer_client
    - auto::get
    - auto::cbegin
    - require
    - test_gte
    - std::vector<uint8_t>
    - std::vector::size
    - auto::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:432,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:441,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:477,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:509,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:510,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:515,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:517,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:518,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:520,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:520,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:521,1
    - Dst: std::holds_alternative<Botan::TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:521,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:522,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:524,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:525,1
    - Dst: auto::fragment::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:525,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:527,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:527,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:527,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:530,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:532,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:533,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:535,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:538,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:541,1
    - Dst: auto::back
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:544,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:546,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:547,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:548,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:549,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:549,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:553,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:555,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:557,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:558,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:559,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:560,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:560,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:564,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:567,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:569,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:571,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:572,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:573,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:573,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:577,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:579,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:581,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:582,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:583,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:584,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:584,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:588,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:590,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:591,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:595,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:596,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:597,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:598,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:598,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:601,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:605,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:606,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:607,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:607,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:610,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:614,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:615,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:616,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:616,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:619,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:623,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:624,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:625,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:625,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:629,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:631,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:632,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:633,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:634,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:634,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:638,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:640,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::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:649,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:651,1
    - Dst: auto::advance_with_server_finished
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:654,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:655,1
    - Dst: auto::advance_with_client_finished
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:656,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:657,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:659,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:660,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:660,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:661,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:661,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:662,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:663,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:663,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:665,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:665,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:666,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:666,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:667,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:668,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:668,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:670,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:670,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:671,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:671,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:672,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:673,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:673,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:675,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:675,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:675,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:678,1
    - Dst: auto::insert
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:683,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:683,1
    - Dst: auto::cbegin
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:683,1
    - Dst: auto::cend
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:683,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:685,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:686,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:688,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:689,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:689,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:690,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:690,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:692,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:693,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:693,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:694,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:694,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:695,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: confirm
      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: confirm
      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: 429
    functionDepth: 3
    functionLinenumber: 429
    functionLinenumberEnd: 716
    functionName: Botan_Tests::read_encrypted_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - auto::back
    - Botan::hex_decode
    - test_eq
    - auto::advance_with_server_finished
    - test_throws
    - Botan_Tests::rfc8448_rtt1_handshake_traffic
    - auto::advance_with_client_finished
    - auto::end
    - auto::get
    - std::get<TLS::Record>
    - parse_records
    - Botan_Tests::CHECK
    - auto::copy_data
    - std::holds_alternative<TLS::Record>
    - auto::cend
    - confirm
    - auto::fragment::size
    - std::holds_alternative<TLS::BytesNeeded>
    - std::vector::at
    - test_no_throw
    - auto::cbegin
    - require
    - auto::insert
    - std::holds_alternative<Botan::TLS::BytesNeeded>
    - Botan_Tests::record_layer_client
    - auto::next_record
    - test_is_eq
    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_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_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:743,1
    - Dst: Botan::hex_decode
      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_is_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_is_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_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: confirm
      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: 3
    functionLinenumber: 718
    functionLinenumberEnd: 772
    functionName: Botan_Tests::write_encrypted_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - Botan_Tests::CHECK
    - Botan_Tests::rfc8448_rtt1_handshake_traffic
    - Botan_Tests::record_layer_client
    - get_byte
    - auto::get
    - static_cast<uint8_t>
    - test_lte
    - require
    - read_record_header
    - get_uint16_t
    - TLS::TLS_Data_Reader::has_remaining
    - TLS::TLS_Data_Reader::discard_next
    - std::vector::size
    - auto::size
    - test_is_eq
    - confirm
    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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: 3
    functionLinenumber: 774
    functionLinenumberEnd: 883
    functionName: Botan_Tests::legacy_version_handling
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - auto::prepare_records
    - test_throws
    - parse_record
    - Botan_Tests::CHECK
    - auto::disable_sending_compat_mode
    - auto::disable_receiving_compat_mode
    - std::vector<uint8_t>
    - confirm
    - copy_data
    - TLS::TLS_Data_Reader::get_uint16_t
    - has_version
    - test_no_throw
    - TLS::TLS_Data_Reader::discard_next
    - Botan_Tests::record_layer_client
    - TLS::TLS_Data_Reader::has_remaining
    - Botan_Tests::record_layer_server
    - TLS::TLS_Data_Reader::assert_done
    - next_record
    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_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_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_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_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_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_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_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_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_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_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_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_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_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: 3
    functionLinenumber: 885
    functionLinenumberEnd: 1020
    functionName: Botan_Tests::record_size_limits
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - test_eq
    - Botan::hex_decode
    - auto::prepare_records
    - Botan::TLS::TLS_Data_Reader::has_remaining
    - test_throws
    - Botan_Tests::rfc8448_rtt1_handshake_traffic
    - auto::get
    - fragment::size
    - Botan::TLS::TLS_Data_Reader::discard_next
    - Botan_Tests::CHECK
    - auto::copy_data
    - std::vector<uint8_t>
    - std::holds_alternative<Botan::TLS::Record>
    - Botan::TLS::TLS_Data_Reader::get_uint16_t
    - std::get<Botan::TLS::Record>
    - Botan::TLS::TLS_Data_Reader::get_tls_length_value
    - record_length
    - auto::set_record_size_limits
    - require
    - count_records
    - Botan_Tests::record_layer_client
    - Botan::concat
    - Botan_Tests::record_layer_server
    - auto::next_record
    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:33,1
    - Dst: auto::disable_sending_compat_mode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:37,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 41
    functionName: Botan_Tests::record_layer_client
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 21
    functionsReached:
    - auto::disable_sending_compat_mode
    - Botan::TLS::Record_Layer
    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:44,1
    - Dst: auto::disable_receiving_compat_mode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: Botan_Tests::record_layer_server
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 12
    functionsReached:
    - auto::disable_receiving_compat_mode
    - Botan::TLS::Record_Layer
    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: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    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:61,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:64,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:67,1
    - Dst: Botan::TLS::Cipher_State::init_with_server_hello
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:69,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 70
    functionName: Botan_Tests::rfc8448_rtt1_handshake_traffic
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 15
    functionsReached:
    - Botan::hex_decode
    - std::move
    - Botan::hex_decode_locked
    - 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:73,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:84,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:86,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:88,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:90,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:91,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:92,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:92,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:94,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:95,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:96,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:96,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:98,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:98,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:98,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:101,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:103,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:105,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:107,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:109,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:110,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:110,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:111,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:113,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:114,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:114,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:116,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:117,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:117,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:118,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:120,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:121,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:121,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:123,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:123,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:123,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:126,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:128,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:129,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:131,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:132,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:132,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:134,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:135,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:136,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:137,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:137,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:138,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:141,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:141,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:141,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:144,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:145,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:147,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:148,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:150,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:151,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:151,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:153,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:154,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:155,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:156,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:156,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:157,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:160,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:161,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:161,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:163,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:164,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:165,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:165,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:167,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:167,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 72
    functionDepth: 3
    functionLinenumber: 72
    functionLinenumberEnd: 169
    functionName: Botan_Tests::read_full_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - Botan_Tests::CHECK
    - std::holds_alternative<TLS::BytesNeeded>
    - auto::copy_data
    - auto::end
    - Botan::concat
    - require
    - Botan_Tests::record_layer_server
    - Botan::secure_vector<uint8_t>
    - std::holds_alternative<TLS::Record>
    - std::get<TLS::Record>
    - auto::next_record
    - auto::begin
    - confirm
    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:173,1
    - Dst: Botan_Tests::record_layer_server
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:173,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:174,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:175,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:178,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:180,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:181,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:181,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:182,1
    - Dst: std::get<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:183,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:186,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:189,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:190,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:190,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:192,1
    - Dst: std::get<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:193,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:194,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:197,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:200,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:201,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:201,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:203,1
    - Dst: std::get<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:203,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:206,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:209,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:209,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:212,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:215,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:216,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:217,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:217,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:220,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:223,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:224,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:225,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:229,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:234,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:238,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:239,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:241,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:241,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:244,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:247,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:248,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:249,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:253,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:256,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:257,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:261,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:264,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:265,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:269,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:271,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:272,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:273,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:273,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:275,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:276,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:276,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:278,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:279,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:279,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:281,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:282,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:282,1
    - Dst: auto::disable_receiving_compat_mode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:284,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:286,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:287,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:287,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:289,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:290,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:290,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:293,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:296,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 74
    argCount: 1
    argNames:
    - side
    argTypes:
    - TLS::Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 302
    functionName: Botan_Tests::basic_sanitization_parse_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 6
    functionsReached:
    - test_eq
    - Botan_Tests::CHECK
    - std::holds_alternative<TLS::BytesNeeded>
    - test_throws
    - auto::copy_data
    - Botan_Tests::rfc8448_rtt1_handshake_traffic
    - Botan_Tests::record_layer_client
    - test_no_throw
    - auto::get
    - require
    - Botan_Tests::record_layer_server
    - std::vector::resize
    - auto::disable_receiving_compat_mode
    - std::get<TLS::BytesNeeded>
    - auto::next_record
    - std::vector::size
    - confirm
    - parse_records
    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:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 304
    functionDepth: 4
    functionLinenumber: 304
    functionLinenumberEnd: 306
    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:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 308
    functionDepth: 4
    functionLinenumber: 308
    functionLinenumberEnd: 310
    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:313,1
    - Dst: copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:317,1
    - Dst: next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:318,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:319,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:319,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:320,1
    - Dst: std::get<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:320,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:324,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: wait_for_more_bytes
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:332,1
    - Dst: TLS::Record_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:334,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:335,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:336,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:336,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:338,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:339,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:340,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:340,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:342,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:342,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:342,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:345,1
    - Dst: wait_for_more_bytes
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:346,1
    - Dst: TLS::Record_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:348,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:350,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:351,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:351,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:353,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:354,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:355,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:355,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:355,1
    - Dst: wait_for_more_bytes
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:357,1
    - Dst: TLS::Record_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:359,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:360,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:361,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:361,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:363,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:364,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:366,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:366,1
    - Dst: TLS::Record_Layer::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:366,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 312
    functionDepth: 3
    functionLinenumber: 312
    functionLinenumberEnd: 368
    functionName: Botan_Tests::read_fragmented_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - TLS::Record_Layer::next_record
    - Botan::hex_decode
    - Botan_Tests::CHECK
    - std::holds_alternative<TLS::BytesNeeded>
    - wait_for_more_bytes
    - Botan_Tests::record_layer_client
    - require
    - TLS::Record_Layer::copy_data
    - std::get<TLS::BytesNeeded>
    - std::holds_alternative<TLS::Record>
    - std::get<TLS::Record>
    - next_record
    - confirm
    - copy_data
    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:371,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:373,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:376,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:376,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:378,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:379,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:381,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:383,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:395,1
    - Dst: require
      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:398,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:398,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:400,1
    - Dst: auto::cbegin
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:400,1
    - Dst: auto::cbegin
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:400,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:401,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:401,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:403,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:407,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:408,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:408,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:410,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:410,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:412,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:414,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:415,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:416,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:419,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:421,1
    - Dst: test_gte
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:423,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:424,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 370
    functionDepth: 3
    functionLinenumber: 370
    functionLinenumberEnd: 427
    functionName: Botan_Tests::write_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - Botan_Tests::CHECK
    - test_throws
    - Botan_Tests::rfc8448_rtt1_handshake_traffic
    - Botan_Tests::record_layer_client
    - auto::get
    - auto::cbegin
    - require
    - test_gte
    - std::vector<uint8_t>
    - std::vector::size
    - auto::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:432,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:441,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:477,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:509,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:510,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:515,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:517,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:518,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:520,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:520,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:521,1
    - Dst: std::holds_alternative<Botan::TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:521,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:522,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:524,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:525,1
    - Dst: auto::fragment::size
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:525,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:527,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:527,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:527,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:530,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:532,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:533,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:535,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:538,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:541,1
    - Dst: auto::back
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:544,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:546,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:547,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:548,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:549,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:549,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:553,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:555,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:557,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:558,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:559,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:560,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:560,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:564,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:567,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:569,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:571,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:572,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:573,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:573,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:577,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:579,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:581,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:582,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:583,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:584,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:584,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:588,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:590,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:591,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:595,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:596,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:597,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:598,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:598,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:601,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:605,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:606,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:607,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:607,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:610,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:614,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:615,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:616,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:616,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:619,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:623,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:624,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:625,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:625,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:629,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:631,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:632,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:633,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:634,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:634,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:638,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:640,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::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:649,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:651,1
    - Dst: auto::advance_with_server_finished
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:654,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:655,1
    - Dst: auto::advance_with_client_finished
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:656,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:657,1
    - Dst: parse_records
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:659,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:660,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:660,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:661,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:661,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:662,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:663,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:663,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:665,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:665,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:666,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:666,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:667,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:668,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:668,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:670,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:670,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:671,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:671,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:672,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:673,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:673,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:675,1
    - Dst: std::holds_alternative<TLS::BytesNeeded>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:675,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:675,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:678,1
    - Dst: auto::insert
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:683,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:683,1
    - Dst: auto::cbegin
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:683,1
    - Dst: auto::cend
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:683,1
    - Dst: Botan_Tests::record_layer_client
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:685,1
    - Dst: auto::copy_data
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:686,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:688,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:689,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:689,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:690,1
    - Dst: std::get<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:690,1
    - Dst: Botan_Tests::rfc8448_rtt1_handshake_traffic
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:692,1
    - Dst: auto::next_record
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:693,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:693,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:694,1
    - Dst: std::holds_alternative<TLS::Record>
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:694,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:695,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: confirm
      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: confirm
      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: 429
    functionDepth: 3
    functionLinenumber: 429
    functionLinenumberEnd: 716
    functionName: Botan_Tests::read_encrypted_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - auto::back
    - Botan::hex_decode
    - test_eq
    - auto::advance_with_server_finished
    - test_throws
    - Botan_Tests::rfc8448_rtt1_handshake_traffic
    - auto::advance_with_client_finished
    - auto::end
    - auto::get
    - std::get<TLS::Record>
    - parse_records
    - Botan_Tests::CHECK
    - auto::copy_data
    - std::holds_alternative<TLS::Record>
    - auto::cend
    - confirm
    - auto::fragment::size
    - std::holds_alternative<TLS::BytesNeeded>
    - std::vector::at
    - test_no_throw
    - auto::cbegin
    - require
    - auto::insert
    - std::holds_alternative<Botan::TLS::BytesNeeded>
    - Botan_Tests::record_layer_client
    - auto::next_record
    - test_is_eq
    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_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_eq
      Src: /src/botan/src/tests/test_tls_record_layer_13.cpp:743,1
    - Dst: Botan::hex_decode
      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_is_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_is_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_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: confirm
      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: 3
    functionLinenumber: 718
    functionLinenumberEnd: 772
    functionName: Botan_Tests::write_encrypted_records
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - Botan_Tests::CHECK
    - Botan_Tests::rfc8448_rtt1_handshake_traffic
    - Botan_Tests::record_layer_client
    - get_byte
    - auto::get
    - static_cast<uint8_t>
    - test_lte
    - require
    - read_record_header
    - get_uint16_t
    - TLS::TLS_Data_Reader::has_remaining
    - TLS::TLS_Data_Reader::discard_next
    - std::vector::size
    - auto::size
    - test_is_eq
    - confirm
    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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: 3
    functionLinenumber: 774
    functionLinenumberEnd: 883
    functionName: Botan_Tests::legacy_version_handling
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - auto::prepare_records
    - test_throws
    - parse_record
    - Botan_Tests::CHECK
    - auto::disable_sending_compat_mode
    - auto::disable_receiving_compat_mode
    - std::vector<uint8_t>
    - confirm
    - copy_data
    - TLS::TLS_Data_Reader::get_uint16_t
    - has_version
    - test_no_throw
    - TLS::TLS_Data_Reader::discard_next
    - Botan_Tests::record_layer_client
    - TLS::TLS_Data_Reader::has_remaining
    - Botan_Tests::record_layer_server
    - TLS::TLS_Data_Reader::assert_done
    - next_record
    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_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_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_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_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_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_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_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_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_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_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_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_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_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: 3
    functionLinenumber: 885
    functionLinenumberEnd: 1020
    functionName: Botan_Tests::record_size_limits
    functionSourceFile: /src/botan/src/tests/test_tls_record_layer_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - test_eq
    - Botan::hex_decode
    - auto::prepare_records
    - Botan::TLS::TLS_Data_Reader::has_remaining
    - test_throws
    - Botan_Tests::rfc8448_rtt1_handshake_traffic
    - auto::get
    - fragment::size
    - Botan::TLS::TLS_Data_Reader::discard_next
    - Botan_Tests::CHECK
    - auto::copy_data
    - std::vector<uint8_t>
    - std::holds_alternative<Botan::TLS::Record>
    - Botan::TLS::TLS_Data_Reader::get_uint16_t
    - std::get<Botan::TLS::Record>
    - Botan::TLS::TLS_Data_Reader::get_tls_length_value
    - record_length
    - auto::set_record_size_limits
    - require
    - count_records
    - Botan_Tests::record_layer_client
    - Botan::concat
    - Botan_Tests::record_layer_server
    - auto::next_record
    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:26,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ocsp.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 27
    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:30,1
    - Dst: Botan_Tests::Test::read_binary_data_file
      Src: /src/botan/src/tests/test_ocsp.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 0
    functionsReached:
    - Test_No_Shutdown_Response::Test_No_Shutdown_Response
    - Botan_Tests::Test::read_binary_data_file
    linkageType: ''
    returnType: Botan::OCSP::Response
    signature: Botan::OCSP::Response load_test_OCSP_resp(const std::string& path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ocsp.cpp:43,1
    - Dst: Botan::OCSP::Response::status
      Src: /src/botan/src/tests/test_ocsp.cpp:43,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ocsp.cpp:44,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ocsp.cpp:46,1
    - Dst: what
      Src: /src/botan/src/tests/test_ocsp.cpp:46,1
    - Dst: Botan_Tests::Test::read_binary_data_file
      Src: /src/botan/src/tests/test_ocsp.cpp:51,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ocsp.cpp:52,1
    - Dst: Botan::OCSP::Response::status
      Src: /src/botan/src/tests/test_ocsp.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 56
    functionName: Botan_Tests::OCSP_Tests::test_response_parsing
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 0
    functionsReached:
    - Botan::OCSP::Response::status
    - Test::Result::test_failure
    - Botan_Tests::Test::read_binary_data_file
    - Test::Result::confirm
    - what
    - Test::Result::test_success
    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:62,1
    - Dst: Botan::OCSP::Response::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:63,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:64,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:64,1
    - Dst: front
      Src: /src/botan/src/tests/test_ocsp.cpp:65,1
    - Dst: std::make_pair
      Src: /src/botan/src/tests/test_ocsp.cpp:67,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_ocsp.cpp:68,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:69,1
    - Dst: Botan_Tests::Test::read_binary_data_file
      Src: /src/botan/src/tests/test_ocsp.cpp:72,1
    - Dst: Botan::OCSP::Response::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:73,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:74,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:74,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ocsp.cpp:76,1
    - Dst: what
      Src: /src/botan/src/tests/test_ocsp.cpp:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 80
    functionName: Botan_Tests::OCSP_Tests::test_response_certificate_access
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 0
    functionsReached:
    - Botan::OCSP::Response::certificates
    - subject_dn
    - size
    - std::make_pair
    - Test::Result::test_failure
    - Botan_Tests::Test::read_binary_data_file
    - Test::Result::test_eq
    - what
    - front
    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:85,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ocsp.cpp:86,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ocsp.cpp:90,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ocsp.cpp:92,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:99,1
    - Dst: Botan::OCSP::Request::base64_encode
      Src: /src/botan/src/tests/test_ocsp.cpp:99,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/tests/test_ocsp.cpp:101,1
    - Dst: Botan::X509_Certificate::serial_number
      Src: /src/botan/src/tests/test_ocsp.cpp:101,1
    - Dst: Test::Result::test_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
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 105
    functionName: Botan_Tests::OCSP_Tests::test_request_encoding
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Certificate::serial_number
    - Botan_Tests::Test::data_file
    - Test::Result::test_failure
    - Botan::BigInt::from_bytes
    - Test::Result::test_eq
    - Test::Result::test_success
    - Botan::OCSP::Request::base64_encode
    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:113,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:114,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:118,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:123,1
    - Dst: auto::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:123,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:124,1
    - Dst: auto::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:125,1
    - Dst: subject_info
      Src: /src/botan/src/tests/test_ocsp.cpp:125,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:127,1
    - Dst: auto::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:128,1
    - Dst: subject_info
      Src: /src/botan/src/tests/test_ocsp.cpp:128,1
    - Dst: Test_No_Shutdown_Response::Test_No_Shutdown_Response
      Src: /src/botan/src/tests/test_ocsp.cpp:133,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:138,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:139,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:141,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:142,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:142,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:145,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:146,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_ocsp.cpp:147,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:148,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:149,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:152,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:153,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_ocsp.cpp:154,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:156,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:157,1
    - Dst: std::make_unique<Botan::Certificate_Store_In_Memory>
      Src: /src/botan/src/tests/test_ocsp.cpp:159,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:160,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:161,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_ocsp.cpp:161,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_ocsp.cpp:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 165
    functionName: Botan_Tests::OCSP_Tests::test_response_find_signing_certificate
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    - Botan_Tests::OCSP_Tests::load_test_X509_cert
    - std::optional
    - std::make_unique<Botan::Certificate_Store_In_Memory>
    - auto::certificates
    - Test::Result::test_is_eq
    - auto::find_signing_certificate
    - auto::get
    - subject_info
    - Test::Result::test_eq
    - Test_No_Shutdown_Response::Test_No_Shutdown_Response
    - Botan::X509_Certificate
    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:170,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:171,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:172,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:176,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_ocsp.cpp:178,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:179,1
    - Dst: Botan::PKIX::check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:183,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_ocsp.cpp:184,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:186,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:186,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:187,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:187,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ocsp.cpp:188,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ocsp.cpp:188,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_ocsp.cpp:188,1
    - Dst: contains
      Src: /src/botan/src/tests/test_ocsp.cpp:189,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:192,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:192,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:194,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:194,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:196,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:196,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:198,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 202
    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
    - Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - size
    - std::string
    - check_ocsp
    - Test::Result::test_eq
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::Path_Validation_Restrictions
    - Test::Result::confirm
    - Botan::to_string
    - Botan::PKIX::check_ocsp
    - contains
    - Botan::calendar_point
    - auto::size
    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:207,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:208,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:209,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:213,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_ocsp.cpp:215,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:216,1
    - Dst: Botan::minutes
      Src: /src/botan/src/tests/test_ocsp.cpp:219,1
    - Dst: Botan::PKIX::check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:224,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:226,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:226,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:227,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:227,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ocsp.cpp:228,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ocsp.cpp:228,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_ocsp.cpp:228,1
    - Dst: contains
      Src: /src/botan/src/tests/test_ocsp.cpp:229,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:232,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:232,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:234,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:234,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:236,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:236,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:238,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 242
    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
    - Botan::minutes
    - Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - size
    - std::string
    - check_ocsp
    - Test::Result::test_eq
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::to_string
    - Test::Result::confirm
    - contains
    - Botan::PKIX::check_ocsp
    - Botan::calendar_point
    - auto::size
    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:247,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:248,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:249,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:253,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_ocsp.cpp:255,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:256,1
    - Dst: Botan::minutes
      Src: /src/botan/src/tests/test_ocsp.cpp:259,1
    - Dst: Botan::PKIX::check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:264,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:266,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:266,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:267,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:267,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ocsp.cpp:268,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ocsp.cpp:268,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_ocsp.cpp:268,1
    - Dst: contains
      Src: /src/botan/src/tests/test_ocsp.cpp:269,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:272,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:272,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:274,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:274,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:276,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:276,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 280
    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
    - Botan::minutes
    - Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - size
    - std::string
    - check_ocsp
    - Test::Result::test_eq
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::to_string
    - Test::Result::confirm
    - contains
    - Botan::PKIX::check_ocsp
    - Botan::calendar_point
    - auto::size
    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:285,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:286,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:287,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:291,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_ocsp.cpp:293,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:294,1
    - Dst: Botan::PKIX::check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:298,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_ocsp.cpp:299,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:301,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:301,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:302,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:302,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ocsp.cpp:303,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ocsp.cpp:303,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_ocsp.cpp:303,1
    - Dst: contains
      Src: /src/botan/src/tests/test_ocsp.cpp:304,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:307,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:307,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:309,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:309,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:311,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:311,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 315
    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
    - Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - size
    - std::string
    - check_ocsp
    - Test::Result::test_eq
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::Path_Validation_Restrictions
    - Test::Result::confirm
    - Botan::to_string
    - Botan::PKIX::check_ocsp
    - contains
    - Botan::calendar_point
    - auto::size
    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:320,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:321,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:322,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_ocsp.cpp:328,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:329,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:332,1
    - Dst: Botan::PKIX::check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:334,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_ocsp.cpp:334,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:336,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:336,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:337,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:337,1
    - Dst: Test::Result::test_gt
      Src: /src/botan/src/tests/test_ocsp.cpp:338,1
    - Dst: count
      Src: /src/botan/src/tests/test_ocsp.cpp:339,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 317
    functionDepth: 2
    functionLinenumber: 317
    functionLinenumberEnd: 344
    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
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - count
    - size
    - Test::Result::test_eq
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::Path_Validation_Restrictions
    - Botan::calendar_point
    - Test::Result::test_gt
    - Botan::PKIX::check_ocsp
    - auto::size
    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:350,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:351,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_ocsp.cpp:355,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:356,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_ocsp.cpp:358,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/test_ocsp.cpp:359,1
    - Dst: Botan::PKIX::check_ocsp_online
      Src: /src/botan/src/tests/test_ocsp.cpp:360,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_ocsp.cpp:361,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:363,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:363,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:364,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:364,1
    - Dst: contains
      Src: /src/botan/src/tests/test_ocsp.cpp:365,1
    - Dst: contains
      Src: /src/botan/src/tests/test_ocsp.cpp:367,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ocsp.cpp:368,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 347
    functionDepth: 2
    functionLinenumber: 347
    functionLinenumberEnd: 373
    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
    - Botan_CLI::Timer::milliseconds
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - size
    - Botan::TLS::detail::AsyncBase::complete_now
    - Botan::PKIX::check_ocsp_online
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::Path_Validation_Restrictions
    - Test::Result::test_eq
    - contains
    - Test::Result::confirm
    - auto::size
    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:382,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:383,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:384,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_ocsp.cpp:388,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:391,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:392,1
    - Dst: Test::Result::test_is_eq
      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:400,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:401,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_is_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: 376
    functionDepth: 2
    functionLinenumber: 376
    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:
    - Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    - Botan_Tests::OCSP_Tests::load_test_X509_cert
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - auto::verify_signature
    - std::optional
    - Test::Result::test_is_eq
    - auto::find_signing_certificate
    - Botan::Certificate_Store_In_Memory::add_certificate
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_response_verification_with_additionally_trusted_responder()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:415,1
    - Dst: std::find_if
      Src: /src/botan/src/tests/test_ocsp.cpp:417,1
    - Dst: auto::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:417,1
    - Dst: auto::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:417,1
    - Dst: v3_extensions
      Src: /src/botan/src/tests/test_ocsp.cpp:418,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/tests/test_ocsp.cpp:418,1
    - Dst: auto::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:419,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ocsp.cpp:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 412
    functionDepth: 2
    functionLinenumber: 412
    functionLinenumberEnd: 424
    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
    - v3_extensions
    - Test::Result::confirm
    - Botan::OID::from_string
    - std::find_if
    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:430,1
    - Dst: Botan_Tests::OCSP_Tests::test_request_encoding
      Src: /src/botan/src/tests/test_ocsp.cpp:430,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:431,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_parsing
      Src: /src/botan/src/tests/test_ocsp.cpp:431,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:432,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_certificate_access
      Src: /src/botan/src/tests/test_ocsp.cpp:432,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:433,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:433,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:434,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_verification_with_next_update_without_max_age
      Src: /src/botan/src/tests/test_ocsp.cpp:434,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:435,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_verification_with_next_update_with_max_age
      Src: /src/botan/src/tests/test_ocsp.cpp:435,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:436,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_verification_without_next_update_with_max_age
      Src: /src/botan/src/tests/test_ocsp.cpp:436,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:437,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_verification_without_next_update_without_max_age
      Src: /src/botan/src/tests/test_ocsp.cpp:437,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:438,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_verification_softfail
      Src: /src/botan/src/tests/test_ocsp.cpp:438,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:439,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_verification_with_additionally_trusted_responder
      Src: /src/botan/src/tests/test_ocsp.cpp:439,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:440,1
    - Dst: Botan_Tests::OCSP_Tests::test_responder_cert_with_nocheck_extension
      Src: /src/botan/src/tests/test_ocsp.cpp:440,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_ocsp.cpp:443,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:444,1
    - Dst: Botan_Tests::OCSP_Tests::test_online_request
      Src: /src/botan/src/tests/test_ocsp.cpp:444,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 427
    functionDepth: 3
    functionLinenumber: 427
    functionLinenumberEnd: 449
    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_with_max_age
    - std::vector::push_back
    - Botan_Tests::OCSP_Tests::test_response_verification_with_next_update_with_max_age
    - Botan_Tests::OCSP_Tests::test_responder_cert_with_nocheck_extension
    - Botan_Tests::OCSP_Tests::test_response_find_signing_certificate
    - Botan_Tests::test_encoding_options
    - Botan_Tests::OCSP_Tests::test_response_verification_with_additionally_trusted_responder
    - Botan_Tests::OCSP_Tests::test_response_certificate_access
    - Botan_Tests::OCSP_Tests::test_response_verification_softfail
    - Botan_Tests::OCSP_Tests::test_request_encoding
    - Botan_Tests::OCSP_Tests::test_response_parsing
    - Botan_Tests::OCSP_Tests::test_online_request
    - Botan_Tests::OCSP_Tests::test_response_verification_with_next_update_without_max_age
    - Botan_Tests::OCSP_Tests::test_response_verification_without_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:26,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ocsp.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: Botan_Tests::OCSP_Tests::load_test_X509_cert
    functionSourceFile: /src/botan/src/tests/test_ocsp.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_ocsp.cpp:30,1
    - Dst: Botan_Tests::Test::read_binary_data_file
      Src: /src/botan/src/tests/test_ocsp.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 7
    functionsReached:
    - Test_No_Shutdown_Response::Test_No_Shutdown_Response
    - Botan_Tests::Test::read_binary_data_file
    linkageType: ''
    returnType: Botan::OCSP::Response
    signature: Botan::OCSP::Response load_test_OCSP_resp(const std::string& path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ocsp.cpp:43,1
    - Dst: Botan::OCSP::Response::status
      Src: /src/botan/src/tests/test_ocsp.cpp:43,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ocsp.cpp:44,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ocsp.cpp:46,1
    - Dst: what
      Src: /src/botan/src/tests/test_ocsp.cpp:46,1
    - Dst: Botan_Tests::Test::read_binary_data_file
      Src: /src/botan/src/tests/test_ocsp.cpp:51,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ocsp.cpp:52,1
    - Dst: Botan::OCSP::Response::status
      Src: /src/botan/src/tests/test_ocsp.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 56
    functionName: Botan_Tests::OCSP_Tests::test_response_parsing
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 1
    functionsReached:
    - Botan::OCSP::Response::status
    - Test::Result::test_failure
    - Botan_Tests::Test::read_binary_data_file
    - Test::Result::confirm
    - what
    - Test::Result::test_success
    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:62,1
    - Dst: Botan::OCSP::Response::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:63,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:64,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:64,1
    - Dst: front
      Src: /src/botan/src/tests/test_ocsp.cpp:65,1
    - Dst: std::make_pair
      Src: /src/botan/src/tests/test_ocsp.cpp:67,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_ocsp.cpp:68,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:69,1
    - Dst: Botan_Tests::Test::read_binary_data_file
      Src: /src/botan/src/tests/test_ocsp.cpp:72,1
    - Dst: Botan::OCSP::Response::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:73,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:74,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:74,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ocsp.cpp:76,1
    - Dst: what
      Src: /src/botan/src/tests/test_ocsp.cpp:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 80
    functionName: Botan_Tests::OCSP_Tests::test_response_certificate_access
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 1
    functionsReached:
    - Botan::OCSP::Response::certificates
    - subject_dn
    - size
    - std::make_pair
    - Test::Result::test_failure
    - Botan_Tests::Test::read_binary_data_file
    - Test::Result::test_eq
    - what
    - front
    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:85,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ocsp.cpp:86,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ocsp.cpp:90,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ocsp.cpp:92,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:99,1
    - Dst: Botan::OCSP::Request::base64_encode
      Src: /src/botan/src/tests/test_ocsp.cpp:99,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/tests/test_ocsp.cpp:101,1
    - Dst: Botan::X509_Certificate::serial_number
      Src: /src/botan/src/tests/test_ocsp.cpp:101,1
    - Dst: Test::Result::test_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
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 105
    functionName: Botan_Tests::OCSP_Tests::test_request_encoding
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 1
    functionsReached:
    - Botan::X509_Certificate::serial_number
    - Botan_Tests::Test::data_file
    - Test::Result::test_failure
    - Botan::BigInt::from_bytes
    - Test::Result::test_eq
    - Test::Result::test_success
    - Botan::OCSP::Request::base64_encode
    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:113,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:114,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:118,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:123,1
    - Dst: auto::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:123,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:124,1
    - Dst: auto::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:125,1
    - Dst: subject_info
      Src: /src/botan/src/tests/test_ocsp.cpp:125,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:127,1
    - Dst: auto::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:128,1
    - Dst: subject_info
      Src: /src/botan/src/tests/test_ocsp.cpp:128,1
    - Dst: Test_No_Shutdown_Response::Test_No_Shutdown_Response
      Src: /src/botan/src/tests/test_ocsp.cpp:133,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:138,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:139,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:141,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:142,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:142,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:145,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:146,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_ocsp.cpp:147,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:148,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:149,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:152,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:153,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_ocsp.cpp:154,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:156,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:157,1
    - Dst: std::make_unique<Botan::Certificate_Store_In_Memory>
      Src: /src/botan/src/tests/test_ocsp.cpp:159,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:160,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:161,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_ocsp.cpp:161,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_ocsp.cpp:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 165
    functionName: Botan_Tests::OCSP_Tests::test_response_find_signing_certificate
    functionSourceFile: /src/botan/src/tests/test_ocsp.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    - Botan_Tests::OCSP_Tests::load_test_X509_cert
    - std::optional
    - std::make_unique<Botan::Certificate_Store_In_Memory>
    - auto::certificates
    - Test::Result::test_is_eq
    - auto::find_signing_certificate
    - auto::get
    - subject_info
    - Test::Result::test_eq
    - Test_No_Shutdown_Response::Test_No_Shutdown_Response
    - Botan::X509_Certificate
    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:170,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:171,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:172,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:176,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_ocsp.cpp:178,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:179,1
    - Dst: Botan::PKIX::check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:183,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_ocsp.cpp:184,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:186,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:186,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:187,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:187,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ocsp.cpp:188,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ocsp.cpp:188,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_ocsp.cpp:188,1
    - Dst: contains
      Src: /src/botan/src/tests/test_ocsp.cpp:189,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:192,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:192,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:194,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:194,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:196,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:196,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:198,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 202
    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
    - Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - size
    - std::string
    - check_ocsp
    - Test::Result::test_eq
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::Path_Validation_Restrictions
    - Test::Result::confirm
    - Botan::to_string
    - Botan::PKIX::check_ocsp
    - contains
    - Botan::calendar_point
    - auto::size
    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:207,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:208,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:209,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:213,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_ocsp.cpp:215,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:216,1
    - Dst: Botan::minutes
      Src: /src/botan/src/tests/test_ocsp.cpp:219,1
    - Dst: Botan::PKIX::check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:224,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:226,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:226,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:227,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:227,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ocsp.cpp:228,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ocsp.cpp:228,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_ocsp.cpp:228,1
    - Dst: contains
      Src: /src/botan/src/tests/test_ocsp.cpp:229,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:232,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:232,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:234,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:234,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:236,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:236,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:238,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 204
    functionDepth: 2
    functionLinenumber: 204
    functionLinenumberEnd: 242
    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
    - Botan::minutes
    - Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - size
    - std::string
    - check_ocsp
    - Test::Result::test_eq
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::to_string
    - Test::Result::confirm
    - contains
    - Botan::PKIX::check_ocsp
    - Botan::calendar_point
    - auto::size
    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:247,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:248,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:249,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:253,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_ocsp.cpp:255,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:256,1
    - Dst: Botan::minutes
      Src: /src/botan/src/tests/test_ocsp.cpp:259,1
    - Dst: Botan::PKIX::check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:264,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:266,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:266,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:267,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:267,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ocsp.cpp:268,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ocsp.cpp:268,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_ocsp.cpp:268,1
    - Dst: contains
      Src: /src/botan/src/tests/test_ocsp.cpp:269,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:272,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:272,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:274,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:274,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:276,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:276,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 244
    functionDepth: 2
    functionLinenumber: 244
    functionLinenumberEnd: 280
    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
    - Botan::minutes
    - Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - size
    - std::string
    - check_ocsp
    - Test::Result::test_eq
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::to_string
    - Test::Result::confirm
    - contains
    - Botan::PKIX::check_ocsp
    - Botan::calendar_point
    - auto::size
    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:285,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:286,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:287,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:291,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_ocsp.cpp:293,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:294,1
    - Dst: Botan::PKIX::check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:298,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_ocsp.cpp:299,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:301,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:301,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:302,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:302,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ocsp.cpp:303,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ocsp.cpp:303,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_ocsp.cpp:303,1
    - Dst: contains
      Src: /src/botan/src/tests/test_ocsp.cpp:304,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:307,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:307,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:309,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:309,1
    - Dst: check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:311,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:311,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 315
    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
    - Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - size
    - std::string
    - check_ocsp
    - Test::Result::test_eq
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::Path_Validation_Restrictions
    - Test::Result::confirm
    - Botan::to_string
    - Botan::PKIX::check_ocsp
    - contains
    - Botan::calendar_point
    - auto::size
    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:320,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:321,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:322,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_ocsp.cpp:328,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:329,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_ocsp.cpp:332,1
    - Dst: Botan::PKIX::check_ocsp
      Src: /src/botan/src/tests/test_ocsp.cpp:334,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_ocsp.cpp:334,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:336,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:336,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:337,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:337,1
    - Dst: Test::Result::test_gt
      Src: /src/botan/src/tests/test_ocsp.cpp:338,1
    - Dst: count
      Src: /src/botan/src/tests/test_ocsp.cpp:339,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 317
    functionDepth: 2
    functionLinenumber: 317
    functionLinenumberEnd: 344
    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
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - count
    - size
    - Test::Result::test_eq
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::Path_Validation_Restrictions
    - Botan::calendar_point
    - Test::Result::test_gt
    - Botan::PKIX::check_ocsp
    - auto::size
    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:350,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:351,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_ocsp.cpp:355,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:356,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_ocsp.cpp:358,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/test_ocsp.cpp:359,1
    - Dst: Botan::PKIX::check_ocsp_online
      Src: /src/botan/src/tests/test_ocsp.cpp:360,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_ocsp.cpp:361,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:363,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ocsp.cpp:363,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:364,1
    - Dst: size
      Src: /src/botan/src/tests/test_ocsp.cpp:364,1
    - Dst: contains
      Src: /src/botan/src/tests/test_ocsp.cpp:365,1
    - Dst: contains
      Src: /src/botan/src/tests/test_ocsp.cpp:367,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ocsp.cpp:368,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 347
    functionDepth: 2
    functionLinenumber: 347
    functionLinenumberEnd: 373
    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
    - Botan_CLI::Timer::milliseconds
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - size
    - Botan::TLS::detail::AsyncBase::complete_now
    - Botan::PKIX::check_ocsp_online
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::Path_Validation_Restrictions
    - Test::Result::test_eq
    - contains
    - Test::Result::confirm
    - auto::size
    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:382,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:383,1
    - Dst: Botan_Tests::OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_ocsp.cpp:384,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_ocsp.cpp:388,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:391,1
    - Dst: auto::find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:392,1
    - Dst: Test::Result::test_is_eq
      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:400,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_ocsp.cpp:401,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_is_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: 376
    functionDepth: 2
    functionLinenumber: 376
    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:
    - Botan_Tests::OCSP_Tests::load_test_OCSP_resp
    - Botan_Tests::OCSP_Tests::load_test_X509_cert
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - auto::verify_signature
    - std::optional
    - Test::Result::test_is_eq
    - auto::find_signing_certificate
    - Botan::Certificate_Store_In_Memory::add_certificate
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_response_verification_with_additionally_trusted_responder()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_ocsp.cpp:415,1
    - Dst: std::find_if
      Src: /src/botan/src/tests/test_ocsp.cpp:417,1
    - Dst: auto::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:417,1
    - Dst: auto::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:417,1
    - Dst: v3_extensions
      Src: /src/botan/src/tests/test_ocsp.cpp:418,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/tests/test_ocsp.cpp:418,1
    - Dst: auto::certificates
      Src: /src/botan/src/tests/test_ocsp.cpp:419,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ocsp.cpp:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 412
    functionDepth: 2
    functionLinenumber: 412
    functionLinenumberEnd: 424
    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
    - v3_extensions
    - Test::Result::confirm
    - Botan::OID::from_string
    - std::find_if
    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:430,1
    - Dst: Botan_Tests::OCSP_Tests::test_request_encoding
      Src: /src/botan/src/tests/test_ocsp.cpp:430,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:431,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_parsing
      Src: /src/botan/src/tests/test_ocsp.cpp:431,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:432,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_certificate_access
      Src: /src/botan/src/tests/test_ocsp.cpp:432,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:433,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_find_signing_certificate
      Src: /src/botan/src/tests/test_ocsp.cpp:433,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:434,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_verification_with_next_update_without_max_age
      Src: /src/botan/src/tests/test_ocsp.cpp:434,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:435,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_verification_with_next_update_with_max_age
      Src: /src/botan/src/tests/test_ocsp.cpp:435,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:436,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_verification_without_next_update_with_max_age
      Src: /src/botan/src/tests/test_ocsp.cpp:436,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:437,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_verification_without_next_update_without_max_age
      Src: /src/botan/src/tests/test_ocsp.cpp:437,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:438,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_verification_softfail
      Src: /src/botan/src/tests/test_ocsp.cpp:438,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:439,1
    - Dst: Botan_Tests::OCSP_Tests::test_response_verification_with_additionally_trusted_responder
      Src: /src/botan/src/tests/test_ocsp.cpp:439,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:440,1
    - Dst: Botan_Tests::OCSP_Tests::test_responder_cert_with_nocheck_extension
      Src: /src/botan/src/tests/test_ocsp.cpp:440,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_ocsp.cpp:443,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ocsp.cpp:444,1
    - Dst: Botan_Tests::OCSP_Tests::test_online_request
      Src: /src/botan/src/tests/test_ocsp.cpp:444,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 427
    functionDepth: 3
    functionLinenumber: 427
    functionLinenumberEnd: 449
    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_with_max_age
    - std::vector::push_back
    - Botan_Tests::OCSP_Tests::test_response_verification_with_next_update_with_max_age
    - Botan_Tests::OCSP_Tests::test_responder_cert_with_nocheck_extension
    - Botan_Tests::OCSP_Tests::test_response_find_signing_certificate
    - Botan_Tests::test_encoding_options
    - Botan_Tests::OCSP_Tests::test_response_verification_with_additionally_trusted_responder
    - Botan_Tests::OCSP_Tests::test_response_certificate_access
    - Botan_Tests::OCSP_Tests::test_response_verification_softfail
    - Botan_Tests::OCSP_Tests::test_request_encoding
    - Botan_Tests::OCSP_Tests::test_response_parsing
    - Botan_Tests::OCSP_Tests::test_online_request
    - Botan_Tests::OCSP_Tests::test_response_verification_with_next_update_without_max_age
    - Botan_Tests::OCSP_Tests::test_response_verification_without_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_eq
      Src: /src/botan/src/tests/test_oid.cpp:51,1
    - Dst: Botan::OID::to_string
      Src: /src/botan/src/tests/test_oid.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 54
    functionName: Botan_Tests::test_OID_to_string
    functionSourceFile: /src/botan/src/tests/test_oid.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_eq
    - Botan::OID::to_string
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_OID_to_string()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_oid.cpp:62,1
    - Dst: Botan::OID::from_name
      Src: /src/botan/src/tests/test_oid.cpp:62,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_oid.cpp:64,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_oid.cpp:66,1
    - Dst: Botan::OID::from_name
      Src: /src/botan/src/tests/test_oid.cpp:66,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_oid.cpp:68,1
    - Dst: Botan::OID::to_formatted_string
      Src: /src/botan/src/tests/test_oid.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 71
    functionName: Botan_Tests::test_oid_registration
    functionSourceFile: /src/botan/src/tests/test_oid.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::register_oid
    - Test::Result::test_eq
    - Botan::OID::from_name
    - Botan::OID::to_formatted_string
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_oid_registration()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_oid.cpp:81,1
    - Dst: Botan::OID::from_name
      Src: /src/botan/src/tests/test_oid.cpp:81,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_oid.cpp:83,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_oid.cpp:85,1
    - Dst: Botan::OID::from_name
      Src: /src/botan/src/tests/test_oid.cpp:85,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_oid.cpp:85,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_oid.cpp:86,1
    - Dst: Botan::OID::to_formatted_string
      Src: /src/botan/src/tests/test_oid.cpp:86,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_oid.cpp:89,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_oid.cpp:95,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_oid.cpp:98,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_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_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: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 111
    functionName: Botan_Tests::test_add_and_lookup
    functionSourceFile: /src/botan/src/tests/test_oid.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::register_oid
    - Test::Result::test_failure
    - Botan::OID::to_formatted_string
    - Test::Result::test_eq
    - Test::Result::test_success
    - Test::Result::confirm
    - Botan::EC_Group::from_OID
    - Botan::OID::from_name
    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_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_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:
    - Botan::OID::OID
    - Botan::BER_Decoder::verify_end
    - Test::Result::test_failure
    - Botan::DER_Encoder::encode
    - Botan::BER_Decoder::decode
    - Test::Result::test_eq
    - what
    - Botan::OID::to_string
    - get_req_bin
    - get_req_str
    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:
    - get_req_bin
    - Botan::BER_Decoder::verify_end
    - Test::Result::test_failure
    - Botan::BER_Decoder::decode
    - Botan::OID::to_string
    - Botan::OID::OID
    - Test::Result::test_success
    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_eq
      Src: /src/botan/src/tests/test_oid.cpp:51,1
    - Dst: Botan::OID::to_string
      Src: /src/botan/src/tests/test_oid.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 54
    functionName: Botan_Tests::test_OID_to_string
    functionSourceFile: /src/botan/src/tests/test_oid.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_eq
    - Botan::OID::to_string
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_OID_to_string()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_oid.cpp:62,1
    - Dst: Botan::OID::from_name
      Src: /src/botan/src/tests/test_oid.cpp:62,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_oid.cpp:64,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_oid.cpp:66,1
    - Dst: Botan::OID::from_name
      Src: /src/botan/src/tests/test_oid.cpp:66,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_oid.cpp:68,1
    - Dst: Botan::OID::to_formatted_string
      Src: /src/botan/src/tests/test_oid.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 71
    functionName: Botan_Tests::test_oid_registration
    functionSourceFile: /src/botan/src/tests/test_oid.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::register_oid
    - Test::Result::test_eq
    - Botan::OID::from_name
    - Botan::OID::to_formatted_string
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_oid_registration()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_oid.cpp:81,1
    - Dst: Botan::OID::from_name
      Src: /src/botan/src/tests/test_oid.cpp:81,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_oid.cpp:83,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_oid.cpp:85,1
    - Dst: Botan::OID::from_name
      Src: /src/botan/src/tests/test_oid.cpp:85,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_oid.cpp:85,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_oid.cpp:86,1
    - Dst: Botan::OID::to_formatted_string
      Src: /src/botan/src/tests/test_oid.cpp:86,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_oid.cpp:89,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_oid.cpp:95,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_oid.cpp:98,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_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_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: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 111
    functionName: Botan_Tests::test_add_and_lookup
    functionSourceFile: /src/botan/src/tests/test_oid.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::register_oid
    - Test::Result::test_failure
    - Botan::OID::to_formatted_string
    - Test::Result::test_eq
    - Test::Result::test_success
    - Test::Result::confirm
    - Botan::EC_Group::from_OID
    - Botan::OID::from_name
    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_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_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:
    - Botan::OID::OID
    - Botan::BER_Decoder::verify_end
    - Test::Result::test_failure
    - Botan::DER_Encoder::encode
    - Botan::BER_Decoder::decode
    - Test::Result::test_eq
    - what
    - Botan::OID::to_string
    - get_req_bin
    - get_req_str
    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:
    - get_req_bin
    - Botan::BER_Decoder::verify_end
    - Test::Result::test_failure
    - Botan::BER_Decoder::decode
    - Botan::OID::to_string
    - Botan::OID::OID
    - Test::Result::test_success
    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_eq
      Src: /src/botan/src/tests/test_oid.cpp:51,1
    - Dst: Botan::OID::to_string
      Src: /src/botan/src/tests/test_oid.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 54
    functionName: Botan_Tests::test_OID_to_string
    functionSourceFile: /src/botan/src/tests/test_oid.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_eq
    - Botan::OID::to_string
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_OID_to_string()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_oid.cpp:62,1
    - Dst: Botan::OID::from_name
      Src: /src/botan/src/tests/test_oid.cpp:62,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_oid.cpp:64,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_oid.cpp:66,1
    - Dst: Botan::OID::from_name
      Src: /src/botan/src/tests/test_oid.cpp:66,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_oid.cpp:68,1
    - Dst: Botan::OID::to_formatted_string
      Src: /src/botan/src/tests/test_oid.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 71
    functionName: Botan_Tests::test_oid_registration
    functionSourceFile: /src/botan/src/tests/test_oid.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::register_oid
    - Test::Result::test_eq
    - Botan::OID::from_name
    - Botan::OID::to_formatted_string
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_oid_registration()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_oid.cpp:81,1
    - Dst: Botan::OID::from_name
      Src: /src/botan/src/tests/test_oid.cpp:81,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_oid.cpp:83,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_oid.cpp:85,1
    - Dst: Botan::OID::from_name
      Src: /src/botan/src/tests/test_oid.cpp:85,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_oid.cpp:85,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_oid.cpp:86,1
    - Dst: Botan::OID::to_formatted_string
      Src: /src/botan/src/tests/test_oid.cpp:86,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_oid.cpp:89,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_oid.cpp:95,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_oid.cpp:98,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_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_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: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 111
    functionName: Botan_Tests::test_add_and_lookup
    functionSourceFile: /src/botan/src/tests/test_oid.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::register_oid
    - Test::Result::test_failure
    - Botan::OID::to_formatted_string
    - Test::Result::test_eq
    - Test::Result::test_success
    - Test::Result::confirm
    - Botan::EC_Group::from_OID
    - Botan::OID::from_name
    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_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_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:
    - Botan::OID::OID
    - Botan::BER_Decoder::verify_end
    - Test::Result::test_failure
    - Botan::DER_Encoder::encode
    - Botan::BER_Decoder::decode
    - Test::Result::test_eq
    - what
    - Botan::OID::to_string
    - get_req_bin
    - get_req_str
    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:
    - get_req_bin
    - Botan::BER_Decoder::verify_end
    - Test::Result::test_failure
    - Botan::BER_Decoder::decode
    - Botan::OID::to_string
    - Botan::OID::OID
    - Test::Result::test_success
    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_eq
      Src: /src/botan/src/tests/test_oid.cpp:51,1
    - Dst: Botan::OID::to_string
      Src: /src/botan/src/tests/test_oid.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 54
    functionName: Botan_Tests::test_OID_to_string
    functionSourceFile: /src/botan/src/tests/test_oid.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_eq
    - Botan::OID::to_string
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_OID_to_string()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_oid.cpp:62,1
    - Dst: Botan::OID::from_name
      Src: /src/botan/src/tests/test_oid.cpp:62,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_oid.cpp:64,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_oid.cpp:66,1
    - Dst: Botan::OID::from_name
      Src: /src/botan/src/tests/test_oid.cpp:66,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_oid.cpp:68,1
    - Dst: Botan::OID::to_formatted_string
      Src: /src/botan/src/tests/test_oid.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 71
    functionName: Botan_Tests::test_oid_registration
    functionSourceFile: /src/botan/src/tests/test_oid.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::register_oid
    - Test::Result::test_eq
    - Botan::OID::from_name
    - Botan::OID::to_formatted_string
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_oid_registration()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_oid.cpp:81,1
    - Dst: Botan::OID::from_name
      Src: /src/botan/src/tests/test_oid.cpp:81,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_oid.cpp:83,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_oid.cpp:85,1
    - Dst: Botan::OID::from_name
      Src: /src/botan/src/tests/test_oid.cpp:85,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_oid.cpp:85,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_oid.cpp:86,1
    - Dst: Botan::OID::to_formatted_string
      Src: /src/botan/src/tests/test_oid.cpp:86,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_oid.cpp:89,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_oid.cpp:95,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_oid.cpp:98,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_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_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: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 111
    functionName: Botan_Tests::test_add_and_lookup
    functionSourceFile: /src/botan/src/tests/test_oid.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::register_oid
    - Test::Result::test_failure
    - Botan::OID::to_formatted_string
    - Test::Result::test_eq
    - Test::Result::test_success
    - Test::Result::confirm
    - Botan::EC_Group::from_OID
    - Botan::OID::from_name
    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_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_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:
    - Botan::OID::OID
    - Botan::BER_Decoder::verify_end
    - Test::Result::test_failure
    - Botan::DER_Encoder::encode
    - Botan::BER_Decoder::decode
    - Test::Result::test_eq
    - what
    - Botan::OID::to_string
    - get_req_bin
    - get_req_str
    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:
    - get_req_bin
    - Botan::BER_Decoder::verify_end
    - Test::Result::test_failure
    - Botan::BER_Decoder::decode
    - Botan::OID::to_string
    - Botan::OID::OID
    - Test::Result::test_success
    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: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    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: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    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:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' group_id'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 28
    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:31,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdh.cpp:32,1
    - Dst: std::make_unique<Botan::ECDH_PrivateKey>
      Src: /src/botan/src/tests/test_ecdh.cpp:33,1
    - Dst: Botan_Tests::ECDH_KAT_Tests::rng
      Src: /src/botan/src/tests/test_ecdh.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' group_id'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: Botan_Tests::ECDH_KAT_Tests::load_our_key
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached:
    - get_req_bn
    - Botan::EC_Group::from_name
    - std::make_unique<Botan::ECDH_PrivateKey>
    - Botan_Tests::ECDH_KAT_Tests::rng
    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:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    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: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    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: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    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:53,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/test_ecdh.cpp:54,1
    - Dst: std::make_unique<Botan::ECDH_PublicKey>
      Src: /src/botan/src/tests/test_ecdh.cpp:55,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: 56
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: Botan_Tests::ECDH_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_AffinePoint::EC_AffinePoint
    - std::make_unique<Botan::ECDH_PublicKey>
    - Botan::EC_Group
    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:64,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_ecdh.cpp:67,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecdh.cpp:72,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecdh.cpp:75,1
    - Dst: Botan::EC_Scalar::one
      Src: /src/botan/src/tests/test_ecdh.cpp:76,1
    - Dst: ECDH_PrivateKey
      Src: /src/botan/src/tests/test_ecdh.cpp:78,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecdh.cpp:82,1
    - Dst: Botan::EC_AffinePoint::identity
      Src: /src/botan/src/tests/test_ecdh.cpp:83,1
    - Dst: Botan::ECDH_PublicKey
      Src: /src/botan/src/tests/test_ecdh.cpp:84,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecdh.cpp:88,1
    - Dst: ECDH_PrivateKey
      Src: /src/botan/src/tests/test_ecdh.cpp:89,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecdh.cpp:89,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_ecdh.cpp:92,1
    - Dst: Botan::ECDH_PrivateKey::public_value
      Src: /src/botan/src/tests/test_ecdh.cpp:97,1
    - Dst: Botan::ECDH_PrivateKey::public_value
      Src: /src/botan/src/tests/test_ecdh.cpp:100,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_ecdh.cpp:103,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_ecdh.cpp:106,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecdh.cpp:108,1
    - Dst: auto::bits_of
      Src: /src/botan/src/tests/test_ecdh.cpp:108,1
    - Dst: auto::bits_of
      Src: /src/botan/src/tests/test_ecdh.cpp:108,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecdh.cpp:111,1
    - Dst: what
      Src: /src/botan/src/tests/test_ecdh.cpp:111,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_ecdh.cpp:114,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ecdh.cpp:116,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 120
    functionName: Botan_Tests::ECDH_AllGroups_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::test_throws
    - rng
    - auto::bits_of
    - Botan::ECDH_PrivateKey::public_value
    - Test::Result::end_timer
    - Botan::EC_Group::known_named_groups
    - ECDH_PrivateKey
    - Botan::EC_Scalar::one
    - Botan::PK_Key_Agreement::derive_key
    - Test::Result::test_failure
    - std::vector::push_back
    - Botan::EC_Group::from_name
    - Test::Result::test_eq
    - what
    - Botan::ECDH_PublicKey
    - Botan::EC_AffinePoint::identity
    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: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    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: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    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:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' group_id'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 28
    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:31,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdh.cpp:32,1
    - Dst: std::make_unique<Botan::ECDH_PrivateKey>
      Src: /src/botan/src/tests/test_ecdh.cpp:33,1
    - Dst: Botan_Tests::ECDH_KAT_Tests::rng
      Src: /src/botan/src/tests/test_ecdh.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' group_id'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: Botan_Tests::ECDH_KAT_Tests::load_our_key
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached:
    - get_req_bn
    - Botan::EC_Group::from_name
    - std::make_unique<Botan::ECDH_PrivateKey>
    - Botan_Tests::ECDH_KAT_Tests::rng
    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:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    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: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    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: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    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:53,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/test_ecdh.cpp:54,1
    - Dst: std::make_unique<Botan::ECDH_PublicKey>
      Src: /src/botan/src/tests/test_ecdh.cpp:55,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: 56
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: Botan_Tests::ECDH_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_AffinePoint::EC_AffinePoint
    - std::make_unique<Botan::ECDH_PublicKey>
    - Botan::EC_Group
    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:64,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_ecdh.cpp:67,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecdh.cpp:72,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecdh.cpp:75,1
    - Dst: Botan::EC_Scalar::one
      Src: /src/botan/src/tests/test_ecdh.cpp:76,1
    - Dst: ECDH_PrivateKey
      Src: /src/botan/src/tests/test_ecdh.cpp:78,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecdh.cpp:82,1
    - Dst: Botan::EC_AffinePoint::identity
      Src: /src/botan/src/tests/test_ecdh.cpp:83,1
    - Dst: Botan::ECDH_PublicKey
      Src: /src/botan/src/tests/test_ecdh.cpp:84,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecdh.cpp:88,1
    - Dst: ECDH_PrivateKey
      Src: /src/botan/src/tests/test_ecdh.cpp:89,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecdh.cpp:89,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_ecdh.cpp:92,1
    - Dst: Botan::ECDH_PrivateKey::public_value
      Src: /src/botan/src/tests/test_ecdh.cpp:97,1
    - Dst: Botan::ECDH_PrivateKey::public_value
      Src: /src/botan/src/tests/test_ecdh.cpp:100,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_ecdh.cpp:103,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_ecdh.cpp:106,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecdh.cpp:108,1
    - Dst: auto::bits_of
      Src: /src/botan/src/tests/test_ecdh.cpp:108,1
    - Dst: auto::bits_of
      Src: /src/botan/src/tests/test_ecdh.cpp:108,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecdh.cpp:111,1
    - Dst: what
      Src: /src/botan/src/tests/test_ecdh.cpp:111,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_ecdh.cpp:114,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ecdh.cpp:116,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 120
    functionName: Botan_Tests::ECDH_AllGroups_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::test_throws
    - rng
    - auto::bits_of
    - Botan::ECDH_PrivateKey::public_value
    - Test::Result::end_timer
    - Botan::EC_Group::known_named_groups
    - ECDH_PrivateKey
    - Botan::EC_Scalar::one
    - Botan::PK_Key_Agreement::derive_key
    - Test::Result::test_failure
    - std::vector::push_back
    - Botan::EC_Group::from_name
    - Test::Result::test_eq
    - what
    - Botan::ECDH_PublicKey
    - Botan::EC_AffinePoint::identity
    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: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    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: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    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:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' group_id'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 28
    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:31,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdh.cpp:32,1
    - Dst: std::make_unique<Botan::ECDH_PrivateKey>
      Src: /src/botan/src/tests/test_ecdh.cpp:33,1
    - Dst: Botan_Tests::ECDH_KAT_Tests::rng
      Src: /src/botan/src/tests/test_ecdh.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' group_id'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: Botan_Tests::ECDH_KAT_Tests::load_our_key
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached:
    - get_req_bn
    - Botan::EC_Group::from_name
    - std::make_unique<Botan::ECDH_PrivateKey>
    - Botan_Tests::ECDH_KAT_Tests::rng
    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:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    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: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    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: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    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:53,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/test_ecdh.cpp:54,1
    - Dst: std::make_unique<Botan::ECDH_PublicKey>
      Src: /src/botan/src/tests/test_ecdh.cpp:55,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: 56
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: Botan_Tests::ECDH_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_AffinePoint::EC_AffinePoint
    - std::make_unique<Botan::ECDH_PublicKey>
    - Botan::EC_Group
    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:64,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_ecdh.cpp:67,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecdh.cpp:72,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecdh.cpp:75,1
    - Dst: Botan::EC_Scalar::one
      Src: /src/botan/src/tests/test_ecdh.cpp:76,1
    - Dst: ECDH_PrivateKey
      Src: /src/botan/src/tests/test_ecdh.cpp:78,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecdh.cpp:82,1
    - Dst: Botan::EC_AffinePoint::identity
      Src: /src/botan/src/tests/test_ecdh.cpp:83,1
    - Dst: Botan::ECDH_PublicKey
      Src: /src/botan/src/tests/test_ecdh.cpp:84,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecdh.cpp:88,1
    - Dst: ECDH_PrivateKey
      Src: /src/botan/src/tests/test_ecdh.cpp:89,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecdh.cpp:89,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_ecdh.cpp:92,1
    - Dst: Botan::ECDH_PrivateKey::public_value
      Src: /src/botan/src/tests/test_ecdh.cpp:97,1
    - Dst: Botan::ECDH_PrivateKey::public_value
      Src: /src/botan/src/tests/test_ecdh.cpp:100,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_ecdh.cpp:103,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_ecdh.cpp:106,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecdh.cpp:108,1
    - Dst: auto::bits_of
      Src: /src/botan/src/tests/test_ecdh.cpp:108,1
    - Dst: auto::bits_of
      Src: /src/botan/src/tests/test_ecdh.cpp:108,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecdh.cpp:111,1
    - Dst: what
      Src: /src/botan/src/tests/test_ecdh.cpp:111,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_ecdh.cpp:114,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ecdh.cpp:116,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 120
    functionName: Botan_Tests::ECDH_AllGroups_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::test_throws
    - rng
    - auto::bits_of
    - Botan::ECDH_PrivateKey::public_value
    - Test::Result::end_timer
    - Botan::EC_Group::known_named_groups
    - ECDH_PrivateKey
    - Botan::EC_Scalar::one
    - Botan::PK_Key_Agreement::derive_key
    - Test::Result::test_failure
    - std::vector::push_back
    - Botan::EC_Group::from_name
    - Test::Result::test_eq
    - what
    - Botan::ECDH_PublicKey
    - Botan::EC_AffinePoint::identity
    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: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    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: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    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:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' group_id'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 28
    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:31,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdh.cpp:32,1
    - Dst: std::make_unique<Botan::ECDH_PrivateKey>
      Src: /src/botan/src/tests/test_ecdh.cpp:33,1
    - Dst: Botan_Tests::ECDH_KAT_Tests::rng
      Src: /src/botan/src/tests/test_ecdh.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' group_id'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: Botan_Tests::ECDH_KAT_Tests::load_our_key
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached:
    - get_req_bn
    - Botan::EC_Group::from_name
    - std::make_unique<Botan::ECDH_PrivateKey>
    - Botan_Tests::ECDH_KAT_Tests::rng
    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:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    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: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    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: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    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:53,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/test_ecdh.cpp:54,1
    - Dst: std::make_unique<Botan::ECDH_PublicKey>
      Src: /src/botan/src/tests/test_ecdh.cpp:55,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: 56
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: Botan_Tests::ECDH_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_AffinePoint::EC_AffinePoint
    - std::make_unique<Botan::ECDH_PublicKey>
    - Botan::EC_Group
    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:64,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_ecdh.cpp:67,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecdh.cpp:72,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecdh.cpp:75,1
    - Dst: Botan::EC_Scalar::one
      Src: /src/botan/src/tests/test_ecdh.cpp:76,1
    - Dst: ECDH_PrivateKey
      Src: /src/botan/src/tests/test_ecdh.cpp:78,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecdh.cpp:82,1
    - Dst: Botan::EC_AffinePoint::identity
      Src: /src/botan/src/tests/test_ecdh.cpp:83,1
    - Dst: Botan::ECDH_PublicKey
      Src: /src/botan/src/tests/test_ecdh.cpp:84,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecdh.cpp:88,1
    - Dst: ECDH_PrivateKey
      Src: /src/botan/src/tests/test_ecdh.cpp:89,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecdh.cpp:89,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_ecdh.cpp:92,1
    - Dst: Botan::ECDH_PrivateKey::public_value
      Src: /src/botan/src/tests/test_ecdh.cpp:97,1
    - Dst: Botan::ECDH_PrivateKey::public_value
      Src: /src/botan/src/tests/test_ecdh.cpp:100,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_ecdh.cpp:103,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_ecdh.cpp:106,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecdh.cpp:108,1
    - Dst: auto::bits_of
      Src: /src/botan/src/tests/test_ecdh.cpp:108,1
    - Dst: auto::bits_of
      Src: /src/botan/src/tests/test_ecdh.cpp:108,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecdh.cpp:111,1
    - Dst: what
      Src: /src/botan/src/tests/test_ecdh.cpp:111,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_ecdh.cpp:114,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ecdh.cpp:116,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 120
    functionName: Botan_Tests::ECDH_AllGroups_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ecdh.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::test_throws
    - rng
    - auto::bits_of
    - Botan::ECDH_PrivateKey::public_value
    - Test::Result::end_timer
    - Botan::EC_Group::known_named_groups
    - ECDH_PrivateKey
    - Botan::EC_Scalar::one
    - Botan::PK_Key_Agreement::derive_key
    - Test::Result::test_failure
    - std::vector::push_back
    - Botan::EC_Group::from_name
    - Test::Result::test_eq
    - what
    - Botan::ECDH_PublicKey
    - Botan::EC_AffinePoint::identity
    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_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_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_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_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_eq
      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::check_signature
    - Botan_Tests::Test::data_file
    - Botan::X509_Certificate::authority_key_id
    - Botan::X509_Certificate::subject_public_key
    - Test::Result::test_failure
    - Test::Result::test_eq
    - Botan::X509_Certificate::signature_algorithm
    - Botan::EC_Group::supports_application_specific_group
    - what
    - Botan::X509_Certificate::serial_number
    - Botan::X509_Certificate::fingerprint
    - 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::confirm
      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::X509_Certificate::subject_public_key
    - Botan::EC_Group::supports_application_specific_group
    - Test::Result::confirm
    - 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::confirm
      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::confirm
      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
    - Test::Result::test_failure
    - Botan::X509_Certificate::subject_public_key
    - Botan::EC_Group::supports_application_specific_group
    - Test::Result::confirm
    - what
    - Botan::HashFunction::create
    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::confirm
      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::confirm
      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_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_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::confirm
      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_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: 2
    functionsReached:
    - Test::Result::test_lt
    - Botan::EC_Group::known_named_groups
    - Test::Result::test_failure
    - Botan::ECDSA_PrivateKey::set_point_encoding
    - Botan::EC_Group::from_name
    - Botan::ECDSA_PrivateKey::public_key_bits
    - Test::Result::test_eq
    - Test::Result::confirm
    - Test::Result::test_gte
    - auto::get_p_bytes
    - what
    - Botan_Tests::Test::new_rng
    - std::vector::size
    - Botan::ECDSA_PrivateKey::point_encoding
    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::confirm
      Src: /src/botan/src/tests/unit_ecdsa.cpp:149,1
    - Dst: Test::Result::test_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::confirm
      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:
    - Botan::EC_Group::supports_named_group
    - dynamic_cast<Botan::ECDSA_PrivateKey*>
    - Botan_Tests::Test::data_file
    - Test::Result::test_failure
    - Botan::PKCS8::load_key
    - auto::get
    - Test::Result::test_eq
    - Test::Result::confirm
    - what
    - auto::algo_name
    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::confirm
      Src: /src/botan/src/tests/unit_ecdsa.cpp:168,1
    - Dst: Test::Result::test_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::confirm
      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:
    - Botan::EC_Group::supports_named_group
    - dynamic_cast<Botan::ECDSA_PrivateKey*>
    - Botan_Tests::Test::data_file
    - Test::Result::test_failure
    - Botan::PKCS8::load_key
    - auto::get
    - Test::Result::test_eq
    - Test::Result::confirm
    - what
    - auto::algo_name
    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:
    - std::vector::push_back
    - test_ecc_key_with_rfc5915_extensions
    - test_ecc_key_with_rfc5915_parameters
    - test_decode_ver_link_SHA256
    - test_decode_ecdsa_X509
    - test_decode_ver_link_SHA1
    - test_encoding_options
    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_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_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_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_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_eq
      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::check_signature
    - Botan_Tests::Test::data_file
    - Botan::X509_Certificate::authority_key_id
    - Botan::X509_Certificate::subject_public_key
    - Test::Result::test_failure
    - Test::Result::test_eq
    - Botan::X509_Certificate::signature_algorithm
    - Botan::EC_Group::supports_application_specific_group
    - what
    - Botan::X509_Certificate::serial_number
    - Botan::X509_Certificate::fingerprint
    - 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::confirm
      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::X509_Certificate::subject_public_key
    - Botan::EC_Group::supports_application_specific_group
    - Test::Result::confirm
    - 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::confirm
      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::confirm
      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
    - Test::Result::test_failure
    - Botan::X509_Certificate::subject_public_key
    - Botan::EC_Group::supports_application_specific_group
    - Test::Result::confirm
    - what
    - Botan::HashFunction::create
    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::confirm
      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::confirm
      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_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_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::confirm
      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_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: 2
    functionsReached:
    - Test::Result::test_lt
    - Botan::EC_Group::known_named_groups
    - Test::Result::test_failure
    - Botan::ECDSA_PrivateKey::set_point_encoding
    - Botan::EC_Group::from_name
    - Botan::ECDSA_PrivateKey::public_key_bits
    - Test::Result::test_eq
    - Test::Result::confirm
    - Test::Result::test_gte
    - auto::get_p_bytes
    - what
    - Botan_Tests::Test::new_rng
    - std::vector::size
    - Botan::ECDSA_PrivateKey::point_encoding
    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::confirm
      Src: /src/botan/src/tests/unit_ecdsa.cpp:149,1
    - Dst: Test::Result::test_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::confirm
      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:
    - Botan::EC_Group::supports_named_group
    - dynamic_cast<Botan::ECDSA_PrivateKey*>
    - Botan_Tests::Test::data_file
    - Test::Result::test_failure
    - Botan::PKCS8::load_key
    - auto::get
    - Test::Result::test_eq
    - Test::Result::confirm
    - what
    - auto::algo_name
    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::confirm
      Src: /src/botan/src/tests/unit_ecdsa.cpp:168,1
    - Dst: Test::Result::test_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::confirm
      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:
    - Botan::EC_Group::supports_named_group
    - dynamic_cast<Botan::ECDSA_PrivateKey*>
    - Botan_Tests::Test::data_file
    - Test::Result::test_failure
    - Botan::PKCS8::load_key
    - auto::get
    - Test::Result::test_eq
    - Test::Result::confirm
    - what
    - auto::algo_name
    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:
    - std::vector::push_back
    - test_ecc_key_with_rfc5915_extensions
    - test_ecc_key_with_rfc5915_parameters
    - test_decode_ver_link_SHA256
    - test_decode_ecdsa_X509
    - test_decode_ver_link_SHA1
    - test_encoding_options
    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_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_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_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_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_eq
      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::check_signature
    - Botan_Tests::Test::data_file
    - Botan::X509_Certificate::authority_key_id
    - Botan::X509_Certificate::subject_public_key
    - Test::Result::test_failure
    - Test::Result::test_eq
    - Botan::X509_Certificate::signature_algorithm
    - Botan::EC_Group::supports_application_specific_group
    - what
    - Botan::X509_Certificate::serial_number
    - Botan::X509_Certificate::fingerprint
    - 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::confirm
      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::X509_Certificate::subject_public_key
    - Botan::EC_Group::supports_application_specific_group
    - Test::Result::confirm
    - 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::confirm
      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::confirm
      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
    - Test::Result::test_failure
    - Botan::X509_Certificate::subject_public_key
    - Botan::EC_Group::supports_application_specific_group
    - Test::Result::confirm
    - what
    - Botan::HashFunction::create
    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::confirm
      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::confirm
      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_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_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::confirm
      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_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: 2
    functionsReached:
    - Test::Result::test_lt
    - Botan::EC_Group::known_named_groups
    - Test::Result::test_failure
    - Botan::ECDSA_PrivateKey::set_point_encoding
    - Botan::EC_Group::from_name
    - Botan::ECDSA_PrivateKey::public_key_bits
    - Test::Result::test_eq
    - Test::Result::confirm
    - Test::Result::test_gte
    - auto::get_p_bytes
    - what
    - Botan_Tests::Test::new_rng
    - std::vector::size
    - Botan::ECDSA_PrivateKey::point_encoding
    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::confirm
      Src: /src/botan/src/tests/unit_ecdsa.cpp:149,1
    - Dst: Test::Result::test_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::confirm
      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:
    - Botan::EC_Group::supports_named_group
    - dynamic_cast<Botan::ECDSA_PrivateKey*>
    - Botan_Tests::Test::data_file
    - Test::Result::test_failure
    - Botan::PKCS8::load_key
    - auto::get
    - Test::Result::test_eq
    - Test::Result::confirm
    - what
    - auto::algo_name
    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::confirm
      Src: /src/botan/src/tests/unit_ecdsa.cpp:168,1
    - Dst: Test::Result::test_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::confirm
      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:
    - Botan::EC_Group::supports_named_group
    - dynamic_cast<Botan::ECDSA_PrivateKey*>
    - Botan_Tests::Test::data_file
    - Test::Result::test_failure
    - Botan::PKCS8::load_key
    - auto::get
    - Test::Result::test_eq
    - Test::Result::confirm
    - what
    - auto::algo_name
    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:
    - std::vector::push_back
    - test_ecc_key_with_rfc5915_extensions
    - test_ecc_key_with_rfc5915_parameters
    - test_decode_ver_link_SHA256
    - test_decode_ecdsa_X509
    - test_decode_ver_link_SHA1
    - test_encoding_options
    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_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_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_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_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_eq
      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::check_signature
    - Botan_Tests::Test::data_file
    - Botan::X509_Certificate::authority_key_id
    - Botan::X509_Certificate::subject_public_key
    - Test::Result::test_failure
    - Test::Result::test_eq
    - Botan::X509_Certificate::signature_algorithm
    - Botan::EC_Group::supports_application_specific_group
    - what
    - Botan::X509_Certificate::serial_number
    - Botan::X509_Certificate::fingerprint
    - 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::confirm
      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::X509_Certificate::subject_public_key
    - Botan::EC_Group::supports_application_specific_group
    - Test::Result::confirm
    - 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::confirm
      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::confirm
      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
    - Test::Result::test_failure
    - Botan::X509_Certificate::subject_public_key
    - Botan::EC_Group::supports_application_specific_group
    - Test::Result::confirm
    - what
    - Botan::HashFunction::create
    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::confirm
      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::confirm
      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_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_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::confirm
      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_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: 2
    functionsReached:
    - Test::Result::test_lt
    - Botan::EC_Group::known_named_groups
    - Test::Result::test_failure
    - Botan::ECDSA_PrivateKey::set_point_encoding
    - Botan::EC_Group::from_name
    - Botan::ECDSA_PrivateKey::public_key_bits
    - Test::Result::test_eq
    - Test::Result::confirm
    - Test::Result::test_gte
    - auto::get_p_bytes
    - what
    - Botan_Tests::Test::new_rng
    - std::vector::size
    - Botan::ECDSA_PrivateKey::point_encoding
    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::confirm
      Src: /src/botan/src/tests/unit_ecdsa.cpp:149,1
    - Dst: Test::Result::test_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::confirm
      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:
    - Botan::EC_Group::supports_named_group
    - dynamic_cast<Botan::ECDSA_PrivateKey*>
    - Botan_Tests::Test::data_file
    - Test::Result::test_failure
    - Botan::PKCS8::load_key
    - auto::get
    - Test::Result::test_eq
    - Test::Result::confirm
    - what
    - auto::algo_name
    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::confirm
      Src: /src/botan/src/tests/unit_ecdsa.cpp:168,1
    - Dst: Test::Result::test_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::confirm
      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:
    - Botan::EC_Group::supports_named_group
    - dynamic_cast<Botan::ECDSA_PrivateKey*>
    - Botan_Tests::Test::data_file
    - Test::Result::test_failure
    - Botan::PKCS8::load_key
    - auto::get
    - Test::Result::test_eq
    - Test::Result::confirm
    - what
    - auto::algo_name
    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:
    - std::vector::push_back
    - test_ecc_key_with_rfc5915_extensions
    - test_ecc_key_with_rfc5915_parameters
    - test_decode_ver_link_SHA256
    - test_decode_ecdsa_X509
    - test_decode_ver_link_SHA1
    - test_encoding_options
    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: 19
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 19
    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:22,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_pad.cpp:23,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_pad.cpp:24,1
    - Dst: std::string::find
      Src: /src/botan/src/tests/test_pad.cpp:28,1
    - Dst: std::string::substr
      Src: /src/botan/src/tests/test_pad.cpp:30,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pad.cpp:31,1
    - Dst: std::string::resize
      Src: /src/botan/src/tests/test_pad.cpp:33,1
    - Dst: Botan::BlockCipherModePaddingMethod::create
      Src: /src/botan/src/tests/test_pad.cpp:38,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pad.cpp:41,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_pad.cpp:45,1
    - Dst: auto::unpad
      Src: /src/botan/src/tests/test_pad.cpp:47,1
    - Dst: last
      Src: /src/botan/src/tests/test_pad.cpp:47,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pad.cpp:48,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_pad.cpp:48,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pad.cpp:50,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_pad.cpp:54,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_pad.cpp:54,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_pad.cpp:55,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_pad.cpp:55,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pad.cpp:56,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pad.cpp:56,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/tests/test_pad.cpp:59,1
    - Dst: auto::add_padding
      Src: /src/botan/src/tests/test_pad.cpp:60,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pad.cpp:60,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pad.cpp:61,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_pad.cpp:63,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_pad.cpp:63,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_pad.cpp:63,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_pad.cpp:67,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_pad.cpp:67,1
    - Dst: auto::unpad
      Src: /src/botan/src/tests/test_pad.cpp:68,1
    - Dst: last
      Src: /src/botan/src/tests/test_pad.cpp:68,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pad.cpp:69,1
    - Dst: auto::unpad
      Src: /src/botan/src/tests/test_pad.cpp:72,1
    - Dst: last
      Src: /src/botan/src/tests/test_pad.cpp:72,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/tests/test_pad.cpp:76,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_pad.cpp:76,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pad.cpp:77,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 81
    functionName: Botan_Tests::Cipher_Mode_Padding_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pad.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - Botan::secure_vector::resize
    - Test::Result::test_failure
    - std::vector::end
    - std::string::substr
    - Botan::secure_vector::size
    - auto::add_padding
    - std::vector::begin
    - Test_Error
    - Botan::BlockCipherModePaddingMethod::create
    - get_req_sz
    - std::string::find
    - get_req_bin
    - Test::Result::test_success
    - auto::unpad
    - last
    - std::string::resize
    - Botan::secure_vector::assign
    - std::vector::empty
    - std::vector::size
    - get_opt_bin
    - auto::output_length
    - Test::Result::test_eq
    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::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:22,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_pad.cpp:23,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_pad.cpp:24,1
    - Dst: std::string::find
      Src: /src/botan/src/tests/test_pad.cpp:28,1
    - Dst: std::string::substr
      Src: /src/botan/src/tests/test_pad.cpp:30,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pad.cpp:31,1
    - Dst: std::string::resize
      Src: /src/botan/src/tests/test_pad.cpp:33,1
    - Dst: Botan::BlockCipherModePaddingMethod::create
      Src: /src/botan/src/tests/test_pad.cpp:38,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pad.cpp:41,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_pad.cpp:45,1
    - Dst: auto::unpad
      Src: /src/botan/src/tests/test_pad.cpp:47,1
    - Dst: last
      Src: /src/botan/src/tests/test_pad.cpp:47,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pad.cpp:48,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_pad.cpp:48,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pad.cpp:50,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_pad.cpp:54,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_pad.cpp:54,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_pad.cpp:55,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_pad.cpp:55,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pad.cpp:56,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pad.cpp:56,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/tests/test_pad.cpp:59,1
    - Dst: auto::add_padding
      Src: /src/botan/src/tests/test_pad.cpp:60,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pad.cpp:60,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pad.cpp:61,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_pad.cpp:63,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_pad.cpp:63,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_pad.cpp:63,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_pad.cpp:67,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_pad.cpp:67,1
    - Dst: auto::unpad
      Src: /src/botan/src/tests/test_pad.cpp:68,1
    - Dst: last
      Src: /src/botan/src/tests/test_pad.cpp:68,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pad.cpp:69,1
    - Dst: auto::unpad
      Src: /src/botan/src/tests/test_pad.cpp:72,1
    - Dst: last
      Src: /src/botan/src/tests/test_pad.cpp:72,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/tests/test_pad.cpp:76,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_pad.cpp:76,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pad.cpp:77,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 81
    functionName: Botan_Tests::Cipher_Mode_Padding_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pad.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - Botan::secure_vector::resize
    - Test::Result::test_failure
    - std::vector::end
    - std::string::substr
    - Botan::secure_vector::size
    - auto::add_padding
    - std::vector::begin
    - Test_Error
    - Botan::BlockCipherModePaddingMethod::create
    - get_req_sz
    - std::string::find
    - get_req_bin
    - Test::Result::test_success
    - auto::unpad
    - last
    - std::string::resize
    - Botan::secure_vector::assign
    - std::vector::empty
    - std::vector::size
    - get_opt_bin
    - auto::output_length
    - Test::Result::test_eq
    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:44,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_x509_path.cpp:45,1
    - Dst: std::ifstream::good
      Src: /src/botan/src/tests/test_x509_path.cpp:50,1
    - Dst: std::getline
      Src: /src/botan/src/tests/test_x509_path.cpp:51,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_x509_path.cpp:52,1
    - Dst: Botan::split_on
      Src: /src/botan/src/tests/test_x509_path.cpp:59,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_x509_path.cpp:61,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_x509_path.cpp:62,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - ' results_file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 69
    functionName: Botan_Tests::read_results
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - std::ifstream::good
    - Botan::split_on
    - std::string::empty
    - 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: std::set::insert
      Src: /src/botan/src/tests/test_x509_path.cpp:75,1
    - Dst: begin
      Src: /src/botan/src/tests/test_x509_path.cpp:75,1
    - Dst: end
      Src: /src/botan/src/tests/test_x509_path.cpp:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' codes'
    argTypes:
    - Botan::CertificatePathStatusCodes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 79
    functionName: Botan_Tests::flatten
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - begin
    - end
    - std::set::insert
    linkageType: ''
    returnType: std::set<Botan::Certificate_Status_Code>
    signature: std::set<Botan::Certificate_Status_Code> flatten(const Botan::CertificatePathStatusCodes&
      codes)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:91,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:92,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:93,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:95,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:97,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:97,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:99,1
    - Dst: Botan_Tests::X509test_Path_Validation_Tests::load_cert_file
      Src: /src/botan/src/tests/test_x509_path.cpp:101,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:101,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_x509_path.cpp:103,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_x509_path.cpp:104,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:107,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:110,1
    - Dst: Botan::Path_Validation_Result::trust_root
      Src: /src/botan/src/tests/test_x509_path.cpp:110,1
    - Dst: Botan::Path_Validation_Result
      Src: /src/botan/src/tests/test_x509_path.cpp:111,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:114,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:114,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:115,1
    - Dst: Botan::Path_Validation_Result::warnings_string
      Src: /src/botan/src/tests/test_x509_path.cpp:115,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:116,1
    - Dst: Botan::Path_Validation_Result::no_warnings
      Src: /src/botan/src/tests/test_x509_path.cpp:116,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:117,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:118,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:124,1
    - Dst: Botan_Tests::X509test_Path_Validation_Tests::load_cert_file
      Src: /src/botan/src/tests/test_x509_path.cpp:128,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:128,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_x509_path.cpp:129,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_x509_path.cpp:130,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:134,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:140,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:143,1
    - Dst: Botan::Path_Validation_Result::trust_root
      Src: /src/botan/src/tests/test_x509_path.cpp:143,1
    - Dst: Botan::Path_Validation_Result
      Src: /src/botan/src/tests/test_x509_path.cpp:144,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:148,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:148,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:149,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:149,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:152,1
    - Dst: Botan::Path_Validation_Result::no_warnings
      Src: /src/botan/src/tests/test_x509_path.cpp:152,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:153,1
    - Dst: Botan::Path_Validation_Result::warnings_string
      Src: /src/botan/src/tests/test_x509_path.cpp:153,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:155,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:156,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 160
    functionName: Botan_Tests::X509test_Path_Validation_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan_CLI::Timer::milliseconds
    - Test_Error
    - Botan::Path_Validation_Result::warnings_string
    - Botan_Tests::Test::data_file
    - Botan::Path_Validation_Result
    - Botan_Tests::X509test_Path_Validation_Tests::load_cert_file
    - Test::Result::start_timer
    - std::vector::push_back
    - std::vector::empty
    - read_results
    - Botan::x509_path_validate
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Test::Result::test_eq
    - Botan::Path_Validation_Result::result_string
    - Botan::Path_Validation_Result::trust_root
    - Test::Result::confirm
    - Botan::Path_Validation_Result::no_warnings
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DataSource_Stream::end_of_data
      Src: /src/botan/src/tests/test_x509_path.cpp:167,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_x509_path.cpp:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' filename'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 174
    functionName: Botan_Tests::X509test_Path_Validation_Tests::load_cert_file
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 1
    functionsReached:
    - std::vector::emplace_back
    - Botan::DataSource_Stream::end_of_data
    linkageType: ''
    returnType: std::vector<Botan::X509_Certificate>
    signature: std::vector<Botan::X509_Certificate> load_cert_file(const std::string&
      filename)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:185,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:186,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:203,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:203,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:205,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:206,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:208,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:212,1
    - Dst: Botan_Tests::Test::files_in_data_dir
      Src: /src/botan/src/tests/test_x509_path.cpp:215,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:217,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:219,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/test_x509_path.cpp:220,1
    - Dst: ends_with
      Src: /src/botan/src/tests/test_x509_path.cpp:223,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:224,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:224,1
    - Dst: ends_with
      Src: /src/botan/src/tests/test_x509_path.cpp:225,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/test_x509_path.cpp:228,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:232,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:237,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:240,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:240,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_x509_path.cpp:242,1
    - Dst: what
      Src: /src/botan/src/tests/test_x509_path.cpp:242,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:245,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:246,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 250
    functionName: Botan_Tests::NIST_Path_Validation_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_failure
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::Test::files_in_data_dir
    - Botan::calendar_point
    - what
    - Botan_Tests::Test::data_file
    - Botan_Tests::Test::Result::Note
    - Botan::X509_Certificate
    - Test::Result::start_timer
    - std::vector::push_back
    - Botan::has_filesystem_impl
    - read_results
    - Botan::x509_path_validate
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - ends_with
    - Test::Result::test_eq
    - Botan::Path_Validation_Result::result_string
    - Botan::Certificate_Store_In_Memory::add_crl
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> NIST_Path_Validation_Tests::run()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:260,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:261,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:266,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:268,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:268,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:270,1
    - Dst: Botan_Tests::Test::files_in_data_dir
      Src: /src/botan/src/tests/test_x509_path.cpp:272,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:274,1
    - Dst: ends_with
      Src: /src/botan/src/tests/test_x509_path.cpp:277,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:278,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:278,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:282,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:284,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:286,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:288,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:288,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: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 295
    functionName: Botan_Tests::Extended_Path_Validation_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - std::vector::push_back
    - Botan_Tests::Test::data_file
    - Botan_Tests::Test::Result::Note
    - ends_with
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Test::Result::test_eq
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::Test::files_in_data_dir
    - Botan::has_filesystem_impl
    - read_results
    - Botan::calendar_point
    - Botan::Path_Validation_Result::result_string
    - Botan::x509_path_validate
    - Botan::X509_Certificate
    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:305,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:306,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:311,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:311,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:313,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:315,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:315,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:317,1
    - Dst: Botan_Tests::Test::files_in_data_dir
      Src: /src/botan/src/tests/test_x509_path.cpp:319,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:324,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/tests/test_x509_path.cpp:327,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:329,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:332,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:333,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:334,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:335,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:336,1
    - Dst: ends_with
      Src: /src/botan/src/tests/test_x509_path.cpp:337,1
    - Dst: Botan::X509_CRL
      Src: /src/botan/src/tests/test_x509_path.cpp:338,1
    - Dst: ends_with
      Src: /src/botan/src/tests/test_x509_path.cpp:339,1
    - Dst: Botan::PKCS10_Request::PKCS10_Request
      Src: /src/botan/src/tests/test_x509_path.cpp:340,1
    - Dst: Botan::PKIX::check_crl
      Src: /src/botan/src/tests/test_x509_path.cpp:348,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:353,1
    - Dst: Botan::Path_Validation_Result::status_string
      Src: /src/botan/src/tests/test_x509_path.cpp:354,1
    - Dst: Botan::PKIX::overall_status
      Src: /src/botan/src/tests/test_x509_path.cpp:354,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:362,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:364,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:364,1
    - Dst: std::optional::subject_public_key
      Src: /src/botan/src/tests/test_x509_path.cpp:367,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:369,1
    - Dst: std::optional::check_signature
      Src: /src/botan/src/tests/test_x509_path.cpp:369,1
    - Dst: std::optional::subject_public_key
      Src: /src/botan/src/tests/test_x509_path.cpp:372,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:374,1
    - Dst: std::optional::check_signature
      Src: /src/botan/src/tests/test_x509_path.cpp:374,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:377,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:378,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 382
    functionName: Botan_Tests::PSS_Path_Validation_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::to_u32bit
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::Test::files_in_data_dir
    - Botan::calendar_point
    - std::optional::subject_public_key
    - Botan_Tests::Test::data_file
    - Botan_Tests::Test::Result::Note
    - find
    - Botan::X509_Certificate
    - Test::Result::start_timer
    - Botan::Path_Validation_Result::status_string
    - Botan::PKIX::overall_status
    - std::vector::push_back
    - Botan::X509_CRL
    - Botan::PKIX::check_crl
    - Botan::has_filesystem_impl
    - read_results
    - Botan::x509_path_validate
    - auto::begin
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - std::optional::check_signature
    - ends_with
    - Test::Result::test_eq
    - Botan::Path_Validation_Result::result_string
    - Botan::PKCS10_Request::PKCS10_Request
    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:392,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:393,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:398,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:399,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:400,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:402,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:408,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:409,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:413,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:415,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:418,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:418,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:420,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:425,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:427,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:427,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 430
    functionName: Botan_Tests::Validate_V1Cert_Test::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Test::data_file
    - Botan_Tests::Test::Result::Note
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Test::Result::test_eq
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::Path_Validation_Result::result_string
    - Botan::has_filesystem_impl
    - Botan::calendar_point
    - Botan::x509_path_validate
    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:440,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:441,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:446,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::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:450,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:456,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:457,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:461,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:463,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:466,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:466,1
    - Dst: Test::Result::test_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:468,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 471
    functionName: Botan_Tests::Validate_V2Uid_in_V1_Test::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Test::data_file
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::Test::Result::Note
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Test::Result::test_eq
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::Path_Validation_Result::result_string
    - Botan::has_filesystem_impl
    - Botan::calendar_point
    - Botan::x509_path_validate
    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:481,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:482,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:487,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:488,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:489,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:491,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:497,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:498,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:502,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:504,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:507,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:507,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:508,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:509,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 512
    functionName: Botan_Tests::Validate_Name_Constraint_SAN_Test::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Test::data_file
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::Test::Result::Note
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Test::Result::test_eq
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::Path_Validation_Result::result_string
    - Botan::has_filesystem_impl
    - Botan::calendar_point
    - Botan::x509_path_validate
    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:522,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:523,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:528,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:529,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:530,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:532,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:538,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:539,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:543,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:545,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:548,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:548,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 521
    functionDepth: 1
    functionLinenumber: 521
    functionLinenumberEnd: 551
    functionName: Botan_Tests::Validate_Name_Constraint_CaseInsensitive::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Test::data_file
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::Test::Result::Note
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Test::Result::test_eq
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::has_filesystem_impl
    - Botan::calendar_point
    - Botan::x509_path_validate
    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:561,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:562,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:567,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:568,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:569,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:571,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:577,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:578,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:582,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:584,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:587,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:587,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 590
    functionName: Botan_Tests::Validate_Name_Constraint_NoCheckSelf::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Test::data_file
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::Test::Result::Note
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Test::Result::test_eq
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::has_filesystem_impl
    - Botan::calendar_point
    - Botan::x509_path_validate
    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:597,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:598,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:601,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:602,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:607,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:608,1
    - Dst: Botan::Sodium::sodium_memzero
      Src: /src/botan/src/tests/test_x509_path.cpp:624,1
    - Dst: std::make_unique<Botan::Certificate_Store_In_Memory>
      Src: /src/botan/src/tests/test_x509_path.cpp:625,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:629,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:634,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_x509_path.cpp:635,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:638,1
    - Dst: Botan::Path_Validation_Result::result
      Src: /src/botan/src/tests/test_x509_path.cpp:638,1
    - Dst: Botan::Path_Validation_Result::warnings
      Src: /src/botan/src/tests/test_x509_path.cpp:639,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_x509_path.cpp:640,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_path.cpp:640,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:641,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:641,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:643,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:644,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:644,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:646,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:646,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:653,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:655,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:657,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:659,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:661,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:667,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:669,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:674,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:679,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:684,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 691
    functionName: Botan_Tests::Root_Cert_Time_Check_Test::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan::Sodium::sodium_memzero
    - Botan::fmt
    - Botan::Path_Validation_Result::warnings
    - Botan_Tests::Test::data_file
    - std::make_unique<Botan::Certificate_Store_In_Memory>
    - auto::at
    - Test::Result::test_is_eq
    - Botan_Tests::Test::Result::Note
    - Botan::Path_Validation_Result::result
    - assert_path_validation_result
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::has_filesystem_impl
    - Botan::calendar_point
    - Test::Result::confirm
    - Botan::x509_path_validate
    - auto::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:704,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:705,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:710,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:710,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:712,1
    - Dst: Botan_Tests::Test::files_in_data_dir
      Src: /src/botan/src/tests/test_x509_path.cpp:714,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:716,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:725,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:730,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:737,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:738,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:738,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:741,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_x509_path.cpp:742,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:742,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:742,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:745,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:746,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:746,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:747,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/test_x509_path.cpp:748,1
    - Dst: Botan::X509_CRL
      Src: /src/botan/src/tests/test_x509_path.cpp:748,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/tests/test_x509_path.cpp:768,1
    - Dst: randomize
      Src: /src/botan/src/tests/test_x509_path.cpp:772,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/botan/src/tests/test_x509_path.cpp:772,1
    - Dst: Botan_Tests::BSI_Path_Validation_Tests::rng
      Src: /src/botan/src/tests/test_x509_path.cpp:780,1
    - Dst: std::shuffle
      Src: /src/botan/src/tests/test_x509_path.cpp:783,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:783,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x509_path.cpp:783,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:785,1
    - Dst: starts_with
      Src: /src/botan/src/tests/test_x509_path.cpp:789,1
    - Dst: substr
      Src: /src/botan/src/tests/test_x509_path.cpp:790,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:790,1
    - Dst: Botan::Path_Validation_Result::warnings
      Src: /src/botan/src/tests/test_x509_path.cpp:792,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:796,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_x509_path.cpp:802,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:806,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:807,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:810,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:811,1
    - Dst: error_type
      Src: /src/botan/src/tests/test_x509_path.cpp:821,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:822,1
    - Dst: what
      Src: /src/botan/src/tests/test_x509_path.cpp:822,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_x509_path.cpp:824,1
    - Dst: what
      Src: /src/botan/src/tests/test_x509_path.cpp:824,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:828,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:829,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 703
    functionDepth: 1
    functionLinenumber: 703
    functionLinenumberEnd: 833
    functionName: Botan_Tests::BSI_Path_Validation_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Result::warnings
    - randomize
    - Test::Result::test_failure
    - std::vector::end
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::Test::files_in_data_dir
    - Botan::calendar_point
    - what
    - std::vector::insert
    - std::vector::begin
    - Botan_Tests::Test::data_file
    - Botan_Tests::Test::Result::Note
    - find
    - starts_with
    - Botan::X509_Certificate
    - Test::Result::start_timer
    - Botan_Tests::random_bit_generator::max
    - std::shuffle
    - std::vector::push_back
    - Botan_Tests::BSI_Path_Validation_Tests::rng
    - reinterpret_cast<uint8_t*>
    - Botan::X509_CRL
    - Botan::has_filesystem_impl
    - read_results
    - Botan::x509_path_validate
    - error_type
    - substr
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - std::string
    - Test::Result::test_eq
    - Botan::Path_Validation_Result::result_string
    - Botan::Certificate_Store_In_Memory::add_crl
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> BSI_Path_Validation_Tests::run()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 766
    functionDepth: 0
    functionLinenumber: 766
    functionLinenumberEnd: 766
    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:768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 768
    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:772,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/botan/src/tests/test_x509_path.cpp:772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 774
    functionName: operator()()
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - randomize
    - reinterpret_cast<uint8_t*>
    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: 776
      start: 776
    functionDepth: 0
    functionLinenumber: 776
    functionLinenumberEnd: 776
    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:840,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 839
    functionDepth: 1
    functionLinenumber: 839
    functionLinenumberEnd: 841
    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:844,1
    - Dst: Botan_Tests::Test::read_binary_data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 843
    functionDepth: 1
    functionLinenumber: 843
    functionLinenumberEnd: 845
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Test_No_Shutdown_Response::Test_No_Shutdown_Response
    - Botan_Tests::Test::read_binary_data_file
    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:849,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:851,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:853,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:854,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:855,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:856,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:860,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:864,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:870,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:873,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:873,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:873,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:874,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:874,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:875,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:878,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:878,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:880,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:880,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:882,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:882,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:884,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 847
    functionDepth: 2
    functionLinenumber: 847
    functionLinenumberEnd: 888
    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:
    - Botan_CLI::Timer::milliseconds
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - auto::result
    - std::string
    - Botan::to_string
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - Test::Result::confirm
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    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:892,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:894,1
    - Dst: Botan::minutes
      Src: /src/botan/src/tests/test_x509_path.cpp:894,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:896,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:897,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:898,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:899,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:903,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:907,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:913,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:916,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:916,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:916,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:917,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:917,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:918,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:921,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:921,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:923,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:923,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:925,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:925,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:927,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:927,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 890
    functionDepth: 2
    functionLinenumber: 890
    functionLinenumberEnd: 931
    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:
    - Botan::minutes
    - Botan_CLI::Timer::milliseconds
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - auto::result
    - std::string
    - Botan::to_string
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - Test::Result::confirm
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    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:935,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:937,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:939,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:940,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:941,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:943,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:947,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:951,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:957,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:960,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:960,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:960,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:961,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:961,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:962,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:965,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:965,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:967,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:967,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:969,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:969,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 933
    functionDepth: 2
    functionLinenumber: 933
    functionLinenumberEnd: 972
    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:
    - Botan_CLI::Timer::milliseconds
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - auto::result
    - std::string
    - Botan::to_string
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - Test::Result::confirm
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    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:976,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:978,1
    - Dst: Botan::minutes
      Src: /src/botan/src/tests/test_x509_path.cpp:978,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:980,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:981,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:982,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:984,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:988,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:992,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:998,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1001,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:1001,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1001,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1002,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1002,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1003,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1006,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1006,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1008,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1008,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1010,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 974
    functionDepth: 2
    functionLinenumber: 974
    functionLinenumberEnd: 1014
    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:
    - Botan::minutes
    - Botan_CLI::Timer::milliseconds
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - auto::result
    - std::string
    - Botan::to_string
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - Test::Result::confirm
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    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:1018,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1020,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1024,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1025,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1026,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1032,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1033,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1035,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1040,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1046,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1049,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:1049,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1049,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1050,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1050,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1051,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1054,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1054,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1056,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1056,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1058,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1058,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1016
    functionDepth: 2
    functionLinenumber: 1016
    functionLinenumberEnd: 1062
    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:
    - Botan_CLI::Timer::milliseconds
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - auto::result
    - std::string
    - Botan::to_string
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::Path_Validation_Restrictions
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - Test::Result::confirm
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    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:1067,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1069,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1074,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1075,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1076,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1078,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1080,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1082,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1089,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1095,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1098,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_path.cpp:1099,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1099,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_path.cpp:1100,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1102,1
    - Dst: flatten
      Src: /src/botan/src/tests/test_x509_path.cpp:1103,1
    - Dst: auto::all_statuses
      Src: /src/botan/src/tests/test_x509_path.cpp:1103,1
    - Dst: value
      Src: /src/botan/src/tests/test_x509_path.cpp:1103,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1107,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1107,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1110,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1110,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1114,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1064
    functionDepth: 2
    functionLinenumber: 1064
    functionLinenumberEnd: 1120
    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:
    - Botan_CLI::Timer::milliseconds
    - auto::all_statuses
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - value
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - static_cast<uint32_t>
    - auto::result
    - Test::Result::test_is_eq
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::Path_Validation_Restrictions
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - Test::Result::confirm
    - Botan::calendar_point
    - Botan::x509_path_validate
    - flatten
    - check_path
    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:1124,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1126,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1130,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1131,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1132,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1133,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1140,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1142,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1147,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1148,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1151,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1152,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1153,1
    - Dst: flatten
      Src: /src/botan/src/tests/test_x509_path.cpp:1154,1
    - Dst: auto::all_statuses
      Src: /src/botan/src/tests/test_x509_path.cpp:1154,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1155,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:1155,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1155,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1155,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1161,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1122
    functionDepth: 2
    functionLinenumber: 1122
    functionLinenumberEnd: 1169
    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:
    - Botan_CLI::Timer::milliseconds
    - auto::all_statuses
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - auto::result
    - Test::Result::test_is_eq
    - std::string
    - check_path
    - Botan::to_string
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - Botan::calendar_point
    - Test::Result::confirm
    - Botan::x509_path_validate
    - flatten
    - Test::Result::test_note
    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:1174,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1176,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1181,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1182,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1183,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1186,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1189,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1191,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1195,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1200,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1201,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1203,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1204,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1205,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:1205,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1205,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 1171
    functionDepth: 2
    functionLinenumber: 1171
    functionLinenumberEnd: 1208
    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:
    - Botan_CLI::Timer::milliseconds
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - auto::result
    - std::string
    - Botan::to_string
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::Path_Validation_Restrictions
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - Botan::calendar_point
    - Test::Result::confirm
    - Botan::x509_path_validate
    - Test::Result::test_note
    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:1211,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:1212,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:1213,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:1214,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_authorized_responder
      Src: /src/botan/src/tests/test_x509_path.cpp:1215,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:1216,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:1217,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:1218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1219
      start: 1210
    functionDepth: 3
    functionLinenumber: 1210
    functionLinenumberEnd: 1219
    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_next_update_with_max_age
    - Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_authorized_responder
    - 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_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
    - Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_forged_ocsp_using_self_signed_cert
    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:1233,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1234,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_x509_path.cpp:1238,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1239,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_x509_path.cpp:1243,1
    - Dst: get_p
      Src: /src/botan/src/tests/test_x509_path.cpp:1247,1
    - Dst: get_a
      Src: /src/botan/src/tests/test_x509_path.cpp:1248,1
    - Dst: get_b
      Src: /src/botan/src/tests/test_x509_path.cpp:1249,1
    - Dst: BigInt
      Src: /src/botan/src/tests/test_x509_path.cpp:1250,1
    - Dst: BigInt
      Src: /src/botan/src/tests/test_x509_path.cpp:1252,1
    - Dst: get_order
      Src: /src/botan/src/tests/test_x509_path.cpp:1254,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1256,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1256,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1257,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1257,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1258,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1258,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1260,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1261,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1263,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1265,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1267,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1273,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1276,1
    - Dst: auto::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1276,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1278,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1279,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1281,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1287,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1290,1
    - Dst: auto::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1290,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1292,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1293,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1296,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1297,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1299,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1305,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1308,1
    - Dst: auto::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1308,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1230
    functionDepth: 1
    functionLinenumber: 1230
    functionLinenumberEnd: 1311
    functionName: Botan_Tests::CVE_2020_0601_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - get_p
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - get_b
    - Botan_CLI::Timer::milliseconds
    - Botan_Tests::Test::data_file
    - auto::successful_validation
    - Botan::Path_Validation_Restrictions
    - Botan::EC_Group::supports_application_specific_group
    - Botan::X509_Certificate
    - get_order
    - get_a
    - Botan::x509_path_validate
    - Test::Result::test_note
    - Botan::EC_Group::supports_named_group
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - auto::result
    - Botan::EC_Group::from_name
    - Test::Result::confirm
    - BigInt
    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:1324,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1325,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1329,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1330,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1331,1
    - Dst: Botan::X509_CRL
      Src: /src/botan/src/tests/test_x509_path.cpp:1334,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1334,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1335,1
    - Dst: auto::this_update
      Src: /src/botan/src/tests/test_x509_path.cpp:1335,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1336,1
    - Dst: auto::next_update
      Src: /src/botan/src/tests/test_x509_path.cpp:1336,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1337,1
    - Dst: auto::get_revoked
      Src: /src/botan/src/tests/test_x509_path.cpp:1337,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_x509_path.cpp:1340,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1341,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1345,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1346,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/test_x509_path.cpp:1347,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1351,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1356,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1358,1
    - Dst: auto::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1358,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1359,1
    - Dst: auto::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1359,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1363,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1365,1
    - Dst: auto::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1365,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1366,1
    - Dst: auto::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1366,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1368,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1368,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1371
      start: 1318
    functionDepth: 1
    functionLinenumber: 1318
    functionLinenumberEnd: 1371
    functionName: Botan_Tests::Path_Validation_With_Immortal_CRL::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::x509_path_validate
    - auto::result_string
    - Botan::EC_Group::supports_named_group
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - auto::result
    - auto::get_revoked
    - Botan_Tests::Test::data_file
    - auto::successful_validation
    - Test::Result::test_is_eq
    - Botan::X509_CRL
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::confirm
    - Botan::has_filesystem_impl
    - Botan::Certificate_Store_In_Memory::add_crl
    - Botan::calendar_point
    - auto::this_update
    - auto::next_update
    - Test::Result::test_note
    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:1385,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1386,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1386,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1389,1
    - Dst: Botan::PKIX::overall_status
      Src: /src/botan/src/tests/test_x509_path.cpp:1391,1
    - Dst: Botan::PKIX::check_chain
      Src: /src/botan/src/tests/test_x509_path.cpp:1392,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1393,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' name'
    - ' file'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1382
    functionDepth: 1
    functionLinenumber: 1382
    functionLinenumberEnd: 1395
    functionName: Botan_Tests::XMSS_Path_Validation_Tests::validate_self_signed
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::PKIX::overall_status
    - Botan_Tests::Test::data_file
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Botan::PKIX::check_chain
    - Test::Result::test_eq
    - Botan::to_string
    - Botan::calendar_point
    - Botan::X509_Certificate
    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:1398,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:1399,1
    - Dst: Botan_Tests::XMSS_Path_Validation_Tests::validate_self_signed
      Src: /src/botan/src/tests/test_x509_path.cpp:1403,1
    - Dst: Botan_Tests::XMSS_Path_Validation_Tests::validate_self_signed
      Src: /src/botan/src/tests/test_x509_path.cpp:1404,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1397
    functionDepth: 2
    functionLinenumber: 1397
    functionLinenumberEnd: 1406
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::ifstream::good
      Src: /src/botan/src/tests/test_x509_path.cpp:44,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_x509_path.cpp:45,1
    - Dst: std::ifstream::good
      Src: /src/botan/src/tests/test_x509_path.cpp:50,1
    - Dst: std::getline
      Src: /src/botan/src/tests/test_x509_path.cpp:51,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_x509_path.cpp:52,1
    - Dst: Botan::split_on
      Src: /src/botan/src/tests/test_x509_path.cpp:59,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_x509_path.cpp:61,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_x509_path.cpp:62,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - ' results_file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 69
    functionName: Botan_Tests::read_results
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - std::ifstream::good
    - Botan::split_on
    - std::string::empty
    - 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: std::set::insert
      Src: /src/botan/src/tests/test_x509_path.cpp:75,1
    - Dst: begin
      Src: /src/botan/src/tests/test_x509_path.cpp:75,1
    - Dst: end
      Src: /src/botan/src/tests/test_x509_path.cpp:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' codes'
    argTypes:
    - Botan::CertificatePathStatusCodes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 79
    functionName: Botan_Tests::flatten
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - begin
    - end
    - std::set::insert
    linkageType: ''
    returnType: std::set<Botan::Certificate_Status_Code>
    signature: std::set<Botan::Certificate_Status_Code> flatten(const Botan::CertificatePathStatusCodes&
      codes)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:91,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:92,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:93,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:95,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:97,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:97,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:99,1
    - Dst: Botan_Tests::X509test_Path_Validation_Tests::load_cert_file
      Src: /src/botan/src/tests/test_x509_path.cpp:101,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:101,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_x509_path.cpp:103,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_x509_path.cpp:104,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:107,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:110,1
    - Dst: Botan::Path_Validation_Result::trust_root
      Src: /src/botan/src/tests/test_x509_path.cpp:110,1
    - Dst: Botan::Path_Validation_Result
      Src: /src/botan/src/tests/test_x509_path.cpp:111,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:114,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:114,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:115,1
    - Dst: Botan::Path_Validation_Result::warnings_string
      Src: /src/botan/src/tests/test_x509_path.cpp:115,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:116,1
    - Dst: Botan::Path_Validation_Result::no_warnings
      Src: /src/botan/src/tests/test_x509_path.cpp:116,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:117,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:118,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:124,1
    - Dst: Botan_Tests::X509test_Path_Validation_Tests::load_cert_file
      Src: /src/botan/src/tests/test_x509_path.cpp:128,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:128,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_x509_path.cpp:129,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_x509_path.cpp:130,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:134,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:140,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:143,1
    - Dst: Botan::Path_Validation_Result::trust_root
      Src: /src/botan/src/tests/test_x509_path.cpp:143,1
    - Dst: Botan::Path_Validation_Result
      Src: /src/botan/src/tests/test_x509_path.cpp:144,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:148,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:148,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:149,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:149,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:152,1
    - Dst: Botan::Path_Validation_Result::no_warnings
      Src: /src/botan/src/tests/test_x509_path.cpp:152,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:153,1
    - Dst: Botan::Path_Validation_Result::warnings_string
      Src: /src/botan/src/tests/test_x509_path.cpp:153,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:155,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:156,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 160
    functionName: Botan_Tests::X509test_Path_Validation_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan_CLI::Timer::milliseconds
    - Test_Error
    - Botan::Path_Validation_Result::warnings_string
    - Botan_Tests::Test::data_file
    - Botan::Path_Validation_Result
    - Botan_Tests::X509test_Path_Validation_Tests::load_cert_file
    - Test::Result::start_timer
    - std::vector::push_back
    - std::vector::empty
    - read_results
    - Botan::x509_path_validate
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Test::Result::test_eq
    - Botan::Path_Validation_Result::result_string
    - Botan::Path_Validation_Result::trust_root
    - Test::Result::confirm
    - Botan::Path_Validation_Result::no_warnings
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DataSource_Stream::end_of_data
      Src: /src/botan/src/tests/test_x509_path.cpp:167,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_x509_path.cpp:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' filename'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 174
    functionName: Botan_Tests::X509test_Path_Validation_Tests::load_cert_file
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 2
    functionsReached:
    - std::vector::emplace_back
    - Botan::DataSource_Stream::end_of_data
    linkageType: ''
    returnType: std::vector<Botan::X509_Certificate>
    signature: std::vector<Botan::X509_Certificate> load_cert_file(const std::string&
      filename)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:185,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:186,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:203,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:203,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:205,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:206,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:208,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:212,1
    - Dst: Botan_Tests::Test::files_in_data_dir
      Src: /src/botan/src/tests/test_x509_path.cpp:215,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:217,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:219,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/test_x509_path.cpp:220,1
    - Dst: ends_with
      Src: /src/botan/src/tests/test_x509_path.cpp:223,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:224,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:224,1
    - Dst: ends_with
      Src: /src/botan/src/tests/test_x509_path.cpp:225,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/test_x509_path.cpp:228,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:232,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:237,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:240,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:240,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_x509_path.cpp:242,1
    - Dst: what
      Src: /src/botan/src/tests/test_x509_path.cpp:242,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:245,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:246,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 250
    functionName: Botan_Tests::NIST_Path_Validation_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_failure
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::Test::files_in_data_dir
    - Botan::calendar_point
    - what
    - Botan_Tests::Test::data_file
    - Botan_Tests::Test::Result::Note
    - Botan::X509_Certificate
    - Test::Result::start_timer
    - std::vector::push_back
    - Botan::has_filesystem_impl
    - read_results
    - Botan::x509_path_validate
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - ends_with
    - Test::Result::test_eq
    - Botan::Path_Validation_Result::result_string
    - Botan::Certificate_Store_In_Memory::add_crl
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> NIST_Path_Validation_Tests::run()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:260,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:261,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:266,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:268,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:268,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:270,1
    - Dst: Botan_Tests::Test::files_in_data_dir
      Src: /src/botan/src/tests/test_x509_path.cpp:272,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:274,1
    - Dst: ends_with
      Src: /src/botan/src/tests/test_x509_path.cpp:277,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:278,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:278,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:282,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:284,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:286,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:288,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:288,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: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 295
    functionName: Botan_Tests::Extended_Path_Validation_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - std::vector::push_back
    - Botan_Tests::Test::data_file
    - Botan_Tests::Test::Result::Note
    - ends_with
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Test::Result::test_eq
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::Test::files_in_data_dir
    - Botan::has_filesystem_impl
    - read_results
    - Botan::calendar_point
    - Botan::Path_Validation_Result::result_string
    - Botan::x509_path_validate
    - Botan::X509_Certificate
    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:305,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:306,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:311,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:311,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:313,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:315,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:315,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:317,1
    - Dst: Botan_Tests::Test::files_in_data_dir
      Src: /src/botan/src/tests/test_x509_path.cpp:319,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:324,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/tests/test_x509_path.cpp:327,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:329,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:332,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:333,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:334,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:335,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:336,1
    - Dst: ends_with
      Src: /src/botan/src/tests/test_x509_path.cpp:337,1
    - Dst: Botan::X509_CRL
      Src: /src/botan/src/tests/test_x509_path.cpp:338,1
    - Dst: ends_with
      Src: /src/botan/src/tests/test_x509_path.cpp:339,1
    - Dst: Botan::PKCS10_Request::PKCS10_Request
      Src: /src/botan/src/tests/test_x509_path.cpp:340,1
    - Dst: Botan::PKIX::check_crl
      Src: /src/botan/src/tests/test_x509_path.cpp:348,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:353,1
    - Dst: Botan::Path_Validation_Result::status_string
      Src: /src/botan/src/tests/test_x509_path.cpp:354,1
    - Dst: Botan::PKIX::overall_status
      Src: /src/botan/src/tests/test_x509_path.cpp:354,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:362,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:364,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:364,1
    - Dst: std::optional::subject_public_key
      Src: /src/botan/src/tests/test_x509_path.cpp:367,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:369,1
    - Dst: std::optional::check_signature
      Src: /src/botan/src/tests/test_x509_path.cpp:369,1
    - Dst: std::optional::subject_public_key
      Src: /src/botan/src/tests/test_x509_path.cpp:372,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:374,1
    - Dst: std::optional::check_signature
      Src: /src/botan/src/tests/test_x509_path.cpp:374,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:377,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:378,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 382
    functionName: Botan_Tests::PSS_Path_Validation_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::to_u32bit
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::Test::files_in_data_dir
    - Botan::calendar_point
    - std::optional::subject_public_key
    - Botan_Tests::Test::data_file
    - Botan_Tests::Test::Result::Note
    - find
    - Botan::X509_Certificate
    - Test::Result::start_timer
    - Botan::Path_Validation_Result::status_string
    - Botan::PKIX::overall_status
    - std::vector::push_back
    - Botan::X509_CRL
    - Botan::PKIX::check_crl
    - Botan::has_filesystem_impl
    - read_results
    - Botan::x509_path_validate
    - auto::begin
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - std::optional::check_signature
    - ends_with
    - Test::Result::test_eq
    - Botan::Path_Validation_Result::result_string
    - Botan::PKCS10_Request::PKCS10_Request
    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:392,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:393,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:398,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:399,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:400,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:402,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:408,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:409,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:413,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:415,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:418,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:418,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:420,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:425,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:427,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:427,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 430
    functionName: Botan_Tests::Validate_V1Cert_Test::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Test::data_file
    - Botan_Tests::Test::Result::Note
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Test::Result::test_eq
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::Path_Validation_Result::result_string
    - Botan::has_filesystem_impl
    - Botan::calendar_point
    - Botan::x509_path_validate
    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:440,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:441,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:446,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::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:450,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:456,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:457,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:461,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:463,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:466,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:466,1
    - Dst: Test::Result::test_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:468,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 471
    functionName: Botan_Tests::Validate_V2Uid_in_V1_Test::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Test::data_file
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::Test::Result::Note
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Test::Result::test_eq
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::Path_Validation_Result::result_string
    - Botan::has_filesystem_impl
    - Botan::calendar_point
    - Botan::x509_path_validate
    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:481,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:482,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:487,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:488,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:489,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:491,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:497,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:498,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:502,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:504,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:507,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:507,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:508,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:509,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 512
    functionName: Botan_Tests::Validate_Name_Constraint_SAN_Test::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Test::data_file
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::Test::Result::Note
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Test::Result::test_eq
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::Path_Validation_Result::result_string
    - Botan::has_filesystem_impl
    - Botan::calendar_point
    - Botan::x509_path_validate
    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:522,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:523,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:528,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:529,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:530,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:532,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:538,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:539,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:543,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:545,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:548,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:548,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 521
    functionDepth: 1
    functionLinenumber: 521
    functionLinenumberEnd: 551
    functionName: Botan_Tests::Validate_Name_Constraint_CaseInsensitive::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Test::data_file
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::Test::Result::Note
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Test::Result::test_eq
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::has_filesystem_impl
    - Botan::calendar_point
    - Botan::x509_path_validate
    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:561,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:562,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:567,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:568,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:569,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:571,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:577,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:578,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:582,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:584,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:587,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:587,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 590
    functionName: Botan_Tests::Validate_Name_Constraint_NoCheckSelf::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Test::data_file
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::Test::Result::Note
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Test::Result::test_eq
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::has_filesystem_impl
    - Botan::calendar_point
    - Botan::x509_path_validate
    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:597,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:598,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:601,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:602,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:607,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:608,1
    - Dst: Botan::Sodium::sodium_memzero
      Src: /src/botan/src/tests/test_x509_path.cpp:624,1
    - Dst: std::make_unique<Botan::Certificate_Store_In_Memory>
      Src: /src/botan/src/tests/test_x509_path.cpp:625,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:629,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:634,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_x509_path.cpp:635,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:638,1
    - Dst: Botan::Path_Validation_Result::result
      Src: /src/botan/src/tests/test_x509_path.cpp:638,1
    - Dst: Botan::Path_Validation_Result::warnings
      Src: /src/botan/src/tests/test_x509_path.cpp:639,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_x509_path.cpp:640,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_path.cpp:640,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:641,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:641,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:643,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:644,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:644,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:646,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:646,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:653,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:655,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:657,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:659,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:661,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:667,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:669,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:674,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:679,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:684,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 691
    functionName: Botan_Tests::Root_Cert_Time_Check_Test::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan::Sodium::sodium_memzero
    - Botan::fmt
    - Botan::Path_Validation_Result::warnings
    - Botan_Tests::Test::data_file
    - std::make_unique<Botan::Certificate_Store_In_Memory>
    - auto::at
    - Test::Result::test_is_eq
    - Botan_Tests::Test::Result::Note
    - Botan::Path_Validation_Result::result
    - assert_path_validation_result
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::has_filesystem_impl
    - Botan::calendar_point
    - Test::Result::confirm
    - Botan::x509_path_validate
    - auto::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:704,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:705,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:710,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:710,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:712,1
    - Dst: Botan_Tests::Test::files_in_data_dir
      Src: /src/botan/src/tests/test_x509_path.cpp:714,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:716,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:725,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:730,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:737,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:738,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:738,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:741,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_x509_path.cpp:742,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:742,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:742,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:745,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:746,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:746,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:747,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/test_x509_path.cpp:748,1
    - Dst: Botan::X509_CRL
      Src: /src/botan/src/tests/test_x509_path.cpp:748,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/tests/test_x509_path.cpp:768,1
    - Dst: randomize
      Src: /src/botan/src/tests/test_x509_path.cpp:772,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/botan/src/tests/test_x509_path.cpp:772,1
    - Dst: Botan_Tests::BSI_Path_Validation_Tests::rng
      Src: /src/botan/src/tests/test_x509_path.cpp:780,1
    - Dst: std::shuffle
      Src: /src/botan/src/tests/test_x509_path.cpp:783,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:783,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x509_path.cpp:783,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:785,1
    - Dst: starts_with
      Src: /src/botan/src/tests/test_x509_path.cpp:789,1
    - Dst: substr
      Src: /src/botan/src/tests/test_x509_path.cpp:790,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:790,1
    - Dst: Botan::Path_Validation_Result::warnings
      Src: /src/botan/src/tests/test_x509_path.cpp:792,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:796,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_x509_path.cpp:802,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:806,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:807,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:810,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:811,1
    - Dst: error_type
      Src: /src/botan/src/tests/test_x509_path.cpp:821,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:822,1
    - Dst: what
      Src: /src/botan/src/tests/test_x509_path.cpp:822,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_x509_path.cpp:824,1
    - Dst: what
      Src: /src/botan/src/tests/test_x509_path.cpp:824,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:828,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:829,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 703
    functionDepth: 1
    functionLinenumber: 703
    functionLinenumberEnd: 833
    functionName: Botan_Tests::BSI_Path_Validation_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Result::warnings
    - randomize
    - Test::Result::test_failure
    - std::vector::end
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::Test::files_in_data_dir
    - Botan::calendar_point
    - what
    - std::vector::insert
    - std::vector::begin
    - Botan_Tests::Test::data_file
    - Botan_Tests::Test::Result::Note
    - find
    - starts_with
    - Botan::X509_Certificate
    - Test::Result::start_timer
    - Botan_Tests::random_bit_generator::max
    - std::shuffle
    - std::vector::push_back
    - Botan_Tests::BSI_Path_Validation_Tests::rng
    - reinterpret_cast<uint8_t*>
    - Botan::X509_CRL
    - Botan::has_filesystem_impl
    - read_results
    - Botan::x509_path_validate
    - error_type
    - substr
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - std::string
    - Test::Result::test_eq
    - Botan::Path_Validation_Result::result_string
    - Botan::Certificate_Store_In_Memory::add_crl
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> BSI_Path_Validation_Tests::run()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 766
    functionDepth: 0
    functionLinenumber: 766
    functionLinenumberEnd: 766
    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:768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 768
    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:772,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/botan/src/tests/test_x509_path.cpp:772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 774
    functionName: operator()()
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - randomize
    - reinterpret_cast<uint8_t*>
    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: 776
      start: 776
    functionDepth: 0
    functionLinenumber: 776
    functionLinenumberEnd: 776
    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:840,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 839
    functionDepth: 1
    functionLinenumber: 839
    functionLinenumberEnd: 841
    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:844,1
    - Dst: Botan_Tests::Test::read_binary_data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 843
    functionDepth: 1
    functionLinenumber: 843
    functionLinenumberEnd: 845
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 8
    functionsReached:
    - Test_No_Shutdown_Response::Test_No_Shutdown_Response
    - Botan_Tests::Test::read_binary_data_file
    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:849,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:851,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:853,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:854,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:855,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:856,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:860,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:864,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:870,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:873,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:873,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:873,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:874,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:874,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:875,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:878,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:878,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:880,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:880,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:882,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:882,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:884,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 847
    functionDepth: 2
    functionLinenumber: 847
    functionLinenumberEnd: 888
    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:
    - Botan_CLI::Timer::milliseconds
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - auto::result
    - std::string
    - Botan::to_string
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - Test::Result::confirm
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    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:892,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:894,1
    - Dst: Botan::minutes
      Src: /src/botan/src/tests/test_x509_path.cpp:894,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:896,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:897,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:898,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:899,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:903,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:907,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:913,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:916,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:916,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:916,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:917,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:917,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:918,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:921,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:921,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:923,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:923,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:925,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:925,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:927,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:927,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 890
    functionDepth: 2
    functionLinenumber: 890
    functionLinenumberEnd: 931
    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:
    - Botan::minutes
    - Botan_CLI::Timer::milliseconds
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - auto::result
    - std::string
    - Botan::to_string
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - Test::Result::confirm
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    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:935,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:937,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:939,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:940,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:941,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:943,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:947,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:951,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:957,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:960,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:960,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:960,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:961,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:961,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:962,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:965,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:965,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:967,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:967,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:969,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:969,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 933
    functionDepth: 2
    functionLinenumber: 933
    functionLinenumberEnd: 972
    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:
    - Botan_CLI::Timer::milliseconds
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - auto::result
    - std::string
    - Botan::to_string
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - Test::Result::confirm
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    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:976,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:978,1
    - Dst: Botan::minutes
      Src: /src/botan/src/tests/test_x509_path.cpp:978,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:980,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:981,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:982,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:984,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:988,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:992,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:998,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1001,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:1001,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1001,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1002,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1002,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1003,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1006,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1006,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1008,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1008,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1010,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 974
    functionDepth: 2
    functionLinenumber: 974
    functionLinenumberEnd: 1014
    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:
    - Botan::minutes
    - Botan_CLI::Timer::milliseconds
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - auto::result
    - std::string
    - Botan::to_string
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - Test::Result::confirm
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    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:1018,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1020,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1024,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1025,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1026,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1032,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1033,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1035,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1040,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1046,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1049,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:1049,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1049,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1050,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1050,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1051,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1054,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1054,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1056,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1056,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1058,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1058,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1016
    functionDepth: 2
    functionLinenumber: 1016
    functionLinenumberEnd: 1062
    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:
    - Botan_CLI::Timer::milliseconds
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - auto::result
    - std::string
    - Botan::to_string
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::Path_Validation_Restrictions
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - Test::Result::confirm
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    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:1067,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1069,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1074,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1075,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1076,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1078,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1080,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1082,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1089,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1095,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1098,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_path.cpp:1099,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1099,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_path.cpp:1100,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1102,1
    - Dst: flatten
      Src: /src/botan/src/tests/test_x509_path.cpp:1103,1
    - Dst: auto::all_statuses
      Src: /src/botan/src/tests/test_x509_path.cpp:1103,1
    - Dst: value
      Src: /src/botan/src/tests/test_x509_path.cpp:1103,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1107,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1107,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1110,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1110,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1114,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1064
    functionDepth: 2
    functionLinenumber: 1064
    functionLinenumberEnd: 1120
    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:
    - Botan_CLI::Timer::milliseconds
    - auto::all_statuses
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - value
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - static_cast<uint32_t>
    - auto::result
    - Test::Result::test_is_eq
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::Path_Validation_Restrictions
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - Test::Result::confirm
    - Botan::calendar_point
    - Botan::x509_path_validate
    - flatten
    - check_path
    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:1124,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1126,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1130,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1131,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1132,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1133,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1140,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1142,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1147,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1148,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1151,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1152,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1153,1
    - Dst: flatten
      Src: /src/botan/src/tests/test_x509_path.cpp:1154,1
    - Dst: auto::all_statuses
      Src: /src/botan/src/tests/test_x509_path.cpp:1154,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1155,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:1155,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1155,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1155,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1161,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1122
    functionDepth: 2
    functionLinenumber: 1122
    functionLinenumberEnd: 1169
    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:
    - Botan_CLI::Timer::milliseconds
    - auto::all_statuses
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - auto::result
    - Test::Result::test_is_eq
    - std::string
    - check_path
    - Botan::to_string
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - Botan::calendar_point
    - Test::Result::confirm
    - Botan::x509_path_validate
    - flatten
    - Test::Result::test_note
    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:1174,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1176,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1181,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1182,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1183,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1186,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1189,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1191,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1195,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1200,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1201,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1203,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1204,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1205,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:1205,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1205,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 1171
    functionDepth: 2
    functionLinenumber: 1171
    functionLinenumberEnd: 1208
    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:
    - Botan_CLI::Timer::milliseconds
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - auto::result
    - std::string
    - Botan::to_string
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::Path_Validation_Restrictions
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - Botan::calendar_point
    - Test::Result::confirm
    - Botan::x509_path_validate
    - Test::Result::test_note
    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:1211,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:1212,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:1213,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:1214,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_authorized_responder
      Src: /src/botan/src/tests/test_x509_path.cpp:1215,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:1216,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:1217,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:1218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1219
      start: 1210
    functionDepth: 3
    functionLinenumber: 1210
    functionLinenumberEnd: 1219
    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_next_update_with_max_age
    - Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_authorized_responder
    - 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_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
    - Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_forged_ocsp_using_self_signed_cert
    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:1233,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1234,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_x509_path.cpp:1238,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1239,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_x509_path.cpp:1243,1
    - Dst: get_p
      Src: /src/botan/src/tests/test_x509_path.cpp:1247,1
    - Dst: get_a
      Src: /src/botan/src/tests/test_x509_path.cpp:1248,1
    - Dst: get_b
      Src: /src/botan/src/tests/test_x509_path.cpp:1249,1
    - Dst: BigInt
      Src: /src/botan/src/tests/test_x509_path.cpp:1250,1
    - Dst: BigInt
      Src: /src/botan/src/tests/test_x509_path.cpp:1252,1
    - Dst: get_order
      Src: /src/botan/src/tests/test_x509_path.cpp:1254,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1256,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1256,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1257,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1257,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1258,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1258,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1260,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1261,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1263,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1265,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1267,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1273,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1276,1
    - Dst: auto::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1276,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1278,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1279,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1281,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1287,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1290,1
    - Dst: auto::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1290,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1292,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1293,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1296,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1297,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1299,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1305,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1308,1
    - Dst: auto::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1308,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1230
    functionDepth: 1
    functionLinenumber: 1230
    functionLinenumberEnd: 1311
    functionName: Botan_Tests::CVE_2020_0601_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - get_p
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - get_b
    - Botan_CLI::Timer::milliseconds
    - Botan_Tests::Test::data_file
    - auto::successful_validation
    - Botan::Path_Validation_Restrictions
    - Botan::EC_Group::supports_application_specific_group
    - Botan::X509_Certificate
    - get_order
    - get_a
    - Botan::x509_path_validate
    - Test::Result::test_note
    - Botan::EC_Group::supports_named_group
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - auto::result
    - Botan::EC_Group::from_name
    - Test::Result::confirm
    - BigInt
    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:1324,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1325,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1329,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1330,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1331,1
    - Dst: Botan::X509_CRL
      Src: /src/botan/src/tests/test_x509_path.cpp:1334,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1334,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1335,1
    - Dst: auto::this_update
      Src: /src/botan/src/tests/test_x509_path.cpp:1335,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1336,1
    - Dst: auto::next_update
      Src: /src/botan/src/tests/test_x509_path.cpp:1336,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1337,1
    - Dst: auto::get_revoked
      Src: /src/botan/src/tests/test_x509_path.cpp:1337,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_x509_path.cpp:1340,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1341,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1345,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1346,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/test_x509_path.cpp:1347,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1351,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1356,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1358,1
    - Dst: auto::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1358,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1359,1
    - Dst: auto::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1359,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1363,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1365,1
    - Dst: auto::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1365,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1366,1
    - Dst: auto::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1366,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1368,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1368,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1371
      start: 1318
    functionDepth: 1
    functionLinenumber: 1318
    functionLinenumberEnd: 1371
    functionName: Botan_Tests::Path_Validation_With_Immortal_CRL::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::x509_path_validate
    - auto::result_string
    - Botan::EC_Group::supports_named_group
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - auto::result
    - auto::get_revoked
    - Botan_Tests::Test::data_file
    - auto::successful_validation
    - Test::Result::test_is_eq
    - Botan::X509_CRL
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::confirm
    - Botan::has_filesystem_impl
    - Botan::Certificate_Store_In_Memory::add_crl
    - Botan::calendar_point
    - auto::this_update
    - auto::next_update
    - Test::Result::test_note
    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:1385,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1386,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1386,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1389,1
    - Dst: Botan::PKIX::overall_status
      Src: /src/botan/src/tests/test_x509_path.cpp:1391,1
    - Dst: Botan::PKIX::check_chain
      Src: /src/botan/src/tests/test_x509_path.cpp:1392,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1393,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' name'
    - ' file'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1382
    functionDepth: 1
    functionLinenumber: 1382
    functionLinenumberEnd: 1395
    functionName: Botan_Tests::XMSS_Path_Validation_Tests::validate_self_signed
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 1
    functionsReached:
    - Botan::PKIX::overall_status
    - Botan_Tests::Test::data_file
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Botan::PKIX::check_chain
    - Test::Result::test_eq
    - Botan::to_string
    - Botan::calendar_point
    - Botan::X509_Certificate
    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:1398,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:1399,1
    - Dst: Botan_Tests::XMSS_Path_Validation_Tests::validate_self_signed
      Src: /src/botan/src/tests/test_x509_path.cpp:1403,1
    - Dst: Botan_Tests::XMSS_Path_Validation_Tests::validate_self_signed
      Src: /src/botan/src/tests/test_x509_path.cpp:1404,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1397
    functionDepth: 2
    functionLinenumber: 1397
    functionLinenumberEnd: 1406
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::ifstream::good
      Src: /src/botan/src/tests/test_x509_path.cpp:44,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_x509_path.cpp:45,1
    - Dst: std::ifstream::good
      Src: /src/botan/src/tests/test_x509_path.cpp:50,1
    - Dst: std::getline
      Src: /src/botan/src/tests/test_x509_path.cpp:51,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_x509_path.cpp:52,1
    - Dst: Botan::split_on
      Src: /src/botan/src/tests/test_x509_path.cpp:59,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_x509_path.cpp:61,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_x509_path.cpp:62,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - ' results_file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 69
    functionName: Botan_Tests::read_results
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - std::ifstream::good
    - Botan::split_on
    - std::string::empty
    - 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: std::set::insert
      Src: /src/botan/src/tests/test_x509_path.cpp:75,1
    - Dst: begin
      Src: /src/botan/src/tests/test_x509_path.cpp:75,1
    - Dst: end
      Src: /src/botan/src/tests/test_x509_path.cpp:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' codes'
    argTypes:
    - Botan::CertificatePathStatusCodes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 79
    functionName: Botan_Tests::flatten
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - begin
    - end
    - std::set::insert
    linkageType: ''
    returnType: std::set<Botan::Certificate_Status_Code>
    signature: std::set<Botan::Certificate_Status_Code> flatten(const Botan::CertificatePathStatusCodes&
      codes)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:91,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:92,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:93,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:95,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:97,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:97,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:99,1
    - Dst: Botan_Tests::X509test_Path_Validation_Tests::load_cert_file
      Src: /src/botan/src/tests/test_x509_path.cpp:101,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:101,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_x509_path.cpp:103,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_x509_path.cpp:104,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:107,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:110,1
    - Dst: Botan::Path_Validation_Result::trust_root
      Src: /src/botan/src/tests/test_x509_path.cpp:110,1
    - Dst: Botan::Path_Validation_Result
      Src: /src/botan/src/tests/test_x509_path.cpp:111,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:114,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:114,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:115,1
    - Dst: Botan::Path_Validation_Result::warnings_string
      Src: /src/botan/src/tests/test_x509_path.cpp:115,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:116,1
    - Dst: Botan::Path_Validation_Result::no_warnings
      Src: /src/botan/src/tests/test_x509_path.cpp:116,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:117,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:118,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:124,1
    - Dst: Botan_Tests::X509test_Path_Validation_Tests::load_cert_file
      Src: /src/botan/src/tests/test_x509_path.cpp:128,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:128,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_x509_path.cpp:129,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_x509_path.cpp:130,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:134,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:140,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:143,1
    - Dst: Botan::Path_Validation_Result::trust_root
      Src: /src/botan/src/tests/test_x509_path.cpp:143,1
    - Dst: Botan::Path_Validation_Result
      Src: /src/botan/src/tests/test_x509_path.cpp:144,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:148,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:148,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:149,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:149,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:152,1
    - Dst: Botan::Path_Validation_Result::no_warnings
      Src: /src/botan/src/tests/test_x509_path.cpp:152,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:153,1
    - Dst: Botan::Path_Validation_Result::warnings_string
      Src: /src/botan/src/tests/test_x509_path.cpp:153,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:155,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:156,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 160
    functionName: Botan_Tests::X509test_Path_Validation_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan_CLI::Timer::milliseconds
    - Test_Error
    - Botan::Path_Validation_Result::warnings_string
    - Botan_Tests::Test::data_file
    - Botan::Path_Validation_Result
    - Botan_Tests::X509test_Path_Validation_Tests::load_cert_file
    - Test::Result::start_timer
    - std::vector::push_back
    - std::vector::empty
    - read_results
    - Botan::x509_path_validate
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Test::Result::test_eq
    - Botan::Path_Validation_Result::result_string
    - Botan::Path_Validation_Result::trust_root
    - Test::Result::confirm
    - Botan::Path_Validation_Result::no_warnings
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DataSource_Stream::end_of_data
      Src: /src/botan/src/tests/test_x509_path.cpp:167,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_x509_path.cpp:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' filename'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 174
    functionName: Botan_Tests::X509test_Path_Validation_Tests::load_cert_file
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 3
    functionsReached:
    - std::vector::emplace_back
    - Botan::DataSource_Stream::end_of_data
    linkageType: ''
    returnType: std::vector<Botan::X509_Certificate>
    signature: std::vector<Botan::X509_Certificate> load_cert_file(const std::string&
      filename)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:185,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:186,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:203,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:203,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:205,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:206,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:208,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:212,1
    - Dst: Botan_Tests::Test::files_in_data_dir
      Src: /src/botan/src/tests/test_x509_path.cpp:215,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:217,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:219,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/test_x509_path.cpp:220,1
    - Dst: ends_with
      Src: /src/botan/src/tests/test_x509_path.cpp:223,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:224,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:224,1
    - Dst: ends_with
      Src: /src/botan/src/tests/test_x509_path.cpp:225,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/test_x509_path.cpp:228,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:232,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:237,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:240,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:240,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_x509_path.cpp:242,1
    - Dst: what
      Src: /src/botan/src/tests/test_x509_path.cpp:242,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:245,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:246,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 250
    functionName: Botan_Tests::NIST_Path_Validation_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_failure
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::Test::files_in_data_dir
    - Botan::calendar_point
    - what
    - Botan_Tests::Test::data_file
    - Botan_Tests::Test::Result::Note
    - Botan::X509_Certificate
    - Test::Result::start_timer
    - std::vector::push_back
    - Botan::has_filesystem_impl
    - read_results
    - Botan::x509_path_validate
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - ends_with
    - Test::Result::test_eq
    - Botan::Path_Validation_Result::result_string
    - Botan::Certificate_Store_In_Memory::add_crl
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> NIST_Path_Validation_Tests::run()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:260,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:261,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:266,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:268,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:268,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:270,1
    - Dst: Botan_Tests::Test::files_in_data_dir
      Src: /src/botan/src/tests/test_x509_path.cpp:272,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:274,1
    - Dst: ends_with
      Src: /src/botan/src/tests/test_x509_path.cpp:277,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:278,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:278,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:282,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:284,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:286,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:288,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:288,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: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 295
    functionName: Botan_Tests::Extended_Path_Validation_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - std::vector::push_back
    - Botan_Tests::Test::data_file
    - Botan_Tests::Test::Result::Note
    - ends_with
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Test::Result::test_eq
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::Test::files_in_data_dir
    - Botan::has_filesystem_impl
    - read_results
    - Botan::calendar_point
    - Botan::Path_Validation_Result::result_string
    - Botan::x509_path_validate
    - Botan::X509_Certificate
    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:305,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:306,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:311,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:311,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:313,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:315,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:315,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:317,1
    - Dst: Botan_Tests::Test::files_in_data_dir
      Src: /src/botan/src/tests/test_x509_path.cpp:319,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:324,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/tests/test_x509_path.cpp:327,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:329,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:332,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:333,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:334,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:335,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:336,1
    - Dst: ends_with
      Src: /src/botan/src/tests/test_x509_path.cpp:337,1
    - Dst: Botan::X509_CRL
      Src: /src/botan/src/tests/test_x509_path.cpp:338,1
    - Dst: ends_with
      Src: /src/botan/src/tests/test_x509_path.cpp:339,1
    - Dst: Botan::PKCS10_Request::PKCS10_Request
      Src: /src/botan/src/tests/test_x509_path.cpp:340,1
    - Dst: Botan::PKIX::check_crl
      Src: /src/botan/src/tests/test_x509_path.cpp:348,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:353,1
    - Dst: Botan::Path_Validation_Result::status_string
      Src: /src/botan/src/tests/test_x509_path.cpp:354,1
    - Dst: Botan::PKIX::overall_status
      Src: /src/botan/src/tests/test_x509_path.cpp:354,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:362,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:364,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:364,1
    - Dst: std::optional::subject_public_key
      Src: /src/botan/src/tests/test_x509_path.cpp:367,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:369,1
    - Dst: std::optional::check_signature
      Src: /src/botan/src/tests/test_x509_path.cpp:369,1
    - Dst: std::optional::subject_public_key
      Src: /src/botan/src/tests/test_x509_path.cpp:372,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:374,1
    - Dst: std::optional::check_signature
      Src: /src/botan/src/tests/test_x509_path.cpp:374,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:377,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:378,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 382
    functionName: Botan_Tests::PSS_Path_Validation_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::to_u32bit
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::Test::files_in_data_dir
    - Botan::calendar_point
    - std::optional::subject_public_key
    - Botan_Tests::Test::data_file
    - Botan_Tests::Test::Result::Note
    - find
    - Botan::X509_Certificate
    - Test::Result::start_timer
    - Botan::Path_Validation_Result::status_string
    - Botan::PKIX::overall_status
    - std::vector::push_back
    - Botan::X509_CRL
    - Botan::PKIX::check_crl
    - Botan::has_filesystem_impl
    - read_results
    - Botan::x509_path_validate
    - auto::begin
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - std::optional::check_signature
    - ends_with
    - Test::Result::test_eq
    - Botan::Path_Validation_Result::result_string
    - Botan::PKCS10_Request::PKCS10_Request
    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:392,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:393,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:398,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:399,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:400,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:402,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:408,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:409,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:413,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:415,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:418,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:418,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:420,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:425,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:427,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:427,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 430
    functionName: Botan_Tests::Validate_V1Cert_Test::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Test::data_file
    - Botan_Tests::Test::Result::Note
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Test::Result::test_eq
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::Path_Validation_Result::result_string
    - Botan::has_filesystem_impl
    - Botan::calendar_point
    - Botan::x509_path_validate
    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:440,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:441,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:446,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::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:450,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:456,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:457,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:461,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:463,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:466,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:466,1
    - Dst: Test::Result::test_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:468,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 471
    functionName: Botan_Tests::Validate_V2Uid_in_V1_Test::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Test::data_file
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::Test::Result::Note
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Test::Result::test_eq
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::Path_Validation_Result::result_string
    - Botan::has_filesystem_impl
    - Botan::calendar_point
    - Botan::x509_path_validate
    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:481,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:482,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:487,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:488,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:489,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:491,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:497,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:498,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:502,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:504,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:507,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:507,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:508,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:509,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 512
    functionName: Botan_Tests::Validate_Name_Constraint_SAN_Test::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Test::data_file
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::Test::Result::Note
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Test::Result::test_eq
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::Path_Validation_Result::result_string
    - Botan::has_filesystem_impl
    - Botan::calendar_point
    - Botan::x509_path_validate
    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:522,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:523,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:528,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:529,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:530,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:532,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:538,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:539,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:543,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:545,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:548,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:548,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 521
    functionDepth: 1
    functionLinenumber: 521
    functionLinenumberEnd: 551
    functionName: Botan_Tests::Validate_Name_Constraint_CaseInsensitive::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Test::data_file
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::Test::Result::Note
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Test::Result::test_eq
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::has_filesystem_impl
    - Botan::calendar_point
    - Botan::x509_path_validate
    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:561,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:562,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:567,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:568,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:569,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:571,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:577,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:578,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:582,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:584,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:587,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:587,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 590
    functionName: Botan_Tests::Validate_Name_Constraint_NoCheckSelf::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Test::data_file
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::Test::Result::Note
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Test::Result::test_eq
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::has_filesystem_impl
    - Botan::calendar_point
    - Botan::x509_path_validate
    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:597,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:598,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:601,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:602,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:607,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:608,1
    - Dst: Botan::Sodium::sodium_memzero
      Src: /src/botan/src/tests/test_x509_path.cpp:624,1
    - Dst: std::make_unique<Botan::Certificate_Store_In_Memory>
      Src: /src/botan/src/tests/test_x509_path.cpp:625,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:629,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:634,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_x509_path.cpp:635,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:638,1
    - Dst: Botan::Path_Validation_Result::result
      Src: /src/botan/src/tests/test_x509_path.cpp:638,1
    - Dst: Botan::Path_Validation_Result::warnings
      Src: /src/botan/src/tests/test_x509_path.cpp:639,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_x509_path.cpp:640,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_path.cpp:640,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:641,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:641,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:643,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:644,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:644,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:646,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:646,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:653,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:655,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:657,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:659,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:661,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:667,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:669,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:674,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:679,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:684,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 691
    functionName: Botan_Tests::Root_Cert_Time_Check_Test::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan::Sodium::sodium_memzero
    - Botan::fmt
    - Botan::Path_Validation_Result::warnings
    - Botan_Tests::Test::data_file
    - std::make_unique<Botan::Certificate_Store_In_Memory>
    - auto::at
    - Test::Result::test_is_eq
    - Botan_Tests::Test::Result::Note
    - Botan::Path_Validation_Result::result
    - assert_path_validation_result
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::has_filesystem_impl
    - Botan::calendar_point
    - Test::Result::confirm
    - Botan::x509_path_validate
    - auto::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:704,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:705,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:710,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:710,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:712,1
    - Dst: Botan_Tests::Test::files_in_data_dir
      Src: /src/botan/src/tests/test_x509_path.cpp:714,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:716,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:725,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:730,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:737,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:738,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:738,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:741,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_x509_path.cpp:742,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:742,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:742,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:745,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:746,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:746,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:747,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/test_x509_path.cpp:748,1
    - Dst: Botan::X509_CRL
      Src: /src/botan/src/tests/test_x509_path.cpp:748,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/tests/test_x509_path.cpp:768,1
    - Dst: randomize
      Src: /src/botan/src/tests/test_x509_path.cpp:772,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/botan/src/tests/test_x509_path.cpp:772,1
    - Dst: Botan_Tests::BSI_Path_Validation_Tests::rng
      Src: /src/botan/src/tests/test_x509_path.cpp:780,1
    - Dst: std::shuffle
      Src: /src/botan/src/tests/test_x509_path.cpp:783,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:783,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x509_path.cpp:783,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:785,1
    - Dst: starts_with
      Src: /src/botan/src/tests/test_x509_path.cpp:789,1
    - Dst: substr
      Src: /src/botan/src/tests/test_x509_path.cpp:790,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:790,1
    - Dst: Botan::Path_Validation_Result::warnings
      Src: /src/botan/src/tests/test_x509_path.cpp:792,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:796,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_x509_path.cpp:802,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:806,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:807,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:810,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:811,1
    - Dst: error_type
      Src: /src/botan/src/tests/test_x509_path.cpp:821,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:822,1
    - Dst: what
      Src: /src/botan/src/tests/test_x509_path.cpp:822,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_x509_path.cpp:824,1
    - Dst: what
      Src: /src/botan/src/tests/test_x509_path.cpp:824,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:828,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:829,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 703
    functionDepth: 1
    functionLinenumber: 703
    functionLinenumberEnd: 833
    functionName: Botan_Tests::BSI_Path_Validation_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Result::warnings
    - randomize
    - Test::Result::test_failure
    - std::vector::end
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::Test::files_in_data_dir
    - Botan::calendar_point
    - what
    - std::vector::insert
    - std::vector::begin
    - Botan_Tests::Test::data_file
    - Botan_Tests::Test::Result::Note
    - find
    - starts_with
    - Botan::X509_Certificate
    - Test::Result::start_timer
    - Botan_Tests::random_bit_generator::max
    - std::shuffle
    - std::vector::push_back
    - Botan_Tests::BSI_Path_Validation_Tests::rng
    - reinterpret_cast<uint8_t*>
    - Botan::X509_CRL
    - Botan::has_filesystem_impl
    - read_results
    - Botan::x509_path_validate
    - error_type
    - substr
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - std::string
    - Test::Result::test_eq
    - Botan::Path_Validation_Result::result_string
    - Botan::Certificate_Store_In_Memory::add_crl
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> BSI_Path_Validation_Tests::run()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 766
    functionDepth: 0
    functionLinenumber: 766
    functionLinenumberEnd: 766
    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:768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 768
    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:772,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/botan/src/tests/test_x509_path.cpp:772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 774
    functionName: operator()()
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - randomize
    - reinterpret_cast<uint8_t*>
    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: 776
      start: 776
    functionDepth: 0
    functionLinenumber: 776
    functionLinenumberEnd: 776
    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:840,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 839
    functionDepth: 1
    functionLinenumber: 839
    functionLinenumberEnd: 841
    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:844,1
    - Dst: Botan_Tests::Test::read_binary_data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 843
    functionDepth: 1
    functionLinenumber: 843
    functionLinenumberEnd: 845
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 16
    functionsReached:
    - Test_No_Shutdown_Response::Test_No_Shutdown_Response
    - Botan_Tests::Test::read_binary_data_file
    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:849,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:851,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:853,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:854,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:855,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:856,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:860,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:864,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:870,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:873,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:873,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:873,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:874,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:874,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:875,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:878,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:878,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:880,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:880,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:882,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:882,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:884,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 847
    functionDepth: 2
    functionLinenumber: 847
    functionLinenumberEnd: 888
    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:
    - Botan_CLI::Timer::milliseconds
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - auto::result
    - std::string
    - Botan::to_string
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - Test::Result::confirm
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    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:892,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:894,1
    - Dst: Botan::minutes
      Src: /src/botan/src/tests/test_x509_path.cpp:894,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:896,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:897,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:898,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:899,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:903,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:907,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:913,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:916,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:916,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:916,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:917,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:917,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:918,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:921,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:921,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:923,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:923,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:925,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:925,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:927,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:927,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 890
    functionDepth: 2
    functionLinenumber: 890
    functionLinenumberEnd: 931
    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:
    - Botan::minutes
    - Botan_CLI::Timer::milliseconds
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - auto::result
    - std::string
    - Botan::to_string
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - Test::Result::confirm
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    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:935,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:937,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:939,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:940,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:941,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:943,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:947,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:951,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:957,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:960,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:960,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:960,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:961,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:961,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:962,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:965,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:965,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:967,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:967,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:969,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:969,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 933
    functionDepth: 2
    functionLinenumber: 933
    functionLinenumberEnd: 972
    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:
    - Botan_CLI::Timer::milliseconds
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - auto::result
    - std::string
    - Botan::to_string
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - Test::Result::confirm
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    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:976,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:978,1
    - Dst: Botan::minutes
      Src: /src/botan/src/tests/test_x509_path.cpp:978,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:980,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:981,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:982,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:984,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:988,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:992,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:998,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1001,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:1001,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1001,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1002,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1002,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1003,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1006,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1006,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1008,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1008,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1010,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 974
    functionDepth: 2
    functionLinenumber: 974
    functionLinenumberEnd: 1014
    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:
    - Botan::minutes
    - Botan_CLI::Timer::milliseconds
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - auto::result
    - std::string
    - Botan::to_string
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - Test::Result::confirm
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    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:1018,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1020,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1024,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1025,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1026,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1032,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1033,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1035,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1040,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1046,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1049,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:1049,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1049,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1050,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1050,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1051,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1054,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1054,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1056,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1056,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1058,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1058,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1016
    functionDepth: 2
    functionLinenumber: 1016
    functionLinenumberEnd: 1062
    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:
    - Botan_CLI::Timer::milliseconds
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - auto::result
    - std::string
    - Botan::to_string
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::Path_Validation_Restrictions
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - Test::Result::confirm
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    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:1067,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1069,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1074,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1075,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1076,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1078,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1080,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1082,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1089,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1095,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1098,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_path.cpp:1099,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1099,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_path.cpp:1100,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1102,1
    - Dst: flatten
      Src: /src/botan/src/tests/test_x509_path.cpp:1103,1
    - Dst: auto::all_statuses
      Src: /src/botan/src/tests/test_x509_path.cpp:1103,1
    - Dst: value
      Src: /src/botan/src/tests/test_x509_path.cpp:1103,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1107,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1107,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1110,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1110,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1114,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1064
    functionDepth: 2
    functionLinenumber: 1064
    functionLinenumberEnd: 1120
    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:
    - Botan_CLI::Timer::milliseconds
    - auto::all_statuses
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - value
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - static_cast<uint32_t>
    - auto::result
    - Test::Result::test_is_eq
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::Path_Validation_Restrictions
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - Test::Result::confirm
    - Botan::calendar_point
    - Botan::x509_path_validate
    - flatten
    - check_path
    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:1124,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1126,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1130,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1131,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1132,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1133,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1140,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1142,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1147,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1148,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1151,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1152,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1153,1
    - Dst: flatten
      Src: /src/botan/src/tests/test_x509_path.cpp:1154,1
    - Dst: auto::all_statuses
      Src: /src/botan/src/tests/test_x509_path.cpp:1154,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1155,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:1155,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1155,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1155,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1161,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1122
    functionDepth: 2
    functionLinenumber: 1122
    functionLinenumberEnd: 1169
    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:
    - Botan_CLI::Timer::milliseconds
    - auto::all_statuses
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - auto::result
    - Test::Result::test_is_eq
    - std::string
    - check_path
    - Botan::to_string
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - Botan::calendar_point
    - Test::Result::confirm
    - Botan::x509_path_validate
    - flatten
    - Test::Result::test_note
    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:1174,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1176,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1181,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1182,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1183,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1186,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1189,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1191,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1195,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1200,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1201,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1203,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1204,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1205,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:1205,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1205,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 1171
    functionDepth: 2
    functionLinenumber: 1171
    functionLinenumberEnd: 1208
    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:
    - Botan_CLI::Timer::milliseconds
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - auto::result
    - std::string
    - Botan::to_string
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::Path_Validation_Restrictions
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - Botan::calendar_point
    - Test::Result::confirm
    - Botan::x509_path_validate
    - Test::Result::test_note
    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:1211,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:1212,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:1213,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:1214,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_authorized_responder
      Src: /src/botan/src/tests/test_x509_path.cpp:1215,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:1216,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:1217,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:1218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1219
      start: 1210
    functionDepth: 3
    functionLinenumber: 1210
    functionLinenumberEnd: 1219
    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_next_update_with_max_age
    - Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_authorized_responder
    - 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_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
    - Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_forged_ocsp_using_self_signed_cert
    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:1233,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1234,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_x509_path.cpp:1238,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1239,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_x509_path.cpp:1243,1
    - Dst: get_p
      Src: /src/botan/src/tests/test_x509_path.cpp:1247,1
    - Dst: get_a
      Src: /src/botan/src/tests/test_x509_path.cpp:1248,1
    - Dst: get_b
      Src: /src/botan/src/tests/test_x509_path.cpp:1249,1
    - Dst: BigInt
      Src: /src/botan/src/tests/test_x509_path.cpp:1250,1
    - Dst: BigInt
      Src: /src/botan/src/tests/test_x509_path.cpp:1252,1
    - Dst: get_order
      Src: /src/botan/src/tests/test_x509_path.cpp:1254,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1256,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1256,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1257,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1257,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1258,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1258,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1260,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1261,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1263,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1265,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1267,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1273,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1276,1
    - Dst: auto::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1276,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1278,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1279,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1281,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1287,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1290,1
    - Dst: auto::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1290,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1292,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1293,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1296,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1297,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1299,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1305,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1308,1
    - Dst: auto::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1308,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1230
    functionDepth: 1
    functionLinenumber: 1230
    functionLinenumberEnd: 1311
    functionName: Botan_Tests::CVE_2020_0601_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - get_p
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - get_b
    - Botan_CLI::Timer::milliseconds
    - Botan_Tests::Test::data_file
    - auto::successful_validation
    - Botan::Path_Validation_Restrictions
    - Botan::EC_Group::supports_application_specific_group
    - Botan::X509_Certificate
    - get_order
    - get_a
    - Botan::x509_path_validate
    - Test::Result::test_note
    - Botan::EC_Group::supports_named_group
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - auto::result
    - Botan::EC_Group::from_name
    - Test::Result::confirm
    - BigInt
    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:1324,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1325,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1329,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1330,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1331,1
    - Dst: Botan::X509_CRL
      Src: /src/botan/src/tests/test_x509_path.cpp:1334,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1334,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1335,1
    - Dst: auto::this_update
      Src: /src/botan/src/tests/test_x509_path.cpp:1335,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1336,1
    - Dst: auto::next_update
      Src: /src/botan/src/tests/test_x509_path.cpp:1336,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1337,1
    - Dst: auto::get_revoked
      Src: /src/botan/src/tests/test_x509_path.cpp:1337,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_x509_path.cpp:1340,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1341,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1345,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1346,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/test_x509_path.cpp:1347,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1351,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1356,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1358,1
    - Dst: auto::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1358,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1359,1
    - Dst: auto::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1359,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1363,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1365,1
    - Dst: auto::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1365,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1366,1
    - Dst: auto::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1366,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1368,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1368,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1371
      start: 1318
    functionDepth: 1
    functionLinenumber: 1318
    functionLinenumberEnd: 1371
    functionName: Botan_Tests::Path_Validation_With_Immortal_CRL::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::x509_path_validate
    - auto::result_string
    - Botan::EC_Group::supports_named_group
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - auto::result
    - auto::get_revoked
    - Botan_Tests::Test::data_file
    - auto::successful_validation
    - Test::Result::test_is_eq
    - Botan::X509_CRL
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::confirm
    - Botan::has_filesystem_impl
    - Botan::Certificate_Store_In_Memory::add_crl
    - Botan::calendar_point
    - auto::this_update
    - auto::next_update
    - Test::Result::test_note
    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:1385,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1386,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1386,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1389,1
    - Dst: Botan::PKIX::overall_status
      Src: /src/botan/src/tests/test_x509_path.cpp:1391,1
    - Dst: Botan::PKIX::check_chain
      Src: /src/botan/src/tests/test_x509_path.cpp:1392,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1393,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' name'
    - ' file'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1382
    functionDepth: 1
    functionLinenumber: 1382
    functionLinenumberEnd: 1395
    functionName: Botan_Tests::XMSS_Path_Validation_Tests::validate_self_signed
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 2
    functionsReached:
    - Botan::PKIX::overall_status
    - Botan_Tests::Test::data_file
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Botan::PKIX::check_chain
    - Test::Result::test_eq
    - Botan::to_string
    - Botan::calendar_point
    - Botan::X509_Certificate
    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:1398,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:1399,1
    - Dst: Botan_Tests::XMSS_Path_Validation_Tests::validate_self_signed
      Src: /src/botan/src/tests/test_x509_path.cpp:1403,1
    - Dst: Botan_Tests::XMSS_Path_Validation_Tests::validate_self_signed
      Src: /src/botan/src/tests/test_x509_path.cpp:1404,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1397
    functionDepth: 2
    functionLinenumber: 1397
    functionLinenumberEnd: 1406
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::ifstream::good
      Src: /src/botan/src/tests/test_x509_path.cpp:44,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_x509_path.cpp:45,1
    - Dst: std::ifstream::good
      Src: /src/botan/src/tests/test_x509_path.cpp:50,1
    - Dst: std::getline
      Src: /src/botan/src/tests/test_x509_path.cpp:51,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_x509_path.cpp:52,1
    - Dst: Botan::split_on
      Src: /src/botan/src/tests/test_x509_path.cpp:59,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_x509_path.cpp:61,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_x509_path.cpp:62,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - ' results_file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 69
    functionName: Botan_Tests::read_results
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - std::ifstream::good
    - Botan::split_on
    - std::string::empty
    - 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: std::set::insert
      Src: /src/botan/src/tests/test_x509_path.cpp:75,1
    - Dst: begin
      Src: /src/botan/src/tests/test_x509_path.cpp:75,1
    - Dst: end
      Src: /src/botan/src/tests/test_x509_path.cpp:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' codes'
    argTypes:
    - Botan::CertificatePathStatusCodes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 79
    functionName: Botan_Tests::flatten
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - begin
    - end
    - std::set::insert
    linkageType: ''
    returnType: std::set<Botan::Certificate_Status_Code>
    signature: std::set<Botan::Certificate_Status_Code> flatten(const Botan::CertificatePathStatusCodes&
      codes)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:91,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:92,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:93,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:95,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:97,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:97,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:99,1
    - Dst: Botan_Tests::X509test_Path_Validation_Tests::load_cert_file
      Src: /src/botan/src/tests/test_x509_path.cpp:101,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:101,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_x509_path.cpp:103,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_x509_path.cpp:104,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:107,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:110,1
    - Dst: Botan::Path_Validation_Result::trust_root
      Src: /src/botan/src/tests/test_x509_path.cpp:110,1
    - Dst: Botan::Path_Validation_Result
      Src: /src/botan/src/tests/test_x509_path.cpp:111,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:114,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:114,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:115,1
    - Dst: Botan::Path_Validation_Result::warnings_string
      Src: /src/botan/src/tests/test_x509_path.cpp:115,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:116,1
    - Dst: Botan::Path_Validation_Result::no_warnings
      Src: /src/botan/src/tests/test_x509_path.cpp:116,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:117,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:118,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:124,1
    - Dst: Botan_Tests::X509test_Path_Validation_Tests::load_cert_file
      Src: /src/botan/src/tests/test_x509_path.cpp:128,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:128,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_x509_path.cpp:129,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_x509_path.cpp:130,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:134,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:140,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:143,1
    - Dst: Botan::Path_Validation_Result::trust_root
      Src: /src/botan/src/tests/test_x509_path.cpp:143,1
    - Dst: Botan::Path_Validation_Result
      Src: /src/botan/src/tests/test_x509_path.cpp:144,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:148,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:148,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:149,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:149,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:152,1
    - Dst: Botan::Path_Validation_Result::no_warnings
      Src: /src/botan/src/tests/test_x509_path.cpp:152,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:153,1
    - Dst: Botan::Path_Validation_Result::warnings_string
      Src: /src/botan/src/tests/test_x509_path.cpp:153,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:155,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:156,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 160
    functionName: Botan_Tests::X509test_Path_Validation_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Result::successful_validation
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - Botan_CLI::Timer::milliseconds
    - Test_Error
    - Botan::Path_Validation_Result::warnings_string
    - Botan_Tests::Test::data_file
    - Botan::Path_Validation_Result
    - Botan_Tests::X509test_Path_Validation_Tests::load_cert_file
    - Test::Result::start_timer
    - std::vector::push_back
    - std::vector::empty
    - read_results
    - Botan::x509_path_validate
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Test::Result::test_eq
    - Botan::Path_Validation_Result::result_string
    - Botan::Path_Validation_Result::trust_root
    - Test::Result::confirm
    - Botan::Path_Validation_Result::no_warnings
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DataSource_Stream::end_of_data
      Src: /src/botan/src/tests/test_x509_path.cpp:167,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_x509_path.cpp:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' filename'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 174
    functionName: Botan_Tests::X509test_Path_Validation_Tests::load_cert_file
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 4
    functionsReached:
    - std::vector::emplace_back
    - Botan::DataSource_Stream::end_of_data
    linkageType: ''
    returnType: std::vector<Botan::X509_Certificate>
    signature: std::vector<Botan::X509_Certificate> load_cert_file(const std::string&
      filename)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:185,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:186,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:203,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:203,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:205,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:206,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:208,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:212,1
    - Dst: Botan_Tests::Test::files_in_data_dir
      Src: /src/botan/src/tests/test_x509_path.cpp:215,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:217,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:219,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/test_x509_path.cpp:220,1
    - Dst: ends_with
      Src: /src/botan/src/tests/test_x509_path.cpp:223,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:224,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:224,1
    - Dst: ends_with
      Src: /src/botan/src/tests/test_x509_path.cpp:225,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/test_x509_path.cpp:228,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:232,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:237,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:240,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:240,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_x509_path.cpp:242,1
    - Dst: what
      Src: /src/botan/src/tests/test_x509_path.cpp:242,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:245,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:246,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 250
    functionName: Botan_Tests::NIST_Path_Validation_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_failure
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::Test::files_in_data_dir
    - Botan::calendar_point
    - what
    - Botan_Tests::Test::data_file
    - Botan_Tests::Test::Result::Note
    - Botan::X509_Certificate
    - Test::Result::start_timer
    - std::vector::push_back
    - Botan::has_filesystem_impl
    - read_results
    - Botan::x509_path_validate
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - ends_with
    - Test::Result::test_eq
    - Botan::Path_Validation_Result::result_string
    - Botan::Certificate_Store_In_Memory::add_crl
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> NIST_Path_Validation_Tests::run()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:260,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:261,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:266,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:268,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:268,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:270,1
    - Dst: Botan_Tests::Test::files_in_data_dir
      Src: /src/botan/src/tests/test_x509_path.cpp:272,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:274,1
    - Dst: ends_with
      Src: /src/botan/src/tests/test_x509_path.cpp:277,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:278,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:278,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:282,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:284,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:286,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:288,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:288,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: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 295
    functionName: Botan_Tests::Extended_Path_Validation_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - std::vector::push_back
    - Botan_Tests::Test::data_file
    - Botan_Tests::Test::Result::Note
    - ends_with
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Test::Result::test_eq
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::Test::files_in_data_dir
    - Botan::has_filesystem_impl
    - read_results
    - Botan::calendar_point
    - Botan::Path_Validation_Result::result_string
    - Botan::x509_path_validate
    - Botan::X509_Certificate
    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:305,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:306,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:311,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:311,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:313,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:315,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:315,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:317,1
    - Dst: Botan_Tests::Test::files_in_data_dir
      Src: /src/botan/src/tests/test_x509_path.cpp:319,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:324,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/tests/test_x509_path.cpp:327,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:329,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:332,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:333,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:334,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:335,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:336,1
    - Dst: ends_with
      Src: /src/botan/src/tests/test_x509_path.cpp:337,1
    - Dst: Botan::X509_CRL
      Src: /src/botan/src/tests/test_x509_path.cpp:338,1
    - Dst: ends_with
      Src: /src/botan/src/tests/test_x509_path.cpp:339,1
    - Dst: Botan::PKCS10_Request::PKCS10_Request
      Src: /src/botan/src/tests/test_x509_path.cpp:340,1
    - Dst: Botan::PKIX::check_crl
      Src: /src/botan/src/tests/test_x509_path.cpp:348,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:353,1
    - Dst: Botan::Path_Validation_Result::status_string
      Src: /src/botan/src/tests/test_x509_path.cpp:354,1
    - Dst: Botan::PKIX::overall_status
      Src: /src/botan/src/tests/test_x509_path.cpp:354,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:362,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:364,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:364,1
    - Dst: std::optional::subject_public_key
      Src: /src/botan/src/tests/test_x509_path.cpp:367,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:369,1
    - Dst: std::optional::check_signature
      Src: /src/botan/src/tests/test_x509_path.cpp:369,1
    - Dst: std::optional::subject_public_key
      Src: /src/botan/src/tests/test_x509_path.cpp:372,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:374,1
    - Dst: std::optional::check_signature
      Src: /src/botan/src/tests/test_x509_path.cpp:374,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:377,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:378,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 382
    functionName: Botan_Tests::PSS_Path_Validation_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::to_u32bit
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::Test::files_in_data_dir
    - Botan::calendar_point
    - std::optional::subject_public_key
    - Botan_Tests::Test::data_file
    - Botan_Tests::Test::Result::Note
    - find
    - Botan::X509_Certificate
    - Test::Result::start_timer
    - Botan::Path_Validation_Result::status_string
    - Botan::PKIX::overall_status
    - std::vector::push_back
    - Botan::X509_CRL
    - Botan::PKIX::check_crl
    - Botan::has_filesystem_impl
    - read_results
    - Botan::x509_path_validate
    - auto::begin
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - std::optional::check_signature
    - ends_with
    - Test::Result::test_eq
    - Botan::Path_Validation_Result::result_string
    - Botan::PKCS10_Request::PKCS10_Request
    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:392,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:393,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:398,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:399,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:400,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:402,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:408,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:409,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:413,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:415,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:418,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:418,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:420,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:425,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:427,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:427,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 430
    functionName: Botan_Tests::Validate_V1Cert_Test::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Test::data_file
    - Botan_Tests::Test::Result::Note
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Test::Result::test_eq
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::Path_Validation_Result::result_string
    - Botan::has_filesystem_impl
    - Botan::calendar_point
    - Botan::x509_path_validate
    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:440,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:441,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:446,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::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:450,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:456,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:457,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:461,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:463,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:466,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:466,1
    - Dst: Test::Result::test_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:468,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 471
    functionName: Botan_Tests::Validate_V2Uid_in_V1_Test::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Test::data_file
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::Test::Result::Note
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Test::Result::test_eq
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::Path_Validation_Result::result_string
    - Botan::has_filesystem_impl
    - Botan::calendar_point
    - Botan::x509_path_validate
    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:481,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:482,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:487,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:488,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:489,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:491,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:497,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:498,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:502,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:504,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:507,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:507,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:508,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:509,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 512
    functionName: Botan_Tests::Validate_Name_Constraint_SAN_Test::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Test::data_file
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::Test::Result::Note
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Test::Result::test_eq
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::Path_Validation_Result::result_string
    - Botan::has_filesystem_impl
    - Botan::calendar_point
    - Botan::x509_path_validate
    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:522,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:523,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:528,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:529,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:530,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:532,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:538,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:539,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:543,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:545,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:548,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:548,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 521
    functionDepth: 1
    functionLinenumber: 521
    functionLinenumberEnd: 551
    functionName: Botan_Tests::Validate_Name_Constraint_CaseInsensitive::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Test::data_file
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::Test::Result::Note
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Test::Result::test_eq
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::has_filesystem_impl
    - Botan::calendar_point
    - Botan::x509_path_validate
    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:561,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:562,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:567,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:568,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:569,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:571,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:577,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:578,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:582,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:584,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:587,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:587,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 590
    functionName: Botan_Tests::Validate_Name_Constraint_NoCheckSelf::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Test::data_file
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::Test::Result::Note
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Test::Result::test_eq
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::has_filesystem_impl
    - Botan::calendar_point
    - Botan::x509_path_validate
    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:597,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:598,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:601,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:602,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:607,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:608,1
    - Dst: Botan::Sodium::sodium_memzero
      Src: /src/botan/src/tests/test_x509_path.cpp:624,1
    - Dst: std::make_unique<Botan::Certificate_Store_In_Memory>
      Src: /src/botan/src/tests/test_x509_path.cpp:625,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:629,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:634,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_x509_path.cpp:635,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:638,1
    - Dst: Botan::Path_Validation_Result::result
      Src: /src/botan/src/tests/test_x509_path.cpp:638,1
    - Dst: Botan::Path_Validation_Result::warnings
      Src: /src/botan/src/tests/test_x509_path.cpp:639,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_x509_path.cpp:640,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_path.cpp:640,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:641,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:641,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:643,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:644,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:644,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:646,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_x509_path.cpp:646,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:653,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:655,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:657,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:659,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:661,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:667,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:669,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:674,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:679,1
    - Dst: assert_path_validation_result
      Src: /src/botan/src/tests/test_x509_path.cpp:684,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 691
    functionName: Botan_Tests::Root_Cert_Time_Check_Test::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan::Sodium::sodium_memzero
    - Botan::fmt
    - Botan::Path_Validation_Result::warnings
    - Botan_Tests::Test::data_file
    - std::make_unique<Botan::Certificate_Store_In_Memory>
    - auto::at
    - Test::Result::test_is_eq
    - Botan_Tests::Test::Result::Note
    - Botan::Path_Validation_Result::result
    - assert_path_validation_result
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::has_filesystem_impl
    - Botan::calendar_point
    - Test::Result::confirm
    - Botan::x509_path_validate
    - auto::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Botan::has_filesystem_impl
      Src: /src/botan/src/tests/test_x509_path.cpp:704,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:705,1
    - Dst: read_results
      Src: /src/botan/src/tests/test_x509_path.cpp:710,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:710,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:712,1
    - Dst: Botan_Tests::Test::files_in_data_dir
      Src: /src/botan/src/tests/test_x509_path.cpp:714,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:716,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:725,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:730,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:737,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:738,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:738,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:741,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_x509_path.cpp:742,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:742,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:742,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:745,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:746,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:746,1
    - Dst: find
      Src: /src/botan/src/tests/test_x509_path.cpp:747,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/test_x509_path.cpp:748,1
    - Dst: Botan::X509_CRL
      Src: /src/botan/src/tests/test_x509_path.cpp:748,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/tests/test_x509_path.cpp:768,1
    - Dst: randomize
      Src: /src/botan/src/tests/test_x509_path.cpp:772,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/botan/src/tests/test_x509_path.cpp:772,1
    - Dst: Botan_Tests::BSI_Path_Validation_Tests::rng
      Src: /src/botan/src/tests/test_x509_path.cpp:780,1
    - Dst: std::shuffle
      Src: /src/botan/src/tests/test_x509_path.cpp:783,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_x509_path.cpp:783,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x509_path.cpp:783,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:785,1
    - Dst: starts_with
      Src: /src/botan/src/tests/test_x509_path.cpp:789,1
    - Dst: substr
      Src: /src/botan/src/tests/test_x509_path.cpp:790,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:790,1
    - Dst: Botan::Path_Validation_Result::warnings
      Src: /src/botan/src/tests/test_x509_path.cpp:792,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:796,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_x509_path.cpp:802,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:806,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:807,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:810,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:811,1
    - Dst: error_type
      Src: /src/botan/src/tests/test_x509_path.cpp:821,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:822,1
    - Dst: what
      Src: /src/botan/src/tests/test_x509_path.cpp:822,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_x509_path.cpp:824,1
    - Dst: what
      Src: /src/botan/src/tests/test_x509_path.cpp:824,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_path.cpp:828,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_path.cpp:829,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 703
    functionDepth: 1
    functionLinenumber: 703
    functionLinenumberEnd: 833
    functionName: Botan_Tests::BSI_Path_Validation_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Result::warnings
    - randomize
    - Test::Result::test_failure
    - std::vector::end
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::Test::files_in_data_dir
    - Botan::calendar_point
    - what
    - std::vector::insert
    - std::vector::begin
    - Botan_Tests::Test::data_file
    - Botan_Tests::Test::Result::Note
    - find
    - starts_with
    - Botan::X509_Certificate
    - Test::Result::start_timer
    - Botan_Tests::random_bit_generator::max
    - std::shuffle
    - std::vector::push_back
    - Botan_Tests::BSI_Path_Validation_Tests::rng
    - reinterpret_cast<uint8_t*>
    - Botan::X509_CRL
    - Botan::has_filesystem_impl
    - read_results
    - Botan::x509_path_validate
    - error_type
    - substr
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - std::string
    - Test::Result::test_eq
    - Botan::Path_Validation_Result::result_string
    - Botan::Certificate_Store_In_Memory::add_crl
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> BSI_Path_Validation_Tests::run()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 766
    functionDepth: 0
    functionLinenumber: 766
    functionLinenumberEnd: 766
    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:768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 768
    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:772,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/botan/src/tests/test_x509_path.cpp:772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 774
    functionName: operator()()
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - randomize
    - reinterpret_cast<uint8_t*>
    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: 776
      start: 776
    functionDepth: 0
    functionLinenumber: 776
    functionLinenumberEnd: 776
    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:840,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 839
    functionDepth: 1
    functionLinenumber: 839
    functionLinenumberEnd: 841
    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:844,1
    - Dst: Botan_Tests::Test::read_binary_data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 843
    functionDepth: 1
    functionLinenumber: 843
    functionLinenumberEnd: 845
    functionName: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 24
    functionsReached:
    - Test_No_Shutdown_Response::Test_No_Shutdown_Response
    - Botan_Tests::Test::read_binary_data_file
    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:849,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:851,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:853,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:854,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:855,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:856,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:860,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:864,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:870,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:873,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:873,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:873,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:874,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:874,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:875,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:878,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:878,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:880,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:880,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:882,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:882,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:884,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 847
    functionDepth: 2
    functionLinenumber: 847
    functionLinenumberEnd: 888
    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:
    - Botan_CLI::Timer::milliseconds
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - auto::result
    - std::string
    - Botan::to_string
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - Test::Result::confirm
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    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:892,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:894,1
    - Dst: Botan::minutes
      Src: /src/botan/src/tests/test_x509_path.cpp:894,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:896,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:897,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:898,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:899,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:903,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:907,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:913,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:916,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:916,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:916,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:917,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:917,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:918,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:921,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:921,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:923,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:923,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:925,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:925,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:927,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:927,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 890
    functionDepth: 2
    functionLinenumber: 890
    functionLinenumberEnd: 931
    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:
    - Botan::minutes
    - Botan_CLI::Timer::milliseconds
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - auto::result
    - std::string
    - Botan::to_string
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - Test::Result::confirm
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    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:935,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:937,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:939,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:940,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:941,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:943,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:947,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:951,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:957,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:960,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:960,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:960,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:961,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:961,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:962,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:965,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:965,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:967,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:967,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:969,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:969,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 933
    functionDepth: 2
    functionLinenumber: 933
    functionLinenumberEnd: 972
    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:
    - Botan_CLI::Timer::milliseconds
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - auto::result
    - std::string
    - Botan::to_string
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - Test::Result::confirm
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    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:976,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:978,1
    - Dst: Botan::minutes
      Src: /src/botan/src/tests/test_x509_path.cpp:978,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:980,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:981,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:982,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:984,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:988,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:992,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:998,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1001,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:1001,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1001,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1002,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1002,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1003,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1006,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1006,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1008,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1008,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1010,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 974
    functionDepth: 2
    functionLinenumber: 974
    functionLinenumberEnd: 1014
    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:
    - Botan::minutes
    - Botan_CLI::Timer::milliseconds
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - auto::result
    - std::string
    - Botan::to_string
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - Test::Result::confirm
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    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:1018,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1020,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1024,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1025,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1026,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1032,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1033,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1035,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1040,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1046,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1049,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:1049,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1049,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1050,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1050,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1051,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1054,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1054,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1056,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1056,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1058,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1058,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1016
    functionDepth: 2
    functionLinenumber: 1016
    functionLinenumberEnd: 1062
    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:
    - Botan_CLI::Timer::milliseconds
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - auto::result
    - std::string
    - Botan::to_string
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::Path_Validation_Restrictions
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - Test::Result::confirm
    - Botan::calendar_point
    - Botan::x509_path_validate
    - check_path
    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:1067,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1069,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1074,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1075,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1076,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1078,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1080,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1082,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1089,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1095,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1098,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_path.cpp:1099,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1099,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_path.cpp:1100,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1102,1
    - Dst: flatten
      Src: /src/botan/src/tests/test_x509_path.cpp:1103,1
    - Dst: auto::all_statuses
      Src: /src/botan/src/tests/test_x509_path.cpp:1103,1
    - Dst: value
      Src: /src/botan/src/tests/test_x509_path.cpp:1103,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1107,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1107,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1110,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1110,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1114,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1120
      start: 1064
    functionDepth: 2
    functionLinenumber: 1064
    functionLinenumberEnd: 1120
    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:
    - Botan_CLI::Timer::milliseconds
    - auto::all_statuses
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - value
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - static_cast<uint32_t>
    - auto::result
    - Test::Result::test_is_eq
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::Path_Validation_Restrictions
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - Test::Result::confirm
    - Botan::calendar_point
    - Botan::x509_path_validate
    - flatten
    - check_path
    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:1124,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1126,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1130,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1131,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1132,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1133,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1140,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1142,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1147,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1148,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1151,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1152,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1153,1
    - Dst: flatten
      Src: /src/botan/src/tests/test_x509_path.cpp:1154,1
    - Dst: auto::all_statuses
      Src: /src/botan/src/tests/test_x509_path.cpp:1154,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1155,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:1155,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1155,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1155,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1161,1
    - Dst: check_path
      Src: /src/botan/src/tests/test_x509_path.cpp:1164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1122
    functionDepth: 2
    functionLinenumber: 1122
    functionLinenumberEnd: 1169
    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:
    - Botan_CLI::Timer::milliseconds
    - auto::all_statuses
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - auto::result
    - Test::Result::test_is_eq
    - std::string
    - check_path
    - Botan::to_string
    - Botan::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - Botan::calendar_point
    - Test::Result::confirm
    - Botan::x509_path_validate
    - flatten
    - Test::Result::test_note
    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:1174,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1176,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1181,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1182,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
      Src: /src/botan/src/tests/test_x509_path.cpp:1183,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1186,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
      Src: /src/botan/src/tests/test_x509_path.cpp:1189,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1191,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1195,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1200,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1201,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1203,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1204,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1205,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x509_path.cpp:1205,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1205,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1208
      start: 1171
    functionDepth: 2
    functionLinenumber: 1171
    functionLinenumberEnd: 1208
    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:
    - Botan_CLI::Timer::milliseconds
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_X509_cert
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - auto::result
    - std::string
    - Botan::to_string
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::Path_Validation_Restrictions
    - Botan_Tests::Path_Validation_With_OCSP_Tests::load_test_OCSP_resp
    - Botan::calendar_point
    - Test::Result::confirm
    - Botan::x509_path_validate
    - Test::Result::test_note
    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:1211,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:1212,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:1213,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:1214,1
    - Dst: Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_authorized_responder
      Src: /src/botan/src/tests/test_x509_path.cpp:1215,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:1216,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:1217,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:1218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1219
      start: 1210
    functionDepth: 3
    functionLinenumber: 1210
    functionLinenumberEnd: 1219
    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_next_update_with_max_age
    - Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_ocsp_with_authorized_responder
    - 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_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
    - Botan_Tests::Path_Validation_With_OCSP_Tests::validate_with_forged_ocsp_using_self_signed_cert
    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:1233,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1234,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_x509_path.cpp:1238,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1239,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_x509_path.cpp:1243,1
    - Dst: get_p
      Src: /src/botan/src/tests/test_x509_path.cpp:1247,1
    - Dst: get_a
      Src: /src/botan/src/tests/test_x509_path.cpp:1248,1
    - Dst: get_b
      Src: /src/botan/src/tests/test_x509_path.cpp:1249,1
    - Dst: BigInt
      Src: /src/botan/src/tests/test_x509_path.cpp:1250,1
    - Dst: BigInt
      Src: /src/botan/src/tests/test_x509_path.cpp:1252,1
    - Dst: get_order
      Src: /src/botan/src/tests/test_x509_path.cpp:1254,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1256,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1256,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1257,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1257,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1258,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1258,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1260,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1261,1
    - Dst: Botan::Path_Validation_Restrictions
      Src: /src/botan/src/tests/test_x509_path.cpp:1263,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1265,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1267,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1273,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1276,1
    - Dst: auto::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1276,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1278,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1279,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1281,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1287,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1290,1
    - Dst: auto::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1290,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1292,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1293,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1296,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1297,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1299,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x509_path.cpp:1305,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1308,1
    - Dst: auto::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1308,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1230
    functionDepth: 1
    functionLinenumber: 1230
    functionLinenumberEnd: 1311
    functionName: Botan_Tests::CVE_2020_0601_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - get_p
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::calendar_point
    - get_b
    - Botan_CLI::Timer::milliseconds
    - Botan_Tests::Test::data_file
    - auto::successful_validation
    - Botan::Path_Validation_Restrictions
    - Botan::EC_Group::supports_application_specific_group
    - Botan::X509_Certificate
    - get_order
    - get_a
    - Botan::x509_path_validate
    - Test::Result::test_note
    - Botan::EC_Group::supports_named_group
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - auto::result
    - Botan::EC_Group::from_name
    - Test::Result::confirm
    - BigInt
    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:1324,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1325,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1329,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1330,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1331,1
    - Dst: Botan::X509_CRL
      Src: /src/botan/src/tests/test_x509_path.cpp:1334,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1334,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1335,1
    - Dst: auto::this_update
      Src: /src/botan/src/tests/test_x509_path.cpp:1335,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1336,1
    - Dst: auto::next_update
      Src: /src/botan/src/tests/test_x509_path.cpp:1336,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1337,1
    - Dst: auto::get_revoked
      Src: /src/botan/src/tests/test_x509_path.cpp:1337,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_x509_path.cpp:1340,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1341,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_path.cpp:1345,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1346,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/test_x509_path.cpp:1347,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1351,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1356,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1358,1
    - Dst: auto::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1358,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1359,1
    - Dst: auto::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1359,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_path.cpp:1363,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_path.cpp:1365,1
    - Dst: auto::successful_validation
      Src: /src/botan/src/tests/test_x509_path.cpp:1365,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x509_path.cpp:1366,1
    - Dst: auto::result_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1366,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1368,1
    - Dst: auto::result
      Src: /src/botan/src/tests/test_x509_path.cpp:1368,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1371
      start: 1318
    functionDepth: 1
    functionLinenumber: 1318
    functionLinenumberEnd: 1371
    functionName: Botan_Tests::Path_Validation_With_Immortal_CRL::run
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 0
    functionsReached:
    - Botan::x509_path_validate
    - auto::result_string
    - Botan::EC_Group::supports_named_group
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - auto::result
    - auto::get_revoked
    - Botan_Tests::Test::data_file
    - auto::successful_validation
    - Test::Result::test_is_eq
    - Botan::X509_CRL
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::confirm
    - Botan::has_filesystem_impl
    - Botan::Certificate_Store_In_Memory::add_crl
    - Botan::calendar_point
    - auto::this_update
    - auto::next_update
    - Test::Result::test_note
    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:1385,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_x509_path.cpp:1386,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_path.cpp:1386,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_path.cpp:1389,1
    - Dst: Botan::PKIX::overall_status
      Src: /src/botan/src/tests/test_x509_path.cpp:1391,1
    - Dst: Botan::PKIX::check_chain
      Src: /src/botan/src/tests/test_x509_path.cpp:1392,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_path.cpp:1393,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/test_x509_path.cpp:1393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' name'
    - ' file'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1395
      start: 1382
    functionDepth: 1
    functionLinenumber: 1382
    functionLinenumberEnd: 1395
    functionName: Botan_Tests::XMSS_Path_Validation_Tests::validate_self_signed
    functionSourceFile: /src/botan/src/tests/test_x509_path.cpp
    functionUses: 3
    functionsReached:
    - Botan::PKIX::overall_status
    - Botan_Tests::Test::data_file
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Botan::PKIX::check_chain
    - Test::Result::test_eq
    - Botan::to_string
    - Botan::calendar_point
    - Botan::X509_Certificate
    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:1398,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/test_x509_path.cpp:1399,1
    - Dst: Botan_Tests::XMSS_Path_Validation_Tests::validate_self_signed
      Src: /src/botan/src/tests/test_x509_path.cpp:1403,1
    - Dst: Botan_Tests::XMSS_Path_Validation_Tests::validate_self_signed
      Src: /src/botan/src/tests/test_x509_path.cpp:1404,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1406
      start: 1397
    functionDepth: 2
    functionLinenumber: 1397
    functionLinenumberEnd: 1406
    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: std::vector::data
      Src: /src/botan/src/tests/test_asn1.cpp:30,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_asn1.cpp:30,1
    - Dst: Botan::BER_Decoder::more_items
      Src: /src/botan/src/tests/test_asn1.cpp:33,1
    - Dst: Botan::BER_Decoder::get_next
      Src: /src/botan/src/tests/test_asn1.cpp:35,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_asn1.cpp:39,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 42
    functionName: Botan_Tests::test_ber_stack_recursion
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan::BER_Decoder::more_items
    - std::vector::data
    - Botan::BER_Decoder::get_next
    - std::vector::size
    - Test::Result::test_success
    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:67,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_asn1.cpp:74,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 77
    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_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:91,1
    - Dst: Botan::ASN1_String::decode_from
      Src: /src/botan/src/tests/test_asn1.cpp:92,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_asn1.cpp:94,1
    - Dst: Botan::ASN1_String::value
      Src: /src/botan/src/tests/test_asn1.cpp:94,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:96,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 100
    functionName: Botan_Tests::test_asn1_utf8_ascii_parsing
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan::ASN1_String::ASN1_String
    - Test::Result::test_failure
    - Test::Result::test_eq
    - Botan::ASN1_String::decode_from
    - what
    - Botan::ASN1_String::value
    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:114,1
    - Dst: Botan::ASN1_String::decode_from
      Src: /src/botan/src/tests/test_asn1.cpp:115,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_asn1.cpp:117,1
    - Dst: Botan::ASN1_String::value
      Src: /src/botan/src/tests/test_asn1.cpp:117,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:119,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 123
    functionName: Botan_Tests::test_asn1_utf8_parsing
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan::ASN1_String::ASN1_String
    - Test::Result::test_failure
    - Test::Result::test_eq
    - Botan::ASN1_String::decode_from
    - what
    - Botan::ASN1_String::value
    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:138,1
    - Dst: Botan::ASN1_String::decode_from
      Src: /src/botan/src/tests/test_asn1.cpp:139,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_asn1.cpp:141,1
    - Dst: Botan::ASN1_String::value
      Src: /src/botan/src/tests/test_asn1.cpp:141,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:143,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 147
    functionName: Botan_Tests::test_asn1_ucs2_parsing
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan::ASN1_String::ASN1_String
    - Test::Result::test_failure
    - Test::Result::test_eq
    - Botan::ASN1_String::decode_from
    - what
    - Botan::ASN1_String::value
    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:162,1
    - Dst: Botan::ASN1_String::decode_from
      Src: /src/botan/src/tests/test_asn1.cpp:163,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_asn1.cpp:165,1
    - Dst: Botan::ASN1_String::value
      Src: /src/botan/src/tests/test_asn1.cpp:165,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:167,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 171
    functionName: Botan_Tests::test_asn1_ucs4_parsing
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan::ASN1_String::ASN1_String
    - Test::Result::test_failure
    - Test::Result::test_eq
    - Botan::ASN1_String::decode_from
    - what
    - Botan::ASN1_String::value
    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:181,1
    - Dst: Botan::ASN1_String::encode_into
      Src: /src/botan/src/tests/test_asn1.cpp:183,1
    - Dst: Botan::DER_Encoder::get_contents
      Src: /src/botan/src/tests/test_asn1.cpp:184,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_asn1.cpp:188,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_asn1.cpp:189,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_asn1.cpp:191,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:193,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 197
    functionName: Botan_Tests::test_asn1_ascii_encoding
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan::DER_Encoder::get_contents
    - Botan::hex_decode
    - Test::Result::test_failure
    - Botan::DER_Encoder::DER_Encoder
    - Test::Result::test_eq
    - what
    - Botan::ASN1_String::encode_into
    - Test::Result::test_success
    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:207,1
    - Dst: Botan::ASN1_String::encode_into
      Src: /src/botan/src/tests/test_asn1.cpp:209,1
    - Dst: Botan::DER_Encoder::get_contents
      Src: /src/botan/src/tests/test_asn1.cpp:210,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_asn1.cpp:214,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_asn1.cpp:215,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_asn1.cpp:217,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:219,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 223
    functionName: Botan_Tests::test_asn1_utf8_encoding
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan::DER_Encoder::get_contents
    - Botan::hex_decode
    - Test::Result::test_failure
    - Botan::DER_Encoder::DER_Encoder
    - Test::Result::test_eq
    - what
    - Botan::ASN1_String::encode_into
    - Test::Result::test_success
    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:231,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_asn1.cpp:234,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 241
    functionName: Botan_Tests::test_asn1_tag_underlying_type
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_failure
    - Test::Result::test_success
    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:251,1
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/tests/test_asn1.cpp:254,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_asn1.cpp:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 260
    functionName: Botan_Tests::test_asn1_negative_int_encoding
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan::BER_Decoder
    - Botan::DER_Encoder
    - Test::Result::test_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_asn1_negative_int_encoding()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_asn1.cpp:30,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_asn1.cpp:30,1
    - Dst: Botan::BER_Decoder::more_items
      Src: /src/botan/src/tests/test_asn1.cpp:33,1
    - Dst: Botan::BER_Decoder::get_next
      Src: /src/botan/src/tests/test_asn1.cpp:35,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_asn1.cpp:39,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 42
    functionName: Botan_Tests::test_ber_stack_recursion
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan::BER_Decoder::more_items
    - std::vector::data
    - Botan::BER_Decoder::get_next
    - std::vector::size
    - Test::Result::test_success
    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:67,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_asn1.cpp:74,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 77
    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_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:91,1
    - Dst: Botan::ASN1_String::decode_from
      Src: /src/botan/src/tests/test_asn1.cpp:92,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_asn1.cpp:94,1
    - Dst: Botan::ASN1_String::value
      Src: /src/botan/src/tests/test_asn1.cpp:94,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:96,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 100
    functionName: Botan_Tests::test_asn1_utf8_ascii_parsing
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan::ASN1_String::ASN1_String
    - Test::Result::test_failure
    - Test::Result::test_eq
    - Botan::ASN1_String::decode_from
    - what
    - Botan::ASN1_String::value
    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:114,1
    - Dst: Botan::ASN1_String::decode_from
      Src: /src/botan/src/tests/test_asn1.cpp:115,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_asn1.cpp:117,1
    - Dst: Botan::ASN1_String::value
      Src: /src/botan/src/tests/test_asn1.cpp:117,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:119,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 123
    functionName: Botan_Tests::test_asn1_utf8_parsing
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan::ASN1_String::ASN1_String
    - Test::Result::test_failure
    - Test::Result::test_eq
    - Botan::ASN1_String::decode_from
    - what
    - Botan::ASN1_String::value
    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:138,1
    - Dst: Botan::ASN1_String::decode_from
      Src: /src/botan/src/tests/test_asn1.cpp:139,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_asn1.cpp:141,1
    - Dst: Botan::ASN1_String::value
      Src: /src/botan/src/tests/test_asn1.cpp:141,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:143,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 147
    functionName: Botan_Tests::test_asn1_ucs2_parsing
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan::ASN1_String::ASN1_String
    - Test::Result::test_failure
    - Test::Result::test_eq
    - Botan::ASN1_String::decode_from
    - what
    - Botan::ASN1_String::value
    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:162,1
    - Dst: Botan::ASN1_String::decode_from
      Src: /src/botan/src/tests/test_asn1.cpp:163,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_asn1.cpp:165,1
    - Dst: Botan::ASN1_String::value
      Src: /src/botan/src/tests/test_asn1.cpp:165,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:167,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 171
    functionName: Botan_Tests::test_asn1_ucs4_parsing
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan::ASN1_String::ASN1_String
    - Test::Result::test_failure
    - Test::Result::test_eq
    - Botan::ASN1_String::decode_from
    - what
    - Botan::ASN1_String::value
    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:181,1
    - Dst: Botan::ASN1_String::encode_into
      Src: /src/botan/src/tests/test_asn1.cpp:183,1
    - Dst: Botan::DER_Encoder::get_contents
      Src: /src/botan/src/tests/test_asn1.cpp:184,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_asn1.cpp:188,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_asn1.cpp:189,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_asn1.cpp:191,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:193,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 197
    functionName: Botan_Tests::test_asn1_ascii_encoding
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan::DER_Encoder::get_contents
    - Botan::hex_decode
    - Test::Result::test_failure
    - Botan::DER_Encoder::DER_Encoder
    - Test::Result::test_eq
    - what
    - Botan::ASN1_String::encode_into
    - Test::Result::test_success
    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:207,1
    - Dst: Botan::ASN1_String::encode_into
      Src: /src/botan/src/tests/test_asn1.cpp:209,1
    - Dst: Botan::DER_Encoder::get_contents
      Src: /src/botan/src/tests/test_asn1.cpp:210,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_asn1.cpp:214,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_asn1.cpp:215,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_asn1.cpp:217,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:219,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 223
    functionName: Botan_Tests::test_asn1_utf8_encoding
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan::DER_Encoder::get_contents
    - Botan::hex_decode
    - Test::Result::test_failure
    - Botan::DER_Encoder::DER_Encoder
    - Test::Result::test_eq
    - what
    - Botan::ASN1_String::encode_into
    - Test::Result::test_success
    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:231,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_asn1.cpp:234,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 241
    functionName: Botan_Tests::test_asn1_tag_underlying_type
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_failure
    - Test::Result::test_success
    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:251,1
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/tests/test_asn1.cpp:254,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_asn1.cpp:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 260
    functionName: Botan_Tests::test_asn1_negative_int_encoding
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan::BER_Decoder
    - Botan::DER_Encoder
    - Test::Result::test_eq
    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:269,1
    - Dst: test_ber_stack_recursion
      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_ber_eoc_decoding_limits
      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_ascii_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_utf8_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_ucs2_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_ucs4_parsing
      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_ascii_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_utf8_encoding
      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_tag_underlying_type
      Src: /src/botan/src/tests/test_asn1.cpp:277,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_asn1.cpp:278,1
    - Dst: test_asn1_negative_int_encoding
      Src: /src/botan/src/tests/test_asn1.cpp:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 281
    functionName: Botan_Tests::ASN1_Tests::run
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - test_asn1_ucs4_parsing
    - test_asn1_tag_underlying_type
    - std::vector::push_back
    - test_asn1_utf8_parsing
    - test_asn1_utf8_ascii_parsing
    - test_ber_stack_recursion
    - test_asn1_negative_int_encoding
    - test_ber_eoc_decoding_limits
    - test_asn1_ascii_encoding
    - test_asn1_ucs2_parsing
    - test_asn1_utf8_encoding
    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: 288
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 288
    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:293,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_asn1.cpp:297,1
    - Dst: find
      Src: /src/botan/src/tests/test_asn1.cpp:304,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_asn1.cpp:308,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_asn1.cpp:310,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - ' tag_str'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 314
    functionName: Botan_Tests::ASN1_Time_Parsing_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Test_Error
    - find
    - Test::Result::test_success
    - get_req_str
    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:329,1
    - Dst: Botan_Tests::Test::read_binary_data_file
      Src: /src/botan/src/tests/test_asn1.cpp:330,1
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_asn1.cpp:331,1
    - Dst: Botan::ASN1_Pretty_Printer::print
      Src: /src/botan/src/tests/test_asn1.cpp:334,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_asn1.cpp:335,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:337,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_asn1.cpp:337,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:337,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 342
    functionName: Botan_Tests::ASN1_Printer_Tests::run
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::read_data_file
    - Botan::fmt
    - Test::Result::test_failure
    - Botan_Tests::Test::read_binary_data_file
    - Test::Result::test_eq
    - what
    - std::to_string
    - Botan::ASN1_Pretty_Printer::print
    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:30,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_asn1.cpp:30,1
    - Dst: Botan::BER_Decoder::more_items
      Src: /src/botan/src/tests/test_asn1.cpp:33,1
    - Dst: Botan::BER_Decoder::get_next
      Src: /src/botan/src/tests/test_asn1.cpp:35,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_asn1.cpp:39,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 42
    functionName: Botan_Tests::test_ber_stack_recursion
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan::BER_Decoder::more_items
    - std::vector::data
    - Botan::BER_Decoder::get_next
    - std::vector::size
    - Test::Result::test_success
    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:67,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_asn1.cpp:74,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 77
    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_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:91,1
    - Dst: Botan::ASN1_String::decode_from
      Src: /src/botan/src/tests/test_asn1.cpp:92,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_asn1.cpp:94,1
    - Dst: Botan::ASN1_String::value
      Src: /src/botan/src/tests/test_asn1.cpp:94,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:96,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 100
    functionName: Botan_Tests::test_asn1_utf8_ascii_parsing
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan::ASN1_String::ASN1_String
    - Test::Result::test_failure
    - Test::Result::test_eq
    - Botan::ASN1_String::decode_from
    - what
    - Botan::ASN1_String::value
    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:114,1
    - Dst: Botan::ASN1_String::decode_from
      Src: /src/botan/src/tests/test_asn1.cpp:115,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_asn1.cpp:117,1
    - Dst: Botan::ASN1_String::value
      Src: /src/botan/src/tests/test_asn1.cpp:117,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:119,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 123
    functionName: Botan_Tests::test_asn1_utf8_parsing
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan::ASN1_String::ASN1_String
    - Test::Result::test_failure
    - Test::Result::test_eq
    - Botan::ASN1_String::decode_from
    - what
    - Botan::ASN1_String::value
    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:138,1
    - Dst: Botan::ASN1_String::decode_from
      Src: /src/botan/src/tests/test_asn1.cpp:139,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_asn1.cpp:141,1
    - Dst: Botan::ASN1_String::value
      Src: /src/botan/src/tests/test_asn1.cpp:141,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:143,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 147
    functionName: Botan_Tests::test_asn1_ucs2_parsing
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan::ASN1_String::ASN1_String
    - Test::Result::test_failure
    - Test::Result::test_eq
    - Botan::ASN1_String::decode_from
    - what
    - Botan::ASN1_String::value
    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:162,1
    - Dst: Botan::ASN1_String::decode_from
      Src: /src/botan/src/tests/test_asn1.cpp:163,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_asn1.cpp:165,1
    - Dst: Botan::ASN1_String::value
      Src: /src/botan/src/tests/test_asn1.cpp:165,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:167,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 171
    functionName: Botan_Tests::test_asn1_ucs4_parsing
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan::ASN1_String::ASN1_String
    - Test::Result::test_failure
    - Test::Result::test_eq
    - Botan::ASN1_String::decode_from
    - what
    - Botan::ASN1_String::value
    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:181,1
    - Dst: Botan::ASN1_String::encode_into
      Src: /src/botan/src/tests/test_asn1.cpp:183,1
    - Dst: Botan::DER_Encoder::get_contents
      Src: /src/botan/src/tests/test_asn1.cpp:184,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_asn1.cpp:188,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_asn1.cpp:189,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_asn1.cpp:191,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:193,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 197
    functionName: Botan_Tests::test_asn1_ascii_encoding
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan::DER_Encoder::get_contents
    - Botan::hex_decode
    - Test::Result::test_failure
    - Botan::DER_Encoder::DER_Encoder
    - Test::Result::test_eq
    - what
    - Botan::ASN1_String::encode_into
    - Test::Result::test_success
    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:207,1
    - Dst: Botan::ASN1_String::encode_into
      Src: /src/botan/src/tests/test_asn1.cpp:209,1
    - Dst: Botan::DER_Encoder::get_contents
      Src: /src/botan/src/tests/test_asn1.cpp:210,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_asn1.cpp:214,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_asn1.cpp:215,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_asn1.cpp:217,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:219,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 223
    functionName: Botan_Tests::test_asn1_utf8_encoding
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan::DER_Encoder::get_contents
    - Botan::hex_decode
    - Test::Result::test_failure
    - Botan::DER_Encoder::DER_Encoder
    - Test::Result::test_eq
    - what
    - Botan::ASN1_String::encode_into
    - Test::Result::test_success
    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:231,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_asn1.cpp:234,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 241
    functionName: Botan_Tests::test_asn1_tag_underlying_type
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_failure
    - Test::Result::test_success
    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:251,1
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/tests/test_asn1.cpp:254,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_asn1.cpp:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 260
    functionName: Botan_Tests::test_asn1_negative_int_encoding
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan::BER_Decoder
    - Botan::DER_Encoder
    - Test::Result::test_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_asn1_negative_int_encoding()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_asn1.cpp:30,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_asn1.cpp:30,1
    - Dst: Botan::BER_Decoder::more_items
      Src: /src/botan/src/tests/test_asn1.cpp:33,1
    - Dst: Botan::BER_Decoder::get_next
      Src: /src/botan/src/tests/test_asn1.cpp:35,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_asn1.cpp:39,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 42
    functionName: Botan_Tests::test_ber_stack_recursion
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan::BER_Decoder::more_items
    - std::vector::data
    - Botan::BER_Decoder::get_next
    - std::vector::size
    - Test::Result::test_success
    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:67,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_asn1.cpp:74,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 77
    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_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:91,1
    - Dst: Botan::ASN1_String::decode_from
      Src: /src/botan/src/tests/test_asn1.cpp:92,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_asn1.cpp:94,1
    - Dst: Botan::ASN1_String::value
      Src: /src/botan/src/tests/test_asn1.cpp:94,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:96,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 100
    functionName: Botan_Tests::test_asn1_utf8_ascii_parsing
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan::ASN1_String::ASN1_String
    - Test::Result::test_failure
    - Test::Result::test_eq
    - Botan::ASN1_String::decode_from
    - what
    - Botan::ASN1_String::value
    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:114,1
    - Dst: Botan::ASN1_String::decode_from
      Src: /src/botan/src/tests/test_asn1.cpp:115,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_asn1.cpp:117,1
    - Dst: Botan::ASN1_String::value
      Src: /src/botan/src/tests/test_asn1.cpp:117,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:119,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 123
    functionName: Botan_Tests::test_asn1_utf8_parsing
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan::ASN1_String::ASN1_String
    - Test::Result::test_failure
    - Test::Result::test_eq
    - Botan::ASN1_String::decode_from
    - what
    - Botan::ASN1_String::value
    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:138,1
    - Dst: Botan::ASN1_String::decode_from
      Src: /src/botan/src/tests/test_asn1.cpp:139,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_asn1.cpp:141,1
    - Dst: Botan::ASN1_String::value
      Src: /src/botan/src/tests/test_asn1.cpp:141,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:143,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 147
    functionName: Botan_Tests::test_asn1_ucs2_parsing
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan::ASN1_String::ASN1_String
    - Test::Result::test_failure
    - Test::Result::test_eq
    - Botan::ASN1_String::decode_from
    - what
    - Botan::ASN1_String::value
    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:162,1
    - Dst: Botan::ASN1_String::decode_from
      Src: /src/botan/src/tests/test_asn1.cpp:163,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_asn1.cpp:165,1
    - Dst: Botan::ASN1_String::value
      Src: /src/botan/src/tests/test_asn1.cpp:165,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:167,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 171
    functionName: Botan_Tests::test_asn1_ucs4_parsing
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan::ASN1_String::ASN1_String
    - Test::Result::test_failure
    - Test::Result::test_eq
    - Botan::ASN1_String::decode_from
    - what
    - Botan::ASN1_String::value
    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:181,1
    - Dst: Botan::ASN1_String::encode_into
      Src: /src/botan/src/tests/test_asn1.cpp:183,1
    - Dst: Botan::DER_Encoder::get_contents
      Src: /src/botan/src/tests/test_asn1.cpp:184,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_asn1.cpp:188,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_asn1.cpp:189,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_asn1.cpp:191,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:193,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 197
    functionName: Botan_Tests::test_asn1_ascii_encoding
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan::DER_Encoder::get_contents
    - Botan::hex_decode
    - Test::Result::test_failure
    - Botan::DER_Encoder::DER_Encoder
    - Test::Result::test_eq
    - what
    - Botan::ASN1_String::encode_into
    - Test::Result::test_success
    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:207,1
    - Dst: Botan::ASN1_String::encode_into
      Src: /src/botan/src/tests/test_asn1.cpp:209,1
    - Dst: Botan::DER_Encoder::get_contents
      Src: /src/botan/src/tests/test_asn1.cpp:210,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_asn1.cpp:214,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_asn1.cpp:215,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_asn1.cpp:217,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:219,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 223
    functionName: Botan_Tests::test_asn1_utf8_encoding
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan::DER_Encoder::get_contents
    - Botan::hex_decode
    - Test::Result::test_failure
    - Botan::DER_Encoder::DER_Encoder
    - Test::Result::test_eq
    - what
    - Botan::ASN1_String::encode_into
    - Test::Result::test_success
    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:231,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_asn1.cpp:234,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 241
    functionName: Botan_Tests::test_asn1_tag_underlying_type
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_failure
    - Test::Result::test_success
    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:251,1
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/tests/test_asn1.cpp:254,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_asn1.cpp:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 260
    functionName: Botan_Tests::test_asn1_negative_int_encoding
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan::BER_Decoder
    - Botan::DER_Encoder
    - Test::Result::test_eq
    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:269,1
    - Dst: test_ber_stack_recursion
      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_ber_eoc_decoding_limits
      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_ascii_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_utf8_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_ucs2_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_ucs4_parsing
      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_ascii_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_utf8_encoding
      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_tag_underlying_type
      Src: /src/botan/src/tests/test_asn1.cpp:277,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_asn1.cpp:278,1
    - Dst: test_asn1_negative_int_encoding
      Src: /src/botan/src/tests/test_asn1.cpp:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 281
    functionName: Botan_Tests::ASN1_Tests::run
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - test_asn1_ucs4_parsing
    - test_asn1_tag_underlying_type
    - std::vector::push_back
    - test_asn1_utf8_parsing
    - test_asn1_utf8_ascii_parsing
    - test_ber_stack_recursion
    - test_asn1_negative_int_encoding
    - test_ber_eoc_decoding_limits
    - test_asn1_ascii_encoding
    - test_asn1_ucs2_parsing
    - test_asn1_utf8_encoding
    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: 288
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 288
    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:293,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_asn1.cpp:297,1
    - Dst: find
      Src: /src/botan/src/tests/test_asn1.cpp:304,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_asn1.cpp:308,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_asn1.cpp:310,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - ' tag_str'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 314
    functionName: Botan_Tests::ASN1_Time_Parsing_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Test_Error
    - find
    - Test::Result::test_success
    - get_req_str
    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:329,1
    - Dst: Botan_Tests::Test::read_binary_data_file
      Src: /src/botan/src/tests/test_asn1.cpp:330,1
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_asn1.cpp:331,1
    - Dst: Botan::ASN1_Pretty_Printer::print
      Src: /src/botan/src/tests/test_asn1.cpp:334,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_asn1.cpp:335,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_asn1.cpp:337,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_asn1.cpp:337,1
    - Dst: what
      Src: /src/botan/src/tests/test_asn1.cpp:337,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 342
    functionName: Botan_Tests::ASN1_Printer_Tests::run
    functionSourceFile: /src/botan/src/tests/test_asn1.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::read_data_file
    - Botan::fmt
    - Test::Result::test_failure
    - Botan_Tests::Test::read_binary_data_file
    - Test::Result::test_eq
    - what
    - std::to_string
    - Botan::ASN1_Pretty_Printer::print
    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:34,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/unit_x509.cpp:34,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/unit_x509.cpp:36,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/unit_x509.cpp:37,1
    - Dst: Botan::calendar_point::to_std_timepoint
      Src: /src/botan/src/tests/unit_x509.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - y
    - m
    - d
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: Botan_Tests::from_date
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - Botan::calendar_point::to_std_timepoint
    - Botan::X509_Time
    - Botan::TLS::detail::AsyncBase::complete_now
    - Botan::calendar_point
    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:47,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/tests/unit_x509.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 52
    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:60,1
    - Dst: Botan::X509_Cert_Options::not_before
      Src: /src/botan/src/tests/unit_x509.cpp:62,1
    - Dst: Botan::X509_Cert_Options::not_after
      Src: /src/botan/src/tests/unit_x509.cpp:63,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 74
    functionName: Botan_Tests::req_opts1
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Cert_Options::not_after
    - Botan::X509_Cert_Options::set_padding_scheme
    - Botan::X509_Cert_Options::not_before
    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:82,1
    - Dst: Botan::X509_Cert_Options::add_ex_constraint
      Src: /src/botan/src/tests/unit_x509.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 87
    functionName: Botan_Tests::req_opts2
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Cert_Options::set_padding_scheme
    - Botan::X509_Cert_Options::add_ex_constraint
    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:95,1
    - Dst: Botan::X509_Cert_Options::more_org_units::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:97,1
    - Dst: Botan::X509_Cert_Options::more_org_units::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:98,1
    - Dst: Botan::X509_Cert_Options::more_dns::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 102
    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::set_padding_scheme
    - Botan::X509_Cert_Options::more_org_units::push_back
    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:112,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:131,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - ' algo'
    - ' rng'
    argTypes:
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 135
    functionName: Botan_Tests::make_a_private_key
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - Botan::create_private_key
    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_eq
      Src: /src/botan/src/tests/unit_x509.cpp:142,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/unit_x509.cpp:143,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/unit_x509.cpp:144,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/unit_x509.cpp:198,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:199,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/unit_x509.cpp:199,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:200,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/unit_x509.cpp:200,1
    - Dst: std::set::insert
      Src: /src/botan/src/tests/unit_x509.cpp:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 205
    functionName: Botan_Tests::test_cert_status_strings
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - std::string::size
    - std::set::count
    - Test::Result::test_eq
    - Botan::to_string
    - Test::Result::confirm
    - std::set::insert
    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:212,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/tests/unit_x509.cpp:213,1
    - Dst: Botan::Extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:215,1
    - Dst: std::make_unique<Botan::Cert_Extension::Basic_Constraints>
      Src: /src/botan/src/tests/unit_x509.cpp:215,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:217,1
    - Dst: Botan::Extensions::extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:217,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:218,1
    - Dst: Botan::Extensions::critical_extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:218,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:219,1
    - Dst: Botan::Extensions::extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:219,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:220,1
    - Dst: Botan::Extensions::critical_extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:220,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:222,1
    - Dst: Botan::Extensions::get_extension_bits
      Src: /src/botan/src/tests/unit_x509.cpp:222,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:224,1
    - Dst: Botan::Extensions::get_extension_bits
      Src: /src/botan/src/tests/unit_x509.cpp:224,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:226,1
    - Dst: Botan::Extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:227,1
    - Dst: std::make_unique<Botan::Cert_Extension::Basic_Constraints>
      Src: /src/botan/src/tests/unit_x509.cpp:227,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:229,1
    - Dst: Botan::Extensions::get_extension_bits
      Src: /src/botan/src/tests/unit_x509.cpp:229,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:231,1
    - Dst: Botan::Extensions::add_new
      Src: /src/botan/src/tests/unit_x509.cpp:232,1
    - Dst: std::make_unique<Botan::Cert_Extension::Basic_Constraints>
      Src: /src/botan/src/tests/unit_x509.cpp:232,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:234,1
    - Dst: Botan::Extensions::critical_extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:234,1
    - Dst: Botan::Extensions::replace
      Src: /src/botan/src/tests/unit_x509.cpp:236,1
    - Dst: std::make_unique<Botan::Cert_Extension::Basic_Constraints>
      Src: /src/botan/src/tests/unit_x509.cpp:236,1
    - Dst: Test::Result::confirm
      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: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:238,1
    - Dst: Botan::Extensions::get_extension_bits
      Src: /src/botan/src/tests/unit_x509.cpp:238,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:240,1
    - Dst: Botan::Extensions::remove
      Src: /src/botan/src/tests/unit_x509.cpp:240,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:241,1
    - Dst: Botan::Extensions::remove
      Src: /src/botan/src/tests/unit_x509.cpp:241,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:242,1
    - Dst: Botan::Extensions::extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:242,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:243,1
    - Dst: Botan::Extensions::critical_extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 246
    functionName: Botan_Tests::test_x509_extension
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::Extensions::get_extension_bits
    - Test::Result::test_throws
    - Botan::Extensions::remove
    - Botan::Extensions::add_new
    - Botan::Extensions::extension_set
    - Botan::Extensions::replace
    - Botan::Extensions::critical_extension_set
    - Test::Result::test_eq
    - Botan::Extensions::add
    - Test::Result::confirm
    - Botan::OID::from_string
    - std::make_unique<Botan::Cert_Extension::Basic_Constraints>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_extension()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:252,1
    - Dst: Botan::X509_Time::time_is_set
      Src: /src/botan/src/tests/unit_x509.cpp:252,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/unit_x509.cpp:253,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:254,1
    - Dst: Botan::X509_Time::time_is_set
      Src: /src/botan/src/tests/unit_x509.cpp:254,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:255,1
    - Dst: Botan::X509_Time::readable_string
      Src: /src/botan/src/tests/unit_x509.cpp:255,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/unit_x509.cpp:257,1
    - Dst: Test::Result::test_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_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:262,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/unit_x509.cpp:264,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:265,1
    - Dst: Botan::X509_Time::readable_string
      Src: /src/botan/src/tests/unit_x509.cpp:266,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/unit_x509.cpp:269,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:270,1
    - Dst: Botan::X509_Time::readable_string
      Src: /src/botan/src/tests/unit_x509.cpp:270,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:401,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:413,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:417,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 421
    functionName: Botan_Tests::test_x509_dates
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::X509_Time
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::X509_Time::readable_string
    - 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:427,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:442,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/unit_x509.cpp:443,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:444,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:444,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:448,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:450,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:451,1
    - Dst: std::make_unique<Botan::Cert_Extension::Authority_Information_Access>
      Src: /src/botan/src/tests/unit_x509.cpp:451,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:453,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:455,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:455,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:455,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:457,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:457,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:461,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:462,1
    - Dst: Botan::TLS::Session_Manager::find
      Src: /src/botan/src/tests/unit_x509.cpp:463,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/unit_x509.cpp:463,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:466,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:466,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:469,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:470,1
    - Dst: std::make_unique<Botan::Cert_Extension::Authority_Information_Access>
      Src: /src/botan/src/tests/unit_x509.cpp:470,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:472,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:474,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:474,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:474,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:476,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:476,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:477,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:477,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:478,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:478,1
    - Dst: std::string
      Src: /src/botan/src/tests/unit_x509.cpp:478,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:481,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:482,1
    - Dst: std::make_unique<Botan::Cert_Extension::Authority_Information_Access>
      Src: /src/botan/src/tests/unit_x509.cpp:482,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:484,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:486,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:486,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:486,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:488,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:488,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:489,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:489,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 423
    functionDepth: 2
    functionLinenumber: 423
    functionLinenumberEnd: 493
    functionName: Botan_Tests::test_x509_encode_authority_info_access_extension
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::req_opts1
    - Botan_Tests::make_a_private_key
    - Botan_Tests::ca_opts
    - Botan::X509_Certificate::ca_issuers
    - std::string
    - std::vector::end
    - Botan::X509::create_cert_req
    - Botan_Tests::from_date
    - Botan::X509_Cert_Options::extensions::add
    - std::make_unique<Botan::Cert_Extension::Authority_Information_Access>
    - Test::Result::test_eq
    - Test::Result::confirm
    - Test::Result::require
    - Botan_Tests::Test::new_rng
    - Botan::X509_Certificate::ocsp_responder
    - Botan::TLS::Session_Manager::find
    - Botan::X509_CA::sign_request
    - Botan::X509::create_self_signed_cert
    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:503,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:507,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:509,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/unit_x509.cpp:510,1
    - Dst: Botan::X509_CA::new_crl
      Src: /src/botan/src/tests/unit_x509.cpp:513,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:515,1
    - Dst: Botan::X509_CRL::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:515,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:515,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:517,1
    - Dst: Botan::X509_CRL::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 521
    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_CA::new_crl
    - Botan::PKCS8::load_key
    - Test::Result::confirm
    - Botan::X509_Certificate::subject_dn
    - Botan_Tests::Test::new_rng
    - Botan::X509_CRL::issuer_dn
    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:528,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:530,1
    - Dst: Botan::X509_Certificate::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:530,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:531,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 534
    functionName: Botan_Tests::test_rdn_multielement_set_name
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Certificate::issuer_dn
    - Botan_Tests::Test::data_file
    - Test::Result::confirm
    - Botan::X509_Certificate::subject_dn
    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:540,1
    - Dst: Botan::X509_Certificate::subject_public_key
      Src: /src/botan/src/tests/unit_x509.cpp:542,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/unit_x509.cpp:543,1
    - Dst: auto::get
      Src: /src/botan/src/tests/unit_x509.cpp:543,1
    - Dst: Botan::X509_Certificate::subject_public_key_algo
      Src: /src/botan/src/tests/unit_x509.cpp:544,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:546,1
    - Dst: oid
      Src: /src/botan/src/tests/unit_x509.cpp:546,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/tests/unit_x509.cpp:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 550
    functionName: Botan_Tests::test_rsa_oaep
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Certificate::subject_public_key_algo
    - Botan_Tests::Test::data_file
    - Botan::X509_Certificate::subject_public_key
    - auto::get
    - Test::Result::test_not_null
    - Test::Result::test_eq
    - Botan::OID::from_string
    - oid
    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:555,1
    - Dst: Botan::BER_Decoder::decode_list
      Src: /src/botan/src/tests/unit_x509.cpp:559,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:561,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_x509.cpp:561,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:563,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:563,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:564,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 567
    functionName: Botan_Tests::test_x509_decode_list
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::data_file
    - Botan::BER_Decoder::decode_list
    - Test::Result::test_eq
    - std::vector::size
    - subject_dn
    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:573,1
    - Dst: Botan::X509_Certificate::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:587,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:589,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:589,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:590,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:590,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:591,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:591,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:592,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:592,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:594,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:594,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 569
    functionDepth: 1
    functionLinenumber: 569
    functionLinenumberEnd: 598
    functionName: Botan_Tests::test_x509_utf8
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::data_file
    - Test::Result::test_failure
    - get_first_attribute
    - Test::Result::test_eq
    - what
    - Botan::X509_Certificate::issuer_dn
    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:604,1
    - Dst: Botan::X509_Certificate::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:614,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:616,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:616,1
    - Dst: Test::Result::test_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_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_failure
      Src: /src/botan/src/tests/unit_x509.cpp:620,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:620,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 600
    functionDepth: 1
    functionLinenumber: 600
    functionLinenumberEnd: 624
    functionName: Botan_Tests::test_x509_bmpstring
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::data_file
    - Test::Result::test_failure
    - get_first_attribute
    - Test::Result::test_eq
    - what
    - Botan::X509_Certificate::issuer_dn
    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:630,1
    - Dst: Botan::X509_Certificate::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:632,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:636,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:636,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:637,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:637,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:639,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:639,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 626
    functionDepth: 1
    functionLinenumber: 626
    functionLinenumberEnd: 643
    functionName: Botan_Tests::test_x509_teletex
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::data_file
    - Test::Result::test_failure
    - get_first_attribute
    - Test::Result::test_eq
    - what
    - Botan::X509_Certificate::issuer_dn
    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:649,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:651,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:651,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:652,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:652,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:655,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:657,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:659,1
    - Dst: auto::size
      Src: /src/botan/src/tests/unit_x509.cpp:659,1
    - Dst: Test::Result::tests_failed
      Src: /src/botan/src/tests/unit_x509.cpp:660,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:664,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:665,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:665,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:669,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:671,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:673,1
    - Dst: auto::size
      Src: /src/botan/src/tests/unit_x509.cpp:673,1
    - Dst: Test::Result::tests_failed
      Src: /src/botan/src/tests/unit_x509.cpp:674,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:678,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:680,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:684,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:684,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 687
    functionName: Botan_Tests::test_x509_authority_info_access_extension
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::data_file
    - Botan::X509_Certificate::ca_issuers
    - Test::Result::test_eq
    - Test::Result::tests_failed
    - Botan::X509_Certificate::ocsp_responder
    - auto::size
    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:695,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_x509.cpp:696,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:698,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:698,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 689
    functionDepth: 1
    functionLinenumber: 689
    functionLinenumberEnd: 702
    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_failure
    - Test::Result::test_success
    - what
    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:709,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:710,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:711,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/unit_x509.cpp:713,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/unit_x509.cpp:714,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:718,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:720,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:720,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:723,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:723,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 728
    functionName: Botan_Tests::test_verify_gost2012_cert
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Test::data_file
    - Botan::Path_Validation_Result::successful_validation
    - Test::Result::test_failure
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::confirm
    - what
    - Botan::x509_path_validate
    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:739,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:741,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/unit_x509.cpp:742,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/tests/unit_x509.cpp:746,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:748,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:749,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:750,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:754,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:755,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:756,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:757,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:762,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:764,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:765,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/unit_x509.cpp:766,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:768,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/unit_x509.cpp:768,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:769,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:774,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:775,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:778,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:779,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:783,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:784,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:785,1
    - Dst: Botan::PKCS10_Request::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:786,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:791,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:793,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:795,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:801,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:802,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:803,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:808,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:809,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:810,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:815,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:816,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:817,1
    - Dst: Botan::X509_CA::new_crl
      Src: /src/botan/src/tests/unit_x509.cpp:820,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:821,1
    - Dst: Botan::X509_CRL::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:821,1
    - Dst: Botan::X509_CA::ca_certificate
      Src: /src/botan/src/tests/unit_x509.cpp:824,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:827,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:828,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:828,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 736
    functionDepth: 1
    functionLinenumber: 736
    functionLinenumberEnd: 831
    functionName: Botan_Tests::test_padding_config
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Result::successful_validation
    - Test::Result::test_failure
    - Botan::X509_Cert_Options::set_padding_scheme
    - what
    - Botan_Tests::Test::data_file
    - Botan::X509_CA::ca_certificate
    - Botan_Tests::Test::new_rng
    - Botan::X509_Cert_Options::CA_key
    - Botan::X509_CA::new_crl
    - Botan::PKCS8::load_key
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - Botan::PKCS10_Request::signature_algorithm
    - Botan::X509::create_self_signed_cert
    - Test::Result::test_eq
    - Botan::X509_Certificate::signature_algorithm
    - Test::Result::confirm
    - auto::algo_name
    - Botan::X509_CRL::signature_algorithm
    - Botan::X509_CA::sign_request
    - Botan::X509::create_cert_req
    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:842,1
    - Dst: Botan::X509_Cert_Options::more_dns::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:845,1
    - Dst: Botan::X509_Cert_Options::more_dns::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:846,1
    - Dst: Botan::AlternativeName::AlternativeName
      Src: /src/botan/src/tests/unit_x509.cpp:850,1
    - Dst: Botan::AlternativeName::add_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:851,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:854,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:855,1
    - Dst: Botan::AlternativeName::add_dn
      Src: /src/botan/src/tests/unit_x509.cpp:856,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:858,1
    - Dst: std::make_unique<Botan::Cert_Extension::Subject_Alternative_Name>
      Src: /src/botan/src/tests/unit_x509.cpp:858,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:860,1
    - Dst: auto::subject_alt_name
      Src: /src/botan/src/tests/unit_x509.cpp:862,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:864,1
    - Dst: auto::size
      Src: /src/botan/src/tests/unit_x509.cpp:864,1
    - Dst: auto::size
      Src: /src/botan/src/tests/unit_x509.cpp:866,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:867,1
    - Dst: auto::at
      Src: /src/botan/src/tests/unit_x509.cpp:867,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:868,1
    - Dst: auto::at
      Src: /src/botan/src/tests/unit_x509.cpp:868,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:869,1
    - Dst: auto::at
      Src: /src/botan/src/tests/unit_x509.cpp:869,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:870,1
    - Dst: auto::at
      Src: /src/botan/src/tests/unit_x509.cpp:870,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:873,1
    - Dst: auto::subject_alt_name
      Src: /src/botan/src/tests/unit_x509.cpp:873,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:874,1
    - Dst: auto::subject_alt_name
      Src: /src/botan/src/tests/unit_x509.cpp:874,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: 877
      start: 836
    functionDepth: 1
    functionLinenumber: 836
    functionLinenumberEnd: 877
    functionName: Botan_Tests::test_pkcs10_ext
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - auto::at
    - auto::subject_alt_name
    - Botan::X509_Cert_Options::more_dns::push_back
    - Botan::AlternativeName::AlternativeName
    - std::make_unique<Botan::Cert_Extension::Subject_Alternative_Name>
    - Botan::X509_DN::add_attribute
    - Test::Result::test_eq
    - Botan::X509_Cert_Options::X509_Cert_Options
    - Botan::AlternativeName::add_dn
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::confirm
    - Botan::AlternativeName::add_attribute
    - auto::size
    - Botan::X509::create_cert_req
    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:887,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:887,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:890,1
    - Dst: auto::constraints
      Src: /src/botan/src/tests/unit_x509.cpp:890,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:891,1
    - Dst: auto::constraints
      Src: /src/botan/src/tests/unit_x509.cpp:891,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:895,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:898,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:898,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:900,1
    - Dst: Botan::PKCS10_Request::challenge_password
      Src: /src/botan/src/tests/unit_x509.cpp:900,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:903,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:905,1
    - Dst: Botan_Tests::req_opts2
      Src: /src/botan/src/tests/unit_x509.cpp:905,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:908,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:910,1
    - Dst: Botan_Tests::req_opts3
      Src: /src/botan/src/tests/unit_x509.cpp:910,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:919,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:919,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:919,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:921,1
    - Dst: Botan::X509_Certificate::serial_number
      Src: /src/botan/src/tests/unit_x509.cpp:921,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:922,1
    - Dst: Botan::X509_Certificate::serial_number
      Src: /src/botan/src/tests/unit_x509.cpp:922,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:924,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:924,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:924,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:925,1
    - Dst: Botan::X509_Certificate::has_ex_constraint
      Src: /src/botan/src/tests/unit_x509.cpp:925,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:927,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:927,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:927,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:931,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:931,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:934,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:935,1
    - Dst: Botan::X509_Certificate::constraints
      Src: /src/botan/src/tests/unit_x509.cpp:935,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:940,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:943,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:946,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:946,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:946,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:948,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:951,1
    - Dst: Botan::X509_Certificate::x509_version
      Src: /src/botan/src/tests/unit_x509.cpp:951,1
    - Dst: Botan::X509_Certificate::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:953,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:954,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:954,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:954,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:955,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:955,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:955,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:956,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:956,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:956,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:957,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:957,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:957,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:959,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:960,1
    - Dst: get_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:961,1
    - Dst: Botan_Tests::req_opts3
      Src: /src/botan/src/tests/unit_x509.cpp:962,1
    - Dst: size
      Src: /src/botan/src/tests/unit_x509.cpp:962,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:963,1
    - Dst: get_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:964,1
    - Dst: Botan_Tests::req_opts3
      Src: /src/botan/src/tests/unit_x509.cpp:964,1
    - Dst: at
      Src: /src/botan/src/tests/unit_x509.cpp:964,1
    - Dst: Botan::X509_Certificate::subject_alt_name
      Src: /src/botan/src/tests/unit_x509.cpp:966,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:967,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:967,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:968,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:968,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:969,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:969,1
    - Dst: Botan::X509_Certificate::subject_alt_name
      Src: /src/botan/src/tests/unit_x509.cpp:971,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:972,1
    - Dst: get_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:973,1
    - Dst: Botan_Tests::req_opts3
      Src: /src/botan/src/tests/unit_x509.cpp:973,1
    - Dst: size
      Src: /src/botan/src/tests/unit_x509.cpp:973,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:974,1
    - Dst: get_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:974,1
    - Dst: Botan_Tests::req_opts3
      Src: /src/botan/src/tests/unit_x509.cpp:974,1
    - Dst: at
      Src: /src/botan/src/tests/unit_x509.cpp:974,1
    - Dst: Botan::X509_CA::new_crl
      Src: /src/botan/src/tests/unit_x509.cpp:976,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/unit_x509.cpp:980,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:983,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:984,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:985,1
    - Dst: Botan::Path_Validation_Result::status_string
      Src: /src/botan/src/tests/unit_x509.cpp:986,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/unit_x509.cpp:988,1
    - Dst: Botan::X509_CA::ca_certificate
      Src: /src/botan/src/tests/unit_x509.cpp:988,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:990,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:991,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:991,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/unit_x509.cpp:992,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:992,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:995,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:996,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:996,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/unit_x509.cpp:997,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:997,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1000,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1001,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1002,1
    - Dst: Botan::Path_Validation_Result::status_string
      Src: /src/botan/src/tests/unit_x509.cpp:1003,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/unit_x509.cpp:1004,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1007,1
    - Dst: Botan::CRL_Entry
      Src: /src/botan/src/tests/unit_x509.cpp:1007,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1008,1
    - Dst: Botan::CRL_Entry
      Src: /src/botan/src/tests/unit_x509.cpp:1008,1
    - Dst: Botan::X509_CA::update_crl
      Src: /src/botan/src/tests/unit_x509.cpp:1010,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/unit_x509.cpp:1012,1
    - Dst: Botan::Path_Validation_Result::status_string
      Src: /src/botan/src/tests/unit_x509.cpp:1015,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1017,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1018,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1018,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1020,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1021,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1021,1
    - Dst: std::vector::clear
      Src: /src/botan/src/tests/unit_x509.cpp:1023,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1024,1
    - Dst: Botan::CRL_Entry
      Src: /src/botan/src/tests/unit_x509.cpp:1024,1
    - Dst: Botan::X509_CA::update_crl
      Src: /src/botan/src/tests/unit_x509.cpp:1025,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/unit_x509.cpp:1027,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1029,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1030,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:1030,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/unit_x509.cpp:1031,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1031,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1034,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1035,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1035,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: 1038
      start: 879
    functionDepth: 2
    functionLinenumber: 879
    functionLinenumberEnd: 1038
    functionName: Botan_Tests::test_x509_cert
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Certificate::subject_alt_name
    - Botan::X509_Certificate::constraints
    - Botan_Tests::make_a_private_key
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::req_opts3
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::X509_Certificate::issuer_dn
    - Botan::X509_Certificate::serial_number
    - Botan::X509_Certificate::has_ex_constraint
    - Botan::X509_CA::ca_certificate
    - Botan::PKCS10_Request::challenge_password
    - get_attribute
    - Botan::X509_Certificate::subject_dn
    - Botan::Path_Validation_Result::status_string
    - auto::constraints
    - std::vector::push_back
    - get_first_attribute
    - Botan::X509_CA::new_crl
    - std::vector::clear
    - Botan::X509_Certificate::x509_version
    - Botan::CRL_Entry
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - Botan_Tests::req_opts1
    - Botan_Tests::req_opts2
    - Test::Result::test_note
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::ca_opts
    - size
    - Botan::X509::create_self_signed_cert
    - Test::Result::test_eq
    - Botan::Path_Validation_Result::result_string
    - Botan::X509_CA::update_crl
    - Test::Result::confirm
    - Botan::Certificate_Store_In_Memory::add_crl
    - at
    - Botan::X509_CA::sign_request
    - Botan::X509::create_cert_req
    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:1050,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1050,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1055,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1060,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1063,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1063,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1063,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1066,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1068,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1068,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1070,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1070,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1073,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1073,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1075,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1077,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1080,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1080,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1080,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1083,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1084,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1085,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1085,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1086,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1088,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1088,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1089,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1089,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1091,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1093,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1096,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1096,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1096,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1099,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1099,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1100,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1100,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1101,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1101,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1105,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1107,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1110,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1110,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1110,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1112,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1112,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1113,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1113,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: 1117
      start: 1040
    functionDepth: 2
    functionLinenumber: 1040
    functionLinenumberEnd: 1117
    functionName: Botan_Tests::test_usage
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Key_Constraints
    - Botan_Tests::make_a_private_key
    - Botan_Tests::ca_opts
    - Botan::X509::create_self_signed_cert
    - Botan_Tests::from_date
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::X509_Certificate::allowed_usage
    - Botan::X509_CA::sign_request
    - Botan::X509::create_cert_req
    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:1130,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1130,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1135,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1139,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:1141,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1143,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1146,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1146,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1146,1
    - Dst: Botan::X509_CA::ca_certificate
      Src: /src/botan/src/tests/unit_x509.cpp:1149,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1154,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1156,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:1156,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: 1159
      start: 1119
    functionDepth: 2
    functionLinenumber: 1119
    functionLinenumberEnd: 1159
    functionName: Botan_Tests::test_self_issued
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::make_a_private_key
    - Botan_Tests::ca_opts
    - Botan::X509_CA::ca_certificate
    - Botan::Path_Validation_Result::successful_validation
    - Botan::X509::create_self_signed_cert
    - Botan_Tests::from_date
    - Botan::X509_Cert_Options::set_padding_scheme
    - Test::Result::confirm
    - Botan::x509_path_validate
    - Botan::X509_CA::sign_request
    - Botan::X509::create_cert_req
    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:1164,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:1165,1
    - Dst: Botan::X509_Certificate::x509_version
      Src: /src/botan/src/tests/unit_x509.cpp:1166,1
    - Dst: Botan::X509_CRL::X509_CRL
      Src: /src/botan/src/tests/unit_x509.cpp:1169,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:1170,1
    - Dst: Botan::X509_CRL::crl_number
      Src: /src/botan/src/tests/unit_x509.cpp:1171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1161
    functionDepth: 1
    functionLinenumber: 1161
    functionLinenumberEnd: 1174
    functionName: Botan_Tests::test_x509_uninit
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::X509_Certificate::X509_Certificate
    - Botan::X509_CRL::crl_number
    - Botan::X509_CRL::X509_CRL
    - Botan::X509_Certificate::x509_version
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_uninit()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1181,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1181,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1186,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1191,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1192,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1193,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1194,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1195,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1196,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1198,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1200,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1201,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1203,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1207,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1207,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1208,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1208,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1209,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1209,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1210,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1210,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1211,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1211,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1212,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1212,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1213,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1213,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1214,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1214,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1215,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1215,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1216,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1216,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1217,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1217,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1220,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1220,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1221,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1221,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1222,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1222,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1223,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1223,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1224,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1224,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1225,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1225,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1226,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1226,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1227,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1227,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1228,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1228,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1231,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1231,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1233,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1233,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1234,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1234,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1235,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1235,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1236,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1236,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1237,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1237,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1238,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1238,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1239,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1239,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1240,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1240,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1241,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1241,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1242,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1242,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1245,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1245,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1246,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1246,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1247,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1247,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1248,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1248,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1249,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1249,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1250,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1250,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1251,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1251,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1252,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1252,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1253,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1253,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1258,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1258,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1260,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1260,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1261,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1261,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1262,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1262,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1263,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1263,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1264,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1264,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1265,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1265,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1266,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1266,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1267,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1267,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1268,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1268,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1269,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1269,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 64
    argCount: 2
    argNames:
    - ' key'
    - ' pk_algo'
    argTypes:
    - Botan::Private_Key
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1176
    functionDepth: 0
    functionLinenumber: 1176
    functionLinenumberEnd: 1273
    functionName: Botan_Tests::test_valid_constraints
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_eq
    - auto::compatible_with
    - Test::Result::confirm
    - Key_Constraints
    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: 1280
      start: 1280
    functionDepth: 0
    functionLinenumber: 1280
    functionLinenumberEnd: 1280
    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: 1282
      start: 1282
    functionDepth: 0
    functionLinenumber: 1282
    functionLinenumberEnd: 1282
    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: 1284
      start: 1284
    functionDepth: 0
    functionLinenumber: 1284
    functionLinenumberEnd: 1284
    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:1287,1
    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_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:1290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1290
      start: 1290
    functionDepth: 1
    functionLinenumber: 1290
    functionLinenumberEnd: 1290
    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: 1292
      start: 1292
    functionDepth: 0
    functionLinenumber: 1292
    functionLinenumberEnd: 1292
    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: 1294
      start: 1294
    functionDepth: 0
    functionLinenumber: 1294
    functionLinenumberEnd: 1294
    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:1298,1
    - Dst: Botan::ASN1_String::ASN1_String
      Src: /src/botan/src/tests/unit_x509.cpp:1298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1296
    functionDepth: 1
    functionLinenumber: 1296
    functionLinenumberEnd: 1300
    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:1303,1
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/tests/unit_x509.cpp:1304,1
    - Dst: Botan::ASN1_String::value
      Src: /src/botan/src/tests/unit_x509.cpp:1305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1302
    functionDepth: 1
    functionLinenumber: 1302
    functionLinenumberEnd: 1306
    functionName: Botan_Tests::String_Extension::decode_inner
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::ASN1_String::ASN1_String
    - Botan::BER_Decoder
    - Botan::ASN1_String::value
    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:1320,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1320,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1325,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/unit_x509.cpp:1329,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/unit_x509.cpp:1330,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1334,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1335,1
    - Dst: Botan::PKCS10_Request::create
      Src: /src/botan/src/tests/unit_x509.cpp:1340,1
    - Dst: Botan::PKCS10_Request::subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:1342,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1344,1
    - Dst: dn_info
      Src: /src/botan/src/tests/unit_x509.cpp:1344,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1346,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1347,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1348,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1349,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1350,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1350,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1350,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1351,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1351,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1351,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1356,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:1358,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1360,1
    - Dst: dn_info
      Src: /src/botan/src/tests/unit_x509.cpp:1360,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1362,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1363,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1364,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1365,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1366,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1366,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1366,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1367,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1367,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1367,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: 1370
      start: 1312
    functionDepth: 2
    functionLinenumber: 1312
    functionLinenumberEnd: 1370
    functionName: Botan_Tests::test_custom_dn_attr
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::PKCS10_Request::subject_dn
    - Botan_Tests::make_a_private_key
    - Botan_Tests::ca_opts
    - Botan::PKCS10_Request::create
    - get_first_attribute
    - Botan::ASN1_String::tagging
    - Botan::X509_DN::add_attribute
    - Test::Result::test_eq
    - Test::Result::confirm
    - dn_info
    - Botan::EC_Group::from_OID
    - auto::subject_dn
    - Botan::X509_CA::sign_request
    - Botan::X509::create_self_signed_cert
    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:1382,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1382,1
    - Dst: Botan::AlternativeName::AlternativeName
      Src: /src/botan/src/tests/unit_x509.cpp:1395,1
    - Dst: Botan::AlternativeName::add_uri
      Src: /src/botan/src/tests/unit_x509.cpp:1396,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/unit_x509.cpp:1399,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1402,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/tests/unit_x509.cpp:1410,1
    - Dst: Botan::Extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:1411,1
    - Dst: std::make_unique<String_Extension>
      Src: /src/botan/src/tests/unit_x509.cpp:1411,1
    - Dst: Botan::Extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:1412,1
    - Dst: std::make_unique<Botan::Cert_Extension::CRL_Distribution_Points>
      Src: /src/botan/src/tests/unit_x509.cpp:1412,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:1414,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1417,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1419,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1420,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1423,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1424,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1425,1
    - Dst: dynamic_cast<Botan::Cert_Extension::Key_Usage&>
      Src: /src/botan/src/tests/unit_x509.cpp:1427,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1431,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1432,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1433,1
    - Dst: auto::value
      Src: /src/botan/src/tests/unit_x509.cpp:1434,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1439,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1441,1
    - Dst: auto*::crl_distribution_urls
      Src: /src/botan/src/tests/unit_x509.cpp:1442,1
    - Dst: auto*::distribution_points
      Src: /src/botan/src/tests/unit_x509.cpp:1443,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1444,1
    - Dst: Botan::TLS::Session_Manager::find
      Src: /src/botan/src/tests/unit_x509.cpp:1445,1
    - Dst: point
      Src: /src/botan/src/tests/unit_x509.cpp:1445,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/unit_x509.cpp:1445,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1449,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1453,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1453,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1453,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1456,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1456,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1458,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1459,1
    - Dst: dynamic_cast<Botan::Cert_Extension::Key_Usage&>
      Src: /src/botan/src/tests/unit_x509.cpp:1460,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1461,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1466,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1467,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1468,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1469,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1470,1
    - Dst: auto::value
      Src: /src/botan/src/tests/unit_x509.cpp:1471,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1475,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1477,1
    - Dst: auto*::crl_distribution_urls
      Src: /src/botan/src/tests/unit_x509.cpp:1478,1
    - Dst: auto*::distribution_points
      Src: /src/botan/src/tests/unit_x509.cpp:1479,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1480,1
    - Dst: Botan::TLS::Session_Manager::find
      Src: /src/botan/src/tests/unit_x509.cpp:1481,1
    - Dst: point
      Src: /src/botan/src/tests/unit_x509.cpp:1481,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/unit_x509.cpp:1481,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: 1486
      start: 1372
    functionDepth: 2
    functionLinenumber: 1372
    functionLinenumberEnd: 1486
    functionName: Botan_Tests::test_x509_extensions
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<Botan::Cert_Extension::Key_Usage&>
    - point
    - Botan_Tests::make_a_private_key
    - Botan::AlternativeName::AlternativeName
    - std::vector::end
    - Botan::X509_Cert_Options::set_padding_scheme
    - std::make_unique<Botan::Cert_Extension::CRL_Distribution_Points>
    - auto*::distribution_points
    - Botan::Extensions::add
    - std::vector::emplace_back
    - std::make_unique<String_Extension>
    - auto*::crl_distribution_urls
    - Botan::OID::from_string
    - Botan::X509::create_cert_req
    - auto::value
    - Botan::TLS::Session_Manager::find
    - Botan::X509_Certificate::v3_extensions
    - Botan_Tests::from_date
    - Botan_Tests::ca_opts
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::AlternativeName::add_uri
    - Botan::X509_CA::sign_request
    - Botan::X509::create_self_signed_cert
    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:1520,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1522,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1524,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_x509.cpp:1524,1
    - Dst: Botan::X509_Certificate::raw_issuer_dn_sha256
      Src: /src/botan/src/tests/unit_x509.cpp:1524,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1525,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_x509.cpp:1525,1
    - Dst: Botan::X509_Certificate::raw_subject_dn_sha256
      Src: /src/botan/src/tests/unit_x509.cpp:1525,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1529,1
    - Dst: Botan::X509_Cert_Options::X509_Cert_Options
      Src: /src/botan/src/tests/unit_x509.cpp:1529,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1531,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1531,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1531,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1533,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_x509.cpp:1533,1
    - Dst: Botan::X509_Certificate::raw_issuer_dn_sha256
      Src: /src/botan/src/tests/unit_x509.cpp:1533,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1534,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_x509.cpp:1534,1
    - Dst: Botan::X509_Certificate::raw_subject_dn_sha256
      Src: /src/botan/src/tests/unit_x509.cpp:1534,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: 1537
      start: 1488
    functionDepth: 1
    functionLinenumber: 1488
    functionLinenumberEnd: 1537
    functionName: Botan_Tests::test_hashes
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Cert_Options::CA_key
    - Botan::X509_Certificate::raw_issuer_dn_sha256
    - Botan::hex_encode
    - Test::Result::test_eq
    - Botan::X509::create_cert_req
    - Botan::X509_Cert_Options::X509_Cert_Options
    - Botan_Tests::from_date
    - Botan::X509_Certificate::raw_subject_dn_sha256
    - Botan::X509_CA::sign_request
    - Botan::X509::create_self_signed_cert
    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:1559,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:1561,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1565,1
    - Dst: auto*::entries
      Src: /src/botan/src/tests/unit_x509.cpp:1567,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1569,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:1571,1
    - Dst: telephone_number_range
      Src: /src/botan/src/tests/unit_x509.cpp:1572,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:1573,1
    - Dst: telephone_number
      Src: /src/botan/src/tests/unit_x509.cpp:1574,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:1575,1
    - Dst: service_provider_code
      Src: /src/botan/src/tests/unit_x509.cpp:1576,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1578,1
    - Dst: type
      Src: /src/botan/src/tests/unit_x509.cpp:1578,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1579,1
    - Dst: service_provider_code
      Src: /src/botan/src/tests/unit_x509.cpp:1579,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1581,1
    - Dst: type
      Src: /src/botan/src/tests/unit_x509.cpp:1581,1
    - Dst: telephone_number_range
      Src: /src/botan/src/tests/unit_x509.cpp:1582,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1583,1
    - Dst: size
      Src: /src/botan/src/tests/unit_x509.cpp:1583,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1584,1
    - Dst: start::value
      Src: /src/botan/src/tests/unit_x509.cpp:1584,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1585,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1586,1
    - Dst: start::value
      Src: /src/botan/src/tests/unit_x509.cpp:1586,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1587,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1589,1
    - Dst: type
      Src: /src/botan/src/tests/unit_x509.cpp:1589,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1590,1
    - Dst: telephone_number
      Src: /src/botan/src/tests/unit_x509.cpp:1590,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/unit_x509.cpp:1592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1594
      start: 1541
    functionDepth: 1
    functionLinenumber: 1541
    functionLinenumberEnd: 1594
    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_throws
    - service_provider_code
    - Test::Result::end_timer
    - Botan_Tests::Test::data_file
    - size
    - auto*::entries
    - telephone_number
    - telephone_number_range
    - Test::Result::test_eq
    - Test::Result::confirm
    - type
    - start::value
    - Botan::X509_Certificate::v3_extensions
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_tn_auth_list_extension_decode()
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 2
    argNames:
    - ' sig_algo'
    - ' hash'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1613
      start: 1598
    functionDepth: 0
    functionLinenumber: 1598
    functionLinenumberEnd: 1613
    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:1620,1
    - Dst: make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1653,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1659,1
    - Dst: test_hashes
      Src: /src/botan/src/tests/unit_x509.cpp:1659,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1660,1
    - Dst: test_valid_constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1660,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1664,1
    - Dst: test_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1664,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1666,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1666,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1668,1
    - Dst: get_sig_paddings
      Src: /src/botan/src/tests/unit_x509.cpp:1670,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1674,1
    - Dst: test_x509_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1674,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1676,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1676,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1678,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1682,1
    - Dst: test_pkcs10_ext
      Src: /src/botan/src/tests/unit_x509.cpp:1682,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1684,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1684,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1686,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1690,1
    - Dst: test_self_issued
      Src: /src/botan/src/tests/unit_x509.cpp:1690,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1692,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1692,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1694,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1698,1
    - Dst: test_x509_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1698,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1700,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1700,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1702,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1706,1
    - Dst: test_custom_dn_attr
      Src: /src/botan/src/tests/unit_x509.cpp:1706,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1708,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1708,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1710,1
    - Dst: make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1721,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1724,1
    - Dst: test_valid_constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1724,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1732,1
    - Dst: test_padding_config
      Src: /src/botan/src/tests/unit_x509.cpp:1732,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1734,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1734,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1736,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1740,1
    - Dst: test_x509_utf8
      Src: /src/botan/src/tests/unit_x509.cpp:1740,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1741,1
    - Dst: test_x509_bmpstring
      Src: /src/botan/src/tests/unit_x509.cpp:1741,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1742,1
    - Dst: test_x509_teletex
      Src: /src/botan/src/tests/unit_x509.cpp:1742,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1743,1
    - Dst: test_crl_dn_name
      Src: /src/botan/src/tests/unit_x509.cpp:1743,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1744,1
    - Dst: test_rdn_multielement_set_name
      Src: /src/botan/src/tests/unit_x509.cpp:1744,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1745,1
    - Dst: test_x509_decode_list
      Src: /src/botan/src/tests/unit_x509.cpp:1745,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1746,1
    - Dst: test_rsa_oaep
      Src: /src/botan/src/tests/unit_x509.cpp:1746,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1747,1
    - Dst: test_x509_authority_info_access_extension
      Src: /src/botan/src/tests/unit_x509.cpp:1747,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1748,1
    - Dst: test_verify_gost2012_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1748,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1749,1
    - Dst: test_parse_rsa_pss_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1749,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1750,1
    - Dst: test_x509_tn_auth_list_extension_decode
      Src: /src/botan/src/tests/unit_x509.cpp:1750,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1753,1
    - Dst: test_x509_encode_authority_info_access_extension
      Src: /src/botan/src/tests/unit_x509.cpp:1753,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1754,1
    - Dst: test_x509_extension
      Src: /src/botan/src/tests/unit_x509.cpp:1754,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1755,1
    - Dst: test_x509_dates
      Src: /src/botan/src/tests/unit_x509.cpp:1755,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1756,1
    - Dst: test_cert_status_strings
      Src: /src/botan/src/tests/unit_x509.cpp:1756,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1757,1
    - Dst: test_x509_uninit
      Src: /src/botan/src/tests/unit_x509.cpp:1757,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 82
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1760
      start: 1617
    functionDepth: 0
    functionLinenumber: 1617
    functionLinenumberEnd: 1760
    functionName: Botan_Tests::X509_Cert_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_failure
    - test_verify_gost2012_cert
    - test_x509_utf8
    - test_x509_teletex
    - test_usage
    - what
    - test_x509_extensions
    - get_sig_paddings
    - test_padding_config
    - test_custom_dn_attr
    - test_rdn_multielement_set_name
    - test_x509_cert
    - test_parse_rsa_pss_cert
    - test_x509_tn_auth_list_extension_decode
    - test_self_issued
    - test_pkcs10_ext
    - test_rsa_oaep
    - test_hashes
    - test_x509_bmpstring
    - test_x509_authority_info_access_extension
    - std::vector::push_back
    - test_cert_status_strings
    - test_x509_uninit
    - Botan_Tests::X509_Cert_Unit_Tests::rng
    - test_valid_constraints
    - test_x509_extension
    - test_x509_dates
    - make_a_private_key
    - test_crl_dn_name
    - test_x509_encode_authority_info_access_extension
    - test_x509_decode_list
    - Test::Result::merge
    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:34,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/unit_x509.cpp:34,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/unit_x509.cpp:36,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/unit_x509.cpp:37,1
    - Dst: Botan::calendar_point::to_std_timepoint
      Src: /src/botan/src/tests/unit_x509.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - y
    - m
    - d
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: Botan_Tests::from_date
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 7
    functionsReached:
    - static_cast<uint32_t>
    - Botan::calendar_point::to_std_timepoint
    - Botan::X509_Time
    - Botan::TLS::detail::AsyncBase::complete_now
    - Botan::calendar_point
    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:47,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/tests/unit_x509.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 52
    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:60,1
    - Dst: Botan::X509_Cert_Options::not_before
      Src: /src/botan/src/tests/unit_x509.cpp:62,1
    - Dst: Botan::X509_Cert_Options::not_after
      Src: /src/botan/src/tests/unit_x509.cpp:63,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 74
    functionName: Botan_Tests::req_opts1
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 2
    functionsReached:
    - Botan::X509_Cert_Options::not_after
    - Botan::X509_Cert_Options::set_padding_scheme
    - Botan::X509_Cert_Options::not_before
    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:82,1
    - Dst: Botan::X509_Cert_Options::add_ex_constraint
      Src: /src/botan/src/tests/unit_x509.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 87
    functionName: Botan_Tests::req_opts2
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 1
    functionsReached:
    - Botan::X509_Cert_Options::set_padding_scheme
    - Botan::X509_Cert_Options::add_ex_constraint
    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:95,1
    - Dst: Botan::X509_Cert_Options::more_org_units::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:97,1
    - Dst: Botan::X509_Cert_Options::more_org_units::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:98,1
    - Dst: Botan::X509_Cert_Options::more_dns::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 102
    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::set_padding_scheme
    - Botan::X509_Cert_Options::more_org_units::push_back
    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:112,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:131,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - ' algo'
    - ' rng'
    argTypes:
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 135
    functionName: Botan_Tests::make_a_private_key
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 6
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - Botan::create_private_key
    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_eq
      Src: /src/botan/src/tests/unit_x509.cpp:142,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/unit_x509.cpp:143,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/unit_x509.cpp:144,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/unit_x509.cpp:198,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:199,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/unit_x509.cpp:199,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:200,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/unit_x509.cpp:200,1
    - Dst: std::set::insert
      Src: /src/botan/src/tests/unit_x509.cpp:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 205
    functionName: Botan_Tests::test_cert_status_strings
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - std::string::size
    - std::set::count
    - Test::Result::test_eq
    - Botan::to_string
    - Test::Result::confirm
    - std::set::insert
    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:212,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/tests/unit_x509.cpp:213,1
    - Dst: Botan::Extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:215,1
    - Dst: std::make_unique<Botan::Cert_Extension::Basic_Constraints>
      Src: /src/botan/src/tests/unit_x509.cpp:215,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:217,1
    - Dst: Botan::Extensions::extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:217,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:218,1
    - Dst: Botan::Extensions::critical_extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:218,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:219,1
    - Dst: Botan::Extensions::extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:219,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:220,1
    - Dst: Botan::Extensions::critical_extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:220,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:222,1
    - Dst: Botan::Extensions::get_extension_bits
      Src: /src/botan/src/tests/unit_x509.cpp:222,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:224,1
    - Dst: Botan::Extensions::get_extension_bits
      Src: /src/botan/src/tests/unit_x509.cpp:224,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:226,1
    - Dst: Botan::Extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:227,1
    - Dst: std::make_unique<Botan::Cert_Extension::Basic_Constraints>
      Src: /src/botan/src/tests/unit_x509.cpp:227,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:229,1
    - Dst: Botan::Extensions::get_extension_bits
      Src: /src/botan/src/tests/unit_x509.cpp:229,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:231,1
    - Dst: Botan::Extensions::add_new
      Src: /src/botan/src/tests/unit_x509.cpp:232,1
    - Dst: std::make_unique<Botan::Cert_Extension::Basic_Constraints>
      Src: /src/botan/src/tests/unit_x509.cpp:232,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:234,1
    - Dst: Botan::Extensions::critical_extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:234,1
    - Dst: Botan::Extensions::replace
      Src: /src/botan/src/tests/unit_x509.cpp:236,1
    - Dst: std::make_unique<Botan::Cert_Extension::Basic_Constraints>
      Src: /src/botan/src/tests/unit_x509.cpp:236,1
    - Dst: Test::Result::confirm
      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: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:238,1
    - Dst: Botan::Extensions::get_extension_bits
      Src: /src/botan/src/tests/unit_x509.cpp:238,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:240,1
    - Dst: Botan::Extensions::remove
      Src: /src/botan/src/tests/unit_x509.cpp:240,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:241,1
    - Dst: Botan::Extensions::remove
      Src: /src/botan/src/tests/unit_x509.cpp:241,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:242,1
    - Dst: Botan::Extensions::extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:242,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:243,1
    - Dst: Botan::Extensions::critical_extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 246
    functionName: Botan_Tests::test_x509_extension
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::Extensions::get_extension_bits
    - Test::Result::test_throws
    - Botan::Extensions::remove
    - Botan::Extensions::add_new
    - Botan::Extensions::extension_set
    - Botan::Extensions::replace
    - Botan::Extensions::critical_extension_set
    - Test::Result::test_eq
    - Botan::Extensions::add
    - Test::Result::confirm
    - Botan::OID::from_string
    - std::make_unique<Botan::Cert_Extension::Basic_Constraints>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_extension()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:252,1
    - Dst: Botan::X509_Time::time_is_set
      Src: /src/botan/src/tests/unit_x509.cpp:252,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/unit_x509.cpp:253,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:254,1
    - Dst: Botan::X509_Time::time_is_set
      Src: /src/botan/src/tests/unit_x509.cpp:254,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:255,1
    - Dst: Botan::X509_Time::readable_string
      Src: /src/botan/src/tests/unit_x509.cpp:255,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/unit_x509.cpp:257,1
    - Dst: Test::Result::test_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_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:262,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/unit_x509.cpp:264,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:265,1
    - Dst: Botan::X509_Time::readable_string
      Src: /src/botan/src/tests/unit_x509.cpp:266,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/unit_x509.cpp:269,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:270,1
    - Dst: Botan::X509_Time::readable_string
      Src: /src/botan/src/tests/unit_x509.cpp:270,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:401,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:413,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:417,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 421
    functionName: Botan_Tests::test_x509_dates
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::X509_Time
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::X509_Time::readable_string
    - 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:427,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:442,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/unit_x509.cpp:443,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:444,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:444,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:448,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:450,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:451,1
    - Dst: std::make_unique<Botan::Cert_Extension::Authority_Information_Access>
      Src: /src/botan/src/tests/unit_x509.cpp:451,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:453,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:455,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:455,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:455,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:457,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:457,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:461,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:462,1
    - Dst: Botan::TLS::Session_Manager::find
      Src: /src/botan/src/tests/unit_x509.cpp:463,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/unit_x509.cpp:463,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:466,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:466,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:469,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:470,1
    - Dst: std::make_unique<Botan::Cert_Extension::Authority_Information_Access>
      Src: /src/botan/src/tests/unit_x509.cpp:470,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:472,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:474,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:474,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:474,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:476,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:476,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:477,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:477,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:478,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:478,1
    - Dst: std::string
      Src: /src/botan/src/tests/unit_x509.cpp:478,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:481,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:482,1
    - Dst: std::make_unique<Botan::Cert_Extension::Authority_Information_Access>
      Src: /src/botan/src/tests/unit_x509.cpp:482,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:484,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:486,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:486,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:486,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:488,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:488,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:489,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:489,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 423
    functionDepth: 2
    functionLinenumber: 423
    functionLinenumberEnd: 493
    functionName: Botan_Tests::test_x509_encode_authority_info_access_extension
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::req_opts1
    - Botan_Tests::make_a_private_key
    - Botan_Tests::ca_opts
    - Botan::X509_Certificate::ca_issuers
    - std::string
    - std::vector::end
    - Botan::X509::create_cert_req
    - Botan_Tests::from_date
    - Botan::X509_Cert_Options::extensions::add
    - std::make_unique<Botan::Cert_Extension::Authority_Information_Access>
    - Test::Result::test_eq
    - Test::Result::confirm
    - Test::Result::require
    - Botan_Tests::Test::new_rng
    - Botan::X509_Certificate::ocsp_responder
    - Botan::TLS::Session_Manager::find
    - Botan::X509_CA::sign_request
    - Botan::X509::create_self_signed_cert
    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:503,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:507,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:509,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/unit_x509.cpp:510,1
    - Dst: Botan::X509_CA::new_crl
      Src: /src/botan/src/tests/unit_x509.cpp:513,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:515,1
    - Dst: Botan::X509_CRL::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:515,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:515,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:517,1
    - Dst: Botan::X509_CRL::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 521
    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_CA::new_crl
    - Botan::PKCS8::load_key
    - Test::Result::confirm
    - Botan::X509_Certificate::subject_dn
    - Botan_Tests::Test::new_rng
    - Botan::X509_CRL::issuer_dn
    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:528,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:530,1
    - Dst: Botan::X509_Certificate::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:530,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:531,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 534
    functionName: Botan_Tests::test_rdn_multielement_set_name
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Certificate::issuer_dn
    - Botan_Tests::Test::data_file
    - Test::Result::confirm
    - Botan::X509_Certificate::subject_dn
    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:540,1
    - Dst: Botan::X509_Certificate::subject_public_key
      Src: /src/botan/src/tests/unit_x509.cpp:542,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/unit_x509.cpp:543,1
    - Dst: auto::get
      Src: /src/botan/src/tests/unit_x509.cpp:543,1
    - Dst: Botan::X509_Certificate::subject_public_key_algo
      Src: /src/botan/src/tests/unit_x509.cpp:544,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:546,1
    - Dst: oid
      Src: /src/botan/src/tests/unit_x509.cpp:546,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/tests/unit_x509.cpp:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 550
    functionName: Botan_Tests::test_rsa_oaep
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Certificate::subject_public_key_algo
    - Botan_Tests::Test::data_file
    - Botan::X509_Certificate::subject_public_key
    - auto::get
    - Test::Result::test_not_null
    - Test::Result::test_eq
    - Botan::OID::from_string
    - oid
    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:555,1
    - Dst: Botan::BER_Decoder::decode_list
      Src: /src/botan/src/tests/unit_x509.cpp:559,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:561,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_x509.cpp:561,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:563,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:563,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:564,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 567
    functionName: Botan_Tests::test_x509_decode_list
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::data_file
    - Botan::BER_Decoder::decode_list
    - Test::Result::test_eq
    - std::vector::size
    - subject_dn
    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:573,1
    - Dst: Botan::X509_Certificate::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:587,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:589,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:589,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:590,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:590,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:591,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:591,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:592,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:592,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:594,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:594,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 569
    functionDepth: 1
    functionLinenumber: 569
    functionLinenumberEnd: 598
    functionName: Botan_Tests::test_x509_utf8
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::data_file
    - Test::Result::test_failure
    - get_first_attribute
    - Test::Result::test_eq
    - what
    - Botan::X509_Certificate::issuer_dn
    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:604,1
    - Dst: Botan::X509_Certificate::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:614,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:616,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:616,1
    - Dst: Test::Result::test_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_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_failure
      Src: /src/botan/src/tests/unit_x509.cpp:620,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:620,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 600
    functionDepth: 1
    functionLinenumber: 600
    functionLinenumberEnd: 624
    functionName: Botan_Tests::test_x509_bmpstring
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::data_file
    - Test::Result::test_failure
    - get_first_attribute
    - Test::Result::test_eq
    - what
    - Botan::X509_Certificate::issuer_dn
    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:630,1
    - Dst: Botan::X509_Certificate::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:632,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:636,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:636,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:637,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:637,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:639,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:639,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 626
    functionDepth: 1
    functionLinenumber: 626
    functionLinenumberEnd: 643
    functionName: Botan_Tests::test_x509_teletex
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::data_file
    - Test::Result::test_failure
    - get_first_attribute
    - Test::Result::test_eq
    - what
    - Botan::X509_Certificate::issuer_dn
    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:649,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:651,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:651,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:652,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:652,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:655,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:657,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:659,1
    - Dst: auto::size
      Src: /src/botan/src/tests/unit_x509.cpp:659,1
    - Dst: Test::Result::tests_failed
      Src: /src/botan/src/tests/unit_x509.cpp:660,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:664,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:665,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:665,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:669,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:671,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:673,1
    - Dst: auto::size
      Src: /src/botan/src/tests/unit_x509.cpp:673,1
    - Dst: Test::Result::tests_failed
      Src: /src/botan/src/tests/unit_x509.cpp:674,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:678,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:680,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:684,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:684,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 687
    functionName: Botan_Tests::test_x509_authority_info_access_extension
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::data_file
    - Botan::X509_Certificate::ca_issuers
    - Test::Result::test_eq
    - Test::Result::tests_failed
    - Botan::X509_Certificate::ocsp_responder
    - auto::size
    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:695,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_x509.cpp:696,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:698,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:698,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 689
    functionDepth: 1
    functionLinenumber: 689
    functionLinenumberEnd: 702
    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_failure
    - Test::Result::test_success
    - what
    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:709,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:710,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:711,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/unit_x509.cpp:713,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/unit_x509.cpp:714,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:718,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:720,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:720,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:723,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:723,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 728
    functionName: Botan_Tests::test_verify_gost2012_cert
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Test::data_file
    - Botan::Path_Validation_Result::successful_validation
    - Test::Result::test_failure
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::confirm
    - what
    - Botan::x509_path_validate
    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:739,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:741,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/unit_x509.cpp:742,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/tests/unit_x509.cpp:746,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:748,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:749,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:750,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:754,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:755,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:756,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:757,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:762,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:764,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:765,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/unit_x509.cpp:766,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:768,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/unit_x509.cpp:768,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:769,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:774,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:775,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:778,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:779,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:783,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:784,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:785,1
    - Dst: Botan::PKCS10_Request::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:786,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:791,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:793,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:795,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:801,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:802,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:803,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:808,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:809,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:810,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:815,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:816,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:817,1
    - Dst: Botan::X509_CA::new_crl
      Src: /src/botan/src/tests/unit_x509.cpp:820,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:821,1
    - Dst: Botan::X509_CRL::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:821,1
    - Dst: Botan::X509_CA::ca_certificate
      Src: /src/botan/src/tests/unit_x509.cpp:824,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:827,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:828,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:828,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 736
    functionDepth: 1
    functionLinenumber: 736
    functionLinenumberEnd: 831
    functionName: Botan_Tests::test_padding_config
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Result::successful_validation
    - Test::Result::test_failure
    - Botan::X509_Cert_Options::set_padding_scheme
    - what
    - Botan_Tests::Test::data_file
    - Botan::X509_CA::ca_certificate
    - Botan_Tests::Test::new_rng
    - Botan::X509_Cert_Options::CA_key
    - Botan::X509_CA::new_crl
    - Botan::PKCS8::load_key
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - Botan::PKCS10_Request::signature_algorithm
    - Botan::X509::create_self_signed_cert
    - Test::Result::test_eq
    - Botan::X509_Certificate::signature_algorithm
    - Test::Result::confirm
    - auto::algo_name
    - Botan::X509_CRL::signature_algorithm
    - Botan::X509_CA::sign_request
    - Botan::X509::create_cert_req
    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:842,1
    - Dst: Botan::X509_Cert_Options::more_dns::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:845,1
    - Dst: Botan::X509_Cert_Options::more_dns::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:846,1
    - Dst: Botan::AlternativeName::AlternativeName
      Src: /src/botan/src/tests/unit_x509.cpp:850,1
    - Dst: Botan::AlternativeName::add_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:851,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:854,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:855,1
    - Dst: Botan::AlternativeName::add_dn
      Src: /src/botan/src/tests/unit_x509.cpp:856,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:858,1
    - Dst: std::make_unique<Botan::Cert_Extension::Subject_Alternative_Name>
      Src: /src/botan/src/tests/unit_x509.cpp:858,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:860,1
    - Dst: auto::subject_alt_name
      Src: /src/botan/src/tests/unit_x509.cpp:862,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:864,1
    - Dst: auto::size
      Src: /src/botan/src/tests/unit_x509.cpp:864,1
    - Dst: auto::size
      Src: /src/botan/src/tests/unit_x509.cpp:866,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:867,1
    - Dst: auto::at
      Src: /src/botan/src/tests/unit_x509.cpp:867,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:868,1
    - Dst: auto::at
      Src: /src/botan/src/tests/unit_x509.cpp:868,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:869,1
    - Dst: auto::at
      Src: /src/botan/src/tests/unit_x509.cpp:869,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:870,1
    - Dst: auto::at
      Src: /src/botan/src/tests/unit_x509.cpp:870,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:873,1
    - Dst: auto::subject_alt_name
      Src: /src/botan/src/tests/unit_x509.cpp:873,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:874,1
    - Dst: auto::subject_alt_name
      Src: /src/botan/src/tests/unit_x509.cpp:874,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: 877
      start: 836
    functionDepth: 1
    functionLinenumber: 836
    functionLinenumberEnd: 877
    functionName: Botan_Tests::test_pkcs10_ext
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - auto::at
    - auto::subject_alt_name
    - Botan::X509_Cert_Options::more_dns::push_back
    - Botan::AlternativeName::AlternativeName
    - std::make_unique<Botan::Cert_Extension::Subject_Alternative_Name>
    - Botan::X509_DN::add_attribute
    - Test::Result::test_eq
    - Botan::X509_Cert_Options::X509_Cert_Options
    - Botan::AlternativeName::add_dn
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::confirm
    - Botan::AlternativeName::add_attribute
    - auto::size
    - Botan::X509::create_cert_req
    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:887,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:887,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:890,1
    - Dst: auto::constraints
      Src: /src/botan/src/tests/unit_x509.cpp:890,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:891,1
    - Dst: auto::constraints
      Src: /src/botan/src/tests/unit_x509.cpp:891,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:895,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:898,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:898,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:900,1
    - Dst: Botan::PKCS10_Request::challenge_password
      Src: /src/botan/src/tests/unit_x509.cpp:900,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:903,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:905,1
    - Dst: Botan_Tests::req_opts2
      Src: /src/botan/src/tests/unit_x509.cpp:905,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:908,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:910,1
    - Dst: Botan_Tests::req_opts3
      Src: /src/botan/src/tests/unit_x509.cpp:910,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:919,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:919,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:919,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:921,1
    - Dst: Botan::X509_Certificate::serial_number
      Src: /src/botan/src/tests/unit_x509.cpp:921,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:922,1
    - Dst: Botan::X509_Certificate::serial_number
      Src: /src/botan/src/tests/unit_x509.cpp:922,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:924,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:924,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:924,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:925,1
    - Dst: Botan::X509_Certificate::has_ex_constraint
      Src: /src/botan/src/tests/unit_x509.cpp:925,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:927,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:927,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:927,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:931,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:931,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:934,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:935,1
    - Dst: Botan::X509_Certificate::constraints
      Src: /src/botan/src/tests/unit_x509.cpp:935,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:940,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:943,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:946,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:946,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:946,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:948,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:951,1
    - Dst: Botan::X509_Certificate::x509_version
      Src: /src/botan/src/tests/unit_x509.cpp:951,1
    - Dst: Botan::X509_Certificate::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:953,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:954,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:954,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:954,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:955,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:955,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:955,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:956,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:956,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:956,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:957,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:957,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:957,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:959,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:960,1
    - Dst: get_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:961,1
    - Dst: Botan_Tests::req_opts3
      Src: /src/botan/src/tests/unit_x509.cpp:962,1
    - Dst: size
      Src: /src/botan/src/tests/unit_x509.cpp:962,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:963,1
    - Dst: get_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:964,1
    - Dst: Botan_Tests::req_opts3
      Src: /src/botan/src/tests/unit_x509.cpp:964,1
    - Dst: at
      Src: /src/botan/src/tests/unit_x509.cpp:964,1
    - Dst: Botan::X509_Certificate::subject_alt_name
      Src: /src/botan/src/tests/unit_x509.cpp:966,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:967,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:967,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:968,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:968,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:969,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:969,1
    - Dst: Botan::X509_Certificate::subject_alt_name
      Src: /src/botan/src/tests/unit_x509.cpp:971,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:972,1
    - Dst: get_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:973,1
    - Dst: Botan_Tests::req_opts3
      Src: /src/botan/src/tests/unit_x509.cpp:973,1
    - Dst: size
      Src: /src/botan/src/tests/unit_x509.cpp:973,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:974,1
    - Dst: get_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:974,1
    - Dst: Botan_Tests::req_opts3
      Src: /src/botan/src/tests/unit_x509.cpp:974,1
    - Dst: at
      Src: /src/botan/src/tests/unit_x509.cpp:974,1
    - Dst: Botan::X509_CA::new_crl
      Src: /src/botan/src/tests/unit_x509.cpp:976,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/unit_x509.cpp:980,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:983,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:984,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:985,1
    - Dst: Botan::Path_Validation_Result::status_string
      Src: /src/botan/src/tests/unit_x509.cpp:986,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/unit_x509.cpp:988,1
    - Dst: Botan::X509_CA::ca_certificate
      Src: /src/botan/src/tests/unit_x509.cpp:988,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:990,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:991,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:991,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/unit_x509.cpp:992,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:992,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:995,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:996,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:996,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/unit_x509.cpp:997,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:997,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1000,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1001,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1002,1
    - Dst: Botan::Path_Validation_Result::status_string
      Src: /src/botan/src/tests/unit_x509.cpp:1003,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/unit_x509.cpp:1004,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1007,1
    - Dst: Botan::CRL_Entry
      Src: /src/botan/src/tests/unit_x509.cpp:1007,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1008,1
    - Dst: Botan::CRL_Entry
      Src: /src/botan/src/tests/unit_x509.cpp:1008,1
    - Dst: Botan::X509_CA::update_crl
      Src: /src/botan/src/tests/unit_x509.cpp:1010,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/unit_x509.cpp:1012,1
    - Dst: Botan::Path_Validation_Result::status_string
      Src: /src/botan/src/tests/unit_x509.cpp:1015,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1017,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1018,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1018,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1020,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1021,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1021,1
    - Dst: std::vector::clear
      Src: /src/botan/src/tests/unit_x509.cpp:1023,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1024,1
    - Dst: Botan::CRL_Entry
      Src: /src/botan/src/tests/unit_x509.cpp:1024,1
    - Dst: Botan::X509_CA::update_crl
      Src: /src/botan/src/tests/unit_x509.cpp:1025,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/unit_x509.cpp:1027,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1029,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1030,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:1030,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/unit_x509.cpp:1031,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1031,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1034,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1035,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1035,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: 1038
      start: 879
    functionDepth: 2
    functionLinenumber: 879
    functionLinenumberEnd: 1038
    functionName: Botan_Tests::test_x509_cert
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Certificate::subject_alt_name
    - Botan::X509_Certificate::constraints
    - Botan_Tests::make_a_private_key
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::req_opts3
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::X509_Certificate::issuer_dn
    - Botan::X509_Certificate::serial_number
    - Botan::X509_Certificate::has_ex_constraint
    - Botan::X509_CA::ca_certificate
    - Botan::PKCS10_Request::challenge_password
    - get_attribute
    - Botan::X509_Certificate::subject_dn
    - Botan::Path_Validation_Result::status_string
    - auto::constraints
    - std::vector::push_back
    - get_first_attribute
    - Botan::X509_CA::new_crl
    - std::vector::clear
    - Botan::X509_Certificate::x509_version
    - Botan::CRL_Entry
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - Botan_Tests::req_opts1
    - Botan_Tests::req_opts2
    - Test::Result::test_note
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::ca_opts
    - size
    - Botan::X509::create_self_signed_cert
    - Test::Result::test_eq
    - Botan::Path_Validation_Result::result_string
    - Botan::X509_CA::update_crl
    - Test::Result::confirm
    - Botan::Certificate_Store_In_Memory::add_crl
    - at
    - Botan::X509_CA::sign_request
    - Botan::X509::create_cert_req
    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:1050,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1050,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1055,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1060,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1063,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1063,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1063,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1066,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1068,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1068,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1070,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1070,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1073,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1073,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1075,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1077,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1080,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1080,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1080,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1083,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1084,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1085,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1085,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1086,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1088,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1088,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1089,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1089,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1091,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1093,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1096,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1096,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1096,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1099,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1099,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1100,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1100,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1101,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1101,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1105,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1107,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1110,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1110,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1110,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1112,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1112,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1113,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1113,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: 1117
      start: 1040
    functionDepth: 2
    functionLinenumber: 1040
    functionLinenumberEnd: 1117
    functionName: Botan_Tests::test_usage
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Key_Constraints
    - Botan_Tests::make_a_private_key
    - Botan_Tests::ca_opts
    - Botan::X509::create_self_signed_cert
    - Botan_Tests::from_date
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::X509_Certificate::allowed_usage
    - Botan::X509_CA::sign_request
    - Botan::X509::create_cert_req
    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:1130,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1130,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1135,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1139,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:1141,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1143,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1146,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1146,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1146,1
    - Dst: Botan::X509_CA::ca_certificate
      Src: /src/botan/src/tests/unit_x509.cpp:1149,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1154,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1156,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:1156,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: 1159
      start: 1119
    functionDepth: 2
    functionLinenumber: 1119
    functionLinenumberEnd: 1159
    functionName: Botan_Tests::test_self_issued
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::make_a_private_key
    - Botan_Tests::ca_opts
    - Botan::X509_CA::ca_certificate
    - Botan::Path_Validation_Result::successful_validation
    - Botan::X509::create_self_signed_cert
    - Botan_Tests::from_date
    - Botan::X509_Cert_Options::set_padding_scheme
    - Test::Result::confirm
    - Botan::x509_path_validate
    - Botan::X509_CA::sign_request
    - Botan::X509::create_cert_req
    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:1164,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:1165,1
    - Dst: Botan::X509_Certificate::x509_version
      Src: /src/botan/src/tests/unit_x509.cpp:1166,1
    - Dst: Botan::X509_CRL::X509_CRL
      Src: /src/botan/src/tests/unit_x509.cpp:1169,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:1170,1
    - Dst: Botan::X509_CRL::crl_number
      Src: /src/botan/src/tests/unit_x509.cpp:1171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1161
    functionDepth: 1
    functionLinenumber: 1161
    functionLinenumberEnd: 1174
    functionName: Botan_Tests::test_x509_uninit
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::X509_Certificate::X509_Certificate
    - Botan::X509_CRL::crl_number
    - Botan::X509_CRL::X509_CRL
    - Botan::X509_Certificate::x509_version
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_uninit()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1181,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1181,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1186,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1191,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1192,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1193,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1194,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1195,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1196,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1198,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1200,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1201,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1203,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1207,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1207,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1208,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1208,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1209,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1209,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1210,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1210,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1211,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1211,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1212,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1212,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1213,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1213,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1214,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1214,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1215,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1215,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1216,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1216,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1217,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1217,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1220,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1220,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1221,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1221,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1222,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1222,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1223,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1223,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1224,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1224,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1225,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1225,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1226,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1226,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1227,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1227,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1228,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1228,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1231,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1231,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1233,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1233,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1234,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1234,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1235,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1235,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1236,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1236,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1237,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1237,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1238,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1238,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1239,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1239,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1240,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1240,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1241,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1241,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1242,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1242,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1245,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1245,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1246,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1246,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1247,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1247,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1248,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1248,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1249,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1249,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1250,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1250,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1251,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1251,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1252,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1252,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1253,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1253,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1258,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1258,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1260,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1260,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1261,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1261,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1262,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1262,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1263,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1263,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1264,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1264,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1265,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1265,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1266,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1266,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1267,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1267,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1268,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1268,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1269,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1269,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 64
    argCount: 2
    argNames:
    - ' key'
    - ' pk_algo'
    argTypes:
    - Botan::Private_Key
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1176
    functionDepth: 0
    functionLinenumber: 1176
    functionLinenumberEnd: 1273
    functionName: Botan_Tests::test_valid_constraints
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_eq
    - auto::compatible_with
    - Test::Result::confirm
    - Key_Constraints
    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: 1280
      start: 1280
    functionDepth: 0
    functionLinenumber: 1280
    functionLinenumberEnd: 1280
    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: 1282
      start: 1282
    functionDepth: 0
    functionLinenumber: 1282
    functionLinenumberEnd: 1282
    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: 1284
      start: 1284
    functionDepth: 0
    functionLinenumber: 1284
    functionLinenumberEnd: 1284
    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:1287,1
    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_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:1290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1290
      start: 1290
    functionDepth: 1
    functionLinenumber: 1290
    functionLinenumberEnd: 1290
    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: 1292
      start: 1292
    functionDepth: 0
    functionLinenumber: 1292
    functionLinenumberEnd: 1292
    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: 1294
      start: 1294
    functionDepth: 0
    functionLinenumber: 1294
    functionLinenumberEnd: 1294
    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:1298,1
    - Dst: Botan::ASN1_String::ASN1_String
      Src: /src/botan/src/tests/unit_x509.cpp:1298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1296
    functionDepth: 1
    functionLinenumber: 1296
    functionLinenumberEnd: 1300
    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:1303,1
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/tests/unit_x509.cpp:1304,1
    - Dst: Botan::ASN1_String::value
      Src: /src/botan/src/tests/unit_x509.cpp:1305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1302
    functionDepth: 1
    functionLinenumber: 1302
    functionLinenumberEnd: 1306
    functionName: Botan_Tests::String_Extension::decode_inner
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::ASN1_String::ASN1_String
    - Botan::BER_Decoder
    - Botan::ASN1_String::value
    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:1320,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1320,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1325,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/unit_x509.cpp:1329,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/unit_x509.cpp:1330,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1334,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1335,1
    - Dst: Botan::PKCS10_Request::create
      Src: /src/botan/src/tests/unit_x509.cpp:1340,1
    - Dst: Botan::PKCS10_Request::subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:1342,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1344,1
    - Dst: dn_info
      Src: /src/botan/src/tests/unit_x509.cpp:1344,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1346,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1347,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1348,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1349,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1350,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1350,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1350,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1351,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1351,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1351,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1356,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:1358,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1360,1
    - Dst: dn_info
      Src: /src/botan/src/tests/unit_x509.cpp:1360,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1362,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1363,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1364,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1365,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1366,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1366,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1366,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1367,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1367,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1367,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: 1370
      start: 1312
    functionDepth: 2
    functionLinenumber: 1312
    functionLinenumberEnd: 1370
    functionName: Botan_Tests::test_custom_dn_attr
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::PKCS10_Request::subject_dn
    - Botan_Tests::make_a_private_key
    - Botan_Tests::ca_opts
    - Botan::PKCS10_Request::create
    - get_first_attribute
    - Botan::ASN1_String::tagging
    - Botan::X509_DN::add_attribute
    - Test::Result::test_eq
    - Test::Result::confirm
    - dn_info
    - Botan::EC_Group::from_OID
    - auto::subject_dn
    - Botan::X509_CA::sign_request
    - Botan::X509::create_self_signed_cert
    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:1382,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1382,1
    - Dst: Botan::AlternativeName::AlternativeName
      Src: /src/botan/src/tests/unit_x509.cpp:1395,1
    - Dst: Botan::AlternativeName::add_uri
      Src: /src/botan/src/tests/unit_x509.cpp:1396,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/unit_x509.cpp:1399,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1402,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/tests/unit_x509.cpp:1410,1
    - Dst: Botan::Extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:1411,1
    - Dst: std::make_unique<String_Extension>
      Src: /src/botan/src/tests/unit_x509.cpp:1411,1
    - Dst: Botan::Extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:1412,1
    - Dst: std::make_unique<Botan::Cert_Extension::CRL_Distribution_Points>
      Src: /src/botan/src/tests/unit_x509.cpp:1412,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:1414,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1417,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1419,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1420,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1423,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1424,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1425,1
    - Dst: dynamic_cast<Botan::Cert_Extension::Key_Usage&>
      Src: /src/botan/src/tests/unit_x509.cpp:1427,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1431,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1432,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1433,1
    - Dst: auto::value
      Src: /src/botan/src/tests/unit_x509.cpp:1434,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1439,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1441,1
    - Dst: auto*::crl_distribution_urls
      Src: /src/botan/src/tests/unit_x509.cpp:1442,1
    - Dst: auto*::distribution_points
      Src: /src/botan/src/tests/unit_x509.cpp:1443,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1444,1
    - Dst: Botan::TLS::Session_Manager::find
      Src: /src/botan/src/tests/unit_x509.cpp:1445,1
    - Dst: point
      Src: /src/botan/src/tests/unit_x509.cpp:1445,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/unit_x509.cpp:1445,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1449,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1453,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1453,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1453,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1456,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1456,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1458,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1459,1
    - Dst: dynamic_cast<Botan::Cert_Extension::Key_Usage&>
      Src: /src/botan/src/tests/unit_x509.cpp:1460,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1461,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1466,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1467,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1468,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1469,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1470,1
    - Dst: auto::value
      Src: /src/botan/src/tests/unit_x509.cpp:1471,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1475,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1477,1
    - Dst: auto*::crl_distribution_urls
      Src: /src/botan/src/tests/unit_x509.cpp:1478,1
    - Dst: auto*::distribution_points
      Src: /src/botan/src/tests/unit_x509.cpp:1479,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1480,1
    - Dst: Botan::TLS::Session_Manager::find
      Src: /src/botan/src/tests/unit_x509.cpp:1481,1
    - Dst: point
      Src: /src/botan/src/tests/unit_x509.cpp:1481,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/unit_x509.cpp:1481,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: 1486
      start: 1372
    functionDepth: 2
    functionLinenumber: 1372
    functionLinenumberEnd: 1486
    functionName: Botan_Tests::test_x509_extensions
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<Botan::Cert_Extension::Key_Usage&>
    - point
    - Botan_Tests::make_a_private_key
    - Botan::AlternativeName::AlternativeName
    - std::vector::end
    - Botan::X509_Cert_Options::set_padding_scheme
    - std::make_unique<Botan::Cert_Extension::CRL_Distribution_Points>
    - auto*::distribution_points
    - Botan::Extensions::add
    - std::vector::emplace_back
    - std::make_unique<String_Extension>
    - auto*::crl_distribution_urls
    - Botan::OID::from_string
    - Botan::X509::create_cert_req
    - auto::value
    - Botan::TLS::Session_Manager::find
    - Botan::X509_Certificate::v3_extensions
    - Botan_Tests::from_date
    - Botan_Tests::ca_opts
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::AlternativeName::add_uri
    - Botan::X509_CA::sign_request
    - Botan::X509::create_self_signed_cert
    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:1520,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1522,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1524,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_x509.cpp:1524,1
    - Dst: Botan::X509_Certificate::raw_issuer_dn_sha256
      Src: /src/botan/src/tests/unit_x509.cpp:1524,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1525,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_x509.cpp:1525,1
    - Dst: Botan::X509_Certificate::raw_subject_dn_sha256
      Src: /src/botan/src/tests/unit_x509.cpp:1525,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1529,1
    - Dst: Botan::X509_Cert_Options::X509_Cert_Options
      Src: /src/botan/src/tests/unit_x509.cpp:1529,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1531,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1531,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1531,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1533,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_x509.cpp:1533,1
    - Dst: Botan::X509_Certificate::raw_issuer_dn_sha256
      Src: /src/botan/src/tests/unit_x509.cpp:1533,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1534,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_x509.cpp:1534,1
    - Dst: Botan::X509_Certificate::raw_subject_dn_sha256
      Src: /src/botan/src/tests/unit_x509.cpp:1534,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: 1537
      start: 1488
    functionDepth: 1
    functionLinenumber: 1488
    functionLinenumberEnd: 1537
    functionName: Botan_Tests::test_hashes
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Cert_Options::CA_key
    - Botan::X509_Certificate::raw_issuer_dn_sha256
    - Botan::hex_encode
    - Test::Result::test_eq
    - Botan::X509::create_cert_req
    - Botan::X509_Cert_Options::X509_Cert_Options
    - Botan_Tests::from_date
    - Botan::X509_Certificate::raw_subject_dn_sha256
    - Botan::X509_CA::sign_request
    - Botan::X509::create_self_signed_cert
    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:1559,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:1561,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1565,1
    - Dst: auto*::entries
      Src: /src/botan/src/tests/unit_x509.cpp:1567,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1569,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:1571,1
    - Dst: telephone_number_range
      Src: /src/botan/src/tests/unit_x509.cpp:1572,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:1573,1
    - Dst: telephone_number
      Src: /src/botan/src/tests/unit_x509.cpp:1574,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:1575,1
    - Dst: service_provider_code
      Src: /src/botan/src/tests/unit_x509.cpp:1576,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1578,1
    - Dst: type
      Src: /src/botan/src/tests/unit_x509.cpp:1578,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1579,1
    - Dst: service_provider_code
      Src: /src/botan/src/tests/unit_x509.cpp:1579,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1581,1
    - Dst: type
      Src: /src/botan/src/tests/unit_x509.cpp:1581,1
    - Dst: telephone_number_range
      Src: /src/botan/src/tests/unit_x509.cpp:1582,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1583,1
    - Dst: size
      Src: /src/botan/src/tests/unit_x509.cpp:1583,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1584,1
    - Dst: start::value
      Src: /src/botan/src/tests/unit_x509.cpp:1584,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1585,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1586,1
    - Dst: start::value
      Src: /src/botan/src/tests/unit_x509.cpp:1586,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1587,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1589,1
    - Dst: type
      Src: /src/botan/src/tests/unit_x509.cpp:1589,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1590,1
    - Dst: telephone_number
      Src: /src/botan/src/tests/unit_x509.cpp:1590,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/unit_x509.cpp:1592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1594
      start: 1541
    functionDepth: 1
    functionLinenumber: 1541
    functionLinenumberEnd: 1594
    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_throws
    - service_provider_code
    - Test::Result::end_timer
    - Botan_Tests::Test::data_file
    - size
    - auto*::entries
    - telephone_number
    - telephone_number_range
    - Test::Result::test_eq
    - Test::Result::confirm
    - type
    - start::value
    - Botan::X509_Certificate::v3_extensions
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_tn_auth_list_extension_decode()
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 2
    argNames:
    - ' sig_algo'
    - ' hash'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1613
      start: 1598
    functionDepth: 0
    functionLinenumber: 1598
    functionLinenumberEnd: 1613
    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:1620,1
    - Dst: make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1653,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1659,1
    - Dst: test_hashes
      Src: /src/botan/src/tests/unit_x509.cpp:1659,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1660,1
    - Dst: test_valid_constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1660,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1664,1
    - Dst: test_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1664,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1666,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1666,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1668,1
    - Dst: get_sig_paddings
      Src: /src/botan/src/tests/unit_x509.cpp:1670,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1674,1
    - Dst: test_x509_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1674,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1676,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1676,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1678,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1682,1
    - Dst: test_pkcs10_ext
      Src: /src/botan/src/tests/unit_x509.cpp:1682,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1684,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1684,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1686,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1690,1
    - Dst: test_self_issued
      Src: /src/botan/src/tests/unit_x509.cpp:1690,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1692,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1692,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1694,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1698,1
    - Dst: test_x509_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1698,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1700,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1700,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1702,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1706,1
    - Dst: test_custom_dn_attr
      Src: /src/botan/src/tests/unit_x509.cpp:1706,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1708,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1708,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1710,1
    - Dst: make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1721,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1724,1
    - Dst: test_valid_constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1724,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1732,1
    - Dst: test_padding_config
      Src: /src/botan/src/tests/unit_x509.cpp:1732,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1734,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1734,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1736,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1740,1
    - Dst: test_x509_utf8
      Src: /src/botan/src/tests/unit_x509.cpp:1740,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1741,1
    - Dst: test_x509_bmpstring
      Src: /src/botan/src/tests/unit_x509.cpp:1741,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1742,1
    - Dst: test_x509_teletex
      Src: /src/botan/src/tests/unit_x509.cpp:1742,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1743,1
    - Dst: test_crl_dn_name
      Src: /src/botan/src/tests/unit_x509.cpp:1743,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1744,1
    - Dst: test_rdn_multielement_set_name
      Src: /src/botan/src/tests/unit_x509.cpp:1744,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1745,1
    - Dst: test_x509_decode_list
      Src: /src/botan/src/tests/unit_x509.cpp:1745,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1746,1
    - Dst: test_rsa_oaep
      Src: /src/botan/src/tests/unit_x509.cpp:1746,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1747,1
    - Dst: test_x509_authority_info_access_extension
      Src: /src/botan/src/tests/unit_x509.cpp:1747,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1748,1
    - Dst: test_verify_gost2012_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1748,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1749,1
    - Dst: test_parse_rsa_pss_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1749,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1750,1
    - Dst: test_x509_tn_auth_list_extension_decode
      Src: /src/botan/src/tests/unit_x509.cpp:1750,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1753,1
    - Dst: test_x509_encode_authority_info_access_extension
      Src: /src/botan/src/tests/unit_x509.cpp:1753,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1754,1
    - Dst: test_x509_extension
      Src: /src/botan/src/tests/unit_x509.cpp:1754,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1755,1
    - Dst: test_x509_dates
      Src: /src/botan/src/tests/unit_x509.cpp:1755,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1756,1
    - Dst: test_cert_status_strings
      Src: /src/botan/src/tests/unit_x509.cpp:1756,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1757,1
    - Dst: test_x509_uninit
      Src: /src/botan/src/tests/unit_x509.cpp:1757,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 82
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1760
      start: 1617
    functionDepth: 0
    functionLinenumber: 1617
    functionLinenumberEnd: 1760
    functionName: Botan_Tests::X509_Cert_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_failure
    - test_verify_gost2012_cert
    - test_x509_utf8
    - test_x509_teletex
    - test_usage
    - what
    - test_x509_extensions
    - get_sig_paddings
    - test_padding_config
    - test_custom_dn_attr
    - test_rdn_multielement_set_name
    - test_x509_cert
    - test_parse_rsa_pss_cert
    - test_x509_tn_auth_list_extension_decode
    - test_self_issued
    - test_pkcs10_ext
    - test_rsa_oaep
    - test_hashes
    - test_x509_bmpstring
    - test_x509_authority_info_access_extension
    - std::vector::push_back
    - test_cert_status_strings
    - test_x509_uninit
    - Botan_Tests::X509_Cert_Unit_Tests::rng
    - test_valid_constraints
    - test_x509_extension
    - test_x509_dates
    - make_a_private_key
    - test_crl_dn_name
    - test_x509_encode_authority_info_access_extension
    - test_x509_decode_list
    - Test::Result::merge
    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:34,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/unit_x509.cpp:34,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/unit_x509.cpp:36,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/unit_x509.cpp:37,1
    - Dst: Botan::calendar_point::to_std_timepoint
      Src: /src/botan/src/tests/unit_x509.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - y
    - m
    - d
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: Botan_Tests::from_date
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 14
    functionsReached:
    - static_cast<uint32_t>
    - Botan::calendar_point::to_std_timepoint
    - Botan::X509_Time
    - Botan::TLS::detail::AsyncBase::complete_now
    - Botan::calendar_point
    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:47,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/tests/unit_x509.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 52
    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:60,1
    - Dst: Botan::X509_Cert_Options::not_before
      Src: /src/botan/src/tests/unit_x509.cpp:62,1
    - Dst: Botan::X509_Cert_Options::not_after
      Src: /src/botan/src/tests/unit_x509.cpp:63,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 74
    functionName: Botan_Tests::req_opts1
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 4
    functionsReached:
    - Botan::X509_Cert_Options::not_after
    - Botan::X509_Cert_Options::set_padding_scheme
    - Botan::X509_Cert_Options::not_before
    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:82,1
    - Dst: Botan::X509_Cert_Options::add_ex_constraint
      Src: /src/botan/src/tests/unit_x509.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 87
    functionName: Botan_Tests::req_opts2
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 2
    functionsReached:
    - Botan::X509_Cert_Options::set_padding_scheme
    - Botan::X509_Cert_Options::add_ex_constraint
    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:95,1
    - Dst: Botan::X509_Cert_Options::more_org_units::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:97,1
    - Dst: Botan::X509_Cert_Options::more_org_units::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:98,1
    - Dst: Botan::X509_Cert_Options::more_dns::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 102
    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::set_padding_scheme
    - Botan::X509_Cert_Options::more_org_units::push_back
    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:112,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:131,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - ' algo'
    - ' rng'
    argTypes:
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 135
    functionName: Botan_Tests::make_a_private_key
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 12
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - Botan::create_private_key
    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_eq
      Src: /src/botan/src/tests/unit_x509.cpp:142,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/unit_x509.cpp:143,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/unit_x509.cpp:144,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/unit_x509.cpp:198,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:199,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/unit_x509.cpp:199,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:200,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/unit_x509.cpp:200,1
    - Dst: std::set::insert
      Src: /src/botan/src/tests/unit_x509.cpp:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 205
    functionName: Botan_Tests::test_cert_status_strings
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - std::string::size
    - std::set::count
    - Test::Result::test_eq
    - Botan::to_string
    - Test::Result::confirm
    - std::set::insert
    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:212,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/tests/unit_x509.cpp:213,1
    - Dst: Botan::Extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:215,1
    - Dst: std::make_unique<Botan::Cert_Extension::Basic_Constraints>
      Src: /src/botan/src/tests/unit_x509.cpp:215,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:217,1
    - Dst: Botan::Extensions::extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:217,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:218,1
    - Dst: Botan::Extensions::critical_extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:218,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:219,1
    - Dst: Botan::Extensions::extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:219,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:220,1
    - Dst: Botan::Extensions::critical_extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:220,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:222,1
    - Dst: Botan::Extensions::get_extension_bits
      Src: /src/botan/src/tests/unit_x509.cpp:222,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:224,1
    - Dst: Botan::Extensions::get_extension_bits
      Src: /src/botan/src/tests/unit_x509.cpp:224,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:226,1
    - Dst: Botan::Extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:227,1
    - Dst: std::make_unique<Botan::Cert_Extension::Basic_Constraints>
      Src: /src/botan/src/tests/unit_x509.cpp:227,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:229,1
    - Dst: Botan::Extensions::get_extension_bits
      Src: /src/botan/src/tests/unit_x509.cpp:229,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:231,1
    - Dst: Botan::Extensions::add_new
      Src: /src/botan/src/tests/unit_x509.cpp:232,1
    - Dst: std::make_unique<Botan::Cert_Extension::Basic_Constraints>
      Src: /src/botan/src/tests/unit_x509.cpp:232,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:234,1
    - Dst: Botan::Extensions::critical_extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:234,1
    - Dst: Botan::Extensions::replace
      Src: /src/botan/src/tests/unit_x509.cpp:236,1
    - Dst: std::make_unique<Botan::Cert_Extension::Basic_Constraints>
      Src: /src/botan/src/tests/unit_x509.cpp:236,1
    - Dst: Test::Result::confirm
      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: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:238,1
    - Dst: Botan::Extensions::get_extension_bits
      Src: /src/botan/src/tests/unit_x509.cpp:238,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:240,1
    - Dst: Botan::Extensions::remove
      Src: /src/botan/src/tests/unit_x509.cpp:240,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:241,1
    - Dst: Botan::Extensions::remove
      Src: /src/botan/src/tests/unit_x509.cpp:241,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:242,1
    - Dst: Botan::Extensions::extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:242,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:243,1
    - Dst: Botan::Extensions::critical_extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 246
    functionName: Botan_Tests::test_x509_extension
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::Extensions::get_extension_bits
    - Test::Result::test_throws
    - Botan::Extensions::remove
    - Botan::Extensions::add_new
    - Botan::Extensions::extension_set
    - Botan::Extensions::replace
    - Botan::Extensions::critical_extension_set
    - Test::Result::test_eq
    - Botan::Extensions::add
    - Test::Result::confirm
    - Botan::OID::from_string
    - std::make_unique<Botan::Cert_Extension::Basic_Constraints>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_extension()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:252,1
    - Dst: Botan::X509_Time::time_is_set
      Src: /src/botan/src/tests/unit_x509.cpp:252,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/unit_x509.cpp:253,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:254,1
    - Dst: Botan::X509_Time::time_is_set
      Src: /src/botan/src/tests/unit_x509.cpp:254,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:255,1
    - Dst: Botan::X509_Time::readable_string
      Src: /src/botan/src/tests/unit_x509.cpp:255,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/unit_x509.cpp:257,1
    - Dst: Test::Result::test_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_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:262,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/unit_x509.cpp:264,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:265,1
    - Dst: Botan::X509_Time::readable_string
      Src: /src/botan/src/tests/unit_x509.cpp:266,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/unit_x509.cpp:269,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:270,1
    - Dst: Botan::X509_Time::readable_string
      Src: /src/botan/src/tests/unit_x509.cpp:270,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:401,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:413,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:417,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 421
    functionName: Botan_Tests::test_x509_dates
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::X509_Time
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::X509_Time::readable_string
    - 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:427,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:442,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/unit_x509.cpp:443,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:444,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:444,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:448,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:450,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:451,1
    - Dst: std::make_unique<Botan::Cert_Extension::Authority_Information_Access>
      Src: /src/botan/src/tests/unit_x509.cpp:451,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:453,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:455,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:455,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:455,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:457,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:457,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:461,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:462,1
    - Dst: Botan::TLS::Session_Manager::find
      Src: /src/botan/src/tests/unit_x509.cpp:463,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/unit_x509.cpp:463,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:466,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:466,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:469,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:470,1
    - Dst: std::make_unique<Botan::Cert_Extension::Authority_Information_Access>
      Src: /src/botan/src/tests/unit_x509.cpp:470,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:472,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:474,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:474,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:474,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:476,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:476,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:477,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:477,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:478,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:478,1
    - Dst: std::string
      Src: /src/botan/src/tests/unit_x509.cpp:478,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:481,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:482,1
    - Dst: std::make_unique<Botan::Cert_Extension::Authority_Information_Access>
      Src: /src/botan/src/tests/unit_x509.cpp:482,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:484,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:486,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:486,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:486,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:488,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:488,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:489,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:489,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 423
    functionDepth: 2
    functionLinenumber: 423
    functionLinenumberEnd: 493
    functionName: Botan_Tests::test_x509_encode_authority_info_access_extension
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::req_opts1
    - Botan_Tests::make_a_private_key
    - Botan_Tests::ca_opts
    - Botan::X509_Certificate::ca_issuers
    - std::string
    - std::vector::end
    - Botan::X509::create_cert_req
    - Botan_Tests::from_date
    - Botan::X509_Cert_Options::extensions::add
    - std::make_unique<Botan::Cert_Extension::Authority_Information_Access>
    - Test::Result::test_eq
    - Test::Result::confirm
    - Test::Result::require
    - Botan_Tests::Test::new_rng
    - Botan::X509_Certificate::ocsp_responder
    - Botan::TLS::Session_Manager::find
    - Botan::X509_CA::sign_request
    - Botan::X509::create_self_signed_cert
    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:503,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:507,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:509,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/unit_x509.cpp:510,1
    - Dst: Botan::X509_CA::new_crl
      Src: /src/botan/src/tests/unit_x509.cpp:513,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:515,1
    - Dst: Botan::X509_CRL::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:515,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:515,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:517,1
    - Dst: Botan::X509_CRL::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 521
    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_CA::new_crl
    - Botan::PKCS8::load_key
    - Test::Result::confirm
    - Botan::X509_Certificate::subject_dn
    - Botan_Tests::Test::new_rng
    - Botan::X509_CRL::issuer_dn
    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:528,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:530,1
    - Dst: Botan::X509_Certificate::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:530,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:531,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 534
    functionName: Botan_Tests::test_rdn_multielement_set_name
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Certificate::issuer_dn
    - Botan_Tests::Test::data_file
    - Test::Result::confirm
    - Botan::X509_Certificate::subject_dn
    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:540,1
    - Dst: Botan::X509_Certificate::subject_public_key
      Src: /src/botan/src/tests/unit_x509.cpp:542,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/unit_x509.cpp:543,1
    - Dst: auto::get
      Src: /src/botan/src/tests/unit_x509.cpp:543,1
    - Dst: Botan::X509_Certificate::subject_public_key_algo
      Src: /src/botan/src/tests/unit_x509.cpp:544,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:546,1
    - Dst: oid
      Src: /src/botan/src/tests/unit_x509.cpp:546,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/tests/unit_x509.cpp:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 550
    functionName: Botan_Tests::test_rsa_oaep
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Certificate::subject_public_key_algo
    - Botan_Tests::Test::data_file
    - Botan::X509_Certificate::subject_public_key
    - auto::get
    - Test::Result::test_not_null
    - Test::Result::test_eq
    - Botan::OID::from_string
    - oid
    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:555,1
    - Dst: Botan::BER_Decoder::decode_list
      Src: /src/botan/src/tests/unit_x509.cpp:559,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:561,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_x509.cpp:561,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:563,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:563,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:564,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 567
    functionName: Botan_Tests::test_x509_decode_list
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::data_file
    - Botan::BER_Decoder::decode_list
    - Test::Result::test_eq
    - std::vector::size
    - subject_dn
    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:573,1
    - Dst: Botan::X509_Certificate::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:587,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:589,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:589,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:590,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:590,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:591,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:591,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:592,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:592,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:594,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:594,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 569
    functionDepth: 1
    functionLinenumber: 569
    functionLinenumberEnd: 598
    functionName: Botan_Tests::test_x509_utf8
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::data_file
    - Test::Result::test_failure
    - get_first_attribute
    - Test::Result::test_eq
    - what
    - Botan::X509_Certificate::issuer_dn
    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:604,1
    - Dst: Botan::X509_Certificate::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:614,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:616,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:616,1
    - Dst: Test::Result::test_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_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_failure
      Src: /src/botan/src/tests/unit_x509.cpp:620,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:620,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 600
    functionDepth: 1
    functionLinenumber: 600
    functionLinenumberEnd: 624
    functionName: Botan_Tests::test_x509_bmpstring
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::data_file
    - Test::Result::test_failure
    - get_first_attribute
    - Test::Result::test_eq
    - what
    - Botan::X509_Certificate::issuer_dn
    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:630,1
    - Dst: Botan::X509_Certificate::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:632,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:636,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:636,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:637,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:637,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:639,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:639,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 626
    functionDepth: 1
    functionLinenumber: 626
    functionLinenumberEnd: 643
    functionName: Botan_Tests::test_x509_teletex
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::data_file
    - Test::Result::test_failure
    - get_first_attribute
    - Test::Result::test_eq
    - what
    - Botan::X509_Certificate::issuer_dn
    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:649,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:651,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:651,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:652,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:652,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:655,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:657,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:659,1
    - Dst: auto::size
      Src: /src/botan/src/tests/unit_x509.cpp:659,1
    - Dst: Test::Result::tests_failed
      Src: /src/botan/src/tests/unit_x509.cpp:660,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:664,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:665,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:665,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:669,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:671,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:673,1
    - Dst: auto::size
      Src: /src/botan/src/tests/unit_x509.cpp:673,1
    - Dst: Test::Result::tests_failed
      Src: /src/botan/src/tests/unit_x509.cpp:674,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:678,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:680,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:684,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:684,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 687
    functionName: Botan_Tests::test_x509_authority_info_access_extension
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::data_file
    - Botan::X509_Certificate::ca_issuers
    - Test::Result::test_eq
    - Test::Result::tests_failed
    - Botan::X509_Certificate::ocsp_responder
    - auto::size
    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:695,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_x509.cpp:696,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:698,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:698,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 689
    functionDepth: 1
    functionLinenumber: 689
    functionLinenumberEnd: 702
    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_failure
    - Test::Result::test_success
    - what
    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:709,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:710,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:711,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/unit_x509.cpp:713,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/unit_x509.cpp:714,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:718,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:720,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:720,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:723,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:723,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 728
    functionName: Botan_Tests::test_verify_gost2012_cert
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Test::data_file
    - Botan::Path_Validation_Result::successful_validation
    - Test::Result::test_failure
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::confirm
    - what
    - Botan::x509_path_validate
    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:739,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:741,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/unit_x509.cpp:742,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/tests/unit_x509.cpp:746,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:748,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:749,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:750,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:754,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:755,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:756,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:757,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:762,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:764,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:765,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/unit_x509.cpp:766,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:768,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/unit_x509.cpp:768,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:769,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:774,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:775,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:778,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:779,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:783,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:784,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:785,1
    - Dst: Botan::PKCS10_Request::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:786,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:791,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:793,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:795,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:801,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:802,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:803,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:808,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:809,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:810,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:815,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:816,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:817,1
    - Dst: Botan::X509_CA::new_crl
      Src: /src/botan/src/tests/unit_x509.cpp:820,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:821,1
    - Dst: Botan::X509_CRL::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:821,1
    - Dst: Botan::X509_CA::ca_certificate
      Src: /src/botan/src/tests/unit_x509.cpp:824,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:827,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:828,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:828,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 736
    functionDepth: 1
    functionLinenumber: 736
    functionLinenumberEnd: 831
    functionName: Botan_Tests::test_padding_config
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Result::successful_validation
    - Test::Result::test_failure
    - Botan::X509_Cert_Options::set_padding_scheme
    - what
    - Botan_Tests::Test::data_file
    - Botan::X509_CA::ca_certificate
    - Botan_Tests::Test::new_rng
    - Botan::X509_Cert_Options::CA_key
    - Botan::X509_CA::new_crl
    - Botan::PKCS8::load_key
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - Botan::PKCS10_Request::signature_algorithm
    - Botan::X509::create_self_signed_cert
    - Test::Result::test_eq
    - Botan::X509_Certificate::signature_algorithm
    - Test::Result::confirm
    - auto::algo_name
    - Botan::X509_CRL::signature_algorithm
    - Botan::X509_CA::sign_request
    - Botan::X509::create_cert_req
    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:842,1
    - Dst: Botan::X509_Cert_Options::more_dns::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:845,1
    - Dst: Botan::X509_Cert_Options::more_dns::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:846,1
    - Dst: Botan::AlternativeName::AlternativeName
      Src: /src/botan/src/tests/unit_x509.cpp:850,1
    - Dst: Botan::AlternativeName::add_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:851,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:854,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:855,1
    - Dst: Botan::AlternativeName::add_dn
      Src: /src/botan/src/tests/unit_x509.cpp:856,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:858,1
    - Dst: std::make_unique<Botan::Cert_Extension::Subject_Alternative_Name>
      Src: /src/botan/src/tests/unit_x509.cpp:858,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:860,1
    - Dst: auto::subject_alt_name
      Src: /src/botan/src/tests/unit_x509.cpp:862,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:864,1
    - Dst: auto::size
      Src: /src/botan/src/tests/unit_x509.cpp:864,1
    - Dst: auto::size
      Src: /src/botan/src/tests/unit_x509.cpp:866,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:867,1
    - Dst: auto::at
      Src: /src/botan/src/tests/unit_x509.cpp:867,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:868,1
    - Dst: auto::at
      Src: /src/botan/src/tests/unit_x509.cpp:868,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:869,1
    - Dst: auto::at
      Src: /src/botan/src/tests/unit_x509.cpp:869,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:870,1
    - Dst: auto::at
      Src: /src/botan/src/tests/unit_x509.cpp:870,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:873,1
    - Dst: auto::subject_alt_name
      Src: /src/botan/src/tests/unit_x509.cpp:873,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:874,1
    - Dst: auto::subject_alt_name
      Src: /src/botan/src/tests/unit_x509.cpp:874,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: 877
      start: 836
    functionDepth: 1
    functionLinenumber: 836
    functionLinenumberEnd: 877
    functionName: Botan_Tests::test_pkcs10_ext
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - auto::at
    - auto::subject_alt_name
    - Botan::X509_Cert_Options::more_dns::push_back
    - Botan::AlternativeName::AlternativeName
    - std::make_unique<Botan::Cert_Extension::Subject_Alternative_Name>
    - Botan::X509_DN::add_attribute
    - Test::Result::test_eq
    - Botan::X509_Cert_Options::X509_Cert_Options
    - Botan::AlternativeName::add_dn
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::confirm
    - Botan::AlternativeName::add_attribute
    - auto::size
    - Botan::X509::create_cert_req
    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:887,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:887,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:890,1
    - Dst: auto::constraints
      Src: /src/botan/src/tests/unit_x509.cpp:890,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:891,1
    - Dst: auto::constraints
      Src: /src/botan/src/tests/unit_x509.cpp:891,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:895,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:898,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:898,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:900,1
    - Dst: Botan::PKCS10_Request::challenge_password
      Src: /src/botan/src/tests/unit_x509.cpp:900,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:903,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:905,1
    - Dst: Botan_Tests::req_opts2
      Src: /src/botan/src/tests/unit_x509.cpp:905,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:908,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:910,1
    - Dst: Botan_Tests::req_opts3
      Src: /src/botan/src/tests/unit_x509.cpp:910,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:919,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:919,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:919,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:921,1
    - Dst: Botan::X509_Certificate::serial_number
      Src: /src/botan/src/tests/unit_x509.cpp:921,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:922,1
    - Dst: Botan::X509_Certificate::serial_number
      Src: /src/botan/src/tests/unit_x509.cpp:922,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:924,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:924,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:924,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:925,1
    - Dst: Botan::X509_Certificate::has_ex_constraint
      Src: /src/botan/src/tests/unit_x509.cpp:925,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:927,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:927,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:927,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:931,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:931,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:934,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:935,1
    - Dst: Botan::X509_Certificate::constraints
      Src: /src/botan/src/tests/unit_x509.cpp:935,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:940,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:943,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:946,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:946,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:946,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:948,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:951,1
    - Dst: Botan::X509_Certificate::x509_version
      Src: /src/botan/src/tests/unit_x509.cpp:951,1
    - Dst: Botan::X509_Certificate::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:953,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:954,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:954,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:954,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:955,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:955,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:955,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:956,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:956,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:956,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:957,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:957,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:957,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:959,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:960,1
    - Dst: get_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:961,1
    - Dst: Botan_Tests::req_opts3
      Src: /src/botan/src/tests/unit_x509.cpp:962,1
    - Dst: size
      Src: /src/botan/src/tests/unit_x509.cpp:962,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:963,1
    - Dst: get_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:964,1
    - Dst: Botan_Tests::req_opts3
      Src: /src/botan/src/tests/unit_x509.cpp:964,1
    - Dst: at
      Src: /src/botan/src/tests/unit_x509.cpp:964,1
    - Dst: Botan::X509_Certificate::subject_alt_name
      Src: /src/botan/src/tests/unit_x509.cpp:966,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:967,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:967,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:968,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:968,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:969,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:969,1
    - Dst: Botan::X509_Certificate::subject_alt_name
      Src: /src/botan/src/tests/unit_x509.cpp:971,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:972,1
    - Dst: get_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:973,1
    - Dst: Botan_Tests::req_opts3
      Src: /src/botan/src/tests/unit_x509.cpp:973,1
    - Dst: size
      Src: /src/botan/src/tests/unit_x509.cpp:973,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:974,1
    - Dst: get_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:974,1
    - Dst: Botan_Tests::req_opts3
      Src: /src/botan/src/tests/unit_x509.cpp:974,1
    - Dst: at
      Src: /src/botan/src/tests/unit_x509.cpp:974,1
    - Dst: Botan::X509_CA::new_crl
      Src: /src/botan/src/tests/unit_x509.cpp:976,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/unit_x509.cpp:980,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:983,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:984,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:985,1
    - Dst: Botan::Path_Validation_Result::status_string
      Src: /src/botan/src/tests/unit_x509.cpp:986,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/unit_x509.cpp:988,1
    - Dst: Botan::X509_CA::ca_certificate
      Src: /src/botan/src/tests/unit_x509.cpp:988,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:990,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:991,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:991,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/unit_x509.cpp:992,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:992,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:995,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:996,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:996,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/unit_x509.cpp:997,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:997,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1000,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1001,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1002,1
    - Dst: Botan::Path_Validation_Result::status_string
      Src: /src/botan/src/tests/unit_x509.cpp:1003,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/unit_x509.cpp:1004,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1007,1
    - Dst: Botan::CRL_Entry
      Src: /src/botan/src/tests/unit_x509.cpp:1007,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1008,1
    - Dst: Botan::CRL_Entry
      Src: /src/botan/src/tests/unit_x509.cpp:1008,1
    - Dst: Botan::X509_CA::update_crl
      Src: /src/botan/src/tests/unit_x509.cpp:1010,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/unit_x509.cpp:1012,1
    - Dst: Botan::Path_Validation_Result::status_string
      Src: /src/botan/src/tests/unit_x509.cpp:1015,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1017,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1018,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1018,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1020,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1021,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1021,1
    - Dst: std::vector::clear
      Src: /src/botan/src/tests/unit_x509.cpp:1023,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1024,1
    - Dst: Botan::CRL_Entry
      Src: /src/botan/src/tests/unit_x509.cpp:1024,1
    - Dst: Botan::X509_CA::update_crl
      Src: /src/botan/src/tests/unit_x509.cpp:1025,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/unit_x509.cpp:1027,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1029,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1030,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:1030,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/unit_x509.cpp:1031,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1031,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1034,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1035,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1035,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: 1038
      start: 879
    functionDepth: 2
    functionLinenumber: 879
    functionLinenumberEnd: 1038
    functionName: Botan_Tests::test_x509_cert
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Certificate::subject_alt_name
    - Botan::X509_Certificate::constraints
    - Botan_Tests::make_a_private_key
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::req_opts3
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::X509_Certificate::issuer_dn
    - Botan::X509_Certificate::serial_number
    - Botan::X509_Certificate::has_ex_constraint
    - Botan::X509_CA::ca_certificate
    - Botan::PKCS10_Request::challenge_password
    - get_attribute
    - Botan::X509_Certificate::subject_dn
    - Botan::Path_Validation_Result::status_string
    - auto::constraints
    - std::vector::push_back
    - get_first_attribute
    - Botan::X509_CA::new_crl
    - std::vector::clear
    - Botan::X509_Certificate::x509_version
    - Botan::CRL_Entry
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - Botan_Tests::req_opts1
    - Botan_Tests::req_opts2
    - Test::Result::test_note
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::ca_opts
    - size
    - Botan::X509::create_self_signed_cert
    - Test::Result::test_eq
    - Botan::Path_Validation_Result::result_string
    - Botan::X509_CA::update_crl
    - Test::Result::confirm
    - Botan::Certificate_Store_In_Memory::add_crl
    - at
    - Botan::X509_CA::sign_request
    - Botan::X509::create_cert_req
    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:1050,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1050,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1055,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1060,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1063,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1063,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1063,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1066,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1068,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1068,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1070,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1070,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1073,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1073,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1075,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1077,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1080,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1080,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1080,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1083,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1084,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1085,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1085,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1086,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1088,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1088,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1089,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1089,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1091,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1093,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1096,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1096,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1096,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1099,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1099,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1100,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1100,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1101,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1101,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1105,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1107,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1110,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1110,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1110,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1112,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1112,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1113,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1113,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: 1117
      start: 1040
    functionDepth: 2
    functionLinenumber: 1040
    functionLinenumberEnd: 1117
    functionName: Botan_Tests::test_usage
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Key_Constraints
    - Botan_Tests::make_a_private_key
    - Botan_Tests::ca_opts
    - Botan::X509::create_self_signed_cert
    - Botan_Tests::from_date
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::X509_Certificate::allowed_usage
    - Botan::X509_CA::sign_request
    - Botan::X509::create_cert_req
    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:1130,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1130,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1135,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1139,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:1141,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1143,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1146,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1146,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1146,1
    - Dst: Botan::X509_CA::ca_certificate
      Src: /src/botan/src/tests/unit_x509.cpp:1149,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1154,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1156,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:1156,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: 1159
      start: 1119
    functionDepth: 2
    functionLinenumber: 1119
    functionLinenumberEnd: 1159
    functionName: Botan_Tests::test_self_issued
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::make_a_private_key
    - Botan_Tests::ca_opts
    - Botan::X509_CA::ca_certificate
    - Botan::Path_Validation_Result::successful_validation
    - Botan::X509::create_self_signed_cert
    - Botan_Tests::from_date
    - Botan::X509_Cert_Options::set_padding_scheme
    - Test::Result::confirm
    - Botan::x509_path_validate
    - Botan::X509_CA::sign_request
    - Botan::X509::create_cert_req
    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:1164,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:1165,1
    - Dst: Botan::X509_Certificate::x509_version
      Src: /src/botan/src/tests/unit_x509.cpp:1166,1
    - Dst: Botan::X509_CRL::X509_CRL
      Src: /src/botan/src/tests/unit_x509.cpp:1169,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:1170,1
    - Dst: Botan::X509_CRL::crl_number
      Src: /src/botan/src/tests/unit_x509.cpp:1171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1161
    functionDepth: 1
    functionLinenumber: 1161
    functionLinenumberEnd: 1174
    functionName: Botan_Tests::test_x509_uninit
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::X509_Certificate::X509_Certificate
    - Botan::X509_CRL::crl_number
    - Botan::X509_CRL::X509_CRL
    - Botan::X509_Certificate::x509_version
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_uninit()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1181,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1181,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1186,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1191,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1192,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1193,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1194,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1195,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1196,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1198,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1200,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1201,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1203,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1207,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1207,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1208,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1208,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1209,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1209,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1210,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1210,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1211,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1211,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1212,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1212,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1213,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1213,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1214,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1214,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1215,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1215,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1216,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1216,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1217,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1217,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1220,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1220,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1221,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1221,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1222,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1222,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1223,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1223,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1224,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1224,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1225,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1225,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1226,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1226,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1227,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1227,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1228,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1228,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1231,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1231,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1233,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1233,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1234,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1234,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1235,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1235,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1236,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1236,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1237,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1237,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1238,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1238,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1239,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1239,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1240,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1240,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1241,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1241,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1242,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1242,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1245,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1245,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1246,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1246,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1247,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1247,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1248,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1248,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1249,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1249,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1250,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1250,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1251,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1251,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1252,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1252,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1253,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1253,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1258,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1258,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1260,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1260,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1261,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1261,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1262,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1262,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1263,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1263,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1264,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1264,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1265,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1265,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1266,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1266,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1267,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1267,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1268,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1268,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1269,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1269,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 64
    argCount: 2
    argNames:
    - ' key'
    - ' pk_algo'
    argTypes:
    - Botan::Private_Key
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1176
    functionDepth: 0
    functionLinenumber: 1176
    functionLinenumberEnd: 1273
    functionName: Botan_Tests::test_valid_constraints
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_eq
    - auto::compatible_with
    - Test::Result::confirm
    - Key_Constraints
    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: 1280
      start: 1280
    functionDepth: 0
    functionLinenumber: 1280
    functionLinenumberEnd: 1280
    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: 1282
      start: 1282
    functionDepth: 0
    functionLinenumber: 1282
    functionLinenumberEnd: 1282
    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: 1284
      start: 1284
    functionDepth: 0
    functionLinenumber: 1284
    functionLinenumberEnd: 1284
    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:1287,1
    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_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:1290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1290
      start: 1290
    functionDepth: 1
    functionLinenumber: 1290
    functionLinenumberEnd: 1290
    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: 1292
      start: 1292
    functionDepth: 0
    functionLinenumber: 1292
    functionLinenumberEnd: 1292
    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: 1294
      start: 1294
    functionDepth: 0
    functionLinenumber: 1294
    functionLinenumberEnd: 1294
    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:1298,1
    - Dst: Botan::ASN1_String::ASN1_String
      Src: /src/botan/src/tests/unit_x509.cpp:1298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1296
    functionDepth: 1
    functionLinenumber: 1296
    functionLinenumberEnd: 1300
    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:1303,1
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/tests/unit_x509.cpp:1304,1
    - Dst: Botan::ASN1_String::value
      Src: /src/botan/src/tests/unit_x509.cpp:1305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1302
    functionDepth: 1
    functionLinenumber: 1302
    functionLinenumberEnd: 1306
    functionName: Botan_Tests::String_Extension::decode_inner
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::ASN1_String::ASN1_String
    - Botan::BER_Decoder
    - Botan::ASN1_String::value
    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:1320,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1320,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1325,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/unit_x509.cpp:1329,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/unit_x509.cpp:1330,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1334,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1335,1
    - Dst: Botan::PKCS10_Request::create
      Src: /src/botan/src/tests/unit_x509.cpp:1340,1
    - Dst: Botan::PKCS10_Request::subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:1342,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1344,1
    - Dst: dn_info
      Src: /src/botan/src/tests/unit_x509.cpp:1344,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1346,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1347,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1348,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1349,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1350,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1350,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1350,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1351,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1351,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1351,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1356,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:1358,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1360,1
    - Dst: dn_info
      Src: /src/botan/src/tests/unit_x509.cpp:1360,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1362,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1363,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1364,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1365,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1366,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1366,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1366,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1367,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1367,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1367,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: 1370
      start: 1312
    functionDepth: 2
    functionLinenumber: 1312
    functionLinenumberEnd: 1370
    functionName: Botan_Tests::test_custom_dn_attr
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::PKCS10_Request::subject_dn
    - Botan_Tests::make_a_private_key
    - Botan_Tests::ca_opts
    - Botan::PKCS10_Request::create
    - get_first_attribute
    - Botan::ASN1_String::tagging
    - Botan::X509_DN::add_attribute
    - Test::Result::test_eq
    - Test::Result::confirm
    - dn_info
    - Botan::EC_Group::from_OID
    - auto::subject_dn
    - Botan::X509_CA::sign_request
    - Botan::X509::create_self_signed_cert
    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:1382,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1382,1
    - Dst: Botan::AlternativeName::AlternativeName
      Src: /src/botan/src/tests/unit_x509.cpp:1395,1
    - Dst: Botan::AlternativeName::add_uri
      Src: /src/botan/src/tests/unit_x509.cpp:1396,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/unit_x509.cpp:1399,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1402,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/tests/unit_x509.cpp:1410,1
    - Dst: Botan::Extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:1411,1
    - Dst: std::make_unique<String_Extension>
      Src: /src/botan/src/tests/unit_x509.cpp:1411,1
    - Dst: Botan::Extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:1412,1
    - Dst: std::make_unique<Botan::Cert_Extension::CRL_Distribution_Points>
      Src: /src/botan/src/tests/unit_x509.cpp:1412,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:1414,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1417,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1419,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1420,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1423,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1424,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1425,1
    - Dst: dynamic_cast<Botan::Cert_Extension::Key_Usage&>
      Src: /src/botan/src/tests/unit_x509.cpp:1427,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1431,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1432,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1433,1
    - Dst: auto::value
      Src: /src/botan/src/tests/unit_x509.cpp:1434,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1439,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1441,1
    - Dst: auto*::crl_distribution_urls
      Src: /src/botan/src/tests/unit_x509.cpp:1442,1
    - Dst: auto*::distribution_points
      Src: /src/botan/src/tests/unit_x509.cpp:1443,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1444,1
    - Dst: Botan::TLS::Session_Manager::find
      Src: /src/botan/src/tests/unit_x509.cpp:1445,1
    - Dst: point
      Src: /src/botan/src/tests/unit_x509.cpp:1445,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/unit_x509.cpp:1445,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1449,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1453,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1453,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1453,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1456,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1456,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1458,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1459,1
    - Dst: dynamic_cast<Botan::Cert_Extension::Key_Usage&>
      Src: /src/botan/src/tests/unit_x509.cpp:1460,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1461,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1466,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1467,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1468,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1469,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1470,1
    - Dst: auto::value
      Src: /src/botan/src/tests/unit_x509.cpp:1471,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1475,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1477,1
    - Dst: auto*::crl_distribution_urls
      Src: /src/botan/src/tests/unit_x509.cpp:1478,1
    - Dst: auto*::distribution_points
      Src: /src/botan/src/tests/unit_x509.cpp:1479,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1480,1
    - Dst: Botan::TLS::Session_Manager::find
      Src: /src/botan/src/tests/unit_x509.cpp:1481,1
    - Dst: point
      Src: /src/botan/src/tests/unit_x509.cpp:1481,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/unit_x509.cpp:1481,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: 1486
      start: 1372
    functionDepth: 2
    functionLinenumber: 1372
    functionLinenumberEnd: 1486
    functionName: Botan_Tests::test_x509_extensions
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<Botan::Cert_Extension::Key_Usage&>
    - point
    - Botan_Tests::make_a_private_key
    - Botan::AlternativeName::AlternativeName
    - std::vector::end
    - Botan::X509_Cert_Options::set_padding_scheme
    - std::make_unique<Botan::Cert_Extension::CRL_Distribution_Points>
    - auto*::distribution_points
    - Botan::Extensions::add
    - std::vector::emplace_back
    - std::make_unique<String_Extension>
    - auto*::crl_distribution_urls
    - Botan::OID::from_string
    - Botan::X509::create_cert_req
    - auto::value
    - Botan::TLS::Session_Manager::find
    - Botan::X509_Certificate::v3_extensions
    - Botan_Tests::from_date
    - Botan_Tests::ca_opts
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::AlternativeName::add_uri
    - Botan::X509_CA::sign_request
    - Botan::X509::create_self_signed_cert
    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:1520,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1522,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1524,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_x509.cpp:1524,1
    - Dst: Botan::X509_Certificate::raw_issuer_dn_sha256
      Src: /src/botan/src/tests/unit_x509.cpp:1524,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1525,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_x509.cpp:1525,1
    - Dst: Botan::X509_Certificate::raw_subject_dn_sha256
      Src: /src/botan/src/tests/unit_x509.cpp:1525,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1529,1
    - Dst: Botan::X509_Cert_Options::X509_Cert_Options
      Src: /src/botan/src/tests/unit_x509.cpp:1529,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1531,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1531,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1531,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1533,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_x509.cpp:1533,1
    - Dst: Botan::X509_Certificate::raw_issuer_dn_sha256
      Src: /src/botan/src/tests/unit_x509.cpp:1533,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1534,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_x509.cpp:1534,1
    - Dst: Botan::X509_Certificate::raw_subject_dn_sha256
      Src: /src/botan/src/tests/unit_x509.cpp:1534,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: 1537
      start: 1488
    functionDepth: 1
    functionLinenumber: 1488
    functionLinenumberEnd: 1537
    functionName: Botan_Tests::test_hashes
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Cert_Options::CA_key
    - Botan::X509_Certificate::raw_issuer_dn_sha256
    - Botan::hex_encode
    - Test::Result::test_eq
    - Botan::X509::create_cert_req
    - Botan::X509_Cert_Options::X509_Cert_Options
    - Botan_Tests::from_date
    - Botan::X509_Certificate::raw_subject_dn_sha256
    - Botan::X509_CA::sign_request
    - Botan::X509::create_self_signed_cert
    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:1559,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:1561,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1565,1
    - Dst: auto*::entries
      Src: /src/botan/src/tests/unit_x509.cpp:1567,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1569,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:1571,1
    - Dst: telephone_number_range
      Src: /src/botan/src/tests/unit_x509.cpp:1572,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:1573,1
    - Dst: telephone_number
      Src: /src/botan/src/tests/unit_x509.cpp:1574,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:1575,1
    - Dst: service_provider_code
      Src: /src/botan/src/tests/unit_x509.cpp:1576,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1578,1
    - Dst: type
      Src: /src/botan/src/tests/unit_x509.cpp:1578,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1579,1
    - Dst: service_provider_code
      Src: /src/botan/src/tests/unit_x509.cpp:1579,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1581,1
    - Dst: type
      Src: /src/botan/src/tests/unit_x509.cpp:1581,1
    - Dst: telephone_number_range
      Src: /src/botan/src/tests/unit_x509.cpp:1582,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1583,1
    - Dst: size
      Src: /src/botan/src/tests/unit_x509.cpp:1583,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1584,1
    - Dst: start::value
      Src: /src/botan/src/tests/unit_x509.cpp:1584,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1585,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1586,1
    - Dst: start::value
      Src: /src/botan/src/tests/unit_x509.cpp:1586,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1587,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1589,1
    - Dst: type
      Src: /src/botan/src/tests/unit_x509.cpp:1589,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1590,1
    - Dst: telephone_number
      Src: /src/botan/src/tests/unit_x509.cpp:1590,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/unit_x509.cpp:1592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1594
      start: 1541
    functionDepth: 1
    functionLinenumber: 1541
    functionLinenumberEnd: 1594
    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_throws
    - service_provider_code
    - Test::Result::end_timer
    - Botan_Tests::Test::data_file
    - size
    - auto*::entries
    - telephone_number
    - telephone_number_range
    - Test::Result::test_eq
    - Test::Result::confirm
    - type
    - start::value
    - Botan::X509_Certificate::v3_extensions
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_tn_auth_list_extension_decode()
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 2
    argNames:
    - ' sig_algo'
    - ' hash'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1613
      start: 1598
    functionDepth: 0
    functionLinenumber: 1598
    functionLinenumberEnd: 1613
    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:1620,1
    - Dst: make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1653,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1659,1
    - Dst: test_hashes
      Src: /src/botan/src/tests/unit_x509.cpp:1659,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1660,1
    - Dst: test_valid_constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1660,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1664,1
    - Dst: test_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1664,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1666,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1666,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1668,1
    - Dst: get_sig_paddings
      Src: /src/botan/src/tests/unit_x509.cpp:1670,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1674,1
    - Dst: test_x509_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1674,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1676,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1676,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1678,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1682,1
    - Dst: test_pkcs10_ext
      Src: /src/botan/src/tests/unit_x509.cpp:1682,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1684,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1684,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1686,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1690,1
    - Dst: test_self_issued
      Src: /src/botan/src/tests/unit_x509.cpp:1690,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1692,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1692,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1694,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1698,1
    - Dst: test_x509_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1698,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1700,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1700,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1702,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1706,1
    - Dst: test_custom_dn_attr
      Src: /src/botan/src/tests/unit_x509.cpp:1706,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1708,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1708,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1710,1
    - Dst: make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1721,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1724,1
    - Dst: test_valid_constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1724,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1732,1
    - Dst: test_padding_config
      Src: /src/botan/src/tests/unit_x509.cpp:1732,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1734,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1734,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1736,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1740,1
    - Dst: test_x509_utf8
      Src: /src/botan/src/tests/unit_x509.cpp:1740,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1741,1
    - Dst: test_x509_bmpstring
      Src: /src/botan/src/tests/unit_x509.cpp:1741,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1742,1
    - Dst: test_x509_teletex
      Src: /src/botan/src/tests/unit_x509.cpp:1742,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1743,1
    - Dst: test_crl_dn_name
      Src: /src/botan/src/tests/unit_x509.cpp:1743,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1744,1
    - Dst: test_rdn_multielement_set_name
      Src: /src/botan/src/tests/unit_x509.cpp:1744,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1745,1
    - Dst: test_x509_decode_list
      Src: /src/botan/src/tests/unit_x509.cpp:1745,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1746,1
    - Dst: test_rsa_oaep
      Src: /src/botan/src/tests/unit_x509.cpp:1746,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1747,1
    - Dst: test_x509_authority_info_access_extension
      Src: /src/botan/src/tests/unit_x509.cpp:1747,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1748,1
    - Dst: test_verify_gost2012_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1748,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1749,1
    - Dst: test_parse_rsa_pss_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1749,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1750,1
    - Dst: test_x509_tn_auth_list_extension_decode
      Src: /src/botan/src/tests/unit_x509.cpp:1750,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1753,1
    - Dst: test_x509_encode_authority_info_access_extension
      Src: /src/botan/src/tests/unit_x509.cpp:1753,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1754,1
    - Dst: test_x509_extension
      Src: /src/botan/src/tests/unit_x509.cpp:1754,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1755,1
    - Dst: test_x509_dates
      Src: /src/botan/src/tests/unit_x509.cpp:1755,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1756,1
    - Dst: test_cert_status_strings
      Src: /src/botan/src/tests/unit_x509.cpp:1756,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1757,1
    - Dst: test_x509_uninit
      Src: /src/botan/src/tests/unit_x509.cpp:1757,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 82
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1760
      start: 1617
    functionDepth: 0
    functionLinenumber: 1617
    functionLinenumberEnd: 1760
    functionName: Botan_Tests::X509_Cert_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_failure
    - test_verify_gost2012_cert
    - test_x509_utf8
    - test_x509_teletex
    - test_usage
    - what
    - test_x509_extensions
    - get_sig_paddings
    - test_padding_config
    - test_custom_dn_attr
    - test_rdn_multielement_set_name
    - test_x509_cert
    - test_parse_rsa_pss_cert
    - test_x509_tn_auth_list_extension_decode
    - test_self_issued
    - test_pkcs10_ext
    - test_rsa_oaep
    - test_hashes
    - test_x509_bmpstring
    - test_x509_authority_info_access_extension
    - std::vector::push_back
    - test_cert_status_strings
    - test_x509_uninit
    - Botan_Tests::X509_Cert_Unit_Tests::rng
    - test_valid_constraints
    - test_x509_extension
    - test_x509_dates
    - make_a_private_key
    - test_crl_dn_name
    - test_x509_encode_authority_info_access_extension
    - test_x509_decode_list
    - Test::Result::merge
    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:34,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/unit_x509.cpp:34,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/unit_x509.cpp:36,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/unit_x509.cpp:37,1
    - Dst: Botan::calendar_point::to_std_timepoint
      Src: /src/botan/src/tests/unit_x509.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - y
    - m
    - d
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: Botan_Tests::from_date
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 21
    functionsReached:
    - static_cast<uint32_t>
    - Botan::calendar_point::to_std_timepoint
    - Botan::X509_Time
    - Botan::TLS::detail::AsyncBase::complete_now
    - Botan::calendar_point
    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:47,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/tests/unit_x509.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 52
    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:60,1
    - Dst: Botan::X509_Cert_Options::not_before
      Src: /src/botan/src/tests/unit_x509.cpp:62,1
    - Dst: Botan::X509_Cert_Options::not_after
      Src: /src/botan/src/tests/unit_x509.cpp:63,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 74
    functionName: Botan_Tests::req_opts1
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 6
    functionsReached:
    - Botan::X509_Cert_Options::not_after
    - Botan::X509_Cert_Options::set_padding_scheme
    - Botan::X509_Cert_Options::not_before
    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:82,1
    - Dst: Botan::X509_Cert_Options::add_ex_constraint
      Src: /src/botan/src/tests/unit_x509.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 87
    functionName: Botan_Tests::req_opts2
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 3
    functionsReached:
    - Botan::X509_Cert_Options::set_padding_scheme
    - Botan::X509_Cert_Options::add_ex_constraint
    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:95,1
    - Dst: Botan::X509_Cert_Options::more_org_units::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:97,1
    - Dst: Botan::X509_Cert_Options::more_org_units::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:98,1
    - Dst: Botan::X509_Cert_Options::more_dns::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 102
    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::set_padding_scheme
    - Botan::X509_Cert_Options::more_org_units::push_back
    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:112,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:131,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - ' algo'
    - ' rng'
    argTypes:
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 135
    functionName: Botan_Tests::make_a_private_key
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 18
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - Botan::create_private_key
    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_eq
      Src: /src/botan/src/tests/unit_x509.cpp:142,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/unit_x509.cpp:143,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/unit_x509.cpp:144,1
    - Dst: Botan::to_string
      Src: /src/botan/src/tests/unit_x509.cpp:198,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:199,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/unit_x509.cpp:199,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:200,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/unit_x509.cpp:200,1
    - Dst: std::set::insert
      Src: /src/botan/src/tests/unit_x509.cpp:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 205
    functionName: Botan_Tests::test_cert_status_strings
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - std::string::size
    - std::set::count
    - Test::Result::test_eq
    - Botan::to_string
    - Test::Result::confirm
    - std::set::insert
    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:212,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/tests/unit_x509.cpp:213,1
    - Dst: Botan::Extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:215,1
    - Dst: std::make_unique<Botan::Cert_Extension::Basic_Constraints>
      Src: /src/botan/src/tests/unit_x509.cpp:215,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:217,1
    - Dst: Botan::Extensions::extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:217,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:218,1
    - Dst: Botan::Extensions::critical_extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:218,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:219,1
    - Dst: Botan::Extensions::extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:219,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:220,1
    - Dst: Botan::Extensions::critical_extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:220,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:222,1
    - Dst: Botan::Extensions::get_extension_bits
      Src: /src/botan/src/tests/unit_x509.cpp:222,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:224,1
    - Dst: Botan::Extensions::get_extension_bits
      Src: /src/botan/src/tests/unit_x509.cpp:224,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:226,1
    - Dst: Botan::Extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:227,1
    - Dst: std::make_unique<Botan::Cert_Extension::Basic_Constraints>
      Src: /src/botan/src/tests/unit_x509.cpp:227,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:229,1
    - Dst: Botan::Extensions::get_extension_bits
      Src: /src/botan/src/tests/unit_x509.cpp:229,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:231,1
    - Dst: Botan::Extensions::add_new
      Src: /src/botan/src/tests/unit_x509.cpp:232,1
    - Dst: std::make_unique<Botan::Cert_Extension::Basic_Constraints>
      Src: /src/botan/src/tests/unit_x509.cpp:232,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:234,1
    - Dst: Botan::Extensions::critical_extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:234,1
    - Dst: Botan::Extensions::replace
      Src: /src/botan/src/tests/unit_x509.cpp:236,1
    - Dst: std::make_unique<Botan::Cert_Extension::Basic_Constraints>
      Src: /src/botan/src/tests/unit_x509.cpp:236,1
    - Dst: Test::Result::confirm
      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: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:238,1
    - Dst: Botan::Extensions::get_extension_bits
      Src: /src/botan/src/tests/unit_x509.cpp:238,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:240,1
    - Dst: Botan::Extensions::remove
      Src: /src/botan/src/tests/unit_x509.cpp:240,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:241,1
    - Dst: Botan::Extensions::remove
      Src: /src/botan/src/tests/unit_x509.cpp:241,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:242,1
    - Dst: Botan::Extensions::extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:242,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:243,1
    - Dst: Botan::Extensions::critical_extension_set
      Src: /src/botan/src/tests/unit_x509.cpp:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 246
    functionName: Botan_Tests::test_x509_extension
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::Extensions::get_extension_bits
    - Test::Result::test_throws
    - Botan::Extensions::remove
    - Botan::Extensions::add_new
    - Botan::Extensions::extension_set
    - Botan::Extensions::replace
    - Botan::Extensions::critical_extension_set
    - Test::Result::test_eq
    - Botan::Extensions::add
    - Test::Result::confirm
    - Botan::OID::from_string
    - std::make_unique<Botan::Cert_Extension::Basic_Constraints>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_extension()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:252,1
    - Dst: Botan::X509_Time::time_is_set
      Src: /src/botan/src/tests/unit_x509.cpp:252,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/unit_x509.cpp:253,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:254,1
    - Dst: Botan::X509_Time::time_is_set
      Src: /src/botan/src/tests/unit_x509.cpp:254,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:255,1
    - Dst: Botan::X509_Time::readable_string
      Src: /src/botan/src/tests/unit_x509.cpp:255,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/unit_x509.cpp:257,1
    - Dst: Test::Result::test_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_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:262,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/unit_x509.cpp:264,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:265,1
    - Dst: Botan::X509_Time::readable_string
      Src: /src/botan/src/tests/unit_x509.cpp:266,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/unit_x509.cpp:269,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:270,1
    - Dst: Botan::X509_Time::readable_string
      Src: /src/botan/src/tests/unit_x509.cpp:270,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:401,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:413,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:417,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 421
    functionName: Botan_Tests::test_x509_dates
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::X509_Time
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::X509_Time::readable_string
    - 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:427,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:442,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/unit_x509.cpp:443,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:444,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:444,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:448,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:450,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:451,1
    - Dst: std::make_unique<Botan::Cert_Extension::Authority_Information_Access>
      Src: /src/botan/src/tests/unit_x509.cpp:451,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:453,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:455,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:455,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:455,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:457,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:457,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:461,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:462,1
    - Dst: Botan::TLS::Session_Manager::find
      Src: /src/botan/src/tests/unit_x509.cpp:463,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/unit_x509.cpp:463,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:466,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:466,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:469,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:470,1
    - Dst: std::make_unique<Botan::Cert_Extension::Authority_Information_Access>
      Src: /src/botan/src/tests/unit_x509.cpp:470,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:472,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:474,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:474,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:474,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:476,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:476,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:477,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:477,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:478,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:478,1
    - Dst: std::string
      Src: /src/botan/src/tests/unit_x509.cpp:478,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:481,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:482,1
    - Dst: std::make_unique<Botan::Cert_Extension::Authority_Information_Access>
      Src: /src/botan/src/tests/unit_x509.cpp:482,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:484,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:486,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:486,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:486,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:488,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:488,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:489,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:489,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 423
    functionDepth: 2
    functionLinenumber: 423
    functionLinenumberEnd: 493
    functionName: Botan_Tests::test_x509_encode_authority_info_access_extension
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::req_opts1
    - Botan_Tests::make_a_private_key
    - Botan_Tests::ca_opts
    - Botan::X509_Certificate::ca_issuers
    - std::string
    - std::vector::end
    - Botan::X509::create_cert_req
    - Botan_Tests::from_date
    - Botan::X509_Cert_Options::extensions::add
    - std::make_unique<Botan::Cert_Extension::Authority_Information_Access>
    - Test::Result::test_eq
    - Test::Result::confirm
    - Test::Result::require
    - Botan_Tests::Test::new_rng
    - Botan::X509_Certificate::ocsp_responder
    - Botan::TLS::Session_Manager::find
    - Botan::X509_CA::sign_request
    - Botan::X509::create_self_signed_cert
    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:503,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:507,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:509,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/unit_x509.cpp:510,1
    - Dst: Botan::X509_CA::new_crl
      Src: /src/botan/src/tests/unit_x509.cpp:513,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:515,1
    - Dst: Botan::X509_CRL::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:515,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:515,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:517,1
    - Dst: Botan::X509_CRL::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 521
    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_CA::new_crl
    - Botan::PKCS8::load_key
    - Test::Result::confirm
    - Botan::X509_Certificate::subject_dn
    - Botan_Tests::Test::new_rng
    - Botan::X509_CRL::issuer_dn
    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:528,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:530,1
    - Dst: Botan::X509_Certificate::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:530,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:531,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 534
    functionName: Botan_Tests::test_rdn_multielement_set_name
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Certificate::issuer_dn
    - Botan_Tests::Test::data_file
    - Test::Result::confirm
    - Botan::X509_Certificate::subject_dn
    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:540,1
    - Dst: Botan::X509_Certificate::subject_public_key
      Src: /src/botan/src/tests/unit_x509.cpp:542,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/unit_x509.cpp:543,1
    - Dst: auto::get
      Src: /src/botan/src/tests/unit_x509.cpp:543,1
    - Dst: Botan::X509_Certificate::subject_public_key_algo
      Src: /src/botan/src/tests/unit_x509.cpp:544,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:546,1
    - Dst: oid
      Src: /src/botan/src/tests/unit_x509.cpp:546,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/tests/unit_x509.cpp:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 550
    functionName: Botan_Tests::test_rsa_oaep
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Certificate::subject_public_key_algo
    - Botan_Tests::Test::data_file
    - Botan::X509_Certificate::subject_public_key
    - auto::get
    - Test::Result::test_not_null
    - Test::Result::test_eq
    - Botan::OID::from_string
    - oid
    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:555,1
    - Dst: Botan::BER_Decoder::decode_list
      Src: /src/botan/src/tests/unit_x509.cpp:559,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:561,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_x509.cpp:561,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:563,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:563,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:564,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 567
    functionName: Botan_Tests::test_x509_decode_list
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::data_file
    - Botan::BER_Decoder::decode_list
    - Test::Result::test_eq
    - std::vector::size
    - subject_dn
    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:573,1
    - Dst: Botan::X509_Certificate::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:587,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:589,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:589,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:590,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:590,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:591,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:591,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:592,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:592,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:594,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:594,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 569
    functionDepth: 1
    functionLinenumber: 569
    functionLinenumberEnd: 598
    functionName: Botan_Tests::test_x509_utf8
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::data_file
    - Test::Result::test_failure
    - get_first_attribute
    - Test::Result::test_eq
    - what
    - Botan::X509_Certificate::issuer_dn
    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:604,1
    - Dst: Botan::X509_Certificate::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:614,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:616,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:616,1
    - Dst: Test::Result::test_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_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_failure
      Src: /src/botan/src/tests/unit_x509.cpp:620,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:620,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 600
    functionDepth: 1
    functionLinenumber: 600
    functionLinenumberEnd: 624
    functionName: Botan_Tests::test_x509_bmpstring
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::data_file
    - Test::Result::test_failure
    - get_first_attribute
    - Test::Result::test_eq
    - what
    - Botan::X509_Certificate::issuer_dn
    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:630,1
    - Dst: Botan::X509_Certificate::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:632,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:636,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:636,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:637,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:637,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:639,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:639,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 626
    functionDepth: 1
    functionLinenumber: 626
    functionLinenumberEnd: 643
    functionName: Botan_Tests::test_x509_teletex
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::data_file
    - Test::Result::test_failure
    - get_first_attribute
    - Test::Result::test_eq
    - what
    - Botan::X509_Certificate::issuer_dn
    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:649,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:651,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:651,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:652,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:652,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:655,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:657,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:659,1
    - Dst: auto::size
      Src: /src/botan/src/tests/unit_x509.cpp:659,1
    - Dst: Test::Result::tests_failed
      Src: /src/botan/src/tests/unit_x509.cpp:660,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:664,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:665,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:665,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:669,1
    - Dst: Botan::X509_Certificate::ca_issuers
      Src: /src/botan/src/tests/unit_x509.cpp:671,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:673,1
    - Dst: auto::size
      Src: /src/botan/src/tests/unit_x509.cpp:673,1
    - Dst: Test::Result::tests_failed
      Src: /src/botan/src/tests/unit_x509.cpp:674,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:678,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:680,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:684,1
    - Dst: Botan::X509_Certificate::ocsp_responder
      Src: /src/botan/src/tests/unit_x509.cpp:684,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 645
    functionDepth: 1
    functionLinenumber: 645
    functionLinenumberEnd: 687
    functionName: Botan_Tests::test_x509_authority_info_access_extension
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::data_file
    - Botan::X509_Certificate::ca_issuers
    - Test::Result::test_eq
    - Test::Result::tests_failed
    - Botan::X509_Certificate::ocsp_responder
    - auto::size
    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:695,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_x509.cpp:696,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:698,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:698,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 689
    functionDepth: 1
    functionLinenumber: 689
    functionLinenumberEnd: 702
    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_failure
    - Test::Result::test_success
    - what
    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:709,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:710,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:711,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/unit_x509.cpp:713,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/unit_x509.cpp:714,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:718,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:720,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:720,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:723,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:723,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 728
    functionName: Botan_Tests::test_verify_gost2012_cert
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::Test::data_file
    - Botan::Path_Validation_Result::successful_validation
    - Test::Result::test_failure
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::confirm
    - what
    - Botan::x509_path_validate
    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:739,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:741,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/unit_x509.cpp:742,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/tests/unit_x509.cpp:746,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:748,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:749,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:750,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:754,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:755,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:756,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:757,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:762,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:764,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:765,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/unit_x509.cpp:766,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:768,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/unit_x509.cpp:768,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:769,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:774,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:775,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:778,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:779,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:783,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:784,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:785,1
    - Dst: Botan::PKCS10_Request::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:786,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:791,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:793,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:795,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:801,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:802,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:803,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:808,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:809,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:810,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:815,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:816,1
    - Dst: Botan::X509_Certificate::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:817,1
    - Dst: Botan::X509_CA::new_crl
      Src: /src/botan/src/tests/unit_x509.cpp:820,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:821,1
    - Dst: Botan::X509_CRL::signature_algorithm
      Src: /src/botan/src/tests/unit_x509.cpp:821,1
    - Dst: Botan::X509_CA::ca_certificate
      Src: /src/botan/src/tests/unit_x509.cpp:824,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:827,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:828,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:828,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 736
    functionDepth: 1
    functionLinenumber: 736
    functionLinenumberEnd: 831
    functionName: Botan_Tests::test_padding_config
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Result::successful_validation
    - Test::Result::test_failure
    - Botan::X509_Cert_Options::set_padding_scheme
    - what
    - Botan_Tests::Test::data_file
    - Botan::X509_CA::ca_certificate
    - Botan_Tests::Test::new_rng
    - Botan::X509_Cert_Options::CA_key
    - Botan::X509_CA::new_crl
    - Botan::PKCS8::load_key
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - Botan::PKCS10_Request::signature_algorithm
    - Botan::X509::create_self_signed_cert
    - Test::Result::test_eq
    - Botan::X509_Certificate::signature_algorithm
    - Test::Result::confirm
    - auto::algo_name
    - Botan::X509_CRL::signature_algorithm
    - Botan::X509_CA::sign_request
    - Botan::X509::create_cert_req
    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:842,1
    - Dst: Botan::X509_Cert_Options::more_dns::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:845,1
    - Dst: Botan::X509_Cert_Options::more_dns::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:846,1
    - Dst: Botan::AlternativeName::AlternativeName
      Src: /src/botan/src/tests/unit_x509.cpp:850,1
    - Dst: Botan::AlternativeName::add_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:851,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:854,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:855,1
    - Dst: Botan::AlternativeName::add_dn
      Src: /src/botan/src/tests/unit_x509.cpp:856,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:858,1
    - Dst: std::make_unique<Botan::Cert_Extension::Subject_Alternative_Name>
      Src: /src/botan/src/tests/unit_x509.cpp:858,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:860,1
    - Dst: auto::subject_alt_name
      Src: /src/botan/src/tests/unit_x509.cpp:862,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:864,1
    - Dst: auto::size
      Src: /src/botan/src/tests/unit_x509.cpp:864,1
    - Dst: auto::size
      Src: /src/botan/src/tests/unit_x509.cpp:866,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:867,1
    - Dst: auto::at
      Src: /src/botan/src/tests/unit_x509.cpp:867,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:868,1
    - Dst: auto::at
      Src: /src/botan/src/tests/unit_x509.cpp:868,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:869,1
    - Dst: auto::at
      Src: /src/botan/src/tests/unit_x509.cpp:869,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:870,1
    - Dst: auto::at
      Src: /src/botan/src/tests/unit_x509.cpp:870,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:873,1
    - Dst: auto::subject_alt_name
      Src: /src/botan/src/tests/unit_x509.cpp:873,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:874,1
    - Dst: auto::subject_alt_name
      Src: /src/botan/src/tests/unit_x509.cpp:874,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: 877
      start: 836
    functionDepth: 1
    functionLinenumber: 836
    functionLinenumberEnd: 877
    functionName: Botan_Tests::test_pkcs10_ext
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - auto::at
    - auto::subject_alt_name
    - Botan::X509_Cert_Options::more_dns::push_back
    - Botan::AlternativeName::AlternativeName
    - std::make_unique<Botan::Cert_Extension::Subject_Alternative_Name>
    - Botan::X509_DN::add_attribute
    - Test::Result::test_eq
    - Botan::X509_Cert_Options::X509_Cert_Options
    - Botan::AlternativeName::add_dn
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::confirm
    - Botan::AlternativeName::add_attribute
    - auto::size
    - Botan::X509::create_cert_req
    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:887,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:887,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:890,1
    - Dst: auto::constraints
      Src: /src/botan/src/tests/unit_x509.cpp:890,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:891,1
    - Dst: auto::constraints
      Src: /src/botan/src/tests/unit_x509.cpp:891,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:895,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:898,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:898,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:900,1
    - Dst: Botan::PKCS10_Request::challenge_password
      Src: /src/botan/src/tests/unit_x509.cpp:900,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:903,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:905,1
    - Dst: Botan_Tests::req_opts2
      Src: /src/botan/src/tests/unit_x509.cpp:905,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:908,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:910,1
    - Dst: Botan_Tests::req_opts3
      Src: /src/botan/src/tests/unit_x509.cpp:910,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:919,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:919,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:919,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:921,1
    - Dst: Botan::X509_Certificate::serial_number
      Src: /src/botan/src/tests/unit_x509.cpp:921,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:922,1
    - Dst: Botan::X509_Certificate::serial_number
      Src: /src/botan/src/tests/unit_x509.cpp:922,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:924,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:924,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:924,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:925,1
    - Dst: Botan::X509_Certificate::has_ex_constraint
      Src: /src/botan/src/tests/unit_x509.cpp:925,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:927,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:927,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:927,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:931,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:931,1
    - Dst: Botan_Tests::req_opts1
      Src: /src/botan/src/tests/unit_x509.cpp:934,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:935,1
    - Dst: Botan::X509_Certificate::constraints
      Src: /src/botan/src/tests/unit_x509.cpp:935,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:940,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:943,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:946,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:946,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:946,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:948,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:951,1
    - Dst: Botan::X509_Certificate::x509_version
      Src: /src/botan/src/tests/unit_x509.cpp:951,1
    - Dst: Botan::X509_Certificate::issuer_dn
      Src: /src/botan/src/tests/unit_x509.cpp:953,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:954,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:954,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:954,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:955,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:955,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:955,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:956,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:956,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:956,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:957,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:957,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:957,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:959,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:960,1
    - Dst: get_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:961,1
    - Dst: Botan_Tests::req_opts3
      Src: /src/botan/src/tests/unit_x509.cpp:962,1
    - Dst: size
      Src: /src/botan/src/tests/unit_x509.cpp:962,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:963,1
    - Dst: get_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:964,1
    - Dst: Botan_Tests::req_opts3
      Src: /src/botan/src/tests/unit_x509.cpp:964,1
    - Dst: at
      Src: /src/botan/src/tests/unit_x509.cpp:964,1
    - Dst: Botan::X509_Certificate::subject_alt_name
      Src: /src/botan/src/tests/unit_x509.cpp:966,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:967,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:967,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:968,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:968,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:969,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:969,1
    - Dst: Botan::X509_Certificate::subject_alt_name
      Src: /src/botan/src/tests/unit_x509.cpp:971,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:972,1
    - Dst: get_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:973,1
    - Dst: Botan_Tests::req_opts3
      Src: /src/botan/src/tests/unit_x509.cpp:973,1
    - Dst: size
      Src: /src/botan/src/tests/unit_x509.cpp:973,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:974,1
    - Dst: get_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:974,1
    - Dst: Botan_Tests::req_opts3
      Src: /src/botan/src/tests/unit_x509.cpp:974,1
    - Dst: at
      Src: /src/botan/src/tests/unit_x509.cpp:974,1
    - Dst: Botan::X509_CA::new_crl
      Src: /src/botan/src/tests/unit_x509.cpp:976,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/unit_x509.cpp:980,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:983,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:984,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:985,1
    - Dst: Botan::Path_Validation_Result::status_string
      Src: /src/botan/src/tests/unit_x509.cpp:986,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/unit_x509.cpp:988,1
    - Dst: Botan::X509_CA::ca_certificate
      Src: /src/botan/src/tests/unit_x509.cpp:988,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:990,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:991,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:991,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/unit_x509.cpp:992,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:992,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:995,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:996,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:996,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/unit_x509.cpp:997,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:997,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1000,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1001,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1002,1
    - Dst: Botan::Path_Validation_Result::status_string
      Src: /src/botan/src/tests/unit_x509.cpp:1003,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/unit_x509.cpp:1004,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1007,1
    - Dst: Botan::CRL_Entry
      Src: /src/botan/src/tests/unit_x509.cpp:1007,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1008,1
    - Dst: Botan::CRL_Entry
      Src: /src/botan/src/tests/unit_x509.cpp:1008,1
    - Dst: Botan::X509_CA::update_crl
      Src: /src/botan/src/tests/unit_x509.cpp:1010,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/unit_x509.cpp:1012,1
    - Dst: Botan::Path_Validation_Result::status_string
      Src: /src/botan/src/tests/unit_x509.cpp:1015,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1017,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1018,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1018,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1020,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1021,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1021,1
    - Dst: std::vector::clear
      Src: /src/botan/src/tests/unit_x509.cpp:1023,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1024,1
    - Dst: Botan::CRL_Entry
      Src: /src/botan/src/tests/unit_x509.cpp:1024,1
    - Dst: Botan::X509_CA::update_crl
      Src: /src/botan/src/tests/unit_x509.cpp:1025,1
    - Dst: Botan::Certificate_Store_In_Memory::add_crl
      Src: /src/botan/src/tests/unit_x509.cpp:1027,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1029,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1030,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:1030,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/unit_x509.cpp:1031,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1031,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1034,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1035,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/unit_x509.cpp:1035,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: 1038
      start: 879
    functionDepth: 2
    functionLinenumber: 879
    functionLinenumberEnd: 1038
    functionName: Botan_Tests::test_x509_cert
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Certificate::subject_alt_name
    - Botan::X509_Certificate::constraints
    - Botan_Tests::make_a_private_key
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::req_opts3
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::X509_Certificate::issuer_dn
    - Botan::X509_Certificate::serial_number
    - Botan::X509_Certificate::has_ex_constraint
    - Botan::X509_CA::ca_certificate
    - Botan::PKCS10_Request::challenge_password
    - get_attribute
    - Botan::X509_Certificate::subject_dn
    - Botan::Path_Validation_Result::status_string
    - auto::constraints
    - std::vector::push_back
    - get_first_attribute
    - Botan::X509_CA::new_crl
    - std::vector::clear
    - Botan::X509_Certificate::x509_version
    - Botan::CRL_Entry
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - Botan_Tests::req_opts1
    - Botan_Tests::req_opts2
    - Test::Result::test_note
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::ca_opts
    - size
    - Botan::X509::create_self_signed_cert
    - Test::Result::test_eq
    - Botan::Path_Validation_Result::result_string
    - Botan::X509_CA::update_crl
    - Test::Result::confirm
    - Botan::Certificate_Store_In_Memory::add_crl
    - at
    - Botan::X509_CA::sign_request
    - Botan::X509::create_cert_req
    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:1050,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1050,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1055,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1060,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1063,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1063,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1063,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1066,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1068,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1068,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1070,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1070,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1073,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1073,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1075,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1077,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1080,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1080,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1080,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1083,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1084,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1085,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1085,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1086,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1088,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1088,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1089,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1089,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1091,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1093,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1096,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1096,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1096,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1099,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1099,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1100,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1100,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1101,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1101,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1105,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1107,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1110,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1110,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1110,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1112,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1112,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1113,1
    - Dst: Botan::X509_Certificate::allowed_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1113,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: 1117
      start: 1040
    functionDepth: 2
    functionLinenumber: 1040
    functionLinenumberEnd: 1117
    functionName: Botan_Tests::test_usage
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Key_Constraints
    - Botan_Tests::make_a_private_key
    - Botan_Tests::ca_opts
    - Botan::X509::create_self_signed_cert
    - Botan_Tests::from_date
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::X509_Certificate::allowed_usage
    - Botan::X509_CA::sign_request
    - Botan::X509::create_cert_req
    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:1130,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1130,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1135,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1139,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:1141,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1143,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1146,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1146,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1146,1
    - Dst: Botan::X509_CA::ca_certificate
      Src: /src/botan/src/tests/unit_x509.cpp:1149,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/unit_x509.cpp:1154,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1156,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/unit_x509.cpp:1156,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: 1159
      start: 1119
    functionDepth: 2
    functionLinenumber: 1119
    functionLinenumberEnd: 1159
    functionName: Botan_Tests::test_self_issued
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::make_a_private_key
    - Botan_Tests::ca_opts
    - Botan::X509_CA::ca_certificate
    - Botan::Path_Validation_Result::successful_validation
    - Botan::X509::create_self_signed_cert
    - Botan_Tests::from_date
    - Botan::X509_Cert_Options::set_padding_scheme
    - Test::Result::confirm
    - Botan::x509_path_validate
    - Botan::X509_CA::sign_request
    - Botan::X509::create_cert_req
    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:1164,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:1165,1
    - Dst: Botan::X509_Certificate::x509_version
      Src: /src/botan/src/tests/unit_x509.cpp:1166,1
    - Dst: Botan::X509_CRL::X509_CRL
      Src: /src/botan/src/tests/unit_x509.cpp:1169,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:1170,1
    - Dst: Botan::X509_CRL::crl_number
      Src: /src/botan/src/tests/unit_x509.cpp:1171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1161
    functionDepth: 1
    functionLinenumber: 1161
    functionLinenumberEnd: 1174
    functionName: Botan_Tests::test_x509_uninit
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::X509_Certificate::X509_Certificate
    - Botan::X509_CRL::crl_number
    - Botan::X509_CRL::X509_CRL
    - Botan::X509_Certificate::x509_version
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_uninit()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1181,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1181,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1186,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1191,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1192,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1193,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1194,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1195,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1196,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1198,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1200,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1201,1
    - Dst: Key_Constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1203,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1207,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1207,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1208,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1208,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1209,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1209,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1210,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1210,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1211,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1211,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1212,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1212,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1213,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1213,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1214,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1214,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1215,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1215,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1216,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1216,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1217,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1217,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1220,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1220,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1221,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1221,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1222,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1222,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1223,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1223,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1224,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1224,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1225,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1225,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1226,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1226,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1227,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1227,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1228,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1228,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1231,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1231,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1233,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1233,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1234,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1234,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1235,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1235,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1236,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1236,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1237,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1237,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1238,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1238,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1239,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1239,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1240,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1240,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1241,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1241,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1242,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1242,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1245,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1245,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1246,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1246,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1247,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1247,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1248,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1248,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1249,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1249,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1250,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1250,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1251,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1251,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1252,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1252,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1253,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1253,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1258,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1258,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1260,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1260,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1261,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1261,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1262,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1262,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1263,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1263,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1264,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1264,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1265,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1265,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1266,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1266,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1267,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1267,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1268,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1268,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1269,1
    - Dst: auto::compatible_with
      Src: /src/botan/src/tests/unit_x509.cpp:1269,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 64
    argCount: 2
    argNames:
    - ' key'
    - ' pk_algo'
    argTypes:
    - Botan::Private_Key
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1176
    functionDepth: 0
    functionLinenumber: 1176
    functionLinenumberEnd: 1273
    functionName: Botan_Tests::test_valid_constraints
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_eq
    - auto::compatible_with
    - Test::Result::confirm
    - Key_Constraints
    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: 1280
      start: 1280
    functionDepth: 0
    functionLinenumber: 1280
    functionLinenumberEnd: 1280
    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: 1282
      start: 1282
    functionDepth: 0
    functionLinenumber: 1282
    functionLinenumberEnd: 1282
    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: 1284
      start: 1284
    functionDepth: 0
    functionLinenumber: 1284
    functionLinenumberEnd: 1284
    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:1287,1
    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_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:1290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1290
      start: 1290
    functionDepth: 1
    functionLinenumber: 1290
    functionLinenumberEnd: 1290
    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: 1292
      start: 1292
    functionDepth: 0
    functionLinenumber: 1292
    functionLinenumberEnd: 1292
    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: 1294
      start: 1294
    functionDepth: 0
    functionLinenumber: 1294
    functionLinenumberEnd: 1294
    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:1298,1
    - Dst: Botan::ASN1_String::ASN1_String
      Src: /src/botan/src/tests/unit_x509.cpp:1298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1296
    functionDepth: 1
    functionLinenumber: 1296
    functionLinenumberEnd: 1300
    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:1303,1
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/tests/unit_x509.cpp:1304,1
    - Dst: Botan::ASN1_String::value
      Src: /src/botan/src/tests/unit_x509.cpp:1305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1302
    functionDepth: 1
    functionLinenumber: 1302
    functionLinenumberEnd: 1306
    functionName: Botan_Tests::String_Extension::decode_inner
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::ASN1_String::ASN1_String
    - Botan::BER_Decoder
    - Botan::ASN1_String::value
    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:1320,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1320,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1325,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/unit_x509.cpp:1329,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/unit_x509.cpp:1330,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1334,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1335,1
    - Dst: Botan::PKCS10_Request::create
      Src: /src/botan/src/tests/unit_x509.cpp:1340,1
    - Dst: Botan::PKCS10_Request::subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:1342,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1344,1
    - Dst: dn_info
      Src: /src/botan/src/tests/unit_x509.cpp:1344,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1346,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1347,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1348,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1349,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1350,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1350,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1350,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1351,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1351,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1351,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1356,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/unit_x509.cpp:1358,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1360,1
    - Dst: dn_info
      Src: /src/botan/src/tests/unit_x509.cpp:1360,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1362,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_x509.cpp:1363,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1364,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1365,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1366,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1366,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1366,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1367,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1367,1
    - Dst: Botan::ASN1_String::tagging
      Src: /src/botan/src/tests/unit_x509.cpp:1367,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: 1370
      start: 1312
    functionDepth: 2
    functionLinenumber: 1312
    functionLinenumberEnd: 1370
    functionName: Botan_Tests::test_custom_dn_attr
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::PKCS10_Request::subject_dn
    - Botan_Tests::make_a_private_key
    - Botan_Tests::ca_opts
    - Botan::PKCS10_Request::create
    - get_first_attribute
    - Botan::ASN1_String::tagging
    - Botan::X509_DN::add_attribute
    - Test::Result::test_eq
    - Test::Result::confirm
    - dn_info
    - Botan::EC_Group::from_OID
    - auto::subject_dn
    - Botan::X509_CA::sign_request
    - Botan::X509::create_self_signed_cert
    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:1382,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/unit_x509.cpp:1382,1
    - Dst: Botan::AlternativeName::AlternativeName
      Src: /src/botan/src/tests/unit_x509.cpp:1395,1
    - Dst: Botan::AlternativeName::add_uri
      Src: /src/botan/src/tests/unit_x509.cpp:1396,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/unit_x509.cpp:1399,1
    - Dst: Botan_Tests::make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1402,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/tests/unit_x509.cpp:1410,1
    - Dst: Botan::Extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:1411,1
    - Dst: std::make_unique<String_Extension>
      Src: /src/botan/src/tests/unit_x509.cpp:1411,1
    - Dst: Botan::Extensions::add
      Src: /src/botan/src/tests/unit_x509.cpp:1412,1
    - Dst: std::make_unique<Botan::Cert_Extension::CRL_Distribution_Points>
      Src: /src/botan/src/tests/unit_x509.cpp:1412,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/unit_x509.cpp:1414,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1417,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1419,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1420,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1423,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1424,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1425,1
    - Dst: dynamic_cast<Botan::Cert_Extension::Key_Usage&>
      Src: /src/botan/src/tests/unit_x509.cpp:1427,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1431,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1432,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1433,1
    - Dst: auto::value
      Src: /src/botan/src/tests/unit_x509.cpp:1434,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1439,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1441,1
    - Dst: auto*::crl_distribution_urls
      Src: /src/botan/src/tests/unit_x509.cpp:1442,1
    - Dst: auto*::distribution_points
      Src: /src/botan/src/tests/unit_x509.cpp:1443,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1444,1
    - Dst: Botan::TLS::Session_Manager::find
      Src: /src/botan/src/tests/unit_x509.cpp:1445,1
    - Dst: point
      Src: /src/botan/src/tests/unit_x509.cpp:1445,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/unit_x509.cpp:1445,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1449,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1453,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1453,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1453,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1456,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1456,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1458,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1459,1
    - Dst: dynamic_cast<Botan::Cert_Extension::Key_Usage&>
      Src: /src/botan/src/tests/unit_x509.cpp:1460,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1461,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1466,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1467,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1468,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1469,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1470,1
    - Dst: auto::value
      Src: /src/botan/src/tests/unit_x509.cpp:1471,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1475,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1477,1
    - Dst: auto*::crl_distribution_urls
      Src: /src/botan/src/tests/unit_x509.cpp:1478,1
    - Dst: auto*::distribution_points
      Src: /src/botan/src/tests/unit_x509.cpp:1479,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1480,1
    - Dst: Botan::TLS::Session_Manager::find
      Src: /src/botan/src/tests/unit_x509.cpp:1481,1
    - Dst: point
      Src: /src/botan/src/tests/unit_x509.cpp:1481,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/unit_x509.cpp:1481,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: 1486
      start: 1372
    functionDepth: 2
    functionLinenumber: 1372
    functionLinenumberEnd: 1486
    functionName: Botan_Tests::test_x509_extensions
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<Botan::Cert_Extension::Key_Usage&>
    - point
    - Botan_Tests::make_a_private_key
    - Botan::AlternativeName::AlternativeName
    - std::vector::end
    - Botan::X509_Cert_Options::set_padding_scheme
    - std::make_unique<Botan::Cert_Extension::CRL_Distribution_Points>
    - auto*::distribution_points
    - Botan::Extensions::add
    - std::vector::emplace_back
    - std::make_unique<String_Extension>
    - auto*::crl_distribution_urls
    - Botan::OID::from_string
    - Botan::X509::create_cert_req
    - auto::value
    - Botan::TLS::Session_Manager::find
    - Botan::X509_Certificate::v3_extensions
    - Botan_Tests::from_date
    - Botan_Tests::ca_opts
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::AlternativeName::add_uri
    - Botan::X509_CA::sign_request
    - Botan::X509::create_self_signed_cert
    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:1520,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1522,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1524,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_x509.cpp:1524,1
    - Dst: Botan::X509_Certificate::raw_issuer_dn_sha256
      Src: /src/botan/src/tests/unit_x509.cpp:1524,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1525,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_x509.cpp:1525,1
    - Dst: Botan::X509_Certificate::raw_subject_dn_sha256
      Src: /src/botan/src/tests/unit_x509.cpp:1525,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_x509.cpp:1529,1
    - Dst: Botan::X509_Cert_Options::X509_Cert_Options
      Src: /src/botan/src/tests/unit_x509.cpp:1529,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_x509.cpp:1531,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1531,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/unit_x509.cpp:1531,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1533,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_x509.cpp:1533,1
    - Dst: Botan::X509_Certificate::raw_issuer_dn_sha256
      Src: /src/botan/src/tests/unit_x509.cpp:1533,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1534,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_x509.cpp:1534,1
    - Dst: Botan::X509_Certificate::raw_subject_dn_sha256
      Src: /src/botan/src/tests/unit_x509.cpp:1534,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: 1537
      start: 1488
    functionDepth: 1
    functionLinenumber: 1488
    functionLinenumberEnd: 1537
    functionName: Botan_Tests::test_hashes
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Cert_Options::CA_key
    - Botan::X509_Certificate::raw_issuer_dn_sha256
    - Botan::hex_encode
    - Test::Result::test_eq
    - Botan::X509::create_cert_req
    - Botan::X509_Cert_Options::X509_Cert_Options
    - Botan_Tests::from_date
    - Botan::X509_Certificate::raw_subject_dn_sha256
    - Botan::X509_CA::sign_request
    - Botan::X509::create_self_signed_cert
    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:1559,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/unit_x509.cpp:1561,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1565,1
    - Dst: auto*::entries
      Src: /src/botan/src/tests/unit_x509.cpp:1567,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_x509.cpp:1569,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:1571,1
    - Dst: telephone_number_range
      Src: /src/botan/src/tests/unit_x509.cpp:1572,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:1573,1
    - Dst: telephone_number
      Src: /src/botan/src/tests/unit_x509.cpp:1574,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/unit_x509.cpp:1575,1
    - Dst: service_provider_code
      Src: /src/botan/src/tests/unit_x509.cpp:1576,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1578,1
    - Dst: type
      Src: /src/botan/src/tests/unit_x509.cpp:1578,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1579,1
    - Dst: service_provider_code
      Src: /src/botan/src/tests/unit_x509.cpp:1579,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1581,1
    - Dst: type
      Src: /src/botan/src/tests/unit_x509.cpp:1581,1
    - Dst: telephone_number_range
      Src: /src/botan/src/tests/unit_x509.cpp:1582,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1583,1
    - Dst: size
      Src: /src/botan/src/tests/unit_x509.cpp:1583,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1584,1
    - Dst: start::value
      Src: /src/botan/src/tests/unit_x509.cpp:1584,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1585,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1586,1
    - Dst: start::value
      Src: /src/botan/src/tests/unit_x509.cpp:1586,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1587,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1589,1
    - Dst: type
      Src: /src/botan/src/tests/unit_x509.cpp:1589,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_x509.cpp:1590,1
    - Dst: telephone_number
      Src: /src/botan/src/tests/unit_x509.cpp:1590,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/unit_x509.cpp:1592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1594
      start: 1541
    functionDepth: 1
    functionLinenumber: 1541
    functionLinenumberEnd: 1594
    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_throws
    - service_provider_code
    - Test::Result::end_timer
    - Botan_Tests::Test::data_file
    - size
    - auto*::entries
    - telephone_number
    - telephone_number_range
    - Test::Result::test_eq
    - Test::Result::confirm
    - type
    - start::value
    - Botan::X509_Certificate::v3_extensions
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_x509_tn_auth_list_extension_decode()
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 18
    argCount: 2
    argNames:
    - ' sig_algo'
    - ' hash'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1613
      start: 1598
    functionDepth: 0
    functionLinenumber: 1598
    functionLinenumberEnd: 1613
    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:1620,1
    - Dst: make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1653,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1659,1
    - Dst: test_hashes
      Src: /src/botan/src/tests/unit_x509.cpp:1659,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1660,1
    - Dst: test_valid_constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1660,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1664,1
    - Dst: test_usage
      Src: /src/botan/src/tests/unit_x509.cpp:1664,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1666,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1666,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1668,1
    - Dst: get_sig_paddings
      Src: /src/botan/src/tests/unit_x509.cpp:1670,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1674,1
    - Dst: test_x509_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1674,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1676,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1676,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1678,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1682,1
    - Dst: test_pkcs10_ext
      Src: /src/botan/src/tests/unit_x509.cpp:1682,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1684,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1684,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1686,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1690,1
    - Dst: test_self_issued
      Src: /src/botan/src/tests/unit_x509.cpp:1690,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1692,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1692,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1694,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1698,1
    - Dst: test_x509_extensions
      Src: /src/botan/src/tests/unit_x509.cpp:1698,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1700,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1700,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1702,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1706,1
    - Dst: test_custom_dn_attr
      Src: /src/botan/src/tests/unit_x509.cpp:1706,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1708,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1708,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1710,1
    - Dst: make_a_private_key
      Src: /src/botan/src/tests/unit_x509.cpp:1721,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1724,1
    - Dst: test_valid_constraints
      Src: /src/botan/src/tests/unit_x509.cpp:1724,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/unit_x509.cpp:1732,1
    - Dst: test_padding_config
      Src: /src/botan/src/tests/unit_x509.cpp:1732,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_x509.cpp:1734,1
    - Dst: what
      Src: /src/botan/src/tests/unit_x509.cpp:1734,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1736,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1740,1
    - Dst: test_x509_utf8
      Src: /src/botan/src/tests/unit_x509.cpp:1740,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1741,1
    - Dst: test_x509_bmpstring
      Src: /src/botan/src/tests/unit_x509.cpp:1741,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1742,1
    - Dst: test_x509_teletex
      Src: /src/botan/src/tests/unit_x509.cpp:1742,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1743,1
    - Dst: test_crl_dn_name
      Src: /src/botan/src/tests/unit_x509.cpp:1743,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1744,1
    - Dst: test_rdn_multielement_set_name
      Src: /src/botan/src/tests/unit_x509.cpp:1744,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1745,1
    - Dst: test_x509_decode_list
      Src: /src/botan/src/tests/unit_x509.cpp:1745,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1746,1
    - Dst: test_rsa_oaep
      Src: /src/botan/src/tests/unit_x509.cpp:1746,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1747,1
    - Dst: test_x509_authority_info_access_extension
      Src: /src/botan/src/tests/unit_x509.cpp:1747,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1748,1
    - Dst: test_verify_gost2012_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1748,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1749,1
    - Dst: test_parse_rsa_pss_cert
      Src: /src/botan/src/tests/unit_x509.cpp:1749,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1750,1
    - Dst: test_x509_tn_auth_list_extension_decode
      Src: /src/botan/src/tests/unit_x509.cpp:1750,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1753,1
    - Dst: test_x509_encode_authority_info_access_extension
      Src: /src/botan/src/tests/unit_x509.cpp:1753,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1754,1
    - Dst: test_x509_extension
      Src: /src/botan/src/tests/unit_x509.cpp:1754,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1755,1
    - Dst: test_x509_dates
      Src: /src/botan/src/tests/unit_x509.cpp:1755,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1756,1
    - Dst: test_cert_status_strings
      Src: /src/botan/src/tests/unit_x509.cpp:1756,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_x509.cpp:1757,1
    - Dst: test_x509_uninit
      Src: /src/botan/src/tests/unit_x509.cpp:1757,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 82
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1760
      start: 1617
    functionDepth: 0
    functionLinenumber: 1617
    functionLinenumberEnd: 1760
    functionName: Botan_Tests::X509_Cert_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/unit_x509.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_failure
    - test_verify_gost2012_cert
    - test_x509_utf8
    - test_x509_teletex
    - test_usage
    - what
    - test_x509_extensions
    - get_sig_paddings
    - test_padding_config
    - test_custom_dn_attr
    - test_rdn_multielement_set_name
    - test_x509_cert
    - test_parse_rsa_pss_cert
    - test_x509_tn_auth_list_extension_decode
    - test_self_issued
    - test_pkcs10_ext
    - test_rsa_oaep
    - test_hashes
    - test_x509_bmpstring
    - test_x509_authority_info_access_extension
    - std::vector::push_back
    - test_cert_status_strings
    - test_x509_uninit
    - Botan_Tests::X509_Cert_Unit_Tests::rng
    - test_valid_constraints
    - test_x509_extension
    - test_x509_dates
    - make_a_private_key
    - test_crl_dn_name
    - test_x509_encode_authority_info_access_extension
    - test_x509_decode_list
    - Test::Result::merge
    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:26,1
    - Dst: Botan::Jitter_RNG::Jitter_RNG
      Src: /src/botan/src/tests/test_jitter_rng.cpp:30,1
    - Dst: Botan::Jitter_RNG::random_vec
      Src: /src/botan/src/tests/test_jitter_rng.cpp:32,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_jitter_rng.cpp:36,1
    - Dst: Botan::Jitter_RNG::Jitter_RNG
      Src: /src/botan/src/tests/test_jitter_rng.cpp:40,1
    - Dst: Botan::Jitter_RNG::random_vec
      Src: /src/botan/src/tests/test_jitter_rng.cpp:42,1
    - Dst: Botan::Jitter_RNG::clear
      Src: /src/botan/src/tests/test_jitter_rng.cpp:43,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_jitter_rng.cpp:47,1
    - Dst: Botan::Entropy_Sources::Entropy_Sources
      Src: /src/botan/src/tests/test_jitter_rng.cpp:49,1
    - Dst: Botan::Entropy_Sources::add_source
      Src: /src/botan/src/tests/test_jitter_rng.cpp:50,1
    - Dst: Botan::Entropy_Source::create
      Src: /src/botan/src/tests/test_jitter_rng.cpp:50,1
    - Dst: Botan::AutoSeeded_RNG::random_vec
      Src: /src/botan/src/tests/test_jitter_rng.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 24
    functionDepth: 3
    functionLinenumber: 24
    functionLinenumberEnd: 56
    functionName: Botan_Tests::test_jitter_rng
    functionSourceFile: /src/botan/src/tests/test_jitter_rng.cpp
    functionUses: 0
    functionsReached:
    - Botan::Jitter_RNG::random_vec
    - Botan::Jitter_RNG::Jitter_RNG
    - Botan::Jitter_RNG::clear
    - Botan_Tests::CHECK
    - Botan::AutoSeeded_RNG::random_vec
    - Botan::Entropy_Sources::add_source
    - Botan::Entropy_Source::create
    - Botan::Entropy_Sources::Entropy_Sources
    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:26,1
    - Dst: Botan::Jitter_RNG::Jitter_RNG
      Src: /src/botan/src/tests/test_jitter_rng.cpp:30,1
    - Dst: Botan::Jitter_RNG::random_vec
      Src: /src/botan/src/tests/test_jitter_rng.cpp:32,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_jitter_rng.cpp:36,1
    - Dst: Botan::Jitter_RNG::Jitter_RNG
      Src: /src/botan/src/tests/test_jitter_rng.cpp:40,1
    - Dst: Botan::Jitter_RNG::random_vec
      Src: /src/botan/src/tests/test_jitter_rng.cpp:42,1
    - Dst: Botan::Jitter_RNG::clear
      Src: /src/botan/src/tests/test_jitter_rng.cpp:43,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_jitter_rng.cpp:47,1
    - Dst: Botan::Entropy_Sources::Entropy_Sources
      Src: /src/botan/src/tests/test_jitter_rng.cpp:49,1
    - Dst: Botan::Entropy_Sources::add_source
      Src: /src/botan/src/tests/test_jitter_rng.cpp:50,1
    - Dst: Botan::Entropy_Source::create
      Src: /src/botan/src/tests/test_jitter_rng.cpp:50,1
    - Dst: Botan::AutoSeeded_RNG::random_vec
      Src: /src/botan/src/tests/test_jitter_rng.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 24
    functionDepth: 3
    functionLinenumber: 24
    functionLinenumberEnd: 56
    functionName: Botan_Tests::test_jitter_rng
    functionSourceFile: /src/botan/src/tests/test_jitter_rng.cpp
    functionUses: 0
    functionsReached:
    - Botan::Jitter_RNG::random_vec
    - Botan::Jitter_RNG::Jitter_RNG
    - Botan::Jitter_RNG::clear
    - Botan_Tests::CHECK
    - Botan::AutoSeeded_RNG::random_vec
    - Botan::Entropy_Sources::add_source
    - Botan::Entropy_Source::create
    - Botan::Entropy_Sources::Entropy_Sources
    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:26,1
    - Dst: Botan::Jitter_RNG::Jitter_RNG
      Src: /src/botan/src/tests/test_jitter_rng.cpp:30,1
    - Dst: Botan::Jitter_RNG::random_vec
      Src: /src/botan/src/tests/test_jitter_rng.cpp:32,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_jitter_rng.cpp:36,1
    - Dst: Botan::Jitter_RNG::Jitter_RNG
      Src: /src/botan/src/tests/test_jitter_rng.cpp:40,1
    - Dst: Botan::Jitter_RNG::random_vec
      Src: /src/botan/src/tests/test_jitter_rng.cpp:42,1
    - Dst: Botan::Jitter_RNG::clear
      Src: /src/botan/src/tests/test_jitter_rng.cpp:43,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_jitter_rng.cpp:47,1
    - Dst: Botan::Entropy_Sources::Entropy_Sources
      Src: /src/botan/src/tests/test_jitter_rng.cpp:49,1
    - Dst: Botan::Entropy_Sources::add_source
      Src: /src/botan/src/tests/test_jitter_rng.cpp:50,1
    - Dst: Botan::Entropy_Source::create
      Src: /src/botan/src/tests/test_jitter_rng.cpp:50,1
    - Dst: Botan::AutoSeeded_RNG::random_vec
      Src: /src/botan/src/tests/test_jitter_rng.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 24
    functionDepth: 3
    functionLinenumber: 24
    functionLinenumberEnd: 56
    functionName: Botan_Tests::test_jitter_rng
    functionSourceFile: /src/botan/src/tests/test_jitter_rng.cpp
    functionUses: 0
    functionsReached:
    - Botan::Jitter_RNG::random_vec
    - Botan::Jitter_RNG::Jitter_RNG
    - Botan::Jitter_RNG::clear
    - Botan_Tests::CHECK
    - Botan::AutoSeeded_RNG::random_vec
    - Botan::Entropy_Sources::add_source
    - Botan::Entropy_Source::create
    - Botan::Entropy_Sources::Entropy_Sources
    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:26,1
    - Dst: Botan::Jitter_RNG::Jitter_RNG
      Src: /src/botan/src/tests/test_jitter_rng.cpp:30,1
    - Dst: Botan::Jitter_RNG::random_vec
      Src: /src/botan/src/tests/test_jitter_rng.cpp:32,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_jitter_rng.cpp:36,1
    - Dst: Botan::Jitter_RNG::Jitter_RNG
      Src: /src/botan/src/tests/test_jitter_rng.cpp:40,1
    - Dst: Botan::Jitter_RNG::random_vec
      Src: /src/botan/src/tests/test_jitter_rng.cpp:42,1
    - Dst: Botan::Jitter_RNG::clear
      Src: /src/botan/src/tests/test_jitter_rng.cpp:43,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_jitter_rng.cpp:47,1
    - Dst: Botan::Entropy_Sources::Entropy_Sources
      Src: /src/botan/src/tests/test_jitter_rng.cpp:49,1
    - Dst: Botan::Entropy_Sources::add_source
      Src: /src/botan/src/tests/test_jitter_rng.cpp:50,1
    - Dst: Botan::Entropy_Source::create
      Src: /src/botan/src/tests/test_jitter_rng.cpp:50,1
    - Dst: Botan::AutoSeeded_RNG::random_vec
      Src: /src/botan/src/tests/test_jitter_rng.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 24
    functionDepth: 3
    functionLinenumber: 24
    functionLinenumberEnd: 56
    functionName: Botan_Tests::test_jitter_rng
    functionSourceFile: /src/botan/src/tests/test_jitter_rng.cpp
    functionUses: 0
    functionsReached:
    - Botan::Jitter_RNG::random_vec
    - Botan::Jitter_RNG::Jitter_RNG
    - Botan::Jitter_RNG::clear
    - Botan_Tests::CHECK
    - Botan::AutoSeeded_RNG::random_vec
    - Botan::Entropy_Sources::add_source
    - Botan::Entropy_Source::create
    - Botan::Entropy_Sources::Entropy_Sources
    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: 27
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 27
    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: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    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:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - raw_pk
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 35
    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: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    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: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    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:46,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed448.cpp:47,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_ed448.cpp:49,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_ed448.cpp:49,1
    - Dst: std::make_unique<Botan::Ed448_PrivateKey>
      Src: /src/botan/src/tests/test_ed448.cpp:51,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_ed448.cpp:53,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_ed448.cpp:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 58
    functionName: Botan_Tests::Ed448_Signature_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - Test_Error
    - auto::public_key_bits
    - std::make_unique<Botan::Ed448_PrivateKey>
    - std::vector::end
    - 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: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::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: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    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:71,1
    - Dst: std::make_unique<Botan::Ed448_PublicKey>
      Src: /src/botan/src/tests/test_ed448.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: Botan_Tests::Ed448_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - std::make_unique<Botan::Ed448_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:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_ed448.cpp:80,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_ed448.cpp:80,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_ed448.cpp:82,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ed448.cpp:82,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/test_ed448.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sp
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: Botan_Tests::Ed448_General_Test::to_array
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::array::data
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - Botan::copy_mem
    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: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    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:92,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed448.cpp:92,1
    - 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::Ed448Point::decode
      Src: /src/botan/src/tests/test_ed448.cpp:96,1
    - Dst: auto::encode
      Src: /src/botan/src/tests/test_ed448.cpp:97,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_ed448.cpp:99,1
    - Dst: Botan::create_pk_from_sk
      Src: /src/botan/src/tests/test_ed448.cpp:102,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_ed448.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 107
    functionName: Botan_Tests::Ed448_General_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Ed448_General_Test::to_array
    - Botan::Ed448Point::decode
    - Test::Result::test_is_eq
    - get_req_bin
    - auto::encode
    - Botan::create_pk_from_sk
    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:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 111
    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:117,1
    - Dst: std::span<const uint8_t>::rend
      Src: /src/botan/src/tests/test_ed448.cpp:117,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ed448.cpp:118,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ed448.cpp:118,1
    - Dst: auto::serialize_to
      Src: /src/botan/src/tests/test_ed448.cpp:123,1
    - Dst: std::reverse
      Src: /src/botan/src/tests/test_ed448.cpp:124,1
    - Dst: std::array::begin
      Src: /src/botan/src/tests/test_ed448.cpp:124,1
    - Dst: std::array::end
      Src: /src/botan/src/tests/test_ed448.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 126
    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>::rbegin
    - std::array::begin
    - std::span<const uint8_t>::rend
    - std::array::end
    - std::vector::data
    - auto::serialize_to
    - 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:131,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ed448.cpp:131,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ed448.cpp:131,1
    - Dst: Botan_Tests::Ed448_Utils_Test::reduce_mod_L_ref
      Src: /src/botan/src/tests/test_ed448.cpp:137,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_ed448.cpp:139,1
    - Dst: Botan::Scalar448
      Src: /src/botan/src/tests/test_ed448.cpp:139,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_ed448.cpp:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 144
    functionName: Botan_Tests::Ed448_Utils_Test::test_reduce_mod_L
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached:
    - std::memset
    - std::array::data
    - Botan_Tests::Ed448_Utils_Test::reduce_mod_L_ref
    - Test::Result::test_is_eq
    - Test::Result::test_no_throw
    - std::array::size
    - Botan::Scalar448
    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:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 147
    functionDepth: 3
    functionLinenumber: 147
    functionLinenumberEnd: 147
    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: 27
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 27
    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: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    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:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - raw_pk
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 35
    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: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    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: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    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:46,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed448.cpp:47,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_ed448.cpp:49,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_ed448.cpp:49,1
    - Dst: std::make_unique<Botan::Ed448_PrivateKey>
      Src: /src/botan/src/tests/test_ed448.cpp:51,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_ed448.cpp:53,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_ed448.cpp:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 58
    functionName: Botan_Tests::Ed448_Signature_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - Test_Error
    - auto::public_key_bits
    - std::make_unique<Botan::Ed448_PrivateKey>
    - std::vector::end
    - 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: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::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: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    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:71,1
    - Dst: std::make_unique<Botan::Ed448_PublicKey>
      Src: /src/botan/src/tests/test_ed448.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: Botan_Tests::Ed448_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - std::make_unique<Botan::Ed448_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:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_ed448.cpp:80,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_ed448.cpp:80,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_ed448.cpp:82,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ed448.cpp:82,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/test_ed448.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sp
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: Botan_Tests::Ed448_General_Test::to_array
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::array::data
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - Botan::copy_mem
    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: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    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:92,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed448.cpp:92,1
    - 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::Ed448Point::decode
      Src: /src/botan/src/tests/test_ed448.cpp:96,1
    - Dst: auto::encode
      Src: /src/botan/src/tests/test_ed448.cpp:97,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_ed448.cpp:99,1
    - Dst: Botan::create_pk_from_sk
      Src: /src/botan/src/tests/test_ed448.cpp:102,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_ed448.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 107
    functionName: Botan_Tests::Ed448_General_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Ed448_General_Test::to_array
    - Botan::Ed448Point::decode
    - Test::Result::test_is_eq
    - get_req_bin
    - auto::encode
    - Botan::create_pk_from_sk
    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:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 111
    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:117,1
    - Dst: std::span<const uint8_t>::rend
      Src: /src/botan/src/tests/test_ed448.cpp:117,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ed448.cpp:118,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ed448.cpp:118,1
    - Dst: auto::serialize_to
      Src: /src/botan/src/tests/test_ed448.cpp:123,1
    - Dst: std::reverse
      Src: /src/botan/src/tests/test_ed448.cpp:124,1
    - Dst: std::array::begin
      Src: /src/botan/src/tests/test_ed448.cpp:124,1
    - Dst: std::array::end
      Src: /src/botan/src/tests/test_ed448.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 126
    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>::rbegin
    - std::array::begin
    - std::span<const uint8_t>::rend
    - std::array::end
    - std::vector::data
    - auto::serialize_to
    - 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:131,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ed448.cpp:131,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ed448.cpp:131,1
    - Dst: Botan_Tests::Ed448_Utils_Test::reduce_mod_L_ref
      Src: /src/botan/src/tests/test_ed448.cpp:137,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_ed448.cpp:139,1
    - Dst: Botan::Scalar448
      Src: /src/botan/src/tests/test_ed448.cpp:139,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_ed448.cpp:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 144
    functionName: Botan_Tests::Ed448_Utils_Test::test_reduce_mod_L
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 1
    functionsReached:
    - std::memset
    - std::array::data
    - Botan_Tests::Ed448_Utils_Test::reduce_mod_L_ref
    - Test::Result::test_is_eq
    - Test::Result::test_no_throw
    - std::array::size
    - Botan::Scalar448
    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:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 147
    functionDepth: 3
    functionLinenumber: 147
    functionLinenumberEnd: 147
    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: 27
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 27
    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: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    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:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - raw_pk
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 35
    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: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    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: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    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:46,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed448.cpp:47,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_ed448.cpp:49,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_ed448.cpp:49,1
    - Dst: std::make_unique<Botan::Ed448_PrivateKey>
      Src: /src/botan/src/tests/test_ed448.cpp:51,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_ed448.cpp:53,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_ed448.cpp:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 58
    functionName: Botan_Tests::Ed448_Signature_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - Test_Error
    - auto::public_key_bits
    - std::make_unique<Botan::Ed448_PrivateKey>
    - std::vector::end
    - 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: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::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: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    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:71,1
    - Dst: std::make_unique<Botan::Ed448_PublicKey>
      Src: /src/botan/src/tests/test_ed448.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: Botan_Tests::Ed448_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - std::make_unique<Botan::Ed448_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:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_ed448.cpp:80,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_ed448.cpp:80,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_ed448.cpp:82,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ed448.cpp:82,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/test_ed448.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sp
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: Botan_Tests::Ed448_General_Test::to_array
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::array::data
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - Botan::copy_mem
    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: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    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:92,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed448.cpp:92,1
    - 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::Ed448Point::decode
      Src: /src/botan/src/tests/test_ed448.cpp:96,1
    - Dst: auto::encode
      Src: /src/botan/src/tests/test_ed448.cpp:97,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_ed448.cpp:99,1
    - Dst: Botan::create_pk_from_sk
      Src: /src/botan/src/tests/test_ed448.cpp:102,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_ed448.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 107
    functionName: Botan_Tests::Ed448_General_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Ed448_General_Test::to_array
    - Botan::Ed448Point::decode
    - Test::Result::test_is_eq
    - get_req_bin
    - auto::encode
    - Botan::create_pk_from_sk
    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:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 111
    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:117,1
    - Dst: std::span<const uint8_t>::rend
      Src: /src/botan/src/tests/test_ed448.cpp:117,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ed448.cpp:118,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ed448.cpp:118,1
    - Dst: auto::serialize_to
      Src: /src/botan/src/tests/test_ed448.cpp:123,1
    - Dst: std::reverse
      Src: /src/botan/src/tests/test_ed448.cpp:124,1
    - Dst: std::array::begin
      Src: /src/botan/src/tests/test_ed448.cpp:124,1
    - Dst: std::array::end
      Src: /src/botan/src/tests/test_ed448.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 126
    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>::rbegin
    - std::array::begin
    - std::span<const uint8_t>::rend
    - std::array::end
    - std::vector::data
    - auto::serialize_to
    - 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:131,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ed448.cpp:131,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ed448.cpp:131,1
    - Dst: Botan_Tests::Ed448_Utils_Test::reduce_mod_L_ref
      Src: /src/botan/src/tests/test_ed448.cpp:137,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_ed448.cpp:139,1
    - Dst: Botan::Scalar448
      Src: /src/botan/src/tests/test_ed448.cpp:139,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_ed448.cpp:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 144
    functionName: Botan_Tests::Ed448_Utils_Test::test_reduce_mod_L
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 2
    functionsReached:
    - std::memset
    - std::array::data
    - Botan_Tests::Ed448_Utils_Test::reduce_mod_L_ref
    - Test::Result::test_is_eq
    - Test::Result::test_no_throw
    - std::array::size
    - Botan::Scalar448
    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:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 147
    functionDepth: 3
    functionLinenumber: 147
    functionLinenumberEnd: 147
    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: 27
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 27
    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: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    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:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - raw_pk
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 35
    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: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    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: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    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:46,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed448.cpp:47,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_ed448.cpp:49,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_ed448.cpp:49,1
    - Dst: std::make_unique<Botan::Ed448_PrivateKey>
      Src: /src/botan/src/tests/test_ed448.cpp:51,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_ed448.cpp:53,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_ed448.cpp:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 58
    functionName: Botan_Tests::Ed448_Signature_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - Test_Error
    - auto::public_key_bits
    - std::make_unique<Botan::Ed448_PrivateKey>
    - std::vector::end
    - 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: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::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: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    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:71,1
    - Dst: std::make_unique<Botan::Ed448_PublicKey>
      Src: /src/botan/src/tests/test_ed448.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: Botan_Tests::Ed448_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - std::make_unique<Botan::Ed448_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:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_ed448.cpp:80,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_ed448.cpp:80,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_ed448.cpp:82,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ed448.cpp:82,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/test_ed448.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sp
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: Botan_Tests::Ed448_General_Test::to_array
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 3
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::array::data
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - Botan::copy_mem
    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: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    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:92,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ed448.cpp:92,1
    - 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::Ed448Point::decode
      Src: /src/botan/src/tests/test_ed448.cpp:96,1
    - Dst: auto::encode
      Src: /src/botan/src/tests/test_ed448.cpp:97,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_ed448.cpp:99,1
    - Dst: Botan::create_pk_from_sk
      Src: /src/botan/src/tests/test_ed448.cpp:102,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_ed448.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 107
    functionName: Botan_Tests::Ed448_General_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Ed448_General_Test::to_array
    - Botan::Ed448Point::decode
    - Test::Result::test_is_eq
    - get_req_bin
    - auto::encode
    - Botan::create_pk_from_sk
    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:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 111
    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:117,1
    - Dst: std::span<const uint8_t>::rend
      Src: /src/botan/src/tests/test_ed448.cpp:117,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ed448.cpp:118,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ed448.cpp:118,1
    - Dst: auto::serialize_to
      Src: /src/botan/src/tests/test_ed448.cpp:123,1
    - Dst: std::reverse
      Src: /src/botan/src/tests/test_ed448.cpp:124,1
    - Dst: std::array::begin
      Src: /src/botan/src/tests/test_ed448.cpp:124,1
    - Dst: std::array::end
      Src: /src/botan/src/tests/test_ed448.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 126
    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>::rbegin
    - std::array::begin
    - std::span<const uint8_t>::rend
    - std::array::end
    - std::vector::data
    - auto::serialize_to
    - 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:131,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ed448.cpp:131,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ed448.cpp:131,1
    - Dst: Botan_Tests::Ed448_Utils_Test::reduce_mod_L_ref
      Src: /src/botan/src/tests/test_ed448.cpp:137,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_ed448.cpp:139,1
    - Dst: Botan::Scalar448
      Src: /src/botan/src/tests/test_ed448.cpp:139,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_ed448.cpp:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 144
    functionName: Botan_Tests::Ed448_Utils_Test::test_reduce_mod_L
    functionSourceFile: /src/botan/src/tests/test_ed448.cpp
    functionUses: 3
    functionsReached:
    - std::memset
    - std::array::data
    - Botan_Tests::Ed448_Utils_Test::reduce_mod_L_ref
    - Test::Result::test_is_eq
    - Test::Result::test_no_throw
    - std::array::size
    - Botan::Scalar448
    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:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 147
    functionDepth: 3
    functionLinenumber: 147
    functionLinenumberEnd: 147
    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:31,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' format'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 32
    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: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    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:51,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/test_ecies.cpp:52,1
    - Dst: domain
      Src: /src/botan/src/tests/test_ecies.cpp:52,1
    - Dst: raw_public_key_bits
      Src: /src/botan/src/tests/test_ecies.cpp:52,1
    - Dst: bits_of
      Src: /src/botan/src/tests/test_ecies.cpp:54,1
    - Dst: Botan::ECIES_Encryptor::set_initialization_vector
      Src: /src/botan/src/tests/test_ecies.cpp:55,1
    - Dst: Botan::ECIES_Decryptor::set_initialization_vector
      Src: /src/botan/src/tests/test_ecies.cpp:56,1
    - Dst: empty
      Src: /src/botan/src/tests/test_ecies.cpp:58,1
    - Dst: Botan::ECIES_Encryptor::set_label
      Src: /src/botan/src/tests/test_ecies.cpp:59,1
    - Dst: Botan::ECIES_Decryptor::set_label
      Src: /src/botan/src/tests/test_ecies.cpp:60,1
    - Dst: Botan::ECIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_ecies.cpp:63,1
    - Dst: empty
      Src: /src/botan/src/tests/test_ecies.cpp:64,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecies.cpp:65,1
    - Dst: Botan::ECIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:67,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecies.cpp:68,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ecies.cpp:71,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:73,1
    - Dst: Botan::ECIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:74,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ecies.cpp:76,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ecies.cpp:76,1
    - Dst: what
      Src: /src/botan/src/tests/test_ecies.cpp:76,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: 78
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 78
    functionName: Botan_Tests::check_encrypt_decrypt
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - domain
    - Botan::EC_AffinePoint::EC_AffinePoint
    - Botan::ECIES_Decryptor::set_label
    - test_eq
    - Botan::ECIES_Encryptor::encrypt
    - test_throws
    - std::string
    - Botan::ECIES_Encryptor::set_other_key
    - Botan::ECIES_Decryptor::set_initialization_vector
    - bits_of
    - raw_public_key_bits
    - empty
    - Botan::ECIES_Encryptor::set_label
    - Botan::ECIES_Decryptor::decrypt
    - what
    - std::vector::size
    - Botan::ECIES_Encryptor::set_initialization_vector
    - test_note
    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:87,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_ecies.cpp:91,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:91,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:94,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: 96
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 96
    functionName: Botan_Tests::check_encrypt_decrypt
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::check_encrypt_decrypt
    - Botan::InitializationVector
    - std::vector<uint8_t>
    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: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    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: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    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: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_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:114,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:114,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:115,1
    - Dst: get_req_bn
      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_str
      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_bn
      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_bin
      Src: /src/botan/src/tests/test_ecies.cpp:126,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecies.cpp:127,1
    - Dst: Botan_Tests::ECIES_ISO_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:132,1
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/tests/test_ecies.cpp:133,1
    - Dst: Botan_Tests::ECIES_ISO_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:137,1
    - Dst: Botan::ECDH_PrivateKey::public_value
      Src: /src/botan/src/tests/test_ecies.cpp:138,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecies.cpp:139,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:144,1
    - Dst: Botan_Tests::ECIES_ISO_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:145,1
    - Dst: Botan::ECIES_KA_Operation::derive_secret
      Src: /src/botan/src/tests/test_ecies.cpp:146,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecies.cpp:147,1
    - Dst: Botan::SymmetricKey::bits_of
      Src: /src/botan/src/tests/test_ecies.cpp:147,1
    - Dst: ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:160,1
    - Dst: ECIES_System_Params::ECIES_System_Params
      Src: /src/botan/src/tests/test_ecies.cpp:164,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:164,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:173,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:177,1
    - Dst: check_encrypt_decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:185,1
    - Dst: Botan_Tests::ECIES_ISO_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:186,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 194
    functionName: Botan_Tests::ECIES_ISO_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - get_compression_type
    - Test::Result::test_throws
    - Botan_Tests::ECIES_ISO_Tests::rng
    - Botan::ECDH_PrivateKey::public_value
    - ecies_flags
    - ECIES_System_Params::ECIES_System_Params
    - Botan::SymmetricKey::bits_of
    - Botan::ECIES_KA_Operation::derive_secret
    - Test::Result::test_eq
    - Botan::EC_AffinePoint::from_bigint_xy
    - get_req_bin
    - get_req_bn
    - check_encrypt_decrypt
    - Botan::ECDH_PrivateKey::domain
    - get_req_str
    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:210,1
    - Dst: Botan::BigInt::from_string
      Src: /src/botan/src/tests/test_ecies.cpp:211,1
    - Dst: Botan::BigInt::from_string
      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:215,1
    - Dst: Botan::BigInt::from_string
      Src: /src/botan/src/tests/test_ecies.cpp:216,1
    - Dst: Botan::BigInt::from_string
      Src: /src/botan/src/tests/test_ecies.cpp:217,1
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/tests/test_ecies.cpp:218,1
    - Dst: std::make_unique<Botan::EC_Group>
      Src: /src/botan/src/tests/test_ecies.cpp:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 221
    functionName: Botan_Tests::ECIES_Tests::ECIES_Tests
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::from_u64
    - Botan::BigInt::from_string
    - std::make_unique<Botan::EC_Group>
    - Botan::EC_Group::supports_application_specific_group_with_cofactor
    linkageType: ''
    returnType: void
    signature: void ECIES_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:224,1
    - Dst: Botan::EC_Group::supports_application_specific_group_with_cofactor
      Src: /src/botan/src/tests/test_ecies.cpp:228,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecies.cpp:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 232
    functionName: Botan_Tests::ECIES_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - get_req_str
    - Botan::EC_Group::supports_application_specific_group_with_cofactor
    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:237,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:238,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:239,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:240,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:241,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ecies.cpp:242,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_ecies.cpp:243,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_ecies.cpp:243,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:244,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ecies.cpp:245,1
    - Dst: get_compression_type
      Src: /src/botan/src/tests/test_ecies.cpp:246,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_req_sz
      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_str
      Src: /src/botan/src/tests/test_ecies.cpp:251,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecies.cpp:252,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecies.cpp:253,1
    - Dst: ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:255,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:261,1
    - Dst: Botan_Tests::ECIES_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:265,1
    - Dst: Botan_Tests::ECIES_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:266,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:269,1
    - Dst: check_encrypt_decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:270,1
    - Dst: Botan_Tests::ECIES_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 274
    functionName: Botan_Tests::ECIES_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - get_compression_type
    - Botan::InitializationVector
    - ecies_flags
    - get_opt_bin
    - Botan_Tests::ECIES_Tests::rng
    - Botan::EC_Group::from_name
    - get_req_sz
    - get_req_bin
    - get_req_bn
    - check_encrypt_decrypt
    - Botan::ECDH_PrivateKey::domain
    - get_req_str
    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:287,1
    - Dst: Botan_Tests::ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:289,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:290,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:298,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:309,1
    - Dst: Botan::ECIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_ecies.cpp:310,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 313
    functionName: Botan_Tests::test_other_key_not_set
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::ECIES_Encryptor::encrypt
    - Botan_Tests::ecies_flags
    - Botan::EC_Group::from_name
    - std::vector<uint8_t>
    - Botan_Tests::Test::new_rng
    - Botan::ECDH_PrivateKey::domain
    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:318,1
    - Dst: Botan_Tests::ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:320,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:321,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:329,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:338,1
    - Dst: Botan::ECIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_ecies.cpp:340,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 344
    functionName: Botan_Tests::test_kdf_not_found
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::ECIES_Encryptor::encrypt
    - Botan_Tests::ecies_flags
    - Botan::EC_Group::from_name
    - std::vector<uint8_t>
    - Botan_Tests::Test::new_rng
    - Botan::ECDH_PrivateKey::domain
    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:349,1
    - Dst: Botan_Tests::ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:351,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:352,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:360,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:369,1
    - Dst: Botan::ECIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_ecies.cpp:371,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 375
    functionName: Botan_Tests::test_mac_not_found
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::ECIES_Encryptor::encrypt
    - Botan_Tests::ecies_flags
    - Botan::EC_Group::from_name
    - std::vector<uint8_t>
    - Botan_Tests::Test::new_rng
    - Botan::ECDH_PrivateKey::domain
    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:380,1
    - Dst: Botan_Tests::ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:382,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:383,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:391,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:400,1
    - Dst: Botan::ECIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_ecies.cpp:402,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 406
    functionName: Botan_Tests::test_cipher_not_found
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::ECIES_Encryptor::encrypt
    - Botan_Tests::ecies_flags
    - Botan::EC_Group::from_name
    - std::vector<uint8_t>
    - Botan_Tests::Test::new_rng
    - Botan::ECDH_PrivateKey::domain
    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:411,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:413,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:428,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ecies.cpp:433,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ecies.cpp:436,1
    - Dst: Botan_Tests::check_encrypt_decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 408
    functionDepth: 2
    functionLinenumber: 408
    functionLinenumberEnd: 449
    functionName: Botan_Tests::test_system_params_short_ctor
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Botan_Tests::check_encrypt_decrypt
    - Botan::EC_Group::from_name
    - Botan_Tests::Test::new_rng
    - Botan::ECDH_PrivateKey::domain
    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:454,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_ecies.cpp:465,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:471,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:475,1
    - Dst: Botan::ECIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:476,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ecies.cpp:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 479
    functionName: Botan_Tests::test_ciphertext_too_short
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::hex_decode
    - Botan::EC_Group::from_name
    - Botan::ECIES_Decryptor::decrypt
    - Botan_Tests::Test::new_rng
    - Botan::ECDH_PrivateKey::domain
    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:493,1
    - Dst: std::vector::emplace_back
      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: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_ecies.cpp:497,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_ecies.cpp:497,1
    - Dst: what
      Src: /src/botan/src/tests/test_ecies.cpp:497,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 502
    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:31,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' format'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 32
    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: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    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:51,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/test_ecies.cpp:52,1
    - Dst: domain
      Src: /src/botan/src/tests/test_ecies.cpp:52,1
    - Dst: raw_public_key_bits
      Src: /src/botan/src/tests/test_ecies.cpp:52,1
    - Dst: bits_of
      Src: /src/botan/src/tests/test_ecies.cpp:54,1
    - Dst: Botan::ECIES_Encryptor::set_initialization_vector
      Src: /src/botan/src/tests/test_ecies.cpp:55,1
    - Dst: Botan::ECIES_Decryptor::set_initialization_vector
      Src: /src/botan/src/tests/test_ecies.cpp:56,1
    - Dst: empty
      Src: /src/botan/src/tests/test_ecies.cpp:58,1
    - Dst: Botan::ECIES_Encryptor::set_label
      Src: /src/botan/src/tests/test_ecies.cpp:59,1
    - Dst: Botan::ECIES_Decryptor::set_label
      Src: /src/botan/src/tests/test_ecies.cpp:60,1
    - Dst: Botan::ECIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_ecies.cpp:63,1
    - Dst: empty
      Src: /src/botan/src/tests/test_ecies.cpp:64,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecies.cpp:65,1
    - Dst: Botan::ECIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:67,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecies.cpp:68,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ecies.cpp:71,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:73,1
    - Dst: Botan::ECIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:74,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ecies.cpp:76,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ecies.cpp:76,1
    - Dst: what
      Src: /src/botan/src/tests/test_ecies.cpp:76,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: 78
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 78
    functionName: Botan_Tests::check_encrypt_decrypt
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 2
    functionsReached:
    - domain
    - Botan::EC_AffinePoint::EC_AffinePoint
    - Botan::ECIES_Decryptor::set_label
    - test_eq
    - Botan::ECIES_Encryptor::encrypt
    - test_throws
    - std::string
    - Botan::ECIES_Encryptor::set_other_key
    - Botan::ECIES_Decryptor::set_initialization_vector
    - bits_of
    - raw_public_key_bits
    - empty
    - Botan::ECIES_Encryptor::set_label
    - Botan::ECIES_Decryptor::decrypt
    - what
    - std::vector::size
    - Botan::ECIES_Encryptor::set_initialization_vector
    - test_note
    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:87,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_ecies.cpp:91,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:91,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:94,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: 96
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 96
    functionName: Botan_Tests::check_encrypt_decrypt
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::check_encrypt_decrypt
    - Botan::InitializationVector
    - std::vector<uint8_t>
    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: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    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: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    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: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_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:114,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:114,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:115,1
    - Dst: get_req_bn
      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_str
      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_bn
      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_bin
      Src: /src/botan/src/tests/test_ecies.cpp:126,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecies.cpp:127,1
    - Dst: Botan_Tests::ECIES_ISO_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:132,1
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/tests/test_ecies.cpp:133,1
    - Dst: Botan_Tests::ECIES_ISO_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:137,1
    - Dst: Botan::ECDH_PrivateKey::public_value
      Src: /src/botan/src/tests/test_ecies.cpp:138,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecies.cpp:139,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:144,1
    - Dst: Botan_Tests::ECIES_ISO_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:145,1
    - Dst: Botan::ECIES_KA_Operation::derive_secret
      Src: /src/botan/src/tests/test_ecies.cpp:146,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecies.cpp:147,1
    - Dst: Botan::SymmetricKey::bits_of
      Src: /src/botan/src/tests/test_ecies.cpp:147,1
    - Dst: ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:160,1
    - Dst: ECIES_System_Params::ECIES_System_Params
      Src: /src/botan/src/tests/test_ecies.cpp:164,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:164,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:173,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:177,1
    - Dst: check_encrypt_decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:185,1
    - Dst: Botan_Tests::ECIES_ISO_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:186,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 194
    functionName: Botan_Tests::ECIES_ISO_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - get_compression_type
    - Test::Result::test_throws
    - Botan_Tests::ECIES_ISO_Tests::rng
    - Botan::ECDH_PrivateKey::public_value
    - ecies_flags
    - ECIES_System_Params::ECIES_System_Params
    - Botan::SymmetricKey::bits_of
    - Botan::ECIES_KA_Operation::derive_secret
    - Test::Result::test_eq
    - Botan::EC_AffinePoint::from_bigint_xy
    - get_req_bin
    - get_req_bn
    - check_encrypt_decrypt
    - Botan::ECDH_PrivateKey::domain
    - get_req_str
    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:210,1
    - Dst: Botan::BigInt::from_string
      Src: /src/botan/src/tests/test_ecies.cpp:211,1
    - Dst: Botan::BigInt::from_string
      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:215,1
    - Dst: Botan::BigInt::from_string
      Src: /src/botan/src/tests/test_ecies.cpp:216,1
    - Dst: Botan::BigInt::from_string
      Src: /src/botan/src/tests/test_ecies.cpp:217,1
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/tests/test_ecies.cpp:218,1
    - Dst: std::make_unique<Botan::EC_Group>
      Src: /src/botan/src/tests/test_ecies.cpp:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 221
    functionName: Botan_Tests::ECIES_Tests::ECIES_Tests
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::from_u64
    - Botan::BigInt::from_string
    - std::make_unique<Botan::EC_Group>
    - Botan::EC_Group::supports_application_specific_group_with_cofactor
    linkageType: ''
    returnType: void
    signature: void ECIES_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:224,1
    - Dst: Botan::EC_Group::supports_application_specific_group_with_cofactor
      Src: /src/botan/src/tests/test_ecies.cpp:228,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecies.cpp:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 232
    functionName: Botan_Tests::ECIES_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - get_req_str
    - Botan::EC_Group::supports_application_specific_group_with_cofactor
    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:237,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:238,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:239,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:240,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:241,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ecies.cpp:242,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_ecies.cpp:243,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_ecies.cpp:243,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:244,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ecies.cpp:245,1
    - Dst: get_compression_type
      Src: /src/botan/src/tests/test_ecies.cpp:246,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_req_sz
      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_str
      Src: /src/botan/src/tests/test_ecies.cpp:251,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecies.cpp:252,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecies.cpp:253,1
    - Dst: ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:255,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:261,1
    - Dst: Botan_Tests::ECIES_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:265,1
    - Dst: Botan_Tests::ECIES_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:266,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:269,1
    - Dst: check_encrypt_decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:270,1
    - Dst: Botan_Tests::ECIES_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 274
    functionName: Botan_Tests::ECIES_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - get_compression_type
    - Botan::InitializationVector
    - ecies_flags
    - get_opt_bin
    - Botan_Tests::ECIES_Tests::rng
    - Botan::EC_Group::from_name
    - get_req_sz
    - get_req_bin
    - get_req_bn
    - check_encrypt_decrypt
    - Botan::ECDH_PrivateKey::domain
    - get_req_str
    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:287,1
    - Dst: Botan_Tests::ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:289,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:290,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:298,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:309,1
    - Dst: Botan::ECIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_ecies.cpp:310,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 313
    functionName: Botan_Tests::test_other_key_not_set
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::ECIES_Encryptor::encrypt
    - Botan_Tests::ecies_flags
    - Botan::EC_Group::from_name
    - std::vector<uint8_t>
    - Botan_Tests::Test::new_rng
    - Botan::ECDH_PrivateKey::domain
    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:318,1
    - Dst: Botan_Tests::ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:320,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:321,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:329,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:338,1
    - Dst: Botan::ECIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_ecies.cpp:340,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 344
    functionName: Botan_Tests::test_kdf_not_found
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::ECIES_Encryptor::encrypt
    - Botan_Tests::ecies_flags
    - Botan::EC_Group::from_name
    - std::vector<uint8_t>
    - Botan_Tests::Test::new_rng
    - Botan::ECDH_PrivateKey::domain
    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:349,1
    - Dst: Botan_Tests::ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:351,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:352,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:360,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:369,1
    - Dst: Botan::ECIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_ecies.cpp:371,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 375
    functionName: Botan_Tests::test_mac_not_found
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::ECIES_Encryptor::encrypt
    - Botan_Tests::ecies_flags
    - Botan::EC_Group::from_name
    - std::vector<uint8_t>
    - Botan_Tests::Test::new_rng
    - Botan::ECDH_PrivateKey::domain
    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:380,1
    - Dst: Botan_Tests::ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:382,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:383,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:391,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:400,1
    - Dst: Botan::ECIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_ecies.cpp:402,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 406
    functionName: Botan_Tests::test_cipher_not_found
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::ECIES_Encryptor::encrypt
    - Botan_Tests::ecies_flags
    - Botan::EC_Group::from_name
    - std::vector<uint8_t>
    - Botan_Tests::Test::new_rng
    - Botan::ECDH_PrivateKey::domain
    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:411,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:413,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:428,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ecies.cpp:433,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ecies.cpp:436,1
    - Dst: Botan_Tests::check_encrypt_decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 408
    functionDepth: 2
    functionLinenumber: 408
    functionLinenumberEnd: 449
    functionName: Botan_Tests::test_system_params_short_ctor
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Botan_Tests::check_encrypt_decrypt
    - Botan::EC_Group::from_name
    - Botan_Tests::Test::new_rng
    - Botan::ECDH_PrivateKey::domain
    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:454,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_ecies.cpp:465,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:471,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:475,1
    - Dst: Botan::ECIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:476,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ecies.cpp:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 479
    functionName: Botan_Tests::test_ciphertext_too_short
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::hex_decode
    - Botan::EC_Group::from_name
    - Botan::ECIES_Decryptor::decrypt
    - Botan_Tests::Test::new_rng
    - Botan::ECDH_PrivateKey::domain
    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:493,1
    - Dst: std::vector::emplace_back
      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: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_ecies.cpp:497,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_ecies.cpp:497,1
    - Dst: what
      Src: /src/botan/src/tests/test_ecies.cpp:497,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 502
    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:31,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' format'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 32
    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: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    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:51,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/test_ecies.cpp:52,1
    - Dst: domain
      Src: /src/botan/src/tests/test_ecies.cpp:52,1
    - Dst: raw_public_key_bits
      Src: /src/botan/src/tests/test_ecies.cpp:52,1
    - Dst: bits_of
      Src: /src/botan/src/tests/test_ecies.cpp:54,1
    - Dst: Botan::ECIES_Encryptor::set_initialization_vector
      Src: /src/botan/src/tests/test_ecies.cpp:55,1
    - Dst: Botan::ECIES_Decryptor::set_initialization_vector
      Src: /src/botan/src/tests/test_ecies.cpp:56,1
    - Dst: empty
      Src: /src/botan/src/tests/test_ecies.cpp:58,1
    - Dst: Botan::ECIES_Encryptor::set_label
      Src: /src/botan/src/tests/test_ecies.cpp:59,1
    - Dst: Botan::ECIES_Decryptor::set_label
      Src: /src/botan/src/tests/test_ecies.cpp:60,1
    - Dst: Botan::ECIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_ecies.cpp:63,1
    - Dst: empty
      Src: /src/botan/src/tests/test_ecies.cpp:64,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecies.cpp:65,1
    - Dst: Botan::ECIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:67,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecies.cpp:68,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ecies.cpp:71,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:73,1
    - Dst: Botan::ECIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:74,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ecies.cpp:76,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ecies.cpp:76,1
    - Dst: what
      Src: /src/botan/src/tests/test_ecies.cpp:76,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: 78
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 78
    functionName: Botan_Tests::check_encrypt_decrypt
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 4
    functionsReached:
    - domain
    - Botan::EC_AffinePoint::EC_AffinePoint
    - Botan::ECIES_Decryptor::set_label
    - test_eq
    - Botan::ECIES_Encryptor::encrypt
    - test_throws
    - std::string
    - Botan::ECIES_Encryptor::set_other_key
    - Botan::ECIES_Decryptor::set_initialization_vector
    - bits_of
    - raw_public_key_bits
    - empty
    - Botan::ECIES_Encryptor::set_label
    - Botan::ECIES_Decryptor::decrypt
    - what
    - std::vector::size
    - Botan::ECIES_Encryptor::set_initialization_vector
    - test_note
    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:87,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_ecies.cpp:91,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:91,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:94,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: 96
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 96
    functionName: Botan_Tests::check_encrypt_decrypt
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 5
    functionsReached:
    - Botan_Tests::check_encrypt_decrypt
    - Botan::InitializationVector
    - std::vector<uint8_t>
    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: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    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: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    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: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_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:114,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:114,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:115,1
    - Dst: get_req_bn
      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_str
      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_bn
      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_bin
      Src: /src/botan/src/tests/test_ecies.cpp:126,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecies.cpp:127,1
    - Dst: Botan_Tests::ECIES_ISO_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:132,1
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/tests/test_ecies.cpp:133,1
    - Dst: Botan_Tests::ECIES_ISO_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:137,1
    - Dst: Botan::ECDH_PrivateKey::public_value
      Src: /src/botan/src/tests/test_ecies.cpp:138,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecies.cpp:139,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:144,1
    - Dst: Botan_Tests::ECIES_ISO_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:145,1
    - Dst: Botan::ECIES_KA_Operation::derive_secret
      Src: /src/botan/src/tests/test_ecies.cpp:146,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecies.cpp:147,1
    - Dst: Botan::SymmetricKey::bits_of
      Src: /src/botan/src/tests/test_ecies.cpp:147,1
    - Dst: ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:160,1
    - Dst: ECIES_System_Params::ECIES_System_Params
      Src: /src/botan/src/tests/test_ecies.cpp:164,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:164,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:173,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:177,1
    - Dst: check_encrypt_decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:185,1
    - Dst: Botan_Tests::ECIES_ISO_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:186,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 194
    functionName: Botan_Tests::ECIES_ISO_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - get_compression_type
    - Test::Result::test_throws
    - Botan_Tests::ECIES_ISO_Tests::rng
    - Botan::ECDH_PrivateKey::public_value
    - ecies_flags
    - ECIES_System_Params::ECIES_System_Params
    - Botan::SymmetricKey::bits_of
    - Botan::ECIES_KA_Operation::derive_secret
    - Test::Result::test_eq
    - Botan::EC_AffinePoint::from_bigint_xy
    - get_req_bin
    - get_req_bn
    - check_encrypt_decrypt
    - Botan::ECDH_PrivateKey::domain
    - get_req_str
    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:210,1
    - Dst: Botan::BigInt::from_string
      Src: /src/botan/src/tests/test_ecies.cpp:211,1
    - Dst: Botan::BigInt::from_string
      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:215,1
    - Dst: Botan::BigInt::from_string
      Src: /src/botan/src/tests/test_ecies.cpp:216,1
    - Dst: Botan::BigInt::from_string
      Src: /src/botan/src/tests/test_ecies.cpp:217,1
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/tests/test_ecies.cpp:218,1
    - Dst: std::make_unique<Botan::EC_Group>
      Src: /src/botan/src/tests/test_ecies.cpp:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 221
    functionName: Botan_Tests::ECIES_Tests::ECIES_Tests
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::from_u64
    - Botan::BigInt::from_string
    - std::make_unique<Botan::EC_Group>
    - Botan::EC_Group::supports_application_specific_group_with_cofactor
    linkageType: ''
    returnType: void
    signature: void ECIES_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:224,1
    - Dst: Botan::EC_Group::supports_application_specific_group_with_cofactor
      Src: /src/botan/src/tests/test_ecies.cpp:228,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecies.cpp:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 232
    functionName: Botan_Tests::ECIES_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - get_req_str
    - Botan::EC_Group::supports_application_specific_group_with_cofactor
    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:237,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:238,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:239,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:240,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:241,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ecies.cpp:242,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_ecies.cpp:243,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_ecies.cpp:243,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:244,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ecies.cpp:245,1
    - Dst: get_compression_type
      Src: /src/botan/src/tests/test_ecies.cpp:246,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_req_sz
      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_str
      Src: /src/botan/src/tests/test_ecies.cpp:251,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecies.cpp:252,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecies.cpp:253,1
    - Dst: ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:255,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:261,1
    - Dst: Botan_Tests::ECIES_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:265,1
    - Dst: Botan_Tests::ECIES_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:266,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:269,1
    - Dst: check_encrypt_decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:270,1
    - Dst: Botan_Tests::ECIES_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 274
    functionName: Botan_Tests::ECIES_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - get_compression_type
    - Botan::InitializationVector
    - ecies_flags
    - get_opt_bin
    - Botan_Tests::ECIES_Tests::rng
    - Botan::EC_Group::from_name
    - get_req_sz
    - get_req_bin
    - get_req_bn
    - check_encrypt_decrypt
    - Botan::ECDH_PrivateKey::domain
    - get_req_str
    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:287,1
    - Dst: Botan_Tests::ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:289,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:290,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:298,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:309,1
    - Dst: Botan::ECIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_ecies.cpp:310,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 313
    functionName: Botan_Tests::test_other_key_not_set
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::ECIES_Encryptor::encrypt
    - Botan_Tests::ecies_flags
    - Botan::EC_Group::from_name
    - std::vector<uint8_t>
    - Botan_Tests::Test::new_rng
    - Botan::ECDH_PrivateKey::domain
    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:318,1
    - Dst: Botan_Tests::ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:320,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:321,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:329,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:338,1
    - Dst: Botan::ECIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_ecies.cpp:340,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 344
    functionName: Botan_Tests::test_kdf_not_found
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::ECIES_Encryptor::encrypt
    - Botan_Tests::ecies_flags
    - Botan::EC_Group::from_name
    - std::vector<uint8_t>
    - Botan_Tests::Test::new_rng
    - Botan::ECDH_PrivateKey::domain
    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:349,1
    - Dst: Botan_Tests::ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:351,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:352,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:360,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:369,1
    - Dst: Botan::ECIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_ecies.cpp:371,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 375
    functionName: Botan_Tests::test_mac_not_found
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::ECIES_Encryptor::encrypt
    - Botan_Tests::ecies_flags
    - Botan::EC_Group::from_name
    - std::vector<uint8_t>
    - Botan_Tests::Test::new_rng
    - Botan::ECDH_PrivateKey::domain
    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:380,1
    - Dst: Botan_Tests::ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:382,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:383,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:391,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:400,1
    - Dst: Botan::ECIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_ecies.cpp:402,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 406
    functionName: Botan_Tests::test_cipher_not_found
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::ECIES_Encryptor::encrypt
    - Botan_Tests::ecies_flags
    - Botan::EC_Group::from_name
    - std::vector<uint8_t>
    - Botan_Tests::Test::new_rng
    - Botan::ECDH_PrivateKey::domain
    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:411,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:413,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:428,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ecies.cpp:433,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ecies.cpp:436,1
    - Dst: Botan_Tests::check_encrypt_decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 408
    functionDepth: 2
    functionLinenumber: 408
    functionLinenumberEnd: 449
    functionName: Botan_Tests::test_system_params_short_ctor
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Botan_Tests::check_encrypt_decrypt
    - Botan::EC_Group::from_name
    - Botan_Tests::Test::new_rng
    - Botan::ECDH_PrivateKey::domain
    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:454,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_ecies.cpp:465,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:471,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:475,1
    - Dst: Botan::ECIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:476,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ecies.cpp:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 479
    functionName: Botan_Tests::test_ciphertext_too_short
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::hex_decode
    - Botan::EC_Group::from_name
    - Botan::ECIES_Decryptor::decrypt
    - Botan_Tests::Test::new_rng
    - Botan::ECDH_PrivateKey::domain
    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:493,1
    - Dst: std::vector::emplace_back
      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: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_ecies.cpp:497,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_ecies.cpp:497,1
    - Dst: what
      Src: /src/botan/src/tests/test_ecies.cpp:497,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 502
    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:31,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' format'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 32
    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: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    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:51,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/test_ecies.cpp:52,1
    - Dst: domain
      Src: /src/botan/src/tests/test_ecies.cpp:52,1
    - Dst: raw_public_key_bits
      Src: /src/botan/src/tests/test_ecies.cpp:52,1
    - Dst: bits_of
      Src: /src/botan/src/tests/test_ecies.cpp:54,1
    - Dst: Botan::ECIES_Encryptor::set_initialization_vector
      Src: /src/botan/src/tests/test_ecies.cpp:55,1
    - Dst: Botan::ECIES_Decryptor::set_initialization_vector
      Src: /src/botan/src/tests/test_ecies.cpp:56,1
    - Dst: empty
      Src: /src/botan/src/tests/test_ecies.cpp:58,1
    - Dst: Botan::ECIES_Encryptor::set_label
      Src: /src/botan/src/tests/test_ecies.cpp:59,1
    - Dst: Botan::ECIES_Decryptor::set_label
      Src: /src/botan/src/tests/test_ecies.cpp:60,1
    - Dst: Botan::ECIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_ecies.cpp:63,1
    - Dst: empty
      Src: /src/botan/src/tests/test_ecies.cpp:64,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecies.cpp:65,1
    - Dst: Botan::ECIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:67,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ecies.cpp:68,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ecies.cpp:71,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:73,1
    - Dst: Botan::ECIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:74,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ecies.cpp:76,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ecies.cpp:76,1
    - Dst: what
      Src: /src/botan/src/tests/test_ecies.cpp:76,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: 78
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 78
    functionName: Botan_Tests::check_encrypt_decrypt
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 6
    functionsReached:
    - domain
    - Botan::EC_AffinePoint::EC_AffinePoint
    - Botan::ECIES_Decryptor::set_label
    - test_eq
    - Botan::ECIES_Encryptor::encrypt
    - test_throws
    - std::string
    - Botan::ECIES_Encryptor::set_other_key
    - Botan::ECIES_Decryptor::set_initialization_vector
    - bits_of
    - raw_public_key_bits
    - empty
    - Botan::ECIES_Encryptor::set_label
    - Botan::ECIES_Decryptor::decrypt
    - what
    - std::vector::size
    - Botan::ECIES_Encryptor::set_initialization_vector
    - test_note
    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:87,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_ecies.cpp:91,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:91,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:94,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: 96
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 96
    functionName: Botan_Tests::check_encrypt_decrypt
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 7
    functionsReached:
    - Botan_Tests::check_encrypt_decrypt
    - Botan::InitializationVector
    - std::vector<uint8_t>
    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: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    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: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    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: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_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:114,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:114,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:115,1
    - Dst: get_req_bn
      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_str
      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_bn
      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_bin
      Src: /src/botan/src/tests/test_ecies.cpp:126,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecies.cpp:127,1
    - Dst: Botan_Tests::ECIES_ISO_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:132,1
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/tests/test_ecies.cpp:133,1
    - Dst: Botan_Tests::ECIES_ISO_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:137,1
    - Dst: Botan::ECDH_PrivateKey::public_value
      Src: /src/botan/src/tests/test_ecies.cpp:138,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecies.cpp:139,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:144,1
    - Dst: Botan_Tests::ECIES_ISO_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:145,1
    - Dst: Botan::ECIES_KA_Operation::derive_secret
      Src: /src/botan/src/tests/test_ecies.cpp:146,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecies.cpp:147,1
    - Dst: Botan::SymmetricKey::bits_of
      Src: /src/botan/src/tests/test_ecies.cpp:147,1
    - Dst: ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:160,1
    - Dst: ECIES_System_Params::ECIES_System_Params
      Src: /src/botan/src/tests/test_ecies.cpp:164,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:164,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:173,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:177,1
    - Dst: check_encrypt_decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:185,1
    - Dst: Botan_Tests::ECIES_ISO_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:186,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 194
    functionName: Botan_Tests::ECIES_ISO_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - get_compression_type
    - Test::Result::test_throws
    - Botan_Tests::ECIES_ISO_Tests::rng
    - Botan::ECDH_PrivateKey::public_value
    - ecies_flags
    - ECIES_System_Params::ECIES_System_Params
    - Botan::SymmetricKey::bits_of
    - Botan::ECIES_KA_Operation::derive_secret
    - Test::Result::test_eq
    - Botan::EC_AffinePoint::from_bigint_xy
    - get_req_bin
    - get_req_bn
    - check_encrypt_decrypt
    - Botan::ECDH_PrivateKey::domain
    - get_req_str
    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:210,1
    - Dst: Botan::BigInt::from_string
      Src: /src/botan/src/tests/test_ecies.cpp:211,1
    - Dst: Botan::BigInt::from_string
      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:215,1
    - Dst: Botan::BigInt::from_string
      Src: /src/botan/src/tests/test_ecies.cpp:216,1
    - Dst: Botan::BigInt::from_string
      Src: /src/botan/src/tests/test_ecies.cpp:217,1
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/tests/test_ecies.cpp:218,1
    - Dst: std::make_unique<Botan::EC_Group>
      Src: /src/botan/src/tests/test_ecies.cpp:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 221
    functionName: Botan_Tests::ECIES_Tests::ECIES_Tests
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::from_u64
    - Botan::BigInt::from_string
    - std::make_unique<Botan::EC_Group>
    - Botan::EC_Group::supports_application_specific_group_with_cofactor
    linkageType: ''
    returnType: void
    signature: void ECIES_Tests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:224,1
    - Dst: Botan::EC_Group::supports_application_specific_group_with_cofactor
      Src: /src/botan/src/tests/test_ecies.cpp:228,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ecies.cpp:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 232
    functionName: Botan_Tests::ECIES_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - get_req_str
    - Botan::EC_Group::supports_application_specific_group_with_cofactor
    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:237,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:238,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecies.cpp:239,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:240,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:241,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ecies.cpp:242,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_ecies.cpp:243,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_ecies.cpp:243,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecies.cpp:244,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_ecies.cpp:245,1
    - Dst: get_compression_type
      Src: /src/botan/src/tests/test_ecies.cpp:246,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_req_sz
      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_str
      Src: /src/botan/src/tests/test_ecies.cpp:251,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecies.cpp:252,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecies.cpp:253,1
    - Dst: ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:255,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:261,1
    - Dst: Botan_Tests::ECIES_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:265,1
    - Dst: Botan_Tests::ECIES_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:266,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:269,1
    - Dst: check_encrypt_decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:270,1
    - Dst: Botan_Tests::ECIES_Tests::rng
      Src: /src/botan/src/tests/test_ecies.cpp:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 274
    functionName: Botan_Tests::ECIES_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - get_compression_type
    - Botan::InitializationVector
    - ecies_flags
    - get_opt_bin
    - Botan_Tests::ECIES_Tests::rng
    - Botan::EC_Group::from_name
    - get_req_sz
    - get_req_bin
    - get_req_bn
    - check_encrypt_decrypt
    - Botan::ECDH_PrivateKey::domain
    - get_req_str
    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:287,1
    - Dst: Botan_Tests::ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:289,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:290,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:298,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:309,1
    - Dst: Botan::ECIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_ecies.cpp:310,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 313
    functionName: Botan_Tests::test_other_key_not_set
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::ECIES_Encryptor::encrypt
    - Botan_Tests::ecies_flags
    - Botan::EC_Group::from_name
    - std::vector<uint8_t>
    - Botan_Tests::Test::new_rng
    - Botan::ECDH_PrivateKey::domain
    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:318,1
    - Dst: Botan_Tests::ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:320,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:321,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:329,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:338,1
    - Dst: Botan::ECIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_ecies.cpp:340,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 344
    functionName: Botan_Tests::test_kdf_not_found
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::ECIES_Encryptor::encrypt
    - Botan_Tests::ecies_flags
    - Botan::EC_Group::from_name
    - std::vector<uint8_t>
    - Botan_Tests::Test::new_rng
    - Botan::ECDH_PrivateKey::domain
    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:349,1
    - Dst: Botan_Tests::ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:351,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:352,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:360,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:369,1
    - Dst: Botan::ECIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_ecies.cpp:371,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 375
    functionName: Botan_Tests::test_mac_not_found
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::ECIES_Encryptor::encrypt
    - Botan_Tests::ecies_flags
    - Botan::EC_Group::from_name
    - std::vector<uint8_t>
    - Botan_Tests::Test::new_rng
    - Botan::ECDH_PrivateKey::domain
    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:380,1
    - Dst: Botan_Tests::ecies_flags
      Src: /src/botan/src/tests/test_ecies.cpp:382,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:383,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:391,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:400,1
    - Dst: Botan::ECIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_ecies.cpp:402,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_ecies.cpp:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 406
    functionName: Botan_Tests::test_cipher_not_found
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::ECIES_Encryptor::encrypt
    - Botan_Tests::ecies_flags
    - Botan::EC_Group::from_name
    - std::vector<uint8_t>
    - Botan_Tests::Test::new_rng
    - Botan::ECDH_PrivateKey::domain
    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:411,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecies.cpp:413,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:428,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ecies.cpp:433,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ecies.cpp:436,1
    - Dst: Botan_Tests::check_encrypt_decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 408
    functionDepth: 2
    functionLinenumber: 408
    functionLinenumberEnd: 449
    functionName: Botan_Tests::test_system_params_short_ctor
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Botan_Tests::check_encrypt_decrypt
    - Botan::EC_Group::from_name
    - Botan_Tests::Test::new_rng
    - Botan::ECDH_PrivateKey::domain
    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:454,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_ecies.cpp:465,1
    - Dst: Botan::ECDH_PrivateKey::domain
      Src: /src/botan/src/tests/test_ecies.cpp:471,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ecies.cpp:475,1
    - Dst: Botan::ECIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_ecies.cpp:476,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ecies.cpp:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 451
    functionDepth: 1
    functionLinenumber: 451
    functionLinenumberEnd: 479
    functionName: Botan_Tests::test_ciphertext_too_short
    functionSourceFile: /src/botan/src/tests/test_ecies.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::hex_decode
    - Botan::EC_Group::from_name
    - Botan::ECIES_Decryptor::decrypt
    - Botan_Tests::Test::new_rng
    - Botan::ECDH_PrivateKey::domain
    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:493,1
    - Dst: std::vector::emplace_back
      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: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_ecies.cpp:497,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_ecies.cpp:497,1
    - Dst: what
      Src: /src/botan/src/tests/test_ecies.cpp:497,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 502
    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_system_timestamp
    - std::vector::push_back
    - Botan_Tests::OS_Utils_Tests::test_get_high_resolution_clock
    - Botan_Tests::OS_Utils_Tests::test_get_cpu_numbers
    - Botan_Tests::OS_Utils_Tests::test_get_cpu_cycle_counter
    - Botan_Tests::OS_Utils_Tests::test_get_process_id
    - Botan_Tests::OS_Utils_Tests::test_cpu_instruction_probe
    - Botan_Tests::OS_Utils_Tests::test_memory_locking
    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_eq
      Src: /src/botan/src/tests/test_os_utils.cpp:54,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_os_utils.cpp:54,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_os_utils.cpp:54,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_os_utils.cpp:57,1
    - Dst: Test::Result::test_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_eq
    - Test::Result::test_ne
    - Botan::OS::get_process_id
    - static_cast<size_t>
    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_is_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_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_lt
    - Test::Result::test_is_eq
    - Botan::OS::get_cpu_cycle_counter
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_get_cpu_cycle_counter()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS::get_high_resolution_clock
      Src: /src/botan/src/tests/test_os_utils.cpp:96,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_os_utils.cpp:97,1
    - Dst: Botan::OS::get_high_resolution_clock
      Src: /src/botan/src/tests/test_os_utils.cpp:100,1
    - Dst: Test::Result::test_lt
      Src: /src/botan/src/tests/test_os_utils.cpp:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 107
    functionName: Botan_Tests::OS_Utils_Tests::test_get_high_resolution_clock
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 1
    functionsReached:
    - Botan::OS::get_high_resolution_clock
    - Test::Result::test_lt
    - Test::Result::confirm
    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:112,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_os_utils.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 117
    functionName: Botan_Tests::OS_Utils_Tests::test_get_cpu_numbers
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 1
    functionsReached:
    - Botan::OS::get_cpu_available
    - Test::Result::test_gte
    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:123,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_os_utils.cpp:124,1
    - Dst: Botan::OS::get_process_id
      Src: /src/botan/src/tests/test_os_utils.cpp:127,1
    - Dst: Botan::OS::get_system_timestamp_ns
      Src: /src/botan/src/tests/test_os_utils.cpp:129,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_os_utils.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 134
    functionName: Botan_Tests::OS_Utils_Tests::test_get_system_timestamp
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::confirm
    - Botan::OS::get_system_timestamp_ns
    - Botan::OS::get_process_id
    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: 142
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 142
    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:150,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_os_utils.cpp:153,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_os_utils.cpp:157,1
    - Dst: Botan::OS::run_cpu_instruction_probe
      Src: /src/botan/src/tests/test_os_utils.cpp:188,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_os_utils.cpp:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 193
    functionName: Botan_Tests::OS_Utils_Tests::test_cpu_instruction_probe
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::confirm
    - Botan::OS::run_cpu_instruction_probe
    - Test::Result::test_note
    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_system_timestamp
    - std::vector::push_back
    - Botan_Tests::OS_Utils_Tests::test_get_high_resolution_clock
    - Botan_Tests::OS_Utils_Tests::test_get_cpu_numbers
    - Botan_Tests::OS_Utils_Tests::test_get_cpu_cycle_counter
    - Botan_Tests::OS_Utils_Tests::test_get_process_id
    - Botan_Tests::OS_Utils_Tests::test_cpu_instruction_probe
    - Botan_Tests::OS_Utils_Tests::test_memory_locking
    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_eq
      Src: /src/botan/src/tests/test_os_utils.cpp:54,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_os_utils.cpp:54,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_os_utils.cpp:54,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_os_utils.cpp:57,1
    - Dst: Test::Result::test_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_eq
    - Test::Result::test_ne
    - Botan::OS::get_process_id
    - static_cast<size_t>
    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_is_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_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_lt
    - Test::Result::test_is_eq
    - Botan::OS::get_cpu_cycle_counter
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_get_cpu_cycle_counter()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS::get_high_resolution_clock
      Src: /src/botan/src/tests/test_os_utils.cpp:96,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_os_utils.cpp:97,1
    - Dst: Botan::OS::get_high_resolution_clock
      Src: /src/botan/src/tests/test_os_utils.cpp:100,1
    - Dst: Test::Result::test_lt
      Src: /src/botan/src/tests/test_os_utils.cpp:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 107
    functionName: Botan_Tests::OS_Utils_Tests::test_get_high_resolution_clock
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 2
    functionsReached:
    - Botan::OS::get_high_resolution_clock
    - Test::Result::test_lt
    - Test::Result::confirm
    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:112,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_os_utils.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 117
    functionName: Botan_Tests::OS_Utils_Tests::test_get_cpu_numbers
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 2
    functionsReached:
    - Botan::OS::get_cpu_available
    - Test::Result::test_gte
    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:123,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_os_utils.cpp:124,1
    - Dst: Botan::OS::get_process_id
      Src: /src/botan/src/tests/test_os_utils.cpp:127,1
    - Dst: Botan::OS::get_system_timestamp_ns
      Src: /src/botan/src/tests/test_os_utils.cpp:129,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_os_utils.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 134
    functionName: Botan_Tests::OS_Utils_Tests::test_get_system_timestamp
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::confirm
    - Botan::OS::get_system_timestamp_ns
    - Botan::OS::get_process_id
    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: 142
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 142
    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:150,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_os_utils.cpp:153,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_os_utils.cpp:157,1
    - Dst: Botan::OS::run_cpu_instruction_probe
      Src: /src/botan/src/tests/test_os_utils.cpp:188,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_os_utils.cpp:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 193
    functionName: Botan_Tests::OS_Utils_Tests::test_cpu_instruction_probe
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::confirm
    - Botan::OS::run_cpu_instruction_probe
    - Test::Result::test_note
    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_system_timestamp
    - std::vector::push_back
    - Botan_Tests::OS_Utils_Tests::test_get_high_resolution_clock
    - Botan_Tests::OS_Utils_Tests::test_get_cpu_numbers
    - Botan_Tests::OS_Utils_Tests::test_get_cpu_cycle_counter
    - Botan_Tests::OS_Utils_Tests::test_get_process_id
    - Botan_Tests::OS_Utils_Tests::test_cpu_instruction_probe
    - Botan_Tests::OS_Utils_Tests::test_memory_locking
    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_eq
      Src: /src/botan/src/tests/test_os_utils.cpp:54,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_os_utils.cpp:54,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_os_utils.cpp:54,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_os_utils.cpp:57,1
    - Dst: Test::Result::test_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_eq
    - Test::Result::test_ne
    - Botan::OS::get_process_id
    - static_cast<size_t>
    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_is_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_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_lt
    - Test::Result::test_is_eq
    - Botan::OS::get_cpu_cycle_counter
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_get_cpu_cycle_counter()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS::get_high_resolution_clock
      Src: /src/botan/src/tests/test_os_utils.cpp:96,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_os_utils.cpp:97,1
    - Dst: Botan::OS::get_high_resolution_clock
      Src: /src/botan/src/tests/test_os_utils.cpp:100,1
    - Dst: Test::Result::test_lt
      Src: /src/botan/src/tests/test_os_utils.cpp:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 107
    functionName: Botan_Tests::OS_Utils_Tests::test_get_high_resolution_clock
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 3
    functionsReached:
    - Botan::OS::get_high_resolution_clock
    - Test::Result::test_lt
    - Test::Result::confirm
    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:112,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_os_utils.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 117
    functionName: Botan_Tests::OS_Utils_Tests::test_get_cpu_numbers
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 3
    functionsReached:
    - Botan::OS::get_cpu_available
    - Test::Result::test_gte
    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:123,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_os_utils.cpp:124,1
    - Dst: Botan::OS::get_process_id
      Src: /src/botan/src/tests/test_os_utils.cpp:127,1
    - Dst: Botan::OS::get_system_timestamp_ns
      Src: /src/botan/src/tests/test_os_utils.cpp:129,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_os_utils.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 134
    functionName: Botan_Tests::OS_Utils_Tests::test_get_system_timestamp
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 3
    functionsReached:
    - Test::Result::confirm
    - Botan::OS::get_system_timestamp_ns
    - Botan::OS::get_process_id
    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: 142
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 142
    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:150,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_os_utils.cpp:153,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_os_utils.cpp:157,1
    - Dst: Botan::OS::run_cpu_instruction_probe
      Src: /src/botan/src/tests/test_os_utils.cpp:188,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_os_utils.cpp:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 193
    functionName: Botan_Tests::OS_Utils_Tests::test_cpu_instruction_probe
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 3
    functionsReached:
    - Test::Result::confirm
    - Botan::OS::run_cpu_instruction_probe
    - Test::Result::test_note
    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_system_timestamp
    - std::vector::push_back
    - Botan_Tests::OS_Utils_Tests::test_get_high_resolution_clock
    - Botan_Tests::OS_Utils_Tests::test_get_cpu_numbers
    - Botan_Tests::OS_Utils_Tests::test_get_cpu_cycle_counter
    - Botan_Tests::OS_Utils_Tests::test_get_process_id
    - Botan_Tests::OS_Utils_Tests::test_cpu_instruction_probe
    - Botan_Tests::OS_Utils_Tests::test_memory_locking
    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_eq
      Src: /src/botan/src/tests/test_os_utils.cpp:54,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_os_utils.cpp:54,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_os_utils.cpp:54,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_os_utils.cpp:57,1
    - Dst: Test::Result::test_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_eq
    - Test::Result::test_ne
    - Botan::OS::get_process_id
    - static_cast<size_t>
    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_is_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_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_lt
    - Test::Result::test_is_eq
    - Botan::OS::get_cpu_cycle_counter
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_get_cpu_cycle_counter()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OS::get_high_resolution_clock
      Src: /src/botan/src/tests/test_os_utils.cpp:96,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_os_utils.cpp:97,1
    - Dst: Botan::OS::get_high_resolution_clock
      Src: /src/botan/src/tests/test_os_utils.cpp:100,1
    - Dst: Test::Result::test_lt
      Src: /src/botan/src/tests/test_os_utils.cpp:104,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 107
    functionName: Botan_Tests::OS_Utils_Tests::test_get_high_resolution_clock
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 4
    functionsReached:
    - Botan::OS::get_high_resolution_clock
    - Test::Result::test_lt
    - Test::Result::confirm
    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:112,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_os_utils.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 117
    functionName: Botan_Tests::OS_Utils_Tests::test_get_cpu_numbers
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 4
    functionsReached:
    - Botan::OS::get_cpu_available
    - Test::Result::test_gte
    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:123,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_os_utils.cpp:124,1
    - Dst: Botan::OS::get_process_id
      Src: /src/botan/src/tests/test_os_utils.cpp:127,1
    - Dst: Botan::OS::get_system_timestamp_ns
      Src: /src/botan/src/tests/test_os_utils.cpp:129,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_os_utils.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 134
    functionName: Botan_Tests::OS_Utils_Tests::test_get_system_timestamp
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 4
    functionsReached:
    - Test::Result::confirm
    - Botan::OS::get_system_timestamp_ns
    - Botan::OS::get_process_id
    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: 142
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 142
    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:150,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_os_utils.cpp:153,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_os_utils.cpp:157,1
    - Dst: Botan::OS::run_cpu_instruction_probe
      Src: /src/botan/src/tests/test_os_utils.cpp:188,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_os_utils.cpp:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 193
    functionName: Botan_Tests::OS_Utils_Tests::test_cpu_instruction_probe
    functionSourceFile: /src/botan/src/tests/test_os_utils.cpp
    functionUses: 4
    functionsReached:
    - Test::Result::confirm
    - Botan::OS::run_cpu_instruction_probe
    - Test::Result::test_note
    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: 17
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 17
    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:20,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_zfec.cpp:21,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_zfec.cpp:23,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_zfec.cpp:24,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_zfec.cpp:26,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_zfec.cpp:27,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_zfec.cpp:32,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_zfec.cpp:34,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_zfec.cpp:35,1
    - Dst: std::map::insert
      Src: /src/botan/src/tests/test_zfec.cpp:48,1
    - Dst: std::make_pair
      Src: /src/botan/src/tests/test_zfec.cpp:48,1
    - Dst: Botan::ZFEC::provider
      Src: /src/botan/src/tests/test_zfec.cpp:53,1
    - Dst: std::set::insert
      Src: /src/botan/src/tests/test_zfec.cpp:58,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_zfec.cpp:59,1
    - Dst: Test::Result::test_lt
      Src: /src/botan/src/tests/test_zfec.cpp:62,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_zfec.cpp:64,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_zfec.cpp:64,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_zfec.cpp:64,1
    - Dst: Botan::ZFEC::encode
      Src: /src/botan/src/tests/test_zfec.cpp:67,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_zfec.cpp:67,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_zfec.cpp:67,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_zfec.cpp:69,1
    - Dst: std::set::size
      Src: /src/botan/src/tests/test_zfec.cpp:69,1
    - Dst: std::set::insert
      Src: /src/botan/src/tests/test_zfec.cpp:75,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_zfec.cpp:76,1
    - Dst: Test::Result::test_lt
      Src: /src/botan/src/tests/test_zfec.cpp:79,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_zfec.cpp:81,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_zfec.cpp:82,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_zfec.cpp:82,1
    - Dst: Botan::ZFEC::decode_shares
      Src: /src/botan/src/tests/test_zfec.cpp:85,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_zfec.cpp:87,1
    - Dst: std::set::size
      Src: /src/botan/src/tests/test_zfec.cpp:87,1
    - Dst: std::set::clear
      Src: /src/botan/src/tests/test_zfec.cpp:90,1
    - Dst: std::map::size
      Src: /src/botan/src/tests/test_zfec.cpp:92,1
    - Dst: Botan_Tests::ZFEC_KAT::rng
      Src: /src/botan/src/tests/test_zfec.cpp:93,1
    - Dst: std::map::erase
      Src: /src/botan/src/tests/test_zfec.cpp:94,1
    - Dst: Botan::ZFEC::decode_shares
      Src: /src/botan/src/tests/test_zfec.cpp:97,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_zfec.cpp:99,1
    - Dst: std::set::size
      Src: /src/botan/src/tests/test_zfec.cpp:99,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 102
    functionName: Botan_Tests::ZFEC_KAT::run_one_test
    functionSourceFile: /src/botan/src/tests/test_zfec.cpp
    functionUses: 0
    functionsReached:
    - Botan::ZFEC::provider
    - Test::Result::test_failure
    - Botan::ZFEC::encode
    - std::map::erase
    - Botan_Tests::ZFEC_KAT::rng
    - Test::Result::test_lt
    - std::map::size
    - Test_Error
    - std::vector::data
    - get_req_sz
    - std::set::size
    - std::set::insert
    - get_req_bin
    - std::set::clear
    - std::vector::size
    - std::make_pair
    - std::string::c_str
    - Botan::ZFEC::decode_shares
    - std::map::insert
    - Test::Result::test_eq
    - std::to_string
    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: 17
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 17
    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:20,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_zfec.cpp:21,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_zfec.cpp:23,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_zfec.cpp:24,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_zfec.cpp:26,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_zfec.cpp:27,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_zfec.cpp:32,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_zfec.cpp:34,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_zfec.cpp:35,1
    - Dst: std::map::insert
      Src: /src/botan/src/tests/test_zfec.cpp:48,1
    - Dst: std::make_pair
      Src: /src/botan/src/tests/test_zfec.cpp:48,1
    - Dst: Botan::ZFEC::provider
      Src: /src/botan/src/tests/test_zfec.cpp:53,1
    - Dst: std::set::insert
      Src: /src/botan/src/tests/test_zfec.cpp:58,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_zfec.cpp:59,1
    - Dst: Test::Result::test_lt
      Src: /src/botan/src/tests/test_zfec.cpp:62,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_zfec.cpp:64,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_zfec.cpp:64,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_zfec.cpp:64,1
    - Dst: Botan::ZFEC::encode
      Src: /src/botan/src/tests/test_zfec.cpp:67,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_zfec.cpp:67,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_zfec.cpp:67,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_zfec.cpp:69,1
    - Dst: std::set::size
      Src: /src/botan/src/tests/test_zfec.cpp:69,1
    - Dst: std::set::insert
      Src: /src/botan/src/tests/test_zfec.cpp:75,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_zfec.cpp:76,1
    - Dst: Test::Result::test_lt
      Src: /src/botan/src/tests/test_zfec.cpp:79,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_zfec.cpp:81,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_zfec.cpp:82,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_zfec.cpp:82,1
    - Dst: Botan::ZFEC::decode_shares
      Src: /src/botan/src/tests/test_zfec.cpp:85,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_zfec.cpp:87,1
    - Dst: std::set::size
      Src: /src/botan/src/tests/test_zfec.cpp:87,1
    - Dst: std::set::clear
      Src: /src/botan/src/tests/test_zfec.cpp:90,1
    - Dst: std::map::size
      Src: /src/botan/src/tests/test_zfec.cpp:92,1
    - Dst: Botan_Tests::ZFEC_KAT::rng
      Src: /src/botan/src/tests/test_zfec.cpp:93,1
    - Dst: std::map::erase
      Src: /src/botan/src/tests/test_zfec.cpp:94,1
    - Dst: Botan::ZFEC::decode_shares
      Src: /src/botan/src/tests/test_zfec.cpp:97,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_zfec.cpp:99,1
    - Dst: std::set::size
      Src: /src/botan/src/tests/test_zfec.cpp:99,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 102
    functionName: Botan_Tests::ZFEC_KAT::run_one_test
    functionSourceFile: /src/botan/src/tests/test_zfec.cpp
    functionUses: 0
    functionsReached:
    - Botan::ZFEC::provider
    - Test::Result::test_failure
    - Botan::ZFEC::encode
    - std::map::erase
    - Botan_Tests::ZFEC_KAT::rng
    - Test::Result::test_lt
    - std::map::size
    - Test_Error
    - std::vector::data
    - get_req_sz
    - std::set::size
    - std::set::insert
    - get_req_bin
    - std::set::clear
    - std::vector::size
    - std::make_pair
    - std::string::c_str
    - Botan::ZFEC::decode_shares
    - std::map::insert
    - Test::Result::test_eq
    - std::to_string
    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_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_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_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_eq
      Src: /src/botan/src/tests/test_srp6.cpp:78,1
    - Dst: Test::Result::test_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:
    - Botan::SRP6_Server_Session::step1
    - BigInt::bits
    - Botan::srp6_generate_verifier
    - Test_Error
    - Botan::SymmetricKey
    - Botan_Tests::Test::run_long_tests
    - Botan::DL_Group::from_name
    - Botan::SRP6_Server_Session::step2
    - Botan::srp6_client_agree
    - Botan::srp6_group_identifier
    - std::string::empty
    - Test::Result::test_eq
    - Botan::HashFunction::create
    - get_req_bin
    - get_req_bn
    - Botan::BigInt::from_bytes
    - get_req_str
    - Test::Result::test_note
    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_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:
    - Test::Result::start_timer
    - Botan::SRP6_Server_Session::step1
    - Test::Result::end_timer
    - std::vector::push_back
    - srp6_client_agree
    - Botan_Tests::Test::run_long_tests
    - auto::second::bits_of
    - Botan_Tests::SRP6_RT_Tests::rng
    - Test::Result::test_eq
    - std::to_string
    - Botan::SRP6_Server_Session::step2
    - Botan::SymmetricKey::bits_of
    - Botan::srp6_generate_verifier
    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_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_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_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_eq
      Src: /src/botan/src/tests/test_srp6.cpp:78,1
    - Dst: Test::Result::test_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:
    - Botan::SRP6_Server_Session::step1
    - BigInt::bits
    - Botan::srp6_generate_verifier
    - Test_Error
    - Botan::SymmetricKey
    - Botan_Tests::Test::run_long_tests
    - Botan::DL_Group::from_name
    - Botan::SRP6_Server_Session::step2
    - Botan::srp6_client_agree
    - Botan::srp6_group_identifier
    - std::string::empty
    - Test::Result::test_eq
    - Botan::HashFunction::create
    - get_req_bin
    - get_req_bn
    - Botan::BigInt::from_bytes
    - get_req_str
    - Test::Result::test_note
    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_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:
    - Test::Result::start_timer
    - Botan::SRP6_Server_Session::step1
    - Test::Result::end_timer
    - std::vector::push_back
    - srp6_client_agree
    - Botan_Tests::Test::run_long_tests
    - auto::second::bits_of
    - Botan_Tests::SRP6_RT_Tests::rng
    - Test::Result::test_eq
    - std::to_string
    - Botan::SRP6_Server_Session::step2
    - Botan::SymmetricKey::bits_of
    - Botan::srp6_generate_verifier
    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_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_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_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_eq
      Src: /src/botan/src/tests/test_srp6.cpp:78,1
    - Dst: Test::Result::test_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:
    - Botan::SRP6_Server_Session::step1
    - BigInt::bits
    - Botan::srp6_generate_verifier
    - Test_Error
    - Botan::SymmetricKey
    - Botan_Tests::Test::run_long_tests
    - Botan::DL_Group::from_name
    - Botan::SRP6_Server_Session::step2
    - Botan::srp6_client_agree
    - Botan::srp6_group_identifier
    - std::string::empty
    - Test::Result::test_eq
    - Botan::HashFunction::create
    - get_req_bin
    - get_req_bn
    - Botan::BigInt::from_bytes
    - get_req_str
    - Test::Result::test_note
    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_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:
    - Test::Result::start_timer
    - Botan::SRP6_Server_Session::step1
    - Test::Result::end_timer
    - std::vector::push_back
    - srp6_client_agree
    - Botan_Tests::Test::run_long_tests
    - auto::second::bits_of
    - Botan_Tests::SRP6_RT_Tests::rng
    - Test::Result::test_eq
    - std::to_string
    - Botan::SRP6_Server_Session::step2
    - Botan::SymmetricKey::bits_of
    - Botan::srp6_generate_verifier
    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_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_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_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_eq
      Src: /src/botan/src/tests/test_srp6.cpp:78,1
    - Dst: Test::Result::test_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:
    - Botan::SRP6_Server_Session::step1
    - BigInt::bits
    - Botan::srp6_generate_verifier
    - Test_Error
    - Botan::SymmetricKey
    - Botan_Tests::Test::run_long_tests
    - Botan::DL_Group::from_name
    - Botan::SRP6_Server_Session::step2
    - Botan::srp6_client_agree
    - Botan::srp6_group_identifier
    - std::string::empty
    - Test::Result::test_eq
    - Botan::HashFunction::create
    - get_req_bin
    - get_req_bn
    - Botan::BigInt::from_bytes
    - get_req_str
    - Test::Result::test_note
    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_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:
    - Test::Result::start_timer
    - Botan::SRP6_Server_Session::step1
    - Test::Result::end_timer
    - std::vector::push_back
    - srp6_client_agree
    - Botan_Tests::Test::run_long_tests
    - auto::second::bits_of
    - Botan_Tests::SRP6_RT_Tests::rng
    - Test::Result::test_eq
    - std::to_string
    - Botan::SRP6_Server_Session::step2
    - Botan::SymmetricKey::bits_of
    - Botan::srp6_generate_verifier
    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:31,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_simd.cpp:32,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:49,1
    - Dst: Botan::SIMD_4x32::SIMD_4x32
      Src: /src/botan/src/tests/test_simd.cpp:49,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:50,1
    - Dst: Botan::SIMD_4x32::SIMD_4x32
      Src: /src/botan/src/tests/test_simd.cpp:50,1
    - Dst: Botan::SIMD_4x32::splat
      Src: /src/botan/src/tests/test_simd.cpp:52,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:54,1
    - Dst: Botan::SIMD_4x32::rotl
      Src: /src/botan/src/tests/test_simd.cpp:58,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:60,1
    - Dst: Botan::rotl<3>
      Src: /src/botan/src/tests/test_simd.cpp:63,1
    - Dst: Botan::rotl<3>
      Src: /src/botan/src/tests/test_simd.cpp:64,1
    - Dst: Botan::rotl<3>
      Src: /src/botan/src/tests/test_simd.cpp:65,1
    - Dst: Botan::rotl<3>
      Src: /src/botan/src/tests/test_simd.cpp:66,1
    - Dst: Botan::SIMD_4x32::rotr
      Src: /src/botan/src/tests/test_simd.cpp:68,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:70,1
    - Dst: Botan::rotr<9>
      Src: /src/botan/src/tests/test_simd.cpp:73,1
    - Dst: Botan::rotr<9>
      Src: /src/botan/src/tests/test_simd.cpp:74,1
    - Dst: Botan::rotr<9>
      Src: /src/botan/src/tests/test_simd.cpp:75,1
    - Dst: Botan::rotr<9>
      Src: /src/botan/src/tests/test_simd.cpp:76,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      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:82,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:85,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      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:88,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:89,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:95,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:97,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:100,1
    - Dst: Botan::SIMD_4x32::shr
      Src: /src/botan/src/tests/test_simd.cpp:102,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:103,1
    - Dst: Botan::SIMD_4x32::shl
      Src: /src/botan/src/tests/test_simd.cpp:105,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:109,1
    - Dst: Botan::SIMD_4x32::andc
      Src: /src/botan/src/tests/test_simd.cpp:111,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:112,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:115,1
    - Dst: Botan::SIMD_4x32::bswap
      Src: /src/botan/src/tests/test_simd.cpp:117,1
    - Dst: Botan::reverse_bytes
      Src: /src/botan/src/tests/test_simd.cpp:118,1
    - Dst: Botan::reverse_bytes
      Src: /src/botan/src/tests/test_simd.cpp:119,1
    - Dst: Botan::reverse_bytes
      Src: /src/botan/src/tests/test_simd.cpp:120,1
    - Dst: Botan::reverse_bytes
      Src: /src/botan/src/tests/test_simd.cpp:121,1
    - Dst: Botan::SIMD_4x32::transpose
      Src: /src/botan/src/tests/test_simd.cpp:128,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:130,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:131,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:132,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:133,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:135,1
    - Dst: Botan::SIMD_4x32::shift_elems_left
      Src: /src/botan/src/tests/test_simd.cpp:135,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:136,1
    - Dst: Botan::SIMD_4x32::shift_elems_left
      Src: /src/botan/src/tests/test_simd.cpp:136,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:137,1
    - Dst: Botan::SIMD_4x32::shift_elems_left
      Src: /src/botan/src/tests/test_simd.cpp:137,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:139,1
    - Dst: Botan::SIMD_4x32::shift_elems_right
      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:140,1
    - Dst: Botan::SIMD_4x32::shift_elems_right
      Src: /src/botan/src/tests/test_simd.cpp:140,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:141,1
    - Dst: Botan::SIMD_4x32::shift_elems_right
      Src: /src/botan/src/tests/test_simd.cpp:141,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_simd.cpp:144,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_simd.cpp:145,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_simd.cpp:146,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_simd.cpp:147,1
    - Dst: Botan::load_le<Botan::SIMD_4x32>
      Src: /src/botan/src/tests/test_simd.cpp:149,1
    - Dst: Botan::load_be<Botan::SIMD_4x32>
      Src: /src/botan/src/tests/test_simd.cpp:150,1
    - Dst: Botan::load_le<std::array<Botan::SIMD_4x32, 2>>
      Src: /src/botan/src/tests/test_simd.cpp:151,1
    - Dst: Botan::load_be<std::array<Botan::SIMD_4x32, 2>>
      Src: /src/botan/src/tests/test_simd.cpp:152,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_simd.cpp:154,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_simd.cpp:155,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_simd.cpp:156,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_simd.cpp:157,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_simd.cpp:159,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_simd.cpp:160,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_simd.cpp:161,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_simd.cpp:161,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_simd.cpp:161,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_simd.cpp:162,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_simd.cpp:163,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_simd.cpp:164,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_simd.cpp:164,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_simd.cpp:164,1
    - Dst: Botan::load_le<StrongSIMD>
      Src: /src/botan/src/tests/test_simd.cpp:168,1
    - Dst: Botan::load_be<StrongSIMD>
      Src: /src/botan/src/tests/test_simd.cpp:169,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_simd.cpp:171,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_simd.cpp:172,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_simd.cpp:173,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_simd.cpp:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 177
    functionName: Botan_Tests::SIMD_4X32_Tests::run
    functionSourceFile: /src/botan/src/tests/test_simd.cpp
    functionUses: 0
    functionsReached:
    - has
    - Botan::hex_decode
    - Botan::SIMD_4x32::shr
    - Botan::store_le<std::vector<uint8_t>>
    - Botan::SIMD_4x32::SIMD_4x32
    - Botan::load_be<Botan::SIMD_4x32>
    - auto::end
    - Botan::SIMD_4x32::andc
    - Botan::load_be<std::array<Botan::SIMD_4x32, 2>>
    - std::vector
    - Botan::SIMD_4x32::rotl
    - Botan::rotr<9>
    - Test::Result::test_is_eq
    - Botan::reverse_bytes
    - Botan::load_le<std::array<Botan::SIMD_4x32, 2>>
    - Botan::SIMD_4x32::transpose
    - Botan::SIMD_4x32::shl
    - Botan::SIMD_4x32::bswap
    - Botan::load_be<StrongSIMD>
    - Botan::SIMD_4x32::shift_elems_right
    - Botan::SIMD_4x32::shift_elems_left
    - auto::begin
    - Test::Result::test_note
    - Botan::load_le<Botan::SIMD_4x32>
    - Botan::SIMD_4x32::splat
    - Botan::concat
    - Botan::store_be
    - Botan::load_le<StrongSIMD>
    - Botan::SIMD_4x32::rotr
    - Botan_Tests::SIMD_4X32_Tests::test_eq
    - Botan::rotl<3>
    - Botan::store_be<std::vector<uint8_t>>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store_be
      Src: /src/botan/src/tests/test_simd.cpp:198,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_simd.cpp:200,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:201,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_simd.cpp:202,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:203,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_simd.cpp:204,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:205,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_simd.cpp:206,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:207,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/tests/test_simd.cpp:211,1
    - Dst: Botan::SIMD_4x32::store_be
      Src: /src/botan/src/tests/test_simd.cpp:212,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:213,1
    - Dst: store_le
      Src: /src/botan/src/tests/test_simd.cpp:215,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_simd.cpp:217,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:218,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_simd.cpp:219,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:220,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_simd.cpp:221,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:222,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_simd.cpp:223,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:224,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/tests/test_simd.cpp:228,1
    - Dst: Botan::SIMD_4x32::store_le
      Src: /src/botan/src/tests/test_simd.cpp:229,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:230,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: 232
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 232
    functionName: Botan_Tests::SIMD_4X32_Tests::test_eq
    functionSourceFile: /src/botan/src/tests/test_simd.cpp
    functionUses: 2
    functionsReached:
    - Botan::make_uint32
    - Botan::SIMD_4x32::store_be
    - store_le
    - store_be
    - Botan::SIMD_4x32::store_le
    - test_int_eq
    - Botan::SIMD_4x32::load_be
    - Botan_Tests::SIMD_4X32_Tests::test_eq
    - Botan::SIMD_4x32::load_le
    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:31,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_simd.cpp:32,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:49,1
    - Dst: Botan::SIMD_4x32::SIMD_4x32
      Src: /src/botan/src/tests/test_simd.cpp:49,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:50,1
    - Dst: Botan::SIMD_4x32::SIMD_4x32
      Src: /src/botan/src/tests/test_simd.cpp:50,1
    - Dst: Botan::SIMD_4x32::splat
      Src: /src/botan/src/tests/test_simd.cpp:52,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:54,1
    - Dst: Botan::SIMD_4x32::rotl
      Src: /src/botan/src/tests/test_simd.cpp:58,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:60,1
    - Dst: Botan::rotl<3>
      Src: /src/botan/src/tests/test_simd.cpp:63,1
    - Dst: Botan::rotl<3>
      Src: /src/botan/src/tests/test_simd.cpp:64,1
    - Dst: Botan::rotl<3>
      Src: /src/botan/src/tests/test_simd.cpp:65,1
    - Dst: Botan::rotl<3>
      Src: /src/botan/src/tests/test_simd.cpp:66,1
    - Dst: Botan::SIMD_4x32::rotr
      Src: /src/botan/src/tests/test_simd.cpp:68,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:70,1
    - Dst: Botan::rotr<9>
      Src: /src/botan/src/tests/test_simd.cpp:73,1
    - Dst: Botan::rotr<9>
      Src: /src/botan/src/tests/test_simd.cpp:74,1
    - Dst: Botan::rotr<9>
      Src: /src/botan/src/tests/test_simd.cpp:75,1
    - Dst: Botan::rotr<9>
      Src: /src/botan/src/tests/test_simd.cpp:76,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      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:82,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:85,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      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:88,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:89,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:95,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:97,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:100,1
    - Dst: Botan::SIMD_4x32::shr
      Src: /src/botan/src/tests/test_simd.cpp:102,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:103,1
    - Dst: Botan::SIMD_4x32::shl
      Src: /src/botan/src/tests/test_simd.cpp:105,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:109,1
    - Dst: Botan::SIMD_4x32::andc
      Src: /src/botan/src/tests/test_simd.cpp:111,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:112,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:115,1
    - Dst: Botan::SIMD_4x32::bswap
      Src: /src/botan/src/tests/test_simd.cpp:117,1
    - Dst: Botan::reverse_bytes
      Src: /src/botan/src/tests/test_simd.cpp:118,1
    - Dst: Botan::reverse_bytes
      Src: /src/botan/src/tests/test_simd.cpp:119,1
    - Dst: Botan::reverse_bytes
      Src: /src/botan/src/tests/test_simd.cpp:120,1
    - Dst: Botan::reverse_bytes
      Src: /src/botan/src/tests/test_simd.cpp:121,1
    - Dst: Botan::SIMD_4x32::transpose
      Src: /src/botan/src/tests/test_simd.cpp:128,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:130,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:131,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:132,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:133,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:135,1
    - Dst: Botan::SIMD_4x32::shift_elems_left
      Src: /src/botan/src/tests/test_simd.cpp:135,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:136,1
    - Dst: Botan::SIMD_4x32::shift_elems_left
      Src: /src/botan/src/tests/test_simd.cpp:136,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:137,1
    - Dst: Botan::SIMD_4x32::shift_elems_left
      Src: /src/botan/src/tests/test_simd.cpp:137,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:139,1
    - Dst: Botan::SIMD_4x32::shift_elems_right
      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:140,1
    - Dst: Botan::SIMD_4x32::shift_elems_right
      Src: /src/botan/src/tests/test_simd.cpp:140,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:141,1
    - Dst: Botan::SIMD_4x32::shift_elems_right
      Src: /src/botan/src/tests/test_simd.cpp:141,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_simd.cpp:144,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_simd.cpp:145,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_simd.cpp:146,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_simd.cpp:147,1
    - Dst: Botan::load_le<Botan::SIMD_4x32>
      Src: /src/botan/src/tests/test_simd.cpp:149,1
    - Dst: Botan::load_be<Botan::SIMD_4x32>
      Src: /src/botan/src/tests/test_simd.cpp:150,1
    - Dst: Botan::load_le<std::array<Botan::SIMD_4x32, 2>>
      Src: /src/botan/src/tests/test_simd.cpp:151,1
    - Dst: Botan::load_be<std::array<Botan::SIMD_4x32, 2>>
      Src: /src/botan/src/tests/test_simd.cpp:152,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_simd.cpp:154,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_simd.cpp:155,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_simd.cpp:156,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_simd.cpp:157,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_simd.cpp:159,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_simd.cpp:160,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_simd.cpp:161,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_simd.cpp:161,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_simd.cpp:161,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_simd.cpp:162,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_simd.cpp:163,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_simd.cpp:164,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_simd.cpp:164,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_simd.cpp:164,1
    - Dst: Botan::load_le<StrongSIMD>
      Src: /src/botan/src/tests/test_simd.cpp:168,1
    - Dst: Botan::load_be<StrongSIMD>
      Src: /src/botan/src/tests/test_simd.cpp:169,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_simd.cpp:171,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_simd.cpp:172,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_simd.cpp:173,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_simd.cpp:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 177
    functionName: Botan_Tests::SIMD_4X32_Tests::run
    functionSourceFile: /src/botan/src/tests/test_simd.cpp
    functionUses: 0
    functionsReached:
    - has
    - Botan::hex_decode
    - Botan::SIMD_4x32::shr
    - Botan::store_le<std::vector<uint8_t>>
    - Botan::SIMD_4x32::SIMD_4x32
    - Botan::load_be<Botan::SIMD_4x32>
    - auto::end
    - Botan::SIMD_4x32::andc
    - Botan::load_be<std::array<Botan::SIMD_4x32, 2>>
    - std::vector
    - Botan::SIMD_4x32::rotl
    - Botan::rotr<9>
    - Test::Result::test_is_eq
    - Botan::reverse_bytes
    - Botan::load_le<std::array<Botan::SIMD_4x32, 2>>
    - Botan::SIMD_4x32::transpose
    - Botan::SIMD_4x32::shl
    - Botan::SIMD_4x32::bswap
    - Botan::load_be<StrongSIMD>
    - Botan::SIMD_4x32::shift_elems_right
    - Botan::SIMD_4x32::shift_elems_left
    - auto::begin
    - Test::Result::test_note
    - Botan::load_le<Botan::SIMD_4x32>
    - Botan::SIMD_4x32::splat
    - Botan::concat
    - Botan::store_be
    - Botan::load_le<StrongSIMD>
    - Botan::SIMD_4x32::rotr
    - Botan_Tests::SIMD_4X32_Tests::test_eq
    - Botan::rotl<3>
    - Botan::store_be<std::vector<uint8_t>>
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store_be
      Src: /src/botan/src/tests/test_simd.cpp:198,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_simd.cpp:200,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:201,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_simd.cpp:202,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:203,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_simd.cpp:204,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:205,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_simd.cpp:206,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:207,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/tests/test_simd.cpp:211,1
    - Dst: Botan::SIMD_4x32::store_be
      Src: /src/botan/src/tests/test_simd.cpp:212,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:213,1
    - Dst: store_le
      Src: /src/botan/src/tests/test_simd.cpp:215,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_simd.cpp:217,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:218,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_simd.cpp:219,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:220,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_simd.cpp:221,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:222,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_simd.cpp:223,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_simd.cpp:224,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/tests/test_simd.cpp:228,1
    - Dst: Botan::SIMD_4x32::store_le
      Src: /src/botan/src/tests/test_simd.cpp:229,1
    - Dst: Botan_Tests::SIMD_4X32_Tests::test_eq
      Src: /src/botan/src/tests/test_simd.cpp:230,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: 232
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 232
    functionName: Botan_Tests::SIMD_4X32_Tests::test_eq
    functionSourceFile: /src/botan/src/tests/test_simd.cpp
    functionUses: 4
    functionsReached:
    - Botan::make_uint32
    - Botan::SIMD_4x32::store_be
    - store_le
    - store_be
    - Botan::SIMD_4x32::store_le
    - test_int_eq
    - Botan::SIMD_4x32::load_be
    - Botan_Tests::SIMD_4X32_Tests::test_eq
    - Botan::SIMD_4x32::load_le
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_x509_rpki.cpp:41,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/test_x509_rpki.cpp:41,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:43,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/test_x509_rpki.cpp:44,1
    - Dst: Botan::calendar_point::to_std_timepoint
      Src: /src/botan/src/tests/test_x509_rpki.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - y
    - m
    - d
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: Botan_Tests::from_date
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 28
    functionsReached:
    - static_cast<uint32_t>
    - Botan::calendar_point::to_std_timepoint
    - Botan::X509_Time
    - Botan::TLS::detail::AsyncBase::complete_now
    - Botan::calendar_point
    linkageType: ''
    returnType: Botan::X509_Time
    signature: Botan::X509_Time from_date(const int y, const int m, const int d)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_x509_rpki.cpp:53,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:63,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ' algo'
    - ' rng'
    argTypes:
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 64
    functionName: Botan_Tests::generate_key
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - Botan::create_private_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> generate_key(const std::string&
      algo, Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/test_x509_rpki.cpp:72,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 77
    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:85,1
    - Dst: Botan::X509_Cert_Options::not_before
      Src: /src/botan/src/tests/test_x509_rpki.cpp:87,1
    - Dst: Botan::X509_Cert_Options::not_after
      Src: /src/botan/src/tests/test_x509_rpki.cpp:88,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 99
    functionName: Botan_Tests::req_opts
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Cert_Options::not_after
    - Botan::X509_Cert_Options::set_padding_scheme
    - Botan::X509_Cert_Options::not_before
    linkageType: ''
    returnType: Botan::X509_Cert_Options
    signature: Botan::X509_Cert_Options req_opts(const std::string& algo, const std::string&
      sig_padding = "")
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_tuple
      Src: /src/botan/src/tests/test_x509_rpki.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 117
    functionName: Botan_Tests::get_sig_algo_padding
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - std::make_tuple
    linkageType: ''
    returnType: std::tuple<std::string, std::string, std::string>
    signature: std::tuple<std::string, std::string, std::string> get_sig_algo_padding()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:120,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:120,1
    - Dst: Botan_Tests::get_sig_algo_padding
      Src: /src/botan/src/tests/test_x509_rpki.cpp:121,1
    - Dst: Botan_Tests::generate_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:122,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/test_x509_rpki.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - std::unique_ptr<Botan::RandomNumberGenerator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 126
    functionName: Botan_Tests::make_self_signed
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan_Tests::ca_opts
    - Botan_Tests::generate_key
    - Botan_Tests::get_sig_algo_padding
    - Botan::X509::create_self_signed_cert
    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:129,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:129,1
    - Dst: Botan_Tests::get_sig_algo_padding
      Src: /src/botan/src/tests/test_x509_rpki.cpp:130,1
    - Dst: Botan_Tests::generate_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:131,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/test_x509_rpki.cpp:132,1
    - Dst: Botan_Tests::generate_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:134,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:136,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - std::unique_ptr<Botan::RandomNumberGenerator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 137
    functionName: Botan_Tests::make_ca
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan_Tests::ca_opts
    - Botan_Tests::generate_key
    - Botan_Tests::get_sig_algo_padding
    - Botan::X509::create_self_signed_cert
    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
      Src: /src/botan/src/tests/test_x509_rpki.cpp:143,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:145,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:146,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:146,1
    - Dst: Botan_Tests::generate_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:148,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:150,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:151,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:151,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:151,1
    - Dst: std::make_pair
      Src: /src/botan/src/tests/test_x509_rpki.cpp:154,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:154,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:154,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: 155
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 155
    functionName: Botan_Tests::make_and_sign_ca
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan_Tests::ca_opts
    - std::make_pair
    - Botan_Tests::from_date
    - Botan::X509_Cert_Options::extensions::add
    - Botan_Tests::generate_key
    - Botan_Tests::get_sig_algo_padding
    - sign_request
    - Botan::X509::create_cert_req
    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:164,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:169,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:170,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:172,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:173,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:174,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:174,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:176,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:176,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:177,1
    - Dst: addr_choice
      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_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:187,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:187,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:188,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:188,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:190,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:190,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:191,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:191,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:192,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:192,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:193,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:193,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:195,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:195,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:196,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:196,1
    - Dst: ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:198,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:206,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:207,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:209,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:210,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:212,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:213,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:215,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:216,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:218,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:219,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:221,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:222,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:224,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:225,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:227,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:228,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:233,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:234,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:246,1
    - Dst: Test::Result::test_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_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:249,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:249,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:250,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:252,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:252,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:254,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:254,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:256,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:256,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:258,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:258,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:259,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:259,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:260,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:260,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:262,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:262,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:263,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:265,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:265,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:267,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:267,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:269,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:269,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:271,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:271,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:272,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:273,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:275,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:276,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:279,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:279,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:280,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:282,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:282,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:286,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:290,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:290,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:290,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:292,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:293,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 298
    functionName: Botan_Tests::test_x509_ip_addr_blocks_extension_decode
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - safi
    - std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
    - Test::Result::end_timer
    - Botan::Cert_Extension::static_oid
    - min
    - Botan_Tests::Test::data_file
    - ranges
    - size
    - std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
    - max
    - auto*::addr_blocks
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::X509_Certificate::v3_extensions
    - addr_choice
    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:302,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:307,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:309,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:311,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:312,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:314,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:315,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:318,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:318,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:319,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:319,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:322,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:322,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:323,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:323,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:327,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:329,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:331,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:332,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:334,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:335,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:335,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:338,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:338,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:339,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:339,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:343,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:345,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:347,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:348,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:350,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:350,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:351,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:354,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:354,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:355,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:355,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:359,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:361,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:363,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:364,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:366,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:366,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:367,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:370,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:370,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:371,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:371,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 376
    functionName: Botan_Tests::test_x509_as_blocks_extension_decode
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - asnum
    - Test::Result::end_timer
    - min
    - Botan_Tests::Test::data_file
    - rdi
    - max
    - Test::Result::confirm
    - auto*::as_identifiers
    - Botan::X509_Certificate::v3_extensions
    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:382,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:385,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:388,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:389,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:390,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:391,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:392,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:393,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:394,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:395,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:397,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:398,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:398,1
    - Dst: Botan_Tests::make_self_signed
      Src: /src/botan/src/tests/test_x509_rpki.cpp:400,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:402,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:402,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:404,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:409,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:411,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:412,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:412,1
    - Dst: std::optional<uint8_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:412,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:414,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:414,1
    - Dst: Test::Result::test_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_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_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_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_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:421,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:421,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:422,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:422,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:424,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:424,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:425,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:425,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:427,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:427,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:428,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:428,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:430,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:430,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:430,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:431,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:433,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:433,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:433,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:436,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:437,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:440,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:441,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:442,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:444,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:445,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:445,1
    - Dst: Botan_Tests::make_self_signed
      Src: /src/botan/src/tests/test_x509_rpki.cpp:447,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:449,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:449,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:452,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:456,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:458,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:459,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:459,1
    - Dst: std::optional<uint8_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:459,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:461,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:461,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:462,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:462,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:463,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:463,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:465,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:465,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:466,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:466,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:468,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:468,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:468,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:469,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:471,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:471,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:471,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:473,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:474,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:474,1
    - Dst: std::optional<uint8_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:474,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:476,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:476,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:477,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:478,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:480,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:481,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 380
    functionDepth: 3
    functionLinenumber: 380
    functionLinenumberEnd: 486
    functionName: Botan_Tests::test_x509_ip_addr_blocks_rfc3779_example
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
    - max
    - Botan_Tests::make_self_signed
    - auto::addr_choice
    - safi
    - min
    - std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
    - Botan_Tests::Test::new_rng
    - Test::Result::start_timer
    - Botan::Cert_Extension::static_oid
    - auto::v3_extensions
    - std::make_unique<IPAddressBlocks>
    - std::unique_ptr::add_address
    - std::unique_ptr::inherit
    - addr_choice
    - std::move
    - Test::Result::end_timer
    - Botan_Tests::ca_opts
    - Test::Result::test_eq
    - auto*::addr_blocks
    - Botan::X509_Cert_Options::extensions::add
    - std::optional<uint8_t>
    - Test::Result::confirm
    - auto::safi
    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:490,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:493,1
    - Dst: std::make_unique<IPAddressBlocks>
      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: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:502,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:504,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:507,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:509,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:511,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:512,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:512,1
    - Dst: Botan_Tests::make_self_signed
      Src: /src/botan/src/tests/test_x509_rpki.cpp:514,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:515,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:515,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:518,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 488
    functionDepth: 3
    functionLinenumber: 488
    functionLinenumberEnd: 525
    functionName: Botan_Tests::test_x509_ip_addr_blocks_encode_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - std::move
    - Test::Result::end_timer
    - Botan::Cert_Extension::static_oid
    - Botan_Tests::ca_opts
    - auto::v3_extensions
    - std::make_unique<IPAddressBlocks>
    - std::unique_ptr::add_address
    - Test::Result::test_eq
    - Botan::X509_Cert_Options::extensions::add
    - Botan_Tests::make_self_signed
    - 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: 536
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 536
    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: 536
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 536
    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:542,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:546,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:548,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:551,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:552,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:553,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:554,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:555,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:556,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:558,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:561,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:563,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:567,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:569,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:573,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      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:580,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:584,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:587,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:591,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:593,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:595,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:596,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:597,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:598,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:600,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:601,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:602,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:603,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: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:610,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:615,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:616,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:617,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:618,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:621,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:623,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:626,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:628,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:631,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:632,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:636,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:639,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:642,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:644,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:644,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:646,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:647,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:647,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:647,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:649,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:650,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:652,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:654,1
    - Dst: empty
      Src: /src/botan/src/tests/test_x509_rpki.cpp:654,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:660,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:660,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:660,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:661,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:661,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:661,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:662,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:662,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:665,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:667,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:667,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:667,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:668,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:668,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:668,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:669,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:669,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:669,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:670,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:670,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:670,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:671,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:671,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:671,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:672,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:672,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:672,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:673,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:673,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:673,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:674,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:674,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:674,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:676,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_x509_rpki.cpp:676,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:679,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:679,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:684,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:685,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:685,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:685,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:686,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:686,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:686,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:687,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:687,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:689,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:691,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:691,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:691,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:692,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:692,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:692,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:693,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:693,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:693,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:694,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:694,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:694,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:695,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:695,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:695,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:696,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:696,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:696,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:697,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:697,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:697,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:698,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:698,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:698,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:700,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_x509_rpki.cpp:700,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:703,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:703,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:709,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 88
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 540
    functionDepth: 3
    functionLinenumber: 540
    functionLinenumberEnd: 711
    functionName: Botan_Tests::test_x509_ip_addr_blocks_extension_encode_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
    - auto::empty
    - Botan_Tests::req_opts
    - max
    - IPAddressBlocks::IPAddressOrRange<IPv6>
    - IPAddressBlocks::IPAddressOrRange<IPv4>
    - auto::addr_choice
    - Botan_Tests::make_ca
    - IPAddressBlocks::IPAddressChoice<IPv4>
    - min
    - std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
    - auto::min
    - Botan_Tests::Test::new_rng
    - IPAddressFamily
    - IPAddressBlocks::IPAddressChoice<IPv6>
    - auto::max
    - Test::Result::start_timer
    - auto::ranges
    - std::vector::push_back
    - auto::afi
    - Botan_Tests::bit_set
    - std::make_unique<IPAddressBlocks>
    - Botan::X509_Certificate::v3_extensions
    - Botan_Tests::from_date
    - IPAddressBlocks::IPAddress<IPv6>
    - std::move
    - Test::Result::end_timer
    - size
    - auto*::addr_blocks
    - empty
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::confirm
    - Test::Result::test_eq
    - auto::safi
    - sign_request
    - IPAddressBlocks::IPAddress<IPv4>
    - Botan::X509::create_cert_req
    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:715,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:719,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:725,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:727,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:729,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:730,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:739,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:751,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:752,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:754,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:757,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:759,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:761,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:764,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:766,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:768,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:768,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:770,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:771,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:771,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:771,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:773,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:774,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:775,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:777,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:777,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:777,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:778,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:778,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:778,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:779,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:779,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:780,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:782,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:782,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:782,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:783,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:783,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:783,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:788,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 713
    functionDepth: 3
    functionLinenumber: 713
    functionLinenumberEnd: 790
    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:
    - Botan_Tests::req_opts
    - max
    - IPAddressBlocks::IPAddressOrRange<IPv6>
    - auto::addr_choice
    - Botan_Tests::make_ca
    - min
    - std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
    - auto::min
    - Botan_Tests::Test::new_rng
    - IPAddressFamily
    - IPAddressBlocks::IPAddressChoice<IPv6>
    - auto::max
    - Test::Result::start_timer
    - auto::ranges
    - std::vector::push_back
    - auto::afi
    - Botan_Tests::bit_set
    - std::make_unique<IPAddressBlocks>
    - std::vector::size
    - Botan::X509_Certificate::v3_extensions
    - Botan_Tests::from_date
    - IPAddressBlocks::IPAddress<IPv6>
    - std::move
    - Test::Result::end_timer
    - auto*::addr_blocks
    - Test::Result::test_eq
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::confirm
    - auto::safi
    - sign_request
    - Botan::X509::create_cert_req
    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:794,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:798,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:800,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:801,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:817,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:818,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:819,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:820,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:823,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:824,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:827,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:829,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:831,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:831,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:833,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:834,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:834,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:834,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:836,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:837,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:838,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:840,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:840,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:841,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:846,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:846,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:847,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:847,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:848,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:848,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:851,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 792
    functionDepth: 3
    functionLinenumber: 792
    functionLinenumberEnd: 853
    functionName: Botan_Tests::test_x509_ip_addr_blocks_range_merge
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
    - Botan_Tests::req_opts
    - max
    - auto::size
    - IPAddressBlocks::IPAddressOrRange<IPv4>
    - auto::addr_choice
    - Botan_Tests::make_ca
    - IPAddressBlocks::IPAddressChoice<IPv4>
    - min
    - Botan_Tests::Test::new_rng
    - IPAddressFamily
    - Test::Result::start_timer
    - auto::ranges
    - std::vector::push_back
    - std::make_unique<IPAddressBlocks>
    - Botan::X509_Certificate::v3_extensions
    - Botan_Tests::from_date
    - std::move
    - Test::Result::end_timer
    - auto*::addr_blocks
    - Test::Result::test_eq
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::confirm
    - sign_request
    - IPAddressBlocks::IPAddress<IPv4>
    - Botan::X509::create_cert_req
    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:857,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:861,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:863,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:864,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:876,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:876,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:878,1
    - Dst: IPAddressBlocks::IPAddressChoice::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:879,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:886,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:886,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:888,1
    - Dst: IPAddressBlocks::IPAddressChoice::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:889,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:906,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:907,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:908,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:909,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:910,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:911,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:917,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:919,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:919,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:921,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:922,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:922,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:922,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:924,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:925,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:926,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:928,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:928,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:928,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:931,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:935,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:936,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:937,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:937,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:939,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:942,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:943,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:944,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:944,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:946,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:955,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:957,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:961,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:961,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:961,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:961,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:962,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:962,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:962,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:962,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:964,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:964,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:965,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:965,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:966,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:966,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:968,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:969,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:970,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:970,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:972,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:973,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:973,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:975,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:979,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:980,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:981,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:981,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:982,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:982,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:985,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:985,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:989,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:990,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:991,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:991,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:992,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:993,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:994,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:995,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:995,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:996,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:997,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1000,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1000,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1001,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1001,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1002,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1002,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1004,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1005,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1006,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1006,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1008,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1009,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1009,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1011,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1015,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1016,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1017,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1017,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1018,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1018,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1021,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1021,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1025,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1026,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1027,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1027,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1028,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1029,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1030,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1031,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1031,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1032,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1033,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1039,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 74
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 855
    functionDepth: 3
    functionLinenumber: 855
    functionLinenumberEnd: 1041
    functionName: Botan_Tests::test_x509_ip_addr_blocks_family_merge
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - afi
    - std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
    - Botan_Tests::req_opts
    - max
    - IPAddressBlocks::IPAddressOrRange<IPv6>
    - auto::size
    - IPAddressBlocks::IPAddressOrRange<IPv4>
    - safi
    - Botan_Tests::make_ca
    - IPAddressBlocks::IPAddressChoice::ranges
    - min
    - std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
    - Botan_Tests::Test::new_rng
    - Test::Result::start_timer
    - auto::ranges
    - std::vector::push_back
    - static_cast<uint32_t>
    - std::make_unique<IPAddressBlocks>
    - std::vector::size
    - Botan::X509_Certificate::v3_extensions
    - Botan_Tests::from_date
    - addr_choice
    - IPAddressBlocks::IPAddress<IPv6>
    - std::move
    - Test::Result::end_timer
    - size
    - auto*::addr_blocks
    - Test::Result::test_eq
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::confirm
    - std::to_string
    - sign_request
    - IPAddressBlocks::IPAddress<IPv4>
    - Botan::X509::create_cert_req
    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:1045,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1048,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1059,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1061,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1062,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1064,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1067,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1072,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1074,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1075,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1078,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1080,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1081,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1083,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1087,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1088,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1088,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1089,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1090,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1091,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1091,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1092,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1092,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1094,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1095,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1098,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1099,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1102,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1104,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1105,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1107,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1111,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1115,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1118,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1118,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1120,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1122,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1122,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1122,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1127,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1128,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1128,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1131,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1043
    functionDepth: 3
    functionLinenumber: 1043
    functionLinenumberEnd: 1133
    functionName: Botan_Tests::test_x509_ip_addr_blocks_path_validation_success_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::req_opts
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::make_ca
    - Botan_Tests::Test::new_rng
    - Test::Result::start_timer
    - Botan_Tests::bit_set
    - std::make_unique<IPAddressBlocks>
    - std::unique_ptr::add_address
    - Botan_Tests::make_and_sign_ca
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - std::unique_ptr::inherit
    - std::move
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::require
    - sign_request
    - Botan::X509::create_cert_req
    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:1137,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1140,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1157,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1159,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1162,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1164,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1167,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1169,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1171,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1172,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1173,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1174,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1179,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1180,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1182,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1183,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1186,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1189,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1190,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1192,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1193,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1196,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1200,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1202,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1204,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1206,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1209,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1211,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1213,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1214,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1215,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1222,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1224,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1227,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1229,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1232,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1234,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1236,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1237,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1238,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1243,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1244,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1246,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1247,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1250,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1252,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1253,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1253,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1254,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1255,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1256,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1256,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1257,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1257,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1259,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1260,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1263,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1264,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1267,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1267,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1269,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1269,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1271,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1272,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1275,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1277,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1277,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1279,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1281,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1281,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1281,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1286,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1287,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1287,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1292
      start: 1135
    functionDepth: 3
    functionLinenumber: 1135
    functionLinenumberEnd: 1292
    functionName: Botan_Tests::test_x509_ip_addr_blocks_path_validation_success_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - std::optional
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::req_opts
    - Botan::Certificate_Store_In_Memory::add_certificate
    - IPAddressBlocks::IPAddressOrRange<IPv6>
    - IPAddressBlocks::IPAddressOrRange<IPv4>
    - Botan_Tests::make_ca
    - IPAddressBlocks::IPAddressChoice<IPv4>
    - Botan_Tests::Test::new_rng
    - IPAddressFamily
    - IPAddressBlocks::IPAddressChoice<IPv6>
    - Test::Result::start_timer
    - Botan_Tests::bit_set
    - std::make_unique<IPAddressBlocks>
    - Botan_Tests::make_and_sign_ca
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - IPAddressBlocks::IPAddress<IPv6>
    - std::move
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::require
    - sign_request
    - IPAddressBlocks::IPAddress<IPv4>
    - Botan::X509::create_cert_req
    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:1296,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1299,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1311,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1313,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1315,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1318,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1320,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1320,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1322,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1325,1
    - Dst: std::unique_ptr::restrict
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1328,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1330,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1333,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1336,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1336,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1339,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1345,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1347,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1349,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1351,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1354,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1357,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1358,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1358,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1360,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1362,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1362,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1362,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1367,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1368,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1370,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1371,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1371,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1374,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1376
      start: 1294
    functionDepth: 3
    functionLinenumber: 1294
    functionLinenumberEnd: 1376
    functionName: Botan_Tests::test_x509_ip_addr_blocks_path_validation_failure_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Result::successful_validation
    - std::unique_ptr::restrict
    - Botan_Tests::req_opts
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::make_ca
    - Botan_Tests::Test::new_rng
    - Test::Result::start_timer
    - std::make_unique<IPAddressBlocks>
    - std::unique_ptr::add_address
    - Botan_Tests::make_and_sign_ca
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - std::unique_ptr::inherit
    - std::move
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::require
    - sign_request
    - Botan::X509::create_cert_req
    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:1380,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1383,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1400,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1403,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1403,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1404,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1406,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1408,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1410,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1410,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1412,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1416,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1418,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1419,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1424,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1427,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1427,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1428,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1430,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1431,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1431,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1442,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1450,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1452,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1454,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1454,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1455,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1458,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1460,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1461,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1461,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1463,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1465,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1465,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1465,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1470,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1471,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1473,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1474,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1474,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1477,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1479
      start: 1378
    functionDepth: 3
    functionLinenumber: 1378
    functionLinenumberEnd: 1479
    functionName: Botan_Tests::test_x509_ip_addr_blocks_path_validation_failure_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - std::optional
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::req_opts
    - Botan::Certificate_Store_In_Memory::add_certificate
    - IPAddressBlocks::IPAddressOrRange<IPv4>
    - Botan_Tests::make_ca
    - IPAddressBlocks::IPAddressChoice<IPv4>
    - Botan_Tests::Test::new_rng
    - IPAddressFamily
    - Test::Result::start_timer
    - std::vector::push_back
    - std::make_unique<IPAddressBlocks>
    - Botan_Tests::make_and_sign_ca
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - std::move
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::require
    - sign_request
    - IPAddressBlocks::IPAddress<IPv4>
    - Botan::X509::create_cert_req
    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:1483,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1486,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1489,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1490,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1491,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1492,1
    - Dst: std::unique_ptr::inherit_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1493,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1495,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1496,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1496,1
    - Dst: Botan_Tests::make_self_signed
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1498,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1499,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1499,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1501,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1504,1
    - Dst: auto::asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1505,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1507,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1507,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1511
      start: 1481
    functionDepth: 3
    functionLinenumber: 1481
    functionLinenumberEnd: 1511
    functionName: Botan_Tests::test_x509_as_blocks_rfc3779_example
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - std::unique_ptr::add_asnum
    - std::move
    - Test::Result::end_timer
    - Botan::Cert_Extension::static_oid
    - min
    - Botan_Tests::ca_opts
    - auto::v3_extensions
    - auto::asnum
    - Test::Result::test_eq
    - Botan::X509_Cert_Options::extensions::add
    - Botan_Tests::make_self_signed
    - Test::Result::confirm
    - std::unique_ptr::inherit_rdi
    - Botan_Tests::Test::new_rng
    - std::make_unique<ASBlocks>
    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:1515,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1518,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1520,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1522,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1523,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1524,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1525,1
    - Dst: std::unique_ptr::inherit_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1527,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1528,1
    - Dst: std::unique_ptr::restrict_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1530,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1532,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1533,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1533,1
    - Dst: Botan_Tests::make_self_signed
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1535,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1536,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1536,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1538,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1513
    functionDepth: 3
    functionLinenumber: 1513
    functionLinenumberEnd: 1542
    functionName: Botan_Tests::test_x509_as_blocks_encode_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - std::unique_ptr::add_asnum
    - std::move
    - Test::Result::end_timer
    - Botan::Cert_Extension::static_oid
    - Botan_Tests::ca_opts
    - auto::v3_extensions
    - std::unique_ptr::inherit_asnum
    - Test::Result::test_eq
    - Botan::X509_Cert_Options::extensions::add
    - std::unique_ptr::restrict_asnum
    - Botan_Tests::make_self_signed
    - Botan_Tests::Test::new_rng
    - std::unique_ptr::add_rdi
    - std::make_unique<ASBlocks>
    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:1546,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1550,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1552,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1555,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1556,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1557,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1558,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1563,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1564,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1565,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1567,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1568,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1569,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1573,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1574,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1575,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1580,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1581,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1582,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1585,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1586,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1588,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1588,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1589,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1591,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1593,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1594,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1594,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1596,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1597,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1597,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1597,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1600,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1601,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1603,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1606,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1609,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1609,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1610,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1610,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1612,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1612,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1613,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1613,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1615,1
    - Dst: empty
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1615,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1618,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1618,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1622,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1625,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1625,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1626,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1626,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1628,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1628,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1629,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1629,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1631,1
    - Dst: empty
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1631,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1634,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1634,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1639,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1641
      start: 1544
    functionDepth: 3
    functionLinenumber: 1544
    functionLinenumberEnd: 1641
    functionName: Botan_Tests::test_x509_as_blocks_extension_encode_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - ASIdOrRange
    - std::optional
    - Botan_Tests::req_opts
    - max
    - ASIdentifiers
    - Botan_Tests::make_ca
    - min
    - Botan_Tests::Test::new_rng
    - Test::Result::start_timer
    - std::vector::push_back
    - asnum
    - Botan_Tests::bit_set
    - rdi
    - ASIdentifierChoice
    - auto*::as_identifiers
    - Botan::X509_Certificate::v3_extensions
    - Botan_Tests::from_date
    - std::move
    - Test::Result::end_timer
    - empty
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::confirm
    - sign_request
    - std::make_unique<ASBlocks>
    - Botan::X509::create_cert_req
    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:1645,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1649,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1651,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1652,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1666,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1667,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1670,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1672,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1672,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1674,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1676,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1676,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1678,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1679,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1679,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1679,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1681,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1682,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1684,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1686,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1688,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1688,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1689,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1689,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1690,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1690,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1693,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1695
      start: 1643
    functionDepth: 3
    functionLinenumber: 1643
    functionLinenumberEnd: 1695
    functionName: Botan_Tests::test_x509_as_blocks_range_merge
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - ASIdOrRange
    - std::optional
    - Botan_Tests::req_opts
    - max
    - ASIdentifiers
    - Botan_Tests::make_ca
    - min
    - Botan_Tests::Test::new_rng
    - Test::Result::start_timer
    - std::vector::push_back
    - asnum
    - ASIdentifierChoice
    - auto*::as_identifiers
    - Botan::X509_Certificate::v3_extensions
    - Botan_Tests::from_date
    - std::move
    - Test::Result::end_timer
    - size
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::confirm
    - sign_request
    - std::make_unique<ASBlocks>
    - Botan::X509::create_cert_req
    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:1699,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1702,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1714,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1716,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1717,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1718,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1720,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1721,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1722,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1725,1
    - Dst: std::unique_ptr::inherit_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1726,1
    - Dst: std::unique_ptr::inherit_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1727,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1731,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1733,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1734,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1735,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1736,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1737,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1739,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1740,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1741,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1742,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1744,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1745,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1745,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1746,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1747,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1748,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1748,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1749,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1749,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1751,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1752,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1755,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1756,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1758,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1760,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1761,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1762,1
    - Dst: std::unique_ptr::inherit_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1764,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1768,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1769,1
    - Dst: std::unique_ptr::inherit_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1771,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1774,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1774,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1776,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1778,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1778,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1778,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1783,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1784,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1784,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1787,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1789
      start: 1697
    functionDepth: 3
    functionLinenumber: 1697
    functionLinenumberEnd: 1789
    functionName: Botan_Tests::test_x509_as_blocks_path_validation_success_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::req_opts
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::make_ca
    - Botan_Tests::Test::new_rng
    - std::unique_ptr::add_rdi
    - Test::Result::start_timer
    - std::unique_ptr::add_asnum
    - Botan_Tests::bit_set
    - Botan_Tests::make_and_sign_ca
    - std::unique_ptr::inherit_rdi
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - std::move
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::ca_opts
    - std::unique_ptr::inherit_asnum
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::require
    - sign_request
    - std::make_unique<ASBlocks>
    - Botan::X509::create_cert_req
    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:1793,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1796,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1807,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1808,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1809,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1811,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1812,1
    - Dst: ASIdOrRange
      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:1816,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1817,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1818,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1821,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1822,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1823,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1825,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1826,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1827,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1828,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1831,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1832,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1833,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1834,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1837,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1838,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1839,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1841,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1842,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1845,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1846,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1847,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1850,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1851,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1854,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1855,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1856,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1857,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1858,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1860,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1861,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1862,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1863,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: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1868,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1869,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1870,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1873,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1874,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1875,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1876,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1878,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1879,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1880,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1881,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1883,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1884,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1884,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1885,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1886,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1887,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1887,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1888,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1888,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1890,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1891,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1894,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1895,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1898,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1898,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1900,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1900,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1901,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1902,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1904,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1904,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1906,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1908,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1908,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1908,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1913,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1914,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1914,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1917,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1919
      start: 1791
    functionDepth: 3
    functionLinenumber: 1791
    functionLinenumberEnd: 1919
    functionName: Botan_Tests::test_x509_as_blocks_path_validation_success_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - ASIdOrRange
    - std::optional
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::req_opts
    - ASIdentifiers
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::make_ca
    - Botan_Tests::Test::new_rng
    - Test::Result::start_timer
    - std::vector::push_back
    - Botan_Tests::bit_set
    - ASIdentifierChoice
    - Botan_Tests::make_and_sign_ca
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - std::move
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::require
    - sign_request
    - std::make_unique<ASBlocks>
    - Botan::X509::create_cert_req
    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:1923,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1926,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1928,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1929,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1930,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1931,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1932,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1933,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1935,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1936,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1937,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1938,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1941,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1942,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1943,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1944,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1944,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1945,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1946,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1946,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1946,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1948,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1949,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1954,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1955,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1955,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1959
      start: 1921
    functionDepth: 3
    functionLinenumber: 1921
    functionLinenumberEnd: 1959
    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::Path_Validation_Result::successful_validation
    - Botan_Tests::req_opts
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::make_ca
    - Botan_Tests::Test::new_rng
    - std::unique_ptr::add_rdi
    - Test::Result::start_timer
    - std::unique_ptr::add_asnum
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - std::move
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::require
    - sign_request
    - std::make_unique<ASBlocks>
    - Botan::X509::create_cert_req
    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:1963,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1966,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: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1971,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1972,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1973,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1975,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1976,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1977,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1978,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: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1984,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1985,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1988,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1989,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1990,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1991,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1993,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1994,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1995,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1996,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1999,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2000,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2001,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2002,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2002,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2003,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2004,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2004,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2004,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2006,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2007,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2012,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2013,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2013,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2017
      start: 1961
    functionDepth: 3
    functionLinenumber: 1961
    functionLinenumberEnd: 2017
    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:
    - ASIdOrRange
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::req_opts
    - ASIdentifiers
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::make_ca
    - Botan_Tests::Test::new_rng
    - Test::Result::start_timer
    - std::vector::push_back
    - ASIdentifierChoice
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - std::move
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::require
    - sign_request
    - std::make_unique<ASBlocks>
    - Botan::X509::create_cert_req
    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:2021,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2024,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2073,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2078,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2081,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2082,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2083,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2086,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2087,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2088,1
    - Dst: std::unique_ptr::inherit_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2091,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:2099,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2100,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2101,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2103,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2104,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2105,1
    - Dst: std::unique_ptr::inherit_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2108,1
    - Dst: std::unique_ptr::restrict_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2112,1
    - Dst: std::unique_ptr::restrict_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2113,1
    - Dst: std::unique_ptr::copy
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2119,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2122,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2131,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:2137,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2138,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:2144,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:2150,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2151,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2152,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2156,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2157,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2158,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2159,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2161,1
    - Dst: std::unique_ptr::inherit_asnum
      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: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:2174,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2175,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:2178,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2179,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2180,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2181,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2183,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2184,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2185,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2187,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2188,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2189,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2190,1
    - Dst: std::unique_ptr::inherit_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2193,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2196,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2197,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2197,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2198,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2199,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2199,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2201,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2202,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2202,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2203,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2205,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2205,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2205,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2207,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2208,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2213,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2215,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2215,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2215,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2218,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 115
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2220
      start: 2019
    functionDepth: 3
    functionLinenumber: 2019
    functionLinenumberEnd: 2220
    functionName: Botan_Tests::test_x509_as_blocks_path_validation_failure_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::req_opts
    - Botan::Certificate_Store_In_Memory::add_certificate
    - std::unique_ptr::restrict_rdi
    - Botan_Tests::make_ca
    - std::unique_ptr::restrict_asnum
    - Botan_Tests::Test::new_rng
    - std::unique_ptr::add_rdi
    - Test::Result::start_timer
    - std::unique_ptr::add_asnum
    - Botan_Tests::make_and_sign_ca
    - std::unique_ptr::inherit_rdi
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - std::unique_ptr::copy
    - std::move
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::ca_opts
    - std::unique_ptr::inherit_asnum
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::confirm
    - std::to_string
    - sign_request
    - std::make_unique<ASBlocks>
    - Botan::X509::create_cert_req
    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:2224,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2227,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:2285,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2285,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2286,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2286,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: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:2292,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2292,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2297,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2297,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2299,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2299,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2300,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2300,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2301,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2301,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2303,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2303,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2304,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2304,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2305,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2305,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2321,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2321,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2324,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2324,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2328,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2334,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: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2340,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2345,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2346,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2346,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2348,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2348,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2353,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2353,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2355,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: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2361,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2362,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2362,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2365,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2368,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2369,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2369,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: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2382,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2385,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2385,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2387,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2387,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2388,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2389,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2391,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2392,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2392,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2393,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2394,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2394,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2396,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2397,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2397,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2398,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2400,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2400,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2400,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2402,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2403,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2408,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2410,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2410,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2410,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2413,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2415
      start: 2222
    functionDepth: 3
    functionLinenumber: 2222
    functionLinenumberEnd: 2415
    functionName: Botan_Tests::test_x509_as_blocks_path_validation_failure_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - ASIdOrRange
    - std::optional
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::req_opts
    - ASIdentifiers
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::make_ca
    - Botan_Tests::Test::new_rng
    - Test::Result::start_timer
    - std::vector::push_back
    - ASIdentifierChoice
    - Botan_Tests::make_and_sign_ca
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - std::move
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::confirm
    - std::to_string
    - sign_request
    - std::make_unique<ASBlocks>
    - Botan::X509::create_cert_req
    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:2423,1
    - Dst: test_x509_ip_addr_blocks_extension_decode
      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_as_blocks_extension_decode
      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:2426,1
    - Dst: test_x509_ip_addr_blocks_rfc3779_example
      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_ip_addr_blocks_encode_builder
      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_ip_addr_blocks_extension_encode_ctor
      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_ip_addr_blocks_extension_encode_edge_cases_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_ip_addr_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_ip_addr_blocks_family_merge
      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_ip_addr_blocks_path_validation_success_builder
      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_ip_addr_blocks_path_validation_success_ctor
      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_ip_addr_blocks_path_validation_failure_builder
      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_ip_addr_blocks_path_validation_failure_ctor
      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_rfc3779_example
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2436,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2437,1
    - Dst: test_x509_as_blocks_encode_builder
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2437,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2438,1
    - Dst: test_x509_as_blocks_extension_encode_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2438,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2439,1
    - Dst: test_x509_as_blocks_range_merge
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2439,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2440,1
    - Dst: test_x509_as_blocks_path_validation_success_builder
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2440,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2441,1
    - Dst: test_x509_as_blocks_path_validation_success_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2441,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2442,1
    - Dst: test_x509_as_blocks_path_validation_extension_not_present_builder
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2442,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2443,1
    - Dst: test_x509_as_blocks_path_validation_extension_not_present_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2443,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2444,1
    - Dst: test_x509_as_blocks_path_validation_failure_builder
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2444,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2445,1
    - Dst: test_x509_as_blocks_path_validation_failure_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2447
      start: 2419
    functionDepth: 0
    functionLinenumber: 2419
    functionLinenumberEnd: 2447
    functionName: Botan_Tests::X509_RPKI_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - test_x509_ip_addr_blocks_path_validation_failure_builder
    - test_x509_ip_addr_blocks_encode_builder
    - test_x509_as_blocks_rfc3779_example
    - test_x509_as_blocks_extension_encode_ctor
    - test_x509_as_blocks_path_validation_failure_builder
    - test_x509_as_blocks_range_merge
    - test_x509_ip_addr_blocks_path_validation_success_builder
    - test_x509_ip_addr_blocks_extension_decode
    - test_x509_as_blocks_extension_decode
    - test_x509_ip_addr_blocks_path_validation_success_ctor
    - test_x509_ip_addr_blocks_extension_encode_ctor
    - test_x509_ip_addr_blocks_rfc3779_example
    - test_x509_as_blocks_path_validation_extension_not_present_builder
    - std::vector::push_back
    - test_x509_as_blocks_encode_builder
    - test_x509_as_blocks_path_validation_failure_ctor
    - test_x509_ip_addr_blocks_range_merge
    - test_x509_as_blocks_path_validation_success_builder
    - test_x509_ip_addr_blocks_family_merge
    - test_x509_ip_addr_blocks_extension_encode_edge_cases_ctor
    - test_x509_ip_addr_blocks_path_validation_failure_ctor
    - test_x509_as_blocks_path_validation_success_ctor
    - test_x509_as_blocks_path_validation_extension_not_present_ctor
    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:41,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/test_x509_rpki.cpp:41,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:43,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/test_x509_rpki.cpp:44,1
    - Dst: Botan::calendar_point::to_std_timepoint
      Src: /src/botan/src/tests/test_x509_rpki.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - y
    - m
    - d
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: Botan_Tests::from_date
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 45
    functionsReached:
    - static_cast<uint32_t>
    - Botan::calendar_point::to_std_timepoint
    - Botan::X509_Time
    - Botan::TLS::detail::AsyncBase::complete_now
    - Botan::calendar_point
    linkageType: ''
    returnType: Botan::X509_Time
    signature: Botan::X509_Time from_date(const int y, const int m, const int d)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_x509_rpki.cpp:53,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:63,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ' algo'
    - ' rng'
    argTypes:
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 64
    functionName: Botan_Tests::generate_key
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 3
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - Botan::create_private_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> generate_key(const std::string&
      algo, Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/test_x509_rpki.cpp:72,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 77
    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:85,1
    - Dst: Botan::X509_Cert_Options::not_before
      Src: /src/botan/src/tests/test_x509_rpki.cpp:87,1
    - Dst: Botan::X509_Cert_Options::not_after
      Src: /src/botan/src/tests/test_x509_rpki.cpp:88,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 99
    functionName: Botan_Tests::req_opts
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 16
    functionsReached:
    - Botan::X509_Cert_Options::not_after
    - Botan::X509_Cert_Options::set_padding_scheme
    - Botan::X509_Cert_Options::not_before
    linkageType: ''
    returnType: Botan::X509_Cert_Options
    signature: Botan::X509_Cert_Options req_opts(const std::string& algo, const std::string&
      sig_padding = "")
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_tuple
      Src: /src/botan/src/tests/test_x509_rpki.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 117
    functionName: Botan_Tests::get_sig_algo_padding
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 3
    functionsReached:
    - std::make_tuple
    linkageType: ''
    returnType: std::tuple<std::string, std::string, std::string>
    signature: std::tuple<std::string, std::string, std::string> get_sig_algo_padding()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:120,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:120,1
    - Dst: Botan_Tests::get_sig_algo_padding
      Src: /src/botan/src/tests/test_x509_rpki.cpp:121,1
    - Dst: Botan_Tests::generate_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:122,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/test_x509_rpki.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - std::unique_ptr<Botan::RandomNumberGenerator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 126
    functionName: Botan_Tests::make_self_signed
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 4
    functionsReached:
    - std::move
    - Botan_Tests::ca_opts
    - Botan_Tests::generate_key
    - Botan_Tests::get_sig_algo_padding
    - Botan::X509::create_self_signed_cert
    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:129,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:129,1
    - Dst: Botan_Tests::get_sig_algo_padding
      Src: /src/botan/src/tests/test_x509_rpki.cpp:130,1
    - Dst: Botan_Tests::generate_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:131,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/test_x509_rpki.cpp:132,1
    - Dst: Botan_Tests::generate_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:134,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:136,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - std::unique_ptr<Botan::RandomNumberGenerator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 137
    functionName: Botan_Tests::make_ca
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 16
    functionsReached:
    - std::move
    - Botan_Tests::ca_opts
    - Botan_Tests::generate_key
    - Botan_Tests::get_sig_algo_padding
    - Botan::X509::create_self_signed_cert
    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
      Src: /src/botan/src/tests/test_x509_rpki.cpp:143,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:145,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:146,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:146,1
    - Dst: Botan_Tests::generate_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:148,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:150,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:151,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:151,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:151,1
    - Dst: std::make_pair
      Src: /src/botan/src/tests/test_x509_rpki.cpp:154,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:154,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:154,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: 155
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 155
    functionName: Botan_Tests::make_and_sign_ca
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 8
    functionsReached:
    - std::move
    - Botan_Tests::ca_opts
    - std::make_pair
    - Botan_Tests::from_date
    - Botan::X509_Cert_Options::extensions::add
    - Botan_Tests::generate_key
    - Botan_Tests::get_sig_algo_padding
    - sign_request
    - Botan::X509::create_cert_req
    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:164,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:169,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:170,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:172,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:173,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:174,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:174,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:176,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:176,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:177,1
    - Dst: addr_choice
      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_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:187,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:187,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:188,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:188,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:190,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:190,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:191,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:191,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:192,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:192,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:193,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:193,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:195,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:195,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:196,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:196,1
    - Dst: ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:198,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:206,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:207,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:209,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:210,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:212,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:213,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:215,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:216,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:218,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:219,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:221,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:222,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:224,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:225,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:227,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:228,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:233,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:234,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:246,1
    - Dst: Test::Result::test_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_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:249,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:249,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:250,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:252,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:252,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:254,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:254,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:256,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:256,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:258,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:258,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:259,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:259,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:260,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:260,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:262,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:262,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:263,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:265,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:265,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:267,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:267,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:269,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:269,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:271,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:271,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:272,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:273,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:275,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:276,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:279,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:279,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:280,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:282,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:282,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:286,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:290,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:290,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:290,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:292,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:293,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 298
    functionName: Botan_Tests::test_x509_ip_addr_blocks_extension_decode
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - safi
    - std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
    - Test::Result::end_timer
    - Botan::Cert_Extension::static_oid
    - min
    - Botan_Tests::Test::data_file
    - ranges
    - size
    - std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
    - max
    - auto*::addr_blocks
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::X509_Certificate::v3_extensions
    - addr_choice
    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:302,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:307,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:309,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:311,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:312,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:314,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:315,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:318,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:318,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:319,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:319,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:322,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:322,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:323,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:323,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:327,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:329,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:331,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:332,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:334,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:335,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:335,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:338,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:338,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:339,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:339,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:343,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:345,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:347,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:348,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:350,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:350,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:351,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:354,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:354,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:355,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:355,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:359,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:361,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:363,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:364,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:366,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:366,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:367,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:370,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:370,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:371,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:371,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 376
    functionName: Botan_Tests::test_x509_as_blocks_extension_decode
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - asnum
    - Test::Result::end_timer
    - min
    - Botan_Tests::Test::data_file
    - rdi
    - max
    - Test::Result::confirm
    - auto*::as_identifiers
    - Botan::X509_Certificate::v3_extensions
    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:382,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:385,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:388,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:389,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:390,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:391,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:392,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:393,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:394,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:395,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:397,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:398,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:398,1
    - Dst: Botan_Tests::make_self_signed
      Src: /src/botan/src/tests/test_x509_rpki.cpp:400,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:402,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:402,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:404,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:409,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:411,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:412,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:412,1
    - Dst: std::optional<uint8_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:412,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:414,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:414,1
    - Dst: Test::Result::test_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_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_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_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_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:421,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:421,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:422,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:422,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:424,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:424,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:425,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:425,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:427,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:427,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:428,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:428,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:430,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:430,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:430,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:431,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:433,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:433,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:433,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:436,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:437,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:440,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:441,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:442,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:444,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:445,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:445,1
    - Dst: Botan_Tests::make_self_signed
      Src: /src/botan/src/tests/test_x509_rpki.cpp:447,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:449,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:449,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:452,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:456,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:458,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:459,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:459,1
    - Dst: std::optional<uint8_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:459,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:461,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:461,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:462,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:462,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:463,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:463,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:465,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:465,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:466,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:466,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:468,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:468,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:468,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:469,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:471,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:471,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:471,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:473,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:474,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:474,1
    - Dst: std::optional<uint8_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:474,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:476,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:476,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:477,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:478,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:480,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:481,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 380
    functionDepth: 3
    functionLinenumber: 380
    functionLinenumberEnd: 486
    functionName: Botan_Tests::test_x509_ip_addr_blocks_rfc3779_example
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
    - max
    - Botan_Tests::make_self_signed
    - auto::addr_choice
    - safi
    - min
    - std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
    - Botan_Tests::Test::new_rng
    - Test::Result::start_timer
    - Botan::Cert_Extension::static_oid
    - auto::v3_extensions
    - std::make_unique<IPAddressBlocks>
    - std::unique_ptr::add_address
    - std::unique_ptr::inherit
    - addr_choice
    - std::move
    - Test::Result::end_timer
    - Botan_Tests::ca_opts
    - Test::Result::test_eq
    - auto*::addr_blocks
    - Botan::X509_Cert_Options::extensions::add
    - std::optional<uint8_t>
    - Test::Result::confirm
    - auto::safi
    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:490,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:493,1
    - Dst: std::make_unique<IPAddressBlocks>
      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: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:502,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:504,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:507,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:509,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:511,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:512,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:512,1
    - Dst: Botan_Tests::make_self_signed
      Src: /src/botan/src/tests/test_x509_rpki.cpp:514,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:515,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:515,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:518,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 488
    functionDepth: 3
    functionLinenumber: 488
    functionLinenumberEnd: 525
    functionName: Botan_Tests::test_x509_ip_addr_blocks_encode_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - std::move
    - Test::Result::end_timer
    - Botan::Cert_Extension::static_oid
    - Botan_Tests::ca_opts
    - auto::v3_extensions
    - std::make_unique<IPAddressBlocks>
    - std::unique_ptr::add_address
    - Test::Result::test_eq
    - Botan::X509_Cert_Options::extensions::add
    - Botan_Tests::make_self_signed
    - 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: 536
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 536
    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: 536
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 536
    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:542,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:546,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:548,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:551,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:552,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:553,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:554,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:555,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:556,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:558,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:561,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:563,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:567,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:569,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:573,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      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:580,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:584,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:587,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:591,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:593,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:595,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:596,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:597,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:598,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:600,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:601,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:602,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:603,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: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:610,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:615,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:616,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:617,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:618,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:621,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:623,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:626,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:628,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:631,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:632,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:636,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:639,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:642,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:644,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:644,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:646,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:647,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:647,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:647,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:649,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:650,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:652,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:654,1
    - Dst: empty
      Src: /src/botan/src/tests/test_x509_rpki.cpp:654,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:660,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:660,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:660,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:661,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:661,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:661,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:662,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:662,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:665,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:667,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:667,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:667,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:668,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:668,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:668,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:669,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:669,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:669,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:670,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:670,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:670,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:671,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:671,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:671,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:672,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:672,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:672,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:673,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:673,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:673,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:674,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:674,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:674,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:676,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_x509_rpki.cpp:676,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:679,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:679,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:684,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:685,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:685,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:685,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:686,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:686,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:686,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:687,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:687,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:689,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:691,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:691,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:691,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:692,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:692,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:692,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:693,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:693,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:693,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:694,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:694,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:694,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:695,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:695,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:695,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:696,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:696,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:696,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:697,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:697,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:697,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:698,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:698,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:698,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:700,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_x509_rpki.cpp:700,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:703,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:703,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:709,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 88
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 540
    functionDepth: 3
    functionLinenumber: 540
    functionLinenumberEnd: 711
    functionName: Botan_Tests::test_x509_ip_addr_blocks_extension_encode_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
    - auto::empty
    - Botan_Tests::req_opts
    - max
    - IPAddressBlocks::IPAddressOrRange<IPv6>
    - IPAddressBlocks::IPAddressOrRange<IPv4>
    - auto::addr_choice
    - Botan_Tests::make_ca
    - IPAddressBlocks::IPAddressChoice<IPv4>
    - min
    - std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
    - auto::min
    - Botan_Tests::Test::new_rng
    - IPAddressFamily
    - IPAddressBlocks::IPAddressChoice<IPv6>
    - auto::max
    - Test::Result::start_timer
    - auto::ranges
    - std::vector::push_back
    - auto::afi
    - Botan_Tests::bit_set
    - std::make_unique<IPAddressBlocks>
    - Botan::X509_Certificate::v3_extensions
    - Botan_Tests::from_date
    - IPAddressBlocks::IPAddress<IPv6>
    - std::move
    - Test::Result::end_timer
    - size
    - auto*::addr_blocks
    - empty
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::confirm
    - Test::Result::test_eq
    - auto::safi
    - sign_request
    - IPAddressBlocks::IPAddress<IPv4>
    - Botan::X509::create_cert_req
    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:715,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:719,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:725,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:727,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:729,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:730,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:739,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:751,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:752,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:754,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:757,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:759,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:761,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:764,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:766,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:768,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:768,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:770,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:771,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:771,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:771,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:773,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:774,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:775,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:777,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:777,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:777,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:778,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:778,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:778,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:779,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:779,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:780,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:782,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:782,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:782,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:783,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:783,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:783,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:788,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 713
    functionDepth: 3
    functionLinenumber: 713
    functionLinenumberEnd: 790
    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:
    - Botan_Tests::req_opts
    - max
    - IPAddressBlocks::IPAddressOrRange<IPv6>
    - auto::addr_choice
    - Botan_Tests::make_ca
    - min
    - std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
    - auto::min
    - Botan_Tests::Test::new_rng
    - IPAddressFamily
    - IPAddressBlocks::IPAddressChoice<IPv6>
    - auto::max
    - Test::Result::start_timer
    - auto::ranges
    - std::vector::push_back
    - auto::afi
    - Botan_Tests::bit_set
    - std::make_unique<IPAddressBlocks>
    - std::vector::size
    - Botan::X509_Certificate::v3_extensions
    - Botan_Tests::from_date
    - IPAddressBlocks::IPAddress<IPv6>
    - std::move
    - Test::Result::end_timer
    - auto*::addr_blocks
    - Test::Result::test_eq
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::confirm
    - auto::safi
    - sign_request
    - Botan::X509::create_cert_req
    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:794,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:798,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:800,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:801,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:817,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:818,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:819,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:820,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:823,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:824,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:827,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:829,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:831,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:831,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:833,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:834,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:834,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:834,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:836,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:837,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:838,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:840,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:840,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:841,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:846,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:846,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:847,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:847,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:848,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:848,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:851,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 792
    functionDepth: 3
    functionLinenumber: 792
    functionLinenumberEnd: 853
    functionName: Botan_Tests::test_x509_ip_addr_blocks_range_merge
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
    - Botan_Tests::req_opts
    - max
    - auto::size
    - IPAddressBlocks::IPAddressOrRange<IPv4>
    - auto::addr_choice
    - Botan_Tests::make_ca
    - IPAddressBlocks::IPAddressChoice<IPv4>
    - min
    - Botan_Tests::Test::new_rng
    - IPAddressFamily
    - Test::Result::start_timer
    - auto::ranges
    - std::vector::push_back
    - std::make_unique<IPAddressBlocks>
    - Botan::X509_Certificate::v3_extensions
    - Botan_Tests::from_date
    - std::move
    - Test::Result::end_timer
    - auto*::addr_blocks
    - Test::Result::test_eq
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::confirm
    - sign_request
    - IPAddressBlocks::IPAddress<IPv4>
    - Botan::X509::create_cert_req
    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:857,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:861,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:863,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:864,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:876,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:876,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:878,1
    - Dst: IPAddressBlocks::IPAddressChoice::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:879,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:886,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:886,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:888,1
    - Dst: IPAddressBlocks::IPAddressChoice::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:889,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:906,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:907,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:908,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:909,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:910,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:911,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:917,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:919,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:919,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:921,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:922,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:922,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:922,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:924,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:925,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:926,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:928,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:928,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:928,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:931,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:935,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:936,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:937,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:937,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:939,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:942,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:943,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:944,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:944,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:946,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:955,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:957,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:961,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:961,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:961,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:961,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:962,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:962,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:962,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:962,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:964,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:964,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:965,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:965,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:966,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:966,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:968,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:969,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:970,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:970,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:972,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:973,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:973,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:975,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:979,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:980,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:981,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:981,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:982,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:982,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:985,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:985,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:989,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:990,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:991,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:991,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:992,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:993,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:994,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:995,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:995,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:996,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:997,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1000,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1000,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1001,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1001,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1002,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1002,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1004,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1005,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1006,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1006,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1008,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1009,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1009,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1011,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1015,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1016,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1017,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1017,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1018,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1018,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1021,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1021,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1025,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1026,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1027,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1027,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1028,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1029,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1030,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1031,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1031,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1032,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1033,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1039,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 74
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 855
    functionDepth: 3
    functionLinenumber: 855
    functionLinenumberEnd: 1041
    functionName: Botan_Tests::test_x509_ip_addr_blocks_family_merge
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - afi
    - std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
    - Botan_Tests::req_opts
    - max
    - IPAddressBlocks::IPAddressOrRange<IPv6>
    - auto::size
    - IPAddressBlocks::IPAddressOrRange<IPv4>
    - safi
    - Botan_Tests::make_ca
    - IPAddressBlocks::IPAddressChoice::ranges
    - min
    - std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
    - Botan_Tests::Test::new_rng
    - Test::Result::start_timer
    - auto::ranges
    - std::vector::push_back
    - static_cast<uint32_t>
    - std::make_unique<IPAddressBlocks>
    - std::vector::size
    - Botan::X509_Certificate::v3_extensions
    - Botan_Tests::from_date
    - addr_choice
    - IPAddressBlocks::IPAddress<IPv6>
    - std::move
    - Test::Result::end_timer
    - size
    - auto*::addr_blocks
    - Test::Result::test_eq
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::confirm
    - std::to_string
    - sign_request
    - IPAddressBlocks::IPAddress<IPv4>
    - Botan::X509::create_cert_req
    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:1045,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1048,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1059,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1061,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1062,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1064,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1067,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1072,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1074,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1075,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1078,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1080,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1081,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1083,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1087,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1088,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1088,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1089,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1090,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1091,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1091,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1092,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1092,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1094,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1095,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1098,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1099,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1102,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1104,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1105,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1107,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1111,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1115,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1118,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1118,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1120,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1122,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1122,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1122,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1127,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1128,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1128,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1131,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1043
    functionDepth: 3
    functionLinenumber: 1043
    functionLinenumberEnd: 1133
    functionName: Botan_Tests::test_x509_ip_addr_blocks_path_validation_success_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::req_opts
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::make_ca
    - Botan_Tests::Test::new_rng
    - Test::Result::start_timer
    - Botan_Tests::bit_set
    - std::make_unique<IPAddressBlocks>
    - std::unique_ptr::add_address
    - Botan_Tests::make_and_sign_ca
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - std::unique_ptr::inherit
    - std::move
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::require
    - sign_request
    - Botan::X509::create_cert_req
    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:1137,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1140,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1157,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1159,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1162,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1164,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1167,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1169,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1171,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1172,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1173,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1174,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1179,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1180,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1182,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1183,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1186,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1189,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1190,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1192,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1193,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1196,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1200,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1202,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1204,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1206,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1209,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1211,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1213,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1214,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1215,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1222,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1224,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1227,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1229,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1232,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1234,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1236,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1237,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1238,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1243,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1244,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1246,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1247,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1250,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1252,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1253,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1253,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1254,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1255,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1256,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1256,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1257,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1257,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1259,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1260,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1263,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1264,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1267,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1267,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1269,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1269,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1271,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1272,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1275,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1277,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1277,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1279,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1281,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1281,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1281,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1286,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1287,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1287,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1292
      start: 1135
    functionDepth: 3
    functionLinenumber: 1135
    functionLinenumberEnd: 1292
    functionName: Botan_Tests::test_x509_ip_addr_blocks_path_validation_success_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - std::optional
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::req_opts
    - Botan::Certificate_Store_In_Memory::add_certificate
    - IPAddressBlocks::IPAddressOrRange<IPv6>
    - IPAddressBlocks::IPAddressOrRange<IPv4>
    - Botan_Tests::make_ca
    - IPAddressBlocks::IPAddressChoice<IPv4>
    - Botan_Tests::Test::new_rng
    - IPAddressFamily
    - IPAddressBlocks::IPAddressChoice<IPv6>
    - Test::Result::start_timer
    - Botan_Tests::bit_set
    - std::make_unique<IPAddressBlocks>
    - Botan_Tests::make_and_sign_ca
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - IPAddressBlocks::IPAddress<IPv6>
    - std::move
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::require
    - sign_request
    - IPAddressBlocks::IPAddress<IPv4>
    - Botan::X509::create_cert_req
    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:1296,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1299,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1311,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1313,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1315,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1318,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1320,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1320,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1322,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1325,1
    - Dst: std::unique_ptr::restrict
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1328,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1330,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1333,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1336,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1336,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1339,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1345,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1347,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1349,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1351,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1354,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1357,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1358,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1358,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1360,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1362,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1362,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1362,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1367,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1368,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1370,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1371,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1371,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1374,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1376
      start: 1294
    functionDepth: 3
    functionLinenumber: 1294
    functionLinenumberEnd: 1376
    functionName: Botan_Tests::test_x509_ip_addr_blocks_path_validation_failure_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Result::successful_validation
    - std::unique_ptr::restrict
    - Botan_Tests::req_opts
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::make_ca
    - Botan_Tests::Test::new_rng
    - Test::Result::start_timer
    - std::make_unique<IPAddressBlocks>
    - std::unique_ptr::add_address
    - Botan_Tests::make_and_sign_ca
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - std::unique_ptr::inherit
    - std::move
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::require
    - sign_request
    - Botan::X509::create_cert_req
    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:1380,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1383,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1400,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1403,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1403,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1404,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1406,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1408,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1410,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1410,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1412,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1416,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1418,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1419,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1424,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1427,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1427,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1428,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1430,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1431,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1431,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1442,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1450,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1452,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1454,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1454,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1455,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1458,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1460,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1461,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1461,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1463,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1465,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1465,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1465,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1470,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1471,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1473,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1474,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1474,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1477,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1479
      start: 1378
    functionDepth: 3
    functionLinenumber: 1378
    functionLinenumberEnd: 1479
    functionName: Botan_Tests::test_x509_ip_addr_blocks_path_validation_failure_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - std::optional
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::req_opts
    - Botan::Certificate_Store_In_Memory::add_certificate
    - IPAddressBlocks::IPAddressOrRange<IPv4>
    - Botan_Tests::make_ca
    - IPAddressBlocks::IPAddressChoice<IPv4>
    - Botan_Tests::Test::new_rng
    - IPAddressFamily
    - Test::Result::start_timer
    - std::vector::push_back
    - std::make_unique<IPAddressBlocks>
    - Botan_Tests::make_and_sign_ca
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - std::move
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::require
    - sign_request
    - IPAddressBlocks::IPAddress<IPv4>
    - Botan::X509::create_cert_req
    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:1483,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1486,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1489,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1490,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1491,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1492,1
    - Dst: std::unique_ptr::inherit_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1493,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1495,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1496,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1496,1
    - Dst: Botan_Tests::make_self_signed
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1498,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1499,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1499,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1501,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1504,1
    - Dst: auto::asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1505,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1507,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1507,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1511
      start: 1481
    functionDepth: 3
    functionLinenumber: 1481
    functionLinenumberEnd: 1511
    functionName: Botan_Tests::test_x509_as_blocks_rfc3779_example
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - std::unique_ptr::add_asnum
    - std::move
    - Test::Result::end_timer
    - Botan::Cert_Extension::static_oid
    - min
    - Botan_Tests::ca_opts
    - auto::v3_extensions
    - auto::asnum
    - Test::Result::test_eq
    - Botan::X509_Cert_Options::extensions::add
    - Botan_Tests::make_self_signed
    - Test::Result::confirm
    - std::unique_ptr::inherit_rdi
    - Botan_Tests::Test::new_rng
    - std::make_unique<ASBlocks>
    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:1515,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1518,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1520,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1522,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1523,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1524,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1525,1
    - Dst: std::unique_ptr::inherit_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1527,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1528,1
    - Dst: std::unique_ptr::restrict_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1530,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1532,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1533,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1533,1
    - Dst: Botan_Tests::make_self_signed
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1535,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1536,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1536,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1538,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1513
    functionDepth: 3
    functionLinenumber: 1513
    functionLinenumberEnd: 1542
    functionName: Botan_Tests::test_x509_as_blocks_encode_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - std::unique_ptr::add_asnum
    - std::move
    - Test::Result::end_timer
    - Botan::Cert_Extension::static_oid
    - Botan_Tests::ca_opts
    - auto::v3_extensions
    - std::unique_ptr::inherit_asnum
    - Test::Result::test_eq
    - Botan::X509_Cert_Options::extensions::add
    - std::unique_ptr::restrict_asnum
    - Botan_Tests::make_self_signed
    - Botan_Tests::Test::new_rng
    - std::unique_ptr::add_rdi
    - std::make_unique<ASBlocks>
    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:1546,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1550,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1552,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1555,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1556,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1557,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1558,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1563,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1564,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1565,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1567,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1568,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1569,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1573,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1574,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1575,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1580,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1581,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1582,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1585,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1586,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1588,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1588,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1589,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1591,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1593,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1594,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1594,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1596,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1597,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1597,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1597,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1600,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1601,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1603,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1606,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1609,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1609,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1610,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1610,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1612,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1612,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1613,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1613,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1615,1
    - Dst: empty
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1615,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1618,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1618,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1622,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1625,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1625,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1626,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1626,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1628,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1628,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1629,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1629,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1631,1
    - Dst: empty
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1631,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1634,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1634,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1639,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1641
      start: 1544
    functionDepth: 3
    functionLinenumber: 1544
    functionLinenumberEnd: 1641
    functionName: Botan_Tests::test_x509_as_blocks_extension_encode_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - ASIdOrRange
    - std::optional
    - Botan_Tests::req_opts
    - max
    - ASIdentifiers
    - Botan_Tests::make_ca
    - min
    - Botan_Tests::Test::new_rng
    - Test::Result::start_timer
    - std::vector::push_back
    - asnum
    - Botan_Tests::bit_set
    - rdi
    - ASIdentifierChoice
    - auto*::as_identifiers
    - Botan::X509_Certificate::v3_extensions
    - Botan_Tests::from_date
    - std::move
    - Test::Result::end_timer
    - empty
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::confirm
    - sign_request
    - std::make_unique<ASBlocks>
    - Botan::X509::create_cert_req
    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:1645,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1649,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1651,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1652,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1666,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1667,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1670,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1672,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1672,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1674,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1676,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1676,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1678,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1679,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1679,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1679,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1681,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1682,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1684,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1686,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1688,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1688,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1689,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1689,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1690,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1690,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1693,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1695
      start: 1643
    functionDepth: 3
    functionLinenumber: 1643
    functionLinenumberEnd: 1695
    functionName: Botan_Tests::test_x509_as_blocks_range_merge
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - ASIdOrRange
    - std::optional
    - Botan_Tests::req_opts
    - max
    - ASIdentifiers
    - Botan_Tests::make_ca
    - min
    - Botan_Tests::Test::new_rng
    - Test::Result::start_timer
    - std::vector::push_back
    - asnum
    - ASIdentifierChoice
    - auto*::as_identifiers
    - Botan::X509_Certificate::v3_extensions
    - Botan_Tests::from_date
    - std::move
    - Test::Result::end_timer
    - size
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::confirm
    - sign_request
    - std::make_unique<ASBlocks>
    - Botan::X509::create_cert_req
    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:1699,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1702,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1714,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1716,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1717,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1718,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1720,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1721,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1722,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1725,1
    - Dst: std::unique_ptr::inherit_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1726,1
    - Dst: std::unique_ptr::inherit_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1727,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1731,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1733,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1734,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1735,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1736,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1737,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1739,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1740,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1741,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1742,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1744,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1745,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1745,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1746,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1747,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1748,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1748,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1749,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1749,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1751,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1752,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1755,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1756,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1758,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1760,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1761,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1762,1
    - Dst: std::unique_ptr::inherit_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1764,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1768,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1769,1
    - Dst: std::unique_ptr::inherit_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1771,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1774,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1774,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1776,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1778,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1778,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1778,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1783,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1784,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1784,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1787,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1789
      start: 1697
    functionDepth: 3
    functionLinenumber: 1697
    functionLinenumberEnd: 1789
    functionName: Botan_Tests::test_x509_as_blocks_path_validation_success_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::req_opts
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::make_ca
    - Botan_Tests::Test::new_rng
    - std::unique_ptr::add_rdi
    - Test::Result::start_timer
    - std::unique_ptr::add_asnum
    - Botan_Tests::bit_set
    - Botan_Tests::make_and_sign_ca
    - std::unique_ptr::inherit_rdi
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - std::move
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::ca_opts
    - std::unique_ptr::inherit_asnum
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::require
    - sign_request
    - std::make_unique<ASBlocks>
    - Botan::X509::create_cert_req
    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:1793,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1796,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1807,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1808,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1809,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1811,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1812,1
    - Dst: ASIdOrRange
      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:1816,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1817,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1818,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1821,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1822,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1823,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1825,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1826,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1827,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1828,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1831,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1832,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1833,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1834,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1837,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1838,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1839,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1841,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1842,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1845,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1846,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1847,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1850,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1851,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1854,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1855,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1856,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1857,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1858,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1860,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1861,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1862,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1863,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: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1868,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1869,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1870,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1873,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1874,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1875,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1876,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1878,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1879,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1880,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1881,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1883,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1884,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1884,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1885,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1886,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1887,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1887,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1888,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1888,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1890,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1891,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1894,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1895,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1898,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1898,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1900,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1900,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1901,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1902,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1904,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1904,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1906,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1908,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1908,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1908,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1913,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1914,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1914,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1917,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1919
      start: 1791
    functionDepth: 3
    functionLinenumber: 1791
    functionLinenumberEnd: 1919
    functionName: Botan_Tests::test_x509_as_blocks_path_validation_success_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - ASIdOrRange
    - std::optional
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::req_opts
    - ASIdentifiers
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::make_ca
    - Botan_Tests::Test::new_rng
    - Test::Result::start_timer
    - std::vector::push_back
    - Botan_Tests::bit_set
    - ASIdentifierChoice
    - Botan_Tests::make_and_sign_ca
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - std::move
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::require
    - sign_request
    - std::make_unique<ASBlocks>
    - Botan::X509::create_cert_req
    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:1923,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1926,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1928,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1929,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1930,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1931,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1932,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1933,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1935,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1936,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1937,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1938,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1941,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1942,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1943,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1944,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1944,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1945,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1946,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1946,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1946,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1948,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1949,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1954,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1955,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1955,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1959
      start: 1921
    functionDepth: 3
    functionLinenumber: 1921
    functionLinenumberEnd: 1959
    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::Path_Validation_Result::successful_validation
    - Botan_Tests::req_opts
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::make_ca
    - Botan_Tests::Test::new_rng
    - std::unique_ptr::add_rdi
    - Test::Result::start_timer
    - std::unique_ptr::add_asnum
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - std::move
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::require
    - sign_request
    - std::make_unique<ASBlocks>
    - Botan::X509::create_cert_req
    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:1963,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1966,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: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1971,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1972,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1973,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1975,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1976,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1977,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1978,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: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1984,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1985,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1988,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1989,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1990,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1991,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1993,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1994,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1995,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1996,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1999,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2000,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2001,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2002,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2002,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2003,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2004,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2004,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2004,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2006,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2007,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2012,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2013,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2013,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2017
      start: 1961
    functionDepth: 3
    functionLinenumber: 1961
    functionLinenumberEnd: 2017
    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:
    - ASIdOrRange
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::req_opts
    - ASIdentifiers
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::make_ca
    - Botan_Tests::Test::new_rng
    - Test::Result::start_timer
    - std::vector::push_back
    - ASIdentifierChoice
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - std::move
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::require
    - sign_request
    - std::make_unique<ASBlocks>
    - Botan::X509::create_cert_req
    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:2021,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2024,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2073,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2078,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2081,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2082,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2083,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2086,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2087,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2088,1
    - Dst: std::unique_ptr::inherit_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2091,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:2099,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2100,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2101,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2103,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2104,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2105,1
    - Dst: std::unique_ptr::inherit_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2108,1
    - Dst: std::unique_ptr::restrict_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2112,1
    - Dst: std::unique_ptr::restrict_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2113,1
    - Dst: std::unique_ptr::copy
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2119,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2122,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2131,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:2137,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2138,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:2144,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:2150,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2151,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2152,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2156,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2157,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2158,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2159,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2161,1
    - Dst: std::unique_ptr::inherit_asnum
      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: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:2174,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2175,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:2178,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2179,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2180,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2181,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2183,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2184,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2185,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2187,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2188,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2189,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2190,1
    - Dst: std::unique_ptr::inherit_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2193,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2196,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2197,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2197,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2198,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2199,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2199,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2201,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2202,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2202,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2203,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2205,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2205,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2205,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2207,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2208,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2213,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2215,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2215,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2215,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2218,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 115
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2220
      start: 2019
    functionDepth: 3
    functionLinenumber: 2019
    functionLinenumberEnd: 2220
    functionName: Botan_Tests::test_x509_as_blocks_path_validation_failure_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::req_opts
    - Botan::Certificate_Store_In_Memory::add_certificate
    - std::unique_ptr::restrict_rdi
    - Botan_Tests::make_ca
    - std::unique_ptr::restrict_asnum
    - Botan_Tests::Test::new_rng
    - std::unique_ptr::add_rdi
    - Test::Result::start_timer
    - std::unique_ptr::add_asnum
    - Botan_Tests::make_and_sign_ca
    - std::unique_ptr::inherit_rdi
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - std::unique_ptr::copy
    - std::move
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::ca_opts
    - std::unique_ptr::inherit_asnum
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::confirm
    - std::to_string
    - sign_request
    - std::make_unique<ASBlocks>
    - Botan::X509::create_cert_req
    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:2224,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2227,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:2285,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2285,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2286,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2286,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: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:2292,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2292,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2297,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2297,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2299,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2299,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2300,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2300,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2301,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2301,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2303,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2303,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2304,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2304,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2305,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2305,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2321,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2321,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2324,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2324,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2328,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2334,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: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2340,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2345,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2346,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2346,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2348,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2348,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2353,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2353,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2355,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: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2361,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2362,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2362,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2365,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2368,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2369,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2369,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: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2382,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2385,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2385,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2387,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2387,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2388,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2389,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2391,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2392,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2392,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2393,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2394,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2394,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2396,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2397,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2397,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2398,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2400,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2400,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2400,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2402,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2403,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2408,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2410,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2410,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2410,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2413,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2415
      start: 2222
    functionDepth: 3
    functionLinenumber: 2222
    functionLinenumberEnd: 2415
    functionName: Botan_Tests::test_x509_as_blocks_path_validation_failure_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - ASIdOrRange
    - std::optional
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::req_opts
    - ASIdentifiers
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::make_ca
    - Botan_Tests::Test::new_rng
    - Test::Result::start_timer
    - std::vector::push_back
    - ASIdentifierChoice
    - Botan_Tests::make_and_sign_ca
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - std::move
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::confirm
    - std::to_string
    - sign_request
    - std::make_unique<ASBlocks>
    - Botan::X509::create_cert_req
    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:2423,1
    - Dst: test_x509_ip_addr_blocks_extension_decode
      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_as_blocks_extension_decode
      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:2426,1
    - Dst: test_x509_ip_addr_blocks_rfc3779_example
      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_ip_addr_blocks_encode_builder
      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_ip_addr_blocks_extension_encode_ctor
      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_ip_addr_blocks_extension_encode_edge_cases_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_ip_addr_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_ip_addr_blocks_family_merge
      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_ip_addr_blocks_path_validation_success_builder
      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_ip_addr_blocks_path_validation_success_ctor
      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_ip_addr_blocks_path_validation_failure_builder
      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_ip_addr_blocks_path_validation_failure_ctor
      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_rfc3779_example
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2436,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2437,1
    - Dst: test_x509_as_blocks_encode_builder
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2437,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2438,1
    - Dst: test_x509_as_blocks_extension_encode_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2438,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2439,1
    - Dst: test_x509_as_blocks_range_merge
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2439,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2440,1
    - Dst: test_x509_as_blocks_path_validation_success_builder
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2440,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2441,1
    - Dst: test_x509_as_blocks_path_validation_success_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2441,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2442,1
    - Dst: test_x509_as_blocks_path_validation_extension_not_present_builder
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2442,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2443,1
    - Dst: test_x509_as_blocks_path_validation_extension_not_present_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2443,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2444,1
    - Dst: test_x509_as_blocks_path_validation_failure_builder
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2444,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2445,1
    - Dst: test_x509_as_blocks_path_validation_failure_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2447
      start: 2419
    functionDepth: 0
    functionLinenumber: 2419
    functionLinenumberEnd: 2447
    functionName: Botan_Tests::X509_RPKI_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - test_x509_ip_addr_blocks_path_validation_failure_builder
    - test_x509_ip_addr_blocks_encode_builder
    - test_x509_as_blocks_rfc3779_example
    - test_x509_as_blocks_extension_encode_ctor
    - test_x509_as_blocks_path_validation_failure_builder
    - test_x509_as_blocks_range_merge
    - test_x509_ip_addr_blocks_path_validation_success_builder
    - test_x509_ip_addr_blocks_extension_decode
    - test_x509_as_blocks_extension_decode
    - test_x509_ip_addr_blocks_path_validation_success_ctor
    - test_x509_ip_addr_blocks_extension_encode_ctor
    - test_x509_ip_addr_blocks_rfc3779_example
    - test_x509_as_blocks_path_validation_extension_not_present_builder
    - std::vector::push_back
    - test_x509_as_blocks_encode_builder
    - test_x509_as_blocks_path_validation_failure_ctor
    - test_x509_ip_addr_blocks_range_merge
    - test_x509_as_blocks_path_validation_success_builder
    - test_x509_ip_addr_blocks_family_merge
    - test_x509_ip_addr_blocks_extension_encode_edge_cases_ctor
    - test_x509_ip_addr_blocks_path_validation_failure_ctor
    - test_x509_as_blocks_path_validation_success_ctor
    - test_x509_as_blocks_path_validation_extension_not_present_ctor
    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:41,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/test_x509_rpki.cpp:41,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:43,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/test_x509_rpki.cpp:44,1
    - Dst: Botan::calendar_point::to_std_timepoint
      Src: /src/botan/src/tests/test_x509_rpki.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - y
    - m
    - d
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: Botan_Tests::from_date
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 62
    functionsReached:
    - static_cast<uint32_t>
    - Botan::calendar_point::to_std_timepoint
    - Botan::X509_Time
    - Botan::TLS::detail::AsyncBase::complete_now
    - Botan::calendar_point
    linkageType: ''
    returnType: Botan::X509_Time
    signature: Botan::X509_Time from_date(const int y, const int m, const int d)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_x509_rpki.cpp:53,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:63,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ' algo'
    - ' rng'
    argTypes:
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 64
    functionName: Botan_Tests::generate_key
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 6
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - Botan::create_private_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> generate_key(const std::string&
      algo, Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/test_x509_rpki.cpp:72,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 77
    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:85,1
    - Dst: Botan::X509_Cert_Options::not_before
      Src: /src/botan/src/tests/test_x509_rpki.cpp:87,1
    - Dst: Botan::X509_Cert_Options::not_after
      Src: /src/botan/src/tests/test_x509_rpki.cpp:88,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 99
    functionName: Botan_Tests::req_opts
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 32
    functionsReached:
    - Botan::X509_Cert_Options::not_after
    - Botan::X509_Cert_Options::set_padding_scheme
    - Botan::X509_Cert_Options::not_before
    linkageType: ''
    returnType: Botan::X509_Cert_Options
    signature: Botan::X509_Cert_Options req_opts(const std::string& algo, const std::string&
      sig_padding = "")
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_tuple
      Src: /src/botan/src/tests/test_x509_rpki.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 117
    functionName: Botan_Tests::get_sig_algo_padding
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 6
    functionsReached:
    - std::make_tuple
    linkageType: ''
    returnType: std::tuple<std::string, std::string, std::string>
    signature: std::tuple<std::string, std::string, std::string> get_sig_algo_padding()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:120,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:120,1
    - Dst: Botan_Tests::get_sig_algo_padding
      Src: /src/botan/src/tests/test_x509_rpki.cpp:121,1
    - Dst: Botan_Tests::generate_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:122,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/test_x509_rpki.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - std::unique_ptr<Botan::RandomNumberGenerator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 126
    functionName: Botan_Tests::make_self_signed
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 8
    functionsReached:
    - std::move
    - Botan_Tests::ca_opts
    - Botan_Tests::generate_key
    - Botan_Tests::get_sig_algo_padding
    - Botan::X509::create_self_signed_cert
    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:129,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:129,1
    - Dst: Botan_Tests::get_sig_algo_padding
      Src: /src/botan/src/tests/test_x509_rpki.cpp:130,1
    - Dst: Botan_Tests::generate_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:131,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/test_x509_rpki.cpp:132,1
    - Dst: Botan_Tests::generate_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:134,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:136,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - std::unique_ptr<Botan::RandomNumberGenerator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 137
    functionName: Botan_Tests::make_ca
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 32
    functionsReached:
    - std::move
    - Botan_Tests::ca_opts
    - Botan_Tests::generate_key
    - Botan_Tests::get_sig_algo_padding
    - Botan::X509::create_self_signed_cert
    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
      Src: /src/botan/src/tests/test_x509_rpki.cpp:143,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:145,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:146,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:146,1
    - Dst: Botan_Tests::generate_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:148,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:150,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:151,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:151,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:151,1
    - Dst: std::make_pair
      Src: /src/botan/src/tests/test_x509_rpki.cpp:154,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:154,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:154,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: 155
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 155
    functionName: Botan_Tests::make_and_sign_ca
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 16
    functionsReached:
    - std::move
    - Botan_Tests::ca_opts
    - std::make_pair
    - Botan_Tests::from_date
    - Botan::X509_Cert_Options::extensions::add
    - Botan_Tests::generate_key
    - Botan_Tests::get_sig_algo_padding
    - sign_request
    - Botan::X509::create_cert_req
    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:164,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:169,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:170,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:172,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:173,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:174,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:174,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:176,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:176,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:177,1
    - Dst: addr_choice
      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_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:187,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:187,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:188,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:188,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:190,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:190,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:191,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:191,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:192,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:192,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:193,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:193,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:195,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:195,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:196,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:196,1
    - Dst: ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:198,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:206,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:207,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:209,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:210,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:212,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:213,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:215,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:216,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:218,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:219,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:221,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:222,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:224,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:225,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:227,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:228,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:233,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:234,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:246,1
    - Dst: Test::Result::test_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_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:249,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:249,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:250,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:252,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:252,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:254,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:254,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:256,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:256,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:258,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:258,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:259,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:259,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:260,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:260,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:262,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:262,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:263,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:265,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:265,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:267,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:267,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:269,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:269,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:271,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:271,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:272,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:273,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:275,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:276,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:279,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:279,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:280,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:282,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:282,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:286,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:290,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:290,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:290,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:292,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:293,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 298
    functionName: Botan_Tests::test_x509_ip_addr_blocks_extension_decode
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - safi
    - std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
    - Test::Result::end_timer
    - Botan::Cert_Extension::static_oid
    - min
    - Botan_Tests::Test::data_file
    - ranges
    - size
    - std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
    - max
    - auto*::addr_blocks
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::X509_Certificate::v3_extensions
    - addr_choice
    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:302,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:307,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:309,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:311,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:312,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:314,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:315,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:318,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:318,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:319,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:319,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:322,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:322,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:323,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:323,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:327,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:329,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:331,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:332,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:334,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:335,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:335,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:338,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:338,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:339,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:339,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:343,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:345,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:347,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:348,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:350,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:350,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:351,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:354,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:354,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:355,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:355,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:359,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:361,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:363,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:364,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:366,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:366,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:367,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:370,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:370,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:371,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:371,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 376
    functionName: Botan_Tests::test_x509_as_blocks_extension_decode
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - asnum
    - Test::Result::end_timer
    - min
    - Botan_Tests::Test::data_file
    - rdi
    - max
    - Test::Result::confirm
    - auto*::as_identifiers
    - Botan::X509_Certificate::v3_extensions
    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:382,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:385,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:388,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:389,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:390,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:391,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:392,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:393,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:394,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:395,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:397,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:398,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:398,1
    - Dst: Botan_Tests::make_self_signed
      Src: /src/botan/src/tests/test_x509_rpki.cpp:400,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:402,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:402,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:404,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:409,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:411,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:412,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:412,1
    - Dst: std::optional<uint8_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:412,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:414,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:414,1
    - Dst: Test::Result::test_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_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_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_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_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:421,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:421,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:422,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:422,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:424,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:424,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:425,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:425,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:427,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:427,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:428,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:428,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:430,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:430,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:430,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:431,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:433,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:433,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:433,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:436,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:437,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:440,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:441,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:442,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:444,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:445,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:445,1
    - Dst: Botan_Tests::make_self_signed
      Src: /src/botan/src/tests/test_x509_rpki.cpp:447,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:449,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:449,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:452,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:456,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:458,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:459,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:459,1
    - Dst: std::optional<uint8_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:459,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:461,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:461,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:462,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:462,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:463,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:463,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:465,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:465,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:466,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:466,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:468,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:468,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:468,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:469,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:471,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:471,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:471,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:473,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:474,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:474,1
    - Dst: std::optional<uint8_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:474,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:476,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:476,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:477,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:478,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:480,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:481,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 380
    functionDepth: 3
    functionLinenumber: 380
    functionLinenumberEnd: 486
    functionName: Botan_Tests::test_x509_ip_addr_blocks_rfc3779_example
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
    - max
    - Botan_Tests::make_self_signed
    - auto::addr_choice
    - safi
    - min
    - std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
    - Botan_Tests::Test::new_rng
    - Test::Result::start_timer
    - Botan::Cert_Extension::static_oid
    - auto::v3_extensions
    - std::make_unique<IPAddressBlocks>
    - std::unique_ptr::add_address
    - std::unique_ptr::inherit
    - addr_choice
    - std::move
    - Test::Result::end_timer
    - Botan_Tests::ca_opts
    - Test::Result::test_eq
    - auto*::addr_blocks
    - Botan::X509_Cert_Options::extensions::add
    - std::optional<uint8_t>
    - Test::Result::confirm
    - auto::safi
    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:490,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:493,1
    - Dst: std::make_unique<IPAddressBlocks>
      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: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:502,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:504,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:507,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:509,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:511,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:512,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:512,1
    - Dst: Botan_Tests::make_self_signed
      Src: /src/botan/src/tests/test_x509_rpki.cpp:514,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:515,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:515,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:518,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 488
    functionDepth: 3
    functionLinenumber: 488
    functionLinenumberEnd: 525
    functionName: Botan_Tests::test_x509_ip_addr_blocks_encode_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - std::move
    - Test::Result::end_timer
    - Botan::Cert_Extension::static_oid
    - Botan_Tests::ca_opts
    - auto::v3_extensions
    - std::make_unique<IPAddressBlocks>
    - std::unique_ptr::add_address
    - Test::Result::test_eq
    - Botan::X509_Cert_Options::extensions::add
    - Botan_Tests::make_self_signed
    - 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: 536
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 536
    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: 536
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 536
    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:542,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:546,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:548,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:551,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:552,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:553,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:554,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:555,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:556,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:558,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:561,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:563,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:567,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:569,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:573,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      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:580,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:584,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:587,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:591,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:593,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:595,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:596,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:597,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:598,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:600,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:601,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:602,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:603,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: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:610,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:615,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:616,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:617,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:618,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:621,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:623,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:626,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:628,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:631,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:632,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:636,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:639,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:642,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:644,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:644,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:646,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:647,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:647,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:647,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:649,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:650,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:652,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:654,1
    - Dst: empty
      Src: /src/botan/src/tests/test_x509_rpki.cpp:654,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:660,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:660,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:660,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:661,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:661,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:661,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:662,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:662,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:665,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:667,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:667,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:667,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:668,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:668,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:668,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:669,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:669,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:669,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:670,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:670,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:670,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:671,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:671,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:671,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:672,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:672,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:672,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:673,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:673,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:673,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:674,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:674,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:674,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:676,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_x509_rpki.cpp:676,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:679,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:679,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:684,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:685,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:685,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:685,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:686,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:686,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:686,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:687,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:687,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:689,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:691,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:691,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:691,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:692,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:692,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:692,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:693,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:693,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:693,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:694,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:694,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:694,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:695,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:695,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:695,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:696,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:696,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:696,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:697,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:697,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:697,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:698,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:698,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:698,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:700,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_x509_rpki.cpp:700,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:703,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:703,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:709,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 88
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 540
    functionDepth: 3
    functionLinenumber: 540
    functionLinenumberEnd: 711
    functionName: Botan_Tests::test_x509_ip_addr_blocks_extension_encode_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
    - auto::empty
    - Botan_Tests::req_opts
    - max
    - IPAddressBlocks::IPAddressOrRange<IPv6>
    - IPAddressBlocks::IPAddressOrRange<IPv4>
    - auto::addr_choice
    - Botan_Tests::make_ca
    - IPAddressBlocks::IPAddressChoice<IPv4>
    - min
    - std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
    - auto::min
    - Botan_Tests::Test::new_rng
    - IPAddressFamily
    - IPAddressBlocks::IPAddressChoice<IPv6>
    - auto::max
    - Test::Result::start_timer
    - auto::ranges
    - std::vector::push_back
    - auto::afi
    - Botan_Tests::bit_set
    - std::make_unique<IPAddressBlocks>
    - Botan::X509_Certificate::v3_extensions
    - Botan_Tests::from_date
    - IPAddressBlocks::IPAddress<IPv6>
    - std::move
    - Test::Result::end_timer
    - size
    - auto*::addr_blocks
    - empty
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::confirm
    - Test::Result::test_eq
    - auto::safi
    - sign_request
    - IPAddressBlocks::IPAddress<IPv4>
    - Botan::X509::create_cert_req
    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:715,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:719,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:725,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:727,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:729,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:730,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:739,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:751,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:752,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:754,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:757,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:759,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:761,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:764,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:766,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:768,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:768,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:770,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:771,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:771,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:771,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:773,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:774,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:775,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:777,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:777,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:777,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:778,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:778,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:778,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:779,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:779,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:780,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:782,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:782,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:782,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:783,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:783,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:783,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:788,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 713
    functionDepth: 3
    functionLinenumber: 713
    functionLinenumberEnd: 790
    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:
    - Botan_Tests::req_opts
    - max
    - IPAddressBlocks::IPAddressOrRange<IPv6>
    - auto::addr_choice
    - Botan_Tests::make_ca
    - min
    - std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
    - auto::min
    - Botan_Tests::Test::new_rng
    - IPAddressFamily
    - IPAddressBlocks::IPAddressChoice<IPv6>
    - auto::max
    - Test::Result::start_timer
    - auto::ranges
    - std::vector::push_back
    - auto::afi
    - Botan_Tests::bit_set
    - std::make_unique<IPAddressBlocks>
    - std::vector::size
    - Botan::X509_Certificate::v3_extensions
    - Botan_Tests::from_date
    - IPAddressBlocks::IPAddress<IPv6>
    - std::move
    - Test::Result::end_timer
    - auto*::addr_blocks
    - Test::Result::test_eq
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::confirm
    - auto::safi
    - sign_request
    - Botan::X509::create_cert_req
    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:794,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:798,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:800,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:801,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:817,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:818,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:819,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:820,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:823,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:824,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:827,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:829,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:831,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:831,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:833,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:834,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:834,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:834,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:836,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:837,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:838,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:840,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:840,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:841,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:846,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:846,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:847,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:847,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:848,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:848,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:851,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 792
    functionDepth: 3
    functionLinenumber: 792
    functionLinenumberEnd: 853
    functionName: Botan_Tests::test_x509_ip_addr_blocks_range_merge
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
    - Botan_Tests::req_opts
    - max
    - auto::size
    - IPAddressBlocks::IPAddressOrRange<IPv4>
    - auto::addr_choice
    - Botan_Tests::make_ca
    - IPAddressBlocks::IPAddressChoice<IPv4>
    - min
    - Botan_Tests::Test::new_rng
    - IPAddressFamily
    - Test::Result::start_timer
    - auto::ranges
    - std::vector::push_back
    - std::make_unique<IPAddressBlocks>
    - Botan::X509_Certificate::v3_extensions
    - Botan_Tests::from_date
    - std::move
    - Test::Result::end_timer
    - auto*::addr_blocks
    - Test::Result::test_eq
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::confirm
    - sign_request
    - IPAddressBlocks::IPAddress<IPv4>
    - Botan::X509::create_cert_req
    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:857,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:861,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:863,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:864,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:876,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:876,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:878,1
    - Dst: IPAddressBlocks::IPAddressChoice::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:879,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:886,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:886,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:888,1
    - Dst: IPAddressBlocks::IPAddressChoice::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:889,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:906,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:907,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:908,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:909,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:910,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:911,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:917,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:919,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:919,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:921,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:922,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:922,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:922,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:924,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:925,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:926,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:928,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:928,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:928,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:931,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:935,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:936,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:937,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:937,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:939,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:942,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:943,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:944,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:944,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:946,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:955,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:957,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:961,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:961,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:961,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:961,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:962,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:962,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:962,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:962,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:964,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:964,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:965,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:965,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:966,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:966,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:968,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:969,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:970,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:970,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:972,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:973,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:973,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:975,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:979,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:980,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:981,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:981,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:982,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:982,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:985,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:985,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:989,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:990,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:991,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:991,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:992,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:993,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:994,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:995,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:995,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:996,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:997,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1000,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1000,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1001,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1001,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1002,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1002,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1004,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1005,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1006,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1006,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1008,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1009,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1009,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1011,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1015,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1016,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1017,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1017,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1018,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1018,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1021,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1021,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1025,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1026,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1027,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1027,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1028,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1029,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1030,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1031,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1031,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1032,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1033,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1039,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 74
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 855
    functionDepth: 3
    functionLinenumber: 855
    functionLinenumberEnd: 1041
    functionName: Botan_Tests::test_x509_ip_addr_blocks_family_merge
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - afi
    - std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
    - Botan_Tests::req_opts
    - max
    - IPAddressBlocks::IPAddressOrRange<IPv6>
    - auto::size
    - IPAddressBlocks::IPAddressOrRange<IPv4>
    - safi
    - Botan_Tests::make_ca
    - IPAddressBlocks::IPAddressChoice::ranges
    - min
    - std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
    - Botan_Tests::Test::new_rng
    - Test::Result::start_timer
    - auto::ranges
    - std::vector::push_back
    - static_cast<uint32_t>
    - std::make_unique<IPAddressBlocks>
    - std::vector::size
    - Botan::X509_Certificate::v3_extensions
    - Botan_Tests::from_date
    - addr_choice
    - IPAddressBlocks::IPAddress<IPv6>
    - std::move
    - Test::Result::end_timer
    - size
    - auto*::addr_blocks
    - Test::Result::test_eq
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::confirm
    - std::to_string
    - sign_request
    - IPAddressBlocks::IPAddress<IPv4>
    - Botan::X509::create_cert_req
    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:1045,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1048,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1059,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1061,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1062,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1064,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1067,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1072,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1074,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1075,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1078,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1080,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1081,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1083,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1087,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1088,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1088,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1089,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1090,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1091,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1091,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1092,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1092,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1094,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1095,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1098,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1099,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1102,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1104,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1105,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1107,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1111,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1115,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1118,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1118,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1120,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1122,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1122,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1122,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1127,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1128,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1128,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1131,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1043
    functionDepth: 3
    functionLinenumber: 1043
    functionLinenumberEnd: 1133
    functionName: Botan_Tests::test_x509_ip_addr_blocks_path_validation_success_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::req_opts
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::make_ca
    - Botan_Tests::Test::new_rng
    - Test::Result::start_timer
    - Botan_Tests::bit_set
    - std::make_unique<IPAddressBlocks>
    - std::unique_ptr::add_address
    - Botan_Tests::make_and_sign_ca
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - std::unique_ptr::inherit
    - std::move
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::require
    - sign_request
    - Botan::X509::create_cert_req
    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:1137,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1140,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1157,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1159,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1162,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1164,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1167,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1169,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1171,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1172,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1173,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1174,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1179,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1180,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1182,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1183,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1186,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1189,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1190,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1192,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1193,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1196,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1200,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1202,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1204,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1206,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1209,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1211,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1213,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1214,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1215,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1222,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1224,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1227,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1229,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1232,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1234,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1236,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1237,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1238,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1243,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1244,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1246,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1247,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1250,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1252,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1253,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1253,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1254,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1255,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1256,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1256,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1257,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1257,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1259,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1260,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1263,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1264,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1267,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1267,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1269,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1269,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1271,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1272,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1275,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1277,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1277,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1279,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1281,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1281,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1281,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1286,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1287,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1287,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1292
      start: 1135
    functionDepth: 3
    functionLinenumber: 1135
    functionLinenumberEnd: 1292
    functionName: Botan_Tests::test_x509_ip_addr_blocks_path_validation_success_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - std::optional
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::req_opts
    - Botan::Certificate_Store_In_Memory::add_certificate
    - IPAddressBlocks::IPAddressOrRange<IPv6>
    - IPAddressBlocks::IPAddressOrRange<IPv4>
    - Botan_Tests::make_ca
    - IPAddressBlocks::IPAddressChoice<IPv4>
    - Botan_Tests::Test::new_rng
    - IPAddressFamily
    - IPAddressBlocks::IPAddressChoice<IPv6>
    - Test::Result::start_timer
    - Botan_Tests::bit_set
    - std::make_unique<IPAddressBlocks>
    - Botan_Tests::make_and_sign_ca
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - IPAddressBlocks::IPAddress<IPv6>
    - std::move
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::require
    - sign_request
    - IPAddressBlocks::IPAddress<IPv4>
    - Botan::X509::create_cert_req
    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:1296,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1299,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1311,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1313,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1315,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1318,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1320,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1320,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1322,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1325,1
    - Dst: std::unique_ptr::restrict
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1328,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1330,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1333,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1336,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1336,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1339,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1345,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1347,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1349,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1351,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1354,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1357,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1358,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1358,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1360,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1362,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1362,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1362,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1367,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1368,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1370,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1371,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1371,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1374,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1376
      start: 1294
    functionDepth: 3
    functionLinenumber: 1294
    functionLinenumberEnd: 1376
    functionName: Botan_Tests::test_x509_ip_addr_blocks_path_validation_failure_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Result::successful_validation
    - std::unique_ptr::restrict
    - Botan_Tests::req_opts
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::make_ca
    - Botan_Tests::Test::new_rng
    - Test::Result::start_timer
    - std::make_unique<IPAddressBlocks>
    - std::unique_ptr::add_address
    - Botan_Tests::make_and_sign_ca
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - std::unique_ptr::inherit
    - std::move
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::require
    - sign_request
    - Botan::X509::create_cert_req
    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:1380,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1383,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1400,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1403,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1403,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1404,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1406,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1408,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1410,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1410,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1412,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1416,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1418,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1419,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1424,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1427,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1427,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1428,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1430,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1431,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1431,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1442,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1450,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1452,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1454,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1454,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1455,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1458,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1460,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1461,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1461,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1463,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1465,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1465,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1465,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1470,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1471,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1473,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1474,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1474,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1477,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1479
      start: 1378
    functionDepth: 3
    functionLinenumber: 1378
    functionLinenumberEnd: 1479
    functionName: Botan_Tests::test_x509_ip_addr_blocks_path_validation_failure_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - std::optional
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::req_opts
    - Botan::Certificate_Store_In_Memory::add_certificate
    - IPAddressBlocks::IPAddressOrRange<IPv4>
    - Botan_Tests::make_ca
    - IPAddressBlocks::IPAddressChoice<IPv4>
    - Botan_Tests::Test::new_rng
    - IPAddressFamily
    - Test::Result::start_timer
    - std::vector::push_back
    - std::make_unique<IPAddressBlocks>
    - Botan_Tests::make_and_sign_ca
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - std::move
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::require
    - sign_request
    - IPAddressBlocks::IPAddress<IPv4>
    - Botan::X509::create_cert_req
    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:1483,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1486,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1489,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1490,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1491,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1492,1
    - Dst: std::unique_ptr::inherit_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1493,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1495,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1496,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1496,1
    - Dst: Botan_Tests::make_self_signed
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1498,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1499,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1499,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1501,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1504,1
    - Dst: auto::asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1505,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1507,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1507,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1511
      start: 1481
    functionDepth: 3
    functionLinenumber: 1481
    functionLinenumberEnd: 1511
    functionName: Botan_Tests::test_x509_as_blocks_rfc3779_example
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - std::unique_ptr::add_asnum
    - std::move
    - Test::Result::end_timer
    - Botan::Cert_Extension::static_oid
    - min
    - Botan_Tests::ca_opts
    - auto::v3_extensions
    - auto::asnum
    - Test::Result::test_eq
    - Botan::X509_Cert_Options::extensions::add
    - Botan_Tests::make_self_signed
    - Test::Result::confirm
    - std::unique_ptr::inherit_rdi
    - Botan_Tests::Test::new_rng
    - std::make_unique<ASBlocks>
    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:1515,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1518,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1520,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1522,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1523,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1524,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1525,1
    - Dst: std::unique_ptr::inherit_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1527,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1528,1
    - Dst: std::unique_ptr::restrict_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1530,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1532,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1533,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1533,1
    - Dst: Botan_Tests::make_self_signed
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1535,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1536,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1536,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1538,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1513
    functionDepth: 3
    functionLinenumber: 1513
    functionLinenumberEnd: 1542
    functionName: Botan_Tests::test_x509_as_blocks_encode_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - std::unique_ptr::add_asnum
    - std::move
    - Test::Result::end_timer
    - Botan::Cert_Extension::static_oid
    - Botan_Tests::ca_opts
    - auto::v3_extensions
    - std::unique_ptr::inherit_asnum
    - Test::Result::test_eq
    - Botan::X509_Cert_Options::extensions::add
    - std::unique_ptr::restrict_asnum
    - Botan_Tests::make_self_signed
    - Botan_Tests::Test::new_rng
    - std::unique_ptr::add_rdi
    - std::make_unique<ASBlocks>
    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:1546,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1550,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1552,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1555,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1556,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1557,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1558,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1563,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1564,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1565,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1567,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1568,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1569,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1573,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1574,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1575,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1580,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1581,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1582,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1585,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1586,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1588,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1588,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1589,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1591,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1593,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1594,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1594,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1596,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1597,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1597,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1597,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1600,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1601,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1603,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1606,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1609,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1609,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1610,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1610,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1612,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1612,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1613,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1613,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1615,1
    - Dst: empty
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1615,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1618,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1618,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1622,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1625,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1625,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1626,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1626,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1628,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1628,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1629,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1629,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1631,1
    - Dst: empty
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1631,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1634,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1634,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1639,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1641
      start: 1544
    functionDepth: 3
    functionLinenumber: 1544
    functionLinenumberEnd: 1641
    functionName: Botan_Tests::test_x509_as_blocks_extension_encode_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - ASIdOrRange
    - std::optional
    - Botan_Tests::req_opts
    - max
    - ASIdentifiers
    - Botan_Tests::make_ca
    - min
    - Botan_Tests::Test::new_rng
    - Test::Result::start_timer
    - std::vector::push_back
    - asnum
    - Botan_Tests::bit_set
    - rdi
    - ASIdentifierChoice
    - auto*::as_identifiers
    - Botan::X509_Certificate::v3_extensions
    - Botan_Tests::from_date
    - std::move
    - Test::Result::end_timer
    - empty
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::confirm
    - sign_request
    - std::make_unique<ASBlocks>
    - Botan::X509::create_cert_req
    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:1645,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1649,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1651,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1652,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1666,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1667,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1670,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1672,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1672,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1674,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1676,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1676,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1678,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1679,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1679,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1679,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1681,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1682,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1684,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1686,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1688,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1688,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1689,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1689,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1690,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1690,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1693,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1695
      start: 1643
    functionDepth: 3
    functionLinenumber: 1643
    functionLinenumberEnd: 1695
    functionName: Botan_Tests::test_x509_as_blocks_range_merge
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - ASIdOrRange
    - std::optional
    - Botan_Tests::req_opts
    - max
    - ASIdentifiers
    - Botan_Tests::make_ca
    - min
    - Botan_Tests::Test::new_rng
    - Test::Result::start_timer
    - std::vector::push_back
    - asnum
    - ASIdentifierChoice
    - auto*::as_identifiers
    - Botan::X509_Certificate::v3_extensions
    - Botan_Tests::from_date
    - std::move
    - Test::Result::end_timer
    - size
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::confirm
    - sign_request
    - std::make_unique<ASBlocks>
    - Botan::X509::create_cert_req
    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:1699,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1702,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1714,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1716,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1717,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1718,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1720,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1721,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1722,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1725,1
    - Dst: std::unique_ptr::inherit_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1726,1
    - Dst: std::unique_ptr::inherit_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1727,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1731,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1733,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1734,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1735,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1736,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1737,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1739,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1740,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1741,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1742,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1744,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1745,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1745,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1746,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1747,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1748,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1748,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1749,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1749,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1751,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1752,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1755,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1756,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1758,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1760,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1761,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1762,1
    - Dst: std::unique_ptr::inherit_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1764,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1768,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1769,1
    - Dst: std::unique_ptr::inherit_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1771,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1774,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1774,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1776,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1778,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1778,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1778,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1783,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1784,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1784,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1787,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1789
      start: 1697
    functionDepth: 3
    functionLinenumber: 1697
    functionLinenumberEnd: 1789
    functionName: Botan_Tests::test_x509_as_blocks_path_validation_success_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::req_opts
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::make_ca
    - Botan_Tests::Test::new_rng
    - std::unique_ptr::add_rdi
    - Test::Result::start_timer
    - std::unique_ptr::add_asnum
    - Botan_Tests::bit_set
    - Botan_Tests::make_and_sign_ca
    - std::unique_ptr::inherit_rdi
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - std::move
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::ca_opts
    - std::unique_ptr::inherit_asnum
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::require
    - sign_request
    - std::make_unique<ASBlocks>
    - Botan::X509::create_cert_req
    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:1793,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1796,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1807,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1808,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1809,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1811,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1812,1
    - Dst: ASIdOrRange
      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:1816,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1817,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1818,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1821,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1822,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1823,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1825,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1826,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1827,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1828,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1831,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1832,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1833,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1834,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1837,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1838,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1839,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1841,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1842,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1845,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1846,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1847,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1850,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1851,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1854,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1855,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1856,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1857,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1858,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1860,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1861,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1862,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1863,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: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1868,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1869,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1870,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1873,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1874,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1875,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1876,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1878,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1879,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1880,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1881,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1883,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1884,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1884,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1885,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1886,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1887,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1887,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1888,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1888,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1890,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1891,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1894,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1895,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1898,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1898,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1900,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1900,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1901,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1902,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1904,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1904,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1906,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1908,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1908,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1908,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1913,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1914,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1914,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1917,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1919
      start: 1791
    functionDepth: 3
    functionLinenumber: 1791
    functionLinenumberEnd: 1919
    functionName: Botan_Tests::test_x509_as_blocks_path_validation_success_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - ASIdOrRange
    - std::optional
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::req_opts
    - ASIdentifiers
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::make_ca
    - Botan_Tests::Test::new_rng
    - Test::Result::start_timer
    - std::vector::push_back
    - Botan_Tests::bit_set
    - ASIdentifierChoice
    - Botan_Tests::make_and_sign_ca
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - std::move
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::require
    - sign_request
    - std::make_unique<ASBlocks>
    - Botan::X509::create_cert_req
    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:1923,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1926,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1928,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1929,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1930,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1931,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1932,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1933,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1935,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1936,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1937,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1938,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1941,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1942,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1943,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1944,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1944,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1945,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1946,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1946,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1946,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1948,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1949,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1954,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1955,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1955,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1959
      start: 1921
    functionDepth: 3
    functionLinenumber: 1921
    functionLinenumberEnd: 1959
    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::Path_Validation_Result::successful_validation
    - Botan_Tests::req_opts
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::make_ca
    - Botan_Tests::Test::new_rng
    - std::unique_ptr::add_rdi
    - Test::Result::start_timer
    - std::unique_ptr::add_asnum
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - std::move
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::require
    - sign_request
    - std::make_unique<ASBlocks>
    - Botan::X509::create_cert_req
    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:1963,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1966,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: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1971,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1972,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1973,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1975,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1976,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1977,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1978,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: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1984,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1985,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1988,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1989,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1990,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1991,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1993,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1994,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1995,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1996,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1999,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2000,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2001,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2002,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2002,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2003,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2004,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2004,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2004,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2006,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2007,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2012,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2013,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2013,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2017
      start: 1961
    functionDepth: 3
    functionLinenumber: 1961
    functionLinenumberEnd: 2017
    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:
    - ASIdOrRange
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::req_opts
    - ASIdentifiers
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::make_ca
    - Botan_Tests::Test::new_rng
    - Test::Result::start_timer
    - std::vector::push_back
    - ASIdentifierChoice
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - std::move
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::require
    - sign_request
    - std::make_unique<ASBlocks>
    - Botan::X509::create_cert_req
    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:2021,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2024,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2073,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2078,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2081,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2082,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2083,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2086,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2087,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2088,1
    - Dst: std::unique_ptr::inherit_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2091,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:2099,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2100,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2101,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2103,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2104,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2105,1
    - Dst: std::unique_ptr::inherit_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2108,1
    - Dst: std::unique_ptr::restrict_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2112,1
    - Dst: std::unique_ptr::restrict_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2113,1
    - Dst: std::unique_ptr::copy
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2119,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2122,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2131,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:2137,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2138,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:2144,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:2150,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2151,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2152,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2156,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2157,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2158,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2159,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2161,1
    - Dst: std::unique_ptr::inherit_asnum
      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: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:2174,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2175,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:2178,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2179,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2180,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2181,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2183,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2184,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2185,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2187,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2188,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2189,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2190,1
    - Dst: std::unique_ptr::inherit_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2193,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2196,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2197,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2197,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2198,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2199,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2199,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2201,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2202,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2202,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2203,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2205,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2205,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2205,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2207,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2208,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2213,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2215,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2215,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2215,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2218,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 115
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2220
      start: 2019
    functionDepth: 3
    functionLinenumber: 2019
    functionLinenumberEnd: 2220
    functionName: Botan_Tests::test_x509_as_blocks_path_validation_failure_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::req_opts
    - Botan::Certificate_Store_In_Memory::add_certificate
    - std::unique_ptr::restrict_rdi
    - Botan_Tests::make_ca
    - std::unique_ptr::restrict_asnum
    - Botan_Tests::Test::new_rng
    - std::unique_ptr::add_rdi
    - Test::Result::start_timer
    - std::unique_ptr::add_asnum
    - Botan_Tests::make_and_sign_ca
    - std::unique_ptr::inherit_rdi
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - std::unique_ptr::copy
    - std::move
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::ca_opts
    - std::unique_ptr::inherit_asnum
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::confirm
    - std::to_string
    - sign_request
    - std::make_unique<ASBlocks>
    - Botan::X509::create_cert_req
    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:2224,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2227,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:2285,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2285,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2286,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2286,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: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:2292,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2292,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2297,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2297,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2299,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2299,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2300,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2300,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2301,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2301,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2303,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2303,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2304,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2304,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2305,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2305,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2321,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2321,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2324,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2324,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2328,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2334,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: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2340,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2345,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2346,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2346,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2348,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2348,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2353,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2353,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2355,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: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2361,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2362,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2362,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2365,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2368,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2369,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2369,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: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2382,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2385,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2385,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2387,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2387,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2388,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2389,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2391,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2392,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2392,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2393,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2394,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2394,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2396,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2397,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2397,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2398,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2400,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2400,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2400,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2402,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2403,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2408,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2410,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2410,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2410,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2413,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2415
      start: 2222
    functionDepth: 3
    functionLinenumber: 2222
    functionLinenumberEnd: 2415
    functionName: Botan_Tests::test_x509_as_blocks_path_validation_failure_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - ASIdOrRange
    - std::optional
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::req_opts
    - ASIdentifiers
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::make_ca
    - Botan_Tests::Test::new_rng
    - Test::Result::start_timer
    - std::vector::push_back
    - ASIdentifierChoice
    - Botan_Tests::make_and_sign_ca
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - std::move
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::confirm
    - std::to_string
    - sign_request
    - std::make_unique<ASBlocks>
    - Botan::X509::create_cert_req
    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:2423,1
    - Dst: test_x509_ip_addr_blocks_extension_decode
      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_as_blocks_extension_decode
      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:2426,1
    - Dst: test_x509_ip_addr_blocks_rfc3779_example
      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_ip_addr_blocks_encode_builder
      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_ip_addr_blocks_extension_encode_ctor
      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_ip_addr_blocks_extension_encode_edge_cases_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_ip_addr_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_ip_addr_blocks_family_merge
      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_ip_addr_blocks_path_validation_success_builder
      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_ip_addr_blocks_path_validation_success_ctor
      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_ip_addr_blocks_path_validation_failure_builder
      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_ip_addr_blocks_path_validation_failure_ctor
      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_rfc3779_example
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2436,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2437,1
    - Dst: test_x509_as_blocks_encode_builder
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2437,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2438,1
    - Dst: test_x509_as_blocks_extension_encode_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2438,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2439,1
    - Dst: test_x509_as_blocks_range_merge
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2439,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2440,1
    - Dst: test_x509_as_blocks_path_validation_success_builder
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2440,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2441,1
    - Dst: test_x509_as_blocks_path_validation_success_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2441,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2442,1
    - Dst: test_x509_as_blocks_path_validation_extension_not_present_builder
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2442,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2443,1
    - Dst: test_x509_as_blocks_path_validation_extension_not_present_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2443,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2444,1
    - Dst: test_x509_as_blocks_path_validation_failure_builder
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2444,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2445,1
    - Dst: test_x509_as_blocks_path_validation_failure_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2447
      start: 2419
    functionDepth: 0
    functionLinenumber: 2419
    functionLinenumberEnd: 2447
    functionName: Botan_Tests::X509_RPKI_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - test_x509_ip_addr_blocks_path_validation_failure_builder
    - test_x509_ip_addr_blocks_encode_builder
    - test_x509_as_blocks_rfc3779_example
    - test_x509_as_blocks_extension_encode_ctor
    - test_x509_as_blocks_path_validation_failure_builder
    - test_x509_as_blocks_range_merge
    - test_x509_ip_addr_blocks_path_validation_success_builder
    - test_x509_ip_addr_blocks_extension_decode
    - test_x509_as_blocks_extension_decode
    - test_x509_ip_addr_blocks_path_validation_success_ctor
    - test_x509_ip_addr_blocks_extension_encode_ctor
    - test_x509_ip_addr_blocks_rfc3779_example
    - test_x509_as_blocks_path_validation_extension_not_present_builder
    - std::vector::push_back
    - test_x509_as_blocks_encode_builder
    - test_x509_as_blocks_path_validation_failure_ctor
    - test_x509_ip_addr_blocks_range_merge
    - test_x509_as_blocks_path_validation_success_builder
    - test_x509_ip_addr_blocks_family_merge
    - test_x509_ip_addr_blocks_extension_encode_edge_cases_ctor
    - test_x509_ip_addr_blocks_path_validation_failure_ctor
    - test_x509_as_blocks_path_validation_success_ctor
    - test_x509_as_blocks_path_validation_extension_not_present_ctor
    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:41,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/test_x509_rpki.cpp:41,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:43,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/tests/test_x509_rpki.cpp:44,1
    - Dst: Botan::calendar_point::to_std_timepoint
      Src: /src/botan/src/tests/test_x509_rpki.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - y
    - m
    - d
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: Botan_Tests::from_date
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 79
    functionsReached:
    - static_cast<uint32_t>
    - Botan::calendar_point::to_std_timepoint
    - Botan::X509_Time
    - Botan::TLS::detail::AsyncBase::complete_now
    - Botan::calendar_point
    linkageType: ''
    returnType: Botan::X509_Time
    signature: Botan::X509_Time from_date(const int y, const int m, const int d)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_x509_rpki.cpp:53,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:63,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ' algo'
    - ' rng'
    argTypes:
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 64
    functionName: Botan_Tests::generate_key
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 9
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - Botan::create_private_key
    linkageType: ''
    returnType: std::unique_ptr<Botan::Private_Key>
    signature: std::unique_ptr<Botan::Private_Key> generate_key(const std::string&
      algo, Botan::RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/tests/test_x509_rpki.cpp:72,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 77
    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:85,1
    - Dst: Botan::X509_Cert_Options::not_before
      Src: /src/botan/src/tests/test_x509_rpki.cpp:87,1
    - Dst: Botan::X509_Cert_Options::not_after
      Src: /src/botan/src/tests/test_x509_rpki.cpp:88,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 99
    functionName: Botan_Tests::req_opts
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 48
    functionsReached:
    - Botan::X509_Cert_Options::not_after
    - Botan::X509_Cert_Options::set_padding_scheme
    - Botan::X509_Cert_Options::not_before
    linkageType: ''
    returnType: Botan::X509_Cert_Options
    signature: Botan::X509_Cert_Options req_opts(const std::string& algo, const std::string&
      sig_padding = "")
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_tuple
      Src: /src/botan/src/tests/test_x509_rpki.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 117
    functionName: Botan_Tests::get_sig_algo_padding
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 9
    functionsReached:
    - std::make_tuple
    linkageType: ''
    returnType: std::tuple<std::string, std::string, std::string>
    signature: std::tuple<std::string, std::string, std::string> get_sig_algo_padding()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:120,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:120,1
    - Dst: Botan_Tests::get_sig_algo_padding
      Src: /src/botan/src/tests/test_x509_rpki.cpp:121,1
    - Dst: Botan_Tests::generate_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:122,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/test_x509_rpki.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - std::unique_ptr<Botan::RandomNumberGenerator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 126
    functionName: Botan_Tests::make_self_signed
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 12
    functionsReached:
    - std::move
    - Botan_Tests::ca_opts
    - Botan_Tests::generate_key
    - Botan_Tests::get_sig_algo_padding
    - Botan::X509::create_self_signed_cert
    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:129,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:129,1
    - Dst: Botan_Tests::get_sig_algo_padding
      Src: /src/botan/src/tests/test_x509_rpki.cpp:130,1
    - Dst: Botan_Tests::generate_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:131,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/test_x509_rpki.cpp:132,1
    - Dst: Botan_Tests::generate_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:134,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:136,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - std::unique_ptr<Botan::RandomNumberGenerator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 137
    functionName: Botan_Tests::make_ca
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 48
    functionsReached:
    - std::move
    - Botan_Tests::ca_opts
    - Botan_Tests::generate_key
    - Botan_Tests::get_sig_algo_padding
    - Botan::X509::create_self_signed_cert
    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
      Src: /src/botan/src/tests/test_x509_rpki.cpp:143,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:145,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:146,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:146,1
    - Dst: Botan_Tests::generate_key
      Src: /src/botan/src/tests/test_x509_rpki.cpp:148,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:150,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:151,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:151,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:151,1
    - Dst: std::make_pair
      Src: /src/botan/src/tests/test_x509_rpki.cpp:154,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:154,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:154,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: 155
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 155
    functionName: Botan_Tests::make_and_sign_ca
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 24
    functionsReached:
    - std::move
    - Botan_Tests::ca_opts
    - std::make_pair
    - Botan_Tests::from_date
    - Botan::X509_Cert_Options::extensions::add
    - Botan_Tests::generate_key
    - Botan_Tests::get_sig_algo_padding
    - sign_request
    - Botan::X509::create_cert_req
    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:164,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:169,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:170,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:172,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:173,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:174,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:174,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:176,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:176,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:177,1
    - Dst: addr_choice
      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_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:187,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:187,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:188,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:188,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:190,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:190,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:191,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:191,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:192,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:192,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:193,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:193,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:195,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:195,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:196,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:196,1
    - Dst: ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:198,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:206,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:207,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:209,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:210,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:212,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:213,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:215,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:216,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:218,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:219,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:221,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:222,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:224,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:225,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:227,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:228,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:233,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:234,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:246,1
    - Dst: Test::Result::test_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_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:249,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:249,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:250,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:252,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:252,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:254,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:254,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:256,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:256,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:258,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:258,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:259,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:259,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:260,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:260,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:262,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:262,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:263,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:265,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:265,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:267,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:267,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:269,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:269,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:271,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:271,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:272,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:273,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:275,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:276,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:279,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:279,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:280,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:282,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:282,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:286,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:290,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:290,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:290,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:292,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:293,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 298
    functionName: Botan_Tests::test_x509_ip_addr_blocks_extension_decode
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - safi
    - std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
    - Test::Result::end_timer
    - Botan::Cert_Extension::static_oid
    - min
    - Botan_Tests::Test::data_file
    - ranges
    - size
    - std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
    - max
    - auto*::addr_blocks
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::X509_Certificate::v3_extensions
    - addr_choice
    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:302,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:307,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:309,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:311,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:312,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:314,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:315,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:318,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:318,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:319,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:319,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:322,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:322,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:323,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:323,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:327,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:329,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:331,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:332,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:334,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:335,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:335,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:338,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:338,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:339,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:339,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:343,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:345,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:347,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:348,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:350,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:350,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:351,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:354,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:354,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:355,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:355,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_x509_rpki.cpp:359,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:361,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:363,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:364,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:366,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:366,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:367,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:370,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:370,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:371,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:371,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 376
    functionName: Botan_Tests::test_x509_as_blocks_extension_decode
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - asnum
    - Test::Result::end_timer
    - min
    - Botan_Tests::Test::data_file
    - rdi
    - max
    - Test::Result::confirm
    - auto*::as_identifiers
    - Botan::X509_Certificate::v3_extensions
    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:382,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:385,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:388,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:389,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:390,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:391,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:392,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:393,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:394,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:395,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:397,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:398,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:398,1
    - Dst: Botan_Tests::make_self_signed
      Src: /src/botan/src/tests/test_x509_rpki.cpp:400,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:402,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:402,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:404,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:409,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:411,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:412,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:412,1
    - Dst: std::optional<uint8_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:412,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:414,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:414,1
    - Dst: Test::Result::test_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_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_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_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_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:421,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:421,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:422,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:422,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:424,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:424,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:425,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:425,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:427,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:427,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:428,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:428,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:430,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:430,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:430,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:431,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:433,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:433,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:433,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:436,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:437,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:440,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:441,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:442,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:444,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:445,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:445,1
    - Dst: Botan_Tests::make_self_signed
      Src: /src/botan/src/tests/test_x509_rpki.cpp:447,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:449,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:449,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:452,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:456,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:458,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:459,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:459,1
    - Dst: std::optional<uint8_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:459,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:461,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:461,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:462,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:462,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:463,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:463,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:465,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:465,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:466,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:466,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:468,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:468,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:468,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:469,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:471,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:471,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:471,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:473,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:474,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:474,1
    - Dst: std::optional<uint8_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:474,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:476,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:476,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:477,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:478,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:480,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:481,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 380
    functionDepth: 3
    functionLinenumber: 380
    functionLinenumberEnd: 486
    functionName: Botan_Tests::test_x509_ip_addr_blocks_rfc3779_example
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
    - max
    - Botan_Tests::make_self_signed
    - auto::addr_choice
    - safi
    - min
    - std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
    - Botan_Tests::Test::new_rng
    - Test::Result::start_timer
    - Botan::Cert_Extension::static_oid
    - auto::v3_extensions
    - std::make_unique<IPAddressBlocks>
    - std::unique_ptr::add_address
    - std::unique_ptr::inherit
    - addr_choice
    - std::move
    - Test::Result::end_timer
    - Botan_Tests::ca_opts
    - Test::Result::test_eq
    - auto*::addr_blocks
    - Botan::X509_Cert_Options::extensions::add
    - std::optional<uint8_t>
    - Test::Result::confirm
    - auto::safi
    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:490,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:493,1
    - Dst: std::make_unique<IPAddressBlocks>
      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: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:502,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:504,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:507,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:509,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:511,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:512,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:512,1
    - Dst: Botan_Tests::make_self_signed
      Src: /src/botan/src/tests/test_x509_rpki.cpp:514,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:515,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:515,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:518,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 488
    functionDepth: 3
    functionLinenumber: 488
    functionLinenumberEnd: 525
    functionName: Botan_Tests::test_x509_ip_addr_blocks_encode_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - std::move
    - Test::Result::end_timer
    - Botan::Cert_Extension::static_oid
    - Botan_Tests::ca_opts
    - auto::v3_extensions
    - std::make_unique<IPAddressBlocks>
    - std::unique_ptr::add_address
    - Test::Result::test_eq
    - Botan::X509_Cert_Options::extensions::add
    - Botan_Tests::make_self_signed
    - 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: 536
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 536
    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: 536
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 536
    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:542,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:546,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:548,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:551,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:552,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:553,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:554,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:555,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:556,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:558,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:561,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:563,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:567,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:569,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:573,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      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:580,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:584,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:587,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:591,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:593,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:595,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:596,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:597,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:598,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:600,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:601,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:602,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:603,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: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:610,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:615,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:616,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:617,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:618,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:621,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:623,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:626,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:628,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:631,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:632,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:636,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:639,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:642,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:644,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:644,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:646,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:647,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:647,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:647,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:649,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:650,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:652,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:654,1
    - Dst: empty
      Src: /src/botan/src/tests/test_x509_rpki.cpp:654,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:660,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:660,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:660,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:661,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:661,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:661,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:662,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:662,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:665,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:667,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:667,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:667,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:668,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:668,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:668,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:669,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:669,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:669,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:670,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:670,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:670,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:671,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:671,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:671,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:672,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:672,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:672,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:673,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:673,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:673,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:674,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:674,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:674,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:676,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_x509_rpki.cpp:676,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:679,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:679,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:684,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:685,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:685,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:685,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:686,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:686,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:686,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:687,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:687,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:689,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:691,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:691,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:691,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:692,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:692,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:692,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:693,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:693,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:693,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:694,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:694,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:694,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:695,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:695,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:695,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:696,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:696,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:696,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:697,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:697,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:697,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:698,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:698,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:698,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:700,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_x509_rpki.cpp:700,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:703,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:703,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:709,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 88
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 540
    functionDepth: 3
    functionLinenumber: 540
    functionLinenumberEnd: 711
    functionName: Botan_Tests::test_x509_ip_addr_blocks_extension_encode_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
    - auto::empty
    - Botan_Tests::req_opts
    - max
    - IPAddressBlocks::IPAddressOrRange<IPv6>
    - IPAddressBlocks::IPAddressOrRange<IPv4>
    - auto::addr_choice
    - Botan_Tests::make_ca
    - IPAddressBlocks::IPAddressChoice<IPv4>
    - min
    - std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
    - auto::min
    - Botan_Tests::Test::new_rng
    - IPAddressFamily
    - IPAddressBlocks::IPAddressChoice<IPv6>
    - auto::max
    - Test::Result::start_timer
    - auto::ranges
    - std::vector::push_back
    - auto::afi
    - Botan_Tests::bit_set
    - std::make_unique<IPAddressBlocks>
    - Botan::X509_Certificate::v3_extensions
    - Botan_Tests::from_date
    - IPAddressBlocks::IPAddress<IPv6>
    - std::move
    - Test::Result::end_timer
    - size
    - auto*::addr_blocks
    - empty
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::confirm
    - Test::Result::test_eq
    - auto::safi
    - sign_request
    - IPAddressBlocks::IPAddress<IPv4>
    - Botan::X509::create_cert_req
    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:715,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:719,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:725,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:727,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:729,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:730,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:739,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:751,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:752,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:754,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:757,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:759,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:761,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:764,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:766,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:768,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:768,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:770,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:771,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:771,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:771,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:773,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:774,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:775,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:777,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:777,1
    - Dst: auto::afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:777,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:778,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:778,1
    - Dst: auto::safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:778,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:779,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:779,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:780,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:782,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:782,1
    - Dst: auto::min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:782,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:783,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:783,1
    - Dst: auto::max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:783,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:788,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 713
    functionDepth: 3
    functionLinenumber: 713
    functionLinenumberEnd: 790
    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:
    - Botan_Tests::req_opts
    - max
    - IPAddressBlocks::IPAddressOrRange<IPv6>
    - auto::addr_choice
    - Botan_Tests::make_ca
    - min
    - std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
    - auto::min
    - Botan_Tests::Test::new_rng
    - IPAddressFamily
    - IPAddressBlocks::IPAddressChoice<IPv6>
    - auto::max
    - Test::Result::start_timer
    - auto::ranges
    - std::vector::push_back
    - auto::afi
    - Botan_Tests::bit_set
    - std::make_unique<IPAddressBlocks>
    - std::vector::size
    - Botan::X509_Certificate::v3_extensions
    - Botan_Tests::from_date
    - IPAddressBlocks::IPAddress<IPv6>
    - std::move
    - Test::Result::end_timer
    - auto*::addr_blocks
    - Test::Result::test_eq
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::confirm
    - auto::safi
    - sign_request
    - Botan::X509::create_cert_req
    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:794,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:798,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:800,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:801,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:817,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:818,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:819,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:820,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:823,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:824,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:827,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:829,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:831,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:831,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:833,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:834,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:834,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:834,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:836,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:837,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:838,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:840,1
    - Dst: auto::addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:840,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:841,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:846,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:846,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:847,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:847,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:848,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:848,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:851,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 792
    functionDepth: 3
    functionLinenumber: 792
    functionLinenumberEnd: 853
    functionName: Botan_Tests::test_x509_ip_addr_blocks_range_merge
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
    - Botan_Tests::req_opts
    - max
    - auto::size
    - IPAddressBlocks::IPAddressOrRange<IPv4>
    - auto::addr_choice
    - Botan_Tests::make_ca
    - IPAddressBlocks::IPAddressChoice<IPv4>
    - min
    - Botan_Tests::Test::new_rng
    - IPAddressFamily
    - Test::Result::start_timer
    - auto::ranges
    - std::vector::push_back
    - std::make_unique<IPAddressBlocks>
    - Botan::X509_Certificate::v3_extensions
    - Botan_Tests::from_date
    - std::move
    - Test::Result::end_timer
    - auto*::addr_blocks
    - Test::Result::test_eq
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::confirm
    - sign_request
    - IPAddressBlocks::IPAddress<IPv4>
    - Botan::X509::create_cert_req
    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:857,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:861,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:863,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:864,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:876,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:876,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:878,1
    - Dst: IPAddressBlocks::IPAddressChoice::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:879,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:886,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:886,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:888,1
    - Dst: IPAddressBlocks::IPAddressChoice::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:889,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:906,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:907,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:908,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:909,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:910,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:911,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:917,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:919,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:919,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:921,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:922,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:922,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:922,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:924,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:925,1
    - Dst: auto*::addr_blocks
      Src: /src/botan/src/tests/test_x509_rpki.cpp:926,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:928,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:928,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:928,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:931,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:935,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:936,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:937,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:937,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:939,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:942,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:943,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:944,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:944,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:946,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:955,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:957,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:961,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:961,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:961,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:961,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:962,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:962,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:962,1
    - Dst: safi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:962,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:964,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:964,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:965,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:965,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:966,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:966,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:968,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:969,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:970,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:970,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:972,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:973,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:973,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:975,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:979,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:980,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:981,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:981,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:982,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:982,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:985,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:985,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:989,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:990,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:991,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:991,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:992,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:993,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:994,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:995,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:995,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:996,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:997,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1000,1
    - Dst: afi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1000,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1001,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1001,1
    - Dst: std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1002,1
    - Dst: addr_choice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1002,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1004,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1005,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1006,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1006,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1008,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1009,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1009,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1011,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1015,1
    - Dst: auto::ranges
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1016,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1017,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1017,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1018,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1018,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1021,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1021,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1025,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1026,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1027,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1027,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1028,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1029,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1030,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1031,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1031,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1032,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1033,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1039,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 74
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 855
    functionDepth: 3
    functionLinenumber: 855
    functionLinenumberEnd: 1041
    functionName: Botan_Tests::test_x509_ip_addr_blocks_family_merge
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - afi
    - std::get<IPAddressBlocks::IPAddressChoice<IPv4>>
    - Botan_Tests::req_opts
    - max
    - IPAddressBlocks::IPAddressOrRange<IPv6>
    - auto::size
    - IPAddressBlocks::IPAddressOrRange<IPv4>
    - safi
    - Botan_Tests::make_ca
    - IPAddressBlocks::IPAddressChoice::ranges
    - min
    - std::get<IPAddressBlocks::IPAddressChoice<IPv6>>
    - Botan_Tests::Test::new_rng
    - Test::Result::start_timer
    - auto::ranges
    - std::vector::push_back
    - static_cast<uint32_t>
    - std::make_unique<IPAddressBlocks>
    - std::vector::size
    - Botan::X509_Certificate::v3_extensions
    - Botan_Tests::from_date
    - addr_choice
    - IPAddressBlocks::IPAddress<IPv6>
    - std::move
    - Test::Result::end_timer
    - size
    - auto*::addr_blocks
    - Test::Result::test_eq
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::confirm
    - std::to_string
    - sign_request
    - IPAddressBlocks::IPAddress<IPv4>
    - Botan::X509::create_cert_req
    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:1045,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1048,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1059,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1061,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1062,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1064,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1067,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1072,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1074,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1075,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1078,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1080,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1081,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1083,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1087,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1088,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1088,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1089,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1090,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1091,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1091,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1092,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1092,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1094,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1095,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1098,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1099,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1102,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1104,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1105,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1107,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1111,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1115,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1118,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1118,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1120,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1122,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1122,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1122,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1127,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1128,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1128,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1131,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1133
      start: 1043
    functionDepth: 3
    functionLinenumber: 1043
    functionLinenumberEnd: 1133
    functionName: Botan_Tests::test_x509_ip_addr_blocks_path_validation_success_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::req_opts
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::make_ca
    - Botan_Tests::Test::new_rng
    - Test::Result::start_timer
    - Botan_Tests::bit_set
    - std::make_unique<IPAddressBlocks>
    - std::unique_ptr::add_address
    - Botan_Tests::make_and_sign_ca
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - std::unique_ptr::inherit
    - std::move
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::require
    - sign_request
    - Botan::X509::create_cert_req
    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:1137,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1140,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1157,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1159,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1162,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1164,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1167,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1169,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1171,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1172,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1173,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1174,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1179,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1180,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1182,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1183,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1186,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1189,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1190,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1192,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1193,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1196,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1200,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1202,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1204,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1206,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1209,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1211,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1213,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1214,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1215,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1222,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1224,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1227,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1229,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1232,1
    - Dst: IPAddressBlocks::IPAddress<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1234,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1236,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1237,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1238,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1243,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1244,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1246,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1247,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1250,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1252,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1253,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1253,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1254,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1255,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1256,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1256,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1257,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1257,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1259,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1260,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1263,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1264,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1267,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1267,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv6>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1269,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1269,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1271,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1272,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1275,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1277,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1277,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1279,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1281,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1281,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1281,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1286,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1287,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1287,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1292
      start: 1135
    functionDepth: 3
    functionLinenumber: 1135
    functionLinenumberEnd: 1292
    functionName: Botan_Tests::test_x509_ip_addr_blocks_path_validation_success_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - std::optional
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::req_opts
    - Botan::Certificate_Store_In_Memory::add_certificate
    - IPAddressBlocks::IPAddressOrRange<IPv6>
    - IPAddressBlocks::IPAddressOrRange<IPv4>
    - Botan_Tests::make_ca
    - IPAddressBlocks::IPAddressChoice<IPv4>
    - Botan_Tests::Test::new_rng
    - IPAddressFamily
    - IPAddressBlocks::IPAddressChoice<IPv6>
    - Test::Result::start_timer
    - Botan_Tests::bit_set
    - std::make_unique<IPAddressBlocks>
    - Botan_Tests::make_and_sign_ca
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - IPAddressBlocks::IPAddress<IPv6>
    - std::move
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::require
    - sign_request
    - IPAddressBlocks::IPAddress<IPv4>
    - Botan::X509::create_cert_req
    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:1296,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1299,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1311,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1313,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1315,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1318,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1320,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1320,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1322,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1325,1
    - Dst: std::unique_ptr::restrict
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1328,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1330,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1333,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1336,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1336,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1339,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1345,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1347,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1349,1
    - Dst: std::unique_ptr::add_address
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1351,1
    - Dst: std::unique_ptr::inherit
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1354,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1357,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1358,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1358,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1360,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1362,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1362,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1362,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1367,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1368,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1370,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1371,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1371,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1374,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1376
      start: 1294
    functionDepth: 3
    functionLinenumber: 1294
    functionLinenumberEnd: 1376
    functionName: Botan_Tests::test_x509_ip_addr_blocks_path_validation_failure_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Result::successful_validation
    - std::unique_ptr::restrict
    - Botan_Tests::req_opts
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::make_ca
    - Botan_Tests::Test::new_rng
    - Test::Result::start_timer
    - std::make_unique<IPAddressBlocks>
    - std::unique_ptr::add_address
    - Botan_Tests::make_and_sign_ca
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - std::unique_ptr::inherit
    - std::move
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::require
    - sign_request
    - Botan::X509::create_cert_req
    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:1380,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1383,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1400,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1403,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1403,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1404,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1406,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1408,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1410,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1410,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1412,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1416,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1418,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1419,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1424,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1427,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1427,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1428,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1430,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1431,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1431,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1442,1
    - Dst: IPAddressBlocks::IPAddress<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1450,1
    - Dst: IPAddressBlocks::IPAddressOrRange<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1452,1
    - Dst: IPAddressBlocks::IPAddressChoice<IPv4>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1454,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1454,1
    - Dst: IPAddressFamily
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1455,1
    - Dst: std::make_unique<IPAddressBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1458,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1460,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1461,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1461,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1463,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1465,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1465,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1465,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1470,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1471,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1473,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1474,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1474,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1477,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1479
      start: 1378
    functionDepth: 3
    functionLinenumber: 1378
    functionLinenumberEnd: 1479
    functionName: Botan_Tests::test_x509_ip_addr_blocks_path_validation_failure_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - std::optional
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::req_opts
    - Botan::Certificate_Store_In_Memory::add_certificate
    - IPAddressBlocks::IPAddressOrRange<IPv4>
    - Botan_Tests::make_ca
    - IPAddressBlocks::IPAddressChoice<IPv4>
    - Botan_Tests::Test::new_rng
    - IPAddressFamily
    - Test::Result::start_timer
    - std::vector::push_back
    - std::make_unique<IPAddressBlocks>
    - Botan_Tests::make_and_sign_ca
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - std::move
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::require
    - sign_request
    - IPAddressBlocks::IPAddress<IPv4>
    - Botan::X509::create_cert_req
    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:1483,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1486,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1489,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1490,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1491,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1492,1
    - Dst: std::unique_ptr::inherit_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1493,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1495,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1496,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1496,1
    - Dst: Botan_Tests::make_self_signed
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1498,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1499,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1499,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1501,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1504,1
    - Dst: auto::asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1505,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1507,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1507,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1511
      start: 1481
    functionDepth: 3
    functionLinenumber: 1481
    functionLinenumberEnd: 1511
    functionName: Botan_Tests::test_x509_as_blocks_rfc3779_example
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - std::unique_ptr::add_asnum
    - std::move
    - Test::Result::end_timer
    - Botan::Cert_Extension::static_oid
    - min
    - Botan_Tests::ca_opts
    - auto::v3_extensions
    - auto::asnum
    - Test::Result::test_eq
    - Botan::X509_Cert_Options::extensions::add
    - Botan_Tests::make_self_signed
    - Test::Result::confirm
    - std::unique_ptr::inherit_rdi
    - Botan_Tests::Test::new_rng
    - std::make_unique<ASBlocks>
    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:1515,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1518,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1520,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1522,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1523,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1524,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1525,1
    - Dst: std::unique_ptr::inherit_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1527,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1528,1
    - Dst: std::unique_ptr::restrict_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1530,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1532,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1533,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1533,1
    - Dst: Botan_Tests::make_self_signed
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1535,1
    - Dst: auto::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1536,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1536,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1538,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1513
    functionDepth: 3
    functionLinenumber: 1513
    functionLinenumberEnd: 1542
    functionName: Botan_Tests::test_x509_as_blocks_encode_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - std::unique_ptr::add_asnum
    - std::move
    - Test::Result::end_timer
    - Botan::Cert_Extension::static_oid
    - Botan_Tests::ca_opts
    - auto::v3_extensions
    - std::unique_ptr::inherit_asnum
    - Test::Result::test_eq
    - Botan::X509_Cert_Options::extensions::add
    - std::unique_ptr::restrict_asnum
    - Botan_Tests::make_self_signed
    - Botan_Tests::Test::new_rng
    - std::unique_ptr::add_rdi
    - std::make_unique<ASBlocks>
    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:1546,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1550,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1552,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1555,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1556,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1557,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1558,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1563,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1564,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1565,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1567,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1568,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1569,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1573,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1574,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1575,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1580,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1581,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1582,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1585,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1586,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1588,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1588,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1589,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1591,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1593,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1594,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1594,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1596,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1597,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1597,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1597,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1600,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1601,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1603,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1606,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1609,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1609,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1610,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1610,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1612,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1612,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1613,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1613,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1615,1
    - Dst: empty
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1615,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1618,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1618,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1622,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1625,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1625,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1626,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1626,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1628,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1628,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1629,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1629,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1631,1
    - Dst: empty
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1631,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1634,1
    - Dst: rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1634,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1639,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1641
      start: 1544
    functionDepth: 3
    functionLinenumber: 1544
    functionLinenumberEnd: 1641
    functionName: Botan_Tests::test_x509_as_blocks_extension_encode_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - ASIdOrRange
    - std::optional
    - Botan_Tests::req_opts
    - max
    - ASIdentifiers
    - Botan_Tests::make_ca
    - min
    - Botan_Tests::Test::new_rng
    - Test::Result::start_timer
    - std::vector::push_back
    - asnum
    - Botan_Tests::bit_set
    - rdi
    - ASIdentifierChoice
    - auto*::as_identifiers
    - Botan::X509_Certificate::v3_extensions
    - Botan_Tests::from_date
    - std::move
    - Test::Result::end_timer
    - empty
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::confirm
    - sign_request
    - std::make_unique<ASBlocks>
    - Botan::X509::create_cert_req
    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:1645,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1649,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1651,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1652,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1666,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1667,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1670,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1672,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1672,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1674,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1676,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1676,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1678,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1679,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1679,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1679,1
    - Dst: Botan::X509_Certificate::v3_extensions
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1681,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1682,1
    - Dst: auto*::as_identifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1684,1
    - Dst: asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1686,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1688,1
    - Dst: min
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1688,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1689,1
    - Dst: max
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1689,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1690,1
    - Dst: size
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1690,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1693,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1695
      start: 1643
    functionDepth: 3
    functionLinenumber: 1643
    functionLinenumberEnd: 1695
    functionName: Botan_Tests::test_x509_as_blocks_range_merge
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - ASIdOrRange
    - std::optional
    - Botan_Tests::req_opts
    - max
    - ASIdentifiers
    - Botan_Tests::make_ca
    - min
    - Botan_Tests::Test::new_rng
    - Test::Result::start_timer
    - std::vector::push_back
    - asnum
    - ASIdentifierChoice
    - auto*::as_identifiers
    - Botan::X509_Certificate::v3_extensions
    - Botan_Tests::from_date
    - std::move
    - Test::Result::end_timer
    - size
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::confirm
    - sign_request
    - std::make_unique<ASBlocks>
    - Botan::X509::create_cert_req
    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:1699,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1702,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1714,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1716,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1717,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1718,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1720,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1721,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1722,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1725,1
    - Dst: std::unique_ptr::inherit_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1726,1
    - Dst: std::unique_ptr::inherit_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1727,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1731,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1733,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1734,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1735,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1736,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1737,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1739,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1740,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1741,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1742,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1744,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1745,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1745,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1746,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1747,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1748,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1748,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1749,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1749,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1751,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1752,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1755,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1756,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1758,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1760,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1761,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1762,1
    - Dst: std::unique_ptr::inherit_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1764,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1768,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1769,1
    - Dst: std::unique_ptr::inherit_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1771,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1774,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1774,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1776,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1778,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1778,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1778,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1783,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1784,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1784,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1787,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1789
      start: 1697
    functionDepth: 3
    functionLinenumber: 1697
    functionLinenumberEnd: 1789
    functionName: Botan_Tests::test_x509_as_blocks_path_validation_success_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::req_opts
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::make_ca
    - Botan_Tests::Test::new_rng
    - std::unique_ptr::add_rdi
    - Test::Result::start_timer
    - std::unique_ptr::add_asnum
    - Botan_Tests::bit_set
    - Botan_Tests::make_and_sign_ca
    - std::unique_ptr::inherit_rdi
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - std::move
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::ca_opts
    - std::unique_ptr::inherit_asnum
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::require
    - sign_request
    - std::make_unique<ASBlocks>
    - Botan::X509::create_cert_req
    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:1793,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1796,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1807,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1808,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1809,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1811,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1812,1
    - Dst: ASIdOrRange
      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:1816,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1817,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1818,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1821,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1822,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1823,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1825,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1826,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1827,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1828,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1831,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1832,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1833,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1834,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1837,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1838,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1839,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1841,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1842,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1845,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1846,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1847,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1850,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1851,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1854,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1855,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1856,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1857,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1858,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1860,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1861,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1862,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1863,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: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1868,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1869,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1870,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1873,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1874,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1875,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1876,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1878,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1879,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1880,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1881,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1883,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1884,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1884,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1885,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1886,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1887,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1887,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1888,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1888,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1890,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1891,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1894,1
    - Dst: Botan_Tests::bit_set
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1895,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1898,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1898,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1900,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1900,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1901,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1902,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1904,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1904,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1906,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1908,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1908,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1908,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1913,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1914,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1914,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1917,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1919
      start: 1791
    functionDepth: 3
    functionLinenumber: 1791
    functionLinenumberEnd: 1919
    functionName: Botan_Tests::test_x509_as_blocks_path_validation_success_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - ASIdOrRange
    - std::optional
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::req_opts
    - ASIdentifiers
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::make_ca
    - Botan_Tests::Test::new_rng
    - Test::Result::start_timer
    - std::vector::push_back
    - Botan_Tests::bit_set
    - ASIdentifierChoice
    - Botan_Tests::make_and_sign_ca
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - std::move
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::require
    - sign_request
    - std::make_unique<ASBlocks>
    - Botan::X509::create_cert_req
    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:1923,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1926,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1928,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1929,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1930,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1931,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1932,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1933,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1935,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1936,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1937,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1938,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1941,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1942,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1943,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1944,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1944,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1945,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1946,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1946,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1946,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1948,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1949,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1954,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1955,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1955,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1959
      start: 1921
    functionDepth: 3
    functionLinenumber: 1921
    functionLinenumberEnd: 1959
    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::Path_Validation_Result::successful_validation
    - Botan_Tests::req_opts
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::make_ca
    - Botan_Tests::Test::new_rng
    - std::unique_ptr::add_rdi
    - Test::Result::start_timer
    - std::unique_ptr::add_asnum
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - std::move
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::require
    - sign_request
    - std::make_unique<ASBlocks>
    - Botan::X509::create_cert_req
    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:1963,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1966,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: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1971,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1972,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1973,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1975,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1976,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1977,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1978,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: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1984,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1985,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1988,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1989,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1990,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1991,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1993,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1994,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1995,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1996,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:1999,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2000,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2001,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2002,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2002,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2003,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2004,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2004,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2004,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2006,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2007,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2012,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2013,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2013,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2017
      start: 1961
    functionDepth: 3
    functionLinenumber: 1961
    functionLinenumberEnd: 2017
    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:
    - ASIdOrRange
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::req_opts
    - ASIdentifiers
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::make_ca
    - Botan_Tests::Test::new_rng
    - Test::Result::start_timer
    - std::vector::push_back
    - ASIdentifierChoice
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - std::move
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::require
    - sign_request
    - std::make_unique<ASBlocks>
    - Botan::X509::create_cert_req
    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:2021,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2024,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2073,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2078,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2081,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2082,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2083,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2086,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2087,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2088,1
    - Dst: std::unique_ptr::inherit_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2091,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:2099,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2100,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2101,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2103,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2104,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2105,1
    - Dst: std::unique_ptr::inherit_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2108,1
    - Dst: std::unique_ptr::restrict_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2112,1
    - Dst: std::unique_ptr::restrict_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2113,1
    - Dst: std::unique_ptr::copy
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2119,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2122,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2131,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:2137,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2138,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:2144,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:2150,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2151,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2152,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2156,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2157,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2158,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2159,1
    - Dst: std::unique_ptr::add_asnum
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2161,1
    - Dst: std::unique_ptr::inherit_asnum
      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: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:2174,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2175,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:2178,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2179,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2180,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2181,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2183,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2184,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2185,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2187,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2188,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2189,1
    - Dst: std::unique_ptr::add_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2190,1
    - Dst: std::unique_ptr::inherit_rdi
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2193,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2196,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2197,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2197,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2198,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2199,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2199,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2201,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2202,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2202,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2203,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2205,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2205,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2205,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2207,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2208,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2213,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2215,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2215,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2215,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2218,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 115
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2220
      start: 2019
    functionDepth: 3
    functionLinenumber: 2019
    functionLinenumberEnd: 2220
    functionName: Botan_Tests::test_x509_as_blocks_path_validation_failure_builder
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::req_opts
    - Botan::Certificate_Store_In_Memory::add_certificate
    - std::unique_ptr::restrict_rdi
    - Botan_Tests::make_ca
    - std::unique_ptr::restrict_asnum
    - Botan_Tests::Test::new_rng
    - std::unique_ptr::add_rdi
    - Test::Result::start_timer
    - std::unique_ptr::add_asnum
    - Botan_Tests::make_and_sign_ca
    - std::unique_ptr::inherit_rdi
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - std::unique_ptr::copy
    - std::move
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::ca_opts
    - std::unique_ptr::inherit_asnum
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::confirm
    - std::to_string
    - sign_request
    - std::make_unique<ASBlocks>
    - Botan::X509::create_cert_req
    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:2224,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2227,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:2285,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2285,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2286,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2286,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: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:2292,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2292,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2297,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2297,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2299,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2299,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2300,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2300,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2301,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2301,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2303,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2303,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2304,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2304,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2305,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2305,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2321,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2321,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2324,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2324,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2328,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2334,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: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2340,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2345,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2346,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2346,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2348,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2348,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2353,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2353,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2355,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: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2361,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2362,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2362,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2365,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2368,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2369,1
    - Dst: ASIdOrRange
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2369,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: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2382,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2385,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2385,1
    - Dst: ASIdentifierChoice
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2387,1
    - Dst: std::optional
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2387,1
    - Dst: ASIdentifiers
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2388,1
    - Dst: std::make_unique<ASBlocks>
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2389,1
    - Dst: Botan_Tests::ca_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2391,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2392,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2392,1
    - Dst: Botan_Tests::make_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2393,1
    - Dst: Botan_Tests::make_and_sign_ca
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2394,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2394,1
    - Dst: Botan_Tests::req_opts
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2396,1
    - Dst: Botan::X509_Cert_Options::extensions::add
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2397,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2397,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2398,1
    - Dst: sign_request
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2400,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2400,1
    - Dst: Botan_Tests::from_date
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2400,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2402,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2403,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2408,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2410,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2410,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2410,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2413,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2415
      start: 2222
    functionDepth: 3
    functionLinenumber: 2222
    functionLinenumberEnd: 2415
    functionName: Botan_Tests::test_x509_as_blocks_path_validation_failure_ctor
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - ASIdOrRange
    - std::optional
    - Botan::Path_Validation_Result::successful_validation
    - Botan_Tests::req_opts
    - ASIdentifiers
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan_Tests::make_ca
    - Botan_Tests::Test::new_rng
    - Test::Result::start_timer
    - std::vector::push_back
    - ASIdentifierChoice
    - Botan_Tests::make_and_sign_ca
    - Botan::x509_path_validate
    - Botan_Tests::from_date
    - std::move
    - Test::Result::end_timer
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan_Tests::ca_opts
    - Botan::X509_Cert_Options::extensions::add
    - Test::Result::confirm
    - std::to_string
    - sign_request
    - std::make_unique<ASBlocks>
    - Botan::X509::create_cert_req
    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:2423,1
    - Dst: test_x509_ip_addr_blocks_extension_decode
      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_as_blocks_extension_decode
      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:2426,1
    - Dst: test_x509_ip_addr_blocks_rfc3779_example
      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_ip_addr_blocks_encode_builder
      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_ip_addr_blocks_extension_encode_ctor
      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_ip_addr_blocks_extension_encode_edge_cases_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_ip_addr_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_ip_addr_blocks_family_merge
      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_ip_addr_blocks_path_validation_success_builder
      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_ip_addr_blocks_path_validation_success_ctor
      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_ip_addr_blocks_path_validation_failure_builder
      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_ip_addr_blocks_path_validation_failure_ctor
      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_rfc3779_example
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2436,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2437,1
    - Dst: test_x509_as_blocks_encode_builder
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2437,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2438,1
    - Dst: test_x509_as_blocks_extension_encode_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2438,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2439,1
    - Dst: test_x509_as_blocks_range_merge
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2439,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2440,1
    - Dst: test_x509_as_blocks_path_validation_success_builder
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2440,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2441,1
    - Dst: test_x509_as_blocks_path_validation_success_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2441,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2442,1
    - Dst: test_x509_as_blocks_path_validation_extension_not_present_builder
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2442,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2443,1
    - Dst: test_x509_as_blocks_path_validation_extension_not_present_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2443,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2444,1
    - Dst: test_x509_as_blocks_path_validation_failure_builder
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2444,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2445,1
    - Dst: test_x509_as_blocks_path_validation_failure_ctor
      Src: /src/botan/src/tests/test_x509_rpki.cpp:2445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2447
      start: 2419
    functionDepth: 0
    functionLinenumber: 2419
    functionLinenumberEnd: 2447
    functionName: Botan_Tests::X509_RPKI_Tests::run
    functionSourceFile: /src/botan/src/tests/test_x509_rpki.cpp
    functionUses: 0
    functionsReached:
    - test_x509_ip_addr_blocks_path_validation_failure_builder
    - test_x509_ip_addr_blocks_encode_builder
    - test_x509_as_blocks_rfc3779_example
    - test_x509_as_blocks_extension_encode_ctor
    - test_x509_as_blocks_path_validation_failure_builder
    - test_x509_as_blocks_range_merge
    - test_x509_ip_addr_blocks_path_validation_success_builder
    - test_x509_ip_addr_blocks_extension_decode
    - test_x509_as_blocks_extension_decode
    - test_x509_ip_addr_blocks_path_validation_success_ctor
    - test_x509_ip_addr_blocks_extension_encode_ctor
    - test_x509_ip_addr_blocks_rfc3779_example
    - test_x509_as_blocks_path_validation_extension_not_present_builder
    - std::vector::push_back
    - test_x509_as_blocks_encode_builder
    - test_x509_as_blocks_path_validation_failure_ctor
    - test_x509_ip_addr_blocks_range_merge
    - test_x509_as_blocks_path_validation_success_builder
    - test_x509_ip_addr_blocks_family_merge
    - test_x509_ip_addr_blocks_extension_encode_edge_cases_ctor
    - test_x509_ip_addr_blocks_path_validation_failure_ctor
    - test_x509_as_blocks_path_validation_success_ctor
    - test_x509_as_blocks_path_validation_extension_not_present_ctor
    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: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    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: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_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:31,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:32,1
    - 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_str
      Src: /src/botan/src/tests/test_gost_3410.cpp:37,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:41,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:42,1
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/tests/test_gost_3410.cpp:44,1
    - Dst: std::make_unique<Botan::GOST_3410_PublicKey>
      Src: /src/botan/src/tests/test_gost_3410.cpp:45,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_gost_3410.cpp:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 49
    functionName: Botan_Tests::GOST_3410_2001_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - std::make_unique<Botan::GOST_3410_PublicKey>
    - get_req_str
    - get_req_bn
    - Botan::EC_AffinePoint::from_bigint_xy
    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:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    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: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    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:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 62
    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:65,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:66,1
    - 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_str
      Src: /src/botan/src/tests/test_gost_3410.cpp:71,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:75,1
    - Dst: std::make_unique<Botan::GOST_3410_PrivateKey>
      Src: /src/botan/src/tests/test_gost_3410.cpp:77,1
    - Dst: Botan_Tests::GOST_3410_2001_Signature_Tests::rng
      Src: /src/botan/src/tests/test_gost_3410.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 78
    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_bn
    - std::make_unique<Botan::GOST_3410_PrivateKey>
    - get_req_str
    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:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    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:83,1
    - Dst: Botan_Tests::GOST_3410_2001_Signature_Tests::rng
      Src: /src/botan/src/tests/test_gost_3410.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: Botan_Tests::GOST_3410_2001_Signature_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Fixed_Output_Position_RNG>
    - Botan_Tests::GOST_3410_2001_Signature_Tests::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:92,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_gost_3410.cpp:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 97
    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: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    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:104,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/test_gost_3410.cpp:105,1
    - Dst: std::make_unique<Botan::GOST_3410_PublicKey>
      Src: /src/botan/src/tests/test_gost_3410.cpp:106,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: 107
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 107
    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_AffinePoint::EC_AffinePoint
    - std::make_unique<Botan::GOST_3410_PublicKey>
    - Botan::EC_Group
    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: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    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: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_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:31,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:32,1
    - 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_str
      Src: /src/botan/src/tests/test_gost_3410.cpp:37,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:41,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:42,1
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/tests/test_gost_3410.cpp:44,1
    - Dst: std::make_unique<Botan::GOST_3410_PublicKey>
      Src: /src/botan/src/tests/test_gost_3410.cpp:45,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_gost_3410.cpp:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 49
    functionName: Botan_Tests::GOST_3410_2001_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - std::make_unique<Botan::GOST_3410_PublicKey>
    - get_req_str
    - get_req_bn
    - Botan::EC_AffinePoint::from_bigint_xy
    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:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    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: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    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:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 62
    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:65,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:66,1
    - 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_str
      Src: /src/botan/src/tests/test_gost_3410.cpp:71,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:75,1
    - Dst: std::make_unique<Botan::GOST_3410_PrivateKey>
      Src: /src/botan/src/tests/test_gost_3410.cpp:77,1
    - Dst: Botan_Tests::GOST_3410_2001_Signature_Tests::rng
      Src: /src/botan/src/tests/test_gost_3410.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 78
    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_bn
    - std::make_unique<Botan::GOST_3410_PrivateKey>
    - get_req_str
    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:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    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:83,1
    - Dst: Botan_Tests::GOST_3410_2001_Signature_Tests::rng
      Src: /src/botan/src/tests/test_gost_3410.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: Botan_Tests::GOST_3410_2001_Signature_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Fixed_Output_Position_RNG>
    - Botan_Tests::GOST_3410_2001_Signature_Tests::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:92,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_gost_3410.cpp:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 97
    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: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    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:104,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/test_gost_3410.cpp:105,1
    - Dst: std::make_unique<Botan::GOST_3410_PublicKey>
      Src: /src/botan/src/tests/test_gost_3410.cpp:106,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: 107
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 107
    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_AffinePoint::EC_AffinePoint
    - std::make_unique<Botan::GOST_3410_PublicKey>
    - Botan::EC_Group
    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: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    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: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_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:31,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:32,1
    - 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_str
      Src: /src/botan/src/tests/test_gost_3410.cpp:37,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:41,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:42,1
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/tests/test_gost_3410.cpp:44,1
    - Dst: std::make_unique<Botan::GOST_3410_PublicKey>
      Src: /src/botan/src/tests/test_gost_3410.cpp:45,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_gost_3410.cpp:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 49
    functionName: Botan_Tests::GOST_3410_2001_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - std::make_unique<Botan::GOST_3410_PublicKey>
    - get_req_str
    - get_req_bn
    - Botan::EC_AffinePoint::from_bigint_xy
    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:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    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: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    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:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 62
    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:65,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:66,1
    - 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_str
      Src: /src/botan/src/tests/test_gost_3410.cpp:71,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:75,1
    - Dst: std::make_unique<Botan::GOST_3410_PrivateKey>
      Src: /src/botan/src/tests/test_gost_3410.cpp:77,1
    - Dst: Botan_Tests::GOST_3410_2001_Signature_Tests::rng
      Src: /src/botan/src/tests/test_gost_3410.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 78
    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_bn
    - std::make_unique<Botan::GOST_3410_PrivateKey>
    - get_req_str
    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:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    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:83,1
    - Dst: Botan_Tests::GOST_3410_2001_Signature_Tests::rng
      Src: /src/botan/src/tests/test_gost_3410.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: Botan_Tests::GOST_3410_2001_Signature_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Fixed_Output_Position_RNG>
    - Botan_Tests::GOST_3410_2001_Signature_Tests::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:92,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_gost_3410.cpp:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 97
    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: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    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:104,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/test_gost_3410.cpp:105,1
    - Dst: std::make_unique<Botan::GOST_3410_PublicKey>
      Src: /src/botan/src/tests/test_gost_3410.cpp:106,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: 107
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 107
    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_AffinePoint::EC_AffinePoint
    - std::make_unique<Botan::GOST_3410_PublicKey>
    - Botan::EC_Group
    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: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    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: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_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:31,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:32,1
    - 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_str
      Src: /src/botan/src/tests/test_gost_3410.cpp:37,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:41,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:42,1
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/tests/test_gost_3410.cpp:44,1
    - Dst: std::make_unique<Botan::GOST_3410_PublicKey>
      Src: /src/botan/src/tests/test_gost_3410.cpp:45,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_gost_3410.cpp:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 49
    functionName: Botan_Tests::GOST_3410_2001_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - std::make_unique<Botan::GOST_3410_PublicKey>
    - get_req_str
    - get_req_bn
    - Botan::EC_AffinePoint::from_bigint_xy
    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:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    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: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    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:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 62
    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:65,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:66,1
    - 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_str
      Src: /src/botan/src/tests/test_gost_3410.cpp:71,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_gost_3410.cpp:75,1
    - Dst: std::make_unique<Botan::GOST_3410_PrivateKey>
      Src: /src/botan/src/tests/test_gost_3410.cpp:77,1
    - Dst: Botan_Tests::GOST_3410_2001_Signature_Tests::rng
      Src: /src/botan/src/tests/test_gost_3410.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 78
    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_bn
    - std::make_unique<Botan::GOST_3410_PrivateKey>
    - get_req_str
    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:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    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:83,1
    - Dst: Botan_Tests::GOST_3410_2001_Signature_Tests::rng
      Src: /src/botan/src/tests/test_gost_3410.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: Botan_Tests::GOST_3410_2001_Signature_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_gost_3410.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Fixed_Output_Position_RNG>
    - Botan_Tests::GOST_3410_2001_Signature_Tests::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:92,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_gost_3410.cpp:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 97
    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: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    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:104,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/test_gost_3410.cpp:105,1
    - Dst: std::make_unique<Botan::GOST_3410_PublicKey>
      Src: /src/botan/src/tests/test_gost_3410.cpp:106,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: 107
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 107
    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_AffinePoint::EC_AffinePoint
    - std::make_unique<Botan::GOST_3410_PublicKey>
    - Botan::EC_Group
    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: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    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: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: get_req_bin
      Src: /src/botan/src/tests/test_cryptobox.cpp:33,1
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/tests/test_cryptobox.cpp:35,1
    - Dst: Botan::CryptoBox::encrypt
      Src: /src/botan/src/tests/test_cryptobox.cpp:42,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_cryptobox.cpp:42,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_cryptobox.cpp:42,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_cryptobox.cpp:44,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_cryptobox.cpp:46,1
    - Dst: Botan::CryptoBox::decrypt_bin
      Src: /src/botan/src/tests/test_cryptobox.cpp:46,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_cryptobox.cpp:50,1
    - Dst: Botan_Tests::Cryptobox_KAT::rng
      Src: /src/botan/src/tests/test_cryptobox.cpp:50,1
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/tests/test_cryptobox.cpp:51,1
    - Dst: Botan::CryptoBox::decrypt
      Src: /src/botan/src/tests/test_cryptobox.cpp:53,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_cryptobox.cpp:54,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_cryptobox.cpp:56,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_cryptobox.cpp:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 64
    functionName: Botan_Tests::Cryptobox_KAT::run_one_test
    functionSourceFile: /src/botan/src/tests/test_cryptobox.cpp
    functionUses: 0
    functionsReached:
    - Botan::CryptoBox::decrypt_bin
    - Botan::PEM_Code::encode
    - Test::Result::test_failure
    - std::vector::data
    - Test::Result::test_success
    - Test::Result::test_eq
    - Botan_Tests::Test::mutate_vec
    - Botan::CryptoBox::encrypt
    - get_req_bin
    - std::vector::size
    - Botan::CryptoBox::decrypt
    - Botan_Tests::Cryptobox_KAT::rng
    - get_req_str
    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::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: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: get_req_bin
      Src: /src/botan/src/tests/test_cryptobox.cpp:33,1
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/tests/test_cryptobox.cpp:35,1
    - Dst: Botan::CryptoBox::encrypt
      Src: /src/botan/src/tests/test_cryptobox.cpp:42,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_cryptobox.cpp:42,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_cryptobox.cpp:42,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_cryptobox.cpp:44,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_cryptobox.cpp:46,1
    - Dst: Botan::CryptoBox::decrypt_bin
      Src: /src/botan/src/tests/test_cryptobox.cpp:46,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_cryptobox.cpp:50,1
    - Dst: Botan_Tests::Cryptobox_KAT::rng
      Src: /src/botan/src/tests/test_cryptobox.cpp:50,1
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/tests/test_cryptobox.cpp:51,1
    - Dst: Botan::CryptoBox::decrypt
      Src: /src/botan/src/tests/test_cryptobox.cpp:53,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_cryptobox.cpp:54,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_cryptobox.cpp:56,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_cryptobox.cpp:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 64
    functionName: Botan_Tests::Cryptobox_KAT::run_one_test
    functionSourceFile: /src/botan/src/tests/test_cryptobox.cpp
    functionUses: 0
    functionsReached:
    - Botan::CryptoBox::decrypt_bin
    - Botan::PEM_Code::encode
    - Test::Result::test_failure
    - std::vector::data
    - Test::Result::test_success
    - Test::Result::test_eq
    - Botan_Tests::Test::mutate_vec
    - Botan::CryptoBox::encrypt
    - get_req_bin
    - std::vector::size
    - Botan::CryptoBox::decrypt
    - Botan_Tests::Cryptobox_KAT::rng
    - get_req_str
    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::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: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: get_req_bin
      Src: /src/botan/src/tests/test_cryptobox.cpp:33,1
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/tests/test_cryptobox.cpp:35,1
    - Dst: Botan::CryptoBox::encrypt
      Src: /src/botan/src/tests/test_cryptobox.cpp:42,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_cryptobox.cpp:42,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_cryptobox.cpp:42,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_cryptobox.cpp:44,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_cryptobox.cpp:46,1
    - Dst: Botan::CryptoBox::decrypt_bin
      Src: /src/botan/src/tests/test_cryptobox.cpp:46,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_cryptobox.cpp:50,1
    - Dst: Botan_Tests::Cryptobox_KAT::rng
      Src: /src/botan/src/tests/test_cryptobox.cpp:50,1
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/tests/test_cryptobox.cpp:51,1
    - Dst: Botan::CryptoBox::decrypt
      Src: /src/botan/src/tests/test_cryptobox.cpp:53,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_cryptobox.cpp:54,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_cryptobox.cpp:56,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_cryptobox.cpp:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 64
    functionName: Botan_Tests::Cryptobox_KAT::run_one_test
    functionSourceFile: /src/botan/src/tests/test_cryptobox.cpp
    functionUses: 0
    functionsReached:
    - Botan::CryptoBox::decrypt_bin
    - Botan::PEM_Code::encode
    - Test::Result::test_failure
    - std::vector::data
    - Test::Result::test_success
    - Test::Result::test_eq
    - Botan_Tests::Test::mutate_vec
    - Botan::CryptoBox::encrypt
    - get_req_bin
    - std::vector::size
    - Botan::CryptoBox::decrypt
    - Botan_Tests::Cryptobox_KAT::rng
    - get_req_str
    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::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: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: get_req_bin
      Src: /src/botan/src/tests/test_cryptobox.cpp:33,1
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/tests/test_cryptobox.cpp:35,1
    - Dst: Botan::CryptoBox::encrypt
      Src: /src/botan/src/tests/test_cryptobox.cpp:42,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_cryptobox.cpp:42,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_cryptobox.cpp:42,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_cryptobox.cpp:44,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_cryptobox.cpp:46,1
    - Dst: Botan::CryptoBox::decrypt_bin
      Src: /src/botan/src/tests/test_cryptobox.cpp:46,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_cryptobox.cpp:50,1
    - Dst: Botan_Tests::Cryptobox_KAT::rng
      Src: /src/botan/src/tests/test_cryptobox.cpp:50,1
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/tests/test_cryptobox.cpp:51,1
    - Dst: Botan::CryptoBox::decrypt
      Src: /src/botan/src/tests/test_cryptobox.cpp:53,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_cryptobox.cpp:54,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_cryptobox.cpp:56,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_cryptobox.cpp:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 64
    functionName: Botan_Tests::Cryptobox_KAT::run_one_test
    functionSourceFile: /src/botan/src/tests/test_cryptobox.cpp
    functionUses: 0
    functionsReached:
    - Botan::CryptoBox::decrypt_bin
    - Botan::PEM_Code::encode
    - Test::Result::test_failure
    - std::vector::data
    - Test::Result::test_success
    - Test::Result::test_eq
    - Botan_Tests::Test::mutate_vec
    - Botan::CryptoBox::encrypt
    - get_req_bin
    - std::vector::size
    - Botan::CryptoBox::decrypt
    - Botan_Tests::Cryptobox_KAT::rng
    - get_req_str
    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:48,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_checked_add
      Src: /src/botan/src/tests/test_utils.cpp:48,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:49,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_checked_mul
      Src: /src/botan/src/tests/test_utils.cpp:49,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:50,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_checked_cast
      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_round_up
      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_loadstore
      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_loadstore_ambiguity
      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_fallback
      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_constexpr
      Src: /src/botan/src/tests/test_utils.cpp:55,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils.cpp:56,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_copy_out_be_le
      Src: /src/botan/src/tests/test_utils.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 57
    functionName: Botan_Tests::Utility_Function_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Utility_Function_Tests::test_copy_out_be_le
    - std::vector::push_back
    - Botan_Tests::Utility_Function_Tests::test_loadstore
    - Botan_Tests::Utility_Function_Tests::test_loadstore_ambiguity
    - Botan_Tests::Utility_Function_Tests::test_round_up
    - Botan::concat
    - Botan_Tests::Utility_Function_Tests::test_checked_mul
    - Botan_Tests::Utility_Function_Tests::test_checked_cast
    - Botan_Tests::Utility_Function_Tests::test_loadstore_fallback
    - Botan_Tests::Utility_Function_Tests::test_loadstore_constexpr
    - Botan_Tests::Utility_Function_Tests::test_checked_add
    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:63,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:67,1
    - Dst: Botan::checked_add<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:68,1
    - Dst: Botan::checked_add<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:69,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:71,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:74,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils.cpp:74,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:76,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils.cpp:76,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_utils.cpp:80,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:83,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:83,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:83,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:84,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:84,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:84,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:86,1
    - Dst: Botan::checked_add
      Src: /src/botan/src/tests/test_utils.cpp:88,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_utils.cpp:89,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils.cpp:89,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:91,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 96
    functionName: Botan_Tests::Utility_Function_Tests::test_checked_add
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 1
    functionsReached:
    - static_cast<uint32_t>
    - static_cast<size_t>
    - next_byte
    - auto::has_value
    - Test::Result::test_int_eq
    - auto::value
    - fuzzer_rng
    - Botan::checked_add
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::make_uint16
    - Botan::checked_add<size_t>
    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:101,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:104,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:104,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:104,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:105,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:105,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:105,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:107,1
    - Dst: Botan::checked_mul
      Src: /src/botan/src/tests/test_utils.cpp:109,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_utils.cpp:110,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils.cpp:110,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 117
    functionName: Botan_Tests::Utility_Function_Tests::test_checked_mul
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 1
    functionsReached:
    - static_cast<uint32_t>
    - next_byte
    - auto::value
    - fuzzer_rng
    - Botan::checked_mul
    - Test::Result::confirm
    - Botan::make_uint16
    - Test::Result::test_int_eq
    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:122,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:126,1
    - Dst: Botan::checked_cast_to<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:126,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:127,1
    - Dst: Botan::checked_cast_to<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:127,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_utils.cpp:129,1
    - Dst: Botan::checked_cast_to<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:129,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_utils.cpp:130,1
    - Dst: Botan::checked_cast_to<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:130,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_utils.cpp:131,1
    - Dst: Botan::checked_cast_to<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 134
    functionName: Botan_Tests::Utility_Function_Tests::test_checked_cast
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_throws
    - Botan::checked_cast_to<uint8_t>
    - static_cast<uint32_t>
    - Botan::checked_cast_to<uint16_t>
    - Botan::checked_cast_to<uint32_t>
    - Test::Result::test_int_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:154,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:156,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:157,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:158,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_utils.cpp:160,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:160,1
    - Dst: what
      Src: /src/botan/src/tests/test_utils.cpp:160,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:165,1
    - Dst: Botan::round_up
      Src: /src/botan/src/tests/test_utils.cpp:165,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 168
    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::round_up
    - Botan::fmt
    - static_cast<size_t>
    - Test::Result::test_failure
    - Test::Result::confirm
    - what
    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:187,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils.cpp:188,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:194,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_utils.cpp:194,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:195,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_utils.cpp:195,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:196,1
    - Dst: Botan::get_byte<2>
      Src: /src/botan/src/tests/test_utils.cpp:196,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:197,1
    - Dst: Botan::get_byte<3>
      Src: /src/botan/src/tests/test_utils.cpp:197,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:199,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:199,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:200,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_utils.cpp:200,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:202,1
    - Dst: Botan::load_be<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:202,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:203,1
    - Dst: Botan::load_be<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:203,1
    - Dst: Test::Result::test_is_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_is_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_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:207,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:207,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:208,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:208,1
    - Dst: Test::Result::test_is_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_is_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_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:212,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:212,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:213,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:213,1
    - Dst: Test::Result::test_is_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_is_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_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:217,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:217,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:218,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:218,1
    - Dst: Test::Result::test_is_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_is_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_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:222,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:222,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:223,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:223,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:225,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:225,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:226,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:226,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:229,1
    - Dst: Botan::load_be<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:229,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:230,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:230,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:232,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:232,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:233,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:233,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:235,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:235,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:236,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:236,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:237,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:237,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:244,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:245,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:246,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:248,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:249,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:250,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:252,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:253,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:254,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:255,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:256,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:258,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:259,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:260,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:261,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:262,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:264,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:265,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:266,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:267,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:268,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:269,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:270,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:271,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:272,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:274,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:275,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:276,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:277,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:278,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:279,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:280,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:281,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:282,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:290,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_utils.cpp:292,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:293,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:294,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:295,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:296,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:298,1
    - Dst: first
      Src: /src/botan/src/tests/test_utils.cpp:298,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:299,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:300,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:301,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:302,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:304,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:306,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:307,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:308,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:309,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:310,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_utils.cpp:312,1
    - Dst: first
      Src: /src/botan/src/tests/test_utils.cpp:312,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:313,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:314,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:315,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:316,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:322,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:323,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:325,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:326,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:326,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:328,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:329,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:330,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:331,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:331,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:336,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:337,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_be
      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: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:347,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:348,1
    - Dst: Botan::store_be<TestVectorSink>
      Src: /src/botan/src/tests/test_utils.cpp:349,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:350,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:351,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:351,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:352,1
    - Dst: TestVectorSink
      Src: /src/botan/src/tests/test_utils.cpp:352,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:352,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:353,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:354,1
    - Dst: Botan::store_le<TestVectorSink>
      Src: /src/botan/src/tests/test_utils.cpp:355,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:356,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:357,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:357,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:358,1
    - Dst: TestVectorSink
      Src: /src/botan/src/tests/test_utils.cpp:358,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:358,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:360,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_utils.cpp:360,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:360,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:361,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_utils.cpp:361,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:361,1
    - Dst: Test::Result::test_is_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_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:364,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:364,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:364,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:365,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:365,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:365,1
    - Dst: Test::Result::test_is_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_throws
      Src: /src/botan/src/tests/test_utils.cpp:372,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:373,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:373,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_be
      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:383,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:384,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_be
      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_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:395,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:395,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:395,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:396,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:396,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:396,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:399,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:399,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:399,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:400,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:400,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:400,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:403,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:404,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:405,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:406,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:408,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:409,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:410,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:411,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:414,1
    - Dst: Botan::load_be<std::array<uint16_t, 2>>
      Src: /src/botan/src/tests/test_utils.cpp:415,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:416,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:417,1
    - Dst: Botan::load_be<std::vector<uint16_t>>
      Src: /src/botan/src/tests/test_utils.cpp:418,1
    - Dst: Test::Result::test_eq_sz
      Src: /src/botan/src/tests/test_utils.cpp:419,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils.cpp:419,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:420,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:421,1
    - Dst: Botan::load_le<std::array<uint16_t, 2>>
      Src: /src/botan/src/tests/test_utils.cpp:423,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:424,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:425,1
    - Dst: Botan::load_le<Botan::secure_vector<uint16_t>>
      Src: /src/botan/src/tests/test_utils.cpp:426,1
    - Dst: Test::Result::test_eq_sz
      Src: /src/botan/src/tests/test_utils.cpp:427,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils.cpp:427,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:428,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:429,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:435,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:435,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:435,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:436,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:436,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:436,1
    - Dst: Test::Result::test_is_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:437,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:437,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:438,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:438,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:438,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:440,1
    - Dst: Botan::load_be<TestInt64>
      Src: /src/botan/src/tests/test_utils.cpp:440,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:440,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:441,1
    - Dst: Botan::load_le<TestInt64>
      Src: /src/botan/src/tests/test_utils.cpp:441,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:441,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:442,1
    - Dst: Botan::load_be<TestInt32>
      Src: /src/botan/src/tests/test_utils.cpp:442,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:442,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:443,1
    - Dst: Botan::load_le<TestInt32>
      Src: /src/botan/src/tests/test_utils.cpp:443,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:443,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:446,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:446,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:447,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:448,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:448,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:449,1
    - Dst: Botan::load_le<std::array<TestInt64, 2>>
      Src: /src/botan/src/tests/test_utils.cpp:452,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:452,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:453,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:454,1
    - Dst: Botan::load_be<std::vector<TestInt64>>
      Src: /src/botan/src/tests/test_utils.cpp:457,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:457,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:458,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:459,1
    - Dst: Botan::load_le<TestEnum64>
      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::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:463,1
    - Dst: Botan::load_be<TestEnum64>
      Src: /src/botan/src/tests/test_utils.cpp:464,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:464,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:465,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:466,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:466,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:467,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:468,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:468,1
    - Dst: Botan::load_le<TestEnum32>
      Src: /src/botan/src/tests/test_utils.cpp:471,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:471,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:472,1
    - Dst: Botan::load_be<TestEnum32>
      Src: /src/botan/src/tests/test_utils.cpp:473,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:473,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:474,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:475,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:475,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:475,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:476,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 195
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 479
    functionName: Botan_Tests::Utility_Function_Tests::test_loadstore
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 1
    functionsReached:
    - Botan::hex_decode
    - Test::Result::test_throws
    - Botan::load_le<TestInt32>
    - Botan::load_le<std::array<TestInt64, 2>>
    - Botan::get_byte<0>
    - Botan::store_le<std::vector<uint8_t>>
    - Botan::load_be<TestInt64>
    - Botan::get_byte<1>
    - Botan::store_le
    - auto::size
    - first
    - Botan::make_uint32
    - Botan::load_le<TestEnum64>
    - Test::Result::test_is_eq
    - std::vector::data
    - Botan::store_le<TestVectorSink>
    - Botan::load_be<TestEnum64>
    - Botan::load_be
    - TestVectorSink
    - Botan::load_le<std::array<uint16_t, 2>>
    - Botan::load_be<std::vector<uint16_t>>
    - Botan::load_be<TestEnum32>
    - Botan::load_be<std::vector<TestInt64>>
    - Botan::load_be<uint64_t>
    - Botan::load_le<Botan::secure_vector<uint16_t>>
    - Botan::load_be<TestInt32>
    - Test::Result::test_eq_sz
    - Botan::make_uint16
    - Botan::load_le<uint64_t>
    - Botan::load_le<TestEnum32>
    - Botan::store_be<TestVectorSink>
    - Botan::get_byte<3>
    - Botan::load_le<uint16_t>
    - Botan::load_be<uint32_t>
    - Botan::load_le<uint32_t>
    - Botan::load_be<uint16_t>
    - Botan::get_byte<2>
    - Botan::store_be
    - Botan::load_le<TestInt64>
    - Botan::load_be<std::array<uint16_t, 2>>
    - Botan::store_be<std::vector<uint8_t>>
    - Botan::load_le
    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:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::array<const uint8_t, sizeof(T)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 484
    functionName: Botan_Tests::Utility_Function_Tests::fb_load_be
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    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:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::array<const uint8_t, sizeof(T)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 489
    functionName: Botan_Tests::Utility_Function_Tests::fb_load_le
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    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:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - in
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 496
    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:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - in
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 503
    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:521,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:522,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:523,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:524,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:525,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:526,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:528,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:528,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:529,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:529,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:530,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:530,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:531,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:531,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:532,1
    - Dst: Botan::load_be<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:532,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:533,1
    - Dst: Botan::load_le<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 536
    functionName: Botan_Tests::Utility_Function_Tests::test_loadstore_ambiguity
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 1
    functionsReached:
    - Botan::load_le<uint64_t>
    - Test::Result::test_is_eq
    - Botan::load_be<uint64_t>
    - Botan::load_be<uint32_t>
    - Botan::load_le<uint32_t>
    - Botan::store_be
    - Botan::load_le<size_t>
    - Botan::store_le
    - Botan::load_be<size_t>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_loadstore_ambiguity()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:545,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/tests/test_utils.cpp:545,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:546,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/tests/test_utils.cpp:546,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:547,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/tests/test_utils.cpp:547,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:549,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_be
      Src: /src/botan/src/tests/test_utils.cpp:549,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:550,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_be
      Src: /src/botan/src/tests/test_utils.cpp:550,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:551,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_be
      Src: /src/botan/src/tests/test_utils.cpp:551,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:553,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_le
      Src: /src/botan/src/tests/test_utils.cpp:553,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:554,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_le
      Src: /src/botan/src/tests/test_utils.cpp:554,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:555,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_le
      Src: /src/botan/src/tests/test_utils.cpp:555,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:557,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_be
      Src: /src/botan/src/tests/test_utils.cpp:557,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:558,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_be
      Src: /src/botan/src/tests/test_utils.cpp:558,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:559,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_be
      Src: /src/botan/src/tests/test_utils.cpp:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 562
    functionName: Botan_Tests::Utility_Function_Tests::test_loadstore_fallback
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::Utility_Function_Tests::fb_store_le
    - Botan_Tests::Utility_Function_Tests::fb_load_le
    - Test::Result::test_is_eq
    - Botan_Tests::Utility_Function_Tests::fb_load_be
    - Botan_Tests::Utility_Function_Tests::fb_store_be
    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:578,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:579,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_utils.cpp:580,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:581,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_utils.cpp:584,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:585,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_utils.cpp:586,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:587,1
    - Dst: Botan::get_byte<2>
      Src: /src/botan/src/tests/test_utils.cpp:588,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:589,1
    - Dst: Botan::get_byte<3>
      Src: /src/botan/src/tests/test_utils.cpp:590,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:591,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_utils.cpp:594,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:595,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_utils.cpp:596,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:597,1
    - Dst: Botan::get_byte<2>
      Src: /src/botan/src/tests/test_utils.cpp:598,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:599,1
    - Dst: Botan::get_byte<3>
      Src: /src/botan/src/tests/test_utils.cpp:600,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:601,1
    - Dst: Botan::get_byte<4>
      Src: /src/botan/src/tests/test_utils.cpp:602,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:603,1
    - Dst: Botan::get_byte<5>
      Src: /src/botan/src/tests/test_utils.cpp:604,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:605,1
    - Dst: Botan::get_byte<6>
      Src: /src/botan/src/tests/test_utils.cpp:606,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:607,1
    - Dst: Botan::get_byte<7>
      Src: /src/botan/src/tests/test_utils.cpp:608,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:609,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:612,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:613,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_utils.cpp:614,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:615,1
    - Dst: Botan::make_uint64
      Src: /src/botan/src/tests/test_utils.cpp:616,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:617,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:620,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:621,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:622,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:623,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:624,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:625,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:627,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:628,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:629,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:630,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:631,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:632,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:636,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:638,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:639,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:642,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:643,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:644,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:645,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:648,1
    - Dst: Botan::store_le
      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: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:651,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:654,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:657,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:659,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:660,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:663,1
    - Dst: Botan::store_be
      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: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:666,1
    - Dst: Test::Result::test_is_eq
      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: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:671,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:672,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:675,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:678,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:679,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:680,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:681,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:682,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:683,1
    - Dst: Botan::load_be<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:685,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:686,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:687,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:688,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:689,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:690,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils.cpp:693,1
    - Dst: Botan::load_le<std::array<uint16_t, cex_mem.size() / 2>>
      Src: /src/botan/src/tests/test_utils.cpp:693,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:694,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::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:696,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils.cpp:697,1
    - Dst: Botan::load_le<std::array<uint64_t, cex_mem.size() / 8>>
      Src: /src/botan/src/tests/test_utils.cpp:697,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:698,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils.cpp:700,1
    - Dst: Botan::load_be<std::array<uint16_t, cex_mem.size() / 2>>
      Src: /src/botan/src/tests/test_utils.cpp:700,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:701,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils.cpp:702,1
    - Dst: Botan::load_be<std::array<uint32_t, cex_mem.size() / 4>>
      Src: /src/botan/src/tests/test_utils.cpp:702,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:703,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils.cpp:704,1
    - Dst: Botan::load_be<std::array<uint64_t, cex_mem.size() / 8>>
      Src: /src/botan/src/tests/test_utils.cpp:704,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 708
    functionName: Botan_Tests::Utility_Function_Tests::test_loadstore_constexpr
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 1
    functionsReached:
    - Botan::get_byte<0>
    - Botan::make_uint64
    - Botan::load_le<std::array<uint64_t, cex_mem.size() / 8>>
    - Botan::get_byte<1>
    - Botan::get_byte<5>
    - Botan::store_le
    - Botan::make_uint32
    - Test::Result::test_is_eq
    - Botan::load_be<std::array<uint64_t, cex_mem.size() / 8>>
    - std::array::size
    - Botan::load_be<std::array<uint16_t, cex_mem.size() / 2>>
    - Botan::get_byte<6>
    - Botan::get_byte<4>
    - Botan::load_be<uint64_t>
    - Botan::load_le<std::array<uint16_t, cex_mem.size() / 2>>
    - Botan::load_le<std::array<uint32_t, cex_mem.size() / 4>>
    - Botan::make_uint16
    - Botan::load_le<uint64_t>
    - Botan::get_byte<7>
    - Botan::get_byte<3>
    - Botan::load_le<uint16_t>
    - Botan::load_be<std::array<uint32_t, cex_mem.size() / 4>>
    - Botan::store_be
    - Botan::load_le<uint32_t>
    - Botan::load_be<uint16_t>
    - Botan::get_byte<2>
    - Botan::load_be<uint32_t>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_loadstore_constexpr()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:712,1
    - Dst: Botan::copy_out_be
      Src: /src/botan/src/tests/test_utils.cpp:716,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:717,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:717,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:720,1
    - Dst: Botan::copy_out_be
      Src: /src/botan/src/tests/test_utils.cpp:724,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:725,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:725,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:728,1
    - Dst: Botan::copy_out_le
      Src: /src/botan/src/tests/test_utils.cpp:732,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:733,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:733,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:736,1
    - Dst: Botan::copy_out_le
      Src: /src/botan/src/tests/test_utils.cpp:740,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:741,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:741,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:744,1
    - Dst: Botan::copy_out_be
      Src: /src/botan/src/tests/test_utils.cpp:748,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:749,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:749,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:752,1
    - Dst: Botan::copy_out_le
      Src: /src/botan/src/tests/test_utils.cpp:756,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:757,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:757,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:760,1
    - Dst: Botan::copy_out_be
      Src: /src/botan/src/tests/test_utils.cpp:764,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:765,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:765,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:768,1
    - Dst: Botan::copy_out_le
      Src: /src/botan/src/tests/test_utils.cpp:772,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:773,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 710
    functionDepth: 1
    functionLinenumber: 710
    functionLinenumberEnd: 776
    functionName: Botan_Tests::Utility_Function_Tests::test_copy_out_be_le
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 1
    functionsReached:
    - Botan::copy_out_be
    - Botan::hex_decode
    - Botan::copy_out_le
    - test_is_eq
    - CHECK
    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:786,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:786,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:787,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:787,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:788,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:788,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:789,1
    - Dst: Botan_Tests::BitOps_Tests::test_popcount
      Src: /src/botan/src/tests/test_utils.cpp:789,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:790,1
    - Dst: Botan_Tests::BitOps_Tests::test_reverse_bits
      Src: /src/botan/src/tests/test_utils.cpp:790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 783
    functionDepth: 1
    functionLinenumber: 783
    functionLinenumberEnd: 793
    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_sig_bytes
    - Botan_Tests::BitOps_Tests::test_popcount
    - 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: test_eq
      Src: /src/botan/src/tests/test_utils.cpp:798,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_utils.cpp:798,1
    - Dst: Botan::ctz<T>
      Src: /src/botan/src/tests/test_utils.cpp:798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' result'
    - val
    - expected
    argTypes:
    - Test::Result
    - T
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 797
    functionDepth: 0
    functionLinenumber: 797
    functionLinenumberEnd: 799
    functionName: Botan_Tests::BitOps_Tests::test_ctz
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 1
    functionsReached:
    - Botan::ctz<T>
    - test_eq
    - std::to_string
    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:803,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:804,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:805,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:806,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:807,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 811
    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: test_eq
      Src: /src/botan/src/tests/test_utils.cpp:815,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_utils.cpp:815,1
    - Dst: Botan::significant_bytes<T>
      Src: /src/botan/src/tests/test_utils.cpp:815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' result'
    - val
    - expected
    argTypes:
    - Test::Result
    - T
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 814
    functionDepth: 0
    functionLinenumber: 814
    functionLinenumberEnd: 816
    functionName: Botan_Tests::BitOps_Tests::test_sig_bytes
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 1
    functionsReached:
    - test_eq
    - Botan::significant_bytes<T>
    - std::to_string
    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:820,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:821,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:822,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:823,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:824,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:825,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:826,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:827,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:829,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:830,1
    - 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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 818
    functionDepth: 1
    functionLinenumber: 818
    functionLinenumberEnd: 837
    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_eq
      Src: /src/botan/src/tests/test_utils.cpp:841,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_utils.cpp:841,1
    - Dst: Botan::is_power_of_2<T>
      Src: /src/botan/src/tests/test_utils.cpp:841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' result'
    - val
    - expected
    argTypes:
    - Test::Result
    - T
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 840
    functionDepth: 0
    functionLinenumber: 840
    functionLinenumberEnd: 842
    functionName: Botan_Tests::BitOps_Tests::test_power_of_2
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 2
    functionsReached:
    - test_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:847,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:848,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:849,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:850,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:851,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:852,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:853,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:855,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:856,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:857,1
    - 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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 844
    functionDepth: 1
    functionLinenumber: 844
    functionLinenumberEnd: 865
    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:868,1
    - Dst: Botan::ct_popcount
      Src: /src/botan/src/tests/test_utils.cpp:869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 868
    functionDepth: 1
    functionLinenumber: 868
    functionLinenumberEnd: 870
    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:874,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_utils.cpp:874,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:875,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:875,1
    - Dst: std::popcount
      Src: /src/botan/src/tests/test_utils.cpp:875,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:875,1
    - Dst: std::popcount
      Src: /src/botan/src/tests/test_utils.cpp:875,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 873
    functionDepth: 2
    functionLinenumber: 873
    functionLinenumberEnd: 876
    functionName: Botan_Tests::BitOps_Tests::random_pc
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - std::popcount
    - fuzzer_rng
    - Botan::load_le<T>
    - Botan_Tests::BitOps_Tests::pc
    - test_is_eq
    linkageType: ''
    returnType: auto
    signature: auto random_pc(Test::Result& result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:881,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:881,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:882,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:882,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:883,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:883,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:884,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:884,1
    - Dst: Test::Result::test_is_eq
      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: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:887,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:887,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:888,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:888,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:889,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:889,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:891,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:891,1
    - Dst: Test::Result::test_is_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_is_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_is_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_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:896,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:896,1
    - Dst: Test::Result::test_is_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_is_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_is_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: Botan_Tests::BitOps_Tests::random_pc
      Src: /src/botan/src/tests/test_utils.cpp:901,1
    - Dst: Botan_Tests::BitOps_Tests::random_pc
      Src: /src/botan/src/tests/test_utils.cpp:902,1
    - Dst: Botan_Tests::BitOps_Tests::random_pc
      Src: /src/botan/src/tests/test_utils.cpp:903,1
    - Dst: Botan_Tests::BitOps_Tests::random_pc
      Src: /src/botan/src/tests/test_utils.cpp:904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 878
    functionDepth: 3
    functionLinenumber: 878
    functionLinenumberEnd: 907
    functionName: Botan_Tests::BitOps_Tests::test_popcount
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::BitOps_Tests::random_pc
    - Botan_Tests::BitOps_Tests::pc
    - Test::Result::test_is_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_popcount()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:912,1
    - Dst: Botan::ct_reverse_bits<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:912,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:913,1
    - Dst: Botan::ct_reverse_bits<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:913,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:914,1
    - Dst: Botan::ct_reverse_bits<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:914,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:916,1
    - Dst: Botan::ct_reverse_bits<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:917,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:918,1
    - Dst: Botan::ct_reverse_bits<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:919,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:920,1
    - Dst: Botan::ct_reverse_bits<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:921,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:923,1
    - Dst: Botan::ct_reverse_bits<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:923,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:924,1
    - Dst: Botan::ct_reverse_bits<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:924,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:925,1
    - Dst: Botan::ct_reverse_bits<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:925,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:927,1
    - Dst: Botan::ct_reverse_bits<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:928,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:929,1
    - Dst: Botan::ct_reverse_bits<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:930,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:931,1
    - Dst: Botan::ct_reverse_bits<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 909
    functionDepth: 0
    functionLinenumber: 909
    functionLinenumberEnd: 935
    functionName: Botan_Tests::BitOps_Tests::test_reverse_bits
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 1
    functionsReached:
    - Botan::ct_reverse_bits<uint32_t>
    - Botan::ct_reverse_bits<uint16_t>
    - Test::Result::test_is_eq
    - Botan::ct_reverse_bits<uint64_t>
    - Botan::ct_reverse_bits<uint8_t>
    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: 944
      start: 944
    functionDepth: 0
    functionLinenumber: 944
    functionLinenumberEnd: 944
    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:948,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_utils.cpp:949,1
    - Dst: Botan::poly_double_n
      Src: /src/botan/src/tests/test_utils.cpp:952,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils.cpp:952,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:952,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:954,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 946
    functionDepth: 1
    functionLinenumber: 946
    functionLinenumberEnd: 956
    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_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::confirm
      Src: /src/botan/src/tests/test_utils.cpp:968,1
    - Dst: Botan::version_datestamp
      Src: /src/botan/src/tests/test_utils.cpp:968,1
    - Dst: Botan::version_cstr
      Src: /src/botan/src/tests/test_utils.cpp:970,1
    - Dst: Botan::version_string
      Src: /src/botan/src/tests/test_utils.cpp:971,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:972,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_utils.cpp:972,1
    - Dst: Botan::short_version_cstr
      Src: /src/botan/src/tests/test_utils.cpp:974,1
    - Dst: Botan::short_version_string
      Src: /src/botan/src/tests/test_utils.cpp:975,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:976,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_utils.cpp:976,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:979,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:982,1
    - Dst: std::string::starts_with
      Src: /src/botan/src/tests/test_utils.cpp:982,1
    - Dst: Botan::runtime_version_check
      Src: /src/botan/src/tests/test_utils.cpp:985,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:987,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_utils.cpp:987,1
    - Dst: Botan::runtime_version_check
      Src: /src/botan/src/tests/test_utils.cpp:989,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:994,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 965
    functionDepth: 1
    functionLinenumber: 965
    functionLinenumberEnd: 997
    functionName: Botan_Tests::Version_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::runtime_version_check
    - std::string
    - Botan::version_string
    - std::string::empty
    - std::string::starts_with
    - Test::Result::test_eq
    - Botan::short_version_cstr
    - Test::Result::confirm
    - Botan::version_cstr
    - Botan::version_datestamp
    - Botan::short_version_string
    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: 1004
      start: 1004
    functionDepth: 0
    functionLinenumber: 1004
    functionLinenumberEnd: 1004
    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:1007,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:1008,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_utils.cpp:1009,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_utils.cpp:1013,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:1013,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:1015,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/tests/test_utils.cpp:1015,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1006
    functionDepth: 1
    functionLinenumber: 1006
    functionLinenumberEnd: 1018
    functionName: Botan_Tests::Date_Format_Tests::parse_date
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - Test_Error
    - Botan::split_on
    - Botan::to_u32bit
    - std::vector::size
    - std::vector::reserve
    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:1021,1
    - Dst: Botan_Tests::Date_Format_Tests::parse_date
      Src: /src/botan/src/tests/test_utils.cpp:1024,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1028,1
    - Dst: Botan::calendar_point::year
      Src: /src/botan/src/tests/test_utils.cpp:1028,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1029,1
    - Dst: Botan::calendar_point::month
      Src: /src/botan/src/tests/test_utils.cpp:1029,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1030,1
    - Dst: Botan::calendar_point::day
      Src: /src/botan/src/tests/test_utils.cpp:1030,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1031,1
    - Dst: Botan::calendar_point::hour
      Src: /src/botan/src/tests/test_utils.cpp:1031,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1032,1
    - Dst: Botan::calendar_point::minutes
      Src: /src/botan/src/tests/test_utils.cpp:1032,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1033,1
    - Dst: Botan::calendar_point::seconds
      Src: /src/botan/src/tests/test_utils.cpp:1033,1
    - Dst: Botan::calendar_point::year
      Src: /src/botan/src/tests/test_utils.cpp:1036,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:1037,1
    - Dst: Botan::calendar_point::to_std_timepoint
      Src: /src/botan/src/tests/test_utils.cpp:1037,1
    - Dst: Botan::calendar_point::to_std_timepoint
      Src: /src/botan/src/tests/test_utils.cpp:1039,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1040,1
    - Dst: Botan::calendar_point::year
      Src: /src/botan/src/tests/test_utils.cpp:1040,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1041,1
    - Dst: Botan::calendar_point::month
      Src: /src/botan/src/tests/test_utils.cpp:1041,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1042,1
    - Dst: Botan::calendar_point::day
      Src: /src/botan/src/tests/test_utils.cpp:1042,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1043,1
    - Dst: Botan::calendar_point::hour
      Src: /src/botan/src/tests/test_utils.cpp:1043,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1044,1
    - Dst: Botan::calendar_point::minutes
      Src: /src/botan/src/tests/test_utils.cpp:1044,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1045,1
    - Dst: Botan::calendar_point::seconds
      Src: /src/botan/src/tests/test_utils.cpp:1045,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:1048,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_utils.cpp:1050,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1020
    functionDepth: 2
    functionLinenumber: 1020
    functionLinenumberEnd: 1054
    functionName: Botan_Tests::Date_Format_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::calendar_point::month
    - Botan::calendar_point::day
    - Botan::calendar_point::year
    - Test::Result::test_throws
    - Test_Error
    - Test::Result::test_is_eq
    - Botan::calendar_point::minutes
    - Botan::calendar_point::to_std_timepoint
    - Botan::calendar_point::seconds
    - Botan_Tests::Date_Format_Tests::parse_date
    - Botan::calendar_point::hour
    - get_req_str
    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_eq
      Src: /src/botan/src/tests/test_utils.cpp:1060,1
    - Dst: Botan::calendar_point::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1060,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1056
    functionDepth: 1
    functionLinenumber: 1056
    functionLinenumberEnd: 1062
    functionName: Botan_Tests::Date_Format_Tests::run_final_tests
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_eq
    - Botan::calendar_point::to_string
    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: 1069
      start: 1069
    functionDepth: 0
    functionLinenumber: 1069
    functionLinenumberEnd: 1069
    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:1074,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_utils.cpp:1075,1
    - Dst: Botan::ucs2_to_utf8
      Src: /src/botan/src/tests/test_utils.cpp:1080,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils.cpp:1080,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:1080,1
    - Dst: Botan::ucs4_to_utf8
      Src: /src/botan/src/tests/test_utils.cpp:1082,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils.cpp:1082,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:1082,1
    - Dst: Botan::latin1_to_utf8
      Src: /src/botan/src/tests/test_utils.cpp:1084,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils.cpp:1084,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:1084,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_utils.cpp:1086,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1089,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:1090,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/test_utils.cpp:1090,1
    - Dst: std::string::end
      Src: /src/botan/src/tests/test_utils.cpp:1090,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1071
    functionDepth: 1
    functionLinenumber: 1071
    functionLinenumberEnd: 1093
    functionName: Botan_Tests::Charset_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::latin1_to_utf8
    - Test_Error
    - std::string::begin
    - Botan::ucs4_to_utf8
    - std::vector::data
    - Botan::ucs2_to_utf8
    - Test::Result::test_eq
    - std::string::end
    - std::vector<uint8_t>
    - 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: 1100
      start: 1100
    functionDepth: 0
    functionLinenumber: 1100
    functionLinenumberEnd: 1100
    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:1105,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_utils.cpp:1106,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1110,1
    - Dst: Botan::host_wildcard_match
      Src: /src/botan/src/tests/test_utils.cpp:1110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1102
    functionDepth: 1
    functionLinenumber: 1102
    functionLinenumberEnd: 1113
    functionName: Botan_Tests::Hostname_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_eq
    - get_req_str
    - 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: 1120
      start: 1120
    functionDepth: 0
    functionLinenumber: 1120
    functionLinenumberEnd: 1120
    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:1125,1
    - Dst: Botan::check_and_canonicalize_dns_name
      Src: /src/botan/src/tests/test_utils.cpp:1129,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_utils.cpp:1130,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_utils.cpp:1133,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_utils.cpp:1135,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_utils.cpp:1139,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_utils.cpp:1141,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1122
    functionDepth: 1
    functionLinenumber: 1122
    functionLinenumberEnd: 1146
    functionName: Botan_Tests::DNS_Check_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::check_and_canonicalize_dns_name
    - Test::Result::test_failure
    - BOTAN_UNUSED
    - Test::Result::test_success
    - get_req_str
    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: 1153
      start: 1153
    functionDepth: 0
    functionLinenumber: 1153
    functionLinenumberEnd: 1153
    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:1158,1
    - Dst: Botan::string_to_ipv4
      Src: /src/botan/src/tests/test_utils.cpp:1161,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1163,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils.cpp:1163,1
    - Dst: Botan::ipv4_to_string
      Src: /src/botan/src/tests/test_utils.cpp:1166,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils.cpp:1166,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' status'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1155
    functionDepth: 1
    functionLinenumber: 1155
    functionLinenumberEnd: 1171
    functionName: Botan_Tests::IPv4_Parsing_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::string_to_ipv4
    - auto::has_value
    - Botan::ipv4_to_string
    - auto::value
    - Test::Result::test_eq
    - get_req_str
    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: 1178
      start: 1178
    functionDepth: 0
    functionLinenumber: 1178
    functionLinenumberEnd: 1178
    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:1185,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_utils.cpp:1186,1
    - Dst: Botan_Tests::ReadKV_Tests::confirm_kv
      Src: /src/botan/src/tests/test_utils.cpp:1189,1
    - Dst: Botan::read_kv
      Src: /src/botan/src/tests/test_utils.cpp:1189,1
    - Dst: Botan_Tests::ReadKV_Tests::split_group
      Src: /src/botan/src/tests/test_utils.cpp:1189,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:1192,1
    - Dst: Botan::read_kv
      Src: /src/botan/src/tests/test_utils.cpp:1192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ' status'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1180
    functionDepth: 1
    functionLinenumber: 1180
    functionLinenumberEnd: 1195
    functionName: Botan_Tests::ReadKV_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::read_kv
    - Botan_Tests::ReadKV_Tests::confirm_kv
    - Botan_Tests::ReadKV_Tests::split_group
    - get_req_str
    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:1200,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:1207,1
    - Dst: std::string::clear
      Src: /src/botan/src/tests/test_utils.cpp:1208,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_utils.cpp:1214,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:1215,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1219
      start: 1198
    functionDepth: 1
    functionLinenumber: 1198
    functionLinenumberEnd: 1219
    functionName: Botan_Tests::ReadKV_Tests::split_group
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 1
    functionsReached:
    - std::string::empty
    - empty
    - std::vector::push_back
    - std::string::clear
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> split_group(const std::string& str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1224,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils.cpp:1224,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils.cpp:1228,1
    - Dst: find
      Src: /src/botan/src/tests/test_utils.cpp:1229,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils.cpp:1230,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils.cpp:1230,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1231,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1235,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils.cpp:1235,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils.cpp:1235,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: 1236
      start: 1221
    functionDepth: 0
    functionLinenumber: 1221
    functionLinenumberEnd: 1236
    functionName: Botan_Tests::ReadKV_Tests::confirm_kv
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 1
    functionsReached:
    - test_eq
    - size
    - end
    - find
    - confirm
    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:1248,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_utils.cpp:1249,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:1253,1
    - Dst: Botan::CPUFeature
      Src: /src/botan/src/tests/test_utils.cpp:1255,1
    - Dst: static_cast<Botan::CPUID::Feature::Bit>
      Src: /src/botan/src/tests/test_utils.cpp:1255,1
    - Dst: auto::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1257,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:1259,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_utils.cpp:1259,1
    - Dst: Botan::CPUFeature::from_string
      Src: /src/botan/src/tests/test_utils.cpp:1261,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_utils.cpp:1262,1
    - Dst: auto::as_u32
      Src: /src/botan/src/tests/test_utils.cpp:1262,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_utils.cpp:1264,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1265,1
    - Dst: has
      Src: /src/botan/src/tests/test_utils.cpp:1276,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:1277,1
    - Dst: std::string::find
      Src: /src/botan/src/tests/test_utils.cpp:1277,1
    - Dst: Botan::clear_cpuid_bit
      Src: /src/botan/src/tests/test_utils.cpp:1279,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1281,1
    - Dst: has
      Src: /src/botan/src/tests/test_utils.cpp:1282,1
    - Dst: Botan::CPUID::initialize
      Src: /src/botan/src/tests/test_utils.cpp:1284,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1285,1
    - Dst: has
      Src: /src/botan/src/tests/test_utils.cpp:1286,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_utils.cpp:1289,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1293
      start: 1245
    functionDepth: 1
    functionLinenumber: 1245
    functionLinenumberEnd: 1293
    functionName: Botan_Tests::CPUID_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - has
    - Test::Result::test_failure
    - std::string::empty
    - auto::to_string
    - Botan::clear_cpuid_bit
    - BOTAN_UNUSED
    - auto::as_u32
    - Botan::CPUID::to_string
    - std::string::find
    - Test::Result::test_success
    - Test::Result::test_int_eq
    - static_cast<uint32_t>
    - Botan::CPUFeature
    - Botan::CPUID::initialize
    - static_cast<Botan::CPUID::Feature::Bit>
    - Botan::fmt
    - Botan::CPUFeature::from_string
    - Test::Result::test_eq
    - Test::Result::confirm
    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:1307,1
    - Dst: Botan_Tests::UUID_Tests::rng
      Src: /src/botan/src/tests/test_utils.cpp:1308,1
    - Dst: Botan_Tests::UUID_Tests::rng
      Src: /src/botan/src/tests/test_utils.cpp:1309,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:1310,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:1312,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:1312,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1314,1
    - Dst: Botan::UUID::is_valid
      Src: /src/botan/src/tests/test_utils.cpp:1314,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:1315,1
    - Dst: Botan_CLI::Print_UUID::Print_UUID
      Src: /src/botan/src/tests/test_utils.cpp:1315,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:1317,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1317,1
    - Dst: Test::Result::test_eq
      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_eq
      Src: /src/botan/src/tests/test_utils.cpp:1320,1
    - Dst: Botan::UUID::is_valid
      Src: /src/botan/src/tests/test_utils.cpp:1320,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:1322,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:1323,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1325,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1326,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1328,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:1329,1
    - Dst: Botan_CLI::Print_UUID::Print_UUID
      Src: /src/botan/src/tests/test_utils.cpp:1329,1
    - Dst: std::fill
      Src: /src/botan/src/tests/test_utils.cpp:1336,1
    - Dst: begin
      Src: /src/botan/src/tests/test_utils.cpp:1336,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils.cpp:1336,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1353,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1353,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1357,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1360
      start: 1304
    functionDepth: 1
    functionLinenumber: 1304
    functionLinenumberEnd: 1360
    functionName: Botan_Tests::UUID_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::UUID::UUID
    - Botan_CLI::Print_UUID::Print_UUID
    - Botan::UUID::to_string
    - std::fill
    - Test::Result::test_eq
    - std::vector<uint8_t>
    - Test::Result::confirm
    - Botan::UUID::is_valid
    - begin
    - end
    - Botan_Tests::UUID_Tests::rng
    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: 1333
      start: 1333
    functionDepth: 0
    functionLinenumber: 1333
    functionLinenumberEnd: 1333
    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:1336,1
    - Dst: std::span<uint8_t>::begin
      Src: /src/botan/src/tests/test_utils.cpp:1336,1
    - Dst: std::span<uint8_t>::end
      Src: /src/botan/src/tests/test_utils.cpp:1336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1335
    functionDepth: 0
    functionLinenumber: 1335
    functionLinenumberEnd: 1337
    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::span<uint8_t>::end
    - std::fill
    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: 1339
      start: 1339
    functionDepth: 0
    functionLinenumber: 1339
    functionLinenumberEnd: 1339
    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: 1341
      start: 1341
    functionDepth: 0
    functionLinenumber: 1341
    functionLinenumberEnd: 1341
    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: 1343
      start: 1343
    functionDepth: 0
    functionLinenumber: 1343
    functionLinenumberEnd: 1343
    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: 1345
      start: 1345
    functionDepth: 0
    functionLinenumber: 1345
    functionLinenumberEnd: 1345
    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_eq
      Src: /src/botan/src/tests/test_utils.cpp:1378,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1378,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1379,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1379,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1380,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1380,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1381,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1381,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1382,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1382,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1383,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1386
      start: 1369
    functionDepth: 1
    functionLinenumber: 1369
    functionLinenumberEnd: 1386
    functionName: Botan_Tests::Formatter_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_eq
    - Botan::fmt
    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:1395,1
    - Dst: Botan::scoped_cleanup::scoped_cleanup
      Src: /src/botan/src/tests/test_utils.cpp:1399,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils.cpp:1401,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:1404,1
    - Dst: Botan::scoped_cleanup::scoped_cleanup
      Src: /src/botan/src/tests/test_utils.cpp:1409,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils.cpp:1413,1
    - Dst: fn
      Src: /src/botan/src/tests/test_utils.cpp:1414,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils.cpp:1415,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils.cpp:1416,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:1419,1
    - Dst: Botan::scoped_cleanup::scoped_cleanup
      Src: /src/botan/src/tests/test_utils.cpp:1425,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/test_utils.cpp:1427,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils.cpp:1430,1
    - Dst: fn
      Src: /src/botan/src/tests/test_utils.cpp:1432,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils.cpp:1437,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils.cpp:1438,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils.cpp:1439,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:1442,1
    - Dst: Botan::scoped_cleanup::scoped_cleanup
      Src: /src/botan/src/tests/test_utils.cpp:1446,1
    - Dst: auto::disengage
      Src: /src/botan/src/tests/test_utils.cpp:1447,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils.cpp:1449,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1453
      start: 1393
    functionDepth: 1
    functionLinenumber: 1393
    functionLinenumberEnd: 1453
    functionName: Botan_Tests::ScopedCleanup_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - fn
    - std::runtime_error
    - CHECK
    - Botan::scoped_cleanup::scoped_cleanup
    - auto::disengage
    - confirm
    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:48,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_checked_add
      Src: /src/botan/src/tests/test_utils.cpp:48,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:49,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_checked_mul
      Src: /src/botan/src/tests/test_utils.cpp:49,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:50,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_checked_cast
      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_round_up
      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_loadstore
      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_loadstore_ambiguity
      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_fallback
      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_constexpr
      Src: /src/botan/src/tests/test_utils.cpp:55,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils.cpp:56,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_copy_out_be_le
      Src: /src/botan/src/tests/test_utils.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 57
    functionName: Botan_Tests::Utility_Function_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Utility_Function_Tests::test_copy_out_be_le
    - std::vector::push_back
    - Botan_Tests::Utility_Function_Tests::test_loadstore
    - Botan_Tests::Utility_Function_Tests::test_loadstore_ambiguity
    - Botan_Tests::Utility_Function_Tests::test_round_up
    - Botan::concat
    - Botan_Tests::Utility_Function_Tests::test_checked_mul
    - Botan_Tests::Utility_Function_Tests::test_checked_cast
    - Botan_Tests::Utility_Function_Tests::test_loadstore_fallback
    - Botan_Tests::Utility_Function_Tests::test_loadstore_constexpr
    - Botan_Tests::Utility_Function_Tests::test_checked_add
    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:63,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:67,1
    - Dst: Botan::checked_add<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:68,1
    - Dst: Botan::checked_add<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:69,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:71,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:74,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils.cpp:74,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:76,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils.cpp:76,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_utils.cpp:80,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:83,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:83,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:83,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:84,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:84,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:84,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:86,1
    - Dst: Botan::checked_add
      Src: /src/botan/src/tests/test_utils.cpp:88,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_utils.cpp:89,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils.cpp:89,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:91,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 96
    functionName: Botan_Tests::Utility_Function_Tests::test_checked_add
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 2
    functionsReached:
    - static_cast<uint32_t>
    - static_cast<size_t>
    - next_byte
    - auto::has_value
    - Test::Result::test_int_eq
    - auto::value
    - fuzzer_rng
    - Botan::checked_add
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::make_uint16
    - Botan::checked_add<size_t>
    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:101,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:104,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:104,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:104,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:105,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:105,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:105,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:107,1
    - Dst: Botan::checked_mul
      Src: /src/botan/src/tests/test_utils.cpp:109,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_utils.cpp:110,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils.cpp:110,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 117
    functionName: Botan_Tests::Utility_Function_Tests::test_checked_mul
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 2
    functionsReached:
    - static_cast<uint32_t>
    - next_byte
    - auto::value
    - fuzzer_rng
    - Botan::checked_mul
    - Test::Result::confirm
    - Botan::make_uint16
    - Test::Result::test_int_eq
    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:122,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:126,1
    - Dst: Botan::checked_cast_to<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:126,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:127,1
    - Dst: Botan::checked_cast_to<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:127,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_utils.cpp:129,1
    - Dst: Botan::checked_cast_to<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:129,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_utils.cpp:130,1
    - Dst: Botan::checked_cast_to<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:130,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_utils.cpp:131,1
    - Dst: Botan::checked_cast_to<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 134
    functionName: Botan_Tests::Utility_Function_Tests::test_checked_cast
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::test_throws
    - Botan::checked_cast_to<uint8_t>
    - static_cast<uint32_t>
    - Botan::checked_cast_to<uint16_t>
    - Botan::checked_cast_to<uint32_t>
    - Test::Result::test_int_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:154,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:156,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:157,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:158,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_utils.cpp:160,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:160,1
    - Dst: what
      Src: /src/botan/src/tests/test_utils.cpp:160,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:165,1
    - Dst: Botan::round_up
      Src: /src/botan/src/tests/test_utils.cpp:165,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 168
    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::round_up
    - Botan::fmt
    - static_cast<size_t>
    - Test::Result::test_failure
    - Test::Result::confirm
    - what
    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:187,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils.cpp:188,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:194,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_utils.cpp:194,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:195,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_utils.cpp:195,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:196,1
    - Dst: Botan::get_byte<2>
      Src: /src/botan/src/tests/test_utils.cpp:196,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:197,1
    - Dst: Botan::get_byte<3>
      Src: /src/botan/src/tests/test_utils.cpp:197,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:199,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:199,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:200,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_utils.cpp:200,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:202,1
    - Dst: Botan::load_be<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:202,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:203,1
    - Dst: Botan::load_be<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:203,1
    - Dst: Test::Result::test_is_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_is_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_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:207,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:207,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:208,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:208,1
    - Dst: Test::Result::test_is_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_is_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_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:212,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:212,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:213,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:213,1
    - Dst: Test::Result::test_is_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_is_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_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:217,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:217,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:218,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:218,1
    - Dst: Test::Result::test_is_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_is_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_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:222,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:222,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:223,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:223,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:225,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:225,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:226,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:226,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:229,1
    - Dst: Botan::load_be<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:229,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:230,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:230,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:232,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:232,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:233,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:233,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:235,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:235,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:236,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:236,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:237,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:237,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:244,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:245,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:246,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:248,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:249,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:250,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:252,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:253,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:254,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:255,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:256,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:258,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:259,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:260,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:261,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:262,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:264,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:265,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:266,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:267,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:268,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:269,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:270,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:271,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:272,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:274,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:275,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:276,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:277,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:278,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:279,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:280,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:281,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:282,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:290,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_utils.cpp:292,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:293,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:294,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:295,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:296,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:298,1
    - Dst: first
      Src: /src/botan/src/tests/test_utils.cpp:298,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:299,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:300,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:301,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:302,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:304,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:306,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:307,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:308,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:309,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:310,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_utils.cpp:312,1
    - Dst: first
      Src: /src/botan/src/tests/test_utils.cpp:312,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:313,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:314,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:315,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:316,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:322,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:323,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:325,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:326,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:326,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:328,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:329,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:330,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:331,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:331,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:336,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:337,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_be
      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: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:347,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:348,1
    - Dst: Botan::store_be<TestVectorSink>
      Src: /src/botan/src/tests/test_utils.cpp:349,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:350,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:351,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:351,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:352,1
    - Dst: TestVectorSink
      Src: /src/botan/src/tests/test_utils.cpp:352,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:352,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:353,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:354,1
    - Dst: Botan::store_le<TestVectorSink>
      Src: /src/botan/src/tests/test_utils.cpp:355,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:356,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:357,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:357,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:358,1
    - Dst: TestVectorSink
      Src: /src/botan/src/tests/test_utils.cpp:358,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:358,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:360,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_utils.cpp:360,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:360,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:361,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_utils.cpp:361,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:361,1
    - Dst: Test::Result::test_is_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_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:364,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:364,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:364,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:365,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:365,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:365,1
    - Dst: Test::Result::test_is_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_throws
      Src: /src/botan/src/tests/test_utils.cpp:372,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:373,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:373,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_be
      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:383,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:384,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_be
      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_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:395,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:395,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:395,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:396,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:396,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:396,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:399,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:399,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:399,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:400,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:400,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:400,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:403,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:404,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:405,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:406,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:408,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:409,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:410,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:411,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:414,1
    - Dst: Botan::load_be<std::array<uint16_t, 2>>
      Src: /src/botan/src/tests/test_utils.cpp:415,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:416,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:417,1
    - Dst: Botan::load_be<std::vector<uint16_t>>
      Src: /src/botan/src/tests/test_utils.cpp:418,1
    - Dst: Test::Result::test_eq_sz
      Src: /src/botan/src/tests/test_utils.cpp:419,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils.cpp:419,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:420,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:421,1
    - Dst: Botan::load_le<std::array<uint16_t, 2>>
      Src: /src/botan/src/tests/test_utils.cpp:423,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:424,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:425,1
    - Dst: Botan::load_le<Botan::secure_vector<uint16_t>>
      Src: /src/botan/src/tests/test_utils.cpp:426,1
    - Dst: Test::Result::test_eq_sz
      Src: /src/botan/src/tests/test_utils.cpp:427,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils.cpp:427,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:428,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:429,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:435,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:435,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:435,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:436,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:436,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:436,1
    - Dst: Test::Result::test_is_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:437,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:437,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:438,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:438,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:438,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:440,1
    - Dst: Botan::load_be<TestInt64>
      Src: /src/botan/src/tests/test_utils.cpp:440,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:440,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:441,1
    - Dst: Botan::load_le<TestInt64>
      Src: /src/botan/src/tests/test_utils.cpp:441,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:441,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:442,1
    - Dst: Botan::load_be<TestInt32>
      Src: /src/botan/src/tests/test_utils.cpp:442,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:442,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:443,1
    - Dst: Botan::load_le<TestInt32>
      Src: /src/botan/src/tests/test_utils.cpp:443,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:443,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:446,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:446,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:447,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:448,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:448,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:449,1
    - Dst: Botan::load_le<std::array<TestInt64, 2>>
      Src: /src/botan/src/tests/test_utils.cpp:452,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:452,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:453,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:454,1
    - Dst: Botan::load_be<std::vector<TestInt64>>
      Src: /src/botan/src/tests/test_utils.cpp:457,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:457,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:458,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:459,1
    - Dst: Botan::load_le<TestEnum64>
      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::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:463,1
    - Dst: Botan::load_be<TestEnum64>
      Src: /src/botan/src/tests/test_utils.cpp:464,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:464,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:465,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:466,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:466,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:467,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:468,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:468,1
    - Dst: Botan::load_le<TestEnum32>
      Src: /src/botan/src/tests/test_utils.cpp:471,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:471,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:472,1
    - Dst: Botan::load_be<TestEnum32>
      Src: /src/botan/src/tests/test_utils.cpp:473,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:473,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:474,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:475,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:475,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:475,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:476,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 195
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 479
    functionName: Botan_Tests::Utility_Function_Tests::test_loadstore
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 2
    functionsReached:
    - Botan::hex_decode
    - Test::Result::test_throws
    - Botan::load_le<TestInt32>
    - Botan::load_le<std::array<TestInt64, 2>>
    - Botan::get_byte<0>
    - Botan::store_le<std::vector<uint8_t>>
    - Botan::load_be<TestInt64>
    - Botan::get_byte<1>
    - Botan::store_le
    - auto::size
    - first
    - Botan::make_uint32
    - Botan::load_le<TestEnum64>
    - Test::Result::test_is_eq
    - std::vector::data
    - Botan::store_le<TestVectorSink>
    - Botan::load_be<TestEnum64>
    - Botan::load_be
    - TestVectorSink
    - Botan::load_le<std::array<uint16_t, 2>>
    - Botan::load_be<std::vector<uint16_t>>
    - Botan::load_be<TestEnum32>
    - Botan::load_be<std::vector<TestInt64>>
    - Botan::load_be<uint64_t>
    - Botan::load_le<Botan::secure_vector<uint16_t>>
    - Botan::load_be<TestInt32>
    - Test::Result::test_eq_sz
    - Botan::make_uint16
    - Botan::load_le<uint64_t>
    - Botan::load_le<TestEnum32>
    - Botan::store_be<TestVectorSink>
    - Botan::get_byte<3>
    - Botan::load_le<uint16_t>
    - Botan::load_be<uint32_t>
    - Botan::load_le<uint32_t>
    - Botan::load_be<uint16_t>
    - Botan::get_byte<2>
    - Botan::store_be
    - Botan::load_le<TestInt64>
    - Botan::load_be<std::array<uint16_t, 2>>
    - Botan::store_be<std::vector<uint8_t>>
    - Botan::load_le
    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:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::array<const uint8_t, sizeof(T)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 484
    functionName: Botan_Tests::Utility_Function_Tests::fb_load_be
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 1
    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:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::array<const uint8_t, sizeof(T)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 489
    functionName: Botan_Tests::Utility_Function_Tests::fb_load_le
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 1
    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:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - in
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 496
    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:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - in
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 503
    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:521,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:522,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:523,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:524,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:525,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:526,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:528,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:528,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:529,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:529,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:530,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:530,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:531,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:531,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:532,1
    - Dst: Botan::load_be<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:532,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:533,1
    - Dst: Botan::load_le<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 536
    functionName: Botan_Tests::Utility_Function_Tests::test_loadstore_ambiguity
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 2
    functionsReached:
    - Botan::load_le<uint64_t>
    - Test::Result::test_is_eq
    - Botan::load_be<uint64_t>
    - Botan::load_be<uint32_t>
    - Botan::load_le<uint32_t>
    - Botan::store_be
    - Botan::load_le<size_t>
    - Botan::store_le
    - Botan::load_be<size_t>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_loadstore_ambiguity()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:545,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/tests/test_utils.cpp:545,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:546,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/tests/test_utils.cpp:546,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:547,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/tests/test_utils.cpp:547,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:549,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_be
      Src: /src/botan/src/tests/test_utils.cpp:549,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:550,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_be
      Src: /src/botan/src/tests/test_utils.cpp:550,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:551,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_be
      Src: /src/botan/src/tests/test_utils.cpp:551,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:553,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_le
      Src: /src/botan/src/tests/test_utils.cpp:553,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:554,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_le
      Src: /src/botan/src/tests/test_utils.cpp:554,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:555,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_le
      Src: /src/botan/src/tests/test_utils.cpp:555,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:557,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_be
      Src: /src/botan/src/tests/test_utils.cpp:557,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:558,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_be
      Src: /src/botan/src/tests/test_utils.cpp:558,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:559,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_be
      Src: /src/botan/src/tests/test_utils.cpp:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 562
    functionName: Botan_Tests::Utility_Function_Tests::test_loadstore_fallback
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::Utility_Function_Tests::fb_store_le
    - Botan_Tests::Utility_Function_Tests::fb_load_le
    - Test::Result::test_is_eq
    - Botan_Tests::Utility_Function_Tests::fb_load_be
    - Botan_Tests::Utility_Function_Tests::fb_store_be
    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:578,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:579,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_utils.cpp:580,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:581,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_utils.cpp:584,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:585,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_utils.cpp:586,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:587,1
    - Dst: Botan::get_byte<2>
      Src: /src/botan/src/tests/test_utils.cpp:588,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:589,1
    - Dst: Botan::get_byte<3>
      Src: /src/botan/src/tests/test_utils.cpp:590,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:591,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_utils.cpp:594,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:595,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_utils.cpp:596,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:597,1
    - Dst: Botan::get_byte<2>
      Src: /src/botan/src/tests/test_utils.cpp:598,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:599,1
    - Dst: Botan::get_byte<3>
      Src: /src/botan/src/tests/test_utils.cpp:600,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:601,1
    - Dst: Botan::get_byte<4>
      Src: /src/botan/src/tests/test_utils.cpp:602,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:603,1
    - Dst: Botan::get_byte<5>
      Src: /src/botan/src/tests/test_utils.cpp:604,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:605,1
    - Dst: Botan::get_byte<6>
      Src: /src/botan/src/tests/test_utils.cpp:606,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:607,1
    - Dst: Botan::get_byte<7>
      Src: /src/botan/src/tests/test_utils.cpp:608,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:609,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:612,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:613,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_utils.cpp:614,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:615,1
    - Dst: Botan::make_uint64
      Src: /src/botan/src/tests/test_utils.cpp:616,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:617,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:620,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:621,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:622,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:623,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:624,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:625,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:627,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:628,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:629,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:630,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:631,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:632,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:636,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:638,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:639,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:642,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:643,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:644,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:645,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:648,1
    - Dst: Botan::store_le
      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: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:651,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:654,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:657,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:659,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:660,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:663,1
    - Dst: Botan::store_be
      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: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:666,1
    - Dst: Test::Result::test_is_eq
      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: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:671,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:672,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:675,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:678,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:679,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:680,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:681,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:682,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:683,1
    - Dst: Botan::load_be<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:685,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:686,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:687,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:688,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:689,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:690,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils.cpp:693,1
    - Dst: Botan::load_le<std::array<uint16_t, cex_mem.size() / 2>>
      Src: /src/botan/src/tests/test_utils.cpp:693,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:694,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::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:696,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils.cpp:697,1
    - Dst: Botan::load_le<std::array<uint64_t, cex_mem.size() / 8>>
      Src: /src/botan/src/tests/test_utils.cpp:697,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:698,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils.cpp:700,1
    - Dst: Botan::load_be<std::array<uint16_t, cex_mem.size() / 2>>
      Src: /src/botan/src/tests/test_utils.cpp:700,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:701,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils.cpp:702,1
    - Dst: Botan::load_be<std::array<uint32_t, cex_mem.size() / 4>>
      Src: /src/botan/src/tests/test_utils.cpp:702,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:703,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils.cpp:704,1
    - Dst: Botan::load_be<std::array<uint64_t, cex_mem.size() / 8>>
      Src: /src/botan/src/tests/test_utils.cpp:704,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 708
    functionName: Botan_Tests::Utility_Function_Tests::test_loadstore_constexpr
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 2
    functionsReached:
    - Botan::get_byte<0>
    - Botan::make_uint64
    - Botan::load_le<std::array<uint64_t, cex_mem.size() / 8>>
    - Botan::get_byte<1>
    - Botan::get_byte<5>
    - Botan::store_le
    - Botan::make_uint32
    - Test::Result::test_is_eq
    - Botan::load_be<std::array<uint64_t, cex_mem.size() / 8>>
    - std::array::size
    - Botan::load_be<std::array<uint16_t, cex_mem.size() / 2>>
    - Botan::get_byte<6>
    - Botan::get_byte<4>
    - Botan::load_be<uint64_t>
    - Botan::load_le<std::array<uint16_t, cex_mem.size() / 2>>
    - Botan::load_le<std::array<uint32_t, cex_mem.size() / 4>>
    - Botan::make_uint16
    - Botan::load_le<uint64_t>
    - Botan::get_byte<7>
    - Botan::get_byte<3>
    - Botan::load_le<uint16_t>
    - Botan::load_be<std::array<uint32_t, cex_mem.size() / 4>>
    - Botan::store_be
    - Botan::load_le<uint32_t>
    - Botan::load_be<uint16_t>
    - Botan::get_byte<2>
    - Botan::load_be<uint32_t>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_loadstore_constexpr()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:712,1
    - Dst: Botan::copy_out_be
      Src: /src/botan/src/tests/test_utils.cpp:716,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:717,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:717,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:720,1
    - Dst: Botan::copy_out_be
      Src: /src/botan/src/tests/test_utils.cpp:724,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:725,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:725,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:728,1
    - Dst: Botan::copy_out_le
      Src: /src/botan/src/tests/test_utils.cpp:732,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:733,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:733,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:736,1
    - Dst: Botan::copy_out_le
      Src: /src/botan/src/tests/test_utils.cpp:740,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:741,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:741,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:744,1
    - Dst: Botan::copy_out_be
      Src: /src/botan/src/tests/test_utils.cpp:748,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:749,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:749,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:752,1
    - Dst: Botan::copy_out_le
      Src: /src/botan/src/tests/test_utils.cpp:756,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:757,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:757,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:760,1
    - Dst: Botan::copy_out_be
      Src: /src/botan/src/tests/test_utils.cpp:764,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:765,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:765,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:768,1
    - Dst: Botan::copy_out_le
      Src: /src/botan/src/tests/test_utils.cpp:772,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:773,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 710
    functionDepth: 1
    functionLinenumber: 710
    functionLinenumberEnd: 776
    functionName: Botan_Tests::Utility_Function_Tests::test_copy_out_be_le
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 2
    functionsReached:
    - Botan::copy_out_be
    - Botan::hex_decode
    - Botan::copy_out_le
    - test_is_eq
    - CHECK
    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:786,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:786,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:787,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:787,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:788,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:788,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:789,1
    - Dst: Botan_Tests::BitOps_Tests::test_popcount
      Src: /src/botan/src/tests/test_utils.cpp:789,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:790,1
    - Dst: Botan_Tests::BitOps_Tests::test_reverse_bits
      Src: /src/botan/src/tests/test_utils.cpp:790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 783
    functionDepth: 4
    functionLinenumber: 783
    functionLinenumberEnd: 793
    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_sig_bytes
    - Botan_Tests::BitOps_Tests::test_popcount
    - 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: test_eq
      Src: /src/botan/src/tests/test_utils.cpp:798,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_utils.cpp:798,1
    - Dst: Botan::ctz<T>
      Src: /src/botan/src/tests/test_utils.cpp:798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' result'
    - val
    - expected
    argTypes:
    - Test::Result
    - T
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 797
    functionDepth: 0
    functionLinenumber: 797
    functionLinenumberEnd: 799
    functionName: Botan_Tests::BitOps_Tests::test_ctz
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 3
    functionsReached:
    - Botan::ctz<T>
    - test_eq
    - std::to_string
    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:803,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:804,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:805,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:806,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:807,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 811
    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: test_eq
      Src: /src/botan/src/tests/test_utils.cpp:815,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_utils.cpp:815,1
    - Dst: Botan::significant_bytes<T>
      Src: /src/botan/src/tests/test_utils.cpp:815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' result'
    - val
    - expected
    argTypes:
    - Test::Result
    - T
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 814
    functionDepth: 0
    functionLinenumber: 814
    functionLinenumberEnd: 816
    functionName: Botan_Tests::BitOps_Tests::test_sig_bytes
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 3
    functionsReached:
    - test_eq
    - Botan::significant_bytes<T>
    - std::to_string
    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:820,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:821,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:822,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:823,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:824,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:825,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:826,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:827,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:829,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:830,1
    - 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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 818
    functionDepth: 1
    functionLinenumber: 818
    functionLinenumberEnd: 837
    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_eq
      Src: /src/botan/src/tests/test_utils.cpp:841,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_utils.cpp:841,1
    - Dst: Botan::is_power_of_2<T>
      Src: /src/botan/src/tests/test_utils.cpp:841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' result'
    - val
    - expected
    argTypes:
    - Test::Result
    - T
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 840
    functionDepth: 0
    functionLinenumber: 840
    functionLinenumberEnd: 842
    functionName: Botan_Tests::BitOps_Tests::test_power_of_2
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 4
    functionsReached:
    - test_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:847,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:848,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:849,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:850,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:851,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:852,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:853,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:855,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:856,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:857,1
    - 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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 844
    functionDepth: 1
    functionLinenumber: 844
    functionLinenumberEnd: 865
    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:868,1
    - Dst: Botan::ct_popcount
      Src: /src/botan/src/tests/test_utils.cpp:869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 868
    functionDepth: 1
    functionLinenumber: 868
    functionLinenumberEnd: 870
    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:874,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_utils.cpp:874,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:875,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:875,1
    - Dst: std::popcount
      Src: /src/botan/src/tests/test_utils.cpp:875,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:875,1
    - Dst: std::popcount
      Src: /src/botan/src/tests/test_utils.cpp:875,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 873
    functionDepth: 2
    functionLinenumber: 873
    functionLinenumberEnd: 876
    functionName: Botan_Tests::BitOps_Tests::random_pc
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 1
    functionsReached:
    - Botan::fmt
    - std::popcount
    - fuzzer_rng
    - Botan::load_le<T>
    - Botan_Tests::BitOps_Tests::pc
    - test_is_eq
    linkageType: ''
    returnType: auto
    signature: auto random_pc(Test::Result& result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:881,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:881,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:882,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:882,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:883,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:883,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:884,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:884,1
    - Dst: Test::Result::test_is_eq
      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: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:887,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:887,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:888,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:888,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:889,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:889,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:891,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:891,1
    - Dst: Test::Result::test_is_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_is_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_is_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_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:896,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:896,1
    - Dst: Test::Result::test_is_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_is_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_is_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: Botan_Tests::BitOps_Tests::random_pc
      Src: /src/botan/src/tests/test_utils.cpp:901,1
    - Dst: Botan_Tests::BitOps_Tests::random_pc
      Src: /src/botan/src/tests/test_utils.cpp:902,1
    - Dst: Botan_Tests::BitOps_Tests::random_pc
      Src: /src/botan/src/tests/test_utils.cpp:903,1
    - Dst: Botan_Tests::BitOps_Tests::random_pc
      Src: /src/botan/src/tests/test_utils.cpp:904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 878
    functionDepth: 3
    functionLinenumber: 878
    functionLinenumberEnd: 907
    functionName: Botan_Tests::BitOps_Tests::test_popcount
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::BitOps_Tests::random_pc
    - Botan_Tests::BitOps_Tests::pc
    - Test::Result::test_is_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_popcount()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:912,1
    - Dst: Botan::ct_reverse_bits<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:912,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:913,1
    - Dst: Botan::ct_reverse_bits<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:913,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:914,1
    - Dst: Botan::ct_reverse_bits<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:914,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:916,1
    - Dst: Botan::ct_reverse_bits<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:917,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:918,1
    - Dst: Botan::ct_reverse_bits<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:919,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:920,1
    - Dst: Botan::ct_reverse_bits<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:921,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:923,1
    - Dst: Botan::ct_reverse_bits<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:923,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:924,1
    - Dst: Botan::ct_reverse_bits<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:924,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:925,1
    - Dst: Botan::ct_reverse_bits<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:925,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:927,1
    - Dst: Botan::ct_reverse_bits<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:928,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:929,1
    - Dst: Botan::ct_reverse_bits<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:930,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:931,1
    - Dst: Botan::ct_reverse_bits<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 909
    functionDepth: 0
    functionLinenumber: 909
    functionLinenumberEnd: 935
    functionName: Botan_Tests::BitOps_Tests::test_reverse_bits
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 2
    functionsReached:
    - Botan::ct_reverse_bits<uint32_t>
    - Botan::ct_reverse_bits<uint16_t>
    - Test::Result::test_is_eq
    - Botan::ct_reverse_bits<uint64_t>
    - Botan::ct_reverse_bits<uint8_t>
    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: 944
      start: 944
    functionDepth: 0
    functionLinenumber: 944
    functionLinenumberEnd: 944
    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:948,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_utils.cpp:949,1
    - Dst: Botan::poly_double_n
      Src: /src/botan/src/tests/test_utils.cpp:952,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils.cpp:952,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:952,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:954,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 946
    functionDepth: 1
    functionLinenumber: 946
    functionLinenumberEnd: 956
    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_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::confirm
      Src: /src/botan/src/tests/test_utils.cpp:968,1
    - Dst: Botan::version_datestamp
      Src: /src/botan/src/tests/test_utils.cpp:968,1
    - Dst: Botan::version_cstr
      Src: /src/botan/src/tests/test_utils.cpp:970,1
    - Dst: Botan::version_string
      Src: /src/botan/src/tests/test_utils.cpp:971,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:972,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_utils.cpp:972,1
    - Dst: Botan::short_version_cstr
      Src: /src/botan/src/tests/test_utils.cpp:974,1
    - Dst: Botan::short_version_string
      Src: /src/botan/src/tests/test_utils.cpp:975,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:976,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_utils.cpp:976,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:979,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:982,1
    - Dst: std::string::starts_with
      Src: /src/botan/src/tests/test_utils.cpp:982,1
    - Dst: Botan::runtime_version_check
      Src: /src/botan/src/tests/test_utils.cpp:985,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:987,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_utils.cpp:987,1
    - Dst: Botan::runtime_version_check
      Src: /src/botan/src/tests/test_utils.cpp:989,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:994,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 965
    functionDepth: 1
    functionLinenumber: 965
    functionLinenumberEnd: 997
    functionName: Botan_Tests::Version_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::runtime_version_check
    - std::string
    - Botan::version_string
    - std::string::empty
    - std::string::starts_with
    - Test::Result::test_eq
    - Botan::short_version_cstr
    - Test::Result::confirm
    - Botan::version_cstr
    - Botan::version_datestamp
    - Botan::short_version_string
    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: 1004
      start: 1004
    functionDepth: 0
    functionLinenumber: 1004
    functionLinenumberEnd: 1004
    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:1007,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:1008,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_utils.cpp:1009,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_utils.cpp:1013,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:1013,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:1015,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/tests/test_utils.cpp:1015,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1006
    functionDepth: 1
    functionLinenumber: 1006
    functionLinenumberEnd: 1018
    functionName: Botan_Tests::Date_Format_Tests::parse_date
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 1
    functionsReached:
    - std::vector::push_back
    - Test_Error
    - Botan::split_on
    - Botan::to_u32bit
    - std::vector::size
    - std::vector::reserve
    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:1021,1
    - Dst: Botan_Tests::Date_Format_Tests::parse_date
      Src: /src/botan/src/tests/test_utils.cpp:1024,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1028,1
    - Dst: Botan::calendar_point::year
      Src: /src/botan/src/tests/test_utils.cpp:1028,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1029,1
    - Dst: Botan::calendar_point::month
      Src: /src/botan/src/tests/test_utils.cpp:1029,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1030,1
    - Dst: Botan::calendar_point::day
      Src: /src/botan/src/tests/test_utils.cpp:1030,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1031,1
    - Dst: Botan::calendar_point::hour
      Src: /src/botan/src/tests/test_utils.cpp:1031,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1032,1
    - Dst: Botan::calendar_point::minutes
      Src: /src/botan/src/tests/test_utils.cpp:1032,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1033,1
    - Dst: Botan::calendar_point::seconds
      Src: /src/botan/src/tests/test_utils.cpp:1033,1
    - Dst: Botan::calendar_point::year
      Src: /src/botan/src/tests/test_utils.cpp:1036,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:1037,1
    - Dst: Botan::calendar_point::to_std_timepoint
      Src: /src/botan/src/tests/test_utils.cpp:1037,1
    - Dst: Botan::calendar_point::to_std_timepoint
      Src: /src/botan/src/tests/test_utils.cpp:1039,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1040,1
    - Dst: Botan::calendar_point::year
      Src: /src/botan/src/tests/test_utils.cpp:1040,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1041,1
    - Dst: Botan::calendar_point::month
      Src: /src/botan/src/tests/test_utils.cpp:1041,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1042,1
    - Dst: Botan::calendar_point::day
      Src: /src/botan/src/tests/test_utils.cpp:1042,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1043,1
    - Dst: Botan::calendar_point::hour
      Src: /src/botan/src/tests/test_utils.cpp:1043,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1044,1
    - Dst: Botan::calendar_point::minutes
      Src: /src/botan/src/tests/test_utils.cpp:1044,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1045,1
    - Dst: Botan::calendar_point::seconds
      Src: /src/botan/src/tests/test_utils.cpp:1045,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:1048,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_utils.cpp:1050,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1020
    functionDepth: 2
    functionLinenumber: 1020
    functionLinenumberEnd: 1054
    functionName: Botan_Tests::Date_Format_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::calendar_point::month
    - Botan::calendar_point::day
    - Botan::calendar_point::year
    - Test::Result::test_throws
    - Test_Error
    - Test::Result::test_is_eq
    - Botan::calendar_point::minutes
    - Botan::calendar_point::to_std_timepoint
    - Botan::calendar_point::seconds
    - Botan_Tests::Date_Format_Tests::parse_date
    - Botan::calendar_point::hour
    - get_req_str
    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_eq
      Src: /src/botan/src/tests/test_utils.cpp:1060,1
    - Dst: Botan::calendar_point::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1060,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1056
    functionDepth: 1
    functionLinenumber: 1056
    functionLinenumberEnd: 1062
    functionName: Botan_Tests::Date_Format_Tests::run_final_tests
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_eq
    - Botan::calendar_point::to_string
    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: 1069
      start: 1069
    functionDepth: 0
    functionLinenumber: 1069
    functionLinenumberEnd: 1069
    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:1074,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_utils.cpp:1075,1
    - Dst: Botan::ucs2_to_utf8
      Src: /src/botan/src/tests/test_utils.cpp:1080,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils.cpp:1080,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:1080,1
    - Dst: Botan::ucs4_to_utf8
      Src: /src/botan/src/tests/test_utils.cpp:1082,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils.cpp:1082,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:1082,1
    - Dst: Botan::latin1_to_utf8
      Src: /src/botan/src/tests/test_utils.cpp:1084,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils.cpp:1084,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:1084,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_utils.cpp:1086,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1089,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:1090,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/test_utils.cpp:1090,1
    - Dst: std::string::end
      Src: /src/botan/src/tests/test_utils.cpp:1090,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1071
    functionDepth: 1
    functionLinenumber: 1071
    functionLinenumberEnd: 1093
    functionName: Botan_Tests::Charset_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::latin1_to_utf8
    - Test_Error
    - std::string::begin
    - Botan::ucs4_to_utf8
    - std::vector::data
    - Botan::ucs2_to_utf8
    - Test::Result::test_eq
    - std::string::end
    - std::vector<uint8_t>
    - 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: 1100
      start: 1100
    functionDepth: 0
    functionLinenumber: 1100
    functionLinenumberEnd: 1100
    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:1105,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_utils.cpp:1106,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1110,1
    - Dst: Botan::host_wildcard_match
      Src: /src/botan/src/tests/test_utils.cpp:1110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1102
    functionDepth: 1
    functionLinenumber: 1102
    functionLinenumberEnd: 1113
    functionName: Botan_Tests::Hostname_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_eq
    - get_req_str
    - 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: 1120
      start: 1120
    functionDepth: 0
    functionLinenumber: 1120
    functionLinenumberEnd: 1120
    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:1125,1
    - Dst: Botan::check_and_canonicalize_dns_name
      Src: /src/botan/src/tests/test_utils.cpp:1129,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_utils.cpp:1130,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_utils.cpp:1133,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_utils.cpp:1135,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_utils.cpp:1139,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_utils.cpp:1141,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1122
    functionDepth: 1
    functionLinenumber: 1122
    functionLinenumberEnd: 1146
    functionName: Botan_Tests::DNS_Check_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::check_and_canonicalize_dns_name
    - Test::Result::test_failure
    - BOTAN_UNUSED
    - Test::Result::test_success
    - get_req_str
    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: 1153
      start: 1153
    functionDepth: 0
    functionLinenumber: 1153
    functionLinenumberEnd: 1153
    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:1158,1
    - Dst: Botan::string_to_ipv4
      Src: /src/botan/src/tests/test_utils.cpp:1161,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1163,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils.cpp:1163,1
    - Dst: Botan::ipv4_to_string
      Src: /src/botan/src/tests/test_utils.cpp:1166,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils.cpp:1166,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' status'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1155
    functionDepth: 1
    functionLinenumber: 1155
    functionLinenumberEnd: 1171
    functionName: Botan_Tests::IPv4_Parsing_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::string_to_ipv4
    - auto::has_value
    - Botan::ipv4_to_string
    - auto::value
    - Test::Result::test_eq
    - get_req_str
    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: 1178
      start: 1178
    functionDepth: 0
    functionLinenumber: 1178
    functionLinenumberEnd: 1178
    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:1185,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_utils.cpp:1186,1
    - Dst: Botan_Tests::ReadKV_Tests::confirm_kv
      Src: /src/botan/src/tests/test_utils.cpp:1189,1
    - Dst: Botan::read_kv
      Src: /src/botan/src/tests/test_utils.cpp:1189,1
    - Dst: Botan_Tests::ReadKV_Tests::split_group
      Src: /src/botan/src/tests/test_utils.cpp:1189,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:1192,1
    - Dst: Botan::read_kv
      Src: /src/botan/src/tests/test_utils.cpp:1192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ' status'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1180
    functionDepth: 2
    functionLinenumber: 1180
    functionLinenumberEnd: 1195
    functionName: Botan_Tests::ReadKV_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::read_kv
    - Botan_Tests::ReadKV_Tests::confirm_kv
    - Botan_Tests::ReadKV_Tests::split_group
    - get_req_str
    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:1200,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:1207,1
    - Dst: std::string::clear
      Src: /src/botan/src/tests/test_utils.cpp:1208,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_utils.cpp:1214,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:1215,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1219
      start: 1198
    functionDepth: 1
    functionLinenumber: 1198
    functionLinenumberEnd: 1219
    functionName: Botan_Tests::ReadKV_Tests::split_group
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 2
    functionsReached:
    - std::string::empty
    - empty
    - std::vector::push_back
    - std::string::clear
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> split_group(const std::string& str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1224,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils.cpp:1224,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils.cpp:1228,1
    - Dst: find
      Src: /src/botan/src/tests/test_utils.cpp:1229,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils.cpp:1230,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils.cpp:1230,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1231,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1235,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils.cpp:1235,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils.cpp:1235,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: 1236
      start: 1221
    functionDepth: 0
    functionLinenumber: 1221
    functionLinenumberEnd: 1236
    functionName: Botan_Tests::ReadKV_Tests::confirm_kv
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 2
    functionsReached:
    - test_eq
    - size
    - end
    - find
    - confirm
    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:1248,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_utils.cpp:1249,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:1253,1
    - Dst: Botan::CPUFeature
      Src: /src/botan/src/tests/test_utils.cpp:1255,1
    - Dst: static_cast<Botan::CPUID::Feature::Bit>
      Src: /src/botan/src/tests/test_utils.cpp:1255,1
    - Dst: auto::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1257,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:1259,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_utils.cpp:1259,1
    - Dst: Botan::CPUFeature::from_string
      Src: /src/botan/src/tests/test_utils.cpp:1261,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_utils.cpp:1262,1
    - Dst: auto::as_u32
      Src: /src/botan/src/tests/test_utils.cpp:1262,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_utils.cpp:1264,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1265,1
    - Dst: has
      Src: /src/botan/src/tests/test_utils.cpp:1276,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:1277,1
    - Dst: std::string::find
      Src: /src/botan/src/tests/test_utils.cpp:1277,1
    - Dst: Botan::clear_cpuid_bit
      Src: /src/botan/src/tests/test_utils.cpp:1279,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1281,1
    - Dst: has
      Src: /src/botan/src/tests/test_utils.cpp:1282,1
    - Dst: Botan::CPUID::initialize
      Src: /src/botan/src/tests/test_utils.cpp:1284,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1285,1
    - Dst: has
      Src: /src/botan/src/tests/test_utils.cpp:1286,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_utils.cpp:1289,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1293
      start: 1245
    functionDepth: 1
    functionLinenumber: 1245
    functionLinenumberEnd: 1293
    functionName: Botan_Tests::CPUID_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - has
    - Test::Result::test_failure
    - std::string::empty
    - auto::to_string
    - Botan::clear_cpuid_bit
    - BOTAN_UNUSED
    - auto::as_u32
    - Botan::CPUID::to_string
    - std::string::find
    - Test::Result::test_success
    - Test::Result::test_int_eq
    - static_cast<uint32_t>
    - Botan::CPUFeature
    - Botan::CPUID::initialize
    - static_cast<Botan::CPUID::Feature::Bit>
    - Botan::fmt
    - Botan::CPUFeature::from_string
    - Test::Result::test_eq
    - Test::Result::confirm
    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:1307,1
    - Dst: Botan_Tests::UUID_Tests::rng
      Src: /src/botan/src/tests/test_utils.cpp:1308,1
    - Dst: Botan_Tests::UUID_Tests::rng
      Src: /src/botan/src/tests/test_utils.cpp:1309,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:1310,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:1312,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:1312,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1314,1
    - Dst: Botan::UUID::is_valid
      Src: /src/botan/src/tests/test_utils.cpp:1314,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:1315,1
    - Dst: Botan_CLI::Print_UUID::Print_UUID
      Src: /src/botan/src/tests/test_utils.cpp:1315,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:1317,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1317,1
    - Dst: Test::Result::test_eq
      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_eq
      Src: /src/botan/src/tests/test_utils.cpp:1320,1
    - Dst: Botan::UUID::is_valid
      Src: /src/botan/src/tests/test_utils.cpp:1320,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:1322,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:1323,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1325,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1326,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1328,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:1329,1
    - Dst: Botan_CLI::Print_UUID::Print_UUID
      Src: /src/botan/src/tests/test_utils.cpp:1329,1
    - Dst: std::fill
      Src: /src/botan/src/tests/test_utils.cpp:1336,1
    - Dst: begin
      Src: /src/botan/src/tests/test_utils.cpp:1336,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils.cpp:1336,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1353,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1353,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1357,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1360
      start: 1304
    functionDepth: 1
    functionLinenumber: 1304
    functionLinenumberEnd: 1360
    functionName: Botan_Tests::UUID_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::UUID::UUID
    - Botan_CLI::Print_UUID::Print_UUID
    - Botan::UUID::to_string
    - std::fill
    - Test::Result::test_eq
    - std::vector<uint8_t>
    - Test::Result::confirm
    - Botan::UUID::is_valid
    - begin
    - end
    - Botan_Tests::UUID_Tests::rng
    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: 1333
      start: 1333
    functionDepth: 0
    functionLinenumber: 1333
    functionLinenumberEnd: 1333
    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:1336,1
    - Dst: std::span<uint8_t>::begin
      Src: /src/botan/src/tests/test_utils.cpp:1336,1
    - Dst: std::span<uint8_t>::end
      Src: /src/botan/src/tests/test_utils.cpp:1336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1335
    functionDepth: 0
    functionLinenumber: 1335
    functionLinenumberEnd: 1337
    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::span<uint8_t>::end
    - std::fill
    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: 1339
      start: 1339
    functionDepth: 0
    functionLinenumber: 1339
    functionLinenumberEnd: 1339
    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: 1341
      start: 1341
    functionDepth: 0
    functionLinenumber: 1341
    functionLinenumberEnd: 1341
    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: 1343
      start: 1343
    functionDepth: 0
    functionLinenumber: 1343
    functionLinenumberEnd: 1343
    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: 1345
      start: 1345
    functionDepth: 0
    functionLinenumber: 1345
    functionLinenumberEnd: 1345
    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_eq
      Src: /src/botan/src/tests/test_utils.cpp:1378,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1378,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1379,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1379,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1380,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1380,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1381,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1381,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1382,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1382,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1383,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1386
      start: 1369
    functionDepth: 1
    functionLinenumber: 1369
    functionLinenumberEnd: 1386
    functionName: Botan_Tests::Formatter_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_eq
    - Botan::fmt
    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:1395,1
    - Dst: Botan::scoped_cleanup::scoped_cleanup
      Src: /src/botan/src/tests/test_utils.cpp:1399,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils.cpp:1401,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:1404,1
    - Dst: Botan::scoped_cleanup::scoped_cleanup
      Src: /src/botan/src/tests/test_utils.cpp:1409,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils.cpp:1413,1
    - Dst: fn
      Src: /src/botan/src/tests/test_utils.cpp:1414,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils.cpp:1415,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils.cpp:1416,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:1419,1
    - Dst: Botan::scoped_cleanup::scoped_cleanup
      Src: /src/botan/src/tests/test_utils.cpp:1425,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/test_utils.cpp:1427,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils.cpp:1430,1
    - Dst: fn
      Src: /src/botan/src/tests/test_utils.cpp:1432,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils.cpp:1437,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils.cpp:1438,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils.cpp:1439,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:1442,1
    - Dst: Botan::scoped_cleanup::scoped_cleanup
      Src: /src/botan/src/tests/test_utils.cpp:1446,1
    - Dst: auto::disengage
      Src: /src/botan/src/tests/test_utils.cpp:1447,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils.cpp:1449,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1453
      start: 1393
    functionDepth: 1
    functionLinenumber: 1393
    functionLinenumberEnd: 1453
    functionName: Botan_Tests::ScopedCleanup_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - fn
    - std::runtime_error
    - CHECK
    - Botan::scoped_cleanup::scoped_cleanup
    - auto::disengage
    - confirm
    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:48,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_checked_add
      Src: /src/botan/src/tests/test_utils.cpp:48,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:49,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_checked_mul
      Src: /src/botan/src/tests/test_utils.cpp:49,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:50,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_checked_cast
      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_round_up
      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_loadstore
      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_loadstore_ambiguity
      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_fallback
      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_constexpr
      Src: /src/botan/src/tests/test_utils.cpp:55,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils.cpp:56,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_copy_out_be_le
      Src: /src/botan/src/tests/test_utils.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 57
    functionName: Botan_Tests::Utility_Function_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Utility_Function_Tests::test_copy_out_be_le
    - std::vector::push_back
    - Botan_Tests::Utility_Function_Tests::test_loadstore
    - Botan_Tests::Utility_Function_Tests::test_loadstore_ambiguity
    - Botan_Tests::Utility_Function_Tests::test_round_up
    - Botan::concat
    - Botan_Tests::Utility_Function_Tests::test_checked_mul
    - Botan_Tests::Utility_Function_Tests::test_checked_cast
    - Botan_Tests::Utility_Function_Tests::test_loadstore_fallback
    - Botan_Tests::Utility_Function_Tests::test_loadstore_constexpr
    - Botan_Tests::Utility_Function_Tests::test_checked_add
    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:63,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:67,1
    - Dst: Botan::checked_add<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:68,1
    - Dst: Botan::checked_add<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:69,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:71,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:74,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils.cpp:74,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:76,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils.cpp:76,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_utils.cpp:80,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:83,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:83,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:83,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:84,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:84,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:84,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:86,1
    - Dst: Botan::checked_add
      Src: /src/botan/src/tests/test_utils.cpp:88,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_utils.cpp:89,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils.cpp:89,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:91,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 96
    functionName: Botan_Tests::Utility_Function_Tests::test_checked_add
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 3
    functionsReached:
    - static_cast<uint32_t>
    - static_cast<size_t>
    - next_byte
    - auto::has_value
    - Test::Result::test_int_eq
    - auto::value
    - fuzzer_rng
    - Botan::checked_add
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::make_uint16
    - Botan::checked_add<size_t>
    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:101,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:104,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:104,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:104,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:105,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:105,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:105,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:107,1
    - Dst: Botan::checked_mul
      Src: /src/botan/src/tests/test_utils.cpp:109,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_utils.cpp:110,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils.cpp:110,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 117
    functionName: Botan_Tests::Utility_Function_Tests::test_checked_mul
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 3
    functionsReached:
    - static_cast<uint32_t>
    - next_byte
    - auto::value
    - fuzzer_rng
    - Botan::checked_mul
    - Test::Result::confirm
    - Botan::make_uint16
    - Test::Result::test_int_eq
    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:122,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:126,1
    - Dst: Botan::checked_cast_to<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:126,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:127,1
    - Dst: Botan::checked_cast_to<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:127,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_utils.cpp:129,1
    - Dst: Botan::checked_cast_to<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:129,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_utils.cpp:130,1
    - Dst: Botan::checked_cast_to<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:130,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_utils.cpp:131,1
    - Dst: Botan::checked_cast_to<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 134
    functionName: Botan_Tests::Utility_Function_Tests::test_checked_cast
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 3
    functionsReached:
    - Test::Result::test_throws
    - Botan::checked_cast_to<uint8_t>
    - static_cast<uint32_t>
    - Botan::checked_cast_to<uint16_t>
    - Botan::checked_cast_to<uint32_t>
    - Test::Result::test_int_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:154,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:156,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:157,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:158,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_utils.cpp:160,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:160,1
    - Dst: what
      Src: /src/botan/src/tests/test_utils.cpp:160,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:165,1
    - Dst: Botan::round_up
      Src: /src/botan/src/tests/test_utils.cpp:165,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 168
    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::round_up
    - Botan::fmt
    - static_cast<size_t>
    - Test::Result::test_failure
    - Test::Result::confirm
    - what
    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:187,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils.cpp:188,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:194,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_utils.cpp:194,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:195,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_utils.cpp:195,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:196,1
    - Dst: Botan::get_byte<2>
      Src: /src/botan/src/tests/test_utils.cpp:196,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:197,1
    - Dst: Botan::get_byte<3>
      Src: /src/botan/src/tests/test_utils.cpp:197,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:199,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:199,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:200,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_utils.cpp:200,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:202,1
    - Dst: Botan::load_be<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:202,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:203,1
    - Dst: Botan::load_be<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:203,1
    - Dst: Test::Result::test_is_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_is_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_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:207,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:207,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:208,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:208,1
    - Dst: Test::Result::test_is_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_is_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_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:212,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:212,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:213,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:213,1
    - Dst: Test::Result::test_is_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_is_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_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:217,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:217,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:218,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:218,1
    - Dst: Test::Result::test_is_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_is_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_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:222,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:222,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:223,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:223,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:225,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:225,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:226,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:226,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:229,1
    - Dst: Botan::load_be<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:229,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:230,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:230,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:232,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:232,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:233,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:233,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:235,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:235,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:236,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:236,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:237,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:237,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:244,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:245,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:246,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:248,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:249,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:250,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:252,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:253,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:254,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:255,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:256,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:258,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:259,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:260,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:261,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:262,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:264,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:265,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:266,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:267,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:268,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:269,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:270,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:271,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:272,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:274,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:275,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:276,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:277,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:278,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:279,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:280,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:281,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:282,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:290,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_utils.cpp:292,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:293,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:294,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:295,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:296,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:298,1
    - Dst: first
      Src: /src/botan/src/tests/test_utils.cpp:298,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:299,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:300,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:301,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:302,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:304,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:306,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:307,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:308,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:309,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:310,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_utils.cpp:312,1
    - Dst: first
      Src: /src/botan/src/tests/test_utils.cpp:312,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:313,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:314,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:315,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:316,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:322,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:323,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:325,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:326,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:326,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:328,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:329,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:330,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:331,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:331,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:336,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:337,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_be
      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: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:347,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:348,1
    - Dst: Botan::store_be<TestVectorSink>
      Src: /src/botan/src/tests/test_utils.cpp:349,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:350,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:351,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:351,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:352,1
    - Dst: TestVectorSink
      Src: /src/botan/src/tests/test_utils.cpp:352,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:352,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:353,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:354,1
    - Dst: Botan::store_le<TestVectorSink>
      Src: /src/botan/src/tests/test_utils.cpp:355,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:356,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:357,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:357,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:358,1
    - Dst: TestVectorSink
      Src: /src/botan/src/tests/test_utils.cpp:358,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:358,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:360,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_utils.cpp:360,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:360,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:361,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_utils.cpp:361,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:361,1
    - Dst: Test::Result::test_is_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_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:364,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:364,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:364,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:365,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:365,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:365,1
    - Dst: Test::Result::test_is_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_throws
      Src: /src/botan/src/tests/test_utils.cpp:372,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:373,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:373,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_be
      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:383,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:384,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_be
      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_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:395,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:395,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:395,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:396,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:396,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:396,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:399,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:399,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:399,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:400,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:400,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:400,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:403,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:404,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:405,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:406,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:408,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:409,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:410,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:411,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:414,1
    - Dst: Botan::load_be<std::array<uint16_t, 2>>
      Src: /src/botan/src/tests/test_utils.cpp:415,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:416,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:417,1
    - Dst: Botan::load_be<std::vector<uint16_t>>
      Src: /src/botan/src/tests/test_utils.cpp:418,1
    - Dst: Test::Result::test_eq_sz
      Src: /src/botan/src/tests/test_utils.cpp:419,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils.cpp:419,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:420,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:421,1
    - Dst: Botan::load_le<std::array<uint16_t, 2>>
      Src: /src/botan/src/tests/test_utils.cpp:423,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:424,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:425,1
    - Dst: Botan::load_le<Botan::secure_vector<uint16_t>>
      Src: /src/botan/src/tests/test_utils.cpp:426,1
    - Dst: Test::Result::test_eq_sz
      Src: /src/botan/src/tests/test_utils.cpp:427,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils.cpp:427,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:428,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:429,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:435,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:435,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:435,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:436,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:436,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:436,1
    - Dst: Test::Result::test_is_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:437,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:437,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:438,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:438,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:438,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:440,1
    - Dst: Botan::load_be<TestInt64>
      Src: /src/botan/src/tests/test_utils.cpp:440,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:440,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:441,1
    - Dst: Botan::load_le<TestInt64>
      Src: /src/botan/src/tests/test_utils.cpp:441,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:441,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:442,1
    - Dst: Botan::load_be<TestInt32>
      Src: /src/botan/src/tests/test_utils.cpp:442,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:442,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:443,1
    - Dst: Botan::load_le<TestInt32>
      Src: /src/botan/src/tests/test_utils.cpp:443,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:443,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:446,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:446,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:447,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:448,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:448,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:449,1
    - Dst: Botan::load_le<std::array<TestInt64, 2>>
      Src: /src/botan/src/tests/test_utils.cpp:452,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:452,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:453,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:454,1
    - Dst: Botan::load_be<std::vector<TestInt64>>
      Src: /src/botan/src/tests/test_utils.cpp:457,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:457,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:458,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:459,1
    - Dst: Botan::load_le<TestEnum64>
      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::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:463,1
    - Dst: Botan::load_be<TestEnum64>
      Src: /src/botan/src/tests/test_utils.cpp:464,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:464,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:465,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:466,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:466,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:467,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:468,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:468,1
    - Dst: Botan::load_le<TestEnum32>
      Src: /src/botan/src/tests/test_utils.cpp:471,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:471,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:472,1
    - Dst: Botan::load_be<TestEnum32>
      Src: /src/botan/src/tests/test_utils.cpp:473,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:473,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:474,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:475,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:475,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:475,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:476,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 195
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 479
    functionName: Botan_Tests::Utility_Function_Tests::test_loadstore
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 3
    functionsReached:
    - Botan::hex_decode
    - Test::Result::test_throws
    - Botan::load_le<TestInt32>
    - Botan::load_le<std::array<TestInt64, 2>>
    - Botan::get_byte<0>
    - Botan::store_le<std::vector<uint8_t>>
    - Botan::load_be<TestInt64>
    - Botan::get_byte<1>
    - Botan::store_le
    - auto::size
    - first
    - Botan::make_uint32
    - Botan::load_le<TestEnum64>
    - Test::Result::test_is_eq
    - std::vector::data
    - Botan::store_le<TestVectorSink>
    - Botan::load_be<TestEnum64>
    - Botan::load_be
    - TestVectorSink
    - Botan::load_le<std::array<uint16_t, 2>>
    - Botan::load_be<std::vector<uint16_t>>
    - Botan::load_be<TestEnum32>
    - Botan::load_be<std::vector<TestInt64>>
    - Botan::load_be<uint64_t>
    - Botan::load_le<Botan::secure_vector<uint16_t>>
    - Botan::load_be<TestInt32>
    - Test::Result::test_eq_sz
    - Botan::make_uint16
    - Botan::load_le<uint64_t>
    - Botan::load_le<TestEnum32>
    - Botan::store_be<TestVectorSink>
    - Botan::get_byte<3>
    - Botan::load_le<uint16_t>
    - Botan::load_be<uint32_t>
    - Botan::load_le<uint32_t>
    - Botan::load_be<uint16_t>
    - Botan::get_byte<2>
    - Botan::store_be
    - Botan::load_le<TestInt64>
    - Botan::load_be<std::array<uint16_t, 2>>
    - Botan::store_be<std::vector<uint8_t>>
    - Botan::load_le
    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:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::array<const uint8_t, sizeof(T)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 484
    functionName: Botan_Tests::Utility_Function_Tests::fb_load_be
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 2
    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:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::array<const uint8_t, sizeof(T)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 489
    functionName: Botan_Tests::Utility_Function_Tests::fb_load_le
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 2
    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:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - in
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 496
    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:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - in
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 503
    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:521,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:522,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:523,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:524,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:525,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:526,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:528,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:528,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:529,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:529,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:530,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:530,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:531,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:531,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:532,1
    - Dst: Botan::load_be<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:532,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:533,1
    - Dst: Botan::load_le<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 536
    functionName: Botan_Tests::Utility_Function_Tests::test_loadstore_ambiguity
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 3
    functionsReached:
    - Botan::load_le<uint64_t>
    - Test::Result::test_is_eq
    - Botan::load_be<uint64_t>
    - Botan::load_be<uint32_t>
    - Botan::load_le<uint32_t>
    - Botan::store_be
    - Botan::load_le<size_t>
    - Botan::store_le
    - Botan::load_be<size_t>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_loadstore_ambiguity()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:545,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/tests/test_utils.cpp:545,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:546,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/tests/test_utils.cpp:546,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:547,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/tests/test_utils.cpp:547,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:549,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_be
      Src: /src/botan/src/tests/test_utils.cpp:549,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:550,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_be
      Src: /src/botan/src/tests/test_utils.cpp:550,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:551,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_be
      Src: /src/botan/src/tests/test_utils.cpp:551,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:553,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_le
      Src: /src/botan/src/tests/test_utils.cpp:553,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:554,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_le
      Src: /src/botan/src/tests/test_utils.cpp:554,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:555,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_le
      Src: /src/botan/src/tests/test_utils.cpp:555,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:557,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_be
      Src: /src/botan/src/tests/test_utils.cpp:557,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:558,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_be
      Src: /src/botan/src/tests/test_utils.cpp:558,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:559,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_be
      Src: /src/botan/src/tests/test_utils.cpp:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 562
    functionName: Botan_Tests::Utility_Function_Tests::test_loadstore_fallback
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::Utility_Function_Tests::fb_store_le
    - Botan_Tests::Utility_Function_Tests::fb_load_le
    - Test::Result::test_is_eq
    - Botan_Tests::Utility_Function_Tests::fb_load_be
    - Botan_Tests::Utility_Function_Tests::fb_store_be
    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:578,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:579,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_utils.cpp:580,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:581,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_utils.cpp:584,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:585,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_utils.cpp:586,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:587,1
    - Dst: Botan::get_byte<2>
      Src: /src/botan/src/tests/test_utils.cpp:588,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:589,1
    - Dst: Botan::get_byte<3>
      Src: /src/botan/src/tests/test_utils.cpp:590,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:591,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_utils.cpp:594,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:595,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_utils.cpp:596,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:597,1
    - Dst: Botan::get_byte<2>
      Src: /src/botan/src/tests/test_utils.cpp:598,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:599,1
    - Dst: Botan::get_byte<3>
      Src: /src/botan/src/tests/test_utils.cpp:600,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:601,1
    - Dst: Botan::get_byte<4>
      Src: /src/botan/src/tests/test_utils.cpp:602,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:603,1
    - Dst: Botan::get_byte<5>
      Src: /src/botan/src/tests/test_utils.cpp:604,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:605,1
    - Dst: Botan::get_byte<6>
      Src: /src/botan/src/tests/test_utils.cpp:606,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:607,1
    - Dst: Botan::get_byte<7>
      Src: /src/botan/src/tests/test_utils.cpp:608,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:609,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:612,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:613,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_utils.cpp:614,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:615,1
    - Dst: Botan::make_uint64
      Src: /src/botan/src/tests/test_utils.cpp:616,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:617,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:620,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:621,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:622,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:623,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:624,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:625,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:627,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:628,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:629,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:630,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:631,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:632,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:636,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:638,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:639,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:642,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:643,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:644,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:645,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:648,1
    - Dst: Botan::store_le
      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: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:651,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:654,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:657,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:659,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:660,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:663,1
    - Dst: Botan::store_be
      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: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:666,1
    - Dst: Test::Result::test_is_eq
      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: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:671,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:672,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:675,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:678,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:679,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:680,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:681,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:682,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:683,1
    - Dst: Botan::load_be<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:685,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:686,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:687,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:688,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:689,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:690,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils.cpp:693,1
    - Dst: Botan::load_le<std::array<uint16_t, cex_mem.size() / 2>>
      Src: /src/botan/src/tests/test_utils.cpp:693,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:694,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::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:696,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils.cpp:697,1
    - Dst: Botan::load_le<std::array<uint64_t, cex_mem.size() / 8>>
      Src: /src/botan/src/tests/test_utils.cpp:697,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:698,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils.cpp:700,1
    - Dst: Botan::load_be<std::array<uint16_t, cex_mem.size() / 2>>
      Src: /src/botan/src/tests/test_utils.cpp:700,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:701,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils.cpp:702,1
    - Dst: Botan::load_be<std::array<uint32_t, cex_mem.size() / 4>>
      Src: /src/botan/src/tests/test_utils.cpp:702,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:703,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils.cpp:704,1
    - Dst: Botan::load_be<std::array<uint64_t, cex_mem.size() / 8>>
      Src: /src/botan/src/tests/test_utils.cpp:704,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 708
    functionName: Botan_Tests::Utility_Function_Tests::test_loadstore_constexpr
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 3
    functionsReached:
    - Botan::get_byte<0>
    - Botan::make_uint64
    - Botan::load_le<std::array<uint64_t, cex_mem.size() / 8>>
    - Botan::get_byte<1>
    - Botan::get_byte<5>
    - Botan::store_le
    - Botan::make_uint32
    - Test::Result::test_is_eq
    - Botan::load_be<std::array<uint64_t, cex_mem.size() / 8>>
    - std::array::size
    - Botan::load_be<std::array<uint16_t, cex_mem.size() / 2>>
    - Botan::get_byte<6>
    - Botan::get_byte<4>
    - Botan::load_be<uint64_t>
    - Botan::load_le<std::array<uint16_t, cex_mem.size() / 2>>
    - Botan::load_le<std::array<uint32_t, cex_mem.size() / 4>>
    - Botan::make_uint16
    - Botan::load_le<uint64_t>
    - Botan::get_byte<7>
    - Botan::get_byte<3>
    - Botan::load_le<uint16_t>
    - Botan::load_be<std::array<uint32_t, cex_mem.size() / 4>>
    - Botan::store_be
    - Botan::load_le<uint32_t>
    - Botan::load_be<uint16_t>
    - Botan::get_byte<2>
    - Botan::load_be<uint32_t>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_loadstore_constexpr()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:712,1
    - Dst: Botan::copy_out_be
      Src: /src/botan/src/tests/test_utils.cpp:716,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:717,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:717,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:720,1
    - Dst: Botan::copy_out_be
      Src: /src/botan/src/tests/test_utils.cpp:724,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:725,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:725,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:728,1
    - Dst: Botan::copy_out_le
      Src: /src/botan/src/tests/test_utils.cpp:732,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:733,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:733,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:736,1
    - Dst: Botan::copy_out_le
      Src: /src/botan/src/tests/test_utils.cpp:740,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:741,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:741,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:744,1
    - Dst: Botan::copy_out_be
      Src: /src/botan/src/tests/test_utils.cpp:748,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:749,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:749,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:752,1
    - Dst: Botan::copy_out_le
      Src: /src/botan/src/tests/test_utils.cpp:756,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:757,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:757,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:760,1
    - Dst: Botan::copy_out_be
      Src: /src/botan/src/tests/test_utils.cpp:764,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:765,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:765,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:768,1
    - Dst: Botan::copy_out_le
      Src: /src/botan/src/tests/test_utils.cpp:772,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:773,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 710
    functionDepth: 1
    functionLinenumber: 710
    functionLinenumberEnd: 776
    functionName: Botan_Tests::Utility_Function_Tests::test_copy_out_be_le
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 3
    functionsReached:
    - Botan::copy_out_be
    - Botan::hex_decode
    - Botan::copy_out_le
    - test_is_eq
    - CHECK
    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:786,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:786,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:787,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:787,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:788,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:788,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:789,1
    - Dst: Botan_Tests::BitOps_Tests::test_popcount
      Src: /src/botan/src/tests/test_utils.cpp:789,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:790,1
    - Dst: Botan_Tests::BitOps_Tests::test_reverse_bits
      Src: /src/botan/src/tests/test_utils.cpp:790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 783
    functionDepth: 4
    functionLinenumber: 783
    functionLinenumberEnd: 793
    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_sig_bytes
    - Botan_Tests::BitOps_Tests::test_popcount
    - 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: test_eq
      Src: /src/botan/src/tests/test_utils.cpp:798,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_utils.cpp:798,1
    - Dst: Botan::ctz<T>
      Src: /src/botan/src/tests/test_utils.cpp:798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' result'
    - val
    - expected
    argTypes:
    - Test::Result
    - T
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 797
    functionDepth: 0
    functionLinenumber: 797
    functionLinenumberEnd: 799
    functionName: Botan_Tests::BitOps_Tests::test_ctz
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 5
    functionsReached:
    - Botan::ctz<T>
    - test_eq
    - std::to_string
    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:803,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:804,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:805,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:806,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:807,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 811
    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: test_eq
      Src: /src/botan/src/tests/test_utils.cpp:815,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_utils.cpp:815,1
    - Dst: Botan::significant_bytes<T>
      Src: /src/botan/src/tests/test_utils.cpp:815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' result'
    - val
    - expected
    argTypes:
    - Test::Result
    - T
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 814
    functionDepth: 0
    functionLinenumber: 814
    functionLinenumberEnd: 816
    functionName: Botan_Tests::BitOps_Tests::test_sig_bytes
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 5
    functionsReached:
    - test_eq
    - Botan::significant_bytes<T>
    - std::to_string
    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:820,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:821,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:822,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:823,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:824,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:825,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:826,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:827,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:829,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:830,1
    - 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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 818
    functionDepth: 1
    functionLinenumber: 818
    functionLinenumberEnd: 837
    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_eq
      Src: /src/botan/src/tests/test_utils.cpp:841,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_utils.cpp:841,1
    - Dst: Botan::is_power_of_2<T>
      Src: /src/botan/src/tests/test_utils.cpp:841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' result'
    - val
    - expected
    argTypes:
    - Test::Result
    - T
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 840
    functionDepth: 0
    functionLinenumber: 840
    functionLinenumberEnd: 842
    functionName: Botan_Tests::BitOps_Tests::test_power_of_2
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 6
    functionsReached:
    - test_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:847,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:848,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:849,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:850,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:851,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:852,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:853,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:855,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:856,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:857,1
    - 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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 844
    functionDepth: 1
    functionLinenumber: 844
    functionLinenumberEnd: 865
    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:868,1
    - Dst: Botan::ct_popcount
      Src: /src/botan/src/tests/test_utils.cpp:869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 868
    functionDepth: 1
    functionLinenumber: 868
    functionLinenumberEnd: 870
    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:874,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_utils.cpp:874,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:875,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:875,1
    - Dst: std::popcount
      Src: /src/botan/src/tests/test_utils.cpp:875,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:875,1
    - Dst: std::popcount
      Src: /src/botan/src/tests/test_utils.cpp:875,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 873
    functionDepth: 2
    functionLinenumber: 873
    functionLinenumberEnd: 876
    functionName: Botan_Tests::BitOps_Tests::random_pc
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 2
    functionsReached:
    - Botan::fmt
    - std::popcount
    - fuzzer_rng
    - Botan::load_le<T>
    - Botan_Tests::BitOps_Tests::pc
    - test_is_eq
    linkageType: ''
    returnType: auto
    signature: auto random_pc(Test::Result& result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:881,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:881,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:882,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:882,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:883,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:883,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:884,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:884,1
    - Dst: Test::Result::test_is_eq
      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: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:887,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:887,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:888,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:888,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:889,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:889,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:891,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:891,1
    - Dst: Test::Result::test_is_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_is_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_is_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_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:896,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:896,1
    - Dst: Test::Result::test_is_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_is_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_is_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: Botan_Tests::BitOps_Tests::random_pc
      Src: /src/botan/src/tests/test_utils.cpp:901,1
    - Dst: Botan_Tests::BitOps_Tests::random_pc
      Src: /src/botan/src/tests/test_utils.cpp:902,1
    - Dst: Botan_Tests::BitOps_Tests::random_pc
      Src: /src/botan/src/tests/test_utils.cpp:903,1
    - Dst: Botan_Tests::BitOps_Tests::random_pc
      Src: /src/botan/src/tests/test_utils.cpp:904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 878
    functionDepth: 3
    functionLinenumber: 878
    functionLinenumberEnd: 907
    functionName: Botan_Tests::BitOps_Tests::test_popcount
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::BitOps_Tests::random_pc
    - Botan_Tests::BitOps_Tests::pc
    - Test::Result::test_is_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_popcount()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:912,1
    - Dst: Botan::ct_reverse_bits<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:912,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:913,1
    - Dst: Botan::ct_reverse_bits<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:913,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:914,1
    - Dst: Botan::ct_reverse_bits<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:914,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:916,1
    - Dst: Botan::ct_reverse_bits<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:917,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:918,1
    - Dst: Botan::ct_reverse_bits<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:919,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:920,1
    - Dst: Botan::ct_reverse_bits<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:921,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:923,1
    - Dst: Botan::ct_reverse_bits<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:923,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:924,1
    - Dst: Botan::ct_reverse_bits<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:924,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:925,1
    - Dst: Botan::ct_reverse_bits<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:925,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:927,1
    - Dst: Botan::ct_reverse_bits<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:928,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:929,1
    - Dst: Botan::ct_reverse_bits<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:930,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:931,1
    - Dst: Botan::ct_reverse_bits<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 909
    functionDepth: 0
    functionLinenumber: 909
    functionLinenumberEnd: 935
    functionName: Botan_Tests::BitOps_Tests::test_reverse_bits
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 3
    functionsReached:
    - Botan::ct_reverse_bits<uint32_t>
    - Botan::ct_reverse_bits<uint16_t>
    - Test::Result::test_is_eq
    - Botan::ct_reverse_bits<uint64_t>
    - Botan::ct_reverse_bits<uint8_t>
    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: 944
      start: 944
    functionDepth: 0
    functionLinenumber: 944
    functionLinenumberEnd: 944
    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:948,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_utils.cpp:949,1
    - Dst: Botan::poly_double_n
      Src: /src/botan/src/tests/test_utils.cpp:952,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils.cpp:952,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:952,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:954,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 946
    functionDepth: 1
    functionLinenumber: 946
    functionLinenumberEnd: 956
    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_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::confirm
      Src: /src/botan/src/tests/test_utils.cpp:968,1
    - Dst: Botan::version_datestamp
      Src: /src/botan/src/tests/test_utils.cpp:968,1
    - Dst: Botan::version_cstr
      Src: /src/botan/src/tests/test_utils.cpp:970,1
    - Dst: Botan::version_string
      Src: /src/botan/src/tests/test_utils.cpp:971,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:972,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_utils.cpp:972,1
    - Dst: Botan::short_version_cstr
      Src: /src/botan/src/tests/test_utils.cpp:974,1
    - Dst: Botan::short_version_string
      Src: /src/botan/src/tests/test_utils.cpp:975,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:976,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_utils.cpp:976,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:979,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:982,1
    - Dst: std::string::starts_with
      Src: /src/botan/src/tests/test_utils.cpp:982,1
    - Dst: Botan::runtime_version_check
      Src: /src/botan/src/tests/test_utils.cpp:985,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:987,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_utils.cpp:987,1
    - Dst: Botan::runtime_version_check
      Src: /src/botan/src/tests/test_utils.cpp:989,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:994,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 965
    functionDepth: 1
    functionLinenumber: 965
    functionLinenumberEnd: 997
    functionName: Botan_Tests::Version_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::runtime_version_check
    - std::string
    - Botan::version_string
    - std::string::empty
    - std::string::starts_with
    - Test::Result::test_eq
    - Botan::short_version_cstr
    - Test::Result::confirm
    - Botan::version_cstr
    - Botan::version_datestamp
    - Botan::short_version_string
    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: 1004
      start: 1004
    functionDepth: 0
    functionLinenumber: 1004
    functionLinenumberEnd: 1004
    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:1007,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:1008,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_utils.cpp:1009,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_utils.cpp:1013,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:1013,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:1015,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/tests/test_utils.cpp:1015,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1006
    functionDepth: 1
    functionLinenumber: 1006
    functionLinenumberEnd: 1018
    functionName: Botan_Tests::Date_Format_Tests::parse_date
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 2
    functionsReached:
    - std::vector::push_back
    - Test_Error
    - Botan::split_on
    - Botan::to_u32bit
    - std::vector::size
    - std::vector::reserve
    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:1021,1
    - Dst: Botan_Tests::Date_Format_Tests::parse_date
      Src: /src/botan/src/tests/test_utils.cpp:1024,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1028,1
    - Dst: Botan::calendar_point::year
      Src: /src/botan/src/tests/test_utils.cpp:1028,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1029,1
    - Dst: Botan::calendar_point::month
      Src: /src/botan/src/tests/test_utils.cpp:1029,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1030,1
    - Dst: Botan::calendar_point::day
      Src: /src/botan/src/tests/test_utils.cpp:1030,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1031,1
    - Dst: Botan::calendar_point::hour
      Src: /src/botan/src/tests/test_utils.cpp:1031,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1032,1
    - Dst: Botan::calendar_point::minutes
      Src: /src/botan/src/tests/test_utils.cpp:1032,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1033,1
    - Dst: Botan::calendar_point::seconds
      Src: /src/botan/src/tests/test_utils.cpp:1033,1
    - Dst: Botan::calendar_point::year
      Src: /src/botan/src/tests/test_utils.cpp:1036,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:1037,1
    - Dst: Botan::calendar_point::to_std_timepoint
      Src: /src/botan/src/tests/test_utils.cpp:1037,1
    - Dst: Botan::calendar_point::to_std_timepoint
      Src: /src/botan/src/tests/test_utils.cpp:1039,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1040,1
    - Dst: Botan::calendar_point::year
      Src: /src/botan/src/tests/test_utils.cpp:1040,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1041,1
    - Dst: Botan::calendar_point::month
      Src: /src/botan/src/tests/test_utils.cpp:1041,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1042,1
    - Dst: Botan::calendar_point::day
      Src: /src/botan/src/tests/test_utils.cpp:1042,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1043,1
    - Dst: Botan::calendar_point::hour
      Src: /src/botan/src/tests/test_utils.cpp:1043,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1044,1
    - Dst: Botan::calendar_point::minutes
      Src: /src/botan/src/tests/test_utils.cpp:1044,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1045,1
    - Dst: Botan::calendar_point::seconds
      Src: /src/botan/src/tests/test_utils.cpp:1045,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:1048,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_utils.cpp:1050,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1020
    functionDepth: 2
    functionLinenumber: 1020
    functionLinenumberEnd: 1054
    functionName: Botan_Tests::Date_Format_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::calendar_point::month
    - Botan::calendar_point::day
    - Botan::calendar_point::year
    - Test::Result::test_throws
    - Test_Error
    - Test::Result::test_is_eq
    - Botan::calendar_point::minutes
    - Botan::calendar_point::to_std_timepoint
    - Botan::calendar_point::seconds
    - Botan_Tests::Date_Format_Tests::parse_date
    - Botan::calendar_point::hour
    - get_req_str
    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_eq
      Src: /src/botan/src/tests/test_utils.cpp:1060,1
    - Dst: Botan::calendar_point::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1060,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1056
    functionDepth: 1
    functionLinenumber: 1056
    functionLinenumberEnd: 1062
    functionName: Botan_Tests::Date_Format_Tests::run_final_tests
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_eq
    - Botan::calendar_point::to_string
    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: 1069
      start: 1069
    functionDepth: 0
    functionLinenumber: 1069
    functionLinenumberEnd: 1069
    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:1074,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_utils.cpp:1075,1
    - Dst: Botan::ucs2_to_utf8
      Src: /src/botan/src/tests/test_utils.cpp:1080,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils.cpp:1080,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:1080,1
    - Dst: Botan::ucs4_to_utf8
      Src: /src/botan/src/tests/test_utils.cpp:1082,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils.cpp:1082,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:1082,1
    - Dst: Botan::latin1_to_utf8
      Src: /src/botan/src/tests/test_utils.cpp:1084,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils.cpp:1084,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:1084,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_utils.cpp:1086,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1089,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:1090,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/test_utils.cpp:1090,1
    - Dst: std::string::end
      Src: /src/botan/src/tests/test_utils.cpp:1090,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1071
    functionDepth: 1
    functionLinenumber: 1071
    functionLinenumberEnd: 1093
    functionName: Botan_Tests::Charset_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::latin1_to_utf8
    - Test_Error
    - std::string::begin
    - Botan::ucs4_to_utf8
    - std::vector::data
    - Botan::ucs2_to_utf8
    - Test::Result::test_eq
    - std::string::end
    - std::vector<uint8_t>
    - 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: 1100
      start: 1100
    functionDepth: 0
    functionLinenumber: 1100
    functionLinenumberEnd: 1100
    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:1105,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_utils.cpp:1106,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1110,1
    - Dst: Botan::host_wildcard_match
      Src: /src/botan/src/tests/test_utils.cpp:1110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1102
    functionDepth: 1
    functionLinenumber: 1102
    functionLinenumberEnd: 1113
    functionName: Botan_Tests::Hostname_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_eq
    - get_req_str
    - 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: 1120
      start: 1120
    functionDepth: 0
    functionLinenumber: 1120
    functionLinenumberEnd: 1120
    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:1125,1
    - Dst: Botan::check_and_canonicalize_dns_name
      Src: /src/botan/src/tests/test_utils.cpp:1129,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_utils.cpp:1130,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_utils.cpp:1133,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_utils.cpp:1135,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_utils.cpp:1139,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_utils.cpp:1141,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1122
    functionDepth: 1
    functionLinenumber: 1122
    functionLinenumberEnd: 1146
    functionName: Botan_Tests::DNS_Check_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::check_and_canonicalize_dns_name
    - Test::Result::test_failure
    - BOTAN_UNUSED
    - Test::Result::test_success
    - get_req_str
    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: 1153
      start: 1153
    functionDepth: 0
    functionLinenumber: 1153
    functionLinenumberEnd: 1153
    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:1158,1
    - Dst: Botan::string_to_ipv4
      Src: /src/botan/src/tests/test_utils.cpp:1161,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1163,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils.cpp:1163,1
    - Dst: Botan::ipv4_to_string
      Src: /src/botan/src/tests/test_utils.cpp:1166,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils.cpp:1166,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' status'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1155
    functionDepth: 1
    functionLinenumber: 1155
    functionLinenumberEnd: 1171
    functionName: Botan_Tests::IPv4_Parsing_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::string_to_ipv4
    - auto::has_value
    - Botan::ipv4_to_string
    - auto::value
    - Test::Result::test_eq
    - get_req_str
    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: 1178
      start: 1178
    functionDepth: 0
    functionLinenumber: 1178
    functionLinenumberEnd: 1178
    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:1185,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_utils.cpp:1186,1
    - Dst: Botan_Tests::ReadKV_Tests::confirm_kv
      Src: /src/botan/src/tests/test_utils.cpp:1189,1
    - Dst: Botan::read_kv
      Src: /src/botan/src/tests/test_utils.cpp:1189,1
    - Dst: Botan_Tests::ReadKV_Tests::split_group
      Src: /src/botan/src/tests/test_utils.cpp:1189,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:1192,1
    - Dst: Botan::read_kv
      Src: /src/botan/src/tests/test_utils.cpp:1192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ' status'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1180
    functionDepth: 2
    functionLinenumber: 1180
    functionLinenumberEnd: 1195
    functionName: Botan_Tests::ReadKV_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::read_kv
    - Botan_Tests::ReadKV_Tests::confirm_kv
    - Botan_Tests::ReadKV_Tests::split_group
    - get_req_str
    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:1200,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:1207,1
    - Dst: std::string::clear
      Src: /src/botan/src/tests/test_utils.cpp:1208,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_utils.cpp:1214,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:1215,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1219
      start: 1198
    functionDepth: 1
    functionLinenumber: 1198
    functionLinenumberEnd: 1219
    functionName: Botan_Tests::ReadKV_Tests::split_group
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 3
    functionsReached:
    - std::string::empty
    - empty
    - std::vector::push_back
    - std::string::clear
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> split_group(const std::string& str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1224,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils.cpp:1224,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils.cpp:1228,1
    - Dst: find
      Src: /src/botan/src/tests/test_utils.cpp:1229,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils.cpp:1230,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils.cpp:1230,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1231,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1235,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils.cpp:1235,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils.cpp:1235,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: 1236
      start: 1221
    functionDepth: 0
    functionLinenumber: 1221
    functionLinenumberEnd: 1236
    functionName: Botan_Tests::ReadKV_Tests::confirm_kv
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 3
    functionsReached:
    - test_eq
    - size
    - end
    - find
    - confirm
    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:1248,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_utils.cpp:1249,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:1253,1
    - Dst: Botan::CPUFeature
      Src: /src/botan/src/tests/test_utils.cpp:1255,1
    - Dst: static_cast<Botan::CPUID::Feature::Bit>
      Src: /src/botan/src/tests/test_utils.cpp:1255,1
    - Dst: auto::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1257,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:1259,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_utils.cpp:1259,1
    - Dst: Botan::CPUFeature::from_string
      Src: /src/botan/src/tests/test_utils.cpp:1261,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_utils.cpp:1262,1
    - Dst: auto::as_u32
      Src: /src/botan/src/tests/test_utils.cpp:1262,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_utils.cpp:1264,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1265,1
    - Dst: has
      Src: /src/botan/src/tests/test_utils.cpp:1276,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:1277,1
    - Dst: std::string::find
      Src: /src/botan/src/tests/test_utils.cpp:1277,1
    - Dst: Botan::clear_cpuid_bit
      Src: /src/botan/src/tests/test_utils.cpp:1279,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1281,1
    - Dst: has
      Src: /src/botan/src/tests/test_utils.cpp:1282,1
    - Dst: Botan::CPUID::initialize
      Src: /src/botan/src/tests/test_utils.cpp:1284,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1285,1
    - Dst: has
      Src: /src/botan/src/tests/test_utils.cpp:1286,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_utils.cpp:1289,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1293
      start: 1245
    functionDepth: 1
    functionLinenumber: 1245
    functionLinenumberEnd: 1293
    functionName: Botan_Tests::CPUID_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - has
    - Test::Result::test_failure
    - std::string::empty
    - auto::to_string
    - Botan::clear_cpuid_bit
    - BOTAN_UNUSED
    - auto::as_u32
    - Botan::CPUID::to_string
    - std::string::find
    - Test::Result::test_success
    - Test::Result::test_int_eq
    - static_cast<uint32_t>
    - Botan::CPUFeature
    - Botan::CPUID::initialize
    - static_cast<Botan::CPUID::Feature::Bit>
    - Botan::fmt
    - Botan::CPUFeature::from_string
    - Test::Result::test_eq
    - Test::Result::confirm
    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:1307,1
    - Dst: Botan_Tests::UUID_Tests::rng
      Src: /src/botan/src/tests/test_utils.cpp:1308,1
    - Dst: Botan_Tests::UUID_Tests::rng
      Src: /src/botan/src/tests/test_utils.cpp:1309,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:1310,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:1312,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:1312,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1314,1
    - Dst: Botan::UUID::is_valid
      Src: /src/botan/src/tests/test_utils.cpp:1314,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:1315,1
    - Dst: Botan_CLI::Print_UUID::Print_UUID
      Src: /src/botan/src/tests/test_utils.cpp:1315,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:1317,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1317,1
    - Dst: Test::Result::test_eq
      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_eq
      Src: /src/botan/src/tests/test_utils.cpp:1320,1
    - Dst: Botan::UUID::is_valid
      Src: /src/botan/src/tests/test_utils.cpp:1320,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:1322,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:1323,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1325,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1326,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1328,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:1329,1
    - Dst: Botan_CLI::Print_UUID::Print_UUID
      Src: /src/botan/src/tests/test_utils.cpp:1329,1
    - Dst: std::fill
      Src: /src/botan/src/tests/test_utils.cpp:1336,1
    - Dst: begin
      Src: /src/botan/src/tests/test_utils.cpp:1336,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils.cpp:1336,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1353,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1353,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1357,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1360
      start: 1304
    functionDepth: 1
    functionLinenumber: 1304
    functionLinenumberEnd: 1360
    functionName: Botan_Tests::UUID_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::UUID::UUID
    - Botan_CLI::Print_UUID::Print_UUID
    - Botan::UUID::to_string
    - std::fill
    - Test::Result::test_eq
    - std::vector<uint8_t>
    - Test::Result::confirm
    - Botan::UUID::is_valid
    - begin
    - end
    - Botan_Tests::UUID_Tests::rng
    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: 1333
      start: 1333
    functionDepth: 0
    functionLinenumber: 1333
    functionLinenumberEnd: 1333
    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:1336,1
    - Dst: std::span<uint8_t>::begin
      Src: /src/botan/src/tests/test_utils.cpp:1336,1
    - Dst: std::span<uint8_t>::end
      Src: /src/botan/src/tests/test_utils.cpp:1336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1335
    functionDepth: 0
    functionLinenumber: 1335
    functionLinenumberEnd: 1337
    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::span<uint8_t>::end
    - std::fill
    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: 1339
      start: 1339
    functionDepth: 0
    functionLinenumber: 1339
    functionLinenumberEnd: 1339
    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: 1341
      start: 1341
    functionDepth: 0
    functionLinenumber: 1341
    functionLinenumberEnd: 1341
    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: 1343
      start: 1343
    functionDepth: 0
    functionLinenumber: 1343
    functionLinenumberEnd: 1343
    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: 1345
      start: 1345
    functionDepth: 0
    functionLinenumber: 1345
    functionLinenumberEnd: 1345
    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_eq
      Src: /src/botan/src/tests/test_utils.cpp:1378,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1378,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1379,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1379,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1380,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1380,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1381,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1381,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1382,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1382,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1383,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1386
      start: 1369
    functionDepth: 1
    functionLinenumber: 1369
    functionLinenumberEnd: 1386
    functionName: Botan_Tests::Formatter_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_eq
    - Botan::fmt
    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:1395,1
    - Dst: Botan::scoped_cleanup::scoped_cleanup
      Src: /src/botan/src/tests/test_utils.cpp:1399,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils.cpp:1401,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:1404,1
    - Dst: Botan::scoped_cleanup::scoped_cleanup
      Src: /src/botan/src/tests/test_utils.cpp:1409,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils.cpp:1413,1
    - Dst: fn
      Src: /src/botan/src/tests/test_utils.cpp:1414,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils.cpp:1415,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils.cpp:1416,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:1419,1
    - Dst: Botan::scoped_cleanup::scoped_cleanup
      Src: /src/botan/src/tests/test_utils.cpp:1425,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/test_utils.cpp:1427,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils.cpp:1430,1
    - Dst: fn
      Src: /src/botan/src/tests/test_utils.cpp:1432,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils.cpp:1437,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils.cpp:1438,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils.cpp:1439,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:1442,1
    - Dst: Botan::scoped_cleanup::scoped_cleanup
      Src: /src/botan/src/tests/test_utils.cpp:1446,1
    - Dst: auto::disengage
      Src: /src/botan/src/tests/test_utils.cpp:1447,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils.cpp:1449,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1453
      start: 1393
    functionDepth: 1
    functionLinenumber: 1393
    functionLinenumberEnd: 1453
    functionName: Botan_Tests::ScopedCleanup_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - fn
    - std::runtime_error
    - CHECK
    - Botan::scoped_cleanup::scoped_cleanup
    - auto::disengage
    - confirm
    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:48,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_checked_add
      Src: /src/botan/src/tests/test_utils.cpp:48,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:49,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_checked_mul
      Src: /src/botan/src/tests/test_utils.cpp:49,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:50,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_checked_cast
      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_round_up
      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_loadstore
      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_loadstore_ambiguity
      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_fallback
      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_constexpr
      Src: /src/botan/src/tests/test_utils.cpp:55,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils.cpp:56,1
    - Dst: Botan_Tests::Utility_Function_Tests::test_copy_out_be_le
      Src: /src/botan/src/tests/test_utils.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 45
    functionDepth: 3
    functionLinenumber: 45
    functionLinenumberEnd: 57
    functionName: Botan_Tests::Utility_Function_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Utility_Function_Tests::test_copy_out_be_le
    - std::vector::push_back
    - Botan_Tests::Utility_Function_Tests::test_loadstore
    - Botan_Tests::Utility_Function_Tests::test_loadstore_ambiguity
    - Botan_Tests::Utility_Function_Tests::test_round_up
    - Botan::concat
    - Botan_Tests::Utility_Function_Tests::test_checked_mul
    - Botan_Tests::Utility_Function_Tests::test_checked_cast
    - Botan_Tests::Utility_Function_Tests::test_loadstore_fallback
    - Botan_Tests::Utility_Function_Tests::test_loadstore_constexpr
    - Botan_Tests::Utility_Function_Tests::test_checked_add
    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:63,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:67,1
    - Dst: Botan::checked_add<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:68,1
    - Dst: Botan::checked_add<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:69,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:71,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:74,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils.cpp:74,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:76,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils.cpp:76,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_utils.cpp:80,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:83,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:83,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:83,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:84,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:84,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:84,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:86,1
    - Dst: Botan::checked_add
      Src: /src/botan/src/tests/test_utils.cpp:88,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_utils.cpp:89,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils.cpp:89,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:91,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 96
    functionName: Botan_Tests::Utility_Function_Tests::test_checked_add
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 4
    functionsReached:
    - static_cast<uint32_t>
    - static_cast<size_t>
    - next_byte
    - auto::has_value
    - Test::Result::test_int_eq
    - auto::value
    - fuzzer_rng
    - Botan::checked_add
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::make_uint16
    - Botan::checked_add<size_t>
    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:101,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:104,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:104,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:104,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:105,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:105,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils.cpp:105,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:107,1
    - Dst: Botan::checked_mul
      Src: /src/botan/src/tests/test_utils.cpp:109,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_utils.cpp:110,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils.cpp:110,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 117
    functionName: Botan_Tests::Utility_Function_Tests::test_checked_mul
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 4
    functionsReached:
    - static_cast<uint32_t>
    - next_byte
    - auto::value
    - fuzzer_rng
    - Botan::checked_mul
    - Test::Result::confirm
    - Botan::make_uint16
    - Test::Result::test_int_eq
    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:122,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:126,1
    - Dst: Botan::checked_cast_to<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:126,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:127,1
    - Dst: Botan::checked_cast_to<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:127,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_utils.cpp:129,1
    - Dst: Botan::checked_cast_to<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:129,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_utils.cpp:130,1
    - Dst: Botan::checked_cast_to<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:130,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_utils.cpp:131,1
    - Dst: Botan::checked_cast_to<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 134
    functionName: Botan_Tests::Utility_Function_Tests::test_checked_cast
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 4
    functionsReached:
    - Test::Result::test_throws
    - Botan::checked_cast_to<uint8_t>
    - static_cast<uint32_t>
    - Botan::checked_cast_to<uint16_t>
    - Botan::checked_cast_to<uint32_t>
    - Test::Result::test_int_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:154,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:156,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:157,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:158,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_utils.cpp:160,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:160,1
    - Dst: what
      Src: /src/botan/src/tests/test_utils.cpp:160,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:165,1
    - Dst: Botan::round_up
      Src: /src/botan/src/tests/test_utils.cpp:165,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:165,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 168
    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::round_up
    - Botan::fmt
    - static_cast<size_t>
    - Test::Result::test_failure
    - Test::Result::confirm
    - what
    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:187,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils.cpp:188,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:194,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_utils.cpp:194,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:195,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_utils.cpp:195,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:196,1
    - Dst: Botan::get_byte<2>
      Src: /src/botan/src/tests/test_utils.cpp:196,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:197,1
    - Dst: Botan::get_byte<3>
      Src: /src/botan/src/tests/test_utils.cpp:197,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:199,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:199,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:200,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_utils.cpp:200,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:202,1
    - Dst: Botan::load_be<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:202,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:203,1
    - Dst: Botan::load_be<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:203,1
    - Dst: Test::Result::test_is_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_is_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_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:207,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:207,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:208,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:208,1
    - Dst: Test::Result::test_is_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_is_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_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:212,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:212,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:213,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:213,1
    - Dst: Test::Result::test_is_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_is_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_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:217,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:217,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:218,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:218,1
    - Dst: Test::Result::test_is_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_is_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_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:222,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:222,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:223,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:223,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:225,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:225,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:226,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:226,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:229,1
    - Dst: Botan::load_be<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:229,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:230,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:230,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:232,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:232,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:233,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:233,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:235,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:235,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:236,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:236,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:237,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:237,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:244,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:245,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:246,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:248,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:249,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:250,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:252,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:253,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:254,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:255,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:256,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:258,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:259,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:260,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:261,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:262,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:264,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:265,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:266,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:267,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:268,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:269,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:270,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:271,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:272,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:274,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:275,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:276,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:277,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:278,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:279,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:280,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:281,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:282,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:290,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_utils.cpp:292,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:293,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:294,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:295,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:296,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:298,1
    - Dst: first
      Src: /src/botan/src/tests/test_utils.cpp:298,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:299,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:300,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:301,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:302,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:304,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:306,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:307,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:308,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:309,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:310,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_utils.cpp:312,1
    - Dst: first
      Src: /src/botan/src/tests/test_utils.cpp:312,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:313,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:314,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:315,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:316,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:322,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:323,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:325,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:326,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:326,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:328,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:329,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:330,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:331,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:331,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:336,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:337,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_be
      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: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:347,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:348,1
    - Dst: Botan::store_be<TestVectorSink>
      Src: /src/botan/src/tests/test_utils.cpp:349,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:350,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:351,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:351,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:352,1
    - Dst: TestVectorSink
      Src: /src/botan/src/tests/test_utils.cpp:352,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:352,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:353,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:354,1
    - Dst: Botan::store_le<TestVectorSink>
      Src: /src/botan/src/tests/test_utils.cpp:355,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:356,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:357,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:357,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:358,1
    - Dst: TestVectorSink
      Src: /src/botan/src/tests/test_utils.cpp:358,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:358,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:360,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_utils.cpp:360,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:360,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:361,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_utils.cpp:361,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:361,1
    - Dst: Test::Result::test_is_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_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:364,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:364,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:364,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:365,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:365,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:365,1
    - Dst: Test::Result::test_is_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_throws
      Src: /src/botan/src/tests/test_utils.cpp:372,1
    - Dst: Botan::load_le
      Src: /src/botan/src/tests/test_utils.cpp:373,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:373,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_be
      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:383,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:384,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_be
      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_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:395,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:395,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:395,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:396,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:396,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:396,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:399,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:399,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:399,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:400,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:400,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:400,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:403,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:404,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:405,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:406,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:408,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:409,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:410,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:411,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:414,1
    - Dst: Botan::load_be<std::array<uint16_t, 2>>
      Src: /src/botan/src/tests/test_utils.cpp:415,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:416,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:417,1
    - Dst: Botan::load_be<std::vector<uint16_t>>
      Src: /src/botan/src/tests/test_utils.cpp:418,1
    - Dst: Test::Result::test_eq_sz
      Src: /src/botan/src/tests/test_utils.cpp:419,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils.cpp:419,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:420,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:421,1
    - Dst: Botan::load_le<std::array<uint16_t, 2>>
      Src: /src/botan/src/tests/test_utils.cpp:423,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:424,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:425,1
    - Dst: Botan::load_le<Botan::secure_vector<uint16_t>>
      Src: /src/botan/src/tests/test_utils.cpp:426,1
    - Dst: Test::Result::test_eq_sz
      Src: /src/botan/src/tests/test_utils.cpp:427,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils.cpp:427,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:428,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:429,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:435,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:435,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:435,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:436,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:436,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:436,1
    - Dst: Test::Result::test_is_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:437,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:437,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:438,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:438,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:438,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:440,1
    - Dst: Botan::load_be<TestInt64>
      Src: /src/botan/src/tests/test_utils.cpp:440,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:440,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:441,1
    - Dst: Botan::load_le<TestInt64>
      Src: /src/botan/src/tests/test_utils.cpp:441,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:441,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:442,1
    - Dst: Botan::load_be<TestInt32>
      Src: /src/botan/src/tests/test_utils.cpp:442,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:442,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:443,1
    - Dst: Botan::load_le<TestInt32>
      Src: /src/botan/src/tests/test_utils.cpp:443,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:443,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:446,1
    - Dst: Botan::store_be<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:446,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:447,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:448,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:448,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:449,1
    - Dst: Botan::load_le<std::array<TestInt64, 2>>
      Src: /src/botan/src/tests/test_utils.cpp:452,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:452,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:453,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:454,1
    - Dst: Botan::load_be<std::vector<TestInt64>>
      Src: /src/botan/src/tests/test_utils.cpp:457,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:457,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:458,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:459,1
    - Dst: Botan::load_le<TestEnum64>
      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::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:463,1
    - Dst: Botan::load_be<TestEnum64>
      Src: /src/botan/src/tests/test_utils.cpp:464,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:464,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:465,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:466,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:466,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:467,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:468,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:468,1
    - Dst: Botan::load_le<TestEnum32>
      Src: /src/botan/src/tests/test_utils.cpp:471,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:471,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:472,1
    - Dst: Botan::load_be<TestEnum32>
      Src: /src/botan/src/tests/test_utils.cpp:473,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:473,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:474,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:475,1
    - Dst: Botan::store_le<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils.cpp:475,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:475,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:476,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:476,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 195
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 479
    functionName: Botan_Tests::Utility_Function_Tests::test_loadstore
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 4
    functionsReached:
    - Botan::hex_decode
    - Test::Result::test_throws
    - Botan::load_le<TestInt32>
    - Botan::load_le<std::array<TestInt64, 2>>
    - Botan::get_byte<0>
    - Botan::store_le<std::vector<uint8_t>>
    - Botan::load_be<TestInt64>
    - Botan::get_byte<1>
    - Botan::store_le
    - auto::size
    - first
    - Botan::make_uint32
    - Botan::load_le<TestEnum64>
    - Test::Result::test_is_eq
    - std::vector::data
    - Botan::store_le<TestVectorSink>
    - Botan::load_be<TestEnum64>
    - Botan::load_be
    - TestVectorSink
    - Botan::load_le<std::array<uint16_t, 2>>
    - Botan::load_be<std::vector<uint16_t>>
    - Botan::load_be<TestEnum32>
    - Botan::load_be<std::vector<TestInt64>>
    - Botan::load_be<uint64_t>
    - Botan::load_le<Botan::secure_vector<uint16_t>>
    - Botan::load_be<TestInt32>
    - Test::Result::test_eq_sz
    - Botan::make_uint16
    - Botan::load_le<uint64_t>
    - Botan::load_le<TestEnum32>
    - Botan::store_be<TestVectorSink>
    - Botan::get_byte<3>
    - Botan::load_le<uint16_t>
    - Botan::load_be<uint32_t>
    - Botan::load_le<uint32_t>
    - Botan::load_be<uint16_t>
    - Botan::get_byte<2>
    - Botan::store_be
    - Botan::load_le<TestInt64>
    - Botan::load_be<std::array<uint16_t, 2>>
    - Botan::store_be<std::vector<uint8_t>>
    - Botan::load_le
    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:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::array<const uint8_t, sizeof(T)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 484
    functionName: Botan_Tests::Utility_Function_Tests::fb_load_be
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 3
    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:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::array<const uint8_t, sizeof(T)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 489
    functionName: Botan_Tests::Utility_Function_Tests::fb_load_le
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 3
    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:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - in
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 496
    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:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - in
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 503
    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:521,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:522,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:523,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:524,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:525,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:526,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:528,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:528,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:529,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:529,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:530,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:530,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:531,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:531,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:532,1
    - Dst: Botan::load_be<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:532,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:533,1
    - Dst: Botan::load_le<size_t>
      Src: /src/botan/src/tests/test_utils.cpp:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 536
    functionName: Botan_Tests::Utility_Function_Tests::test_loadstore_ambiguity
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 4
    functionsReached:
    - Botan::load_le<uint64_t>
    - Test::Result::test_is_eq
    - Botan::load_be<uint64_t>
    - Botan::load_be<uint32_t>
    - Botan::load_le<uint32_t>
    - Botan::store_be
    - Botan::load_le<size_t>
    - Botan::store_le
    - Botan::load_be<size_t>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_loadstore_ambiguity()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:545,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/tests/test_utils.cpp:545,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:546,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/tests/test_utils.cpp:546,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:547,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_le
      Src: /src/botan/src/tests/test_utils.cpp:547,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:549,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_be
      Src: /src/botan/src/tests/test_utils.cpp:549,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:550,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_be
      Src: /src/botan/src/tests/test_utils.cpp:550,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:551,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_load_be
      Src: /src/botan/src/tests/test_utils.cpp:551,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:553,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_le
      Src: /src/botan/src/tests/test_utils.cpp:553,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:554,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_le
      Src: /src/botan/src/tests/test_utils.cpp:554,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:555,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_le
      Src: /src/botan/src/tests/test_utils.cpp:555,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:557,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_be
      Src: /src/botan/src/tests/test_utils.cpp:557,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:558,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_be
      Src: /src/botan/src/tests/test_utils.cpp:558,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:559,1
    - Dst: Botan_Tests::Utility_Function_Tests::fb_store_be
      Src: /src/botan/src/tests/test_utils.cpp:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 562
    functionName: Botan_Tests::Utility_Function_Tests::test_loadstore_fallback
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 4
    functionsReached:
    - Botan_Tests::Utility_Function_Tests::fb_store_le
    - Botan_Tests::Utility_Function_Tests::fb_load_le
    - Test::Result::test_is_eq
    - Botan_Tests::Utility_Function_Tests::fb_load_be
    - Botan_Tests::Utility_Function_Tests::fb_store_be
    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:578,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:579,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_utils.cpp:580,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:581,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_utils.cpp:584,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:585,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_utils.cpp:586,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:587,1
    - Dst: Botan::get_byte<2>
      Src: /src/botan/src/tests/test_utils.cpp:588,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:589,1
    - Dst: Botan::get_byte<3>
      Src: /src/botan/src/tests/test_utils.cpp:590,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:591,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_utils.cpp:594,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:595,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_utils.cpp:596,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:597,1
    - Dst: Botan::get_byte<2>
      Src: /src/botan/src/tests/test_utils.cpp:598,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:599,1
    - Dst: Botan::get_byte<3>
      Src: /src/botan/src/tests/test_utils.cpp:600,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:601,1
    - Dst: Botan::get_byte<4>
      Src: /src/botan/src/tests/test_utils.cpp:602,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:603,1
    - Dst: Botan::get_byte<5>
      Src: /src/botan/src/tests/test_utils.cpp:604,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:605,1
    - Dst: Botan::get_byte<6>
      Src: /src/botan/src/tests/test_utils.cpp:606,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:607,1
    - Dst: Botan::get_byte<7>
      Src: /src/botan/src/tests/test_utils.cpp:608,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:609,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_utils.cpp:612,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:613,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/tests/test_utils.cpp:614,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:615,1
    - Dst: Botan::make_uint64
      Src: /src/botan/src/tests/test_utils.cpp:616,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:617,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:620,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:621,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:622,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:623,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:624,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:625,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:627,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:628,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:629,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:630,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:631,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:632,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:636,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:638,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:639,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:642,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:643,1
    - Dst: Botan::store_le
      Src: /src/botan/src/tests/test_utils.cpp:644,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:645,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:648,1
    - Dst: Botan::store_le
      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: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:651,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:654,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:657,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:659,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:660,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:663,1
    - Dst: Botan::store_be
      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: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:666,1
    - Dst: Test::Result::test_is_eq
      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: Botan::store_be
      Src: /src/botan/src/tests/test_utils.cpp:671,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:672,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:675,1
    - Dst: Botan::load_le<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:678,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:679,1
    - Dst: Botan::load_le<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:680,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:681,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:682,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:683,1
    - Dst: Botan::load_be<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:685,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:686,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:687,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:688,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:689,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:690,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils.cpp:693,1
    - Dst: Botan::load_le<std::array<uint16_t, cex_mem.size() / 2>>
      Src: /src/botan/src/tests/test_utils.cpp:693,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:694,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::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:696,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils.cpp:697,1
    - Dst: Botan::load_le<std::array<uint64_t, cex_mem.size() / 8>>
      Src: /src/botan/src/tests/test_utils.cpp:697,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:698,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils.cpp:700,1
    - Dst: Botan::load_be<std::array<uint16_t, cex_mem.size() / 2>>
      Src: /src/botan/src/tests/test_utils.cpp:700,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:701,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils.cpp:702,1
    - Dst: Botan::load_be<std::array<uint32_t, cex_mem.size() / 4>>
      Src: /src/botan/src/tests/test_utils.cpp:702,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:703,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils.cpp:704,1
    - Dst: Botan::load_be<std::array<uint64_t, cex_mem.size() / 8>>
      Src: /src/botan/src/tests/test_utils.cpp:704,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 708
    functionName: Botan_Tests::Utility_Function_Tests::test_loadstore_constexpr
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 4
    functionsReached:
    - Botan::get_byte<0>
    - Botan::make_uint64
    - Botan::load_le<std::array<uint64_t, cex_mem.size() / 8>>
    - Botan::get_byte<1>
    - Botan::get_byte<5>
    - Botan::store_le
    - Botan::make_uint32
    - Test::Result::test_is_eq
    - Botan::load_be<std::array<uint64_t, cex_mem.size() / 8>>
    - std::array::size
    - Botan::load_be<std::array<uint16_t, cex_mem.size() / 2>>
    - Botan::get_byte<6>
    - Botan::get_byte<4>
    - Botan::load_be<uint64_t>
    - Botan::load_le<std::array<uint16_t, cex_mem.size() / 2>>
    - Botan::load_le<std::array<uint32_t, cex_mem.size() / 4>>
    - Botan::make_uint16
    - Botan::load_le<uint64_t>
    - Botan::get_byte<7>
    - Botan::get_byte<3>
    - Botan::load_le<uint16_t>
    - Botan::load_be<std::array<uint32_t, cex_mem.size() / 4>>
    - Botan::store_be
    - Botan::load_le<uint32_t>
    - Botan::load_be<uint16_t>
    - Botan::get_byte<2>
    - Botan::load_be<uint32_t>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_loadstore_constexpr()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:712,1
    - Dst: Botan::copy_out_be
      Src: /src/botan/src/tests/test_utils.cpp:716,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:717,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:717,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:720,1
    - Dst: Botan::copy_out_be
      Src: /src/botan/src/tests/test_utils.cpp:724,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:725,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:725,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:728,1
    - Dst: Botan::copy_out_le
      Src: /src/botan/src/tests/test_utils.cpp:732,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:733,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:733,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:736,1
    - Dst: Botan::copy_out_le
      Src: /src/botan/src/tests/test_utils.cpp:740,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:741,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:741,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:744,1
    - Dst: Botan::copy_out_be
      Src: /src/botan/src/tests/test_utils.cpp:748,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:749,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:749,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:752,1
    - Dst: Botan::copy_out_le
      Src: /src/botan/src/tests/test_utils.cpp:756,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:757,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:757,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:760,1
    - Dst: Botan::copy_out_be
      Src: /src/botan/src/tests/test_utils.cpp:764,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:765,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:765,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:768,1
    - Dst: Botan::copy_out_le
      Src: /src/botan/src/tests/test_utils.cpp:772,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:773,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils.cpp:773,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 710
    functionDepth: 1
    functionLinenumber: 710
    functionLinenumberEnd: 776
    functionName: Botan_Tests::Utility_Function_Tests::test_copy_out_be_le
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 4
    functionsReached:
    - Botan::copy_out_be
    - Botan::hex_decode
    - Botan::copy_out_le
    - test_is_eq
    - CHECK
    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:786,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:786,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:787,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:787,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:788,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:788,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:789,1
    - Dst: Botan_Tests::BitOps_Tests::test_popcount
      Src: /src/botan/src/tests/test_utils.cpp:789,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:790,1
    - Dst: Botan_Tests::BitOps_Tests::test_reverse_bits
      Src: /src/botan/src/tests/test_utils.cpp:790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 783
    functionDepth: 4
    functionLinenumber: 783
    functionLinenumberEnd: 793
    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_sig_bytes
    - Botan_Tests::BitOps_Tests::test_popcount
    - 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: test_eq
      Src: /src/botan/src/tests/test_utils.cpp:798,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_utils.cpp:798,1
    - Dst: Botan::ctz<T>
      Src: /src/botan/src/tests/test_utils.cpp:798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' result'
    - val
    - expected
    argTypes:
    - Test::Result
    - T
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 797
    functionDepth: 0
    functionLinenumber: 797
    functionLinenumberEnd: 799
    functionName: Botan_Tests::BitOps_Tests::test_ctz
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 7
    functionsReached:
    - Botan::ctz<T>
    - test_eq
    - std::to_string
    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:803,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:804,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:805,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:806,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:807,1
    - Dst: Botan_Tests::BitOps_Tests::test_ctz
      Src: /src/botan/src/tests/test_utils.cpp:808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 811
    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: test_eq
      Src: /src/botan/src/tests/test_utils.cpp:815,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_utils.cpp:815,1
    - Dst: Botan::significant_bytes<T>
      Src: /src/botan/src/tests/test_utils.cpp:815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' result'
    - val
    - expected
    argTypes:
    - Test::Result
    - T
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 814
    functionDepth: 0
    functionLinenumber: 814
    functionLinenumberEnd: 816
    functionName: Botan_Tests::BitOps_Tests::test_sig_bytes
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 7
    functionsReached:
    - test_eq
    - Botan::significant_bytes<T>
    - std::to_string
    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:820,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:821,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:822,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:823,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:824,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:825,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:826,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:827,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:829,1
    - Dst: Botan_Tests::BitOps_Tests::test_sig_bytes
      Src: /src/botan/src/tests/test_utils.cpp:830,1
    - 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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 818
    functionDepth: 1
    functionLinenumber: 818
    functionLinenumberEnd: 837
    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_eq
      Src: /src/botan/src/tests/test_utils.cpp:841,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_utils.cpp:841,1
    - Dst: Botan::is_power_of_2<T>
      Src: /src/botan/src/tests/test_utils.cpp:841,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' result'
    - val
    - expected
    argTypes:
    - Test::Result
    - T
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 840
    functionDepth: 0
    functionLinenumber: 840
    functionLinenumberEnd: 842
    functionName: Botan_Tests::BitOps_Tests::test_power_of_2
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 8
    functionsReached:
    - test_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:847,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:848,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:849,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:850,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:851,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:852,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:853,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:855,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:856,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_utils.cpp:857,1
    - 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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 844
    functionDepth: 1
    functionLinenumber: 844
    functionLinenumberEnd: 865
    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:868,1
    - Dst: Botan::ct_popcount
      Src: /src/botan/src/tests/test_utils.cpp:869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 868
    functionDepth: 1
    functionLinenumber: 868
    functionLinenumberEnd: 870
    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:874,1
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_utils.cpp:874,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:875,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:875,1
    - Dst: std::popcount
      Src: /src/botan/src/tests/test_utils.cpp:875,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:875,1
    - Dst: std::popcount
      Src: /src/botan/src/tests/test_utils.cpp:875,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 873
    functionDepth: 2
    functionLinenumber: 873
    functionLinenumberEnd: 876
    functionName: Botan_Tests::BitOps_Tests::random_pc
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 3
    functionsReached:
    - Botan::fmt
    - std::popcount
    - fuzzer_rng
    - Botan::load_le<T>
    - Botan_Tests::BitOps_Tests::pc
    - test_is_eq
    linkageType: ''
    returnType: auto
    signature: auto random_pc(Test::Result& result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:881,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:881,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:882,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:882,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:883,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:883,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:884,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:884,1
    - Dst: Test::Result::test_is_eq
      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: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:887,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:887,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:888,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:888,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:889,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:889,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:891,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:891,1
    - Dst: Test::Result::test_is_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_is_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_is_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_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:896,1
    - Dst: Botan_Tests::BitOps_Tests::pc
      Src: /src/botan/src/tests/test_utils.cpp:896,1
    - Dst: Test::Result::test_is_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_is_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_is_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: Botan_Tests::BitOps_Tests::random_pc
      Src: /src/botan/src/tests/test_utils.cpp:901,1
    - Dst: Botan_Tests::BitOps_Tests::random_pc
      Src: /src/botan/src/tests/test_utils.cpp:902,1
    - Dst: Botan_Tests::BitOps_Tests::random_pc
      Src: /src/botan/src/tests/test_utils.cpp:903,1
    - Dst: Botan_Tests::BitOps_Tests::random_pc
      Src: /src/botan/src/tests/test_utils.cpp:904,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 878
    functionDepth: 3
    functionLinenumber: 878
    functionLinenumberEnd: 907
    functionName: Botan_Tests::BitOps_Tests::test_popcount
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 4
    functionsReached:
    - Botan_Tests::BitOps_Tests::random_pc
    - Botan_Tests::BitOps_Tests::pc
    - Test::Result::test_is_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_popcount()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:912,1
    - Dst: Botan::ct_reverse_bits<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:912,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:913,1
    - Dst: Botan::ct_reverse_bits<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:913,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:914,1
    - Dst: Botan::ct_reverse_bits<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:914,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:916,1
    - Dst: Botan::ct_reverse_bits<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:917,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:918,1
    - Dst: Botan::ct_reverse_bits<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:919,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:920,1
    - Dst: Botan::ct_reverse_bits<uint16_t>
      Src: /src/botan/src/tests/test_utils.cpp:921,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:923,1
    - Dst: Botan::ct_reverse_bits<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:923,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:924,1
    - Dst: Botan::ct_reverse_bits<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:924,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:925,1
    - Dst: Botan::ct_reverse_bits<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:925,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:927,1
    - Dst: Botan::ct_reverse_bits<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:928,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:929,1
    - Dst: Botan::ct_reverse_bits<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:930,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:931,1
    - Dst: Botan::ct_reverse_bits<uint64_t>
      Src: /src/botan/src/tests/test_utils.cpp:932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 909
    functionDepth: 0
    functionLinenumber: 909
    functionLinenumberEnd: 935
    functionName: Botan_Tests::BitOps_Tests::test_reverse_bits
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 4
    functionsReached:
    - Botan::ct_reverse_bits<uint32_t>
    - Botan::ct_reverse_bits<uint16_t>
    - Test::Result::test_is_eq
    - Botan::ct_reverse_bits<uint64_t>
    - Botan::ct_reverse_bits<uint8_t>
    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: 944
      start: 944
    functionDepth: 0
    functionLinenumber: 944
    functionLinenumberEnd: 944
    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:948,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_utils.cpp:949,1
    - Dst: Botan::poly_double_n
      Src: /src/botan/src/tests/test_utils.cpp:952,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils.cpp:952,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:952,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:954,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 946
    functionDepth: 1
    functionLinenumber: 946
    functionLinenumberEnd: 956
    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_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::confirm
      Src: /src/botan/src/tests/test_utils.cpp:968,1
    - Dst: Botan::version_datestamp
      Src: /src/botan/src/tests/test_utils.cpp:968,1
    - Dst: Botan::version_cstr
      Src: /src/botan/src/tests/test_utils.cpp:970,1
    - Dst: Botan::version_string
      Src: /src/botan/src/tests/test_utils.cpp:971,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:972,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_utils.cpp:972,1
    - Dst: Botan::short_version_cstr
      Src: /src/botan/src/tests/test_utils.cpp:974,1
    - Dst: Botan::short_version_string
      Src: /src/botan/src/tests/test_utils.cpp:975,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:976,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_utils.cpp:976,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:979,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:982,1
    - Dst: std::string::starts_with
      Src: /src/botan/src/tests/test_utils.cpp:982,1
    - Dst: Botan::runtime_version_check
      Src: /src/botan/src/tests/test_utils.cpp:985,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:987,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_utils.cpp:987,1
    - Dst: Botan::runtime_version_check
      Src: /src/botan/src/tests/test_utils.cpp:989,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:994,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 997
      start: 965
    functionDepth: 1
    functionLinenumber: 965
    functionLinenumberEnd: 997
    functionName: Botan_Tests::Version_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::runtime_version_check
    - std::string
    - Botan::version_string
    - std::string::empty
    - std::string::starts_with
    - Test::Result::test_eq
    - Botan::short_version_cstr
    - Test::Result::confirm
    - Botan::version_cstr
    - Botan::version_datestamp
    - Botan::short_version_string
    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: 1004
      start: 1004
    functionDepth: 0
    functionLinenumber: 1004
    functionLinenumberEnd: 1004
    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:1007,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:1008,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_utils.cpp:1009,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_utils.cpp:1013,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:1013,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:1015,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/tests/test_utils.cpp:1015,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1006
    functionDepth: 1
    functionLinenumber: 1006
    functionLinenumberEnd: 1018
    functionName: Botan_Tests::Date_Format_Tests::parse_date
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 3
    functionsReached:
    - std::vector::push_back
    - Test_Error
    - Botan::split_on
    - Botan::to_u32bit
    - std::vector::size
    - std::vector::reserve
    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:1021,1
    - Dst: Botan_Tests::Date_Format_Tests::parse_date
      Src: /src/botan/src/tests/test_utils.cpp:1024,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1028,1
    - Dst: Botan::calendar_point::year
      Src: /src/botan/src/tests/test_utils.cpp:1028,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1029,1
    - Dst: Botan::calendar_point::month
      Src: /src/botan/src/tests/test_utils.cpp:1029,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1030,1
    - Dst: Botan::calendar_point::day
      Src: /src/botan/src/tests/test_utils.cpp:1030,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1031,1
    - Dst: Botan::calendar_point::hour
      Src: /src/botan/src/tests/test_utils.cpp:1031,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1032,1
    - Dst: Botan::calendar_point::minutes
      Src: /src/botan/src/tests/test_utils.cpp:1032,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1033,1
    - Dst: Botan::calendar_point::seconds
      Src: /src/botan/src/tests/test_utils.cpp:1033,1
    - Dst: Botan::calendar_point::year
      Src: /src/botan/src/tests/test_utils.cpp:1036,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:1037,1
    - Dst: Botan::calendar_point::to_std_timepoint
      Src: /src/botan/src/tests/test_utils.cpp:1037,1
    - Dst: Botan::calendar_point::to_std_timepoint
      Src: /src/botan/src/tests/test_utils.cpp:1039,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1040,1
    - Dst: Botan::calendar_point::year
      Src: /src/botan/src/tests/test_utils.cpp:1040,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1041,1
    - Dst: Botan::calendar_point::month
      Src: /src/botan/src/tests/test_utils.cpp:1041,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1042,1
    - Dst: Botan::calendar_point::day
      Src: /src/botan/src/tests/test_utils.cpp:1042,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1043,1
    - Dst: Botan::calendar_point::hour
      Src: /src/botan/src/tests/test_utils.cpp:1043,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1044,1
    - Dst: Botan::calendar_point::minutes
      Src: /src/botan/src/tests/test_utils.cpp:1044,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils.cpp:1045,1
    - Dst: Botan::calendar_point::seconds
      Src: /src/botan/src/tests/test_utils.cpp:1045,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:1048,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_utils.cpp:1050,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1020
    functionDepth: 2
    functionLinenumber: 1020
    functionLinenumberEnd: 1054
    functionName: Botan_Tests::Date_Format_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::calendar_point::month
    - Botan::calendar_point::day
    - Botan::calendar_point::year
    - Test::Result::test_throws
    - Test_Error
    - Test::Result::test_is_eq
    - Botan::calendar_point::minutes
    - Botan::calendar_point::to_std_timepoint
    - Botan::calendar_point::seconds
    - Botan_Tests::Date_Format_Tests::parse_date
    - Botan::calendar_point::hour
    - get_req_str
    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_eq
      Src: /src/botan/src/tests/test_utils.cpp:1060,1
    - Dst: Botan::calendar_point::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1060,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1056
    functionDepth: 1
    functionLinenumber: 1056
    functionLinenumberEnd: 1062
    functionName: Botan_Tests::Date_Format_Tests::run_final_tests
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_eq
    - Botan::calendar_point::to_string
    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: 1069
      start: 1069
    functionDepth: 0
    functionLinenumber: 1069
    functionLinenumberEnd: 1069
    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:1074,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_utils.cpp:1075,1
    - Dst: Botan::ucs2_to_utf8
      Src: /src/botan/src/tests/test_utils.cpp:1080,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils.cpp:1080,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:1080,1
    - Dst: Botan::ucs4_to_utf8
      Src: /src/botan/src/tests/test_utils.cpp:1082,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils.cpp:1082,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:1082,1
    - Dst: Botan::latin1_to_utf8
      Src: /src/botan/src/tests/test_utils.cpp:1084,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils.cpp:1084,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils.cpp:1084,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_utils.cpp:1086,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1089,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:1090,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/test_utils.cpp:1090,1
    - Dst: std::string::end
      Src: /src/botan/src/tests/test_utils.cpp:1090,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1071
    functionDepth: 1
    functionLinenumber: 1071
    functionLinenumberEnd: 1093
    functionName: Botan_Tests::Charset_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::latin1_to_utf8
    - Test_Error
    - std::string::begin
    - Botan::ucs4_to_utf8
    - std::vector::data
    - Botan::ucs2_to_utf8
    - Test::Result::test_eq
    - std::string::end
    - std::vector<uint8_t>
    - 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: 1100
      start: 1100
    functionDepth: 0
    functionLinenumber: 1100
    functionLinenumberEnd: 1100
    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:1105,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_utils.cpp:1106,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1110,1
    - Dst: Botan::host_wildcard_match
      Src: /src/botan/src/tests/test_utils.cpp:1110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1102
    functionDepth: 1
    functionLinenumber: 1102
    functionLinenumberEnd: 1113
    functionName: Botan_Tests::Hostname_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_eq
    - get_req_str
    - 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: 1120
      start: 1120
    functionDepth: 0
    functionLinenumber: 1120
    functionLinenumberEnd: 1120
    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:1125,1
    - Dst: Botan::check_and_canonicalize_dns_name
      Src: /src/botan/src/tests/test_utils.cpp:1129,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_utils.cpp:1130,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_utils.cpp:1133,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_utils.cpp:1135,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_utils.cpp:1139,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_utils.cpp:1141,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1122
    functionDepth: 1
    functionLinenumber: 1122
    functionLinenumberEnd: 1146
    functionName: Botan_Tests::DNS_Check_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::check_and_canonicalize_dns_name
    - Test::Result::test_failure
    - BOTAN_UNUSED
    - Test::Result::test_success
    - get_req_str
    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: 1153
      start: 1153
    functionDepth: 0
    functionLinenumber: 1153
    functionLinenumberEnd: 1153
    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:1158,1
    - Dst: Botan::string_to_ipv4
      Src: /src/botan/src/tests/test_utils.cpp:1161,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1163,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils.cpp:1163,1
    - Dst: Botan::ipv4_to_string
      Src: /src/botan/src/tests/test_utils.cpp:1166,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils.cpp:1166,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' status'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1171
      start: 1155
    functionDepth: 1
    functionLinenumber: 1155
    functionLinenumberEnd: 1171
    functionName: Botan_Tests::IPv4_Parsing_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::string_to_ipv4
    - auto::has_value
    - Botan::ipv4_to_string
    - auto::value
    - Test::Result::test_eq
    - get_req_str
    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: 1178
      start: 1178
    functionDepth: 0
    functionLinenumber: 1178
    functionLinenumberEnd: 1178
    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:1185,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_utils.cpp:1186,1
    - Dst: Botan_Tests::ReadKV_Tests::confirm_kv
      Src: /src/botan/src/tests/test_utils.cpp:1189,1
    - Dst: Botan::read_kv
      Src: /src/botan/src/tests/test_utils.cpp:1189,1
    - Dst: Botan_Tests::ReadKV_Tests::split_group
      Src: /src/botan/src/tests/test_utils.cpp:1189,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:1192,1
    - Dst: Botan::read_kv
      Src: /src/botan/src/tests/test_utils.cpp:1192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ' status'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1180
    functionDepth: 2
    functionLinenumber: 1180
    functionLinenumberEnd: 1195
    functionName: Botan_Tests::ReadKV_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::read_kv
    - Botan_Tests::ReadKV_Tests::confirm_kv
    - Botan_Tests::ReadKV_Tests::split_group
    - get_req_str
    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:1200,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:1207,1
    - Dst: std::string::clear
      Src: /src/botan/src/tests/test_utils.cpp:1208,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_utils.cpp:1214,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils.cpp:1215,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1219
      start: 1198
    functionDepth: 1
    functionLinenumber: 1198
    functionLinenumberEnd: 1219
    functionName: Botan_Tests::ReadKV_Tests::split_group
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 4
    functionsReached:
    - std::string::empty
    - empty
    - std::vector::push_back
    - std::string::clear
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> split_group(const std::string& str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1224,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils.cpp:1224,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils.cpp:1228,1
    - Dst: find
      Src: /src/botan/src/tests/test_utils.cpp:1229,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils.cpp:1230,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils.cpp:1230,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1231,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1235,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils.cpp:1235,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils.cpp:1235,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: 1236
      start: 1221
    functionDepth: 0
    functionLinenumber: 1221
    functionLinenumberEnd: 1236
    functionName: Botan_Tests::ReadKV_Tests::confirm_kv
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 4
    functionsReached:
    - test_eq
    - size
    - end
    - find
    - confirm
    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:1248,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_utils.cpp:1249,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_utils.cpp:1253,1
    - Dst: Botan::CPUFeature
      Src: /src/botan/src/tests/test_utils.cpp:1255,1
    - Dst: static_cast<Botan::CPUID::Feature::Bit>
      Src: /src/botan/src/tests/test_utils.cpp:1255,1
    - Dst: auto::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1257,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:1259,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_utils.cpp:1259,1
    - Dst: Botan::CPUFeature::from_string
      Src: /src/botan/src/tests/test_utils.cpp:1261,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_utils.cpp:1262,1
    - Dst: auto::as_u32
      Src: /src/botan/src/tests/test_utils.cpp:1262,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_utils.cpp:1264,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1265,1
    - Dst: has
      Src: /src/botan/src/tests/test_utils.cpp:1276,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:1277,1
    - Dst: std::string::find
      Src: /src/botan/src/tests/test_utils.cpp:1277,1
    - Dst: Botan::clear_cpuid_bit
      Src: /src/botan/src/tests/test_utils.cpp:1279,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1281,1
    - Dst: has
      Src: /src/botan/src/tests/test_utils.cpp:1282,1
    - Dst: Botan::CPUID::initialize
      Src: /src/botan/src/tests/test_utils.cpp:1284,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1285,1
    - Dst: has
      Src: /src/botan/src/tests/test_utils.cpp:1286,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_utils.cpp:1289,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1293
      start: 1245
    functionDepth: 1
    functionLinenumber: 1245
    functionLinenumberEnd: 1293
    functionName: Botan_Tests::CPUID_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - has
    - Test::Result::test_failure
    - std::string::empty
    - auto::to_string
    - Botan::clear_cpuid_bit
    - BOTAN_UNUSED
    - auto::as_u32
    - Botan::CPUID::to_string
    - std::string::find
    - Test::Result::test_success
    - Test::Result::test_int_eq
    - static_cast<uint32_t>
    - Botan::CPUFeature
    - Botan::CPUID::initialize
    - static_cast<Botan::CPUID::Feature::Bit>
    - Botan::fmt
    - Botan::CPUFeature::from_string
    - Test::Result::test_eq
    - Test::Result::confirm
    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:1307,1
    - Dst: Botan_Tests::UUID_Tests::rng
      Src: /src/botan/src/tests/test_utils.cpp:1308,1
    - Dst: Botan_Tests::UUID_Tests::rng
      Src: /src/botan/src/tests/test_utils.cpp:1309,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:1310,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:1312,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils.cpp:1312,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1314,1
    - Dst: Botan::UUID::is_valid
      Src: /src/botan/src/tests/test_utils.cpp:1314,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:1315,1
    - Dst: Botan_CLI::Print_UUID::Print_UUID
      Src: /src/botan/src/tests/test_utils.cpp:1315,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_utils.cpp:1317,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1317,1
    - Dst: Test::Result::test_eq
      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_eq
      Src: /src/botan/src/tests/test_utils.cpp:1320,1
    - Dst: Botan::UUID::is_valid
      Src: /src/botan/src/tests/test_utils.cpp:1320,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:1322,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:1323,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1325,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1326,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1328,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils.cpp:1329,1
    - Dst: Botan_CLI::Print_UUID::Print_UUID
      Src: /src/botan/src/tests/test_utils.cpp:1329,1
    - Dst: std::fill
      Src: /src/botan/src/tests/test_utils.cpp:1336,1
    - Dst: begin
      Src: /src/botan/src/tests/test_utils.cpp:1336,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils.cpp:1336,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1353,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1353,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1357,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/tests/test_utils.cpp:1357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1360
      start: 1304
    functionDepth: 1
    functionLinenumber: 1304
    functionLinenumberEnd: 1360
    functionName: Botan_Tests::UUID_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::UUID::UUID
    - Botan_CLI::Print_UUID::Print_UUID
    - Botan::UUID::to_string
    - std::fill
    - Test::Result::test_eq
    - std::vector<uint8_t>
    - Test::Result::confirm
    - Botan::UUID::is_valid
    - begin
    - end
    - Botan_Tests::UUID_Tests::rng
    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: 1333
      start: 1333
    functionDepth: 0
    functionLinenumber: 1333
    functionLinenumberEnd: 1333
    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:1336,1
    - Dst: std::span<uint8_t>::begin
      Src: /src/botan/src/tests/test_utils.cpp:1336,1
    - Dst: std::span<uint8_t>::end
      Src: /src/botan/src/tests/test_utils.cpp:1336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1335
    functionDepth: 0
    functionLinenumber: 1335
    functionLinenumberEnd: 1337
    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::span<uint8_t>::end
    - std::fill
    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: 1339
      start: 1339
    functionDepth: 0
    functionLinenumber: 1339
    functionLinenumberEnd: 1339
    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: 1341
      start: 1341
    functionDepth: 0
    functionLinenumber: 1341
    functionLinenumberEnd: 1341
    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: 1343
      start: 1343
    functionDepth: 0
    functionLinenumber: 1343
    functionLinenumberEnd: 1343
    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: 1345
      start: 1345
    functionDepth: 0
    functionLinenumber: 1345
    functionLinenumberEnd: 1345
    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_eq
      Src: /src/botan/src/tests/test_utils.cpp:1378,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1378,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1379,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1379,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1380,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1380,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1381,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1381,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1382,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1382,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils.cpp:1383,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils.cpp:1383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1386
      start: 1369
    functionDepth: 1
    functionLinenumber: 1369
    functionLinenumberEnd: 1386
    functionName: Botan_Tests::Formatter_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_eq
    - Botan::fmt
    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:1395,1
    - Dst: Botan::scoped_cleanup::scoped_cleanup
      Src: /src/botan/src/tests/test_utils.cpp:1399,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils.cpp:1401,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:1404,1
    - Dst: Botan::scoped_cleanup::scoped_cleanup
      Src: /src/botan/src/tests/test_utils.cpp:1409,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils.cpp:1413,1
    - Dst: fn
      Src: /src/botan/src/tests/test_utils.cpp:1414,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils.cpp:1415,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils.cpp:1416,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:1419,1
    - Dst: Botan::scoped_cleanup::scoped_cleanup
      Src: /src/botan/src/tests/test_utils.cpp:1425,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/test_utils.cpp:1427,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils.cpp:1430,1
    - Dst: fn
      Src: /src/botan/src/tests/test_utils.cpp:1432,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils.cpp:1437,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils.cpp:1438,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils.cpp:1439,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_utils.cpp:1442,1
    - Dst: Botan::scoped_cleanup::scoped_cleanup
      Src: /src/botan/src/tests/test_utils.cpp:1446,1
    - Dst: auto::disengage
      Src: /src/botan/src/tests/test_utils.cpp:1447,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils.cpp:1449,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1453
      start: 1393
    functionDepth: 1
    functionLinenumber: 1393
    functionLinenumberEnd: 1453
    functionName: Botan_Tests::ScopedCleanup_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils.cpp
    functionUses: 0
    functionsReached:
    - fn
    - std::runtime_error
    - CHECK
    - Botan::scoped_cleanup::scoped_cleanup
    - auto::disengage
    - confirm
    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: Botan_Tests::Fixed_Output_RNG::empty
      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:
    - Botan_Tests::Fixed_Output_RNG::empty
    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: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: Botan_Tests::Fixed_Output_RNG::reseed
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t reseed(Botan::Entropy_Sources& /*src*/, size_t /*bits*/, std::chrono::milliseconds
      /*timeout*/) 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_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: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    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:44,1
    - Dst: end
      Src: /src/botan/src/tests/test_rng.h:44,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_rng.h:44,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_rng.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: Botan_Tests::Fixed_Output_RNG::Fixed_Output_RNG
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - end
    - insert
    linkageType: ''
    returnType: void
    signature: void Fixed_Output_RNG(std::span<const uint8_t> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_rng.h:47,1
    - Dst: insert
      Src: /src/botan/src/tests/test_rng.h:48,1
    - Dst: end
      Src: /src/botan/src/tests/test_rng.h:48,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_rng.h:48,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_rng.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' in_str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: Botan_Tests::Fixed_Output_RNG::Fixed_Output_RNG
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - std::vector::begin
    - std::vector::end
    - end
    - insert
    linkageType: ''
    returnType: void
    signature: void Fixed_Output_RNG(const std::string& in_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random_vec
      Src: /src/botan/src/tests/test_rng.h:53,1
    - Dst: insert
      Src: /src/botan/src/tests/test_rng.h:54,1
    - Dst: end
      Src: /src/botan/src/tests/test_rng.h:54,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_rng.h:54,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_rng.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' rng'
    - len
    argTypes:
    - RandomNumberGenerator
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: Botan_Tests::Fixed_Output_RNG::Fixed_Output_RNG
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - std::vector::end
    - random_vec
    - end
    - insert
    linkageType: ''
    returnType: void
    signature: void Fixed_Output_RNG(RandomNumberGenerator& rng, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' fallback_rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    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: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    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:67,1
    - Dst: end
      Src: /src/botan/src/tests/test_rng.h:67,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_rng.h:67,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_rng.h:67,1
    - Dst: Botan_Tests::Fixed_Output_RNG::random
      Src: /src/botan/src/tests/test_rng.h:70,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: 72
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 72
    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
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    - insert
    linkageType: ''
    returnType: void
    signature: void fill_bytes_with_input(std::span<uint8_t> output, std::span<const
      uint8_t> input) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Fixed_Output_RNG::empty
      Src: /src/botan/src/tests/test_rng.h:75,1
    - Dst: has_value
      Src: /src/botan/src/tests/test_rng.h:76,1
    - Dst: value
      Src: /src/botan/src/tests/test_rng.h:77,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_rng.h:79,1
    - Dst: front
      Src: /src/botan/src/tests/test_rng.h:83,1
    - Dst: pop_front
      Src: /src/botan/src/tests/test_rng.h:84,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 86
    functionName: Botan_Tests::Fixed_Output_RNG::random
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 1
    functionsReached:
    - has_value
    - Test_Error
    - pop_front
    - Botan_Tests::Fixed_Output_RNG::empty
    - value
    - front
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t random()
  - 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_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: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    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: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    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: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    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: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    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:114,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_rng.h:115,1
    - Dst: Botan_Tests::Fixed_Output_RNG::fill_bytes_with_input
      Src: /src/botan/src/tests/test_rng.h:122,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_rng.h:125,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: 127
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 127
    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
    - random_vec
    - Botan_Tests::Fixed_Output_RNG::fill_bytes_with_input
    - Test_Error
    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: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    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: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    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: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    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: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    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: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    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: 147
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 147
    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:151,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_rng.h:152,1
    - Dst: insert
      Src: /src/botan/src/tests/test_rng.h:156,1
    - Dst: end
      Src: /src/botan/src/tests/test_rng.h:156,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_rng.h:156,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_rng.h:156,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: 157
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 157
    functionName: Botan_Tests::SeedCapturing_RNG::fill_bytes_with_input
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached:
    - Test_Error
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    - std::span<uint8_t>::empty
    - insert
    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: 170
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 170
    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: 172
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 172
    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: 174
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 174
    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: 176
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 176
    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: 178
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 178
    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::ranges::fill
      Src: /src/botan/src/tests/test_rng.h:186,1
    - Dst: std::span<uint8_t>::empty
      Src: /src/botan/src/tests/test_rng.h:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 190
    functionName: Botan_Tests::Request_Counting_RNG::fill_bytes_with_input
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached:
    - std::ranges::fill
    - 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: 203
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 203
    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: 207
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 207
    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: 209
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 209
    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:
    - 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: 2
    functionsReached:
    - Botan_Tests::Fixed_Output_RNG::is_seeded
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Fixed_Output_RNG::empty
      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:
    - Botan_Tests::Fixed_Output_RNG::empty
    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: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: Botan_Tests::Fixed_Output_RNG::reseed
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t reseed(Botan::Entropy_Sources& /*src*/, size_t /*bits*/, std::chrono::milliseconds
      /*timeout*/) 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_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: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    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:44,1
    - Dst: end
      Src: /src/botan/src/tests/test_rng.h:44,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_rng.h:44,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_rng.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: Botan_Tests::Fixed_Output_RNG::Fixed_Output_RNG
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - end
    - insert
    linkageType: ''
    returnType: void
    signature: void Fixed_Output_RNG(std::span<const uint8_t> in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_rng.h:47,1
    - Dst: insert
      Src: /src/botan/src/tests/test_rng.h:48,1
    - Dst: end
      Src: /src/botan/src/tests/test_rng.h:48,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_rng.h:48,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_rng.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' in_str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: Botan_Tests::Fixed_Output_RNG::Fixed_Output_RNG
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - std::vector::begin
    - std::vector::end
    - end
    - insert
    linkageType: ''
    returnType: void
    signature: void Fixed_Output_RNG(const std::string& in_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random_vec
      Src: /src/botan/src/tests/test_rng.h:53,1
    - Dst: insert
      Src: /src/botan/src/tests/test_rng.h:54,1
    - Dst: end
      Src: /src/botan/src/tests/test_rng.h:54,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_rng.h:54,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_rng.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' rng'
    - len
    argTypes:
    - RandomNumberGenerator
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: Botan_Tests::Fixed_Output_RNG::Fixed_Output_RNG
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - std::vector::end
    - random_vec
    - end
    - insert
    linkageType: ''
    returnType: void
    signature: void Fixed_Output_RNG(RandomNumberGenerator& rng, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' fallback_rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    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: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    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:67,1
    - Dst: end
      Src: /src/botan/src/tests/test_rng.h:67,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_rng.h:67,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_rng.h:67,1
    - Dst: Botan_Tests::Fixed_Output_RNG::random
      Src: /src/botan/src/tests/test_rng.h:70,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: 72
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 72
    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
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    - insert
    linkageType: ''
    returnType: void
    signature: void fill_bytes_with_input(std::span<uint8_t> output, std::span<const
      uint8_t> input) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Fixed_Output_RNG::empty
      Src: /src/botan/src/tests/test_rng.h:75,1
    - Dst: has_value
      Src: /src/botan/src/tests/test_rng.h:76,1
    - Dst: value
      Src: /src/botan/src/tests/test_rng.h:77,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_rng.h:79,1
    - Dst: front
      Src: /src/botan/src/tests/test_rng.h:83,1
    - Dst: pop_front
      Src: /src/botan/src/tests/test_rng.h:84,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 86
    functionName: Botan_Tests::Fixed_Output_RNG::random
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 2
    functionsReached:
    - has_value
    - Test_Error
    - pop_front
    - Botan_Tests::Fixed_Output_RNG::empty
    - value
    - front
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t random()
  - 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_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: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    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: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    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: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    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: 110
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 110
    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:114,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_rng.h:115,1
    - Dst: Botan_Tests::Fixed_Output_RNG::fill_bytes_with_input
      Src: /src/botan/src/tests/test_rng.h:122,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_rng.h:125,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: 127
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 127
    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
    - random_vec
    - Botan_Tests::Fixed_Output_RNG::fill_bytes_with_input
    - Test_Error
    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: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    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: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    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: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    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: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    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: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    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: 147
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 147
    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:151,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_rng.h:152,1
    - Dst: insert
      Src: /src/botan/src/tests/test_rng.h:156,1
    - Dst: end
      Src: /src/botan/src/tests/test_rng.h:156,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_rng.h:156,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_rng.h:156,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: 157
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 157
    functionName: Botan_Tests::SeedCapturing_RNG::fill_bytes_with_input
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached:
    - Test_Error
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    - std::span<uint8_t>::empty
    - insert
    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: 170
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 170
    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: 172
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 172
    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: 174
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 174
    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: 176
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 176
    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: 178
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 178
    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::ranges::fill
      Src: /src/botan/src/tests/test_rng.h:186,1
    - Dst: std::span<uint8_t>::empty
      Src: /src/botan/src/tests/test_rng.h:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 190
    functionName: Botan_Tests::Request_Counting_RNG::fill_bytes_with_input
    functionSourceFile: /src/botan/src/tests/test_rng.h
    functionUses: 0
    functionsReached:
    - std::ranges::fill
    - 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: 203
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 203
    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: 207
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 207
    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: 209
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 209
    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: 1
    argCount: 3
    argNames:
    - ' algo'
    - ' test_src'
    - ' required_keys'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 26
    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: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    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:34,1
    - Dst: Botan_Tests::PK_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.h:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: Botan_Tests::PK_Test::default_padding
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached:
    - Botan_Tests::PK_Test::algo_name
    - Test_Error
    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: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    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:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_pubkey.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: Botan_Tests::PK_Signature_Generation_Test::test_rng
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached:
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::unique_ptr<Botan::RandomNumberGenerator>
    signature: std::unique_ptr<Botan::RandomNumberGenerator> test_rng(const std::vector<uint8_t>&
      nonce) 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: 67
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 67
    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: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    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: 85
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 85
    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: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    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: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    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: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    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: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    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: 121
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 121
    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: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    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:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_pubkey.h:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: Botan_Tests::PK_Encryption_Decryption_Test::test_rng
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached:
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::unique_ptr<Botan::RandomNumberGenerator>
    signature: std::unique_ptr<Botan::RandomNumberGenerator> test_rng(const std::vector<uint8_t>&
      nonce) 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: 141
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 141
    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: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    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: 157
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 157
    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:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_pubkey.h:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 162
    functionName: Botan_Tests::PK_Key_Agreement_Test::agreement_should_fail
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    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: 168
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 168
    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: 180
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 180
    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_UNUSED
      Src: /src/botan/src/tests/test_pubkey.h:195,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.h:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - param
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: Botan_Tests::PK_Key_Generation_Test::algo_name
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 1
    functionsReached:
    - BOTAN_UNUSED
    - 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: 26
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 26
    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: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    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:34,1
    - Dst: Botan_Tests::PK_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.h:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: Botan_Tests::PK_Test::default_padding
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached:
    - Botan_Tests::PK_Test::algo_name
    - Test_Error
    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: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    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:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_pubkey.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: Botan_Tests::PK_Signature_Generation_Test::test_rng
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached:
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::unique_ptr<Botan::RandomNumberGenerator>
    signature: std::unique_ptr<Botan::RandomNumberGenerator> test_rng(const std::vector<uint8_t>&
      nonce) 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: 67
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 67
    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: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    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: 85
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 85
    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: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    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: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    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: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    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: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    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: 121
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 121
    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: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    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:
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_pubkey.h:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: Botan_Tests::PK_Encryption_Decryption_Test::test_rng
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached:
    - std::make_unique<Fixed_Output_RNG>
    linkageType: ''
    returnType: std::unique_ptr<Botan::RandomNumberGenerator>
    signature: std::unique_ptr<Botan::RandomNumberGenerator> test_rng(const std::vector<uint8_t>&
      nonce) 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: 141
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 141
    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: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    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: 157
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 157
    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:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_pubkey.h:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 162
    functionName: Botan_Tests::PK_Key_Agreement_Test::agreement_should_fail
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    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: 168
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 168
    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: 180
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 180
    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_UNUSED
      Src: /src/botan/src/tests/test_pubkey.h:195,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.h:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - param
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: Botan_Tests::PK_Key_Generation_Test::algo_name
    functionSourceFile: /src/botan/src/tests/test_pubkey.h
    functionUses: 2
    functionsReached:
    - BOTAN_UNUSED
    - 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: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    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:26,1
    - Dst: Botan::MessageAuthenticationCode::providers
      Src: /src/botan/src/tests/test_mac.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: Botan_Tests::Message_Auth_Tests::possible_providers
    functionSourceFile: /src/botan/src/tests/test_mac.cpp
    functionUses: 0
    functionsReached:
    - provider_filter
    - Botan::MessageAuthenticationCode::providers
    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:30,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_mac.cpp:31,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_mac.cpp:32,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_mac.cpp:33,1
    - Dst: Botan_Tests::Message_Auth_Tests::possible_providers
      Src: /src/botan/src/tests/test_mac.cpp:37,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_mac.cpp:39,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_mac.cpp:40,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_mac.cpp:45,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_mac.cpp:48,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_mac.cpp:48,1
    - Dst: auto::provider
      Src: /src/botan/src/tests/test_mac.cpp:52,1
    - Dst: Test::Result::test_is_nonempty
      Src: /src/botan/src/tests/test_mac.cpp:54,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_mac.cpp:55,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_mac.cpp:55,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:59,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mac.cpp:59,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:59,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_mac.cpp:60,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_mac.cpp:62,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_mac.cpp:65,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_mac.cpp:65,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:66,1
    - Dst: Test::Result::test_eq
      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::start
      Src: /src/botan/src/tests/test_mac.cpp:68,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:69,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_mac.cpp:70,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:70,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:72,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:73,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:74,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_mac.cpp:75,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:75,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_mac.cpp:77,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:78,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:79,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_mac.cpp:80,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:80,1
    - Dst: auto::fresh_key_required_per_message
      Src: /src/botan/src/tests/test_mac.cpp:83,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:85,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:86,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_mac.cpp:87,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:87,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:92,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:93,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:94,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_mac.cpp:95,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_mac.cpp:96,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_mac.cpp:96,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:99,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:100,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:101,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_mac.cpp:104,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_mac.cpp:105,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_mac.cpp:105,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_mac.cpp:105,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_mac.cpp:106,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_mac.cpp:106,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_mac.cpp:106,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:107,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:108,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:109,1
    - Dst: Botan_Tests::Message_Auth_Tests::rng
      Src: /src/botan/src/tests/test_mac.cpp:109,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_mac.cpp:111,1
    - Dst: auto::verify_mac
      Src: /src/botan/src/tests/test_mac.cpp:111,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mac.cpp:111,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:111,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:113,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:114,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:115,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:117,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:118,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:118,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:119,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:119,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_mac.cpp:121,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:121,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:124,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:125,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:127,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:128,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:128,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:129,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:129,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_mac.cpp:131,1
    - Dst: auto::verify_mac
      Src: /src/botan/src/tests/test_mac.cpp:131,1
    - Dst: std::vector::data
      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: auto::clear
      Src: /src/botan/src/tests/test_mac.cpp:134,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:138,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mac.cpp:138,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:138,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_mac.cpp:139,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_mac.cpp:141,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_mac.cpp:145,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:146,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mac.cpp:146,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_mac.cpp:147,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_mac.cpp:149,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 82
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 154
    functionName: Botan_Tests::Message_Auth_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_mac.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - auto::set_key
    - Test::Result::test_failure
    - auto::get
    - Botan_Tests::Message_Auth_Tests::rng
    - Botan_Tests::Message_Auth_Tests::possible_providers
    - auto::name
    - auto::has_keying_material
    - std::vector::data
    - auto::fresh_key_required_per_message
    - auto::verify_mac
    - get_req_bin
    - Test::Result::test_success
    - auto::new_object
    - Test::Result::note_missing
    - auto::clear
    - Test::Result::test_is_nonempty
    - std::vector::empty
    - std::vector::size
    - auto::final
    - Botan::fmt
    - get_opt_bin
    - auto::output_length
    - auto::provider
    - Test::Result::test_eq
    - auto::start
    - Botan::MessageAuthenticationCode::create
    - Test::Result::confirm
    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::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:26,1
    - Dst: Botan::MessageAuthenticationCode::providers
      Src: /src/botan/src/tests/test_mac.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: Botan_Tests::Message_Auth_Tests::possible_providers
    functionSourceFile: /src/botan/src/tests/test_mac.cpp
    functionUses: 1
    functionsReached:
    - provider_filter
    - Botan::MessageAuthenticationCode::providers
    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:30,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_mac.cpp:31,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_mac.cpp:32,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_mac.cpp:33,1
    - Dst: Botan_Tests::Message_Auth_Tests::possible_providers
      Src: /src/botan/src/tests/test_mac.cpp:37,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_mac.cpp:39,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_mac.cpp:40,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_mac.cpp:45,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_mac.cpp:48,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_mac.cpp:48,1
    - Dst: auto::provider
      Src: /src/botan/src/tests/test_mac.cpp:52,1
    - Dst: Test::Result::test_is_nonempty
      Src: /src/botan/src/tests/test_mac.cpp:54,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_mac.cpp:55,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_mac.cpp:55,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:59,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mac.cpp:59,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:59,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_mac.cpp:60,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_mac.cpp:62,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_mac.cpp:65,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_mac.cpp:65,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:66,1
    - Dst: Test::Result::test_eq
      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::start
      Src: /src/botan/src/tests/test_mac.cpp:68,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:69,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_mac.cpp:70,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:70,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:72,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:73,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:74,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_mac.cpp:75,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:75,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_mac.cpp:77,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:78,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:79,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_mac.cpp:80,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:80,1
    - Dst: auto::fresh_key_required_per_message
      Src: /src/botan/src/tests/test_mac.cpp:83,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:85,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:86,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_mac.cpp:87,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:87,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:92,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:93,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:94,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_mac.cpp:95,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_mac.cpp:96,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_mac.cpp:96,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:99,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:100,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:101,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_mac.cpp:104,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_mac.cpp:105,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_mac.cpp:105,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_mac.cpp:105,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_mac.cpp:106,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_mac.cpp:106,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_mac.cpp:106,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:107,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:108,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:109,1
    - Dst: Botan_Tests::Message_Auth_Tests::rng
      Src: /src/botan/src/tests/test_mac.cpp:109,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_mac.cpp:111,1
    - Dst: auto::verify_mac
      Src: /src/botan/src/tests/test_mac.cpp:111,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mac.cpp:111,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:111,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:113,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:114,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:115,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:117,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:118,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:118,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:119,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:119,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_mac.cpp:121,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:121,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:124,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:125,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:127,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:128,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:128,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:129,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:129,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_mac.cpp:131,1
    - Dst: auto::verify_mac
      Src: /src/botan/src/tests/test_mac.cpp:131,1
    - Dst: std::vector::data
      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: auto::clear
      Src: /src/botan/src/tests/test_mac.cpp:134,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:138,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mac.cpp:138,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:138,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_mac.cpp:139,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_mac.cpp:141,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_mac.cpp:145,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:146,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mac.cpp:146,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_mac.cpp:147,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_mac.cpp:149,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 82
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 154
    functionName: Botan_Tests::Message_Auth_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_mac.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - auto::set_key
    - Test::Result::test_failure
    - auto::get
    - Botan_Tests::Message_Auth_Tests::rng
    - Botan_Tests::Message_Auth_Tests::possible_providers
    - auto::name
    - auto::has_keying_material
    - std::vector::data
    - auto::fresh_key_required_per_message
    - auto::verify_mac
    - get_req_bin
    - Test::Result::test_success
    - auto::new_object
    - Test::Result::note_missing
    - auto::clear
    - Test::Result::test_is_nonempty
    - std::vector::empty
    - std::vector::size
    - auto::final
    - Botan::fmt
    - get_opt_bin
    - auto::output_length
    - auto::provider
    - Test::Result::test_eq
    - auto::start
    - Botan::MessageAuthenticationCode::create
    - Test::Result::confirm
    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::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:26,1
    - Dst: Botan::MessageAuthenticationCode::providers
      Src: /src/botan/src/tests/test_mac.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: Botan_Tests::Message_Auth_Tests::possible_providers
    functionSourceFile: /src/botan/src/tests/test_mac.cpp
    functionUses: 2
    functionsReached:
    - provider_filter
    - Botan::MessageAuthenticationCode::providers
    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:30,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_mac.cpp:31,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_mac.cpp:32,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_mac.cpp:33,1
    - Dst: Botan_Tests::Message_Auth_Tests::possible_providers
      Src: /src/botan/src/tests/test_mac.cpp:37,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_mac.cpp:39,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_mac.cpp:40,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_mac.cpp:45,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_mac.cpp:48,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_mac.cpp:48,1
    - Dst: auto::provider
      Src: /src/botan/src/tests/test_mac.cpp:52,1
    - Dst: Test::Result::test_is_nonempty
      Src: /src/botan/src/tests/test_mac.cpp:54,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_mac.cpp:55,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_mac.cpp:55,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:59,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mac.cpp:59,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:59,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_mac.cpp:60,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_mac.cpp:62,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_mac.cpp:65,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_mac.cpp:65,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:66,1
    - Dst: Test::Result::test_eq
      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::start
      Src: /src/botan/src/tests/test_mac.cpp:68,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:69,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_mac.cpp:70,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:70,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:72,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:73,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:74,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_mac.cpp:75,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:75,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_mac.cpp:77,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:78,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:79,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_mac.cpp:80,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:80,1
    - Dst: auto::fresh_key_required_per_message
      Src: /src/botan/src/tests/test_mac.cpp:83,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:85,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:86,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_mac.cpp:87,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:87,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:92,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:93,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:94,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_mac.cpp:95,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_mac.cpp:96,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_mac.cpp:96,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:99,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:100,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:101,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_mac.cpp:104,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_mac.cpp:105,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_mac.cpp:105,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_mac.cpp:105,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_mac.cpp:106,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_mac.cpp:106,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_mac.cpp:106,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:107,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:108,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:109,1
    - Dst: Botan_Tests::Message_Auth_Tests::rng
      Src: /src/botan/src/tests/test_mac.cpp:109,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_mac.cpp:111,1
    - Dst: auto::verify_mac
      Src: /src/botan/src/tests/test_mac.cpp:111,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mac.cpp:111,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:111,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:113,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:114,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:115,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:117,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:118,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:118,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:119,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:119,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_mac.cpp:121,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:121,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:124,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:125,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:127,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:128,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:128,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:129,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:129,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_mac.cpp:131,1
    - Dst: auto::verify_mac
      Src: /src/botan/src/tests/test_mac.cpp:131,1
    - Dst: std::vector::data
      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: auto::clear
      Src: /src/botan/src/tests/test_mac.cpp:134,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:138,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mac.cpp:138,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:138,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_mac.cpp:139,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_mac.cpp:141,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_mac.cpp:145,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:146,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mac.cpp:146,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_mac.cpp:147,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_mac.cpp:149,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 82
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 154
    functionName: Botan_Tests::Message_Auth_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_mac.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - auto::set_key
    - Test::Result::test_failure
    - auto::get
    - Botan_Tests::Message_Auth_Tests::rng
    - Botan_Tests::Message_Auth_Tests::possible_providers
    - auto::name
    - auto::has_keying_material
    - std::vector::data
    - auto::fresh_key_required_per_message
    - auto::verify_mac
    - get_req_bin
    - Test::Result::test_success
    - auto::new_object
    - Test::Result::note_missing
    - auto::clear
    - Test::Result::test_is_nonempty
    - std::vector::empty
    - std::vector::size
    - auto::final
    - Botan::fmt
    - get_opt_bin
    - auto::output_length
    - auto::provider
    - Test::Result::test_eq
    - auto::start
    - Botan::MessageAuthenticationCode::create
    - Test::Result::confirm
    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::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:26,1
    - Dst: Botan::MessageAuthenticationCode::providers
      Src: /src/botan/src/tests/test_mac.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: Botan_Tests::Message_Auth_Tests::possible_providers
    functionSourceFile: /src/botan/src/tests/test_mac.cpp
    functionUses: 3
    functionsReached:
    - provider_filter
    - Botan::MessageAuthenticationCode::providers
    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:30,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_mac.cpp:31,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_mac.cpp:32,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_mac.cpp:33,1
    - Dst: Botan_Tests::Message_Auth_Tests::possible_providers
      Src: /src/botan/src/tests/test_mac.cpp:37,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_mac.cpp:39,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_mac.cpp:40,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_mac.cpp:45,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_mac.cpp:48,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_mac.cpp:48,1
    - Dst: auto::provider
      Src: /src/botan/src/tests/test_mac.cpp:52,1
    - Dst: Test::Result::test_is_nonempty
      Src: /src/botan/src/tests/test_mac.cpp:54,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_mac.cpp:55,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_mac.cpp:55,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:59,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mac.cpp:59,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:59,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_mac.cpp:60,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_mac.cpp:62,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_mac.cpp:65,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_mac.cpp:65,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:66,1
    - Dst: Test::Result::test_eq
      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::start
      Src: /src/botan/src/tests/test_mac.cpp:68,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:69,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_mac.cpp:70,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:70,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:72,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:73,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:74,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_mac.cpp:75,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:75,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_mac.cpp:77,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:78,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:79,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_mac.cpp:80,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:80,1
    - Dst: auto::fresh_key_required_per_message
      Src: /src/botan/src/tests/test_mac.cpp:83,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:85,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:86,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_mac.cpp:87,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:87,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:92,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:93,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:94,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_mac.cpp:95,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_mac.cpp:96,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_mac.cpp:96,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:99,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:100,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:101,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_mac.cpp:104,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_mac.cpp:105,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_mac.cpp:105,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_mac.cpp:105,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_mac.cpp:106,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_mac.cpp:106,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_mac.cpp:106,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:107,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:108,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:109,1
    - Dst: Botan_Tests::Message_Auth_Tests::rng
      Src: /src/botan/src/tests/test_mac.cpp:109,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_mac.cpp:111,1
    - Dst: auto::verify_mac
      Src: /src/botan/src/tests/test_mac.cpp:111,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mac.cpp:111,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:111,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:113,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:114,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:115,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:117,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:118,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:118,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:119,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:119,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_mac.cpp:121,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:121,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_mac.cpp:124,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_mac.cpp:125,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:127,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:128,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:128,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:129,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:129,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_mac.cpp:131,1
    - Dst: auto::verify_mac
      Src: /src/botan/src/tests/test_mac.cpp:131,1
    - Dst: std::vector::data
      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: auto::clear
      Src: /src/botan/src/tests/test_mac.cpp:134,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_mac.cpp:138,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mac.cpp:138,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_mac.cpp:138,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_mac.cpp:139,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_mac.cpp:141,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_mac.cpp:145,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_mac.cpp:146,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_mac.cpp:146,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_mac.cpp:147,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_mac.cpp:149,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 82
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 154
    functionName: Botan_Tests::Message_Auth_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_mac.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - auto::set_key
    - Test::Result::test_failure
    - auto::get
    - Botan_Tests::Message_Auth_Tests::rng
    - Botan_Tests::Message_Auth_Tests::possible_providers
    - auto::name
    - auto::has_keying_material
    - std::vector::data
    - auto::fresh_key_required_per_message
    - auto::verify_mac
    - get_req_bin
    - Test::Result::test_success
    - auto::new_object
    - Test::Result::note_missing
    - auto::clear
    - Test::Result::test_is_nonempty
    - std::vector::empty
    - std::vector::size
    - auto::final
    - Botan::fmt
    - get_opt_bin
    - auto::output_length
    - auto::provider
    - Test::Result::test_eq
    - auto::start
    - Botan::MessageAuthenticationCode::create
    - Test::Result::confirm
    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: 17
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 17
    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:22,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_blowfish.cpp:23,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_blowfish.cpp:24,1
    - Dst: Botan::Blowfish::salted_set_key
      Src: /src/botan/src/tests/test_blowfish.cpp:28,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_blowfish.cpp:28,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_blowfish.cpp:28,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_blowfish.cpp:28,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_blowfish.cpp:28,1
    - Dst: Botan::Blowfish::encrypt
      Src: /src/botan/src/tests/test_blowfish.cpp:31,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_blowfish.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 36
    functionName: Botan_Tests::Blowfish_Salted_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_blowfish.cpp
    functionUses: 0
    functionsReached:
    - Botan::Blowfish::encrypt
    - std::vector::data
    - Botan::Blowfish::salted_set_key
    - Test::Result::test_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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 17
    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:22,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_blowfish.cpp:23,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_blowfish.cpp:24,1
    - Dst: Botan::Blowfish::salted_set_key
      Src: /src/botan/src/tests/test_blowfish.cpp:28,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_blowfish.cpp:28,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_blowfish.cpp:28,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_blowfish.cpp:28,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_blowfish.cpp:28,1
    - Dst: Botan::Blowfish::encrypt
      Src: /src/botan/src/tests/test_blowfish.cpp:31,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_blowfish.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 36
    functionName: Botan_Tests::Blowfish_Salted_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_blowfish.cpp
    functionUses: 0
    functionsReached:
    - Botan::Blowfish::encrypt
    - std::vector::data
    - Botan::Blowfish::salted_set_key
    - Test::Result::test_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: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 24
    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: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_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:34,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:36,1
    - Dst: Test::Result::test_gt
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:37,1
    - Dst: Botan::Flatfile_Certificate_Store::all_subjects
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:37,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:39,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:39,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 45
    functionName: Botan_Tests::open_certificate_store
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::end_timer
    - Test::Result::test_failure
    - Test::Result::test_gt
    - what
    - Test::Result::test_success
    - Botan::Flatfile_Certificate_Store::all_subjects
    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:51,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:53,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:53,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:54,1
    - Dst: Test::Result::test_not_nullopt
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:56,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:57,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:58,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:58,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:59,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:59,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:59,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:62,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:62,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:65,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 71
    functionName: Botan_Tests::find_certificate_by_pubkey_sha1
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::test_throws
    - Test::Result::end_timer
    - auto::front
    - Test::Result::test_failure
    - Botan_Tests::get_subject_cn
    - Test::Result::test_eq
    - Botan::Flatfile_Certificate_Store::find_cert_by_pubkey_sha1
    - Test::Result::test_not_nullopt
    - what
    - Botan_Tests::get_key_id
    - auto::size
    - auto::subject_dn
    - Test::Result::test_int_eq
    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:77,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:79,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:81,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:81,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:82,1
    - Dst: Test::Result::test_not_nullopt
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:84,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:85,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:86,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:86,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:87,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:87,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:87,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:90,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 94
    functionName: Botan_Tests::find_cert_by_subject_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::end_timer
    - auto::front
    - Test::Result::test_failure
    - Botan_Tests::get_subject_cn
    - Test::Result::test_eq
    - Botan_Tests::get_dn
    - std::vector<uint8_t>
    - Test::Result::test_not_nullopt
    - what
    - auto::subject_dn
    - Botan::Flatfile_Certificate_Store::find_cert
    - auto::size
    - Test::Result::test_int_eq
    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:100,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:102,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:104,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:104,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:106,1
    - Dst: Test::Result::test_not_nullopt
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:108,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:109,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:110,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:110,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:111,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:111,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:114,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 118
    functionName: Botan_Tests::find_cert_by_utf8_subject_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::end_timer
    - auto::front
    - Botan_Tests::get_utf8_dn
    - Test::Result::test_failure
    - Test::Result::test_is_eq
    - Test::Result::test_eq
    - std::vector<uint8_t>
    - Test::Result::test_not_nullopt
    - what
    - auto::subject_dn
    - Botan::Flatfile_Certificate_Store::find_cert
    - auto::size
    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:124,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:126,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:128,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:128,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:129,1
    - Dst: Test::Result::test_not_nullopt
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:131,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:132,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:133,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:133,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:134,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:134,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:134,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:137,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 141
    functionName: Botan_Tests::find_cert_by_subject_dn_and_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::end_timer
    - auto::front
    - Test::Result::test_failure
    - Botan_Tests::get_subject_cn
    - Test::Result::test_eq
    - Botan_Tests::get_dn
    - Test::Result::test_not_nullopt
    - what
    - Botan_Tests::get_key_id
    - Botan::Flatfile_Certificate_Store::find_cert
    - auto::size
    - auto::subject_dn
    - Test::Result::test_int_eq
    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:147,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:149,1
    - Dst: Botan::Flatfile_Certificate_Store::find_all_certs
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:151,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:151,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:152,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:154,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:154,1
    - Dst: Test::Result::test_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: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:156,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:157,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:157,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:158,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:158,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:158,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:161,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 143
    functionDepth: 3
    functionLinenumber: 143
    functionLinenumberEnd: 165
    functionName: Botan_Tests::find_certs_by_subject_dn_and_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - auto::empty
    - Test::Result::end_timer
    - auto::front
    - Botan::Flatfile_Certificate_Store::find_all_certs
    - Test::Result::test_failure
    - Botan_Tests::get_subject_cn
    - Test::Result::test_eq
    - Botan_Tests::get_dn
    - Test::Result::confirm
    - what
    - Botan_Tests::get_key_id
    - auto::size
    - Test::Result::test_int_eq
    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:171,1
    - Dst: Botan::Flatfile_Certificate_Store::all_subjects
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:173,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:174,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:176,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:176,1
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:177,1
    - Dst: std::find_if
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:178,1
    - Dst: auto::cbegin
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:179,1
    - Dst: auto::cend
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:179,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:181,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:181,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:182,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:186,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:186,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 167
    functionDepth: 3
    functionLinenumber: 167
    functionLinenumberEnd: 190
    functionName: Botan_Tests::find_all_subjects
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - auto::empty
    - Test::Result::end_timer
    - auto::end
    - Test::Result::test_failure
    - auto::cbegin
    - Botan_Tests::get_dn
    - Test::Result::confirm
    - what
    - auto::cend
    - std::find_if
    - Botan::Flatfile_Certificate_Store::all_subjects
    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:196,1
    - Dst: Botan_Tests::get_unknown_key_id
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:197,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:199,1
    - Dst: Botan::Flatfile_Certificate_Store::find_all_certs
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:202,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:203,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:204,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:205,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:207,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:207,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:208,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:209,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:211,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 192
    functionDepth: 3
    functionLinenumber: 192
    functionLinenumberEnd: 215
    functionName: Botan_Tests::no_certificate_matches
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - auto::empty
    - Test::Result::end_timer
    - Botan_Tests::get_unknown_dn
    - Botan::Flatfile_Certificate_Store::find_all_certs
    - Test::Result::test_failure
    - Botan::Flatfile_Certificate_Store::find_cert_by_pubkey_sha1
    - Test::Result::confirm
    - what
    - Botan::Flatfile_Certificate_Store::find_cert
    - 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:221,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:223,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 229
    functionName: Botan_Tests::certstore_contains_user_certificate
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::test_failure
    - Test::Result::test_success
    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:235,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert_by_issuer_dn_and_serial_number
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:237,1
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:237,1
    - Dst: Botan_Tests::get_serial_number
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:237,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:238,1
    - Dst: Test::Result::test_not_nullopt
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:240,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:241,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:242,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:242,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:243,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:243,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:243,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:244,1
    - Dst: auto::serial_number
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:244,1
    - Dst: Botan_Tests::get_serial_number
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:244,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:247,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 231
    functionDepth: 3
    functionLinenumber: 231
    functionLinenumberEnd: 251
    functionName: Botan_Tests::find_cert_by_issuer_dn_and_serial_number
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - auto::serial_number
    - Test::Result::end_timer
    - auto::front
    - Test::Result::test_failure
    - Botan_Tests::get_subject_cn
    - Test::Result::test_eq
    - Botan::Flatfile_Certificate_Store::find_cert_by_issuer_dn_and_serial_number
    - Botan_Tests::get_dn
    - Botan_Tests::get_serial_number
    - Test::Result::test_not_nullopt
    - what
    - auto::subject_dn
    - auto::size
    - Test::Result::test_int_eq
    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:258,1
    - Dst: open_certificate_store
      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_certificate_by_pubkey_sha1
      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
      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_cert_by_utf8_subject_dn
      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_cert_by_subject_dn_and_key_id
      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: find_certs_by_subject_dn_and_key_id
      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: find_all_subjects
      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: no_certificate_matches
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:265,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:266,1
    - Dst: certstore_contains_user_certificate
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:266,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:267,1
    - Dst: find_cert_by_issuer_dn_and_serial_number
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 270
    functionName: Botan_Tests::Certstor_Flatfile_Tests::run
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - find_certs_by_subject_dn_and_key_id
    - find_certificate_by_pubkey_sha1
    - no_certificate_matches
    - find_cert_by_subject_dn
    - find_cert_by_utf8_subject_dn
    - find_cert_by_subject_dn_and_key_id
    - find_cert_by_issuer_dn_and_serial_number
    - open_certificate_store
    - certstore_contains_user_certificate
    - find_all_subjects
    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:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 24
    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: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_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:34,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:36,1
    - Dst: Test::Result::test_gt
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:37,1
    - Dst: Botan::Flatfile_Certificate_Store::all_subjects
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:37,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:39,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:39,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 45
    functionName: Botan_Tests::open_certificate_store
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::end_timer
    - Test::Result::test_failure
    - Test::Result::test_gt
    - what
    - Test::Result::test_success
    - Botan::Flatfile_Certificate_Store::all_subjects
    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:51,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:53,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:53,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:54,1
    - Dst: Test::Result::test_not_nullopt
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:56,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:57,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:58,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:58,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:59,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:59,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:59,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:62,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:62,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:65,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 71
    functionName: Botan_Tests::find_certificate_by_pubkey_sha1
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::test_throws
    - Test::Result::end_timer
    - auto::front
    - Test::Result::test_failure
    - Botan_Tests::get_subject_cn
    - Test::Result::test_eq
    - Botan::Flatfile_Certificate_Store::find_cert_by_pubkey_sha1
    - Test::Result::test_not_nullopt
    - what
    - Botan_Tests::get_key_id
    - auto::size
    - auto::subject_dn
    - Test::Result::test_int_eq
    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:77,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:79,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:81,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:81,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:82,1
    - Dst: Test::Result::test_not_nullopt
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:84,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:85,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:86,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:86,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:87,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:87,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:87,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:90,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 94
    functionName: Botan_Tests::find_cert_by_subject_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::end_timer
    - auto::front
    - Test::Result::test_failure
    - Botan_Tests::get_subject_cn
    - Test::Result::test_eq
    - Botan_Tests::get_dn
    - std::vector<uint8_t>
    - Test::Result::test_not_nullopt
    - what
    - auto::subject_dn
    - Botan::Flatfile_Certificate_Store::find_cert
    - auto::size
    - Test::Result::test_int_eq
    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:100,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:102,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:104,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:104,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:106,1
    - Dst: Test::Result::test_not_nullopt
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:108,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:109,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:110,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:110,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:111,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:111,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:114,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 118
    functionName: Botan_Tests::find_cert_by_utf8_subject_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::end_timer
    - auto::front
    - Botan_Tests::get_utf8_dn
    - Test::Result::test_failure
    - Test::Result::test_is_eq
    - Test::Result::test_eq
    - std::vector<uint8_t>
    - Test::Result::test_not_nullopt
    - what
    - auto::subject_dn
    - Botan::Flatfile_Certificate_Store::find_cert
    - auto::size
    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:124,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:126,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:128,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:128,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:129,1
    - Dst: Test::Result::test_not_nullopt
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:131,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:132,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:133,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:133,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:134,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:134,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:134,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:137,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 141
    functionName: Botan_Tests::find_cert_by_subject_dn_and_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::end_timer
    - auto::front
    - Test::Result::test_failure
    - Botan_Tests::get_subject_cn
    - Test::Result::test_eq
    - Botan_Tests::get_dn
    - Test::Result::test_not_nullopt
    - what
    - Botan_Tests::get_key_id
    - Botan::Flatfile_Certificate_Store::find_cert
    - auto::size
    - auto::subject_dn
    - Test::Result::test_int_eq
    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:147,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:149,1
    - Dst: Botan::Flatfile_Certificate_Store::find_all_certs
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:151,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:151,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:152,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:154,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:154,1
    - Dst: Test::Result::test_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: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:156,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:157,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:157,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:158,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:158,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:158,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:161,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 143
    functionDepth: 3
    functionLinenumber: 143
    functionLinenumberEnd: 165
    functionName: Botan_Tests::find_certs_by_subject_dn_and_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - auto::empty
    - Test::Result::end_timer
    - auto::front
    - Botan::Flatfile_Certificate_Store::find_all_certs
    - Test::Result::test_failure
    - Botan_Tests::get_subject_cn
    - Test::Result::test_eq
    - Botan_Tests::get_dn
    - Test::Result::confirm
    - what
    - Botan_Tests::get_key_id
    - auto::size
    - Test::Result::test_int_eq
    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:171,1
    - Dst: Botan::Flatfile_Certificate_Store::all_subjects
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:173,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:174,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:176,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:176,1
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:177,1
    - Dst: std::find_if
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:178,1
    - Dst: auto::cbegin
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:179,1
    - Dst: auto::cend
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:179,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:181,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:181,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:182,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:186,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:186,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 167
    functionDepth: 3
    functionLinenumber: 167
    functionLinenumberEnd: 190
    functionName: Botan_Tests::find_all_subjects
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - auto::empty
    - Test::Result::end_timer
    - auto::end
    - Test::Result::test_failure
    - auto::cbegin
    - Botan_Tests::get_dn
    - Test::Result::confirm
    - what
    - auto::cend
    - std::find_if
    - Botan::Flatfile_Certificate_Store::all_subjects
    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:196,1
    - Dst: Botan_Tests::get_unknown_key_id
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:197,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:199,1
    - Dst: Botan::Flatfile_Certificate_Store::find_all_certs
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:202,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:203,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:204,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:205,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:207,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:207,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:208,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:209,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:211,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 192
    functionDepth: 3
    functionLinenumber: 192
    functionLinenumberEnd: 215
    functionName: Botan_Tests::no_certificate_matches
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - auto::empty
    - Test::Result::end_timer
    - Botan_Tests::get_unknown_dn
    - Botan::Flatfile_Certificate_Store::find_all_certs
    - Test::Result::test_failure
    - Botan::Flatfile_Certificate_Store::find_cert_by_pubkey_sha1
    - Test::Result::confirm
    - what
    - Botan::Flatfile_Certificate_Store::find_cert
    - 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:221,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:223,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 229
    functionName: Botan_Tests::certstore_contains_user_certificate
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::test_failure
    - Test::Result::test_success
    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:235,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert_by_issuer_dn_and_serial_number
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:237,1
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:237,1
    - Dst: Botan_Tests::get_serial_number
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:237,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:238,1
    - Dst: Test::Result::test_not_nullopt
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:240,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:241,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:242,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:242,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:243,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:243,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:243,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:244,1
    - Dst: auto::serial_number
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:244,1
    - Dst: Botan_Tests::get_serial_number
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:244,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:247,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 231
    functionDepth: 3
    functionLinenumber: 231
    functionLinenumberEnd: 251
    functionName: Botan_Tests::find_cert_by_issuer_dn_and_serial_number
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - auto::serial_number
    - Test::Result::end_timer
    - auto::front
    - Test::Result::test_failure
    - Botan_Tests::get_subject_cn
    - Test::Result::test_eq
    - Botan::Flatfile_Certificate_Store::find_cert_by_issuer_dn_and_serial_number
    - Botan_Tests::get_dn
    - Botan_Tests::get_serial_number
    - Test::Result::test_not_nullopt
    - what
    - auto::subject_dn
    - auto::size
    - Test::Result::test_int_eq
    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:258,1
    - Dst: open_certificate_store
      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_certificate_by_pubkey_sha1
      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
      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_cert_by_utf8_subject_dn
      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_cert_by_subject_dn_and_key_id
      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: find_certs_by_subject_dn_and_key_id
      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: find_all_subjects
      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: no_certificate_matches
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:265,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:266,1
    - Dst: certstore_contains_user_certificate
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:266,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:267,1
    - Dst: find_cert_by_issuer_dn_and_serial_number
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 270
    functionName: Botan_Tests::Certstor_Flatfile_Tests::run
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - find_certs_by_subject_dn_and_key_id
    - find_certificate_by_pubkey_sha1
    - no_certificate_matches
    - find_cert_by_subject_dn
    - find_cert_by_utf8_subject_dn
    - find_cert_by_subject_dn_and_key_id
    - find_cert_by_issuer_dn_and_serial_number
    - open_certificate_store
    - certstore_contains_user_certificate
    - find_all_subjects
    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:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 24
    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: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_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:34,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:36,1
    - Dst: Test::Result::test_gt
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:37,1
    - Dst: Botan::Flatfile_Certificate_Store::all_subjects
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:37,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:39,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:39,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 45
    functionName: Botan_Tests::open_certificate_store
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::end_timer
    - Test::Result::test_failure
    - Test::Result::test_gt
    - what
    - Test::Result::test_success
    - Botan::Flatfile_Certificate_Store::all_subjects
    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:51,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:53,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:53,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:54,1
    - Dst: Test::Result::test_not_nullopt
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:56,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:57,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:58,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:58,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:59,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:59,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:59,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:62,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:62,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:65,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 71
    functionName: Botan_Tests::find_certificate_by_pubkey_sha1
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::test_throws
    - Test::Result::end_timer
    - auto::front
    - Test::Result::test_failure
    - Botan_Tests::get_subject_cn
    - Test::Result::test_eq
    - Botan::Flatfile_Certificate_Store::find_cert_by_pubkey_sha1
    - Test::Result::test_not_nullopt
    - what
    - Botan_Tests::get_key_id
    - auto::size
    - auto::subject_dn
    - Test::Result::test_int_eq
    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:77,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:79,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:81,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:81,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:82,1
    - Dst: Test::Result::test_not_nullopt
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:84,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:85,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:86,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:86,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:87,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:87,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:87,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:90,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 94
    functionName: Botan_Tests::find_cert_by_subject_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::end_timer
    - auto::front
    - Test::Result::test_failure
    - Botan_Tests::get_subject_cn
    - Test::Result::test_eq
    - Botan_Tests::get_dn
    - std::vector<uint8_t>
    - Test::Result::test_not_nullopt
    - what
    - auto::subject_dn
    - Botan::Flatfile_Certificate_Store::find_cert
    - auto::size
    - Test::Result::test_int_eq
    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:100,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:102,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:104,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:104,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:106,1
    - Dst: Test::Result::test_not_nullopt
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:108,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:109,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:110,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:110,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:111,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:111,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:114,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 118
    functionName: Botan_Tests::find_cert_by_utf8_subject_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::end_timer
    - auto::front
    - Botan_Tests::get_utf8_dn
    - Test::Result::test_failure
    - Test::Result::test_is_eq
    - Test::Result::test_eq
    - std::vector<uint8_t>
    - Test::Result::test_not_nullopt
    - what
    - auto::subject_dn
    - Botan::Flatfile_Certificate_Store::find_cert
    - auto::size
    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:124,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:126,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:128,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:128,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:129,1
    - Dst: Test::Result::test_not_nullopt
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:131,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:132,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:133,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:133,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:134,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:134,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:134,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:137,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 141
    functionName: Botan_Tests::find_cert_by_subject_dn_and_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::end_timer
    - auto::front
    - Test::Result::test_failure
    - Botan_Tests::get_subject_cn
    - Test::Result::test_eq
    - Botan_Tests::get_dn
    - Test::Result::test_not_nullopt
    - what
    - Botan_Tests::get_key_id
    - Botan::Flatfile_Certificate_Store::find_cert
    - auto::size
    - auto::subject_dn
    - Test::Result::test_int_eq
    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:147,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:149,1
    - Dst: Botan::Flatfile_Certificate_Store::find_all_certs
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:151,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:151,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:152,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:154,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:154,1
    - Dst: Test::Result::test_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: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:156,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:157,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:157,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:158,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:158,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:158,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:161,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 143
    functionDepth: 3
    functionLinenumber: 143
    functionLinenumberEnd: 165
    functionName: Botan_Tests::find_certs_by_subject_dn_and_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - auto::empty
    - Test::Result::end_timer
    - auto::front
    - Botan::Flatfile_Certificate_Store::find_all_certs
    - Test::Result::test_failure
    - Botan_Tests::get_subject_cn
    - Test::Result::test_eq
    - Botan_Tests::get_dn
    - Test::Result::confirm
    - what
    - Botan_Tests::get_key_id
    - auto::size
    - Test::Result::test_int_eq
    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:171,1
    - Dst: Botan::Flatfile_Certificate_Store::all_subjects
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:173,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:174,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:176,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:176,1
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:177,1
    - Dst: std::find_if
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:178,1
    - Dst: auto::cbegin
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:179,1
    - Dst: auto::cend
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:179,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:181,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:181,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:182,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:186,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:186,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 167
    functionDepth: 3
    functionLinenumber: 167
    functionLinenumberEnd: 190
    functionName: Botan_Tests::find_all_subjects
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - auto::empty
    - Test::Result::end_timer
    - auto::end
    - Test::Result::test_failure
    - auto::cbegin
    - Botan_Tests::get_dn
    - Test::Result::confirm
    - what
    - auto::cend
    - std::find_if
    - Botan::Flatfile_Certificate_Store::all_subjects
    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:196,1
    - Dst: Botan_Tests::get_unknown_key_id
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:197,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:199,1
    - Dst: Botan::Flatfile_Certificate_Store::find_all_certs
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:202,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:203,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:204,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:205,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:207,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:207,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:208,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:209,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:211,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 192
    functionDepth: 3
    functionLinenumber: 192
    functionLinenumberEnd: 215
    functionName: Botan_Tests::no_certificate_matches
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - auto::empty
    - Test::Result::end_timer
    - Botan_Tests::get_unknown_dn
    - Botan::Flatfile_Certificate_Store::find_all_certs
    - Test::Result::test_failure
    - Botan::Flatfile_Certificate_Store::find_cert_by_pubkey_sha1
    - Test::Result::confirm
    - what
    - Botan::Flatfile_Certificate_Store::find_cert
    - 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:221,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:223,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 229
    functionName: Botan_Tests::certstore_contains_user_certificate
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::test_failure
    - Test::Result::test_success
    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:235,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert_by_issuer_dn_and_serial_number
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:237,1
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:237,1
    - Dst: Botan_Tests::get_serial_number
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:237,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:238,1
    - Dst: Test::Result::test_not_nullopt
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:240,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:241,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:242,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:242,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:243,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:243,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:243,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:244,1
    - Dst: auto::serial_number
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:244,1
    - Dst: Botan_Tests::get_serial_number
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:244,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:247,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 231
    functionDepth: 3
    functionLinenumber: 231
    functionLinenumberEnd: 251
    functionName: Botan_Tests::find_cert_by_issuer_dn_and_serial_number
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - auto::serial_number
    - Test::Result::end_timer
    - auto::front
    - Test::Result::test_failure
    - Botan_Tests::get_subject_cn
    - Test::Result::test_eq
    - Botan::Flatfile_Certificate_Store::find_cert_by_issuer_dn_and_serial_number
    - Botan_Tests::get_dn
    - Botan_Tests::get_serial_number
    - Test::Result::test_not_nullopt
    - what
    - auto::subject_dn
    - auto::size
    - Test::Result::test_int_eq
    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:258,1
    - Dst: open_certificate_store
      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_certificate_by_pubkey_sha1
      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
      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_cert_by_utf8_subject_dn
      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_cert_by_subject_dn_and_key_id
      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: find_certs_by_subject_dn_and_key_id
      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: find_all_subjects
      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: no_certificate_matches
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:265,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:266,1
    - Dst: certstore_contains_user_certificate
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:266,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:267,1
    - Dst: find_cert_by_issuer_dn_and_serial_number
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 270
    functionName: Botan_Tests::Certstor_Flatfile_Tests::run
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - find_certs_by_subject_dn_and_key_id
    - find_certificate_by_pubkey_sha1
    - no_certificate_matches
    - find_cert_by_subject_dn
    - find_cert_by_utf8_subject_dn
    - find_cert_by_subject_dn_and_key_id
    - find_cert_by_issuer_dn_and_serial_number
    - open_certificate_store
    - certstore_contains_user_certificate
    - find_all_subjects
    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:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 24
    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: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_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:34,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:36,1
    - Dst: Test::Result::test_gt
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:37,1
    - Dst: Botan::Flatfile_Certificate_Store::all_subjects
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:37,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:39,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:39,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 45
    functionName: Botan_Tests::open_certificate_store
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::end_timer
    - Test::Result::test_failure
    - Test::Result::test_gt
    - what
    - Test::Result::test_success
    - Botan::Flatfile_Certificate_Store::all_subjects
    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:51,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:53,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:53,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:54,1
    - Dst: Test::Result::test_not_nullopt
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:56,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:57,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:58,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:58,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:59,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:59,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:59,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:62,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:62,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:65,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 71
    functionName: Botan_Tests::find_certificate_by_pubkey_sha1
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::test_throws
    - Test::Result::end_timer
    - auto::front
    - Test::Result::test_failure
    - Botan_Tests::get_subject_cn
    - Test::Result::test_eq
    - Botan::Flatfile_Certificate_Store::find_cert_by_pubkey_sha1
    - Test::Result::test_not_nullopt
    - what
    - Botan_Tests::get_key_id
    - auto::size
    - auto::subject_dn
    - Test::Result::test_int_eq
    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:77,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:79,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:81,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:81,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:82,1
    - Dst: Test::Result::test_not_nullopt
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:84,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:85,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:86,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:86,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:87,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:87,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:87,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:90,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 94
    functionName: Botan_Tests::find_cert_by_subject_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::end_timer
    - auto::front
    - Test::Result::test_failure
    - Botan_Tests::get_subject_cn
    - Test::Result::test_eq
    - Botan_Tests::get_dn
    - std::vector<uint8_t>
    - Test::Result::test_not_nullopt
    - what
    - auto::subject_dn
    - Botan::Flatfile_Certificate_Store::find_cert
    - auto::size
    - Test::Result::test_int_eq
    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:100,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:102,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:104,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:104,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:106,1
    - Dst: Test::Result::test_not_nullopt
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:108,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:109,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:110,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:110,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:111,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:111,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:114,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 118
    functionName: Botan_Tests::find_cert_by_utf8_subject_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::end_timer
    - auto::front
    - Botan_Tests::get_utf8_dn
    - Test::Result::test_failure
    - Test::Result::test_is_eq
    - Test::Result::test_eq
    - std::vector<uint8_t>
    - Test::Result::test_not_nullopt
    - what
    - auto::subject_dn
    - Botan::Flatfile_Certificate_Store::find_cert
    - auto::size
    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:124,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:126,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:128,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:128,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:129,1
    - Dst: Test::Result::test_not_nullopt
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:131,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:132,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:133,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:133,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:134,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:134,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:134,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:137,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 141
    functionName: Botan_Tests::find_cert_by_subject_dn_and_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::end_timer
    - auto::front
    - Test::Result::test_failure
    - Botan_Tests::get_subject_cn
    - Test::Result::test_eq
    - Botan_Tests::get_dn
    - Test::Result::test_not_nullopt
    - what
    - Botan_Tests::get_key_id
    - Botan::Flatfile_Certificate_Store::find_cert
    - auto::size
    - auto::subject_dn
    - Test::Result::test_int_eq
    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:147,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:149,1
    - Dst: Botan::Flatfile_Certificate_Store::find_all_certs
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:151,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:151,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:152,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:154,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:154,1
    - Dst: Test::Result::test_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: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:156,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:157,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:157,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:158,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:158,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:158,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:161,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 143
    functionDepth: 3
    functionLinenumber: 143
    functionLinenumberEnd: 165
    functionName: Botan_Tests::find_certs_by_subject_dn_and_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - auto::empty
    - Test::Result::end_timer
    - auto::front
    - Botan::Flatfile_Certificate_Store::find_all_certs
    - Test::Result::test_failure
    - Botan_Tests::get_subject_cn
    - Test::Result::test_eq
    - Botan_Tests::get_dn
    - Test::Result::confirm
    - what
    - Botan_Tests::get_key_id
    - auto::size
    - Test::Result::test_int_eq
    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:171,1
    - Dst: Botan::Flatfile_Certificate_Store::all_subjects
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:173,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:174,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:176,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:176,1
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:177,1
    - Dst: std::find_if
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:178,1
    - Dst: auto::cbegin
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:179,1
    - Dst: auto::cend
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:179,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:181,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:181,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:182,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:186,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:186,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 167
    functionDepth: 3
    functionLinenumber: 167
    functionLinenumberEnd: 190
    functionName: Botan_Tests::find_all_subjects
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - auto::empty
    - Test::Result::end_timer
    - auto::end
    - Test::Result::test_failure
    - auto::cbegin
    - Botan_Tests::get_dn
    - Test::Result::confirm
    - what
    - auto::cend
    - std::find_if
    - Botan::Flatfile_Certificate_Store::all_subjects
    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:196,1
    - Dst: Botan_Tests::get_unknown_key_id
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:197,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:199,1
    - Dst: Botan::Flatfile_Certificate_Store::find_all_certs
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:202,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:203,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:204,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:205,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:207,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:207,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:208,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:209,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:211,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:211,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 192
    functionDepth: 3
    functionLinenumber: 192
    functionLinenumberEnd: 215
    functionName: Botan_Tests::no_certificate_matches
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - auto::empty
    - Test::Result::end_timer
    - Botan_Tests::get_unknown_dn
    - Botan::Flatfile_Certificate_Store::find_all_certs
    - Test::Result::test_failure
    - Botan::Flatfile_Certificate_Store::find_cert_by_pubkey_sha1
    - Test::Result::confirm
    - what
    - Botan::Flatfile_Certificate_Store::find_cert
    - 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:221,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:223,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 229
    functionName: Botan_Tests::certstore_contains_user_certificate
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::test_failure
    - Test::Result::test_success
    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:235,1
    - Dst: Botan::Flatfile_Certificate_Store::find_cert_by_issuer_dn_and_serial_number
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:237,1
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:237,1
    - Dst: Botan_Tests::get_serial_number
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:237,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:238,1
    - Dst: Test::Result::test_not_nullopt
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:240,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:241,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:242,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:242,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:243,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:243,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:243,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:244,1
    - Dst: auto::serial_number
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:244,1
    - Dst: Botan_Tests::get_serial_number
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:244,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:247,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:247,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 231
    functionDepth: 3
    functionLinenumber: 231
    functionLinenumberEnd: 251
    functionName: Botan_Tests::find_cert_by_issuer_dn_and_serial_number
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - auto::serial_number
    - Test::Result::end_timer
    - auto::front
    - Test::Result::test_failure
    - Botan_Tests::get_subject_cn
    - Test::Result::test_eq
    - Botan::Flatfile_Certificate_Store::find_cert_by_issuer_dn_and_serial_number
    - Botan_Tests::get_dn
    - Botan_Tests::get_serial_number
    - Test::Result::test_not_nullopt
    - what
    - auto::subject_dn
    - auto::size
    - Test::Result::test_int_eq
    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:258,1
    - Dst: open_certificate_store
      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_certificate_by_pubkey_sha1
      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
      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_cert_by_utf8_subject_dn
      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_cert_by_subject_dn_and_key_id
      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: find_certs_by_subject_dn_and_key_id
      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: find_all_subjects
      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: no_certificate_matches
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:265,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:266,1
    - Dst: certstore_contains_user_certificate
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:266,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:267,1
    - Dst: find_cert_by_issuer_dn_and_serial_number
      Src: /src/botan/src/tests/test_certstor_flatfile.cpp:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 270
    functionName: Botan_Tests::Certstor_Flatfile_Tests::run
    functionSourceFile: /src/botan/src/tests/test_certstor_flatfile.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - find_certs_by_subject_dn_and_key_id
    - find_certificate_by_pubkey_sha1
    - no_certificate_matches
    - find_cert_by_subject_dn
    - find_cert_by_utf8_subject_dn
    - find_cert_by_subject_dn_and_key_id
    - find_cert_by_issuer_dn_and_serial_number
    - open_certificate_store
    - certstore_contains_user_certificate
    - 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: 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_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:
    - Botan::expand_message_xmd
    - Botan::as_span_of_bytes
    - Test::Result::test_eq
    - get_req_bin
    - std::vector::size
    - get_req_str
    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_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:
    - std::string::size
    - Botan::EC_Scalar::hash
    - std::string::data
    - reinterpret_cast<const uint8_t*>
    - Botan::EC_Group::from_name
    - Test::Result::test_eq
    - get_req_bin
    - get_req_str
    - Test::Result::test_note
    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:
    - Botan::EC_Group::supports_named_group
    - get_req_str
    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_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:
    - std::string::size
    - std::string::data
    - reinterpret_cast<const uint8_t*>
    - Botan::EC_Group::from_name
    - Botan::EC_AffinePoint::hash_to_curve_ro
    - Test::Result::test_eq
    - Botan::EC_AffinePoint::hash_to_curve_nu
    - get_req_bin
    - find
    - get_req_str
    - Test::Result::test_note
    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_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:
    - Botan::expand_message_xmd
    - Botan::as_span_of_bytes
    - Test::Result::test_eq
    - get_req_bin
    - std::vector::size
    - get_req_str
    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_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:
    - std::string::size
    - Botan::EC_Scalar::hash
    - std::string::data
    - reinterpret_cast<const uint8_t*>
    - Botan::EC_Group::from_name
    - Test::Result::test_eq
    - get_req_bin
    - get_req_str
    - Test::Result::test_note
    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:
    - Botan::EC_Group::supports_named_group
    - get_req_str
    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_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:
    - std::string::size
    - std::string::data
    - reinterpret_cast<const uint8_t*>
    - Botan::EC_Group::from_name
    - Botan::EC_AffinePoint::hash_to_curve_ro
    - Test::Result::test_eq
    - Botan::EC_AffinePoint::hash_to_curve_nu
    - get_req_bin
    - find
    - get_req_str
    - Test::Result::test_note
    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_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:
    - Botan::expand_message_xmd
    - Botan::as_span_of_bytes
    - Test::Result::test_eq
    - get_req_bin
    - std::vector::size
    - get_req_str
    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_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:
    - std::string::size
    - Botan::EC_Scalar::hash
    - std::string::data
    - reinterpret_cast<const uint8_t*>
    - Botan::EC_Group::from_name
    - Test::Result::test_eq
    - get_req_bin
    - get_req_str
    - Test::Result::test_note
    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:
    - Botan::EC_Group::supports_named_group
    - get_req_str
    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_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:
    - std::string::size
    - std::string::data
    - reinterpret_cast<const uint8_t*>
    - Botan::EC_Group::from_name
    - Botan::EC_AffinePoint::hash_to_curve_ro
    - Test::Result::test_eq
    - Botan::EC_AffinePoint::hash_to_curve_nu
    - get_req_bin
    - find
    - get_req_str
    - Test::Result::test_note
    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_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:
    - Botan::expand_message_xmd
    - Botan::as_span_of_bytes
    - Test::Result::test_eq
    - get_req_bin
    - std::vector::size
    - get_req_str
    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_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:
    - std::string::size
    - Botan::EC_Scalar::hash
    - std::string::data
    - reinterpret_cast<const uint8_t*>
    - Botan::EC_Group::from_name
    - Test::Result::test_eq
    - get_req_bin
    - get_req_str
    - Test::Result::test_note
    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:
    - Botan::EC_Group::supports_named_group
    - get_req_str
    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_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:
    - std::string::size
    - std::string::data
    - reinterpret_cast<const uint8_t*>
    - Botan::EC_Group::from_name
    - Botan::EC_AffinePoint::hash_to_curve_ro
    - Test::Result::test_eq
    - Botan::EC_AffinePoint::hash_to_curve_nu
    - get_req_bin
    - find
    - get_req_str
    - Test::Result::test_note
    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: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    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:33,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_codec.cpp:37,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_codec.cpp:38,1
    - Dst: Botan::base32_decode
      Src: /src/botan/src/tests/test_codec.cpp:38,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_codec.cpp:39,1
    - Dst: Botan::base32_encode
      Src: /src/botan/src/tests/test_codec.cpp:39,1
    - Dst: Botan::base32_decode
      Src: /src/botan/src/tests/test_codec.cpp:41,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:42,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_codec.cpp:42,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:46,1
    - Dst: what
      Src: /src/botan/src/tests/test_codec.cpp:46,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_codec.cpp:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 53
    functionName: Botan_Tests::Base32_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached:
    - Botan::base32_encode
    - Botan::hex_encode
    - Test::Result::test_failure
    - Test::Result::test_eq
    - Botan::base32_decode
    - what
    - get_req_bin
    - get_req_str
    - Test::Result::test_note
    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:60,1
    - Dst: std::string::insert
      Src: /src/botan/src/tests/test_codec.cpp:62,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:65,1
    - Dst: Botan::base32_decode
      Src: /src/botan/src/tests/test_codec.cpp:65,1
    - Dst: Test::Result::test_eq
      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_failure
      Src: /src/botan/src/tests/test_codec.cpp:71,1
    - Dst: what
      Src: /src/botan/src/tests/test_codec.cpp:71,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 77
    functionName: Botan_Tests::Base32_Tests::run_final_tests
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached:
    - std::string::size
    - std::string::insert
    - Test::Result::test_failure
    - Test::Result::test_eq
    - Botan::base32_decode
    - 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: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    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:94,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_codec.cpp:98,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_codec.cpp:99,1
    - Dst: Botan::base58_decode
      Src: /src/botan/src/tests/test_codec.cpp:99,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_codec.cpp:100,1
    - Dst: Botan::base58_encode
      Src: /src/botan/src/tests/test_codec.cpp:100,1
    - Dst: Botan::base58_decode
      Src: /src/botan/src/tests/test_codec.cpp:102,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:103,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_codec.cpp:103,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:107,1
    - Dst: what
      Src: /src/botan/src/tests/test_codec.cpp:107,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_codec.cpp:109,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 114
    functionName: Botan_Tests::Base58_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - Botan::base58_encode
    - Test::Result::test_failure
    - Test::Result::test_eq
    - Botan::base58_decode
    - what
    - get_req_bin
    - get_req_str
    - Test::Result::test_note
    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: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    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:127,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_codec.cpp:131,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_codec.cpp:132,1
    - Dst: Botan::base58_check_decode
      Src: /src/botan/src/tests/test_codec.cpp:132,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_codec.cpp:133,1
    - Dst: Botan::base58_check_encode
      Src: /src/botan/src/tests/test_codec.cpp:133,1
    - Dst: Botan::base58_check_decode
      Src: /src/botan/src/tests/test_codec.cpp:135,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:136,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_codec.cpp:136,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:140,1
    - Dst: what
      Src: /src/botan/src/tests/test_codec.cpp:140,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_codec.cpp:142,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 147
    functionName: Botan_Tests::Base58_Check_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached:
    - Botan::base58_check_encode
    - Botan::hex_encode
    - Test::Result::test_failure
    - Botan::base58_check_decode
    - Test::Result::test_eq
    - what
    - get_req_bin
    - get_req_str
    - Test::Result::test_note
    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: 158
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 158
    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:164,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_codec.cpp:168,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_codec.cpp:169,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/tests/test_codec.cpp:169,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_codec.cpp:170,1
    - Dst: Botan::base64_encode
      Src: /src/botan/src/tests/test_codec.cpp:170,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/tests/test_codec.cpp:172,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:173,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_codec.cpp:173,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:177,1
    - Dst: what
      Src: /src/botan/src/tests/test_codec.cpp:177,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_codec.cpp:179,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 184
    functionName: Botan_Tests::Base64_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached:
    - Botan::base64_encode
    - Botan::hex_encode
    - Test::Result::test_failure
    - get_req_str
    - Test::Result::test_eq
    - what
    - get_req_bin
    - Botan::base64_decode
    - Test::Result::test_note
    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:191,1
    - Dst: std::string::insert
      Src: /src/botan/src/tests/test_codec.cpp:193,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:196,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/tests/test_codec.cpp:196,1
    - Dst: Test::Result::test_eq
      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_failure
      Src: /src/botan/src/tests/test_codec.cpp:202,1
    - Dst: what
      Src: /src/botan/src/tests/test_codec.cpp:202,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 208
    functionName: Botan_Tests::Base64_Tests::run_final_tests
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached:
    - std::string::size
    - std::string::insert
    - Test::Result::test_failure
    - Test::Result::test_eq
    - what
    - Botan::base64_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: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    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:33,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_codec.cpp:37,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_codec.cpp:38,1
    - Dst: Botan::base32_decode
      Src: /src/botan/src/tests/test_codec.cpp:38,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_codec.cpp:39,1
    - Dst: Botan::base32_encode
      Src: /src/botan/src/tests/test_codec.cpp:39,1
    - Dst: Botan::base32_decode
      Src: /src/botan/src/tests/test_codec.cpp:41,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:42,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_codec.cpp:42,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:46,1
    - Dst: what
      Src: /src/botan/src/tests/test_codec.cpp:46,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_codec.cpp:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 53
    functionName: Botan_Tests::Base32_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached:
    - Botan::base32_encode
    - Botan::hex_encode
    - Test::Result::test_failure
    - Test::Result::test_eq
    - Botan::base32_decode
    - what
    - get_req_bin
    - get_req_str
    - Test::Result::test_note
    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:60,1
    - Dst: std::string::insert
      Src: /src/botan/src/tests/test_codec.cpp:62,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:65,1
    - Dst: Botan::base32_decode
      Src: /src/botan/src/tests/test_codec.cpp:65,1
    - Dst: Test::Result::test_eq
      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_failure
      Src: /src/botan/src/tests/test_codec.cpp:71,1
    - Dst: what
      Src: /src/botan/src/tests/test_codec.cpp:71,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 77
    functionName: Botan_Tests::Base32_Tests::run_final_tests
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached:
    - std::string::size
    - std::string::insert
    - Test::Result::test_failure
    - Test::Result::test_eq
    - Botan::base32_decode
    - 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: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    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:94,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_codec.cpp:98,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_codec.cpp:99,1
    - Dst: Botan::base58_decode
      Src: /src/botan/src/tests/test_codec.cpp:99,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_codec.cpp:100,1
    - Dst: Botan::base58_encode
      Src: /src/botan/src/tests/test_codec.cpp:100,1
    - Dst: Botan::base58_decode
      Src: /src/botan/src/tests/test_codec.cpp:102,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:103,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_codec.cpp:103,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:107,1
    - Dst: what
      Src: /src/botan/src/tests/test_codec.cpp:107,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_codec.cpp:109,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 114
    functionName: Botan_Tests::Base58_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - Botan::base58_encode
    - Test::Result::test_failure
    - Test::Result::test_eq
    - Botan::base58_decode
    - what
    - get_req_bin
    - get_req_str
    - Test::Result::test_note
    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: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    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:127,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_codec.cpp:131,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_codec.cpp:132,1
    - Dst: Botan::base58_check_decode
      Src: /src/botan/src/tests/test_codec.cpp:132,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_codec.cpp:133,1
    - Dst: Botan::base58_check_encode
      Src: /src/botan/src/tests/test_codec.cpp:133,1
    - Dst: Botan::base58_check_decode
      Src: /src/botan/src/tests/test_codec.cpp:135,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:136,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_codec.cpp:136,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:140,1
    - Dst: what
      Src: /src/botan/src/tests/test_codec.cpp:140,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_codec.cpp:142,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 147
    functionName: Botan_Tests::Base58_Check_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached:
    - Botan::base58_check_encode
    - Botan::hex_encode
    - Test::Result::test_failure
    - Botan::base58_check_decode
    - Test::Result::test_eq
    - what
    - get_req_bin
    - get_req_str
    - Test::Result::test_note
    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: 158
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 158
    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:164,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_codec.cpp:168,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_codec.cpp:169,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/tests/test_codec.cpp:169,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_codec.cpp:170,1
    - Dst: Botan::base64_encode
      Src: /src/botan/src/tests/test_codec.cpp:170,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/tests/test_codec.cpp:172,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:173,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_codec.cpp:173,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:177,1
    - Dst: what
      Src: /src/botan/src/tests/test_codec.cpp:177,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_codec.cpp:179,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 184
    functionName: Botan_Tests::Base64_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached:
    - Botan::base64_encode
    - Botan::hex_encode
    - Test::Result::test_failure
    - get_req_str
    - Test::Result::test_eq
    - what
    - get_req_bin
    - Botan::base64_decode
    - Test::Result::test_note
    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:191,1
    - Dst: std::string::insert
      Src: /src/botan/src/tests/test_codec.cpp:193,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_codec.cpp:196,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/tests/test_codec.cpp:196,1
    - Dst: Test::Result::test_eq
      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_failure
      Src: /src/botan/src/tests/test_codec.cpp:202,1
    - Dst: what
      Src: /src/botan/src/tests/test_codec.cpp:202,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 208
    functionName: Botan_Tests::Base64_Tests::run_final_tests
    functionSourceFile: /src/botan/src/tests/test_codec.cpp
    functionUses: 0
    functionsReached:
    - std::string::size
    - std::string::insert
    - Test::Result::test_failure
    - Test::Result::test_eq
    - what
    - Botan::base64_decode
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run_final_tests() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_pubkey.cpp:38,1
    - Dst: size
      Src: /src/botan/src/tests/test_pubkey.cpp:40,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:41,1
    - Dst: verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:41,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_pubkey.cpp:44,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:47,1
    - Dst: verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:47,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:48,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_pubkey.cpp:48,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:51,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_pubkey.cpp:51,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:52,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    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: 55
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 55
    functionName: Botan_Tests::check_invalid_signatures
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan::hex_encode
    - Botan_Tests::Test::run_long_tests
    - size
    - test_failure
    - Botan_Tests::Test::mutate_vec
    - 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:38,1
    - Dst: size
      Src: /src/botan/src/tests/test_pubkey.cpp:40,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:41,1
    - Dst: verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:41,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_pubkey.cpp:44,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:47,1
    - Dst: verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:47,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:48,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_pubkey.cpp:48,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:51,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_pubkey.cpp:51,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:52,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    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: 55
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 55
    functionName: Botan_Tests::check_invalid_signatures
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan::hex_encode
    - Botan_Tests::Test::run_long_tests
    - size
    - test_failure
    - Botan_Tests::Test::mutate_vec
    - 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:65,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_pubkey.cpp:71,1
    - Dst: decrypt
      Src: /src/botan/src/tests/test_pubkey.cpp:74,1
    - Dst: test_ne
      Src: /src/botan/src/tests/test_pubkey.cpp:77,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:78,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:85,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_pubkey.cpp:85,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_pubkey.cpp:86,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    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: 87
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 87
    functionName: Botan_Tests::check_invalid_ciphertexts
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - test_ne
    - test_eq
    - Botan_Tests::Test::run_long_tests
    - Botan_Tests::Test::mutate_vec
    - std::to_string
    - decrypt
    - 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:90,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_pubkey.cpp:93,1
    - Dst: Botan_Tests::PK_Test::default_padding
      Src: /src/botan/src/tests/test_pubkey.cpp:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' vars'
    - ' pad_hdr'
    argTypes:
    - VarMap
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: Botan_Tests::PK_Test::choose_padding
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::PK_Test::default_padding
    - empty
    - get_opt_str
    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:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 98
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:101,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:102,1
    - Dst: choose_padding
      Src: /src/botan/src/tests/test_pubkey.cpp:103,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:106,1
    - Dst: has_key
      Src: /src/botan/src/tests/test_pubkey.cpp:107,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_pubkey.cpp:108,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_pubkey.cpp:112,1
    - Dst: load_private_key
      Src: /src/botan/src/tests/test_pubkey.cpp:116,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_pubkey.cpp:118,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:118,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:122,1
    - Dst: std::unique_ptr::supports_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:123,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:125,1
    - Dst: Botan::X509::BER_encode
      Src: /src/botan/src/tests/test_pubkey.cpp:125,1
    - Dst: std::unique_ptr::public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:125,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:127,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:128,1
    - Dst: possible_providers
      Src: /src/botan/src/tests/test_pubkey.cpp:132,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:132,1
    - Dst: std::make_unique<Botan::PK_Verifier>
      Src: /src/botan/src/tests/test_pubkey.cpp:137,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:143,1
    - Dst: std::unique_ptr::verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:143,1
    - Dst: check_invalid_signatures
      Src: /src/botan/src/tests/test_pubkey.cpp:145,1
    - Dst: Botan_Tests::PK_Signature_Generation_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:145,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:147,1
    - Dst: std::unique_ptr::verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:147,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_pubkey.cpp:149,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_pubkey.cpp:149,1
    - Dst: possible_providers
      Src: /src/botan/src/tests/test_pubkey.cpp:152,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:152,1
    - Dst: std::make_unique<Botan::PK_Signer>
      Src: /src/botan/src/tests/test_pubkey.cpp:158,1
    - Dst: Botan_Tests::PK_Signature_Generation_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:159,1
    - Dst: has_key
      Src: /src/botan/src/tests/test_pubkey.cpp:161,1
    - Dst: Botan_Tests::PK_Signature_Generation_Test::test_rng
      Src: /src/botan/src/tests/test_pubkey.cpp:162,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:162,1
    - Dst: std::unique_ptr::sign_message
      Src: /src/botan/src/tests/test_pubkey.cpp:163,1
    - Dst: std::unique_ptr::sign_message
      Src: /src/botan/src/tests/test_pubkey.cpp:165,1
    - Dst: Botan_Tests::PK_Signature_Generation_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:165,1
    - Dst: Test::Result::test_lte
      Src: /src/botan/src/tests/test_pubkey.cpp:168,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:169,1
    - Dst: std::unique_ptr::signature_length
      Src: /src/botan/src/tests/test_pubkey.cpp:169,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:176,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:179,1
    - Dst: std::unique_ptr::verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:180,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:181,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 2
    argNames:
    - ' pad_hdr'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 188
    functionName: Botan_Tests::PK_Signature_Generation_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::verify_message
    - std::ostringstream::str
    - Test::Result::test_failure
    - Test::Result::test_lte
    - std::unique_ptr::public_key
    - choose_padding
    - algo_name
    - what
    - Botan_Tests::PK_Signature_Generation_Test::rng
    - possible_providers
    - std::unique_ptr::sign_message
    - load_private_key
    - std::make_unique<Botan::PK_Verifier>
    - get_req_bin
    - std::unique_ptr::supports_operation
    - Test::Result::note_missing
    - check_invalid_signatures
    - std::vector::push_back
    - std::make_unique<Botan::PK_Signer>
    - std::vector::size
    - get_req_str
    - auto::supports_operation
    - std::unique_ptr::signature_length
    - Botan::X509::BER_encode
    - std::move
    - Botan_Tests::PK_Signature_Generation_Test::test_rng
    - has_key
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::X509::load_key
    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: 192
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 192
    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:195,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:196,1
    - Dst: choose_padding
      Src: /src/botan/src/tests/test_pubkey.cpp:197,1
    - Dst: get_opt_sz
      Src: /src/botan/src/tests/test_pubkey.cpp:199,1
    - Dst: load_public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:201,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:204,1
    - Dst: has_key
      Src: /src/botan/src/tests/test_pubkey.cpp:205,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_pubkey.cpp:206,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_pubkey.cpp:208,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_pubkey.cpp:212,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:214,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:215,1
    - Dst: possible_providers
      Src: /src/botan/src/tests/test_pubkey.cpp:217,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:217,1
    - Dst: std::make_unique<Botan::PK_Verifier>
      Src: /src/botan/src/tests/test_pubkey.cpp:221,1
    - Dst: Botan_Tests::PK_Signature_Verification_Test::sig_format
      Src: /src/botan/src/tests/test_pubkey.cpp:221,1
    - Dst: std::unique_ptr::verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:228,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:231,1
    - Dst: Botan_Tests::PK_Signature_Verification_Test::test_random_invalid_sigs
      Src: /src/botan/src/tests/test_pubkey.cpp:233,1
    - Dst: check_invalid_signatures
      Src: /src/botan/src/tests/test_pubkey.cpp:234,1
    - Dst: Botan_Tests::PK_Signature_Verification_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:234,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:237,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:240,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:240,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - ' pad_hdr'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 246
    functionName: Botan_Tests::PK_Signature_Verification_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::verify_message
    - std::ostringstream::str
    - Test::Result::test_failure
    - std::string::empty
    - choose_padding
    - algo_name
    - what
    - get_opt_sz
    - possible_providers
    - Botan_Tests::PK_Signature_Verification_Test::rng
    - std::make_unique<Botan::PK_Verifier>
    - Botan_Tests::PK_Signature_Verification_Test::sig_format
    - get_req_bin
    - check_invalid_signatures
    - Botan_Tests::PK_Signature_Verification_Test::test_random_invalid_sigs
    - get_req_str
    - auto::supports_operation
    - has_key
    - Test::Result::test_eq
    - load_public_key
    - Test::Result::confirm
    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:249,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:250,1
    - Dst: load_public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:251,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:253,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:255,1
    - Dst: possible_providers
      Src: /src/botan/src/tests/test_pubkey.cpp:257,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:257,1
    - Dst: std::make_unique<Botan::PK_Verifier>
      Src: /src/botan/src/tests/test_pubkey.cpp:262,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:263,1
    - Dst: std::unique_ptr::verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:263,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:265,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' pad_hdr'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 270
    functionName: Botan_Tests::PK_Signature_NonVerification_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::verify_message
    - choose_padding
    - std::make_unique<Botan::PK_Verifier>
    - Test::Result::test_eq
    - load_public_key
    - algo_name
    - get_req_bin
    - possible_providers
    - Test::Result::test_note
    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:276,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:280,1
    - Dst: Botan_Tests::PK_Sign_Verify_DER_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:282,1
    - Dst: Botan_Tests::PK_Sign_Verify_DER_Test::possible_providers
      Src: /src/botan/src/tests/test_pubkey.cpp:284,1
    - Dst: Botan_Tests::PK_Sign_Verify_DER_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:284,1
    - Dst: std::make_unique<Botan::PK_Signer>
      Src: /src/botan/src/tests/test_pubkey.cpp:289,1
    - Dst: Botan_Tests::PK_Sign_Verify_DER_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:290,1
    - Dst: std::make_unique<Botan::PK_Verifier>
      Src: /src/botan/src/tests/test_pubkey.cpp:292,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:294,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:294,1
    - Dst: std::unique_ptr::sign_message
      Src: /src/botan/src/tests/test_pubkey.cpp:299,1
    - Dst: Botan_Tests::PK_Sign_Verify_DER_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:299,1
    - Dst: std::unique_ptr::verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:300,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:302,1
    - Dst: Botan_Tests::PK_Sign_Verify_DER_Test::test_random_invalid_sigs
      Src: /src/botan/src/tests/test_pubkey.cpp:304,1
    - Dst: check_invalid_signatures
      Src: /src/botan/src/tests/test_pubkey.cpp:305,1
    - Dst: Botan_Tests::PK_Sign_Verify_DER_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:305,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:308,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:308,1
    - Dst: Botan::PK_Signer::PK_Signer
      Src: /src/botan/src/tests/test_pubkey.cpp:317,1
    - Dst: Botan_Tests::PK_Sign_Verify_DER_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:317,1
    - Dst: Botan::PK_Verifier::PK_Verifier
      Src: /src/botan/src/tests/test_pubkey.cpp:318,1
    - Dst: auto::set_output_format
      Src: /src/botan/src/tests/test_pubkey.cpp:322,1
    - Dst: auto::set_input_format
      Src: /src/botan/src/tests/test_pubkey.cpp:323,1
    - Dst: auto::sign_message
      Src: /src/botan/src/tests/test_pubkey.cpp:325,1
    - Dst: Botan_Tests::PK_Sign_Verify_DER_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:325,1
    - Dst: auto::verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:326,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:328,1
    - Dst: Botan_Tests::PK_Sign_Verify_DER_Test::test_random_invalid_sigs
      Src: /src/botan/src/tests/test_pubkey.cpp:329,1
    - Dst: check_invalid_signatures
      Src: /src/botan/src/tests/test_pubkey.cpp:330,1
    - Dst: Botan_Tests::PK_Sign_Verify_DER_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:330,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:333,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:335,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:335,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 339
    functionName: Botan_Tests::PK_Sign_Verify_DER_Test::run
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - auto::public_key
    - std::unique_ptr::verify_message
    - Test::Result::test_failure
    - auto::sign_message
    - what
    - auto::set_input_format
    - Botan::PK_Verifier::PK_Verifier
    - std::unique_ptr::sign_message
    - std::make_unique<Botan::PK_Verifier>
    - check_invalid_signatures
    - Botan_Tests::PK_Sign_Verify_DER_Test::possible_providers
    - std::make_unique<Botan::PK_Signer>
    - auto::verify_message
    - Test::Result::test_note
    - Botan_Tests::PK_Sign_Verify_DER_Test::algo_name
    - key
    - Test::Result::test_eq
    - Botan::PK_Signer::PK_Signer
    - Test::Result::confirm
    - auto::set_output_format
    - Botan_Tests::PK_Sign_Verify_DER_Test::test_random_invalid_sigs
    - Botan_Tests::PK_Sign_Verify_DER_Test::rng
    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:343,1
    - Dst: Botan_Tests::Test::provider_filter
      Src: /src/botan/src/tests/test_pubkey.cpp:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 345
    functionName: Botan_Tests::PK_Sign_Verify_DER_Test::possible_providers
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::Test::provider_filter
    - Botan::probe_provider_private_key
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> PK_Sign_Verify_DER_Test::possible_providers(const
      std::string& algo_name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:348,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:349,1
    - Dst: choose_padding
      Src: /src/botan/src/tests/test_pubkey.cpp:350,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:352,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_pubkey.cpp:352,1
    - Dst: load_private_key
      Src: /src/botan/src/tests/test_pubkey.cpp:354,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:356,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:357,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:359,1
    - Dst: possible_providers
      Src: /src/botan/src/tests/test_pubkey.cpp:363,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:363,1
    - Dst: std::make_unique<Botan::PK_Decryptor_EME>
      Src: /src/botan/src/tests/test_pubkey.cpp:367,1
    - Dst: Botan_Tests::PK_Encryption_Decryption_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:367,1
    - Dst: std::unique_ptr::decrypt
      Src: /src/botan/src/tests/test_pubkey.cpp:374,1
    - Dst: Test::Result::test_lte
      Src: /src/botan/src/tests/test_pubkey.cpp:376,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:376,1
    - Dst: std::unique_ptr::plaintext_length
      Src: /src/botan/src/tests/test_pubkey.cpp:376,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:376,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:378,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:378,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:381,1
    - Dst: check_invalid_ciphertexts
      Src: /src/botan/src/tests/test_pubkey.cpp:382,1
    - Dst: Botan_Tests::PK_Encryption_Decryption_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:382,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_pubkey.cpp:383,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_pubkey.cpp:383,1
    - Dst: possible_providers
      Src: /src/botan/src/tests/test_pubkey.cpp:386,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:386,1
    - Dst: std::make_unique<Botan::PK_Encryptor_EME>
      Src: /src/botan/src/tests/test_pubkey.cpp:390,1
    - Dst: Botan_Tests::PK_Encryption_Decryption_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:390,1
    - Dst: has_key
      Src: /src/botan/src/tests/test_pubkey.cpp:396,1
    - Dst: Botan_Tests::PK_Encryption_Decryption_Test::test_rng
      Src: /src/botan/src/tests/test_pubkey.cpp:397,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:397,1
    - Dst: Test::Result::test_lte
      Src: /src/botan/src/tests/test_pubkey.cpp:405,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:405,1
    - Dst: std::unique_ptr::maximum_input_size
      Src: /src/botan/src/tests/test_pubkey.cpp:405,1
    - Dst: Test::Result::test_lte
      Src: /src/botan/src/tests/test_pubkey.cpp:407,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:407,1
    - Dst: std::unique_ptr::maximum_input_size
      Src: /src/botan/src/tests/test_pubkey.cpp:407,1
    - Dst: std::unique_ptr::encrypt
      Src: /src/botan/src/tests/test_pubkey.cpp:410,1
    - Dst: Botan_Tests::PK_Encryption_Decryption_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:410,1
    - Dst: Test::Result::test_lte
      Src: /src/botan/src/tests/test_pubkey.cpp:412,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:413,1
    - Dst: std::unique_ptr::ciphertext_length
      Src: /src/botan/src/tests/test_pubkey.cpp:413,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:413,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:416,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:419,1
    - Dst: decrypt
      Src: /src/botan/src/tests/test_pubkey.cpp:419,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 2
    argNames:
    - ' pad_hdr'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 425
    functionName: Botan_Tests::PK_Encryption_Decryption_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - auto::public_key
    - Botan_Tests::PK_Encryption_Decryption_Test::test_rng
    - Test::Result::test_failure
    - Test::Result::test_lte
    - std::string::empty
    - choose_padding
    - algo_name
    - what
    - check_invalid_ciphertexts
    - Botan::secure_vector::size
    - possible_providers
    - std::make_unique<Botan::PK_Decryptor_EME>
    - std::unique_ptr::ciphertext_length
    - load_private_key
    - std::make_unique<Botan::PK_Encryptor_EME>
    - decrypt
    - get_req_bin
    - std::vector::push_back
    - std::unique_ptr::decrypt
    - std::unique_ptr::encrypt
    - std::unique_ptr::maximum_input_size
    - Botan_Tests::PK_Encryption_Decryption_Test::rng
    - std::unique_ptr::plaintext_length
    - std::vector::size
    - auto::supports_operation
    - std::move
    - Test::Result::test_eq
    - has_key
    - Test::Result::confirm
    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:428,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:429,1
    - Dst: choose_padding
      Src: /src/botan/src/tests/test_pubkey.cpp:430,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:432,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_pubkey.cpp:432,1
    - Dst: load_private_key
      Src: /src/botan/src/tests/test_pubkey.cpp:434,1
    - Dst: possible_providers
      Src: /src/botan/src/tests/test_pubkey.cpp:436,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:436,1
    - Dst: std::make_unique<Botan::PK_Decryptor_EME>
      Src: /src/botan/src/tests/test_pubkey.cpp:440,1
    - Dst: Botan_Tests::PK_Decryption_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:440,1
    - Dst: std::unique_ptr::decrypt
      Src: /src/botan/src/tests/test_pubkey.cpp:447,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:449,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:449,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:452,1
    - Dst: check_invalid_ciphertexts
      Src: /src/botan/src/tests/test_pubkey.cpp:453,1
    - Dst: Botan_Tests::PK_Decryption_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:453,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - ' pad_hdr'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 457
    functionName: Botan_Tests::PK_Decryption_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::PK_Decryptor_EME>
    - std::unique_ptr::decrypt
    - check_invalid_ciphertexts
    - Botan_Tests::PK_Decryption_Test::rng
    - Test::Result::test_failure
    - load_private_key
    - std::string::empty
    - choose_padding
    - Test::Result::test_eq
    - algo_name
    - what
    - get_req_bin
    - possible_providers
    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:460,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:461,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:462,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_pubkey.cpp:463,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:465,1
    - Dst: load_private_key
      Src: /src/botan/src/tests/test_pubkey.cpp:467,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:469,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:470,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:472,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:474,1
    - Dst: std::make_unique<Botan::PK_KEM_Encryptor>
      Src: /src/botan/src/tests/test_pubkey.cpp:478,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:480,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:484,1
    - Dst: std::unique_ptr::encrypt
      Src: /src/botan/src/tests/test_pubkey.cpp:486,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:488,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_pubkey.cpp:489,1
    - Dst: std::unique_ptr::encapsulated_key_length
      Src: /src/botan/src/tests/test_pubkey.cpp:490,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:492,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_pubkey.cpp:493,1
    - Dst: std::unique_ptr::shared_key_length
      Src: /src/botan/src/tests/test_pubkey.cpp:493,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:495,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_pubkey.cpp:495,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:496,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_pubkey.cpp:496,1
    - Dst: std::make_unique<Botan::PK_KEM_Decryptor>
      Src: /src/botan/src/tests/test_pubkey.cpp:500,1
    - Dst: Botan_Tests::PK_KEM_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:500,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:502,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:502,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:506,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_pubkey.cpp:507,1
    - Dst: std::unique_ptr::encapsulated_key_length
      Src: /src/botan/src/tests/test_pubkey.cpp:508,1
    - Dst: std::unique_ptr::decrypt
      Src: /src/botan/src/tests/test_pubkey.cpp:511,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_pubkey.cpp:511,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:511,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_pubkey.cpp:511,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:511,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:513,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:514,1
    - Dst: std::unique_ptr::shared_key_length
      Src: /src/botan/src/tests/test_pubkey.cpp:514,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:516,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 519
    functionName: Botan_Tests::PK_KEM_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - auto::public_key
    - auto::shared_key
    - std::make_unique<Botan::PK_KEM_Decryptor>
    - algo_name
    - Botan_Tests::PK_KEM_Test::rng
    - what
    - Botan::secure_vector::size
    - std::unique_ptr::shared_key_length
    - std::unique_ptr::encapsulated_key_length
    - load_private_key
    - std::vector::data
    - get_req_bin
    - std::unique_ptr::decrypt
    - std::unique_ptr::encrypt
    - std::make_unique<Botan::PK_KEM_Encryptor>
    - std::vector::size
    - get_req_str
    - Test::Result::test_note
    - auto::supports_operation
    - get_opt_bin
    - Test::Result::test_eq
    - auto::encapsulated_shared_key
    - Test::Result::confirm
    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:522,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_pubkey.cpp:523,1
    - Dst: Botan_Tests::PK_Key_Agreement_Test::default_kdf
      Src: /src/botan/src/tests/test_pubkey.cpp:523,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:525,1
    - Dst: empty
      Src: /src/botan/src/tests/test_pubkey.cpp:525,1
    - Dst: load_our_key
      Src: /src/botan/src/tests/test_pubkey.cpp:527,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:529,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:530,1
    - Dst: load_their_key
      Src: /src/botan/src/tests/test_pubkey.cpp:532,1
    - Dst: get_opt_sz
      Src: /src/botan/src/tests/test_pubkey.cpp:534,1
    - Dst: possible_providers
      Src: /src/botan/src/tests/test_pubkey.cpp:536,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:536,1
    - Dst: std::make_unique<Botan::PK_Key_Agreement>
      Src: /src/botan/src/tests/test_pubkey.cpp:540,1
    - Dst: Botan_Tests::PK_Key_Agreement_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:540,1
    - Dst: Botan_Tests::PK_Key_Agreement_Test::agreement_should_fail
      Src: /src/botan/src/tests/test_pubkey.cpp:542,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_pubkey.cpp:543,1
    - Dst: std::unique_ptr::derive_key
      Src: /src/botan/src/tests/test_pubkey.cpp:543,1
    - Dst: std::unique_ptr::derive_key
      Src: /src/botan/src/tests/test_pubkey.cpp:545,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:546,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:549,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_pubkey.cpp:549,1
    - Dst: std::unique_ptr::agreed_value_size
      Src: /src/botan/src/tests/test_pubkey.cpp:549,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 521
    functionDepth: 1
    functionLinenumber: 521
    functionLinenumberEnd: 558
    functionName: Botan_Tests::PK_Key_Agreement_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - std::make_unique<Botan::PK_Key_Agreement>
    - algo_name
    - get_opt_sz
    - Botan_Tests::PK_Key_Agreement_Test::default_kdf
    - auto::size
    - Botan_Tests::PK_Key_Agreement_Test::agreement_should_fail
    - possible_providers
    - load_our_key
    - std::unique_ptr::derive_key
    - get_req_bin
    - std::unique_ptr::agreed_value_size
    - load_their_key
    - get_opt_str
    - auto::supports_operation
    - Botan_Tests::PK_Key_Agreement_Test::rng
    - empty
    - Test::Result::test_eq
    - Test::Result::confirm
    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:562,1
    - Dst: Botan_Tests::Test::provider_filter
      Src: /src/botan/src/tests/test_pubkey.cpp:563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 564
    functionName: Botan_Tests::PK_Key_Generation_Test::possible_providers
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::provider_filter
    - Botan::probe_provider_private_key
    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:574,1
    - Dst: Botan_Tests::Test::random_password
      Src: /src/botan/src/tests/test_pubkey.cpp:576,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/tests/test_pubkey.cpp:580,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_pubkey.cpp:580,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:582,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:584,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:585,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:585,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:585,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:586,1
    - Dst: auto::private_key_info
      Src: /src/botan/src/tests/test_pubkey.cpp:586,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:588,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:588,1
    - Dst: Botan::PKCS8::BER_encode
      Src: /src/botan/src/tests/test_pubkey.cpp:593,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_pubkey.cpp:593,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:595,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:597,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:598,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:598,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:598,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:599,1
    - Dst: auto::private_key_info
      Src: /src/botan/src/tests/test_pubkey.cpp:599,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:601,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:601,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: 603
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 603
    functionName: Botan_Tests::test_pbe_roundtrip
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timer::milliseconds
    - test_eq
    - Botan::PKCS8::BER_encode
    - Botan::PKCS8::load_key
    - test_failure
    - auto::algo_name
    - private_key_info
    - algo_name
    - what
    - auto::private_key_info
    - confirm
    - Botan::PKCS8::PEM_encode
    - Botan_Tests::Test::random_password
    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:574,1
    - Dst: Botan_Tests::Test::random_password
      Src: /src/botan/src/tests/test_pubkey.cpp:576,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/tests/test_pubkey.cpp:580,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_pubkey.cpp:580,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:582,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:584,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:585,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:585,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:585,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:586,1
    - Dst: auto::private_key_info
      Src: /src/botan/src/tests/test_pubkey.cpp:586,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:588,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:588,1
    - Dst: Botan::PKCS8::BER_encode
      Src: /src/botan/src/tests/test_pubkey.cpp:593,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_pubkey.cpp:593,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:595,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:597,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:598,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:598,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:598,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:599,1
    - Dst: auto::private_key_info
      Src: /src/botan/src/tests/test_pubkey.cpp:599,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:601,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:601,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: 603
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 603
    functionName: Botan_Tests::test_pbe_roundtrip
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timer::milliseconds
    - test_eq
    - Botan::PKCS8::BER_encode
    - Botan::PKCS8::load_key
    - test_failure
    - auto::algo_name
    - private_key_info
    - algo_name
    - what
    - auto::private_key_info
    - confirm
    - Botan::PKCS8::PEM_encode
    - Botan_Tests::Test::random_password
    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:611,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:612,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_pubkey.cpp:613,1
    - Dst: empty
      Src: /src/botan/src/tests/test_pubkey.cpp:613,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::possible_providers
      Src: /src/botan/src/tests/test_pubkey.cpp:617,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_pubkey.cpp:619,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_pubkey.cpp:620,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_pubkey.cpp:623,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_pubkey.cpp:625,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:625,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:634,1
    - Dst: check_key
      Src: /src/botan/src/tests/test_pubkey.cpp:634,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:634,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:637,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:638,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_pubkey.cpp:638,1
    - Dst: Botan::OID::from_name
      Src: /src/botan/src/tests/test_pubkey.cpp:640,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pubkey.cpp:641,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:643,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_pubkey.cpp:644,1
    - Dst: object_identifier
      Src: /src/botan/src/tests/test_pubkey.cpp:645,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:650,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_pubkey.cpp:654,1
    - Dst: estimated_strength
      Src: /src/botan/src/tests/test_pubkey.cpp:654,1
    - Dst: Test::Result::test_lt
      Src: /src/botan/src/tests/test_pubkey.cpp:655,1
    - Dst: estimated_strength
      Src: /src/botan/src/tests/test_pubkey.cpp:655,1
    - Dst: public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:657,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:659,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:659,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:659,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:661,1
    - Dst: Botan::X509::PEM_encode
      Src: /src/botan/src/tests/test_pubkey.cpp:662,1
    - Dst: Botan::X509::PEM_encode
      Src: /src/botan/src/tests/test_pubkey.cpp:662,1
    - Dst: auto::generate_another
      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: auto::public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:669,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:671,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:671,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:671,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:672,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:672,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:672,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:673,1
    - Dst: auto::estimated_strength
      Src: /src/botan/src/tests/test_pubkey.cpp:674,1
    - Dst: estimated_strength
      Src: /src/botan/src/tests/test_pubkey.cpp:674,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:675,1
    - Dst: auto::estimated_strength
      Src: /src/botan/src/tests/test_pubkey.cpp:676,1
    - Dst: auto::estimated_strength
      Src: /src/botan/src/tests/test_pubkey.cpp:677,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_pubkey.cpp:678,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_pubkey.cpp:678,1
    - Dst: private_key_bits
      Src: /src/botan/src/tests/test_pubkey.cpp:678,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:680,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:681,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/tests/test_pubkey.cpp:688,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_pubkey.cpp:689,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_pubkey.cpp:689,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:691,1
    - Dst: dynamic_cast<const Botan::PK_Key_Agreement_Key*>
      Src: /src/botan/src/tests/test_pubkey.cpp:694,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_pubkey.cpp:695,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:696,1
    - Dst: auto*::public_value
      Src: /src/botan/src/tests/test_pubkey.cpp:696,1
    - Dst: public_key_from_raw
      Src: /src/botan/src/tests/test_pubkey.cpp:699,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:700,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:700,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:700,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:701,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_pubkey.cpp:701,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_pubkey.cpp:701,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_pubkey.cpp:704,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:704,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:705,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:705,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:707,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:707,1
    - Dst: Botan::X509::PEM_encode
      Src: /src/botan/src/tests/test_pubkey.cpp:713,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:714,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:716,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:717,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:717,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:717,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:720,1
    - Dst: auto::check_key
      Src: /src/botan/src/tests/test_pubkey.cpp:720,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:720,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:723,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:723,1
    - Dst: auto::subject_public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:728,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:730,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:732,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:733,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:733,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:733,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:734,1
    - Dst: auto::subject_public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:734,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:736,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:736,1
    - Dst: private_key_info
      Src: /src/botan/src/tests/test_pubkey.cpp:741,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:743,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:745,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:746,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:746,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:746,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:747,1
    - Dst: auto::private_key_info
      Src: /src/botan/src/tests/test_pubkey.cpp:747,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:749,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:749,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:754,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:756,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:757,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:757,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:757,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:759,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:759,1
    - Dst: test_pbe_roundtrip
      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_pbe_roundtrip
      Src: /src/botan/src/tests/test_pubkey.cpp:769,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:769,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_pubkey.cpp:773,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_pubkey.cpp:775,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 88
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 608
    functionDepth: 2
    functionLinenumber: 608
    functionLinenumberEnd: 779
    functionName: Botan_Tests::PK_Key_Generation_Test::run
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - auto::public_key
    - auto::private_key_bits
    - Botan::X509::load_key
    - Test::Result::test_failure
    - std::string::empty
    - estimated_strength
    - Test::Result::test_gte
    - Botan_Tests::PK_Key_Generation_Test::algo_name
    - check_key
    - what
    - Botan::OID::from_name
    - auto::size
    - public_key
    - Test::Result::test_lt
    - Test::Result::test_ne
    - auto::public_key_bits
    - keygen_params
    - auto*::public_value
    - auto::raw_public_key_bits
    - public_key_from_raw
    - Test::Result::test_success
    - auto::subject_public_key
    - Botan::X509::PEM_encode
    - Test::Result::start_timer
    - Test::Result::note_missing
    - std::vector::push_back
    - object_identifier
    - Botan::create_private_key
    - auto::estimated_strength
    - Botan::PKCS8::load_key
    - std::vector::empty
    - auto::value
    - private_key_bits
    - Botan_Tests::PK_Key_Generation_Test::rng
    - auto::private_key_info
    - dynamic_cast<const Botan::PK_Key_Agreement_Key*>
    - Test::Result::test_note
    - auto::supports_operation
    - Botan_Tests::PK_Key_Generation_Test::possible_providers
    - Botan::fmt
    - Test::Result::end_timer
    - Botan::value_exists
    - private_key_info
    - empty
    - Test::Result::test_eq
    - auto::generate_another
    - Test::Result::confirm
    - Test::Result::require
    - auto::check_key
    - auto::algo_name
    - test_pbe_roundtrip
    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:782,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pubkey.cpp:785,1
    - Dst: load_public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:789,1
    - Dst: auto::check_key
      Src: /src/botan/src/tests/test_pubkey.cpp:791,1
    - Dst: Botan_Tests::PK_Key_Validity_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:791,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:793,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 781
    functionDepth: 0
    functionLinenumber: 781
    functionLinenumberEnd: 796
    functionName: Botan_Tests::PK_Key_Validity_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - Botan_Tests::PK_Key_Validity_Test::rng
    - Test::Result::test_eq
    - load_public_key
    - algo_name
    - 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: 800
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 800
    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:803,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_pubkey.cpp:804,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_pubkey.cpp:805,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:806,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:807,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:811,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_pubkey.cpp:812,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_pubkey.cpp:817,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_pubkey.cpp:819,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_pubkey.cpp:825,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_pubkey.cpp:830,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pubkey.cpp:831,1
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_pubkey.cpp:833,1
    - Dst: std::unique_ptr::add_entropy
      Src: /src/botan/src/tests/test_pubkey.cpp:837,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_pubkey.cpp:837,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:837,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_pubkey.cpp:840,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:840,1
    - Dst: auto::private_key_info
      Src: /src/botan/src/tests/test_pubkey.cpp:842,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:843,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:846,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:846,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:849,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_pubkey.cpp:852,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 802
    functionDepth: 1
    functionLinenumber: 802
    functionLinenumberEnd: 855
    functionName: Botan_Tests::PK_Key_Generation_Stability_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - std::string::empty
    - algo_name
    - what
    - Test_Error
    - std::vector::data
    - get_req_bin
    - std::make_unique<Botan::HMAC_DRBG>
    - Test::Result::start_timer
    - Botan::create_private_key
    - get_opt_str
    - auto::private_key_info
    - std::vector::size
    - get_req_str
    - Test::Result::test_note
    - Test::Result::end_timer
    - Test::Result::test_eq
    - std::unique_ptr::add_entropy
    - 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: 862
      start: 862
    functionDepth: 0
    functionLinenumber: 862
    functionLinenumberEnd: 862
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_pubkey.cpp:866,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_pubkey.cpp:867,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_pubkey.cpp:868,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_pubkey.cpp:869,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_pubkey.cpp:873,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_pubkey.cpp:876,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_pubkey.cpp:879,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_pubkey.cpp:883,1
    - Dst: Botan_Tests::PK_API_Sign_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:883,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:890,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_pubkey.cpp:890,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:895,1
    - Dst: Botan::X509::BER_encode
      Src: /src/botan/src/tests/test_pubkey.cpp:895,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:895,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:896,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:898,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:899,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:900,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:901,1
    - Dst: Test::Result::test_gt
      Src: /src/botan/src/tests/test_pubkey.cpp:902,1
    - Dst: auto::key_length
      Src: /src/botan/src/tests/test_pubkey.cpp:902,1
    - Dst: auto::stateful_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:903,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:904,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_pubkey.cpp:905,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:907,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_pubkey.cpp:908,1
    - Dst: std::make_unique<Botan::PK_Signer>
      Src: /src/botan/src/tests/test_pubkey.cpp:911,1
    - Dst: Botan_Tests::PK_API_Sign_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:912,1
    - Dst: std::make_unique<Botan::PK_Verifier>
      Src: /src/botan/src/tests/test_pubkey.cpp:914,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:915,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:916,1
    - Dst: Test::Result::test_is_nonempty
      Src: /src/botan/src/tests/test_pubkey.cpp:918,1
    - Dst: auto::hash_function
      Src: /src/botan/src/tests/test_pubkey.cpp:918,1
    - Dst: Test::Result::test_is_nonempty
      Src: /src/botan/src/tests/test_pubkey.cpp:919,1
    - Dst: auto::hash_function
      Src: /src/botan/src/tests/test_pubkey.cpp:919,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:921,1
    - Dst: auto::hash_function
      Src: /src/botan/src/tests/test_pubkey.cpp:922,1
    - Dst: auto::hash_function
      Src: /src/botan/src/tests/test_pubkey.cpp:922,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_pubkey.cpp:924,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_pubkey.cpp:925,1
    - Dst: auto::sign_message
      Src: /src/botan/src/tests/test_pubkey.cpp:927,1
    - Dst: Botan_Tests::PK_API_Sign_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:927,1
    - Dst: Test::Result::test_gt
      Src: /src/botan/src/tests/test_pubkey.cpp:928,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_pubkey.cpp:928,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:929,1
    - Dst: auto::verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:930,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 37
    argCount: 2
    argNames:
    - ' algorithm'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 865
    functionDepth: 1
    functionLinenumber: 865
    functionLinenumberEnd: 934
    functionName: Botan_Tests::PK_API_Sign_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - auto::public_key
    - std::ostringstream::str
    - auto::sign_message
    - Botan_Tests::PK_API_Sign_Test::rng
    - std::string::empty
    - auto::size
    - auto::remaining_operations
    - auto::key_length
    - std::make_unique<Botan::PK_Verifier>
    - Test::Result::test_gt
    - auto::stateful_operation
    - Test::Result::test_is_nonempty
    - Botan::create_private_key
    - std::make_unique<Botan::PK_Signer>
    - auto::verify_message
    - get_opt_str
    - auto::hash_function
    - get_req_str
    - Test::Result::test_note
    - auto::supports_operation
    - Botan::X509::BER_encode
    - Botan::fmt
    - auto::reset
    - Test::Result::test_eq
    - Test::Result::confirm
    - 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: 943
      start: 936
    functionDepth: 0
    functionLinenumber: 936
    functionLinenumberEnd: 943
    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: 953
      start: 953
    functionDepth: 0
    functionLinenumber: 953
    functionLinenumberEnd: 953
    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:957,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:962,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pubkey.cpp:963,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:965,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_pubkey.cpp:967,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:967,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:968,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:970,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:970,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 956
    functionDepth: 1
    functionLinenumber: 956
    functionLinenumberEnd: 975
    functionName: Botan_Tests::PK_Key_Decoding_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_failure
    - std::string
    - Botan::PKCS8::load_key
    - what
    - get_req_bin
    - Test::Result::test_success
    - Test::Result::test_note
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) final
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_pubkey.cpp:38,1
    - Dst: size
      Src: /src/botan/src/tests/test_pubkey.cpp:40,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:41,1
    - Dst: verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:41,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_pubkey.cpp:44,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:47,1
    - Dst: verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:47,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:48,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_pubkey.cpp:48,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:51,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_pubkey.cpp:51,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:52,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    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: 55
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 55
    functionName: Botan_Tests::check_invalid_signatures
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan::hex_encode
    - Botan_Tests::Test::run_long_tests
    - size
    - test_failure
    - Botan_Tests::Test::mutate_vec
    - 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:38,1
    - Dst: size
      Src: /src/botan/src/tests/test_pubkey.cpp:40,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:41,1
    - Dst: verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:41,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_pubkey.cpp:44,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:47,1
    - Dst: verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:47,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:48,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_pubkey.cpp:48,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:51,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_pubkey.cpp:51,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:52,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    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: 55
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 55
    functionName: Botan_Tests::check_invalid_signatures
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan::hex_encode
    - Botan_Tests::Test::run_long_tests
    - size
    - test_failure
    - Botan_Tests::Test::mutate_vec
    - 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:65,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_pubkey.cpp:71,1
    - Dst: decrypt
      Src: /src/botan/src/tests/test_pubkey.cpp:74,1
    - Dst: test_ne
      Src: /src/botan/src/tests/test_pubkey.cpp:77,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:78,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:85,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_pubkey.cpp:85,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_pubkey.cpp:86,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    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: 87
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 87
    functionName: Botan_Tests::check_invalid_ciphertexts
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - test_ne
    - test_eq
    - Botan_Tests::Test::run_long_tests
    - Botan_Tests::Test::mutate_vec
    - std::to_string
    - decrypt
    - 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:90,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_pubkey.cpp:93,1
    - Dst: Botan_Tests::PK_Test::default_padding
      Src: /src/botan/src/tests/test_pubkey.cpp:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' vars'
    - ' pad_hdr'
    argTypes:
    - VarMap
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: Botan_Tests::PK_Test::choose_padding
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::PK_Test::default_padding
    - empty
    - get_opt_str
    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:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 98
    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: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:101,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:102,1
    - Dst: choose_padding
      Src: /src/botan/src/tests/test_pubkey.cpp:103,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:106,1
    - Dst: has_key
      Src: /src/botan/src/tests/test_pubkey.cpp:107,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_pubkey.cpp:108,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_pubkey.cpp:112,1
    - Dst: load_private_key
      Src: /src/botan/src/tests/test_pubkey.cpp:116,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_pubkey.cpp:118,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:118,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:122,1
    - Dst: std::unique_ptr::supports_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:123,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:125,1
    - Dst: Botan::X509::BER_encode
      Src: /src/botan/src/tests/test_pubkey.cpp:125,1
    - Dst: std::unique_ptr::public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:125,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:127,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:128,1
    - Dst: possible_providers
      Src: /src/botan/src/tests/test_pubkey.cpp:132,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:132,1
    - Dst: std::make_unique<Botan::PK_Verifier>
      Src: /src/botan/src/tests/test_pubkey.cpp:137,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:143,1
    - Dst: std::unique_ptr::verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:143,1
    - Dst: check_invalid_signatures
      Src: /src/botan/src/tests/test_pubkey.cpp:145,1
    - Dst: Botan_Tests::PK_Signature_Generation_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:145,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:147,1
    - Dst: std::unique_ptr::verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:147,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_pubkey.cpp:149,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_pubkey.cpp:149,1
    - Dst: possible_providers
      Src: /src/botan/src/tests/test_pubkey.cpp:152,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:152,1
    - Dst: std::make_unique<Botan::PK_Signer>
      Src: /src/botan/src/tests/test_pubkey.cpp:158,1
    - Dst: Botan_Tests::PK_Signature_Generation_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:159,1
    - Dst: has_key
      Src: /src/botan/src/tests/test_pubkey.cpp:161,1
    - Dst: Botan_Tests::PK_Signature_Generation_Test::test_rng
      Src: /src/botan/src/tests/test_pubkey.cpp:162,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:162,1
    - Dst: std::unique_ptr::sign_message
      Src: /src/botan/src/tests/test_pubkey.cpp:163,1
    - Dst: std::unique_ptr::sign_message
      Src: /src/botan/src/tests/test_pubkey.cpp:165,1
    - Dst: Botan_Tests::PK_Signature_Generation_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:165,1
    - Dst: Test::Result::test_lte
      Src: /src/botan/src/tests/test_pubkey.cpp:168,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:169,1
    - Dst: std::unique_ptr::signature_length
      Src: /src/botan/src/tests/test_pubkey.cpp:169,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:176,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:179,1
    - Dst: std::unique_ptr::verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:180,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:181,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 2
    argNames:
    - ' pad_hdr'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 188
    functionName: Botan_Tests::PK_Signature_Generation_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::verify_message
    - std::ostringstream::str
    - Test::Result::test_failure
    - Test::Result::test_lte
    - std::unique_ptr::public_key
    - choose_padding
    - algo_name
    - what
    - Botan_Tests::PK_Signature_Generation_Test::rng
    - possible_providers
    - std::unique_ptr::sign_message
    - load_private_key
    - std::make_unique<Botan::PK_Verifier>
    - get_req_bin
    - std::unique_ptr::supports_operation
    - Test::Result::note_missing
    - check_invalid_signatures
    - std::vector::push_back
    - std::make_unique<Botan::PK_Signer>
    - std::vector::size
    - get_req_str
    - auto::supports_operation
    - std::unique_ptr::signature_length
    - Botan::X509::BER_encode
    - std::move
    - Botan_Tests::PK_Signature_Generation_Test::test_rng
    - has_key
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::X509::load_key
    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: 192
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 192
    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:195,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:196,1
    - Dst: choose_padding
      Src: /src/botan/src/tests/test_pubkey.cpp:197,1
    - Dst: get_opt_sz
      Src: /src/botan/src/tests/test_pubkey.cpp:199,1
    - Dst: load_public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:201,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:204,1
    - Dst: has_key
      Src: /src/botan/src/tests/test_pubkey.cpp:205,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_pubkey.cpp:206,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_pubkey.cpp:208,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_pubkey.cpp:212,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:214,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:215,1
    - Dst: possible_providers
      Src: /src/botan/src/tests/test_pubkey.cpp:217,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:217,1
    - Dst: std::make_unique<Botan::PK_Verifier>
      Src: /src/botan/src/tests/test_pubkey.cpp:221,1
    - Dst: Botan_Tests::PK_Signature_Verification_Test::sig_format
      Src: /src/botan/src/tests/test_pubkey.cpp:221,1
    - Dst: std::unique_ptr::verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:228,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:231,1
    - Dst: Botan_Tests::PK_Signature_Verification_Test::test_random_invalid_sigs
      Src: /src/botan/src/tests/test_pubkey.cpp:233,1
    - Dst: check_invalid_signatures
      Src: /src/botan/src/tests/test_pubkey.cpp:234,1
    - Dst: Botan_Tests::PK_Signature_Verification_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:234,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:237,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:240,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:240,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 2
    argNames:
    - ' pad_hdr'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 246
    functionName: Botan_Tests::PK_Signature_Verification_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::verify_message
    - std::ostringstream::str
    - Test::Result::test_failure
    - std::string::empty
    - choose_padding
    - algo_name
    - what
    - get_opt_sz
    - possible_providers
    - Botan_Tests::PK_Signature_Verification_Test::rng
    - std::make_unique<Botan::PK_Verifier>
    - Botan_Tests::PK_Signature_Verification_Test::sig_format
    - get_req_bin
    - check_invalid_signatures
    - Botan_Tests::PK_Signature_Verification_Test::test_random_invalid_sigs
    - get_req_str
    - auto::supports_operation
    - has_key
    - Test::Result::test_eq
    - load_public_key
    - Test::Result::confirm
    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:249,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:250,1
    - Dst: load_public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:251,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:253,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:255,1
    - Dst: possible_providers
      Src: /src/botan/src/tests/test_pubkey.cpp:257,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:257,1
    - Dst: std::make_unique<Botan::PK_Verifier>
      Src: /src/botan/src/tests/test_pubkey.cpp:262,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:263,1
    - Dst: std::unique_ptr::verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:263,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:265,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' pad_hdr'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 270
    functionName: Botan_Tests::PK_Signature_NonVerification_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::verify_message
    - choose_padding
    - std::make_unique<Botan::PK_Verifier>
    - Test::Result::test_eq
    - load_public_key
    - algo_name
    - get_req_bin
    - possible_providers
    - Test::Result::test_note
    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:276,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:280,1
    - Dst: Botan_Tests::PK_Sign_Verify_DER_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:282,1
    - Dst: Botan_Tests::PK_Sign_Verify_DER_Test::possible_providers
      Src: /src/botan/src/tests/test_pubkey.cpp:284,1
    - Dst: Botan_Tests::PK_Sign_Verify_DER_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:284,1
    - Dst: std::make_unique<Botan::PK_Signer>
      Src: /src/botan/src/tests/test_pubkey.cpp:289,1
    - Dst: Botan_Tests::PK_Sign_Verify_DER_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:290,1
    - Dst: std::make_unique<Botan::PK_Verifier>
      Src: /src/botan/src/tests/test_pubkey.cpp:292,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:294,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:294,1
    - Dst: std::unique_ptr::sign_message
      Src: /src/botan/src/tests/test_pubkey.cpp:299,1
    - Dst: Botan_Tests::PK_Sign_Verify_DER_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:299,1
    - Dst: std::unique_ptr::verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:300,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:302,1
    - Dst: Botan_Tests::PK_Sign_Verify_DER_Test::test_random_invalid_sigs
      Src: /src/botan/src/tests/test_pubkey.cpp:304,1
    - Dst: check_invalid_signatures
      Src: /src/botan/src/tests/test_pubkey.cpp:305,1
    - Dst: Botan_Tests::PK_Sign_Verify_DER_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:305,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:308,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:308,1
    - Dst: Botan::PK_Signer::PK_Signer
      Src: /src/botan/src/tests/test_pubkey.cpp:317,1
    - Dst: Botan_Tests::PK_Sign_Verify_DER_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:317,1
    - Dst: Botan::PK_Verifier::PK_Verifier
      Src: /src/botan/src/tests/test_pubkey.cpp:318,1
    - Dst: auto::set_output_format
      Src: /src/botan/src/tests/test_pubkey.cpp:322,1
    - Dst: auto::set_input_format
      Src: /src/botan/src/tests/test_pubkey.cpp:323,1
    - Dst: auto::sign_message
      Src: /src/botan/src/tests/test_pubkey.cpp:325,1
    - Dst: Botan_Tests::PK_Sign_Verify_DER_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:325,1
    - Dst: auto::verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:326,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:328,1
    - Dst: Botan_Tests::PK_Sign_Verify_DER_Test::test_random_invalid_sigs
      Src: /src/botan/src/tests/test_pubkey.cpp:329,1
    - Dst: check_invalid_signatures
      Src: /src/botan/src/tests/test_pubkey.cpp:330,1
    - Dst: Botan_Tests::PK_Sign_Verify_DER_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:330,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:333,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:335,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:335,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 339
    functionName: Botan_Tests::PK_Sign_Verify_DER_Test::run
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - auto::public_key
    - std::unique_ptr::verify_message
    - Test::Result::test_failure
    - auto::sign_message
    - what
    - auto::set_input_format
    - Botan::PK_Verifier::PK_Verifier
    - std::unique_ptr::sign_message
    - std::make_unique<Botan::PK_Verifier>
    - check_invalid_signatures
    - Botan_Tests::PK_Sign_Verify_DER_Test::possible_providers
    - std::make_unique<Botan::PK_Signer>
    - auto::verify_message
    - Test::Result::test_note
    - Botan_Tests::PK_Sign_Verify_DER_Test::algo_name
    - key
    - Test::Result::test_eq
    - Botan::PK_Signer::PK_Signer
    - Test::Result::confirm
    - auto::set_output_format
    - Botan_Tests::PK_Sign_Verify_DER_Test::test_random_invalid_sigs
    - Botan_Tests::PK_Sign_Verify_DER_Test::rng
    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:343,1
    - Dst: Botan_Tests::Test::provider_filter
      Src: /src/botan/src/tests/test_pubkey.cpp:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 345
    functionName: Botan_Tests::PK_Sign_Verify_DER_Test::possible_providers
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::Test::provider_filter
    - Botan::probe_provider_private_key
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> PK_Sign_Verify_DER_Test::possible_providers(const
      std::string& algo_name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:348,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:349,1
    - Dst: choose_padding
      Src: /src/botan/src/tests/test_pubkey.cpp:350,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:352,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_pubkey.cpp:352,1
    - Dst: load_private_key
      Src: /src/botan/src/tests/test_pubkey.cpp:354,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:356,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:357,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:359,1
    - Dst: possible_providers
      Src: /src/botan/src/tests/test_pubkey.cpp:363,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:363,1
    - Dst: std::make_unique<Botan::PK_Decryptor_EME>
      Src: /src/botan/src/tests/test_pubkey.cpp:367,1
    - Dst: Botan_Tests::PK_Encryption_Decryption_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:367,1
    - Dst: std::unique_ptr::decrypt
      Src: /src/botan/src/tests/test_pubkey.cpp:374,1
    - Dst: Test::Result::test_lte
      Src: /src/botan/src/tests/test_pubkey.cpp:376,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:376,1
    - Dst: std::unique_ptr::plaintext_length
      Src: /src/botan/src/tests/test_pubkey.cpp:376,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:376,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:378,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:378,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:381,1
    - Dst: check_invalid_ciphertexts
      Src: /src/botan/src/tests/test_pubkey.cpp:382,1
    - Dst: Botan_Tests::PK_Encryption_Decryption_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:382,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_pubkey.cpp:383,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_pubkey.cpp:383,1
    - Dst: possible_providers
      Src: /src/botan/src/tests/test_pubkey.cpp:386,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:386,1
    - Dst: std::make_unique<Botan::PK_Encryptor_EME>
      Src: /src/botan/src/tests/test_pubkey.cpp:390,1
    - Dst: Botan_Tests::PK_Encryption_Decryption_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:390,1
    - Dst: has_key
      Src: /src/botan/src/tests/test_pubkey.cpp:396,1
    - Dst: Botan_Tests::PK_Encryption_Decryption_Test::test_rng
      Src: /src/botan/src/tests/test_pubkey.cpp:397,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:397,1
    - Dst: Test::Result::test_lte
      Src: /src/botan/src/tests/test_pubkey.cpp:405,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:405,1
    - Dst: std::unique_ptr::maximum_input_size
      Src: /src/botan/src/tests/test_pubkey.cpp:405,1
    - Dst: Test::Result::test_lte
      Src: /src/botan/src/tests/test_pubkey.cpp:407,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:407,1
    - Dst: std::unique_ptr::maximum_input_size
      Src: /src/botan/src/tests/test_pubkey.cpp:407,1
    - Dst: std::unique_ptr::encrypt
      Src: /src/botan/src/tests/test_pubkey.cpp:410,1
    - Dst: Botan_Tests::PK_Encryption_Decryption_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:410,1
    - Dst: Test::Result::test_lte
      Src: /src/botan/src/tests/test_pubkey.cpp:412,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:413,1
    - Dst: std::unique_ptr::ciphertext_length
      Src: /src/botan/src/tests/test_pubkey.cpp:413,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:413,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:416,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:419,1
    - Dst: decrypt
      Src: /src/botan/src/tests/test_pubkey.cpp:419,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 2
    argNames:
    - ' pad_hdr'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 425
    functionName: Botan_Tests::PK_Encryption_Decryption_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - auto::public_key
    - Botan_Tests::PK_Encryption_Decryption_Test::test_rng
    - Test::Result::test_failure
    - Test::Result::test_lte
    - std::string::empty
    - choose_padding
    - algo_name
    - what
    - check_invalid_ciphertexts
    - Botan::secure_vector::size
    - possible_providers
    - std::make_unique<Botan::PK_Decryptor_EME>
    - std::unique_ptr::ciphertext_length
    - load_private_key
    - std::make_unique<Botan::PK_Encryptor_EME>
    - decrypt
    - get_req_bin
    - std::vector::push_back
    - std::unique_ptr::decrypt
    - std::unique_ptr::encrypt
    - std::unique_ptr::maximum_input_size
    - Botan_Tests::PK_Encryption_Decryption_Test::rng
    - std::unique_ptr::plaintext_length
    - std::vector::size
    - auto::supports_operation
    - std::move
    - Test::Result::test_eq
    - has_key
    - Test::Result::confirm
    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:428,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:429,1
    - Dst: choose_padding
      Src: /src/botan/src/tests/test_pubkey.cpp:430,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:432,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_pubkey.cpp:432,1
    - Dst: load_private_key
      Src: /src/botan/src/tests/test_pubkey.cpp:434,1
    - Dst: possible_providers
      Src: /src/botan/src/tests/test_pubkey.cpp:436,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:436,1
    - Dst: std::make_unique<Botan::PK_Decryptor_EME>
      Src: /src/botan/src/tests/test_pubkey.cpp:440,1
    - Dst: Botan_Tests::PK_Decryption_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:440,1
    - Dst: std::unique_ptr::decrypt
      Src: /src/botan/src/tests/test_pubkey.cpp:447,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:449,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:449,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:452,1
    - Dst: check_invalid_ciphertexts
      Src: /src/botan/src/tests/test_pubkey.cpp:453,1
    - Dst: Botan_Tests::PK_Decryption_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:453,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - ' pad_hdr'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 457
    functionName: Botan_Tests::PK_Decryption_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::PK_Decryptor_EME>
    - std::unique_ptr::decrypt
    - check_invalid_ciphertexts
    - Botan_Tests::PK_Decryption_Test::rng
    - Test::Result::test_failure
    - load_private_key
    - std::string::empty
    - choose_padding
    - Test::Result::test_eq
    - algo_name
    - what
    - get_req_bin
    - possible_providers
    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:460,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:461,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:462,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_pubkey.cpp:463,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:465,1
    - Dst: load_private_key
      Src: /src/botan/src/tests/test_pubkey.cpp:467,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:469,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:470,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:472,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:474,1
    - Dst: std::make_unique<Botan::PK_KEM_Encryptor>
      Src: /src/botan/src/tests/test_pubkey.cpp:478,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:480,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:484,1
    - Dst: std::unique_ptr::encrypt
      Src: /src/botan/src/tests/test_pubkey.cpp:486,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:488,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_pubkey.cpp:489,1
    - Dst: std::unique_ptr::encapsulated_key_length
      Src: /src/botan/src/tests/test_pubkey.cpp:490,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:492,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_pubkey.cpp:493,1
    - Dst: std::unique_ptr::shared_key_length
      Src: /src/botan/src/tests/test_pubkey.cpp:493,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:495,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_pubkey.cpp:495,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:496,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_pubkey.cpp:496,1
    - Dst: std::make_unique<Botan::PK_KEM_Decryptor>
      Src: /src/botan/src/tests/test_pubkey.cpp:500,1
    - Dst: Botan_Tests::PK_KEM_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:500,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:502,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:502,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:506,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_pubkey.cpp:507,1
    - Dst: std::unique_ptr::encapsulated_key_length
      Src: /src/botan/src/tests/test_pubkey.cpp:508,1
    - Dst: std::unique_ptr::decrypt
      Src: /src/botan/src/tests/test_pubkey.cpp:511,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_pubkey.cpp:511,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:511,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_pubkey.cpp:511,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:511,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:513,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:514,1
    - Dst: std::unique_ptr::shared_key_length
      Src: /src/botan/src/tests/test_pubkey.cpp:514,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:516,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 519
    functionName: Botan_Tests::PK_KEM_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - auto::public_key
    - auto::shared_key
    - std::make_unique<Botan::PK_KEM_Decryptor>
    - algo_name
    - Botan_Tests::PK_KEM_Test::rng
    - what
    - Botan::secure_vector::size
    - std::unique_ptr::shared_key_length
    - std::unique_ptr::encapsulated_key_length
    - load_private_key
    - std::vector::data
    - get_req_bin
    - std::unique_ptr::decrypt
    - std::unique_ptr::encrypt
    - std::make_unique<Botan::PK_KEM_Encryptor>
    - std::vector::size
    - get_req_str
    - Test::Result::test_note
    - auto::supports_operation
    - get_opt_bin
    - Test::Result::test_eq
    - auto::encapsulated_shared_key
    - Test::Result::confirm
    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:522,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_pubkey.cpp:523,1
    - Dst: Botan_Tests::PK_Key_Agreement_Test::default_kdf
      Src: /src/botan/src/tests/test_pubkey.cpp:523,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:525,1
    - Dst: empty
      Src: /src/botan/src/tests/test_pubkey.cpp:525,1
    - Dst: load_our_key
      Src: /src/botan/src/tests/test_pubkey.cpp:527,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:529,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:530,1
    - Dst: load_their_key
      Src: /src/botan/src/tests/test_pubkey.cpp:532,1
    - Dst: get_opt_sz
      Src: /src/botan/src/tests/test_pubkey.cpp:534,1
    - Dst: possible_providers
      Src: /src/botan/src/tests/test_pubkey.cpp:536,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:536,1
    - Dst: std::make_unique<Botan::PK_Key_Agreement>
      Src: /src/botan/src/tests/test_pubkey.cpp:540,1
    - Dst: Botan_Tests::PK_Key_Agreement_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:540,1
    - Dst: Botan_Tests::PK_Key_Agreement_Test::agreement_should_fail
      Src: /src/botan/src/tests/test_pubkey.cpp:542,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_pubkey.cpp:543,1
    - Dst: std::unique_ptr::derive_key
      Src: /src/botan/src/tests/test_pubkey.cpp:543,1
    - Dst: std::unique_ptr::derive_key
      Src: /src/botan/src/tests/test_pubkey.cpp:545,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:546,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:549,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_pubkey.cpp:549,1
    - Dst: std::unique_ptr::agreed_value_size
      Src: /src/botan/src/tests/test_pubkey.cpp:549,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 521
    functionDepth: 1
    functionLinenumber: 521
    functionLinenumberEnd: 558
    functionName: Botan_Tests::PK_Key_Agreement_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - std::make_unique<Botan::PK_Key_Agreement>
    - algo_name
    - get_opt_sz
    - Botan_Tests::PK_Key_Agreement_Test::default_kdf
    - auto::size
    - Botan_Tests::PK_Key_Agreement_Test::agreement_should_fail
    - possible_providers
    - load_our_key
    - std::unique_ptr::derive_key
    - get_req_bin
    - std::unique_ptr::agreed_value_size
    - load_their_key
    - get_opt_str
    - auto::supports_operation
    - Botan_Tests::PK_Key_Agreement_Test::rng
    - empty
    - Test::Result::test_eq
    - Test::Result::confirm
    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:562,1
    - Dst: Botan_Tests::Test::provider_filter
      Src: /src/botan/src/tests/test_pubkey.cpp:563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 560
    functionDepth: 1
    functionLinenumber: 560
    functionLinenumberEnd: 564
    functionName: Botan_Tests::PK_Key_Generation_Test::possible_providers
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::Test::provider_filter
    - Botan::probe_provider_private_key
    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:574,1
    - Dst: Botan_Tests::Test::random_password
      Src: /src/botan/src/tests/test_pubkey.cpp:576,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/tests/test_pubkey.cpp:580,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_pubkey.cpp:580,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:582,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:584,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:585,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:585,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:585,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:586,1
    - Dst: auto::private_key_info
      Src: /src/botan/src/tests/test_pubkey.cpp:586,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:588,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:588,1
    - Dst: Botan::PKCS8::BER_encode
      Src: /src/botan/src/tests/test_pubkey.cpp:593,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_pubkey.cpp:593,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:595,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:597,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:598,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:598,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:598,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:599,1
    - Dst: auto::private_key_info
      Src: /src/botan/src/tests/test_pubkey.cpp:599,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:601,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:601,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: 603
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 603
    functionName: Botan_Tests::test_pbe_roundtrip
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timer::milliseconds
    - test_eq
    - Botan::PKCS8::BER_encode
    - Botan::PKCS8::load_key
    - test_failure
    - auto::algo_name
    - private_key_info
    - algo_name
    - what
    - auto::private_key_info
    - confirm
    - Botan::PKCS8::PEM_encode
    - Botan_Tests::Test::random_password
    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:574,1
    - Dst: Botan_Tests::Test::random_password
      Src: /src/botan/src/tests/test_pubkey.cpp:576,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/tests/test_pubkey.cpp:580,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_pubkey.cpp:580,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:582,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:584,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:585,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:585,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:585,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:586,1
    - Dst: auto::private_key_info
      Src: /src/botan/src/tests/test_pubkey.cpp:586,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:588,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:588,1
    - Dst: Botan::PKCS8::BER_encode
      Src: /src/botan/src/tests/test_pubkey.cpp:593,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_pubkey.cpp:593,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:595,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:597,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:598,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:598,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:598,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:599,1
    - Dst: auto::private_key_info
      Src: /src/botan/src/tests/test_pubkey.cpp:599,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:601,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:601,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: 603
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 603
    functionName: Botan_Tests::test_pbe_roundtrip
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timer::milliseconds
    - test_eq
    - Botan::PKCS8::BER_encode
    - Botan::PKCS8::load_key
    - test_failure
    - auto::algo_name
    - private_key_info
    - algo_name
    - what
    - auto::private_key_info
    - confirm
    - Botan::PKCS8::PEM_encode
    - Botan_Tests::Test::random_password
    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:611,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:612,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_pubkey.cpp:613,1
    - Dst: empty
      Src: /src/botan/src/tests/test_pubkey.cpp:613,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::possible_providers
      Src: /src/botan/src/tests/test_pubkey.cpp:617,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_pubkey.cpp:619,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_pubkey.cpp:620,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_pubkey.cpp:623,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_pubkey.cpp:625,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:625,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:634,1
    - Dst: check_key
      Src: /src/botan/src/tests/test_pubkey.cpp:634,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:634,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:637,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:638,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_pubkey.cpp:638,1
    - Dst: Botan::OID::from_name
      Src: /src/botan/src/tests/test_pubkey.cpp:640,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pubkey.cpp:641,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:643,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_pubkey.cpp:644,1
    - Dst: object_identifier
      Src: /src/botan/src/tests/test_pubkey.cpp:645,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:650,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_pubkey.cpp:654,1
    - Dst: estimated_strength
      Src: /src/botan/src/tests/test_pubkey.cpp:654,1
    - Dst: Test::Result::test_lt
      Src: /src/botan/src/tests/test_pubkey.cpp:655,1
    - Dst: estimated_strength
      Src: /src/botan/src/tests/test_pubkey.cpp:655,1
    - Dst: public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:657,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:659,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:659,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:659,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:661,1
    - Dst: Botan::X509::PEM_encode
      Src: /src/botan/src/tests/test_pubkey.cpp:662,1
    - Dst: Botan::X509::PEM_encode
      Src: /src/botan/src/tests/test_pubkey.cpp:662,1
    - Dst: auto::generate_another
      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: auto::public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:669,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:671,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:671,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:671,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:672,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:672,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:672,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:673,1
    - Dst: auto::estimated_strength
      Src: /src/botan/src/tests/test_pubkey.cpp:674,1
    - Dst: estimated_strength
      Src: /src/botan/src/tests/test_pubkey.cpp:674,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:675,1
    - Dst: auto::estimated_strength
      Src: /src/botan/src/tests/test_pubkey.cpp:676,1
    - Dst: auto::estimated_strength
      Src: /src/botan/src/tests/test_pubkey.cpp:677,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_pubkey.cpp:678,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_pubkey.cpp:678,1
    - Dst: private_key_bits
      Src: /src/botan/src/tests/test_pubkey.cpp:678,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:680,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:681,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/tests/test_pubkey.cpp:688,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_pubkey.cpp:689,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_pubkey.cpp:689,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:691,1
    - Dst: dynamic_cast<const Botan::PK_Key_Agreement_Key*>
      Src: /src/botan/src/tests/test_pubkey.cpp:694,1
    - Dst: Test::Result::require
      Src: /src/botan/src/tests/test_pubkey.cpp:695,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:696,1
    - Dst: auto*::public_value
      Src: /src/botan/src/tests/test_pubkey.cpp:696,1
    - Dst: public_key_from_raw
      Src: /src/botan/src/tests/test_pubkey.cpp:699,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:700,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:700,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:700,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:701,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_pubkey.cpp:701,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_pubkey.cpp:701,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_pubkey.cpp:704,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:704,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:705,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:705,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:707,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:707,1
    - Dst: Botan::X509::PEM_encode
      Src: /src/botan/src/tests/test_pubkey.cpp:713,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:714,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:716,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:717,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:717,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:717,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:720,1
    - Dst: auto::check_key
      Src: /src/botan/src/tests/test_pubkey.cpp:720,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:720,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:723,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:723,1
    - Dst: auto::subject_public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:728,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:730,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:732,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:733,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:733,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:733,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:734,1
    - Dst: auto::subject_public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:734,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:736,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:736,1
    - Dst: private_key_info
      Src: /src/botan/src/tests/test_pubkey.cpp:741,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:743,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:745,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:746,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:746,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:746,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:747,1
    - Dst: auto::private_key_info
      Src: /src/botan/src/tests/test_pubkey.cpp:747,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:749,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:749,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:754,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:756,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:757,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:757,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:757,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:759,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:759,1
    - Dst: test_pbe_roundtrip
      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_pbe_roundtrip
      Src: /src/botan/src/tests/test_pubkey.cpp:769,1
    - Dst: Botan_Tests::PK_Key_Generation_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:769,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_pubkey.cpp:773,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_pubkey.cpp:775,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 88
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 608
    functionDepth: 2
    functionLinenumber: 608
    functionLinenumberEnd: 779
    functionName: Botan_Tests::PK_Key_Generation_Test::run
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - auto::public_key
    - auto::private_key_bits
    - Botan::X509::load_key
    - Test::Result::test_failure
    - std::string::empty
    - estimated_strength
    - Test::Result::test_gte
    - Botan_Tests::PK_Key_Generation_Test::algo_name
    - check_key
    - what
    - Botan::OID::from_name
    - auto::size
    - public_key
    - Test::Result::test_lt
    - Test::Result::test_ne
    - auto::public_key_bits
    - keygen_params
    - auto*::public_value
    - auto::raw_public_key_bits
    - public_key_from_raw
    - Test::Result::test_success
    - auto::subject_public_key
    - Botan::X509::PEM_encode
    - Test::Result::start_timer
    - Test::Result::note_missing
    - std::vector::push_back
    - object_identifier
    - Botan::create_private_key
    - auto::estimated_strength
    - Botan::PKCS8::load_key
    - std::vector::empty
    - auto::value
    - private_key_bits
    - Botan_Tests::PK_Key_Generation_Test::rng
    - auto::private_key_info
    - dynamic_cast<const Botan::PK_Key_Agreement_Key*>
    - Test::Result::test_note
    - auto::supports_operation
    - Botan_Tests::PK_Key_Generation_Test::possible_providers
    - Botan::fmt
    - Test::Result::end_timer
    - Botan::value_exists
    - private_key_info
    - empty
    - Test::Result::test_eq
    - auto::generate_another
    - Test::Result::confirm
    - Test::Result::require
    - auto::check_key
    - auto::algo_name
    - test_pbe_roundtrip
    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:782,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pubkey.cpp:785,1
    - Dst: load_public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:789,1
    - Dst: auto::check_key
      Src: /src/botan/src/tests/test_pubkey.cpp:791,1
    - Dst: Botan_Tests::PK_Key_Validity_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:791,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:793,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 781
    functionDepth: 0
    functionLinenumber: 781
    functionLinenumberEnd: 796
    functionName: Botan_Tests::PK_Key_Validity_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - Botan_Tests::PK_Key_Validity_Test::rng
    - Test::Result::test_eq
    - load_public_key
    - algo_name
    - 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: 800
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 800
    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:803,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_pubkey.cpp:804,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_pubkey.cpp:805,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:806,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey.cpp:807,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:811,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_pubkey.cpp:812,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_pubkey.cpp:817,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_pubkey.cpp:819,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_pubkey.cpp:825,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_pubkey.cpp:830,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pubkey.cpp:831,1
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_pubkey.cpp:833,1
    - Dst: std::unique_ptr::add_entropy
      Src: /src/botan/src/tests/test_pubkey.cpp:837,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_pubkey.cpp:837,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pubkey.cpp:837,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_pubkey.cpp:840,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey.cpp:840,1
    - Dst: auto::private_key_info
      Src: /src/botan/src/tests/test_pubkey.cpp:842,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:843,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:846,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:846,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:849,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_pubkey.cpp:852,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 802
    functionDepth: 1
    functionLinenumber: 802
    functionLinenumberEnd: 855
    functionName: Botan_Tests::PK_Key_Generation_Stability_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - std::string::empty
    - algo_name
    - what
    - Test_Error
    - std::vector::data
    - get_req_bin
    - std::make_unique<Botan::HMAC_DRBG>
    - Test::Result::start_timer
    - Botan::create_private_key
    - get_opt_str
    - auto::private_key_info
    - std::vector::size
    - get_req_str
    - Test::Result::test_note
    - Test::Result::end_timer
    - Test::Result::test_eq
    - std::unique_ptr::add_entropy
    - 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: 862
      start: 862
    functionDepth: 0
    functionLinenumber: 862
    functionLinenumberEnd: 862
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_pubkey.cpp:866,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_pubkey.cpp:867,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_pubkey.cpp:868,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_pubkey.cpp:869,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_pubkey.cpp:873,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_pubkey.cpp:876,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_pubkey.cpp:879,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_pubkey.cpp:883,1
    - Dst: Botan_Tests::PK_API_Sign_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:883,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:890,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_pubkey.cpp:890,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:895,1
    - Dst: Botan::X509::BER_encode
      Src: /src/botan/src/tests/test_pubkey.cpp:895,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_pubkey.cpp:895,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:896,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:898,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:899,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:900,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:901,1
    - Dst: Test::Result::test_gt
      Src: /src/botan/src/tests/test_pubkey.cpp:902,1
    - Dst: auto::key_length
      Src: /src/botan/src/tests/test_pubkey.cpp:902,1
    - Dst: auto::stateful_operation
      Src: /src/botan/src/tests/test_pubkey.cpp:903,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:904,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_pubkey.cpp:905,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:907,1
    - Dst: auto::remaining_operations
      Src: /src/botan/src/tests/test_pubkey.cpp:908,1
    - Dst: std::make_unique<Botan::PK_Signer>
      Src: /src/botan/src/tests/test_pubkey.cpp:911,1
    - Dst: Botan_Tests::PK_API_Sign_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:912,1
    - Dst: std::make_unique<Botan::PK_Verifier>
      Src: /src/botan/src/tests/test_pubkey.cpp:914,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:915,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey.cpp:916,1
    - Dst: Test::Result::test_is_nonempty
      Src: /src/botan/src/tests/test_pubkey.cpp:918,1
    - Dst: auto::hash_function
      Src: /src/botan/src/tests/test_pubkey.cpp:918,1
    - Dst: Test::Result::test_is_nonempty
      Src: /src/botan/src/tests/test_pubkey.cpp:919,1
    - Dst: auto::hash_function
      Src: /src/botan/src/tests/test_pubkey.cpp:919,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:921,1
    - Dst: auto::hash_function
      Src: /src/botan/src/tests/test_pubkey.cpp:922,1
    - Dst: auto::hash_function
      Src: /src/botan/src/tests/test_pubkey.cpp:922,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_pubkey.cpp:924,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_pubkey.cpp:925,1
    - Dst: auto::sign_message
      Src: /src/botan/src/tests/test_pubkey.cpp:927,1
    - Dst: Botan_Tests::PK_API_Sign_Test::rng
      Src: /src/botan/src/tests/test_pubkey.cpp:927,1
    - Dst: Test::Result::test_gt
      Src: /src/botan/src/tests/test_pubkey.cpp:928,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_pubkey.cpp:928,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey.cpp:929,1
    - Dst: auto::verify_message
      Src: /src/botan/src/tests/test_pubkey.cpp:930,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 37
    argCount: 2
    argNames:
    - ' algorithm'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 865
    functionDepth: 1
    functionLinenumber: 865
    functionLinenumberEnd: 934
    functionName: Botan_Tests::PK_API_Sign_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - auto::public_key
    - std::ostringstream::str
    - auto::sign_message
    - Botan_Tests::PK_API_Sign_Test::rng
    - std::string::empty
    - auto::size
    - auto::remaining_operations
    - auto::key_length
    - std::make_unique<Botan::PK_Verifier>
    - Test::Result::test_gt
    - auto::stateful_operation
    - Test::Result::test_is_nonempty
    - Botan::create_private_key
    - std::make_unique<Botan::PK_Signer>
    - auto::verify_message
    - get_opt_str
    - auto::hash_function
    - get_req_str
    - Test::Result::test_note
    - auto::supports_operation
    - Botan::X509::BER_encode
    - Botan::fmt
    - auto::reset
    - Test::Result::test_eq
    - Test::Result::confirm
    - 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: 943
      start: 936
    functionDepth: 0
    functionLinenumber: 936
    functionLinenumberEnd: 943
    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: 953
      start: 953
    functionDepth: 0
    functionLinenumber: 953
    functionLinenumberEnd: 953
    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:957,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_pubkey.cpp:962,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pubkey.cpp:963,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:965,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_pubkey.cpp:967,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:967,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pubkey.cpp:968,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pubkey.cpp:970,1
    - Dst: what
      Src: /src/botan/src/tests/test_pubkey.cpp:970,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 956
    functionDepth: 1
    functionLinenumber: 956
    functionLinenumberEnd: 975
    functionName: Botan_Tests::PK_Key_Decoding_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_failure
    - std::string
    - Botan::PKCS8::load_key
    - what
    - get_req_bin
    - Test::Result::test_success
    - Test::Result::test_note
    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_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_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_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::confirm
      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_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::name
    - auto::new_object
    - Test::Result::note_missing
    - Botan::KDF::create
    - get_opt_bin
    - auto::derive_key
    - auto::end
    - auto::get
    - Test::Result::test_eq
    - Test::Result::confirm
    - get_req_bin
    - std::vector::size
    - auto::begin
    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_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:
    - Test::Result::test_eq
    - Botan::hkdf_expand_label
    - Botan::HashFunction::create
    - get_req_bin
    - std::vector::size
    - get_req_str
    - Test::Result::test_note
    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_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_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_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::confirm
      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_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::name
    - auto::new_object
    - Test::Result::note_missing
    - Botan::KDF::create
    - get_opt_bin
    - auto::derive_key
    - auto::end
    - auto::get
    - Test::Result::test_eq
    - Test::Result::confirm
    - get_req_bin
    - std::vector::size
    - auto::begin
    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_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:
    - Test::Result::test_eq
    - Botan::hkdf_expand_label
    - Botan::HashFunction::create
    - get_req_bin
    - std::vector::size
    - get_req_str
    - Test::Result::test_note
    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_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_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_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::confirm
      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_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::name
    - auto::new_object
    - Test::Result::note_missing
    - Botan::KDF::create
    - get_opt_bin
    - auto::derive_key
    - auto::end
    - auto::get
    - Test::Result::test_eq
    - Test::Result::confirm
    - get_req_bin
    - std::vector::size
    - auto::begin
    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_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:
    - Test::Result::test_eq
    - Botan::hkdf_expand_label
    - Botan::HashFunction::create
    - get_req_bin
    - std::vector::size
    - get_req_str
    - Test::Result::test_note
    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_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_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_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::confirm
      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_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::name
    - auto::new_object
    - Test::Result::note_missing
    - Botan::KDF::create
    - get_opt_bin
    - auto::derive_key
    - auto::end
    - auto::get
    - Test::Result::test_eq
    - Test::Result::confirm
    - get_req_bin
    - std::vector::size
    - auto::begin
    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_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:
    - Test::Result::test_eq
    - Botan::hkdf_expand_label
    - Botan::HashFunction::create
    - get_req_bin
    - std::vector::size
    - get_req_str
    - Test::Result::test_note
    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_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_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:
    - Botan::TPM_RNG::random_vec
    - Test::Result::test_ne
    - Test::Result::test_failure
    - std::unique_ptr::reset
    - Botan::TPM_PrivateKey::registered_keys
    - Botan::TPM_Context::TPM_Context
    - std::vector<uint8_t>
    - std::to_string
    - Botan::TPM_PrivateKey::export_blob
    - std::unique_ptr::current_counter
    - Test::Result::test_gte
    - Test::Result::test_success
    - std::vector::size
    - what
    - Test::Result::test_note
    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_eq
      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_eq
      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::confirm
      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_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::confirm
      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:
    - std::string::size
    - Botan::UUID::UUID
    - Botan::UUID::binary_value
    - Botan::UUID::to_string
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::UUID::is_valid
    - Botan_Tests::UUID_Tests::rng
    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_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_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:
    - Botan::TPM_RNG::random_vec
    - Test::Result::test_ne
    - Test::Result::test_failure
    - std::unique_ptr::reset
    - Botan::TPM_PrivateKey::registered_keys
    - Botan::TPM_Context::TPM_Context
    - std::vector<uint8_t>
    - std::to_string
    - Botan::TPM_PrivateKey::export_blob
    - std::unique_ptr::current_counter
    - Test::Result::test_gte
    - Test::Result::test_success
    - std::vector::size
    - what
    - Test::Result::test_note
    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_eq
      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_eq
      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::confirm
      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_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::confirm
      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:
    - std::string::size
    - Botan::UUID::UUID
    - Botan::UUID::binary_value
    - Botan::UUID::to_string
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::UUID::is_valid
    - Botan_Tests::UUID_Tests::rng
    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:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - kat_path
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    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:37,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus.cpp:37,1
    - Dst: auto::is_available
      Src: /src/botan/src/tests/test_sphincsplus.cpp:39,1
    - Dst: auto::hash_type
      Src: /src/botan/src/tests/test_sphincsplus.cpp:45,1
    - Dst: auto::parameter_set
      Src: /src/botan/src/tests/test_sphincsplus.cpp:51,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_sphincsplus.cpp:65,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/tests/test_sphincsplus.cpp:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 68
    functionName: Botan_Tests::SPHINCS_Plus_Test_Base::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - auto::hash_type
    - BOTAN_ASSERT_UNREACHABLE
    - auto::is_available
    - Botan_Tests::Test::run_long_tests
    - Botan::Sphincs_Parameters::create
    - auto::parameter_set
    - get_req_str
    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:71,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus.cpp:71,1
    - Dst: auto::is_slh_dsa
      Src: /src/botan/src/tests/test_sphincsplus.cpp:72,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: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:77,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:78,1
    - Dst: has_key
      Src: /src/botan/src/tests/test_sphincsplus.cpp:80,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:81,1
    - Dst: auto::hash_type
      Src: /src/botan/src/tests/test_sphincsplus.cpp:91,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/tests/test_sphincsplus.cpp:97,1
    - Dst: CTR_DRBG_AES256
      Src: /src/botan/src/tests/test_sphincsplus.cpp:107,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_sphincsplus.cpp:109,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_sphincsplus.cpp:109,1
    - Dst: auto::n
      Src: /src/botan/src/tests/test_sphincsplus.cpp:109,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_sphincsplus.cpp:113,1
    - Dst: auto::n
      Src: /src/botan/src/tests/test_sphincsplus.cpp:113,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_sphincsplus.cpp:115,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_sphincsplus.cpp:116,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_sphincsplus.cpp:121,1
    - Dst: Botan::SphincsPlus_PrivateKey::public_key_bits
      Src: /src/botan/src/tests/test_sphincsplus.cpp:121,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_sphincsplus.cpp:122,1
    - Dst: unlock
      Src: /src/botan/src/tests/test_sphincsplus.cpp:122,1
    - Dst: Botan::SphincsPlus_PrivateKey::private_key_bits
      Src: /src/botan/src/tests/test_sphincsplus.cpp:122,1
    - Dst: Botan::PK_Signer::PK_Signer
      Src: /src/botan/src/tests/test_sphincsplus.cpp:125,1
    - Dst: auto::sign_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:126,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:126,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:126,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_sphincsplus.cpp:128,1
    - Dst: unlock
      Src: /src/botan/src/tests/test_sphincsplus.cpp:128,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_sphincsplus.cpp:128,1
    - Dst: Botan::SphincsPlus_PrivateKey::public_key
      Src: /src/botan/src/tests/test_sphincsplus.cpp:130,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_sphincsplus.cpp:130,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:132,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:132,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:132,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:132,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:132,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_sphincsplus.cpp:133,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_sphincsplus.cpp:137,1
    - Dst: run_long_tests
      Src: /src/botan/src/tests/test_sphincsplus.cpp:138,1
    - Dst: auto::parameter_set
      Src: /src/botan/src/tests/test_sphincsplus.cpp:138,1
    - Dst: Botan::PK_Signer::PK_Signer
      Src: /src/botan/src/tests/test_sphincsplus.cpp:139,1
    - Dst: auto::sign_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:140,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:140,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:140,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_sphincsplus.cpp:142,1
    - Dst: unlock
      Src: /src/botan/src/tests/test_sphincsplus.cpp:142,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_sphincsplus.cpp:142,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:145,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:145,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:145,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:145,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:145,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_sphincsplus.cpp:146,1
    - Dst: auto::parameter_set
      Src: /src/botan/src/tests/test_sphincsplus.cpp:154,1
    - Dst: auto::parameter_set
      Src: /src/botan/src/tests/test_sphincsplus.cpp:155,1
    - Dst: Botan::PK_Signer::PK_Signer
      Src: /src/botan/src/tests/test_sphincsplus.cpp:161,1
    - Dst: auto::sign_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:162,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:162,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:162,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_sphincsplus.cpp:164,1
    - Dst: unlock
      Src: /src/botan/src/tests/test_sphincsplus.cpp:165,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_sphincsplus.cpp:165,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_sphincsplus.cpp:169,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:170,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:171,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:171,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:171,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:171,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_sphincsplus.cpp:172,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_sphincsplus.cpp:175,1
    - Dst: Botan_Tests::SPHINCS_Plus_Test_Base::rng
      Src: /src/botan/src/tests/test_sphincsplus.cpp:175,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:176,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:177,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:177,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:177,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:177,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_sphincsplus.cpp:178,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:180,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:181,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:181,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:181,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:181,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_sphincsplus.cpp:182,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_sphincsplus.cpp:186,1
    - Dst: auto::to_string
      Src: /src/botan/src/tests/test_sphincsplus.cpp:186,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus.cpp:186,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 189
    functionName: Botan_Tests::SPHINCS_Plus_Test_Base::run_one_test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - auto::hash_type
    - auto::sign_message
    - Botan::SphincsPlus_PrivateKey::public_key
    - run_long_tests
    - Botan::PK_Verifier::verify_message
    - auto::to_string
    - auto::size
    - auto::algorithm_identifier
    - Botan_Tests::SPHINCS_Plus_Test_Base::rng
    - auto::has_value
    - Test::Result::test_is_eq
    - std::vector::data
    - auto::is_slh_dsa
    - get_req_bin
    - auto::parameter_set
    - auto::data
    - auto::n
    - auto::process
    - CTR_DRBG_AES256
    - Botan::HashFunction::create_or_throw
    - Botan::SphincsPlus_PrivateKey::public_key_bits
    - Botan::SphincsPlus_PrivateKey::private_key_bits
    - std::vector::size
    - get_req_str
    - Fixed_Output_RNG::add_entropy
    - get_opt_bin
    - auto::random_vec
    - Botan::Sphincs_Parameters::create
    - has_key
    - Botan::PK_Signer::PK_Signer
    - Test::Result::confirm
    - Botan_Tests::Test::mutate_vec
    - unlock
    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: 194
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 194
    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: 199
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 199
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_sphincsplus.cpp:221,1
    - Dst: std::copy_if
      Src: /src/botan/src/tests/test_sphincsplus.cpp:223,1
    - Dst: begin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:223,1
    - Dst: end
      Src: /src/botan/src/tests/test_sphincsplus.cpp:224,1
    - Dst: std::back_inserter
      Src: /src/botan/src/tests/test_sphincsplus.cpp:225,1
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus.cpp:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 228
    functionName: Botan_Tests::SPHINCS_Plus_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::run_long_tests
    - std::copy_if
    - std::back_inserter
    - Botan::Sphincs_Parameters::create
    - end
    - begin
    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: 230
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 230
    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:235,1
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus.cpp:236,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: 237
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 237
    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: 244
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 244
    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: 246
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 246
    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:249,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:250,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:251,1
    - Dst: std::make_unique<Botan::SphincsPlus_PrivateKey>
      Src: /src/botan/src/tests/test_sphincsplus.cpp:253,1
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus.cpp:253,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_sphincsplus.cpp:255,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_sphincsplus.cpp:256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 260
    functionName: Botan_Tests::Generic_SlhDsa_Signature_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - auto::public_key_bits
    - Botan::Sphincs_Parameters::create
    - std::make_unique<Botan::SphincsPlus_PrivateKey>
    - get_req_bin
    - get_req_str
    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:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 264
    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:267,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus.cpp:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 268
    functionName: Botan_Tests::Generic_SlhDsa_Signature_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::Sphincs_Parameters::create
    - get_req_str
    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: 275
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 275
    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: 277
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 277
    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:280,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:281,1
    - Dst: std::make_unique<Botan::SphincsPlus_PublicKey>
      Src: /src/botan/src/tests/test_sphincsplus.cpp:283,1
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus.cpp:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 284
    functionName: Botan_Tests::Generic_SlhDsa_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - Botan::Sphincs_Parameters::create
    - std::make_unique<Botan::SphincsPlus_PublicKey>
    - get_req_str
    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: 286
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 286
    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:289,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus.cpp:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 290
    functionName: Botan_Tests::Generic_SlhDsa_Verification_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::Sphincs_Parameters::create
    - get_req_str
    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:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - kat_path
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    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:37,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus.cpp:37,1
    - Dst: auto::is_available
      Src: /src/botan/src/tests/test_sphincsplus.cpp:39,1
    - Dst: auto::hash_type
      Src: /src/botan/src/tests/test_sphincsplus.cpp:45,1
    - Dst: auto::parameter_set
      Src: /src/botan/src/tests/test_sphincsplus.cpp:51,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_sphincsplus.cpp:65,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/tests/test_sphincsplus.cpp:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 68
    functionName: Botan_Tests::SPHINCS_Plus_Test_Base::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - auto::hash_type
    - BOTAN_ASSERT_UNREACHABLE
    - auto::is_available
    - Botan_Tests::Test::run_long_tests
    - Botan::Sphincs_Parameters::create
    - auto::parameter_set
    - get_req_str
    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:71,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus.cpp:71,1
    - Dst: auto::is_slh_dsa
      Src: /src/botan/src/tests/test_sphincsplus.cpp:72,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: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:77,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:78,1
    - Dst: has_key
      Src: /src/botan/src/tests/test_sphincsplus.cpp:80,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:81,1
    - Dst: auto::hash_type
      Src: /src/botan/src/tests/test_sphincsplus.cpp:91,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/tests/test_sphincsplus.cpp:97,1
    - Dst: CTR_DRBG_AES256
      Src: /src/botan/src/tests/test_sphincsplus.cpp:107,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_sphincsplus.cpp:109,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_sphincsplus.cpp:109,1
    - Dst: auto::n
      Src: /src/botan/src/tests/test_sphincsplus.cpp:109,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_sphincsplus.cpp:113,1
    - Dst: auto::n
      Src: /src/botan/src/tests/test_sphincsplus.cpp:113,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_sphincsplus.cpp:115,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_sphincsplus.cpp:116,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_sphincsplus.cpp:121,1
    - Dst: Botan::SphincsPlus_PrivateKey::public_key_bits
      Src: /src/botan/src/tests/test_sphincsplus.cpp:121,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_sphincsplus.cpp:122,1
    - Dst: unlock
      Src: /src/botan/src/tests/test_sphincsplus.cpp:122,1
    - Dst: Botan::SphincsPlus_PrivateKey::private_key_bits
      Src: /src/botan/src/tests/test_sphincsplus.cpp:122,1
    - Dst: Botan::PK_Signer::PK_Signer
      Src: /src/botan/src/tests/test_sphincsplus.cpp:125,1
    - Dst: auto::sign_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:126,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:126,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:126,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_sphincsplus.cpp:128,1
    - Dst: unlock
      Src: /src/botan/src/tests/test_sphincsplus.cpp:128,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_sphincsplus.cpp:128,1
    - Dst: Botan::SphincsPlus_PrivateKey::public_key
      Src: /src/botan/src/tests/test_sphincsplus.cpp:130,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_sphincsplus.cpp:130,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:132,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:132,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:132,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:132,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:132,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_sphincsplus.cpp:133,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_sphincsplus.cpp:137,1
    - Dst: run_long_tests
      Src: /src/botan/src/tests/test_sphincsplus.cpp:138,1
    - Dst: auto::parameter_set
      Src: /src/botan/src/tests/test_sphincsplus.cpp:138,1
    - Dst: Botan::PK_Signer::PK_Signer
      Src: /src/botan/src/tests/test_sphincsplus.cpp:139,1
    - Dst: auto::sign_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:140,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:140,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:140,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_sphincsplus.cpp:142,1
    - Dst: unlock
      Src: /src/botan/src/tests/test_sphincsplus.cpp:142,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_sphincsplus.cpp:142,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:145,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:145,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:145,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:145,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:145,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_sphincsplus.cpp:146,1
    - Dst: auto::parameter_set
      Src: /src/botan/src/tests/test_sphincsplus.cpp:154,1
    - Dst: auto::parameter_set
      Src: /src/botan/src/tests/test_sphincsplus.cpp:155,1
    - Dst: Botan::PK_Signer::PK_Signer
      Src: /src/botan/src/tests/test_sphincsplus.cpp:161,1
    - Dst: auto::sign_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:162,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:162,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:162,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_sphincsplus.cpp:164,1
    - Dst: unlock
      Src: /src/botan/src/tests/test_sphincsplus.cpp:165,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_sphincsplus.cpp:165,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_sphincsplus.cpp:169,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:170,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:171,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:171,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:171,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:171,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_sphincsplus.cpp:172,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_sphincsplus.cpp:175,1
    - Dst: Botan_Tests::SPHINCS_Plus_Test_Base::rng
      Src: /src/botan/src/tests/test_sphincsplus.cpp:175,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:176,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:177,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:177,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:177,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:177,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_sphincsplus.cpp:178,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_sphincsplus.cpp:180,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:181,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:181,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_sphincsplus.cpp:181,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_sphincsplus.cpp:181,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_sphincsplus.cpp:182,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_sphincsplus.cpp:186,1
    - Dst: auto::to_string
      Src: /src/botan/src/tests/test_sphincsplus.cpp:186,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus.cpp:186,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 189
    functionName: Botan_Tests::SPHINCS_Plus_Test_Base::run_one_test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - auto::hash_type
    - auto::sign_message
    - Botan::SphincsPlus_PrivateKey::public_key
    - run_long_tests
    - Botan::PK_Verifier::verify_message
    - auto::to_string
    - auto::size
    - auto::algorithm_identifier
    - Botan_Tests::SPHINCS_Plus_Test_Base::rng
    - auto::has_value
    - Test::Result::test_is_eq
    - std::vector::data
    - auto::is_slh_dsa
    - get_req_bin
    - auto::parameter_set
    - auto::data
    - auto::n
    - auto::process
    - CTR_DRBG_AES256
    - Botan::HashFunction::create_or_throw
    - Botan::SphincsPlus_PrivateKey::public_key_bits
    - Botan::SphincsPlus_PrivateKey::private_key_bits
    - std::vector::size
    - get_req_str
    - Fixed_Output_RNG::add_entropy
    - get_opt_bin
    - auto::random_vec
    - Botan::Sphincs_Parameters::create
    - has_key
    - Botan::PK_Signer::PK_Signer
    - Test::Result::confirm
    - Botan_Tests::Test::mutate_vec
    - unlock
    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: 194
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 194
    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: 199
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 199
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_sphincsplus.cpp:221,1
    - Dst: std::copy_if
      Src: /src/botan/src/tests/test_sphincsplus.cpp:223,1
    - Dst: begin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:223,1
    - Dst: end
      Src: /src/botan/src/tests/test_sphincsplus.cpp:224,1
    - Dst: std::back_inserter
      Src: /src/botan/src/tests/test_sphincsplus.cpp:225,1
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus.cpp:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 228
    functionName: Botan_Tests::SPHINCS_Plus_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::run_long_tests
    - std::copy_if
    - std::back_inserter
    - Botan::Sphincs_Parameters::create
    - end
    - begin
    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: 230
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 230
    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:235,1
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus.cpp:236,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: 237
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 237
    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: 244
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 244
    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: 246
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 246
    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:249,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:250,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:251,1
    - Dst: std::make_unique<Botan::SphincsPlus_PrivateKey>
      Src: /src/botan/src/tests/test_sphincsplus.cpp:253,1
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus.cpp:253,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_sphincsplus.cpp:255,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_sphincsplus.cpp:256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 260
    functionName: Botan_Tests::Generic_SlhDsa_Signature_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - auto::public_key_bits
    - Botan::Sphincs_Parameters::create
    - std::make_unique<Botan::SphincsPlus_PrivateKey>
    - get_req_bin
    - get_req_str
    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:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 264
    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:267,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus.cpp:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 268
    functionName: Botan_Tests::Generic_SlhDsa_Signature_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::Sphincs_Parameters::create
    - get_req_str
    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: 275
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 275
    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: 277
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 277
    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:280,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_sphincsplus.cpp:281,1
    - Dst: std::make_unique<Botan::SphincsPlus_PublicKey>
      Src: /src/botan/src/tests/test_sphincsplus.cpp:283,1
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/tests/test_sphincsplus.cpp:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 284
    functionName: Botan_Tests::Generic_SlhDsa_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - Botan::Sphincs_Parameters::create
    - std::make_unique<Botan::SphincsPlus_PublicKey>
    - get_req_str
    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: 286
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 286
    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:289,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sphincsplus.cpp:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 290
    functionName: Botan_Tests::Generic_SlhDsa_Verification_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::Sphincs_Parameters::create
    - get_req_str
    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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: 3
    functionLinenumber: 18
    functionLinenumberEnd: 81
    functionName: Botan_Tests::test_handshake_state_transitions
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_transitions.cpp
    functionUses: 0
    functionsReached:
    - auto::confirm_transition_to
    - Botan_Tests::CHECK
    - test_throws
    - Botan::TLS::Handshake_Transitions::confirm_transition_to
    - test_no_throw
    - Botan::TLS::Handshake_Transitions::received_handshake_msg
    - Botan::TLS::Handshake_Transitions::set_expected_next
    - auto::received_handshake_msg
    - Botan::TLS::Handshake_Transitions::change_cipher_spec_expected
    - confirm
    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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: 3
    functionLinenumber: 18
    functionLinenumberEnd: 81
    functionName: Botan_Tests::test_handshake_state_transitions
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_transitions.cpp
    functionUses: 0
    functionsReached:
    - auto::confirm_transition_to
    - Botan_Tests::CHECK
    - test_throws
    - Botan::TLS::Handshake_Transitions::confirm_transition_to
    - test_no_throw
    - Botan::TLS::Handshake_Transitions::received_handshake_msg
    - Botan::TLS::Handshake_Transitions::set_expected_next
    - auto::received_handshake_msg
    - Botan::TLS::Handshake_Transitions::change_cipher_spec_expected
    - confirm
    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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: 3
    functionLinenumber: 18
    functionLinenumberEnd: 81
    functionName: Botan_Tests::test_handshake_state_transitions
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_transitions.cpp
    functionUses: 0
    functionsReached:
    - auto::confirm_transition_to
    - Botan_Tests::CHECK
    - test_throws
    - Botan::TLS::Handshake_Transitions::confirm_transition_to
    - test_no_throw
    - Botan::TLS::Handshake_Transitions::received_handshake_msg
    - Botan::TLS::Handshake_Transitions::set_expected_next
    - auto::received_handshake_msg
    - Botan::TLS::Handshake_Transitions::change_cipher_spec_expected
    - confirm
    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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: 3
    functionLinenumber: 18
    functionLinenumberEnd: 81
    functionName: Botan_Tests::test_handshake_state_transitions
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_transitions.cpp
    functionUses: 0
    functionsReached:
    - auto::confirm_transition_to
    - Botan_Tests::CHECK
    - test_throws
    - Botan::TLS::Handshake_Transitions::confirm_transition_to
    - test_no_throw
    - Botan::TLS::Handshake_Transitions::received_handshake_msg
    - Botan::TLS::Handshake_Transitions::set_expected_next
    - auto::received_handshake_msg
    - Botan::TLS::Handshake_Transitions::change_cipher_spec_expected
    - confirm
    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:24,1
    - Dst: Botan_Tests::Invalid_Hash_Name_Tests::test_invalid_name
      Src: /src/botan/src/tests/test_hash.cpp:25,1
    - 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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 32
    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:37,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_hash.cpp:38,1
    - Dst: what
      Src: /src/botan/src/tests/test_hash.cpp:40,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_hash.cpp:42,1
    - Dst: what
      Src: /src/botan/src/tests/test_hash.cpp:45,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_hash.cpp:46,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_hash.cpp:48,1
    - Dst: what
      Src: /src/botan/src/tests/test_hash.cpp:48,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_hash.cpp:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - ' result'
    - ' name'
    argTypes:
    - Result
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 52
    functionName: Botan_Tests::Invalid_Hash_Name_Tests::test_invalid_name
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 1
    functionsReached:
    - Botan::HashFunction::create_or_throw
    - test_eq
    - what
    - test_failure
    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: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    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:62,1
    - Dst: Botan::HashFunction::providers
      Src: /src/botan/src/tests/test_hash.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 63
    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:66,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hash.cpp:67,1
    - Dst: Botan_Tests::Hash_Function_Tests::possible_providers
      Src: /src/botan/src/tests/test_hash.cpp:71,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_hash.cpp:73,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_hash.cpp:74,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_hash.cpp:79,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_hash.cpp:82,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_hash.cpp:82,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_hash.cpp:86,1
    - Dst: auto::provider
      Src: /src/botan/src/tests/test_hash.cpp:88,1
    - Dst: Test::Result::test_is_nonempty
      Src: /src/botan/src/tests/test_hash.cpp:89,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hash.cpp:90,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_hash.cpp:90,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hash.cpp:91,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_hash.cpp:91,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_hash.cpp:91,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:94,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hash.cpp:95,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:95,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:98,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hash.cpp:99,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:99,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:102,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_hash.cpp:103,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:104,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:105,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hash.cpp:107,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:107,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_hash.cpp:111,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/botan/src/tests/test_hash.cpp:113,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_hash.cpp:113,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_hash.cpp:118,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_hash.cpp:118,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:121,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:121,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hash.cpp:122,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:122,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:125,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:126,1
    - Dst: auto::copy_state
      Src: /src/botan/src/tests/test_hash.cpp:128,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:130,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:130,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:133,1
    - Dst: Botan_Tests::Hash_Function_Tests::rng
      Src: /src/botan/src/tests/test_hash.cpp:134,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:134,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:136,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:140,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hash.cpp:143,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:143,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:145,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:145,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hash.cpp:146,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:146,1
    - Dst: auto::hash_block_size
      Src: /src/botan/src/tests/test_hash.cpp:149,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_hash.cpp:151,1
    - Dst: auto::hash_block_size
      Src: /src/botan/src/tests/test_hash.cpp:151,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 49
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 156
    functionName: Botan_Tests::Hash_Function_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - Botan_Tests::Hash_Function_Tests::rng
    - Test::Result::test_failure
    - reinterpret_cast<uintptr_t>
    - Test::Result::test_gte
    - Botan::HashFunction::create
    - auto::hash_block_size
    - std::vector::insert
    - auto::name
    - std::vector::begin
    - std::vector::data
    - get_req_bin
    - auto::new_object
    - Test::Result::note_missing
    - auto::clear
    - Test::Result::test_is_nonempty
    - std::vector::empty
    - std::vector::size
    - auto::final
    - Botan_Tests::Hash_Function_Tests::possible_providers
    - Botan::fmt
    - auto::copy_state
    - auto::provider
    - Test::Result::test_eq
    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: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    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:166,1
    - Dst: Botan::HashFunction::providers
      Src: /src/botan/src/tests/test_hash.cpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 167
    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:170,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_hash.cpp:171,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hash.cpp:172,1
    - Dst: Botan_Tests::Hash_NIST_MonteCarlo_Tests::possible_providers
      Src: /src/botan/src/tests/test_hash.cpp:176,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_hash.cpp:178,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_hash.cpp:179,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_hash.cpp:184,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_hash.cpp:187,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_hash.cpp:187,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_hash.cpp:192,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_hash.cpp:193,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_hash.cpp:194,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:198,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:199,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:200,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:202,1
    - Dst: data
      Src: /src/botan/src/tests/test_hash.cpp:202,1
    - Dst: swap
      Src: /src/botan/src/tests/test_hash.cpp:203,1
    - Dst: swap
      Src: /src/botan/src/tests/test_hash.cpp:204,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hash.cpp:213,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 217
    functionName: Botan_Tests::Hash_NIST_MonteCarlo_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - Test::Result::note_missing
    - std::vector::push_back
    - Botan::fmt
    - data
    - Test::Result::test_failure
    - std::vector::empty
    - get_req_sz
    - Test::Result::test_eq
    - Botan_Tests::Hash_NIST_MonteCarlo_Tests::possible_providers
    - Botan::HashFunction::create
    - get_req_bin
    - swap
    - auto::final
    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: 224
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 224
    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:227,1
    - Dst: Botan::HashFunction::providers
      Src: /src/botan/src/tests/test_hash.cpp:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 228
    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:233,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:235,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_hash.cpp:236,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_hash.cpp:236,1
    - Dst: begin
      Src: /src/botan/src/tests/test_hash.cpp:236,1
    - Dst: end
      Src: /src/botan/src/tests/test_hash.cpp:236,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: 240
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 240
    functionName: Botan_Tests::Hash_LongRepeat_Tests::expand_input
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached:
    - std::vector::end
    - end
    - begin
    - std::vector::size
    - std::vector::insert
    - std::vector::reserve
    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:243,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hash.cpp:243,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_hash.cpp:244,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hash.cpp:245,1
    - Dst: Botan_Tests::Hash_LongRepeat_Tests::possible_providers
      Src: /src/botan/src/tests/test_hash.cpp:249,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_hash.cpp:251,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_hash.cpp:255,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_hash.cpp:256,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_hash.cpp:261,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_hash.cpp:264,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_hash.cpp:264,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:268,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:269,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:272,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:276,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_hash.cpp:276,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_hash.cpp:279,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:280,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_hash.cpp:280,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hash.cpp:281,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 285
    functionName: Botan_Tests::Hash_LongRepeat_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - Test::Result::note_missing
    - Botan_Tests::Hash_LongRepeat_Tests::possible_providers
    - Botan::fmt
    - Botan_Tests::Test::run_long_tests
    - Test::Result::test_failure
    - std::vector::data
    - auto::output_length
    - std::vector::empty
    - get_req_sz
    - Test::Result::test_eq
    - Botan::HashFunction::create
    - get_req_bin
    - std::vector::size
    - Botan_Tests::Hash_LongRepeat_Tests::expand_input
    - auto::final
    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:295,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_hash.cpp:296,1
    - 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: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_hash.cpp:299,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hash.cpp:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 302
    functionName: Botan_Tests::hash_truncation_negative_tests
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create
    - Test::Result::test_throws
    - Test::Result::confirm
    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:24,1
    - Dst: Botan_Tests::Invalid_Hash_Name_Tests::test_invalid_name
      Src: /src/botan/src/tests/test_hash.cpp:25,1
    - 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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 32
    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:37,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_hash.cpp:38,1
    - Dst: what
      Src: /src/botan/src/tests/test_hash.cpp:40,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_hash.cpp:42,1
    - Dst: what
      Src: /src/botan/src/tests/test_hash.cpp:45,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_hash.cpp:46,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_hash.cpp:48,1
    - Dst: what
      Src: /src/botan/src/tests/test_hash.cpp:48,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_hash.cpp:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - ' result'
    - ' name'
    argTypes:
    - Result
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 52
    functionName: Botan_Tests::Invalid_Hash_Name_Tests::test_invalid_name
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 2
    functionsReached:
    - Botan::HashFunction::create_or_throw
    - test_eq
    - what
    - test_failure
    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: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    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:62,1
    - Dst: Botan::HashFunction::providers
      Src: /src/botan/src/tests/test_hash.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 63
    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:66,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hash.cpp:67,1
    - Dst: Botan_Tests::Hash_Function_Tests::possible_providers
      Src: /src/botan/src/tests/test_hash.cpp:71,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_hash.cpp:73,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_hash.cpp:74,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_hash.cpp:79,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_hash.cpp:82,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_hash.cpp:82,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_hash.cpp:86,1
    - Dst: auto::provider
      Src: /src/botan/src/tests/test_hash.cpp:88,1
    - Dst: Test::Result::test_is_nonempty
      Src: /src/botan/src/tests/test_hash.cpp:89,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hash.cpp:90,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_hash.cpp:90,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hash.cpp:91,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_hash.cpp:91,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_hash.cpp:91,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:94,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hash.cpp:95,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:95,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:98,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hash.cpp:99,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:99,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:102,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_hash.cpp:103,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:104,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:105,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hash.cpp:107,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:107,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_hash.cpp:111,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/botan/src/tests/test_hash.cpp:113,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_hash.cpp:113,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_hash.cpp:118,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_hash.cpp:118,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:121,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:121,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hash.cpp:122,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:122,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:125,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:126,1
    - Dst: auto::copy_state
      Src: /src/botan/src/tests/test_hash.cpp:128,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:130,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:130,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:133,1
    - Dst: Botan_Tests::Hash_Function_Tests::rng
      Src: /src/botan/src/tests/test_hash.cpp:134,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:134,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:136,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:140,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hash.cpp:143,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:143,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:145,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:145,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hash.cpp:146,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:146,1
    - Dst: auto::hash_block_size
      Src: /src/botan/src/tests/test_hash.cpp:149,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_hash.cpp:151,1
    - Dst: auto::hash_block_size
      Src: /src/botan/src/tests/test_hash.cpp:151,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 49
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 156
    functionName: Botan_Tests::Hash_Function_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - Botan_Tests::Hash_Function_Tests::rng
    - Test::Result::test_failure
    - reinterpret_cast<uintptr_t>
    - Test::Result::test_gte
    - Botan::HashFunction::create
    - auto::hash_block_size
    - std::vector::insert
    - auto::name
    - std::vector::begin
    - std::vector::data
    - get_req_bin
    - auto::new_object
    - Test::Result::note_missing
    - auto::clear
    - Test::Result::test_is_nonempty
    - std::vector::empty
    - std::vector::size
    - auto::final
    - Botan_Tests::Hash_Function_Tests::possible_providers
    - Botan::fmt
    - auto::copy_state
    - auto::provider
    - Test::Result::test_eq
    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: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    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:166,1
    - Dst: Botan::HashFunction::providers
      Src: /src/botan/src/tests/test_hash.cpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 167
    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:170,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_hash.cpp:171,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hash.cpp:172,1
    - Dst: Botan_Tests::Hash_NIST_MonteCarlo_Tests::possible_providers
      Src: /src/botan/src/tests/test_hash.cpp:176,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_hash.cpp:178,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_hash.cpp:179,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_hash.cpp:184,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_hash.cpp:187,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_hash.cpp:187,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_hash.cpp:192,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_hash.cpp:193,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_hash.cpp:194,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:198,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:199,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:200,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:202,1
    - Dst: data
      Src: /src/botan/src/tests/test_hash.cpp:202,1
    - Dst: swap
      Src: /src/botan/src/tests/test_hash.cpp:203,1
    - Dst: swap
      Src: /src/botan/src/tests/test_hash.cpp:204,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hash.cpp:213,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 217
    functionName: Botan_Tests::Hash_NIST_MonteCarlo_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - Test::Result::note_missing
    - std::vector::push_back
    - Botan::fmt
    - data
    - Test::Result::test_failure
    - std::vector::empty
    - get_req_sz
    - Test::Result::test_eq
    - Botan_Tests::Hash_NIST_MonteCarlo_Tests::possible_providers
    - Botan::HashFunction::create
    - get_req_bin
    - swap
    - auto::final
    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: 224
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 224
    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:227,1
    - Dst: Botan::HashFunction::providers
      Src: /src/botan/src/tests/test_hash.cpp:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 228
    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:233,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:235,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_hash.cpp:236,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_hash.cpp:236,1
    - Dst: begin
      Src: /src/botan/src/tests/test_hash.cpp:236,1
    - Dst: end
      Src: /src/botan/src/tests/test_hash.cpp:236,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: 240
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 240
    functionName: Botan_Tests::Hash_LongRepeat_Tests::expand_input
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 1
    functionsReached:
    - std::vector::end
    - end
    - begin
    - std::vector::size
    - std::vector::insert
    - std::vector::reserve
    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:243,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hash.cpp:243,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_hash.cpp:244,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hash.cpp:245,1
    - Dst: Botan_Tests::Hash_LongRepeat_Tests::possible_providers
      Src: /src/botan/src/tests/test_hash.cpp:249,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_hash.cpp:251,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_hash.cpp:255,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_hash.cpp:256,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_hash.cpp:261,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_hash.cpp:264,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_hash.cpp:264,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:268,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:269,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:272,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:276,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_hash.cpp:276,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_hash.cpp:279,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:280,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_hash.cpp:280,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hash.cpp:281,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 285
    functionName: Botan_Tests::Hash_LongRepeat_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - Test::Result::note_missing
    - Botan_Tests::Hash_LongRepeat_Tests::possible_providers
    - Botan::fmt
    - Botan_Tests::Test::run_long_tests
    - Test::Result::test_failure
    - std::vector::data
    - auto::output_length
    - std::vector::empty
    - get_req_sz
    - Test::Result::test_eq
    - Botan::HashFunction::create
    - get_req_bin
    - std::vector::size
    - Botan_Tests::Hash_LongRepeat_Tests::expand_input
    - auto::final
    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:295,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_hash.cpp:296,1
    - 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: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_hash.cpp:299,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hash.cpp:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 302
    functionName: Botan_Tests::hash_truncation_negative_tests
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create
    - Test::Result::test_throws
    - Test::Result::confirm
    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:24,1
    - Dst: Botan_Tests::Invalid_Hash_Name_Tests::test_invalid_name
      Src: /src/botan/src/tests/test_hash.cpp:25,1
    - 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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 32
    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:37,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_hash.cpp:38,1
    - Dst: what
      Src: /src/botan/src/tests/test_hash.cpp:40,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_hash.cpp:42,1
    - Dst: what
      Src: /src/botan/src/tests/test_hash.cpp:45,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_hash.cpp:46,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_hash.cpp:48,1
    - Dst: what
      Src: /src/botan/src/tests/test_hash.cpp:48,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_hash.cpp:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - ' result'
    - ' name'
    argTypes:
    - Result
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 52
    functionName: Botan_Tests::Invalid_Hash_Name_Tests::test_invalid_name
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 3
    functionsReached:
    - Botan::HashFunction::create_or_throw
    - test_eq
    - what
    - test_failure
    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: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    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:62,1
    - Dst: Botan::HashFunction::providers
      Src: /src/botan/src/tests/test_hash.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 63
    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:66,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hash.cpp:67,1
    - Dst: Botan_Tests::Hash_Function_Tests::possible_providers
      Src: /src/botan/src/tests/test_hash.cpp:71,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_hash.cpp:73,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_hash.cpp:74,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_hash.cpp:79,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_hash.cpp:82,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_hash.cpp:82,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_hash.cpp:86,1
    - Dst: auto::provider
      Src: /src/botan/src/tests/test_hash.cpp:88,1
    - Dst: Test::Result::test_is_nonempty
      Src: /src/botan/src/tests/test_hash.cpp:89,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hash.cpp:90,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_hash.cpp:90,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hash.cpp:91,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_hash.cpp:91,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_hash.cpp:91,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:94,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hash.cpp:95,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:95,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:98,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hash.cpp:99,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:99,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:102,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_hash.cpp:103,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:104,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:105,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hash.cpp:107,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:107,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_hash.cpp:111,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/botan/src/tests/test_hash.cpp:113,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_hash.cpp:113,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_hash.cpp:118,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_hash.cpp:118,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:121,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:121,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hash.cpp:122,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:122,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:125,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:126,1
    - Dst: auto::copy_state
      Src: /src/botan/src/tests/test_hash.cpp:128,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:130,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:130,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:133,1
    - Dst: Botan_Tests::Hash_Function_Tests::rng
      Src: /src/botan/src/tests/test_hash.cpp:134,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:134,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:136,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:140,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hash.cpp:143,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:143,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:145,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:145,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hash.cpp:146,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:146,1
    - Dst: auto::hash_block_size
      Src: /src/botan/src/tests/test_hash.cpp:149,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_hash.cpp:151,1
    - Dst: auto::hash_block_size
      Src: /src/botan/src/tests/test_hash.cpp:151,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 49
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 156
    functionName: Botan_Tests::Hash_Function_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - Botan_Tests::Hash_Function_Tests::rng
    - Test::Result::test_failure
    - reinterpret_cast<uintptr_t>
    - Test::Result::test_gte
    - Botan::HashFunction::create
    - auto::hash_block_size
    - std::vector::insert
    - auto::name
    - std::vector::begin
    - std::vector::data
    - get_req_bin
    - auto::new_object
    - Test::Result::note_missing
    - auto::clear
    - Test::Result::test_is_nonempty
    - std::vector::empty
    - std::vector::size
    - auto::final
    - Botan_Tests::Hash_Function_Tests::possible_providers
    - Botan::fmt
    - auto::copy_state
    - auto::provider
    - Test::Result::test_eq
    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: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    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:166,1
    - Dst: Botan::HashFunction::providers
      Src: /src/botan/src/tests/test_hash.cpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 167
    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:170,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_hash.cpp:171,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hash.cpp:172,1
    - Dst: Botan_Tests::Hash_NIST_MonteCarlo_Tests::possible_providers
      Src: /src/botan/src/tests/test_hash.cpp:176,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_hash.cpp:178,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_hash.cpp:179,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_hash.cpp:184,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_hash.cpp:187,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_hash.cpp:187,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_hash.cpp:192,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_hash.cpp:193,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_hash.cpp:194,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:198,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:199,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:200,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:202,1
    - Dst: data
      Src: /src/botan/src/tests/test_hash.cpp:202,1
    - Dst: swap
      Src: /src/botan/src/tests/test_hash.cpp:203,1
    - Dst: swap
      Src: /src/botan/src/tests/test_hash.cpp:204,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hash.cpp:213,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 217
    functionName: Botan_Tests::Hash_NIST_MonteCarlo_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - Test::Result::note_missing
    - std::vector::push_back
    - Botan::fmt
    - data
    - Test::Result::test_failure
    - std::vector::empty
    - get_req_sz
    - Test::Result::test_eq
    - Botan_Tests::Hash_NIST_MonteCarlo_Tests::possible_providers
    - Botan::HashFunction::create
    - get_req_bin
    - swap
    - auto::final
    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: 224
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 224
    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:227,1
    - Dst: Botan::HashFunction::providers
      Src: /src/botan/src/tests/test_hash.cpp:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 228
    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:233,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:235,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_hash.cpp:236,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_hash.cpp:236,1
    - Dst: begin
      Src: /src/botan/src/tests/test_hash.cpp:236,1
    - Dst: end
      Src: /src/botan/src/tests/test_hash.cpp:236,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: 240
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 240
    functionName: Botan_Tests::Hash_LongRepeat_Tests::expand_input
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 2
    functionsReached:
    - std::vector::end
    - end
    - begin
    - std::vector::size
    - std::vector::insert
    - std::vector::reserve
    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:243,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hash.cpp:243,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_hash.cpp:244,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hash.cpp:245,1
    - Dst: Botan_Tests::Hash_LongRepeat_Tests::possible_providers
      Src: /src/botan/src/tests/test_hash.cpp:249,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_hash.cpp:251,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_hash.cpp:255,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_hash.cpp:256,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_hash.cpp:261,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_hash.cpp:264,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_hash.cpp:264,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:268,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:269,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:272,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:276,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_hash.cpp:276,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_hash.cpp:279,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:280,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_hash.cpp:280,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hash.cpp:281,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 285
    functionName: Botan_Tests::Hash_LongRepeat_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - Test::Result::note_missing
    - Botan_Tests::Hash_LongRepeat_Tests::possible_providers
    - Botan::fmt
    - Botan_Tests::Test::run_long_tests
    - Test::Result::test_failure
    - std::vector::data
    - auto::output_length
    - std::vector::empty
    - get_req_sz
    - Test::Result::test_eq
    - Botan::HashFunction::create
    - get_req_bin
    - std::vector::size
    - Botan_Tests::Hash_LongRepeat_Tests::expand_input
    - auto::final
    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:295,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_hash.cpp:296,1
    - 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: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_hash.cpp:299,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hash.cpp:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 302
    functionName: Botan_Tests::hash_truncation_negative_tests
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create
    - Test::Result::test_throws
    - Test::Result::confirm
    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:24,1
    - Dst: Botan_Tests::Invalid_Hash_Name_Tests::test_invalid_name
      Src: /src/botan/src/tests/test_hash.cpp:25,1
    - 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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 32
    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:37,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_hash.cpp:38,1
    - Dst: what
      Src: /src/botan/src/tests/test_hash.cpp:40,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_hash.cpp:42,1
    - Dst: what
      Src: /src/botan/src/tests/test_hash.cpp:45,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_hash.cpp:46,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_hash.cpp:48,1
    - Dst: what
      Src: /src/botan/src/tests/test_hash.cpp:48,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_hash.cpp:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - ' result'
    - ' name'
    argTypes:
    - Result
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 52
    functionName: Botan_Tests::Invalid_Hash_Name_Tests::test_invalid_name
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 4
    functionsReached:
    - Botan::HashFunction::create_or_throw
    - test_eq
    - what
    - test_failure
    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: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    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:62,1
    - Dst: Botan::HashFunction::providers
      Src: /src/botan/src/tests/test_hash.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 63
    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:66,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hash.cpp:67,1
    - Dst: Botan_Tests::Hash_Function_Tests::possible_providers
      Src: /src/botan/src/tests/test_hash.cpp:71,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_hash.cpp:73,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_hash.cpp:74,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_hash.cpp:79,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_hash.cpp:82,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_hash.cpp:82,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_hash.cpp:86,1
    - Dst: auto::provider
      Src: /src/botan/src/tests/test_hash.cpp:88,1
    - Dst: Test::Result::test_is_nonempty
      Src: /src/botan/src/tests/test_hash.cpp:89,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hash.cpp:90,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_hash.cpp:90,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hash.cpp:91,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_hash.cpp:91,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_hash.cpp:91,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:94,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hash.cpp:95,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:95,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:98,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hash.cpp:99,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:99,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:102,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_hash.cpp:103,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:104,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:105,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hash.cpp:107,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:107,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_hash.cpp:111,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/botan/src/tests/test_hash.cpp:113,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_hash.cpp:113,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_hash.cpp:118,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_hash.cpp:118,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:121,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:121,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hash.cpp:122,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:122,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:125,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:126,1
    - Dst: auto::copy_state
      Src: /src/botan/src/tests/test_hash.cpp:128,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:130,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:130,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:133,1
    - Dst: Botan_Tests::Hash_Function_Tests::rng
      Src: /src/botan/src/tests/test_hash.cpp:134,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:134,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:136,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:140,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hash.cpp:143,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:143,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:145,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:145,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hash.cpp:146,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:146,1
    - Dst: auto::hash_block_size
      Src: /src/botan/src/tests/test_hash.cpp:149,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_hash.cpp:151,1
    - Dst: auto::hash_block_size
      Src: /src/botan/src/tests/test_hash.cpp:151,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 49
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 156
    functionName: Botan_Tests::Hash_Function_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - Botan_Tests::Hash_Function_Tests::rng
    - Test::Result::test_failure
    - reinterpret_cast<uintptr_t>
    - Test::Result::test_gte
    - Botan::HashFunction::create
    - auto::hash_block_size
    - std::vector::insert
    - auto::name
    - std::vector::begin
    - std::vector::data
    - get_req_bin
    - auto::new_object
    - Test::Result::note_missing
    - auto::clear
    - Test::Result::test_is_nonempty
    - std::vector::empty
    - std::vector::size
    - auto::final
    - Botan_Tests::Hash_Function_Tests::possible_providers
    - Botan::fmt
    - auto::copy_state
    - auto::provider
    - Test::Result::test_eq
    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: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    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:166,1
    - Dst: Botan::HashFunction::providers
      Src: /src/botan/src/tests/test_hash.cpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 167
    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:170,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_hash.cpp:171,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hash.cpp:172,1
    - Dst: Botan_Tests::Hash_NIST_MonteCarlo_Tests::possible_providers
      Src: /src/botan/src/tests/test_hash.cpp:176,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_hash.cpp:178,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_hash.cpp:179,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_hash.cpp:184,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_hash.cpp:187,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_hash.cpp:187,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_hash.cpp:192,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_hash.cpp:193,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_hash.cpp:194,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:198,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:199,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:200,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:202,1
    - Dst: data
      Src: /src/botan/src/tests/test_hash.cpp:202,1
    - Dst: swap
      Src: /src/botan/src/tests/test_hash.cpp:203,1
    - Dst: swap
      Src: /src/botan/src/tests/test_hash.cpp:204,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hash.cpp:213,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 169
    functionDepth: 2
    functionLinenumber: 169
    functionLinenumberEnd: 217
    functionName: Botan_Tests::Hash_NIST_MonteCarlo_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - Test::Result::note_missing
    - std::vector::push_back
    - Botan::fmt
    - data
    - Test::Result::test_failure
    - std::vector::empty
    - get_req_sz
    - Test::Result::test_eq
    - Botan_Tests::Hash_NIST_MonteCarlo_Tests::possible_providers
    - Botan::HashFunction::create
    - get_req_bin
    - swap
    - auto::final
    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: 224
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 224
    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:227,1
    - Dst: Botan::HashFunction::providers
      Src: /src/botan/src/tests/test_hash.cpp:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 228
    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:233,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:235,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_hash.cpp:236,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_hash.cpp:236,1
    - Dst: begin
      Src: /src/botan/src/tests/test_hash.cpp:236,1
    - Dst: end
      Src: /src/botan/src/tests/test_hash.cpp:236,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: 240
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 240
    functionName: Botan_Tests::Hash_LongRepeat_Tests::expand_input
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 3
    functionsReached:
    - std::vector::end
    - end
    - begin
    - std::vector::size
    - std::vector::insert
    - std::vector::reserve
    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:243,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hash.cpp:243,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_hash.cpp:244,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_hash.cpp:245,1
    - Dst: Botan_Tests::Hash_LongRepeat_Tests::possible_providers
      Src: /src/botan/src/tests/test_hash.cpp:249,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_hash.cpp:251,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_hash.cpp:255,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_hash.cpp:256,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_hash.cpp:261,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_hash.cpp:264,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_hash.cpp:264,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:268,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash.cpp:269,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:272,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_hash.cpp:276,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_hash.cpp:276,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_hash.cpp:279,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_hash.cpp:280,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_hash.cpp:280,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hash.cpp:281,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 285
    functionName: Botan_Tests::Hash_LongRepeat_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - Test::Result::note_missing
    - Botan_Tests::Hash_LongRepeat_Tests::possible_providers
    - Botan::fmt
    - Botan_Tests::Test::run_long_tests
    - Test::Result::test_failure
    - std::vector::data
    - auto::output_length
    - std::vector::empty
    - get_req_sz
    - Test::Result::test_eq
    - Botan::HashFunction::create
    - get_req_bin
    - std::vector::size
    - Botan_Tests::Hash_LongRepeat_Tests::expand_input
    - auto::final
    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:295,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_hash.cpp:296,1
    - 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: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_hash.cpp:299,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_hash.cpp:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 302
    functionName: Botan_Tests::hash_truncation_negative_tests
    functionSourceFile: /src/botan/src/tests/test_hash.cpp
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create
    - Test::Result::test_throws
    - Test::Result::confirm
    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: 20
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 20
    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:23,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_stream.cpp:24,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_stream.cpp:25,1
    - Dst: get_opt_u64
      Src: /src/botan/src/tests/test_stream.cpp:26,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_stream.cpp:27,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_stream.cpp:29,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_stream.cpp:30,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:30,1
    - Dst: provider_filter
      Src: /src/botan/src/tests/test_stream.cpp:35,1
    - Dst: Botan::StreamCipher::providers
      Src: /src/botan/src/tests/test_stream.cpp:35,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_stream.cpp:37,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_stream.cpp:38,1
    - Dst: Botan::StreamCipher::create
      Src: /src/botan/src/tests/test_stream.cpp:43,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_stream.cpp:46,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_stream.cpp:46,1
    - Dst: auto::provider
      Src: /src/botan/src/tests/test_stream.cpp:50,1
    - Dst: Test::Result::test_is_nonempty
      Src: /src/botan/src/tests/test_stream.cpp:51,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_stream.cpp:52,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_stream.cpp:52,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_stream.cpp:54,1
    - Dst: auto::valid_iv_length
      Src: /src/botan/src/tests/test_stream.cpp:54,1
    - Dst: auto::default_iv_length
      Src: /src/botan/src/tests/test_stream.cpp:54,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_stream.cpp:56,1
    - Dst: auto::buffer_size
      Src: /src/botan/src/tests/test_stream.cpp:56,1
    - Dst: auto::default_iv_length
      Src: /src/botan/src/tests/test_stream.cpp:58,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_stream.cpp:59,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_stream.cpp:59,1
    - Dst: auto::set_iv
      Src: /src/botan/src/tests/test_stream.cpp:62,1
    - Dst: auto::cipher1
      Src: /src/botan/src/tests/test_stream.cpp:67,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:67,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:67,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_stream.cpp:68,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_stream.cpp:70,1
    - Dst: auto::seek
      Src: /src/botan/src/tests/test_stream.cpp:74,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_stream.cpp:75,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_stream.cpp:77,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_stream.cpp:79,1
    - Dst: auto::valid_iv_length
      Src: /src/botan/src/tests/test_stream.cpp:82,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:82,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_stream.cpp:83,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_stream.cpp:87,1
    - Dst: auto::set_iv
      Src: /src/botan/src/tests/test_stream.cpp:89,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:89,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:89,1
    - Dst: auto::valid_keylength
      Src: /src/botan/src/tests/test_stream.cpp:98,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:98,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_stream.cpp:99,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_stream.cpp:100,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:100,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_stream.cpp:104,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_stream.cpp:104,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_stream.cpp:105,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_stream.cpp:106,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_stream.cpp:106,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_stream.cpp:112,1
    - Dst: auto::valid_iv_length
      Src: /src/botan/src/tests/test_stream.cpp:113,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_stream.cpp:115,1
    - Dst: auto::set_iv
      Src: /src/botan/src/tests/test_stream.cpp:116,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_stream.cpp:124,1
    - Dst: auto::set_iv
      Src: /src/botan/src/tests/test_stream.cpp:125,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:125,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:125,1
    - Dst: auto::seek
      Src: /src/botan/src/tests/test_stream.cpp:129,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_stream.cpp:133,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_stream.cpp:134,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_stream.cpp:134,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_stream.cpp:134,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_stream.cpp:135,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_stream.cpp:135,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_stream.cpp:135,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_stream.cpp:136,1
    - Dst: Botan_Tests::Stream_Cipher_Tests::rng
      Src: /src/botan/src/tests/test_stream.cpp:136,1
    - Dst: auto::maximum_keylength
      Src: /src/botan/src/tests/test_stream.cpp:136,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_stream.cpp:140,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_stream.cpp:141,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_stream.cpp:145,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_stream.cpp:146,1
    - Dst: auto::set_iv
      Src: /src/botan/src/tests/test_stream.cpp:148,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:148,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:148,1
    - Dst: auto::seek
      Src: /src/botan/src/tests/test_stream.cpp:151,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_stream.cpp:154,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_stream.cpp:155,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_stream.cpp:158,1
    - Dst: auto::set_iv
      Src: /src/botan/src/tests/test_stream.cpp:159,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:159,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:159,1
    - Dst: auto::seek
      Src: /src/botan/src/tests/test_stream.cpp:161,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_stream.cpp:164,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_stream.cpp:165,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_stream.cpp:169,1
    - Dst: auto::set_iv
      Src: /src/botan/src/tests/test_stream.cpp:171,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:171,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:171,1
    - Dst: auto::seek
      Src: /src/botan/src/tests/test_stream.cpp:174,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:177,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:179,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:180,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/tests/test_stream.cpp:183,1
    - Dst: Botan_Tests::Stream_Cipher_Tests::rng
      Src: /src/botan/src/tests/test_stream.cpp:183,1
    - Dst: auto::write_keystream
      Src: /src/botan/src/tests/test_stream.cpp:184,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:189,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_stream.cpp:192,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_stream.cpp:195,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_stream.cpp:195,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_stream.cpp:196,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_stream.cpp:197,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_stream.cpp:197,1
    - Dst: auto::cipher1
      Src: /src/botan/src/tests/test_stream.cpp:201,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:201,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:201,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_stream.cpp:202,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_stream.cpp:204,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 112
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 209
    functionName: Botan_Tests::Stream_Cipher_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_stream.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - auto::maximum_keylength
    - std::min<size_t>
    - Botan::StreamCipher::create
    - auto::default_iv_length
    - auto::set_key
    - Botan::StreamCipher::providers
    - Test::Result::test_failure
    - auto::buffer_size
    - auto::get
    - provider_filter
    - auto::name
    - Test_Error
    - auto::has_keying_material
    - std::vector::data
    - auto::write_keystream
    - get_req_bin
    - Test::Result::test_success
    - auto::new_object
    - Test::Result::note_missing
    - auto::seek
    - auto::clear
    - Test::Result::test_is_nonempty
    - auto::valid_iv_length
    - std::vector::empty
    - get_opt_u64
    - Botan_Tests::Stream_Cipher_Tests::rng
    - std::vector::resize
    - std::vector::size
    - auto::valid_keylength
    - auto::cipher1
    - Test::Result::test_note
    - Botan::fmt
    - get_opt_bin
    - auto::set_iv
    - auto::provider
    - Test::Result::test_eq
    - Test::Result::confirm
    - std::to_string
    - auto::encrypt
    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: 20
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 20
    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:23,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_stream.cpp:24,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_stream.cpp:25,1
    - Dst: get_opt_u64
      Src: /src/botan/src/tests/test_stream.cpp:26,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_stream.cpp:27,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_stream.cpp:29,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_stream.cpp:30,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:30,1
    - Dst: provider_filter
      Src: /src/botan/src/tests/test_stream.cpp:35,1
    - Dst: Botan::StreamCipher::providers
      Src: /src/botan/src/tests/test_stream.cpp:35,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_stream.cpp:37,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_stream.cpp:38,1
    - Dst: Botan::StreamCipher::create
      Src: /src/botan/src/tests/test_stream.cpp:43,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_stream.cpp:46,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_stream.cpp:46,1
    - Dst: auto::provider
      Src: /src/botan/src/tests/test_stream.cpp:50,1
    - Dst: Test::Result::test_is_nonempty
      Src: /src/botan/src/tests/test_stream.cpp:51,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_stream.cpp:52,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_stream.cpp:52,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_stream.cpp:54,1
    - Dst: auto::valid_iv_length
      Src: /src/botan/src/tests/test_stream.cpp:54,1
    - Dst: auto::default_iv_length
      Src: /src/botan/src/tests/test_stream.cpp:54,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_stream.cpp:56,1
    - Dst: auto::buffer_size
      Src: /src/botan/src/tests/test_stream.cpp:56,1
    - Dst: auto::default_iv_length
      Src: /src/botan/src/tests/test_stream.cpp:58,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_stream.cpp:59,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_stream.cpp:59,1
    - Dst: auto::set_iv
      Src: /src/botan/src/tests/test_stream.cpp:62,1
    - Dst: auto::cipher1
      Src: /src/botan/src/tests/test_stream.cpp:67,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:67,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:67,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_stream.cpp:68,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_stream.cpp:70,1
    - Dst: auto::seek
      Src: /src/botan/src/tests/test_stream.cpp:74,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_stream.cpp:75,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_stream.cpp:77,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_stream.cpp:79,1
    - Dst: auto::valid_iv_length
      Src: /src/botan/src/tests/test_stream.cpp:82,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:82,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_stream.cpp:83,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_stream.cpp:87,1
    - Dst: auto::set_iv
      Src: /src/botan/src/tests/test_stream.cpp:89,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:89,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:89,1
    - Dst: auto::valid_keylength
      Src: /src/botan/src/tests/test_stream.cpp:98,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:98,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_stream.cpp:99,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_stream.cpp:100,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:100,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_stream.cpp:104,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_stream.cpp:104,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_stream.cpp:105,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_stream.cpp:106,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_stream.cpp:106,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_stream.cpp:112,1
    - Dst: auto::valid_iv_length
      Src: /src/botan/src/tests/test_stream.cpp:113,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_stream.cpp:115,1
    - Dst: auto::set_iv
      Src: /src/botan/src/tests/test_stream.cpp:116,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_stream.cpp:124,1
    - Dst: auto::set_iv
      Src: /src/botan/src/tests/test_stream.cpp:125,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:125,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:125,1
    - Dst: auto::seek
      Src: /src/botan/src/tests/test_stream.cpp:129,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_stream.cpp:133,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_stream.cpp:134,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_stream.cpp:134,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_stream.cpp:134,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_stream.cpp:135,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_stream.cpp:135,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_stream.cpp:135,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_stream.cpp:136,1
    - Dst: Botan_Tests::Stream_Cipher_Tests::rng
      Src: /src/botan/src/tests/test_stream.cpp:136,1
    - Dst: auto::maximum_keylength
      Src: /src/botan/src/tests/test_stream.cpp:136,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_stream.cpp:140,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_stream.cpp:141,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_stream.cpp:145,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_stream.cpp:146,1
    - Dst: auto::set_iv
      Src: /src/botan/src/tests/test_stream.cpp:148,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:148,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:148,1
    - Dst: auto::seek
      Src: /src/botan/src/tests/test_stream.cpp:151,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_stream.cpp:154,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_stream.cpp:155,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_stream.cpp:158,1
    - Dst: auto::set_iv
      Src: /src/botan/src/tests/test_stream.cpp:159,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:159,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:159,1
    - Dst: auto::seek
      Src: /src/botan/src/tests/test_stream.cpp:161,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_stream.cpp:164,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_stream.cpp:165,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_stream.cpp:169,1
    - Dst: auto::set_iv
      Src: /src/botan/src/tests/test_stream.cpp:171,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:171,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:171,1
    - Dst: auto::seek
      Src: /src/botan/src/tests/test_stream.cpp:174,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:177,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:179,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:180,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/tests/test_stream.cpp:183,1
    - Dst: Botan_Tests::Stream_Cipher_Tests::rng
      Src: /src/botan/src/tests/test_stream.cpp:183,1
    - Dst: auto::write_keystream
      Src: /src/botan/src/tests/test_stream.cpp:184,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:189,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_stream.cpp:192,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_stream.cpp:195,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_stream.cpp:195,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_stream.cpp:196,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_stream.cpp:197,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_stream.cpp:197,1
    - Dst: auto::cipher1
      Src: /src/botan/src/tests/test_stream.cpp:201,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_stream.cpp:201,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_stream.cpp:201,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_stream.cpp:202,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_stream.cpp:204,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 112
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 209
    functionName: Botan_Tests::Stream_Cipher_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_stream.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - auto::maximum_keylength
    - std::min<size_t>
    - Botan::StreamCipher::create
    - auto::default_iv_length
    - auto::set_key
    - Botan::StreamCipher::providers
    - Test::Result::test_failure
    - auto::buffer_size
    - auto::get
    - provider_filter
    - auto::name
    - Test_Error
    - auto::has_keying_material
    - std::vector::data
    - auto::write_keystream
    - get_req_bin
    - Test::Result::test_success
    - auto::new_object
    - Test::Result::note_missing
    - auto::seek
    - auto::clear
    - Test::Result::test_is_nonempty
    - auto::valid_iv_length
    - std::vector::empty
    - get_opt_u64
    - Botan_Tests::Stream_Cipher_Tests::rng
    - std::vector::resize
    - std::vector::size
    - auto::valid_keylength
    - auto::cipher1
    - Test::Result::test_note
    - Botan::fmt
    - get_opt_bin
    - auto::set_iv
    - auto::provider
    - Test::Result::test_eq
    - Test::Result::confirm
    - std::to_string
    - auto::encrypt
    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:28,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:28,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:28,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:28,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: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    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>::begin
    - std::span<const uint8_t>::end
    - 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:42,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:42,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:43,1
    - 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
    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: 48
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 48
    functionName: Botan_Tests::make_CHECK_both
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - Botan_Tests::CHECK
    - std::bind
    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:64,1
    - 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:67,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:68,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: 68
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 68
    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:72,1
    - Dst: Cipher_State*::encrypt_record_fragment
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:73,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' result'
    - cs
    argTypes:
    - Test::Result
    - Cipher_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: Botan_Tests::RFC8448_TestData::encrypt
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Cipher_State*::encrypt_record_fragment
    - 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:80,1
    - Dst: Cipher_State*::decrypt_record_fragment
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:81,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' result'
    - cs
    argTypes:
    - Test::Result
    - Cipher_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: Botan_Tests::RFC8448_TestData::decrypt
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - Cipher_State*::decrypt_record_fragment
    - test_eq
    - 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:88,1
    - Dst: Botan_Tests::RFC8448_TestData::decrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:90,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: 92
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: Botan_Tests::RFC8448_TestData::xxcrypt
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::RFC8448_TestData::decrypt
    - Botan_Tests::RFC8448_TestData::encrypt
    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:97,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:101,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:108,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:111,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:116,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:121,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:126,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:131,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:136,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:141,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:146,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:151,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:156,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:162,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:164,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:165,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:198,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:234,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:236,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:237,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:241,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:247,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:249,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:250,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:262,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:277,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:279,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:280,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:284,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:291,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:293,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:294,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:298,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:303,1
    - Dst: Botan::TLS::Cipher_State::init_with_server_hello
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:308,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:309,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_Tests::make_CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:313,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:313,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:313,1
    - Dst: Botan_Tests::Test::flatten_result_lists
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:315,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:316,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:319,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:319,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:320,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:320,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:321,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:321,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:323,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:324,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:326,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:327,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:331,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:333,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:333,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:334,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:336,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      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:337,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:337,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: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:340,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:341,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:343,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:344,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:348,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:350,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:351,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:354,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:356,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:356,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:357,1
    - Dst: can_export_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:357,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:360,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:363,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:367,1
    - Dst: verify_peer_finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:368,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:370,1
    - Dst: finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:371,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:377,1
    - Dst: advance_with_server_finished
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:378,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:381,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:381,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:382,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:382,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:383,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:384,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:386,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:386,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:387,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:387,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:388,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:389,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:393,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:393,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:394,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:394,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:395,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:395,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:396,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:396,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:397,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:398,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:399,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:400,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:403,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:407,1
    - Dst: finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:408,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:411,1
    - Dst: verify_peer_finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:412,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:417,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:421,1
    - Dst: advance_with_client_finished
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:422,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:424,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:424,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:425,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:425,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:426,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:427,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:428,1
    - Dst: can_export_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:428,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:429,1
    - Dst: export_key
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:430,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:435,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:442,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:444,1
    - Dst: can_export_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:444,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:445,1
    - Dst: export_key
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:446,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:450,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:452,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:453,1
    - Dst: Botan::TLS::Ticket_Nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:454,1
    - Dst: test_is_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:456,1
    - Dst: Botan::TLS::Ticket_Nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:457,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:458,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:459,1
    - Dst: Botan::TLS::Ticket_Nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:460,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:462,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:463,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:467,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:467,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:470,1
    - Dst: psk
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:473,1
    - Dst: Botan::TLS::Ticket_Nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:473,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:475,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:478,1
    - Dst: update_read_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:485,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:486,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:486,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:487,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:487,1
    - Dst: update_write_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:489,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:490,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:490,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:491,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:491,1
    - Dst: test_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_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:496,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:497,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:500,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:500,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:503,1
    - Dst: clear_write_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:505,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:506,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:506,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:507,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:507,1
    - Dst: clear_read_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:509,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:510,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:510,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:511,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:511,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 95
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 95
    functionDepth: 4
    functionLinenumber: 95
    functionLinenumberEnd: 513
    functionName: Botan_Tests::test_secret_derivation_rfc8448_rtt1
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - verify_peer_finished_mac
    - test_throws
    - auto::get
    - finished_mac
    - psk
    - is_compatible_with
    - secrets::at
    - Botan::TLS::Ciphersuite::from_name
    - secure_vector<uint8_t>
    - clear_write_keys
    - auto::xxcrypt
    - secrets::contains
    - confirm
    - advance_with_server_finished
    - Botan_Tests::random_bit_generator::max
    - can_export_keys
    - CHECK_both
    - test_no_throw
    - must_expect_unprotected_alert_traffic
    - require
    - secrets::size
    - Botan_Tests::make_CHECK_both
    - can_decrypt_application_traffic
    - Botan_Tests::Test::flatten_result_lists
    - export_key
    - Botan::hex_decode_locked
    - next_ticket_nonce
    - Botan::TLS::Cipher_State::init_with_server_hello
    - Botan::TLS::Ticket_Nonce
    - RFC8448_TestData
    - update_write_keys
    - can_encrypt_application_traffic
    - advance_with_client_finished
    - clear_read_keys
    - test_is_eq
    - update_read_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:517,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:523,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:529,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:534,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:538,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:544,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:548,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:554,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:558,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:562,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:566,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:570,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:574,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:578,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:582,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:586,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:593,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:598,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:602,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:604,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:605,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:611,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:620,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:622,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:623,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:627,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:633,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:635,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:636,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:640,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:647,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:649,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:650,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:654,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:659,1
    - Dst: Botan::TLS::Cipher_State::init_with_psk
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:664,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:666,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:666,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:666,1
    - Dst: auto::prf_algo
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:667,1
    - Dst: Botan::TLS::Cipher_State::init_with_psk
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:668,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:670,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:670,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:670,1
    - Dst: auto::prf_algo
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:671,1
    - Dst: Botan_Tests::make_CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:673,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:673,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:673,1
    - Dst: Botan_Tests::Test::flatten_result_lists
      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:676,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:678,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:678,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:681,1
    - Dst: psk_binder_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:683,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:684,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:687,1
    - Dst: confirm
      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:690,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:691,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:692,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:692,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:693,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      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:694,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:694,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:696,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:697,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:697,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:698,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:698,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:701,1
    - Dst: advance_with_client_hello
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:703,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:704,1
    - Dst: can_export_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:704,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:705,1
    - Dst: export_key
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:706,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:710,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:711,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:713,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:715,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:718,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:718,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:719,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:719,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:720,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:721,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:725,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:725,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:726,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:726,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:729,1
    - Dst: advance_with_server_hello
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:732,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:732,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:735,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:738,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:738,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:739,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:740,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:741,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:742,1
    - Dst: test_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: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:746,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:747,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:753,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:757,1
    - Dst: verify_peer_finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:758,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:759,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:760,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:762,1
    - Dst: finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:763,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:765,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:766,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:769,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:769,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:770,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:770,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:774,1
    - Dst: advance_with_server_finished
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:775,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:778,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:778,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:779,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:779,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:780,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:781,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:783,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:783,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:784,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:784,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:785,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:786,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:790,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:790,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:791,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:791,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:792,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:792,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:793,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:793,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:794,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:794,1
    - Dst: test_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: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:796,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:796,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:799,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:803,1
    - Dst: finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:804,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:807,1
    - Dst: verify_peer_finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:808,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:813,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:816,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:820,1
    - Dst: advance_with_client_finished
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:821,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:823,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:823,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:824,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:824,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:825,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:826,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:827,1
    - Dst: can_export_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:827,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:828,1
    - Dst: export_key
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:829,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:833,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:837,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 77
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 515
    functionDepth: 4
    functionLinenumber: 515
    functionLinenumberEnd: 839
    functionName: Botan_Tests::test_secret_derivation_rfc8448_rtt0
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - verify_peer_finished_mac
    - auto::end
    - auto::get
    - advance_with_client_hello
    - finished_mac
    - psk_binder_mac
    - is_compatible_with
    - secrets::at
    - Botan::TLS::Ciphersuite::from_name
    - secure_vector<uint8_t>
    - auto::xxcrypt
    - secrets::contains
    - confirm
    - auto::prf_algo
    - advance_with_server_finished
    - can_export_keys
    - CHECK_both
    - test_no_throw
    - must_expect_unprotected_alert_traffic
    - require
    - advance_with_server_hello
    - secrets::size
    - can_decrypt_application_traffic
    - auto::begin
    - Botan_Tests::Test::flatten_result_lists
    - export_key
    - Botan::hex_decode_locked
    - RFC8448_TestData
    - Botan::TLS::Cipher_State::init_with_psk
    - can_encrypt_application_traffic
    - advance_with_client_finished
    - Botan_Tests::make_CHECK_both
    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:28,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:28,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:28,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:28,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: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    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>::begin
    - std::span<const uint8_t>::end
    - 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:42,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:42,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:43,1
    - 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
    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: 48
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 48
    functionName: Botan_Tests::make_CHECK_both
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 2
    functionsReached:
    - std::string
    - Botan_Tests::CHECK
    - std::bind
    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:64,1
    - 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:67,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:68,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: 68
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 68
    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:72,1
    - Dst: Cipher_State*::encrypt_record_fragment
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:73,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' result'
    - cs
    argTypes:
    - Test::Result
    - Cipher_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: Botan_Tests::RFC8448_TestData::encrypt
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 1
    functionsReached:
    - test_eq
    - Cipher_State*::encrypt_record_fragment
    - 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:80,1
    - Dst: Cipher_State*::decrypt_record_fragment
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:81,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' result'
    - cs
    argTypes:
    - Test::Result
    - Cipher_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: Botan_Tests::RFC8448_TestData::decrypt
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 1
    functionsReached:
    - Cipher_State*::decrypt_record_fragment
    - test_eq
    - 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:88,1
    - Dst: Botan_Tests::RFC8448_TestData::decrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:90,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: 92
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: Botan_Tests::RFC8448_TestData::xxcrypt
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::RFC8448_TestData::decrypt
    - Botan_Tests::RFC8448_TestData::encrypt
    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:97,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:101,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:108,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:111,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:116,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:121,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:126,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:131,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:136,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:141,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:146,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:151,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:156,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:162,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:164,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:165,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:198,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:234,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:236,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:237,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:241,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:247,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:249,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:250,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:262,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:277,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:279,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:280,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:284,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:291,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:293,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:294,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:298,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:303,1
    - Dst: Botan::TLS::Cipher_State::init_with_server_hello
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:308,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:309,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_Tests::make_CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:313,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:313,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:313,1
    - Dst: Botan_Tests::Test::flatten_result_lists
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:315,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:316,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:319,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:319,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:320,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:320,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:321,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:321,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:323,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:324,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:326,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:327,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:331,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:333,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:333,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:334,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:336,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      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:337,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:337,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: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:340,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:341,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:343,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:344,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:348,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:350,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:351,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:354,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:356,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:356,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:357,1
    - Dst: can_export_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:357,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:360,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:363,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:367,1
    - Dst: verify_peer_finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:368,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:370,1
    - Dst: finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:371,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:377,1
    - Dst: advance_with_server_finished
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:378,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:381,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:381,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:382,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:382,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:383,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:384,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:386,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:386,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:387,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:387,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:388,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:389,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:393,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:393,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:394,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:394,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:395,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:395,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:396,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:396,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:397,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:398,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:399,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:400,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:403,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:407,1
    - Dst: finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:408,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:411,1
    - Dst: verify_peer_finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:412,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:417,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:421,1
    - Dst: advance_with_client_finished
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:422,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:424,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:424,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:425,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:425,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:426,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:427,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:428,1
    - Dst: can_export_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:428,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:429,1
    - Dst: export_key
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:430,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:435,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:442,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:444,1
    - Dst: can_export_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:444,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:445,1
    - Dst: export_key
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:446,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:450,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:452,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:453,1
    - Dst: Botan::TLS::Ticket_Nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:454,1
    - Dst: test_is_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:456,1
    - Dst: Botan::TLS::Ticket_Nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:457,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:458,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:459,1
    - Dst: Botan::TLS::Ticket_Nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:460,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:462,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:463,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:467,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:467,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:470,1
    - Dst: psk
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:473,1
    - Dst: Botan::TLS::Ticket_Nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:473,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:475,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:478,1
    - Dst: update_read_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:485,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:486,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:486,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:487,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:487,1
    - Dst: update_write_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:489,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:490,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:490,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:491,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:491,1
    - Dst: test_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_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:496,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:497,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:500,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:500,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:503,1
    - Dst: clear_write_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:505,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:506,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:506,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:507,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:507,1
    - Dst: clear_read_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:509,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:510,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:510,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:511,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:511,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 95
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 95
    functionDepth: 4
    functionLinenumber: 95
    functionLinenumberEnd: 513
    functionName: Botan_Tests::test_secret_derivation_rfc8448_rtt1
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - verify_peer_finished_mac
    - test_throws
    - auto::get
    - finished_mac
    - psk
    - is_compatible_with
    - secrets::at
    - Botan::TLS::Ciphersuite::from_name
    - secure_vector<uint8_t>
    - clear_write_keys
    - auto::xxcrypt
    - secrets::contains
    - confirm
    - advance_with_server_finished
    - Botan_Tests::random_bit_generator::max
    - can_export_keys
    - CHECK_both
    - test_no_throw
    - must_expect_unprotected_alert_traffic
    - require
    - secrets::size
    - Botan_Tests::make_CHECK_both
    - can_decrypt_application_traffic
    - Botan_Tests::Test::flatten_result_lists
    - export_key
    - Botan::hex_decode_locked
    - next_ticket_nonce
    - Botan::TLS::Cipher_State::init_with_server_hello
    - Botan::TLS::Ticket_Nonce
    - RFC8448_TestData
    - update_write_keys
    - can_encrypt_application_traffic
    - advance_with_client_finished
    - clear_read_keys
    - test_is_eq
    - update_read_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:517,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:523,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:529,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:534,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:538,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:544,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:548,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:554,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:558,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:562,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:566,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:570,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:574,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:578,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:582,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:586,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:593,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:598,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:602,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:604,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:605,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:611,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:620,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:622,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:623,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:627,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:633,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:635,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:636,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:640,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:647,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:649,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:650,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:654,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:659,1
    - Dst: Botan::TLS::Cipher_State::init_with_psk
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:664,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:666,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:666,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:666,1
    - Dst: auto::prf_algo
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:667,1
    - Dst: Botan::TLS::Cipher_State::init_with_psk
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:668,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:670,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:670,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:670,1
    - Dst: auto::prf_algo
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:671,1
    - Dst: Botan_Tests::make_CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:673,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:673,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:673,1
    - Dst: Botan_Tests::Test::flatten_result_lists
      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:676,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:678,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:678,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:681,1
    - Dst: psk_binder_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:683,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:684,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:687,1
    - Dst: confirm
      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:690,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:691,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:692,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:692,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:693,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      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:694,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:694,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:696,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:697,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:697,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:698,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:698,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:701,1
    - Dst: advance_with_client_hello
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:703,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:704,1
    - Dst: can_export_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:704,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:705,1
    - Dst: export_key
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:706,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:710,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:711,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:713,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:715,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:718,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:718,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:719,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:719,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:720,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:721,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:725,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:725,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:726,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:726,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:729,1
    - Dst: advance_with_server_hello
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:732,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:732,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:735,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:738,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:738,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:739,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:740,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:741,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:742,1
    - Dst: test_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: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:746,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:747,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:753,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:757,1
    - Dst: verify_peer_finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:758,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:759,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:760,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:762,1
    - Dst: finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:763,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:765,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:766,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:769,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:769,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:770,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:770,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:774,1
    - Dst: advance_with_server_finished
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:775,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:778,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:778,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:779,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:779,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:780,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:781,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:783,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:783,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:784,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:784,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:785,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:786,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:790,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:790,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:791,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:791,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:792,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:792,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:793,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:793,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:794,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:794,1
    - Dst: test_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: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:796,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:796,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:799,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:803,1
    - Dst: finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:804,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:807,1
    - Dst: verify_peer_finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:808,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:813,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:816,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:820,1
    - Dst: advance_with_client_finished
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:821,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:823,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:823,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:824,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:824,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:825,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:826,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:827,1
    - Dst: can_export_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:827,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:828,1
    - Dst: export_key
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:829,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:833,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:837,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 77
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 515
    functionDepth: 4
    functionLinenumber: 515
    functionLinenumberEnd: 839
    functionName: Botan_Tests::test_secret_derivation_rfc8448_rtt0
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - verify_peer_finished_mac
    - auto::end
    - auto::get
    - advance_with_client_hello
    - finished_mac
    - psk_binder_mac
    - is_compatible_with
    - secrets::at
    - Botan::TLS::Ciphersuite::from_name
    - secure_vector<uint8_t>
    - auto::xxcrypt
    - secrets::contains
    - confirm
    - auto::prf_algo
    - advance_with_server_finished
    - can_export_keys
    - CHECK_both
    - test_no_throw
    - must_expect_unprotected_alert_traffic
    - require
    - advance_with_server_hello
    - secrets::size
    - can_decrypt_application_traffic
    - auto::begin
    - Botan_Tests::Test::flatten_result_lists
    - export_key
    - Botan::hex_decode_locked
    - RFC8448_TestData
    - Botan::TLS::Cipher_State::init_with_psk
    - can_encrypt_application_traffic
    - advance_with_client_finished
    - Botan_Tests::make_CHECK_both
    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:28,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:28,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:28,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:28,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: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    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>::begin
    - std::span<const uint8_t>::end
    - 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:42,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:42,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:43,1
    - 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
    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: 48
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 48
    functionName: Botan_Tests::make_CHECK_both
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 4
    functionsReached:
    - std::string
    - Botan_Tests::CHECK
    - std::bind
    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:64,1
    - 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:67,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:68,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: 68
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 68
    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:72,1
    - Dst: Cipher_State*::encrypt_record_fragment
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:73,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' result'
    - cs
    argTypes:
    - Test::Result
    - Cipher_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: Botan_Tests::RFC8448_TestData::encrypt
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 2
    functionsReached:
    - test_eq
    - Cipher_State*::encrypt_record_fragment
    - 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:80,1
    - Dst: Cipher_State*::decrypt_record_fragment
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:81,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' result'
    - cs
    argTypes:
    - Test::Result
    - Cipher_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: Botan_Tests::RFC8448_TestData::decrypt
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 2
    functionsReached:
    - Cipher_State*::decrypt_record_fragment
    - test_eq
    - 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:88,1
    - Dst: Botan_Tests::RFC8448_TestData::decrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:90,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: 92
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: Botan_Tests::RFC8448_TestData::xxcrypt
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::RFC8448_TestData::decrypt
    - Botan_Tests::RFC8448_TestData::encrypt
    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:97,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:101,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:108,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:111,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:116,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:121,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:126,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:131,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:136,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:141,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:146,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:151,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:156,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:162,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:164,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:165,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:198,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:234,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:236,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:237,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:241,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:247,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:249,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:250,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:262,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:277,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:279,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:280,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:284,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:291,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:293,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:294,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:298,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:303,1
    - Dst: Botan::TLS::Cipher_State::init_with_server_hello
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:308,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:309,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_Tests::make_CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:313,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:313,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:313,1
    - Dst: Botan_Tests::Test::flatten_result_lists
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:315,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:316,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:319,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:319,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:320,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:320,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:321,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:321,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:323,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:324,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:326,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:327,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:331,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:333,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:333,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:334,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:336,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      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:337,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:337,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: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:340,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:341,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:343,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:344,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:348,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:350,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:351,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:354,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:356,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:356,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:357,1
    - Dst: can_export_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:357,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:360,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:363,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:367,1
    - Dst: verify_peer_finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:368,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:370,1
    - Dst: finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:371,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:377,1
    - Dst: advance_with_server_finished
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:378,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:381,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:381,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:382,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:382,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:383,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:384,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:386,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:386,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:387,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:387,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:388,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:389,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:393,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:393,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:394,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:394,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:395,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:395,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:396,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:396,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:397,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:398,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:399,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:400,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:403,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:407,1
    - Dst: finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:408,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:411,1
    - Dst: verify_peer_finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:412,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:417,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:421,1
    - Dst: advance_with_client_finished
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:422,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:424,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:424,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:425,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:425,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:426,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:427,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:428,1
    - Dst: can_export_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:428,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:429,1
    - Dst: export_key
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:430,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:435,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:442,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:444,1
    - Dst: can_export_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:444,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:445,1
    - Dst: export_key
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:446,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:450,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:452,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:453,1
    - Dst: Botan::TLS::Ticket_Nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:454,1
    - Dst: test_is_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:456,1
    - Dst: Botan::TLS::Ticket_Nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:457,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:458,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:459,1
    - Dst: Botan::TLS::Ticket_Nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:460,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:462,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:463,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:467,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:467,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:470,1
    - Dst: psk
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:473,1
    - Dst: Botan::TLS::Ticket_Nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:473,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:475,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:478,1
    - Dst: update_read_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:485,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:486,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:486,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:487,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:487,1
    - Dst: update_write_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:489,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:490,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:490,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:491,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:491,1
    - Dst: test_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_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:496,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:497,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:500,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:500,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:503,1
    - Dst: clear_write_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:505,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:506,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:506,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:507,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:507,1
    - Dst: clear_read_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:509,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:510,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:510,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:511,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:511,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 95
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 95
    functionDepth: 4
    functionLinenumber: 95
    functionLinenumberEnd: 513
    functionName: Botan_Tests::test_secret_derivation_rfc8448_rtt1
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - verify_peer_finished_mac
    - test_throws
    - auto::get
    - finished_mac
    - psk
    - is_compatible_with
    - secrets::at
    - Botan::TLS::Ciphersuite::from_name
    - secure_vector<uint8_t>
    - clear_write_keys
    - auto::xxcrypt
    - secrets::contains
    - confirm
    - advance_with_server_finished
    - Botan_Tests::random_bit_generator::max
    - can_export_keys
    - CHECK_both
    - test_no_throw
    - must_expect_unprotected_alert_traffic
    - require
    - secrets::size
    - Botan_Tests::make_CHECK_both
    - can_decrypt_application_traffic
    - Botan_Tests::Test::flatten_result_lists
    - export_key
    - Botan::hex_decode_locked
    - next_ticket_nonce
    - Botan::TLS::Cipher_State::init_with_server_hello
    - Botan::TLS::Ticket_Nonce
    - RFC8448_TestData
    - update_write_keys
    - can_encrypt_application_traffic
    - advance_with_client_finished
    - clear_read_keys
    - test_is_eq
    - update_read_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:517,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:523,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:529,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:534,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:538,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:544,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:548,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:554,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:558,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:562,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:566,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:570,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:574,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:578,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:582,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:586,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:593,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:598,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:602,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:604,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:605,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:611,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:620,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:622,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:623,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:627,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:633,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:635,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:636,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:640,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:647,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:649,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:650,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:654,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:659,1
    - Dst: Botan::TLS::Cipher_State::init_with_psk
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:664,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:666,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:666,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:666,1
    - Dst: auto::prf_algo
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:667,1
    - Dst: Botan::TLS::Cipher_State::init_with_psk
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:668,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:670,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:670,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:670,1
    - Dst: auto::prf_algo
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:671,1
    - Dst: Botan_Tests::make_CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:673,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:673,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:673,1
    - Dst: Botan_Tests::Test::flatten_result_lists
      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:676,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:678,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:678,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:681,1
    - Dst: psk_binder_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:683,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:684,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:687,1
    - Dst: confirm
      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:690,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:691,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:692,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:692,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:693,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      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:694,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:694,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:696,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:697,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:697,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:698,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:698,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:701,1
    - Dst: advance_with_client_hello
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:703,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:704,1
    - Dst: can_export_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:704,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:705,1
    - Dst: export_key
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:706,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:710,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:711,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:713,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:715,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:718,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:718,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:719,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:719,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:720,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:721,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:725,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:725,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:726,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:726,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:729,1
    - Dst: advance_with_server_hello
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:732,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:732,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:735,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:738,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:738,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:739,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:740,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:741,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:742,1
    - Dst: test_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: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:746,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:747,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:753,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:757,1
    - Dst: verify_peer_finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:758,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:759,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:760,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:762,1
    - Dst: finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:763,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:765,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:766,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:769,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:769,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:770,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:770,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:774,1
    - Dst: advance_with_server_finished
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:775,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:778,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:778,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:779,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:779,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:780,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:781,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:783,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:783,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:784,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:784,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:785,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:786,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:790,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:790,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:791,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:791,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:792,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:792,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:793,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:793,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:794,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:794,1
    - Dst: test_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: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:796,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:796,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:799,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:803,1
    - Dst: finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:804,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:807,1
    - Dst: verify_peer_finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:808,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:813,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:816,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:820,1
    - Dst: advance_with_client_finished
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:821,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:823,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:823,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:824,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:824,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:825,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:826,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:827,1
    - Dst: can_export_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:827,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:828,1
    - Dst: export_key
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:829,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:833,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:837,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 77
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 515
    functionDepth: 4
    functionLinenumber: 515
    functionLinenumberEnd: 839
    functionName: Botan_Tests::test_secret_derivation_rfc8448_rtt0
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - verify_peer_finished_mac
    - auto::end
    - auto::get
    - advance_with_client_hello
    - finished_mac
    - psk_binder_mac
    - is_compatible_with
    - secrets::at
    - Botan::TLS::Ciphersuite::from_name
    - secure_vector<uint8_t>
    - auto::xxcrypt
    - secrets::contains
    - confirm
    - auto::prf_algo
    - advance_with_server_finished
    - can_export_keys
    - CHECK_both
    - test_no_throw
    - must_expect_unprotected_alert_traffic
    - require
    - advance_with_server_hello
    - secrets::size
    - can_decrypt_application_traffic
    - auto::begin
    - Botan_Tests::Test::flatten_result_lists
    - export_key
    - Botan::hex_decode_locked
    - RFC8448_TestData
    - Botan::TLS::Cipher_State::init_with_psk
    - can_encrypt_application_traffic
    - advance_with_client_finished
    - Botan_Tests::make_CHECK_both
    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:28,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:28,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:28,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:28,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: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    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>::begin
    - std::span<const uint8_t>::end
    - 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:42,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:42,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:43,1
    - 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
    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: 48
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 48
    functionName: Botan_Tests::make_CHECK_both
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 6
    functionsReached:
    - std::string
    - Botan_Tests::CHECK
    - std::bind
    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:64,1
    - 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:67,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:68,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: 68
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 68
    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:72,1
    - Dst: Cipher_State*::encrypt_record_fragment
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:73,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' result'
    - cs
    argTypes:
    - Test::Result
    - Cipher_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 76
    functionName: Botan_Tests::RFC8448_TestData::encrypt
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 3
    functionsReached:
    - test_eq
    - Cipher_State*::encrypt_record_fragment
    - 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:80,1
    - Dst: Cipher_State*::decrypt_record_fragment
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:81,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' result'
    - cs
    argTypes:
    - Test::Result
    - Cipher_State*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: Botan_Tests::RFC8448_TestData::decrypt
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 3
    functionsReached:
    - Cipher_State*::decrypt_record_fragment
    - test_eq
    - 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:88,1
    - Dst: Botan_Tests::RFC8448_TestData::decrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:90,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: 92
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: Botan_Tests::RFC8448_TestData::xxcrypt
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::RFC8448_TestData::decrypt
    - Botan_Tests::RFC8448_TestData::encrypt
    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:97,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:101,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:108,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:111,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:116,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:121,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:126,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:131,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:136,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:141,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:146,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:151,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:156,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:162,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:164,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:165,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:198,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:234,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:236,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:237,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:241,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:247,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:249,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:250,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:262,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:277,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:279,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:280,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:284,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:291,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:293,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:294,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:298,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:303,1
    - Dst: Botan::TLS::Cipher_State::init_with_server_hello
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:308,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:309,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_Tests::make_CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:313,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:313,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:313,1
    - Dst: Botan_Tests::Test::flatten_result_lists
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:315,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:316,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:319,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:319,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:320,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:320,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:321,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:321,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:323,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:324,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:326,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:327,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:331,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:333,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:333,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:334,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:336,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      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:337,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:337,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: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:340,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:341,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:343,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:344,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:348,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:350,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:351,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:354,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:356,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:356,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:357,1
    - Dst: can_export_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:357,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:360,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:363,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:367,1
    - Dst: verify_peer_finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:368,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:370,1
    - Dst: finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:371,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:377,1
    - Dst: advance_with_server_finished
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:378,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:381,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:381,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:382,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:382,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:383,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:384,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:386,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:386,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:387,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:387,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:388,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:389,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:393,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:393,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:394,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:394,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:395,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:395,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:396,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:396,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:397,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:398,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:399,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:400,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:403,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:407,1
    - Dst: finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:408,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:411,1
    - Dst: verify_peer_finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:412,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:417,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:421,1
    - Dst: advance_with_client_finished
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:422,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:424,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:424,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:425,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:425,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:426,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:427,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:428,1
    - Dst: can_export_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:428,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:429,1
    - Dst: export_key
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:430,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:435,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:442,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:444,1
    - Dst: can_export_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:444,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:445,1
    - Dst: export_key
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:446,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:450,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:452,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:453,1
    - Dst: Botan::TLS::Ticket_Nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:454,1
    - Dst: test_is_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:456,1
    - Dst: Botan::TLS::Ticket_Nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:457,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:458,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:459,1
    - Dst: Botan::TLS::Ticket_Nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:460,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:462,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:463,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:467,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:467,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:470,1
    - Dst: psk
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:473,1
    - Dst: Botan::TLS::Ticket_Nonce
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:473,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:475,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:478,1
    - Dst: update_read_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:485,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:486,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:486,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:487,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:487,1
    - Dst: update_write_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:489,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:490,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:490,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:491,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:491,1
    - Dst: test_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_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:496,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:497,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:500,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:500,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:503,1
    - Dst: clear_write_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:505,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:506,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:506,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:507,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:507,1
    - Dst: clear_read_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:509,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:510,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:510,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:511,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:511,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 95
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 95
    functionDepth: 4
    functionLinenumber: 95
    functionLinenumberEnd: 513
    functionName: Botan_Tests::test_secret_derivation_rfc8448_rtt1
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - verify_peer_finished_mac
    - test_throws
    - auto::get
    - finished_mac
    - psk
    - is_compatible_with
    - secrets::at
    - Botan::TLS::Ciphersuite::from_name
    - secure_vector<uint8_t>
    - clear_write_keys
    - auto::xxcrypt
    - secrets::contains
    - confirm
    - advance_with_server_finished
    - Botan_Tests::random_bit_generator::max
    - can_export_keys
    - CHECK_both
    - test_no_throw
    - must_expect_unprotected_alert_traffic
    - require
    - secrets::size
    - Botan_Tests::make_CHECK_both
    - can_decrypt_application_traffic
    - Botan_Tests::Test::flatten_result_lists
    - export_key
    - Botan::hex_decode_locked
    - next_ticket_nonce
    - Botan::TLS::Cipher_State::init_with_server_hello
    - Botan::TLS::Ticket_Nonce
    - RFC8448_TestData
    - update_write_keys
    - can_encrypt_application_traffic
    - advance_with_client_finished
    - clear_read_keys
    - test_is_eq
    - update_read_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:517,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:523,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:529,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:534,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:538,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:544,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:548,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:554,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:558,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:562,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:566,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:570,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:574,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:578,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:582,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:586,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:593,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:598,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:602,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:604,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:605,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:611,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:620,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:622,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:623,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:627,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:633,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:635,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:636,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:640,1
    - Dst: RFC8448_TestData
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:647,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:649,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:650,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:654,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:659,1
    - Dst: Botan::TLS::Cipher_State::init_with_psk
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:664,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:666,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:666,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:666,1
    - Dst: auto::prf_algo
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:667,1
    - Dst: Botan::TLS::Cipher_State::init_with_psk
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:668,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:670,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:670,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:670,1
    - Dst: auto::prf_algo
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:671,1
    - Dst: Botan_Tests::make_CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:673,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:673,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:673,1
    - Dst: Botan_Tests::Test::flatten_result_lists
      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:676,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:678,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:678,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:681,1
    - Dst: psk_binder_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:683,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:684,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:687,1
    - Dst: confirm
      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:690,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:691,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:692,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:692,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:693,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      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:694,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:694,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:696,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:697,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:697,1
    - Dst: is_compatible_with
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:698,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:698,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:701,1
    - Dst: advance_with_client_hello
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:703,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:704,1
    - Dst: can_export_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:704,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:705,1
    - Dst: export_key
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:706,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:710,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:711,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:713,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:715,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:718,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:718,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:719,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:719,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:720,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:721,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:725,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:725,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:726,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:726,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:729,1
    - Dst: advance_with_server_hello
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:732,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:732,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:735,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:738,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:738,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:739,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:740,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:741,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:742,1
    - Dst: test_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: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:746,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:747,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:753,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:757,1
    - Dst: verify_peer_finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:758,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:759,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:760,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:762,1
    - Dst: finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:763,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:765,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:766,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:769,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:769,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:770,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:770,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:774,1
    - Dst: advance_with_server_finished
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:775,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:778,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:778,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:779,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:779,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:780,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:781,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:783,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:783,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:784,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:784,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:785,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:786,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:790,1
    - Dst: secrets::size
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:790,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:791,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:791,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:792,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:792,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:793,1
    - Dst: secrets::contains
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:793,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:794,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:794,1
    - Dst: test_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: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:796,1
    - Dst: secrets::at
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:796,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:799,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:803,1
    - Dst: finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:804,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:807,1
    - Dst: verify_peer_finished_mac
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:808,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:813,1
    - Dst: CHECK_both
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:816,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:820,1
    - Dst: advance_with_client_finished
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:821,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:823,1
    - Dst: can_decrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:823,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:824,1
    - Dst: can_encrypt_application_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:824,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:825,1
    - Dst: must_expect_unprotected_alert_traffic
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:826,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:827,1
    - Dst: can_export_keys
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:827,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:828,1
    - Dst: export_key
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:829,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:833,1
    - Dst: auto::xxcrypt
      Src: /src/botan/src/tests/test_tls_cipher_state.cpp:837,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 77
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 515
    functionDepth: 4
    functionLinenumber: 515
    functionLinenumberEnd: 839
    functionName: Botan_Tests::test_secret_derivation_rfc8448_rtt0
    functionSourceFile: /src/botan/src/tests/test_tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - verify_peer_finished_mac
    - auto::end
    - auto::get
    - advance_with_client_hello
    - finished_mac
    - psk_binder_mac
    - is_compatible_with
    - secrets::at
    - Botan::TLS::Ciphersuite::from_name
    - secure_vector<uint8_t>
    - auto::xxcrypt
    - secrets::contains
    - confirm
    - auto::prf_algo
    - advance_with_server_finished
    - can_export_keys
    - CHECK_both
    - test_no_throw
    - must_expect_unprotected_alert_traffic
    - require
    - advance_with_server_hello
    - secrets::size
    - can_decrypt_application_traffic
    - auto::begin
    - Botan_Tests::Test::flatten_result_lists
    - export_key
    - Botan::hex_decode_locked
    - RFC8448_TestData
    - Botan::TLS::Cipher_State::init_with_psk
    - can_encrypt_application_traffic
    - advance_with_client_finished
    - Botan_Tests::make_CHECK_both
    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
    - get_req_bn
    - std::make_unique<Botan::ElGamal_PrivateKey>
    - get_req_str
    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:
    - get_req_bn
    - std::make_unique<Botan::ElGamal_PrivateKey>
    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::BigInt
    - Botan::DL_Group::from_name
    - std::make_unique<Botan::ElGamal_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: 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
    - get_req_bn
    - std::make_unique<Botan::ElGamal_PrivateKey>
    - get_req_str
    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:
    - get_req_bn
    - std::make_unique<Botan::ElGamal_PrivateKey>
    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::BigInt
    - Botan::DL_Group::from_name
    - std::make_unique<Botan::ElGamal_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: 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
    - get_req_bn
    - std::make_unique<Botan::ElGamal_PrivateKey>
    - get_req_str
    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:
    - get_req_bn
    - std::make_unique<Botan::ElGamal_PrivateKey>
    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::BigInt
    - Botan::DL_Group::from_name
    - std::make_unique<Botan::ElGamal_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: 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
    - get_req_bn
    - std::make_unique<Botan::ElGamal_PrivateKey>
    - get_req_str
    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:
    - get_req_bn
    - std::make_unique<Botan::ElGamal_PrivateKey>
    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::BigInt
    - Botan::DL_Group::from_name
    - std::make_unique<Botan::ElGamal_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: 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>::end
    - assign
    - std::span<const uint8_t>::begin
    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_Tests::OCB_Wide_Test_Block_Cipher::block_size
    - Botan::copy_mem
    - Botan::poly_double_n
    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:
    - Botan_Tests::OCB_Wide_Test_Block_Cipher::block_size
    - Test_Error
    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_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_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:
    - std::vector::begin
    - std::min<size_t>
    - std::make_unique<OCB_Wide_Test_Block_Cipher>
    - Botan::OCB_Decryption::set_associated_data
    - Botan::OCB_Decryption::set_key
    - std::vector::end
    - Botan::OCB_Encryption::set_key
    - Test::Result::test_eq
    - Botan::OCB_Encryption::start
    - Botan::OCB_Encryption::set_associated_data
    - Botan::OCB_Encryption::finish
    - Botan::OCB_Decryption::finish
    - get_req_bin
    - std::vector::size
    - Botan::OCB_Decryption::start
    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_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::move
    - std::min<size_t>
    - static_cast<uint16_t>
    - Test_Error
    - std::make_unique<OCB_Wide_Test_Block_Cipher>
    - static_cast<uint8_t>
    - std::vector::data
    - Botan::store_be
    - Botan::BlockCipher::create_or_throw
    - Botan::OCB_Encryption::set_key
    - Test::Result::test_eq
    - get_req_bin
    - std::vector::size
    - Botan_Tests::OCB_Wide_Long_KAT_Tests::ocb_encrypt
    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:
    - start
    - Botan::secure_vector::end
    - finish
    - data
    - size
    - Botan::secure_vector::begin
    - end
    - begin
    - set_associated_data
    - insert
    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_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:
    - auto::new_object
    - std::move
    - static_cast<uint32_t>
    - static_cast<uint8_t>
    - Botan::OCB_Decryption::set_key
    - Botan::store_be
    - get_req_sz
    - Botan::BlockCipher::create_or_throw
    - Botan::OCB_Encryption::set_key
    - Botan_Tests::OCB_Long_KAT_Tests::ocb_encrypt
    - Test::Result::test_eq
    - std::to_string
    - 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: 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_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:
    - start
    - Botan::secure_vector::end
    - test_eq
    - finish
    - data
    - size
    - test_failure
    - Botan::secure_vector::begin
    - end
    - what
    - begin
    - set_associated_data
    - insert
    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::update
    - Botan::OCB_Decryption::set_key
    - std::vector::resize
    - Botan::OCB_Encryption::set_key
    - Botan::OCB_Encryption::start
    - Botan::OCB_Decryption::update
    - Botan::OCB_Decryption::finish
    - Botan::OCB_Encryption::finish
    - std::vector::size
    - Botan::OCB_Decryption::start
    - std::make_unique<OCB_Null_Cipher>
    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>::end
    - assign
    - std::span<const uint8_t>::begin
    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_Tests::OCB_Wide_Test_Block_Cipher::block_size
    - Botan::copy_mem
    - Botan::poly_double_n
    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:
    - Botan_Tests::OCB_Wide_Test_Block_Cipher::block_size
    - Test_Error
    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_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_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:
    - std::vector::begin
    - std::min<size_t>
    - std::make_unique<OCB_Wide_Test_Block_Cipher>
    - Botan::OCB_Decryption::set_associated_data
    - Botan::OCB_Decryption::set_key
    - std::vector::end
    - Botan::OCB_Encryption::set_key
    - Test::Result::test_eq
    - Botan::OCB_Encryption::start
    - Botan::OCB_Encryption::set_associated_data
    - Botan::OCB_Encryption::finish
    - Botan::OCB_Decryption::finish
    - get_req_bin
    - std::vector::size
    - Botan::OCB_Decryption::start
    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_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::move
    - std::min<size_t>
    - static_cast<uint16_t>
    - Test_Error
    - std::make_unique<OCB_Wide_Test_Block_Cipher>
    - static_cast<uint8_t>
    - std::vector::data
    - Botan::store_be
    - Botan::BlockCipher::create_or_throw
    - Botan::OCB_Encryption::set_key
    - Test::Result::test_eq
    - get_req_bin
    - std::vector::size
    - Botan_Tests::OCB_Wide_Long_KAT_Tests::ocb_encrypt
    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:
    - start
    - Botan::secure_vector::end
    - finish
    - data
    - size
    - Botan::secure_vector::begin
    - end
    - begin
    - set_associated_data
    - insert
    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_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:
    - auto::new_object
    - std::move
    - static_cast<uint32_t>
    - static_cast<uint8_t>
    - Botan::OCB_Decryption::set_key
    - Botan::store_be
    - get_req_sz
    - Botan::BlockCipher::create_or_throw
    - Botan::OCB_Encryption::set_key
    - Botan_Tests::OCB_Long_KAT_Tests::ocb_encrypt
    - Test::Result::test_eq
    - std::to_string
    - 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: 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_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:
    - start
    - Botan::secure_vector::end
    - test_eq
    - finish
    - data
    - size
    - test_failure
    - Botan::secure_vector::begin
    - end
    - what
    - begin
    - set_associated_data
    - insert
    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::update
    - Botan::OCB_Decryption::set_key
    - std::vector::resize
    - Botan::OCB_Encryption::set_key
    - Botan::OCB_Encryption::start
    - Botan::OCB_Decryption::update
    - Botan::OCB_Decryption::finish
    - Botan::OCB_Encryption::finish
    - std::vector::size
    - Botan::OCB_Decryption::start
    - std::make_unique<OCB_Null_Cipher>
    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>::end
    - assign
    - std::span<const uint8_t>::begin
    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_Tests::OCB_Wide_Test_Block_Cipher::block_size
    - Botan::copy_mem
    - Botan::poly_double_n
    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:
    - Botan_Tests::OCB_Wide_Test_Block_Cipher::block_size
    - Test_Error
    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_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_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:
    - std::vector::begin
    - std::min<size_t>
    - std::make_unique<OCB_Wide_Test_Block_Cipher>
    - Botan::OCB_Decryption::set_associated_data
    - Botan::OCB_Decryption::set_key
    - std::vector::end
    - Botan::OCB_Encryption::set_key
    - Test::Result::test_eq
    - Botan::OCB_Encryption::start
    - Botan::OCB_Encryption::set_associated_data
    - Botan::OCB_Encryption::finish
    - Botan::OCB_Decryption::finish
    - get_req_bin
    - std::vector::size
    - Botan::OCB_Decryption::start
    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_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::move
    - std::min<size_t>
    - static_cast<uint16_t>
    - Test_Error
    - std::make_unique<OCB_Wide_Test_Block_Cipher>
    - static_cast<uint8_t>
    - std::vector::data
    - Botan::store_be
    - Botan::BlockCipher::create_or_throw
    - Botan::OCB_Encryption::set_key
    - Test::Result::test_eq
    - get_req_bin
    - std::vector::size
    - Botan_Tests::OCB_Wide_Long_KAT_Tests::ocb_encrypt
    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:
    - start
    - Botan::secure_vector::end
    - finish
    - data
    - size
    - Botan::secure_vector::begin
    - end
    - begin
    - set_associated_data
    - insert
    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_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:
    - auto::new_object
    - std::move
    - static_cast<uint32_t>
    - static_cast<uint8_t>
    - Botan::OCB_Decryption::set_key
    - Botan::store_be
    - get_req_sz
    - Botan::BlockCipher::create_or_throw
    - Botan::OCB_Encryption::set_key
    - Botan_Tests::OCB_Long_KAT_Tests::ocb_encrypt
    - Test::Result::test_eq
    - std::to_string
    - 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: 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_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:
    - start
    - Botan::secure_vector::end
    - test_eq
    - finish
    - data
    - size
    - test_failure
    - Botan::secure_vector::begin
    - end
    - what
    - begin
    - set_associated_data
    - insert
    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::update
    - Botan::OCB_Decryption::set_key
    - std::vector::resize
    - Botan::OCB_Encryption::set_key
    - Botan::OCB_Encryption::start
    - Botan::OCB_Decryption::update
    - Botan::OCB_Decryption::finish
    - Botan::OCB_Encryption::finish
    - std::vector::size
    - Botan::OCB_Decryption::start
    - std::make_unique<OCB_Null_Cipher>
    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>::end
    - assign
    - std::span<const uint8_t>::begin
    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_Tests::OCB_Wide_Test_Block_Cipher::block_size
    - Botan::copy_mem
    - Botan::poly_double_n
    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:
    - Botan_Tests::OCB_Wide_Test_Block_Cipher::block_size
    - Test_Error
    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_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_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:
    - std::vector::begin
    - std::min<size_t>
    - std::make_unique<OCB_Wide_Test_Block_Cipher>
    - Botan::OCB_Decryption::set_associated_data
    - Botan::OCB_Decryption::set_key
    - std::vector::end
    - Botan::OCB_Encryption::set_key
    - Test::Result::test_eq
    - Botan::OCB_Encryption::start
    - Botan::OCB_Encryption::set_associated_data
    - Botan::OCB_Encryption::finish
    - Botan::OCB_Decryption::finish
    - get_req_bin
    - std::vector::size
    - Botan::OCB_Decryption::start
    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_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::move
    - std::min<size_t>
    - static_cast<uint16_t>
    - Test_Error
    - std::make_unique<OCB_Wide_Test_Block_Cipher>
    - static_cast<uint8_t>
    - std::vector::data
    - Botan::store_be
    - Botan::BlockCipher::create_or_throw
    - Botan::OCB_Encryption::set_key
    - Test::Result::test_eq
    - get_req_bin
    - std::vector::size
    - Botan_Tests::OCB_Wide_Long_KAT_Tests::ocb_encrypt
    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:
    - start
    - Botan::secure_vector::end
    - finish
    - data
    - size
    - Botan::secure_vector::begin
    - end
    - begin
    - set_associated_data
    - insert
    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_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:
    - auto::new_object
    - std::move
    - static_cast<uint32_t>
    - static_cast<uint8_t>
    - Botan::OCB_Decryption::set_key
    - Botan::store_be
    - get_req_sz
    - Botan::BlockCipher::create_or_throw
    - Botan::OCB_Encryption::set_key
    - Botan_Tests::OCB_Long_KAT_Tests::ocb_encrypt
    - Test::Result::test_eq
    - std::to_string
    - 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: 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_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:
    - start
    - Botan::secure_vector::end
    - test_eq
    - finish
    - data
    - size
    - test_failure
    - Botan::secure_vector::begin
    - end
    - what
    - begin
    - set_associated_data
    - insert
    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::update
    - Botan::OCB_Decryption::set_key
    - std::vector::resize
    - Botan::OCB_Encryption::set_key
    - Botan::OCB_Encryption::start
    - Botan::OCB_Decryption::update
    - Botan::OCB_Decryption::finish
    - Botan::OCB_Encryption::finish
    - std::vector::size
    - Botan::OCB_Decryption::start
    - std::make_unique<OCB_Null_Cipher>
    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: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    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: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    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:34,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: Botan_Tests::ECDSA_Verification_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - get_req_str
    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:38,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:39,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:40,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecdsa.cpp:41,1
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/tests/test_ecdsa.cpp:43,1
    - Dst: std::make_unique<Botan::ECDSA_PublicKey>
      Src: /src/botan/src/tests/test_ecdsa.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 46
    functionName: Botan_Tests::ECDSA_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::ECDSA_PublicKey>
    - Botan::EC_Group::from_name
    - get_req_str
    - get_req_bn
    - Botan::EC_AffinePoint::from_bigint_xy
    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: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    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: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    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: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    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: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    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: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    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:64,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: Botan_Tests::ECDSA_Wycheproof_Verification_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - get_req_str
    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:68,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:69,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:70,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecdsa.cpp:71,1
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/tests/test_ecdsa.cpp:73,1
    - Dst: std::make_unique<Botan::ECDSA_PublicKey>
      Src: /src/botan/src/tests/test_ecdsa.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 76
    functionName: Botan_Tests::ECDSA_Wycheproof_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::ECDSA_PublicKey>
    - Botan::EC_Group::from_name
    - get_req_str
    - get_req_bn
    - Botan::EC_AffinePoint::from_bigint_xy
    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:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    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: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    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:98,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.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::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - get_req_str
    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:102,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:103,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecdsa.cpp:104,1
    - Dst: std::make_unique<Botan::ECDSA_PrivateKey>
      Src: /src/botan/src/tests/test_ecdsa.cpp:106,1
    - Dst: Botan_Tests::rng
      Src: /src/botan/src/tests/test_ecdsa.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 107
    functionName: Botan_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::from_name
    - std::make_unique<Botan::ECDSA_PrivateKey>
    - Botan_Tests::rng
    - get_req_bn
    - get_req_str
    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:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    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:115,1
    - Dst: Botan_Tests::rng
      Src: /src/botan/src/tests/test_ecdsa.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: Botan_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Fixed_Output_Position_RNG>
    - Botan_Tests::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: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    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: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    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:34,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: Botan_Tests::ECDSA_Verification_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - get_req_str
    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:38,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:39,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:40,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecdsa.cpp:41,1
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/tests/test_ecdsa.cpp:43,1
    - Dst: std::make_unique<Botan::ECDSA_PublicKey>
      Src: /src/botan/src/tests/test_ecdsa.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 46
    functionName: Botan_Tests::ECDSA_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::ECDSA_PublicKey>
    - Botan::EC_Group::from_name
    - get_req_str
    - get_req_bn
    - Botan::EC_AffinePoint::from_bigint_xy
    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: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    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: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    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: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    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: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    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: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    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:64,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: Botan_Tests::ECDSA_Wycheproof_Verification_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - get_req_str
    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:68,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:69,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:70,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecdsa.cpp:71,1
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/tests/test_ecdsa.cpp:73,1
    - Dst: std::make_unique<Botan::ECDSA_PublicKey>
      Src: /src/botan/src/tests/test_ecdsa.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 76
    functionName: Botan_Tests::ECDSA_Wycheproof_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::ECDSA_PublicKey>
    - Botan::EC_Group::from_name
    - get_req_str
    - get_req_bn
    - Botan::EC_AffinePoint::from_bigint_xy
    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:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    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: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    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:98,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.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::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - get_req_str
    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:102,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:103,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecdsa.cpp:104,1
    - Dst: std::make_unique<Botan::ECDSA_PrivateKey>
      Src: /src/botan/src/tests/test_ecdsa.cpp:106,1
    - Dst: Botan_Tests::rng
      Src: /src/botan/src/tests/test_ecdsa.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 107
    functionName: Botan_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::from_name
    - std::make_unique<Botan::ECDSA_PrivateKey>
    - Botan_Tests::rng
    - get_req_bn
    - get_req_str
    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:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    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:115,1
    - Dst: Botan_Tests::rng
      Src: /src/botan/src/tests/test_ecdsa.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: Botan_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Fixed_Output_Position_RNG>
    - Botan_Tests::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:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 127
    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: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    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:137,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 138
    functionName: Botan_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - get_req_str
    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:141,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:142,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecdsa.cpp:143,1
    - Dst: Botan_Tests::rng
      Src: /src/botan/src/tests/test_ecdsa.cpp:145,1
    - Dst: Botan::ECDSA_PrivateKey::public_key
      Src: /src/botan/src/tests/test_ecdsa.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 148
    functionName: Botan_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::from_name
    - Botan_Tests::rng
    - Botan::ECDSA_PrivateKey::public_key
    - get_req_bn
    - get_req_str
    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:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    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: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    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: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    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:34,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: Botan_Tests::ECDSA_Verification_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - get_req_str
    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:38,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:39,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:40,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecdsa.cpp:41,1
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/tests/test_ecdsa.cpp:43,1
    - Dst: std::make_unique<Botan::ECDSA_PublicKey>
      Src: /src/botan/src/tests/test_ecdsa.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 46
    functionName: Botan_Tests::ECDSA_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::ECDSA_PublicKey>
    - Botan::EC_Group::from_name
    - get_req_str
    - get_req_bn
    - Botan::EC_AffinePoint::from_bigint_xy
    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: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    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: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    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: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    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: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    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: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    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:64,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: Botan_Tests::ECDSA_Wycheproof_Verification_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - get_req_str
    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:68,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:69,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:70,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecdsa.cpp:71,1
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/tests/test_ecdsa.cpp:73,1
    - Dst: std::make_unique<Botan::ECDSA_PublicKey>
      Src: /src/botan/src/tests/test_ecdsa.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 76
    functionName: Botan_Tests::ECDSA_Wycheproof_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::ECDSA_PublicKey>
    - Botan::EC_Group::from_name
    - get_req_str
    - get_req_bn
    - Botan::EC_AffinePoint::from_bigint_xy
    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:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    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: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    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:98,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.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::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - get_req_str
    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:102,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:103,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecdsa.cpp:104,1
    - Dst: std::make_unique<Botan::ECDSA_PrivateKey>
      Src: /src/botan/src/tests/test_ecdsa.cpp:106,1
    - Dst: Botan_Tests::rng
      Src: /src/botan/src/tests/test_ecdsa.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 107
    functionName: Botan_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::from_name
    - std::make_unique<Botan::ECDSA_PrivateKey>
    - Botan_Tests::rng
    - get_req_bn
    - get_req_str
    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:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    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:115,1
    - Dst: Botan_Tests::rng
      Src: /src/botan/src/tests/test_ecdsa.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: Botan_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Fixed_Output_Position_RNG>
    - Botan_Tests::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: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    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: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    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:34,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: Botan_Tests::ECDSA_Verification_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - get_req_str
    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:38,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:39,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:40,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecdsa.cpp:41,1
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/tests/test_ecdsa.cpp:43,1
    - Dst: std::make_unique<Botan::ECDSA_PublicKey>
      Src: /src/botan/src/tests/test_ecdsa.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 46
    functionName: Botan_Tests::ECDSA_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::ECDSA_PublicKey>
    - Botan::EC_Group::from_name
    - get_req_str
    - get_req_bn
    - Botan::EC_AffinePoint::from_bigint_xy
    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: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    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: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    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: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    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: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    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: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    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:64,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: Botan_Tests::ECDSA_Wycheproof_Verification_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - get_req_str
    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:68,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:69,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:70,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecdsa.cpp:71,1
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/tests/test_ecdsa.cpp:73,1
    - Dst: std::make_unique<Botan::ECDSA_PublicKey>
      Src: /src/botan/src/tests/test_ecdsa.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 76
    functionName: Botan_Tests::ECDSA_Wycheproof_Verification_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::ECDSA_PublicKey>
    - Botan::EC_Group::from_name
    - get_req_str
    - get_req_bn
    - Botan::EC_AffinePoint::from_bigint_xy
    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:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    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: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    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:98,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.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::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - get_req_str
    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:102,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:103,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecdsa.cpp:104,1
    - Dst: std::make_unique<Botan::ECDSA_PrivateKey>
      Src: /src/botan/src/tests/test_ecdsa.cpp:106,1
    - Dst: Botan_Tests::rng
      Src: /src/botan/src/tests/test_ecdsa.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 107
    functionName: Botan_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::from_name
    - std::make_unique<Botan::ECDSA_PrivateKey>
    - Botan_Tests::rng
    - get_req_bn
    - get_req_str
    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:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    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:115,1
    - Dst: Botan_Tests::rng
      Src: /src/botan/src/tests/test_ecdsa.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: Botan_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Fixed_Output_Position_RNG>
    - Botan_Tests::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:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 127
    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: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    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:137,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 138
    functionName: Botan_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - get_req_str
    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:141,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:142,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecdsa.cpp:143,1
    - Dst: Botan_Tests::rng
      Src: /src/botan/src/tests/test_ecdsa.cpp:145,1
    - Dst: Botan::ECDSA_PrivateKey::public_key
      Src: /src/botan/src/tests/test_ecdsa.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 148
    functionName: Botan_Tests::load_public_key
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::from_name
    - Botan_Tests::rng
    - Botan::ECDSA_PrivateKey::public_key
    - get_req_bn
    - get_req_str
    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:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    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: 155
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 155
    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:158,1
    - Dst: ECDSA_Sign_Verify_DER_Test::rng
      Src: /src/botan/src/tests/test_ecdsa.cpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 159
    functionName: ECDSA_Sign_Verify_DER_Test::key
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - ECDSA_Sign_Verify_DER_Test::rng
    - Botan::create_private_key
    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:165,1
    - Dst: std::vector<std::string>
      Src: /src/botan/src/tests/test_ecdsa.cpp:166,1
    - Dst: begin
      Src: /src/botan/src/tests/test_ecdsa.cpp:166,1
    - Dst: end
      Src: /src/botan/src/tests/test_ecdsa.cpp:166,1
    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: ECDSA_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - begin
    - std::vector<std::string>
    - end
    - Botan::EC_Group::known_named_groups
    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: 169
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 169
    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:174,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/test_ecdsa.cpp:175,1
    - Dst: std::make_unique<Botan::ECDSA_PublicKey>
      Src: /src/botan/src/tests/test_ecdsa.cpp:176,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: 177
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 177
    functionName: ECDSA_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_AffinePoint::EC_AffinePoint
    - std::make_unique<Botan::ECDSA_PublicKey>
    - Botan::EC_Group
    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: 182
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 182
    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: 189
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 189
    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:192,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 193
    functionName: ECDSA_Key_Recovery_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - get_req_str
    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:198,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecdsa.cpp:199,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:201,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:202,1
    - Dst: get_req_u8
      Src: /src/botan/src/tests/test_ecdsa.cpp:203,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecdsa.cpp:204,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_ecdsa.cpp:205,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecdsa.cpp:209,1
    - Dst: Botan::ECDSA_PublicKey::public_key_bits
      Src: /src/botan/src/tests/test_ecdsa.cpp:209,1
    - Dst: Botan::ECDSA_PublicKey::recovery_param
      Src: /src/botan/src/tests/test_ecdsa.cpp:211,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecdsa.cpp:212,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_ecdsa.cpp:212,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_ecdsa.cpp:212,1
    - Dst: Botan::BigInt::encode_fixed_length_int_pair
      Src: /src/botan/src/tests/test_ecdsa.cpp:216,1
    - Dst: auto::get_order_bytes
      Src: /src/botan/src/tests/test_ecdsa.cpp:216,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ecdsa.cpp:218,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_ecdsa.cpp:218,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecdsa.cpp:220,1
    - Dst: what
      Src: /src/botan/src/tests/test_ecdsa.cpp:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 224
    functionName: ECDSA_Key_Recovery_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECDSA_PublicKey::public_key_bits
    - static_cast<size_t>
    - Test::Result::test_failure
    - Botan::EC_Group::from_name
    - get_req_u8
    - Botan::ECDSA_PublicKey::recovery_param
    - Botan::PK_Verifier::verify_message
    - Test::Result::test_eq
    - auto::get_order_bytes
    - Test::Result::confirm
    - Botan::BigInt::encode_fixed_length_int_pair
    - what
    - get_req_bin
    - get_req_bn
    - get_req_str
    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: 233
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 233
    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: 235
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 235
    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:238,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecdsa.cpp:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 239
    functionName: ECDSA_Invalid_Key_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - get_req_str
    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:244,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecdsa.cpp:245,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:246,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecdsa.cpp:247,1
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/tests/test_ecdsa.cpp:249,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecdsa.cpp:250,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ecdsa.cpp:252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 256
    functionName: ECDSA_Invalid_Key_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_failure
    - Botan::EC_Group::from_name
    - get_req_str
    - get_req_bn
    - Test::Result::test_success
    - Botan::EC_AffinePoint::from_bigint_xy
    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:267,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_ecdsa.cpp:270,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecdsa.cpp:272,1
    - Dst: Botan::ECDSA_PrivateKey::public_key
      Src: /src/botan/src/tests/test_ecdsa.cpp:275,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_ecdsa.cpp:278,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecdsa.cpp:287,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecdsa.cpp:287,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_ecdsa.cpp:288,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecdsa.cpp:288,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecdsa.cpp:289,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ecdsa.cpp:289,1
    - Dst: auto::get_order_bytes
      Src: /src/botan/src/tests/test_ecdsa.cpp:289,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ecdsa.cpp:291,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_ecdsa.cpp:291,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_ecdsa.cpp:293,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecdsa.cpp:293,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ecdsa.cpp:294,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_ecdsa.cpp:294,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_ecdsa.cpp:296,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ecdsa.cpp:296,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ecdsa.cpp:297,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_ecdsa.cpp:297,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecdsa.cpp:300,1
    - Dst: what
      Src: /src/botan/src/tests/test_ecdsa.cpp:300,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_ecdsa.cpp:304,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ecdsa.cpp:305,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 309
    functionName: ECDSA_AllGroups_Test::run
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - rng
    - Test::Result::end_timer
    - std::vector::push_back
    - Botan::EC_Group::known_named_groups
    - Test::Result::test_failure
    - Botan::EC_Group::from_name
    - Botan::PK_Verifier::verify_message
    - mutate_vec
    - Botan::PK_Signer::sign_message
    - Test::Result::test_eq
    - auto::get_order_bytes
    - Test::Result::confirm
    - what
    - Botan::HashFunction::create
    - Botan::ECDSA_PrivateKey::public_key
    - auto::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: 314
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 314
    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: 316
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 316
    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:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' group'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 320
    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:325,1
    - Dst: Botan::OID::from_name
      Src: /src/botan/src/tests/test_ecdsa.cpp:328,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_ecdsa.cpp:330,1
    - Dst: dynamic_cast<const Botan::ECDSA_PrivateKey*>
      Src: /src/botan/src/tests/test_ecdsa.cpp:331,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_ecdsa.cpp:331,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ecdsa.cpp:333,1
    - Dst: auto*::domain
      Src: /src/botan/src/tests/test_ecdsa.cpp:335,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ecdsa.cpp:336,1
    - Dst: used_explicit_encoding
      Src: /src/botan/src/tests/test_ecdsa.cpp:336,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ecdsa.cpp:337,1
    - Dst: get_curve_oid
      Src: /src/botan/src/tests/test_ecdsa.cpp:337,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecdsa.cpp:339,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ecdsa.cpp:342,1
    - Dst: what
      Src: /src/botan/src/tests/test_ecdsa.cpp:342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - ' group_name'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 346
    functionName: ECDSA_ExplicitCurveKey_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ecdsa.cpp
    functionUses: 0
    functionsReached:
    - auto*::domain
    - Test::Result::test_failure
    - Botan::PKCS8::load_key
    - auto::get
    - Test::Result::test_success
    - dynamic_cast<const Botan::ECDSA_PrivateKey*>
    - Test::Result::test_eq
    - Test::Result::confirm
    - what
    - get_curve_oid
    - get_req_bin
    - Botan::OID::from_name
    - used_explicit_encoding
    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: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    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: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    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:73,1
    - Dst: auto::add_certificate
      Src: /src/botan/src/tests/unit_tls.cpp:74,1
    - Dst: auto::add_certificate
      Src: /src/botan/src/tests/unit_tls.cpp:75,1
    - Dst: auto::add_crl
      Src: /src/botan/src/tests/unit_tls.cpp:76,1
    - Dst: auto::add_crl
      Src: /src/botan/src/tests/unit_tls.cpp:77,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:79,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:79,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: 80
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 80
    functionName: Botan_Tests::Credentials_Manager_Test::Credentials_Manager_Test
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_unique<Botan::Certificate_Store_In_Memory>
    - auto::add_crl
    - push_back
    - auto::add_certificate
    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:85,1
    - Dst: size
      Src: /src/botan/src/tests/unit_tls.cpp:85,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls.cpp:87,1
    - Dst: get
      Src: /src/botan/src/tests/unit_tls.cpp:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 90
    functionName: Botan_Tests::Credentials_Manager_Test::trusted_certificate_authorities
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - size
    - std::vector::push_back
    - get
    - 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:97,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:100,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls.cpp:107,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls.cpp:108,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls.cpp:111,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls.cpp:112,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: 119
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 119
    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: 131
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 131
    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:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 135
    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:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 139
    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:146,1
    - Dst: Botan_Tests::Credentials_Manager_Test::find_preshared_keys
      Src: /src/botan/src/tests/unit_tls.cpp:147,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/unit_tls.cpp:156,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/unit_tls.cpp:157,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/unit_tls.cpp:161,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/unit_tls.cpp:162,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: 167
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 167
    functionName: Botan_Tests::Credentials_Manager_Test::find_preshared_keys
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 1
    functionsReached:
    - std::vector::emplace_back
    - Botan::hex_decode_locked
    - empty
    - Botan_Tests::Credentials_Manager_Test::find_preshared_keys
    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: 169
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 169
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls.cpp:186,1
    - Dst: std::make_unique<Botan::RSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls.cpp:189,1
    - Dst: std::make_unique<Botan::RSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls.cpp:190,1
    - Dst: std::make_unique<Botan::ECDSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls.cpp:192,1
    - Dst: std::make_unique<Botan::ECDSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls.cpp:193,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/tests/unit_tls.cpp:197,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/tests/unit_tls.cpp:198,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_tls.cpp:201,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_tls.cpp:203,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_tls.cpp:207,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_tls.cpp:208,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/unit_tls.cpp:214,1
    - Dst: years
      Src: /src/botan/src/tests/unit_tls.cpp:217,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_tls.cpp:219,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_tls.cpp:220,1
    - Dst: Botan::X509_CA::new_crl
      Src: /src/botan/src/tests/unit_tls.cpp:222,1
    - Dst: Botan::X509_CA::new_crl
      Src: /src/botan/src/tests/unit_tls.cpp:223,1
    - Dst: std::make_shared<Credentials_Manager_Test>
      Src: /src/botan/src/tests/unit_tls.cpp:225,1
    - Dst: auto::release
      Src: /src/botan/src/tests/unit_tls.cpp:227,1
    - Dst: auto::release
      Src: /src/botan/src/tests/unit_tls.cpp:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 234
    functionName: Botan_Tests::create_creds
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Cert_Options::CA_key
    - std::make_unique<Botan::RSA_PrivateKey>
    - Botan::X509_CA::new_crl
    - Botan::EC_Group::from_name
    - std::make_shared<Credentials_Manager_Test>
    - Botan::TLS::detail::AsyncBase::complete_now
    - std::make_unique<Botan::ECDSA_PrivateKey>
    - Botan::X509::create_cert_req
    - auto::release
    - years
    - Botan::X509_CA::sign_request
    - Botan::X509::create_self_signed_cert
    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:264,1
    - Dst: std::make_shared<Test_Callbacks>
      Src: /src/botan/src/tests/unit_tls.cpp:265,1
    - Dst: Botan::TLS::Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/tests/unit_tls.cpp:267,1
    - Dst: std::make_unique<Botan::TLS::Server>
      Src: /src/botan/src/tests/unit_tls.cpp:270,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: 271
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 271
    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: 275
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 275
    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: 277
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 277
    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:281,1
    - Dst: set_custom_tls_session_established_callback
      Src: /src/botan/src/tests/unit_tls.cpp:282,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:282,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: 283
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 283
    functionName: Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_session_established_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - set_custom_tls_session_established_callback
    - BOTAN_ASSERT_NONNULL
    - std::move
    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:287,1
    - Dst: set_custom_tls_session_established_callback
      Src: /src/botan/src/tests/unit_tls.cpp:288,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:288,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: 289
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 289
    functionName: Botan_Tests::TLS_Handshake_Test::set_custom_server_tls_session_established_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - set_custom_tls_session_established_callback
    - BOTAN_ASSERT_NONNULL
    - std::move
    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:292,1
    - Dst: Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_generate_ephemeral_ecdh_key_callback
      Src: /src/botan/src/tests/unit_tls.cpp:293,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - generate_ephemeral_ecdh_key_clbk
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 294
    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_ASSERT_NONNULL
    - Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_generate_ephemeral_ecdh_key_callback
    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:297,1
    - Dst: Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_ephemeral_key_agreement_callback
      Src: /src/botan/src/tests/unit_tls.cpp:298,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - ephemeral_key_agreement_clbk
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 299
    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_ASSERT_NONNULL
    - Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_ephemeral_key_agreement_callback
    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:302,1
    - Dst: set_expected_handshake_alert
      Src: /src/botan/src/tests/unit_tls.cpp:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: Botan_Tests::TLS_Handshake_Test::set_client_expected_handshake_alert
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - set_expected_handshake_alert
    - BOTAN_ASSERT_NONNULL
    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:307,1
    - Dst: set_expected_handshake_alert
      Src: /src/botan/src/tests/unit_tls.cpp:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 309
    functionName: Botan_Tests::TLS_Handshake_Test::set_server_expected_handshake_alert
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - set_expected_handshake_alert
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: void
    signature: void set_server_expected_handshake_alert(Botan::TLS::Alert alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Botan::TLS::Extension_Code>
      Src: /src/botan/src/tests/unit_tls.cpp:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 317
    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:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 319
    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: 321
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 321
    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: 323
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 323
    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: 325
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 325
    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: Botan::TLS::append_tls_length_value
      Src: /src/botan/src/tests/unit_tls.cpp:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - side
    argTypes:
    - Botan::TLS::Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 333
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Extension::Test_Extension
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::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: 345
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 345
    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: 347
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 347
    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: 348
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 348
    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: 349
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 349
    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: 350
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 350
    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:353,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:354,1
    - Dst: type_string
      Src: /src/botan/src/tests/unit_tls.cpp:354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 357
    functionName: ~Test_Callbacks() override
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - has_value
    - type_string
    - test_failure
    linkageType: ''
    returnType: void
    signature: void ~Test_Callbacks() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/tests/unit_tls.cpp:360,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:360,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/unit_tls.cpp:360,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/unit_tls.cpp:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 361
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_emit_data
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - end
    - insert
    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:364,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:364,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/unit_tls.cpp:364,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/unit_tls.cpp:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 365
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_record_received
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - end
    - insert
    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:370,1
    - Dst: type
      Src: /src/botan/src/tests/unit_tls.cpp:371,1
    - Dst: Botan::TLS::Alert::type
      Src: /src/botan/src/tests/unit_tls.cpp:371,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:372,1
    - Dst: Botan::TLS::Alert::type_string
      Src: /src/botan/src/tests/unit_tls.cpp:372,1
    - Dst: type_string
      Src: /src/botan/src/tests/unit_tls.cpp:373,1
    - Dst: test_note
      Src: /src/botan/src/tests/unit_tls.cpp:376,1
    - Dst: type_string
      Src: /src/botan/src/tests/unit_tls.cpp:376,1
    - Dst: reset
      Src: /src/botan/src/tests/unit_tls.cpp:377,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 380
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_alert
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Alert::type
    - test_failure
    - type_string
    - Botan::TLS::Alert::type_string
    - type
    - has_value
    - reset
    - 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:385,1
    - Dst: Test_Extension::Test_Extension
      Src: /src/botan/src/tests/unit_tls.cpp:385,1
    - Dst: take
      Src: /src/botan/src/tests/unit_tls.cpp:388,1
    - Dst: auto::supported_schemes
      Src: /src/botan/src/tests/unit_tls.cpp:389,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/unit_tls.cpp:391,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/unit_tls.cpp:391,1
    - Dst: add
      Src: /src/botan/src/tests/unit_tls.cpp:393,1
    - Dst: Botan::TLS::Signature_Algorithms::Signature_Algorithms
      Src: /src/botan/src/tests/unit_tls.cpp:393,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: 395
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 395
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_modify_extensions
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - Test_Extension::Test_Extension
    - Botan::TLS::Signature_Algorithms::Signature_Algorithms
    - add
    - take
    - auto::supported_schemes
    - std::vector::insert
    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:401,1
    - Dst: get
      Src: /src/botan/src/tests/unit_tls.cpp:402,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:405,1
    - Dst: dynamic_cast<Botan::TLS::Unknown_Extension*>
      Src: /src/botan/src/tests/unit_tls.cpp:407,1
    - Dst: Botan::TLS::Unknown_Extension*::value
      Src: /src/botan/src/tests/unit_tls.cpp:410,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:412,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:412,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:414,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:416,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:420,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: 423
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 423
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_examine_extensions
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - dynamic_cast<Botan::TLS::Unknown_Extension*>
    - Botan::TLS::Unknown_Extension*::value
    - test_failure
    - get
    - std::vector::size
    - static_cast<Botan::TLS::Extension_Code>
    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:426,1
    - Dst: ciphersuite
      Src: /src/botan/src/tests/unit_tls.cpp:427,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_tls.cpp:428,1
    - Dst: session_id
      Src: /src/botan/src/tests/unit_tls.cpp:428,1
    - Dst: test_note
      Src: /src/botan/src/tests/unit_tls.cpp:430,1
    - Dst: m_session_established_callback
      Src: /src/botan/src/tests/unit_tls.cpp:433,1
    - Dst: version
      Src: /src/botan/src/tests/unit_tls.cpp:436,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:437,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:437,1
    - Dst: version
      Src: /src/botan/src/tests/unit_tls.cpp:438,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Botan::TLS::Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 440
    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
    - session_id
    - to_string
    - test_failure
    - m_session_established_callback
    - version
    - ciphersuite
    - test_note
    linkageType: ''
    returnType: void
    signature: void tls_session_established(const Botan::TLS::Session_Summary& session)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:443,1
    - Dst: size
      Src: /src/botan/src/tests/unit_tls.cpp:443,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:444,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' protos'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 447
    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_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:452,1
    - Dst: std::get<Botan::TLS::Group_Params>
      Src: /src/botan/src/tests/unit_tls.cpp:453,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls.cpp:454,1
    - Dst: std::make_unique<Botan::ECDH_PrivateKey>
      Src: /src/botan/src/tests/unit_tls.cpp:455,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_generate_ephemeral_key
      Src: /src/botan/src/tests/unit_tls.cpp:458,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: 459
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 459
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_generate_ephemeral_key
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 1
    functionsReached:
    - Botan::EC_Group::from_name
    - std::holds_alternative<Botan::TLS::Group_Params>
    - std::get<Botan::TLS::Group_Params>
    - std::make_unique<Botan::ECDH_PrivateKey>
    - Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_generate_ephemeral_key
    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:466,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls12_generate_ephemeral_ecdh_key
      Src: /src/botan/src/tests/unit_tls.cpp:469,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: 471
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 471
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls12_generate_ephemeral_ecdh_key
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 1
    functionsReached:
    - m_generate_ephemeral_ecdh_key_callback
    - Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls12_generate_ephemeral_ecdh_key
    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:480,1
    - Dst: std::holds_alternative<Botan::TLS::Group_Params>
      Src: /src/botan/src/tests/unit_tls.cpp:483,1
    - Dst: std::get<Botan::TLS::Group_Params>
      Src: /src/botan/src/tests/unit_tls.cpp:484,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls.cpp:485,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/unit_tls.cpp:486,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/unit_tls.cpp:489,1
    - Dst: Botan::ECDH_PublicKey::public_value
      Src: /src/botan/src/tests/unit_tls.cpp:489,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_ephemeral_key_agreement
      Src: /src/botan/src/tests/unit_tls.cpp:492,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: 493
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 493
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_ephemeral_key_agreement
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 1
    functionsReached:
    - Botan::EC_AffinePoint::EC_AffinePoint
    - Botan::PK_Key_Agreement::derive_key
    - Botan::EC_Group::from_name
    - m_ephemeral_key_agreement_callback
    - std::holds_alternative<Botan::TLS::Group_Params>
    - Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_ephemeral_key_agreement
    - std::get<Botan::TLS::Group_Params>
    - Botan::ECDH_PublicKey::public_value
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:497,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: 498
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 498
    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:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - generate_ephemeral_ecdh_key_clbk
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 502
    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:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - ephemeral_key_agreement_clbk
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 506
    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: 508
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 508
    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: 14
    BranchProfiles: []
    Callsites:
    - Dst: start_timer
      Src: /src/botan/src/tests/unit_tls.cpp:541,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/unit_tls.cpp:546,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:546,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:546,1
    - Dst: randomize
      Src: /src/botan/src/tests/unit_tls.cpp:548,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:548,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:548,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/unit_tls.cpp:551,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:551,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:551,1
    - Dst: randomize
      Src: /src/botan/src/tests/unit_tls.cpp:553,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:553,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:553,1
    - Dst: std::make_unique<Botan::TLS::Client>
      Src: /src/botan/src/tests/unit_tls.cpp:557,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/unit_tls.cpp:562,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:575,1
    - Dst: std::unique_ptr::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:579,1
    - Dst: is_active
      Src: /src/botan/src/tests/unit_tls.cpp:583,1
    - Dst: std::unique_ptr::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:587,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:588,1
    - Dst: std::unique_ptr::application_protocol
      Src: /src/botan/src/tests/unit_tls.cpp:588,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:591,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:592,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:593,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:593,1
    - Dst: min
      Src: /src/botan/src/tests/unit_tls.cpp:594,1
    - Dst: std::unique_ptr::send
      Src: /src/botan/src/tests/unit_tls.cpp:596,1
    - Dst: std::unique_ptr::send_warning_alert
      Src: /src/botan/src/tests/unit_tls.cpp:599,1
    - Dst: is_active
      Src: /src/botan/src/tests/unit_tls.cpp:603,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:604,1
    - Dst: application_protocol
      Src: /src/botan/src/tests/unit_tls.cpp:604,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:607,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:608,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:609,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:609,1
    - Dst: min
      Src: /src/botan/src/tests/unit_tls.cpp:610,1
    - Dst: send
      Src: /src/botan/src/tests/unit_tls.cpp:612,1
    - Dst: send_warning_alert
      Src: /src/botan/src/tests/unit_tls.cpp:616,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:620,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:627,1
    - Dst: received_data
      Src: /src/botan/src/tests/unit_tls.cpp:630,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:630,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:630,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:631,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:638,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:640,1
    - Dst: std::unique_ptr::received_data
      Src: /src/botan/src/tests/unit_tls.cpp:643,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:643,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:643,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:644,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:651,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:652,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:655,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:656,1
    - Dst: std::unique_ptr::is_closed
      Src: /src/botan/src/tests/unit_tls.cpp:659,1
    - Dst: is_closed
      Src: /src/botan/src/tests/unit_tls.cpp:659,1
    - Dst: is_active
      Src: /src/botan/src/tests/unit_tls.cpp:663,1
    - Dst: peer_cert_chain
      Src: /src/botan/src/tests/unit_tls.cpp:664,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:666,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:666,1
    - Dst: get_acceptable_cas
      Src: /src/botan/src/tests/unit_tls.cpp:668,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:670,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:670,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:673,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_tls.cpp:673,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:676,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:676,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:680,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:680,1
    - Dst: std::unique_ptr::key_material_export
      Src: /src/botan/src/tests/unit_tls.cpp:681,1
    - Dst: key_material_export
      Src: /src/botan/src/tests/unit_tls.cpp:682,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:684,1
    - Dst: Botan::SymmetricKey::bits_of
      Src: /src/botan/src/tests/unit_tls.cpp:684,1
    - Dst: Botan::SymmetricKey::bits_of
      Src: /src/botan/src/tests/unit_tls.cpp:684,1
    - Dst: confirm
      Src: /src/botan/src/tests/unit_tls.cpp:686,1
    - Dst: std::unique_ptr::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:686,1
    - Dst: confirm
      Src: /src/botan/src/tests/unit_tls.cpp:687,1
    - Dst: std::unique_ptr::is_closed
      Src: /src/botan/src/tests/unit_tls.cpp:687,1
    - Dst: std::unique_ptr::close
      Src: /src/botan/src/tests/unit_tls.cpp:688,1
    - Dst: confirm
      Src: /src/botan/src/tests/unit_tls.cpp:689,1
    - Dst: std::unique_ptr::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:689,1
    - Dst: confirm
      Src: /src/botan/src/tests/unit_tls.cpp:690,1
    - Dst: std::unique_ptr::is_closed
      Src: /src/botan/src/tests/unit_tls.cpp:690,1
    - Dst: end_timer
      Src: /src/botan/src/tests/unit_tls.cpp:694,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 80
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 540
    functionDepth: 1
    functionLinenumber: 540
    functionLinenumberEnd: 695
    functionName: Botan_Tests::TLS_Handshake_Test::go
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - static_cast<size_t>
    - randomize
    - std::unique_ptr::send_warning_alert
    - std::unique_ptr::send
    - std::swap
    - test_failure
    - send_warning_alert
    - std::unique_ptr::application_protocol
    - is_active
    - Botan::SymmetricKey::bits_of
    - std::unique_ptr::received_data
    - end_timer
    - min
    - send
    - std::vector::data
    - get_acceptable_cas
    - confirm
    - std::unique_ptr::key_material_export
    - is_closed
    - next_byte
    - Botan::TLS::Server_Information
    - get_first_attribute
    - key_material_export
    - received_data
    - std::vector::size
    - std::unique_ptr::is_closed
    - std::unique_ptr::close
    - application_protocol
    - start_timer
    - std::unique_ptr::is_active
    - empty
    - peer_cert_chain
    - std::make_unique<Botan::TLS::Client>
    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: 699
      start: 699
    functionDepth: 0
    functionLinenumber: 699
    functionLinenumberEnd: 699
    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:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - version
    argTypes:
    - Botan::TLS::Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 701
    functionDepth: 1
    functionLinenumber: 701
    functionLinenumberEnd: 704
    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: 706
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 706
    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: 708
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 708
    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: 710
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 710
    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: 712
      start: 712
    functionDepth: 0
    functionLinenumber: 712
    functionLinenumberEnd: 712
    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:737,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: 737
      start: 736
    functionDepth: 0
    functionLinenumber: 736
    functionLinenumberEnd: 737
    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: 739
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 739
    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:741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 741
    functionDepth: 0
    functionLinenumber: 741
    functionLinenumberEnd: 741
    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: 745
      start: 743
    functionDepth: 0
    functionLinenumber: 743
    functionLinenumberEnd: 745
    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: 747
      start: 747
    functionDepth: 0
    functionLinenumber: 747
    functionLinenumberEnd: 747
    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&, bool) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_p
      Src: /src/botan/src/tests/unit_tls.cpp:749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 749
    functionDepth: 0
    functionLinenumber: 749
    functionLinenumberEnd: 749
    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: 751
      start: 751
    functionDepth: 0
    functionLinenumber: 751
    functionLinenumberEnd: 751
    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:754,1
    - Dst: Invalid_State
      Src: /src/botan/src/tests/unit_tls.cpp:755,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 753
    functionDepth: 1
    functionLinenumber: 753
    functionLinenumberEnd: 758
    functionName: Botan_Tests::HardwareEcdhKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - empty
    - Invalid_State
    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:760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 760
    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:763,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 762
    functionDepth: 1
    functionLinenumber: 762
    functionLinenumberEnd: 764
    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:767,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/unit_tls.cpp:767,1
    - Dst: Botan_Tests::HardwareEcdhKey::raw_public_key_bits
      Src: /src/botan/src/tests/unit_tls.cpp:767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 766
    functionDepth: 1
    functionLinenumber: 766
    functionLinenumberEnd: 768
    functionName: Botan_Tests::HardwareEcdhKey::public_key
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::ECDH_PublicKey>
    - Botan_Tests::HardwareEcdhKey::raw_public_key_bits
    - Botan::EC_AffinePoint::EC_AffinePoint
    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:771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 772
    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&)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::HardwareEcdhKey::raw_public_key_bits
      Src: /src/botan/src/tests/unit_tls.cpp:774,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 774
    functionDepth: 0
    functionLinenumber: 774
    functionLinenumberEnd: 774
    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: ECDH_PrivateKey
      Src: /src/botan/src/tests/unit_tls.cpp:782,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/unit_tls.cpp:784,1
    - Dst: auto::public_value
      Src: /src/botan/src/tests/unit_tls.cpp:785,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: 787
      start: 776
    functionDepth: 1
    functionLinenumber: 776
    functionLinenumberEnd: 787
    functionName: Botan_Tests::HardwareEcdhKey::custom_ephemeral_agreement
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::PK_Key_Agreement::derive_key
    - auto::public_value
    - ECDH_PrivateKey
    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:808,1
    - Dst: TLS_Handshake_Test::go
      Src: /src/botan/src/tests/unit_tls.cpp:817,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:818,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:818,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:820,1
    - Dst: TLS_Handshake_Test::go
      Src: /src/botan/src/tests/unit_tls.cpp:829,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:830,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:830,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:833,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/unit_tls.cpp:833,1
    - Dst: what
      Src: /src/botan/src/tests/unit_tls.cpp:833,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: 835
      start: 797
    functionDepth: 1
    functionLinenumber: 797
    functionLinenumberEnd: 835
    functionName: Botan_Tests::TLS_Unit_Tests::test_with_policy
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - to_string
    - TLS_Handshake_Test::go
    - push_back
    - Botan_Tests::Test::Result::Failure
    - TLS_Handshake_Test::results
    - what
    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:848,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:849,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:850,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:851,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:852,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:854,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:855,1
    - Dst: find
      Src: /src/botan/src/tests/unit_tls.cpp:857,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:858,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_with_policy
      Src: /src/botan/src/tests/unit_tls.cpp:864,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: 866
      start: 837
    functionDepth: 2
    functionLinenumber: 837
    functionLinenumberEnd: 866
    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
    - find
    - Botan_Tests::TLS_Unit_Tests::test_with_policy
    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:879,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: 890
      start: 868
    functionDepth: 1
    functionLinenumber: 868
    functionLinenumberEnd: 890
    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:903,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:904,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:905,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:906,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:907,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:908,1
    - Dst: find
      Src: /src/botan/src/tests/unit_tls.cpp:910,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:911,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:915,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_with_policy
      Src: /src/botan/src/tests/unit_tls.cpp:921,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: 923
      start: 892
    functionDepth: 2
    functionLinenumber: 892
    functionLinenumberEnd: 923
    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
    - find
    - Botan_Tests::TLS_Unit_Tests::test_with_policy
    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:931,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_Noop>
      Src: /src/botan/src/tests/unit_tls.cpp:932,1
    - Dst: type_string
      Src: /src/botan/src/tests/unit_tls.cpp:937,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:937,1
    - Dst: TLS_Handshake_Test::set_custom_client_tls_session_established_callback
      Src: /src/botan/src/tests/unit_tls.cpp:946,1
    - Dst: std::rethrow_exception
      Src: /src/botan/src/tests/unit_tls.cpp:947,1
    - Dst: TLS_Handshake_Test::set_server_expected_handshake_alert
      Src: /src/botan/src/tests/unit_tls.cpp:948,1
    - Dst: TLS_Handshake_Test::go
      Src: /src/botan/src/tests/unit_tls.cpp:950,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:951,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:951,1
    - Dst: type_string
      Src: /src/botan/src/tests/unit_tls.cpp:958,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:958,1
    - Dst: TLS_Handshake_Test::set_custom_server_tls_session_established_callback
      Src: /src/botan/src/tests/unit_tls.cpp:967,1
    - Dst: std::rethrow_exception
      Src: /src/botan/src/tests/unit_tls.cpp:968,1
    - Dst: TLS_Handshake_Test::set_client_expected_handshake_alert
      Src: /src/botan/src/tests/unit_tls.cpp:969,1
    - Dst: TLS_Handshake_Test::go
      Src: /src/botan/src/tests/unit_tls.cpp:971,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:972,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:972,1
    - Dst: client_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:976,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:976,1
    - Dst: TLS_Exception
      Src: /src/botan/src/tests/unit_tls.cpp:977,1
    - Dst: client_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:979,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:979,1
    - Dst: Botan::Invalid_Authentication_Tag::Invalid_Authentication_Tag
      Src: /src/botan/src/tests/unit_tls.cpp:979,1
    - Dst: client_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:981,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:981,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/unit_tls.cpp:981,1
    - Dst: server_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:984,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:984,1
    - Dst: TLS_Exception
      Src: /src/botan/src/tests/unit_tls.cpp:985,1
    - Dst: server_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:987,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:987,1
    - Dst: Botan::Invalid_Authentication_Tag::Invalid_Authentication_Tag
      Src: /src/botan/src/tests/unit_tls.cpp:988,1
    - Dst: server_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:990,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:990,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/unit_tls.cpp:990,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: 992
      start: 925
    functionDepth: 1
    functionLinenumber: 925
    functionLinenumberEnd: 992
    functionName: Botan_Tests::TLS_Unit_Tests::test_session_established_abort
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - TLS_Handshake_Test::set_server_expected_handshake_alert
    - TLS_Handshake_Test::results
    - server_aborts
    - TLS_Handshake_Test::set_custom_client_tls_session_established_callback
    - std::runtime_error
    - TLS_Exception
    - std::make_exception_ptr
    - to_string
    - TLS_Handshake_Test::set_custom_server_tls_session_established_callback
    - client_aborts
    - TLS_Handshake_Test::go
    - push_back
    - Botan::Invalid_Authentication_Tag::Invalid_Authentication_Tag
    - type_string
    - TLS_Handshake_Test::set_client_expected_handshake_alert
    - std::make_shared<Botan::TLS::Session_Manager_Noop>
    - std::make_shared<Test_Policy>
    - std::rethrow_exception
    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:997,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_tls.cpp:1006,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:1006,1
    - Dst: std::make_shared<Test_Policy>
      Src: /src/botan/src/tests/unit_tls.cpp:1010,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:1011,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_tls.cpp:1011,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/unit_tls.cpp:1011,1
    - Dst: wire_code
      Src: /src/botan/src/tests/unit_tls.cpp:1011,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:1014,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1024,1
    - Dst: TLS_Handshake_Test::set_custom_client_tls_generate_ephemeral_ecdh_key_callback
      Src: /src/botan/src/tests/unit_tls.cpp:1029,1
    - Dst: require
      Src: /src/botan/src/tests/unit_tls.cpp:1034,1
    - Dst: is_ecdh_named_curve
      Src: /src/botan/src/tests/unit_tls.cpp:1035,1
    - Dst: std::make_unique<HardwareEcdhKey>
      Src: /src/botan/src/tests/unit_tls.cpp:1036,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls.cpp:1036,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:1036,1
    - Dst: TLS_Handshake_Test::set_custom_client_tls_ephemeral_key_agreement_callback
      Src: /src/botan/src/tests/unit_tls.cpp:1040,1
    - Dst: std::get_if<Botan::TLS::Group_Params>
      Src: /src/botan/src/tests/unit_tls.cpp:1048,1
    - Dst: require
      Src: /src/botan/src/tests/unit_tls.cpp:1049,1
    - Dst: require
      Src: /src/botan/src/tests/unit_tls.cpp:1051,1
    - Dst: auto*::is_ecdh_named_curve
      Src: /src/botan/src/tests/unit_tls.cpp:1052,1
    - Dst: dynamic_cast<const HardwareEcdhKey*>
      Src: /src/botan/src/tests/unit_tls.cpp:1054,1
    - Dst: require
      Src: /src/botan/src/tests/unit_tls.cpp:1055,1
    - Dst: auto*::custom_ephemeral_agreement
      Src: /src/botan/src/tests/unit_tls.cpp:1058,1
    - Dst: TLS_Handshake_Test::go
      Src: /src/botan/src/tests/unit_tls.cpp:1061,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1062,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1063,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:1064,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1064,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: 1066
      start: 994
    functionDepth: 1
    functionLinenumber: 994
    functionLinenumberEnd: 1066
    functionName: Botan_Tests::TLS_Unit_Tests::test_custom_ecdh_provider
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - is_ecdh_named_curve
    - Botan::hex_encode
    - TLS_Handshake_Test::set_custom_client_tls_generate_ephemeral_ecdh_key_callback
    - auto*::is_ecdh_named_curve
    - push_back
    - dynamic_cast<const HardwareEcdhKey*>
    - TLS_Handshake_Test::results
    - auto*::custom_ephemeral_agreement
    - auto::set
    - require
    - std::make_shared<Test_Policy>
    - std::make_unique<HardwareEcdhKey>
    - Botan::EC_Group::supports_named_group
    - TLS_Handshake_Test::set_custom_client_tls_ephemeral_key_agreement_callback
    - Botan::EC_Group::from_name
    - to_string
    - Botan::store_be
    - TLS_Handshake_Test::go
    - std::get_if<Botan::TLS::Group_Params>
    - std::make_shared<Botan::TLS::Session_Manager_Noop>
    - wire_code
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_shared_rng
      Src: /src/botan/src/tests/unit_tls.cpp:1072,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_name
      Src: /src/botan/src/tests/unit_tls.cpp:1072,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_SQLite>
      Src: /src/botan/src/tests/unit_tls.cpp:1078,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_SQLite>
      Src: /src/botan/src/tests/unit_tls.cpp:1079,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/unit_tls.cpp:1083,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/unit_tls.cpp:1087,1
    - Dst: create_creds
      Src: /src/botan/src/tests/unit_tls.cpp:1090,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_all_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1094,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_all_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1104,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_all_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1116,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_all_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1118,1
    - Dst: std::shared_ptr::remove_all
      Src: /src/botan/src/tests/unit_tls.cpp:1122,1
    - Dst: std::shared_ptr::remove_all
      Src: /src/botan/src/tests/unit_tls.cpp:1124,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1126,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1131,1
    - Dst: std::make_shared<Botan::TLS::Strict_Policy_Without_TLS13>
      Src: /src/botan/src/tests/unit_tls.cpp:1134,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_with_policy
      Src: /src/botan/src/tests/unit_tls.cpp:1135,1
    - Dst: std::make_shared<Botan::TLS::NSA_Suite_B_128>
      Src: /src/botan/src/tests/unit_tls.cpp:1144,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_with_policy
      Src: /src/botan/src/tests/unit_tls.cpp:1145,1
    - Dst: std::shared_ptr::remove_all
      Src: /src/botan/src/tests/unit_tls.cpp:1155,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1157,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1158,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1160,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1171,1
    - Dst: std::shared_ptr::remove_all
      Src: /src/botan/src/tests/unit_tls.cpp:1182,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1185,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1190,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1194,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1204,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1214,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1226,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1238,1
    - Dst: create_creds
      Src: /src/botan/src/tests/unit_tls.cpp:1249,1
    - Dst: std::shared_ptr::remove_all
      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:1252,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/unit_tls.cpp:1264,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/unit_tls.cpp:1265,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1269,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:1280,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1283,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1284,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1288,1
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/unit_tls.cpp:1293,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/unit_tls.cpp:1307,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1312,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_session_established_abort
      Src: /src/botan/src/tests/unit_tls.cpp:1327,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_custom_ecdh_provider
      Src: /src/botan/src/tests/unit_tls.cpp:1333,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1336
      start: 1069
    functionDepth: 3
    functionLinenumber: 1069
    functionLinenumberEnd: 1336
    functionName: Botan_Tests::TLS_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::TLS_Unit_Tests::test_custom_ecdh_provider
    - Botan_Tests::TLS_Unit_Tests::test_all_versions
    - Botan_Tests::TLS_Unit_Tests::test_modern_versions
    - std::shared_ptr::remove_all
    - std::make_shared<Botan::TLS::NSA_Suite_B_128>
    - Botan::EC_Group::supports_application_specific_group
    - Botan_Tests::TLS_Unit_Tests::test_name
    - std::make_shared<Botan::TLS::Session_Manager_In_Memory>
    - Botan_Tests::Test::new_shared_rng
    - create_creds
    - std::make_shared<Botan::TLS::Session_Manager_SQLite>
    - Botan::OID::register_oid
    - std::make_shared<Botan::TLS::Strict_Policy_Without_TLS13>
    - Botan_Tests::TLS_Unit_Tests::test_session_established_abort
    - Botan_Tests::TLS_Unit_Tests::test_with_policy
    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:1350,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1350,1
    - Dst: begin
      Src: /src/botan/src/tests/unit_tls.cpp:1350,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1350,1
    - Dst: insert
      Src: /src/botan/src/tests/unit_tls.cpp:1354,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1354,1
    - Dst: begin
      Src: /src/botan/src/tests/unit_tls.cpp:1354,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1354,1
    - Dst: test_success
      Src: /src/botan/src/tests/unit_tls.cpp:1362,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1377,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1381,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1385,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1389,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/unit_tls.cpp:1392,1
    - Dst: std::vector<std::string>
      Src: /src/botan/src/tests/unit_tls.cpp:1398,1
    - Dst: Botan_Tests::Test::new_shared_rng
      Src: /src/botan/src/tests/unit_tls.cpp:1411,1
    - Dst: Botan_Tests::DTLS_Reconnection_Test::test_name
      Src: /src/botan/src/tests/unit_tls.cpp:1411,1
    - Dst: std::make_shared<Datagram_PSK_Policy>
      Src: /src/botan/src/tests/unit_tls.cpp:1413,1
    - Dst: std::make_shared<Datagram_PSK_Policy>
      Src: /src/botan/src/tests/unit_tls.cpp:1414,1
    - Dst: std::make_shared<Credentials_PSK>
      Src: /src/botan/src/tests/unit_tls.cpp:1415,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/unit_tls.cpp:1416,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_Noop>
      Src: /src/botan/src/tests/unit_tls.cpp:1417,1
    - Dst: std::make_shared<Test_Callbacks>
      Src: /src/botan/src/tests/unit_tls.cpp:1421,1
    - Dst: std::make_shared<Test_Callbacks>
      Src: /src/botan/src/tests/unit_tls.cpp:1426,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/unit_tls.cpp:1432,1
    - Dst: Botan::TLS::latest_dtls_version
      Src: /src/botan/src/tests/unit_tls.cpp:1433,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:1446,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1450,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:1452,1
    - Dst: Botan::TLS::Server::received_data
      Src: /src/botan/src/tests/unit_tls.cpp:1453,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:1453,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:1453,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1457,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:1459,1
    - Dst: Botan::TLS::Client::received_data
      Src: /src/botan/src/tests/unit_tls.cpp:1460,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:1460,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:1460,1
    - Dst: Botan::TLS::Client::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:1464,1
    - Dst: Botan::TLS::Client::send
      Src: /src/botan/src/tests/unit_tls.cpp:1465,1
    - Dst: Botan::TLS::Server::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:1469,1
    - Dst: Botan::TLS::Server::send
      Src: /src/botan/src/tests/unit_tls.cpp:1470,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1473,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1473,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:1474,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:1475,1
    - Dst: std::vector::clear
      Src: /src/botan/src/tests/unit_tls.cpp:1484,1
    - Dst: std::vector::clear
      Src: /src/botan/src/tests/unit_tls.cpp:1485,1
    - Dst: std::make_shared<Test_Callbacks>
      Src: /src/botan/src/tests/unit_tls.cpp:1489,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/unit_tls.cpp:1495,1
    - Dst: Botan::TLS::latest_dtls_version
      Src: /src/botan/src/tests/unit_tls.cpp:1496,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:1510,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1514,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:1516,1
    - Dst: Botan::TLS::Server::received_data
      Src: /src/botan/src/tests/unit_tls.cpp:1517,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:1517,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:1517,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1521,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:1523,1
    - Dst: Botan::TLS::Client::received_data
      Src: /src/botan/src/tests/unit_tls.cpp:1524,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:1524,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:1524,1
    - Dst: Botan::TLS::Client::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:1528,1
    - Dst: Botan::TLS::Client::send
      Src: /src/botan/src/tests/unit_tls.cpp:1529,1
    - Dst: Botan::TLS::Server::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:1533,1
    - Dst: Botan::TLS::Server::send
      Src: /src/botan/src/tests/unit_tls.cpp:1534,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1537,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1537,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:1538,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:1539,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 94
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1545
      start: 1343
    functionDepth: 1
    functionLinenumber: 1343
    functionLinenumberEnd: 1545
    functionName: Botan_Tests::DTLS_Reconnection_Test::run
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Client::received_data
    - Botan::TLS::Server::is_active
    - Botan::SymmetricKey
    - Test::Result::test_failure
    - std::swap
    - std::make_shared<Test_Callbacks>
    - begin
    - Botan::TLS::Server::received_data
    - test_success
    - Test_Error
    - std::vector::data
    - Botan_Tests::DTLS_Reconnection_Test::test_name
    - std::vector<std::string>
    - Botan::TLS::Client::is_active
    - Botan::TLS::Client::send
    - std::make_shared<Credentials_PSK>
    - Botan::TLS::Server_Information
    - std::vector::clear
    - std::vector::empty
    - std::make_shared<Botan::TLS::Session_Manager_In_Memory>
    - Botan::TLS::Server::send
    - std::vector::size
    - Botan::TLS::latest_dtls_version
    - std::make_shared<Botan::TLS::Session_Manager_Noop>
    - std::make_shared<Datagram_PSK_Policy>
    - Test::Result::test_eq
    - end
    - Botan_Tests::Test::new_shared_rng
    - insert
    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: 1347
      start: 1346
    functionDepth: 0
    functionLinenumber: 1346
    functionLinenumberEnd: 1347
    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:1350,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1350,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/unit_tls.cpp:1350,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/unit_tls.cpp:1350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1351
      start: 1349
    functionDepth: 0
    functionLinenumber: 1349
    functionLinenumberEnd: 1351
    functionName: Botan_Tests::DTLS_Reconnection_Test::Test_Callbacks::tls_emit_data
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - end
    - insert
    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:1354,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1354,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/unit_tls.cpp:1354,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/unit_tls.cpp:1354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1355
      start: 1353
    functionDepth: 0
    functionLinenumber: 1353
    functionLinenumberEnd: 1355
    functionName: Botan_Tests::DTLS_Reconnection_Test::Test_Callbacks::tls_record_received
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - end
    - insert
    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: 1359
      start: 1357
    functionDepth: 0
    functionLinenumber: 1357
    functionLinenumberEnd: 1359
    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:1362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1363
      start: 1361
    functionDepth: 0
    functionLinenumber: 1361
    functionLinenumberEnd: 1363
    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:1377,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1381,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1385,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1389,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/unit_tls.cpp:1392,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 2
    argNames:
    - ' type'
    - ' context'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1393
      start: 1373
    functionDepth: 0
    functionLinenumber: 1373
    functionLinenumberEnd: 1393
    functionName: Botan_Tests::DTLS_Reconnection_Test::Credentials_PSK::psk
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::SymmetricKey
    - Test_Error
    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:1398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1398
      start: 1398
    functionDepth: 0
    functionLinenumber: 1398
    functionLinenumberEnd: 1398
    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: 1400
      start: 1400
    functionDepth: 0
    functionLinenumber: 1400
    functionLinenumberEnd: 1400
    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: 1402
      start: 1402
    functionDepth: 0
    functionLinenumber: 1402
    functionLinenumberEnd: 1402
    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: 1404
      start: 1404
    functionDepth: 0
    functionLinenumber: 1404
    functionLinenumberEnd: 1404
    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: 1406
      start: 1406
    functionDepth: 0
    functionLinenumber: 1406
    functionLinenumberEnd: 1406
    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:73,1
    - Dst: auto::add_certificate
      Src: /src/botan/src/tests/unit_tls.cpp:74,1
    - Dst: auto::add_certificate
      Src: /src/botan/src/tests/unit_tls.cpp:75,1
    - Dst: auto::add_crl
      Src: /src/botan/src/tests/unit_tls.cpp:76,1
    - Dst: auto::add_crl
      Src: /src/botan/src/tests/unit_tls.cpp:77,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:79,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:79,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: 80
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 80
    functionName: Botan_Tests::Credentials_Manager_Test::Credentials_Manager_Test
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_unique<Botan::Certificate_Store_In_Memory>
    - auto::add_crl
    - push_back
    - auto::add_certificate
    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:85,1
    - Dst: size
      Src: /src/botan/src/tests/unit_tls.cpp:85,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls.cpp:87,1
    - Dst: get
      Src: /src/botan/src/tests/unit_tls.cpp:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 90
    functionName: Botan_Tests::Credentials_Manager_Test::trusted_certificate_authorities
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - size
    - std::vector::push_back
    - get
    - 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:97,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:100,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls.cpp:107,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls.cpp:108,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls.cpp:111,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls.cpp:112,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: 119
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 119
    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: 131
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 131
    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:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 135
    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:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 139
    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:146,1
    - Dst: Botan_Tests::Credentials_Manager_Test::find_preshared_keys
      Src: /src/botan/src/tests/unit_tls.cpp:147,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/unit_tls.cpp:156,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/unit_tls.cpp:157,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/unit_tls.cpp:161,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/unit_tls.cpp:162,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: 167
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 167
    functionName: Botan_Tests::Credentials_Manager_Test::find_preshared_keys
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 2
    functionsReached:
    - std::vector::emplace_back
    - Botan::hex_decode_locked
    - empty
    - Botan_Tests::Credentials_Manager_Test::find_preshared_keys
    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: 169
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 169
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls.cpp:186,1
    - Dst: std::make_unique<Botan::RSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls.cpp:189,1
    - Dst: std::make_unique<Botan::RSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls.cpp:190,1
    - Dst: std::make_unique<Botan::ECDSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls.cpp:192,1
    - Dst: std::make_unique<Botan::ECDSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls.cpp:193,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/tests/unit_tls.cpp:197,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/tests/unit_tls.cpp:198,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_tls.cpp:201,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_tls.cpp:203,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_tls.cpp:207,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_tls.cpp:208,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/unit_tls.cpp:214,1
    - Dst: years
      Src: /src/botan/src/tests/unit_tls.cpp:217,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_tls.cpp:219,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_tls.cpp:220,1
    - Dst: Botan::X509_CA::new_crl
      Src: /src/botan/src/tests/unit_tls.cpp:222,1
    - Dst: Botan::X509_CA::new_crl
      Src: /src/botan/src/tests/unit_tls.cpp:223,1
    - Dst: std::make_shared<Credentials_Manager_Test>
      Src: /src/botan/src/tests/unit_tls.cpp:225,1
    - Dst: auto::release
      Src: /src/botan/src/tests/unit_tls.cpp:227,1
    - Dst: auto::release
      Src: /src/botan/src/tests/unit_tls.cpp:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 234
    functionName: Botan_Tests::create_creds
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Cert_Options::CA_key
    - std::make_unique<Botan::RSA_PrivateKey>
    - Botan::X509_CA::new_crl
    - Botan::EC_Group::from_name
    - std::make_shared<Credentials_Manager_Test>
    - Botan::TLS::detail::AsyncBase::complete_now
    - std::make_unique<Botan::ECDSA_PrivateKey>
    - Botan::X509::create_cert_req
    - auto::release
    - years
    - Botan::X509_CA::sign_request
    - Botan::X509::create_self_signed_cert
    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:264,1
    - Dst: std::make_shared<Test_Callbacks>
      Src: /src/botan/src/tests/unit_tls.cpp:265,1
    - Dst: Botan::TLS::Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/tests/unit_tls.cpp:267,1
    - Dst: std::make_unique<Botan::TLS::Server>
      Src: /src/botan/src/tests/unit_tls.cpp:270,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: 271
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 271
    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: 275
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 275
    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: 277
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 277
    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:281,1
    - Dst: set_custom_tls_session_established_callback
      Src: /src/botan/src/tests/unit_tls.cpp:282,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:282,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: 283
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 283
    functionName: Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_session_established_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - set_custom_tls_session_established_callback
    - BOTAN_ASSERT_NONNULL
    - std::move
    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:287,1
    - Dst: set_custom_tls_session_established_callback
      Src: /src/botan/src/tests/unit_tls.cpp:288,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:288,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: 289
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 289
    functionName: Botan_Tests::TLS_Handshake_Test::set_custom_server_tls_session_established_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - set_custom_tls_session_established_callback
    - BOTAN_ASSERT_NONNULL
    - std::move
    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:292,1
    - Dst: Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_generate_ephemeral_ecdh_key_callback
      Src: /src/botan/src/tests/unit_tls.cpp:293,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - generate_ephemeral_ecdh_key_clbk
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 294
    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_ASSERT_NONNULL
    - Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_generate_ephemeral_ecdh_key_callback
    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:297,1
    - Dst: Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_ephemeral_key_agreement_callback
      Src: /src/botan/src/tests/unit_tls.cpp:298,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - ephemeral_key_agreement_clbk
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 299
    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_ASSERT_NONNULL
    - Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_ephemeral_key_agreement_callback
    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:302,1
    - Dst: set_expected_handshake_alert
      Src: /src/botan/src/tests/unit_tls.cpp:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: Botan_Tests::TLS_Handshake_Test::set_client_expected_handshake_alert
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - set_expected_handshake_alert
    - BOTAN_ASSERT_NONNULL
    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:307,1
    - Dst: set_expected_handshake_alert
      Src: /src/botan/src/tests/unit_tls.cpp:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 309
    functionName: Botan_Tests::TLS_Handshake_Test::set_server_expected_handshake_alert
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - set_expected_handshake_alert
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: void
    signature: void set_server_expected_handshake_alert(Botan::TLS::Alert alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Botan::TLS::Extension_Code>
      Src: /src/botan/src/tests/unit_tls.cpp:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 317
    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:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 319
    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: 321
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 321
    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: 323
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 323
    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: 325
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 325
    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: Botan::TLS::append_tls_length_value
      Src: /src/botan/src/tests/unit_tls.cpp:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - side
    argTypes:
    - Botan::TLS::Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 333
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Extension::Test_Extension
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::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: 345
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 345
    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: 347
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 347
    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: 348
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 348
    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: 349
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 349
    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: 350
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 350
    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:353,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:354,1
    - Dst: type_string
      Src: /src/botan/src/tests/unit_tls.cpp:354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 357
    functionName: ~Test_Callbacks() override
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - has_value
    - type_string
    - test_failure
    linkageType: ''
    returnType: void
    signature: void ~Test_Callbacks() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/tests/unit_tls.cpp:360,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:360,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/unit_tls.cpp:360,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/unit_tls.cpp:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 361
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_emit_data
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - end
    - insert
    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:364,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:364,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/unit_tls.cpp:364,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/unit_tls.cpp:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 365
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_record_received
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - end
    - insert
    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:370,1
    - Dst: type
      Src: /src/botan/src/tests/unit_tls.cpp:371,1
    - Dst: Botan::TLS::Alert::type
      Src: /src/botan/src/tests/unit_tls.cpp:371,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:372,1
    - Dst: Botan::TLS::Alert::type_string
      Src: /src/botan/src/tests/unit_tls.cpp:372,1
    - Dst: type_string
      Src: /src/botan/src/tests/unit_tls.cpp:373,1
    - Dst: test_note
      Src: /src/botan/src/tests/unit_tls.cpp:376,1
    - Dst: type_string
      Src: /src/botan/src/tests/unit_tls.cpp:376,1
    - Dst: reset
      Src: /src/botan/src/tests/unit_tls.cpp:377,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 380
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_alert
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Alert::type
    - test_failure
    - type_string
    - Botan::TLS::Alert::type_string
    - type
    - has_value
    - reset
    - 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:385,1
    - Dst: Test_Extension::Test_Extension
      Src: /src/botan/src/tests/unit_tls.cpp:385,1
    - Dst: take
      Src: /src/botan/src/tests/unit_tls.cpp:388,1
    - Dst: auto::supported_schemes
      Src: /src/botan/src/tests/unit_tls.cpp:389,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/unit_tls.cpp:391,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/unit_tls.cpp:391,1
    - Dst: add
      Src: /src/botan/src/tests/unit_tls.cpp:393,1
    - Dst: Botan::TLS::Signature_Algorithms::Signature_Algorithms
      Src: /src/botan/src/tests/unit_tls.cpp:393,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: 395
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 395
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_modify_extensions
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - Test_Extension::Test_Extension
    - Botan::TLS::Signature_Algorithms::Signature_Algorithms
    - add
    - take
    - auto::supported_schemes
    - std::vector::insert
    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:401,1
    - Dst: get
      Src: /src/botan/src/tests/unit_tls.cpp:402,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:405,1
    - Dst: dynamic_cast<Botan::TLS::Unknown_Extension*>
      Src: /src/botan/src/tests/unit_tls.cpp:407,1
    - Dst: Botan::TLS::Unknown_Extension*::value
      Src: /src/botan/src/tests/unit_tls.cpp:410,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:412,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:412,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:414,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:416,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:420,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: 423
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 423
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_examine_extensions
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - dynamic_cast<Botan::TLS::Unknown_Extension*>
    - Botan::TLS::Unknown_Extension*::value
    - test_failure
    - get
    - std::vector::size
    - static_cast<Botan::TLS::Extension_Code>
    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:426,1
    - Dst: ciphersuite
      Src: /src/botan/src/tests/unit_tls.cpp:427,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_tls.cpp:428,1
    - Dst: session_id
      Src: /src/botan/src/tests/unit_tls.cpp:428,1
    - Dst: test_note
      Src: /src/botan/src/tests/unit_tls.cpp:430,1
    - Dst: m_session_established_callback
      Src: /src/botan/src/tests/unit_tls.cpp:433,1
    - Dst: version
      Src: /src/botan/src/tests/unit_tls.cpp:436,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:437,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:437,1
    - Dst: version
      Src: /src/botan/src/tests/unit_tls.cpp:438,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Botan::TLS::Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 440
    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
    - session_id
    - to_string
    - test_failure
    - m_session_established_callback
    - version
    - ciphersuite
    - test_note
    linkageType: ''
    returnType: void
    signature: void tls_session_established(const Botan::TLS::Session_Summary& session)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:443,1
    - Dst: size
      Src: /src/botan/src/tests/unit_tls.cpp:443,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:444,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' protos'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 447
    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_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:452,1
    - Dst: std::get<Botan::TLS::Group_Params>
      Src: /src/botan/src/tests/unit_tls.cpp:453,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls.cpp:454,1
    - Dst: std::make_unique<Botan::ECDH_PrivateKey>
      Src: /src/botan/src/tests/unit_tls.cpp:455,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_generate_ephemeral_key
      Src: /src/botan/src/tests/unit_tls.cpp:458,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: 459
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 459
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_generate_ephemeral_key
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 2
    functionsReached:
    - Botan::EC_Group::from_name
    - std::holds_alternative<Botan::TLS::Group_Params>
    - std::get<Botan::TLS::Group_Params>
    - std::make_unique<Botan::ECDH_PrivateKey>
    - Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_generate_ephemeral_key
    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:466,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls12_generate_ephemeral_ecdh_key
      Src: /src/botan/src/tests/unit_tls.cpp:469,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: 471
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 471
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls12_generate_ephemeral_ecdh_key
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 2
    functionsReached:
    - m_generate_ephemeral_ecdh_key_callback
    - Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls12_generate_ephemeral_ecdh_key
    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:480,1
    - Dst: std::holds_alternative<Botan::TLS::Group_Params>
      Src: /src/botan/src/tests/unit_tls.cpp:483,1
    - Dst: std::get<Botan::TLS::Group_Params>
      Src: /src/botan/src/tests/unit_tls.cpp:484,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls.cpp:485,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/unit_tls.cpp:486,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/unit_tls.cpp:489,1
    - Dst: Botan::ECDH_PublicKey::public_value
      Src: /src/botan/src/tests/unit_tls.cpp:489,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_ephemeral_key_agreement
      Src: /src/botan/src/tests/unit_tls.cpp:492,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: 493
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 493
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_ephemeral_key_agreement
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 2
    functionsReached:
    - Botan::EC_AffinePoint::EC_AffinePoint
    - Botan::PK_Key_Agreement::derive_key
    - Botan::EC_Group::from_name
    - m_ephemeral_key_agreement_callback
    - std::holds_alternative<Botan::TLS::Group_Params>
    - Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_ephemeral_key_agreement
    - std::get<Botan::TLS::Group_Params>
    - Botan::ECDH_PublicKey::public_value
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:497,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: 498
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 498
    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:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - generate_ephemeral_ecdh_key_clbk
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 502
    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:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - ephemeral_key_agreement_clbk
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 506
    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: 508
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 508
    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: 14
    BranchProfiles: []
    Callsites:
    - Dst: start_timer
      Src: /src/botan/src/tests/unit_tls.cpp:541,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/unit_tls.cpp:546,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:546,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:546,1
    - Dst: randomize
      Src: /src/botan/src/tests/unit_tls.cpp:548,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:548,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:548,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/unit_tls.cpp:551,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:551,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:551,1
    - Dst: randomize
      Src: /src/botan/src/tests/unit_tls.cpp:553,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:553,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:553,1
    - Dst: std::make_unique<Botan::TLS::Client>
      Src: /src/botan/src/tests/unit_tls.cpp:557,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/unit_tls.cpp:562,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:575,1
    - Dst: std::unique_ptr::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:579,1
    - Dst: is_active
      Src: /src/botan/src/tests/unit_tls.cpp:583,1
    - Dst: std::unique_ptr::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:587,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:588,1
    - Dst: std::unique_ptr::application_protocol
      Src: /src/botan/src/tests/unit_tls.cpp:588,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:591,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:592,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:593,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:593,1
    - Dst: min
      Src: /src/botan/src/tests/unit_tls.cpp:594,1
    - Dst: std::unique_ptr::send
      Src: /src/botan/src/tests/unit_tls.cpp:596,1
    - Dst: std::unique_ptr::send_warning_alert
      Src: /src/botan/src/tests/unit_tls.cpp:599,1
    - Dst: is_active
      Src: /src/botan/src/tests/unit_tls.cpp:603,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:604,1
    - Dst: application_protocol
      Src: /src/botan/src/tests/unit_tls.cpp:604,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:607,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:608,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:609,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:609,1
    - Dst: min
      Src: /src/botan/src/tests/unit_tls.cpp:610,1
    - Dst: send
      Src: /src/botan/src/tests/unit_tls.cpp:612,1
    - Dst: send_warning_alert
      Src: /src/botan/src/tests/unit_tls.cpp:616,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:620,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:627,1
    - Dst: received_data
      Src: /src/botan/src/tests/unit_tls.cpp:630,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:630,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:630,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:631,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:638,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:640,1
    - Dst: std::unique_ptr::received_data
      Src: /src/botan/src/tests/unit_tls.cpp:643,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:643,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:643,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:644,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:651,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:652,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:655,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:656,1
    - Dst: std::unique_ptr::is_closed
      Src: /src/botan/src/tests/unit_tls.cpp:659,1
    - Dst: is_closed
      Src: /src/botan/src/tests/unit_tls.cpp:659,1
    - Dst: is_active
      Src: /src/botan/src/tests/unit_tls.cpp:663,1
    - Dst: peer_cert_chain
      Src: /src/botan/src/tests/unit_tls.cpp:664,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:666,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:666,1
    - Dst: get_acceptable_cas
      Src: /src/botan/src/tests/unit_tls.cpp:668,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:670,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:670,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:673,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_tls.cpp:673,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:676,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:676,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:680,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:680,1
    - Dst: std::unique_ptr::key_material_export
      Src: /src/botan/src/tests/unit_tls.cpp:681,1
    - Dst: key_material_export
      Src: /src/botan/src/tests/unit_tls.cpp:682,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:684,1
    - Dst: Botan::SymmetricKey::bits_of
      Src: /src/botan/src/tests/unit_tls.cpp:684,1
    - Dst: Botan::SymmetricKey::bits_of
      Src: /src/botan/src/tests/unit_tls.cpp:684,1
    - Dst: confirm
      Src: /src/botan/src/tests/unit_tls.cpp:686,1
    - Dst: std::unique_ptr::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:686,1
    - Dst: confirm
      Src: /src/botan/src/tests/unit_tls.cpp:687,1
    - Dst: std::unique_ptr::is_closed
      Src: /src/botan/src/tests/unit_tls.cpp:687,1
    - Dst: std::unique_ptr::close
      Src: /src/botan/src/tests/unit_tls.cpp:688,1
    - Dst: confirm
      Src: /src/botan/src/tests/unit_tls.cpp:689,1
    - Dst: std::unique_ptr::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:689,1
    - Dst: confirm
      Src: /src/botan/src/tests/unit_tls.cpp:690,1
    - Dst: std::unique_ptr::is_closed
      Src: /src/botan/src/tests/unit_tls.cpp:690,1
    - Dst: end_timer
      Src: /src/botan/src/tests/unit_tls.cpp:694,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 80
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 540
    functionDepth: 1
    functionLinenumber: 540
    functionLinenumberEnd: 695
    functionName: Botan_Tests::TLS_Handshake_Test::go
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - static_cast<size_t>
    - randomize
    - std::unique_ptr::send_warning_alert
    - std::unique_ptr::send
    - std::swap
    - test_failure
    - send_warning_alert
    - std::unique_ptr::application_protocol
    - is_active
    - Botan::SymmetricKey::bits_of
    - std::unique_ptr::received_data
    - end_timer
    - min
    - send
    - std::vector::data
    - get_acceptable_cas
    - confirm
    - std::unique_ptr::key_material_export
    - is_closed
    - next_byte
    - Botan::TLS::Server_Information
    - get_first_attribute
    - key_material_export
    - received_data
    - std::vector::size
    - std::unique_ptr::is_closed
    - std::unique_ptr::close
    - application_protocol
    - start_timer
    - std::unique_ptr::is_active
    - empty
    - peer_cert_chain
    - std::make_unique<Botan::TLS::Client>
    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: 699
      start: 699
    functionDepth: 0
    functionLinenumber: 699
    functionLinenumberEnd: 699
    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:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - version
    argTypes:
    - Botan::TLS::Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 701
    functionDepth: 1
    functionLinenumber: 701
    functionLinenumberEnd: 704
    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: 706
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 706
    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: 708
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 708
    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: 710
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 710
    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: 712
      start: 712
    functionDepth: 0
    functionLinenumber: 712
    functionLinenumberEnd: 712
    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:737,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: 737
      start: 736
    functionDepth: 0
    functionLinenumber: 736
    functionLinenumberEnd: 737
    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: 739
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 739
    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:741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 741
    functionDepth: 0
    functionLinenumber: 741
    functionLinenumberEnd: 741
    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: 745
      start: 743
    functionDepth: 0
    functionLinenumber: 743
    functionLinenumberEnd: 745
    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: 747
      start: 747
    functionDepth: 0
    functionLinenumber: 747
    functionLinenumberEnd: 747
    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&, bool) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_p
      Src: /src/botan/src/tests/unit_tls.cpp:749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 749
    functionDepth: 0
    functionLinenumber: 749
    functionLinenumberEnd: 749
    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: 751
      start: 751
    functionDepth: 0
    functionLinenumber: 751
    functionLinenumberEnd: 751
    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:754,1
    - Dst: Invalid_State
      Src: /src/botan/src/tests/unit_tls.cpp:755,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 753
    functionDepth: 1
    functionLinenumber: 753
    functionLinenumberEnd: 758
    functionName: Botan_Tests::HardwareEcdhKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 3
    functionsReached:
    - empty
    - Invalid_State
    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:760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 760
    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:763,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 762
    functionDepth: 1
    functionLinenumber: 762
    functionLinenumberEnd: 764
    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:767,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/unit_tls.cpp:767,1
    - Dst: Botan_Tests::HardwareEcdhKey::raw_public_key_bits
      Src: /src/botan/src/tests/unit_tls.cpp:767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 766
    functionDepth: 1
    functionLinenumber: 766
    functionLinenumberEnd: 768
    functionName: Botan_Tests::HardwareEcdhKey::public_key
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::ECDH_PublicKey>
    - Botan_Tests::HardwareEcdhKey::raw_public_key_bits
    - Botan::EC_AffinePoint::EC_AffinePoint
    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:771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 772
    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&)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::HardwareEcdhKey::raw_public_key_bits
      Src: /src/botan/src/tests/unit_tls.cpp:774,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 774
    functionDepth: 0
    functionLinenumber: 774
    functionLinenumberEnd: 774
    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: ECDH_PrivateKey
      Src: /src/botan/src/tests/unit_tls.cpp:782,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/unit_tls.cpp:784,1
    - Dst: auto::public_value
      Src: /src/botan/src/tests/unit_tls.cpp:785,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: 787
      start: 776
    functionDepth: 1
    functionLinenumber: 776
    functionLinenumberEnd: 787
    functionName: Botan_Tests::HardwareEcdhKey::custom_ephemeral_agreement
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::PK_Key_Agreement::derive_key
    - auto::public_value
    - ECDH_PrivateKey
    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:808,1
    - Dst: TLS_Handshake_Test::go
      Src: /src/botan/src/tests/unit_tls.cpp:817,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:818,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:818,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:820,1
    - Dst: TLS_Handshake_Test::go
      Src: /src/botan/src/tests/unit_tls.cpp:829,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:830,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:830,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:833,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/unit_tls.cpp:833,1
    - Dst: what
      Src: /src/botan/src/tests/unit_tls.cpp:833,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: 835
      start: 797
    functionDepth: 1
    functionLinenumber: 797
    functionLinenumberEnd: 835
    functionName: Botan_Tests::TLS_Unit_Tests::test_with_policy
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 3
    functionsReached:
    - to_string
    - TLS_Handshake_Test::go
    - push_back
    - Botan_Tests::Test::Result::Failure
    - TLS_Handshake_Test::results
    - what
    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:848,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:849,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:850,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:851,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:852,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:854,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:855,1
    - Dst: find
      Src: /src/botan/src/tests/unit_tls.cpp:857,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:858,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_with_policy
      Src: /src/botan/src/tests/unit_tls.cpp:864,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: 866
      start: 837
    functionDepth: 2
    functionLinenumber: 837
    functionLinenumberEnd: 866
    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
    - find
    - Botan_Tests::TLS_Unit_Tests::test_with_policy
    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:879,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: 890
      start: 868
    functionDepth: 1
    functionLinenumber: 868
    functionLinenumberEnd: 890
    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:903,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:904,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:905,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:906,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:907,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:908,1
    - Dst: find
      Src: /src/botan/src/tests/unit_tls.cpp:910,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:911,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:915,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_with_policy
      Src: /src/botan/src/tests/unit_tls.cpp:921,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: 923
      start: 892
    functionDepth: 2
    functionLinenumber: 892
    functionLinenumberEnd: 923
    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
    - find
    - Botan_Tests::TLS_Unit_Tests::test_with_policy
    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:931,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_Noop>
      Src: /src/botan/src/tests/unit_tls.cpp:932,1
    - Dst: type_string
      Src: /src/botan/src/tests/unit_tls.cpp:937,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:937,1
    - Dst: TLS_Handshake_Test::set_custom_client_tls_session_established_callback
      Src: /src/botan/src/tests/unit_tls.cpp:946,1
    - Dst: std::rethrow_exception
      Src: /src/botan/src/tests/unit_tls.cpp:947,1
    - Dst: TLS_Handshake_Test::set_server_expected_handshake_alert
      Src: /src/botan/src/tests/unit_tls.cpp:948,1
    - Dst: TLS_Handshake_Test::go
      Src: /src/botan/src/tests/unit_tls.cpp:950,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:951,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:951,1
    - Dst: type_string
      Src: /src/botan/src/tests/unit_tls.cpp:958,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:958,1
    - Dst: TLS_Handshake_Test::set_custom_server_tls_session_established_callback
      Src: /src/botan/src/tests/unit_tls.cpp:967,1
    - Dst: std::rethrow_exception
      Src: /src/botan/src/tests/unit_tls.cpp:968,1
    - Dst: TLS_Handshake_Test::set_client_expected_handshake_alert
      Src: /src/botan/src/tests/unit_tls.cpp:969,1
    - Dst: TLS_Handshake_Test::go
      Src: /src/botan/src/tests/unit_tls.cpp:971,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:972,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:972,1
    - Dst: client_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:976,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:976,1
    - Dst: TLS_Exception
      Src: /src/botan/src/tests/unit_tls.cpp:977,1
    - Dst: client_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:979,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:979,1
    - Dst: Botan::Invalid_Authentication_Tag::Invalid_Authentication_Tag
      Src: /src/botan/src/tests/unit_tls.cpp:979,1
    - Dst: client_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:981,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:981,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/unit_tls.cpp:981,1
    - Dst: server_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:984,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:984,1
    - Dst: TLS_Exception
      Src: /src/botan/src/tests/unit_tls.cpp:985,1
    - Dst: server_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:987,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:987,1
    - Dst: Botan::Invalid_Authentication_Tag::Invalid_Authentication_Tag
      Src: /src/botan/src/tests/unit_tls.cpp:988,1
    - Dst: server_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:990,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:990,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/unit_tls.cpp:990,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: 992
      start: 925
    functionDepth: 1
    functionLinenumber: 925
    functionLinenumberEnd: 992
    functionName: Botan_Tests::TLS_Unit_Tests::test_session_established_abort
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 1
    functionsReached:
    - TLS_Handshake_Test::set_server_expected_handshake_alert
    - TLS_Handshake_Test::results
    - server_aborts
    - TLS_Handshake_Test::set_custom_client_tls_session_established_callback
    - std::runtime_error
    - TLS_Exception
    - std::make_exception_ptr
    - to_string
    - TLS_Handshake_Test::set_custom_server_tls_session_established_callback
    - client_aborts
    - TLS_Handshake_Test::go
    - push_back
    - Botan::Invalid_Authentication_Tag::Invalid_Authentication_Tag
    - type_string
    - TLS_Handshake_Test::set_client_expected_handshake_alert
    - std::make_shared<Botan::TLS::Session_Manager_Noop>
    - std::make_shared<Test_Policy>
    - std::rethrow_exception
    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:997,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_tls.cpp:1006,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:1006,1
    - Dst: std::make_shared<Test_Policy>
      Src: /src/botan/src/tests/unit_tls.cpp:1010,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:1011,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_tls.cpp:1011,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/unit_tls.cpp:1011,1
    - Dst: wire_code
      Src: /src/botan/src/tests/unit_tls.cpp:1011,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:1014,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1024,1
    - Dst: TLS_Handshake_Test::set_custom_client_tls_generate_ephemeral_ecdh_key_callback
      Src: /src/botan/src/tests/unit_tls.cpp:1029,1
    - Dst: require
      Src: /src/botan/src/tests/unit_tls.cpp:1034,1
    - Dst: is_ecdh_named_curve
      Src: /src/botan/src/tests/unit_tls.cpp:1035,1
    - Dst: std::make_unique<HardwareEcdhKey>
      Src: /src/botan/src/tests/unit_tls.cpp:1036,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls.cpp:1036,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:1036,1
    - Dst: TLS_Handshake_Test::set_custom_client_tls_ephemeral_key_agreement_callback
      Src: /src/botan/src/tests/unit_tls.cpp:1040,1
    - Dst: std::get_if<Botan::TLS::Group_Params>
      Src: /src/botan/src/tests/unit_tls.cpp:1048,1
    - Dst: require
      Src: /src/botan/src/tests/unit_tls.cpp:1049,1
    - Dst: require
      Src: /src/botan/src/tests/unit_tls.cpp:1051,1
    - Dst: auto*::is_ecdh_named_curve
      Src: /src/botan/src/tests/unit_tls.cpp:1052,1
    - Dst: dynamic_cast<const HardwareEcdhKey*>
      Src: /src/botan/src/tests/unit_tls.cpp:1054,1
    - Dst: require
      Src: /src/botan/src/tests/unit_tls.cpp:1055,1
    - Dst: auto*::custom_ephemeral_agreement
      Src: /src/botan/src/tests/unit_tls.cpp:1058,1
    - Dst: TLS_Handshake_Test::go
      Src: /src/botan/src/tests/unit_tls.cpp:1061,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1062,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1063,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:1064,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1064,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: 1066
      start: 994
    functionDepth: 1
    functionLinenumber: 994
    functionLinenumberEnd: 1066
    functionName: Botan_Tests::TLS_Unit_Tests::test_custom_ecdh_provider
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 1
    functionsReached:
    - is_ecdh_named_curve
    - Botan::hex_encode
    - TLS_Handshake_Test::set_custom_client_tls_generate_ephemeral_ecdh_key_callback
    - auto*::is_ecdh_named_curve
    - push_back
    - dynamic_cast<const HardwareEcdhKey*>
    - TLS_Handshake_Test::results
    - auto*::custom_ephemeral_agreement
    - auto::set
    - require
    - std::make_shared<Test_Policy>
    - std::make_unique<HardwareEcdhKey>
    - Botan::EC_Group::supports_named_group
    - TLS_Handshake_Test::set_custom_client_tls_ephemeral_key_agreement_callback
    - Botan::EC_Group::from_name
    - to_string
    - Botan::store_be
    - TLS_Handshake_Test::go
    - std::get_if<Botan::TLS::Group_Params>
    - std::make_shared<Botan::TLS::Session_Manager_Noop>
    - wire_code
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_shared_rng
      Src: /src/botan/src/tests/unit_tls.cpp:1072,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_name
      Src: /src/botan/src/tests/unit_tls.cpp:1072,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_SQLite>
      Src: /src/botan/src/tests/unit_tls.cpp:1078,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_SQLite>
      Src: /src/botan/src/tests/unit_tls.cpp:1079,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/unit_tls.cpp:1083,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/unit_tls.cpp:1087,1
    - Dst: create_creds
      Src: /src/botan/src/tests/unit_tls.cpp:1090,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_all_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1094,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_all_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1104,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_all_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1116,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_all_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1118,1
    - Dst: std::shared_ptr::remove_all
      Src: /src/botan/src/tests/unit_tls.cpp:1122,1
    - Dst: std::shared_ptr::remove_all
      Src: /src/botan/src/tests/unit_tls.cpp:1124,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1126,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1131,1
    - Dst: std::make_shared<Botan::TLS::Strict_Policy_Without_TLS13>
      Src: /src/botan/src/tests/unit_tls.cpp:1134,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_with_policy
      Src: /src/botan/src/tests/unit_tls.cpp:1135,1
    - Dst: std::make_shared<Botan::TLS::NSA_Suite_B_128>
      Src: /src/botan/src/tests/unit_tls.cpp:1144,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_with_policy
      Src: /src/botan/src/tests/unit_tls.cpp:1145,1
    - Dst: std::shared_ptr::remove_all
      Src: /src/botan/src/tests/unit_tls.cpp:1155,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1157,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1158,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1160,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1171,1
    - Dst: std::shared_ptr::remove_all
      Src: /src/botan/src/tests/unit_tls.cpp:1182,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1185,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1190,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1194,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1204,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1214,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1226,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1238,1
    - Dst: create_creds
      Src: /src/botan/src/tests/unit_tls.cpp:1249,1
    - Dst: std::shared_ptr::remove_all
      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:1252,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/unit_tls.cpp:1264,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/unit_tls.cpp:1265,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1269,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:1280,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1283,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1284,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1288,1
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/unit_tls.cpp:1293,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/unit_tls.cpp:1307,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1312,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_session_established_abort
      Src: /src/botan/src/tests/unit_tls.cpp:1327,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_custom_ecdh_provider
      Src: /src/botan/src/tests/unit_tls.cpp:1333,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1336
      start: 1069
    functionDepth: 3
    functionLinenumber: 1069
    functionLinenumberEnd: 1336
    functionName: Botan_Tests::TLS_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::TLS_Unit_Tests::test_custom_ecdh_provider
    - Botan_Tests::TLS_Unit_Tests::test_all_versions
    - Botan_Tests::TLS_Unit_Tests::test_modern_versions
    - std::shared_ptr::remove_all
    - std::make_shared<Botan::TLS::NSA_Suite_B_128>
    - Botan::EC_Group::supports_application_specific_group
    - Botan_Tests::TLS_Unit_Tests::test_name
    - std::make_shared<Botan::TLS::Session_Manager_In_Memory>
    - Botan_Tests::Test::new_shared_rng
    - create_creds
    - std::make_shared<Botan::TLS::Session_Manager_SQLite>
    - Botan::OID::register_oid
    - std::make_shared<Botan::TLS::Strict_Policy_Without_TLS13>
    - Botan_Tests::TLS_Unit_Tests::test_session_established_abort
    - Botan_Tests::TLS_Unit_Tests::test_with_policy
    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:1350,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1350,1
    - Dst: begin
      Src: /src/botan/src/tests/unit_tls.cpp:1350,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1350,1
    - Dst: insert
      Src: /src/botan/src/tests/unit_tls.cpp:1354,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1354,1
    - Dst: begin
      Src: /src/botan/src/tests/unit_tls.cpp:1354,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1354,1
    - Dst: test_success
      Src: /src/botan/src/tests/unit_tls.cpp:1362,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1377,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1381,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1385,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1389,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/unit_tls.cpp:1392,1
    - Dst: std::vector<std::string>
      Src: /src/botan/src/tests/unit_tls.cpp:1398,1
    - Dst: Botan_Tests::Test::new_shared_rng
      Src: /src/botan/src/tests/unit_tls.cpp:1411,1
    - Dst: Botan_Tests::DTLS_Reconnection_Test::test_name
      Src: /src/botan/src/tests/unit_tls.cpp:1411,1
    - Dst: std::make_shared<Datagram_PSK_Policy>
      Src: /src/botan/src/tests/unit_tls.cpp:1413,1
    - Dst: std::make_shared<Datagram_PSK_Policy>
      Src: /src/botan/src/tests/unit_tls.cpp:1414,1
    - Dst: std::make_shared<Credentials_PSK>
      Src: /src/botan/src/tests/unit_tls.cpp:1415,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/unit_tls.cpp:1416,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_Noop>
      Src: /src/botan/src/tests/unit_tls.cpp:1417,1
    - Dst: std::make_shared<Test_Callbacks>
      Src: /src/botan/src/tests/unit_tls.cpp:1421,1
    - Dst: std::make_shared<Test_Callbacks>
      Src: /src/botan/src/tests/unit_tls.cpp:1426,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/unit_tls.cpp:1432,1
    - Dst: Botan::TLS::latest_dtls_version
      Src: /src/botan/src/tests/unit_tls.cpp:1433,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:1446,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1450,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:1452,1
    - Dst: Botan::TLS::Server::received_data
      Src: /src/botan/src/tests/unit_tls.cpp:1453,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:1453,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:1453,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1457,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:1459,1
    - Dst: Botan::TLS::Client::received_data
      Src: /src/botan/src/tests/unit_tls.cpp:1460,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:1460,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:1460,1
    - Dst: Botan::TLS::Client::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:1464,1
    - Dst: Botan::TLS::Client::send
      Src: /src/botan/src/tests/unit_tls.cpp:1465,1
    - Dst: Botan::TLS::Server::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:1469,1
    - Dst: Botan::TLS::Server::send
      Src: /src/botan/src/tests/unit_tls.cpp:1470,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1473,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1473,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:1474,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:1475,1
    - Dst: std::vector::clear
      Src: /src/botan/src/tests/unit_tls.cpp:1484,1
    - Dst: std::vector::clear
      Src: /src/botan/src/tests/unit_tls.cpp:1485,1
    - Dst: std::make_shared<Test_Callbacks>
      Src: /src/botan/src/tests/unit_tls.cpp:1489,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/unit_tls.cpp:1495,1
    - Dst: Botan::TLS::latest_dtls_version
      Src: /src/botan/src/tests/unit_tls.cpp:1496,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:1510,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1514,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:1516,1
    - Dst: Botan::TLS::Server::received_data
      Src: /src/botan/src/tests/unit_tls.cpp:1517,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:1517,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:1517,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1521,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:1523,1
    - Dst: Botan::TLS::Client::received_data
      Src: /src/botan/src/tests/unit_tls.cpp:1524,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:1524,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:1524,1
    - Dst: Botan::TLS::Client::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:1528,1
    - Dst: Botan::TLS::Client::send
      Src: /src/botan/src/tests/unit_tls.cpp:1529,1
    - Dst: Botan::TLS::Server::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:1533,1
    - Dst: Botan::TLS::Server::send
      Src: /src/botan/src/tests/unit_tls.cpp:1534,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1537,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1537,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:1538,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:1539,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 94
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1545
      start: 1343
    functionDepth: 1
    functionLinenumber: 1343
    functionLinenumberEnd: 1545
    functionName: Botan_Tests::DTLS_Reconnection_Test::run
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Client::received_data
    - Botan::TLS::Server::is_active
    - Botan::SymmetricKey
    - Test::Result::test_failure
    - std::swap
    - std::make_shared<Test_Callbacks>
    - begin
    - Botan::TLS::Server::received_data
    - test_success
    - Test_Error
    - std::vector::data
    - Botan_Tests::DTLS_Reconnection_Test::test_name
    - std::vector<std::string>
    - Botan::TLS::Client::is_active
    - Botan::TLS::Client::send
    - std::make_shared<Credentials_PSK>
    - Botan::TLS::Server_Information
    - std::vector::clear
    - std::vector::empty
    - std::make_shared<Botan::TLS::Session_Manager_In_Memory>
    - Botan::TLS::Server::send
    - std::vector::size
    - Botan::TLS::latest_dtls_version
    - std::make_shared<Botan::TLS::Session_Manager_Noop>
    - std::make_shared<Datagram_PSK_Policy>
    - Test::Result::test_eq
    - end
    - Botan_Tests::Test::new_shared_rng
    - insert
    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: 1347
      start: 1346
    functionDepth: 0
    functionLinenumber: 1346
    functionLinenumberEnd: 1347
    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:1350,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1350,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/unit_tls.cpp:1350,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/unit_tls.cpp:1350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1351
      start: 1349
    functionDepth: 0
    functionLinenumber: 1349
    functionLinenumberEnd: 1351
    functionName: Botan_Tests::DTLS_Reconnection_Test::Test_Callbacks::tls_emit_data
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - end
    - insert
    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:1354,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1354,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/unit_tls.cpp:1354,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/unit_tls.cpp:1354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1355
      start: 1353
    functionDepth: 0
    functionLinenumber: 1353
    functionLinenumberEnd: 1355
    functionName: Botan_Tests::DTLS_Reconnection_Test::Test_Callbacks::tls_record_received
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - end
    - insert
    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: 1359
      start: 1357
    functionDepth: 0
    functionLinenumber: 1357
    functionLinenumberEnd: 1359
    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:1362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1363
      start: 1361
    functionDepth: 0
    functionLinenumber: 1361
    functionLinenumberEnd: 1363
    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:1377,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1381,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1385,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1389,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/unit_tls.cpp:1392,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 2
    argNames:
    - ' type'
    - ' context'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1393
      start: 1373
    functionDepth: 0
    functionLinenumber: 1373
    functionLinenumberEnd: 1393
    functionName: Botan_Tests::DTLS_Reconnection_Test::Credentials_PSK::psk
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::SymmetricKey
    - Test_Error
    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:1398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1398
      start: 1398
    functionDepth: 0
    functionLinenumber: 1398
    functionLinenumberEnd: 1398
    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: 1400
      start: 1400
    functionDepth: 0
    functionLinenumber: 1400
    functionLinenumberEnd: 1400
    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: 1402
      start: 1402
    functionDepth: 0
    functionLinenumber: 1402
    functionLinenumberEnd: 1402
    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: 1404
      start: 1404
    functionDepth: 0
    functionLinenumber: 1404
    functionLinenumberEnd: 1404
    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: 1406
      start: 1406
    functionDepth: 0
    functionLinenumber: 1406
    functionLinenumberEnd: 1406
    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:73,1
    - Dst: auto::add_certificate
      Src: /src/botan/src/tests/unit_tls.cpp:74,1
    - Dst: auto::add_certificate
      Src: /src/botan/src/tests/unit_tls.cpp:75,1
    - Dst: auto::add_crl
      Src: /src/botan/src/tests/unit_tls.cpp:76,1
    - Dst: auto::add_crl
      Src: /src/botan/src/tests/unit_tls.cpp:77,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:79,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:79,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: 80
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 80
    functionName: Botan_Tests::Credentials_Manager_Test::Credentials_Manager_Test
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_unique<Botan::Certificate_Store_In_Memory>
    - auto::add_crl
    - push_back
    - auto::add_certificate
    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:85,1
    - Dst: size
      Src: /src/botan/src/tests/unit_tls.cpp:85,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls.cpp:87,1
    - Dst: get
      Src: /src/botan/src/tests/unit_tls.cpp:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 90
    functionName: Botan_Tests::Credentials_Manager_Test::trusted_certificate_authorities
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - size
    - std::vector::push_back
    - get
    - 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:97,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:100,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls.cpp:107,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls.cpp:108,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls.cpp:111,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls.cpp:112,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: 119
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 119
    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: 131
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 131
    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:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 135
    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:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 139
    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:146,1
    - Dst: Botan_Tests::Credentials_Manager_Test::find_preshared_keys
      Src: /src/botan/src/tests/unit_tls.cpp:147,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/unit_tls.cpp:156,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/unit_tls.cpp:157,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/unit_tls.cpp:161,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/unit_tls.cpp:162,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: 167
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 167
    functionName: Botan_Tests::Credentials_Manager_Test::find_preshared_keys
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 3
    functionsReached:
    - std::vector::emplace_back
    - Botan::hex_decode_locked
    - empty
    - Botan_Tests::Credentials_Manager_Test::find_preshared_keys
    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: 169
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 169
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls.cpp:186,1
    - Dst: std::make_unique<Botan::RSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls.cpp:189,1
    - Dst: std::make_unique<Botan::RSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls.cpp:190,1
    - Dst: std::make_unique<Botan::ECDSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls.cpp:192,1
    - Dst: std::make_unique<Botan::ECDSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls.cpp:193,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/tests/unit_tls.cpp:197,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/tests/unit_tls.cpp:198,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_tls.cpp:201,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_tls.cpp:203,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_tls.cpp:207,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_tls.cpp:208,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/unit_tls.cpp:214,1
    - Dst: years
      Src: /src/botan/src/tests/unit_tls.cpp:217,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_tls.cpp:219,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_tls.cpp:220,1
    - Dst: Botan::X509_CA::new_crl
      Src: /src/botan/src/tests/unit_tls.cpp:222,1
    - Dst: Botan::X509_CA::new_crl
      Src: /src/botan/src/tests/unit_tls.cpp:223,1
    - Dst: std::make_shared<Credentials_Manager_Test>
      Src: /src/botan/src/tests/unit_tls.cpp:225,1
    - Dst: auto::release
      Src: /src/botan/src/tests/unit_tls.cpp:227,1
    - Dst: auto::release
      Src: /src/botan/src/tests/unit_tls.cpp:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 234
    functionName: Botan_Tests::create_creds
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Cert_Options::CA_key
    - std::make_unique<Botan::RSA_PrivateKey>
    - Botan::X509_CA::new_crl
    - Botan::EC_Group::from_name
    - std::make_shared<Credentials_Manager_Test>
    - Botan::TLS::detail::AsyncBase::complete_now
    - std::make_unique<Botan::ECDSA_PrivateKey>
    - Botan::X509::create_cert_req
    - auto::release
    - years
    - Botan::X509_CA::sign_request
    - Botan::X509::create_self_signed_cert
    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:264,1
    - Dst: std::make_shared<Test_Callbacks>
      Src: /src/botan/src/tests/unit_tls.cpp:265,1
    - Dst: Botan::TLS::Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/tests/unit_tls.cpp:267,1
    - Dst: std::make_unique<Botan::TLS::Server>
      Src: /src/botan/src/tests/unit_tls.cpp:270,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: 271
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 271
    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: 275
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 275
    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: 277
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 277
    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:281,1
    - Dst: set_custom_tls_session_established_callback
      Src: /src/botan/src/tests/unit_tls.cpp:282,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:282,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: 283
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 283
    functionName: Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_session_established_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - set_custom_tls_session_established_callback
    - BOTAN_ASSERT_NONNULL
    - std::move
    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:287,1
    - Dst: set_custom_tls_session_established_callback
      Src: /src/botan/src/tests/unit_tls.cpp:288,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:288,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: 289
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 289
    functionName: Botan_Tests::TLS_Handshake_Test::set_custom_server_tls_session_established_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - set_custom_tls_session_established_callback
    - BOTAN_ASSERT_NONNULL
    - std::move
    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:292,1
    - Dst: Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_generate_ephemeral_ecdh_key_callback
      Src: /src/botan/src/tests/unit_tls.cpp:293,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - generate_ephemeral_ecdh_key_clbk
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 294
    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_ASSERT_NONNULL
    - Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_generate_ephemeral_ecdh_key_callback
    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:297,1
    - Dst: Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_ephemeral_key_agreement_callback
      Src: /src/botan/src/tests/unit_tls.cpp:298,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - ephemeral_key_agreement_clbk
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 299
    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_ASSERT_NONNULL
    - Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_ephemeral_key_agreement_callback
    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:302,1
    - Dst: set_expected_handshake_alert
      Src: /src/botan/src/tests/unit_tls.cpp:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: Botan_Tests::TLS_Handshake_Test::set_client_expected_handshake_alert
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - set_expected_handshake_alert
    - BOTAN_ASSERT_NONNULL
    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:307,1
    - Dst: set_expected_handshake_alert
      Src: /src/botan/src/tests/unit_tls.cpp:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 309
    functionName: Botan_Tests::TLS_Handshake_Test::set_server_expected_handshake_alert
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - set_expected_handshake_alert
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: void
    signature: void set_server_expected_handshake_alert(Botan::TLS::Alert alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Botan::TLS::Extension_Code>
      Src: /src/botan/src/tests/unit_tls.cpp:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 317
    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:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 319
    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: 321
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 321
    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: 323
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 323
    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: 325
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 325
    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: Botan::TLS::append_tls_length_value
      Src: /src/botan/src/tests/unit_tls.cpp:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - side
    argTypes:
    - Botan::TLS::Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 333
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Extension::Test_Extension
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::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: 345
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 345
    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: 347
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 347
    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: 348
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 348
    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: 349
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 349
    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: 350
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 350
    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:353,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:354,1
    - Dst: type_string
      Src: /src/botan/src/tests/unit_tls.cpp:354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 357
    functionName: ~Test_Callbacks() override
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - has_value
    - type_string
    - test_failure
    linkageType: ''
    returnType: void
    signature: void ~Test_Callbacks() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/tests/unit_tls.cpp:360,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:360,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/unit_tls.cpp:360,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/unit_tls.cpp:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 361
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_emit_data
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - end
    - insert
    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:364,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:364,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/unit_tls.cpp:364,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/unit_tls.cpp:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 365
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_record_received
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - end
    - insert
    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:370,1
    - Dst: type
      Src: /src/botan/src/tests/unit_tls.cpp:371,1
    - Dst: Botan::TLS::Alert::type
      Src: /src/botan/src/tests/unit_tls.cpp:371,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:372,1
    - Dst: Botan::TLS::Alert::type_string
      Src: /src/botan/src/tests/unit_tls.cpp:372,1
    - Dst: type_string
      Src: /src/botan/src/tests/unit_tls.cpp:373,1
    - Dst: test_note
      Src: /src/botan/src/tests/unit_tls.cpp:376,1
    - Dst: type_string
      Src: /src/botan/src/tests/unit_tls.cpp:376,1
    - Dst: reset
      Src: /src/botan/src/tests/unit_tls.cpp:377,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 380
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_alert
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Alert::type
    - test_failure
    - type_string
    - Botan::TLS::Alert::type_string
    - type
    - has_value
    - reset
    - 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:385,1
    - Dst: Test_Extension::Test_Extension
      Src: /src/botan/src/tests/unit_tls.cpp:385,1
    - Dst: take
      Src: /src/botan/src/tests/unit_tls.cpp:388,1
    - Dst: auto::supported_schemes
      Src: /src/botan/src/tests/unit_tls.cpp:389,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/unit_tls.cpp:391,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/unit_tls.cpp:391,1
    - Dst: add
      Src: /src/botan/src/tests/unit_tls.cpp:393,1
    - Dst: Botan::TLS::Signature_Algorithms::Signature_Algorithms
      Src: /src/botan/src/tests/unit_tls.cpp:393,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: 395
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 395
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_modify_extensions
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - Test_Extension::Test_Extension
    - Botan::TLS::Signature_Algorithms::Signature_Algorithms
    - add
    - take
    - auto::supported_schemes
    - std::vector::insert
    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:401,1
    - Dst: get
      Src: /src/botan/src/tests/unit_tls.cpp:402,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:405,1
    - Dst: dynamic_cast<Botan::TLS::Unknown_Extension*>
      Src: /src/botan/src/tests/unit_tls.cpp:407,1
    - Dst: Botan::TLS::Unknown_Extension*::value
      Src: /src/botan/src/tests/unit_tls.cpp:410,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:412,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:412,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:414,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:416,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:420,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: 423
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 423
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_examine_extensions
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - dynamic_cast<Botan::TLS::Unknown_Extension*>
    - Botan::TLS::Unknown_Extension*::value
    - test_failure
    - get
    - std::vector::size
    - static_cast<Botan::TLS::Extension_Code>
    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:426,1
    - Dst: ciphersuite
      Src: /src/botan/src/tests/unit_tls.cpp:427,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_tls.cpp:428,1
    - Dst: session_id
      Src: /src/botan/src/tests/unit_tls.cpp:428,1
    - Dst: test_note
      Src: /src/botan/src/tests/unit_tls.cpp:430,1
    - Dst: m_session_established_callback
      Src: /src/botan/src/tests/unit_tls.cpp:433,1
    - Dst: version
      Src: /src/botan/src/tests/unit_tls.cpp:436,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:437,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:437,1
    - Dst: version
      Src: /src/botan/src/tests/unit_tls.cpp:438,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Botan::TLS::Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 440
    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
    - session_id
    - to_string
    - test_failure
    - m_session_established_callback
    - version
    - ciphersuite
    - test_note
    linkageType: ''
    returnType: void
    signature: void tls_session_established(const Botan::TLS::Session_Summary& session)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:443,1
    - Dst: size
      Src: /src/botan/src/tests/unit_tls.cpp:443,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:444,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' protos'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 447
    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_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:452,1
    - Dst: std::get<Botan::TLS::Group_Params>
      Src: /src/botan/src/tests/unit_tls.cpp:453,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls.cpp:454,1
    - Dst: std::make_unique<Botan::ECDH_PrivateKey>
      Src: /src/botan/src/tests/unit_tls.cpp:455,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_generate_ephemeral_key
      Src: /src/botan/src/tests/unit_tls.cpp:458,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: 459
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 459
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_generate_ephemeral_key
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 3
    functionsReached:
    - Botan::EC_Group::from_name
    - std::holds_alternative<Botan::TLS::Group_Params>
    - std::get<Botan::TLS::Group_Params>
    - std::make_unique<Botan::ECDH_PrivateKey>
    - Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_generate_ephemeral_key
    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:466,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls12_generate_ephemeral_ecdh_key
      Src: /src/botan/src/tests/unit_tls.cpp:469,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: 471
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 471
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls12_generate_ephemeral_ecdh_key
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 3
    functionsReached:
    - m_generate_ephemeral_ecdh_key_callback
    - Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls12_generate_ephemeral_ecdh_key
    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:480,1
    - Dst: std::holds_alternative<Botan::TLS::Group_Params>
      Src: /src/botan/src/tests/unit_tls.cpp:483,1
    - Dst: std::get<Botan::TLS::Group_Params>
      Src: /src/botan/src/tests/unit_tls.cpp:484,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls.cpp:485,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/unit_tls.cpp:486,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/unit_tls.cpp:489,1
    - Dst: Botan::ECDH_PublicKey::public_value
      Src: /src/botan/src/tests/unit_tls.cpp:489,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_ephemeral_key_agreement
      Src: /src/botan/src/tests/unit_tls.cpp:492,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: 493
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 493
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_ephemeral_key_agreement
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 3
    functionsReached:
    - Botan::EC_AffinePoint::EC_AffinePoint
    - Botan::PK_Key_Agreement::derive_key
    - Botan::EC_Group::from_name
    - m_ephemeral_key_agreement_callback
    - std::holds_alternative<Botan::TLS::Group_Params>
    - Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_ephemeral_key_agreement
    - std::get<Botan::TLS::Group_Params>
    - Botan::ECDH_PublicKey::public_value
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:497,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: 498
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 498
    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:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - generate_ephemeral_ecdh_key_clbk
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 502
    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:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - ephemeral_key_agreement_clbk
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 506
    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: 508
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 508
    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: 14
    BranchProfiles: []
    Callsites:
    - Dst: start_timer
      Src: /src/botan/src/tests/unit_tls.cpp:541,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/unit_tls.cpp:546,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:546,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:546,1
    - Dst: randomize
      Src: /src/botan/src/tests/unit_tls.cpp:548,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:548,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:548,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/unit_tls.cpp:551,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:551,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:551,1
    - Dst: randomize
      Src: /src/botan/src/tests/unit_tls.cpp:553,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:553,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:553,1
    - Dst: std::make_unique<Botan::TLS::Client>
      Src: /src/botan/src/tests/unit_tls.cpp:557,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/unit_tls.cpp:562,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:575,1
    - Dst: std::unique_ptr::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:579,1
    - Dst: is_active
      Src: /src/botan/src/tests/unit_tls.cpp:583,1
    - Dst: std::unique_ptr::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:587,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:588,1
    - Dst: std::unique_ptr::application_protocol
      Src: /src/botan/src/tests/unit_tls.cpp:588,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:591,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:592,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:593,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:593,1
    - Dst: min
      Src: /src/botan/src/tests/unit_tls.cpp:594,1
    - Dst: std::unique_ptr::send
      Src: /src/botan/src/tests/unit_tls.cpp:596,1
    - Dst: std::unique_ptr::send_warning_alert
      Src: /src/botan/src/tests/unit_tls.cpp:599,1
    - Dst: is_active
      Src: /src/botan/src/tests/unit_tls.cpp:603,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:604,1
    - Dst: application_protocol
      Src: /src/botan/src/tests/unit_tls.cpp:604,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:607,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:608,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:609,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:609,1
    - Dst: min
      Src: /src/botan/src/tests/unit_tls.cpp:610,1
    - Dst: send
      Src: /src/botan/src/tests/unit_tls.cpp:612,1
    - Dst: send_warning_alert
      Src: /src/botan/src/tests/unit_tls.cpp:616,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:620,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:627,1
    - Dst: received_data
      Src: /src/botan/src/tests/unit_tls.cpp:630,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:630,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:630,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:631,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:638,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:640,1
    - Dst: std::unique_ptr::received_data
      Src: /src/botan/src/tests/unit_tls.cpp:643,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:643,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:643,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:644,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:651,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:652,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:655,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:656,1
    - Dst: std::unique_ptr::is_closed
      Src: /src/botan/src/tests/unit_tls.cpp:659,1
    - Dst: is_closed
      Src: /src/botan/src/tests/unit_tls.cpp:659,1
    - Dst: is_active
      Src: /src/botan/src/tests/unit_tls.cpp:663,1
    - Dst: peer_cert_chain
      Src: /src/botan/src/tests/unit_tls.cpp:664,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:666,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:666,1
    - Dst: get_acceptable_cas
      Src: /src/botan/src/tests/unit_tls.cpp:668,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:670,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:670,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:673,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_tls.cpp:673,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:676,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:676,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:680,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:680,1
    - Dst: std::unique_ptr::key_material_export
      Src: /src/botan/src/tests/unit_tls.cpp:681,1
    - Dst: key_material_export
      Src: /src/botan/src/tests/unit_tls.cpp:682,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:684,1
    - Dst: Botan::SymmetricKey::bits_of
      Src: /src/botan/src/tests/unit_tls.cpp:684,1
    - Dst: Botan::SymmetricKey::bits_of
      Src: /src/botan/src/tests/unit_tls.cpp:684,1
    - Dst: confirm
      Src: /src/botan/src/tests/unit_tls.cpp:686,1
    - Dst: std::unique_ptr::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:686,1
    - Dst: confirm
      Src: /src/botan/src/tests/unit_tls.cpp:687,1
    - Dst: std::unique_ptr::is_closed
      Src: /src/botan/src/tests/unit_tls.cpp:687,1
    - Dst: std::unique_ptr::close
      Src: /src/botan/src/tests/unit_tls.cpp:688,1
    - Dst: confirm
      Src: /src/botan/src/tests/unit_tls.cpp:689,1
    - Dst: std::unique_ptr::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:689,1
    - Dst: confirm
      Src: /src/botan/src/tests/unit_tls.cpp:690,1
    - Dst: std::unique_ptr::is_closed
      Src: /src/botan/src/tests/unit_tls.cpp:690,1
    - Dst: end_timer
      Src: /src/botan/src/tests/unit_tls.cpp:694,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 80
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 540
    functionDepth: 1
    functionLinenumber: 540
    functionLinenumberEnd: 695
    functionName: Botan_Tests::TLS_Handshake_Test::go
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - static_cast<size_t>
    - randomize
    - std::unique_ptr::send_warning_alert
    - std::unique_ptr::send
    - std::swap
    - test_failure
    - send_warning_alert
    - std::unique_ptr::application_protocol
    - is_active
    - Botan::SymmetricKey::bits_of
    - std::unique_ptr::received_data
    - end_timer
    - min
    - send
    - std::vector::data
    - get_acceptable_cas
    - confirm
    - std::unique_ptr::key_material_export
    - is_closed
    - next_byte
    - Botan::TLS::Server_Information
    - get_first_attribute
    - key_material_export
    - received_data
    - std::vector::size
    - std::unique_ptr::is_closed
    - std::unique_ptr::close
    - application_protocol
    - start_timer
    - std::unique_ptr::is_active
    - empty
    - peer_cert_chain
    - std::make_unique<Botan::TLS::Client>
    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: 699
      start: 699
    functionDepth: 0
    functionLinenumber: 699
    functionLinenumberEnd: 699
    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:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - version
    argTypes:
    - Botan::TLS::Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 701
    functionDepth: 1
    functionLinenumber: 701
    functionLinenumberEnd: 704
    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: 706
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 706
    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: 708
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 708
    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: 710
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 710
    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: 712
      start: 712
    functionDepth: 0
    functionLinenumber: 712
    functionLinenumberEnd: 712
    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:737,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: 737
      start: 736
    functionDepth: 0
    functionLinenumber: 736
    functionLinenumberEnd: 737
    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: 739
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 739
    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:741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 741
    functionDepth: 0
    functionLinenumber: 741
    functionLinenumberEnd: 741
    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: 745
      start: 743
    functionDepth: 0
    functionLinenumber: 743
    functionLinenumberEnd: 745
    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: 747
      start: 747
    functionDepth: 0
    functionLinenumber: 747
    functionLinenumberEnd: 747
    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&, bool) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_p
      Src: /src/botan/src/tests/unit_tls.cpp:749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 749
    functionDepth: 0
    functionLinenumber: 749
    functionLinenumberEnd: 749
    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: 751
      start: 751
    functionDepth: 0
    functionLinenumber: 751
    functionLinenumberEnd: 751
    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:754,1
    - Dst: Invalid_State
      Src: /src/botan/src/tests/unit_tls.cpp:755,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 753
    functionDepth: 1
    functionLinenumber: 753
    functionLinenumberEnd: 758
    functionName: Botan_Tests::HardwareEcdhKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 6
    functionsReached:
    - empty
    - Invalid_State
    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:760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 760
    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:763,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 762
    functionDepth: 1
    functionLinenumber: 762
    functionLinenumberEnd: 764
    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:767,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/unit_tls.cpp:767,1
    - Dst: Botan_Tests::HardwareEcdhKey::raw_public_key_bits
      Src: /src/botan/src/tests/unit_tls.cpp:767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 766
    functionDepth: 1
    functionLinenumber: 766
    functionLinenumberEnd: 768
    functionName: Botan_Tests::HardwareEcdhKey::public_key
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::ECDH_PublicKey>
    - Botan_Tests::HardwareEcdhKey::raw_public_key_bits
    - Botan::EC_AffinePoint::EC_AffinePoint
    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:771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 772
    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&)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::HardwareEcdhKey::raw_public_key_bits
      Src: /src/botan/src/tests/unit_tls.cpp:774,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 774
    functionDepth: 0
    functionLinenumber: 774
    functionLinenumberEnd: 774
    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: ECDH_PrivateKey
      Src: /src/botan/src/tests/unit_tls.cpp:782,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/unit_tls.cpp:784,1
    - Dst: auto::public_value
      Src: /src/botan/src/tests/unit_tls.cpp:785,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: 787
      start: 776
    functionDepth: 1
    functionLinenumber: 776
    functionLinenumberEnd: 787
    functionName: Botan_Tests::HardwareEcdhKey::custom_ephemeral_agreement
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::PK_Key_Agreement::derive_key
    - auto::public_value
    - ECDH_PrivateKey
    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:808,1
    - Dst: TLS_Handshake_Test::go
      Src: /src/botan/src/tests/unit_tls.cpp:817,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:818,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:818,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:820,1
    - Dst: TLS_Handshake_Test::go
      Src: /src/botan/src/tests/unit_tls.cpp:829,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:830,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:830,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:833,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/unit_tls.cpp:833,1
    - Dst: what
      Src: /src/botan/src/tests/unit_tls.cpp:833,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: 835
      start: 797
    functionDepth: 1
    functionLinenumber: 797
    functionLinenumberEnd: 835
    functionName: Botan_Tests::TLS_Unit_Tests::test_with_policy
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 6
    functionsReached:
    - to_string
    - TLS_Handshake_Test::go
    - push_back
    - Botan_Tests::Test::Result::Failure
    - TLS_Handshake_Test::results
    - what
    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:848,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:849,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:850,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:851,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:852,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:854,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:855,1
    - Dst: find
      Src: /src/botan/src/tests/unit_tls.cpp:857,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:858,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_with_policy
      Src: /src/botan/src/tests/unit_tls.cpp:864,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: 866
      start: 837
    functionDepth: 2
    functionLinenumber: 837
    functionLinenumberEnd: 866
    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
    - find
    - Botan_Tests::TLS_Unit_Tests::test_with_policy
    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:879,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: 890
      start: 868
    functionDepth: 1
    functionLinenumber: 868
    functionLinenumberEnd: 890
    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:903,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:904,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:905,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:906,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:907,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:908,1
    - Dst: find
      Src: /src/botan/src/tests/unit_tls.cpp:910,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:911,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:915,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_with_policy
      Src: /src/botan/src/tests/unit_tls.cpp:921,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: 923
      start: 892
    functionDepth: 2
    functionLinenumber: 892
    functionLinenumberEnd: 923
    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
    - find
    - Botan_Tests::TLS_Unit_Tests::test_with_policy
    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:931,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_Noop>
      Src: /src/botan/src/tests/unit_tls.cpp:932,1
    - Dst: type_string
      Src: /src/botan/src/tests/unit_tls.cpp:937,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:937,1
    - Dst: TLS_Handshake_Test::set_custom_client_tls_session_established_callback
      Src: /src/botan/src/tests/unit_tls.cpp:946,1
    - Dst: std::rethrow_exception
      Src: /src/botan/src/tests/unit_tls.cpp:947,1
    - Dst: TLS_Handshake_Test::set_server_expected_handshake_alert
      Src: /src/botan/src/tests/unit_tls.cpp:948,1
    - Dst: TLS_Handshake_Test::go
      Src: /src/botan/src/tests/unit_tls.cpp:950,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:951,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:951,1
    - Dst: type_string
      Src: /src/botan/src/tests/unit_tls.cpp:958,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:958,1
    - Dst: TLS_Handshake_Test::set_custom_server_tls_session_established_callback
      Src: /src/botan/src/tests/unit_tls.cpp:967,1
    - Dst: std::rethrow_exception
      Src: /src/botan/src/tests/unit_tls.cpp:968,1
    - Dst: TLS_Handshake_Test::set_client_expected_handshake_alert
      Src: /src/botan/src/tests/unit_tls.cpp:969,1
    - Dst: TLS_Handshake_Test::go
      Src: /src/botan/src/tests/unit_tls.cpp:971,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:972,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:972,1
    - Dst: client_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:976,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:976,1
    - Dst: TLS_Exception
      Src: /src/botan/src/tests/unit_tls.cpp:977,1
    - Dst: client_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:979,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:979,1
    - Dst: Botan::Invalid_Authentication_Tag::Invalid_Authentication_Tag
      Src: /src/botan/src/tests/unit_tls.cpp:979,1
    - Dst: client_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:981,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:981,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/unit_tls.cpp:981,1
    - Dst: server_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:984,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:984,1
    - Dst: TLS_Exception
      Src: /src/botan/src/tests/unit_tls.cpp:985,1
    - Dst: server_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:987,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:987,1
    - Dst: Botan::Invalid_Authentication_Tag::Invalid_Authentication_Tag
      Src: /src/botan/src/tests/unit_tls.cpp:988,1
    - Dst: server_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:990,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:990,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/unit_tls.cpp:990,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: 992
      start: 925
    functionDepth: 1
    functionLinenumber: 925
    functionLinenumberEnd: 992
    functionName: Botan_Tests::TLS_Unit_Tests::test_session_established_abort
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 2
    functionsReached:
    - TLS_Handshake_Test::set_server_expected_handshake_alert
    - TLS_Handshake_Test::results
    - server_aborts
    - TLS_Handshake_Test::set_custom_client_tls_session_established_callback
    - std::runtime_error
    - TLS_Exception
    - std::make_exception_ptr
    - to_string
    - TLS_Handshake_Test::set_custom_server_tls_session_established_callback
    - client_aborts
    - TLS_Handshake_Test::go
    - push_back
    - Botan::Invalid_Authentication_Tag::Invalid_Authentication_Tag
    - type_string
    - TLS_Handshake_Test::set_client_expected_handshake_alert
    - std::make_shared<Botan::TLS::Session_Manager_Noop>
    - std::make_shared<Test_Policy>
    - std::rethrow_exception
    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:997,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_tls.cpp:1006,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:1006,1
    - Dst: std::make_shared<Test_Policy>
      Src: /src/botan/src/tests/unit_tls.cpp:1010,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:1011,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_tls.cpp:1011,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/unit_tls.cpp:1011,1
    - Dst: wire_code
      Src: /src/botan/src/tests/unit_tls.cpp:1011,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:1014,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1024,1
    - Dst: TLS_Handshake_Test::set_custom_client_tls_generate_ephemeral_ecdh_key_callback
      Src: /src/botan/src/tests/unit_tls.cpp:1029,1
    - Dst: require
      Src: /src/botan/src/tests/unit_tls.cpp:1034,1
    - Dst: is_ecdh_named_curve
      Src: /src/botan/src/tests/unit_tls.cpp:1035,1
    - Dst: std::make_unique<HardwareEcdhKey>
      Src: /src/botan/src/tests/unit_tls.cpp:1036,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls.cpp:1036,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:1036,1
    - Dst: TLS_Handshake_Test::set_custom_client_tls_ephemeral_key_agreement_callback
      Src: /src/botan/src/tests/unit_tls.cpp:1040,1
    - Dst: std::get_if<Botan::TLS::Group_Params>
      Src: /src/botan/src/tests/unit_tls.cpp:1048,1
    - Dst: require
      Src: /src/botan/src/tests/unit_tls.cpp:1049,1
    - Dst: require
      Src: /src/botan/src/tests/unit_tls.cpp:1051,1
    - Dst: auto*::is_ecdh_named_curve
      Src: /src/botan/src/tests/unit_tls.cpp:1052,1
    - Dst: dynamic_cast<const HardwareEcdhKey*>
      Src: /src/botan/src/tests/unit_tls.cpp:1054,1
    - Dst: require
      Src: /src/botan/src/tests/unit_tls.cpp:1055,1
    - Dst: auto*::custom_ephemeral_agreement
      Src: /src/botan/src/tests/unit_tls.cpp:1058,1
    - Dst: TLS_Handshake_Test::go
      Src: /src/botan/src/tests/unit_tls.cpp:1061,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1062,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1063,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:1064,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1064,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: 1066
      start: 994
    functionDepth: 1
    functionLinenumber: 994
    functionLinenumberEnd: 1066
    functionName: Botan_Tests::TLS_Unit_Tests::test_custom_ecdh_provider
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 2
    functionsReached:
    - is_ecdh_named_curve
    - Botan::hex_encode
    - TLS_Handshake_Test::set_custom_client_tls_generate_ephemeral_ecdh_key_callback
    - auto*::is_ecdh_named_curve
    - push_back
    - dynamic_cast<const HardwareEcdhKey*>
    - TLS_Handshake_Test::results
    - auto*::custom_ephemeral_agreement
    - auto::set
    - require
    - std::make_shared<Test_Policy>
    - std::make_unique<HardwareEcdhKey>
    - Botan::EC_Group::supports_named_group
    - TLS_Handshake_Test::set_custom_client_tls_ephemeral_key_agreement_callback
    - Botan::EC_Group::from_name
    - to_string
    - Botan::store_be
    - TLS_Handshake_Test::go
    - std::get_if<Botan::TLS::Group_Params>
    - std::make_shared<Botan::TLS::Session_Manager_Noop>
    - wire_code
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_shared_rng
      Src: /src/botan/src/tests/unit_tls.cpp:1072,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_name
      Src: /src/botan/src/tests/unit_tls.cpp:1072,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_SQLite>
      Src: /src/botan/src/tests/unit_tls.cpp:1078,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_SQLite>
      Src: /src/botan/src/tests/unit_tls.cpp:1079,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/unit_tls.cpp:1083,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/unit_tls.cpp:1087,1
    - Dst: create_creds
      Src: /src/botan/src/tests/unit_tls.cpp:1090,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_all_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1094,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_all_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1104,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_all_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1116,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_all_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1118,1
    - Dst: std::shared_ptr::remove_all
      Src: /src/botan/src/tests/unit_tls.cpp:1122,1
    - Dst: std::shared_ptr::remove_all
      Src: /src/botan/src/tests/unit_tls.cpp:1124,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1126,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1131,1
    - Dst: std::make_shared<Botan::TLS::Strict_Policy_Without_TLS13>
      Src: /src/botan/src/tests/unit_tls.cpp:1134,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_with_policy
      Src: /src/botan/src/tests/unit_tls.cpp:1135,1
    - Dst: std::make_shared<Botan::TLS::NSA_Suite_B_128>
      Src: /src/botan/src/tests/unit_tls.cpp:1144,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_with_policy
      Src: /src/botan/src/tests/unit_tls.cpp:1145,1
    - Dst: std::shared_ptr::remove_all
      Src: /src/botan/src/tests/unit_tls.cpp:1155,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1157,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1158,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1160,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1171,1
    - Dst: std::shared_ptr::remove_all
      Src: /src/botan/src/tests/unit_tls.cpp:1182,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1185,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1190,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1194,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1204,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1214,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1226,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1238,1
    - Dst: create_creds
      Src: /src/botan/src/tests/unit_tls.cpp:1249,1
    - Dst: std::shared_ptr::remove_all
      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:1252,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/unit_tls.cpp:1264,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/unit_tls.cpp:1265,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1269,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:1280,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1283,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1284,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1288,1
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/unit_tls.cpp:1293,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/unit_tls.cpp:1307,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1312,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_session_established_abort
      Src: /src/botan/src/tests/unit_tls.cpp:1327,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_custom_ecdh_provider
      Src: /src/botan/src/tests/unit_tls.cpp:1333,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1336
      start: 1069
    functionDepth: 3
    functionLinenumber: 1069
    functionLinenumberEnd: 1336
    functionName: Botan_Tests::TLS_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::TLS_Unit_Tests::test_custom_ecdh_provider
    - Botan_Tests::TLS_Unit_Tests::test_all_versions
    - Botan_Tests::TLS_Unit_Tests::test_modern_versions
    - std::shared_ptr::remove_all
    - std::make_shared<Botan::TLS::NSA_Suite_B_128>
    - Botan::EC_Group::supports_application_specific_group
    - Botan_Tests::TLS_Unit_Tests::test_name
    - std::make_shared<Botan::TLS::Session_Manager_In_Memory>
    - Botan_Tests::Test::new_shared_rng
    - create_creds
    - std::make_shared<Botan::TLS::Session_Manager_SQLite>
    - Botan::OID::register_oid
    - std::make_shared<Botan::TLS::Strict_Policy_Without_TLS13>
    - Botan_Tests::TLS_Unit_Tests::test_session_established_abort
    - Botan_Tests::TLS_Unit_Tests::test_with_policy
    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:1350,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1350,1
    - Dst: begin
      Src: /src/botan/src/tests/unit_tls.cpp:1350,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1350,1
    - Dst: insert
      Src: /src/botan/src/tests/unit_tls.cpp:1354,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1354,1
    - Dst: begin
      Src: /src/botan/src/tests/unit_tls.cpp:1354,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1354,1
    - Dst: test_success
      Src: /src/botan/src/tests/unit_tls.cpp:1362,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1377,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1381,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1385,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1389,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/unit_tls.cpp:1392,1
    - Dst: std::vector<std::string>
      Src: /src/botan/src/tests/unit_tls.cpp:1398,1
    - Dst: Botan_Tests::Test::new_shared_rng
      Src: /src/botan/src/tests/unit_tls.cpp:1411,1
    - Dst: Botan_Tests::DTLS_Reconnection_Test::test_name
      Src: /src/botan/src/tests/unit_tls.cpp:1411,1
    - Dst: std::make_shared<Datagram_PSK_Policy>
      Src: /src/botan/src/tests/unit_tls.cpp:1413,1
    - Dst: std::make_shared<Datagram_PSK_Policy>
      Src: /src/botan/src/tests/unit_tls.cpp:1414,1
    - Dst: std::make_shared<Credentials_PSK>
      Src: /src/botan/src/tests/unit_tls.cpp:1415,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/unit_tls.cpp:1416,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_Noop>
      Src: /src/botan/src/tests/unit_tls.cpp:1417,1
    - Dst: std::make_shared<Test_Callbacks>
      Src: /src/botan/src/tests/unit_tls.cpp:1421,1
    - Dst: std::make_shared<Test_Callbacks>
      Src: /src/botan/src/tests/unit_tls.cpp:1426,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/unit_tls.cpp:1432,1
    - Dst: Botan::TLS::latest_dtls_version
      Src: /src/botan/src/tests/unit_tls.cpp:1433,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:1446,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1450,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:1452,1
    - Dst: Botan::TLS::Server::received_data
      Src: /src/botan/src/tests/unit_tls.cpp:1453,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:1453,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:1453,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1457,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:1459,1
    - Dst: Botan::TLS::Client::received_data
      Src: /src/botan/src/tests/unit_tls.cpp:1460,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:1460,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:1460,1
    - Dst: Botan::TLS::Client::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:1464,1
    - Dst: Botan::TLS::Client::send
      Src: /src/botan/src/tests/unit_tls.cpp:1465,1
    - Dst: Botan::TLS::Server::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:1469,1
    - Dst: Botan::TLS::Server::send
      Src: /src/botan/src/tests/unit_tls.cpp:1470,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1473,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1473,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:1474,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:1475,1
    - Dst: std::vector::clear
      Src: /src/botan/src/tests/unit_tls.cpp:1484,1
    - Dst: std::vector::clear
      Src: /src/botan/src/tests/unit_tls.cpp:1485,1
    - Dst: std::make_shared<Test_Callbacks>
      Src: /src/botan/src/tests/unit_tls.cpp:1489,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/unit_tls.cpp:1495,1
    - Dst: Botan::TLS::latest_dtls_version
      Src: /src/botan/src/tests/unit_tls.cpp:1496,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:1510,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1514,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:1516,1
    - Dst: Botan::TLS::Server::received_data
      Src: /src/botan/src/tests/unit_tls.cpp:1517,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:1517,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:1517,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1521,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:1523,1
    - Dst: Botan::TLS::Client::received_data
      Src: /src/botan/src/tests/unit_tls.cpp:1524,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:1524,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:1524,1
    - Dst: Botan::TLS::Client::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:1528,1
    - Dst: Botan::TLS::Client::send
      Src: /src/botan/src/tests/unit_tls.cpp:1529,1
    - Dst: Botan::TLS::Server::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:1533,1
    - Dst: Botan::TLS::Server::send
      Src: /src/botan/src/tests/unit_tls.cpp:1534,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1537,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1537,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:1538,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:1539,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 94
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1545
      start: 1343
    functionDepth: 1
    functionLinenumber: 1343
    functionLinenumberEnd: 1545
    functionName: Botan_Tests::DTLS_Reconnection_Test::run
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Client::received_data
    - Botan::TLS::Server::is_active
    - Botan::SymmetricKey
    - Test::Result::test_failure
    - std::swap
    - std::make_shared<Test_Callbacks>
    - begin
    - Botan::TLS::Server::received_data
    - test_success
    - Test_Error
    - std::vector::data
    - Botan_Tests::DTLS_Reconnection_Test::test_name
    - std::vector<std::string>
    - Botan::TLS::Client::is_active
    - Botan::TLS::Client::send
    - std::make_shared<Credentials_PSK>
    - Botan::TLS::Server_Information
    - std::vector::clear
    - std::vector::empty
    - std::make_shared<Botan::TLS::Session_Manager_In_Memory>
    - Botan::TLS::Server::send
    - std::vector::size
    - Botan::TLS::latest_dtls_version
    - std::make_shared<Botan::TLS::Session_Manager_Noop>
    - std::make_shared<Datagram_PSK_Policy>
    - Test::Result::test_eq
    - end
    - Botan_Tests::Test::new_shared_rng
    - insert
    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: 1347
      start: 1346
    functionDepth: 0
    functionLinenumber: 1346
    functionLinenumberEnd: 1347
    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:1350,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1350,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/unit_tls.cpp:1350,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/unit_tls.cpp:1350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1351
      start: 1349
    functionDepth: 0
    functionLinenumber: 1349
    functionLinenumberEnd: 1351
    functionName: Botan_Tests::DTLS_Reconnection_Test::Test_Callbacks::tls_emit_data
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - end
    - insert
    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:1354,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1354,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/unit_tls.cpp:1354,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/unit_tls.cpp:1354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1355
      start: 1353
    functionDepth: 0
    functionLinenumber: 1353
    functionLinenumberEnd: 1355
    functionName: Botan_Tests::DTLS_Reconnection_Test::Test_Callbacks::tls_record_received
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - end
    - insert
    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: 1359
      start: 1357
    functionDepth: 0
    functionLinenumber: 1357
    functionLinenumberEnd: 1359
    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:1362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1363
      start: 1361
    functionDepth: 0
    functionLinenumber: 1361
    functionLinenumberEnd: 1363
    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:1377,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1381,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1385,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1389,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/unit_tls.cpp:1392,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 2
    argNames:
    - ' type'
    - ' context'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1393
      start: 1373
    functionDepth: 0
    functionLinenumber: 1373
    functionLinenumberEnd: 1393
    functionName: Botan_Tests::DTLS_Reconnection_Test::Credentials_PSK::psk
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::SymmetricKey
    - Test_Error
    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:1398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1398
      start: 1398
    functionDepth: 0
    functionLinenumber: 1398
    functionLinenumberEnd: 1398
    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: 1400
      start: 1400
    functionDepth: 0
    functionLinenumber: 1400
    functionLinenumberEnd: 1400
    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: 1402
      start: 1402
    functionDepth: 0
    functionLinenumber: 1402
    functionLinenumberEnd: 1402
    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: 1404
      start: 1404
    functionDepth: 0
    functionLinenumber: 1404
    functionLinenumberEnd: 1404
    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: 1406
      start: 1406
    functionDepth: 0
    functionLinenumber: 1406
    functionLinenumberEnd: 1406
    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:73,1
    - Dst: auto::add_certificate
      Src: /src/botan/src/tests/unit_tls.cpp:74,1
    - Dst: auto::add_certificate
      Src: /src/botan/src/tests/unit_tls.cpp:75,1
    - Dst: auto::add_crl
      Src: /src/botan/src/tests/unit_tls.cpp:76,1
    - Dst: auto::add_crl
      Src: /src/botan/src/tests/unit_tls.cpp:77,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:79,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:79,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: 80
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 80
    functionName: Botan_Tests::Credentials_Manager_Test::Credentials_Manager_Test
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_unique<Botan::Certificate_Store_In_Memory>
    - auto::add_crl
    - push_back
    - auto::add_certificate
    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:85,1
    - Dst: size
      Src: /src/botan/src/tests/unit_tls.cpp:85,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls.cpp:87,1
    - Dst: get
      Src: /src/botan/src/tests/unit_tls.cpp:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 90
    functionName: Botan_Tests::Credentials_Manager_Test::trusted_certificate_authorities
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - size
    - std::vector::push_back
    - get
    - 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:97,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:100,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls.cpp:107,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls.cpp:108,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls.cpp:111,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls.cpp:112,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: 119
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 119
    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: 131
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 131
    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:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 135
    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:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 139
    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:146,1
    - Dst: Botan_Tests::Credentials_Manager_Test::find_preshared_keys
      Src: /src/botan/src/tests/unit_tls.cpp:147,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/unit_tls.cpp:156,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/unit_tls.cpp:157,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/unit_tls.cpp:161,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/unit_tls.cpp:162,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: 167
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 167
    functionName: Botan_Tests::Credentials_Manager_Test::find_preshared_keys
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 4
    functionsReached:
    - std::vector::emplace_back
    - Botan::hex_decode_locked
    - empty
    - Botan_Tests::Credentials_Manager_Test::find_preshared_keys
    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: 169
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 169
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls.cpp:186,1
    - Dst: std::make_unique<Botan::RSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls.cpp:189,1
    - Dst: std::make_unique<Botan::RSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls.cpp:190,1
    - Dst: std::make_unique<Botan::ECDSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls.cpp:192,1
    - Dst: std::make_unique<Botan::ECDSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls.cpp:193,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/tests/unit_tls.cpp:197,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/tests/unit_tls.cpp:198,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_tls.cpp:201,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/tests/unit_tls.cpp:203,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_tls.cpp:207,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/tests/unit_tls.cpp:208,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/unit_tls.cpp:214,1
    - Dst: years
      Src: /src/botan/src/tests/unit_tls.cpp:217,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_tls.cpp:219,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/tests/unit_tls.cpp:220,1
    - Dst: Botan::X509_CA::new_crl
      Src: /src/botan/src/tests/unit_tls.cpp:222,1
    - Dst: Botan::X509_CA::new_crl
      Src: /src/botan/src/tests/unit_tls.cpp:223,1
    - Dst: std::make_shared<Credentials_Manager_Test>
      Src: /src/botan/src/tests/unit_tls.cpp:225,1
    - Dst: auto::release
      Src: /src/botan/src/tests/unit_tls.cpp:227,1
    - Dst: auto::release
      Src: /src/botan/src/tests/unit_tls.cpp:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 234
    functionName: Botan_Tests::create_creds
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::X509_Cert_Options::CA_key
    - std::make_unique<Botan::RSA_PrivateKey>
    - Botan::X509_CA::new_crl
    - Botan::EC_Group::from_name
    - std::make_shared<Credentials_Manager_Test>
    - Botan::TLS::detail::AsyncBase::complete_now
    - std::make_unique<Botan::ECDSA_PrivateKey>
    - Botan::X509::create_cert_req
    - auto::release
    - years
    - Botan::X509_CA::sign_request
    - Botan::X509::create_self_signed_cert
    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:264,1
    - Dst: std::make_shared<Test_Callbacks>
      Src: /src/botan/src/tests/unit_tls.cpp:265,1
    - Dst: Botan::TLS::Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/tests/unit_tls.cpp:267,1
    - Dst: std::make_unique<Botan::TLS::Server>
      Src: /src/botan/src/tests/unit_tls.cpp:270,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: 271
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 271
    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: 275
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 275
    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: 277
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 277
    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:281,1
    - Dst: set_custom_tls_session_established_callback
      Src: /src/botan/src/tests/unit_tls.cpp:282,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:282,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: 283
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 283
    functionName: Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_session_established_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - set_custom_tls_session_established_callback
    - BOTAN_ASSERT_NONNULL
    - std::move
    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:287,1
    - Dst: set_custom_tls_session_established_callback
      Src: /src/botan/src/tests/unit_tls.cpp:288,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:288,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: 289
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 289
    functionName: Botan_Tests::TLS_Handshake_Test::set_custom_server_tls_session_established_callback
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - set_custom_tls_session_established_callback
    - BOTAN_ASSERT_NONNULL
    - std::move
    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:292,1
    - Dst: Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_generate_ephemeral_ecdh_key_callback
      Src: /src/botan/src/tests/unit_tls.cpp:293,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - generate_ephemeral_ecdh_key_clbk
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 294
    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_ASSERT_NONNULL
    - Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_generate_ephemeral_ecdh_key_callback
    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:297,1
    - Dst: Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_ephemeral_key_agreement_callback
      Src: /src/botan/src/tests/unit_tls.cpp:298,1
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - ephemeral_key_agreement_clbk
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 299
    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_ASSERT_NONNULL
    - Botan_Tests::TLS_Handshake_Test::set_custom_client_tls_ephemeral_key_agreement_callback
    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:302,1
    - Dst: set_expected_handshake_alert
      Src: /src/botan/src/tests/unit_tls.cpp:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 304
    functionName: Botan_Tests::TLS_Handshake_Test::set_client_expected_handshake_alert
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - set_expected_handshake_alert
    - BOTAN_ASSERT_NONNULL
    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:307,1
    - Dst: set_expected_handshake_alert
      Src: /src/botan/src/tests/unit_tls.cpp:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 309
    functionName: Botan_Tests::TLS_Handshake_Test::set_server_expected_handshake_alert
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - set_expected_handshake_alert
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: void
    signature: void set_server_expected_handshake_alert(Botan::TLS::Alert alert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Botan::TLS::Extension_Code>
      Src: /src/botan/src/tests/unit_tls.cpp:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 317
    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:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 319
    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: 321
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 321
    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: 323
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 323
    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: 325
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 325
    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: Botan::TLS::append_tls_length_value
      Src: /src/botan/src/tests/unit_tls.cpp:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - side
    argTypes:
    - Botan::TLS::Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 333
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Extension::Test_Extension
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::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: 345
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 345
    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: 347
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 347
    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: 348
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 348
    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: 349
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 349
    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: 350
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 350
    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:353,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:354,1
    - Dst: type_string
      Src: /src/botan/src/tests/unit_tls.cpp:354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 357
    functionName: ~Test_Callbacks() override
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - has_value
    - type_string
    - test_failure
    linkageType: ''
    returnType: void
    signature: void ~Test_Callbacks() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/tests/unit_tls.cpp:360,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:360,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/unit_tls.cpp:360,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/unit_tls.cpp:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 361
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_emit_data
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - end
    - insert
    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:364,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:364,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/unit_tls.cpp:364,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/unit_tls.cpp:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 365
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_record_received
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - end
    - insert
    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:370,1
    - Dst: type
      Src: /src/botan/src/tests/unit_tls.cpp:371,1
    - Dst: Botan::TLS::Alert::type
      Src: /src/botan/src/tests/unit_tls.cpp:371,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:372,1
    - Dst: Botan::TLS::Alert::type_string
      Src: /src/botan/src/tests/unit_tls.cpp:372,1
    - Dst: type_string
      Src: /src/botan/src/tests/unit_tls.cpp:373,1
    - Dst: test_note
      Src: /src/botan/src/tests/unit_tls.cpp:376,1
    - Dst: type_string
      Src: /src/botan/src/tests/unit_tls.cpp:376,1
    - Dst: reset
      Src: /src/botan/src/tests/unit_tls.cpp:377,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 380
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_alert
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Alert::type
    - test_failure
    - type_string
    - Botan::TLS::Alert::type_string
    - type
    - has_value
    - reset
    - 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:385,1
    - Dst: Test_Extension::Test_Extension
      Src: /src/botan/src/tests/unit_tls.cpp:385,1
    - Dst: take
      Src: /src/botan/src/tests/unit_tls.cpp:388,1
    - Dst: auto::supported_schemes
      Src: /src/botan/src/tests/unit_tls.cpp:389,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/unit_tls.cpp:391,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/unit_tls.cpp:391,1
    - Dst: add
      Src: /src/botan/src/tests/unit_tls.cpp:393,1
    - Dst: Botan::TLS::Signature_Algorithms::Signature_Algorithms
      Src: /src/botan/src/tests/unit_tls.cpp:393,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: 395
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 395
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_modify_extensions
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - Test_Extension::Test_Extension
    - Botan::TLS::Signature_Algorithms::Signature_Algorithms
    - add
    - take
    - auto::supported_schemes
    - std::vector::insert
    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:401,1
    - Dst: get
      Src: /src/botan/src/tests/unit_tls.cpp:402,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:405,1
    - Dst: dynamic_cast<Botan::TLS::Unknown_Extension*>
      Src: /src/botan/src/tests/unit_tls.cpp:407,1
    - Dst: Botan::TLS::Unknown_Extension*::value
      Src: /src/botan/src/tests/unit_tls.cpp:410,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:412,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:412,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:414,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:416,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:420,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: 423
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 423
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_examine_extensions
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - dynamic_cast<Botan::TLS::Unknown_Extension*>
    - Botan::TLS::Unknown_Extension*::value
    - test_failure
    - get
    - std::vector::size
    - static_cast<Botan::TLS::Extension_Code>
    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:426,1
    - Dst: ciphersuite
      Src: /src/botan/src/tests/unit_tls.cpp:427,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_tls.cpp:428,1
    - Dst: session_id
      Src: /src/botan/src/tests/unit_tls.cpp:428,1
    - Dst: test_note
      Src: /src/botan/src/tests/unit_tls.cpp:430,1
    - Dst: m_session_established_callback
      Src: /src/botan/src/tests/unit_tls.cpp:433,1
    - Dst: version
      Src: /src/botan/src/tests/unit_tls.cpp:436,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:437,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:437,1
    - Dst: version
      Src: /src/botan/src/tests/unit_tls.cpp:438,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Botan::TLS::Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 440
    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
    - session_id
    - to_string
    - test_failure
    - m_session_established_callback
    - version
    - ciphersuite
    - test_note
    linkageType: ''
    returnType: void
    signature: void tls_session_established(const Botan::TLS::Session_Summary& session)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:443,1
    - Dst: size
      Src: /src/botan/src/tests/unit_tls.cpp:443,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:444,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' protos'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 447
    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_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:452,1
    - Dst: std::get<Botan::TLS::Group_Params>
      Src: /src/botan/src/tests/unit_tls.cpp:453,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls.cpp:454,1
    - Dst: std::make_unique<Botan::ECDH_PrivateKey>
      Src: /src/botan/src/tests/unit_tls.cpp:455,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_generate_ephemeral_key
      Src: /src/botan/src/tests/unit_tls.cpp:458,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: 459
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 459
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_generate_ephemeral_key
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 4
    functionsReached:
    - Botan::EC_Group::from_name
    - std::holds_alternative<Botan::TLS::Group_Params>
    - std::get<Botan::TLS::Group_Params>
    - std::make_unique<Botan::ECDH_PrivateKey>
    - Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_generate_ephemeral_key
    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:466,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls12_generate_ephemeral_ecdh_key
      Src: /src/botan/src/tests/unit_tls.cpp:469,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: 471
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 471
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls12_generate_ephemeral_ecdh_key
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 4
    functionsReached:
    - m_generate_ephemeral_ecdh_key_callback
    - Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls12_generate_ephemeral_ecdh_key
    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:480,1
    - Dst: std::holds_alternative<Botan::TLS::Group_Params>
      Src: /src/botan/src/tests/unit_tls.cpp:483,1
    - Dst: std::get<Botan::TLS::Group_Params>
      Src: /src/botan/src/tests/unit_tls.cpp:484,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls.cpp:485,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/unit_tls.cpp:486,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/unit_tls.cpp:489,1
    - Dst: Botan::ECDH_PublicKey::public_value
      Src: /src/botan/src/tests/unit_tls.cpp:489,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_ephemeral_key_agreement
      Src: /src/botan/src/tests/unit_tls.cpp:492,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: 493
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 493
    functionName: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_ephemeral_key_agreement
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 4
    functionsReached:
    - Botan::EC_AffinePoint::EC_AffinePoint
    - Botan::PK_Key_Agreement::derive_key
    - Botan::EC_Group::from_name
    - m_ephemeral_key_agreement_callback
    - std::holds_alternative<Botan::TLS::Group_Params>
    - Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_ephemeral_key_agreement
    - std::get<Botan::TLS::Group_Params>
    - Botan::ECDH_PublicKey::public_value
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/unit_tls.cpp:497,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: 498
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 498
    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:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - generate_ephemeral_ecdh_key_clbk
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 502
    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:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - clbk
    argTypes:
    - ephemeral_key_agreement_clbk
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 506
    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: 508
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 508
    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: 14
    BranchProfiles: []
    Callsites:
    - Dst: start_timer
      Src: /src/botan/src/tests/unit_tls.cpp:541,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/unit_tls.cpp:546,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:546,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:546,1
    - Dst: randomize
      Src: /src/botan/src/tests/unit_tls.cpp:548,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:548,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:548,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/unit_tls.cpp:551,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:551,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:551,1
    - Dst: randomize
      Src: /src/botan/src/tests/unit_tls.cpp:553,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:553,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:553,1
    - Dst: std::make_unique<Botan::TLS::Client>
      Src: /src/botan/src/tests/unit_tls.cpp:557,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/unit_tls.cpp:562,1
    - Dst: test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:575,1
    - Dst: std::unique_ptr::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:579,1
    - Dst: is_active
      Src: /src/botan/src/tests/unit_tls.cpp:583,1
    - Dst: std::unique_ptr::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:587,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:588,1
    - Dst: std::unique_ptr::application_protocol
      Src: /src/botan/src/tests/unit_tls.cpp:588,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:591,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:592,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:593,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:593,1
    - Dst: min
      Src: /src/botan/src/tests/unit_tls.cpp:594,1
    - Dst: std::unique_ptr::send
      Src: /src/botan/src/tests/unit_tls.cpp:596,1
    - Dst: std::unique_ptr::send_warning_alert
      Src: /src/botan/src/tests/unit_tls.cpp:599,1
    - Dst: is_active
      Src: /src/botan/src/tests/unit_tls.cpp:603,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:604,1
    - Dst: application_protocol
      Src: /src/botan/src/tests/unit_tls.cpp:604,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:607,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:608,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:609,1
    - Dst: next_byte
      Src: /src/botan/src/tests/unit_tls.cpp:609,1
    - Dst: min
      Src: /src/botan/src/tests/unit_tls.cpp:610,1
    - Dst: send
      Src: /src/botan/src/tests/unit_tls.cpp:612,1
    - Dst: send_warning_alert
      Src: /src/botan/src/tests/unit_tls.cpp:616,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:620,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:627,1
    - Dst: received_data
      Src: /src/botan/src/tests/unit_tls.cpp:630,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:630,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:630,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:631,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:638,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:640,1
    - Dst: std::unique_ptr::received_data
      Src: /src/botan/src/tests/unit_tls.cpp:643,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:643,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:643,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:644,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:651,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:652,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:655,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:656,1
    - Dst: std::unique_ptr::is_closed
      Src: /src/botan/src/tests/unit_tls.cpp:659,1
    - Dst: is_closed
      Src: /src/botan/src/tests/unit_tls.cpp:659,1
    - Dst: is_active
      Src: /src/botan/src/tests/unit_tls.cpp:663,1
    - Dst: peer_cert_chain
      Src: /src/botan/src/tests/unit_tls.cpp:664,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:666,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:666,1
    - Dst: get_acceptable_cas
      Src: /src/botan/src/tests/unit_tls.cpp:668,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:670,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:670,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:673,1
    - Dst: get_first_attribute
      Src: /src/botan/src/tests/unit_tls.cpp:673,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:676,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:676,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:680,1
    - Dst: empty
      Src: /src/botan/src/tests/unit_tls.cpp:680,1
    - Dst: std::unique_ptr::key_material_export
      Src: /src/botan/src/tests/unit_tls.cpp:681,1
    - Dst: key_material_export
      Src: /src/botan/src/tests/unit_tls.cpp:682,1
    - Dst: test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:684,1
    - Dst: Botan::SymmetricKey::bits_of
      Src: /src/botan/src/tests/unit_tls.cpp:684,1
    - Dst: Botan::SymmetricKey::bits_of
      Src: /src/botan/src/tests/unit_tls.cpp:684,1
    - Dst: confirm
      Src: /src/botan/src/tests/unit_tls.cpp:686,1
    - Dst: std::unique_ptr::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:686,1
    - Dst: confirm
      Src: /src/botan/src/tests/unit_tls.cpp:687,1
    - Dst: std::unique_ptr::is_closed
      Src: /src/botan/src/tests/unit_tls.cpp:687,1
    - Dst: std::unique_ptr::close
      Src: /src/botan/src/tests/unit_tls.cpp:688,1
    - Dst: confirm
      Src: /src/botan/src/tests/unit_tls.cpp:689,1
    - Dst: std::unique_ptr::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:689,1
    - Dst: confirm
      Src: /src/botan/src/tests/unit_tls.cpp:690,1
    - Dst: std::unique_ptr::is_closed
      Src: /src/botan/src/tests/unit_tls.cpp:690,1
    - Dst: end_timer
      Src: /src/botan/src/tests/unit_tls.cpp:694,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 80
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 540
    functionDepth: 1
    functionLinenumber: 540
    functionLinenumberEnd: 695
    functionName: Botan_Tests::TLS_Handshake_Test::go
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - static_cast<size_t>
    - randomize
    - std::unique_ptr::send_warning_alert
    - std::unique_ptr::send
    - std::swap
    - test_failure
    - send_warning_alert
    - std::unique_ptr::application_protocol
    - is_active
    - Botan::SymmetricKey::bits_of
    - std::unique_ptr::received_data
    - end_timer
    - min
    - send
    - std::vector::data
    - get_acceptable_cas
    - confirm
    - std::unique_ptr::key_material_export
    - is_closed
    - next_byte
    - Botan::TLS::Server_Information
    - get_first_attribute
    - key_material_export
    - received_data
    - std::vector::size
    - std::unique_ptr::is_closed
    - std::unique_ptr::close
    - application_protocol
    - start_timer
    - std::unique_ptr::is_active
    - empty
    - peer_cert_chain
    - std::make_unique<Botan::TLS::Client>
    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: 699
      start: 699
    functionDepth: 0
    functionLinenumber: 699
    functionLinenumberEnd: 699
    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:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - version
    argTypes:
    - Botan::TLS::Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 701
    functionDepth: 1
    functionLinenumber: 701
    functionLinenumberEnd: 704
    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: 706
      start: 706
    functionDepth: 0
    functionLinenumber: 706
    functionLinenumberEnd: 706
    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: 708
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 708
    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: 710
      start: 710
    functionDepth: 0
    functionLinenumber: 710
    functionLinenumberEnd: 710
    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: 712
      start: 712
    functionDepth: 0
    functionLinenumber: 712
    functionLinenumberEnd: 712
    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:737,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: 737
      start: 736
    functionDepth: 0
    functionLinenumber: 736
    functionLinenumberEnd: 737
    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: 739
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 739
    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:741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 741
    functionDepth: 0
    functionLinenumber: 741
    functionLinenumberEnd: 741
    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: 745
      start: 743
    functionDepth: 0
    functionLinenumber: 743
    functionLinenumberEnd: 745
    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: 747
      start: 747
    functionDepth: 0
    functionLinenumber: 747
    functionLinenumberEnd: 747
    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&, bool) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_p
      Src: /src/botan/src/tests/unit_tls.cpp:749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 749
    functionDepth: 0
    functionLinenumber: 749
    functionLinenumberEnd: 749
    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: 751
      start: 751
    functionDepth: 0
    functionLinenumber: 751
    functionLinenumberEnd: 751
    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:754,1
    - Dst: Invalid_State
      Src: /src/botan/src/tests/unit_tls.cpp:755,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 753
    functionDepth: 1
    functionLinenumber: 753
    functionLinenumberEnd: 758
    functionName: Botan_Tests::HardwareEcdhKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 9
    functionsReached:
    - empty
    - Invalid_State
    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:760,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 760
    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:763,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 762
    functionDepth: 1
    functionLinenumber: 762
    functionLinenumberEnd: 764
    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:767,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/unit_tls.cpp:767,1
    - Dst: Botan_Tests::HardwareEcdhKey::raw_public_key_bits
      Src: /src/botan/src/tests/unit_tls.cpp:767,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 766
    functionDepth: 1
    functionLinenumber: 766
    functionLinenumberEnd: 768
    functionName: Botan_Tests::HardwareEcdhKey::public_key
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::ECDH_PublicKey>
    - Botan_Tests::HardwareEcdhKey::raw_public_key_bits
    - Botan::EC_AffinePoint::EC_AffinePoint
    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:771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 772
    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&)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::HardwareEcdhKey::raw_public_key_bits
      Src: /src/botan/src/tests/unit_tls.cpp:774,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 774
      start: 774
    functionDepth: 0
    functionLinenumber: 774
    functionLinenumberEnd: 774
    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: ECDH_PrivateKey
      Src: /src/botan/src/tests/unit_tls.cpp:782,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/unit_tls.cpp:784,1
    - Dst: auto::public_value
      Src: /src/botan/src/tests/unit_tls.cpp:785,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: 787
      start: 776
    functionDepth: 1
    functionLinenumber: 776
    functionLinenumberEnd: 787
    functionName: Botan_Tests::HardwareEcdhKey::custom_ephemeral_agreement
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::PK_Key_Agreement::derive_key
    - auto::public_value
    - ECDH_PrivateKey
    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:808,1
    - Dst: TLS_Handshake_Test::go
      Src: /src/botan/src/tests/unit_tls.cpp:817,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:818,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:818,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:820,1
    - Dst: TLS_Handshake_Test::go
      Src: /src/botan/src/tests/unit_tls.cpp:829,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:830,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:830,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:833,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/unit_tls.cpp:833,1
    - Dst: what
      Src: /src/botan/src/tests/unit_tls.cpp:833,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: 835
      start: 797
    functionDepth: 1
    functionLinenumber: 797
    functionLinenumberEnd: 835
    functionName: Botan_Tests::TLS_Unit_Tests::test_with_policy
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 9
    functionsReached:
    - to_string
    - TLS_Handshake_Test::go
    - push_back
    - Botan_Tests::Test::Result::Failure
    - TLS_Handshake_Test::results
    - what
    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:848,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:849,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:850,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:851,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:852,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:854,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:855,1
    - Dst: find
      Src: /src/botan/src/tests/unit_tls.cpp:857,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:858,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_with_policy
      Src: /src/botan/src/tests/unit_tls.cpp:864,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: 866
      start: 837
    functionDepth: 2
    functionLinenumber: 837
    functionLinenumberEnd: 866
    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
    - find
    - Botan_Tests::TLS_Unit_Tests::test_with_policy
    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:879,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: 890
      start: 868
    functionDepth: 1
    functionLinenumber: 868
    functionLinenumberEnd: 890
    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:903,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:904,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:905,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:906,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:907,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:908,1
    - Dst: find
      Src: /src/botan/src/tests/unit_tls.cpp:910,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:911,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:915,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_with_policy
      Src: /src/botan/src/tests/unit_tls.cpp:921,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: 923
      start: 892
    functionDepth: 2
    functionLinenumber: 892
    functionLinenumberEnd: 923
    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
    - find
    - Botan_Tests::TLS_Unit_Tests::test_with_policy
    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:931,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_Noop>
      Src: /src/botan/src/tests/unit_tls.cpp:932,1
    - Dst: type_string
      Src: /src/botan/src/tests/unit_tls.cpp:937,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:937,1
    - Dst: TLS_Handshake_Test::set_custom_client_tls_session_established_callback
      Src: /src/botan/src/tests/unit_tls.cpp:946,1
    - Dst: std::rethrow_exception
      Src: /src/botan/src/tests/unit_tls.cpp:947,1
    - Dst: TLS_Handshake_Test::set_server_expected_handshake_alert
      Src: /src/botan/src/tests/unit_tls.cpp:948,1
    - Dst: TLS_Handshake_Test::go
      Src: /src/botan/src/tests/unit_tls.cpp:950,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:951,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:951,1
    - Dst: type_string
      Src: /src/botan/src/tests/unit_tls.cpp:958,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:958,1
    - Dst: TLS_Handshake_Test::set_custom_server_tls_session_established_callback
      Src: /src/botan/src/tests/unit_tls.cpp:967,1
    - Dst: std::rethrow_exception
      Src: /src/botan/src/tests/unit_tls.cpp:968,1
    - Dst: TLS_Handshake_Test::set_client_expected_handshake_alert
      Src: /src/botan/src/tests/unit_tls.cpp:969,1
    - Dst: TLS_Handshake_Test::go
      Src: /src/botan/src/tests/unit_tls.cpp:971,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:972,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:972,1
    - Dst: client_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:976,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:976,1
    - Dst: TLS_Exception
      Src: /src/botan/src/tests/unit_tls.cpp:977,1
    - Dst: client_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:979,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:979,1
    - Dst: Botan::Invalid_Authentication_Tag::Invalid_Authentication_Tag
      Src: /src/botan/src/tests/unit_tls.cpp:979,1
    - Dst: client_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:981,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:981,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/unit_tls.cpp:981,1
    - Dst: server_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:984,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:984,1
    - Dst: TLS_Exception
      Src: /src/botan/src/tests/unit_tls.cpp:985,1
    - Dst: server_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:987,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:987,1
    - Dst: Botan::Invalid_Authentication_Tag::Invalid_Authentication_Tag
      Src: /src/botan/src/tests/unit_tls.cpp:988,1
    - Dst: server_aborts
      Src: /src/botan/src/tests/unit_tls.cpp:990,1
    - Dst: std::make_exception_ptr
      Src: /src/botan/src/tests/unit_tls.cpp:990,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/unit_tls.cpp:990,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: 992
      start: 925
    functionDepth: 1
    functionLinenumber: 925
    functionLinenumberEnd: 992
    functionName: Botan_Tests::TLS_Unit_Tests::test_session_established_abort
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 3
    functionsReached:
    - TLS_Handshake_Test::set_server_expected_handshake_alert
    - TLS_Handshake_Test::results
    - server_aborts
    - TLS_Handshake_Test::set_custom_client_tls_session_established_callback
    - std::runtime_error
    - TLS_Exception
    - std::make_exception_ptr
    - to_string
    - TLS_Handshake_Test::set_custom_server_tls_session_established_callback
    - client_aborts
    - TLS_Handshake_Test::go
    - push_back
    - Botan::Invalid_Authentication_Tag::Invalid_Authentication_Tag
    - type_string
    - TLS_Handshake_Test::set_client_expected_handshake_alert
    - std::make_shared<Botan::TLS::Session_Manager_Noop>
    - std::make_shared<Test_Policy>
    - std::rethrow_exception
    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:997,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_tls.cpp:1006,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:1006,1
    - Dst: std::make_shared<Test_Policy>
      Src: /src/botan/src/tests/unit_tls.cpp:1010,1
    - Dst: auto::set
      Src: /src/botan/src/tests/unit_tls.cpp:1011,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/unit_tls.cpp:1011,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/unit_tls.cpp:1011,1
    - Dst: wire_code
      Src: /src/botan/src/tests/unit_tls.cpp:1011,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:1014,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1024,1
    - Dst: TLS_Handshake_Test::set_custom_client_tls_generate_ephemeral_ecdh_key_callback
      Src: /src/botan/src/tests/unit_tls.cpp:1029,1
    - Dst: require
      Src: /src/botan/src/tests/unit_tls.cpp:1034,1
    - Dst: is_ecdh_named_curve
      Src: /src/botan/src/tests/unit_tls.cpp:1035,1
    - Dst: std::make_unique<HardwareEcdhKey>
      Src: /src/botan/src/tests/unit_tls.cpp:1036,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls.cpp:1036,1
    - Dst: to_string
      Src: /src/botan/src/tests/unit_tls.cpp:1036,1
    - Dst: TLS_Handshake_Test::set_custom_client_tls_ephemeral_key_agreement_callback
      Src: /src/botan/src/tests/unit_tls.cpp:1040,1
    - Dst: std::get_if<Botan::TLS::Group_Params>
      Src: /src/botan/src/tests/unit_tls.cpp:1048,1
    - Dst: require
      Src: /src/botan/src/tests/unit_tls.cpp:1049,1
    - Dst: require
      Src: /src/botan/src/tests/unit_tls.cpp:1051,1
    - Dst: auto*::is_ecdh_named_curve
      Src: /src/botan/src/tests/unit_tls.cpp:1052,1
    - Dst: dynamic_cast<const HardwareEcdhKey*>
      Src: /src/botan/src/tests/unit_tls.cpp:1054,1
    - Dst: require
      Src: /src/botan/src/tests/unit_tls.cpp:1055,1
    - Dst: auto*::custom_ephemeral_agreement
      Src: /src/botan/src/tests/unit_tls.cpp:1058,1
    - Dst: TLS_Handshake_Test::go
      Src: /src/botan/src/tests/unit_tls.cpp:1061,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1062,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1063,1
    - Dst: push_back
      Src: /src/botan/src/tests/unit_tls.cpp:1064,1
    - Dst: TLS_Handshake_Test::results
      Src: /src/botan/src/tests/unit_tls.cpp:1064,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: 1066
      start: 994
    functionDepth: 1
    functionLinenumber: 994
    functionLinenumberEnd: 1066
    functionName: Botan_Tests::TLS_Unit_Tests::test_custom_ecdh_provider
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 3
    functionsReached:
    - is_ecdh_named_curve
    - Botan::hex_encode
    - TLS_Handshake_Test::set_custom_client_tls_generate_ephemeral_ecdh_key_callback
    - auto*::is_ecdh_named_curve
    - push_back
    - dynamic_cast<const HardwareEcdhKey*>
    - TLS_Handshake_Test::results
    - auto*::custom_ephemeral_agreement
    - auto::set
    - require
    - std::make_shared<Test_Policy>
    - std::make_unique<HardwareEcdhKey>
    - Botan::EC_Group::supports_named_group
    - TLS_Handshake_Test::set_custom_client_tls_ephemeral_key_agreement_callback
    - Botan::EC_Group::from_name
    - to_string
    - Botan::store_be
    - TLS_Handshake_Test::go
    - std::get_if<Botan::TLS::Group_Params>
    - std::make_shared<Botan::TLS::Session_Manager_Noop>
    - wire_code
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::new_shared_rng
      Src: /src/botan/src/tests/unit_tls.cpp:1072,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_name
      Src: /src/botan/src/tests/unit_tls.cpp:1072,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_SQLite>
      Src: /src/botan/src/tests/unit_tls.cpp:1078,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_SQLite>
      Src: /src/botan/src/tests/unit_tls.cpp:1079,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/unit_tls.cpp:1083,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/unit_tls.cpp:1087,1
    - Dst: create_creds
      Src: /src/botan/src/tests/unit_tls.cpp:1090,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_all_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1094,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_all_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1104,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_all_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1116,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_all_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1118,1
    - Dst: std::shared_ptr::remove_all
      Src: /src/botan/src/tests/unit_tls.cpp:1122,1
    - Dst: std::shared_ptr::remove_all
      Src: /src/botan/src/tests/unit_tls.cpp:1124,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1126,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1131,1
    - Dst: std::make_shared<Botan::TLS::Strict_Policy_Without_TLS13>
      Src: /src/botan/src/tests/unit_tls.cpp:1134,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_with_policy
      Src: /src/botan/src/tests/unit_tls.cpp:1135,1
    - Dst: std::make_shared<Botan::TLS::NSA_Suite_B_128>
      Src: /src/botan/src/tests/unit_tls.cpp:1144,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_with_policy
      Src: /src/botan/src/tests/unit_tls.cpp:1145,1
    - Dst: std::shared_ptr::remove_all
      Src: /src/botan/src/tests/unit_tls.cpp:1155,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1157,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1158,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1160,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1171,1
    - Dst: std::shared_ptr::remove_all
      Src: /src/botan/src/tests/unit_tls.cpp:1182,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1185,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1190,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1194,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1204,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1214,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1226,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1238,1
    - Dst: create_creds
      Src: /src/botan/src/tests/unit_tls.cpp:1249,1
    - Dst: std::shared_ptr::remove_all
      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:1252,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/unit_tls.cpp:1264,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/unit_tls.cpp:1265,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1269,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:1280,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1283,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1284,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1288,1
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/unit_tls.cpp:1293,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/unit_tls.cpp:1307,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_modern_versions
      Src: /src/botan/src/tests/unit_tls.cpp:1312,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_session_established_abort
      Src: /src/botan/src/tests/unit_tls.cpp:1327,1
    - Dst: Botan_Tests::TLS_Unit_Tests::test_custom_ecdh_provider
      Src: /src/botan/src/tests/unit_tls.cpp:1333,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1336
      start: 1069
    functionDepth: 3
    functionLinenumber: 1069
    functionLinenumberEnd: 1336
    functionName: Botan_Tests::TLS_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::TLS_Unit_Tests::test_custom_ecdh_provider
    - Botan_Tests::TLS_Unit_Tests::test_all_versions
    - Botan_Tests::TLS_Unit_Tests::test_modern_versions
    - std::shared_ptr::remove_all
    - std::make_shared<Botan::TLS::NSA_Suite_B_128>
    - Botan::EC_Group::supports_application_specific_group
    - Botan_Tests::TLS_Unit_Tests::test_name
    - std::make_shared<Botan::TLS::Session_Manager_In_Memory>
    - Botan_Tests::Test::new_shared_rng
    - create_creds
    - std::make_shared<Botan::TLS::Session_Manager_SQLite>
    - Botan::OID::register_oid
    - std::make_shared<Botan::TLS::Strict_Policy_Without_TLS13>
    - Botan_Tests::TLS_Unit_Tests::test_session_established_abort
    - Botan_Tests::TLS_Unit_Tests::test_with_policy
    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:1350,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1350,1
    - Dst: begin
      Src: /src/botan/src/tests/unit_tls.cpp:1350,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1350,1
    - Dst: insert
      Src: /src/botan/src/tests/unit_tls.cpp:1354,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1354,1
    - Dst: begin
      Src: /src/botan/src/tests/unit_tls.cpp:1354,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1354,1
    - Dst: test_success
      Src: /src/botan/src/tests/unit_tls.cpp:1362,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1377,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1381,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1385,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1389,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/unit_tls.cpp:1392,1
    - Dst: std::vector<std::string>
      Src: /src/botan/src/tests/unit_tls.cpp:1398,1
    - Dst: Botan_Tests::Test::new_shared_rng
      Src: /src/botan/src/tests/unit_tls.cpp:1411,1
    - Dst: Botan_Tests::DTLS_Reconnection_Test::test_name
      Src: /src/botan/src/tests/unit_tls.cpp:1411,1
    - Dst: std::make_shared<Datagram_PSK_Policy>
      Src: /src/botan/src/tests/unit_tls.cpp:1413,1
    - Dst: std::make_shared<Datagram_PSK_Policy>
      Src: /src/botan/src/tests/unit_tls.cpp:1414,1
    - Dst: std::make_shared<Credentials_PSK>
      Src: /src/botan/src/tests/unit_tls.cpp:1415,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/tests/unit_tls.cpp:1416,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_Noop>
      Src: /src/botan/src/tests/unit_tls.cpp:1417,1
    - Dst: std::make_shared<Test_Callbacks>
      Src: /src/botan/src/tests/unit_tls.cpp:1421,1
    - Dst: std::make_shared<Test_Callbacks>
      Src: /src/botan/src/tests/unit_tls.cpp:1426,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/unit_tls.cpp:1432,1
    - Dst: Botan::TLS::latest_dtls_version
      Src: /src/botan/src/tests/unit_tls.cpp:1433,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:1446,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1450,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:1452,1
    - Dst: Botan::TLS::Server::received_data
      Src: /src/botan/src/tests/unit_tls.cpp:1453,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:1453,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:1453,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1457,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:1459,1
    - Dst: Botan::TLS::Client::received_data
      Src: /src/botan/src/tests/unit_tls.cpp:1460,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:1460,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:1460,1
    - Dst: Botan::TLS::Client::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:1464,1
    - Dst: Botan::TLS::Client::send
      Src: /src/botan/src/tests/unit_tls.cpp:1465,1
    - Dst: Botan::TLS::Server::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:1469,1
    - Dst: Botan::TLS::Server::send
      Src: /src/botan/src/tests/unit_tls.cpp:1470,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1473,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1473,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:1474,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:1475,1
    - Dst: std::vector::clear
      Src: /src/botan/src/tests/unit_tls.cpp:1484,1
    - Dst: std::vector::clear
      Src: /src/botan/src/tests/unit_tls.cpp:1485,1
    - Dst: std::make_shared<Test_Callbacks>
      Src: /src/botan/src/tests/unit_tls.cpp:1489,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/unit_tls.cpp:1495,1
    - Dst: Botan::TLS::latest_dtls_version
      Src: /src/botan/src/tests/unit_tls.cpp:1496,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls.cpp:1510,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1514,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:1516,1
    - Dst: Botan::TLS::Server::received_data
      Src: /src/botan/src/tests/unit_tls.cpp:1517,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:1517,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:1517,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1521,1
    - Dst: std::swap
      Src: /src/botan/src/tests/unit_tls.cpp:1523,1
    - Dst: Botan::TLS::Client::received_data
      Src: /src/botan/src/tests/unit_tls.cpp:1524,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/unit_tls.cpp:1524,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/unit_tls.cpp:1524,1
    - Dst: Botan::TLS::Client::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:1528,1
    - Dst: Botan::TLS::Client::send
      Src: /src/botan/src/tests/unit_tls.cpp:1529,1
    - Dst: Botan::TLS::Server::is_active
      Src: /src/botan/src/tests/unit_tls.cpp:1533,1
    - Dst: Botan::TLS::Server::send
      Src: /src/botan/src/tests/unit_tls.cpp:1534,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1537,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/unit_tls.cpp:1537,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:1538,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_tls.cpp:1539,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 94
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1545
      start: 1343
    functionDepth: 1
    functionLinenumber: 1343
    functionLinenumberEnd: 1545
    functionName: Botan_Tests::DTLS_Reconnection_Test::run
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Client::received_data
    - Botan::TLS::Server::is_active
    - Botan::SymmetricKey
    - Test::Result::test_failure
    - std::swap
    - std::make_shared<Test_Callbacks>
    - begin
    - Botan::TLS::Server::received_data
    - test_success
    - Test_Error
    - std::vector::data
    - Botan_Tests::DTLS_Reconnection_Test::test_name
    - std::vector<std::string>
    - Botan::TLS::Client::is_active
    - Botan::TLS::Client::send
    - std::make_shared<Credentials_PSK>
    - Botan::TLS::Server_Information
    - std::vector::clear
    - std::vector::empty
    - std::make_shared<Botan::TLS::Session_Manager_In_Memory>
    - Botan::TLS::Server::send
    - std::vector::size
    - Botan::TLS::latest_dtls_version
    - std::make_shared<Botan::TLS::Session_Manager_Noop>
    - std::make_shared<Datagram_PSK_Policy>
    - Test::Result::test_eq
    - end
    - Botan_Tests::Test::new_shared_rng
    - insert
    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: 1347
      start: 1346
    functionDepth: 0
    functionLinenumber: 1346
    functionLinenumberEnd: 1347
    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:1350,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1350,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/unit_tls.cpp:1350,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/unit_tls.cpp:1350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1351
      start: 1349
    functionDepth: 0
    functionLinenumber: 1349
    functionLinenumberEnd: 1351
    functionName: Botan_Tests::DTLS_Reconnection_Test::Test_Callbacks::tls_emit_data
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - end
    - insert
    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:1354,1
    - Dst: end
      Src: /src/botan/src/tests/unit_tls.cpp:1354,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/unit_tls.cpp:1354,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/unit_tls.cpp:1354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1355
      start: 1353
    functionDepth: 0
    functionLinenumber: 1353
    functionLinenumberEnd: 1355
    functionName: Botan_Tests::DTLS_Reconnection_Test::Test_Callbacks::tls_record_received
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - end
    - insert
    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: 1359
      start: 1357
    functionDepth: 0
    functionLinenumber: 1357
    functionLinenumberEnd: 1359
    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:1362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1363
      start: 1361
    functionDepth: 0
    functionLinenumber: 1361
    functionLinenumberEnd: 1363
    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:1377,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1381,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1385,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/unit_tls.cpp:1389,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/unit_tls.cpp:1392,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 2
    argNames:
    - ' type'
    - ' context'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1393
      start: 1373
    functionDepth: 0
    functionLinenumber: 1373
    functionLinenumberEnd: 1393
    functionName: Botan_Tests::DTLS_Reconnection_Test::Credentials_PSK::psk
    functionSourceFile: /src/botan/src/tests/unit_tls.cpp
    functionUses: 0
    functionsReached:
    - Botan::SymmetricKey
    - Test_Error
    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:1398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1398
      start: 1398
    functionDepth: 0
    functionLinenumber: 1398
    functionLinenumberEnd: 1398
    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: 1400
      start: 1400
    functionDepth: 0
    functionLinenumber: 1400
    functionLinenumberEnd: 1400
    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: 1402
      start: 1402
    functionDepth: 0
    functionLinenumber: 1402
    functionLinenumberEnd: 1402
    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: 1404
      start: 1404
    functionDepth: 0
    functionLinenumber: 1404
    functionLinenumberEnd: 1404
    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: 1406
      start: 1406
    functionDepth: 0
    functionLinenumber: 1406
    functionLinenumberEnd: 1406
    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:23,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_sm2.cpp:24,1
    - 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: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_sm2.cpp:30,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sm2.cpp:30,1
    - Dst: std::make_unique<Botan::SM2_PrivateKey>
      Src: /src/botan/src/tests/test_sm2.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 36
    functionName: Botan_Tests::load_sm2_private_key
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::from_OID
    - std::make_unique<Botan::SM2_PrivateKey>
    - get_req_bn
    - get_req_str
    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: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    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: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::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: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    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:51,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_sm2.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: Botan_Tests::SM2_Signature_KAT_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - get_opt_str
    - 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_sm2.cpp:55,1
    - Dst: Botan_Tests::SM2_Signature_KAT_Tests::rng
      Src: /src/botan/src/tests/test_sm2.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: Botan_Tests::SM2_Signature_KAT_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Fixed_Output_Position_RNG>
    - Botan_Tests::SM2_Signature_KAT_Tests::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:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    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: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    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: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_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:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    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: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    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:80,1
    - Dst: Botan_Tests::SM2_Encryption_KAT_Tests::rng
      Src: /src/botan/src/tests/test_sm2.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: Botan_Tests::SM2_Encryption_KAT_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Fixed_Output_Position_RNG>
    - Botan_Tests::SM2_Encryption_KAT_Tests::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:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 85
    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:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_sm2.cpp:23,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_sm2.cpp:24,1
    - 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: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_sm2.cpp:30,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sm2.cpp:30,1
    - Dst: std::make_unique<Botan::SM2_PrivateKey>
      Src: /src/botan/src/tests/test_sm2.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 36
    functionName: Botan_Tests::load_sm2_private_key
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::from_OID
    - std::make_unique<Botan::SM2_PrivateKey>
    - get_req_bn
    - get_req_str
    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: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    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: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::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: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    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:51,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_sm2.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: Botan_Tests::SM2_Signature_KAT_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - get_opt_str
    - 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_sm2.cpp:55,1
    - Dst: Botan_Tests::SM2_Signature_KAT_Tests::rng
      Src: /src/botan/src/tests/test_sm2.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: Botan_Tests::SM2_Signature_KAT_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Fixed_Output_Position_RNG>
    - Botan_Tests::SM2_Signature_KAT_Tests::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:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    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: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    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: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_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:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    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: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    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:80,1
    - Dst: Botan_Tests::SM2_Encryption_KAT_Tests::rng
      Src: /src/botan/src/tests/test_sm2.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: Botan_Tests::SM2_Encryption_KAT_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Fixed_Output_Position_RNG>
    - Botan_Tests::SM2_Encryption_KAT_Tests::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:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 85
    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_AffinePoint::EC_AffinePoint
    - Botan::EC_Group
    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: get_req_bn
      Src: /src/botan/src/tests/test_sm2.cpp:23,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_sm2.cpp:24,1
    - 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: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_sm2.cpp:30,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sm2.cpp:30,1
    - Dst: std::make_unique<Botan::SM2_PrivateKey>
      Src: /src/botan/src/tests/test_sm2.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 36
    functionName: Botan_Tests::load_sm2_private_key
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::from_OID
    - std::make_unique<Botan::SM2_PrivateKey>
    - get_req_bn
    - get_req_str
    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: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    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: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::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: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    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:51,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_sm2.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: Botan_Tests::SM2_Signature_KAT_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - get_opt_str
    - 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_sm2.cpp:55,1
    - Dst: Botan_Tests::SM2_Signature_KAT_Tests::rng
      Src: /src/botan/src/tests/test_sm2.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: Botan_Tests::SM2_Signature_KAT_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Fixed_Output_Position_RNG>
    - Botan_Tests::SM2_Signature_KAT_Tests::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:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    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: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    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: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_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:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    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: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    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:80,1
    - Dst: Botan_Tests::SM2_Encryption_KAT_Tests::rng
      Src: /src/botan/src/tests/test_sm2.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: Botan_Tests::SM2_Encryption_KAT_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Fixed_Output_Position_RNG>
    - Botan_Tests::SM2_Encryption_KAT_Tests::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:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 85
    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:
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_sm2.cpp:23,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_sm2.cpp:24,1
    - 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: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_sm2.cpp:30,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_sm2.cpp:30,1
    - Dst: std::make_unique<Botan::SM2_PrivateKey>
      Src: /src/botan/src/tests/test_sm2.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 36
    functionName: Botan_Tests::load_sm2_private_key
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::from_OID
    - std::make_unique<Botan::SM2_PrivateKey>
    - get_req_bn
    - get_req_str
    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: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    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: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::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: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    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:51,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_sm2.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: Botan_Tests::SM2_Signature_KAT_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - get_opt_str
    - 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_sm2.cpp:55,1
    - Dst: Botan_Tests::SM2_Signature_KAT_Tests::rng
      Src: /src/botan/src/tests/test_sm2.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: Botan_Tests::SM2_Signature_KAT_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Fixed_Output_Position_RNG>
    - Botan_Tests::SM2_Signature_KAT_Tests::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:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    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: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    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: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_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:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    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: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    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:80,1
    - Dst: Botan_Tests::SM2_Encryption_KAT_Tests::rng
      Src: /src/botan/src/tests/test_sm2.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: Botan_Tests::SM2_Encryption_KAT_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_sm2.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Fixed_Output_Position_RNG>
    - Botan_Tests::SM2_Encryption_KAT_Tests::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:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 85
    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_AffinePoint::EC_AffinePoint
    - Botan::EC_Group
    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: 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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: 3
    functionLinenumber: 20
    functionLinenumberEnd: 57
    functionName: Botan_Tests::test_signature_scheme
    functionSourceFile: /src/botan/src/tests/test_tls_signature_scheme.cpp
    functionUses: 0
    functionsReached:
    - hash_function_name
    - Botan::TLS::Signature_Scheme::to_string
    - padding_string
    - AlgorithmIdentifier
    - algorithm_name
    - Botan_Tests::CHECK
    - is_set
    - Botan_Tests::format
    - key_algorithm_identifier
    - find
    - confirm
    - Botan::TLS::Signature_Scheme::format
    - Botan::TLS::Signature_Scheme::padding_string
    - std::vector::push_back
    - Botan::TLS::Signature_Scheme::all_available_schemes
    - Botan::TLS::Signature_Scheme::is_set
    - Botan::TLS::Signature_Scheme::key_algorithm_identifier
    - not_unknown
    - to_string
    - Botan::TLS::Signature_Scheme::hash_function_name
    - Botan::TLS::Signature_Scheme::algorithm_name
    - Botan::TLS::Signature_Scheme::is_available
    - is_available
    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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: 3
    functionLinenumber: 20
    functionLinenumberEnd: 57
    functionName: Botan_Tests::test_signature_scheme
    functionSourceFile: /src/botan/src/tests/test_tls_signature_scheme.cpp
    functionUses: 0
    functionsReached:
    - hash_function_name
    - Botan::TLS::Signature_Scheme::to_string
    - padding_string
    - AlgorithmIdentifier
    - algorithm_name
    - Botan_Tests::CHECK
    - is_set
    - Botan_Tests::format
    - key_algorithm_identifier
    - find
    - confirm
    - Botan::TLS::Signature_Scheme::format
    - Botan::TLS::Signature_Scheme::padding_string
    - std::vector::push_back
    - Botan::TLS::Signature_Scheme::all_available_schemes
    - Botan::TLS::Signature_Scheme::is_set
    - Botan::TLS::Signature_Scheme::key_algorithm_identifier
    - not_unknown
    - to_string
    - Botan::TLS::Signature_Scheme::hash_function_name
    - Botan::TLS::Signature_Scheme::algorithm_name
    - Botan::TLS::Signature_Scheme::is_available
    - is_available
    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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: 3
    functionLinenumber: 20
    functionLinenumberEnd: 57
    functionName: Botan_Tests::test_signature_scheme
    functionSourceFile: /src/botan/src/tests/test_tls_signature_scheme.cpp
    functionUses: 0
    functionsReached:
    - hash_function_name
    - Botan::TLS::Signature_Scheme::to_string
    - padding_string
    - AlgorithmIdentifier
    - algorithm_name
    - Botan_Tests::CHECK
    - is_set
    - Botan_Tests::format
    - key_algorithm_identifier
    - find
    - confirm
    - Botan::TLS::Signature_Scheme::format
    - Botan::TLS::Signature_Scheme::padding_string
    - std::vector::push_back
    - Botan::TLS::Signature_Scheme::all_available_schemes
    - Botan::TLS::Signature_Scheme::is_set
    - Botan::TLS::Signature_Scheme::key_algorithm_identifier
    - not_unknown
    - to_string
    - Botan::TLS::Signature_Scheme::hash_function_name
    - Botan::TLS::Signature_Scheme::algorithm_name
    - Botan::TLS::Signature_Scheme::is_available
    - is_available
    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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: 3
    functionLinenumber: 20
    functionLinenumberEnd: 57
    functionName: Botan_Tests::test_signature_scheme
    functionSourceFile: /src/botan/src/tests/test_tls_signature_scheme.cpp
    functionUses: 0
    functionsReached:
    - hash_function_name
    - Botan::TLS::Signature_Scheme::to_string
    - padding_string
    - AlgorithmIdentifier
    - algorithm_name
    - Botan_Tests::CHECK
    - is_set
    - Botan_Tests::format
    - key_algorithm_identifier
    - find
    - confirm
    - Botan::TLS::Signature_Scheme::format
    - Botan::TLS::Signature_Scheme::padding_string
    - std::vector::push_back
    - Botan::TLS::Signature_Scheme::all_available_schemes
    - Botan::TLS::Signature_Scheme::is_set
    - Botan::TLS::Signature_Scheme::key_algorithm_identifier
    - not_unknown
    - to_string
    - Botan::TLS::Signature_Scheme::hash_function_name
    - Botan::TLS::Signature_Scheme::algorithm_name
    - Botan::TLS::Signature_Scheme::is_available
    - is_available
    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:27,1
    - Dst: std::make_tuple
      Src: /src/botan/src/tests/test_name_constraint.cpp:31,1
    - Dst: std::make_tuple
      Src: /src/botan/src/tests/test_name_constraint.cpp:35,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:38,1
    - Dst: std::make_tuple
      Src: /src/botan/src/tests/test_name_constraint.cpp:39,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_name_constraint.cpp:48,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_name_constraint.cpp:51,1
    - Dst: std::get<0>
      Src: /src/botan/src/tests/test_name_constraint.cpp:51,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_name_constraint.cpp:52,1
    - Dst: std::get<1>
      Src: /src/botan/src/tests/test_name_constraint.cpp:52,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_name_constraint.cpp:53,1
    - Dst: std::get<1>
      Src: /src/botan/src/tests/test_name_constraint.cpp:54,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_name_constraint.cpp:56,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_name_constraint.cpp:57,1
    - Dst: std::get<2>
      Src: /src/botan/src/tests/test_name_constraint.cpp:58,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_name_constraint.cpp:60,1
    - Dst: Botan::Path_Validation_Result::trust_root
      Src: /src/botan/src/tests/test_name_constraint.cpp:60,1
    - Dst: Botan::Path_Validation_Result
      Src: /src/botan/src/tests/test_name_constraint.cpp:61,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_name_constraint.cpp:64,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_name_constraint.cpp:64,1
    - Dst: std::get<3>
      Src: /src/botan/src/tests/test_name_constraint.cpp:64,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_name_constraint.cpp:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 69
    functionName: Botan_Tests::Name_Constraint_Tests::run
    functionSourceFile: /src/botan/src/tests/test_name_constraint.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - std::vector::emplace_back
    - Botan_Tests::Test::data_file
    - Botan::Path_Validation_Result::successful_validation
    - std::get<2>
    - Botan::Path_Validation_Result
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::test_eq
    - Botan::calendar_point
    - std::make_tuple
    - std::get<0>
    - Botan::Path_Validation_Result::trust_root
    - Botan::Path_Validation_Result::result_string
    - Botan::x509_path_validate
    - std::get<3>
    - std::get<1>
    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:27,1
    - Dst: std::make_tuple
      Src: /src/botan/src/tests/test_name_constraint.cpp:31,1
    - Dst: std::make_tuple
      Src: /src/botan/src/tests/test_name_constraint.cpp:35,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:38,1
    - Dst: std::make_tuple
      Src: /src/botan/src/tests/test_name_constraint.cpp:39,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_name_constraint.cpp:48,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_name_constraint.cpp:51,1
    - Dst: std::get<0>
      Src: /src/botan/src/tests/test_name_constraint.cpp:51,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_name_constraint.cpp:52,1
    - Dst: std::get<1>
      Src: /src/botan/src/tests/test_name_constraint.cpp:52,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_name_constraint.cpp:53,1
    - Dst: std::get<1>
      Src: /src/botan/src/tests/test_name_constraint.cpp:54,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_name_constraint.cpp:56,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_name_constraint.cpp:57,1
    - Dst: std::get<2>
      Src: /src/botan/src/tests/test_name_constraint.cpp:58,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_name_constraint.cpp:60,1
    - Dst: Botan::Path_Validation_Result::trust_root
      Src: /src/botan/src/tests/test_name_constraint.cpp:60,1
    - Dst: Botan::Path_Validation_Result
      Src: /src/botan/src/tests/test_name_constraint.cpp:61,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_name_constraint.cpp:64,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_name_constraint.cpp:64,1
    - Dst: std::get<3>
      Src: /src/botan/src/tests/test_name_constraint.cpp:64,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_name_constraint.cpp:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 69
    functionName: Botan_Tests::Name_Constraint_Tests::run
    functionSourceFile: /src/botan/src/tests/test_name_constraint.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - std::vector::emplace_back
    - Botan_Tests::Test::data_file
    - Botan::Path_Validation_Result::successful_validation
    - std::get<2>
    - Botan::Path_Validation_Result
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::test_eq
    - Botan::calendar_point
    - std::make_tuple
    - std::get<0>
    - Botan::Path_Validation_Result::trust_root
    - Botan::Path_Validation_Result::result_string
    - Botan::x509_path_validate
    - std::get<3>
    - std::get<1>
    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:27,1
    - Dst: std::make_tuple
      Src: /src/botan/src/tests/test_name_constraint.cpp:31,1
    - Dst: std::make_tuple
      Src: /src/botan/src/tests/test_name_constraint.cpp:35,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:38,1
    - Dst: std::make_tuple
      Src: /src/botan/src/tests/test_name_constraint.cpp:39,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_name_constraint.cpp:48,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_name_constraint.cpp:51,1
    - Dst: std::get<0>
      Src: /src/botan/src/tests/test_name_constraint.cpp:51,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_name_constraint.cpp:52,1
    - Dst: std::get<1>
      Src: /src/botan/src/tests/test_name_constraint.cpp:52,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_name_constraint.cpp:53,1
    - Dst: std::get<1>
      Src: /src/botan/src/tests/test_name_constraint.cpp:54,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_name_constraint.cpp:56,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_name_constraint.cpp:57,1
    - Dst: std::get<2>
      Src: /src/botan/src/tests/test_name_constraint.cpp:58,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_name_constraint.cpp:60,1
    - Dst: Botan::Path_Validation_Result::trust_root
      Src: /src/botan/src/tests/test_name_constraint.cpp:60,1
    - Dst: Botan::Path_Validation_Result
      Src: /src/botan/src/tests/test_name_constraint.cpp:61,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_name_constraint.cpp:64,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_name_constraint.cpp:64,1
    - Dst: std::get<3>
      Src: /src/botan/src/tests/test_name_constraint.cpp:64,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_name_constraint.cpp:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 69
    functionName: Botan_Tests::Name_Constraint_Tests::run
    functionSourceFile: /src/botan/src/tests/test_name_constraint.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - std::vector::emplace_back
    - Botan_Tests::Test::data_file
    - Botan::Path_Validation_Result::successful_validation
    - std::get<2>
    - Botan::Path_Validation_Result
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::test_eq
    - Botan::calendar_point
    - std::make_tuple
    - std::get<0>
    - Botan::Path_Validation_Result::trust_root
    - Botan::Path_Validation_Result::result_string
    - Botan::x509_path_validate
    - std::get<3>
    - std::get<1>
    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:27,1
    - Dst: std::make_tuple
      Src: /src/botan/src/tests/test_name_constraint.cpp:31,1
    - Dst: std::make_tuple
      Src: /src/botan/src/tests/test_name_constraint.cpp:35,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:38,1
    - Dst: std::make_tuple
      Src: /src/botan/src/tests/test_name_constraint.cpp:39,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/tests/test_name_constraint.cpp:48,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_name_constraint.cpp:51,1
    - Dst: std::get<0>
      Src: /src/botan/src/tests/test_name_constraint.cpp:51,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_name_constraint.cpp:52,1
    - Dst: std::get<1>
      Src: /src/botan/src/tests/test_name_constraint.cpp:52,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/tests/test_name_constraint.cpp:53,1
    - Dst: std::get<1>
      Src: /src/botan/src/tests/test_name_constraint.cpp:54,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_name_constraint.cpp:56,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/tests/test_name_constraint.cpp:57,1
    - Dst: std::get<2>
      Src: /src/botan/src/tests/test_name_constraint.cpp:58,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/tests/test_name_constraint.cpp:60,1
    - Dst: Botan::Path_Validation_Result::trust_root
      Src: /src/botan/src/tests/test_name_constraint.cpp:60,1
    - Dst: Botan::Path_Validation_Result
      Src: /src/botan/src/tests/test_name_constraint.cpp:61,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_name_constraint.cpp:64,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/tests/test_name_constraint.cpp:64,1
    - Dst: std::get<3>
      Src: /src/botan/src/tests/test_name_constraint.cpp:64,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_name_constraint.cpp:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 69
    functionName: Botan_Tests::Name_Constraint_Tests::run
    functionSourceFile: /src/botan/src/tests/test_name_constraint.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - std::vector::emplace_back
    - Botan_Tests::Test::data_file
    - Botan::Path_Validation_Result::successful_validation
    - std::get<2>
    - Botan::Path_Validation_Result
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Test::Result::test_eq
    - Botan::calendar_point
    - std::make_tuple
    - std::get<0>
    - Botan::Path_Validation_Result::trust_root
    - Botan::Path_Validation_Result::result_string
    - Botan::x509_path_validate
    - std::get<3>
    - std::get<1>
    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:25,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:25,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:25,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:29,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:57,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:58,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:61,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:63,1
    - Dst: Transcript_Hash_State
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:64,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:66,1
    - Dst: Transcript_Hash_State
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:67,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:70,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:73,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:73,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:73,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:74,1
    - Dst: Transcript_Hash_State::previous
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:75,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:76,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:76,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:79,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:82,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:82,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_throws
      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:85,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:88,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:88,1
    - Dst: test_throws
      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:90,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:93,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:97,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:97,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:98,1
    - Dst: Transcript_Hash_State::previous
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:99,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:100,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:100,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:100,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:102,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:102,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:103,1
    - Dst: Transcript_Hash_State::previous
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:103,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:103,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:104,1
    - Dst: Transcript_Hash_State::current
      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: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:107,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:111,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:111,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:112,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:114,1
    - Dst: Transcript_Hash_State::previous
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:115,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:116,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:116,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:116,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:119,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:123,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:123,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::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:125,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:127,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:127,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:127,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:130,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:135,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:136,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:138,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:141,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:142,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:144,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:144,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:144,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:147,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:151,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:152,1
    - Dst: Transcript_Hash_State::clone
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:154,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:155,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:155,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:155,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:156,1
    - Dst: auto::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: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:158,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:159,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:160,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:160,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:161,1
    - Dst: auto::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: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:164,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:168,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:169,1
    - Dst: Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:171,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:174,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:174,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:176,1
    - Dst: auto::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:176,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:176,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:179,1
    - Dst: auto::resize
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:185,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:187,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:188,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:190,1
    - Dst: Transcript_Hash_State::truncated
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:190,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:191,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:191,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:194,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:195,1
    - Dst: Transcript_Hash_State::truncated
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 23
    functionDepth: 3
    functionLinenumber: 23
    functionLinenumberEnd: 198
    functionName: Botan_Tests::transcript_hash
    functionSourceFile: /src/botan/src/tests/test_tls_transcript_hash_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - sha256
    - Botan::unlock
    - Botan::hex_encode
    - test_throws
    - Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
    - auto::current
    - Botan_Tests::CHECK
    - Transcript_Hash_State::clone
    - Transcript_Hash_State::current
    - test_no_throw
    - Botan::HashFunction::create_or_throw
    - auto::resize
    - Transcript_Hash_State::update
    - Transcript_Hash_State::set_algorithm
    - Transcript_Hash_State::previous
    - Transcript_Hash_State
    - 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:25,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:25,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:25,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:29,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:57,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:58,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:61,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:63,1
    - Dst: Transcript_Hash_State
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:64,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:66,1
    - Dst: Transcript_Hash_State
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:67,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:70,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:73,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:73,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:73,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:74,1
    - Dst: Transcript_Hash_State::previous
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:75,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:76,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:76,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:79,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:82,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:82,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_throws
      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:85,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:88,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:88,1
    - Dst: test_throws
      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:90,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:93,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:97,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:97,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:98,1
    - Dst: Transcript_Hash_State::previous
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:99,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:100,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:100,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:100,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:102,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:102,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:103,1
    - Dst: Transcript_Hash_State::previous
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:103,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:103,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:104,1
    - Dst: Transcript_Hash_State::current
      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: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:107,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:111,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:111,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:112,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:114,1
    - Dst: Transcript_Hash_State::previous
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:115,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:116,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:116,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:116,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:119,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:123,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:123,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::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:125,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:127,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:127,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:127,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:130,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:135,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:136,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:138,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:141,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:142,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:144,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:144,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:144,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:147,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:151,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:152,1
    - Dst: Transcript_Hash_State::clone
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:154,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:155,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:155,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:155,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:156,1
    - Dst: auto::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: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:158,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:159,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:160,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:160,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:161,1
    - Dst: auto::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: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:164,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:168,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:169,1
    - Dst: Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:171,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:174,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:174,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:176,1
    - Dst: auto::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:176,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:176,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:179,1
    - Dst: auto::resize
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:185,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:187,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:188,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:190,1
    - Dst: Transcript_Hash_State::truncated
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:190,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:191,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:191,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:194,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:195,1
    - Dst: Transcript_Hash_State::truncated
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 23
    functionDepth: 3
    functionLinenumber: 23
    functionLinenumberEnd: 198
    functionName: Botan_Tests::transcript_hash
    functionSourceFile: /src/botan/src/tests/test_tls_transcript_hash_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - sha256
    - Botan::unlock
    - Botan::hex_encode
    - test_throws
    - Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
    - auto::current
    - Botan_Tests::CHECK
    - Transcript_Hash_State::clone
    - Transcript_Hash_State::current
    - test_no_throw
    - Botan::HashFunction::create_or_throw
    - auto::resize
    - Transcript_Hash_State::update
    - Transcript_Hash_State::set_algorithm
    - Transcript_Hash_State::previous
    - Transcript_Hash_State
    - 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:25,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:25,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:25,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:29,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:57,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:58,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:61,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:63,1
    - Dst: Transcript_Hash_State
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:64,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:66,1
    - Dst: Transcript_Hash_State
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:67,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:70,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:73,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:73,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:73,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:74,1
    - Dst: Transcript_Hash_State::previous
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:75,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:76,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:76,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:79,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:82,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:82,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_throws
      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:85,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:88,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:88,1
    - Dst: test_throws
      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:90,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:93,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:97,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:97,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:98,1
    - Dst: Transcript_Hash_State::previous
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:99,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:100,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:100,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:100,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:102,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:102,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:103,1
    - Dst: Transcript_Hash_State::previous
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:103,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:103,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:104,1
    - Dst: Transcript_Hash_State::current
      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: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:107,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:111,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:111,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:112,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:114,1
    - Dst: Transcript_Hash_State::previous
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:115,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:116,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:116,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:116,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:119,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:123,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:123,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::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:125,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:127,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:127,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:127,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:130,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:135,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:136,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:138,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:141,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:142,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:144,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:144,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:144,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:147,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:151,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:152,1
    - Dst: Transcript_Hash_State::clone
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:154,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:155,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:155,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:155,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:156,1
    - Dst: auto::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: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:158,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:159,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:160,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:160,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:161,1
    - Dst: auto::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: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:164,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:168,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:169,1
    - Dst: Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:171,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:174,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:174,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:176,1
    - Dst: auto::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:176,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:176,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:179,1
    - Dst: auto::resize
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:185,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:187,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:188,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:190,1
    - Dst: Transcript_Hash_State::truncated
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:190,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:191,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:191,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:194,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:195,1
    - Dst: Transcript_Hash_State::truncated
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 23
    functionDepth: 3
    functionLinenumber: 23
    functionLinenumberEnd: 198
    functionName: Botan_Tests::transcript_hash
    functionSourceFile: /src/botan/src/tests/test_tls_transcript_hash_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - sha256
    - Botan::unlock
    - Botan::hex_encode
    - test_throws
    - Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
    - auto::current
    - Botan_Tests::CHECK
    - Transcript_Hash_State::clone
    - Transcript_Hash_State::current
    - test_no_throw
    - Botan::HashFunction::create_or_throw
    - auto::resize
    - Transcript_Hash_State::update
    - Transcript_Hash_State::set_algorithm
    - Transcript_Hash_State::previous
    - Transcript_Hash_State
    - 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:25,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:25,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:25,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:29,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:57,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:58,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:61,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:63,1
    - Dst: Transcript_Hash_State
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:64,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:66,1
    - Dst: Transcript_Hash_State
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:67,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:70,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:73,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:73,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:73,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:74,1
    - Dst: Transcript_Hash_State::previous
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:75,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:76,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:76,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:79,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:82,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:82,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_throws
      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:85,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:88,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:88,1
    - Dst: test_throws
      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:90,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:93,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:97,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:97,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:98,1
    - Dst: Transcript_Hash_State::previous
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:99,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:100,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:100,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:100,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:102,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:102,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:103,1
    - Dst: Transcript_Hash_State::previous
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:103,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:103,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:104,1
    - Dst: Transcript_Hash_State::current
      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: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:107,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:111,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:111,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:112,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:114,1
    - Dst: Transcript_Hash_State::previous
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:115,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:116,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:116,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:116,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:119,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:123,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:123,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::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:125,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:127,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:127,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:127,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:130,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:135,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:136,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:138,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:141,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:142,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:144,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:144,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:144,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:147,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:151,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:152,1
    - Dst: Transcript_Hash_State::clone
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:154,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:155,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:155,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:155,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:156,1
    - Dst: auto::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: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:158,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:159,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:160,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:160,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:161,1
    - Dst: auto::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: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:164,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:168,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:169,1
    - Dst: Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:171,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:174,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:174,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:176,1
    - Dst: auto::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:176,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:176,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:179,1
    - Dst: auto::resize
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:185,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:187,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:188,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:190,1
    - Dst: Transcript_Hash_State::truncated
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:190,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:191,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:191,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:194,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:195,1
    - Dst: Transcript_Hash_State::truncated
      Src: /src/botan/src/tests/test_tls_transcript_hash_13.cpp:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 23
    functionDepth: 3
    functionLinenumber: 23
    functionLinenumberEnd: 198
    functionName: Botan_Tests::transcript_hash
    functionSourceFile: /src/botan/src/tests/test_tls_transcript_hash_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - sha256
    - Botan::unlock
    - Botan::hex_encode
    - test_throws
    - Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
    - auto::current
    - Botan_Tests::CHECK
    - Transcript_Hash_State::clone
    - Transcript_Hash_State::current
    - test_no_throw
    - Botan::HashFunction::create_or_throw
    - auto::resize
    - Transcript_Hash_State::update
    - Transcript_Hash_State::set_algorithm
    - Transcript_Hash_State::previous
    - Transcript_Hash_State
    - 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: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    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:27,1
    - Dst: end
      Src: /src/botan/src/tests/test_psk_db.cpp:29,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_psk_db.cpp:30,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:32,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: 34
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 34
    functionName: Botan_Tests::Test_Map_PSK_Db::test_entry
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - find
    - end
    - test_failure
    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:37,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_psk_db.cpp:37,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_psk_db.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - index
    - value
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    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:41,1
    - Dst: end
      Src: /src/botan/src/tests/test_psk_db.cpp:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - index
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: Botan_Tests::Test_Map_PSK_Db::kv_get
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 0
    functionsReached:
    - find
    - end
    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:49,1
    - Dst: end
      Src: /src/botan/src/tests/test_psk_db.cpp:50,1
    - Dst: erase
      Src: /src/botan/src/tests/test_psk_db.cpp:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: Botan_Tests::Test_Map_PSK_Db::kv_del
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 0
    functionsReached:
    - find
    - erase
    - end
    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:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 63
    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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' master_key'
    argTypes:
    - Botan::secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    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:27,1
    - Dst: end
      Src: /src/botan/src/tests/test_psk_db.cpp:29,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_psk_db.cpp:30,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:32,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: 34
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 34
    functionName: Botan_Tests::Test_Map_PSK_Db::test_entry
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - find
    - end
    - test_failure
    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:37,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_psk_db.cpp:37,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_psk_db.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - index
    - value
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    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:41,1
    - Dst: end
      Src: /src/botan/src/tests/test_psk_db.cpp:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - index
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: Botan_Tests::Test_Map_PSK_Db::kv_get
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 0
    functionsReached:
    - find
    - end
    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:49,1
    - Dst: end
      Src: /src/botan/src/tests/test_psk_db.cpp:50,1
    - Dst: erase
      Src: /src/botan/src/tests/test_psk_db.cpp:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: Botan_Tests::Test_Map_PSK_Db::kv_del
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 0
    functionsReached:
    - find
    - erase
    - end
    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:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 63
    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_sql_db
    - Botan_Tests::PSK_DB_Tests::test_psk_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_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_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_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_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_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_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_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_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_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_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_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_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_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::Result::test_throws
    - Test_Map_PSK_Db::get
    - std::set::count
    - Test_Map_PSK_Db::remove
    - Test_Map_PSK_Db::test_entry
    - Test_Map_PSK_Db::set_str
    - Test_Map_PSK_Db::set_vec
    - Test::Result::test_eq
    - std::set::size
    - Test_Map_PSK_Db::list_names
    - 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: confirm
      Src: /src/botan/src/tests/test_psk_db.cpp:151,1
    - Dst: test_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:
    - test_eq
    - new_statement
    - auto::step
    - auto::get_str
    - confirm
    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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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:
    - Test::Result::test_throws
    - Botan::Encrypted_PSK_Database_SQL::set_str
    - Botan::Encrypted_PSK_Database_SQL::get
    - Botan::Encrypted_PSK_Database_SQL::get_str
    - Botan::Encrypted_PSK_Database_SQL::set_vec
    - std::set::count
    - Botan::Encrypted_PSK_Database_SQL::list_names
    - Botan::Encrypted_PSK_Database_SQL::remove
    - Test::Result::test_eq
    - std::make_shared<Botan::Sqlite3_Database>
    - std::set::size
    - Botan_Tests::PSK_DB_Tests::test_entry
    - Botan_Tests::PSK_DB_Tests::rng
    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: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    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:27,1
    - Dst: end
      Src: /src/botan/src/tests/test_psk_db.cpp:29,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_psk_db.cpp:30,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:32,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: 34
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 34
    functionName: Botan_Tests::Test_Map_PSK_Db::test_entry
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - find
    - end
    - test_failure
    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:37,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_psk_db.cpp:37,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_psk_db.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - index
    - value
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    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:41,1
    - Dst: end
      Src: /src/botan/src/tests/test_psk_db.cpp:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - index
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: Botan_Tests::Test_Map_PSK_Db::kv_get
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 0
    functionsReached:
    - find
    - end
    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:49,1
    - Dst: end
      Src: /src/botan/src/tests/test_psk_db.cpp:50,1
    - Dst: erase
      Src: /src/botan/src/tests/test_psk_db.cpp:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: Botan_Tests::Test_Map_PSK_Db::kv_del
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 0
    functionsReached:
    - find
    - erase
    - end
    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:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 63
    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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' master_key'
    argTypes:
    - Botan::secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    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:27,1
    - Dst: end
      Src: /src/botan/src/tests/test_psk_db.cpp:29,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_psk_db.cpp:30,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_psk_db.cpp:32,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: 34
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 34
    functionName: Botan_Tests::Test_Map_PSK_Db::test_entry
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - find
    - end
    - test_failure
    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:37,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_psk_db.cpp:37,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_psk_db.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - index
    - value
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    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:41,1
    - Dst: end
      Src: /src/botan/src/tests/test_psk_db.cpp:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - index
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: Botan_Tests::Test_Map_PSK_Db::kv_get
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 0
    functionsReached:
    - find
    - end
    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:49,1
    - Dst: end
      Src: /src/botan/src/tests/test_psk_db.cpp:50,1
    - Dst: erase
      Src: /src/botan/src/tests/test_psk_db.cpp:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - index
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: Botan_Tests::Test_Map_PSK_Db::kv_del
    functionSourceFile: /src/botan/src/tests/test_psk_db.cpp
    functionUses: 0
    functionsReached:
    - find
    - erase
    - end
    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:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 63
    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_sql_db
    - Botan_Tests::PSK_DB_Tests::test_psk_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_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_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_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_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_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_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_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_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_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_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_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_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_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::Result::test_throws
    - Test_Map_PSK_Db::get
    - std::set::count
    - Test_Map_PSK_Db::remove
    - Test_Map_PSK_Db::test_entry
    - Test_Map_PSK_Db::set_str
    - Test_Map_PSK_Db::set_vec
    - Test::Result::test_eq
    - std::set::size
    - Test_Map_PSK_Db::list_names
    - 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: confirm
      Src: /src/botan/src/tests/test_psk_db.cpp:151,1
    - Dst: test_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:
    - test_eq
    - new_statement
    - auto::step
    - auto::get_str
    - confirm
    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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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:
    - Test::Result::test_throws
    - Botan::Encrypted_PSK_Database_SQL::set_str
    - Botan::Encrypted_PSK_Database_SQL::get
    - Botan::Encrypted_PSK_Database_SQL::get_str
    - Botan::Encrypted_PSK_Database_SQL::set_vec
    - std::set::count
    - Botan::Encrypted_PSK_Database_SQL::list_names
    - Botan::Encrypted_PSK_Database_SQL::remove
    - Test::Result::test_eq
    - std::make_shared<Botan::Sqlite3_Database>
    - std::set::size
    - Botan_Tests::PSK_DB_Tests::test_entry
    - Botan_Tests::PSK_DB_Tests::rng
    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>
    - Botan::DL_Group
    - get_req_bn
    - get_opt_bn
    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::Sodium::sodium_memzero
    - Botan::DL_Group
    - Botan::DH_PublicKey::public_value
    - get_req_bn
    - get_opt_bn
    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: Botan_Tests::left_encode
      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: Botan_Tests::left_encode
      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: 2
    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:
    - Test::Result::test_throws
    - Botan_Tests::Diffie_Hellman_KAT_Tests::rng
    - std::make_unique<Botan::PK_Key_Agreement>
    - auto::derive_key
    - std::make_unique<Botan::DH_PrivateKey>
    - Botan_Tests::left_encode
    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_eq
      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:
    - std::make_unique<Botan::DH_PublicKey>
    - Test::Result::test_eq
    - auto::check_key
    - get_req_bn
    - Botan_Tests::DH_Invalid_Key_Tests::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: 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::BigInt
    - Botan::DL_Group::from_name
    - std::make_unique<Botan::DH_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: 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>
    - Botan::DL_Group
    - get_req_bn
    - get_opt_bn
    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::Sodium::sodium_memzero
    - Botan::DL_Group
    - Botan::DH_PublicKey::public_value
    - get_req_bn
    - get_opt_bn
    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: Botan_Tests::left_encode
      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: Botan_Tests::left_encode
      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: 2
    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:
    - Test::Result::test_throws
    - Botan_Tests::Diffie_Hellman_KAT_Tests::rng
    - std::make_unique<Botan::PK_Key_Agreement>
    - auto::derive_key
    - std::make_unique<Botan::DH_PrivateKey>
    - Botan_Tests::left_encode
    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_eq
      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:
    - std::make_unique<Botan::DH_PublicKey>
    - Test::Result::test_eq
    - auto::check_key
    - get_req_bn
    - Botan_Tests::DH_Invalid_Key_Tests::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: 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::BigInt
    - Botan::DL_Group::from_name
    - std::make_unique<Botan::DH_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: 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>
    - Botan::DL_Group
    - get_req_bn
    - get_opt_bn
    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::Sodium::sodium_memzero
    - Botan::DL_Group
    - Botan::DH_PublicKey::public_value
    - get_req_bn
    - get_opt_bn
    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: Botan_Tests::left_encode
      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: Botan_Tests::left_encode
      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: 2
    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:
    - Test::Result::test_throws
    - Botan_Tests::Diffie_Hellman_KAT_Tests::rng
    - std::make_unique<Botan::PK_Key_Agreement>
    - auto::derive_key
    - std::make_unique<Botan::DH_PrivateKey>
    - Botan_Tests::left_encode
    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_eq
      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:
    - std::make_unique<Botan::DH_PublicKey>
    - Test::Result::test_eq
    - auto::check_key
    - get_req_bn
    - Botan_Tests::DH_Invalid_Key_Tests::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: 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::BigInt
    - Botan::DL_Group::from_name
    - std::make_unique<Botan::DH_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: 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>
    - Botan::DL_Group
    - get_req_bn
    - get_opt_bn
    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::Sodium::sodium_memzero
    - Botan::DL_Group
    - Botan::DH_PublicKey::public_value
    - get_req_bn
    - get_opt_bn
    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: Botan_Tests::left_encode
      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: Botan_Tests::left_encode
      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: 2
    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:
    - Test::Result::test_throws
    - Botan_Tests::Diffie_Hellman_KAT_Tests::rng
    - std::make_unique<Botan::PK_Key_Agreement>
    - auto::derive_key
    - std::make_unique<Botan::DH_PrivateKey>
    - Botan_Tests::left_encode
    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_eq
      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:
    - std::make_unique<Botan::DH_PublicKey>
    - Test::Result::test_eq
    - auto::check_key
    - get_req_bn
    - Botan_Tests::DH_Invalid_Key_Tests::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: 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::BigInt
    - Botan::DL_Group::from_name
    - std::make_unique<Botan::DH_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:
    - 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:
    - std::vector::push_back
    - Botan_Tests::GF2m_Tests::test_gf_overflow
    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_eq
      Src: /src/botan/src/tests/test_gf2m.cpp:43,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_gf2m.cpp:44,1
    - Dst: Botan::GF2m_Field::gf_square
      Src: /src/botan/src/tests/test_gf2m.cpp:44,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_gf2m.cpp:45,1
    - Dst: Botan::GF2m_Field::gf_mul
      Src: /src/botan/src/tests/test_gf2m.cpp:45,1
    - Dst: Botan::GF2m_Field::gf_l_from_n
      Src: /src/botan/src/tests/test_gf2m.cpp:51,1
    - Dst: Botan::GF2m_Field::gf_square_rr
      Src: /src/botan/src/tests/test_gf2m.cpp:52,1
    - Dst: Botan::GF2m_Field::gf_mul_rrr
      Src: /src/botan/src/tests/test_gf2m.cpp:53,1
    - Dst: Botan::GF2m_Field::gf_mul_nrr
      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
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_gf2m.cpp:56,1
    - Dst: Botan::GF2m_Field::gf_ord
      Src: /src/botan/src/tests/test_gf2m.cpp:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 61
    functionName: Botan_Tests::GF2m_Tests::test_gf_overflow
    functionSourceFile: /src/botan/src/tests/test_gf2m.cpp
    functionUses: 1
    functionsReached:
    - static_cast<Botan::gf2m>
    - Botan::GF2m_Field::gf_square
    - static_cast<size_t>
    - Botan::GF2m_Field::gf_square_rr
    - Botan::GF2m_Field::gf_mul
    - Botan::GF2m_Field::gf_l_from_n
    - Botan::GF2m_Field::gf_mul_nrr
    - Test::Result::test_eq
    - Test::Result::test_gte
    - Botan::GF2m_Field::gf_mul_rrr
    - 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:
    - std::vector::push_back
    - Botan_Tests::GF2m_Tests::test_gf_overflow
    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_eq
      Src: /src/botan/src/tests/test_gf2m.cpp:43,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_gf2m.cpp:44,1
    - Dst: Botan::GF2m_Field::gf_square
      Src: /src/botan/src/tests/test_gf2m.cpp:44,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_gf2m.cpp:45,1
    - Dst: Botan::GF2m_Field::gf_mul
      Src: /src/botan/src/tests/test_gf2m.cpp:45,1
    - Dst: Botan::GF2m_Field::gf_l_from_n
      Src: /src/botan/src/tests/test_gf2m.cpp:51,1
    - Dst: Botan::GF2m_Field::gf_square_rr
      Src: /src/botan/src/tests/test_gf2m.cpp:52,1
    - Dst: Botan::GF2m_Field::gf_mul_rrr
      Src: /src/botan/src/tests/test_gf2m.cpp:53,1
    - Dst: Botan::GF2m_Field::gf_mul_nrr
      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
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_gf2m.cpp:56,1
    - Dst: Botan::GF2m_Field::gf_ord
      Src: /src/botan/src/tests/test_gf2m.cpp:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 61
    functionName: Botan_Tests::GF2m_Tests::test_gf_overflow
    functionSourceFile: /src/botan/src/tests/test_gf2m.cpp
    functionUses: 2
    functionsReached:
    - static_cast<Botan::gf2m>
    - Botan::GF2m_Field::gf_square
    - static_cast<size_t>
    - Botan::GF2m_Field::gf_square_rr
    - Botan::GF2m_Field::gf_mul
    - Botan::GF2m_Field::gf_l_from_n
    - Botan::GF2m_Field::gf_mul_nrr
    - Test::Result::test_eq
    - Test::Result::test_gte
    - Botan::GF2m_Field::gf_mul_rrr
    - 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:
    - std::vector::push_back
    - Botan_Tests::GF2m_Tests::test_gf_overflow
    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_eq
      Src: /src/botan/src/tests/test_gf2m.cpp:43,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_gf2m.cpp:44,1
    - Dst: Botan::GF2m_Field::gf_square
      Src: /src/botan/src/tests/test_gf2m.cpp:44,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_gf2m.cpp:45,1
    - Dst: Botan::GF2m_Field::gf_mul
      Src: /src/botan/src/tests/test_gf2m.cpp:45,1
    - Dst: Botan::GF2m_Field::gf_l_from_n
      Src: /src/botan/src/tests/test_gf2m.cpp:51,1
    - Dst: Botan::GF2m_Field::gf_square_rr
      Src: /src/botan/src/tests/test_gf2m.cpp:52,1
    - Dst: Botan::GF2m_Field::gf_mul_rrr
      Src: /src/botan/src/tests/test_gf2m.cpp:53,1
    - Dst: Botan::GF2m_Field::gf_mul_nrr
      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
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_gf2m.cpp:56,1
    - Dst: Botan::GF2m_Field::gf_ord
      Src: /src/botan/src/tests/test_gf2m.cpp:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 61
    functionName: Botan_Tests::GF2m_Tests::test_gf_overflow
    functionSourceFile: /src/botan/src/tests/test_gf2m.cpp
    functionUses: 3
    functionsReached:
    - static_cast<Botan::gf2m>
    - Botan::GF2m_Field::gf_square
    - static_cast<size_t>
    - Botan::GF2m_Field::gf_square_rr
    - Botan::GF2m_Field::gf_mul
    - Botan::GF2m_Field::gf_l_from_n
    - Botan::GF2m_Field::gf_mul_nrr
    - Test::Result::test_eq
    - Test::Result::test_gte
    - Botan::GF2m_Field::gf_mul_rrr
    - 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:
    - std::vector::push_back
    - Botan_Tests::GF2m_Tests::test_gf_overflow
    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_eq
      Src: /src/botan/src/tests/test_gf2m.cpp:43,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_gf2m.cpp:44,1
    - Dst: Botan::GF2m_Field::gf_square
      Src: /src/botan/src/tests/test_gf2m.cpp:44,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_gf2m.cpp:45,1
    - Dst: Botan::GF2m_Field::gf_mul
      Src: /src/botan/src/tests/test_gf2m.cpp:45,1
    - Dst: Botan::GF2m_Field::gf_l_from_n
      Src: /src/botan/src/tests/test_gf2m.cpp:51,1
    - Dst: Botan::GF2m_Field::gf_square_rr
      Src: /src/botan/src/tests/test_gf2m.cpp:52,1
    - Dst: Botan::GF2m_Field::gf_mul_rrr
      Src: /src/botan/src/tests/test_gf2m.cpp:53,1
    - Dst: Botan::GF2m_Field::gf_mul_nrr
      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
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_gf2m.cpp:56,1
    - Dst: Botan::GF2m_Field::gf_ord
      Src: /src/botan/src/tests/test_gf2m.cpp:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 61
    functionName: Botan_Tests::GF2m_Tests::test_gf_overflow
    functionSourceFile: /src/botan/src/tests/test_gf2m.cpp
    functionUses: 4
    functionsReached:
    - static_cast<Botan::gf2m>
    - Botan::GF2m_Field::gf_square
    - static_cast<size_t>
    - Botan::GF2m_Field::gf_square_rr
    - Botan::GF2m_Field::gf_mul
    - Botan::GF2m_Field::gf_l_from_n
    - Botan::GF2m_Field::gf_mul_nrr
    - Test::Result::test_eq
    - Test::Result::test_gte
    - Botan::GF2m_Field::gf_mul_rrr
    - 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_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_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_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_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_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:
    - Botan_Tests::McEliece_Keygen_Encrypt_Test::hash_bytes
    - auto::shared_key
    - Botan::HMAC_DRBG::initialize_with
    - Botan_Tests::McEliece_Keygen_Encrypt_Test::rng
    - Botan::PK_KEM_Decryptor::decrypt
    - std::vector::data
    - get_req_sz
    - Botan::PK_KEM_Encryptor::encrypt
    - get_req_bin
    - Test::Result::start_timer
    - Botan::HMAC_DRBG::clear
    - Botan::McEliece_PrivateKey::public_key_bits
    - std::vector::size
    - Test::Result::test_note
    - Test::Result::end_timer
    - Botan::McEliece_PrivateKey::private_key_bits
    - Botan_Tests::Test::run_long_tests
    - Test::Result::test_eq
    - auto::encapsulated_shared_key
    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::update
    - auto::output_length
    - std::vector::data
    - Botan::HashFunction::create
    - 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:
    - auto::update
    - Test_Error
    - Botan::hex_encode
    - private_key_bits
    - Botan::HashFunction::create
    - auto::final
    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:
    - auto::update
    - public_key_bits
    - Test_Error
    - Botan::hex_encode
    - Botan::HashFunction::create
    - auto::final
    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_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_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_eq
      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:
    - Test::Result::start_timer
    - public_key_bits
    - Botan_Tests::McEliece_Tests::fingerprint
    - Test::Result::end_timer
    - Botan::McEliece_PrivateKey::private_key_bits
    - std::vector::push_back
    - Botan_Tests::Test::run_long_tests
    - Test::Result::test_eq
    - Botan_Tests::McEliece_Tests::rng
    - Botan_Tests::McEliece_Tests::test_kem
    - 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_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:
    - Test::Result::start_timer
    - Botan::PK_KEM_Decryptor::decrypt
    - Test::Result::end_timer
    - Botan_Tests::Test::run_long_tests
    - auto::shared_key
    - Botan::PK_KEM_Encryptor::encrypt
    - Test::Result::test_eq
    - random_vec
    - auto::encapsulated_shared_key
    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_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_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_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_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_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:
    - Botan_Tests::McEliece_Keygen_Encrypt_Test::hash_bytes
    - auto::shared_key
    - Botan::HMAC_DRBG::initialize_with
    - Botan_Tests::McEliece_Keygen_Encrypt_Test::rng
    - Botan::PK_KEM_Decryptor::decrypt
    - std::vector::data
    - get_req_sz
    - Botan::PK_KEM_Encryptor::encrypt
    - get_req_bin
    - Test::Result::start_timer
    - Botan::HMAC_DRBG::clear
    - Botan::McEliece_PrivateKey::public_key_bits
    - std::vector::size
    - Test::Result::test_note
    - Test::Result::end_timer
    - Botan::McEliece_PrivateKey::private_key_bits
    - Botan_Tests::Test::run_long_tests
    - Test::Result::test_eq
    - auto::encapsulated_shared_key
    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::update
    - auto::output_length
    - std::vector::data
    - Botan::HashFunction::create
    - 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:
    - auto::update
    - Test_Error
    - Botan::hex_encode
    - private_key_bits
    - Botan::HashFunction::create
    - auto::final
    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:
    - auto::update
    - public_key_bits
    - Test_Error
    - Botan::hex_encode
    - Botan::HashFunction::create
    - auto::final
    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_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_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_eq
      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:
    - Test::Result::start_timer
    - public_key_bits
    - Botan_Tests::McEliece_Tests::fingerprint
    - Test::Result::end_timer
    - Botan::McEliece_PrivateKey::private_key_bits
    - std::vector::push_back
    - Botan_Tests::Test::run_long_tests
    - Test::Result::test_eq
    - Botan_Tests::McEliece_Tests::rng
    - Botan_Tests::McEliece_Tests::test_kem
    - 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_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:
    - Test::Result::start_timer
    - Botan::PK_KEM_Decryptor::decrypt
    - Test::Result::end_timer
    - Botan_Tests::Test::run_long_tests
    - auto::shared_key
    - Botan::PK_KEM_Encryptor::encrypt
    - Test::Result::test_eq
    - random_vec
    - auto::encapsulated_shared_key
    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_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_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_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_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_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:
    - Botan_Tests::McEliece_Keygen_Encrypt_Test::hash_bytes
    - auto::shared_key
    - Botan::HMAC_DRBG::initialize_with
    - Botan_Tests::McEliece_Keygen_Encrypt_Test::rng
    - Botan::PK_KEM_Decryptor::decrypt
    - std::vector::data
    - get_req_sz
    - Botan::PK_KEM_Encryptor::encrypt
    - get_req_bin
    - Test::Result::start_timer
    - Botan::HMAC_DRBG::clear
    - Botan::McEliece_PrivateKey::public_key_bits
    - std::vector::size
    - Test::Result::test_note
    - Test::Result::end_timer
    - Botan::McEliece_PrivateKey::private_key_bits
    - Botan_Tests::Test::run_long_tests
    - Test::Result::test_eq
    - auto::encapsulated_shared_key
    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::update
    - auto::output_length
    - std::vector::data
    - Botan::HashFunction::create
    - 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:
    - auto::update
    - Test_Error
    - Botan::hex_encode
    - private_key_bits
    - Botan::HashFunction::create
    - auto::final
    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:
    - auto::update
    - public_key_bits
    - Test_Error
    - Botan::hex_encode
    - Botan::HashFunction::create
    - auto::final
    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_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_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_eq
      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:
    - Test::Result::start_timer
    - public_key_bits
    - Botan_Tests::McEliece_Tests::fingerprint
    - Test::Result::end_timer
    - Botan::McEliece_PrivateKey::private_key_bits
    - std::vector::push_back
    - Botan_Tests::Test::run_long_tests
    - Test::Result::test_eq
    - Botan_Tests::McEliece_Tests::rng
    - Botan_Tests::McEliece_Tests::test_kem
    - 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_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:
    - Test::Result::start_timer
    - Botan::PK_KEM_Decryptor::decrypt
    - Test::Result::end_timer
    - Botan_Tests::Test::run_long_tests
    - auto::shared_key
    - Botan::PK_KEM_Encryptor::encrypt
    - Test::Result::test_eq
    - random_vec
    - auto::encapsulated_shared_key
    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_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_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_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_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_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:
    - Botan_Tests::McEliece_Keygen_Encrypt_Test::hash_bytes
    - auto::shared_key
    - Botan::HMAC_DRBG::initialize_with
    - Botan_Tests::McEliece_Keygen_Encrypt_Test::rng
    - Botan::PK_KEM_Decryptor::decrypt
    - std::vector::data
    - get_req_sz
    - Botan::PK_KEM_Encryptor::encrypt
    - get_req_bin
    - Test::Result::start_timer
    - Botan::HMAC_DRBG::clear
    - Botan::McEliece_PrivateKey::public_key_bits
    - std::vector::size
    - Test::Result::test_note
    - Test::Result::end_timer
    - Botan::McEliece_PrivateKey::private_key_bits
    - Botan_Tests::Test::run_long_tests
    - Test::Result::test_eq
    - auto::encapsulated_shared_key
    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::update
    - auto::output_length
    - std::vector::data
    - Botan::HashFunction::create
    - 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:
    - auto::update
    - Test_Error
    - Botan::hex_encode
    - private_key_bits
    - Botan::HashFunction::create
    - auto::final
    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:
    - auto::update
    - public_key_bits
    - Test_Error
    - Botan::hex_encode
    - Botan::HashFunction::create
    - auto::final
    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_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_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_eq
      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:
    - Test::Result::start_timer
    - public_key_bits
    - Botan_Tests::McEliece_Tests::fingerprint
    - Test::Result::end_timer
    - Botan::McEliece_PrivateKey::private_key_bits
    - std::vector::push_back
    - Botan_Tests::Test::run_long_tests
    - Test::Result::test_eq
    - Botan_Tests::McEliece_Tests::rng
    - Botan_Tests::McEliece_Tests::test_kem
    - 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_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:
    - Test::Result::start_timer
    - Botan::PK_KEM_Decryptor::decrypt
    - Test::Result::end_timer
    - Botan_Tests::Test::run_long_tests
    - auto::shared_key
    - Botan::PK_KEM_Encryptor::encrypt
    - Test::Result::test_eq
    - random_vec
    - auto::encapsulated_shared_key
    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_eq
      Src: /src/botan/src/tests/test_thread_utils.cpp:48,1
    - Dst: Test::Result::test_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:
    - Botan_CLI::Timer::milliseconds
    - Botan::Thread_Pool::run
    - std::move
    - std::vector::push_back
    - std::this_thread::sleep_for
    - Test::Result::test_failure
    - Botan::Thread_Pool::shutdown
    - Test::Result::test_eq
    - get
    - 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_eq
      Src: /src/botan/src/tests/test_thread_utils.cpp:48,1
    - Dst: Test::Result::test_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:
    - Botan_CLI::Timer::milliseconds
    - Botan::Thread_Pool::run
    - std::move
    - std::vector::push_back
    - std::this_thread::sleep_for
    - Test::Result::test_failure
    - Botan::Thread_Pool::shutdown
    - Test::Result::test_eq
    - get
    - 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_eq
      Src: /src/botan/src/tests/test_thread_utils.cpp:48,1
    - Dst: Test::Result::test_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:
    - Botan_CLI::Timer::milliseconds
    - Botan::Thread_Pool::run
    - std::move
    - std::vector::push_back
    - std::this_thread::sleep_for
    - Test::Result::test_failure
    - Botan::Thread_Pool::shutdown
    - Test::Result::test_eq
    - get
    - 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_eq
      Src: /src/botan/src/tests/test_thread_utils.cpp:48,1
    - Dst: Test::Result::test_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:
    - Botan_CLI::Timer::milliseconds
    - Botan::Thread_Pool::run
    - std::move
    - std::vector::push_back
    - std::this_thread::sleep_for
    - Test::Result::test_failure
    - Botan::Thread_Pool::shutdown
    - Test::Result::test_eq
    - get
    - std::vector::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result thread_pool()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:47,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:47,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:49,1
    - Dst: reset
      Src: /src/botan/src/tests/tests.cpp:54,1
    - Dst: min
      Src: /src/botan/src/tests/tests.cpp:59,1
    - Dst: insert
      Src: /src/botan/src/tests/tests.cpp:62,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:62,1
    - Dst: m_fail_log::begin
      Src: /src/botan/src/tests/tests.cpp:62,1
    - Dst: m_fail_log::end
      Src: /src/botan/src/tests/tests.cpp:62,1
    - Dst: insert
      Src: /src/botan/src/tests/tests.cpp:63,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:63,1
    - Dst: m_log::begin
      Src: /src/botan/src/tests/tests.cpp:63,1
    - Dst: m_log::end
      Src: /src/botan/src/tests/tests.cpp:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ' other'
    - ignore_test_name
    argTypes:
    - Result
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 64
    functionName: Test::Result::merge(const Result& other, bool ignore_test_name)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - m_fail_log::begin
    - m_log::end
    - m_fail_log::end
    - Test_Error
    - min
    - who
    - m_log::begin
    - end
    - reset
    - insert
    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:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 70
    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:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 77
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/tests.cpp:80,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:82,1
    - Dst: push_back
      Src: /src/botan/src/tests/tests.cpp:86,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' note'
    - extra
    argTypes:
    - std::string
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 88
    functionName: Test::Result::test_note(const std::string& note, const char* extra)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - empty
    - push_back
    - who
    linkageType: ''
    returnType: void
    signature: void Test::Result::test_note(const std::string& note, const char* extra)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::set::contains
      Src: /src/botan/src/tests/tests.cpp:93,1
    - Dst: test_note
      Src: /src/botan/src/tests/tests.cpp:94,1
    - Dst: std::set::insert
      Src: /src/botan/src/tests/tests.cpp:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' whatever'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 97
    functionName: Test::Result::note_missing(const std::string& whatever)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::set::contains
    - std::set::insert
    - test_note
    linkageType: ''
    returnType: void
    signature: void Test::Result::note_missing(const std::string& whatever)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: m_fn
      Src: /src/botan/src/tests/tests.cpp:103,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:105,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:109,1
    - Dst: what
      Src: /src/botan/src/tests/tests.cpp:109,1
    - Dst: m_expected_exception_check_fn
      Src: /src/botan/src/tests/tests.cpp:111,1
    - Dst: std::current_exception
      Src: /src/botan/src/tests/tests.cpp:111,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:112,1
    - Dst: what
      Src: /src/botan/src/tests/tests.cpp:112,1
    - Dst: has_value
      Src: /src/botan/src/tests/tests.cpp:114,1
    - Dst: value
      Src: /src/botan/src/tests/tests.cpp:114,1
    - Dst: what
      Src: /src/botan/src/tests/tests.cpp:114,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:115,1
    - Dst: value
      Src: /src/botan/src/tests/tests.cpp:116,1
    - Dst: what
      Src: /src/botan/src/tests/tests.cpp:116,1
    - Dst: has_value
      Src: /src/botan/src/tests/tests.cpp:119,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:120,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:124,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 2
    argNames:
    - ' test_name'
    - ' result'
    argTypes:
    - std::string
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 125
    functionName: Test::Result::ThrowExpectations::check(const std::string& test_name,
      Test::Result& result)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - test_success
    - std::current_exception
    - m_expected_exception_check_fn
    - test_failure
    - m_fn
    - what
    - has_value
    - value
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::ThrowExpectations::check(const std::string& test_name,
      Test::Result& result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowExpectations
      Src: /src/botan/src/tests/tests.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' what'
    - ' fn'
    argTypes:
    - std::string
    - std::function<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: Test::Result::test_throws(const std::string& what, const std::function<void()>&
      fn)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - ThrowExpectations
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_throws(const std::string& what, const std::function<void()>&
      fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowExpectations
      Src: /src/botan/src/tests/tests.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' what'
    - ' expected'
    - ' fn'
    argTypes:
    - std::string
    - std::string
    - std::function<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: Test::Result::test_throws(const std::string& what, const std::string&
      expected, const std::function<void()>& fn)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - ThrowExpectations
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_throws(const std::string& what, const std::string&
      expected, const std::function<void()>& fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowExpectations
      Src: /src/botan/src/tests/tests.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' what'
    - ' fn'
    argTypes:
    - std::string
    - std::function<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 137
    functionName: Test::Result::test_no_throw(const std::string& what, const std::function<void()>&
      fn)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - ThrowExpectations
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_no_throw(const std::string& what, const std::function<void()>&
      fn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/tests.cpp:140,1
    - Dst: test_note
      Src: /src/botan/src/tests/tests.cpp:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' note'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 145
    functionName: Test::Result::test_success(const std::string& note)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - test_note
    - Botan_Tests::test_encoding_options
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_success(const std::string& note)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:148,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' what'
    - ' error'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 149
    functionName: Test::Result::test_failure(const std::string& what, const std::string&
      error)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - who
    - test_failure
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_failure(const std::string& what, const std::string&
      error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:152,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:152,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/tests.cpp:152,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/tests.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' what'
    - buf
    - buf_len
    argTypes:
    - std::string
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: Test::Result::test_failure(const std::string& what, const uint8_t
      buf[], size_t buf_len)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::to_string
    - Botan::hex_encode
    - who
    - test_failure
    linkageType: ''
    returnType: void
    signature: void Test::Result::test_failure(const std::string& what, const uint8_t
      buf[], size_t buf_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/botan/src/tests/tests.cpp:157,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/tests.cpp:159,1
    - Dst: std::abort
      Src: /src/botan/src/tests/tests.cpp:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' err'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 163
    functionName: Test::Result::test_failure(const std::string& err)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - std::abort
    - Botan_Tests::test_encoding_options
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_failure(const std::string& err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcmp
      Src: /src/botan/src/tests/tests.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - y
    - len
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 169
    functionName: Botan_Tests::same_contents
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::memcmp
    linkageType: ''
    returnType: bool
    signature: bool same_contents(const uint8_t x[], const uint8_t y[], size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcmp
      Src: /src/botan/src/tests/tests.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - y
    - len
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 169
    functionName: Botan_Tests::same_contents
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::memcmp
    linkageType: ''
    returnType: bool
    signature: bool same_contents(const uint8_t x[], const uint8_t y[], size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: same_contents
      Src: /src/botan/src/tests/tests.cpp:178,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:179,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:179,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 5
    argNames:
    - ' what'
    - produced
    - produced_len
    - expected
    - expected_len
    argTypes:
    - std::string
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 182
    functionName: "Test::Result::test_ne(const std::string& what,\n                           const
      uint8_t produced[],\n                           size_t produced_len,\n                           const
      uint8_t expected[],\n                           size_t expected_len)"
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - same_contents
    - test_success
    - who
    - test_failure
    linkageType: ''
    returnType: bool
    signature: "bool Test::Result::test_ne(const std::string& what,\n                           const
      uint8_t produced[],\n                           size_t produced_len,\n                           const
      uint8_t expected[],\n                           size_t expected_len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: same_contents
      Src: /src/botan/src/tests/tests.cpp:190,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:191,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:196,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/tests.cpp:211,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/tests.cpp:218,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/tests.cpp:219,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/tests.cpp:222,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:225,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:225,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 6
    argNames:
    - producer
    - ' what'
    - produced
    - produced_size
    - expected
    - expected_size
    argTypes:
    - char*
    - std::string
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 226
    functionName: "Test::Result::test_eq(const char* producer,\n                           const
      std::string& what,\n                           const uint8_t produced[],\n                           size_t
      produced_size,\n                           const uint8_t expected[],\n                           size_t
      expected_size)"
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - same_contents
    - test_success
    - Botan::hex_encode
    - std::ostringstream::str
    - test_failure
    - std::vector::size
    - who
    linkageType: ''
    returnType: bool
    signature: "bool Test::Result::test_eq(const char* producer,\n                           const
      std::string& what,\n                           const uint8_t produced[],\n                           size_t
      produced_size,\n                           const uint8_t expected[],\n                           size_t
      expected_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/tests.cpp:229,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:230,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' what_is_it'
    - ' to_examine'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 233
    functionName: Test::Result::test_is_nonempty(const std::string& what_is_it, const
      std::string& to_examine)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - empty
    - test_success
    - test_failure
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_is_nonempty(const std::string& what_is_it,
      const std::string& to_examine)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_is_eq
      Src: /src/botan/src/tests/tests.cpp:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' what'
    - ' produced'
    - ' expected'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 237
    functionName: Test::Result::test_eq(const std::string& what, const std::string&
      produced, const std::string& expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - test_is_eq
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_eq(const std::string& what, const std::string&
      produced, const std::string& expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_is_eq
      Src: /src/botan/src/tests/tests.cpp:240,1
    - Dst: std::string
      Src: /src/botan/src/tests/tests.cpp:240,1
    - Dst: std::string
      Src: /src/botan/src/tests/tests.cpp:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' what'
    - produced
    - expected
    argTypes:
    - std::string
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 241
    functionName: Test::Result::test_eq(const std::string& what, const char* produced,
      const char* expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - test_is_eq
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_eq(const std::string& what, const char* produced,
      const char* expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_is_eq
      Src: /src/botan/src/tests/tests.cpp:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' what'
    - produced
    - expected
    argTypes:
    - std::string
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 245
    functionName: Test::Result::test_eq(const std::string& what, size_t produced,
      size_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - test_is_eq
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_eq(const std::string& what, size_t produced,
      size_t expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_is_eq
      Src: /src/botan/src/tests/tests.cpp:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' what'
    - produced
    - expected
    argTypes:
    - std::string
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 249
    functionName: Test::Result::test_eq_sz(const std::string& what, size_t produced,
      size_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - test_is_eq
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_eq_sz(const std::string& what, size_t produced,
      size_t expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/botan/src/tests/tests.cpp:258,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:259,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:259,1
    - Dst: to_string
      Src: /src/botan/src/tests/tests.cpp:261,1
    - Dst: to_string
      Src: /src/botan/src/tests/tests.cpp:261,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:262,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ' what'
    - ' produced'
    - ' expected'
    argTypes:
    - std::string
    - Botan::OctetString
    - Botan::OctetString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 264
    functionName: "Test::Result::test_eq(const std::string& what,\n                           const
      Botan::OctetString& produced,\n                           const Botan::OctetString&
      expected)"
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - test_success
    - to_string
    - test_failure
    linkageType: ''
    returnType: bool
    signature: "bool Test::Result::test_eq(const std::string& what,\n                           const
      Botan::OctetString& produced,\n                           const Botan::OctetString&
      expected)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:271,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:271,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ' what'
    - produced
    - expected
    argTypes:
    - std::string
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 275
    functionName: Test::Result::test_lt(const std::string& what, size_t produced,
      size_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - test_success
    - test_failure
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_lt(const std::string& what, size_t produced,
      size_t expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:281,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:281,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' what'
    - produced
    - expected
    argTypes:
    - std::string
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 285
    functionName: Test::Result::test_lte(const std::string& what, size_t produced,
      size_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - test_success
    - test_failure
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_lte(const std::string& what, size_t produced,
      size_t expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:293,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:293,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' what'
    - produced
    - expected
    argTypes:
    - std::string
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 297
    functionName: Test::Result::test_gte(const std::string& what, size_t produced,
      size_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - test_success
    - test_failure
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_gte(const std::string& what, size_t produced,
      size_t expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:305,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:305,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' what'
    - produced
    - expected
    argTypes:
    - std::string
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 309
    functionName: Test::Result::test_gt(const std::string& what, size_t produced,
      size_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - test_success
    - test_failure
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_gt(const std::string& what, size_t produced,
      size_t expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:313,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:316,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:316,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' what'
    - ' str1'
    - ' str2'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 317
    functionName: Test::Result::test_ne(const std::string& what, const std::string&
      str1, const std::string& str2)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - test_success
    - who
    - test_failure
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_ne(const std::string& what, const std::string&
      str1, const std::string& str2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:321,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:325,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:326,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' what'
    - produced
    - expected
    argTypes:
    - std::string
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 327
    functionName: Test::Result::test_ne(const std::string& what, size_t produced,
      size_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - test_success
    - who
    - test_failure
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_ne(const std::string& what, size_t produced,
      size_t expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_is_eq
      Src: /src/botan/src/tests/tests.cpp:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' what'
    - ' produced'
    - ' expected'
    argTypes:
    - std::string
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 332
    functionName: Test::Result::test_eq(const std::string& what, const BigInt& produced,
      const BigInt& expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - test_is_eq
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_eq(const std::string& what, const BigInt& produced,
      const BigInt& expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:336,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:340,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:341,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' what'
    - ' produced'
    - ' expected'
    argTypes:
    - std::string
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 342
    functionName: Test::Result::test_ne(const std::string& what, const BigInt& produced,
      const BigInt& expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - test_success
    - who
    - test_failure
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_ne(const std::string& what, const BigInt& produced,
      const BigInt& expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:349,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:353,1
    - Dst: get_affine_x
      Src: /src/botan/src/tests/tests.cpp:353,1
    - Dst: get_affine_y
      Src: /src/botan/src/tests/tests.cpp:353,1
    - Dst: get_affine_x
      Src: /src/botan/src/tests/tests.cpp:354,1
    - Dst: get_affine_y
      Src: /src/botan/src/tests/tests.cpp:354,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:355,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' what'
    - ' a'
    - ' b'
    argTypes:
    - std::string
    - Botan::EC_Point
    - Botan::EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 356
    functionName: Test::Result::test_eq(const std::string& what, const Botan::EC_Point&
      a, const Botan::EC_Point& b)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - test_success
    - std::ostringstream::str
    - test_failure
    - get_affine_x
    - get_affine_y
    - who
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_eq(const std::string& what, const Botan::EC_Point&
      a, const Botan::EC_Point& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_is_eq
      Src: /src/botan/src/tests/tests.cpp:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' what'
    - produced
    - expected
    argTypes:
    - std::string
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 361
    functionName: Test::Result::test_eq(const std::string& what, bool produced, bool
      expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - test_is_eq
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_eq(const std::string& what, bool produced,
      bool expected)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:365,1
    - Dst: Test::Result::test_rc_init(const std::test_note
      Src: /src/botan/src/tests/tests.cpp:379,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:379,1
    - Dst: Test::Result::test_rc_init(const std::test_failure
      Src: /src/botan/src/tests/tests.cpp:381,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:381,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - ' func'
    - rc
    argTypes:
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 385
    functionName: Test::Result::test_rc_init(const std::string& func, int rc)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - test_success
    - Test::Result::test_rc_init(const std::test_failure
    - Test::Result::test_rc_init(const std::test_note
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_rc_init(const std::string& func, int rc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:393,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:393,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' func'
    - expected
    - rc
    argTypes:
    - std::string
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 397
    functionName: Test::Result::test_rc(const std::string& func, int expected, int
      rc)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - test_success
    - test_failure
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_rc(const std::string& func, int expected, int
      rc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/tests.cpp:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - test_name
    - location
    argTypes:
    - std::string
    - CodeLocation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 402
    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:406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 410
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::provider_filter
      Src: /src/botan/src/tests/tests.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_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:421,1
    - Dst: std::setprecision
      Src: /src/botan/src/tests/tests.cpp:423,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:426,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - nanoseconds
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 427
    functionName: Botan_Tests::Test::format_time
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 2
    functionsReached:
    - std::setprecision
    - std::ostringstream::str
    linkageType: ''
    returnType: std::string
    signature: std::string Test::format_time(uint64_t nanoseconds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/tests.cpp:429,1
    - Dst: merge
      Src: /src/botan/src/tests/tests.cpp:431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - who
    - ' downstream_results'
    argTypes:
    - std::string
    - std::vector<Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 433
    functionName: Test::Result::Result(std::string who, const std::vector<Result>&
      downstream_results)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - merge
    linkageType: ''
    returnType: void
    signature: void Test::Result::Result(std::string who, const std::vector<Result>&
      downstream_results)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/tests.cpp:437,1
    - Dst: tests_run
      Src: /src/botan/src/tests/tests.cpp:439,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:445,1
    - Dst: tests_run
      Src: /src/botan/src/tests/tests.cpp:447,1
    - Dst: tests_run
      Src: /src/botan/src/tests/tests.cpp:450,1
    - Dst: format_time
      Src: /src/botan/src/tests/tests.cpp:455,1
    - Dst: tests_failed
      Src: /src/botan/src/tests/tests.cpp:458,1
    - Dst: tests_failed
      Src: /src/botan/src/tests/tests.cpp:459,1
    - Dst: size
      Src: /src/botan/src/tests/tests.cpp:466,1
    - Dst: empty
      Src: /src/botan/src/tests/tests.cpp:474,1
    - Dst: tests_run
      Src: /src/botan/src/tests/tests.cpp:474,1
    - Dst: size
      Src: /src/botan/src/tests/tests.cpp:475,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:480,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 436
    functionDepth: 2
    functionLinenumber: 436
    functionLinenumberEnd: 481
    functionName: Test::Result::result_string() const
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - tests_failed
    - std::ostringstream::str
    - format_time
    - tests_run
    - size
    - Botan_Tests::test_encoding_options
    - empty
    - who
    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: 490
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 490
    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:497,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:498,1
    - Dst: contains
      Src: /src/botan/src/tests/tests.cpp:501,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:502,1
    - Dst: contains
      Src: /src/botan/src/tests/tests.cpp:505,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:506,1
    - Dst: push_back
      Src: /src/botan/src/tests/tests.cpp:510,1
    - Dst: push_back
      Src: /src/botan/src/tests/tests.cpp:514,1
    - Dst: emplace
      Src: /src/botan/src/tests/tests.cpp:517,1
    - Dst: std::move
      Src: /src/botan/src/tests/tests.cpp:517,1
    - Dst: emplace
      Src: /src/botan/src/tests/tests.cpp:518,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: 519
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 519
    functionName: Botan_Tests::Test_Registry::register_test
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Test_Error
    - push_back
    - contains
    - emplace
    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:522,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:523,1
    - Dst: auto::second
      Src: /src/botan/src/tests/tests.cpp:524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' test_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 527
    functionName: Botan_Tests::Test_Registry::get_test
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - auto::second
    - find
    - end
    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::set::insert
      Src: /src/botan/src/tests/tests.cpp:532,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 535
    functionName: Botan_Tests::Test_Registry::registered_tests
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::set::insert
    linkageType: ''
    returnType: std::set<std::string>
    signature: std::set<std::string> registered_tests() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::set::insert
      Src: /src/botan/src/tests/tests.cpp:540,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 543
    functionName: Botan_Tests::Test_Registry::registered_test_categories
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::set::insert
    linkageType: ''
    returnType: std::set<std::string>
    signature: std::set<std::string> registered_test_categories() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/tests.cpp:551,1
    - Dst: contains
      Src: /src/botan/src/tests/tests.cpp:551,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:552,1
    - Dst: empty
      Src: /src/botan/src/tests/tests.cpp:556,1
    - Dst: insert_if_not_exists_and_not_skipped
      Src: /src/botan/src/tests/tests.cpp:564,1
    - Dst: contains
      Src: /src/botan/src/tests/tests.cpp:568,1
    - Dst: insert_if_not_exists_and_not_skipped
      Src: /src/botan/src/tests/tests.cpp:569,1
    - Dst: equal_range
      Src: /src/botan/src/tests/tests.cpp:570,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:570,1
    - Dst: insert_if_not_exists_and_not_skipped
      Src: /src/botan/src/tests/tests.cpp:572,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:575,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - ' requested'
    - ' to_be_skipped'
    argTypes:
    - std::vector<std::string>
    - std::set<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 581
    functionName: Botan_Tests::Test_Registry::filter_registered_tests
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - equal_range
    - std::vector::push_back
    - Test_Error
    - Botan::value_exists
    - empty
    - contains
    - end
    - insert_if_not_exists_and_not_skipped
    linkageType: ''
    returnType: std::vector<std::string>
    signature: "std::vector<std::string> filter_registered_tests(const std::vector<std::string>&
      requested,\n                                                       const std::set<std::string>&
      to_be_skipped)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/tests.cpp:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' test_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 585
    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: 588
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 588
    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: 490
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 490
    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:497,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:498,1
    - Dst: contains
      Src: /src/botan/src/tests/tests.cpp:501,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:502,1
    - Dst: contains
      Src: /src/botan/src/tests/tests.cpp:505,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:506,1
    - Dst: push_back
      Src: /src/botan/src/tests/tests.cpp:510,1
    - Dst: push_back
      Src: /src/botan/src/tests/tests.cpp:514,1
    - Dst: emplace
      Src: /src/botan/src/tests/tests.cpp:517,1
    - Dst: std::move
      Src: /src/botan/src/tests/tests.cpp:517,1
    - Dst: emplace
      Src: /src/botan/src/tests/tests.cpp:518,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: 519
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 519
    functionName: Botan_Tests::Test_Registry::register_test
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Test_Error
    - push_back
    - contains
    - emplace
    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:522,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:523,1
    - Dst: auto::second
      Src: /src/botan/src/tests/tests.cpp:524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' test_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 527
    functionName: Botan_Tests::Test_Registry::get_test
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - auto::second
    - find
    - end
    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::set::insert
      Src: /src/botan/src/tests/tests.cpp:532,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 535
    functionName: Botan_Tests::Test_Registry::registered_tests
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::set::insert
    linkageType: ''
    returnType: std::set<std::string>
    signature: std::set<std::string> registered_tests() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::set::insert
      Src: /src/botan/src/tests/tests.cpp:540,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 543
    functionName: Botan_Tests::Test_Registry::registered_test_categories
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::set::insert
    linkageType: ''
    returnType: std::set<std::string>
    signature: std::set<std::string> registered_test_categories() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/tests.cpp:551,1
    - Dst: contains
      Src: /src/botan/src/tests/tests.cpp:551,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:552,1
    - Dst: empty
      Src: /src/botan/src/tests/tests.cpp:556,1
    - Dst: insert_if_not_exists_and_not_skipped
      Src: /src/botan/src/tests/tests.cpp:564,1
    - Dst: contains
      Src: /src/botan/src/tests/tests.cpp:568,1
    - Dst: insert_if_not_exists_and_not_skipped
      Src: /src/botan/src/tests/tests.cpp:569,1
    - Dst: equal_range
      Src: /src/botan/src/tests/tests.cpp:570,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:570,1
    - Dst: insert_if_not_exists_and_not_skipped
      Src: /src/botan/src/tests/tests.cpp:572,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:575,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - ' requested'
    - ' to_be_skipped'
    argTypes:
    - std::vector<std::string>
    - std::set<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 581
    functionName: Botan_Tests::Test_Registry::filter_registered_tests
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - equal_range
    - std::vector::push_back
    - Test_Error
    - Botan::value_exists
    - empty
    - contains
    - end
    - insert_if_not_exists_and_not_skipped
    linkageType: ''
    returnType: std::vector<std::string>
    signature: "std::vector<std::string> filter_registered_tests(const std::vector<std::string>&
      requested,\n                                                       const std::set<std::string>&
      to_be_skipped)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/tests.cpp:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' test_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 585
    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: 588
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 588
    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:607,1
    - Dst: std::move
      Src: /src/botan/src/tests/tests.cpp:607,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: 608
      start: 602
    functionDepth: 1
    functionLinenumber: 602
    functionLinenumberEnd: 608
    functionName: Botan_Tests::Test::register_test
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 4
    functionsReached:
    - Botan::PCurve::PrimeOrderCurveImpl::instance
    - std::move
    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:612,1
    - Dst: std::chrono::duration_cast<std::chrono::nanoseconds>
      Src: /src/botan/src/tests/tests.cpp:613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 611
    functionDepth: 1
    functionLinenumber: 611
    functionLinenumberEnd: 614
    functionName: Botan_Tests::Test::timestamp
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::detail::AsyncBase::complete_now
    - std::chrono::duration_cast<std::chrono::nanoseconds>
    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:621,1
    - Dst: std::move
      Src: /src/botan/src/tests/tests.cpp:621,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - result_lists
    argTypes:
    - std::vector<std::vector<Test::Result>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 625
    functionName: Botan_Tests::Test::flatten_result_lists
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 16
    functionsReached:
    - std::vector::emplace_back
    - std::move
    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:629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 628
    functionDepth: 1
    functionLinenumber: 628
    functionLinenumberEnd: 630
    functionName: Botan_Tests::Test::registered_tests
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::PCurve::PrimeOrderCurveImpl::instance
    linkageType: ''
    returnType: std::set<std::string>
    signature: std::set<std::string> Test::registered_tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PCurve::PrimeOrderCurveImpl::instance
      Src: /src/botan/src/tests/tests.cpp:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 635
    functionName: Botan_Tests::Test::registered_test_categories
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::PCurve::PrimeOrderCurveImpl::instance
    linkageType: ''
    returnType: std::set<std::string>
    signature: std::set<std::string> Test::registered_test_categories()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PCurve::PrimeOrderCurveImpl::instance
      Src: /src/botan/src/tests/tests.cpp:639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' test_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 640
    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:644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' test_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 645
    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:650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' requested'
    - ' to_be_skipped'
    argTypes:
    - std::vector<std::string>
    - std::set<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 648
    functionDepth: 1
    functionLinenumber: 648
    functionLinenumberEnd: 651
    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::set<std::string>&
      to_be_skipped)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ::mkstemp
      Src: /src/botan/src/tests/tests.cpp:662,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/tests.cpp:662,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/tests/tests.cpp:669,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' basename'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 654
    functionDepth: 1
    functionLinenumber: 654
    functionLinenumberEnd: 676
    functionName: Botan_Tests::Test::temp_file_name
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 12
    functionsReached:
    - ::mkstemp
    - std::string::data
    - Botan::TLS::Channel_Impl::close
    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:681,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/tests.cpp:685,1
    - Dst: Botan::No_Filesystem_Access::No_Filesystem_Access
      Src: /src/botan/src/tests/tests.cpp:686,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' from'
    - ' to'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 678
    functionDepth: 1
    functionLinenumber: 678
    functionLinenumberEnd: 688
    functionName: Botan_Tests::Test::copy_file
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_UNUSED
    - Botan_Tests::Test::copy_file
    - Botan::No_Filesystem_Access::No_Filesystem_Access
    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:691,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/tests.cpp:692,1
    - Dst: std::ifstream::good
      Src: /src/botan/src/tests/tests.cpp:693,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:694,1
    - Dst: std::string
      Src: /src/botan/src/tests/tests.cpp:697,1
    - Dst: std::istreambuf_iterator<char>
      Src: /src/botan/src/tests/tests.cpp:697,1
    - Dst: std::istreambuf_iterator<char>
      Src: /src/botan/src/tests/tests.cpp:697,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 698
    functionName: Botan_Tests::Test::read_data_file
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 2
    functionsReached:
    - Test_Error
    - std::ifstream::good
    - Botan_Tests::Test::data_file
    - std::string
    - std::string::c_str
    - std::istreambuf_iterator<char>
    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:701,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/tests.cpp:702,1
    - Dst: std::ifstream::good
      Src: /src/botan/src/tests/tests.cpp:703,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:704,1
    - Dst: std::ifstream::good
      Src: /src/botan/src/tests/tests.cpp:709,1
    - Dst: std::ifstream::read
      Src: /src/botan/src/tests/tests.cpp:711,1
    - Dst: reinterpret_cast<char*>
      Src: /src/botan/src/tests/tests.cpp:711,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/tests.cpp:711,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/tests.cpp:711,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/tests.cpp:712,1
    - Dst: std::ifstream::gcount
      Src: /src/botan/src/tests/tests.cpp:712,1
    - Dst: std::ifstream::eof
      Src: /src/botan/src/tests/tests.cpp:714,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/tests.cpp:718,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/tests.cpp:718,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/tests.cpp:718,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/tests.cpp:718,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 700
    functionDepth: 1
    functionLinenumber: 700
    functionLinenumberEnd: 722
    functionName: Botan_Tests::Test::read_binary_data_file
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 12
    functionsReached:
    - std::ifstream::gcount
    - Test_Error
    - std::ifstream::good
    - static_cast<size_t>
    - Botan_Tests::Test::data_file
    - std::ifstream::read
    - std::string::c_str
    - std::vector::data
    - std::vector::insert
    - std::ifstream::eof
    - std::vector::end
    - std::vector::size
    - reinterpret_cast<char*>
    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: 734
      start: 732
    functionDepth: 0
    functionLinenumber: 732
    functionLinenumberEnd: 734
    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: 744
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 744
    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: 746
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 746
    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: 748
      start: 748
    functionDepth: 0
    functionLinenumber: 748
    functionLinenumberEnd: 748
    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: 750
      start: 750
    functionDepth: 0
    functionLinenumber: 750
    functionLinenumberEnd: 750
    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:754,1
    - Dst: Botan_Tests::Testsuite_RNG::mix
      Src: /src/botan/src/tests/tests.cpp:758,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: 760
      start: 752
    functionDepth: 1
    functionLinenumber: 752
    functionLinenumberEnd: 760
    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:764,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/tests.cpp:764,1
    - Dst: Botan_Tests::Testsuite_RNG::mix
      Src: /src/botan/src/tests/tests.cpp:767,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/tests.cpp:767,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: 769
      start: 762
    functionDepth: 1
    functionLinenumber: 762
    functionLinenumberEnd: 769
    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:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 772
    functionDepth: 0
    functionLinenumber: 772
    functionLinenumberEnd: 777
    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: 744
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 744
    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: 746
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 746
    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: 748
      start: 748
    functionDepth: 0
    functionLinenumber: 748
    functionLinenumberEnd: 748
    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: 750
      start: 750
    functionDepth: 0
    functionLinenumber: 750
    functionLinenumberEnd: 750
    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:754,1
    - Dst: Botan_Tests::Testsuite_RNG::mix
      Src: /src/botan/src/tests/tests.cpp:758,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: 760
      start: 752
    functionDepth: 1
    functionLinenumber: 752
    functionLinenumberEnd: 760
    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:764,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/tests.cpp:764,1
    - Dst: Botan_Tests::Testsuite_RNG::mix
      Src: /src/botan/src/tests/tests.cpp:767,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/tests.cpp:767,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: 769
      start: 762
    functionDepth: 1
    functionLinenumber: 762
    functionLinenumberEnd: 769
    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:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 772
    functionDepth: 0
    functionLinenumber: 772
    functionLinenumberEnd: 777
    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:786,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/tests.cpp:786,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: 787
      start: 785
    functionDepth: 1
    functionLinenumber: 785
    functionLinenumberEnd: 787
    functionName: Botan_Tests::Test::set_test_rng_seed
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::hex_encode
    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:791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - test_name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 790
    functionDepth: 0
    functionLinenumber: 790
    functionLinenumberEnd: 792
    functionName: Botan_Tests::Test::new_rng
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 131
    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:796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - test_name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 795
    functionDepth: 0
    functionLinenumber: 795
    functionLinenumberEnd: 797
    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:801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 800
    functionDepth: 0
    functionLinenumber: 800
    functionLinenumberEnd: 802
    functionName: Botan_Tests::Test::data_file
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 156
    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:806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' subdir'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 807
    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:811,1
    - Dst: options
      Src: /src/botan/src/tests/tests.cpp:811,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/tests.cpp:812,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:813,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' subdir'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 810
    functionDepth: 1
    functionLinenumber: 810
    functionLinenumberEnd: 816
    functionName: Botan_Tests::Test::files_in_data_dir
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 16
    functionsReached:
    - options
    - auto::empty
    - Test_Error
    - Botan::get_files_recursive
    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:821,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/tests.cpp:821,1
    - Dst: auto::end
      Src: /src/botan/src/tests/tests.cpp:821,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/tests.cpp:822,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/tests.cpp:823,1
    - Dst: Botan_Tests::Test::copy_file
      Src: /src/botan/src/tests/tests.cpp:826,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/tests.cpp:826,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' what'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 819
    functionDepth: 2
    functionLinenumber: 819
    functionLinenumberEnd: 830
    functionName: Botan_Tests::Test::data_file_as_temporary_copy
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 8
    functionsReached:
    - auto::empty
    - Botan_Tests::Test::temp_file_name
    - auto::end
    - Botan_Tests::Test::data_file
    - Botan_Tests::Test::copy_file
    - std::replace
    - auto::begin
    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:834,1
    - Dst: provider
      Src: /src/botan/src/tests/tests.cpp:838,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - ' providers'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 833
    functionDepth: 1
    functionLinenumber: 833
    functionLinenumberEnd: 843
    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:846,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/tests.cpp:847,1
    - Dst: random_vec
      Src: /src/botan/src/tests/tests.cpp:847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 845
    functionDepth: 0
    functionLinenumber: 845
    functionLinenumberEnd: 848
    functionName: Botan_Tests::Test::random_password
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 4
    functionsReached:
    - Botan::hex_encode
    - random_vec
    - next_byte
    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:851,1
    - Dst: random_array
      Src: /src/botan/src/tests/tests.cpp:851,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' rng'
    - max
    argTypes:
    - Botan::RandomNumberGenerator
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 850
    functionDepth: 1
    functionLinenumber: 850
    functionLinenumberEnd: 852
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/tests.cpp:855,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:856,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:857,1
    - Dst: Botan::split_on
      Src: /src/botan/src/tests/tests.cpp:862,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:864,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/tests.cpp:864,1
    - Dst: what
      Src: /src/botan/src/tests/tests.cpp:868,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:869,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:869,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 854
    functionDepth: 1
    functionLinenumber: 854
    functionLinenumberEnd: 874
    functionName: Botan_Tests::VarMap::get_req_bin_list
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - std::vector::push_back
    - Test_Error
    - std::ostringstream::str
    - Botan::split_on
    - end
    - what
    - find
    linkageType: ''
    returnType: std::vector<std::vector<uint8_t>>
    signature: std::vector<std::vector<uint8_t>> VarMap::get_req_bin_list(const std::string&
      key) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/tests.cpp:877,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:878,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:879,1
    - Dst: auto::second::starts_with
      Src: /src/botan/src/tests/tests.cpp:883,1
    - Dst: auto::second::size
      Src: /src/botan/src/tests/tests.cpp:884,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/tests.cpp:885,1
    - Dst: auto::second::substr
      Src: /src/botan/src/tests/tests.cpp:885,1
    - Dst: std::swap
      Src: /src/botan/src/tests/tests.cpp:888,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/tests.cpp:889,1
    - Dst: std::string::substr
      Src: /src/botan/src/tests/tests.cpp:889,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/tests.cpp:892,1
    - Dst: what
      Src: /src/botan/src/tests/tests.cpp:897,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:898,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:898,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 876
    functionDepth: 1
    functionLinenumber: 876
    functionLinenumberEnd: 900
    functionName: Botan_Tests::VarMap::get_req_bin
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Test_Error
    - auto::second::substr
    - std::ostringstream::str
    - std::swap
    - auto::second::starts_with
    - auto::second::size
    - end
    - what
    - std::string::substr
    - find
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> VarMap::get_req_bin(const std::string& key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/tests.cpp:903,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:904,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' key'
    - ' def_value'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 902
    functionDepth: 0
    functionLinenumber: 902
    functionLinenumberEnd: 908
    functionName: Botan_Tests::VarMap::get_opt_str
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - find
    - end
    linkageType: ''
    returnType: std::string
    signature: std::string VarMap::get_opt_str(const std::string& key, const std::string&
      def_value) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/tests.cpp:911,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:912,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:913,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:921,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 910
    functionDepth: 0
    functionLinenumber: 910
    functionLinenumberEnd: 923
    functionName: Botan_Tests::VarMap::get_req_bool
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - find
    - Test_Error
    - end
    linkageType: ''
    returnType: bool
    signature: bool VarMap::get_req_bool(const std::string& key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/tests.cpp:926,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:927,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:928,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/tests/tests.cpp:930,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 925
    functionDepth: 1
    functionLinenumber: 925
    functionLinenumberEnd: 931
    functionName: Botan_Tests::VarMap::get_req_sz
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::to_u32bit
    - find
    - Test_Error
    - end
    linkageType: ''
    returnType: size_t
    signature: size_t VarMap::get_req_sz(const std::string& key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::VarMap::get_req_sz
      Src: /src/botan/src/tests/tests.cpp:934,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:936,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/tests.cpp:936,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/tests.cpp:938,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 933
    functionDepth: 2
    functionLinenumber: 933
    functionLinenumberEnd: 939
    functionName: Botan_Tests::VarMap::get_req_u8
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::VarMap::get_req_sz
    - static_cast<uint8_t>
    - Test_Error
    - std::to_string
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t VarMap::get_req_u8(const std::string& key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/tests.cpp:942,1
    - Dst: Botan_Tests::VarMap::get_req_sz
      Src: /src/botan/src/tests/tests.cpp:942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 941
    functionDepth: 2
    functionLinenumber: 941
    functionLinenumberEnd: 943
    functionName: Botan_Tests::VarMap::get_req_u32
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::VarMap::get_req_sz
    - static_cast<uint32_t>
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t VarMap::get_req_u32(const std::string& key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/tests.cpp:946,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:947,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:948,1
    - Dst: std::stoull
      Src: /src/botan/src/tests/tests.cpp:951,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:953,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 945
    functionDepth: 0
    functionLinenumber: 945
    functionLinenumberEnd: 955
    functionName: Botan_Tests::VarMap::get_req_u64
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::stoull
    - find
    - Test_Error
    - end
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t VarMap::get_req_u64(const std::string& key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/tests.cpp:958,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:959,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/tests/tests.cpp:962,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' key'
    - def_value
    argTypes:
    - std::string
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 957
    functionDepth: 1
    functionLinenumber: 957
    functionLinenumberEnd: 963
    functionName: Botan_Tests::VarMap::get_opt_sz
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::to_u32bit
    - find
    - end
    linkageType: ''
    returnType: size_t
    signature: size_t VarMap::get_opt_sz(const std::string& key, const size_t def_value)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/tests.cpp:966,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:967,1
    - Dst: std::stoull
      Src: /src/botan/src/tests/tests.cpp:971,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:973,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' key'
    - def_value
    argTypes:
    - std::string
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 965
    functionDepth: 0
    functionLinenumber: 965
    functionLinenumberEnd: 975
    functionName: Botan_Tests::VarMap::get_opt_u64
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::stoull
    - find
    - Test_Error
    - end
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t VarMap::get_opt_u64(const std::string& key, const uint64_t
      def_value) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/tests.cpp:978,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:979,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/tests.cpp:980,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/tests.cpp:984,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:986,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 977
    functionDepth: 1
    functionLinenumber: 977
    functionLinenumberEnd: 988
    functionName: Botan_Tests::VarMap::get_opt_bin
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Test_Error
    - std::vector<uint8_t>
    - end
    - find
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> VarMap::get_opt_bin(const std::string& key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/tests.cpp:991,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:992,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:993,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 990
    functionDepth: 0
    functionLinenumber: 990
    functionLinenumberEnd: 996
    functionName: Botan_Tests::VarMap::get_req_str
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - find
    - Test_Error
    - end
    linkageType: ''
    returnType: std::string
    signature: std::string VarMap::get_req_str(const std::string& key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/tests.cpp:1000,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:1001,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1002,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/tests.cpp:1006,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1008,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 999
    functionDepth: 1
    functionLinenumber: 999
    functionLinenumberEnd: 1010
    functionName: Botan_Tests::VarMap::get_req_bn
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt
    - find
    - Test_Error
    - end
    linkageType: ''
    returnType: Botan::BigInt
    signature: Botan::BigInt VarMap::get_req_bn(const std::string& key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/tests.cpp:1013,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:1014,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/tests.cpp:1019,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1021,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' key'
    - ' def_value'
    argTypes:
    - std::string
    - Botan::BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 1012
    functionDepth: 1
    functionLinenumber: 1012
    functionLinenumberEnd: 1023
    functionName: Botan_Tests::VarMap::get_opt_bn
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt
    - find
    - Test_Error
    - end
    linkageType: ''
    returnType: Botan::BigInt
    signature: Botan::BigInt VarMap::get_opt_bn(const std::string& key, const Botan::BigInt&
      def_value) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/tests.cpp:1030,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1031,1
    - Dst: Botan::split_on
      Src: /src/botan/src/tests/tests.cpp:1034,1
    - Dst: Botan::split_on
      Src: /src/botan/src/tests/tests.cpp:1035,1
    - Dst: insert
      Src: /src/botan/src/tests/tests.cpp:1037,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/tests.cpp:1037,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/tests.cpp:1037,1
    - Dst: insert
      Src: /src/botan/src/tests/tests.cpp:1038,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/tests.cpp:1038,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/tests.cpp:1038,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/tests.cpp:1039,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/tests.cpp:1039,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ' data_src'
    - ' required_keys_str'
    - ' optional_keys_str'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1026
    functionDepth: 1
    functionLinenumber: 1026
    functionLinenumberEnd: 1040
    functionName: Botan_Tests::Text_Based_Test::Text_Based_Test
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - Test_Error
    - std::vector::at
    - Botan::split_on
    - std::vector::end
    - empty
    - std::vector::size
    - insert
    linkageType: ''
    returnType: void
    signature: "void Text_Based_Test::Text_Based_Test(const std::string& data_src,\n
      \                                const std::string& required_keys_str,\n                                 const
      std::string& optional_keys_str)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: good
      Src: /src/botan/src/tests/tests.cpp:1044,1
    - Dst: empty
      Src: /src/botan/src/tests/tests.cpp:1045,1
    - Dst: ends_with
      Src: /src/botan/src/tests/tests.cpp:1047,1
    - Dst: push_back
      Src: /src/botan/src/tests/tests.cpp:1048,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/tests.cpp:1048,1
    - Dst: Botan_Tests::Test::files_in_data_dir
      Src: /src/botan/src/tests/tests.cpp:1050,1
    - Dst: assign
      Src: /src/botan/src/tests/tests.cpp:1051,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/tests.cpp:1051,1
    - Dst: auto::end
      Src: /src/botan/src/tests/tests.cpp:1051,1
    - Dst: empty
      Src: /src/botan/src/tests/tests.cpp:1052,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1053,1
    - Dst: std::make_unique<std::ifstream>
      Src: /src/botan/src/tests/tests.cpp:1063,1
    - Dst: empty
      Src: /src/botan/src/tests/tests.cpp:1068,1
    - Dst: clear
      Src: /src/botan/src/tests/tests.cpp:1069,1
    - Dst: Botan::CPUID::initialize
      Src: /src/botan/src/tests/tests.cpp:1070,1
    - Dst: good
      Src: /src/botan/src/tests/tests.cpp:1074,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1075,1
    - Dst: pop_front
      Src: /src/botan/src/tests/tests.cpp:1078,1
    - Dst: good
      Src: /src/botan/src/tests/tests.cpp:1081,1
    - Dst: std::getline
      Src: /src/botan/src/tests/tests.cpp:1083,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/tests.cpp:1085,1
    - Dst: std::string::starts_with
      Src: /src/botan/src/tests/tests.cpp:1090,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1042
    functionDepth: 2
    functionLinenumber: 1042
    functionLinenumberEnd: 1100
    functionName: Botan_Tests::Text_Based_Test::get_next_line
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - assign
    - good
    - Test_Error
    - Botan_Tests::Test::data_file
    - auto::end
    - clear
    - pop_front
    - ends_with
    - std::string::empty
    - std::getline
    - empty
    - push_back
    - Botan_Tests::Test::files_in_data_dir
    - std::make_unique<std::ifstream>
    - std::string::starts_with
    - Botan::CPUID::initialize
    - auto::begin
    linkageType: ''
    returnType: std::string
    signature: std::string Text_Based_Test::get_next_line()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_first_not_of
      Src: /src/botan/src/tests/tests.cpp:1108,1
    - Dst: find_last_not_of
      Src: /src/botan/src/tests/tests.cpp:1113,1
    - Dst: substr
      Src: /src/botan/src/tests/tests.cpp:1115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1105
    functionDepth: 0
    functionLinenumber: 1105
    functionLinenumberEnd: 1116
    functionName: Botan_Tests::strip_ws
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - substr
    - find_last_not_of
    - find_first_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:1122,1
    - Dst: Botan::CPUID::bit_from_string
      Src: /src/botan/src/tests/tests.cpp:1123,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:1124,1
    - Dst: auto::to_string
      Src: /src/botan/src/tests/tests.cpp:1124,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/tests.cpp:1128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' tok'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1132
      start: 1118
    functionDepth: 1
    functionLinenumber: 1118
    functionLinenumberEnd: 1132
    functionName: Botan_Tests::parse_cpuid_bits
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - size
    - auto::to_string
    - BOTAN_UNUSED
    - Botan::CPUID::bit_from_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:1108,1
    - Dst: find_last_not_of
      Src: /src/botan/src/tests/tests.cpp:1113,1
    - Dst: substr
      Src: /src/botan/src/tests/tests.cpp:1115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1105
    functionDepth: 0
    functionLinenumber: 1105
    functionLinenumberEnd: 1116
    functionName: Botan_Tests::strip_ws
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - substr
    - find_last_not_of
    - find_first_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:1122,1
    - Dst: Botan::CPUID::bit_from_string
      Src: /src/botan/src/tests/tests.cpp:1123,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:1124,1
    - Dst: auto::to_string
      Src: /src/botan/src/tests/tests.cpp:1124,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/tests.cpp:1128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' tok'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1132
      start: 1118
    functionDepth: 1
    functionLinenumber: 1118
    functionLinenumberEnd: 1132
    functionName: Botan_Tests::parse_cpuid_bits
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - size
    - auto::to_string
    - BOTAN_UNUSED
    - Botan::CPUID::bit_from_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: 1138
      start: 1136
    functionDepth: 0
    functionLinenumber: 1136
    functionLinenumberEnd: 1138
    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: Botan_Tests::Text_Based_Test::get_next_line
      Src: /src/botan/src/tests/tests.cpp:1149,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/tests.cpp:1150,1
    - Dst: std::string::starts_with
      Src: /src/botan/src/tests/tests.cpp:1155,1
    - Dst: Botan::split_on
      Src: /src/botan/src/tests/tests.cpp:1156,1
    - Dst: std::string::substr
      Src: /src/botan/src/tests/tests.cpp:1156,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/tests.cpp:1158,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1159,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1163,1
    - Dst: Botan::PCurve::PrimeOrderCurveImpl::instance
      Src: /src/botan/src/tests/tests.cpp:1166,1
    - Dst: Botan_Tests::Text_Based_Test::test_name
      Src: /src/botan/src/tests/tests.cpp:1166,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1167,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:1167,1
    - Dst: Botan_Tests::Text_Based_Test::test_name
      Src: /src/botan/src/tests/tests.cpp:1167,1
    - Dst: parse_cpuid_bits
      Src: /src/botan/src/tests/tests.cpp:1170,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1174,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/tests.cpp:1177,1
    - Dst: std::string::substr
      Src: /src/botan/src/tests/tests.cpp:1178,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/tests.cpp:1178,1
    - Dst: VarMap::clear
      Src: /src/botan/src/tests/tests.cpp:1181,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/tests.cpp:1185,1
    - Dst: std::string::find_first_of
      Src: /src/botan/src/tests/tests.cpp:1187,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:1190,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/tests.cpp:1190,1
    - Dst: strip_ws
      Src: /src/botan/src/tests/tests.cpp:1194,1
    - Dst: std::string
      Src: /src/botan/src/tests/tests.cpp:1194,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/tests.cpp:1194,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/tests.cpp:1194,1
    - Dst: strip_ws
      Src: /src/botan/src/tests/tests.cpp:1195,1
    - Dst: std::string
      Src: /src/botan/src/tests/tests.cpp:1195,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/tests.cpp:1195,1
    - Dst: std::string::end
      Src: /src/botan/src/tests/tests.cpp:1195,1
    - Dst: contains
      Src: /src/botan/src/tests/tests.cpp:1197,1
    - Dst: contains
      Src: /src/botan/src/tests/tests.cpp:1197,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/tests.cpp:1198,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:1198,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:1199,1
    - Dst: VarMap::add
      Src: /src/botan/src/tests/tests.cpp:1202,1
    - Dst: VarMap::has_key
      Src: /src/botan/src/tests/tests.cpp:1207,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/tests.cpp:1209,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:1209,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:1210,1
    - Dst: Botan_Tests::Text_Based_Test::skip_this_test
      Src: /src/botan/src/tests/tests.cpp:1214,1
    - Dst: Botan_Tests::Test::timestamp
      Src: /src/botan/src/tests/tests.cpp:1220,1
    - Dst: run_one_test
      Src: /src/botan/src/tests/tests.cpp:1222,1
    - Dst: empty
      Src: /src/botan/src/tests/tests.cpp:1224,1
    - Dst: Botan::CPUFeature::from_string
      Src: /src/botan/src/tests/tests.cpp:1226,1
    - Dst: has
      Src: /src/botan/src/tests/tests.cpp:1227,1
    - Dst: Botan::clear_cpuid_bit
      Src: /src/botan/src/tests/tests.cpp:1228,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/tests.cpp:1230,1
    - Dst: run_one_test
      Src: /src/botan/src/tests/tests.cpp:1230,1
    - Dst: Botan::CPUID::initialize
      Src: /src/botan/src/tests/tests.cpp:1234,1
    - Dst: Test::Result::set_ns_consumed
      Src: /src/botan/src/tests/tests.cpp:1237,1
    - Dst: Botan_Tests::Test::timestamp
      Src: /src/botan/src/tests/tests.cpp:1237,1
    - Dst: Test::Result::tests_failed
      Src: /src/botan/src/tests/tests.cpp:1239,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/tests.cpp:1242,1
    - Dst: VarMap::get_req_str
      Src: /src/botan/src/tests/tests.cpp:1248,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/tests.cpp:1251,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:1251,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:1253,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/tests.cpp:1257,1
    - Dst: VarMap::get_req_str
      Src: /src/botan/src/tests/tests.cpp:1262,1
    - Dst: what
      Src: /src/botan/src/tests/tests.cpp:1265,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:1267,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/tests.cpp:1267,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:1267,1
    - Dst: Botan_Tests::Text_Based_Test::clear_between_callbacks
      Src: /src/botan/src/tests/tests.cpp:1270,1
    - Dst: VarMap::clear
      Src: /src/botan/src/tests/tests.cpp:1271,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/tests.cpp:1276,1
    - Dst: Botan_Tests::Text_Based_Test::run_final_tests
      Src: /src/botan/src/tests/tests.cpp:1281,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/tests.cpp:1282,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/tests.cpp:1282,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/tests.cpp:1282,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/tests.cpp:1282,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:1284,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/tests.cpp:1284,1
    - Dst: std::string
      Src: /src/botan/src/tests/tests.cpp:1284,1
    - Dst: what
      Src: /src/botan/src/tests/tests.cpp:1284,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 93
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1290
      start: 1140
    functionDepth: 3
    functionLinenumber: 1140
    functionLinenumberEnd: 1290
    functionName: Botan_Tests::Text_Based_Test::run
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - has
    - Botan_Tests::Text_Based_Test::run_final_tests
    - Botan_Tests::Text_Based_Test::clear_between_callbacks
    - std::ostringstream::str
    - std::string::empty
    - std::string::starts_with
    - Botan::PCurve::PrimeOrderCurveImpl::instance
    - std::string::end
    - Botan::clear_cpuid_bit
    - std::vector::end
    - what
    - std::string::substr
    - std::vector::insert
    - Botan_Tests::Text_Based_Test::skip_this_test
    - std::vector::begin
    - Test_Error
    - contains
    - Test::Result::tests_failed
    - Botan_Tests::Text_Based_Test::get_next_line
    - VarMap::clear
    - std::vector::push_back
    - std::string::find_first_of
    - Botan::split_on
    - std::vector::empty
    - parse_cpuid_bits
    - strip_ws
    - Botan::CPUID::initialize
    - Test::Result::test_note
    - std::string::size
    - VarMap::has_key
    - Botan::fmt
    - Botan_Tests::Text_Based_Test::test_name
    - std::string::begin
    - VarMap::add
    - VarMap::get_req_str
    - std::string
    - Test::Result::set_ns_consumed
    - Botan::CPUFeature::from_string
    - empty
    - Botan_Tests::Test::Result::Failure
    - std::to_string
    - Botan_Tests::Test::timestamp
    - run_one_test
    - Test::Result::merge
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> Text_Based_Test::run()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/tests.cpp:1296,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1299,1
    - Dst: std::map::insert_or_assign
      Src: /src/botan/src/tests/tests.cpp:1302,1
    - Dst: substr
      Src: /src/botan/src/tests/tests.cpp:1302,1
    - Dst: substr
      Src: /src/botan/src/tests/tests.cpp:1302,1
    - Dst: size
      Src: /src/botan/src/tests/tests.cpp:1302,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1292
    functionDepth: 0
    functionLinenumber: 1292
    functionLinenumberEnd: 1306
    functionName: Botan_Tests::Test_Options::report_properties
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - substr
    - Test_Error
    - size
    - find
    - std::map::insert_or_assign
    linkageType: ''
    returnType: std::map<std::string, std::string>
    signature: std::map<std::string, std::string> Test_Options::report_properties()
      const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:47,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:47,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:49,1
    - Dst: reset
      Src: /src/botan/src/tests/tests.cpp:54,1
    - Dst: min
      Src: /src/botan/src/tests/tests.cpp:59,1
    - Dst: insert
      Src: /src/botan/src/tests/tests.cpp:62,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:62,1
    - Dst: m_fail_log::begin
      Src: /src/botan/src/tests/tests.cpp:62,1
    - Dst: m_fail_log::end
      Src: /src/botan/src/tests/tests.cpp:62,1
    - Dst: insert
      Src: /src/botan/src/tests/tests.cpp:63,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:63,1
    - Dst: m_log::begin
      Src: /src/botan/src/tests/tests.cpp:63,1
    - Dst: m_log::end
      Src: /src/botan/src/tests/tests.cpp:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ' other'
    - ignore_test_name
    argTypes:
    - Result
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 64
    functionName: Test::Result::merge(const Result& other, bool ignore_test_name)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - m_fail_log::begin
    - m_log::end
    - m_fail_log::end
    - Test_Error
    - min
    - who
    - m_log::begin
    - end
    - reset
    - insert
    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:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 70
    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:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 77
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/tests.cpp:80,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:82,1
    - Dst: push_back
      Src: /src/botan/src/tests/tests.cpp:86,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' note'
    - extra
    argTypes:
    - std::string
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 88
    functionName: Test::Result::test_note(const std::string& note, const char* extra)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - empty
    - push_back
    - who
    linkageType: ''
    returnType: void
    signature: void Test::Result::test_note(const std::string& note, const char* extra)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::set::contains
      Src: /src/botan/src/tests/tests.cpp:93,1
    - Dst: test_note
      Src: /src/botan/src/tests/tests.cpp:94,1
    - Dst: std::set::insert
      Src: /src/botan/src/tests/tests.cpp:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' whatever'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 97
    functionName: Test::Result::note_missing(const std::string& whatever)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::set::contains
    - std::set::insert
    - test_note
    linkageType: ''
    returnType: void
    signature: void Test::Result::note_missing(const std::string& whatever)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: m_fn
      Src: /src/botan/src/tests/tests.cpp:103,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:105,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:109,1
    - Dst: what
      Src: /src/botan/src/tests/tests.cpp:109,1
    - Dst: m_expected_exception_check_fn
      Src: /src/botan/src/tests/tests.cpp:111,1
    - Dst: std::current_exception
      Src: /src/botan/src/tests/tests.cpp:111,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:112,1
    - Dst: what
      Src: /src/botan/src/tests/tests.cpp:112,1
    - Dst: has_value
      Src: /src/botan/src/tests/tests.cpp:114,1
    - Dst: value
      Src: /src/botan/src/tests/tests.cpp:114,1
    - Dst: what
      Src: /src/botan/src/tests/tests.cpp:114,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:115,1
    - Dst: value
      Src: /src/botan/src/tests/tests.cpp:116,1
    - Dst: what
      Src: /src/botan/src/tests/tests.cpp:116,1
    - Dst: has_value
      Src: /src/botan/src/tests/tests.cpp:119,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:120,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:124,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 2
    argNames:
    - ' test_name'
    - ' result'
    argTypes:
    - std::string
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 125
    functionName: Test::Result::ThrowExpectations::check(const std::string& test_name,
      Test::Result& result)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - test_success
    - std::current_exception
    - m_expected_exception_check_fn
    - test_failure
    - m_fn
    - what
    - has_value
    - value
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::ThrowExpectations::check(const std::string& test_name,
      Test::Result& result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowExpectations
      Src: /src/botan/src/tests/tests.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' what'
    - ' fn'
    argTypes:
    - std::string
    - std::function<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: Test::Result::test_throws(const std::string& what, const std::function<void()>&
      fn)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - ThrowExpectations
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_throws(const std::string& what, const std::function<void()>&
      fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowExpectations
      Src: /src/botan/src/tests/tests.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' what'
    - ' expected'
    - ' fn'
    argTypes:
    - std::string
    - std::string
    - std::function<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 133
    functionName: Test::Result::test_throws(const std::string& what, const std::string&
      expected, const std::function<void()>& fn)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - ThrowExpectations
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_throws(const std::string& what, const std::string&
      expected, const std::function<void()>& fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ThrowExpectations
      Src: /src/botan/src/tests/tests.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' what'
    - ' fn'
    argTypes:
    - std::string
    - std::function<void()>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 137
    functionName: Test::Result::test_no_throw(const std::string& what, const std::function<void()>&
      fn)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - ThrowExpectations
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_no_throw(const std::string& what, const std::function<void()>&
      fn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/tests.cpp:140,1
    - Dst: test_note
      Src: /src/botan/src/tests/tests.cpp:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' note'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 145
    functionName: Test::Result::test_success(const std::string& note)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - test_note
    - Botan_Tests::test_encoding_options
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_success(const std::string& note)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:148,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' what'
    - ' error'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 149
    functionName: Test::Result::test_failure(const std::string& what, const std::string&
      error)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - who
    - test_failure
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_failure(const std::string& what, const std::string&
      error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:152,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:152,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/tests.cpp:152,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/tests.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' what'
    - buf
    - buf_len
    argTypes:
    - std::string
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: Test::Result::test_failure(const std::string& what, const uint8_t
      buf[], size_t buf_len)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::to_string
    - Botan::hex_encode
    - who
    - test_failure
    linkageType: ''
    returnType: void
    signature: void Test::Result::test_failure(const std::string& what, const uint8_t
      buf[], size_t buf_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/botan/src/tests/tests.cpp:157,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/tests.cpp:159,1
    - Dst: std::abort
      Src: /src/botan/src/tests/tests.cpp:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' err'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 163
    functionName: Test::Result::test_failure(const std::string& err)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - std::abort
    - Botan_Tests::test_encoding_options
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_failure(const std::string& err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcmp
      Src: /src/botan/src/tests/tests.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - y
    - len
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 169
    functionName: Botan_Tests::same_contents
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::memcmp
    linkageType: ''
    returnType: bool
    signature: bool same_contents(const uint8_t x[], const uint8_t y[], size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcmp
      Src: /src/botan/src/tests/tests.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - y
    - len
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 169
    functionName: Botan_Tests::same_contents
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::memcmp
    linkageType: ''
    returnType: bool
    signature: bool same_contents(const uint8_t x[], const uint8_t y[], size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: same_contents
      Src: /src/botan/src/tests/tests.cpp:178,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:179,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:179,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 5
    argNames:
    - ' what'
    - produced
    - produced_len
    - expected
    - expected_len
    argTypes:
    - std::string
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 182
    functionName: "Test::Result::test_ne(const std::string& what,\n                           const
      uint8_t produced[],\n                           size_t produced_len,\n                           const
      uint8_t expected[],\n                           size_t expected_len)"
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - same_contents
    - test_success
    - who
    - test_failure
    linkageType: ''
    returnType: bool
    signature: "bool Test::Result::test_ne(const std::string& what,\n                           const
      uint8_t produced[],\n                           size_t produced_len,\n                           const
      uint8_t expected[],\n                           size_t expected_len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: same_contents
      Src: /src/botan/src/tests/tests.cpp:190,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:191,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:196,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/tests.cpp:211,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/tests.cpp:218,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/tests.cpp:219,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/tests.cpp:222,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:225,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:225,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 6
    argNames:
    - producer
    - ' what'
    - produced
    - produced_size
    - expected
    - expected_size
    argTypes:
    - char*
    - std::string
    - uint8_t[]
    - size_t
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 226
    functionName: "Test::Result::test_eq(const char* producer,\n                           const
      std::string& what,\n                           const uint8_t produced[],\n                           size_t
      produced_size,\n                           const uint8_t expected[],\n                           size_t
      expected_size)"
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - same_contents
    - test_success
    - Botan::hex_encode
    - std::ostringstream::str
    - test_failure
    - std::vector::size
    - who
    linkageType: ''
    returnType: bool
    signature: "bool Test::Result::test_eq(const char* producer,\n                           const
      std::string& what,\n                           const uint8_t produced[],\n                           size_t
      produced_size,\n                           const uint8_t expected[],\n                           size_t
      expected_size)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/tests.cpp:229,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:230,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' what_is_it'
    - ' to_examine'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 233
    functionName: Test::Result::test_is_nonempty(const std::string& what_is_it, const
      std::string& to_examine)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - empty
    - test_success
    - test_failure
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_is_nonempty(const std::string& what_is_it,
      const std::string& to_examine)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_is_eq
      Src: /src/botan/src/tests/tests.cpp:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' what'
    - ' produced'
    - ' expected'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 237
    functionName: Test::Result::test_eq(const std::string& what, const std::string&
      produced, const std::string& expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - test_is_eq
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_eq(const std::string& what, const std::string&
      produced, const std::string& expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_is_eq
      Src: /src/botan/src/tests/tests.cpp:240,1
    - Dst: std::string
      Src: /src/botan/src/tests/tests.cpp:240,1
    - Dst: std::string
      Src: /src/botan/src/tests/tests.cpp:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' what'
    - produced
    - expected
    argTypes:
    - std::string
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 241
    functionName: Test::Result::test_eq(const std::string& what, const char* produced,
      const char* expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - test_is_eq
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_eq(const std::string& what, const char* produced,
      const char* expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_is_eq
      Src: /src/botan/src/tests/tests.cpp:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' what'
    - produced
    - expected
    argTypes:
    - std::string
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 245
    functionName: Test::Result::test_eq(const std::string& what, size_t produced,
      size_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - test_is_eq
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_eq(const std::string& what, size_t produced,
      size_t expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_is_eq
      Src: /src/botan/src/tests/tests.cpp:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' what'
    - produced
    - expected
    argTypes:
    - std::string
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 249
    functionName: Test::Result::test_eq_sz(const std::string& what, size_t produced,
      size_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - test_is_eq
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_eq_sz(const std::string& what, size_t produced,
      size_t expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/botan/src/tests/tests.cpp:258,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:259,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:259,1
    - Dst: to_string
      Src: /src/botan/src/tests/tests.cpp:261,1
    - Dst: to_string
      Src: /src/botan/src/tests/tests.cpp:261,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:262,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - ' what'
    - ' produced'
    - ' expected'
    argTypes:
    - std::string
    - Botan::OctetString
    - Botan::OctetString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 264
    functionName: "Test::Result::test_eq(const std::string& what,\n                           const
      Botan::OctetString& produced,\n                           const Botan::OctetString&
      expected)"
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - test_success
    - to_string
    - test_failure
    linkageType: ''
    returnType: bool
    signature: "bool Test::Result::test_eq(const std::string& what,\n                           const
      Botan::OctetString& produced,\n                           const Botan::OctetString&
      expected)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:271,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:271,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ' what'
    - produced
    - expected
    argTypes:
    - std::string
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 275
    functionName: Test::Result::test_lt(const std::string& what, size_t produced,
      size_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - test_success
    - test_failure
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_lt(const std::string& what, size_t produced,
      size_t expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:281,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:281,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' what'
    - produced
    - expected
    argTypes:
    - std::string
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 285
    functionName: Test::Result::test_lte(const std::string& what, size_t produced,
      size_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - test_success
    - test_failure
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_lte(const std::string& what, size_t produced,
      size_t expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:293,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:293,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' what'
    - produced
    - expected
    argTypes:
    - std::string
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 297
    functionName: Test::Result::test_gte(const std::string& what, size_t produced,
      size_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - test_success
    - test_failure
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_gte(const std::string& what, size_t produced,
      size_t expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:305,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:305,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' what'
    - produced
    - expected
    argTypes:
    - std::string
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 309
    functionName: Test::Result::test_gt(const std::string& what, size_t produced,
      size_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - test_success
    - test_failure
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_gt(const std::string& what, size_t produced,
      size_t expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:313,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:316,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:316,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' what'
    - ' str1'
    - ' str2'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 317
    functionName: Test::Result::test_ne(const std::string& what, const std::string&
      str1, const std::string& str2)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - test_success
    - who
    - test_failure
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_ne(const std::string& what, const std::string&
      str1, const std::string& str2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:321,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:325,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:326,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' what'
    - produced
    - expected
    argTypes:
    - std::string
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 327
    functionName: Test::Result::test_ne(const std::string& what, size_t produced,
      size_t expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - test_success
    - who
    - test_failure
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_ne(const std::string& what, size_t produced,
      size_t expected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_is_eq
      Src: /src/botan/src/tests/tests.cpp:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' what'
    - ' produced'
    - ' expected'
    argTypes:
    - std::string
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 332
    functionName: Test::Result::test_eq(const std::string& what, const BigInt& produced,
      const BigInt& expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - test_is_eq
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_eq(const std::string& what, const BigInt& produced,
      const BigInt& expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:336,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:340,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:341,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:341,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' what'
    - ' produced'
    - ' expected'
    argTypes:
    - std::string
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 342
    functionName: Test::Result::test_ne(const std::string& what, const BigInt& produced,
      const BigInt& expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - test_success
    - who
    - test_failure
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_ne(const std::string& what, const BigInt& produced,
      const BigInt& expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:349,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:353,1
    - Dst: get_affine_x
      Src: /src/botan/src/tests/tests.cpp:353,1
    - Dst: get_affine_y
      Src: /src/botan/src/tests/tests.cpp:353,1
    - Dst: get_affine_x
      Src: /src/botan/src/tests/tests.cpp:354,1
    - Dst: get_affine_y
      Src: /src/botan/src/tests/tests.cpp:354,1
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:355,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' what'
    - ' a'
    - ' b'
    argTypes:
    - std::string
    - Botan::EC_Point
    - Botan::EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 356
    functionName: Test::Result::test_eq(const std::string& what, const Botan::EC_Point&
      a, const Botan::EC_Point& b)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - test_success
    - std::ostringstream::str
    - test_failure
    - get_affine_x
    - get_affine_y
    - who
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_eq(const std::string& what, const Botan::EC_Point&
      a, const Botan::EC_Point& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_is_eq
      Src: /src/botan/src/tests/tests.cpp:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' what'
    - produced
    - expected
    argTypes:
    - std::string
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 361
    functionName: Test::Result::test_eq(const std::string& what, bool produced, bool
      expected)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - test_is_eq
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_eq(const std::string& what, bool produced,
      bool expected)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:365,1
    - Dst: Test::Result::test_rc_init(const std::test_note
      Src: /src/botan/src/tests/tests.cpp:379,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:379,1
    - Dst: Test::Result::test_rc_init(const std::test_failure
      Src: /src/botan/src/tests/tests.cpp:381,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:381,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - ' func'
    - rc
    argTypes:
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 385
    functionName: Test::Result::test_rc_init(const std::string& func, int rc)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - test_success
    - Test::Result::test_rc_init(const std::test_failure
    - Test::Result::test_rc_init(const std::test_note
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_rc_init(const std::string& func, int rc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/tests.cpp:393,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:393,1
    - Dst: test_success
      Src: /src/botan/src/tests/tests.cpp:396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' func'
    - expected
    - rc
    argTypes:
    - std::string
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 397
    functionName: Test::Result::test_rc(const std::string& func, int expected, int
      rc)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - test_success
    - test_failure
    linkageType: ''
    returnType: bool
    signature: bool Test::Result::test_rc(const std::string& func, int expected, int
      rc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/tests.cpp:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - test_name
    - location
    argTypes:
    - std::string
    - CodeLocation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 402
    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:406,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 410
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test::provider_filter
      Src: /src/botan/src/tests/tests.cpp:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 412
    functionDepth: 2
    functionLinenumber: 412
    functionLinenumberEnd: 414
    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:421,1
    - Dst: std::setprecision
      Src: /src/botan/src/tests/tests.cpp:423,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:426,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - nanoseconds
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 427
    functionName: Botan_Tests::Test::format_time
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 2
    functionsReached:
    - std::setprecision
    - std::ostringstream::str
    linkageType: ''
    returnType: std::string
    signature: std::string Test::format_time(uint64_t nanoseconds)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/tests.cpp:429,1
    - Dst: merge
      Src: /src/botan/src/tests/tests.cpp:431,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - who
    - ' downstream_results'
    argTypes:
    - std::string
    - std::vector<Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 433
    functionName: Test::Result::Result(std::string who, const std::vector<Result>&
      downstream_results)
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - merge
    linkageType: ''
    returnType: void
    signature: void Test::Result::Result(std::string who, const std::vector<Result>&
      downstream_results)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/tests.cpp:437,1
    - Dst: tests_run
      Src: /src/botan/src/tests/tests.cpp:439,1
    - Dst: who
      Src: /src/botan/src/tests/tests.cpp:445,1
    - Dst: tests_run
      Src: /src/botan/src/tests/tests.cpp:447,1
    - Dst: tests_run
      Src: /src/botan/src/tests/tests.cpp:450,1
    - Dst: format_time
      Src: /src/botan/src/tests/tests.cpp:455,1
    - Dst: tests_failed
      Src: /src/botan/src/tests/tests.cpp:458,1
    - Dst: tests_failed
      Src: /src/botan/src/tests/tests.cpp:459,1
    - Dst: size
      Src: /src/botan/src/tests/tests.cpp:466,1
    - Dst: empty
      Src: /src/botan/src/tests/tests.cpp:474,1
    - Dst: tests_run
      Src: /src/botan/src/tests/tests.cpp:474,1
    - Dst: size
      Src: /src/botan/src/tests/tests.cpp:475,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:480,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 436
    functionDepth: 2
    functionLinenumber: 436
    functionLinenumberEnd: 481
    functionName: Test::Result::result_string() const
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - tests_failed
    - std::ostringstream::str
    - format_time
    - tests_run
    - size
    - Botan_Tests::test_encoding_options
    - empty
    - who
    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: 490
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 490
    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:497,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:498,1
    - Dst: contains
      Src: /src/botan/src/tests/tests.cpp:501,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:502,1
    - Dst: contains
      Src: /src/botan/src/tests/tests.cpp:505,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:506,1
    - Dst: push_back
      Src: /src/botan/src/tests/tests.cpp:510,1
    - Dst: push_back
      Src: /src/botan/src/tests/tests.cpp:514,1
    - Dst: emplace
      Src: /src/botan/src/tests/tests.cpp:517,1
    - Dst: std::move
      Src: /src/botan/src/tests/tests.cpp:517,1
    - Dst: emplace
      Src: /src/botan/src/tests/tests.cpp:518,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: 519
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 519
    functionName: Botan_Tests::Test_Registry::register_test
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Test_Error
    - push_back
    - contains
    - emplace
    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:522,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:523,1
    - Dst: auto::second
      Src: /src/botan/src/tests/tests.cpp:524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' test_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 527
    functionName: Botan_Tests::Test_Registry::get_test
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - auto::second
    - find
    - end
    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::set::insert
      Src: /src/botan/src/tests/tests.cpp:532,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 535
    functionName: Botan_Tests::Test_Registry::registered_tests
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::set::insert
    linkageType: ''
    returnType: std::set<std::string>
    signature: std::set<std::string> registered_tests() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::set::insert
      Src: /src/botan/src/tests/tests.cpp:540,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 543
    functionName: Botan_Tests::Test_Registry::registered_test_categories
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::set::insert
    linkageType: ''
    returnType: std::set<std::string>
    signature: std::set<std::string> registered_test_categories() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/tests.cpp:551,1
    - Dst: contains
      Src: /src/botan/src/tests/tests.cpp:551,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:552,1
    - Dst: empty
      Src: /src/botan/src/tests/tests.cpp:556,1
    - Dst: insert_if_not_exists_and_not_skipped
      Src: /src/botan/src/tests/tests.cpp:564,1
    - Dst: contains
      Src: /src/botan/src/tests/tests.cpp:568,1
    - Dst: insert_if_not_exists_and_not_skipped
      Src: /src/botan/src/tests/tests.cpp:569,1
    - Dst: equal_range
      Src: /src/botan/src/tests/tests.cpp:570,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:570,1
    - Dst: insert_if_not_exists_and_not_skipped
      Src: /src/botan/src/tests/tests.cpp:572,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:575,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - ' requested'
    - ' to_be_skipped'
    argTypes:
    - std::vector<std::string>
    - std::set<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 581
    functionName: Botan_Tests::Test_Registry::filter_registered_tests
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - equal_range
    - std::vector::push_back
    - Test_Error
    - Botan::value_exists
    - empty
    - contains
    - end
    - insert_if_not_exists_and_not_skipped
    linkageType: ''
    returnType: std::vector<std::string>
    signature: "std::vector<std::string> filter_registered_tests(const std::vector<std::string>&
      requested,\n                                                       const std::set<std::string>&
      to_be_skipped)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/tests.cpp:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' test_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 585
    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: 588
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 588
    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: 490
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 490
    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:497,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:498,1
    - Dst: contains
      Src: /src/botan/src/tests/tests.cpp:501,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:502,1
    - Dst: contains
      Src: /src/botan/src/tests/tests.cpp:505,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:506,1
    - Dst: push_back
      Src: /src/botan/src/tests/tests.cpp:510,1
    - Dst: push_back
      Src: /src/botan/src/tests/tests.cpp:514,1
    - Dst: emplace
      Src: /src/botan/src/tests/tests.cpp:517,1
    - Dst: std::move
      Src: /src/botan/src/tests/tests.cpp:517,1
    - Dst: emplace
      Src: /src/botan/src/tests/tests.cpp:518,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: 519
      start: 492
    functionDepth: 0
    functionLinenumber: 492
    functionLinenumberEnd: 519
    functionName: Botan_Tests::Test_Registry::register_test
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Test_Error
    - push_back
    - contains
    - emplace
    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:522,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:523,1
    - Dst: auto::second
      Src: /src/botan/src/tests/tests.cpp:524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' test_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 527
    functionName: Botan_Tests::Test_Registry::get_test
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - auto::second
    - find
    - end
    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::set::insert
      Src: /src/botan/src/tests/tests.cpp:532,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 535
    functionName: Botan_Tests::Test_Registry::registered_tests
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::set::insert
    linkageType: ''
    returnType: std::set<std::string>
    signature: std::set<std::string> registered_tests() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::set::insert
      Src: /src/botan/src/tests/tests.cpp:540,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 543
    functionName: Botan_Tests::Test_Registry::registered_test_categories
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::set::insert
    linkageType: ''
    returnType: std::set<std::string>
    signature: std::set<std::string> registered_test_categories() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/tests.cpp:551,1
    - Dst: contains
      Src: /src/botan/src/tests/tests.cpp:551,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:552,1
    - Dst: empty
      Src: /src/botan/src/tests/tests.cpp:556,1
    - Dst: insert_if_not_exists_and_not_skipped
      Src: /src/botan/src/tests/tests.cpp:564,1
    - Dst: contains
      Src: /src/botan/src/tests/tests.cpp:568,1
    - Dst: insert_if_not_exists_and_not_skipped
      Src: /src/botan/src/tests/tests.cpp:569,1
    - Dst: equal_range
      Src: /src/botan/src/tests/tests.cpp:570,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:570,1
    - Dst: insert_if_not_exists_and_not_skipped
      Src: /src/botan/src/tests/tests.cpp:572,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:575,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - ' requested'
    - ' to_be_skipped'
    argTypes:
    - std::vector<std::string>
    - std::set<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 545
    functionDepth: 0
    functionLinenumber: 545
    functionLinenumberEnd: 581
    functionName: Botan_Tests::Test_Registry::filter_registered_tests
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - equal_range
    - std::vector::push_back
    - Test_Error
    - Botan::value_exists
    - empty
    - contains
    - end
    - insert_if_not_exists_and_not_skipped
    linkageType: ''
    returnType: std::vector<std::string>
    signature: "std::vector<std::string> filter_registered_tests(const std::vector<std::string>&
      requested,\n                                                       const std::set<std::string>&
      to_be_skipped)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/tests.cpp:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' test_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 585
      start: 583
    functionDepth: 0
    functionLinenumber: 583
    functionLinenumberEnd: 585
    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: 588
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 588
    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:607,1
    - Dst: std::move
      Src: /src/botan/src/tests/tests.cpp:607,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: 608
      start: 602
    functionDepth: 1
    functionLinenumber: 602
    functionLinenumberEnd: 608
    functionName: Botan_Tests::Test::register_test
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 4
    functionsReached:
    - Botan::PCurve::PrimeOrderCurveImpl::instance
    - std::move
    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:612,1
    - Dst: std::chrono::duration_cast<std::chrono::nanoseconds>
      Src: /src/botan/src/tests/tests.cpp:613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 611
    functionDepth: 1
    functionLinenumber: 611
    functionLinenumberEnd: 614
    functionName: Botan_Tests::Test::timestamp
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 5
    functionsReached:
    - Botan::TLS::detail::AsyncBase::complete_now
    - std::chrono::duration_cast<std::chrono::nanoseconds>
    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:621,1
    - Dst: std::move
      Src: /src/botan/src/tests/tests.cpp:621,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - result_lists
    argTypes:
    - std::vector<std::vector<Test::Result>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 625
    functionName: Botan_Tests::Test::flatten_result_lists
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 16
    functionsReached:
    - std::vector::emplace_back
    - std::move
    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:629,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 628
    functionDepth: 1
    functionLinenumber: 628
    functionLinenumberEnd: 630
    functionName: Botan_Tests::Test::registered_tests
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::PCurve::PrimeOrderCurveImpl::instance
    linkageType: ''
    returnType: std::set<std::string>
    signature: std::set<std::string> Test::registered_tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PCurve::PrimeOrderCurveImpl::instance
      Src: /src/botan/src/tests/tests.cpp:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 635
    functionName: Botan_Tests::Test::registered_test_categories
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::PCurve::PrimeOrderCurveImpl::instance
    linkageType: ''
    returnType: std::set<std::string>
    signature: std::set<std::string> Test::registered_test_categories()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PCurve::PrimeOrderCurveImpl::instance
      Src: /src/botan/src/tests/tests.cpp:639,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' test_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 638
    functionDepth: 1
    functionLinenumber: 638
    functionLinenumberEnd: 640
    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:644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' test_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 645
    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:650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' requested'
    - ' to_be_skipped'
    argTypes:
    - std::vector<std::string>
    - std::set<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 648
    functionDepth: 1
    functionLinenumber: 648
    functionLinenumberEnd: 651
    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::set<std::string>&
      to_be_skipped)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ::mkstemp
      Src: /src/botan/src/tests/tests.cpp:662,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/tests.cpp:662,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/tests/tests.cpp:669,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' basename'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 654
    functionDepth: 1
    functionLinenumber: 654
    functionLinenumberEnd: 676
    functionName: Botan_Tests::Test::temp_file_name
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 13
    functionsReached:
    - ::mkstemp
    - std::string::data
    - Botan::TLS::Channel_Impl::close
    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:681,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/tests.cpp:685,1
    - Dst: Botan::No_Filesystem_Access::No_Filesystem_Access
      Src: /src/botan/src/tests/tests.cpp:686,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' from'
    - ' to'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 678
    functionDepth: 1
    functionLinenumber: 678
    functionLinenumberEnd: 688
    functionName: Botan_Tests::Test::copy_file
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 3
    functionsReached:
    - BOTAN_UNUSED
    - Botan_Tests::Test::copy_file
    - Botan::No_Filesystem_Access::No_Filesystem_Access
    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:691,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/tests.cpp:692,1
    - Dst: std::ifstream::good
      Src: /src/botan/src/tests/tests.cpp:693,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:694,1
    - Dst: std::string
      Src: /src/botan/src/tests/tests.cpp:697,1
    - Dst: std::istreambuf_iterator<char>
      Src: /src/botan/src/tests/tests.cpp:697,1
    - Dst: std::istreambuf_iterator<char>
      Src: /src/botan/src/tests/tests.cpp:697,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 698
    functionName: Botan_Tests::Test::read_data_file
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 2
    functionsReached:
    - Test_Error
    - std::ifstream::good
    - Botan_Tests::Test::data_file
    - std::string
    - std::string::c_str
    - std::istreambuf_iterator<char>
    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:701,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/tests.cpp:702,1
    - Dst: std::ifstream::good
      Src: /src/botan/src/tests/tests.cpp:703,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:704,1
    - Dst: std::ifstream::good
      Src: /src/botan/src/tests/tests.cpp:709,1
    - Dst: std::ifstream::read
      Src: /src/botan/src/tests/tests.cpp:711,1
    - Dst: reinterpret_cast<char*>
      Src: /src/botan/src/tests/tests.cpp:711,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/tests.cpp:711,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/tests.cpp:711,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/tests.cpp:712,1
    - Dst: std::ifstream::gcount
      Src: /src/botan/src/tests/tests.cpp:712,1
    - Dst: std::ifstream::eof
      Src: /src/botan/src/tests/tests.cpp:714,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/tests.cpp:718,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/tests.cpp:718,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/tests.cpp:718,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/tests.cpp:718,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - ' path'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 722
      start: 700
    functionDepth: 1
    functionLinenumber: 700
    functionLinenumberEnd: 722
    functionName: Botan_Tests::Test::read_binary_data_file
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 12
    functionsReached:
    - std::ifstream::gcount
    - Test_Error
    - std::ifstream::good
    - static_cast<size_t>
    - Botan_Tests::Test::data_file
    - std::ifstream::read
    - std::string::c_str
    - std::vector::data
    - std::vector::insert
    - std::ifstream::eof
    - std::vector::end
    - std::vector::size
    - reinterpret_cast<char*>
    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: 734
      start: 732
    functionDepth: 0
    functionLinenumber: 732
    functionLinenumberEnd: 734
    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: 744
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 744
    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: 746
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 746
    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: 748
      start: 748
    functionDepth: 0
    functionLinenumber: 748
    functionLinenumberEnd: 748
    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: 750
      start: 750
    functionDepth: 0
    functionLinenumber: 750
    functionLinenumberEnd: 750
    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:754,1
    - Dst: Botan_Tests::Testsuite_RNG::mix
      Src: /src/botan/src/tests/tests.cpp:758,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: 760
      start: 752
    functionDepth: 1
    functionLinenumber: 752
    functionLinenumberEnd: 760
    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:764,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/tests.cpp:764,1
    - Dst: Botan_Tests::Testsuite_RNG::mix
      Src: /src/botan/src/tests/tests.cpp:767,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/tests.cpp:767,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: 769
      start: 762
    functionDepth: 1
    functionLinenumber: 762
    functionLinenumberEnd: 769
    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:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 772
    functionDepth: 0
    functionLinenumber: 772
    functionLinenumberEnd: 777
    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: 744
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 744
    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: 746
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 746
    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: 748
      start: 748
    functionDepth: 0
    functionLinenumber: 748
    functionLinenumberEnd: 748
    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: 750
      start: 750
    functionDepth: 0
    functionLinenumber: 750
    functionLinenumberEnd: 750
    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:754,1
    - Dst: Botan_Tests::Testsuite_RNG::mix
      Src: /src/botan/src/tests/tests.cpp:758,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: 760
      start: 752
    functionDepth: 1
    functionLinenumber: 752
    functionLinenumberEnd: 760
    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:764,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/tests.cpp:764,1
    - Dst: Botan_Tests::Testsuite_RNG::mix
      Src: /src/botan/src/tests/tests.cpp:767,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/tests.cpp:767,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: 769
      start: 762
    functionDepth: 1
    functionLinenumber: 762
    functionLinenumberEnd: 769
    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:776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 772
    functionDepth: 0
    functionLinenumber: 772
    functionLinenumberEnd: 777
    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:786,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/tests.cpp:786,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: 787
      start: 785
    functionDepth: 1
    functionLinenumber: 785
    functionLinenumberEnd: 787
    functionName: Botan_Tests::Test::set_test_rng_seed
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::hex_encode
    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:791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - test_name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 790
    functionDepth: 0
    functionLinenumber: 790
    functionLinenumberEnd: 792
    functionName: Botan_Tests::Test::new_rng
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 132
    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:796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - test_name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 795
    functionDepth: 0
    functionLinenumber: 795
    functionLinenumberEnd: 797
    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:801,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 800
    functionDepth: 0
    functionLinenumber: 800
    functionLinenumberEnd: 802
    functionName: Botan_Tests::Test::data_file
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 160
    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:806,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' subdir'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 807
    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:811,1
    - Dst: options
      Src: /src/botan/src/tests/tests.cpp:811,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/tests.cpp:812,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:813,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' subdir'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 816
      start: 810
    functionDepth: 1
    functionLinenumber: 810
    functionLinenumberEnd: 816
    functionName: Botan_Tests::Test::files_in_data_dir
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 17
    functionsReached:
    - options
    - auto::empty
    - Test_Error
    - Botan::get_files_recursive
    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:821,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/tests.cpp:821,1
    - Dst: auto::end
      Src: /src/botan/src/tests/tests.cpp:821,1
    - Dst: Botan_Tests::Test::temp_file_name
      Src: /src/botan/src/tests/tests.cpp:822,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/tests.cpp:823,1
    - Dst: Botan_Tests::Test::copy_file
      Src: /src/botan/src/tests/tests.cpp:826,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/tests.cpp:826,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' what'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 819
    functionDepth: 2
    functionLinenumber: 819
    functionLinenumberEnd: 830
    functionName: Botan_Tests::Test::data_file_as_temporary_copy
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 8
    functionsReached:
    - auto::empty
    - Botan_Tests::Test::temp_file_name
    - auto::end
    - Botan_Tests::Test::data_file
    - Botan_Tests::Test::copy_file
    - std::replace
    - auto::begin
    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:834,1
    - Dst: provider
      Src: /src/botan/src/tests/tests.cpp:838,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - ' providers'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 833
    functionDepth: 1
    functionLinenumber: 833
    functionLinenumberEnd: 843
    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:846,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/tests.cpp:847,1
    - Dst: random_vec
      Src: /src/botan/src/tests/tests.cpp:847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 845
    functionDepth: 0
    functionLinenumber: 845
    functionLinenumberEnd: 848
    functionName: Botan_Tests::Test::random_password
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 4
    functionsReached:
    - Botan::hex_encode
    - random_vec
    - next_byte
    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:851,1
    - Dst: random_array
      Src: /src/botan/src/tests/tests.cpp:851,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' rng'
    - max
    argTypes:
    - Botan::RandomNumberGenerator
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 850
    functionDepth: 1
    functionLinenumber: 850
    functionLinenumberEnd: 852
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/tests.cpp:855,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:856,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:857,1
    - Dst: Botan::split_on
      Src: /src/botan/src/tests/tests.cpp:862,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:864,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/tests.cpp:864,1
    - Dst: what
      Src: /src/botan/src/tests/tests.cpp:868,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:869,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:869,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 854
    functionDepth: 1
    functionLinenumber: 854
    functionLinenumberEnd: 874
    functionName: Botan_Tests::VarMap::get_req_bin_list
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - std::vector::push_back
    - Test_Error
    - std::ostringstream::str
    - Botan::split_on
    - end
    - what
    - find
    linkageType: ''
    returnType: std::vector<std::vector<uint8_t>>
    signature: std::vector<std::vector<uint8_t>> VarMap::get_req_bin_list(const std::string&
      key) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/tests.cpp:877,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:878,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:879,1
    - Dst: auto::second::starts_with
      Src: /src/botan/src/tests/tests.cpp:883,1
    - Dst: auto::second::size
      Src: /src/botan/src/tests/tests.cpp:884,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/tests.cpp:885,1
    - Dst: auto::second::substr
      Src: /src/botan/src/tests/tests.cpp:885,1
    - Dst: std::swap
      Src: /src/botan/src/tests/tests.cpp:888,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/tests.cpp:889,1
    - Dst: std::string::substr
      Src: /src/botan/src/tests/tests.cpp:889,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/tests.cpp:892,1
    - Dst: what
      Src: /src/botan/src/tests/tests.cpp:897,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:898,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:898,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 876
    functionDepth: 1
    functionLinenumber: 876
    functionLinenumberEnd: 900
    functionName: Botan_Tests::VarMap::get_req_bin
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Test_Error
    - auto::second::substr
    - std::ostringstream::str
    - std::swap
    - auto::second::starts_with
    - auto::second::size
    - end
    - what
    - std::string::substr
    - find
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> VarMap::get_req_bin(const std::string& key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/tests.cpp:903,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:904,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' key'
    - ' def_value'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 908
      start: 902
    functionDepth: 0
    functionLinenumber: 902
    functionLinenumberEnd: 908
    functionName: Botan_Tests::VarMap::get_opt_str
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - find
    - end
    linkageType: ''
    returnType: std::string
    signature: std::string VarMap::get_opt_str(const std::string& key, const std::string&
      def_value) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/tests.cpp:911,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:912,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:913,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:921,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 910
    functionDepth: 0
    functionLinenumber: 910
    functionLinenumberEnd: 923
    functionName: Botan_Tests::VarMap::get_req_bool
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - find
    - Test_Error
    - end
    linkageType: ''
    returnType: bool
    signature: bool VarMap::get_req_bool(const std::string& key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/tests.cpp:926,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:927,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:928,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/tests/tests.cpp:930,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 925
    functionDepth: 1
    functionLinenumber: 925
    functionLinenumberEnd: 931
    functionName: Botan_Tests::VarMap::get_req_sz
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 2
    functionsReached:
    - Botan::to_u32bit
    - find
    - Test_Error
    - end
    linkageType: ''
    returnType: size_t
    signature: size_t VarMap::get_req_sz(const std::string& key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::VarMap::get_req_sz
      Src: /src/botan/src/tests/tests.cpp:934,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:936,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/tests.cpp:936,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/tests.cpp:938,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 933
    functionDepth: 2
    functionLinenumber: 933
    functionLinenumberEnd: 939
    functionName: Botan_Tests::VarMap::get_req_u8
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::VarMap::get_req_sz
    - static_cast<uint8_t>
    - Test_Error
    - std::to_string
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t VarMap::get_req_u8(const std::string& key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/tests.cpp:942,1
    - Dst: Botan_Tests::VarMap::get_req_sz
      Src: /src/botan/src/tests/tests.cpp:942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 941
    functionDepth: 2
    functionLinenumber: 941
    functionLinenumberEnd: 943
    functionName: Botan_Tests::VarMap::get_req_u32
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::VarMap::get_req_sz
    - static_cast<uint32_t>
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t VarMap::get_req_u32(const std::string& key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/tests.cpp:946,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:947,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:948,1
    - Dst: std::stoull
      Src: /src/botan/src/tests/tests.cpp:951,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:953,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 945
    functionDepth: 0
    functionLinenumber: 945
    functionLinenumberEnd: 955
    functionName: Botan_Tests::VarMap::get_req_u64
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::stoull
    - find
    - Test_Error
    - end
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t VarMap::get_req_u64(const std::string& key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/tests.cpp:958,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:959,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/tests/tests.cpp:962,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' key'
    - def_value
    argTypes:
    - std::string
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 963
      start: 957
    functionDepth: 1
    functionLinenumber: 957
    functionLinenumberEnd: 963
    functionName: Botan_Tests::VarMap::get_opt_sz
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::to_u32bit
    - find
    - end
    linkageType: ''
    returnType: size_t
    signature: size_t VarMap::get_opt_sz(const std::string& key, const size_t def_value)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/tests.cpp:966,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:967,1
    - Dst: std::stoull
      Src: /src/botan/src/tests/tests.cpp:971,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:973,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' key'
    - def_value
    argTypes:
    - std::string
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 965
    functionDepth: 0
    functionLinenumber: 965
    functionLinenumberEnd: 975
    functionName: Botan_Tests::VarMap::get_opt_u64
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::stoull
    - find
    - Test_Error
    - end
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t VarMap::get_opt_u64(const std::string& key, const uint64_t
      def_value) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/tests.cpp:978,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:979,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/tests.cpp:980,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/tests.cpp:984,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:986,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 977
    functionDepth: 1
    functionLinenumber: 977
    functionLinenumberEnd: 988
    functionName: Botan_Tests::VarMap::get_opt_bin
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Test_Error
    - std::vector<uint8_t>
    - end
    - find
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> VarMap::get_opt_bin(const std::string& key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/tests.cpp:991,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:992,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:993,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 990
    functionDepth: 0
    functionLinenumber: 990
    functionLinenumberEnd: 996
    functionName: Botan_Tests::VarMap::get_req_str
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - find
    - Test_Error
    - end
    linkageType: ''
    returnType: std::string
    signature: std::string VarMap::get_req_str(const std::string& key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/tests.cpp:1000,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:1001,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1002,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/tests.cpp:1006,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1008,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 999
    functionDepth: 1
    functionLinenumber: 999
    functionLinenumberEnd: 1010
    functionName: Botan_Tests::VarMap::get_req_bn
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt
    - find
    - Test_Error
    - end
    linkageType: ''
    returnType: Botan::BigInt
    signature: Botan::BigInt VarMap::get_req_bn(const std::string& key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/tests.cpp:1013,1
    - Dst: end
      Src: /src/botan/src/tests/tests.cpp:1014,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/tests.cpp:1019,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1021,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' key'
    - ' def_value'
    argTypes:
    - std::string
    - Botan::BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 1012
    functionDepth: 1
    functionLinenumber: 1012
    functionLinenumberEnd: 1023
    functionName: Botan_Tests::VarMap::get_opt_bn
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt
    - find
    - Test_Error
    - end
    linkageType: ''
    returnType: Botan::BigInt
    signature: Botan::BigInt VarMap::get_opt_bn(const std::string& key, const Botan::BigInt&
      def_value) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/tests.cpp:1030,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1031,1
    - Dst: Botan::split_on
      Src: /src/botan/src/tests/tests.cpp:1034,1
    - Dst: Botan::split_on
      Src: /src/botan/src/tests/tests.cpp:1035,1
    - Dst: insert
      Src: /src/botan/src/tests/tests.cpp:1037,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/tests.cpp:1037,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/tests.cpp:1037,1
    - Dst: insert
      Src: /src/botan/src/tests/tests.cpp:1038,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/tests.cpp:1038,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/tests.cpp:1038,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/tests.cpp:1039,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/tests.cpp:1039,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ' data_src'
    - ' required_keys_str'
    - ' optional_keys_str'
    argTypes:
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1026
    functionDepth: 1
    functionLinenumber: 1026
    functionLinenumberEnd: 1040
    functionName: Botan_Tests::Text_Based_Test::Text_Based_Test
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - Test_Error
    - std::vector::at
    - Botan::split_on
    - std::vector::end
    - empty
    - std::vector::size
    - insert
    linkageType: ''
    returnType: void
    signature: "void Text_Based_Test::Text_Based_Test(const std::string& data_src,\n
      \                                const std::string& required_keys_str,\n                                 const
      std::string& optional_keys_str)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: good
      Src: /src/botan/src/tests/tests.cpp:1044,1
    - Dst: empty
      Src: /src/botan/src/tests/tests.cpp:1045,1
    - Dst: ends_with
      Src: /src/botan/src/tests/tests.cpp:1047,1
    - Dst: push_back
      Src: /src/botan/src/tests/tests.cpp:1048,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/tests.cpp:1048,1
    - Dst: Botan_Tests::Test::files_in_data_dir
      Src: /src/botan/src/tests/tests.cpp:1050,1
    - Dst: assign
      Src: /src/botan/src/tests/tests.cpp:1051,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/tests.cpp:1051,1
    - Dst: auto::end
      Src: /src/botan/src/tests/tests.cpp:1051,1
    - Dst: empty
      Src: /src/botan/src/tests/tests.cpp:1052,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1053,1
    - Dst: std::make_unique<std::ifstream>
      Src: /src/botan/src/tests/tests.cpp:1063,1
    - Dst: empty
      Src: /src/botan/src/tests/tests.cpp:1068,1
    - Dst: clear
      Src: /src/botan/src/tests/tests.cpp:1069,1
    - Dst: Botan::CPUID::initialize
      Src: /src/botan/src/tests/tests.cpp:1070,1
    - Dst: good
      Src: /src/botan/src/tests/tests.cpp:1074,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1075,1
    - Dst: pop_front
      Src: /src/botan/src/tests/tests.cpp:1078,1
    - Dst: good
      Src: /src/botan/src/tests/tests.cpp:1081,1
    - Dst: std::getline
      Src: /src/botan/src/tests/tests.cpp:1083,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/tests.cpp:1085,1
    - Dst: std::string::starts_with
      Src: /src/botan/src/tests/tests.cpp:1090,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1042
    functionDepth: 2
    functionLinenumber: 1042
    functionLinenumberEnd: 1100
    functionName: Botan_Tests::Text_Based_Test::get_next_line
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 1
    functionsReached:
    - assign
    - good
    - Test_Error
    - Botan_Tests::Test::data_file
    - auto::end
    - clear
    - pop_front
    - ends_with
    - std::string::empty
    - std::getline
    - empty
    - push_back
    - Botan_Tests::Test::files_in_data_dir
    - std::make_unique<std::ifstream>
    - std::string::starts_with
    - Botan::CPUID::initialize
    - auto::begin
    linkageType: ''
    returnType: std::string
    signature: std::string Text_Based_Test::get_next_line()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find_first_not_of
      Src: /src/botan/src/tests/tests.cpp:1108,1
    - Dst: find_last_not_of
      Src: /src/botan/src/tests/tests.cpp:1113,1
    - Dst: substr
      Src: /src/botan/src/tests/tests.cpp:1115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1105
    functionDepth: 0
    functionLinenumber: 1105
    functionLinenumberEnd: 1116
    functionName: Botan_Tests::strip_ws
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - substr
    - find_last_not_of
    - find_first_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:1122,1
    - Dst: Botan::CPUID::bit_from_string
      Src: /src/botan/src/tests/tests.cpp:1123,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:1124,1
    - Dst: auto::to_string
      Src: /src/botan/src/tests/tests.cpp:1124,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/tests.cpp:1128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' tok'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1132
      start: 1118
    functionDepth: 1
    functionLinenumber: 1118
    functionLinenumberEnd: 1132
    functionName: Botan_Tests::parse_cpuid_bits
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - size
    - auto::to_string
    - BOTAN_UNUSED
    - Botan::CPUID::bit_from_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:1108,1
    - Dst: find_last_not_of
      Src: /src/botan/src/tests/tests.cpp:1113,1
    - Dst: substr
      Src: /src/botan/src/tests/tests.cpp:1115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1105
    functionDepth: 0
    functionLinenumber: 1105
    functionLinenumberEnd: 1116
    functionName: Botan_Tests::strip_ws
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - substr
    - find_last_not_of
    - find_first_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:1122,1
    - Dst: Botan::CPUID::bit_from_string
      Src: /src/botan/src/tests/tests.cpp:1123,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:1124,1
    - Dst: auto::to_string
      Src: /src/botan/src/tests/tests.cpp:1124,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/tests.cpp:1128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' tok'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1132
      start: 1118
    functionDepth: 1
    functionLinenumber: 1118
    functionLinenumberEnd: 1132
    functionName: Botan_Tests::parse_cpuid_bits
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - size
    - auto::to_string
    - BOTAN_UNUSED
    - Botan::CPUID::bit_from_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: 1138
      start: 1136
    functionDepth: 0
    functionLinenumber: 1136
    functionLinenumberEnd: 1138
    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: Botan_Tests::Text_Based_Test::get_next_line
      Src: /src/botan/src/tests/tests.cpp:1149,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/tests.cpp:1150,1
    - Dst: std::string::starts_with
      Src: /src/botan/src/tests/tests.cpp:1155,1
    - Dst: Botan::split_on
      Src: /src/botan/src/tests/tests.cpp:1156,1
    - Dst: std::string::substr
      Src: /src/botan/src/tests/tests.cpp:1156,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/tests.cpp:1158,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1159,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1163,1
    - Dst: Botan::PCurve::PrimeOrderCurveImpl::instance
      Src: /src/botan/src/tests/tests.cpp:1166,1
    - Dst: Botan_Tests::Text_Based_Test::test_name
      Src: /src/botan/src/tests/tests.cpp:1166,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1167,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:1167,1
    - Dst: Botan_Tests::Text_Based_Test::test_name
      Src: /src/botan/src/tests/tests.cpp:1167,1
    - Dst: parse_cpuid_bits
      Src: /src/botan/src/tests/tests.cpp:1170,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1174,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/tests.cpp:1177,1
    - Dst: std::string::substr
      Src: /src/botan/src/tests/tests.cpp:1178,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/tests.cpp:1178,1
    - Dst: VarMap::clear
      Src: /src/botan/src/tests/tests.cpp:1181,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/tests.cpp:1185,1
    - Dst: std::string::find_first_of
      Src: /src/botan/src/tests/tests.cpp:1187,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:1190,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/tests.cpp:1190,1
    - Dst: strip_ws
      Src: /src/botan/src/tests/tests.cpp:1194,1
    - Dst: std::string
      Src: /src/botan/src/tests/tests.cpp:1194,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/tests.cpp:1194,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/tests.cpp:1194,1
    - Dst: strip_ws
      Src: /src/botan/src/tests/tests.cpp:1195,1
    - Dst: std::string
      Src: /src/botan/src/tests/tests.cpp:1195,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/tests.cpp:1195,1
    - Dst: std::string::end
      Src: /src/botan/src/tests/tests.cpp:1195,1
    - Dst: contains
      Src: /src/botan/src/tests/tests.cpp:1197,1
    - Dst: contains
      Src: /src/botan/src/tests/tests.cpp:1197,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/tests.cpp:1198,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:1198,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:1199,1
    - Dst: VarMap::add
      Src: /src/botan/src/tests/tests.cpp:1202,1
    - Dst: VarMap::has_key
      Src: /src/botan/src/tests/tests.cpp:1207,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/tests.cpp:1209,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/tests.cpp:1209,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:1210,1
    - Dst: Botan_Tests::Text_Based_Test::skip_this_test
      Src: /src/botan/src/tests/tests.cpp:1214,1
    - Dst: Botan_Tests::Test::timestamp
      Src: /src/botan/src/tests/tests.cpp:1220,1
    - Dst: run_one_test
      Src: /src/botan/src/tests/tests.cpp:1222,1
    - Dst: empty
      Src: /src/botan/src/tests/tests.cpp:1224,1
    - Dst: Botan::CPUFeature::from_string
      Src: /src/botan/src/tests/tests.cpp:1226,1
    - Dst: has
      Src: /src/botan/src/tests/tests.cpp:1227,1
    - Dst: Botan::clear_cpuid_bit
      Src: /src/botan/src/tests/tests.cpp:1228,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/tests.cpp:1230,1
    - Dst: run_one_test
      Src: /src/botan/src/tests/tests.cpp:1230,1
    - Dst: Botan::CPUID::initialize
      Src: /src/botan/src/tests/tests.cpp:1234,1
    - Dst: Test::Result::set_ns_consumed
      Src: /src/botan/src/tests/tests.cpp:1237,1
    - Dst: Botan_Tests::Test::timestamp
      Src: /src/botan/src/tests/tests.cpp:1237,1
    - Dst: Test::Result::tests_failed
      Src: /src/botan/src/tests/tests.cpp:1239,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/tests.cpp:1242,1
    - Dst: VarMap::get_req_str
      Src: /src/botan/src/tests/tests.cpp:1248,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/tests.cpp:1251,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:1251,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:1253,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/tests.cpp:1257,1
    - Dst: VarMap::get_req_str
      Src: /src/botan/src/tests/tests.cpp:1262,1
    - Dst: what
      Src: /src/botan/src/tests/tests.cpp:1265,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:1267,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/tests.cpp:1267,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/tests.cpp:1267,1
    - Dst: Botan_Tests::Text_Based_Test::clear_between_callbacks
      Src: /src/botan/src/tests/tests.cpp:1270,1
    - Dst: VarMap::clear
      Src: /src/botan/src/tests/tests.cpp:1271,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/tests.cpp:1276,1
    - Dst: Botan_Tests::Text_Based_Test::run_final_tests
      Src: /src/botan/src/tests/tests.cpp:1281,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/tests.cpp:1282,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/tests.cpp:1282,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/tests.cpp:1282,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/tests.cpp:1282,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/tests.cpp:1284,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/tests.cpp:1284,1
    - Dst: std::string
      Src: /src/botan/src/tests/tests.cpp:1284,1
    - Dst: what
      Src: /src/botan/src/tests/tests.cpp:1284,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 93
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1290
      start: 1140
    functionDepth: 3
    functionLinenumber: 1140
    functionLinenumberEnd: 1290
    functionName: Botan_Tests::Text_Based_Test::run
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - has
    - Botan_Tests::Text_Based_Test::run_final_tests
    - Botan_Tests::Text_Based_Test::clear_between_callbacks
    - std::ostringstream::str
    - std::string::empty
    - std::string::starts_with
    - Botan::PCurve::PrimeOrderCurveImpl::instance
    - std::string::end
    - Botan::clear_cpuid_bit
    - std::vector::end
    - what
    - std::string::substr
    - std::vector::insert
    - Botan_Tests::Text_Based_Test::skip_this_test
    - std::vector::begin
    - Test_Error
    - contains
    - Test::Result::tests_failed
    - Botan_Tests::Text_Based_Test::get_next_line
    - VarMap::clear
    - std::vector::push_back
    - std::string::find_first_of
    - Botan::split_on
    - std::vector::empty
    - parse_cpuid_bits
    - strip_ws
    - Botan::CPUID::initialize
    - Test::Result::test_note
    - std::string::size
    - VarMap::has_key
    - Botan::fmt
    - Botan_Tests::Text_Based_Test::test_name
    - std::string::begin
    - VarMap::add
    - VarMap::get_req_str
    - std::string
    - Test::Result::set_ns_consumed
    - Botan::CPUFeature::from_string
    - empty
    - Botan_Tests::Test::Result::Failure
    - std::to_string
    - Botan_Tests::Test::timestamp
    - run_one_test
    - Test::Result::merge
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> Text_Based_Test::run()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/tests.cpp:1296,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/tests.cpp:1299,1
    - Dst: std::map::insert_or_assign
      Src: /src/botan/src/tests/tests.cpp:1302,1
    - Dst: substr
      Src: /src/botan/src/tests/tests.cpp:1302,1
    - Dst: substr
      Src: /src/botan/src/tests/tests.cpp:1302,1
    - Dst: size
      Src: /src/botan/src/tests/tests.cpp:1302,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1306
      start: 1292
    functionDepth: 0
    functionLinenumber: 1292
    functionLinenumberEnd: 1306
    functionName: Botan_Tests::Test_Options::report_properties
    functionSourceFile: /src/botan/src/tests/tests.cpp
    functionUses: 0
    functionsReached:
    - substr
    - Test_Error
    - size
    - find
    - std::map::insert_or_assign
    linkageType: ''
    returnType: std::map<std::string, std::string>
    signature: std::map<std::string, std::string> Test_Options::report_properties()
      const
  - 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_ASSERT_NOMSG
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - std::make_pair
    - Botan::TreeNodeIndex
    - Botan::load_be<uint32_t>
    - Botan::Sphincs_Address
    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:
    - auto::is_available
    - Botan::Sphincs_Parameters::create
    - get_req_str
    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_is_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_is_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_is_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:
    - auto::hash_type
    - Botan::StrongSpan<Botan::SphincsTreeNode>
    - Botan::StrongSpan<Botan::WotsSignature>
    - auto::get
    - Botan::as_subtree_from
    - Botan::HashFunction::create
    - Botan::chain_lengths
    - Botan::Sphincs_Hash_Functions::create
    - Test::Result::test_is_eq
    - auto::wots_len
    - auto::T
    - Botan::wots_public_key_from_signature
    - wots_sign_and_pkgen
    - get_req_bin
    - Botan_Tests::SPHINCS_Plus_WOTS_Test::read_address_and_leaf_idx
    - auto::set_keypair_address
    - auto::n
    - auto::process
    - Botan::SphincsSecretSeed
    - get_req_str
    - Test::Result::test_note
    - Botan::SphincsTreeNode
    - Botan::Sphincs_Parameters::create
    - Botan::WotsSignature
    - Botan::SphincsPublicSeed
    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_ASSERT_NOMSG
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - std::make_pair
    - Botan::TreeNodeIndex
    - Botan::load_be<uint32_t>
    - Botan::Sphincs_Address
    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:
    - auto::is_available
    - Botan::Sphincs_Parameters::create
    - get_req_str
    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_is_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_is_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_is_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:
    - auto::hash_type
    - Botan::StrongSpan<Botan::SphincsTreeNode>
    - Botan::StrongSpan<Botan::WotsSignature>
    - auto::get
    - Botan::as_subtree_from
    - Botan::HashFunction::create
    - Botan::chain_lengths
    - Botan::Sphincs_Hash_Functions::create
    - Test::Result::test_is_eq
    - auto::wots_len
    - auto::T
    - Botan::wots_public_key_from_signature
    - wots_sign_and_pkgen
    - get_req_bin
    - Botan_Tests::SPHINCS_Plus_WOTS_Test::read_address_and_leaf_idx
    - auto::set_keypair_address
    - auto::n
    - auto::process
    - Botan::SphincsSecretSeed
    - get_req_str
    - Test::Result::test_note
    - Botan::SphincsTreeNode
    - Botan::Sphincs_Parameters::create
    - Botan::WotsSignature
    - Botan::SphincsPublicSeed
    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:
    - std::holds_alternative<T>
    - require
    - value
    - has_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
    - value
    - std::get<T>
    - Botan_Tests::has_message
    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: confirm
      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: confirm
      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: confirm
      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:178,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:178,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:178,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:179,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:182,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:186,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:187,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:187,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:187,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:187,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:188,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:191,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:195,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:196,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:197,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:197,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:197,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:198,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:201,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:206,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:207,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:208,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:209,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:209,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:209,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:210,1
    - Dst: Handshake_Layer::has_pending_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:210,1
    - Dst: cend
      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:213,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:214,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:215,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:215,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:215,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:215,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:217,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:220,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:224,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:224,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:225,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:225,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:225,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:225,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:226,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:227,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:227,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:227,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:228,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:231,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:237,1
    - Dst: template test_throws<TLS_Exception>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:238,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:240,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:240,1
    - Dst: Botan_Tests::check_transcript_hash_empty
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:242,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:246,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:253,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:258,1
    - Dst: template test_throws<TLS_Exception>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:259,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:260,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 154
    functionDepth: 3
    functionLinenumber: 154
    functionLinenumberEnd: 263
    functionName: Botan_Tests::read_handshake_messages
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    - Botan_Tests::check_transcript_hash_filled
    - Botan_Tests::check_transcript_hash_empty
    - Handshake_Layer::next_message
    - Botan_Tests::CHECK
    - Handshake_Layer::has_pending_data
    - cend
    - Handshake_Layer::copy_data
    - Botan_Tests::has_message
    - Botan::concat
    - template test_throws<TLS_Exception>
    - cbegin
    - confirm
    - Policy
    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:267,1
    - Dst: std::get<Client_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:269,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:270,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:270,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:270,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:273,1
    - Dst: Handshake_Layer::prepare_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:273,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:274,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:277,1
    - Dst: std::get<Server_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:279,1
    - Dst: Botan::TLS::Server_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:280,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:280,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:280,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:283,1
    - Dst: Handshake_Layer::prepare_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:283,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 265
    functionDepth: 3
    functionLinenumber: 265
    functionLinenumberEnd: 287
    functionName: Botan_Tests::prepare_message
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Handshake_Layer::prepare_message
    - test_eq
    - Botan_Tests::check_transcript_hash_filled
    - Botan::TLS::Client_Hello_13::parse
    - Botan_Tests::CHECK
    - cend
    - Botan::TLS::Server_Hello_13::parse
    - std::get<Client_Hello_13>
    - cbegin
    - std::get<Server_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:296,1
    - Dst: std::get<Client_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:298,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:299,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:299,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:299,1
    - Dst: Handshake_Layer::prepare_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:300,1
    - Dst: Botan_Tests::check_transcript_hash_empty
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:301,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:304,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:306,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:308,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:309,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:309,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:312,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:314,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:316,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:319,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:320,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:323,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:325,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:327,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:328,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:328,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:330,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:331,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:331,1
    - Dst: Botan::hex_decode
      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:336,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:337,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:337,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:338,1
    - Dst: Transcript_Hash_State::previous
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:338,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:340,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:343,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:344,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:344,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:345,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:345,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:348,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:350,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:353,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:353,1
    - Dst: Handshake_Layer::prepare_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:354,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:355,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 289
    functionDepth: 3
    functionLinenumber: 289
    functionLinenumberEnd: 358
    functionName: Botan_Tests::full_client_handshake
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Handshake_Layer::prepare_message
    - Botan::hex_decode
    - Botan_Tests::check_transcript_hash_filled
    - test_eq
    - Botan::TLS::Client_Hello_13::parse
    - Botan_Tests::CHECK
    - Botan_Tests::check_transcript_hash_empty
    - Handshake_Layer::next_message
    - Transcript_Hash_State::current
    - Transcript_Hash_State::previous
    - cend
    - Handshake_Layer::copy_data
    - Botan_Tests::has_message
    - std::get<Client_Hello_13>
    - cbegin
    - confirm
    - Transcript_Hash_State::set_algorithm
    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:367,1
    - Dst: std::get<Client_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:369,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:370,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:370,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:370,1
    - Dst: Handshake_Layer::prepare_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:371,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:372,1
    - Dst: Botan_Tests::check_transcript_hash_empty
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:373,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:376,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:378,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:380,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:381,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:381,1
    - Dst: Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:385,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:387,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:390,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:392,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 360
    functionDepth: 3
    functionLinenumber: 360
    functionLinenumberEnd: 399
    functionName: Botan_Tests::hello_retry_request_handshake
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Handshake_Layer::prepare_message
    - test_eq
    - Botan_Tests::check_transcript_hash_filled
    - Botan::hex_decode
    - Botan::TLS::Client_Hello_13::parse
    - Botan_Tests::CHECK
    - Botan_Tests::check_transcript_hash_empty
    - Handshake_Layer::next_message
    - Transcript_Hash_State::current
    - cend
    - Handshake_Layer::copy_data
    - Botan_Tests::has_message
    - Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
    - std::get<Client_Hello_13>
    - cbegin
    - confirm
    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:
    - std::holds_alternative<T>
    - require
    - value
    - has_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
    - value
    - std::get<T>
    - Botan_Tests::has_message
    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: confirm
      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: confirm
      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: confirm
      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:178,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:178,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:178,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:179,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:182,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:186,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:187,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:187,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:187,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:187,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:188,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:191,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:195,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:196,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:197,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:197,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:197,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:198,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:201,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:206,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:207,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:208,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:209,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:209,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:209,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:210,1
    - Dst: Handshake_Layer::has_pending_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:210,1
    - Dst: cend
      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:213,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:214,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:215,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:215,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:215,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:215,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:217,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:220,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:224,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:224,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:225,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:225,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:225,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:225,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:226,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:227,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:227,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:227,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:228,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:231,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:237,1
    - Dst: template test_throws<TLS_Exception>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:238,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:240,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:240,1
    - Dst: Botan_Tests::check_transcript_hash_empty
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:242,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:246,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:253,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:258,1
    - Dst: template test_throws<TLS_Exception>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:259,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:260,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 154
    functionDepth: 3
    functionLinenumber: 154
    functionLinenumberEnd: 263
    functionName: Botan_Tests::read_handshake_messages
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    - Botan_Tests::check_transcript_hash_filled
    - Botan_Tests::check_transcript_hash_empty
    - Handshake_Layer::next_message
    - Botan_Tests::CHECK
    - Handshake_Layer::has_pending_data
    - cend
    - Handshake_Layer::copy_data
    - Botan_Tests::has_message
    - Botan::concat
    - template test_throws<TLS_Exception>
    - cbegin
    - confirm
    - Policy
    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:267,1
    - Dst: std::get<Client_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:269,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:270,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:270,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:270,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:273,1
    - Dst: Handshake_Layer::prepare_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:273,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:274,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:277,1
    - Dst: std::get<Server_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:279,1
    - Dst: Botan::TLS::Server_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:280,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:280,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:280,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:283,1
    - Dst: Handshake_Layer::prepare_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:283,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 265
    functionDepth: 3
    functionLinenumber: 265
    functionLinenumberEnd: 287
    functionName: Botan_Tests::prepare_message
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Handshake_Layer::prepare_message
    - test_eq
    - Botan_Tests::check_transcript_hash_filled
    - Botan::TLS::Client_Hello_13::parse
    - Botan_Tests::CHECK
    - cend
    - Botan::TLS::Server_Hello_13::parse
    - std::get<Client_Hello_13>
    - cbegin
    - std::get<Server_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:296,1
    - Dst: std::get<Client_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:298,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:299,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:299,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:299,1
    - Dst: Handshake_Layer::prepare_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:300,1
    - Dst: Botan_Tests::check_transcript_hash_empty
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:301,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:304,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:306,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:308,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:309,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:309,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:312,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:314,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:316,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:319,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:320,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:323,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:325,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:327,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:328,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:328,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:330,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:331,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:331,1
    - Dst: Botan::hex_decode
      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:336,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:337,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:337,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:338,1
    - Dst: Transcript_Hash_State::previous
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:338,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:340,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:343,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:344,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:344,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:345,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:345,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:348,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:350,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:353,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:353,1
    - Dst: Handshake_Layer::prepare_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:354,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:355,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 289
    functionDepth: 3
    functionLinenumber: 289
    functionLinenumberEnd: 358
    functionName: Botan_Tests::full_client_handshake
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Handshake_Layer::prepare_message
    - Botan::hex_decode
    - Botan_Tests::check_transcript_hash_filled
    - test_eq
    - Botan::TLS::Client_Hello_13::parse
    - Botan_Tests::CHECK
    - Botan_Tests::check_transcript_hash_empty
    - Handshake_Layer::next_message
    - Transcript_Hash_State::current
    - Transcript_Hash_State::previous
    - cend
    - Handshake_Layer::copy_data
    - Botan_Tests::has_message
    - std::get<Client_Hello_13>
    - cbegin
    - confirm
    - Transcript_Hash_State::set_algorithm
    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:367,1
    - Dst: std::get<Client_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:369,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:370,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:370,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:370,1
    - Dst: Handshake_Layer::prepare_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:371,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:372,1
    - Dst: Botan_Tests::check_transcript_hash_empty
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:373,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:376,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:378,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:380,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:381,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:381,1
    - Dst: Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:385,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:387,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:390,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:392,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 360
    functionDepth: 3
    functionLinenumber: 360
    functionLinenumberEnd: 399
    functionName: Botan_Tests::hello_retry_request_handshake
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Handshake_Layer::prepare_message
    - test_eq
    - Botan_Tests::check_transcript_hash_filled
    - Botan::hex_decode
    - Botan::TLS::Client_Hello_13::parse
    - Botan_Tests::CHECK
    - Botan_Tests::check_transcript_hash_empty
    - Handshake_Layer::next_message
    - Transcript_Hash_State::current
    - cend
    - Handshake_Layer::copy_data
    - Botan_Tests::has_message
    - Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
    - std::get<Client_Hello_13>
    - cbegin
    - confirm
    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:
    - std::holds_alternative<T>
    - require
    - value
    - has_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
    - value
    - std::get<T>
    - Botan_Tests::has_message
    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: confirm
      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: confirm
      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: confirm
      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:178,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:178,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:178,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:179,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:182,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:186,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:187,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:187,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:187,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:187,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:188,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:191,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:195,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:196,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:197,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:197,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:197,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:198,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:201,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:206,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:207,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:208,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:209,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:209,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:209,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:210,1
    - Dst: Handshake_Layer::has_pending_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:210,1
    - Dst: cend
      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:213,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:214,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:215,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:215,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:215,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:215,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:217,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:220,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:224,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:224,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:225,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:225,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:225,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:225,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:226,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:227,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:227,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:227,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:228,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:231,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:237,1
    - Dst: template test_throws<TLS_Exception>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:238,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:240,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:240,1
    - Dst: Botan_Tests::check_transcript_hash_empty
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:242,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:246,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:253,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:258,1
    - Dst: template test_throws<TLS_Exception>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:259,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:260,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 154
    functionDepth: 3
    functionLinenumber: 154
    functionLinenumberEnd: 263
    functionName: Botan_Tests::read_handshake_messages
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    - Botan_Tests::check_transcript_hash_filled
    - Botan_Tests::check_transcript_hash_empty
    - Handshake_Layer::next_message
    - Botan_Tests::CHECK
    - Handshake_Layer::has_pending_data
    - cend
    - Handshake_Layer::copy_data
    - Botan_Tests::has_message
    - Botan::concat
    - template test_throws<TLS_Exception>
    - cbegin
    - confirm
    - Policy
    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:267,1
    - Dst: std::get<Client_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:269,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:270,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:270,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:270,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:273,1
    - Dst: Handshake_Layer::prepare_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:273,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:274,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:277,1
    - Dst: std::get<Server_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:279,1
    - Dst: Botan::TLS::Server_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:280,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:280,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:280,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:283,1
    - Dst: Handshake_Layer::prepare_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:283,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 265
    functionDepth: 3
    functionLinenumber: 265
    functionLinenumberEnd: 287
    functionName: Botan_Tests::prepare_message
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Handshake_Layer::prepare_message
    - test_eq
    - Botan_Tests::check_transcript_hash_filled
    - Botan::TLS::Client_Hello_13::parse
    - Botan_Tests::CHECK
    - cend
    - Botan::TLS::Server_Hello_13::parse
    - std::get<Client_Hello_13>
    - cbegin
    - std::get<Server_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:296,1
    - Dst: std::get<Client_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:298,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:299,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:299,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:299,1
    - Dst: Handshake_Layer::prepare_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:300,1
    - Dst: Botan_Tests::check_transcript_hash_empty
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:301,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:304,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:306,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:308,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:309,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:309,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:312,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:314,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:316,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:319,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:320,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:323,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:325,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:327,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:328,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:328,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:330,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:331,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:331,1
    - Dst: Botan::hex_decode
      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:336,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:337,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:337,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:338,1
    - Dst: Transcript_Hash_State::previous
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:338,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:340,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:343,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:344,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:344,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:345,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:345,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:348,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:350,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:353,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:353,1
    - Dst: Handshake_Layer::prepare_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:354,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:355,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 289
    functionDepth: 3
    functionLinenumber: 289
    functionLinenumberEnd: 358
    functionName: Botan_Tests::full_client_handshake
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Handshake_Layer::prepare_message
    - Botan::hex_decode
    - Botan_Tests::check_transcript_hash_filled
    - test_eq
    - Botan::TLS::Client_Hello_13::parse
    - Botan_Tests::CHECK
    - Botan_Tests::check_transcript_hash_empty
    - Handshake_Layer::next_message
    - Transcript_Hash_State::current
    - Transcript_Hash_State::previous
    - cend
    - Handshake_Layer::copy_data
    - Botan_Tests::has_message
    - std::get<Client_Hello_13>
    - cbegin
    - confirm
    - Transcript_Hash_State::set_algorithm
    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:367,1
    - Dst: std::get<Client_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:369,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:370,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:370,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:370,1
    - Dst: Handshake_Layer::prepare_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:371,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:372,1
    - Dst: Botan_Tests::check_transcript_hash_empty
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:373,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:376,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:378,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:380,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:381,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:381,1
    - Dst: Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:385,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:387,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:390,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:392,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 360
    functionDepth: 3
    functionLinenumber: 360
    functionLinenumberEnd: 399
    functionName: Botan_Tests::hello_retry_request_handshake
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Handshake_Layer::prepare_message
    - test_eq
    - Botan_Tests::check_transcript_hash_filled
    - Botan::hex_decode
    - Botan::TLS::Client_Hello_13::parse
    - Botan_Tests::CHECK
    - Botan_Tests::check_transcript_hash_empty
    - Handshake_Layer::next_message
    - Transcript_Hash_State::current
    - cend
    - Handshake_Layer::copy_data
    - Botan_Tests::has_message
    - Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
    - std::get<Client_Hello_13>
    - cbegin
    - confirm
    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:
    - std::holds_alternative<T>
    - require
    - value
    - has_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
    - value
    - std::get<T>
    - Botan_Tests::has_message
    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: confirm
      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: confirm
      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: confirm
      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:178,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:178,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:178,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:179,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:182,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:186,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:187,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:187,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:187,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:187,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:188,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:191,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:195,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:196,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:197,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:197,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:197,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:198,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:201,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:206,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:207,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:208,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:209,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:209,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:209,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:210,1
    - Dst: Handshake_Layer::has_pending_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:210,1
    - Dst: cend
      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:213,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:214,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:215,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:215,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:215,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:215,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:217,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:220,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:224,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:224,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:225,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:225,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:225,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:225,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:226,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:227,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:227,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:227,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:228,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:231,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:237,1
    - Dst: template test_throws<TLS_Exception>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:238,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:240,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:240,1
    - Dst: Botan_Tests::check_transcript_hash_empty
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:242,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:246,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:253,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:258,1
    - Dst: template test_throws<TLS_Exception>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:259,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:260,1
    - Dst: Policy
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 154
    functionDepth: 3
    functionLinenumber: 154
    functionLinenumberEnd: 263
    functionName: Botan_Tests::read_handshake_messages
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode_locked
    - Botan_Tests::check_transcript_hash_filled
    - Botan_Tests::check_transcript_hash_empty
    - Handshake_Layer::next_message
    - Botan_Tests::CHECK
    - Handshake_Layer::has_pending_data
    - cend
    - Handshake_Layer::copy_data
    - Botan_Tests::has_message
    - Botan::concat
    - template test_throws<TLS_Exception>
    - cbegin
    - confirm
    - Policy
    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:267,1
    - Dst: std::get<Client_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:269,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:270,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:270,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:270,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:273,1
    - Dst: Handshake_Layer::prepare_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:273,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:274,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:277,1
    - Dst: std::get<Server_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:279,1
    - Dst: Botan::TLS::Server_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:280,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:280,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:280,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:283,1
    - Dst: Handshake_Layer::prepare_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:283,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 265
    functionDepth: 3
    functionLinenumber: 265
    functionLinenumberEnd: 287
    functionName: Botan_Tests::prepare_message
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Handshake_Layer::prepare_message
    - test_eq
    - Botan_Tests::check_transcript_hash_filled
    - Botan::TLS::Client_Hello_13::parse
    - Botan_Tests::CHECK
    - cend
    - Botan::TLS::Server_Hello_13::parse
    - std::get<Client_Hello_13>
    - cbegin
    - std::get<Server_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:296,1
    - Dst: std::get<Client_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:298,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:299,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:299,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:299,1
    - Dst: Handshake_Layer::prepare_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:300,1
    - Dst: Botan_Tests::check_transcript_hash_empty
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:301,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:304,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:306,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:308,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:309,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:309,1
    - Dst: Transcript_Hash_State::set_algorithm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:312,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:314,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:316,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:319,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:320,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:323,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:325,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:327,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:328,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:328,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:330,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:331,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:331,1
    - Dst: Botan::hex_decode
      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:336,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:337,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:337,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:338,1
    - Dst: Transcript_Hash_State::previous
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:338,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:340,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:343,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:344,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:344,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:345,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:345,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:348,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:350,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:353,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:353,1
    - Dst: Handshake_Layer::prepare_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:354,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:355,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 289
    functionDepth: 3
    functionLinenumber: 289
    functionLinenumberEnd: 358
    functionName: Botan_Tests::full_client_handshake
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Handshake_Layer::prepare_message
    - Botan::hex_decode
    - Botan_Tests::check_transcript_hash_filled
    - test_eq
    - Botan::TLS::Client_Hello_13::parse
    - Botan_Tests::CHECK
    - Botan_Tests::check_transcript_hash_empty
    - Handshake_Layer::next_message
    - Transcript_Hash_State::current
    - Transcript_Hash_State::previous
    - cend
    - Handshake_Layer::copy_data
    - Botan_Tests::has_message
    - std::get<Client_Hello_13>
    - cbegin
    - confirm
    - Transcript_Hash_State::set_algorithm
    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:367,1
    - Dst: std::get<Client_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:369,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:370,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:370,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:370,1
    - Dst: Handshake_Layer::prepare_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:371,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:372,1
    - Dst: Botan_Tests::check_transcript_hash_empty
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:373,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:376,1
    - Dst: Handshake_Layer::copy_data
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:378,1
    - Dst: Handshake_Layer::next_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:380,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:381,1
    - Dst: Botan_Tests::has_message
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:381,1
    - Dst: Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:385,1
    - Dst: Botan_Tests::check_transcript_hash_filled
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:387,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:390,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:392,1
    - Dst: Transcript_Hash_State::current
      Src: /src/botan/src/tests/test_tls_handshake_layer_13.cpp:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 360
    functionDepth: 3
    functionLinenumber: 360
    functionLinenumberEnd: 399
    functionName: Botan_Tests::hello_retry_request_handshake
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Handshake_Layer::prepare_message
    - test_eq
    - Botan_Tests::check_transcript_hash_filled
    - Botan::hex_decode
    - Botan::TLS::Client_Hello_13::parse
    - Botan_Tests::CHECK
    - Botan_Tests::check_transcript_hash_empty
    - Handshake_Layer::next_message
    - Transcript_Hash_State::current
    - cend
    - Handshake_Layer::copy_data
    - Botan_Tests::has_message
    - Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
    - std::get<Client_Hello_13>
    - cbegin
    - confirm
    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:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' algo_name'
    - ' input_file'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 43
    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: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_pubkey_pqc.h:66,1
    - Dst: confirm
      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: 3
    argCount: 3
    argNames:
    - ' params'
    - ' rng_keygen'
    - ' result'
    argTypes:
    - std::string
    - Fixed_Output_RNG
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    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:
    - BOTAN_UNUSED
    - empty
    - confirm
    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: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_pubkey_pqc.h:74,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_pubkey_pqc.h:75,1
    - Dst: empty
      Src: /src/botan/src/tests/test_pubkey_pqc.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' params'
    - ' rng_encaps'
    - ' result'
    argTypes:
    - std::string
    - Fixed_Output_RNG
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: Botan_Tests::PK_PQC_KEM_KAT_Test::inspect_rng_after_encaps
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    - empty
    - confirm
    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: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_pubkey_pqc.h:81,1
    - Dst: is_available
      Src: /src/botan/src/tests/test_pubkey_pqc.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' params'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 86
    functionName: Botan_Tests::PK_PQC_KEM_KAT_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    - is_available
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(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:90,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_pubkey_pqc.h:92,1
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_pubkey_pqc.h:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - seed
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 95
    functionName: Botan_Tests::PK_PQC_KEM_KAT_Test::create_drbg
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    - Botan_Tests::Test_Error::Test_Error
    - std::make_unique<CTR_DRBG_AES256>
    linkageType: ''
    returnType: std::unique_ptr<Botan::RandomNumberGenerator>
    signature: std::unique_ptr<Botan::RandomNumberGenerator> create_drbg(std::span<const
      uint8_t> seed)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_pubkey_pqc.h:98,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey_pqc.h:98,1
    - Dst: Botan_Tests::PK_PQC_KEM_KAT_Test::create_drbg
      Src: /src/botan/src/tests/test_pubkey_pqc.h:104,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:104,1
    - Dst: rng_for_keygen
      Src: /src/botan/src/tests/test_pubkey_pqc.h:105,1
    - Dst: rng_for_encapsulation
      Src: /src/botan/src/tests/test_pubkey_pqc.h:106,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:109,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey_pqc.h:109,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/test_pubkey_pqc.h:110,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:113,1
    - Dst: map_value
      Src: /src/botan/src/tests/test_pubkey_pqc.h:114,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_pubkey_pqc.h:114,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:115,1
    - Dst: Botan_Tests::PK_PQC_KEM_KAT_Test::inspect_rng_after_keygen
      Src: /src/botan/src/tests/test_pubkey_pqc.h:116,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:119,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey_pqc.h:119,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey_pqc.h:119,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey_pqc.h:120,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey_pqc.h:121,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_pubkey_pqc.h:122,1
    - Dst: auto::estimated_strength
      Src: /src/botan/src/tests/test_pubkey_pqc.h:122,1
    - Dst: Test::Result::test_lt
      Src: /src/botan/src/tests/test_pubkey_pqc.h:123,1
    - Dst: auto::estimated_strength
      Src: /src/botan/src/tests/test_pubkey_pqc.h:123,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:126,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:127,1
    - Dst: map_value
      Src: /src/botan/src/tests/test_pubkey_pqc.h:128,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_pubkey_pqc.h:128,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:129,1
    - Dst: Botan::load_public_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:132,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_pubkey_pqc.h:132,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_pubkey_pqc.h:132,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/test_pubkey_pqc.h:133,1
    - Dst: Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
      Src: /src/botan/src/tests/test_pubkey_pqc.h:138,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_pubkey_pqc.h:139,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:140,1
    - Dst: map_value
      Src: /src/botan/src/tests/test_pubkey_pqc.h:141,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:141,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:141,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:142,1
    - Dst: map_value
      Src: /src/botan/src/tests/test_pubkey_pqc.h:143,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:143,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:144,1
    - Dst: Botan_Tests::PK_PQC_KEM_KAT_Test::inspect_rng_after_encaps
      Src: /src/botan/src/tests/test_pubkey_pqc.h:145,1
    - Dst: Botan::load_private_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:148,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_pubkey_pqc.h:148,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_pubkey_pqc.h:148,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/test_pubkey_pqc.h:149,1
    - Dst: Botan::PK_KEM_Decryptor::PK_KEM_Decryptor
      Src: /src/botan/src/tests/test_pubkey_pqc.h:154,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_pubkey_pqc.h:155,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:155,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:156,1
    - Dst: Botan::lock
      Src: /src/botan/src/tests/test_pubkey_pqc.h:156,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:156,1
    - Dst: has_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:158,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_pubkey_pqc.h:160,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:160,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:161,1
    - Dst: Botan::lock
      Src: /src/botan/src/tests/test_pubkey_pqc.h:162,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:162,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - ' params'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 166
    functionName: Botan_Tests::PK_PQC_KEM_KAT_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 0
    functionsReached:
    - auto::public_key
    - auto::private_key_bits
    - Botan_Tests::PK_PQC_KEM_KAT_Test::create_drbg
    - Botan_Tests::PK_PQC_KEM_KAT_Test::inspect_rng_after_keygen
    - auto::shared_key
    - Test::Result::test_not_null
    - algo_name
    - Test::Result::test_gte
    - auto::algorithm_identifier
    - Test::Result::test_lt
    - auto::public_key_bits
    - map_value
    - Test::Result::test_is_eq
    - Botan_Tests::PK_PQC_KEM_KAT_Test::inspect_rng_after_encaps
    - auto::encrypt
    - get_req_bin
    - rng_for_encapsulation
    - auto::estimated_strength
    - Botan::create_private_key
    - Botan::load_public_key
    - Botan::lock
    - auto::supports_operation
    - Botan::load_private_key
    - Botan::fmt
    - rng_for_keygen
    - Test::Result::test_eq
    - auto::decrypt
    - auto::encapsulated_shared_key
    - Test::Result::confirm
    - auto::raw_private_key_bits
    - has_key
    - Botan::PK_KEM_Decryptor::PK_KEM_Decryptor
    - Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
    - auto::algo_name
    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:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' algo_name'
    - ' input_file'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 179
    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:189,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_pubkey_pqc.h:190,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:191,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 192
    functionName: Botan_Tests::PK_PQC_KEM_ACVP_KAT_KeyGen_Test::compress_value
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    - auto::process
    - auto::begin
    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:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' params'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 195
    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:198,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey_pqc.h:198,1
    - Dst: rng_for_keygen
      Src: /src/botan/src/tests/test_pubkey_pqc.h:200,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:203,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey_pqc.h:203,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/test_pubkey_pqc.h:204,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:207,1
    - Dst: Botan_Tests::PK_PQC_KEM_ACVP_KAT_KeyGen_Test::compress_value
      Src: /src/botan/src/tests/test_pubkey_pqc.h:207,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_pubkey_pqc.h:207,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:207,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:210,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey_pqc.h:210,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey_pqc.h:210,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey_pqc.h:211,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey_pqc.h:212,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_pubkey_pqc.h:213,1
    - Dst: auto::estimated_strength
      Src: /src/botan/src/tests/test_pubkey_pqc.h:213,1
    - Dst: Test::Result::test_lt
      Src: /src/botan/src/tests/test_pubkey_pqc.h:214,1
    - Dst: auto::estimated_strength
      Src: /src/botan/src/tests/test_pubkey_pqc.h:214,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:217,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:218,1
    - Dst: Botan_Tests::PK_PQC_KEM_ACVP_KAT_KeyGen_Test::compress_value
      Src: /src/botan/src/tests/test_pubkey_pqc.h:218,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_pubkey_pqc.h:218,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:218,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey_pqc.h:220,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_pubkey_pqc.h:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - ' params'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 223
    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:
    - auto::public_key
    - auto::empty
    - Test::Result::test_not_null
    - algo_name
    - Test::Result::test_gte
    - Botan_Tests::PK_PQC_KEM_ACVP_KAT_KeyGen_Test::compress_value
    - Test::Result::test_lt
    - auto::public_key_bits
    - Test::Result::test_is_eq
    - get_req_bin
    - auto::estimated_strength
    - Botan::create_private_key
    - auto::supports_operation
    - Botan::fmt
    - rng_for_keygen
    - Test::Result::test_eq
    - Test::Result::confirm
    - auto::raw_private_key_bits
    - auto::algo_name
    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: 229
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 229
    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:233,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 234
    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:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' params'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 243
    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:247,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_pubkey_pqc.h:248,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:249,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 250
    functionName: Botan_Tests::PK_PQC_KEM_ACVP_KAT_Encap_Test::compress_value
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    - auto::process
    - auto::begin
    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:253,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey_pqc.h:253,1
    - Dst: Botan_Tests::PK_PQC_KEM_ACVP_KAT_Encap_Test::rng_for_encap
      Src: /src/botan/src/tests/test_pubkey_pqc.h:255,1
    - Dst: load_public_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:256,1
    - Dst: Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
      Src: /src/botan/src/tests/test_pubkey_pqc.h:258,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_pubkey_pqc.h:259,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:260,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:260,1
    - Dst: Botan::lock
      Src: /src/botan/src/tests/test_pubkey_pqc.h:260,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:260,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:261,1
    - Dst: Botan_Tests::PK_PQC_KEM_ACVP_KAT_Encap_Test::compress_value
      Src: /src/botan/src/tests/test_pubkey_pqc.h:261,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:261,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:261,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey_pqc.h:263,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_pubkey_pqc.h:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' params'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 266
    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:
    - get_req_bin
    - auto::empty
    - Botan::fmt
    - Test::Result::test_is_eq
    - auto::shared_key
    - Botan_Tests::PK_PQC_KEM_ACVP_KAT_Encap_Test::compress_value
    - Botan::lock
    - auto::encapsulated_shared_key
    - load_public_key
    - algo_name
    - Test::Result::confirm
    - Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
    - Botan_Tests::PK_PQC_KEM_ACVP_KAT_Encap_Test::rng_for_encap
    - auto::encrypt
    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: 272
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 272
    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:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' params'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 281
    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:284,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey_pqc.h:284,1
    - Dst: load_private_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:286,1
    - Dst: Botan::PK_KEM_Decryptor::PK_KEM_Decryptor
      Src: /src/botan/src/tests/test_pubkey_pqc.h:289,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_pubkey_pqc.h:290,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:290,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:291,1
    - Dst: Botan::lock
      Src: /src/botan/src/tests/test_pubkey_pqc.h:291,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' params'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 294
    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
    - Test::Result::test_is_eq
    - load_private_key
    - Botan::lock
    - auto::decrypt
    - algo_name
    - Botan::PK_KEM_Decryptor::PK_KEM_Decryptor
    - get_req_bin
    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:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' algo_name'
    - ' input_file'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 43
    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: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_pubkey_pqc.h:66,1
    - Dst: confirm
      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: 3
    argCount: 3
    argNames:
    - ' params'
    - ' rng_keygen'
    - ' result'
    argTypes:
    - std::string
    - Fixed_Output_RNG
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    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:
    - BOTAN_UNUSED
    - empty
    - confirm
    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: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_pubkey_pqc.h:74,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_pubkey_pqc.h:75,1
    - Dst: empty
      Src: /src/botan/src/tests/test_pubkey_pqc.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' params'
    - ' rng_encaps'
    - ' result'
    argTypes:
    - std::string
    - Fixed_Output_RNG
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: Botan_Tests::PK_PQC_KEM_KAT_Test::inspect_rng_after_encaps
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 1
    functionsReached:
    - BOTAN_UNUSED
    - empty
    - confirm
    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: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_pubkey_pqc.h:81,1
    - Dst: is_available
      Src: /src/botan/src/tests/test_pubkey_pqc.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' params'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 86
    functionName: Botan_Tests::PK_PQC_KEM_KAT_Test::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    - is_available
    linkageType: ''
    returnType: bool
    signature: bool skip_this_test(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:90,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_pubkey_pqc.h:92,1
    - Dst: Botan_Tests::Test_Error::Test_Error
      Src: /src/botan/src/tests/test_pubkey_pqc.h:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - seed
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 95
    functionName: Botan_Tests::PK_PQC_KEM_KAT_Test::create_drbg
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 1
    functionsReached:
    - BOTAN_UNUSED
    - Botan_Tests::Test_Error::Test_Error
    - std::make_unique<CTR_DRBG_AES256>
    linkageType: ''
    returnType: std::unique_ptr<Botan::RandomNumberGenerator>
    signature: std::unique_ptr<Botan::RandomNumberGenerator> create_drbg(std::span<const
      uint8_t> seed)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_pubkey_pqc.h:98,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey_pqc.h:98,1
    - Dst: Botan_Tests::PK_PQC_KEM_KAT_Test::create_drbg
      Src: /src/botan/src/tests/test_pubkey_pqc.h:104,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:104,1
    - Dst: rng_for_keygen
      Src: /src/botan/src/tests/test_pubkey_pqc.h:105,1
    - Dst: rng_for_encapsulation
      Src: /src/botan/src/tests/test_pubkey_pqc.h:106,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:109,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey_pqc.h:109,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/test_pubkey_pqc.h:110,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:113,1
    - Dst: map_value
      Src: /src/botan/src/tests/test_pubkey_pqc.h:114,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_pubkey_pqc.h:114,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:115,1
    - Dst: Botan_Tests::PK_PQC_KEM_KAT_Test::inspect_rng_after_keygen
      Src: /src/botan/src/tests/test_pubkey_pqc.h:116,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:119,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey_pqc.h:119,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey_pqc.h:119,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey_pqc.h:120,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey_pqc.h:121,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_pubkey_pqc.h:122,1
    - Dst: auto::estimated_strength
      Src: /src/botan/src/tests/test_pubkey_pqc.h:122,1
    - Dst: Test::Result::test_lt
      Src: /src/botan/src/tests/test_pubkey_pqc.h:123,1
    - Dst: auto::estimated_strength
      Src: /src/botan/src/tests/test_pubkey_pqc.h:123,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:126,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:127,1
    - Dst: map_value
      Src: /src/botan/src/tests/test_pubkey_pqc.h:128,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_pubkey_pqc.h:128,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:129,1
    - Dst: Botan::load_public_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:132,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_pubkey_pqc.h:132,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_pubkey_pqc.h:132,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/test_pubkey_pqc.h:133,1
    - Dst: Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
      Src: /src/botan/src/tests/test_pubkey_pqc.h:138,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_pubkey_pqc.h:139,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:140,1
    - Dst: map_value
      Src: /src/botan/src/tests/test_pubkey_pqc.h:141,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:141,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:141,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:142,1
    - Dst: map_value
      Src: /src/botan/src/tests/test_pubkey_pqc.h:143,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:143,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:144,1
    - Dst: Botan_Tests::PK_PQC_KEM_KAT_Test::inspect_rng_after_encaps
      Src: /src/botan/src/tests/test_pubkey_pqc.h:145,1
    - Dst: Botan::load_private_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:148,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_pubkey_pqc.h:148,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_pubkey_pqc.h:148,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/test_pubkey_pqc.h:149,1
    - Dst: Botan::PK_KEM_Decryptor::PK_KEM_Decryptor
      Src: /src/botan/src/tests/test_pubkey_pqc.h:154,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_pubkey_pqc.h:155,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:155,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:156,1
    - Dst: Botan::lock
      Src: /src/botan/src/tests/test_pubkey_pqc.h:156,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:156,1
    - Dst: has_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:158,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_pubkey_pqc.h:160,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:160,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:161,1
    - Dst: Botan::lock
      Src: /src/botan/src/tests/test_pubkey_pqc.h:162,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:162,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - ' params'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 97
    functionDepth: 2
    functionLinenumber: 97
    functionLinenumberEnd: 166
    functionName: Botan_Tests::PK_PQC_KEM_KAT_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 0
    functionsReached:
    - auto::public_key
    - auto::private_key_bits
    - Botan_Tests::PK_PQC_KEM_KAT_Test::create_drbg
    - Botan_Tests::PK_PQC_KEM_KAT_Test::inspect_rng_after_keygen
    - auto::shared_key
    - Test::Result::test_not_null
    - algo_name
    - Test::Result::test_gte
    - auto::algorithm_identifier
    - Test::Result::test_lt
    - auto::public_key_bits
    - map_value
    - Test::Result::test_is_eq
    - Botan_Tests::PK_PQC_KEM_KAT_Test::inspect_rng_after_encaps
    - auto::encrypt
    - get_req_bin
    - rng_for_encapsulation
    - auto::estimated_strength
    - Botan::create_private_key
    - Botan::load_public_key
    - Botan::lock
    - auto::supports_operation
    - Botan::load_private_key
    - Botan::fmt
    - rng_for_keygen
    - Test::Result::test_eq
    - auto::decrypt
    - auto::encapsulated_shared_key
    - Test::Result::confirm
    - auto::raw_private_key_bits
    - has_key
    - Botan::PK_KEM_Decryptor::PK_KEM_Decryptor
    - Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
    - auto::algo_name
    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:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' algo_name'
    - ' input_file'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 179
    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:189,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_pubkey_pqc.h:190,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:191,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 192
    functionName: Botan_Tests::PK_PQC_KEM_ACVP_KAT_KeyGen_Test::compress_value
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 1
    functionsReached:
    - Botan::HashFunction::create_or_throw
    - auto::process
    - auto::begin
    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:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' params'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 195
    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:198,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey_pqc.h:198,1
    - Dst: rng_for_keygen
      Src: /src/botan/src/tests/test_pubkey_pqc.h:200,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:203,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey_pqc.h:203,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/test_pubkey_pqc.h:204,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:207,1
    - Dst: Botan_Tests::PK_PQC_KEM_ACVP_KAT_KeyGen_Test::compress_value
      Src: /src/botan/src/tests/test_pubkey_pqc.h:207,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_pubkey_pqc.h:207,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:207,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:210,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_pubkey_pqc.h:210,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey_pqc.h:210,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey_pqc.h:211,1
    - Dst: auto::supports_operation
      Src: /src/botan/src/tests/test_pubkey_pqc.h:212,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_pubkey_pqc.h:213,1
    - Dst: auto::estimated_strength
      Src: /src/botan/src/tests/test_pubkey_pqc.h:213,1
    - Dst: Test::Result::test_lt
      Src: /src/botan/src/tests/test_pubkey_pqc.h:214,1
    - Dst: auto::estimated_strength
      Src: /src/botan/src/tests/test_pubkey_pqc.h:214,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:217,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:218,1
    - Dst: Botan_Tests::PK_PQC_KEM_ACVP_KAT_KeyGen_Test::compress_value
      Src: /src/botan/src/tests/test_pubkey_pqc.h:218,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_pubkey_pqc.h:218,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:218,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey_pqc.h:220,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_pubkey_pqc.h:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - ' params'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 223
    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:
    - auto::public_key
    - auto::empty
    - Test::Result::test_not_null
    - algo_name
    - Test::Result::test_gte
    - Botan_Tests::PK_PQC_KEM_ACVP_KAT_KeyGen_Test::compress_value
    - Test::Result::test_lt
    - auto::public_key_bits
    - Test::Result::test_is_eq
    - get_req_bin
    - auto::estimated_strength
    - Botan::create_private_key
    - auto::supports_operation
    - Botan::fmt
    - rng_for_keygen
    - Test::Result::test_eq
    - Test::Result::confirm
    - auto::raw_private_key_bits
    - auto::algo_name
    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: 229
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 229
    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:233,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 234
    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:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' params'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 243
    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:247,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_pubkey_pqc.h:248,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:249,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 250
    functionName: Botan_Tests::PK_PQC_KEM_ACVP_KAT_Encap_Test::compress_value
    functionSourceFile: /src/botan/src/tests/test_pubkey_pqc.h
    functionUses: 1
    functionsReached:
    - Botan::HashFunction::create_or_throw
    - auto::process
    - auto::begin
    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:253,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey_pqc.h:253,1
    - Dst: Botan_Tests::PK_PQC_KEM_ACVP_KAT_Encap_Test::rng_for_encap
      Src: /src/botan/src/tests/test_pubkey_pqc.h:255,1
    - Dst: load_public_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:256,1
    - Dst: Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
      Src: /src/botan/src/tests/test_pubkey_pqc.h:258,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_pubkey_pqc.h:259,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:260,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:260,1
    - Dst: Botan::lock
      Src: /src/botan/src/tests/test_pubkey_pqc.h:260,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:260,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:261,1
    - Dst: Botan_Tests::PK_PQC_KEM_ACVP_KAT_Encap_Test::compress_value
      Src: /src/botan/src/tests/test_pubkey_pqc.h:261,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:261,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:261,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pubkey_pqc.h:263,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_pubkey_pqc.h:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' params'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 266
    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:
    - get_req_bin
    - auto::empty
    - Botan::fmt
    - Test::Result::test_is_eq
    - auto::shared_key
    - Botan_Tests::PK_PQC_KEM_ACVP_KAT_Encap_Test::compress_value
    - Botan::lock
    - auto::encapsulated_shared_key
    - load_public_key
    - algo_name
    - Test::Result::confirm
    - Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
    - Botan_Tests::PK_PQC_KEM_ACVP_KAT_Encap_Test::rng_for_encap
    - auto::encrypt
    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: 272
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 272
    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:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' params'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 281
    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:284,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_pubkey_pqc.h:284,1
    - Dst: load_private_key
      Src: /src/botan/src/tests/test_pubkey_pqc.h:286,1
    - Dst: Botan::PK_KEM_Decryptor::PK_KEM_Decryptor
      Src: /src/botan/src/tests/test_pubkey_pqc.h:289,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_pubkey_pqc.h:290,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:290,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_pubkey_pqc.h:291,1
    - Dst: Botan::lock
      Src: /src/botan/src/tests/test_pubkey_pqc.h:291,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pubkey_pqc.h:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' params'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 294
    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
    - Test::Result::test_is_eq
    - load_private_key
    - Botan::lock
    - auto::decrypt
    - algo_name
    - Botan::PK_KEM_Decryptor::PK_KEM_Decryptor
    - get_req_bin
    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)
  - 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)
  - 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_is_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_is_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: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:69,1
    - Dst: confirm
      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: confirm
      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_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_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: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:82,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:83,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:84,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:85,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:86,1
    - Dst: confirm
      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: 90
      start: 41
    functionDepth: 3
    functionLinenumber: 41
    functionLinenumberEnd: 90
    functionName: Botan_Tests::test_strong_type
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan_Tests::CHECK
    - Botan_Tests::foo
    - Test_Size
    - Test_Size::get
    - Test_Length
    - test_is_eq
    - confirm
    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:94,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:97,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:100,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:102,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_strong_type.cpp:103,1
    - Dst: Test_Nonce
      Src: /src/botan/src/tests/test_strong_type.cpp:104,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:104,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:106,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_strong_type.cpp:106,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:107,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_strong_type.cpp:107,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:108,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_strong_type.cpp:108,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:111,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:115,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:121,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:122,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:123,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:124,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:126,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:127,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:128,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:129,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:131,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:132,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:133,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:134,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:137,1
    - Dst: size
      Src: /src/botan/src/tests/test_strong_type.cpp:139,1
    - Dst: Test_Nonce
      Src: /src/botan/src/tests/test_strong_type.cpp:141,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:141,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:143,1
    - Dst: get_size
      Src: /src/botan/src/tests/test_strong_type.cpp:143,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_strong_type.cpp:143,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:146,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:152,1
    - Dst: std::stringstream::str
      Src: /src/botan/src/tests/test_strong_type.cpp:152,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_strong_type.cpp:152,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:155,1
    - Dst: Test_Length
      Src: /src/botan/src/tests/test_strong_type.cpp:159,1
    - Dst: Test_Length
      Src: /src/botan/src/tests/test_strong_type.cpp:159,1
    - Dst: Test_Length
      Src: /src/botan/src/tests/test_strong_type.cpp:159,1
    - Dst: Test_Length
      Src: /src/botan/src/tests/test_strong_type.cpp:159,1
    - Dst: std::ranges::sort
      Src: /src/botan/src/tests/test_strong_type.cpp:161,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:163,1
    - Dst: Test_Length_List::get
      Src: /src/botan/src/tests/test_strong_type.cpp:163,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:164,1
    - Dst: Test_Length_List::get
      Src: /src/botan/src/tests/test_strong_type.cpp:164,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:165,1
    - Dst: Test_Length_List::get
      Src: /src/botan/src/tests/test_strong_type.cpp:165,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:166,1
    - Dst: Test_Length_List::get
      Src: /src/botan/src/tests/test_strong_type.cpp:166,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:169,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:176,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:177,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:178,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_strong_type.cpp:179,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_strong_type.cpp:179,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_strong_type.cpp:179,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_strong_type.cpp:180,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_strong_type.cpp:180,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_strong_type.cpp:180,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_strong_type.cpp:181,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_strong_type.cpp:181,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_strong_type.cpp:181,1
    - Dst: Fixed_Output_RNG::random_vec
      Src: /src/botan/src/tests/test_strong_type.cpp:183,1
    - Dst: Fixed_Output_RNG::random_vec
      Src: /src/botan/src/tests/test_strong_type.cpp:184,1
    - Dst: Fixed_Output_RNG::random_vec
      Src: /src/botan/src/tests/test_strong_type.cpp:186,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:188,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:188,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:188,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:189,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:189,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_strong_type.cpp:189,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:190,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_strong_type.cpp:191,1
    - Dst: Test_Fixed_Array::begin
      Src: /src/botan/src/tests/test_strong_type.cpp:191,1
    - Dst: Test_Fixed_Array::end
      Src: /src/botan/src/tests/test_strong_type.cpp:191,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:192,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:195,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:202,1
    - Dst: Test_Array::at
      Src: /src/botan/src/tests/test_strong_type.cpp:202,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_strong_type.cpp:203,1
    - Dst: Test_Array::at
      Src: /src/botan/src/tests/test_strong_type.cpp:203,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:206,1
    - Dst: Test_Map::at
      Src: /src/botan/src/tests/test_strong_type.cpp:206,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_strong_type.cpp:207,1
    - Dst: Test_Map::at
      Src: /src/botan/src/tests/test_strong_type.cpp:207,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:210,1
    - Dst: Test_Vector::at
      Src: /src/botan/src/tests/test_strong_type.cpp:210,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_strong_type.cpp:211,1
    - Dst: Test_Vector::at
      Src: /src/botan/src/tests/test_strong_type.cpp:211,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:214,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:221,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:224,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 92
    functionDepth: 3
    functionLinenumber: 92
    functionLinenumberEnd: 230
    functionName: Botan_Tests::test_container_strong_type
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - auto::empty
    - test_throws
    - std::stringstream::str
    - auto::get
    - test_is_eq
    - Test_Fixed_Array::begin
    - Test_Nonce
    - auto::size
    - std::vector
    - Botan_Tests::CHECK
    - Fixed_Output_RNG::random_vec
    - confirm
    - Test_Fixed_Array::end
    - auto::data
    - Test_Length
    - Test_Map::at
    - Test_Array::at
    - Botan::hex_decode_locked
    - std::move
    - Test_Length_List::get
    - Fixed_Output_RNG::add_entropy
    - size
    - std::string
    - std::ranges::sort
    - Test_Vector::at
    - get_size
    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:237,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:241,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:242,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:243,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:244,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:245,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:246,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:247,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:248,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:250,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:251,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:252,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:253,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:254,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:255,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:256,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:257,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:260,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:264,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:265,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:266,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:267,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:269,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:270,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:271,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:272,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:275,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:283,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:284,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:285,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:286,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:287,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:288,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:289,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:290,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:293,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:300,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:301,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:302,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:303,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:304,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:305,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:306,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:307,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:308,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:310,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:311,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:312,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:313,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:314,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:315,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:316,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:317,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:318,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:321,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:326,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:327,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:328,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:329,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:330,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:331,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:332,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:333,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:334,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:336,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:337,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:338,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:339,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:340,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:341,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:342,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:343,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:344,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:346,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:347,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:348,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:349,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:350,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:351,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:352,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:353,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:354,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:357,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:362,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:363,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:364,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:365,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:366,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:367,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:368,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:369,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:370,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:372,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:373,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:374,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:375,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:376,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:377,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:378,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:379,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:380,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:382,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:383,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:384,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:385,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:386,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:387,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:388,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:389,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 112
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 232
    functionDepth: 3
    functionLinenumber: 232
    functionLinenumberEnd: 393
    functionName: Botan_Tests::test_integer_strong_type
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached:
    - confirm
    - Botan_Tests::CHECK
    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: 400
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 400
    functionName: Botan_Tests::test_strong_helper
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int test_strong_helper(const Botan::StrongSpan<Test_Foo>&)
  - 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: Botan_Tests::test_strong_helper
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int test_strong_helper(const Botan::StrongSpan<const Test_Foo>&)
  - 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: Botan_Tests::test_strong_helper
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int test_strong_helper(const Botan::StrongSpan<Test_Bar>&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:413,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:414,1
    - Dst: Botan_Tests::test_strong_helper
      Src: /src/botan/src/tests/test_strong_type.cpp:414,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:416,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:417,1
    - Dst: Botan_Tests::test_strong_helper
      Src: /src/botan/src/tests/test_strong_type.cpp:417,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:421,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:422,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:423,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:425,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 430
    functionName: Botan_Tests::test_strong_span
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Botan_Tests::test_strong_helper
    - Test::Result::test_is_eq
    - Test::Result::confirm
    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:439,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:443,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:444,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:445,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:445,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:446,1
    - Dst: test_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_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: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:450,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:450,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:451,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:451,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:455,1
    - Dst: Botan::wrap_strong_type<Strong_Unique>
      Src: /src/botan/src/tests/test_strong_type.cpp:458,1
    - Dst: std::string::string
      Src: /src/botan/src/tests/test_strong_type.cpp:458,1
    - Dst: Botan::wrap_strong_type<Strong_Unique>
      Src: /src/botan/src/tests/test_strong_type.cpp:459,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:459,1
    - Dst: test_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_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: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:465,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:470,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:471,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:471,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:472,1
    - Dst: Strong_String
      Src: /src/botan/src/tests/test_strong_type.cpp:472,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:474,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:474,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:475,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:475,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:476,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:476,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:478,1
    - Dst: Botan::wrap_strong_type<Strong_Unique>
      Src: /src/botan/src/tests/test_strong_type.cpp:480,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:480,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:482,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:482,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:485,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:490,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:491,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:492,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:494,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:498,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:499,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:500,1
    - Dst: confirm
      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:506,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:506,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:507,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:509,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:511,1
    - Dst: std::move
      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:515,1
    - Dst: Strong_String
      Src: /src/botan/src/tests/test_strong_type.cpp:515,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:516,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:517,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:519,1
    - Dst: Strong_String
      Src: /src/botan/src/tests/test_strong_type.cpp:520,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:524,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:530,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:531,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:532,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:534,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:538,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:539,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:540,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:542,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:546,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:546,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:547,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:548,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:550,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:552,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:554,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_strong_type.cpp:554,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:555,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:556,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:558,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_strong_type.cpp:559,1
    - Dst: Botan_Tests::CHECK
      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:569,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:570,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:571,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:571,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:572,1
    - Dst: Strong_String
      Src: /src/botan/src/tests/test_strong_type.cpp:572,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:574,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:575,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:576,1
    - Dst: test_eq
      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:579,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:580,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:582,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:583,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:583,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:585,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:585,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:587,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:588,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:589,1
    - Dst: Botan_Tests::CHECK
      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:598,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:599,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:600,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:600,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:601,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_strong_type.cpp:601,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:603,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:604,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:605,1
    - Dst: test_eq
      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:608,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:609,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:611,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:612,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:612,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:614,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:614,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:616,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:617,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 432
    functionDepth: 3
    functionLinenumber: 432
    functionLinenumberEnd: 621
    functionName: Botan_Tests::test_wrapping_unwrapping
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - std::move
    - Botan::wrap_strong_type<Strong_Unique>
    - Botan_Tests::CHECK
    - Botan::unwrap_strong_type
    - Botan::wrap_strong_type<Strong_String>
    - std::string
    - auto::get
    - Strong_String
    - std::string::string
    - confirm
    - std::make_unique<std::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)
  - 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)
  - 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_is_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_is_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: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:69,1
    - Dst: confirm
      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: confirm
      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_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_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: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:82,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:83,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:84,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:85,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:86,1
    - Dst: confirm
      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: 90
      start: 41
    functionDepth: 3
    functionLinenumber: 41
    functionLinenumberEnd: 90
    functionName: Botan_Tests::test_strong_type
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan_Tests::CHECK
    - Botan_Tests::foo
    - Test_Size
    - Test_Size::get
    - Test_Length
    - test_is_eq
    - confirm
    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:94,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:97,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:100,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:102,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_strong_type.cpp:103,1
    - Dst: Test_Nonce
      Src: /src/botan/src/tests/test_strong_type.cpp:104,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:104,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:106,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_strong_type.cpp:106,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:107,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_strong_type.cpp:107,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:108,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_strong_type.cpp:108,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:111,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:115,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:121,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:122,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:123,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:124,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:126,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:127,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:128,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:129,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:131,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:132,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:133,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:134,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:137,1
    - Dst: size
      Src: /src/botan/src/tests/test_strong_type.cpp:139,1
    - Dst: Test_Nonce
      Src: /src/botan/src/tests/test_strong_type.cpp:141,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:141,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:143,1
    - Dst: get_size
      Src: /src/botan/src/tests/test_strong_type.cpp:143,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_strong_type.cpp:143,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:146,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:152,1
    - Dst: std::stringstream::str
      Src: /src/botan/src/tests/test_strong_type.cpp:152,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_strong_type.cpp:152,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:155,1
    - Dst: Test_Length
      Src: /src/botan/src/tests/test_strong_type.cpp:159,1
    - Dst: Test_Length
      Src: /src/botan/src/tests/test_strong_type.cpp:159,1
    - Dst: Test_Length
      Src: /src/botan/src/tests/test_strong_type.cpp:159,1
    - Dst: Test_Length
      Src: /src/botan/src/tests/test_strong_type.cpp:159,1
    - Dst: std::ranges::sort
      Src: /src/botan/src/tests/test_strong_type.cpp:161,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:163,1
    - Dst: Test_Length_List::get
      Src: /src/botan/src/tests/test_strong_type.cpp:163,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:164,1
    - Dst: Test_Length_List::get
      Src: /src/botan/src/tests/test_strong_type.cpp:164,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:165,1
    - Dst: Test_Length_List::get
      Src: /src/botan/src/tests/test_strong_type.cpp:165,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:166,1
    - Dst: Test_Length_List::get
      Src: /src/botan/src/tests/test_strong_type.cpp:166,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:169,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:176,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:177,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:178,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_strong_type.cpp:179,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_strong_type.cpp:179,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_strong_type.cpp:179,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_strong_type.cpp:180,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_strong_type.cpp:180,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_strong_type.cpp:180,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_strong_type.cpp:181,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_strong_type.cpp:181,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_strong_type.cpp:181,1
    - Dst: Fixed_Output_RNG::random_vec
      Src: /src/botan/src/tests/test_strong_type.cpp:183,1
    - Dst: Fixed_Output_RNG::random_vec
      Src: /src/botan/src/tests/test_strong_type.cpp:184,1
    - Dst: Fixed_Output_RNG::random_vec
      Src: /src/botan/src/tests/test_strong_type.cpp:186,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:188,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:188,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:188,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:189,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:189,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_strong_type.cpp:189,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:190,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_strong_type.cpp:191,1
    - Dst: Test_Fixed_Array::begin
      Src: /src/botan/src/tests/test_strong_type.cpp:191,1
    - Dst: Test_Fixed_Array::end
      Src: /src/botan/src/tests/test_strong_type.cpp:191,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:192,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:195,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:202,1
    - Dst: Test_Array::at
      Src: /src/botan/src/tests/test_strong_type.cpp:202,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_strong_type.cpp:203,1
    - Dst: Test_Array::at
      Src: /src/botan/src/tests/test_strong_type.cpp:203,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:206,1
    - Dst: Test_Map::at
      Src: /src/botan/src/tests/test_strong_type.cpp:206,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_strong_type.cpp:207,1
    - Dst: Test_Map::at
      Src: /src/botan/src/tests/test_strong_type.cpp:207,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:210,1
    - Dst: Test_Vector::at
      Src: /src/botan/src/tests/test_strong_type.cpp:210,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_strong_type.cpp:211,1
    - Dst: Test_Vector::at
      Src: /src/botan/src/tests/test_strong_type.cpp:211,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:214,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:221,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:224,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 92
    functionDepth: 3
    functionLinenumber: 92
    functionLinenumberEnd: 230
    functionName: Botan_Tests::test_container_strong_type
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - auto::empty
    - test_throws
    - std::stringstream::str
    - auto::get
    - test_is_eq
    - Test_Fixed_Array::begin
    - Test_Nonce
    - auto::size
    - std::vector
    - Botan_Tests::CHECK
    - Fixed_Output_RNG::random_vec
    - confirm
    - Test_Fixed_Array::end
    - auto::data
    - Test_Length
    - Test_Map::at
    - Test_Array::at
    - Botan::hex_decode_locked
    - std::move
    - Test_Length_List::get
    - Fixed_Output_RNG::add_entropy
    - size
    - std::string
    - std::ranges::sort
    - Test_Vector::at
    - get_size
    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:237,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:241,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:242,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:243,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:244,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:245,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:246,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:247,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:248,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:250,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:251,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:252,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:253,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:254,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:255,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:256,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:257,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:260,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:264,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:265,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:266,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:267,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:269,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:270,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:271,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:272,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:275,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:283,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:284,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:285,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:286,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:287,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:288,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:289,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:290,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:293,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:300,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:301,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:302,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:303,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:304,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:305,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:306,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:307,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:308,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:310,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:311,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:312,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:313,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:314,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:315,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:316,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:317,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:318,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:321,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:326,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:327,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:328,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:329,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:330,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:331,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:332,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:333,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:334,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:336,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:337,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:338,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:339,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:340,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:341,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:342,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:343,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:344,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:346,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:347,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:348,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:349,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:350,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:351,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:352,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:353,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:354,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:357,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:362,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:363,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:364,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:365,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:366,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:367,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:368,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:369,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:370,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:372,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:373,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:374,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:375,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:376,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:377,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:378,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:379,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:380,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:382,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:383,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:384,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:385,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:386,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:387,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:388,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:389,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 112
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 232
    functionDepth: 3
    functionLinenumber: 232
    functionLinenumberEnd: 393
    functionName: Botan_Tests::test_integer_strong_type
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached:
    - confirm
    - Botan_Tests::CHECK
    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: 400
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 400
    functionName: Botan_Tests::test_strong_helper
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int test_strong_helper(const Botan::StrongSpan<Test_Foo>&)
  - 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: Botan_Tests::test_strong_helper
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int test_strong_helper(const Botan::StrongSpan<const Test_Foo>&)
  - 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: Botan_Tests::test_strong_helper
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int test_strong_helper(const Botan::StrongSpan<Test_Bar>&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:413,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:414,1
    - Dst: Botan_Tests::test_strong_helper
      Src: /src/botan/src/tests/test_strong_type.cpp:414,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:416,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:417,1
    - Dst: Botan_Tests::test_strong_helper
      Src: /src/botan/src/tests/test_strong_type.cpp:417,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:421,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:422,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:423,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:425,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 430
    functionName: Botan_Tests::test_strong_span
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Botan_Tests::test_strong_helper
    - Test::Result::test_is_eq
    - Test::Result::confirm
    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:439,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:443,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:444,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:445,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:445,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:446,1
    - Dst: test_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_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: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:450,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:450,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:451,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:451,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:455,1
    - Dst: Botan::wrap_strong_type<Strong_Unique>
      Src: /src/botan/src/tests/test_strong_type.cpp:458,1
    - Dst: std::string::string
      Src: /src/botan/src/tests/test_strong_type.cpp:458,1
    - Dst: Botan::wrap_strong_type<Strong_Unique>
      Src: /src/botan/src/tests/test_strong_type.cpp:459,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:459,1
    - Dst: test_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_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: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:465,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:470,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:471,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:471,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:472,1
    - Dst: Strong_String
      Src: /src/botan/src/tests/test_strong_type.cpp:472,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:474,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:474,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:475,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:475,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:476,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:476,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:478,1
    - Dst: Botan::wrap_strong_type<Strong_Unique>
      Src: /src/botan/src/tests/test_strong_type.cpp:480,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:480,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:482,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:482,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:485,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:490,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:491,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:492,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:494,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:498,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:499,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:500,1
    - Dst: confirm
      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:506,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:506,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:507,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:509,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:511,1
    - Dst: std::move
      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:515,1
    - Dst: Strong_String
      Src: /src/botan/src/tests/test_strong_type.cpp:515,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:516,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:517,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:519,1
    - Dst: Strong_String
      Src: /src/botan/src/tests/test_strong_type.cpp:520,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:524,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:530,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:531,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:532,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:534,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:538,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:539,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:540,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:542,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:546,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:546,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:547,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:548,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:550,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:552,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:554,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_strong_type.cpp:554,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:555,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:556,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:558,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_strong_type.cpp:559,1
    - Dst: Botan_Tests::CHECK
      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:569,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:570,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:571,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:571,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:572,1
    - Dst: Strong_String
      Src: /src/botan/src/tests/test_strong_type.cpp:572,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:574,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:575,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:576,1
    - Dst: test_eq
      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:579,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:580,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:582,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:583,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:583,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:585,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:585,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:587,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:588,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:589,1
    - Dst: Botan_Tests::CHECK
      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:598,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:599,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:600,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:600,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:601,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_strong_type.cpp:601,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:603,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:604,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:605,1
    - Dst: test_eq
      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:608,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:609,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:611,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:612,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:612,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:614,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:614,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:616,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:617,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 432
    functionDepth: 3
    functionLinenumber: 432
    functionLinenumberEnd: 621
    functionName: Botan_Tests::test_wrapping_unwrapping
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - std::move
    - Botan::wrap_strong_type<Strong_Unique>
    - Botan_Tests::CHECK
    - Botan::unwrap_strong_type
    - Botan::wrap_strong_type<Strong_String>
    - std::string
    - auto::get
    - Strong_String
    - std::string::string
    - confirm
    - std::make_unique<std::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)
  - 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)
  - 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_is_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_is_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: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:69,1
    - Dst: confirm
      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: confirm
      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_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_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: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:82,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:83,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:84,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:85,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:86,1
    - Dst: confirm
      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: 90
      start: 41
    functionDepth: 3
    functionLinenumber: 41
    functionLinenumberEnd: 90
    functionName: Botan_Tests::test_strong_type
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan_Tests::CHECK
    - Botan_Tests::foo
    - Test_Size
    - Test_Size::get
    - Test_Length
    - test_is_eq
    - confirm
    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:94,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:97,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:100,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:102,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_strong_type.cpp:103,1
    - Dst: Test_Nonce
      Src: /src/botan/src/tests/test_strong_type.cpp:104,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:104,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:106,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_strong_type.cpp:106,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:107,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_strong_type.cpp:107,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:108,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_strong_type.cpp:108,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:111,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:115,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:121,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:122,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:123,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:124,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:126,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:127,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:128,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:129,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:131,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:132,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:133,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:134,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:137,1
    - Dst: size
      Src: /src/botan/src/tests/test_strong_type.cpp:139,1
    - Dst: Test_Nonce
      Src: /src/botan/src/tests/test_strong_type.cpp:141,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:141,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:143,1
    - Dst: get_size
      Src: /src/botan/src/tests/test_strong_type.cpp:143,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_strong_type.cpp:143,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:146,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:152,1
    - Dst: std::stringstream::str
      Src: /src/botan/src/tests/test_strong_type.cpp:152,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_strong_type.cpp:152,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:155,1
    - Dst: Test_Length
      Src: /src/botan/src/tests/test_strong_type.cpp:159,1
    - Dst: Test_Length
      Src: /src/botan/src/tests/test_strong_type.cpp:159,1
    - Dst: Test_Length
      Src: /src/botan/src/tests/test_strong_type.cpp:159,1
    - Dst: Test_Length
      Src: /src/botan/src/tests/test_strong_type.cpp:159,1
    - Dst: std::ranges::sort
      Src: /src/botan/src/tests/test_strong_type.cpp:161,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:163,1
    - Dst: Test_Length_List::get
      Src: /src/botan/src/tests/test_strong_type.cpp:163,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:164,1
    - Dst: Test_Length_List::get
      Src: /src/botan/src/tests/test_strong_type.cpp:164,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:165,1
    - Dst: Test_Length_List::get
      Src: /src/botan/src/tests/test_strong_type.cpp:165,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:166,1
    - Dst: Test_Length_List::get
      Src: /src/botan/src/tests/test_strong_type.cpp:166,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:169,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:176,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:177,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:178,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_strong_type.cpp:179,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_strong_type.cpp:179,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_strong_type.cpp:179,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_strong_type.cpp:180,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_strong_type.cpp:180,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_strong_type.cpp:180,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_strong_type.cpp:181,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_strong_type.cpp:181,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_strong_type.cpp:181,1
    - Dst: Fixed_Output_RNG::random_vec
      Src: /src/botan/src/tests/test_strong_type.cpp:183,1
    - Dst: Fixed_Output_RNG::random_vec
      Src: /src/botan/src/tests/test_strong_type.cpp:184,1
    - Dst: Fixed_Output_RNG::random_vec
      Src: /src/botan/src/tests/test_strong_type.cpp:186,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:188,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:188,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:188,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:189,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:189,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_strong_type.cpp:189,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:190,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_strong_type.cpp:191,1
    - Dst: Test_Fixed_Array::begin
      Src: /src/botan/src/tests/test_strong_type.cpp:191,1
    - Dst: Test_Fixed_Array::end
      Src: /src/botan/src/tests/test_strong_type.cpp:191,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:192,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:195,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:202,1
    - Dst: Test_Array::at
      Src: /src/botan/src/tests/test_strong_type.cpp:202,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_strong_type.cpp:203,1
    - Dst: Test_Array::at
      Src: /src/botan/src/tests/test_strong_type.cpp:203,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:206,1
    - Dst: Test_Map::at
      Src: /src/botan/src/tests/test_strong_type.cpp:206,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_strong_type.cpp:207,1
    - Dst: Test_Map::at
      Src: /src/botan/src/tests/test_strong_type.cpp:207,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:210,1
    - Dst: Test_Vector::at
      Src: /src/botan/src/tests/test_strong_type.cpp:210,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_strong_type.cpp:211,1
    - Dst: Test_Vector::at
      Src: /src/botan/src/tests/test_strong_type.cpp:211,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:214,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:221,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:224,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 92
    functionDepth: 3
    functionLinenumber: 92
    functionLinenumberEnd: 230
    functionName: Botan_Tests::test_container_strong_type
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - auto::empty
    - test_throws
    - std::stringstream::str
    - auto::get
    - test_is_eq
    - Test_Fixed_Array::begin
    - Test_Nonce
    - auto::size
    - std::vector
    - Botan_Tests::CHECK
    - Fixed_Output_RNG::random_vec
    - confirm
    - Test_Fixed_Array::end
    - auto::data
    - Test_Length
    - Test_Map::at
    - Test_Array::at
    - Botan::hex_decode_locked
    - std::move
    - Test_Length_List::get
    - Fixed_Output_RNG::add_entropy
    - size
    - std::string
    - std::ranges::sort
    - Test_Vector::at
    - get_size
    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:237,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:241,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:242,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:243,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:244,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:245,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:246,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:247,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:248,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:250,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:251,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:252,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:253,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:254,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:255,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:256,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:257,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:260,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:264,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:265,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:266,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:267,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:269,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:270,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:271,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:272,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:275,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:283,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:284,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:285,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:286,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:287,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:288,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:289,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:290,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:293,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:300,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:301,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:302,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:303,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:304,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:305,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:306,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:307,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:308,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:310,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:311,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:312,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:313,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:314,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:315,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:316,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:317,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:318,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:321,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:326,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:327,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:328,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:329,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:330,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:331,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:332,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:333,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:334,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:336,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:337,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:338,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:339,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:340,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:341,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:342,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:343,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:344,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:346,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:347,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:348,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:349,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:350,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:351,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:352,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:353,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:354,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:357,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:362,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:363,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:364,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:365,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:366,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:367,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:368,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:369,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:370,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:372,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:373,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:374,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:375,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:376,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:377,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:378,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:379,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:380,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:382,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:383,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:384,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:385,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:386,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:387,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:388,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:389,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 112
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 232
    functionDepth: 3
    functionLinenumber: 232
    functionLinenumberEnd: 393
    functionName: Botan_Tests::test_integer_strong_type
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached:
    - confirm
    - Botan_Tests::CHECK
    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: 400
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 400
    functionName: Botan_Tests::test_strong_helper
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int test_strong_helper(const Botan::StrongSpan<Test_Foo>&)
  - 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: Botan_Tests::test_strong_helper
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int test_strong_helper(const Botan::StrongSpan<const Test_Foo>&)
  - 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: Botan_Tests::test_strong_helper
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int test_strong_helper(const Botan::StrongSpan<Test_Bar>&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:413,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:414,1
    - Dst: Botan_Tests::test_strong_helper
      Src: /src/botan/src/tests/test_strong_type.cpp:414,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:416,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:417,1
    - Dst: Botan_Tests::test_strong_helper
      Src: /src/botan/src/tests/test_strong_type.cpp:417,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:421,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:422,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:423,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:425,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 430
    functionName: Botan_Tests::test_strong_span
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Botan_Tests::test_strong_helper
    - Test::Result::test_is_eq
    - Test::Result::confirm
    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:439,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:443,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:444,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:445,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:445,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:446,1
    - Dst: test_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_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: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:450,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:450,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:451,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:451,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:455,1
    - Dst: Botan::wrap_strong_type<Strong_Unique>
      Src: /src/botan/src/tests/test_strong_type.cpp:458,1
    - Dst: std::string::string
      Src: /src/botan/src/tests/test_strong_type.cpp:458,1
    - Dst: Botan::wrap_strong_type<Strong_Unique>
      Src: /src/botan/src/tests/test_strong_type.cpp:459,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:459,1
    - Dst: test_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_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: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:465,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:470,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:471,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:471,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:472,1
    - Dst: Strong_String
      Src: /src/botan/src/tests/test_strong_type.cpp:472,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:474,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:474,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:475,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:475,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:476,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:476,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:478,1
    - Dst: Botan::wrap_strong_type<Strong_Unique>
      Src: /src/botan/src/tests/test_strong_type.cpp:480,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:480,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:482,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:482,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:485,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:490,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:491,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:492,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:494,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:498,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:499,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:500,1
    - Dst: confirm
      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:506,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:506,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:507,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:509,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:511,1
    - Dst: std::move
      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:515,1
    - Dst: Strong_String
      Src: /src/botan/src/tests/test_strong_type.cpp:515,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:516,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:517,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:519,1
    - Dst: Strong_String
      Src: /src/botan/src/tests/test_strong_type.cpp:520,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:524,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:530,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:531,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:532,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:534,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:538,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:539,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:540,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:542,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:546,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:546,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:547,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:548,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:550,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:552,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:554,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_strong_type.cpp:554,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:555,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:556,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:558,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_strong_type.cpp:559,1
    - Dst: Botan_Tests::CHECK
      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:569,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:570,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:571,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:571,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:572,1
    - Dst: Strong_String
      Src: /src/botan/src/tests/test_strong_type.cpp:572,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:574,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:575,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:576,1
    - Dst: test_eq
      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:579,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:580,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:582,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:583,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:583,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:585,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:585,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:587,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:588,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:589,1
    - Dst: Botan_Tests::CHECK
      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:598,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:599,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:600,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:600,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:601,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_strong_type.cpp:601,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:603,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:604,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:605,1
    - Dst: test_eq
      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:608,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:609,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:611,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:612,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:612,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:614,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:614,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:616,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:617,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 432
    functionDepth: 3
    functionLinenumber: 432
    functionLinenumberEnd: 621
    functionName: Botan_Tests::test_wrapping_unwrapping
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - std::move
    - Botan::wrap_strong_type<Strong_Unique>
    - Botan_Tests::CHECK
    - Botan::unwrap_strong_type
    - Botan::wrap_strong_type<Strong_String>
    - std::string
    - auto::get
    - Strong_String
    - std::string::string
    - confirm
    - std::make_unique<std::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)
  - 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)
  - 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_is_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_is_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: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:69,1
    - Dst: confirm
      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: confirm
      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_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_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: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:82,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:83,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:84,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:85,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:86,1
    - Dst: confirm
      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: 90
      start: 41
    functionDepth: 3
    functionLinenumber: 41
    functionLinenumberEnd: 90
    functionName: Botan_Tests::test_strong_type
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan_Tests::CHECK
    - Botan_Tests::foo
    - Test_Size
    - Test_Size::get
    - Test_Length
    - test_is_eq
    - confirm
    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:94,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:97,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:100,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:102,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_strong_type.cpp:103,1
    - Dst: Test_Nonce
      Src: /src/botan/src/tests/test_strong_type.cpp:104,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:104,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:106,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_strong_type.cpp:106,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:107,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_strong_type.cpp:107,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:108,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_strong_type.cpp:108,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:111,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:115,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:121,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:122,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:123,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:124,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:126,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:127,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:128,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:129,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:131,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:132,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:133,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:134,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:137,1
    - Dst: size
      Src: /src/botan/src/tests/test_strong_type.cpp:139,1
    - Dst: Test_Nonce
      Src: /src/botan/src/tests/test_strong_type.cpp:141,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:141,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:143,1
    - Dst: get_size
      Src: /src/botan/src/tests/test_strong_type.cpp:143,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_strong_type.cpp:143,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:146,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:152,1
    - Dst: std::stringstream::str
      Src: /src/botan/src/tests/test_strong_type.cpp:152,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_strong_type.cpp:152,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:155,1
    - Dst: Test_Length
      Src: /src/botan/src/tests/test_strong_type.cpp:159,1
    - Dst: Test_Length
      Src: /src/botan/src/tests/test_strong_type.cpp:159,1
    - Dst: Test_Length
      Src: /src/botan/src/tests/test_strong_type.cpp:159,1
    - Dst: Test_Length
      Src: /src/botan/src/tests/test_strong_type.cpp:159,1
    - Dst: std::ranges::sort
      Src: /src/botan/src/tests/test_strong_type.cpp:161,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:163,1
    - Dst: Test_Length_List::get
      Src: /src/botan/src/tests/test_strong_type.cpp:163,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:164,1
    - Dst: Test_Length_List::get
      Src: /src/botan/src/tests/test_strong_type.cpp:164,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:165,1
    - Dst: Test_Length_List::get
      Src: /src/botan/src/tests/test_strong_type.cpp:165,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:166,1
    - Dst: Test_Length_List::get
      Src: /src/botan/src/tests/test_strong_type.cpp:166,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:169,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:176,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:177,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:178,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_strong_type.cpp:179,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_strong_type.cpp:179,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_strong_type.cpp:179,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_strong_type.cpp:180,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_strong_type.cpp:180,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_strong_type.cpp:180,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_strong_type.cpp:181,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_strong_type.cpp:181,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_strong_type.cpp:181,1
    - Dst: Fixed_Output_RNG::random_vec
      Src: /src/botan/src/tests/test_strong_type.cpp:183,1
    - Dst: Fixed_Output_RNG::random_vec
      Src: /src/botan/src/tests/test_strong_type.cpp:184,1
    - Dst: Fixed_Output_RNG::random_vec
      Src: /src/botan/src/tests/test_strong_type.cpp:186,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:188,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:188,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:188,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:189,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:189,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_strong_type.cpp:189,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:190,1
    - Dst: std::vector
      Src: /src/botan/src/tests/test_strong_type.cpp:191,1
    - Dst: Test_Fixed_Array::begin
      Src: /src/botan/src/tests/test_strong_type.cpp:191,1
    - Dst: Test_Fixed_Array::end
      Src: /src/botan/src/tests/test_strong_type.cpp:191,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:192,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:195,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:202,1
    - Dst: Test_Array::at
      Src: /src/botan/src/tests/test_strong_type.cpp:202,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_strong_type.cpp:203,1
    - Dst: Test_Array::at
      Src: /src/botan/src/tests/test_strong_type.cpp:203,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:206,1
    - Dst: Test_Map::at
      Src: /src/botan/src/tests/test_strong_type.cpp:206,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_strong_type.cpp:207,1
    - Dst: Test_Map::at
      Src: /src/botan/src/tests/test_strong_type.cpp:207,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:210,1
    - Dst: Test_Vector::at
      Src: /src/botan/src/tests/test_strong_type.cpp:210,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_strong_type.cpp:211,1
    - Dst: Test_Vector::at
      Src: /src/botan/src/tests/test_strong_type.cpp:211,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:214,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:221,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:224,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 92
    functionDepth: 3
    functionLinenumber: 92
    functionLinenumberEnd: 230
    functionName: Botan_Tests::test_container_strong_type
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - auto::empty
    - test_throws
    - std::stringstream::str
    - auto::get
    - test_is_eq
    - Test_Fixed_Array::begin
    - Test_Nonce
    - auto::size
    - std::vector
    - Botan_Tests::CHECK
    - Fixed_Output_RNG::random_vec
    - confirm
    - Test_Fixed_Array::end
    - auto::data
    - Test_Length
    - Test_Map::at
    - Test_Array::at
    - Botan::hex_decode_locked
    - std::move
    - Test_Length_List::get
    - Fixed_Output_RNG::add_entropy
    - size
    - std::string
    - std::ranges::sort
    - Test_Vector::at
    - get_size
    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:237,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:241,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:242,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:243,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:244,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:245,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:246,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:247,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:248,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:250,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:251,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:252,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:253,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:254,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:255,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:256,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:257,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:260,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:264,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:265,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:266,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:267,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:269,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:270,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:271,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:272,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:275,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:283,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:284,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:285,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:286,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:287,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:288,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:289,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:290,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:293,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:300,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:301,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:302,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:303,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:304,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:305,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:306,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:307,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:308,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:310,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:311,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:312,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:313,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:314,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:315,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:316,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:317,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:318,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:321,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:326,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:327,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:328,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:329,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:330,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:331,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:332,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:333,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:334,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:336,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:337,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:338,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:339,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:340,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:341,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:342,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:343,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:344,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:346,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:347,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:348,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:349,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:350,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:351,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:352,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:353,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:354,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:357,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:362,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:363,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:364,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:365,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:366,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:367,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:368,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:369,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:370,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:372,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:373,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:374,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:375,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:376,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:377,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:378,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:379,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:380,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:382,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:383,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:384,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:385,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:386,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:387,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:388,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:389,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 112
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 232
    functionDepth: 3
    functionLinenumber: 232
    functionLinenumberEnd: 393
    functionName: Botan_Tests::test_integer_strong_type
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached:
    - confirm
    - Botan_Tests::CHECK
    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: 400
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 400
    functionName: Botan_Tests::test_strong_helper
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int test_strong_helper(const Botan::StrongSpan<Test_Foo>&)
  - 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: Botan_Tests::test_strong_helper
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int test_strong_helper(const Botan::StrongSpan<const Test_Foo>&)
  - 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: Botan_Tests::test_strong_helper
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int test_strong_helper(const Botan::StrongSpan<Test_Bar>&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:413,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:414,1
    - Dst: Botan_Tests::test_strong_helper
      Src: /src/botan/src/tests/test_strong_type.cpp:414,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_strong_type.cpp:416,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:417,1
    - Dst: Botan_Tests::test_strong_helper
      Src: /src/botan/src/tests/test_strong_type.cpp:417,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:421,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:422,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:423,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:425,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 410
    functionDepth: 1
    functionLinenumber: 410
    functionLinenumberEnd: 430
    functionName: Botan_Tests::test_strong_span
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Botan_Tests::test_strong_helper
    - Test::Result::test_is_eq
    - Test::Result::confirm
    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:439,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:443,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:444,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:445,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:445,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:446,1
    - Dst: test_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_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: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:450,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:450,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:451,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:451,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:455,1
    - Dst: Botan::wrap_strong_type<Strong_Unique>
      Src: /src/botan/src/tests/test_strong_type.cpp:458,1
    - Dst: std::string::string
      Src: /src/botan/src/tests/test_strong_type.cpp:458,1
    - Dst: Botan::wrap_strong_type<Strong_Unique>
      Src: /src/botan/src/tests/test_strong_type.cpp:459,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:459,1
    - Dst: test_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_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: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:465,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:470,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:471,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:471,1
    - Dst: Botan::wrap_strong_type<Strong_String>
      Src: /src/botan/src/tests/test_strong_type.cpp:472,1
    - Dst: Strong_String
      Src: /src/botan/src/tests/test_strong_type.cpp:472,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:474,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:474,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:475,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:475,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:476,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:476,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:478,1
    - Dst: Botan::wrap_strong_type<Strong_Unique>
      Src: /src/botan/src/tests/test_strong_type.cpp:480,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:480,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:482,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_strong_type.cpp:482,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:485,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:490,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:491,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:492,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:494,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:498,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:499,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:500,1
    - Dst: confirm
      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:506,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:506,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:507,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:509,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:511,1
    - Dst: std::move
      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:515,1
    - Dst: Strong_String
      Src: /src/botan/src/tests/test_strong_type.cpp:515,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:516,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:517,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:519,1
    - Dst: Strong_String
      Src: /src/botan/src/tests/test_strong_type.cpp:520,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_strong_type.cpp:524,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:530,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:531,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:532,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:534,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:538,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:539,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:540,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:542,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:546,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:546,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:547,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:548,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:550,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:552,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:554,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_strong_type.cpp:554,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:555,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:556,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_strong_type.cpp:558,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_strong_type.cpp:559,1
    - Dst: Botan_Tests::CHECK
      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:569,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:570,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:571,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:571,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:572,1
    - Dst: Strong_String
      Src: /src/botan/src/tests/test_strong_type.cpp:572,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:574,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:575,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:576,1
    - Dst: test_eq
      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:579,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:580,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:582,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:583,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:583,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:585,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:585,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:587,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:588,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:589,1
    - Dst: Botan_Tests::CHECK
      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:598,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:599,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:600,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:600,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:601,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_strong_type.cpp:601,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:603,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:604,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:605,1
    - Dst: test_eq
      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:608,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:609,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:611,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:612,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_strong_type.cpp:612,1
    - Dst: Botan::unwrap_strong_type
      Src: /src/botan/src/tests/test_strong_type.cpp:614,1
    - Dst: std::make_unique<std::string>
      Src: /src/botan/src/tests/test_strong_type.cpp:614,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:616,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:617,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_strong_type.cpp:618,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 432
    functionDepth: 3
    functionLinenumber: 432
    functionLinenumberEnd: 621
    functionName: Botan_Tests::test_wrapping_unwrapping
    functionSourceFile: /src/botan/src/tests/test_strong_type.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - std::move
    - Botan::wrap_strong_type<Strong_Unique>
    - Botan_Tests::CHECK
    - Botan::unwrap_strong_type
    - Botan::wrap_strong_type<Strong_String>
    - std::string
    - auto::get
    - Strong_String
    - std::string::string
    - confirm
    - std::make_unique<std::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:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    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:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    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:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    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_is_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_is_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_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:54,1
    - Dst: Botan_Tests::gcd
      Src: /src/botan/src/tests/test_crystals.cpp:54,1
    - Dst: Test::Result::test_is_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_is_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_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:58,1
    - Dst: Botan_Tests::gcd
      Src: /src/botan/src/tests/test_crystals.cpp:58,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:60,1
    - Dst: Botan_Tests::u
      Src: /src/botan/src/tests/test_crystals.cpp:60,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:61,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_crystals.cpp:61,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:62,1
    - Dst: Botan_Tests::u
      Src: /src/botan/src/tests/test_crystals.cpp:62,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:64,1
    - Dst: Botan::modular_inverse<int16_t>
      Src: /src/botan/src/tests/test_crystals.cpp:64,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:65,1
    - Dst: Botan::modular_inverse<int32_t>
      Src: /src/botan/src/tests/test_crystals.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 68
    functionName: Botan_Tests::test_extended_euclidean_algorithm
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan::modular_inverse<int16_t>
    - Botan_Tests::v
    - Botan_Tests::u
    - Test::Result::test_is_eq
    - Botan_Tests::gcd
    - Botan::modular_inverse<int32_t>
    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:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 99
    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:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 103
    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:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 105
    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:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 109
    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:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 115
    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:130,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:133,1
    - Dst: Kyberish_Poly::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:133,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:135,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:139,1
    - Dst: Kyberish_Poly::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:139,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:141,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:145,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:148,1
    - Dst: Kyberish_PolyVec::size
      Src: /src/botan/src/tests/test_crystals.cpp:148,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:151,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:151,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:155,1
    - Dst: Kyberish_PolyVec::size
      Src: /src/botan/src/tests/test_crystals.cpp:155,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:158,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:158,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:162,1
    - Dst: Kyberish_Poly::clone
      Src: /src/botan/src/tests/test_crystals.cpp:165,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:166,1
    - Dst: auto::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:166,1
    - Dst: require
      Src: /src/botan/src/tests/test_crystals.cpp:170,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:170,1
    - Dst: clone
      Src: /src/botan/src/tests/test_crystals.cpp:171,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:172,1
    - Dst: auto::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:172,1
    - Dst: Kyberish_PolyVec::clone
      Src: /src/botan/src/tests/test_crystals.cpp:175,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:177,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:177,1
    - Dst: Kyberish_Poly::clone
      Src: /src/botan/src/tests/test_crystals.cpp:181,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:182,1
    - Dst: auto::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:182,1
    - Dst: require
      Src: /src/botan/src/tests/test_crystals.cpp:186,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:186,1
    - Dst: clone
      Src: /src/botan/src/tests/test_crystals.cpp:187,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:188,1
    - Dst: auto::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:188,1
    - Dst: Kyberish_PolyVec::clone
      Src: /src/botan/src/tests/test_crystals.cpp:191,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:193,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:193,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:197,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:200,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:200,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:203,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:203,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:206,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:206,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:209,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:209,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:212,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:212,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:215,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:215,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:218,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:218,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:221,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:221,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:224,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:224,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:227,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:230,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:230,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:233,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:233,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:236,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:236,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:239,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:239,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:242,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:242,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:245,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:245,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:248,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:248,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:251,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:254,1
    - Dst: Kyberish_Poly::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:254,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:259,1
    - Dst: Kyberish_Poly::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:259,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:262,1
    - Dst: Kyberish_Poly::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:262,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:265,1
    - Dst: Kyberish_Poly::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:265,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:268,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:271,1
    - Dst: Kyberish_PolyVec::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:271,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:276,1
    - Dst: Kyberish_PolyVec::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:276,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:279,1
    - Dst: Kyberish_PolyVec::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:279,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:282,1
    - Dst: Kyberish_PolyVec::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:282,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 81
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 128
    functionDepth: 3
    functionLinenumber: 128
    functionLinenumberEnd: 285
    functionName: Botan_Tests::test_polynomial_basics
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Kyberish_PolyVec::clone
    - owns_storage
    - Kyberish_PolyVec::hamming_weight
    - Botan_Tests::CHECK
    - clone
    - Kyberish_Poly::owns_storage
    - auto::owns_storage
    - Kyberish_Poly::clone
    - require
    - Kyberish_PolyVec::ct_validate_value_range
    - Kyberish_PolyVec::size
    - Kyberish_Poly::ct_validate_value_range
    - test_is_eq
    - confirm
    - Kyberish_Poly::hamming_weight
    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: 293
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 293
    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: 295
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 295
    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: 297
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 297
    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:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 299
    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:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 301
    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: 303
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 303
    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:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 307
    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:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 311
    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:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 313
    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: 315
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 315
    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:332,1
    - Dst: static_cast<T>
      Src: /src/botan/src/tests/test_crystals.cpp:333,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_crystals.cpp:333,1
    - Dst: random_poly
      Src: /src/botan/src/tests/test_crystals.cpp:338,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_crystals.cpp:339,1
    - Dst: Botan::CRYSTALS::pack<range>
      Src: /src/botan/src/tests/test_crystals.cpp:341,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:342,1
    - Dst: Botan::BufferStuffer::full
      Src: /src/botan/src/tests/test_crystals.cpp:342,1
    - Dst: Botan::CRYSTALS::unpack<range>
      Src: /src/botan/src/tests/test_crystals.cpp:346,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:347,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_crystals.cpp:347,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_crystals.cpp:350,1
    - Dst: Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:350,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: 351
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 351
    functionName: Botan_Tests::random_encoding_roundtrips
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan::BufferStuffer::full
    - test_eq
    - static_cast<T>
    - randomize
    - Botan::BufferSlicer::empty
    - Botan::CRYSTALS::pack<range>
    - random_poly
    - auto::size
    - Botan::CRYSTALS::unpack<range>
    - confirm
    - Poly::hamming_weight
    - Botan::load_be
    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: 293
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 293
    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: 295
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 295
    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: 297
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 297
    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:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 299
    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:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 301
    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: 303
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 303
    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:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 307
    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:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 311
    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:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 313
    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: 315
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 315
    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:332,1
    - Dst: static_cast<T>
      Src: /src/botan/src/tests/test_crystals.cpp:333,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_crystals.cpp:333,1
    - Dst: random_poly
      Src: /src/botan/src/tests/test_crystals.cpp:338,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_crystals.cpp:339,1
    - Dst: Botan::CRYSTALS::pack<range>
      Src: /src/botan/src/tests/test_crystals.cpp:341,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:342,1
    - Dst: Botan::BufferStuffer::full
      Src: /src/botan/src/tests/test_crystals.cpp:342,1
    - Dst: Botan::CRYSTALS::unpack<range>
      Src: /src/botan/src/tests/test_crystals.cpp:346,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:347,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_crystals.cpp:347,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_crystals.cpp:350,1
    - Dst: Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:350,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: 351
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 351
    functionName: Botan_Tests::random_encoding_roundtrips
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan::BufferStuffer::full
    - test_eq
    - static_cast<T>
    - randomize
    - Botan::BufferSlicer::empty
    - Botan::CRYSTALS::pack<range>
    - random_poly
    - auto::size
    - Botan::CRYSTALS::unpack<range>
    - confirm
    - Poly::hamming_weight
    - Botan::load_be
    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:356,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_crystals.cpp:361,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_crystals.cpp:371,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:383,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:387,1
    - Dst: static_cast<Kyberish_Constants::T>
      Src: /src/botan/src/tests/test_crystals.cpp:388,1
    - Dst: Botan::CRYSTALS::pack<6>
      Src: /src/botan/src/tests/test_crystals.cpp:393,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_crystals.cpp:394,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:398,1
    - Dst: static_cast<Kyberish_Constants::T>
      Src: /src/botan/src/tests/test_crystals.cpp:399,1
    - Dst: Botan::CRYSTALS::pack<255>
      Src: /src/botan/src/tests/test_crystals.cpp:404,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_crystals.cpp:405,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:408,1
    - Dst: Botan::CRYSTALS::pack<512>
      Src: /src/botan/src/tests/test_crystals.cpp:410,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_crystals.cpp:411,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:414,1
    - Dst: Botan::CRYSTALS::unpack<6>
      Src: /src/botan/src/tests/test_crystals.cpp:418,1
    - Dst: require
      Src: /src/botan/src/tests/test_crystals.cpp:419,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_crystals.cpp:419,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:420,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:421,1
    - Dst: Botan::CRYSTALS::unpack<255>
      Src: /src/botan/src/tests/test_crystals.cpp:426,1
    - Dst: require
      Src: /src/botan/src/tests/test_crystals.cpp:427,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_crystals.cpp:427,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:428,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:429,1
    - Dst: Botan::CRYSTALS::unpack<512>
      Src: /src/botan/src/tests/test_crystals.cpp:434,1
    - Dst: require
      Src: /src/botan/src/tests/test_crystals.cpp:435,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_crystals.cpp:435,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:436,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:437,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:441,1
    - Dst: Botan::CRYSTALS::unpack<6>
      Src: /src/botan/src/tests/test_crystals.cpp:446,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:447,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:448,1
    - Dst: Botan::CRYSTALS::unpack<255>
      Src: /src/botan/src/tests/test_crystals.cpp:453,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:454,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:455,1
    - Dst: Botan::CRYSTALS::unpack<512>
      Src: /src/botan/src/tests/test_crystals.cpp:460,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:461,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:462,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_crystals.cpp:465,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:469,1
    - Dst: Botan_Tests::Test::new_rng
      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::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:479,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:482,1
    - Dst: Botan_Tests::Test::new_rng
      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::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:490,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:493,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_crystals.cpp:497,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
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:513,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 76
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 355
    functionDepth: 3
    functionLinenumber: 355
    functionLinenumberEnd: 516
    functionName: Botan_Tests::test_encoding
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan::CRYSTALS::pack<255>
    - Botan::hex_decode
    - Kyberish_Poly::size
    - test_eq
    - Botan::CRYSTALS::unpack<6>
    - Botan_Tests::CHECK
    - Botan_Tests::random_encoding_roundtrips
    - Botan::CRYSTALS::pack<6>
    - Botan::BufferSlicer::empty
    - require
    - Botan::CRYSTALS::unpack<512>
    - Botan::CRYSTALS::unpack<255>
    - static_cast<Kyberish_Constants::T>
    - BOTAN_UNUSED
    - Botan_Tests::Test::new_rng
    - test_is_eq
    - Botan::CRYSTALS::pack<512>
    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: 520
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 520
    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:526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 529
    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:540,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_crystals.cpp:543,1
    - Dst: Mocked_Bounded_XOF::next_byte
      Src: /src/botan/src/tests/test_crystals.cpp:543,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:546,1
    - Dst: test_is_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_is_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_is_eq
      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: test_throws
      Src: /src/botan/src/tests/test_crystals.cpp:552,1
    - Dst: Mocked_Bounded_XOF::next_byte
      Src: /src/botan/src/tests/test_crystals.cpp:552,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:555,1
    - Dst: test_is_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_is_eq
      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: test_throws
      Src: /src/botan/src/tests/test_crystals.cpp:565,1
    - Dst: Mocked_Bounded_XOF::next_byte
      Src: /src/botan/src/tests/test_crystals.cpp:565,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:568,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_crystals.cpp:570,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:573,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:574,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:575,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:576,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_crystals.cpp:577,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:580,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:586,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:587,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:588,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:589,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:590,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_crystals.cpp:591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 538
    functionDepth: 3
    functionLinenumber: 538
    functionLinenumberEnd: 594
    functionName: Botan_Tests::test_bounded_xof
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Mocked_Bounded_XOF::next_byte
    - Botan_Tests::CHECK
    - test_throws
    - test_is_eq
    - Botan::load_be
    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:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    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:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    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:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    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_is_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_is_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_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:54,1
    - Dst: Botan_Tests::gcd
      Src: /src/botan/src/tests/test_crystals.cpp:54,1
    - Dst: Test::Result::test_is_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_is_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_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:58,1
    - Dst: Botan_Tests::gcd
      Src: /src/botan/src/tests/test_crystals.cpp:58,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:60,1
    - Dst: Botan_Tests::u
      Src: /src/botan/src/tests/test_crystals.cpp:60,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:61,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_crystals.cpp:61,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:62,1
    - Dst: Botan_Tests::u
      Src: /src/botan/src/tests/test_crystals.cpp:62,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:64,1
    - Dst: Botan::modular_inverse<int16_t>
      Src: /src/botan/src/tests/test_crystals.cpp:64,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:65,1
    - Dst: Botan::modular_inverse<int32_t>
      Src: /src/botan/src/tests/test_crystals.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 68
    functionName: Botan_Tests::test_extended_euclidean_algorithm
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan::modular_inverse<int16_t>
    - Botan_Tests::v
    - Botan_Tests::u
    - Test::Result::test_is_eq
    - Botan_Tests::gcd
    - Botan::modular_inverse<int32_t>
    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:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 99
    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:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 103
    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:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 105
    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:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 109
    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:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 115
    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:130,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:133,1
    - Dst: Kyberish_Poly::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:133,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:135,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:139,1
    - Dst: Kyberish_Poly::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:139,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:141,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:145,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:148,1
    - Dst: Kyberish_PolyVec::size
      Src: /src/botan/src/tests/test_crystals.cpp:148,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:151,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:151,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:155,1
    - Dst: Kyberish_PolyVec::size
      Src: /src/botan/src/tests/test_crystals.cpp:155,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:158,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:158,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:162,1
    - Dst: Kyberish_Poly::clone
      Src: /src/botan/src/tests/test_crystals.cpp:165,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:166,1
    - Dst: auto::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:166,1
    - Dst: require
      Src: /src/botan/src/tests/test_crystals.cpp:170,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:170,1
    - Dst: clone
      Src: /src/botan/src/tests/test_crystals.cpp:171,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:172,1
    - Dst: auto::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:172,1
    - Dst: Kyberish_PolyVec::clone
      Src: /src/botan/src/tests/test_crystals.cpp:175,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:177,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:177,1
    - Dst: Kyberish_Poly::clone
      Src: /src/botan/src/tests/test_crystals.cpp:181,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:182,1
    - Dst: auto::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:182,1
    - Dst: require
      Src: /src/botan/src/tests/test_crystals.cpp:186,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:186,1
    - Dst: clone
      Src: /src/botan/src/tests/test_crystals.cpp:187,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:188,1
    - Dst: auto::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:188,1
    - Dst: Kyberish_PolyVec::clone
      Src: /src/botan/src/tests/test_crystals.cpp:191,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:193,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:193,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:197,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:200,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:200,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:203,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:203,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:206,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:206,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:209,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:209,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:212,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:212,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:215,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:215,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:218,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:218,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:221,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:221,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:224,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:224,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:227,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:230,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:230,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:233,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:233,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:236,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:236,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:239,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:239,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:242,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:242,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:245,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:245,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:248,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:248,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:251,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:254,1
    - Dst: Kyberish_Poly::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:254,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:259,1
    - Dst: Kyberish_Poly::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:259,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:262,1
    - Dst: Kyberish_Poly::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:262,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:265,1
    - Dst: Kyberish_Poly::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:265,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:268,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:271,1
    - Dst: Kyberish_PolyVec::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:271,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:276,1
    - Dst: Kyberish_PolyVec::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:276,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:279,1
    - Dst: Kyberish_PolyVec::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:279,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:282,1
    - Dst: Kyberish_PolyVec::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:282,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 81
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 128
    functionDepth: 3
    functionLinenumber: 128
    functionLinenumberEnd: 285
    functionName: Botan_Tests::test_polynomial_basics
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Kyberish_PolyVec::clone
    - owns_storage
    - Kyberish_PolyVec::hamming_weight
    - Botan_Tests::CHECK
    - clone
    - Kyberish_Poly::owns_storage
    - auto::owns_storage
    - Kyberish_Poly::clone
    - require
    - Kyberish_PolyVec::ct_validate_value_range
    - Kyberish_PolyVec::size
    - Kyberish_Poly::ct_validate_value_range
    - test_is_eq
    - confirm
    - Kyberish_Poly::hamming_weight
    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: 293
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 293
    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: 295
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 295
    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: 297
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 297
    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:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 299
    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:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 301
    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: 303
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 303
    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:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 307
    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:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 311
    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:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 313
    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: 315
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 315
    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:332,1
    - Dst: static_cast<T>
      Src: /src/botan/src/tests/test_crystals.cpp:333,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_crystals.cpp:333,1
    - Dst: random_poly
      Src: /src/botan/src/tests/test_crystals.cpp:338,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_crystals.cpp:339,1
    - Dst: Botan::CRYSTALS::pack<range>
      Src: /src/botan/src/tests/test_crystals.cpp:341,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:342,1
    - Dst: Botan::BufferStuffer::full
      Src: /src/botan/src/tests/test_crystals.cpp:342,1
    - Dst: Botan::CRYSTALS::unpack<range>
      Src: /src/botan/src/tests/test_crystals.cpp:346,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:347,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_crystals.cpp:347,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_crystals.cpp:350,1
    - Dst: Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:350,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: 351
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 351
    functionName: Botan_Tests::random_encoding_roundtrips
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 1
    functionsReached:
    - Botan::BufferStuffer::full
    - test_eq
    - static_cast<T>
    - randomize
    - Botan::BufferSlicer::empty
    - Botan::CRYSTALS::pack<range>
    - random_poly
    - auto::size
    - Botan::CRYSTALS::unpack<range>
    - confirm
    - Poly::hamming_weight
    - Botan::load_be
    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: 293
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 293
    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: 295
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 295
    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: 297
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 297
    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:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 299
    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:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 301
    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: 303
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 303
    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:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 307
    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:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 311
    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:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 313
    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: 315
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 315
    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:332,1
    - Dst: static_cast<T>
      Src: /src/botan/src/tests/test_crystals.cpp:333,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_crystals.cpp:333,1
    - Dst: random_poly
      Src: /src/botan/src/tests/test_crystals.cpp:338,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_crystals.cpp:339,1
    - Dst: Botan::CRYSTALS::pack<range>
      Src: /src/botan/src/tests/test_crystals.cpp:341,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:342,1
    - Dst: Botan::BufferStuffer::full
      Src: /src/botan/src/tests/test_crystals.cpp:342,1
    - Dst: Botan::CRYSTALS::unpack<range>
      Src: /src/botan/src/tests/test_crystals.cpp:346,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:347,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_crystals.cpp:347,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_crystals.cpp:350,1
    - Dst: Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:350,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: 351
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 351
    functionName: Botan_Tests::random_encoding_roundtrips
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 1
    functionsReached:
    - Botan::BufferStuffer::full
    - test_eq
    - static_cast<T>
    - randomize
    - Botan::BufferSlicer::empty
    - Botan::CRYSTALS::pack<range>
    - random_poly
    - auto::size
    - Botan::CRYSTALS::unpack<range>
    - confirm
    - Poly::hamming_weight
    - Botan::load_be
    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:356,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_crystals.cpp:361,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_crystals.cpp:371,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:383,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:387,1
    - Dst: static_cast<Kyberish_Constants::T>
      Src: /src/botan/src/tests/test_crystals.cpp:388,1
    - Dst: Botan::CRYSTALS::pack<6>
      Src: /src/botan/src/tests/test_crystals.cpp:393,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_crystals.cpp:394,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:398,1
    - Dst: static_cast<Kyberish_Constants::T>
      Src: /src/botan/src/tests/test_crystals.cpp:399,1
    - Dst: Botan::CRYSTALS::pack<255>
      Src: /src/botan/src/tests/test_crystals.cpp:404,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_crystals.cpp:405,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:408,1
    - Dst: Botan::CRYSTALS::pack<512>
      Src: /src/botan/src/tests/test_crystals.cpp:410,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_crystals.cpp:411,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:414,1
    - Dst: Botan::CRYSTALS::unpack<6>
      Src: /src/botan/src/tests/test_crystals.cpp:418,1
    - Dst: require
      Src: /src/botan/src/tests/test_crystals.cpp:419,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_crystals.cpp:419,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:420,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:421,1
    - Dst: Botan::CRYSTALS::unpack<255>
      Src: /src/botan/src/tests/test_crystals.cpp:426,1
    - Dst: require
      Src: /src/botan/src/tests/test_crystals.cpp:427,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_crystals.cpp:427,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:428,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:429,1
    - Dst: Botan::CRYSTALS::unpack<512>
      Src: /src/botan/src/tests/test_crystals.cpp:434,1
    - Dst: require
      Src: /src/botan/src/tests/test_crystals.cpp:435,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_crystals.cpp:435,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:436,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:437,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:441,1
    - Dst: Botan::CRYSTALS::unpack<6>
      Src: /src/botan/src/tests/test_crystals.cpp:446,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:447,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:448,1
    - Dst: Botan::CRYSTALS::unpack<255>
      Src: /src/botan/src/tests/test_crystals.cpp:453,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:454,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:455,1
    - Dst: Botan::CRYSTALS::unpack<512>
      Src: /src/botan/src/tests/test_crystals.cpp:460,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:461,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:462,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_crystals.cpp:465,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:469,1
    - Dst: Botan_Tests::Test::new_rng
      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::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:479,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:482,1
    - Dst: Botan_Tests::Test::new_rng
      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::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:490,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:493,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_crystals.cpp:497,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
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:513,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 76
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 355
    functionDepth: 3
    functionLinenumber: 355
    functionLinenumberEnd: 516
    functionName: Botan_Tests::test_encoding
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan::CRYSTALS::pack<255>
    - Botan::hex_decode
    - Kyberish_Poly::size
    - test_eq
    - Botan::CRYSTALS::unpack<6>
    - Botan_Tests::CHECK
    - Botan_Tests::random_encoding_roundtrips
    - Botan::CRYSTALS::pack<6>
    - Botan::BufferSlicer::empty
    - require
    - Botan::CRYSTALS::unpack<512>
    - Botan::CRYSTALS::unpack<255>
    - static_cast<Kyberish_Constants::T>
    - BOTAN_UNUSED
    - Botan_Tests::Test::new_rng
    - test_is_eq
    - Botan::CRYSTALS::pack<512>
    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: 520
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 520
    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:526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 529
    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:540,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_crystals.cpp:543,1
    - Dst: Mocked_Bounded_XOF::next_byte
      Src: /src/botan/src/tests/test_crystals.cpp:543,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:546,1
    - Dst: test_is_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_is_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_is_eq
      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: test_throws
      Src: /src/botan/src/tests/test_crystals.cpp:552,1
    - Dst: Mocked_Bounded_XOF::next_byte
      Src: /src/botan/src/tests/test_crystals.cpp:552,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:555,1
    - Dst: test_is_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_is_eq
      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: test_throws
      Src: /src/botan/src/tests/test_crystals.cpp:565,1
    - Dst: Mocked_Bounded_XOF::next_byte
      Src: /src/botan/src/tests/test_crystals.cpp:565,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:568,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_crystals.cpp:570,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:573,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:574,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:575,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:576,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_crystals.cpp:577,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:580,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:586,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:587,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:588,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:589,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:590,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_crystals.cpp:591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 538
    functionDepth: 3
    functionLinenumber: 538
    functionLinenumberEnd: 594
    functionName: Botan_Tests::test_bounded_xof
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Mocked_Bounded_XOF::next_byte
    - Botan_Tests::CHECK
    - test_throws
    - test_is_eq
    - Botan::load_be
    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:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    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:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    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:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    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_is_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_is_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_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:54,1
    - Dst: Botan_Tests::gcd
      Src: /src/botan/src/tests/test_crystals.cpp:54,1
    - Dst: Test::Result::test_is_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_is_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_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:58,1
    - Dst: Botan_Tests::gcd
      Src: /src/botan/src/tests/test_crystals.cpp:58,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:60,1
    - Dst: Botan_Tests::u
      Src: /src/botan/src/tests/test_crystals.cpp:60,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:61,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_crystals.cpp:61,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:62,1
    - Dst: Botan_Tests::u
      Src: /src/botan/src/tests/test_crystals.cpp:62,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:64,1
    - Dst: Botan::modular_inverse<int16_t>
      Src: /src/botan/src/tests/test_crystals.cpp:64,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:65,1
    - Dst: Botan::modular_inverse<int32_t>
      Src: /src/botan/src/tests/test_crystals.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 68
    functionName: Botan_Tests::test_extended_euclidean_algorithm
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan::modular_inverse<int16_t>
    - Botan_Tests::v
    - Botan_Tests::u
    - Test::Result::test_is_eq
    - Botan_Tests::gcd
    - Botan::modular_inverse<int32_t>
    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:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 99
    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:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 103
    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:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 105
    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:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 109
    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:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 115
    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:130,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:133,1
    - Dst: Kyberish_Poly::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:133,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:135,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:139,1
    - Dst: Kyberish_Poly::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:139,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:141,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:145,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:148,1
    - Dst: Kyberish_PolyVec::size
      Src: /src/botan/src/tests/test_crystals.cpp:148,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:151,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:151,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:155,1
    - Dst: Kyberish_PolyVec::size
      Src: /src/botan/src/tests/test_crystals.cpp:155,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:158,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:158,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:162,1
    - Dst: Kyberish_Poly::clone
      Src: /src/botan/src/tests/test_crystals.cpp:165,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:166,1
    - Dst: auto::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:166,1
    - Dst: require
      Src: /src/botan/src/tests/test_crystals.cpp:170,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:170,1
    - Dst: clone
      Src: /src/botan/src/tests/test_crystals.cpp:171,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:172,1
    - Dst: auto::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:172,1
    - Dst: Kyberish_PolyVec::clone
      Src: /src/botan/src/tests/test_crystals.cpp:175,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:177,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:177,1
    - Dst: Kyberish_Poly::clone
      Src: /src/botan/src/tests/test_crystals.cpp:181,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:182,1
    - Dst: auto::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:182,1
    - Dst: require
      Src: /src/botan/src/tests/test_crystals.cpp:186,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:186,1
    - Dst: clone
      Src: /src/botan/src/tests/test_crystals.cpp:187,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:188,1
    - Dst: auto::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:188,1
    - Dst: Kyberish_PolyVec::clone
      Src: /src/botan/src/tests/test_crystals.cpp:191,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:193,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:193,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:197,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:200,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:200,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:203,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:203,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:206,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:206,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:209,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:209,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:212,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:212,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:215,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:215,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:218,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:218,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:221,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:221,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:224,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:224,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:227,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:230,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:230,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:233,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:233,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:236,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:236,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:239,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:239,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:242,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:242,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:245,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:245,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:248,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:248,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:251,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:254,1
    - Dst: Kyberish_Poly::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:254,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:259,1
    - Dst: Kyberish_Poly::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:259,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:262,1
    - Dst: Kyberish_Poly::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:262,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:265,1
    - Dst: Kyberish_Poly::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:265,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:268,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:271,1
    - Dst: Kyberish_PolyVec::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:271,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:276,1
    - Dst: Kyberish_PolyVec::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:276,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:279,1
    - Dst: Kyberish_PolyVec::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:279,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:282,1
    - Dst: Kyberish_PolyVec::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:282,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 81
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 128
    functionDepth: 3
    functionLinenumber: 128
    functionLinenumberEnd: 285
    functionName: Botan_Tests::test_polynomial_basics
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Kyberish_PolyVec::clone
    - owns_storage
    - Kyberish_PolyVec::hamming_weight
    - Botan_Tests::CHECK
    - clone
    - Kyberish_Poly::owns_storage
    - auto::owns_storage
    - Kyberish_Poly::clone
    - require
    - Kyberish_PolyVec::ct_validate_value_range
    - Kyberish_PolyVec::size
    - Kyberish_Poly::ct_validate_value_range
    - test_is_eq
    - confirm
    - Kyberish_Poly::hamming_weight
    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: 293
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 293
    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: 295
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 295
    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: 297
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 297
    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:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 299
    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:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 301
    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: 303
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 303
    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:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 307
    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:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 311
    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:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 313
    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: 315
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 315
    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:332,1
    - Dst: static_cast<T>
      Src: /src/botan/src/tests/test_crystals.cpp:333,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_crystals.cpp:333,1
    - Dst: random_poly
      Src: /src/botan/src/tests/test_crystals.cpp:338,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_crystals.cpp:339,1
    - Dst: Botan::CRYSTALS::pack<range>
      Src: /src/botan/src/tests/test_crystals.cpp:341,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:342,1
    - Dst: Botan::BufferStuffer::full
      Src: /src/botan/src/tests/test_crystals.cpp:342,1
    - Dst: Botan::CRYSTALS::unpack<range>
      Src: /src/botan/src/tests/test_crystals.cpp:346,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:347,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_crystals.cpp:347,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_crystals.cpp:350,1
    - Dst: Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:350,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: 351
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 351
    functionName: Botan_Tests::random_encoding_roundtrips
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 2
    functionsReached:
    - Botan::BufferStuffer::full
    - test_eq
    - static_cast<T>
    - randomize
    - Botan::BufferSlicer::empty
    - Botan::CRYSTALS::pack<range>
    - random_poly
    - auto::size
    - Botan::CRYSTALS::unpack<range>
    - confirm
    - Poly::hamming_weight
    - Botan::load_be
    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: 293
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 293
    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: 295
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 295
    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: 297
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 297
    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:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 299
    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:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 301
    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: 303
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 303
    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:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 307
    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:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 311
    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:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 313
    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: 315
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 315
    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:332,1
    - Dst: static_cast<T>
      Src: /src/botan/src/tests/test_crystals.cpp:333,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_crystals.cpp:333,1
    - Dst: random_poly
      Src: /src/botan/src/tests/test_crystals.cpp:338,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_crystals.cpp:339,1
    - Dst: Botan::CRYSTALS::pack<range>
      Src: /src/botan/src/tests/test_crystals.cpp:341,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:342,1
    - Dst: Botan::BufferStuffer::full
      Src: /src/botan/src/tests/test_crystals.cpp:342,1
    - Dst: Botan::CRYSTALS::unpack<range>
      Src: /src/botan/src/tests/test_crystals.cpp:346,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:347,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_crystals.cpp:347,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_crystals.cpp:350,1
    - Dst: Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:350,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: 351
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 351
    functionName: Botan_Tests::random_encoding_roundtrips
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 2
    functionsReached:
    - Botan::BufferStuffer::full
    - test_eq
    - static_cast<T>
    - randomize
    - Botan::BufferSlicer::empty
    - Botan::CRYSTALS::pack<range>
    - random_poly
    - auto::size
    - Botan::CRYSTALS::unpack<range>
    - confirm
    - Poly::hamming_weight
    - Botan::load_be
    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:356,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_crystals.cpp:361,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_crystals.cpp:371,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:383,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:387,1
    - Dst: static_cast<Kyberish_Constants::T>
      Src: /src/botan/src/tests/test_crystals.cpp:388,1
    - Dst: Botan::CRYSTALS::pack<6>
      Src: /src/botan/src/tests/test_crystals.cpp:393,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_crystals.cpp:394,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:398,1
    - Dst: static_cast<Kyberish_Constants::T>
      Src: /src/botan/src/tests/test_crystals.cpp:399,1
    - Dst: Botan::CRYSTALS::pack<255>
      Src: /src/botan/src/tests/test_crystals.cpp:404,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_crystals.cpp:405,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:408,1
    - Dst: Botan::CRYSTALS::pack<512>
      Src: /src/botan/src/tests/test_crystals.cpp:410,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_crystals.cpp:411,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:414,1
    - Dst: Botan::CRYSTALS::unpack<6>
      Src: /src/botan/src/tests/test_crystals.cpp:418,1
    - Dst: require
      Src: /src/botan/src/tests/test_crystals.cpp:419,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_crystals.cpp:419,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:420,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:421,1
    - Dst: Botan::CRYSTALS::unpack<255>
      Src: /src/botan/src/tests/test_crystals.cpp:426,1
    - Dst: require
      Src: /src/botan/src/tests/test_crystals.cpp:427,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_crystals.cpp:427,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:428,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:429,1
    - Dst: Botan::CRYSTALS::unpack<512>
      Src: /src/botan/src/tests/test_crystals.cpp:434,1
    - Dst: require
      Src: /src/botan/src/tests/test_crystals.cpp:435,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_crystals.cpp:435,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:436,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:437,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:441,1
    - Dst: Botan::CRYSTALS::unpack<6>
      Src: /src/botan/src/tests/test_crystals.cpp:446,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:447,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:448,1
    - Dst: Botan::CRYSTALS::unpack<255>
      Src: /src/botan/src/tests/test_crystals.cpp:453,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:454,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:455,1
    - Dst: Botan::CRYSTALS::unpack<512>
      Src: /src/botan/src/tests/test_crystals.cpp:460,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:461,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:462,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_crystals.cpp:465,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:469,1
    - Dst: Botan_Tests::Test::new_rng
      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::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:479,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:482,1
    - Dst: Botan_Tests::Test::new_rng
      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::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:490,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:493,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_crystals.cpp:497,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
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:513,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 76
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 355
    functionDepth: 3
    functionLinenumber: 355
    functionLinenumberEnd: 516
    functionName: Botan_Tests::test_encoding
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan::CRYSTALS::pack<255>
    - Botan::hex_decode
    - Kyberish_Poly::size
    - test_eq
    - Botan::CRYSTALS::unpack<6>
    - Botan_Tests::CHECK
    - Botan_Tests::random_encoding_roundtrips
    - Botan::CRYSTALS::pack<6>
    - Botan::BufferSlicer::empty
    - require
    - Botan::CRYSTALS::unpack<512>
    - Botan::CRYSTALS::unpack<255>
    - static_cast<Kyberish_Constants::T>
    - BOTAN_UNUSED
    - Botan_Tests::Test::new_rng
    - test_is_eq
    - Botan::CRYSTALS::pack<512>
    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: 520
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 520
    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:526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 529
    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:540,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_crystals.cpp:543,1
    - Dst: Mocked_Bounded_XOF::next_byte
      Src: /src/botan/src/tests/test_crystals.cpp:543,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:546,1
    - Dst: test_is_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_is_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_is_eq
      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: test_throws
      Src: /src/botan/src/tests/test_crystals.cpp:552,1
    - Dst: Mocked_Bounded_XOF::next_byte
      Src: /src/botan/src/tests/test_crystals.cpp:552,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:555,1
    - Dst: test_is_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_is_eq
      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: test_throws
      Src: /src/botan/src/tests/test_crystals.cpp:565,1
    - Dst: Mocked_Bounded_XOF::next_byte
      Src: /src/botan/src/tests/test_crystals.cpp:565,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:568,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_crystals.cpp:570,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:573,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:574,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:575,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:576,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_crystals.cpp:577,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:580,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:586,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:587,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:588,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:589,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:590,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_crystals.cpp:591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 538
    functionDepth: 3
    functionLinenumber: 538
    functionLinenumberEnd: 594
    functionName: Botan_Tests::test_bounded_xof
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Mocked_Bounded_XOF::next_byte
    - Botan_Tests::CHECK
    - test_throws
    - test_is_eq
    - Botan::load_be
    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:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    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:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    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:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    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_is_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_is_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_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:54,1
    - Dst: Botan_Tests::gcd
      Src: /src/botan/src/tests/test_crystals.cpp:54,1
    - Dst: Test::Result::test_is_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_is_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_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:58,1
    - Dst: Botan_Tests::gcd
      Src: /src/botan/src/tests/test_crystals.cpp:58,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:60,1
    - Dst: Botan_Tests::u
      Src: /src/botan/src/tests/test_crystals.cpp:60,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:61,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_crystals.cpp:61,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:62,1
    - Dst: Botan_Tests::u
      Src: /src/botan/src/tests/test_crystals.cpp:62,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:64,1
    - Dst: Botan::modular_inverse<int16_t>
      Src: /src/botan/src/tests/test_crystals.cpp:64,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:65,1
    - Dst: Botan::modular_inverse<int32_t>
      Src: /src/botan/src/tests/test_crystals.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 68
    functionName: Botan_Tests::test_extended_euclidean_algorithm
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan::modular_inverse<int16_t>
    - Botan_Tests::v
    - Botan_Tests::u
    - Test::Result::test_is_eq
    - Botan_Tests::gcd
    - Botan::modular_inverse<int32_t>
    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:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 99
    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:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 103
    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:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 105
    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:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 109
    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:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 115
    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:130,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:133,1
    - Dst: Kyberish_Poly::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:133,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:135,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:139,1
    - Dst: Kyberish_Poly::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:139,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:141,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:145,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:148,1
    - Dst: Kyberish_PolyVec::size
      Src: /src/botan/src/tests/test_crystals.cpp:148,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:151,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:151,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:155,1
    - Dst: Kyberish_PolyVec::size
      Src: /src/botan/src/tests/test_crystals.cpp:155,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:158,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:158,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:162,1
    - Dst: Kyberish_Poly::clone
      Src: /src/botan/src/tests/test_crystals.cpp:165,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:166,1
    - Dst: auto::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:166,1
    - Dst: require
      Src: /src/botan/src/tests/test_crystals.cpp:170,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:170,1
    - Dst: clone
      Src: /src/botan/src/tests/test_crystals.cpp:171,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:172,1
    - Dst: auto::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:172,1
    - Dst: Kyberish_PolyVec::clone
      Src: /src/botan/src/tests/test_crystals.cpp:175,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:177,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:177,1
    - Dst: Kyberish_Poly::clone
      Src: /src/botan/src/tests/test_crystals.cpp:181,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:182,1
    - Dst: auto::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:182,1
    - Dst: require
      Src: /src/botan/src/tests/test_crystals.cpp:186,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:186,1
    - Dst: clone
      Src: /src/botan/src/tests/test_crystals.cpp:187,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:188,1
    - Dst: auto::owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:188,1
    - Dst: Kyberish_PolyVec::clone
      Src: /src/botan/src/tests/test_crystals.cpp:191,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:193,1
    - Dst: owns_storage
      Src: /src/botan/src/tests/test_crystals.cpp:193,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:197,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:200,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:200,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:203,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:203,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:206,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:206,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:209,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:209,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:212,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:212,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:215,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:215,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:218,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:218,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:221,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:221,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:224,1
    - Dst: Kyberish_Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:224,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:227,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:230,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:230,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:233,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:233,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:236,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:236,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:239,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:239,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:242,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:242,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:245,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:245,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:248,1
    - Dst: Kyberish_PolyVec::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:248,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:251,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:254,1
    - Dst: Kyberish_Poly::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:254,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:259,1
    - Dst: Kyberish_Poly::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:259,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:262,1
    - Dst: Kyberish_Poly::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:262,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:265,1
    - Dst: Kyberish_Poly::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:265,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:268,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:271,1
    - Dst: Kyberish_PolyVec::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:271,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:276,1
    - Dst: Kyberish_PolyVec::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:276,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:279,1
    - Dst: Kyberish_PolyVec::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:279,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:282,1
    - Dst: Kyberish_PolyVec::ct_validate_value_range
      Src: /src/botan/src/tests/test_crystals.cpp:282,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 81
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 128
    functionDepth: 3
    functionLinenumber: 128
    functionLinenumberEnd: 285
    functionName: Botan_Tests::test_polynomial_basics
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Kyberish_PolyVec::clone
    - owns_storage
    - Kyberish_PolyVec::hamming_weight
    - Botan_Tests::CHECK
    - clone
    - Kyberish_Poly::owns_storage
    - auto::owns_storage
    - Kyberish_Poly::clone
    - require
    - Kyberish_PolyVec::ct_validate_value_range
    - Kyberish_PolyVec::size
    - Kyberish_Poly::ct_validate_value_range
    - test_is_eq
    - confirm
    - Kyberish_Poly::hamming_weight
    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: 293
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 293
    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: 295
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 295
    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: 297
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 297
    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:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 299
    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:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 301
    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: 303
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 303
    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:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 307
    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:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 311
    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:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 313
    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: 315
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 315
    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:332,1
    - Dst: static_cast<T>
      Src: /src/botan/src/tests/test_crystals.cpp:333,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_crystals.cpp:333,1
    - Dst: random_poly
      Src: /src/botan/src/tests/test_crystals.cpp:338,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_crystals.cpp:339,1
    - Dst: Botan::CRYSTALS::pack<range>
      Src: /src/botan/src/tests/test_crystals.cpp:341,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:342,1
    - Dst: Botan::BufferStuffer::full
      Src: /src/botan/src/tests/test_crystals.cpp:342,1
    - Dst: Botan::CRYSTALS::unpack<range>
      Src: /src/botan/src/tests/test_crystals.cpp:346,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:347,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_crystals.cpp:347,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_crystals.cpp:350,1
    - Dst: Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:350,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: 351
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 351
    functionName: Botan_Tests::random_encoding_roundtrips
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 3
    functionsReached:
    - Botan::BufferStuffer::full
    - test_eq
    - static_cast<T>
    - randomize
    - Botan::BufferSlicer::empty
    - Botan::CRYSTALS::pack<range>
    - random_poly
    - auto::size
    - Botan::CRYSTALS::unpack<range>
    - confirm
    - Poly::hamming_weight
    - Botan::load_be
    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: 293
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 293
    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: 295
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 295
    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: 297
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 297
    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:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 299
    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:301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 301
    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: 303
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 303
    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:306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 307
    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:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 311
    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:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 313
    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: 315
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 315
    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:332,1
    - Dst: static_cast<T>
      Src: /src/botan/src/tests/test_crystals.cpp:333,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_crystals.cpp:333,1
    - Dst: random_poly
      Src: /src/botan/src/tests/test_crystals.cpp:338,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_crystals.cpp:339,1
    - Dst: Botan::CRYSTALS::pack<range>
      Src: /src/botan/src/tests/test_crystals.cpp:341,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:342,1
    - Dst: Botan::BufferStuffer::full
      Src: /src/botan/src/tests/test_crystals.cpp:342,1
    - Dst: Botan::CRYSTALS::unpack<range>
      Src: /src/botan/src/tests/test_crystals.cpp:346,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_crystals.cpp:347,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_crystals.cpp:347,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_crystals.cpp:350,1
    - Dst: Poly::hamming_weight
      Src: /src/botan/src/tests/test_crystals.cpp:350,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: 351
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 351
    functionName: Botan_Tests::random_encoding_roundtrips
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 3
    functionsReached:
    - Botan::BufferStuffer::full
    - test_eq
    - static_cast<T>
    - randomize
    - Botan::BufferSlicer::empty
    - Botan::CRYSTALS::pack<range>
    - random_poly
    - auto::size
    - Botan::CRYSTALS::unpack<range>
    - confirm
    - Poly::hamming_weight
    - Botan::load_be
    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:356,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_crystals.cpp:361,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_crystals.cpp:371,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:383,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:387,1
    - Dst: static_cast<Kyberish_Constants::T>
      Src: /src/botan/src/tests/test_crystals.cpp:388,1
    - Dst: Botan::CRYSTALS::pack<6>
      Src: /src/botan/src/tests/test_crystals.cpp:393,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_crystals.cpp:394,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:398,1
    - Dst: static_cast<Kyberish_Constants::T>
      Src: /src/botan/src/tests/test_crystals.cpp:399,1
    - Dst: Botan::CRYSTALS::pack<255>
      Src: /src/botan/src/tests/test_crystals.cpp:404,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_crystals.cpp:405,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:408,1
    - Dst: Botan::CRYSTALS::pack<512>
      Src: /src/botan/src/tests/test_crystals.cpp:410,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_crystals.cpp:411,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:414,1
    - Dst: Botan::CRYSTALS::unpack<6>
      Src: /src/botan/src/tests/test_crystals.cpp:418,1
    - Dst: require
      Src: /src/botan/src/tests/test_crystals.cpp:419,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_crystals.cpp:419,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:420,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:421,1
    - Dst: Botan::CRYSTALS::unpack<255>
      Src: /src/botan/src/tests/test_crystals.cpp:426,1
    - Dst: require
      Src: /src/botan/src/tests/test_crystals.cpp:427,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_crystals.cpp:427,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:428,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:429,1
    - Dst: Botan::CRYSTALS::unpack<512>
      Src: /src/botan/src/tests/test_crystals.cpp:434,1
    - Dst: require
      Src: /src/botan/src/tests/test_crystals.cpp:435,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_crystals.cpp:435,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:436,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:437,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:441,1
    - Dst: Botan::CRYSTALS::unpack<6>
      Src: /src/botan/src/tests/test_crystals.cpp:446,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:447,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:448,1
    - Dst: Botan::CRYSTALS::unpack<255>
      Src: /src/botan/src/tests/test_crystals.cpp:453,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:454,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:455,1
    - Dst: Botan::CRYSTALS::unpack<512>
      Src: /src/botan/src/tests/test_crystals.cpp:460,1
    - Dst: Kyberish_Poly::size
      Src: /src/botan/src/tests/test_crystals.cpp:461,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:462,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_crystals.cpp:465,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:469,1
    - Dst: Botan_Tests::Test::new_rng
      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::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:479,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:482,1
    - Dst: Botan_Tests::Test::new_rng
      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::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:490,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:493,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_crystals.cpp:497,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
    - Dst: Botan_Tests::random_encoding_roundtrips
      Src: /src/botan/src/tests/test_crystals.cpp:513,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 76
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 355
    functionDepth: 3
    functionLinenumber: 355
    functionLinenumberEnd: 516
    functionName: Botan_Tests::test_encoding
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Botan::CRYSTALS::pack<255>
    - Botan::hex_decode
    - Kyberish_Poly::size
    - test_eq
    - Botan::CRYSTALS::unpack<6>
    - Botan_Tests::CHECK
    - Botan_Tests::random_encoding_roundtrips
    - Botan::CRYSTALS::pack<6>
    - Botan::BufferSlicer::empty
    - require
    - Botan::CRYSTALS::unpack<512>
    - Botan::CRYSTALS::unpack<255>
    - static_cast<Kyberish_Constants::T>
    - BOTAN_UNUSED
    - Botan_Tests::Test::new_rng
    - test_is_eq
    - Botan::CRYSTALS::pack<512>
    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: 520
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 520
    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:526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 529
    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:540,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_crystals.cpp:543,1
    - Dst: Mocked_Bounded_XOF::next_byte
      Src: /src/botan/src/tests/test_crystals.cpp:543,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:546,1
    - Dst: test_is_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_is_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_is_eq
      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: test_throws
      Src: /src/botan/src/tests/test_crystals.cpp:552,1
    - Dst: Mocked_Bounded_XOF::next_byte
      Src: /src/botan/src/tests/test_crystals.cpp:552,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:555,1
    - Dst: test_is_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_is_eq
      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: test_throws
      Src: /src/botan/src/tests/test_crystals.cpp:565,1
    - Dst: Mocked_Bounded_XOF::next_byte
      Src: /src/botan/src/tests/test_crystals.cpp:565,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:568,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_crystals.cpp:570,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:573,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:574,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:575,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:576,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_crystals.cpp:577,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_crystals.cpp:580,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:586,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:587,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:588,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:589,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_crystals.cpp:590,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_crystals.cpp:591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 538
    functionDepth: 3
    functionLinenumber: 538
    functionLinenumberEnd: 594
    functionName: Botan_Tests::test_bounded_xof
    functionSourceFile: /src/botan/src/tests/test_crystals.cpp
    functionUses: 0
    functionsReached:
    - Mocked_Bounded_XOF::next_byte
    - Botan_Tests::CHECK
    - test_throws
    - test_is_eq
    - Botan::load_be
    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:
    - type
    - TLS_Exception
    - 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::move
    - std::make_shared<Botan::AutoSeeded_RNG>
    - std::enable_shared_from_this<Context>
    - std::make_shared<Botan::TLS::Session_Manager_Noop>
    - std::make_shared<PeerCallbacks>
    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:
    - expires_after
    - m_on_timeout
    - async_wait
    - lowest_layer
    - Timeout_Exception
    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:
    - std::move
    - BOTAN_ASSERT
    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:
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string
    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:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Result_Wrapper(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: '& 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
    - 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(const std::string& 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
    - 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:
    - Result_Wrapper::test_failure
    - test_success
    - message
    linkageType: ''
    returnType: void
    signature: void expect_ec(const std::string& msg, const error_code& expected,
      const error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Result_Wrapper::confirm
      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
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 206
    functionName: Result_Wrapper::confirm
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 1
    functionsReached:
    - Result_Wrapper::confirm
    linkageType: ''
    returnType: void
    signature: void confirm(const std::string& msg, bool condition)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Result_Wrapper::test_failure
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 208
    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(const std::string& msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: server_cert
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:233,1
    - Dst: server_key
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:233,1
    - Dst: reset_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:238,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: 239
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 239
    functionName: Server::Server
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - server_key
    - reset_timeout
    - server_cert
    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:243,1
    - Dst: open
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:246,1
    - Dst: protocol
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:246,1
    - Dst: set_option
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:249,1
    - Dst: net::socket_base::reuse_address
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:249,1
    - Dst: bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:252,1
    - Dst: Server::listen
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:255,1
    - Dst: expect_success
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:257,1
    - Dst: reset_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:259,1
    - Dst: async_accept
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:260,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:260,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 261
    functionName: Server::listen
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 1
    functionsReached:
    - Server::listen
    - async_accept
    - set_option
    - protocol
    - expect_success
    - bind
    - shared_from_this
    - std::bind
    - net::socket_base::reuse_address
    - reset_timeout
    - open
    - back
    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: 263
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 263
    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: 265
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 265
    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:268,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: 270
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 270
    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: 272
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 272
    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:277,1
    - Dst: create_stream
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:285,1
    - Dst: std::make_unique<ssl_stream>
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:285,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:285,1
    - Dst: create_stream
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:287,1
    - Dst: std::make_unique<ssl_stream>
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:287,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:287,1
    - Dst: ctx
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:287,1
    - Dst: callbacks
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:287,1
    - Dst: reset_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:290,1
    - Dst: stream
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:291,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:292,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ' ec'
    - socket
    argTypes:
    - error_code
    - tcp::socket
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 293
    functionName: Server::start_session
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - create_stream
    - std::make_unique<ssl_stream>
    - std::move
    - callbacks
    - expect_success
    - ctx
    - shared_from_this
    - std::bind
    - stream
    - reset_timeout
    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:297,1
    - Dst: expect_success
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:298,1
    - Dst: Server::handle_write
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 300
    functionName: Server::shutdown
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - expect_success
    - stream
    - 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:304,1
    - Dst: Server::handle_write
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:305,1
    - Dst: expect_ec
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:307,1
    - Dst: value
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:307,1
    - Dst: cancel_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 310
    functionName: Server::handle_handshake
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - expect_success
    - Server::handle_write
    - expect_ec
    - cancel_timeout
    - value
    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:313,1
    - Dst: reset_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:314,1
    - Dst: net::async_read
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:315,1
    - Dst: stream
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:315,1
    - Dst: buffer
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:316,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:317,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:317,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:318,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 319
    functionName: Server::handle_write
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 2
    functionsReached:
    - expect_success
    - buffer
    - shared_from_this
    - std::bind
    - stream
    - net::async_read
    - reset_timeout
    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:323,1
    - Dst: cancel_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:324,1
    - Dst: stream
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:329,1
    - Dst: expect_ec
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:330,1
    - Dst: reset_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:331,1
    - Dst: stream
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:332,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:332,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:332,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:334,1
    - Dst: message
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:334,1
    - Dst: cancel_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:335,1
    - Dst: expect_success
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:340,1
    - Dst: message
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:342,1
    - Dst: Server::shutdown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:344,1
    - Dst: message
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:348,1
    - Dst: reset_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:352,1
    - Dst: net::async_write
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:353,1
    - Dst: stream
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:354,1
    - Dst: buffer
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:354,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:354,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:354,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 321
    functionDepth: 2
    functionLinenumber: 321
    functionLinenumberEnd: 355
    functionName: Server::handle_read
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - Server::shutdown
    - expect_success
    - net::async_write
    - buffer
    - expect_ec
    - cancel_timeout
    - test_failure
    - message
    - shared_from_this
    - std::bind
    - stream
    - reset_timeout
    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:358,1
    - Dst: cancel_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 360
    functionName: Server::handle_shutdown
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - expect_success
    - cancel_timeout
    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: 379
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 379
    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:383,1
    - Dst: create_stream
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:384,1
    - Dst: std::make_unique<ssl_stream>
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:384,1
    - Dst: ctx
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:384,1
    - Dst: callbacks
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:384,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: 385
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 385
    functionName: Client::Client
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - create_stream
    - std::make_unique<ssl_stream>
    - callbacks
    - ctx
    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:392,1
    - Dst: stream
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 394
    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:405,1
    - Dst: std::make_shared<Server>
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:406,1
    - Dst: on_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:408,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:409,1
    - Dst: on_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:410,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:411,1
    - Dst: listen
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:413,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: 414
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 414
    functionName: TestBase::TestBase
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - listen
    - std::make_shared<Client>
    - test_failure
    - on_timeout
    - std::make_shared<Server>
    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: 416
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 416
    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: 418
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 418
    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: 419
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 419
    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: 420
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 420
    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: 421
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 421
    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: 423
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 423
    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:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 425
    functionName: TestBase::fail
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - test_failure
    linkageType: ''
    returnType: void
    signature: void fail(const std::string& msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:428,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:428,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:429,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 430
    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:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 434
    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: 436
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 436
    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: 438
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 438
    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: 440
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 440
    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:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 455
    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:458,1
    - Dst: Synchronous_Test::run_synchronous_client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:460,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:462,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:462,1
    - Dst: what
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:462,1
    - Dst: result
      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
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 469
    functionName: Synchronous_Test::run
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - std::thread
    - std::string
    - what
    - result
    - Synchronous_Test::run_synchronous_client
    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: 492
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 492
    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:499,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:501,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:501,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:501,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:502,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:504,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:507,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:509,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:510,1
    - Dst: Peer::buffer
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:511,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:511,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:511,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:512,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:512,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:513,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:515,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:516,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:517,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:518,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:518,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:519,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:519,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:520,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:521,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:521,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:523,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:527,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:528,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:528,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:528,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:528,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:529,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:530,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 494
    functionDepth: 2
    functionLinenumber: 494
    functionLinenumberEnd: 534
    functionName: Test_Conversation::run
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - std::string::size
    - Peer::buffer
    - client
    - teardown
    - std::string::c_str
    - shared_from_this
    - std::bind
    - result
    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:499,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:501,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:501,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:501,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:502,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:504,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:507,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:509,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:510,1
    - Dst: Peer::buffer
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:511,1
    - Dst: c_str
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:511,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:511,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:512,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:512,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:513,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:515,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:516,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:517,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:518,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:518,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:519,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:519,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:520,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:521,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:521,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:523,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:527,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:528,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:528,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:528,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:528,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:529,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:530,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 498
    functionDepth: 2
    functionLinenumber: 498
    functionLinenumberEnd: 533
    functionName: (*this)
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - Peer::buffer
    - client
    - teardown
    - size
    - shared_from_this
    - std::bind
    - result
    - c_str
    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: 543
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 543
    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:549,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:549,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:550,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:552,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:553,1
    - Dst: Server::handle_write
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:555,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:555,1
    - Dst: Peer::buffer
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:556,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:556,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:556,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:558,1
    - Dst: Server::expect_short_read
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:560,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:561,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:561,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:561,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:561,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:562,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:563,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:563,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: Server::expect_short_read
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:568,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:568,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:568,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:569,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: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 545
    functionDepth: 2
    functionLinenumber: 545
    functionLinenumberEnd: 573
    functionName: Test_Conversation_Sync::run_synchronous_client
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - std::string::size
    - Peer::buffer
    - client::handle_connect
    - client
    - teardown
    - Server::handle_write
    - std::string::c_str
    - Server::expect_short_read
    - std::bind
    - 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: 588
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 588
    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:593,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:595,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:595,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:595,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:596,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:598,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:601,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:603,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:608,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:608,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 612
    functionName: Test_Eager_Close::run
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - client
    - teardown
    - shared_from_this
    - std::bind
    - result
    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:593,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:595,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:595,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:595,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:596,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:598,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:601,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:603,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:608,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:608,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 611
    functionName: (*this)
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - client
    - teardown
    - shared_from_this
    - std::bind
    - result
    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: 621
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 621
    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:626,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:626,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:627,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:629,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:630,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:632,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:633,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:635,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:636,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:636,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 623
    functionDepth: 1
    functionLinenumber: 623
    functionLinenumberEnd: 639
    functionName: Test_Eager_Close_Sync::run_synchronous_client
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - teardown
    - result
    - client::handle_connect
    - client
    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: 653
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 653
    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:658,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:660,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:660,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:660,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:661,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:663,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:666,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:669,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:670,1
    - Dst: Peer::buffer
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:671,1
    - Dst: c_str
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:671,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:672,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:673,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:673,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:674,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:677,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:678,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:679,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:680,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:680,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:681,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:681,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:682,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:684,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:685,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:685,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 655
    functionDepth: 2
    functionLinenumber: 655
    functionLinenumberEnd: 689
    functionName: Test_Close_Without_Shutdown::run
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - Peer::buffer
    - client
    - teardown
    - size
    - shared_from_this
    - std::bind
    - result
    - c_str
    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:658,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:660,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:660,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:660,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:661,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:663,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:666,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:669,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:670,1
    - Dst: Peer::buffer
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:671,1
    - Dst: c_str
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:671,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:672,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:673,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:673,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:674,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:677,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:678,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:679,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:680,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:680,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:681,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:681,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:682,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:684,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:685,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:685,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 657
    functionDepth: 2
    functionLinenumber: 657
    functionLinenumberEnd: 688
    functionName: (*this)
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - Peer::buffer
    - client
    - teardown
    - size
    - shared_from_this
    - std::bind
    - result
    - c_str
    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: 698
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 698
    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:702,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:702,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:703,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:705,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:706,1
    - Dst: server
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:708,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:710,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:711,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:711,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 700
    functionDepth: 1
    functionLinenumber: 700
    functionLinenumberEnd: 714
    functionName: Test_Close_Without_Shutdown_Sync::run_synchronous_client
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - client::handle_connect
    - client
    - teardown
    - server
    - 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: 729
      start: 725
    functionDepth: 0
    functionLinenumber: 725
    functionLinenumberEnd: 729
    functionName: Test_No_Shutdown_Response::Test_No_Shutdown_Response
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 8
    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:734,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:736,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:736,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:736,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:737,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:739,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:742,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:745,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:747,1
    - Dst: Peer::buffer
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:748,1
    - Dst: c_str
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:748,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:749,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:750,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:750,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:751,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:754,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:755,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:755,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:755,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:755,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:756,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:757,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:757,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:760,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 731
    functionDepth: 2
    functionLinenumber: 731
    functionLinenumberEnd: 764
    functionName: Test_No_Shutdown_Response::run
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - Peer::buffer
    - client
    - teardown
    - size
    - shared_from_this
    - std::bind
    - result
    - c_str
    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:734,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:736,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:736,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:736,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:737,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:739,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:742,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:745,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:747,1
    - Dst: Peer::buffer
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:748,1
    - Dst: c_str
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:748,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:749,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:750,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:750,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:751,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:754,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:755,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:755,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:755,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:755,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:756,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:757,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:757,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:760,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 733
    functionDepth: 2
    functionLinenumber: 733
    functionLinenumberEnd: 763
    functionName: (*this)
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - Peer::buffer
    - client
    - teardown
    - size
    - shared_from_this
    - std::bind
    - result
    - c_str
    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: 773
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 773
    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:777,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:777,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:778,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:780,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:781,1
    - Dst: Server::handle_write
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:783,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:783,1
    - Dst: Peer::buffer
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:784,1
    - Dst: c_str
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:784,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:785,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:787,1
    - Dst: Server::expect_short_read
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:789,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:789,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:789,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:790,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:791,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:791,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:794,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 775
    functionDepth: 2
    functionLinenumber: 775
    functionLinenumberEnd: 797
    functionName: Test_No_Shutdown_Response_Sync::run_synchronous_client
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - Peer::buffer
    - client::handle_connect
    - client
    - teardown
    - Server::handle_write
    - size
    - Server::expect_short_read
    - result
    - c_str
    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:807,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: 808
      start: 802
    functionDepth: 0
    functionLinenumber: 802
    functionLinenumberEnd: 808
    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:826,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: 828
      start: 821
    functionDepth: 0
    functionLinenumber: 821
    functionLinenumberEnd: 828
    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:833,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:835,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:835,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:835,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:836,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:838,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:841,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:843,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 830
    functionDepth: 0
    functionLinenumber: 830
    functionLinenumberEnd: 846
    functionName: Test_Handshake_Failure::run
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - client
    - teardown
    - shared_from_this
    - std::bind
    - result
    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:833,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:835,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:835,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:835,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:836,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:838,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:841,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:843,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 832
    functionDepth: 0
    functionLinenumber: 832
    functionLinenumberEnd: 845
    functionName: (*this)
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - client
    - teardown
    - shared_from_this
    - std::bind
    - result
    linkageType: ''
    returnType: reenter
    signature: reenter (*this)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: server
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:856,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: 858
      start: 851
    functionDepth: 0
    functionLinenumber: 851
    functionLinenumberEnd: 858
    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:862,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:862,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:863,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:865,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:866,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:868,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 860
    functionDepth: 1
    functionLinenumber: 860
    functionLinenumberEnd: 870
    functionName: Test_Handshake_Failure_Sync::run_synchronous_client
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - teardown
    - result
    - client::handle_connect
    - client
    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:876,1
    - Dst: std::make_shared<Botan::TLS::Text_Policy>
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:877,1
    - Dst: std::make_shared<Botan::TLS::Text_Policy>
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:878,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: 878
      start: 875
    functionDepth: 0
    functionLinenumber: 875
    functionLinenumberEnd: 878
    functionName: SystemConfiguration::SystemConfiguration
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<Botan::TLS::Text_Policy>
    - std::move
    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:884,1
    - Dst: auto::run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:886,1
    - Dst: net::io_context::run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:890,1
    - Dst: auto::fail
      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:896,1
    - Dst: what
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:896,1
    - Dst: auto::finishAsynchronousWork
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:900,1
    - Dst: auto::extend_results
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:901,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 881
    functionDepth: 1
    functionLinenumber: 881
    functionLinenumberEnd: 902
    functionName: SystemConfiguration::run
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - auto::run
    - std::make_shared<TestT>
    - auto::extend_results
    - auto::fail
    - net::io_context::run
    - what
    - auto::finishAsynchronousWork
    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:913,1
    - Dst: SystemConfiguration
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:915,1
    - Dst: SystemConfiguration
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:917,1
    - Dst: SystemConfiguration
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:920,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:929,1
    - Dst: get_configurations
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:932,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:934,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:935,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:936,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:937,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:938,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:939,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:940,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:941,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:942,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:943,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:944,1
    - Dst: BOTAN_REGISTER_TEST
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:951,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 911
    functionDepth: 1
    functionLinenumber: 911
    functionLinenumberEnd: 953
    functionName: get_configurations
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 1
    functionsReached:
    - run
    - get_configurations
    - SystemConfiguration
    - BOTAN_REGISTER_TEST
    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:
    - type
    - TLS_Exception
    - 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::move
    - std::make_shared<Botan::AutoSeeded_RNG>
    - std::enable_shared_from_this<Context>
    - std::make_shared<Botan::TLS::Session_Manager_Noop>
    - std::make_shared<PeerCallbacks>
    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:
    - expires_after
    - m_on_timeout
    - async_wait
    - lowest_layer
    - Timeout_Exception
    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:
    - std::move
    - BOTAN_ASSERT
    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:
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string
    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:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Result_Wrapper(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: '& 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
    - 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(const std::string& 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
    - 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:
    - Result_Wrapper::test_failure
    - test_success
    - message
    linkageType: ''
    returnType: void
    signature: void expect_ec(const std::string& msg, const error_code& expected,
      const error_code& ec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Result_Wrapper::confirm
      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
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 206
    functionName: Result_Wrapper::confirm
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 2
    functionsReached:
    - Result_Wrapper::confirm
    linkageType: ''
    returnType: void
    signature: void confirm(const std::string& msg, bool condition)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Result_Wrapper::test_failure
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 208
    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(const std::string& msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: server_cert
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:233,1
    - Dst: server_key
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:233,1
    - Dst: reset_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:238,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: 239
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 239
    functionName: Server::Server
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - server_key
    - reset_timeout
    - server_cert
    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:243,1
    - Dst: open
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:246,1
    - Dst: protocol
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:246,1
    - Dst: set_option
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:249,1
    - Dst: net::socket_base::reuse_address
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:249,1
    - Dst: bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:252,1
    - Dst: Server::listen
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:255,1
    - Dst: expect_success
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:257,1
    - Dst: reset_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:259,1
    - Dst: async_accept
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:260,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:260,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 261
    functionName: Server::listen
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 2
    functionsReached:
    - Server::listen
    - async_accept
    - set_option
    - protocol
    - expect_success
    - bind
    - shared_from_this
    - std::bind
    - net::socket_base::reuse_address
    - reset_timeout
    - open
    - back
    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: 263
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 263
    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: 265
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 265
    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:268,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: 270
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 270
    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: 272
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 272
    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:277,1
    - Dst: create_stream
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:285,1
    - Dst: std::make_unique<ssl_stream>
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:285,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:285,1
    - Dst: create_stream
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:287,1
    - Dst: std::make_unique<ssl_stream>
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:287,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:287,1
    - Dst: ctx
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:287,1
    - Dst: callbacks
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:287,1
    - Dst: reset_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:290,1
    - Dst: stream
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:291,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:292,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ' ec'
    - socket
    argTypes:
    - error_code
    - tcp::socket
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 293
    functionName: Server::start_session
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - create_stream
    - std::make_unique<ssl_stream>
    - std::move
    - callbacks
    - expect_success
    - ctx
    - shared_from_this
    - std::bind
    - stream
    - reset_timeout
    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:297,1
    - Dst: expect_success
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:298,1
    - Dst: Server::handle_write
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 295
    functionDepth: 1
    functionLinenumber: 295
    functionLinenumberEnd: 300
    functionName: Server::shutdown
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 1
    functionsReached:
    - expect_success
    - stream
    - 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:304,1
    - Dst: Server::handle_write
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:305,1
    - Dst: expect_ec
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:307,1
    - Dst: value
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:307,1
    - Dst: cancel_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 310
    functionName: Server::handle_handshake
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - expect_success
    - Server::handle_write
    - expect_ec
    - cancel_timeout
    - value
    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:313,1
    - Dst: reset_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:314,1
    - Dst: net::async_read
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:315,1
    - Dst: stream
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:315,1
    - Dst: buffer
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:316,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:317,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:317,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:318,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 319
    functionName: Server::handle_write
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 6
    functionsReached:
    - expect_success
    - buffer
    - shared_from_this
    - std::bind
    - stream
    - net::async_read
    - reset_timeout
    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:323,1
    - Dst: cancel_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:324,1
    - Dst: stream
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:329,1
    - Dst: expect_ec
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:330,1
    - Dst: reset_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:331,1
    - Dst: stream
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:332,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:332,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:332,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:334,1
    - Dst: message
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:334,1
    - Dst: cancel_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:335,1
    - Dst: expect_success
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:340,1
    - Dst: message
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:342,1
    - Dst: Server::shutdown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:344,1
    - Dst: message
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:348,1
    - Dst: reset_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:352,1
    - Dst: net::async_write
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:353,1
    - Dst: stream
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:354,1
    - Dst: buffer
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:354,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:354,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:354,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 321
    functionDepth: 2
    functionLinenumber: 321
    functionLinenumberEnd: 355
    functionName: Server::handle_read
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - Server::shutdown
    - expect_success
    - net::async_write
    - buffer
    - expect_ec
    - cancel_timeout
    - test_failure
    - message
    - shared_from_this
    - std::bind
    - stream
    - reset_timeout
    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:358,1
    - Dst: cancel_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 360
    functionName: Server::handle_shutdown
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - expect_success
    - cancel_timeout
    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: 379
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 379
    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:383,1
    - Dst: create_stream
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:384,1
    - Dst: std::make_unique<ssl_stream>
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:384,1
    - Dst: ctx
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:384,1
    - Dst: callbacks
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:384,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: 385
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 385
    functionName: Client::Client
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - create_stream
    - std::make_unique<ssl_stream>
    - callbacks
    - ctx
    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:392,1
    - Dst: stream
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 394
    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:405,1
    - Dst: std::make_shared<Server>
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:406,1
    - Dst: on_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:408,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:409,1
    - Dst: on_timeout
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:410,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:411,1
    - Dst: listen
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:413,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: 414
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 414
    functionName: TestBase::TestBase
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - listen
    - std::make_shared<Client>
    - test_failure
    - on_timeout
    - std::make_shared<Server>
    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: 416
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 416
    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: 418
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 418
    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: 419
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 419
    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: 420
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 420
    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: 421
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 421
    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: 423
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 423
    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:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 425
    functionName: TestBase::fail
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - test_failure
    linkageType: ''
    returnType: void
    signature: void fail(const std::string& msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:428,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:428,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:429,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 430
    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:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 434
    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: 436
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 436
    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: 438
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 438
    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: 440
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 440
    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:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 455
    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:458,1
    - Dst: Synchronous_Test::run_synchronous_client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:460,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:462,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:462,1
    - Dst: what
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:462,1
    - Dst: result
      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
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 469
    functionName: Synchronous_Test::run
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - std::thread
    - std::string
    - what
    - result
    - Synchronous_Test::run_synchronous_client
    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: 492
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 492
    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:499,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:501,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:501,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:501,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:502,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:504,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:507,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:509,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:510,1
    - Dst: Peer::buffer
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:511,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:511,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:511,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:512,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:512,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:513,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:515,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:516,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:517,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:518,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:518,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:519,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:519,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:520,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:521,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:521,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:523,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:527,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:528,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:528,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:528,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:528,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:529,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:530,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 494
    functionDepth: 2
    functionLinenumber: 494
    functionLinenumberEnd: 534
    functionName: Test_Conversation::run
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - std::string::size
    - Peer::buffer
    - client
    - teardown
    - std::string::c_str
    - shared_from_this
    - std::bind
    - result
    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:499,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:501,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:501,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:501,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:502,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:504,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:507,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:509,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:510,1
    - Dst: Peer::buffer
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:511,1
    - Dst: c_str
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:511,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:511,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:512,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:512,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:513,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:515,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:516,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:517,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:518,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:518,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:519,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:519,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:520,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:521,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:521,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:523,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:527,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:528,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:528,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:528,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:528,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:529,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:530,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 498
    functionDepth: 2
    functionLinenumber: 498
    functionLinenumberEnd: 533
    functionName: (*this)
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - Peer::buffer
    - client
    - teardown
    - size
    - shared_from_this
    - std::bind
    - result
    - c_str
    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: 543
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 543
    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:549,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:549,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:550,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:552,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:553,1
    - Dst: Server::handle_write
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:555,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:555,1
    - Dst: Peer::buffer
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:556,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:556,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:556,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:558,1
    - Dst: Server::expect_short_read
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:560,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:561,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:561,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:561,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:561,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:562,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:563,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:563,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: Server::expect_short_read
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:568,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:568,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:568,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:569,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: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 545
    functionDepth: 2
    functionLinenumber: 545
    functionLinenumberEnd: 573
    functionName: Test_Conversation_Sync::run_synchronous_client
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - std::string::size
    - Peer::buffer
    - client::handle_connect
    - client
    - teardown
    - Server::handle_write
    - std::string::c_str
    - Server::expect_short_read
    - std::bind
    - 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: 588
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 588
    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:593,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:595,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:595,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:595,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:596,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:598,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:601,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:603,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:608,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:608,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 590
    functionDepth: 0
    functionLinenumber: 590
    functionLinenumberEnd: 612
    functionName: Test_Eager_Close::run
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - client
    - teardown
    - shared_from_this
    - std::bind
    - result
    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:593,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:595,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:595,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:595,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:596,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:598,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:601,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:603,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:608,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:608,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 611
    functionName: (*this)
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - client
    - teardown
    - shared_from_this
    - std::bind
    - result
    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: 621
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 621
    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:626,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:626,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:627,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:629,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:630,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:632,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:633,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:635,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:636,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:636,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 623
    functionDepth: 1
    functionLinenumber: 623
    functionLinenumberEnd: 639
    functionName: Test_Eager_Close_Sync::run_synchronous_client
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - teardown
    - result
    - client::handle_connect
    - client
    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: 653
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 653
    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:658,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:660,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:660,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:660,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:661,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:663,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:666,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:669,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:670,1
    - Dst: Peer::buffer
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:671,1
    - Dst: c_str
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:671,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:672,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:673,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:673,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:674,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:677,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:678,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:679,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:680,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:680,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:681,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:681,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:682,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:684,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:685,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:685,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 655
    functionDepth: 2
    functionLinenumber: 655
    functionLinenumberEnd: 689
    functionName: Test_Close_Without_Shutdown::run
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - Peer::buffer
    - client
    - teardown
    - size
    - shared_from_this
    - std::bind
    - result
    - c_str
    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:658,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:660,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:660,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:660,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:661,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:663,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:666,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:669,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:670,1
    - Dst: Peer::buffer
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:671,1
    - Dst: c_str
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:671,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:672,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:673,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:673,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:674,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:677,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:678,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:679,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:680,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:680,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:681,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:681,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:682,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:684,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:685,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:685,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 657
    functionDepth: 2
    functionLinenumber: 657
    functionLinenumberEnd: 688
    functionName: (*this)
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - Peer::buffer
    - client
    - teardown
    - size
    - shared_from_this
    - std::bind
    - result
    - c_str
    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: 698
      start: 694
    functionDepth: 0
    functionLinenumber: 694
    functionLinenumberEnd: 698
    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:702,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:702,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:703,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:705,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:706,1
    - Dst: server
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:708,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:710,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:711,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:711,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 700
    functionDepth: 1
    functionLinenumber: 700
    functionLinenumberEnd: 714
    functionName: Test_Close_Without_Shutdown_Sync::run_synchronous_client
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - client::handle_connect
    - client
    - teardown
    - server
    - 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: 729
      start: 725
    functionDepth: 0
    functionLinenumber: 725
    functionLinenumberEnd: 729
    functionName: Test_No_Shutdown_Response::Test_No_Shutdown_Response
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 8
    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:734,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:736,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:736,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:736,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:737,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:739,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:742,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:745,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:747,1
    - Dst: Peer::buffer
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:748,1
    - Dst: c_str
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:748,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:749,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:750,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:750,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:751,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:754,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:755,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:755,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:755,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:755,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:756,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:757,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:757,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:760,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 731
    functionDepth: 2
    functionLinenumber: 731
    functionLinenumberEnd: 764
    functionName: Test_No_Shutdown_Response::run
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - Peer::buffer
    - client
    - teardown
    - size
    - shared_from_this
    - std::bind
    - result
    - c_str
    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:734,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:736,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:736,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:736,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:737,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:739,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:742,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:745,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:747,1
    - Dst: Peer::buffer
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:748,1
    - Dst: c_str
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:748,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:749,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:750,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:750,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:751,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:754,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:755,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:755,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:755,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:755,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:756,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:757,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:757,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:760,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 733
    functionDepth: 2
    functionLinenumber: 733
    functionLinenumberEnd: 763
    functionName: (*this)
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - Peer::buffer
    - client
    - teardown
    - size
    - shared_from_this
    - std::bind
    - result
    - c_str
    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: 773
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 773
    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:777,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:777,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:778,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:780,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:781,1
    - Dst: Server::handle_write
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:783,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:783,1
    - Dst: Peer::buffer
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:784,1
    - Dst: c_str
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:784,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:785,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:787,1
    - Dst: Server::expect_short_read
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:789,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:789,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:789,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:790,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:791,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:791,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:794,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 775
    functionDepth: 2
    functionLinenumber: 775
    functionLinenumberEnd: 797
    functionName: Test_No_Shutdown_Response_Sync::run_synchronous_client
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - Peer::buffer
    - client::handle_connect
    - client
    - teardown
    - Server::handle_write
    - size
    - Server::expect_short_read
    - result
    - c_str
    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:807,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: 808
      start: 802
    functionDepth: 0
    functionLinenumber: 802
    functionLinenumberEnd: 808
    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:826,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: 828
      start: 821
    functionDepth: 0
    functionLinenumber: 821
    functionLinenumberEnd: 828
    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:833,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:835,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:835,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:835,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:836,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:838,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:841,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:843,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - ' ec'
    argTypes:
    - error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 846
      start: 830
    functionDepth: 0
    functionLinenumber: 830
    functionLinenumberEnd: 846
    functionName: Test_Handshake_Failure::run
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - client
    - teardown
    - shared_from_this
    - std::bind
    - result
    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:833,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:835,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:835,1
    - Dst: shared_from_this
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:835,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:836,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:838,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:841,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:843,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 832
    functionDepth: 0
    functionLinenumber: 832
    functionLinenumberEnd: 845
    functionName: (*this)
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - client
    - teardown
    - shared_from_this
    - std::bind
    - result
    linkageType: ''
    returnType: reenter
    signature: reenter (*this)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: server
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:856,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: 858
      start: 851
    functionDepth: 0
    functionLinenumber: 851
    functionLinenumberEnd: 858
    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:862,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:862,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:863,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:865,1
    - Dst: result
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:866,1
    - Dst: client
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:868,1
    - Dst: teardown
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:869,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 860
    functionDepth: 1
    functionLinenumber: 860
    functionLinenumberEnd: 870
    functionName: Test_Handshake_Failure_Sync::run_synchronous_client
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - teardown
    - result
    - client::handle_connect
    - client
    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:876,1
    - Dst: std::make_shared<Botan::TLS::Text_Policy>
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:877,1
    - Dst: std::make_shared<Botan::TLS::Text_Policy>
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:878,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: 878
      start: 875
    functionDepth: 0
    functionLinenumber: 875
    functionLinenumberEnd: 878
    functionName: SystemConfiguration::SystemConfiguration
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<Botan::TLS::Text_Policy>
    - std::move
    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:884,1
    - Dst: auto::run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:886,1
    - Dst: net::io_context::run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:890,1
    - Dst: auto::fail
      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:896,1
    - Dst: what
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:896,1
    - Dst: auto::finishAsynchronousWork
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:900,1
    - Dst: auto::extend_results
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:901,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 881
    functionDepth: 1
    functionLinenumber: 881
    functionLinenumberEnd: 902
    functionName: SystemConfiguration::run
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 0
    functionsReached:
    - auto::run
    - std::make_shared<TestT>
    - auto::extend_results
    - auto::fail
    - net::io_context::run
    - what
    - auto::finishAsynchronousWork
    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:913,1
    - Dst: SystemConfiguration
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:915,1
    - Dst: SystemConfiguration
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:917,1
    - Dst: SystemConfiguration
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:920,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:929,1
    - Dst: get_configurations
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:932,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:934,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:935,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:936,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:937,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:938,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:939,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:940,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:941,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:942,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:943,1
    - Dst: run
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:944,1
    - Dst: BOTAN_REGISTER_TEST
      Src: /src/botan/src/tests/test_tls_stream_integration.cpp:951,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 911
    functionDepth: 1
    functionLinenumber: 911
    functionLinenumberEnd: 953
    functionName: get_configurations
    functionSourceFile: /src/botan/src/tests/test_tls_stream_integration.cpp
    functionUses: 2
    functionsReached:
    - run
    - get_configurations
    - SystemConfiguration
    - BOTAN_REGISTER_TEST
    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:
    - std::make_unique<Botan::ML_DSA_PublicKey>
    - get_req_bin
    - get_req_str
    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:
    - std::make_unique<Botan::ML_DSA_PublicKey>
    - get_req_bin
    - get_req_str
    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:
    - std::make_unique<Botan::ML_DSA_PublicKey>
    - get_req_bin
    - get_req_str
    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:
    - std::make_unique<Botan::ML_DSA_PublicKey>
    - get_req_bin
    - get_req_str
    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: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    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:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 39
    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:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 41
    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:47,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_frodokem.cpp:47,1
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/tests/test_frodokem.cpp:49,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_frodokem.cpp:50,1
    - Dst: auto::output
      Src: /src/botan/src/tests/test_frodokem.cpp:51,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: 52
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: Botan_Tests::Frodo_KAT_Tests::map_value
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - auto::output
    - Botan::XOF::create_or_throw
    - std::span<const uint8_t>::begin
    - 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:56,1
    - Dst: Botan::FrodoKEMConstants::len_sec_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:56,1
    - Dst: Botan::FrodoKEMConstants::len_se_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:56,1
    - Dst: Botan::FrodoKEMConstants::len_a_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' mode'
    - ' rng'
    argTypes:
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: Botan_Tests::Frodo_KAT_Tests::rng_for_keygen
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached:
    - Botan::FrodoKEMConstants::len_sec_bytes
    - Botan::FrodoKEMConstants::len_se_bytes
    - Fixed_Output_RNG
    - Botan::FrodoKEMConstants::len_a_bytes
    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:61,1
    - Dst: Botan::FrodoKEMConstants::len_sec_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:61,1
    - Dst: Botan::FrodoKEMConstants::len_salt_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' mode'
    - ' rng'
    argTypes:
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: Botan_Tests::Frodo_KAT_Tests::rng_for_encapsulation
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached:
    - Botan::FrodoKEMConstants::len_sec_bytes
    - Fixed_Output_RNG
    - Botan::FrodoKEMConstants::len_salt_bytes
    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:66,1
    - Dst: SHAKE_XOF
      Src: /src/botan/src/tests/test_frodokem.cpp:85,1
    - Dst: raw_private_key_bits
      Src: /src/botan/src/tests/test_frodokem.cpp:86,1
    - Dst: std::span<const uint8_t>
      Src: /src/botan/src/tests/test_frodokem.cpp:87,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_frodokem.cpp:87,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:87,1
    - Dst: update
      Src: /src/botan/src/tests/test_frodokem.cpp:88,1
    - Dst: update
      Src: /src/botan/src/tests/test_frodokem.cpp:89,1
    - Dst: output
      Src: /src/botan/src/tests/test_frodokem.cpp:90,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:90,1
    - Dst: Botan::FrodoKEMMode::is_available
      Src: /src/botan/src/tests/test_frodokem.cpp:96,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_frodokem.cpp:100,1
    - Dst: Botan::FrodoKEMMode::to_string
      Src: /src/botan/src/tests/test_frodokem.cpp:100,1
    - Dst: Botan::FrodoKEM_PrivateKey::public_key_bits
      Src: /src/botan/src/tests/test_frodokem.cpp:103,1
    - Dst: Botan::PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/tests/test_frodokem.cpp:107,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:109,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:109,1
    - Dst: Botan::PK_KEM_Encryptor::shared_key_length
      Src: /src/botan/src/tests/test_frodokem.cpp:109,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:110,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:110,1
    - Dst: Botan::PK_KEM_Encryptor::encapsulated_key_length
      Src: /src/botan/src/tests/test_frodokem.cpp:110,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_frodokem.cpp:113,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:113,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:115,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:115,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:116,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_frodokem.cpp:116,1
    - Dst: Botan::PK_KEM_Decryptor::shared_key_length
      Src: /src/botan/src/tests/test_frodokem.cpp:116,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_frodokem.cpp:123,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:123,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:124,1
    - Dst: get_decryption_error_value
      Src: /src/botan/src/tests/test_frodokem.cpp:126,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:126,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_frodokem.cpp:129,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:129,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_frodokem.cpp:130,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:131,1
    - Dst: get_decryption_error_value
      Src: /src/botan/src/tests/test_frodokem.cpp:132,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_frodokem.cpp:135,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:137,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_frodokem.cpp:138,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_frodokem.cpp:139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 144
    functionName: Botan_Tests::test_frodo_roundtrips
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan::FrodoKEMMode::to_string
    - test_throws
    - SHAKE_XOF
    - auto::shared_key
    - auto::size
    - auto::pop_back
    - Botan::PK_KEM_Decryptor::decrypt
    - std::span<const uint8_t>
    - Botan::PK_KEM_Encryptor::encapsulated_key_length
    - std::vector::emplace_back
    - get_decryption_error_value
    - Botan::PK_KEM_Encryptor::encrypt
    - Botan::PK_KEM_Encryptor::shared_key_length
    - Botan_Tests::Test::new_rng
    - output
    - len_sec_bytes
    - auto::data
    - Botan::PK_KEM_Decryptor::shared_key_length
    - Botan::FrodoKEMMode::is_available
    - Botan::FrodoKEM_PrivateKey::public_key_bits
    - update
    - raw_private_key_bits
    - auto::encapsulated_shared_key
    - Botan_Tests::Test::mutate_vec
    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: 159
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 159
    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: 156
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 156
    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:164,1
    - Dst: Botan::FrodoKEMMode::FrodoKEMMode
      Src: /src/botan/src/tests/test_frodokem.cpp:164,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: 165
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 165
    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: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    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:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 39
    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:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 41
    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:47,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_frodokem.cpp:47,1
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/tests/test_frodokem.cpp:49,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_frodokem.cpp:50,1
    - Dst: auto::output
      Src: /src/botan/src/tests/test_frodokem.cpp:51,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: 52
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: Botan_Tests::Frodo_KAT_Tests::map_value
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - auto::output
    - Botan::XOF::create_or_throw
    - std::span<const uint8_t>::begin
    - 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:56,1
    - Dst: Botan::FrodoKEMConstants::len_sec_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:56,1
    - Dst: Botan::FrodoKEMConstants::len_se_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:56,1
    - Dst: Botan::FrodoKEMConstants::len_a_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' mode'
    - ' rng'
    argTypes:
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: Botan_Tests::Frodo_KAT_Tests::rng_for_keygen
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached:
    - Botan::FrodoKEMConstants::len_sec_bytes
    - Botan::FrodoKEMConstants::len_se_bytes
    - Fixed_Output_RNG
    - Botan::FrodoKEMConstants::len_a_bytes
    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:61,1
    - Dst: Botan::FrodoKEMConstants::len_sec_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:61,1
    - Dst: Botan::FrodoKEMConstants::len_salt_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' mode'
    - ' rng'
    argTypes:
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: Botan_Tests::Frodo_KAT_Tests::rng_for_encapsulation
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached:
    - Botan::FrodoKEMConstants::len_sec_bytes
    - Fixed_Output_RNG
    - Botan::FrodoKEMConstants::len_salt_bytes
    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:66,1
    - Dst: SHAKE_XOF
      Src: /src/botan/src/tests/test_frodokem.cpp:85,1
    - Dst: raw_private_key_bits
      Src: /src/botan/src/tests/test_frodokem.cpp:86,1
    - Dst: std::span<const uint8_t>
      Src: /src/botan/src/tests/test_frodokem.cpp:87,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_frodokem.cpp:87,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:87,1
    - Dst: update
      Src: /src/botan/src/tests/test_frodokem.cpp:88,1
    - Dst: update
      Src: /src/botan/src/tests/test_frodokem.cpp:89,1
    - Dst: output
      Src: /src/botan/src/tests/test_frodokem.cpp:90,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:90,1
    - Dst: Botan::FrodoKEMMode::is_available
      Src: /src/botan/src/tests/test_frodokem.cpp:96,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_frodokem.cpp:100,1
    - Dst: Botan::FrodoKEMMode::to_string
      Src: /src/botan/src/tests/test_frodokem.cpp:100,1
    - Dst: Botan::FrodoKEM_PrivateKey::public_key_bits
      Src: /src/botan/src/tests/test_frodokem.cpp:103,1
    - Dst: Botan::PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/tests/test_frodokem.cpp:107,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:109,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:109,1
    - Dst: Botan::PK_KEM_Encryptor::shared_key_length
      Src: /src/botan/src/tests/test_frodokem.cpp:109,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:110,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:110,1
    - Dst: Botan::PK_KEM_Encryptor::encapsulated_key_length
      Src: /src/botan/src/tests/test_frodokem.cpp:110,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_frodokem.cpp:113,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:113,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:115,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:115,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:116,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_frodokem.cpp:116,1
    - Dst: Botan::PK_KEM_Decryptor::shared_key_length
      Src: /src/botan/src/tests/test_frodokem.cpp:116,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_frodokem.cpp:123,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:123,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:124,1
    - Dst: get_decryption_error_value
      Src: /src/botan/src/tests/test_frodokem.cpp:126,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:126,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_frodokem.cpp:129,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:129,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_frodokem.cpp:130,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:131,1
    - Dst: get_decryption_error_value
      Src: /src/botan/src/tests/test_frodokem.cpp:132,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_frodokem.cpp:135,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:137,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_frodokem.cpp:138,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_frodokem.cpp:139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 144
    functionName: Botan_Tests::test_frodo_roundtrips
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan::FrodoKEMMode::to_string
    - test_throws
    - SHAKE_XOF
    - auto::shared_key
    - auto::size
    - auto::pop_back
    - Botan::PK_KEM_Decryptor::decrypt
    - std::span<const uint8_t>
    - Botan::PK_KEM_Encryptor::encapsulated_key_length
    - std::vector::emplace_back
    - get_decryption_error_value
    - Botan::PK_KEM_Encryptor::encrypt
    - Botan::PK_KEM_Encryptor::shared_key_length
    - Botan_Tests::Test::new_rng
    - output
    - len_sec_bytes
    - auto::data
    - Botan::PK_KEM_Decryptor::shared_key_length
    - Botan::FrodoKEMMode::is_available
    - Botan::FrodoKEM_PrivateKey::public_key_bits
    - update
    - raw_private_key_bits
    - auto::encapsulated_shared_key
    - Botan_Tests::Test::mutate_vec
    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: 159
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 159
    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: 156
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 156
    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:164,1
    - Dst: Botan::FrodoKEMMode::FrodoKEMMode
      Src: /src/botan/src/tests/test_frodokem.cpp:164,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: 165
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 165
    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: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    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:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 39
    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:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 41
    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:47,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_frodokem.cpp:47,1
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/tests/test_frodokem.cpp:49,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_frodokem.cpp:50,1
    - Dst: auto::output
      Src: /src/botan/src/tests/test_frodokem.cpp:51,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: 52
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: Botan_Tests::Frodo_KAT_Tests::map_value
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - auto::output
    - Botan::XOF::create_or_throw
    - std::span<const uint8_t>::begin
    - 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:56,1
    - Dst: Botan::FrodoKEMConstants::len_sec_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:56,1
    - Dst: Botan::FrodoKEMConstants::len_se_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:56,1
    - Dst: Botan::FrodoKEMConstants::len_a_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' mode'
    - ' rng'
    argTypes:
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: Botan_Tests::Frodo_KAT_Tests::rng_for_keygen
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached:
    - Botan::FrodoKEMConstants::len_sec_bytes
    - Botan::FrodoKEMConstants::len_se_bytes
    - Fixed_Output_RNG
    - Botan::FrodoKEMConstants::len_a_bytes
    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:61,1
    - Dst: Botan::FrodoKEMConstants::len_sec_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:61,1
    - Dst: Botan::FrodoKEMConstants::len_salt_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' mode'
    - ' rng'
    argTypes:
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: Botan_Tests::Frodo_KAT_Tests::rng_for_encapsulation
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached:
    - Botan::FrodoKEMConstants::len_sec_bytes
    - Fixed_Output_RNG
    - Botan::FrodoKEMConstants::len_salt_bytes
    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:66,1
    - Dst: SHAKE_XOF
      Src: /src/botan/src/tests/test_frodokem.cpp:85,1
    - Dst: raw_private_key_bits
      Src: /src/botan/src/tests/test_frodokem.cpp:86,1
    - Dst: std::span<const uint8_t>
      Src: /src/botan/src/tests/test_frodokem.cpp:87,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_frodokem.cpp:87,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:87,1
    - Dst: update
      Src: /src/botan/src/tests/test_frodokem.cpp:88,1
    - Dst: update
      Src: /src/botan/src/tests/test_frodokem.cpp:89,1
    - Dst: output
      Src: /src/botan/src/tests/test_frodokem.cpp:90,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:90,1
    - Dst: Botan::FrodoKEMMode::is_available
      Src: /src/botan/src/tests/test_frodokem.cpp:96,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_frodokem.cpp:100,1
    - Dst: Botan::FrodoKEMMode::to_string
      Src: /src/botan/src/tests/test_frodokem.cpp:100,1
    - Dst: Botan::FrodoKEM_PrivateKey::public_key_bits
      Src: /src/botan/src/tests/test_frodokem.cpp:103,1
    - Dst: Botan::PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/tests/test_frodokem.cpp:107,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:109,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:109,1
    - Dst: Botan::PK_KEM_Encryptor::shared_key_length
      Src: /src/botan/src/tests/test_frodokem.cpp:109,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:110,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:110,1
    - Dst: Botan::PK_KEM_Encryptor::encapsulated_key_length
      Src: /src/botan/src/tests/test_frodokem.cpp:110,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_frodokem.cpp:113,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:113,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:115,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:115,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:116,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_frodokem.cpp:116,1
    - Dst: Botan::PK_KEM_Decryptor::shared_key_length
      Src: /src/botan/src/tests/test_frodokem.cpp:116,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_frodokem.cpp:123,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:123,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:124,1
    - Dst: get_decryption_error_value
      Src: /src/botan/src/tests/test_frodokem.cpp:126,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:126,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_frodokem.cpp:129,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:129,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_frodokem.cpp:130,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:131,1
    - Dst: get_decryption_error_value
      Src: /src/botan/src/tests/test_frodokem.cpp:132,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_frodokem.cpp:135,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:137,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_frodokem.cpp:138,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_frodokem.cpp:139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 144
    functionName: Botan_Tests::test_frodo_roundtrips
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan::FrodoKEMMode::to_string
    - test_throws
    - SHAKE_XOF
    - auto::shared_key
    - auto::size
    - auto::pop_back
    - Botan::PK_KEM_Decryptor::decrypt
    - std::span<const uint8_t>
    - Botan::PK_KEM_Encryptor::encapsulated_key_length
    - std::vector::emplace_back
    - get_decryption_error_value
    - Botan::PK_KEM_Encryptor::encrypt
    - Botan::PK_KEM_Encryptor::shared_key_length
    - Botan_Tests::Test::new_rng
    - output
    - len_sec_bytes
    - auto::data
    - Botan::PK_KEM_Decryptor::shared_key_length
    - Botan::FrodoKEMMode::is_available
    - Botan::FrodoKEM_PrivateKey::public_key_bits
    - update
    - raw_private_key_bits
    - auto::encapsulated_shared_key
    - Botan_Tests::Test::mutate_vec
    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: 159
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 159
    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: 156
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 156
    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:164,1
    - Dst: Botan::FrodoKEMMode::FrodoKEMMode
      Src: /src/botan/src/tests/test_frodokem.cpp:164,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: 165
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 165
    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: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    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:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 39
    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:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 41
    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:47,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_frodokem.cpp:47,1
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/tests/test_frodokem.cpp:49,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_frodokem.cpp:50,1
    - Dst: auto::output
      Src: /src/botan/src/tests/test_frodokem.cpp:51,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: 52
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 52
    functionName: Botan_Tests::Frodo_KAT_Tests::map_value
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - auto::output
    - Botan::XOF::create_or_throw
    - std::span<const uint8_t>::begin
    - 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:56,1
    - Dst: Botan::FrodoKEMConstants::len_sec_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:56,1
    - Dst: Botan::FrodoKEMConstants::len_se_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:56,1
    - Dst: Botan::FrodoKEMConstants::len_a_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' mode'
    - ' rng'
    argTypes:
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: Botan_Tests::Frodo_KAT_Tests::rng_for_keygen
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached:
    - Botan::FrodoKEMConstants::len_sec_bytes
    - Botan::FrodoKEMConstants::len_se_bytes
    - Fixed_Output_RNG
    - Botan::FrodoKEMConstants::len_a_bytes
    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:61,1
    - Dst: Botan::FrodoKEMConstants::len_sec_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:61,1
    - Dst: Botan::FrodoKEMConstants::len_salt_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' mode'
    - ' rng'
    argTypes:
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    functionName: Botan_Tests::Frodo_KAT_Tests::rng_for_encapsulation
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached:
    - Botan::FrodoKEMConstants::len_sec_bytes
    - Fixed_Output_RNG
    - Botan::FrodoKEMConstants::len_salt_bytes
    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:66,1
    - Dst: SHAKE_XOF
      Src: /src/botan/src/tests/test_frodokem.cpp:85,1
    - Dst: raw_private_key_bits
      Src: /src/botan/src/tests/test_frodokem.cpp:86,1
    - Dst: std::span<const uint8_t>
      Src: /src/botan/src/tests/test_frodokem.cpp:87,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_frodokem.cpp:87,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:87,1
    - Dst: update
      Src: /src/botan/src/tests/test_frodokem.cpp:88,1
    - Dst: update
      Src: /src/botan/src/tests/test_frodokem.cpp:89,1
    - Dst: output
      Src: /src/botan/src/tests/test_frodokem.cpp:90,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/tests/test_frodokem.cpp:90,1
    - Dst: Botan::FrodoKEMMode::is_available
      Src: /src/botan/src/tests/test_frodokem.cpp:96,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_frodokem.cpp:100,1
    - Dst: Botan::FrodoKEMMode::to_string
      Src: /src/botan/src/tests/test_frodokem.cpp:100,1
    - Dst: Botan::FrodoKEM_PrivateKey::public_key_bits
      Src: /src/botan/src/tests/test_frodokem.cpp:103,1
    - Dst: Botan::PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/tests/test_frodokem.cpp:107,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:109,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:109,1
    - Dst: Botan::PK_KEM_Encryptor::shared_key_length
      Src: /src/botan/src/tests/test_frodokem.cpp:109,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:110,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:110,1
    - Dst: Botan::PK_KEM_Encryptor::encapsulated_key_length
      Src: /src/botan/src/tests/test_frodokem.cpp:110,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_frodokem.cpp:113,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:113,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:115,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:115,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:116,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_frodokem.cpp:116,1
    - Dst: Botan::PK_KEM_Decryptor::shared_key_length
      Src: /src/botan/src/tests/test_frodokem.cpp:116,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_frodokem.cpp:123,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:123,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:124,1
    - Dst: get_decryption_error_value
      Src: /src/botan/src/tests/test_frodokem.cpp:126,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:126,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_frodokem.cpp:129,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:129,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_frodokem.cpp:130,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_frodokem.cpp:131,1
    - Dst: get_decryption_error_value
      Src: /src/botan/src/tests/test_frodokem.cpp:132,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_frodokem.cpp:135,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_frodokem.cpp:137,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_frodokem.cpp:138,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_frodokem.cpp:139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 144
    functionName: Botan_Tests::test_frodo_roundtrips
    functionSourceFile: /src/botan/src/tests/test_frodokem.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan::FrodoKEMMode::to_string
    - test_throws
    - SHAKE_XOF
    - auto::shared_key
    - auto::size
    - auto::pop_back
    - Botan::PK_KEM_Decryptor::decrypt
    - std::span<const uint8_t>
    - Botan::PK_KEM_Encryptor::encapsulated_key_length
    - std::vector::emplace_back
    - get_decryption_error_value
    - Botan::PK_KEM_Encryptor::encrypt
    - Botan::PK_KEM_Encryptor::shared_key_length
    - Botan_Tests::Test::new_rng
    - output
    - len_sec_bytes
    - auto::data
    - Botan::PK_KEM_Decryptor::shared_key_length
    - Botan::FrodoKEMMode::is_available
    - Botan::FrodoKEM_PrivateKey::public_key_bits
    - update
    - raw_private_key_bits
    - auto::encapsulated_shared_key
    - Botan_Tests::Test::mutate_vec
    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: 159
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 159
    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: 156
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 156
    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:164,1
    - Dst: Botan::FrodoKEMMode::FrodoKEMMode
      Src: /src/botan/src/tests/test_frodokem.cpp:164,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: 165
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 165
    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:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 27
    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:35,1
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:35,1
    - Dst: Botan::load_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:36,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:36,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: Botan_Tests::kem
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - Botan::load_private_key
    - auto::private_key_bits
    - Botan::create_private_key
    - Botan_Tests::global_test_rng
    - 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:40,1
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:40,1
    - Dst: Botan::load_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:41,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:41,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:41,1
    - Dst: dynamic_cast<Botan::PK_Key_Agreement_Key*>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:42,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:42,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:45,1
    - Dst: std::unique_ptr<Botan::PK_Key_Agreement_Key>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:46,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 50
    functionName: Botan_Tests::kex_dh
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - Botan::load_private_key
    - auto::private_key_bits
    - Test_Error
    - Botan::create_private_key
    - Botan_Tests::global_test_rng
    - auto::get
    - auto::release
    - std::unique_ptr<Botan::PK_Key_Agreement_Key>
    - dynamic_cast<Botan::PK_Key_Agreement_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:53,1
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:53,1
    - Dst: Botan::load_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:54,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:54,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:54,1
    - Dst: dynamic_cast<Botan::PK_Key_Agreement_Key*>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:55,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:55,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:58,1
    - Dst: std::unique_ptr<Botan::PK_Key_Agreement_Key>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:59,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 63
    functionName: Botan_Tests::kex_ecdh
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - Botan::load_private_key
    - auto::private_key_bits
    - Test_Error
    - Botan::create_private_key
    - Botan_Tests::global_test_rng
    - auto::get
    - auto::release
    - std::unique_ptr<Botan::PK_Key_Agreement_Key>
    - dynamic_cast<Botan::PK_Key_Agreement_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:66,1
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:66,1
    - Dst: Botan::load_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:67,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:67,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: Botan_Tests::sig
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - Botan::load_private_key
    - auto::private_key_bits
    - Botan::create_private_key
    - Botan_Tests::global_test_rng
    - 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:73,1
    - Dst: std::forward<KeyTs>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: Botan_Tests::keys
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - std::forward<KeyTs>
    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:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - private_key
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 84
    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:89,1
    - Dst: Botan_Tests::as_public_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:89,1
    - Dst: std::forward<KeyTs>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: Botan_Tests::pubkeys
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::as_public_key
    - std::vector::push_back
    - std::forward<KeyTs>
    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:96,1
    - Dst: Botan::PK_Key_Agreement::agreed_value_size
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:97,1
    - Dst: Botan::PK_KEM_Encryptor::shared_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:101,1
    - Dst: f
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:104,1
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 105
    functionName: Botan_Tests::length_of_hybrid_shared_key
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::global_test_rng
    - f
    - Botan::PK_Key_Agreement::agreed_value_size
    - Botan::PK_KEM_Encryptor::shared_key_length
    - 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:109,1
    - Dst: Botan::PK_KEM_Encryptor::encapsulated_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:112,1
    - Dst: f
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:115,1
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 116
    functionName: Botan_Tests::length_of_hybrid_ciphertext
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - f
    - public_value
    - kex_kem_fn
    - 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:120,1
    - Dst: public_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:121,1
    - Dst: f
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:123,1
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 124
    functionName: Botan_Tests::length_of_hybrid_public_value
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - f
    - public_value
    - public_key_bits
    - kex_kem_fn
    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:129,1
    - Dst: std::max_element
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:130,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:130,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: Botan_Tests::key_length_of_hybrid_public_key
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - std::vector::end
    - kex_kem_fn
    - 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:135,1
    - Dst: std::max_element
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:136,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:136,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: Botan_Tests::estimated_strength_of_hybrid_public_key
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - std::vector::end
    - kex_kem_fn
    - 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:141,1
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:141,1
    - Dst: Botan_Tests::pubkeys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:142,1
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:142,1
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:144,1
    - Dst: Botan::PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:147,1
    - Dst: Botan_Tests::length_of_hybrid_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:149,1
    - Dst: Botan_Tests::length_of_hybrid_ciphertext
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:150,1
    - Dst: Botan_Tests::length_of_hybrid_public_value
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:151,1
    - Dst: Botan_Tests::key_length_of_hybrid_public_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:152,1
    - Dst: Botan_Tests::estimated_strength_of_hybrid_public_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:153,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:155,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:156,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:157,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:157,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:158,1
    - Dst: Botan::PK_KEM_Encryptor::encapsulated_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:159,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:160,1
    - Dst: Botan::PK_KEM_Encryptor::shared_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:160,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:163,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:163,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:165,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:165,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:166,1
    - Dst: Botan::PK_KEM_Decryptor::shared_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:167,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:168,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:168,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:170,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey::raw_public_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:171,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:174,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey::key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:175,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:176,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey::estimated_strength
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 140
    functionDepth: 3
    functionLinenumber: 140
    functionLinenumberEnd: 179
    functionName: Botan_Tests::roundtrip_test
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan_Tests::key_length_of_hybrid_public_key
    - Botan_Tests::pubkeys
    - auto::shared_key
    - Botan::secure_vector::size
    - Botan::PK_KEM_Decryptor::decrypt
    - Botan_Tests::length_of_hybrid_ciphertext
    - Botan::PK_KEM_Encryptor::encapsulated_key_length
    - Botan_Tests::estimated_strength_of_hybrid_public_key
    - Botan::PK_KEM_Encryptor::encrypt
    - Botan::PK_KEM_Encryptor::shared_key_length
    - Botan_Tests::length_of_hybrid_shared_key
    - Botan::TLS::Hybrid_KEM_PublicKey::key_length
    - Botan::PK_KEM_Decryptor::shared_key_length
    - Botan_Tests::global_test_rng
    - Botan::TLS::Hybrid_KEM_PublicKey::raw_public_key_bits
    - auto::encapsulated_shared_key
    - kex_kem_fn
    - Botan_Tests::keys
    - Botan::TLS::Hybrid_KEM_PublicKey::estimated_strength
    - Botan_Tests::length_of_hybrid_public_value
    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:183,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:185,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:186,1
    - Dst: std::vector<std::unique_ptr<Botan::Public_Key>>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:186,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:190,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:192,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:193,1
    - Dst: std::vector<std::unique_ptr<Botan::Private_Key>>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:193,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:197,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:199,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:200,1
    - Dst: Botan_Tests::pubkeys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:200,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:201,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:202,1
    - Dst: Botan_Tests::pubkeys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:202,1
    - Dst: Botan_Tests::kem
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:202,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: Botan_Tests::kex_dh
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:204,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:207,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:209,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:210,1
    - Dst: Botan_Tests::keys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:210,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:211,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:212,1
    - Dst: Botan_Tests::keys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:212,1
    - Dst: Botan_Tests::kem
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:212,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: Botan_Tests::kex_dh
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:214,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:217,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:219,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:220,1
    - Dst: Botan_Tests::keys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:220,1
    - Dst: Botan_Tests::sig
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:220,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:221,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:222,1
    - Dst: Botan_Tests::keys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:222,1
    - Dst: Botan_Tests::sig
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:222,1
    - Dst: Botan_Tests::kem
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:222,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: Botan_Tests::kex_dh
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:224,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:227,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:228,1
    - Dst: Botan_Tests::roundtrip_test
      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:229,1
    - Dst: Botan_Tests::roundtrip_test
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:229,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:230,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: Botan_Tests::roundtrip_test
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:234,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:235,1
    - Dst: Botan_Tests::roundtrip_test
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 181
    functionDepth: 4
    functionLinenumber: 181
    functionLinenumberEnd: 237
    functionName: Botan_Tests::hybrid_kem_keypair
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::roundtrip_test
    - Botan_Tests::CHECK
    - Botan::TLS::Hybrid_KEM_PublicKey
    - std::vector<std::unique_ptr<Botan::Public_Key>>
    - test_throws
    - Botan_Tests::pubkeys
    - Botan_Tests::sig
    - Botan_Tests::kex_dh
    - std::vector<std::unique_ptr<Botan::Private_Key>>
    - Botan_Tests::kem
    - Botan_Tests::keys
    - Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
    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:244,1
    - Dst: Botan::PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:247,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:249,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:250,1
    - Dst: Botan::PK_KEM_Encryptor::encapsulated_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:251,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:252,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:252,1
    - Dst: Botan::PK_KEM_Encryptor::shared_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:252,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:256,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:257,1
    - Dst: Botan::PK_KEM_Decryptor::encapsulated_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:258,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:260,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:260,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:262,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:263,1
    - Dst: Botan::PK_KEM_Decryptor::shared_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:263,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:265,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:265,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: 266
      start: 239
    functionDepth: 2
    functionLinenumber: 239
    functionLinenumberEnd: 266
    functionName: Botan_Tests::kex_to_kem_roundtrip
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan::PK_KEM_Decryptor::decrypt
    - Botan::PK_KEM_Encryptor::encapsulated_key_length
    - Botan::PK_KEM_Decryptor::encapsulated_key_length
    - Botan::PK_KEM_Decryptor::shared_key_length
    - auto::shared_key
    - Botan_Tests::global_test_rng
    - Botan::PK_KEM_Encryptor::encrypt
    - Botan::PK_KEM_Encryptor::shared_key_length
    - auto::encapsulated_shared_key
    - Botan::secure_vector::size
    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:270,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:272,1
    - Dst: Botan::KEX_to_KEM_Adapter_PrivateKey::KEX_to_KEM_Adapter_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:273,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:274,1
    - Dst: Botan::KEX_to_KEM_Adapter_PublicKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:275,1
    - Dst: Botan_Tests::CHECK
      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:280,1
    - Dst: Botan_Tests::kem
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:281,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:284,1
    - Dst: Botan_Tests::kex_to_kem_roundtrip
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:284,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:285,1
    - Dst: Botan_Tests::kex_to_kem_roundtrip
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 268
    functionDepth: 3
    functionLinenumber: 268
    functionLinenumberEnd: 287
    functionName: Botan_Tests::kex_to_kem_adapter
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::CHECK
    - test_throws
    - Botan::KEX_to_KEM_Adapter_PrivateKey::KEX_to_KEM_Adapter_PrivateKey
    - Botan::KEX_to_KEM_Adapter_PublicKey
    - Botan_Tests::kem
    - Botan_Tests::kex_to_kem_roundtrip
    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:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 27
    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:35,1
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:35,1
    - Dst: Botan::load_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:36,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:36,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: Botan_Tests::kem
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 2
    functionsReached:
    - Botan::load_private_key
    - auto::private_key_bits
    - Botan::create_private_key
    - Botan_Tests::global_test_rng
    - 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:40,1
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:40,1
    - Dst: Botan::load_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:41,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:41,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:41,1
    - Dst: dynamic_cast<Botan::PK_Key_Agreement_Key*>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:42,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:42,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:45,1
    - Dst: std::unique_ptr<Botan::PK_Key_Agreement_Key>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:46,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 50
    functionName: Botan_Tests::kex_dh
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 1
    functionsReached:
    - Botan::load_private_key
    - auto::private_key_bits
    - Test_Error
    - Botan::create_private_key
    - Botan_Tests::global_test_rng
    - auto::get
    - auto::release
    - std::unique_ptr<Botan::PK_Key_Agreement_Key>
    - dynamic_cast<Botan::PK_Key_Agreement_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:53,1
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:53,1
    - Dst: Botan::load_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:54,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:54,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:54,1
    - Dst: dynamic_cast<Botan::PK_Key_Agreement_Key*>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:55,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:55,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:58,1
    - Dst: std::unique_ptr<Botan::PK_Key_Agreement_Key>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:59,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 63
    functionName: Botan_Tests::kex_ecdh
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - Botan::load_private_key
    - auto::private_key_bits
    - Test_Error
    - Botan::create_private_key
    - Botan_Tests::global_test_rng
    - auto::get
    - auto::release
    - std::unique_ptr<Botan::PK_Key_Agreement_Key>
    - dynamic_cast<Botan::PK_Key_Agreement_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:66,1
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:66,1
    - Dst: Botan::load_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:67,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:67,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: Botan_Tests::sig
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 1
    functionsReached:
    - Botan::load_private_key
    - auto::private_key_bits
    - Botan::create_private_key
    - Botan_Tests::global_test_rng
    - 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:73,1
    - Dst: std::forward<KeyTs>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: Botan_Tests::keys
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 2
    functionsReached:
    - std::vector::push_back
    - std::forward<KeyTs>
    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:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - private_key
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 84
    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:89,1
    - Dst: Botan_Tests::as_public_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:89,1
    - Dst: std::forward<KeyTs>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: Botan_Tests::pubkeys
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::as_public_key
    - std::vector::push_back
    - std::forward<KeyTs>
    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:96,1
    - Dst: Botan::PK_Key_Agreement::agreed_value_size
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:97,1
    - Dst: Botan::PK_KEM_Encryptor::shared_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:101,1
    - Dst: f
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:104,1
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 105
    functionName: Botan_Tests::length_of_hybrid_shared_key
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::global_test_rng
    - f
    - Botan::PK_Key_Agreement::agreed_value_size
    - Botan::PK_KEM_Encryptor::shared_key_length
    - 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:109,1
    - Dst: Botan::PK_KEM_Encryptor::encapsulated_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:112,1
    - Dst: f
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:115,1
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 116
    functionName: Botan_Tests::length_of_hybrid_ciphertext
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 1
    functionsReached:
    - f
    - public_value
    - kex_kem_fn
    - 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:120,1
    - Dst: public_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:121,1
    - Dst: f
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:123,1
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 124
    functionName: Botan_Tests::length_of_hybrid_public_value
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 1
    functionsReached:
    - f
    - public_value
    - public_key_bits
    - kex_kem_fn
    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:129,1
    - Dst: std::max_element
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:130,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:130,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: Botan_Tests::key_length_of_hybrid_public_key
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 1
    functionsReached:
    - std::vector::begin
    - std::vector::end
    - kex_kem_fn
    - 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:135,1
    - Dst: std::max_element
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:136,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:136,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: Botan_Tests::estimated_strength_of_hybrid_public_key
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 1
    functionsReached:
    - std::vector::begin
    - std::vector::end
    - kex_kem_fn
    - 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:141,1
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:141,1
    - Dst: Botan_Tests::pubkeys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:142,1
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:142,1
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:144,1
    - Dst: Botan::PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:147,1
    - Dst: Botan_Tests::length_of_hybrid_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:149,1
    - Dst: Botan_Tests::length_of_hybrid_ciphertext
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:150,1
    - Dst: Botan_Tests::length_of_hybrid_public_value
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:151,1
    - Dst: Botan_Tests::key_length_of_hybrid_public_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:152,1
    - Dst: Botan_Tests::estimated_strength_of_hybrid_public_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:153,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:155,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:156,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:157,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:157,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:158,1
    - Dst: Botan::PK_KEM_Encryptor::encapsulated_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:159,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:160,1
    - Dst: Botan::PK_KEM_Encryptor::shared_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:160,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:163,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:163,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:165,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:165,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:166,1
    - Dst: Botan::PK_KEM_Decryptor::shared_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:167,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:168,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:168,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:170,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey::raw_public_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:171,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:174,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey::key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:175,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:176,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey::estimated_strength
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 140
    functionDepth: 3
    functionLinenumber: 140
    functionLinenumberEnd: 179
    functionName: Botan_Tests::roundtrip_test
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 1
    functionsReached:
    - test_eq
    - Botan_Tests::key_length_of_hybrid_public_key
    - Botan_Tests::pubkeys
    - auto::shared_key
    - Botan::secure_vector::size
    - Botan::PK_KEM_Decryptor::decrypt
    - Botan_Tests::length_of_hybrid_ciphertext
    - Botan::PK_KEM_Encryptor::encapsulated_key_length
    - Botan_Tests::estimated_strength_of_hybrid_public_key
    - Botan::PK_KEM_Encryptor::encrypt
    - Botan::PK_KEM_Encryptor::shared_key_length
    - Botan_Tests::length_of_hybrid_shared_key
    - Botan::TLS::Hybrid_KEM_PublicKey::key_length
    - Botan::PK_KEM_Decryptor::shared_key_length
    - Botan_Tests::global_test_rng
    - Botan::TLS::Hybrid_KEM_PublicKey::raw_public_key_bits
    - auto::encapsulated_shared_key
    - kex_kem_fn
    - Botan_Tests::keys
    - Botan::TLS::Hybrid_KEM_PublicKey::estimated_strength
    - Botan_Tests::length_of_hybrid_public_value
    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:183,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:185,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:186,1
    - Dst: std::vector<std::unique_ptr<Botan::Public_Key>>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:186,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:190,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:192,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:193,1
    - Dst: std::vector<std::unique_ptr<Botan::Private_Key>>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:193,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:197,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:199,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:200,1
    - Dst: Botan_Tests::pubkeys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:200,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:201,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:202,1
    - Dst: Botan_Tests::pubkeys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:202,1
    - Dst: Botan_Tests::kem
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:202,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: Botan_Tests::kex_dh
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:204,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:207,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:209,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:210,1
    - Dst: Botan_Tests::keys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:210,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:211,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:212,1
    - Dst: Botan_Tests::keys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:212,1
    - Dst: Botan_Tests::kem
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:212,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: Botan_Tests::kex_dh
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:214,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:217,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:219,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:220,1
    - Dst: Botan_Tests::keys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:220,1
    - Dst: Botan_Tests::sig
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:220,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:221,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:222,1
    - Dst: Botan_Tests::keys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:222,1
    - Dst: Botan_Tests::sig
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:222,1
    - Dst: Botan_Tests::kem
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:222,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: Botan_Tests::kex_dh
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:224,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:227,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:228,1
    - Dst: Botan_Tests::roundtrip_test
      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:229,1
    - Dst: Botan_Tests::roundtrip_test
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:229,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:230,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: Botan_Tests::roundtrip_test
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:234,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:235,1
    - Dst: Botan_Tests::roundtrip_test
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 181
    functionDepth: 4
    functionLinenumber: 181
    functionLinenumberEnd: 237
    functionName: Botan_Tests::hybrid_kem_keypair
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::roundtrip_test
    - Botan_Tests::CHECK
    - Botan::TLS::Hybrid_KEM_PublicKey
    - std::vector<std::unique_ptr<Botan::Public_Key>>
    - test_throws
    - Botan_Tests::pubkeys
    - Botan_Tests::sig
    - Botan_Tests::kex_dh
    - std::vector<std::unique_ptr<Botan::Private_Key>>
    - Botan_Tests::kem
    - Botan_Tests::keys
    - Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
    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:244,1
    - Dst: Botan::PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:247,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:249,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:250,1
    - Dst: Botan::PK_KEM_Encryptor::encapsulated_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:251,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:252,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:252,1
    - Dst: Botan::PK_KEM_Encryptor::shared_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:252,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:256,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:257,1
    - Dst: Botan::PK_KEM_Decryptor::encapsulated_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:258,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:260,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:260,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:262,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:263,1
    - Dst: Botan::PK_KEM_Decryptor::shared_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:263,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:265,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:265,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: 266
      start: 239
    functionDepth: 2
    functionLinenumber: 239
    functionLinenumberEnd: 266
    functionName: Botan_Tests::kex_to_kem_roundtrip
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 1
    functionsReached:
    - test_eq
    - Botan::PK_KEM_Decryptor::decrypt
    - Botan::PK_KEM_Encryptor::encapsulated_key_length
    - Botan::PK_KEM_Decryptor::encapsulated_key_length
    - Botan::PK_KEM_Decryptor::shared_key_length
    - auto::shared_key
    - Botan_Tests::global_test_rng
    - Botan::PK_KEM_Encryptor::encrypt
    - Botan::PK_KEM_Encryptor::shared_key_length
    - auto::encapsulated_shared_key
    - Botan::secure_vector::size
    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:270,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:272,1
    - Dst: Botan::KEX_to_KEM_Adapter_PrivateKey::KEX_to_KEM_Adapter_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:273,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:274,1
    - Dst: Botan::KEX_to_KEM_Adapter_PublicKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:275,1
    - Dst: Botan_Tests::CHECK
      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:280,1
    - Dst: Botan_Tests::kem
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:281,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:284,1
    - Dst: Botan_Tests::kex_to_kem_roundtrip
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:284,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:285,1
    - Dst: Botan_Tests::kex_to_kem_roundtrip
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 268
    functionDepth: 3
    functionLinenumber: 268
    functionLinenumberEnd: 287
    functionName: Botan_Tests::kex_to_kem_adapter
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::CHECK
    - test_throws
    - Botan::KEX_to_KEM_Adapter_PrivateKey::KEX_to_KEM_Adapter_PrivateKey
    - Botan::KEX_to_KEM_Adapter_PublicKey
    - Botan_Tests::kem
    - Botan_Tests::kex_to_kem_roundtrip
    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:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 27
    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:35,1
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:35,1
    - Dst: Botan::load_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:36,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:36,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: Botan_Tests::kem
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 4
    functionsReached:
    - Botan::load_private_key
    - auto::private_key_bits
    - Botan::create_private_key
    - Botan_Tests::global_test_rng
    - 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:40,1
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:40,1
    - Dst: Botan::load_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:41,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:41,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:41,1
    - Dst: dynamic_cast<Botan::PK_Key_Agreement_Key*>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:42,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:42,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:45,1
    - Dst: std::unique_ptr<Botan::PK_Key_Agreement_Key>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:46,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 50
    functionName: Botan_Tests::kex_dh
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 2
    functionsReached:
    - Botan::load_private_key
    - auto::private_key_bits
    - Test_Error
    - Botan::create_private_key
    - Botan_Tests::global_test_rng
    - auto::get
    - auto::release
    - std::unique_ptr<Botan::PK_Key_Agreement_Key>
    - dynamic_cast<Botan::PK_Key_Agreement_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:53,1
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:53,1
    - Dst: Botan::load_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:54,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:54,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:54,1
    - Dst: dynamic_cast<Botan::PK_Key_Agreement_Key*>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:55,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:55,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:58,1
    - Dst: std::unique_ptr<Botan::PK_Key_Agreement_Key>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:59,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 63
    functionName: Botan_Tests::kex_ecdh
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - Botan::load_private_key
    - auto::private_key_bits
    - Test_Error
    - Botan::create_private_key
    - Botan_Tests::global_test_rng
    - auto::get
    - auto::release
    - std::unique_ptr<Botan::PK_Key_Agreement_Key>
    - dynamic_cast<Botan::PK_Key_Agreement_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:66,1
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:66,1
    - Dst: Botan::load_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:67,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:67,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: Botan_Tests::sig
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 2
    functionsReached:
    - Botan::load_private_key
    - auto::private_key_bits
    - Botan::create_private_key
    - Botan_Tests::global_test_rng
    - 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:73,1
    - Dst: std::forward<KeyTs>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: Botan_Tests::keys
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 4
    functionsReached:
    - std::vector::push_back
    - std::forward<KeyTs>
    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:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - private_key
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 84
    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:89,1
    - Dst: Botan_Tests::as_public_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:89,1
    - Dst: std::forward<KeyTs>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: Botan_Tests::pubkeys
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 4
    functionsReached:
    - Botan_Tests::as_public_key
    - std::vector::push_back
    - std::forward<KeyTs>
    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:96,1
    - Dst: Botan::PK_Key_Agreement::agreed_value_size
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:97,1
    - Dst: Botan::PK_KEM_Encryptor::shared_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:101,1
    - Dst: f
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:104,1
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 105
    functionName: Botan_Tests::length_of_hybrid_shared_key
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::global_test_rng
    - f
    - Botan::PK_Key_Agreement::agreed_value_size
    - Botan::PK_KEM_Encryptor::shared_key_length
    - 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:109,1
    - Dst: Botan::PK_KEM_Encryptor::encapsulated_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:112,1
    - Dst: f
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:115,1
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 116
    functionName: Botan_Tests::length_of_hybrid_ciphertext
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 2
    functionsReached:
    - f
    - public_value
    - kex_kem_fn
    - 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:120,1
    - Dst: public_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:121,1
    - Dst: f
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:123,1
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 124
    functionName: Botan_Tests::length_of_hybrid_public_value
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 2
    functionsReached:
    - f
    - public_value
    - public_key_bits
    - kex_kem_fn
    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:129,1
    - Dst: std::max_element
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:130,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:130,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: Botan_Tests::key_length_of_hybrid_public_key
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 2
    functionsReached:
    - std::vector::begin
    - std::vector::end
    - kex_kem_fn
    - 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:135,1
    - Dst: std::max_element
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:136,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:136,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: Botan_Tests::estimated_strength_of_hybrid_public_key
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 2
    functionsReached:
    - std::vector::begin
    - std::vector::end
    - kex_kem_fn
    - 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:141,1
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:141,1
    - Dst: Botan_Tests::pubkeys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:142,1
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:142,1
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:144,1
    - Dst: Botan::PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:147,1
    - Dst: Botan_Tests::length_of_hybrid_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:149,1
    - Dst: Botan_Tests::length_of_hybrid_ciphertext
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:150,1
    - Dst: Botan_Tests::length_of_hybrid_public_value
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:151,1
    - Dst: Botan_Tests::key_length_of_hybrid_public_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:152,1
    - Dst: Botan_Tests::estimated_strength_of_hybrid_public_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:153,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:155,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:156,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:157,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:157,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:158,1
    - Dst: Botan::PK_KEM_Encryptor::encapsulated_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:159,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:160,1
    - Dst: Botan::PK_KEM_Encryptor::shared_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:160,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:163,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:163,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:165,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:165,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:166,1
    - Dst: Botan::PK_KEM_Decryptor::shared_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:167,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:168,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:168,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:170,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey::raw_public_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:171,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:174,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey::key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:175,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:176,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey::estimated_strength
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 140
    functionDepth: 3
    functionLinenumber: 140
    functionLinenumberEnd: 179
    functionName: Botan_Tests::roundtrip_test
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 2
    functionsReached:
    - test_eq
    - Botan_Tests::key_length_of_hybrid_public_key
    - Botan_Tests::pubkeys
    - auto::shared_key
    - Botan::secure_vector::size
    - Botan::PK_KEM_Decryptor::decrypt
    - Botan_Tests::length_of_hybrid_ciphertext
    - Botan::PK_KEM_Encryptor::encapsulated_key_length
    - Botan_Tests::estimated_strength_of_hybrid_public_key
    - Botan::PK_KEM_Encryptor::encrypt
    - Botan::PK_KEM_Encryptor::shared_key_length
    - Botan_Tests::length_of_hybrid_shared_key
    - Botan::TLS::Hybrid_KEM_PublicKey::key_length
    - Botan::PK_KEM_Decryptor::shared_key_length
    - Botan_Tests::global_test_rng
    - Botan::TLS::Hybrid_KEM_PublicKey::raw_public_key_bits
    - auto::encapsulated_shared_key
    - kex_kem_fn
    - Botan_Tests::keys
    - Botan::TLS::Hybrid_KEM_PublicKey::estimated_strength
    - Botan_Tests::length_of_hybrid_public_value
    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:183,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:185,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:186,1
    - Dst: std::vector<std::unique_ptr<Botan::Public_Key>>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:186,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:190,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:192,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:193,1
    - Dst: std::vector<std::unique_ptr<Botan::Private_Key>>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:193,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:197,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:199,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:200,1
    - Dst: Botan_Tests::pubkeys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:200,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:201,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:202,1
    - Dst: Botan_Tests::pubkeys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:202,1
    - Dst: Botan_Tests::kem
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:202,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: Botan_Tests::kex_dh
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:204,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:207,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:209,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:210,1
    - Dst: Botan_Tests::keys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:210,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:211,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:212,1
    - Dst: Botan_Tests::keys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:212,1
    - Dst: Botan_Tests::kem
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:212,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: Botan_Tests::kex_dh
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:214,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:217,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:219,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:220,1
    - Dst: Botan_Tests::keys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:220,1
    - Dst: Botan_Tests::sig
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:220,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:221,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:222,1
    - Dst: Botan_Tests::keys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:222,1
    - Dst: Botan_Tests::sig
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:222,1
    - Dst: Botan_Tests::kem
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:222,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: Botan_Tests::kex_dh
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:224,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:227,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:228,1
    - Dst: Botan_Tests::roundtrip_test
      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:229,1
    - Dst: Botan_Tests::roundtrip_test
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:229,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:230,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: Botan_Tests::roundtrip_test
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:234,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:235,1
    - Dst: Botan_Tests::roundtrip_test
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 181
    functionDepth: 4
    functionLinenumber: 181
    functionLinenumberEnd: 237
    functionName: Botan_Tests::hybrid_kem_keypair
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::roundtrip_test
    - Botan_Tests::CHECK
    - Botan::TLS::Hybrid_KEM_PublicKey
    - std::vector<std::unique_ptr<Botan::Public_Key>>
    - test_throws
    - Botan_Tests::pubkeys
    - Botan_Tests::sig
    - Botan_Tests::kex_dh
    - std::vector<std::unique_ptr<Botan::Private_Key>>
    - Botan_Tests::kem
    - Botan_Tests::keys
    - Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
    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:244,1
    - Dst: Botan::PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:247,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:249,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:250,1
    - Dst: Botan::PK_KEM_Encryptor::encapsulated_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:251,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:252,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:252,1
    - Dst: Botan::PK_KEM_Encryptor::shared_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:252,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:256,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:257,1
    - Dst: Botan::PK_KEM_Decryptor::encapsulated_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:258,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:260,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:260,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:262,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:263,1
    - Dst: Botan::PK_KEM_Decryptor::shared_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:263,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:265,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:265,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: 266
      start: 239
    functionDepth: 2
    functionLinenumber: 239
    functionLinenumberEnd: 266
    functionName: Botan_Tests::kex_to_kem_roundtrip
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 2
    functionsReached:
    - test_eq
    - Botan::PK_KEM_Decryptor::decrypt
    - Botan::PK_KEM_Encryptor::encapsulated_key_length
    - Botan::PK_KEM_Decryptor::encapsulated_key_length
    - Botan::PK_KEM_Decryptor::shared_key_length
    - auto::shared_key
    - Botan_Tests::global_test_rng
    - Botan::PK_KEM_Encryptor::encrypt
    - Botan::PK_KEM_Encryptor::shared_key_length
    - auto::encapsulated_shared_key
    - Botan::secure_vector::size
    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:270,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:272,1
    - Dst: Botan::KEX_to_KEM_Adapter_PrivateKey::KEX_to_KEM_Adapter_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:273,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:274,1
    - Dst: Botan::KEX_to_KEM_Adapter_PublicKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:275,1
    - Dst: Botan_Tests::CHECK
      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:280,1
    - Dst: Botan_Tests::kem
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:281,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:284,1
    - Dst: Botan_Tests::kex_to_kem_roundtrip
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:284,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:285,1
    - Dst: Botan_Tests::kex_to_kem_roundtrip
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 268
    functionDepth: 3
    functionLinenumber: 268
    functionLinenumberEnd: 287
    functionName: Botan_Tests::kex_to_kem_adapter
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::CHECK
    - test_throws
    - Botan::KEX_to_KEM_Adapter_PrivateKey::KEX_to_KEM_Adapter_PrivateKey
    - Botan::KEX_to_KEM_Adapter_PublicKey
    - Botan_Tests::kem
    - Botan_Tests::kex_to_kem_roundtrip
    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:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 27
    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:35,1
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:35,1
    - Dst: Botan::load_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:36,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:36,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: Botan_Tests::kem
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 6
    functionsReached:
    - Botan::load_private_key
    - auto::private_key_bits
    - Botan::create_private_key
    - Botan_Tests::global_test_rng
    - 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:40,1
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:40,1
    - Dst: Botan::load_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:41,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:41,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:41,1
    - Dst: dynamic_cast<Botan::PK_Key_Agreement_Key*>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:42,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:42,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:45,1
    - Dst: std::unique_ptr<Botan::PK_Key_Agreement_Key>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:46,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 50
    functionName: Botan_Tests::kex_dh
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 3
    functionsReached:
    - Botan::load_private_key
    - auto::private_key_bits
    - Test_Error
    - Botan::create_private_key
    - Botan_Tests::global_test_rng
    - auto::get
    - auto::release
    - std::unique_ptr<Botan::PK_Key_Agreement_Key>
    - dynamic_cast<Botan::PK_Key_Agreement_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:53,1
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:53,1
    - Dst: Botan::load_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:54,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:54,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:54,1
    - Dst: dynamic_cast<Botan::PK_Key_Agreement_Key*>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:55,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:55,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:58,1
    - Dst: std::unique_ptr<Botan::PK_Key_Agreement_Key>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:59,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 63
    functionName: Botan_Tests::kex_ecdh
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - Botan::load_private_key
    - auto::private_key_bits
    - Test_Error
    - Botan::create_private_key
    - Botan_Tests::global_test_rng
    - auto::get
    - auto::release
    - std::unique_ptr<Botan::PK_Key_Agreement_Key>
    - dynamic_cast<Botan::PK_Key_Agreement_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:66,1
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:66,1
    - Dst: Botan::load_private_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:67,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:67,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: Botan_Tests::sig
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 3
    functionsReached:
    - Botan::load_private_key
    - auto::private_key_bits
    - Botan::create_private_key
    - Botan_Tests::global_test_rng
    - 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:73,1
    - Dst: std::forward<KeyTs>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: Botan_Tests::keys
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 6
    functionsReached:
    - std::vector::push_back
    - std::forward<KeyTs>
    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:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - private_key
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 84
    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:89,1
    - Dst: Botan_Tests::as_public_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:89,1
    - Dst: std::forward<KeyTs>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: Botan_Tests::pubkeys
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 6
    functionsReached:
    - Botan_Tests::as_public_key
    - std::vector::push_back
    - std::forward<KeyTs>
    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:96,1
    - Dst: Botan::PK_Key_Agreement::agreed_value_size
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:97,1
    - Dst: Botan::PK_KEM_Encryptor::shared_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:101,1
    - Dst: f
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:104,1
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 105
    functionName: Botan_Tests::length_of_hybrid_shared_key
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::global_test_rng
    - f
    - Botan::PK_Key_Agreement::agreed_value_size
    - Botan::PK_KEM_Encryptor::shared_key_length
    - 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:109,1
    - Dst: Botan::PK_KEM_Encryptor::encapsulated_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:112,1
    - Dst: f
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:115,1
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 116
    functionName: Botan_Tests::length_of_hybrid_ciphertext
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 3
    functionsReached:
    - f
    - public_value
    - kex_kem_fn
    - 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:120,1
    - Dst: public_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:121,1
    - Dst: f
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:123,1
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 124
    functionName: Botan_Tests::length_of_hybrid_public_value
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 3
    functionsReached:
    - f
    - public_value
    - public_key_bits
    - kex_kem_fn
    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:129,1
    - Dst: std::max_element
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:130,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:130,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: Botan_Tests::key_length_of_hybrid_public_key
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 3
    functionsReached:
    - std::vector::begin
    - std::vector::end
    - kex_kem_fn
    - 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:135,1
    - Dst: std::max_element
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:136,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:136,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: Botan_Tests::estimated_strength_of_hybrid_public_key
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 3
    functionsReached:
    - std::vector::begin
    - std::vector::end
    - kex_kem_fn
    - 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:141,1
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:141,1
    - Dst: Botan_Tests::pubkeys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:142,1
    - Dst: kex_kem_fn
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:142,1
    - Dst: Botan_Tests::global_test_rng
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:144,1
    - Dst: Botan::PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:147,1
    - Dst: Botan_Tests::length_of_hybrid_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:149,1
    - Dst: Botan_Tests::length_of_hybrid_ciphertext
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:150,1
    - Dst: Botan_Tests::length_of_hybrid_public_value
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:151,1
    - Dst: Botan_Tests::key_length_of_hybrid_public_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:152,1
    - Dst: Botan_Tests::estimated_strength_of_hybrid_public_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:153,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:155,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:156,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:157,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:157,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:158,1
    - Dst: Botan::PK_KEM_Encryptor::encapsulated_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:159,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:160,1
    - Dst: Botan::PK_KEM_Encryptor::shared_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:160,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:163,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:163,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:165,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:165,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:166,1
    - Dst: Botan::PK_KEM_Decryptor::shared_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:167,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:168,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:168,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:170,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey::raw_public_key_bits
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:171,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:174,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey::key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:175,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:176,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey::estimated_strength
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 140
    functionDepth: 3
    functionLinenumber: 140
    functionLinenumberEnd: 179
    functionName: Botan_Tests::roundtrip_test
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 3
    functionsReached:
    - test_eq
    - Botan_Tests::key_length_of_hybrid_public_key
    - Botan_Tests::pubkeys
    - auto::shared_key
    - Botan::secure_vector::size
    - Botan::PK_KEM_Decryptor::decrypt
    - Botan_Tests::length_of_hybrid_ciphertext
    - Botan::PK_KEM_Encryptor::encapsulated_key_length
    - Botan_Tests::estimated_strength_of_hybrid_public_key
    - Botan::PK_KEM_Encryptor::encrypt
    - Botan::PK_KEM_Encryptor::shared_key_length
    - Botan_Tests::length_of_hybrid_shared_key
    - Botan::TLS::Hybrid_KEM_PublicKey::key_length
    - Botan::PK_KEM_Decryptor::shared_key_length
    - Botan_Tests::global_test_rng
    - Botan::TLS::Hybrid_KEM_PublicKey::raw_public_key_bits
    - auto::encapsulated_shared_key
    - kex_kem_fn
    - Botan_Tests::keys
    - Botan::TLS::Hybrid_KEM_PublicKey::estimated_strength
    - Botan_Tests::length_of_hybrid_public_value
    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:183,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:185,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:186,1
    - Dst: std::vector<std::unique_ptr<Botan::Public_Key>>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:186,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:190,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:192,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:193,1
    - Dst: std::vector<std::unique_ptr<Botan::Private_Key>>
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:193,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:197,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:199,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:200,1
    - Dst: Botan_Tests::pubkeys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:200,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:201,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:202,1
    - Dst: Botan_Tests::pubkeys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:202,1
    - Dst: Botan_Tests::kem
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:202,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: Botan_Tests::kex_dh
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:204,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:207,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:209,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:210,1
    - Dst: Botan_Tests::keys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:210,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:211,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:212,1
    - Dst: Botan_Tests::keys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:212,1
    - Dst: Botan_Tests::kem
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:212,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: Botan_Tests::kex_dh
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:214,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:217,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:219,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:220,1
    - Dst: Botan_Tests::keys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:220,1
    - Dst: Botan_Tests::sig
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:220,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:221,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:222,1
    - Dst: Botan_Tests::keys
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:222,1
    - Dst: Botan_Tests::sig
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:222,1
    - Dst: Botan_Tests::kem
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:222,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: Botan_Tests::kex_dh
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:224,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:227,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:228,1
    - Dst: Botan_Tests::roundtrip_test
      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:229,1
    - Dst: Botan_Tests::roundtrip_test
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:229,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:230,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: Botan_Tests::roundtrip_test
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:234,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:235,1
    - Dst: Botan_Tests::roundtrip_test
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 181
    functionDepth: 4
    functionLinenumber: 181
    functionLinenumberEnd: 237
    functionName: Botan_Tests::hybrid_kem_keypair
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::roundtrip_test
    - Botan_Tests::CHECK
    - Botan::TLS::Hybrid_KEM_PublicKey
    - std::vector<std::unique_ptr<Botan::Public_Key>>
    - test_throws
    - Botan_Tests::pubkeys
    - Botan_Tests::sig
    - Botan_Tests::kex_dh
    - std::vector<std::unique_ptr<Botan::Private_Key>>
    - Botan_Tests::kem
    - Botan_Tests::keys
    - Botan::TLS::Hybrid_KEM_PrivateKey::Hybrid_KEM_PrivateKey
    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:244,1
    - Dst: Botan::PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:247,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:249,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:250,1
    - Dst: Botan::PK_KEM_Encryptor::encapsulated_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:251,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:252,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:252,1
    - Dst: Botan::PK_KEM_Encryptor::shared_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:252,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:256,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:257,1
    - Dst: Botan::PK_KEM_Decryptor::encapsulated_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:258,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:260,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:260,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:262,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:263,1
    - Dst: Botan::PK_KEM_Decryptor::shared_key_length
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:263,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:265,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:265,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: 266
      start: 239
    functionDepth: 2
    functionLinenumber: 239
    functionLinenumberEnd: 266
    functionName: Botan_Tests::kex_to_kem_roundtrip
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 3
    functionsReached:
    - test_eq
    - Botan::PK_KEM_Decryptor::decrypt
    - Botan::PK_KEM_Encryptor::encapsulated_key_length
    - Botan::PK_KEM_Decryptor::encapsulated_key_length
    - Botan::PK_KEM_Decryptor::shared_key_length
    - auto::shared_key
    - Botan_Tests::global_test_rng
    - Botan::PK_KEM_Encryptor::encrypt
    - Botan::PK_KEM_Encryptor::shared_key_length
    - auto::encapsulated_shared_key
    - Botan::secure_vector::size
    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:270,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:272,1
    - Dst: Botan::KEX_to_KEM_Adapter_PrivateKey::KEX_to_KEM_Adapter_PrivateKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:273,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:274,1
    - Dst: Botan::KEX_to_KEM_Adapter_PublicKey
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:275,1
    - Dst: Botan_Tests::CHECK
      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:280,1
    - Dst: Botan_Tests::kem
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:281,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:284,1
    - Dst: Botan_Tests::kex_to_kem_roundtrip
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:284,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:285,1
    - Dst: Botan_Tests::kex_to_kem_roundtrip
      Src: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 268
    functionDepth: 3
    functionLinenumber: 268
    functionLinenumberEnd: 287
    functionName: Botan_Tests::kex_to_kem_adapter
    functionSourceFile: /src/botan/src/tests/test_tls_hybrid_kem_key.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::CHECK
    - test_throws
    - Botan::KEX_to_KEM_Adapter_PrivateKey::KEX_to_KEM_Adapter_PrivateKey
    - Botan::KEX_to_KEM_Adapter_PublicKey
    - Botan_Tests::kem
    - Botan_Tests::kex_to_kem_roundtrip
    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_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_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_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::name
    - auto::from_params
    - Test::Result::note_missing
    - auto::derive_key
    - auto::hash
    - Botan::PBKDF::create
    - std::vector::data
    - get_req_sz
    - Botan::PasswordHashFamily::create
    - Test::Result::test_eq
    - get_req_bin
    - std::vector::size
    - get_req_str
    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_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_pbkdf.cpp:77,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_pbkdf.cpp:78,1
    - 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
      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_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:
    - Botan_CLI::Timer::milliseconds
    - Test::Result::start_timer
    - auto::name
    - auto::from_params
    - auto::default_params
    - Test::Result::end_timer
    - auto::parallelism
    - std::vector::push_back
    - std::unique_ptr::hash
    - auto::hash
    - auto::tune
    - auto::memory_param
    - Botan::PasswordHashFamily::create
    - auto::iterations
    - Test::Result::test_eq
    - Test::Result::test_note
    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_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:
    - auto::from_iterations
    - Test::Result::test_failure
    - auto::hash
    - get_req_sz
    - Botan::PasswordHashFamily::create
    - Test::Result::test_eq
    - get_req_bin
    - std::vector::size
    - get_req_str
    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_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
    - Botan_Tests::Test::run_long_tests
    - Test::Result::test_failure
    - auto::hash
    - get_req_sz
    - Botan::PasswordHashFamily::create
    - Test::Result::test_eq
    - get_req_bin
    - std::vector::size
    - get_req_str
    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_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
    - std::vector::begin
    - get_opt_bin
    - Test::Result::test_failure
    - auto::hash
    - get_req_sz
    - Botan::PasswordHashFamily::create
    - std::vector::end
    - Test::Result::test_eq
    - 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_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_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_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_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_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_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_lte
    - static_cast<uint8_t>
    - Test::Result::test_eq
    - Botan::RFC4880_encode_count
    - Test::Result::test_gte
    - Botan::RFC4880_decode_count
    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_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_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_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::name
    - auto::from_params
    - Test::Result::note_missing
    - auto::derive_key
    - auto::hash
    - Botan::PBKDF::create
    - std::vector::data
    - get_req_sz
    - Botan::PasswordHashFamily::create
    - Test::Result::test_eq
    - get_req_bin
    - std::vector::size
    - get_req_str
    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_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_pbkdf.cpp:77,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_pbkdf.cpp:78,1
    - 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
      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_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:
    - Botan_CLI::Timer::milliseconds
    - Test::Result::start_timer
    - auto::name
    - auto::from_params
    - auto::default_params
    - Test::Result::end_timer
    - auto::parallelism
    - std::vector::push_back
    - std::unique_ptr::hash
    - auto::hash
    - auto::tune
    - auto::memory_param
    - Botan::PasswordHashFamily::create
    - auto::iterations
    - Test::Result::test_eq
    - Test::Result::test_note
    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_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:
    - auto::from_iterations
    - Test::Result::test_failure
    - auto::hash
    - get_req_sz
    - Botan::PasswordHashFamily::create
    - Test::Result::test_eq
    - get_req_bin
    - std::vector::size
    - get_req_str
    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_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
    - Botan_Tests::Test::run_long_tests
    - Test::Result::test_failure
    - auto::hash
    - get_req_sz
    - Botan::PasswordHashFamily::create
    - Test::Result::test_eq
    - get_req_bin
    - std::vector::size
    - get_req_str
    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_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
    - std::vector::begin
    - get_opt_bin
    - Test::Result::test_failure
    - auto::hash
    - get_req_sz
    - Botan::PasswordHashFamily::create
    - std::vector::end
    - Test::Result::test_eq
    - 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_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_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_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_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_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_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_lte
    - static_cast<uint8_t>
    - Test::Result::test_eq
    - Botan::RFC4880_encode_count
    - Test::Result::test_gte
    - Botan::RFC4880_decode_count
    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_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_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_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::name
    - auto::from_params
    - Test::Result::note_missing
    - auto::derive_key
    - auto::hash
    - Botan::PBKDF::create
    - std::vector::data
    - get_req_sz
    - Botan::PasswordHashFamily::create
    - Test::Result::test_eq
    - get_req_bin
    - std::vector::size
    - get_req_str
    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_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_pbkdf.cpp:77,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_pbkdf.cpp:78,1
    - 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
      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_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:
    - Botan_CLI::Timer::milliseconds
    - Test::Result::start_timer
    - auto::name
    - auto::from_params
    - auto::default_params
    - Test::Result::end_timer
    - auto::parallelism
    - std::vector::push_back
    - std::unique_ptr::hash
    - auto::hash
    - auto::tune
    - auto::memory_param
    - Botan::PasswordHashFamily::create
    - auto::iterations
    - Test::Result::test_eq
    - Test::Result::test_note
    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_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:
    - auto::from_iterations
    - Test::Result::test_failure
    - auto::hash
    - get_req_sz
    - Botan::PasswordHashFamily::create
    - Test::Result::test_eq
    - get_req_bin
    - std::vector::size
    - get_req_str
    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_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
    - Botan_Tests::Test::run_long_tests
    - Test::Result::test_failure
    - auto::hash
    - get_req_sz
    - Botan::PasswordHashFamily::create
    - Test::Result::test_eq
    - get_req_bin
    - std::vector::size
    - get_req_str
    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_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
    - std::vector::begin
    - get_opt_bin
    - Test::Result::test_failure
    - auto::hash
    - get_req_sz
    - Botan::PasswordHashFamily::create
    - std::vector::end
    - Test::Result::test_eq
    - 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_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_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_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_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_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_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_lte
    - static_cast<uint8_t>
    - Test::Result::test_eq
    - Botan::RFC4880_encode_count
    - Test::Result::test_gte
    - Botan::RFC4880_decode_count
    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_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_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_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::name
    - auto::from_params
    - Test::Result::note_missing
    - auto::derive_key
    - auto::hash
    - Botan::PBKDF::create
    - std::vector::data
    - get_req_sz
    - Botan::PasswordHashFamily::create
    - Test::Result::test_eq
    - get_req_bin
    - std::vector::size
    - get_req_str
    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_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_pbkdf.cpp:77,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_pbkdf.cpp:78,1
    - 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
      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_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:
    - Botan_CLI::Timer::milliseconds
    - Test::Result::start_timer
    - auto::name
    - auto::from_params
    - auto::default_params
    - Test::Result::end_timer
    - auto::parallelism
    - std::vector::push_back
    - std::unique_ptr::hash
    - auto::hash
    - auto::tune
    - auto::memory_param
    - Botan::PasswordHashFamily::create
    - auto::iterations
    - Test::Result::test_eq
    - Test::Result::test_note
    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_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:
    - auto::from_iterations
    - Test::Result::test_failure
    - auto::hash
    - get_req_sz
    - Botan::PasswordHashFamily::create
    - Test::Result::test_eq
    - get_req_bin
    - std::vector::size
    - get_req_str
    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_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
    - Botan_Tests::Test::run_long_tests
    - Test::Result::test_failure
    - auto::hash
    - get_req_sz
    - Botan::PasswordHashFamily::create
    - Test::Result::test_eq
    - get_req_bin
    - std::vector::size
    - get_req_str
    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_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
    - std::vector::begin
    - get_opt_bin
    - Test::Result::test_failure
    - auto::hash
    - get_req_sz
    - Botan::PasswordHashFamily::create
    - std::vector::end
    - Test::Result::test_eq
    - 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_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_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_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_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_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_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_lte
    - static_cast<uint8_t>
    - Test::Result::test_eq
    - Botan::RFC4880_encode_count
    - Test::Result::test_gte
    - Botan::RFC4880_decode_count
    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:34,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tests.cpp:39,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:40,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tests.cpp:45,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tests.cpp:45,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:46,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tests.cpp:51,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:52,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:55,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_tests.cpp:55,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tests.cpp:61,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:62,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_tests.cpp:69,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:70,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_tests.cpp:77,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_tests.cpp:77,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tests.cpp:77,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_tests.cpp:77,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tests.cpp:77,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:78,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tests.cpp:85,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:86,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_tests.cpp:93,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:94,1
    - Dst: Test::Result::test_is_nonempty
      Src: /src/botan/src/tests/test_tests.cpp:99,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:100,1
    - Dst: Test::Result::test_lt
      Src: /src/botan/src/tests/test_tests.cpp:105,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:106,1
    - Dst: Test::Result::test_lte
      Src: /src/botan/src/tests/test_tests.cpp:111,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:112,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_tests.cpp:117,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:118,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_tests.cpp:123,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:124,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_tests.cpp:129,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:130,1
    - Dst: Test::Result::test_rc
      Src: /src/botan/src/tests/test_tests.cpp:135,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:136,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_tests.cpp:141,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:142,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tests.cpp:147,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/test_tests.cpp:148,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:149,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tests.cpp:154,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tests.cpp:156,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:158,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tests.cpp:163,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:164,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tests.cpp:169,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/test_tests.cpp:170,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:171,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tests.cpp:176,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/test_tests.cpp:177,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:178,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_tests.cpp:183,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/test_tests.cpp:183,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:184,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/tests/test_tests.cpp:190,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/tests/test_tests.cpp:191,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tests.cpp:192,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:193,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/tests/test_tests.cpp:198,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/tests/test_tests.cpp:199,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_tests.cpp:200,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:201,1
    - Dst: Botan_Tests::Test_Tests::test_testsuite_rng
      Src: /src/botan/src/tests/test_tests.cpp:205,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 92
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 206
    functionName: Botan_Tests::Test_Tests::run
    functionSourceFile: /src/botan/src/tests/test_tests.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Test::Result::test_failure
    - Test::Result::test_lte
    - Test::Result::test_gte
    - Test::Result::test_rc_fail
    - Test::Result::test_lt
    - Test::Result::test_ne
    - std::vector::data
    - Botan_Tests::Test_Tests::verify_failure
    - std::vector<uint8_t>
    - Test::Result::test_is_nonempty
    - Botan::BigInt::from_word
    - Test::Result::test_rc_ok
    - std::vector::size
    - Botan_Tests::Test_Tests::test_testsuite_rng
    - std::runtime_error
    - std::string
    - Test::Result::test_eq
    - Test::Result::test_rc
    - Test::Result::test_no_throw
    - Botan_Tests::Test::Result::Failure
    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:216,1
    - Dst: auto::next_byte
      Src: /src/botan/src/tests/test_tests.cpp:219,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tests.cpp:224,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tests.cpp:226,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 231
    functionName: Botan_Tests::Test_Tests::test_testsuite_rng
    functionSourceFile: /src/botan/src/tests/test_tests.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::Test::new_rng
    - auto::next_byte
    - Test::Result::test_success
    - Test::Result::test_failure
    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:234,1
    - Dst: test_success
      Src: /src/botan/src/tests/test_tests.cpp:235,1
    - Dst: result_string
      Src: /src/botan/src/tests/test_tests.cpp:236,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tests.cpp:238,1
    - Dst: std::string::find
      Src: /src/botan/src/tests/test_tests.cpp:238,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_tests.cpp:240,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: 242
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 242
    functionName: Botan_Tests::Test_Tests::verify_failure
    functionSourceFile: /src/botan/src/tests/test_tests.cpp
    functionUses: 1
    functionsReached:
    - test_success
    - tests_failed
    - test_failure
    - std::string::find
    - result_string
    - confirm
    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:34,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tests.cpp:39,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:40,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tests.cpp:45,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tests.cpp:45,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:46,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tests.cpp:51,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:52,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:55,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_tests.cpp:55,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tests.cpp:61,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:62,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_tests.cpp:69,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:70,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_tests.cpp:77,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_tests.cpp:77,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tests.cpp:77,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_tests.cpp:77,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tests.cpp:77,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:78,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tests.cpp:85,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:86,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_tests.cpp:93,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:94,1
    - Dst: Test::Result::test_is_nonempty
      Src: /src/botan/src/tests/test_tests.cpp:99,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:100,1
    - Dst: Test::Result::test_lt
      Src: /src/botan/src/tests/test_tests.cpp:105,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:106,1
    - Dst: Test::Result::test_lte
      Src: /src/botan/src/tests/test_tests.cpp:111,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:112,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_tests.cpp:117,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:118,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_tests.cpp:123,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:124,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_tests.cpp:129,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:130,1
    - Dst: Test::Result::test_rc
      Src: /src/botan/src/tests/test_tests.cpp:135,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:136,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_tests.cpp:141,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:142,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tests.cpp:147,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/test_tests.cpp:148,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:149,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tests.cpp:154,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tests.cpp:156,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:158,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tests.cpp:163,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:164,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tests.cpp:169,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/test_tests.cpp:170,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:171,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tests.cpp:176,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/test_tests.cpp:177,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:178,1
    - Dst: Test::Result::test_no_throw
      Src: /src/botan/src/tests/test_tests.cpp:183,1
    - Dst: std::runtime_error
      Src: /src/botan/src/tests/test_tests.cpp:183,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:184,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/tests/test_tests.cpp:190,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/tests/test_tests.cpp:191,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tests.cpp:192,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:193,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/tests/test_tests.cpp:198,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/tests/test_tests.cpp:199,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_tests.cpp:200,1
    - Dst: Botan_Tests::Test_Tests::verify_failure
      Src: /src/botan/src/tests/test_tests.cpp:201,1
    - Dst: Botan_Tests::Test_Tests::test_testsuite_rng
      Src: /src/botan/src/tests/test_tests.cpp:205,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 92
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 21
    functionDepth: 2
    functionLinenumber: 21
    functionLinenumberEnd: 206
    functionName: Botan_Tests::Test_Tests::run
    functionSourceFile: /src/botan/src/tests/test_tests.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Test::Result::test_failure
    - Test::Result::test_lte
    - Test::Result::test_gte
    - Test::Result::test_rc_fail
    - Test::Result::test_lt
    - Test::Result::test_ne
    - std::vector::data
    - Botan_Tests::Test_Tests::verify_failure
    - std::vector<uint8_t>
    - Test::Result::test_is_nonempty
    - Botan::BigInt::from_word
    - Test::Result::test_rc_ok
    - std::vector::size
    - Botan_Tests::Test_Tests::test_testsuite_rng
    - std::runtime_error
    - std::string
    - Test::Result::test_eq
    - Test::Result::test_rc
    - Test::Result::test_no_throw
    - Botan_Tests::Test::Result::Failure
    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:216,1
    - Dst: auto::next_byte
      Src: /src/botan/src/tests/test_tests.cpp:219,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tests.cpp:224,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tests.cpp:226,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 231
    functionName: Botan_Tests::Test_Tests::test_testsuite_rng
    functionSourceFile: /src/botan/src/tests/test_tests.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::Test::new_rng
    - auto::next_byte
    - Test::Result::test_success
    - Test::Result::test_failure
    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:234,1
    - Dst: test_success
      Src: /src/botan/src/tests/test_tests.cpp:235,1
    - Dst: result_string
      Src: /src/botan/src/tests/test_tests.cpp:236,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tests.cpp:238,1
    - Dst: std::string::find
      Src: /src/botan/src/tests/test_tests.cpp:238,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_tests.cpp:240,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: 242
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 242
    functionName: Botan_Tests::Test_Tests::verify_failure
    functionSourceFile: /src/botan/src/tests/test_tests.cpp
    functionUses: 2
    functionsReached:
    - test_success
    - tests_failed
    - test_failure
    - std::string::find
    - result_string
    - confirm
    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::make_unique<Botan::X448_PrivateKey>
    - get_req_bin
    - std::vector::begin
    - std::vector::end
    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::make_unique<Botan::X448_PrivateKey>
    - get_req_bin
    - std::vector::begin
    - std::vector::end
    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::make_unique<Botan::X448_PrivateKey>
    - get_req_bin
    - std::vector::begin
    - std::vector::end
    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::make_unique<Botan::X448_PrivateKey>
    - get_req_bin
    - std::vector::begin
    - std::vector::end
    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:
    - Dst: set_key
      Src: /src/botan/src/tests/test_rngs.cpp:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 24
    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:27,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_rngs.cpp:28,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_rngs.cpp:29,1
    - Dst: Botan_Tests::CTR_DRBG_AES256::clear
      Src: /src/botan/src/tests/test_rngs.cpp:32,1
    - Dst: Botan_Tests::CTR_DRBG_AES256::update
      Src: /src/botan/src/tests/test_rngs.cpp:33,1
    - Dst: std::span<uint8_t>::empty
      Src: /src/botan/src/tests/test_rngs.cpp:36,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/tests/test_rngs.cpp:37,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/tests/test_rngs.cpp:38,1
    - Dst: Botan_Tests::CTR_DRBG_AES256::incr_V_into
      Src: /src/botan/src/tests/test_rngs.cpp:41,1
    - Dst: std::span<uint8_t>::subspan
      Src: /src/botan/src/tests/test_rngs.cpp:41,1
    - Dst: encrypt_n
      Src: /src/botan/src/tests/test_rngs.cpp:44,1
    - Dst: std::span<uint8_t>::data
      Src: /src/botan/src/tests/test_rngs.cpp:44,1
    - Dst: std::span<uint8_t>::data
      Src: /src/botan/src/tests/test_rngs.cpp:44,1
    - Dst: Botan_Tests::CTR_DRBG_AES256::incr_V_into
      Src: /src/botan/src/tests/test_rngs.cpp:48,1
    - Dst: encrypt
      Src: /src/botan/src/tests/test_rngs.cpp:49,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_rngs.cpp:50,1
    - Dst: std::span<uint8_t>::subspan
      Src: /src/botan/src/tests/test_rngs.cpp:50,1
    - Dst: Botan_Tests::CTR_DRBG_AES256::update
      Src: /src/botan/src/tests/test_rngs.cpp:53,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: 55
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 55
    functionName: Botan_Tests::CTR_DRBG_AES256::fill_bytes_with_input
    functionSourceFile: /src/botan/src/tests/test_rngs.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::empty
    - std::span<uint8_t>::subspan
    - Test_Error
    - std::span<const uint8_t>::size
    - Botan_Tests::CTR_DRBG_AES256::clear
    - encrypt_n
    - std::span<uint8_t>::size
    - encrypt
    - Botan::copy_mem
    - std::span<uint8_t>::data
    - Botan_Tests::CTR_DRBG_AES256::incr_V_into
    - std::span<uint8_t>::empty
    - Botan_Tests::CTR_DRBG_AES256::update
    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:58,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_rngs.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seed
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: Botan_Tests::CTR_DRBG_AES256::CTR_DRBG_AES256
    functionSourceFile: /src/botan/src/tests/test_rngs.cpp
    functionUses: 0
    functionsReached:
    - Botan::BlockCipher::create_or_throw
    - add_entropy
    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:63,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/tests/test_rngs.cpp:63,1
    - Dst: Botan::store_be<uint64_t>
      Src: /src/botan/src/tests/test_rngs.cpp:70,1
    - Dst: std::span<uint8_t>::data
      Src: /src/botan/src/tests/test_rngs.cpp:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 71
    functionName: Botan_Tests::CTR_DRBG_AES256::incr_V_into
    functionSourceFile: /src/botan/src/tests/test_rngs.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::store_be<uint64_t>
    - std::span<uint8_t>::size
    - 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:78,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_rngs.cpp:78,1
    - Dst: encrypt_n
      Src: /src/botan/src/tests/test_rngs.cpp:81,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_rngs.cpp:81,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_rngs.cpp:81,1
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/tests/test_rngs.cpp:83,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_rngs.cpp:84,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_rngs.cpp:84,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_rngs.cpp:84,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_rngs.cpp:85,1
    - Dst: set_key
      Src: /src/botan/src/tests/test_rngs.cpp:90,1
    - Dst: std::span
      Src: /src/botan/src/tests/test_rngs.cpp:90,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_rngs.cpp:92,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_rngs.cpp:92,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_rngs.cpp:93,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_rngs.cpp:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - provided_data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 94
    functionName: Botan_Tests::CTR_DRBG_AES256::update
    functionSourceFile: /src/botan/src/tests/test_rngs.cpp
    functionUses: 1
    functionsReached:
    - std::span<const uint8_t>::empty
    - BOTAN_ASSERT_NOMSG
    - std::array::data
    - std::span<const uint8_t>::size
    - Botan::load_be<uint64_t>
    - std::span::subspan
    - encrypt_n
    - set_key
    - std::array::size
    - Botan_Tests::CTR_DRBG_AES256::incr_V_into
    - std::span
    linkageType: ''
    returnType: void
    signature: void CTR_DRBG_AES256::update(std::span<const uint8_t> provided_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_key
      Src: /src/botan/src/tests/test_rngs.cpp:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 24
    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:27,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_rngs.cpp:28,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_rngs.cpp:29,1
    - Dst: Botan_Tests::CTR_DRBG_AES256::clear
      Src: /src/botan/src/tests/test_rngs.cpp:32,1
    - Dst: Botan_Tests::CTR_DRBG_AES256::update
      Src: /src/botan/src/tests/test_rngs.cpp:33,1
    - Dst: std::span<uint8_t>::empty
      Src: /src/botan/src/tests/test_rngs.cpp:36,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/tests/test_rngs.cpp:37,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/tests/test_rngs.cpp:38,1
    - Dst: Botan_Tests::CTR_DRBG_AES256::incr_V_into
      Src: /src/botan/src/tests/test_rngs.cpp:41,1
    - Dst: std::span<uint8_t>::subspan
      Src: /src/botan/src/tests/test_rngs.cpp:41,1
    - Dst: encrypt_n
      Src: /src/botan/src/tests/test_rngs.cpp:44,1
    - Dst: std::span<uint8_t>::data
      Src: /src/botan/src/tests/test_rngs.cpp:44,1
    - Dst: std::span<uint8_t>::data
      Src: /src/botan/src/tests/test_rngs.cpp:44,1
    - Dst: Botan_Tests::CTR_DRBG_AES256::incr_V_into
      Src: /src/botan/src/tests/test_rngs.cpp:48,1
    - Dst: encrypt
      Src: /src/botan/src/tests/test_rngs.cpp:49,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_rngs.cpp:50,1
    - Dst: std::span<uint8_t>::subspan
      Src: /src/botan/src/tests/test_rngs.cpp:50,1
    - Dst: Botan_Tests::CTR_DRBG_AES256::update
      Src: /src/botan/src/tests/test_rngs.cpp:53,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: 55
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 55
    functionName: Botan_Tests::CTR_DRBG_AES256::fill_bytes_with_input
    functionSourceFile: /src/botan/src/tests/test_rngs.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::empty
    - std::span<uint8_t>::subspan
    - Test_Error
    - std::span<const uint8_t>::size
    - Botan_Tests::CTR_DRBG_AES256::clear
    - encrypt_n
    - std::span<uint8_t>::size
    - encrypt
    - Botan::copy_mem
    - std::span<uint8_t>::data
    - Botan_Tests::CTR_DRBG_AES256::incr_V_into
    - std::span<uint8_t>::empty
    - Botan_Tests::CTR_DRBG_AES256::update
    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:58,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_rngs.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seed
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: Botan_Tests::CTR_DRBG_AES256::CTR_DRBG_AES256
    functionSourceFile: /src/botan/src/tests/test_rngs.cpp
    functionUses: 0
    functionsReached:
    - Botan::BlockCipher::create_or_throw
    - add_entropy
    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:63,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/tests/test_rngs.cpp:63,1
    - Dst: Botan::store_be<uint64_t>
      Src: /src/botan/src/tests/test_rngs.cpp:70,1
    - Dst: std::span<uint8_t>::data
      Src: /src/botan/src/tests/test_rngs.cpp:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 71
    functionName: Botan_Tests::CTR_DRBG_AES256::incr_V_into
    functionSourceFile: /src/botan/src/tests/test_rngs.cpp
    functionUses: 3
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::store_be<uint64_t>
    - std::span<uint8_t>::size
    - 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:78,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_rngs.cpp:78,1
    - Dst: encrypt_n
      Src: /src/botan/src/tests/test_rngs.cpp:81,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_rngs.cpp:81,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_rngs.cpp:81,1
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/tests/test_rngs.cpp:83,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_rngs.cpp:84,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_rngs.cpp:84,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_rngs.cpp:84,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/tests/test_rngs.cpp:85,1
    - Dst: set_key
      Src: /src/botan/src/tests/test_rngs.cpp:90,1
    - Dst: std::span
      Src: /src/botan/src/tests/test_rngs.cpp:90,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_rngs.cpp:92,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_rngs.cpp:92,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/tests/test_rngs.cpp:93,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_rngs.cpp:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - provided_data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 94
    functionName: Botan_Tests::CTR_DRBG_AES256::update
    functionSourceFile: /src/botan/src/tests/test_rngs.cpp
    functionUses: 2
    functionsReached:
    - std::span<const uint8_t>::empty
    - BOTAN_ASSERT_NOMSG
    - std::array::data
    - std::span<const uint8_t>::size
    - Botan::load_be<uint64_t>
    - std::span::subspan
    - encrypt_n
    - set_key
    - std::array::size
    - Botan_Tests::CTR_DRBG_AES256::incr_V_into
    - std::span
    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: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    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:31,1
    - 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: std::vector::begin
      Src: /src/botan/src/tests/test_keywrap.cpp:36,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_keywrap.cpp:36,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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_keywrap.cpp:39,1
    - Dst: Botan::rfc3394_keywrap
      Src: /src/botan/src/tests/test_keywrap.cpp:39,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_keywrap.cpp:40,1
    - Dst: Botan::rfc3394_keyunwrap
      Src: /src/botan/src/tests/test_keywrap.cpp:40,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_keywrap.cpp:42,1
    - Dst: what
      Src: /src/botan/src/tests/test_keywrap.cpp:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 46
    functionName: Botan_Tests::RFC3394_Keywrap_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_keywrap.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - Test::Result::test_failure
    - Botan::rfc3394_keyunwrap
    - std::vector::end
    - Test::Result::test_eq
    - Botan::rfc3394_keywrap
    - what
    - 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: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    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:63,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_keywrap.cpp:66,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: Botan::BlockCipher::create_or_throw
      Src: /src/botan/src/tests/test_keywrap.cpp:71,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_keywrap.cpp:71,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:71,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_keywrap.cpp:73,1
    - Dst: nist_key_wrap
      Src: /src/botan/src/tests/test_keywrap.cpp:78,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:78,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:78,1
    - Dst: nist_key_wrap_padded
      Src: /src/botan/src/tests/test_keywrap.cpp:80,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:80,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:80,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_keywrap.cpp:83,1
    - Dst: nist_key_unwrap
      Src: /src/botan/src/tests/test_keywrap.cpp:88,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:88,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:88,1
    - Dst: nist_key_unwrap_padded
      Src: /src/botan/src/tests/test_keywrap.cpp:90,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:90,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:90,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_keywrap.cpp:93,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_keywrap.cpp:95,1
    - Dst: what
      Src: /src/botan/src/tests/test_keywrap.cpp:95,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_keywrap.cpp:98,1
    - Dst: what
      Src: /src/botan/src/tests/test_keywrap.cpp:98,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - ' typ'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 102
    functionName: Botan_Tests::NIST_Keywrap_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_keywrap.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - nist_key_unwrap
    - Test::Result::test_failure
    - std::vector::data
    - Botan::BlockCipher::create_or_throw
    - nist_key_wrap
    - std::unique_ptr::set_key
    - Test::Result::test_eq
    - nist_key_unwrap_padded
    - what
    - std::to_string
    - get_req_bin
    - std::vector::size
    - nist_key_wrap_padded
    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: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    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:116,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_keywrap.cpp:119,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_keywrap.cpp:120,1
    - Dst: Botan::BlockCipher::create_or_throw
      Src: /src/botan/src/tests/test_keywrap.cpp:123,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_keywrap.cpp:123,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:123,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_keywrap.cpp:125,1
    - Dst: nist_key_unwrap
      Src: /src/botan/src/tests/test_keywrap.cpp:130,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:130,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:130,1
    - Dst: nist_key_unwrap_padded
      Src: /src/botan/src/tests/test_keywrap.cpp:132,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:132,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:132,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_keywrap.cpp:135,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_keywrap.cpp:137,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_keywrap.cpp:140,1
    - Dst: what
      Src: /src/botan/src/tests/test_keywrap.cpp:140,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - ' typ'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 144
    functionName: Botan_Tests::NIST_Keywrap_Invalid_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_keywrap.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - nist_key_unwrap
    - Test::Result::test_failure
    - std::vector::data
    - Botan::BlockCipher::create_or_throw
    - std::unique_ptr::set_key
    - nist_key_unwrap_padded
    - what
    - std::to_string
    - get_req_bin
    - std::vector::size
    - Test::Result::test_success
    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: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    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:31,1
    - 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: std::vector::begin
      Src: /src/botan/src/tests/test_keywrap.cpp:36,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_keywrap.cpp:36,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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_keywrap.cpp:39,1
    - Dst: Botan::rfc3394_keywrap
      Src: /src/botan/src/tests/test_keywrap.cpp:39,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_keywrap.cpp:40,1
    - Dst: Botan::rfc3394_keyunwrap
      Src: /src/botan/src/tests/test_keywrap.cpp:40,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_keywrap.cpp:42,1
    - Dst: what
      Src: /src/botan/src/tests/test_keywrap.cpp:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 46
    functionName: Botan_Tests::RFC3394_Keywrap_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_keywrap.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - Test::Result::test_failure
    - Botan::rfc3394_keyunwrap
    - std::vector::end
    - Test::Result::test_eq
    - Botan::rfc3394_keywrap
    - what
    - 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: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    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:63,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_keywrap.cpp:66,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: Botan::BlockCipher::create_or_throw
      Src: /src/botan/src/tests/test_keywrap.cpp:71,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_keywrap.cpp:71,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:71,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_keywrap.cpp:73,1
    - Dst: nist_key_wrap
      Src: /src/botan/src/tests/test_keywrap.cpp:78,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:78,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:78,1
    - Dst: nist_key_wrap_padded
      Src: /src/botan/src/tests/test_keywrap.cpp:80,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:80,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:80,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_keywrap.cpp:83,1
    - Dst: nist_key_unwrap
      Src: /src/botan/src/tests/test_keywrap.cpp:88,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:88,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:88,1
    - Dst: nist_key_unwrap_padded
      Src: /src/botan/src/tests/test_keywrap.cpp:90,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:90,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:90,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_keywrap.cpp:93,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_keywrap.cpp:95,1
    - Dst: what
      Src: /src/botan/src/tests/test_keywrap.cpp:95,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_keywrap.cpp:98,1
    - Dst: what
      Src: /src/botan/src/tests/test_keywrap.cpp:98,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - ' typ'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 102
    functionName: Botan_Tests::NIST_Keywrap_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_keywrap.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - nist_key_unwrap
    - Test::Result::test_failure
    - std::vector::data
    - Botan::BlockCipher::create_or_throw
    - nist_key_wrap
    - std::unique_ptr::set_key
    - Test::Result::test_eq
    - nist_key_unwrap_padded
    - what
    - std::to_string
    - get_req_bin
    - std::vector::size
    - nist_key_wrap_padded
    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: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    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:116,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_keywrap.cpp:119,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_keywrap.cpp:120,1
    - Dst: Botan::BlockCipher::create_or_throw
      Src: /src/botan/src/tests/test_keywrap.cpp:123,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_keywrap.cpp:123,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:123,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_keywrap.cpp:125,1
    - Dst: nist_key_unwrap
      Src: /src/botan/src/tests/test_keywrap.cpp:130,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:130,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:130,1
    - Dst: nist_key_unwrap_padded
      Src: /src/botan/src/tests/test_keywrap.cpp:132,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:132,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:132,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_keywrap.cpp:135,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_keywrap.cpp:137,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_keywrap.cpp:140,1
    - Dst: what
      Src: /src/botan/src/tests/test_keywrap.cpp:140,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - ' typ'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 144
    functionName: Botan_Tests::NIST_Keywrap_Invalid_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_keywrap.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - nist_key_unwrap
    - Test::Result::test_failure
    - std::vector::data
    - Botan::BlockCipher::create_or_throw
    - std::unique_ptr::set_key
    - nist_key_unwrap_padded
    - what
    - std::to_string
    - get_req_bin
    - std::vector::size
    - Test::Result::test_success
    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: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    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:31,1
    - 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: std::vector::begin
      Src: /src/botan/src/tests/test_keywrap.cpp:36,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_keywrap.cpp:36,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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_keywrap.cpp:39,1
    - Dst: Botan::rfc3394_keywrap
      Src: /src/botan/src/tests/test_keywrap.cpp:39,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_keywrap.cpp:40,1
    - Dst: Botan::rfc3394_keyunwrap
      Src: /src/botan/src/tests/test_keywrap.cpp:40,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_keywrap.cpp:42,1
    - Dst: what
      Src: /src/botan/src/tests/test_keywrap.cpp:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 46
    functionName: Botan_Tests::RFC3394_Keywrap_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_keywrap.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - Test::Result::test_failure
    - Botan::rfc3394_keyunwrap
    - std::vector::end
    - Test::Result::test_eq
    - Botan::rfc3394_keywrap
    - what
    - 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: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    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:63,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_keywrap.cpp:66,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: Botan::BlockCipher::create_or_throw
      Src: /src/botan/src/tests/test_keywrap.cpp:71,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_keywrap.cpp:71,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:71,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_keywrap.cpp:73,1
    - Dst: nist_key_wrap
      Src: /src/botan/src/tests/test_keywrap.cpp:78,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:78,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:78,1
    - Dst: nist_key_wrap_padded
      Src: /src/botan/src/tests/test_keywrap.cpp:80,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:80,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:80,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_keywrap.cpp:83,1
    - Dst: nist_key_unwrap
      Src: /src/botan/src/tests/test_keywrap.cpp:88,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:88,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:88,1
    - Dst: nist_key_unwrap_padded
      Src: /src/botan/src/tests/test_keywrap.cpp:90,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:90,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:90,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_keywrap.cpp:93,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_keywrap.cpp:95,1
    - Dst: what
      Src: /src/botan/src/tests/test_keywrap.cpp:95,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_keywrap.cpp:98,1
    - Dst: what
      Src: /src/botan/src/tests/test_keywrap.cpp:98,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - ' typ'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 102
    functionName: Botan_Tests::NIST_Keywrap_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_keywrap.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - nist_key_unwrap
    - Test::Result::test_failure
    - std::vector::data
    - Botan::BlockCipher::create_or_throw
    - nist_key_wrap
    - std::unique_ptr::set_key
    - Test::Result::test_eq
    - nist_key_unwrap_padded
    - what
    - std::to_string
    - get_req_bin
    - std::vector::size
    - nist_key_wrap_padded
    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: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    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:116,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_keywrap.cpp:119,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_keywrap.cpp:120,1
    - Dst: Botan::BlockCipher::create_or_throw
      Src: /src/botan/src/tests/test_keywrap.cpp:123,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_keywrap.cpp:123,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:123,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_keywrap.cpp:125,1
    - Dst: nist_key_unwrap
      Src: /src/botan/src/tests/test_keywrap.cpp:130,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:130,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:130,1
    - Dst: nist_key_unwrap_padded
      Src: /src/botan/src/tests/test_keywrap.cpp:132,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:132,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:132,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_keywrap.cpp:135,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_keywrap.cpp:137,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_keywrap.cpp:140,1
    - Dst: what
      Src: /src/botan/src/tests/test_keywrap.cpp:140,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - ' typ'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 144
    functionName: Botan_Tests::NIST_Keywrap_Invalid_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_keywrap.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - nist_key_unwrap
    - Test::Result::test_failure
    - std::vector::data
    - Botan::BlockCipher::create_or_throw
    - std::unique_ptr::set_key
    - nist_key_unwrap_padded
    - what
    - std::to_string
    - get_req_bin
    - std::vector::size
    - Test::Result::test_success
    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: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    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:31,1
    - 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: std::vector::begin
      Src: /src/botan/src/tests/test_keywrap.cpp:36,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_keywrap.cpp:36,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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_keywrap.cpp:39,1
    - Dst: Botan::rfc3394_keywrap
      Src: /src/botan/src/tests/test_keywrap.cpp:39,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_keywrap.cpp:40,1
    - Dst: Botan::rfc3394_keyunwrap
      Src: /src/botan/src/tests/test_keywrap.cpp:40,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_keywrap.cpp:42,1
    - Dst: what
      Src: /src/botan/src/tests/test_keywrap.cpp:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 46
    functionName: Botan_Tests::RFC3394_Keywrap_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_keywrap.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - Test::Result::test_failure
    - Botan::rfc3394_keyunwrap
    - std::vector::end
    - Test::Result::test_eq
    - Botan::rfc3394_keywrap
    - what
    - 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: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    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:63,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_keywrap.cpp:66,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: Botan::BlockCipher::create_or_throw
      Src: /src/botan/src/tests/test_keywrap.cpp:71,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_keywrap.cpp:71,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:71,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_keywrap.cpp:73,1
    - Dst: nist_key_wrap
      Src: /src/botan/src/tests/test_keywrap.cpp:78,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:78,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:78,1
    - Dst: nist_key_wrap_padded
      Src: /src/botan/src/tests/test_keywrap.cpp:80,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:80,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:80,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_keywrap.cpp:83,1
    - Dst: nist_key_unwrap
      Src: /src/botan/src/tests/test_keywrap.cpp:88,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:88,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:88,1
    - Dst: nist_key_unwrap_padded
      Src: /src/botan/src/tests/test_keywrap.cpp:90,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:90,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:90,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_keywrap.cpp:93,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_keywrap.cpp:95,1
    - Dst: what
      Src: /src/botan/src/tests/test_keywrap.cpp:95,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_keywrap.cpp:98,1
    - Dst: what
      Src: /src/botan/src/tests/test_keywrap.cpp:98,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 2
    argNames:
    - ' typ'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 102
    functionName: Botan_Tests::NIST_Keywrap_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_keywrap.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - nist_key_unwrap
    - Test::Result::test_failure
    - std::vector::data
    - Botan::BlockCipher::create_or_throw
    - nist_key_wrap
    - std::unique_ptr::set_key
    - Test::Result::test_eq
    - nist_key_unwrap_padded
    - what
    - std::to_string
    - get_req_bin
    - std::vector::size
    - nist_key_wrap_padded
    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: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    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:116,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_keywrap.cpp:119,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_keywrap.cpp:120,1
    - Dst: Botan::BlockCipher::create_or_throw
      Src: /src/botan/src/tests/test_keywrap.cpp:123,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_keywrap.cpp:123,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:123,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/tests/test_keywrap.cpp:125,1
    - Dst: nist_key_unwrap
      Src: /src/botan/src/tests/test_keywrap.cpp:130,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:130,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:130,1
    - Dst: nist_key_unwrap_padded
      Src: /src/botan/src/tests/test_keywrap.cpp:132,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_keywrap.cpp:132,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_keywrap.cpp:132,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_keywrap.cpp:135,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_keywrap.cpp:137,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_keywrap.cpp:140,1
    - Dst: what
      Src: /src/botan/src/tests/test_keywrap.cpp:140,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - ' typ'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 144
    functionName: Botan_Tests::NIST_Keywrap_Invalid_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_keywrap.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - nist_key_unwrap
    - Test::Result::test_failure
    - std::vector::data
    - Botan::BlockCipher::create_or_throw
    - std::unique_ptr::set_key
    - nist_key_unwrap_padded
    - what
    - std::to_string
    - get_req_bin
    - std::vector::size
    - Test::Result::test_success
    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::set<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::set<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_tests
    - Botan_Tests::Test::registered_test_categories
    - std::ostringstream::str
    - print_item_list
    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::set<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::set<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_tests
    - Botan_Tests::Test::registered_test_categories
    - std::ostringstream::str
    - print_item_list
    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: 39
    functionsReached:
    - Botan_CLI::Argument_Parser::parse_args
    - Botan_Tests::Test_Runner::run
    - Botan_CLI::Argument_Parser::get_arg_list
    - Botan_CLI::Argument_Parser::flag_set
    - Botan::runtime_version_check
    - Botan_CLI::Argument_Parser::get_arg
    - help_text
    - ::setenv
    - std::vector<std::string>
    - what
    - Botan_CLI::Argument_Parser::get_arg_sz
    - Botan_Tests::Test::registered_tests
    - Botan_CLI::Argument_Parser::get_arg_hex_sz_or
    - Botan_CLI::Argument_Parser::get_arg_or
    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: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    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:30,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pk_pad.cpp:35,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_pk_pad.cpp:36,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pk_pad.cpp:39,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pk_pad.cpp:39,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pk_pad.cpp:42,1
    - Dst: auto::unpad
      Src: /src/botan/src/tests/test_pk_pad.cpp:43,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pk_pad.cpp:45,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_pk_pad.cpp:45,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_pk_pad.cpp:47,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_pk_pad.cpp:48,1
    - Dst: auto::value_or
      Src: /src/botan/src/tests/test_pk_pad.cpp:48,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pk_pad.cpp:49,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pk_pad.cpp:58,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - ' hdr'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 64
    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
    - get_opt_bin
    - auto::has_value
    - Test::Result::test_eq
    - std::vector::resize
    - Test::Result::confirm
    - get_req_bin
    - std::vector::size
    - auto::value_or
    - auto::unpad
    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:106,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_pk_pad.cpp:106,1
    - Dst: Botan::SignaturePaddingScheme::create
      Src: /src/botan/src/tests/test_pk_pad.cpp:107,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pk_pad.cpp:107,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pk_pad.cpp:108,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pk_pad.cpp:108,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pk_pad.cpp:108,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pk_pad.cpp:110,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pk_pad.cpp:112,1
    - Dst: what
      Src: /src/botan/src/tests/test_pk_pad.cpp:112,1
    - Dst: Botan::SignaturePaddingScheme::create_or_throw
      Src: /src/botan/src/tests/test_pk_pad.cpp:119,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pk_pad.cpp:120,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pk_pad.cpp:123,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pk_pad.cpp:125,1
    - Dst: what
      Src: /src/botan/src/tests/test_pk_pad.cpp:126,1
    - Dst: Botan::SignaturePaddingScheme::create
      Src: /src/botan/src/tests/test_pk_pad.cpp:133,1
    - Dst: Botan::SignaturePaddingScheme::create
      Src: /src/botan/src/tests/test_pk_pad.cpp:134,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pk_pad.cpp:134,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pk_pad.cpp:135,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pk_pad.cpp:135,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pk_pad.cpp:135,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pk_pad.cpp:137,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pk_pad.cpp:139,1
    - Dst: what
      Src: /src/botan/src/tests/test_pk_pad.cpp:139,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 144
    functionName: Botan_Tests::SignaturePaddingSchemeNameTests::run
    functionSourceFile: /src/botan/src/tests/test_pk_pad.cpp
    functionUses: 0
    functionsReached:
    - auto::name
    - Botan::fmt
    - Test::Result::test_failure
    - Botan::SignaturePaddingScheme::create
    - Test::Result::test_eq
    - what
    - Botan::SignaturePaddingScheme::create_or_throw
    - Test::Result::test_note
    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: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    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:30,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_pk_pad.cpp:35,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_pk_pad.cpp:36,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pk_pad.cpp:39,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pk_pad.cpp:39,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pk_pad.cpp:42,1
    - Dst: auto::unpad
      Src: /src/botan/src/tests/test_pk_pad.cpp:43,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pk_pad.cpp:45,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_pk_pad.cpp:45,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_pk_pad.cpp:47,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_pk_pad.cpp:48,1
    - Dst: auto::value_or
      Src: /src/botan/src/tests/test_pk_pad.cpp:48,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pk_pad.cpp:49,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pk_pad.cpp:58,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - ' hdr'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 64
    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
    - get_opt_bin
    - auto::has_value
    - Test::Result::test_eq
    - std::vector::resize
    - Test::Result::confirm
    - get_req_bin
    - std::vector::size
    - auto::value_or
    - auto::unpad
    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:106,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_pk_pad.cpp:106,1
    - Dst: Botan::SignaturePaddingScheme::create
      Src: /src/botan/src/tests/test_pk_pad.cpp:107,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pk_pad.cpp:107,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pk_pad.cpp:108,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pk_pad.cpp:108,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pk_pad.cpp:108,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pk_pad.cpp:110,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pk_pad.cpp:112,1
    - Dst: what
      Src: /src/botan/src/tests/test_pk_pad.cpp:112,1
    - Dst: Botan::SignaturePaddingScheme::create_or_throw
      Src: /src/botan/src/tests/test_pk_pad.cpp:119,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pk_pad.cpp:120,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pk_pad.cpp:123,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pk_pad.cpp:125,1
    - Dst: what
      Src: /src/botan/src/tests/test_pk_pad.cpp:126,1
    - Dst: Botan::SignaturePaddingScheme::create
      Src: /src/botan/src/tests/test_pk_pad.cpp:133,1
    - Dst: Botan::SignaturePaddingScheme::create
      Src: /src/botan/src/tests/test_pk_pad.cpp:134,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pk_pad.cpp:134,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pk_pad.cpp:135,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pk_pad.cpp:135,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_pk_pad.cpp:135,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_pk_pad.cpp:137,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pk_pad.cpp:139,1
    - Dst: what
      Src: /src/botan/src/tests/test_pk_pad.cpp:139,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 144
    functionName: Botan_Tests::SignaturePaddingSchemeNameTests::run
    functionSourceFile: /src/botan/src/tests/test_pk_pad.cpp
    functionUses: 0
    functionsReached:
    - auto::name
    - Botan::fmt
    - Test::Result::test_failure
    - Botan::SignaturePaddingScheme::create
    - Test::Result::test_eq
    - what
    - Botan::SignaturePaddingScheme::create_or_throw
    - Test::Result::test_note
    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: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    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:26,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 33
    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: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    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:38,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_x25519.cpp:39,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x25519.cpp:39,1
    - Dst: std::make_unique<Botan::X25519_PrivateKey>
      Src: /src/botan/src/tests/test_x25519.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: Botan_Tests::X25519_Agreement_Tests::load_our_key
    functionSourceFile: /src/botan/src/tests/test_x25519.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - std::vector::begin
    - std::make_unique<Botan::X25519_PrivateKey>
    - std::vector::end
    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: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::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:58,1
    - Dst: Botan_Tests::X25519_Roundtrip_Test::rng
      Src: /src/botan/src/tests/test_x25519.cpp:59,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x25519.cpp:67,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/tests/test_x25519.cpp:68,1
    - Dst: Botan_Tests::X25519_Roundtrip_Test::rng
      Src: /src/botan/src/tests/test_x25519.cpp:68,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/tests/test_x25519.cpp:69,1
    - Dst: Botan_Tests::X25519_Roundtrip_Test::rng
      Src: /src/botan/src/tests/test_x25519.cpp:69,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_x25519.cpp:75,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x25519.cpp:75,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_x25519.cpp:76,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/tests/test_x25519.cpp:78,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/tests/test_x25519.cpp:79,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_x25519.cpp:85,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_x25519.cpp:86,1
    - Dst: Botan::X509::PEM_encode
      Src: /src/botan/src/tests/test_x25519.cpp:90,1
    - Dst: Botan::X509::PEM_encode
      Src: /src/botan/src/tests/test_x25519.cpp:91,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_x25519.cpp:96,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_x25519.cpp:97,1
    - Dst: dynamic_cast<Botan::X25519_PublicKey*>
      Src: /src/botan/src/tests/test_x25519.cpp:99,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_x25519.cpp:99,1
    - Dst: dynamic_cast<Botan::X25519_PublicKey*>
      Src: /src/botan/src/tests/test_x25519.cpp:100,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_x25519.cpp:100,1
    - Dst: Botan_Tests::X25519_Roundtrip_Test::rng
      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:104,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_x25519.cpp:106,1
    - Dst: Botan::X25519_PublicKey*::public_value
      Src: /src/botan/src/tests/test_x25519.cpp:106,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_x25519.cpp:107,1
    - Dst: Botan::X25519_PublicKey*::public_value
      Src: /src/botan/src/tests/test_x25519.cpp:107,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x25519.cpp:109,1
    - Dst: Botan::SymmetricKey::bits_of
      Src: /src/botan/src/tests/test_x25519.cpp:109,1
    - Dst: Botan::SymmetricKey::bits_of
      Src: /src/botan/src/tests/test_x25519.cpp:109,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x25519.cpp:110,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x25519.cpp:111,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_x25519.cpp:114,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x25519.cpp:117,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 121
    functionName: Botan_Tests::X25519_Roundtrip_Test::run
    functionSourceFile: /src/botan/src/tests/test_x25519.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timer::milliseconds
    - dynamic_cast<Botan::X25519_PublicKey*>
    - Botan_Tests::X25519_Roundtrip_Test::rng
    - std::vector::push_back
    - Botan::X509::load_key
    - Botan::PK_Key_Agreement::derive_key
    - Botan::X25519_PublicKey*::public_value
    - Botan::SymmetricKey::bits_of
    - std::string
    - Test::Result::test_failure
    - Botan::PKCS8::load_key
    - auto::get
    - Test::Result::test_eq
    - Botan::PKCS8::PEM_encode
    - Botan::X509::PEM_encode
    - Test::Result::test_note
    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: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    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: 130
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 130
    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:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - raw_pk
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 136
    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: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    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:26,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 33
    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: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    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:38,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_x25519.cpp:39,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_x25519.cpp:39,1
    - Dst: std::make_unique<Botan::X25519_PrivateKey>
      Src: /src/botan/src/tests/test_x25519.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 41
    functionName: Botan_Tests::X25519_Agreement_Tests::load_our_key
    functionSourceFile: /src/botan/src/tests/test_x25519.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - std::vector::begin
    - std::make_unique<Botan::X25519_PrivateKey>
    - std::vector::end
    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: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::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:58,1
    - Dst: Botan_Tests::X25519_Roundtrip_Test::rng
      Src: /src/botan/src/tests/test_x25519.cpp:59,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_x25519.cpp:67,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/tests/test_x25519.cpp:68,1
    - Dst: Botan_Tests::X25519_Roundtrip_Test::rng
      Src: /src/botan/src/tests/test_x25519.cpp:68,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/tests/test_x25519.cpp:69,1
    - Dst: Botan_Tests::X25519_Roundtrip_Test::rng
      Src: /src/botan/src/tests/test_x25519.cpp:69,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_x25519.cpp:75,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_x25519.cpp:75,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_x25519.cpp:76,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/tests/test_x25519.cpp:78,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/tests/test_x25519.cpp:79,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_x25519.cpp:85,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_x25519.cpp:86,1
    - Dst: Botan::X509::PEM_encode
      Src: /src/botan/src/tests/test_x25519.cpp:90,1
    - Dst: Botan::X509::PEM_encode
      Src: /src/botan/src/tests/test_x25519.cpp:91,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_x25519.cpp:96,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_x25519.cpp:97,1
    - Dst: dynamic_cast<Botan::X25519_PublicKey*>
      Src: /src/botan/src/tests/test_x25519.cpp:99,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_x25519.cpp:99,1
    - Dst: dynamic_cast<Botan::X25519_PublicKey*>
      Src: /src/botan/src/tests/test_x25519.cpp:100,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_x25519.cpp:100,1
    - Dst: Botan_Tests::X25519_Roundtrip_Test::rng
      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:104,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_x25519.cpp:106,1
    - Dst: Botan::X25519_PublicKey*::public_value
      Src: /src/botan/src/tests/test_x25519.cpp:106,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_x25519.cpp:107,1
    - Dst: Botan::X25519_PublicKey*::public_value
      Src: /src/botan/src/tests/test_x25519.cpp:107,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x25519.cpp:109,1
    - Dst: Botan::SymmetricKey::bits_of
      Src: /src/botan/src/tests/test_x25519.cpp:109,1
    - Dst: Botan::SymmetricKey::bits_of
      Src: /src/botan/src/tests/test_x25519.cpp:109,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x25519.cpp:110,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_x25519.cpp:111,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_x25519.cpp:114,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_x25519.cpp:117,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 121
    functionName: Botan_Tests::X25519_Roundtrip_Test::run
    functionSourceFile: /src/botan/src/tests/test_x25519.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timer::milliseconds
    - dynamic_cast<Botan::X25519_PublicKey*>
    - Botan_Tests::X25519_Roundtrip_Test::rng
    - std::vector::push_back
    - Botan::X509::load_key
    - Botan::PK_Key_Agreement::derive_key
    - Botan::X25519_PublicKey*::public_value
    - Botan::SymmetricKey::bits_of
    - std::string
    - Test::Result::test_failure
    - Botan::PKCS8::load_key
    - auto::get
    - Test::Result::test_eq
    - Botan::PKCS8::PEM_encode
    - Botan::X509::PEM_encode
    - Test::Result::test_note
    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: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    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: 130
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 130
    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:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - raw_pk
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 136
    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: 18
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 18
    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:21,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_workfactor.cpp:22,1
    - Dst: Botan::if_work_factor
      Src: /src/botan/src/tests/test_workfactor.cpp:29,1
    - Dst: Botan::dl_exponent_size
      Src: /src/botan/src/tests/test_workfactor.cpp:31,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_workfactor.cpp:35,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_workfactor.cpp:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 37
    functionName: Botan_Tests::PK_Workfactor_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_workfactor.cpp
    functionUses: 0
    functionsReached:
    - Botan::if_work_factor
    - get_req_sz
    - Test::Result::test_eq
    - std::to_string
    - Botan::dl_exponent_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: 18
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 18
    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:21,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_workfactor.cpp:22,1
    - Dst: Botan::if_work_factor
      Src: /src/botan/src/tests/test_workfactor.cpp:29,1
    - Dst: Botan::dl_exponent_size
      Src: /src/botan/src/tests/test_workfactor.cpp:31,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_workfactor.cpp:35,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_workfactor.cpp:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 37
    functionName: Botan_Tests::PK_Workfactor_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_workfactor.cpp
    functionUses: 0
    functionsReached:
    - Botan::if_work_factor
    - get_req_sz
    - Test::Result::test_eq
    - std::to_string
    - Botan::dl_exponent_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: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    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:24,1
    - Dst: Botan::BlockCipher::providers
      Src: /src/botan/src/tests/test_block.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 25
    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:28,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_block.cpp:29,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_block.cpp:30,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_block.cpp:31,1
    - Dst: get_opt_sz
      Src: /src/botan/src/tests/test_block.cpp:32,1
    - Dst: run_long_tests
      Src: /src/botan/src/tests/test_block.cpp:36,1
    - Dst: Botan_Tests::Block_Cipher_Tests::possible_providers
      Src: /src/botan/src/tests/test_block.cpp:40,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_block.cpp:42,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_block.cpp:43,1
    - Dst: Botan::BlockCipher::create
      Src: /src/botan/src/tests/test_block.cpp:48,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_block.cpp:51,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_block.cpp:51,1
    - Dst: auto::provider
      Src: /src/botan/src/tests/test_block.cpp:55,1
    - Dst: Test::Result::test_is_nonempty
      Src: /src/botan/src/tests/test_block.cpp:56,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_block.cpp:57,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_block.cpp:57,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_block.cpp:58,1
    - Dst: auto::parallelism
      Src: /src/botan/src/tests/test_block.cpp:58,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_block.cpp:59,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:59,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_block.cpp:60,1
    - Dst: auto::parallel_bytes
      Src: /src/botan/src/tests/test_block.cpp:60,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:60,1
    - Dst: auto::parallelism
      Src: /src/botan/src/tests/test_block.cpp:60,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_block.cpp:62,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_block.cpp:62,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:66,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_block.cpp:67,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_block.cpp:68,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_block.cpp:70,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:74,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_block.cpp:75,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_block.cpp:76,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_block.cpp:78,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_block.cpp:82,1
    - Dst: Botan_Tests::Block_Cipher_Tests::rng
      Src: /src/botan/src/tests/test_block.cpp:82,1
    - Dst: auto::key_spec
      Src: /src/botan/src/tests/test_block.cpp:82,1
    - Dst: Botan_Tests::Block_Cipher_Tests::rng
      Src: /src/botan/src/tests/test_block.cpp:83,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:83,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_block.cpp:84,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_block.cpp:85,1
    - Dst: auto::valid_keylength
      Src: /src/botan/src/tests/test_block.cpp:91,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:91,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_block.cpp:92,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_block.cpp:93,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:93,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_block.cpp:97,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_block.cpp:98,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_block.cpp:98,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_block.cpp:100,1
    - Dst: dynamic_cast<Botan::Tweakable_Block_Cipher*>
      Src: /src/botan/src/tests/test_block.cpp:101,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_block.cpp:101,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_block.cpp:103,1
    - Dst: Botan::Tweakable_Block_Cipher*::set_tweak
      Src: /src/botan/src/tests/test_block.cpp:105,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:105,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:105,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_block.cpp:110,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_block.cpp:111,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_block.cpp:111,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_block.cpp:111,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_block.cpp:112,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_block.cpp:112,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_block.cpp:112,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_block.cpp:113,1
    - Dst: Botan_Tests::Block_Cipher_Tests::rng
      Src: /src/botan/src/tests/test_block.cpp:113,1
    - Dst: auto::maximum_keylength
      Src: /src/botan/src/tests/test_block.cpp:113,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_block.cpp:119,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_block.cpp:122,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_block.cpp:128,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_block.cpp:131,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:134,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:134,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_block.cpp:135,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:135,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_block.cpp:136,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:136,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:136,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:136,1
    - Dst: auto::encrypt_n
      Src: /src/botan/src/tests/test_block.cpp:139,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:139,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:139,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_block.cpp:142,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_block.cpp:142,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:144,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:145,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:147,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_block.cpp:150,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:150,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:150,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:150,1
    - Dst: auto::decrypt_n
      Src: /src/botan/src/tests/test_block.cpp:153,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:153,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:153,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_block.cpp:156,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_block.cpp:157,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:157,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:157,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:157,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:157,1
    - Dst: Test::Result::test_eq
      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::clear
      Src: /src/botan/src/tests/test_block.cpp:160,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_block.cpp:161,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_block.cpp:161,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:164,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_block.cpp:165,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_block.cpp:166,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_block.cpp:168,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:172,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_block.cpp:173,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_block.cpp:174,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_block.cpp:176,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 86
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 181
    functionName: Botan_Tests::Block_Cipher_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_block.cpp
    functionUses: 0
    functionsReached:
    - auto::maximum_keylength
    - auto::parallel_bytes
    - Botan_Tests::Block_Cipher_Tests::rng
    - auto::parallelism
    - auto::set_key
    - Test::Result::test_failure
    - run_long_tests
    - auto::get
    - auto::decrypt_n
    - Botan::copy_mem
    - Test::Result::test_gte
    - get_opt_sz
    - auto::block_size
    - auto::name
    - auto::encrypt_n
    - auto::has_keying_material
    - std::vector::data
    - get_req_bin
    - Test::Result::test_success
    - auto::new_object
    - Test::Result::note_missing
    - auto::clear
    - Test::Result::test_is_nonempty
    - std::vector::empty
    - Botan::Tweakable_Block_Cipher*::set_tweak
    - std::vector::resize
    - std::vector::size
    - auto::valid_keylength
    - Test::Result::test_note
    - dynamic_cast<Botan::Tweakable_Block_Cipher*>
    - Botan::fmt
    - get_opt_bin
    - std::string::c_str
    - auto::key_spec
    - Botan::BlockCipher::create
    - auto::provider
    - Test::Result::test_eq
    - auto::decrypt
    - Test::Result::confirm
    - std::to_string
    - Botan_Tests::Block_Cipher_Tests::possible_providers
    - auto::encrypt
    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: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    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:24,1
    - Dst: Botan::BlockCipher::providers
      Src: /src/botan/src/tests/test_block.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 25
    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:28,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_block.cpp:29,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_block.cpp:30,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_block.cpp:31,1
    - Dst: get_opt_sz
      Src: /src/botan/src/tests/test_block.cpp:32,1
    - Dst: run_long_tests
      Src: /src/botan/src/tests/test_block.cpp:36,1
    - Dst: Botan_Tests::Block_Cipher_Tests::possible_providers
      Src: /src/botan/src/tests/test_block.cpp:40,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_block.cpp:42,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_block.cpp:43,1
    - Dst: Botan::BlockCipher::create
      Src: /src/botan/src/tests/test_block.cpp:48,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_block.cpp:51,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_block.cpp:51,1
    - Dst: auto::provider
      Src: /src/botan/src/tests/test_block.cpp:55,1
    - Dst: Test::Result::test_is_nonempty
      Src: /src/botan/src/tests/test_block.cpp:56,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_block.cpp:57,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_block.cpp:57,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_block.cpp:58,1
    - Dst: auto::parallelism
      Src: /src/botan/src/tests/test_block.cpp:58,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_block.cpp:59,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:59,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_block.cpp:60,1
    - Dst: auto::parallel_bytes
      Src: /src/botan/src/tests/test_block.cpp:60,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:60,1
    - Dst: auto::parallelism
      Src: /src/botan/src/tests/test_block.cpp:60,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_block.cpp:62,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_block.cpp:62,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:66,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_block.cpp:67,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_block.cpp:68,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_block.cpp:70,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:74,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_block.cpp:75,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_block.cpp:76,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_block.cpp:78,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_block.cpp:82,1
    - Dst: Botan_Tests::Block_Cipher_Tests::rng
      Src: /src/botan/src/tests/test_block.cpp:82,1
    - Dst: auto::key_spec
      Src: /src/botan/src/tests/test_block.cpp:82,1
    - Dst: Botan_Tests::Block_Cipher_Tests::rng
      Src: /src/botan/src/tests/test_block.cpp:83,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:83,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_block.cpp:84,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_block.cpp:85,1
    - Dst: auto::valid_keylength
      Src: /src/botan/src/tests/test_block.cpp:91,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:91,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_block.cpp:92,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_block.cpp:93,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:93,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_block.cpp:97,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_block.cpp:98,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_block.cpp:98,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_block.cpp:100,1
    - Dst: dynamic_cast<Botan::Tweakable_Block_Cipher*>
      Src: /src/botan/src/tests/test_block.cpp:101,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_block.cpp:101,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_block.cpp:103,1
    - Dst: Botan::Tweakable_Block_Cipher*::set_tweak
      Src: /src/botan/src/tests/test_block.cpp:105,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:105,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:105,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_block.cpp:110,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_block.cpp:111,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_block.cpp:111,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_block.cpp:111,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_block.cpp:112,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_block.cpp:112,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_block.cpp:112,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_block.cpp:113,1
    - Dst: Botan_Tests::Block_Cipher_Tests::rng
      Src: /src/botan/src/tests/test_block.cpp:113,1
    - Dst: auto::maximum_keylength
      Src: /src/botan/src/tests/test_block.cpp:113,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_block.cpp:119,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_block.cpp:122,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_block.cpp:128,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_block.cpp:131,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:134,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:134,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_block.cpp:135,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:135,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_block.cpp:136,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:136,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:136,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:136,1
    - Dst: auto::encrypt_n
      Src: /src/botan/src/tests/test_block.cpp:139,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:139,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:139,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_block.cpp:142,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_block.cpp:142,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:144,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:145,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:147,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_block.cpp:150,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:150,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:150,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:150,1
    - Dst: auto::decrypt_n
      Src: /src/botan/src/tests/test_block.cpp:153,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:153,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:153,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_block.cpp:156,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_block.cpp:157,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:157,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:157,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_block.cpp:157,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_block.cpp:157,1
    - Dst: Test::Result::test_eq
      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::clear
      Src: /src/botan/src/tests/test_block.cpp:160,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_block.cpp:161,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_block.cpp:161,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:164,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_block.cpp:165,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_block.cpp:166,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_block.cpp:168,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_block.cpp:172,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_block.cpp:173,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_block.cpp:174,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_block.cpp:176,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 86
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 181
    functionName: Botan_Tests::Block_Cipher_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_block.cpp
    functionUses: 0
    functionsReached:
    - auto::maximum_keylength
    - auto::parallel_bytes
    - Botan_Tests::Block_Cipher_Tests::rng
    - auto::parallelism
    - auto::set_key
    - Test::Result::test_failure
    - run_long_tests
    - auto::get
    - auto::decrypt_n
    - Botan::copy_mem
    - Test::Result::test_gte
    - get_opt_sz
    - auto::block_size
    - auto::name
    - auto::encrypt_n
    - auto::has_keying_material
    - std::vector::data
    - get_req_bin
    - Test::Result::test_success
    - auto::new_object
    - Test::Result::note_missing
    - auto::clear
    - Test::Result::test_is_nonempty
    - std::vector::empty
    - Botan::Tweakable_Block_Cipher*::set_tweak
    - std::vector::resize
    - std::vector::size
    - auto::valid_keylength
    - Test::Result::test_note
    - dynamic_cast<Botan::Tweakable_Block_Cipher*>
    - Botan::fmt
    - get_opt_bin
    - std::string::c_str
    - auto::key_spec
    - Botan::BlockCipher::create
    - auto::provider
    - Test::Result::test_eq
    - auto::decrypt
    - Test::Result::confirm
    - std::to_string
    - Botan_Tests::Block_Cipher_Tests::possible_providers
    - auto::encrypt
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo, const VarMap& vars)
      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: 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:
    - tls_alert
    - Botan_Tests::MockChannel::send
    - Botan::hex_decode
    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::enable_shared_from_this<Context>
    - std::make_shared<Botan::Null_RNG>
    - std::make_shared<Botan::TLS::Session_Manager_Noop>
    - std::make_shared<Botan::TLS::Default_Policy>
    - 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:
    - boost::string_view
    - reinterpret_cast<const char*>
    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_eq
      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:
    - AsioStream::handshake
    - AsioStream::native_handle
    - Test::Result::test_eq
    - push_back
    - Botan_Tests::Asio_Stream_Tests::get_context
    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_eq
      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::confirm
      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:
    - AsioStream::next_layer
    - AsioStream::handshake
    - AsioStream::native_handle
    - Test::Result::test_eq
    - push_back
    - Test::Result::confirm
    - Botan_Tests::Asio_Stream_Tests::get_context
    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_eq
      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_eq
      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::confirm
      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:
    - Test::Result::test_eq
    - push_back
    - CancellingAsioStream::handshake
    - Test::Result::confirm
    - CancellingAsioStream::native_handle
    - Botan_Tests::Asio_Stream_Tests::get_context
    - CancellingAsioStream::next_layer
    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_eq
      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::confirm
      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:
    - Botan_Tests::ThrowingMockChannel::expected_ec
    - ThrowingAsioStream::native_handle
    - Test::Result::test_eq
    - push_back
    - ThrowingAsioStream::handshake
    - ThrowingAsioStream::next_layer
    - Test::Result::confirm
    - Botan_Tests::Asio_Stream_Tests::get_context
    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::confirm
      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::confirm
      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_eq
      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:
    - AsioStream::next_layer
    - AsioStream::native_handle
    - Test::Result::test_eq
    - net::io_context::run
    - push_back
    - Test::Result::confirm
    - AsioStream::async_handshake
    - Botan_Tests::Asio_Stream_Tests::get_context
    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_eq
      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::confirm
      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:
    - AsioStream::next_layer
    - AsioStream::native_handle
    - Test::Result::test_eq
    - net::io_context::run
    - push_back
    - Test::Result::confirm
    - AsioStream::async_handshake
    - Botan_Tests::Asio_Stream_Tests::get_context
    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_eq
      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_eq
      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::confirm
      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::async_handshake
    - Test::Result::test_eq
    - net::io_context::run
    - push_back
    - Test::Result::confirm
    - CancellingAsioStream::native_handle
    - Botan_Tests::Asio_Stream_Tests::get_context
    - CancellingAsioStream::next_layer
    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_eq
      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::confirm
      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:
    - Botan_Tests::ThrowingMockChannel::expected_ec
    - ThrowingAsioStream::native_handle
    - ThrowingAsioStream::async_handshake
    - Test::Result::test_eq
    - net::io_context::run
    - push_back
    - Test::Result::confirm
    - ThrowingAsioStream::next_layer
    - Botan_Tests::Asio_Stream_Tests::get_context
    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::confirm
      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_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:349,1
    - Dst: Test::Result::confirm
      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:
    - Botan_Tests::Asio_Stream_Tests::contains
    - Server::expect_short_read
    - Test::Result::test_eq
    - push_back
    - Test::Result::confirm
    - net::mutable_buffer
    - Botan_Tests::Asio_Stream_Tests::get_context
    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::confirm
      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_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:375,1
    - Dst: Test::Result::confirm
      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:
    - Botan_Tests::Asio_Stream_Tests::contains
    - std::vector::emplace_back
    - Server::expect_short_read
    - Test::Result::test_eq
    - push_back
    - Test::Result::confirm
    - net::mutable_buffer
    - Botan_Tests::Asio_Stream_Tests::get_context
    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_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:397,1
    - Dst: Test::Result::confirm
      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:
    - AsioStream::next_layer
    - Server::expect_short_read
    - Test::Result::test_eq
    - push_back
    - net::mutable_buffer
    - Test::Result::confirm
    - Botan_Tests::Asio_Stream_Tests::get_context
    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_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:417,1
    - Dst: Test::Result::confirm
      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:
    - Botan_Tests::ThrowingMockChannel::expected_ec
    - Server::expect_short_read
    - Test::Result::test_eq
    - push_back
    - net::mutable_buffer
    - ThrowingAsioStream::next_layer
    - Test::Result::confirm
    - Botan_Tests::Asio_Stream_Tests::get_context
    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_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:436,1
    - Dst: Test::Result::confirm
      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:
    - Server::expect_short_read
    - Test::Result::test_eq
    - push_back
    - std::size_t
    - net::mutable_buffer
    - Test::Result::confirm
    - Botan_Tests::Asio_Stream_Tests::get_context
    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::confirm
      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_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:456,1
    - Dst: Test::Result::confirm
      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:
    - AsioStream::next_layer
    - Botan_Tests::Asio_Stream_Tests::contains
    - Test::Result::test_eq
    - net::io_context::run
    - push_back
    - Test::Result::confirm
    - net::async_read
    - Botan_Tests::Asio_Stream_Tests::get_context
    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::confirm
      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_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:485,1
    - Dst: Test::Result::confirm
      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:
    - AsioStream::next_layer
    - Botan_Tests::Asio_Stream_Tests::contains
    - std::vector::emplace_back
    - Test::Result::test_eq
    - net::io_context::run
    - push_back
    - Test::Result::confirm
    - net::mutable_buffer
    - net::async_read
    - Botan_Tests::Asio_Stream_Tests::get_context
    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_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:507,1
    - Dst: Test::Result::confirm
      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:
    - AsioStream::next_layer
    - Test::Result::test_eq
    - net::io_context::run
    - push_back
    - Test::Result::confirm
    - net::async_read
    - Botan_Tests::Asio_Stream_Tests::get_context
    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_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:528,1
    - Dst: Test::Result::confirm
      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:
    - Botan_Tests::ThrowingMockChannel::expected_ec
    - Test::Result::test_eq
    - net::io_context::run
    - push_back
    - Test::Result::confirm
    - ThrowingAsioStream::next_layer
    - net::async_read
    - Botan_Tests::Asio_Stream_Tests::get_context
    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_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:551,1
    - Dst: Test::Result::confirm
      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:
    - AsioStream::next_layer
    - Test::Result::test_eq
    - net::io_context::run
    - std::size_t
    - Test::Result::confirm
    - push_back
    - net::async_read
    - Botan_Tests::Asio_Stream_Tests::get_context
    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::confirm
      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_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:578,1
    - Dst: Test::Result::confirm
      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:
    - Botan_Tests::Asio_Stream_Tests::test_data
    - AsioStream::next_layer
    - net::const_buffer
    - Server::handle_write
    - Test::Result::test_eq
    - push_back
    - Test::Result::confirm
    - TestStream::str
    - Botan_Tests::Asio_Stream_Tests::get_context
    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::confirm
      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:
    - error_code::failed
    - net::const_buffer
    - Server::handle_write
    - push_back
    - Test::Result::confirm
    - Botan::TLS::Stream<TestStream>::next_layer
    - Botan_Tests::Asio_Stream_Tests::get_context
    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::confirm
      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::confirm
      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_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_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::confirm
      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:
    - AsioStream::next_layer
    - std::array::data
    - Botan_Tests::Asio_Stream_Tests::contains
    - std::vector::emplace_back
    - net::const_buffer
    - Server::handle_write
    - std::array::back
    - TestStream::buffer
    - Test::Result::test_eq
    - push_back
    - std::array::size
    - std::array::fill
    - Test::Result::confirm
    - Botan_Tests::Asio_Stream_Tests::get_context
    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_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:652,1
    - Dst: Test::Result::confirm
      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:
    - AsioStream::next_layer
    - net::const_buffer
    - Server::handle_write
    - Test::Result::test_eq
    - push_back
    - Test::Result::confirm
    - Botan_Tests::Asio_Stream_Tests::get_context
    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_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:670,1
    - Dst: Test::Result::confirm
      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:
    - Botan_Tests::ThrowingMockChannel::expected_ec
    - net::const_buffer
    - Server::handle_write
    - Test::Result::test_eq
    - push_back
    - Test::Result::confirm
    - ThrowingAsioStream::next_layer
    - Botan_Tests::Asio_Stream_Tests::get_context
    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::confirm
      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_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:688,1
    - Dst: Test::Result::confirm
      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:
    - Botan_Tests::Asio_Stream_Tests::test_data
    - AsioStream::next_layer
    - net::const_buffer
    - net::async_write
    - Test::Result::test_eq
    - net::io_context::run
    - push_back
    - Test::Result::confirm
    - TestStream::str
    - Botan_Tests::Asio_Stream_Tests::get_context
    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::confirm
      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::confirm
      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_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_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::confirm
      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:
    - AsioStream::next_layer
    - std::array::data
    - Botan_Tests::Asio_Stream_Tests::contains
    - std::vector::emplace_back
    - net::const_buffer
    - net::async_write
    - std::array::back
    - TestStream::buffer
    - Test::Result::test_eq
    - net::io_context::run
    - std::array::size
    - std::array::fill
    - Test::Result::confirm
    - push_back
    - Botan_Tests::Asio_Stream_Tests::get_context
    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_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:749,1
    - Dst: Test::Result::confirm
      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:
    - AsioStream::next_layer
    - net::const_buffer
    - net::async_write
    - Test::Result::test_eq
    - net::io_context::run
    - push_back
    - Test::Result::confirm
    - Botan_Tests::Asio_Stream_Tests::get_context
    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_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:770,1
    - Dst: Test::Result::confirm
      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:
    - Botan_Tests::ThrowingMockChannel::expected_ec
    - net::const_buffer
    - net::async_write
    - Test::Result::test_eq
    - net::io_context::run
    - push_back
    - Test::Result::confirm
    - ThrowingAsioStream::next_layer
    - Botan_Tests::Asio_Stream_Tests::get_context
    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_async_handshake_error
    - Botan_Tests::Asio_Stream_Tests::test_async_handshake_throw
    - Botan_Tests::Asio_Stream_Tests::test_async_read_some_buffer_sequence
    - Botan_Tests::Asio_Stream_Tests::test_sync_write_some_throw
    - Botan_Tests::Asio_Stream_Tests::test_async_write_some_error
    - Botan_Tests::Asio_Stream_Tests::test_async_handshake
    - Botan_Tests::Asio_Stream_Tests::test_sync_handshake_error
    - 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_sync_no_handshake
    - Botan_Tests::Asio_Stream_Tests::test_sync_handshake
    - Botan_Tests::Asio_Stream_Tests::test_async_handshake_cancellation
    - Botan_Tests::Asio_Stream_Tests::test_sync_handshake_throw
    - Botan_Tests::Asio_Stream_Tests::test_sync_read_some_success
    - Botan_Tests::Asio_Stream_Tests::test_sync_read_some_buffer_sequence
    - Botan_Tests::Asio_Stream_Tests::test_async_read_some_error
    - Botan_Tests::Asio_Stream_Tests::test_async_write_throw
    - Botan_Tests::Asio_Stream_Tests::test_sync_read_some_throw
    - 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_cancellation
    - Botan_Tests::Asio_Stream_Tests::test_async_write_some_success
    - Botan_Tests::Asio_Stream_Tests::test_sync_write_some_error
    - Botan_Tests::Asio_Stream_Tests::test_async_read_zero_buffer
    - Botan_Tests::Asio_Stream_Tests::test_sync_read_some_error
    - Botan_Tests::Asio_Stream_Tests::test_sync_write_some_success
    - Botan_Tests::Asio_Stream_Tests::test_async_write_some_buffer_sequence
    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:
    - tls_alert
    - Botan_Tests::MockChannel::send
    - Botan::hex_decode
    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::enable_shared_from_this<Context>
    - std::make_shared<Botan::Null_RNG>
    - std::make_shared<Botan::TLS::Session_Manager_Noop>
    - std::make_shared<Botan::TLS::Default_Policy>
    - 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:
    - boost::string_view
    - reinterpret_cast<const char*>
    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_eq
      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:
    - AsioStream::handshake
    - AsioStream::native_handle
    - Test::Result::test_eq
    - push_back
    - Botan_Tests::Asio_Stream_Tests::get_context
    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_eq
      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::confirm
      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:
    - AsioStream::next_layer
    - AsioStream::handshake
    - AsioStream::native_handle
    - Test::Result::test_eq
    - push_back
    - Test::Result::confirm
    - Botan_Tests::Asio_Stream_Tests::get_context
    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_eq
      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_eq
      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::confirm
      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:
    - Test::Result::test_eq
    - push_back
    - CancellingAsioStream::handshake
    - Test::Result::confirm
    - CancellingAsioStream::native_handle
    - Botan_Tests::Asio_Stream_Tests::get_context
    - CancellingAsioStream::next_layer
    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_eq
      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::confirm
      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:
    - Botan_Tests::ThrowingMockChannel::expected_ec
    - ThrowingAsioStream::native_handle
    - Test::Result::test_eq
    - push_back
    - ThrowingAsioStream::handshake
    - ThrowingAsioStream::next_layer
    - Test::Result::confirm
    - Botan_Tests::Asio_Stream_Tests::get_context
    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::confirm
      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::confirm
      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_eq
      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:
    - AsioStream::next_layer
    - AsioStream::native_handle
    - Test::Result::test_eq
    - net::io_context::run
    - push_back
    - Test::Result::confirm
    - AsioStream::async_handshake
    - Botan_Tests::Asio_Stream_Tests::get_context
    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_eq
      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::confirm
      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:
    - AsioStream::next_layer
    - AsioStream::native_handle
    - Test::Result::test_eq
    - net::io_context::run
    - push_back
    - Test::Result::confirm
    - AsioStream::async_handshake
    - Botan_Tests::Asio_Stream_Tests::get_context
    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_eq
      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_eq
      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::confirm
      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::async_handshake
    - Test::Result::test_eq
    - net::io_context::run
    - push_back
    - Test::Result::confirm
    - CancellingAsioStream::native_handle
    - Botan_Tests::Asio_Stream_Tests::get_context
    - CancellingAsioStream::next_layer
    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_eq
      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::confirm
      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:
    - Botan_Tests::ThrowingMockChannel::expected_ec
    - ThrowingAsioStream::native_handle
    - ThrowingAsioStream::async_handshake
    - Test::Result::test_eq
    - net::io_context::run
    - push_back
    - Test::Result::confirm
    - ThrowingAsioStream::next_layer
    - Botan_Tests::Asio_Stream_Tests::get_context
    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::confirm
      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_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:349,1
    - Dst: Test::Result::confirm
      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:
    - Botan_Tests::Asio_Stream_Tests::contains
    - Server::expect_short_read
    - Test::Result::test_eq
    - push_back
    - Test::Result::confirm
    - net::mutable_buffer
    - Botan_Tests::Asio_Stream_Tests::get_context
    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::confirm
      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_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:375,1
    - Dst: Test::Result::confirm
      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:
    - Botan_Tests::Asio_Stream_Tests::contains
    - std::vector::emplace_back
    - Server::expect_short_read
    - Test::Result::test_eq
    - push_back
    - Test::Result::confirm
    - net::mutable_buffer
    - Botan_Tests::Asio_Stream_Tests::get_context
    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_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:397,1
    - Dst: Test::Result::confirm
      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:
    - AsioStream::next_layer
    - Server::expect_short_read
    - Test::Result::test_eq
    - push_back
    - net::mutable_buffer
    - Test::Result::confirm
    - Botan_Tests::Asio_Stream_Tests::get_context
    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_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:417,1
    - Dst: Test::Result::confirm
      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:
    - Botan_Tests::ThrowingMockChannel::expected_ec
    - Server::expect_short_read
    - Test::Result::test_eq
    - push_back
    - net::mutable_buffer
    - ThrowingAsioStream::next_layer
    - Test::Result::confirm
    - Botan_Tests::Asio_Stream_Tests::get_context
    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_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:436,1
    - Dst: Test::Result::confirm
      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:
    - Server::expect_short_read
    - Test::Result::test_eq
    - push_back
    - std::size_t
    - net::mutable_buffer
    - Test::Result::confirm
    - Botan_Tests::Asio_Stream_Tests::get_context
    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::confirm
      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_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:456,1
    - Dst: Test::Result::confirm
      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:
    - AsioStream::next_layer
    - Botan_Tests::Asio_Stream_Tests::contains
    - Test::Result::test_eq
    - net::io_context::run
    - push_back
    - Test::Result::confirm
    - net::async_read
    - Botan_Tests::Asio_Stream_Tests::get_context
    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::confirm
      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_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:485,1
    - Dst: Test::Result::confirm
      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:
    - AsioStream::next_layer
    - Botan_Tests::Asio_Stream_Tests::contains
    - std::vector::emplace_back
    - Test::Result::test_eq
    - net::io_context::run
    - push_back
    - Test::Result::confirm
    - net::mutable_buffer
    - net::async_read
    - Botan_Tests::Asio_Stream_Tests::get_context
    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_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:507,1
    - Dst: Test::Result::confirm
      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:
    - AsioStream::next_layer
    - Test::Result::test_eq
    - net::io_context::run
    - push_back
    - Test::Result::confirm
    - net::async_read
    - Botan_Tests::Asio_Stream_Tests::get_context
    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_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:528,1
    - Dst: Test::Result::confirm
      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:
    - Botan_Tests::ThrowingMockChannel::expected_ec
    - Test::Result::test_eq
    - net::io_context::run
    - push_back
    - Test::Result::confirm
    - ThrowingAsioStream::next_layer
    - net::async_read
    - Botan_Tests::Asio_Stream_Tests::get_context
    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_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:551,1
    - Dst: Test::Result::confirm
      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:
    - AsioStream::next_layer
    - Test::Result::test_eq
    - net::io_context::run
    - std::size_t
    - Test::Result::confirm
    - push_back
    - net::async_read
    - Botan_Tests::Asio_Stream_Tests::get_context
    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::confirm
      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_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:578,1
    - Dst: Test::Result::confirm
      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:
    - Botan_Tests::Asio_Stream_Tests::test_data
    - AsioStream::next_layer
    - net::const_buffer
    - Server::handle_write
    - Test::Result::test_eq
    - push_back
    - Test::Result::confirm
    - TestStream::str
    - Botan_Tests::Asio_Stream_Tests::get_context
    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::confirm
      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:
    - error_code::failed
    - net::const_buffer
    - Server::handle_write
    - push_back
    - Test::Result::confirm
    - Botan::TLS::Stream<TestStream>::next_layer
    - Botan_Tests::Asio_Stream_Tests::get_context
    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::confirm
      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::confirm
      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_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_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::confirm
      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:
    - AsioStream::next_layer
    - std::array::data
    - Botan_Tests::Asio_Stream_Tests::contains
    - std::vector::emplace_back
    - net::const_buffer
    - Server::handle_write
    - std::array::back
    - TestStream::buffer
    - Test::Result::test_eq
    - push_back
    - std::array::size
    - std::array::fill
    - Test::Result::confirm
    - Botan_Tests::Asio_Stream_Tests::get_context
    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_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:652,1
    - Dst: Test::Result::confirm
      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:
    - AsioStream::next_layer
    - net::const_buffer
    - Server::handle_write
    - Test::Result::test_eq
    - push_back
    - Test::Result::confirm
    - Botan_Tests::Asio_Stream_Tests::get_context
    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_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:670,1
    - Dst: Test::Result::confirm
      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:
    - Botan_Tests::ThrowingMockChannel::expected_ec
    - net::const_buffer
    - Server::handle_write
    - Test::Result::test_eq
    - push_back
    - Test::Result::confirm
    - ThrowingAsioStream::next_layer
    - Botan_Tests::Asio_Stream_Tests::get_context
    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::confirm
      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_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:688,1
    - Dst: Test::Result::confirm
      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:
    - Botan_Tests::Asio_Stream_Tests::test_data
    - AsioStream::next_layer
    - net::const_buffer
    - net::async_write
    - Test::Result::test_eq
    - net::io_context::run
    - push_back
    - Test::Result::confirm
    - TestStream::str
    - Botan_Tests::Asio_Stream_Tests::get_context
    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::confirm
      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::confirm
      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_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_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::confirm
      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:
    - AsioStream::next_layer
    - std::array::data
    - Botan_Tests::Asio_Stream_Tests::contains
    - std::vector::emplace_back
    - net::const_buffer
    - net::async_write
    - std::array::back
    - TestStream::buffer
    - Test::Result::test_eq
    - net::io_context::run
    - std::array::size
    - std::array::fill
    - Test::Result::confirm
    - push_back
    - Botan_Tests::Asio_Stream_Tests::get_context
    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_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:749,1
    - Dst: Test::Result::confirm
      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:
    - AsioStream::next_layer
    - net::const_buffer
    - net::async_write
    - Test::Result::test_eq
    - net::io_context::run
    - push_back
    - Test::Result::confirm
    - Botan_Tests::Asio_Stream_Tests::get_context
    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_eq
      Src: /src/botan/src/tests/unit_asio_stream.cpp:770,1
    - Dst: Test::Result::confirm
      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:
    - Botan_Tests::ThrowingMockChannel::expected_ec
    - net::const_buffer
    - net::async_write
    - Test::Result::test_eq
    - net::io_context::run
    - push_back
    - Test::Result::confirm
    - ThrowingAsioStream::next_layer
    - Botan_Tests::Asio_Stream_Tests::get_context
    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_async_handshake_error
    - Botan_Tests::Asio_Stream_Tests::test_async_handshake_throw
    - Botan_Tests::Asio_Stream_Tests::test_async_read_some_buffer_sequence
    - Botan_Tests::Asio_Stream_Tests::test_sync_write_some_throw
    - Botan_Tests::Asio_Stream_Tests::test_async_write_some_error
    - Botan_Tests::Asio_Stream_Tests::test_async_handshake
    - Botan_Tests::Asio_Stream_Tests::test_sync_handshake_error
    - 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_sync_no_handshake
    - Botan_Tests::Asio_Stream_Tests::test_sync_handshake
    - Botan_Tests::Asio_Stream_Tests::test_async_handshake_cancellation
    - Botan_Tests::Asio_Stream_Tests::test_sync_handshake_throw
    - Botan_Tests::Asio_Stream_Tests::test_sync_read_some_success
    - Botan_Tests::Asio_Stream_Tests::test_sync_read_some_buffer_sequence
    - Botan_Tests::Asio_Stream_Tests::test_async_read_some_error
    - Botan_Tests::Asio_Stream_Tests::test_async_write_throw
    - Botan_Tests::Asio_Stream_Tests::test_sync_read_some_throw
    - 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_cancellation
    - Botan_Tests::Asio_Stream_Tests::test_async_write_some_success
    - Botan_Tests::Asio_Stream_Tests::test_sync_write_some_error
    - Botan_Tests::Asio_Stream_Tests::test_async_read_zero_buffer
    - Botan_Tests::Asio_Stream_Tests::test_sync_read_some_error
    - Botan_Tests::Asio_Stream_Tests::test_sync_write_some_success
    - Botan_Tests::Asio_Stream_Tests::test_async_write_some_buffer_sequence
    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:47,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/tests/test_hash_id.cpp:49,1
    - Dst: Botan::DER_Encoder::start_sequence
      Src: /src/botan/src/tests/test_hash_id.cpp:55,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hash_id.cpp:57,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash_id.cpp:57,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash_id.cpp:57,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash_id.cpp:57,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: Test::Result::test_failure
      Src: /src/botan/src/tests/test_hash_id.cpp:61,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_hash_id.cpp:66,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_hash_id.cpp:66,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash_id.cpp:66,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hash_id.cpp:68,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_hash_id.cpp:71,1
    - Dst: what
      Src: /src/botan/src/tests/test_hash_id.cpp:71,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_hash_id.cpp:74,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 78
    functionName: Botan_Tests::PKCS_HashID_Test::run
    functionSourceFile: /src/botan/src/tests/test_hash_id.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - Botan::DER_Encoder::start_sequence
    - Botan::pkcs_hash_id
    - std::vector::push_back
    - Test::Result::test_failure
    - Test::Result::test_eq
    - what
    - Botan::OID::from_string
    - 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:47,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/tests/test_hash_id.cpp:49,1
    - Dst: Botan::DER_Encoder::start_sequence
      Src: /src/botan/src/tests/test_hash_id.cpp:55,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hash_id.cpp:57,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash_id.cpp:57,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash_id.cpp:57,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash_id.cpp:57,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: Test::Result::test_failure
      Src: /src/botan/src/tests/test_hash_id.cpp:61,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_hash_id.cpp:66,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_hash_id.cpp:66,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_hash_id.cpp:66,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_hash_id.cpp:68,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_hash_id.cpp:71,1
    - Dst: what
      Src: /src/botan/src/tests/test_hash_id.cpp:71,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_hash_id.cpp:74,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 78
    functionName: Botan_Tests::PKCS_HashID_Test::run
    functionSourceFile: /src/botan/src/tests/test_hash_id.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - Botan::DER_Encoder::start_sequence
    - Botan::pkcs_hash_id
    - std::vector::push_back
    - Test::Result::test_failure
    - Test::Result::test_eq
    - what
    - Botan::OID::from_string
    - 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:56,1
    - Dst: test_reseed_kat
      Src: /src/botan/src/tests/test_rng_behavior.cpp:56,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:57,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::test_reseed
      Src: /src/botan/src/tests/test_rng_behavior.cpp:57,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:58,1
    - Dst: test_reseed_interval_limits
      Src: /src/botan/src/tests/test_rng_behavior.cpp:58,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:59,1
    - Dst: test_max_number_of_bytes_per_request
      Src: /src/botan/src/tests/test_rng_behavior.cpp:59,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:60,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::test_broken_entropy_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:60,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:61,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::test_check_nonce
      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_prediction_resistance
      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: Botan_Tests::Stateful_RNG_Tests::test_randomize_with_ts_input
      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_security_level
      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_input_output_edge_cases
      Src: /src/botan/src/tests/test_rng_behavior.cpp:65,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_rng_behavior.cpp:74,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:75,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::test_fork_safety
      Src: /src/botan/src/tests/test_rng_behavior.cpp:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 79
    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
    - std::vector::push_back
    - test_max_number_of_bytes_per_request
    - Botan_Tests::Stateful_RNG_Tests::test_broken_entropy_input
    - Botan_Tests::Stateful_RNG_Tests::test_check_nonce
    - test_security_level
    - Botan_Tests::Stateful_RNG_Tests::test_input_output_edge_cases
    - Botan_Tests::test_encoding_options
    - test_reseed_interval_limits
    - Botan_Tests::Stateful_RNG_Tests::test_fork_safety
    - test_reseed_kat
    - Botan_Tests::Stateful_RNG_Tests::test_prediction_resistance
    - Botan_Tests::Stateful_RNG_Tests::test_randomize_with_ts_input
    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:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' underlying_rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    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:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' underlying_srcs'
    argTypes:
    - Botan::Entropy_Sources
    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::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:101,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: 102
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 102
    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:114,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:119,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:121,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:122,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:122,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:123,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:124,1
    - Dst: Request_Counting_RNG::randomize_count
      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_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_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_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_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::max_number_of_bytes_per_request
      Src: /src/botan/src/tests/test_rng_behavior.cpp:136,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:138,1
    - Dst: Test::Result::test_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::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:141,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:142,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 146
    functionName: Botan_Tests::Stateful_RNG_Tests::test_reseed
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 1
    functionsReached:
    - Request_Counting_RNG::randomize_count
    - rng_name
    - auto::random_vec
    - Test::Result::test_eq
    - Botan_Tests::Stateful_RNG_Tests::make_rng
    - auto::max_number_of_bytes_per_request
    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:149,1
    - Dst: Botan::Not_Implemented::Not_Implemented
      Src: /src/botan/src/tests/test_rng_behavior.cpp:157,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:173,1
    - Dst: Botan::Null_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:173,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:174,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:176,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:176,1
    - Dst: std::make_unique<Broken_Entropy_Source>
      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:182,1
    - Dst: Botan::Entropy_Sources::Entropy_Sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:184,1
    - Dst: Botan::Entropy_Sources::add_source
      Src: /src/botan/src/tests/test_rng_behavior.cpp:185,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:185,1
    - Dst: Botan::Entropy_Sources::add_source
      Src: /src/botan/src/tests/test_rng_behavior.cpp:186,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:186,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:188,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:189,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:189,1
    - Dst: Botan::Entropy_Sources::Entropy_Sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:192,1
    - Dst: std::make_unique<Insufficient_Entropy_Source>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:193,1
    - Dst: Botan::Entropy_Sources::add_source
      Src: /src/botan/src/tests/test_rng_behavior.cpp:194,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:194,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:196,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:197,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:198,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:203,1
    - Dst: Botan::Entropy_Sources::global_sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:203,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:205,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:206,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:208,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::rng
      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: 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
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 221
    functionName: Botan_Tests::Stateful_RNG_Tests::test_broken_entropy_input
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_throws
    - std::move
    - Botan::Entropy_Sources::global_sources
    - std::make_unique<Insufficient_Entropy_Source>
    - rng_name
    - Botan_Tests::Stateful_RNG_Tests::rng
    - Botan::Null_RNG::is_seeded
    - auto::random_vec
    - Botan::Not_Implemented::Not_Implemented
    - Test::Result::test_eq
    - Botan::Entropy_Sources::add_source
    - Botan_Tests::Stateful_RNG_Tests::make_rng
    - Botan::Entropy_Sources::Entropy_Sources
    - std::make_unique<Broken_Entropy_Source>
    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: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    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:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 158
    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: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    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: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    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:224,1
    - Dst: create_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:227,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:230,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:231,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:231,1
    - Dst: auto::initialize_with
      Src: /src/botan/src/tests/test_rng_behavior.cpp:234,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:234,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:234,1
    - Dst: auto::security_level
      Src: /src/botan/src/tests/test_rng_behavior.cpp:236,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:237,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:237,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:238,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:238,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:240,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:240,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:241,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 246
    functionName: Botan_Tests::Stateful_RNG_Tests::test_check_nonce
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 1
    functionsReached:
    - auto::initialize_with
    - Test::Result::test_throws
    - auto::clear
    - rng_name
    - auto::random_vec
    - auto::security_level
    - std::vector::data
    - auto::is_seeded
    - Test::Result::test_eq
    - std::vector::size
    - create_rng
    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:249,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:253,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:255,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:256,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:256,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:258,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:259,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:259,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:261,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:262,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 265
    functionName: Botan_Tests::Stateful_RNG_Tests::test_prediction_resistance
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 1
    functionsReached:
    - Request_Counting_RNG::randomize_count
    - rng_name
    - auto::random_vec
    - Test::Result::test_eq
    - 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:268,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:275,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:277,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:278,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:278,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:281,1
    - Dst: ::pipe
      Src: /src/botan/src/tests/test_rng_behavior.cpp:285,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_rng_behavior.cpp:287,1
    - Dst: Botan_Tests::Filter_Tests::test_fork
      Src: /src/botan/src/tests/test_rng_behavior.cpp:290,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_rng_behavior.cpp:293,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_rng_behavior.cpp:295,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/tests/test_rng_behavior.cpp:300,1
    - Dst: Shim_Socket::read
      Src: /src/botan/src/tests/test_rng_behavior.cpp:301,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:304,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:305,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:305,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:306,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_rng_behavior.cpp:308,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:311,1
    - Dst: Shim_Socket::read
      Src: /src/botan/src/tests/test_rng_behavior.cpp:312,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:312,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:312,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:315,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:315,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_rng_behavior.cpp:316,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_rng_behavior.cpp:318,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/tests/test_rng_behavior.cpp:320,1
    - Dst: ::waitpid
      Src: /src/botan/src/tests/test_rng_behavior.cpp:324,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/tests/test_rng_behavior.cpp:327,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:328,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:328,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:328,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:329,1
    - Dst: Shim_Socket::write
      Src: /src/botan/src/tests/test_rng_behavior.cpp:330,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_rng_behavior.cpp:331,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: static_cast<void>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:335,1
    - Dst: fprintf
      Src: /src/botan/src/tests/test_rng_behavior.cpp:335,1
    - Dst: what
      Src: /src/botan/src/tests/test_rng_behavior.cpp:335,1
    - Dst: Shim_Socket::write
      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: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_rng_behavior.cpp:338,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/tests/test_rng_behavior.cpp:339,1
    - Dst: ::execl
      Src: /src/botan/src/tests/test_rng_behavior.cpp:346,1
    - Dst: Botan_CLI::ServerStatus::should_exit
      Src: /src/botan/src/tests/test_rng_behavior.cpp:347,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 351
    functionName: Botan_Tests::Stateful_RNG_Tests::test_fork_safety
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 1
    functionsReached:
    - Shim_Socket::write
    - Botan_Tests::Filter_Tests::test_fork
    - Test::Result::test_failure
    - Botan::TLS::Channel_Impl::close
    - Botan::secure_vector::data
    - ::execl
    - what
    - BOTAN_UNUSED
    - ::waitpid
    - Botan::secure_vector::size
    - Request_Counting_RNG::randomize_count
    - Test::Result::test_ne
    - auto::randomize
    - Botan_CLI::ServerStatus::should_exit
    - Shim_Socket::read
    - Botan_Tests::Stateful_RNG_Tests::make_rng
    - Test::Result::test_note
    - rng_name
    - auto::random_vec
    - fprintf
    - Test::Result::test_eq
    - static_cast<void>
    - ::pipe
    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:354,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:364,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:365,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:370,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:370,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:370,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:371,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:371,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:371,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:373,1
    - Dst: auto::randomize_with_ts_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:375,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:375,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:375,1
    - Dst: auto::randomize_with_ts_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:376,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:376,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:376,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_rng_behavior.cpp:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 381
    functionName: Botan_Tests::Stateful_RNG_Tests::test_randomize_with_ts_input
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_ne
    - rng_name
    - auto::randomize_with_ts_input
    - auto::randomize
    - Test::Result::test_eq
    - Botan::secure_vector::data
    - Botan_Tests::Stateful_RNG_Tests::make_rng
    - Botan::secure_vector::size
    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:384,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:389,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:393,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:393,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:393,1
    - Dst: auto::add_entropy
      Src: /src/botan/src/tests/test_rng_behavior.cpp:394,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:394,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:394,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rng_behavior.cpp:396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 400
    functionName: Botan_Tests::Stateful_RNG_Tests::test_input_output_edge_cases
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 1
    functionsReached:
    - rng_name
    - auto::randomize
    - std::vector::data
    - auto::add_entropy
    - Botan_Tests::Stateful_RNG_Tests::make_rng
    - std::vector::size
    - Test::Result::test_success
    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: 409
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 409
    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:415,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:418,1
    - Dst: std::move
      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:420,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:420,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:422,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:422,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:424,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:424,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_rng_behavior.cpp:426,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: 428
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 428
    functionName: Botan_Tests::HMAC_DRBG_Unit_Tests::create_rng
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::MessageAuthenticationCode::create
    - Test_Error
    - 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:437,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:439,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:442,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:445,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:452,1
    - Dst: Botan::HMAC_DRBG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:454,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:455,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:455,1
    - Dst: Botan::HMAC_DRBG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:457,1
    - Dst: Request_Counting_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:458,1
    - Dst: Botan::HMAC_DRBG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:460,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:461,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:461,1
    - Dst: Botan::HMAC_DRBG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:463,1
    - Dst: Request_Counting_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:464,1
    - Dst: Botan::HMAC_DRBG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:466,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:467,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:467,1
    - Dst: Botan::HMAC_DRBG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:469,1
    - Dst: Request_Counting_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:470,1
    - Dst: Botan::HMAC_DRBG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:472,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:473,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 476
    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:
    - Test::Result::test_throws
    - Request_Counting_RNG::randomize_count
    - Request_Counting_RNG::clear
    - Botan::HMAC_DRBG::clear
    - Botan::HMAC_DRBG::random_vec
    - Test::Result::test_eq
    - Botan::MessageAuthenticationCode::create
    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:485,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:486,1
    - 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:491,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 497
    functionName: Botan_Tests::HMAC_DRBG_Unit_Tests::test_reseed_interval_limits
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::MessageAuthenticationCode::create
    - 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:505,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:510,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_rng_behavior.cpp:512,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:517,1
    - Dst: Botan::HMAC_DRBG::security_level
      Src: /src/botan/src/tests/test_rng_behavior.cpp:517,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 521
    functionName: Botan_Tests::HMAC_DRBG_Unit_Tests::test_security_level
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::note_missing
    - Botan::HMAC_DRBG::security_level
    - Test::Result::test_eq
    - Botan::MessageAuthenticationCode::create
    - std::vector::size
    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:527,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:533,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:533,1
    - Dst: auto::initialize_with
      Src: /src/botan/src/tests/test_rng_behavior.cpp:535,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:535,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:535,1
    - Dst: auto::randomize
      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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:540,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:540,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:541,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:544,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:544,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:544,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:545,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:545,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 549
    functionName: Botan_Tests::HMAC_DRBG_Unit_Tests::test_reseed_kat
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - auto::initialize_with
    - Request_Counting_RNG::randomize_count
    - auto::randomize
    - auto::is_seeded
    - Test::Result::test_eq
    - Botan::secure_vector::data
    - Botan::secure_vector::size
    - make_rng
    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:553,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_rng_behavior.cpp:555,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:558,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:558,1
    - Dst: auto::add_entropy
      Src: /src/botan/src/tests/test_rng_behavior.cpp:562,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_rng_behavior.cpp:566,1
    - Dst: make_seeded_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:568,1
    - Dst: make_seeded_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:569,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:571,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:571,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:572,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:572,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:574,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:576,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:577,1
    - Dst: auto::insert
      Src: /src/botan/src/tests/test_rng_behavior.cpp:578,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_rng_behavior.cpp:578,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_rng_behavior.cpp:578,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_rng_behavior.cpp:578,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:580,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_rng_behavior.cpp:585,1
    - Dst: make_seeded_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:586,1
    - Dst: make_seeded_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:587,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:589,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:589,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:590,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:590,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:593,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:597,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_rng_behavior.cpp:597,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:598,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_rng_behavior.cpp:598,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:599,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_rng_behavior.cpp:599,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 552
    functionDepth: 3
    functionLinenumber: 552
    functionLinenumberEnd: 605
    functionName: Botan_Tests::hmac_drbg_multiple_requests
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - make_seeded_rng
    - Botan_Tests::CHECK
    - auto::random_vec
    - auto::end
    - Botan::Null_RNG
    - std::span::subspan
    - auto::is_seeded
    - auto::randomize_with_input
    - auto::add_entropy
    - Botan::MessageAuthenticationCode::create
    - auto::insert
    - confirm
    - auto::begin
    - std::make_unique<Botan::HMAC_DRBG>
    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: 616
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 616
    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:622,1
    - Dst: std::make_unique<Botan::ChaCha_RNG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:624,1
    - Dst: std::make_unique<Botan::ChaCha_RNG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:626,1
    - Dst: std::make_unique<Botan::ChaCha_RNG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:628,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_rng_behavior.cpp:630,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: 632
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 632
    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:636,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:637,1
    - Dst: Botan::ChaCha_RNG::security_level
      Src: /src/botan/src/tests/test_rng_behavior.cpp:637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 639
    functionName: Botan_Tests::ChaCha_RNG_Unit_Tests::test_security_level
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_eq
    - Botan::ChaCha_RNG::security_level
    - Botan::ChaCha_RNG::ChaCha_RNG
    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: 645
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 645
    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: 651
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 651
    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:657,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:661,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:661,1
    - Dst: auto::initialize_with
      Src: /src/botan/src/tests/test_rng_behavior.cpp:663,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:663,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:663,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:667,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:667,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:667,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:668,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:668,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:669,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:672,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:672,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:672,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:673,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:673,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 677
    functionName: Botan_Tests::ChaCha_RNG_Unit_Tests::test_reseed_kat
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - auto::initialize_with
    - Request_Counting_RNG::randomize_count
    - auto::randomize
    - auto::is_seeded
    - Test::Result::test_eq
    - Botan::secure_vector::data
    - Botan::secure_vector::size
    - make_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_reseed_kat() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:693,1
    - Dst: Botan::Null_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:693,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rng_behavior.cpp:698,1
    - Dst: Botan::Entropy_Sources::Entropy_Sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:702,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_rng_behavior.cpp:706,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rng_behavior.cpp:708,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rng_behavior.cpp:714,1
    - Dst: Botan::AutoSeeded_RNG::AutoSeeded_RNG
      Src: /src/botan/src/tests/test_rng_behavior.cpp:718,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:720,1
    - Dst: Botan::AutoSeeded_RNG::name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:720,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:722,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:722,1
    - Dst: Botan::AutoSeeded_RNG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:723,1
    - Dst: Botan::AutoSeeded_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:724,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:725,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:725,1
    - Dst: Botan::AutoSeeded_RNG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:728,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:729,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:729,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:731,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:731,1
    - Dst: Botan::AutoSeeded_RNG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:732,1
    - Dst: Botan::AutoSeeded_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:733,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:734,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:734,1
    - Dst: Botan::AutoSeeded_RNG::reseed
      Src: /src/botan/src/tests/test_rng_behavior.cpp:737,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_rng_behavior.cpp:737,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:738,1
    - Dst: Test::Result::test_eq
      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:742,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:743,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:743,1
    - Dst: Botan::AutoSeeded_RNG::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:747,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:747,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:747,1
    - Dst: Botan::AutoSeeded_RNG::add_entropy
      Src: /src/botan/src/tests/test_rng_behavior.cpp:748,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:748,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:748,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rng_behavior.cpp:750,1
    - Dst: Botan::AutoSeeded_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:753,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 756
    functionName: Botan_Tests::AutoSeeded_RNG_Tests::auto_rng_tests
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timer::milliseconds
    - Botan::Null_RNG::is_seeded
    - Botan::AutoSeeded_RNG::AutoSeeded_RNG
    - Test::Result::test_failure
    - Botan::AutoSeeded_RNG::reseed
    - Botan::AutoSeeded_RNG::clear
    - Botan::AutoSeeded_RNG::random_vec
    - std::vector::data
    - Botan::AutoSeeded_RNG::is_seeded
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::AutoSeeded_RNG::randomize
    - Botan::AutoSeeded_RNG::add_entropy
    - Botan::Entropy_Sources::Entropy_Sources
    - Botan::AutoSeeded_RNG::name
    - std::vector::size
    - Test::Result::test_success
    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:761,1
    - Dst: Botan_Tests::AutoSeeded_RNG_Tests::auto_rng_tests
      Src: /src/botan/src/tests/test_rng_behavior.cpp:761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 759
    functionDepth: 2
    functionLinenumber: 759
    functionLinenumberEnd: 763
    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_gte
      Src: /src/botan/src/tests/test_rng_behavior.cpp:779,1
    - Dst: Botan::System_RNG::name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:779,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:781,1
    - Dst: Botan::System_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:781,1
    - Dst: Botan::System_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:782,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:783,1
    - Dst: Botan::System_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:783,1
    - Dst: Botan::System_RNG::reseed
      Src: /src/botan/src/tests/test_rng_behavior.cpp:786,1
    - Dst: Botan::Entropy_Sources::global_sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:786,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_rng_behavior.cpp:786,1
    - Dst: Botan::System_RNG::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:791,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:791,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:791,1
    - Dst: Botan::System_RNG::add_entropy
      Src: /src/botan/src/tests/test_rng_behavior.cpp:792,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:792,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:792,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_rng_behavior.cpp:795,1
    - Dst: Botan_Tests::Test::run_memory_intensive_tests
      Src: /src/botan/src/tests/test_rng_behavior.cpp:795,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/tests/test_rng_behavior.cpp:797,1
    - Dst: std::memset
      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: Botan::System_RNG::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:802,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:802,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:802,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:806,1
    - Dst: std::memcmp
      Src: /src/botan/src/tests/test_rng_behavior.cpp:807,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:807,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:807,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 774
    functionDepth: 1
    functionLinenumber: 774
    functionLinenumberEnd: 811
    functionName: Botan_Tests::System_RNG_Tests::run
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timer::milliseconds
    - Botan::System_RNG::add_entropy
    - Botan_Tests::random_bit_generator::max
    - std::memset
    - Botan::System_RNG::clear
    - Botan::System_RNG::name
    - Botan::Entropy_Sources::global_sources
    - Botan::System_RNG::randomize
    - Botan_Tests::Test::run_long_tests
    - Botan::System_RNG::is_seeded
    - std::vector::data
    - Test::Result::confirm
    - Test::Result::test_gte
    - Botan::System_RNG::reseed
    - Botan_Tests::Test::run_memory_intensive_tests
    - std::vector::size
    - std::memcmp
    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:825,1
    - Dst: Botan::Processor_RNG::Processor_RNG
      Src: /src/botan/src/tests/test_rng_behavior.cpp:826,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_rng_behavior.cpp:828,1
    - Dst: Botan::Processor_RNG::name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:828,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:829,1
    - Dst: Botan::Processor_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:829,1
    - Dst: Botan::Processor_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:830,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:831,1
    - Dst: Botan::Processor_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:831,1
    - Dst: Botan::Processor_RNG::reseed
      Src: /src/botan/src/tests/test_rng_behavior.cpp:834,1
    - Dst: Botan::Entropy_Sources::global_sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:834,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/tests/test_rng_behavior.cpp:834,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:835,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:844,1
    - Dst: static_cast<uintptr_t>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:844,1
    - Dst: Botan::Processor_RNG::add_entropy
      Src: /src/botan/src/tests/test_rng_behavior.cpp:846,1
    - Dst: Botan::Processor_RNG::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:850,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:850,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:850,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:853,1
    - Dst: Botan::Processor_RNG::Processor_RNG
      Src: /src/botan/src/tests/test_rng_behavior.cpp:853,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 822
    functionDepth: 1
    functionLinenumber: 822
    functionLinenumberEnd: 857
    functionName: Botan_Tests::Processor_RNG_Tests::run
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::Processor_RNG::available
    - Botan::Processor_RNG::add_entropy
    - Botan::Processor_RNG::clear
    - Botan::Entropy_Sources::global_sources
    - Test::Result::test_ne
    - Test::Result::test_throws
    - Botan::Processor_RNG::name
    - Botan_CLI::Timer::seconds
    - reinterpret_cast<const uint8_t*>
    - std::vector::data
    - Botan::Processor_RNG::reseed
    - Test::Result::test_eq
    - static_cast<uintptr_t>
    - Test::Result::confirm
    - Botan::Processor_RNG::Processor_RNG
    - std::vector::size
    - Botan::Processor_RNG::randomize
    - Botan::Processor_RNG::is_seeded
    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:56,1
    - Dst: test_reseed_kat
      Src: /src/botan/src/tests/test_rng_behavior.cpp:56,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:57,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::test_reseed
      Src: /src/botan/src/tests/test_rng_behavior.cpp:57,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:58,1
    - Dst: test_reseed_interval_limits
      Src: /src/botan/src/tests/test_rng_behavior.cpp:58,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:59,1
    - Dst: test_max_number_of_bytes_per_request
      Src: /src/botan/src/tests/test_rng_behavior.cpp:59,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:60,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::test_broken_entropy_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:60,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:61,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::test_check_nonce
      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_prediction_resistance
      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: Botan_Tests::Stateful_RNG_Tests::test_randomize_with_ts_input
      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_security_level
      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_input_output_edge_cases
      Src: /src/botan/src/tests/test_rng_behavior.cpp:65,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_rng_behavior.cpp:74,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:75,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::test_fork_safety
      Src: /src/botan/src/tests/test_rng_behavior.cpp:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 79
    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
    - std::vector::push_back
    - test_max_number_of_bytes_per_request
    - Botan_Tests::Stateful_RNG_Tests::test_broken_entropy_input
    - Botan_Tests::Stateful_RNG_Tests::test_check_nonce
    - test_security_level
    - Botan_Tests::Stateful_RNG_Tests::test_input_output_edge_cases
    - Botan_Tests::test_encoding_options
    - test_reseed_interval_limits
    - Botan_Tests::Stateful_RNG_Tests::test_fork_safety
    - test_reseed_kat
    - Botan_Tests::Stateful_RNG_Tests::test_prediction_resistance
    - Botan_Tests::Stateful_RNG_Tests::test_randomize_with_ts_input
    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:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' underlying_rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    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:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' underlying_srcs'
    argTypes:
    - Botan::Entropy_Sources
    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::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:101,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: 102
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 102
    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:114,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:119,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:121,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:122,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:122,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:123,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:124,1
    - Dst: Request_Counting_RNG::randomize_count
      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_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_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_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_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::max_number_of_bytes_per_request
      Src: /src/botan/src/tests/test_rng_behavior.cpp:136,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:138,1
    - Dst: Test::Result::test_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::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:141,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:142,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 146
    functionName: Botan_Tests::Stateful_RNG_Tests::test_reseed
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 2
    functionsReached:
    - Request_Counting_RNG::randomize_count
    - rng_name
    - auto::random_vec
    - Test::Result::test_eq
    - Botan_Tests::Stateful_RNG_Tests::make_rng
    - auto::max_number_of_bytes_per_request
    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:149,1
    - Dst: Botan::Not_Implemented::Not_Implemented
      Src: /src/botan/src/tests/test_rng_behavior.cpp:157,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:173,1
    - Dst: Botan::Null_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:173,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:174,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:176,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:176,1
    - Dst: std::make_unique<Broken_Entropy_Source>
      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:182,1
    - Dst: Botan::Entropy_Sources::Entropy_Sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:184,1
    - Dst: Botan::Entropy_Sources::add_source
      Src: /src/botan/src/tests/test_rng_behavior.cpp:185,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:185,1
    - Dst: Botan::Entropy_Sources::add_source
      Src: /src/botan/src/tests/test_rng_behavior.cpp:186,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:186,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:188,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:189,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:189,1
    - Dst: Botan::Entropy_Sources::Entropy_Sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:192,1
    - Dst: std::make_unique<Insufficient_Entropy_Source>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:193,1
    - Dst: Botan::Entropy_Sources::add_source
      Src: /src/botan/src/tests/test_rng_behavior.cpp:194,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:194,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:196,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:197,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:198,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:203,1
    - Dst: Botan::Entropy_Sources::global_sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:203,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:205,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:206,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:208,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::rng
      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: 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
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 221
    functionName: Botan_Tests::Stateful_RNG_Tests::test_broken_entropy_input
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::test_throws
    - std::move
    - Botan::Entropy_Sources::global_sources
    - std::make_unique<Insufficient_Entropy_Source>
    - rng_name
    - Botan_Tests::Stateful_RNG_Tests::rng
    - Botan::Null_RNG::is_seeded
    - auto::random_vec
    - Botan::Not_Implemented::Not_Implemented
    - Test::Result::test_eq
    - Botan::Entropy_Sources::add_source
    - Botan_Tests::Stateful_RNG_Tests::make_rng
    - Botan::Entropy_Sources::Entropy_Sources
    - std::make_unique<Broken_Entropy_Source>
    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: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    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:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 158
    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: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    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: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    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:224,1
    - Dst: create_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:227,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:230,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:231,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:231,1
    - Dst: auto::initialize_with
      Src: /src/botan/src/tests/test_rng_behavior.cpp:234,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:234,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:234,1
    - Dst: auto::security_level
      Src: /src/botan/src/tests/test_rng_behavior.cpp:236,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:237,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:237,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:238,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:238,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:240,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:240,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:241,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 246
    functionName: Botan_Tests::Stateful_RNG_Tests::test_check_nonce
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 2
    functionsReached:
    - auto::initialize_with
    - Test::Result::test_throws
    - auto::clear
    - rng_name
    - auto::random_vec
    - auto::security_level
    - std::vector::data
    - auto::is_seeded
    - Test::Result::test_eq
    - std::vector::size
    - create_rng
    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:249,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:253,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:255,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:256,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:256,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:258,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:259,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:259,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:261,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:262,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 265
    functionName: Botan_Tests::Stateful_RNG_Tests::test_prediction_resistance
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 2
    functionsReached:
    - Request_Counting_RNG::randomize_count
    - rng_name
    - auto::random_vec
    - Test::Result::test_eq
    - 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:268,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:275,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:277,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:278,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:278,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:281,1
    - Dst: ::pipe
      Src: /src/botan/src/tests/test_rng_behavior.cpp:285,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_rng_behavior.cpp:287,1
    - Dst: Botan_Tests::Filter_Tests::test_fork
      Src: /src/botan/src/tests/test_rng_behavior.cpp:290,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_rng_behavior.cpp:293,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_rng_behavior.cpp:295,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/tests/test_rng_behavior.cpp:300,1
    - Dst: Shim_Socket::read
      Src: /src/botan/src/tests/test_rng_behavior.cpp:301,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:304,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:305,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:305,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:306,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_rng_behavior.cpp:308,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:311,1
    - Dst: Shim_Socket::read
      Src: /src/botan/src/tests/test_rng_behavior.cpp:312,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:312,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:312,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:315,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:315,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_rng_behavior.cpp:316,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_rng_behavior.cpp:318,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/tests/test_rng_behavior.cpp:320,1
    - Dst: ::waitpid
      Src: /src/botan/src/tests/test_rng_behavior.cpp:324,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/tests/test_rng_behavior.cpp:327,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:328,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:328,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:328,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:329,1
    - Dst: Shim_Socket::write
      Src: /src/botan/src/tests/test_rng_behavior.cpp:330,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_rng_behavior.cpp:331,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: static_cast<void>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:335,1
    - Dst: fprintf
      Src: /src/botan/src/tests/test_rng_behavior.cpp:335,1
    - Dst: what
      Src: /src/botan/src/tests/test_rng_behavior.cpp:335,1
    - Dst: Shim_Socket::write
      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: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_rng_behavior.cpp:338,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/tests/test_rng_behavior.cpp:339,1
    - Dst: ::execl
      Src: /src/botan/src/tests/test_rng_behavior.cpp:346,1
    - Dst: Botan_CLI::ServerStatus::should_exit
      Src: /src/botan/src/tests/test_rng_behavior.cpp:347,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 351
    functionName: Botan_Tests::Stateful_RNG_Tests::test_fork_safety
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 2
    functionsReached:
    - Shim_Socket::write
    - Botan_Tests::Filter_Tests::test_fork
    - Test::Result::test_failure
    - Botan::TLS::Channel_Impl::close
    - Botan::secure_vector::data
    - ::execl
    - what
    - BOTAN_UNUSED
    - ::waitpid
    - Botan::secure_vector::size
    - Request_Counting_RNG::randomize_count
    - Test::Result::test_ne
    - auto::randomize
    - Botan_CLI::ServerStatus::should_exit
    - Shim_Socket::read
    - Botan_Tests::Stateful_RNG_Tests::make_rng
    - Test::Result::test_note
    - rng_name
    - auto::random_vec
    - fprintf
    - Test::Result::test_eq
    - static_cast<void>
    - ::pipe
    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:354,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:364,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:365,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:370,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:370,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:370,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:371,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:371,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:371,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:373,1
    - Dst: auto::randomize_with_ts_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:375,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:375,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:375,1
    - Dst: auto::randomize_with_ts_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:376,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:376,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:376,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_rng_behavior.cpp:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 381
    functionName: Botan_Tests::Stateful_RNG_Tests::test_randomize_with_ts_input
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::test_ne
    - rng_name
    - auto::randomize_with_ts_input
    - auto::randomize
    - Test::Result::test_eq
    - Botan::secure_vector::data
    - Botan_Tests::Stateful_RNG_Tests::make_rng
    - Botan::secure_vector::size
    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:384,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:389,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:393,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:393,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:393,1
    - Dst: auto::add_entropy
      Src: /src/botan/src/tests/test_rng_behavior.cpp:394,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:394,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:394,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rng_behavior.cpp:396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 400
    functionName: Botan_Tests::Stateful_RNG_Tests::test_input_output_edge_cases
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 2
    functionsReached:
    - rng_name
    - auto::randomize
    - std::vector::data
    - auto::add_entropy
    - Botan_Tests::Stateful_RNG_Tests::make_rng
    - std::vector::size
    - Test::Result::test_success
    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: 409
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 409
    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:415,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:418,1
    - Dst: std::move
      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:420,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:420,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:422,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:422,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:424,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:424,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_rng_behavior.cpp:426,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: 428
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 428
    functionName: Botan_Tests::HMAC_DRBG_Unit_Tests::create_rng
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::MessageAuthenticationCode::create
    - Test_Error
    - 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:437,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:439,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:442,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:445,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:452,1
    - Dst: Botan::HMAC_DRBG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:454,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:455,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:455,1
    - Dst: Botan::HMAC_DRBG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:457,1
    - Dst: Request_Counting_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:458,1
    - Dst: Botan::HMAC_DRBG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:460,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:461,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:461,1
    - Dst: Botan::HMAC_DRBG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:463,1
    - Dst: Request_Counting_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:464,1
    - Dst: Botan::HMAC_DRBG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:466,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:467,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:467,1
    - Dst: Botan::HMAC_DRBG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:469,1
    - Dst: Request_Counting_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:470,1
    - Dst: Botan::HMAC_DRBG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:472,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:473,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 476
    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:
    - Test::Result::test_throws
    - Request_Counting_RNG::randomize_count
    - Request_Counting_RNG::clear
    - Botan::HMAC_DRBG::clear
    - Botan::HMAC_DRBG::random_vec
    - Test::Result::test_eq
    - Botan::MessageAuthenticationCode::create
    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:485,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:486,1
    - 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:491,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 497
    functionName: Botan_Tests::HMAC_DRBG_Unit_Tests::test_reseed_interval_limits
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::MessageAuthenticationCode::create
    - 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:505,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:510,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_rng_behavior.cpp:512,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:517,1
    - Dst: Botan::HMAC_DRBG::security_level
      Src: /src/botan/src/tests/test_rng_behavior.cpp:517,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 521
    functionName: Botan_Tests::HMAC_DRBG_Unit_Tests::test_security_level
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::note_missing
    - Botan::HMAC_DRBG::security_level
    - Test::Result::test_eq
    - Botan::MessageAuthenticationCode::create
    - std::vector::size
    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:527,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:533,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:533,1
    - Dst: auto::initialize_with
      Src: /src/botan/src/tests/test_rng_behavior.cpp:535,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:535,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:535,1
    - Dst: auto::randomize
      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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:540,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:540,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:541,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:544,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:544,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:544,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:545,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:545,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 549
    functionName: Botan_Tests::HMAC_DRBG_Unit_Tests::test_reseed_kat
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - auto::initialize_with
    - Request_Counting_RNG::randomize_count
    - auto::randomize
    - auto::is_seeded
    - Test::Result::test_eq
    - Botan::secure_vector::data
    - Botan::secure_vector::size
    - make_rng
    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:553,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_rng_behavior.cpp:555,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:558,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:558,1
    - Dst: auto::add_entropy
      Src: /src/botan/src/tests/test_rng_behavior.cpp:562,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_rng_behavior.cpp:566,1
    - Dst: make_seeded_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:568,1
    - Dst: make_seeded_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:569,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:571,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:571,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:572,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:572,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:574,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:576,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:577,1
    - Dst: auto::insert
      Src: /src/botan/src/tests/test_rng_behavior.cpp:578,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_rng_behavior.cpp:578,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_rng_behavior.cpp:578,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_rng_behavior.cpp:578,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:580,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_rng_behavior.cpp:585,1
    - Dst: make_seeded_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:586,1
    - Dst: make_seeded_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:587,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:589,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:589,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:590,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:590,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:593,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:597,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_rng_behavior.cpp:597,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:598,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_rng_behavior.cpp:598,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:599,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_rng_behavior.cpp:599,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 552
    functionDepth: 3
    functionLinenumber: 552
    functionLinenumberEnd: 605
    functionName: Botan_Tests::hmac_drbg_multiple_requests
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - make_seeded_rng
    - Botan_Tests::CHECK
    - auto::random_vec
    - auto::end
    - Botan::Null_RNG
    - std::span::subspan
    - auto::is_seeded
    - auto::randomize_with_input
    - auto::add_entropy
    - Botan::MessageAuthenticationCode::create
    - auto::insert
    - confirm
    - auto::begin
    - std::make_unique<Botan::HMAC_DRBG>
    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: 616
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 616
    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:622,1
    - Dst: std::make_unique<Botan::ChaCha_RNG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:624,1
    - Dst: std::make_unique<Botan::ChaCha_RNG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:626,1
    - Dst: std::make_unique<Botan::ChaCha_RNG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:628,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_rng_behavior.cpp:630,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: 632
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 632
    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:636,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:637,1
    - Dst: Botan::ChaCha_RNG::security_level
      Src: /src/botan/src/tests/test_rng_behavior.cpp:637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 639
    functionName: Botan_Tests::ChaCha_RNG_Unit_Tests::test_security_level
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_eq
    - Botan::ChaCha_RNG::security_level
    - Botan::ChaCha_RNG::ChaCha_RNG
    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: 645
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 645
    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: 651
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 651
    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:657,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:661,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:661,1
    - Dst: auto::initialize_with
      Src: /src/botan/src/tests/test_rng_behavior.cpp:663,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:663,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:663,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:667,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:667,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:667,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:668,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:668,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:669,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:672,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:672,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:672,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:673,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:673,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 677
    functionName: Botan_Tests::ChaCha_RNG_Unit_Tests::test_reseed_kat
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - auto::initialize_with
    - Request_Counting_RNG::randomize_count
    - auto::randomize
    - auto::is_seeded
    - Test::Result::test_eq
    - Botan::secure_vector::data
    - Botan::secure_vector::size
    - make_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_reseed_kat() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:693,1
    - Dst: Botan::Null_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:693,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rng_behavior.cpp:698,1
    - Dst: Botan::Entropy_Sources::Entropy_Sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:702,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_rng_behavior.cpp:706,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rng_behavior.cpp:708,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rng_behavior.cpp:714,1
    - Dst: Botan::AutoSeeded_RNG::AutoSeeded_RNG
      Src: /src/botan/src/tests/test_rng_behavior.cpp:718,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:720,1
    - Dst: Botan::AutoSeeded_RNG::name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:720,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:722,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:722,1
    - Dst: Botan::AutoSeeded_RNG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:723,1
    - Dst: Botan::AutoSeeded_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:724,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:725,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:725,1
    - Dst: Botan::AutoSeeded_RNG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:728,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:729,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:729,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:731,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:731,1
    - Dst: Botan::AutoSeeded_RNG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:732,1
    - Dst: Botan::AutoSeeded_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:733,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:734,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:734,1
    - Dst: Botan::AutoSeeded_RNG::reseed
      Src: /src/botan/src/tests/test_rng_behavior.cpp:737,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_rng_behavior.cpp:737,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:738,1
    - Dst: Test::Result::test_eq
      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:742,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:743,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:743,1
    - Dst: Botan::AutoSeeded_RNG::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:747,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:747,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:747,1
    - Dst: Botan::AutoSeeded_RNG::add_entropy
      Src: /src/botan/src/tests/test_rng_behavior.cpp:748,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:748,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:748,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rng_behavior.cpp:750,1
    - Dst: Botan::AutoSeeded_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:753,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 756
    functionName: Botan_Tests::AutoSeeded_RNG_Tests::auto_rng_tests
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 1
    functionsReached:
    - Botan_CLI::Timer::milliseconds
    - Botan::Null_RNG::is_seeded
    - Botan::AutoSeeded_RNG::AutoSeeded_RNG
    - Test::Result::test_failure
    - Botan::AutoSeeded_RNG::reseed
    - Botan::AutoSeeded_RNG::clear
    - Botan::AutoSeeded_RNG::random_vec
    - std::vector::data
    - Botan::AutoSeeded_RNG::is_seeded
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::AutoSeeded_RNG::randomize
    - Botan::AutoSeeded_RNG::add_entropy
    - Botan::Entropy_Sources::Entropy_Sources
    - Botan::AutoSeeded_RNG::name
    - std::vector::size
    - Test::Result::test_success
    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:761,1
    - Dst: Botan_Tests::AutoSeeded_RNG_Tests::auto_rng_tests
      Src: /src/botan/src/tests/test_rng_behavior.cpp:761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 759
    functionDepth: 2
    functionLinenumber: 759
    functionLinenumberEnd: 763
    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_gte
      Src: /src/botan/src/tests/test_rng_behavior.cpp:779,1
    - Dst: Botan::System_RNG::name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:779,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:781,1
    - Dst: Botan::System_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:781,1
    - Dst: Botan::System_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:782,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:783,1
    - Dst: Botan::System_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:783,1
    - Dst: Botan::System_RNG::reseed
      Src: /src/botan/src/tests/test_rng_behavior.cpp:786,1
    - Dst: Botan::Entropy_Sources::global_sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:786,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_rng_behavior.cpp:786,1
    - Dst: Botan::System_RNG::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:791,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:791,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:791,1
    - Dst: Botan::System_RNG::add_entropy
      Src: /src/botan/src/tests/test_rng_behavior.cpp:792,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:792,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:792,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_rng_behavior.cpp:795,1
    - Dst: Botan_Tests::Test::run_memory_intensive_tests
      Src: /src/botan/src/tests/test_rng_behavior.cpp:795,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/tests/test_rng_behavior.cpp:797,1
    - Dst: std::memset
      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: Botan::System_RNG::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:802,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:802,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:802,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:806,1
    - Dst: std::memcmp
      Src: /src/botan/src/tests/test_rng_behavior.cpp:807,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:807,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:807,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 774
    functionDepth: 1
    functionLinenumber: 774
    functionLinenumberEnd: 811
    functionName: Botan_Tests::System_RNG_Tests::run
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timer::milliseconds
    - Botan::System_RNG::add_entropy
    - Botan_Tests::random_bit_generator::max
    - std::memset
    - Botan::System_RNG::clear
    - Botan::System_RNG::name
    - Botan::Entropy_Sources::global_sources
    - Botan::System_RNG::randomize
    - Botan_Tests::Test::run_long_tests
    - Botan::System_RNG::is_seeded
    - std::vector::data
    - Test::Result::confirm
    - Test::Result::test_gte
    - Botan::System_RNG::reseed
    - Botan_Tests::Test::run_memory_intensive_tests
    - std::vector::size
    - std::memcmp
    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:825,1
    - Dst: Botan::Processor_RNG::Processor_RNG
      Src: /src/botan/src/tests/test_rng_behavior.cpp:826,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_rng_behavior.cpp:828,1
    - Dst: Botan::Processor_RNG::name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:828,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:829,1
    - Dst: Botan::Processor_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:829,1
    - Dst: Botan::Processor_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:830,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:831,1
    - Dst: Botan::Processor_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:831,1
    - Dst: Botan::Processor_RNG::reseed
      Src: /src/botan/src/tests/test_rng_behavior.cpp:834,1
    - Dst: Botan::Entropy_Sources::global_sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:834,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/tests/test_rng_behavior.cpp:834,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:835,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:844,1
    - Dst: static_cast<uintptr_t>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:844,1
    - Dst: Botan::Processor_RNG::add_entropy
      Src: /src/botan/src/tests/test_rng_behavior.cpp:846,1
    - Dst: Botan::Processor_RNG::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:850,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:850,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:850,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:853,1
    - Dst: Botan::Processor_RNG::Processor_RNG
      Src: /src/botan/src/tests/test_rng_behavior.cpp:853,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 822
    functionDepth: 1
    functionLinenumber: 822
    functionLinenumberEnd: 857
    functionName: Botan_Tests::Processor_RNG_Tests::run
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::Processor_RNG::available
    - Botan::Processor_RNG::add_entropy
    - Botan::Processor_RNG::clear
    - Botan::Entropy_Sources::global_sources
    - Test::Result::test_ne
    - Test::Result::test_throws
    - Botan::Processor_RNG::name
    - Botan_CLI::Timer::seconds
    - reinterpret_cast<const uint8_t*>
    - std::vector::data
    - Botan::Processor_RNG::reseed
    - Test::Result::test_eq
    - static_cast<uintptr_t>
    - Test::Result::confirm
    - Botan::Processor_RNG::Processor_RNG
    - std::vector::size
    - Botan::Processor_RNG::randomize
    - Botan::Processor_RNG::is_seeded
    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:56,1
    - Dst: test_reseed_kat
      Src: /src/botan/src/tests/test_rng_behavior.cpp:56,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:57,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::test_reseed
      Src: /src/botan/src/tests/test_rng_behavior.cpp:57,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:58,1
    - Dst: test_reseed_interval_limits
      Src: /src/botan/src/tests/test_rng_behavior.cpp:58,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:59,1
    - Dst: test_max_number_of_bytes_per_request
      Src: /src/botan/src/tests/test_rng_behavior.cpp:59,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:60,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::test_broken_entropy_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:60,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:61,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::test_check_nonce
      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_prediction_resistance
      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: Botan_Tests::Stateful_RNG_Tests::test_randomize_with_ts_input
      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_security_level
      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_input_output_edge_cases
      Src: /src/botan/src/tests/test_rng_behavior.cpp:65,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_rng_behavior.cpp:74,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:75,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::test_fork_safety
      Src: /src/botan/src/tests/test_rng_behavior.cpp:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 79
    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
    - std::vector::push_back
    - test_max_number_of_bytes_per_request
    - Botan_Tests::Stateful_RNG_Tests::test_broken_entropy_input
    - Botan_Tests::Stateful_RNG_Tests::test_check_nonce
    - test_security_level
    - Botan_Tests::Stateful_RNG_Tests::test_input_output_edge_cases
    - Botan_Tests::test_encoding_options
    - test_reseed_interval_limits
    - Botan_Tests::Stateful_RNG_Tests::test_fork_safety
    - test_reseed_kat
    - Botan_Tests::Stateful_RNG_Tests::test_prediction_resistance
    - Botan_Tests::Stateful_RNG_Tests::test_randomize_with_ts_input
    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:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' underlying_rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    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:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' underlying_srcs'
    argTypes:
    - Botan::Entropy_Sources
    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::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:101,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: 102
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 102
    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:114,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:119,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:121,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:122,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:122,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:123,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:124,1
    - Dst: Request_Counting_RNG::randomize_count
      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_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_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_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_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::max_number_of_bytes_per_request
      Src: /src/botan/src/tests/test_rng_behavior.cpp:136,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:138,1
    - Dst: Test::Result::test_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::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:141,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:142,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 146
    functionName: Botan_Tests::Stateful_RNG_Tests::test_reseed
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 3
    functionsReached:
    - Request_Counting_RNG::randomize_count
    - rng_name
    - auto::random_vec
    - Test::Result::test_eq
    - Botan_Tests::Stateful_RNG_Tests::make_rng
    - auto::max_number_of_bytes_per_request
    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:149,1
    - Dst: Botan::Not_Implemented::Not_Implemented
      Src: /src/botan/src/tests/test_rng_behavior.cpp:157,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:173,1
    - Dst: Botan::Null_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:173,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:174,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:176,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:176,1
    - Dst: std::make_unique<Broken_Entropy_Source>
      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:182,1
    - Dst: Botan::Entropy_Sources::Entropy_Sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:184,1
    - Dst: Botan::Entropy_Sources::add_source
      Src: /src/botan/src/tests/test_rng_behavior.cpp:185,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:185,1
    - Dst: Botan::Entropy_Sources::add_source
      Src: /src/botan/src/tests/test_rng_behavior.cpp:186,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:186,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:188,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:189,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:189,1
    - Dst: Botan::Entropy_Sources::Entropy_Sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:192,1
    - Dst: std::make_unique<Insufficient_Entropy_Source>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:193,1
    - Dst: Botan::Entropy_Sources::add_source
      Src: /src/botan/src/tests/test_rng_behavior.cpp:194,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:194,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:196,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:197,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:198,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:203,1
    - Dst: Botan::Entropy_Sources::global_sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:203,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:205,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:206,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:208,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::rng
      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: 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
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 221
    functionName: Botan_Tests::Stateful_RNG_Tests::test_broken_entropy_input
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 3
    functionsReached:
    - Test::Result::test_throws
    - std::move
    - Botan::Entropy_Sources::global_sources
    - std::make_unique<Insufficient_Entropy_Source>
    - rng_name
    - Botan_Tests::Stateful_RNG_Tests::rng
    - Botan::Null_RNG::is_seeded
    - auto::random_vec
    - Botan::Not_Implemented::Not_Implemented
    - Test::Result::test_eq
    - Botan::Entropy_Sources::add_source
    - Botan_Tests::Stateful_RNG_Tests::make_rng
    - Botan::Entropy_Sources::Entropy_Sources
    - std::make_unique<Broken_Entropy_Source>
    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: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    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:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 158
    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: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    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: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    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:224,1
    - Dst: create_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:227,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:230,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:231,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:231,1
    - Dst: auto::initialize_with
      Src: /src/botan/src/tests/test_rng_behavior.cpp:234,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:234,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:234,1
    - Dst: auto::security_level
      Src: /src/botan/src/tests/test_rng_behavior.cpp:236,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:237,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:237,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:238,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:238,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:240,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:240,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:241,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 246
    functionName: Botan_Tests::Stateful_RNG_Tests::test_check_nonce
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 3
    functionsReached:
    - auto::initialize_with
    - Test::Result::test_throws
    - auto::clear
    - rng_name
    - auto::random_vec
    - auto::security_level
    - std::vector::data
    - auto::is_seeded
    - Test::Result::test_eq
    - std::vector::size
    - create_rng
    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:249,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:253,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:255,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:256,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:256,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:258,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:259,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:259,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:261,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:262,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 265
    functionName: Botan_Tests::Stateful_RNG_Tests::test_prediction_resistance
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 3
    functionsReached:
    - Request_Counting_RNG::randomize_count
    - rng_name
    - auto::random_vec
    - Test::Result::test_eq
    - 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:268,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:275,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:277,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:278,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:278,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:281,1
    - Dst: ::pipe
      Src: /src/botan/src/tests/test_rng_behavior.cpp:285,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_rng_behavior.cpp:287,1
    - Dst: Botan_Tests::Filter_Tests::test_fork
      Src: /src/botan/src/tests/test_rng_behavior.cpp:290,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_rng_behavior.cpp:293,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_rng_behavior.cpp:295,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/tests/test_rng_behavior.cpp:300,1
    - Dst: Shim_Socket::read
      Src: /src/botan/src/tests/test_rng_behavior.cpp:301,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:304,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:305,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:305,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:306,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_rng_behavior.cpp:308,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:311,1
    - Dst: Shim_Socket::read
      Src: /src/botan/src/tests/test_rng_behavior.cpp:312,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:312,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:312,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:315,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:315,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_rng_behavior.cpp:316,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_rng_behavior.cpp:318,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/tests/test_rng_behavior.cpp:320,1
    - Dst: ::waitpid
      Src: /src/botan/src/tests/test_rng_behavior.cpp:324,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/tests/test_rng_behavior.cpp:327,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:328,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:328,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:328,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:329,1
    - Dst: Shim_Socket::write
      Src: /src/botan/src/tests/test_rng_behavior.cpp:330,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_rng_behavior.cpp:331,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: static_cast<void>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:335,1
    - Dst: fprintf
      Src: /src/botan/src/tests/test_rng_behavior.cpp:335,1
    - Dst: what
      Src: /src/botan/src/tests/test_rng_behavior.cpp:335,1
    - Dst: Shim_Socket::write
      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: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_rng_behavior.cpp:338,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/tests/test_rng_behavior.cpp:339,1
    - Dst: ::execl
      Src: /src/botan/src/tests/test_rng_behavior.cpp:346,1
    - Dst: Botan_CLI::ServerStatus::should_exit
      Src: /src/botan/src/tests/test_rng_behavior.cpp:347,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 351
    functionName: Botan_Tests::Stateful_RNG_Tests::test_fork_safety
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 3
    functionsReached:
    - Shim_Socket::write
    - Botan_Tests::Filter_Tests::test_fork
    - Test::Result::test_failure
    - Botan::TLS::Channel_Impl::close
    - Botan::secure_vector::data
    - ::execl
    - what
    - BOTAN_UNUSED
    - ::waitpid
    - Botan::secure_vector::size
    - Request_Counting_RNG::randomize_count
    - Test::Result::test_ne
    - auto::randomize
    - Botan_CLI::ServerStatus::should_exit
    - Shim_Socket::read
    - Botan_Tests::Stateful_RNG_Tests::make_rng
    - Test::Result::test_note
    - rng_name
    - auto::random_vec
    - fprintf
    - Test::Result::test_eq
    - static_cast<void>
    - ::pipe
    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:354,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:364,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:365,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:370,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:370,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:370,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:371,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:371,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:371,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:373,1
    - Dst: auto::randomize_with_ts_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:375,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:375,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:375,1
    - Dst: auto::randomize_with_ts_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:376,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:376,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:376,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_rng_behavior.cpp:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 381
    functionName: Botan_Tests::Stateful_RNG_Tests::test_randomize_with_ts_input
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 3
    functionsReached:
    - Test::Result::test_ne
    - rng_name
    - auto::randomize_with_ts_input
    - auto::randomize
    - Test::Result::test_eq
    - Botan::secure_vector::data
    - Botan_Tests::Stateful_RNG_Tests::make_rng
    - Botan::secure_vector::size
    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:384,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:389,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:393,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:393,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:393,1
    - Dst: auto::add_entropy
      Src: /src/botan/src/tests/test_rng_behavior.cpp:394,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:394,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:394,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rng_behavior.cpp:396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 400
    functionName: Botan_Tests::Stateful_RNG_Tests::test_input_output_edge_cases
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 3
    functionsReached:
    - rng_name
    - auto::randomize
    - std::vector::data
    - auto::add_entropy
    - Botan_Tests::Stateful_RNG_Tests::make_rng
    - std::vector::size
    - Test::Result::test_success
    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: 409
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 409
    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:415,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:418,1
    - Dst: std::move
      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:420,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:420,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:422,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:422,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:424,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:424,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_rng_behavior.cpp:426,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: 428
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 428
    functionName: Botan_Tests::HMAC_DRBG_Unit_Tests::create_rng
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::MessageAuthenticationCode::create
    - Test_Error
    - 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:437,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:439,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:442,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:445,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:452,1
    - Dst: Botan::HMAC_DRBG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:454,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:455,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:455,1
    - Dst: Botan::HMAC_DRBG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:457,1
    - Dst: Request_Counting_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:458,1
    - Dst: Botan::HMAC_DRBG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:460,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:461,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:461,1
    - Dst: Botan::HMAC_DRBG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:463,1
    - Dst: Request_Counting_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:464,1
    - Dst: Botan::HMAC_DRBG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:466,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:467,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:467,1
    - Dst: Botan::HMAC_DRBG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:469,1
    - Dst: Request_Counting_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:470,1
    - Dst: Botan::HMAC_DRBG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:472,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:473,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 476
    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:
    - Test::Result::test_throws
    - Request_Counting_RNG::randomize_count
    - Request_Counting_RNG::clear
    - Botan::HMAC_DRBG::clear
    - Botan::HMAC_DRBG::random_vec
    - Test::Result::test_eq
    - Botan::MessageAuthenticationCode::create
    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:485,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:486,1
    - 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:491,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 497
    functionName: Botan_Tests::HMAC_DRBG_Unit_Tests::test_reseed_interval_limits
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::MessageAuthenticationCode::create
    - 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:505,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:510,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_rng_behavior.cpp:512,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:517,1
    - Dst: Botan::HMAC_DRBG::security_level
      Src: /src/botan/src/tests/test_rng_behavior.cpp:517,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 521
    functionName: Botan_Tests::HMAC_DRBG_Unit_Tests::test_security_level
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::note_missing
    - Botan::HMAC_DRBG::security_level
    - Test::Result::test_eq
    - Botan::MessageAuthenticationCode::create
    - std::vector::size
    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:527,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:533,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:533,1
    - Dst: auto::initialize_with
      Src: /src/botan/src/tests/test_rng_behavior.cpp:535,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:535,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:535,1
    - Dst: auto::randomize
      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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:540,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:540,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:541,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:544,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:544,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:544,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:545,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:545,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 549
    functionName: Botan_Tests::HMAC_DRBG_Unit_Tests::test_reseed_kat
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - auto::initialize_with
    - Request_Counting_RNG::randomize_count
    - auto::randomize
    - auto::is_seeded
    - Test::Result::test_eq
    - Botan::secure_vector::data
    - Botan::secure_vector::size
    - make_rng
    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:553,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_rng_behavior.cpp:555,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:558,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:558,1
    - Dst: auto::add_entropy
      Src: /src/botan/src/tests/test_rng_behavior.cpp:562,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_rng_behavior.cpp:566,1
    - Dst: make_seeded_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:568,1
    - Dst: make_seeded_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:569,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:571,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:571,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:572,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:572,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:574,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:576,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:577,1
    - Dst: auto::insert
      Src: /src/botan/src/tests/test_rng_behavior.cpp:578,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_rng_behavior.cpp:578,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_rng_behavior.cpp:578,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_rng_behavior.cpp:578,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:580,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_rng_behavior.cpp:585,1
    - Dst: make_seeded_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:586,1
    - Dst: make_seeded_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:587,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:589,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:589,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:590,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:590,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:593,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:597,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_rng_behavior.cpp:597,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:598,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_rng_behavior.cpp:598,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:599,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_rng_behavior.cpp:599,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 552
    functionDepth: 3
    functionLinenumber: 552
    functionLinenumberEnd: 605
    functionName: Botan_Tests::hmac_drbg_multiple_requests
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - make_seeded_rng
    - Botan_Tests::CHECK
    - auto::random_vec
    - auto::end
    - Botan::Null_RNG
    - std::span::subspan
    - auto::is_seeded
    - auto::randomize_with_input
    - auto::add_entropy
    - Botan::MessageAuthenticationCode::create
    - auto::insert
    - confirm
    - auto::begin
    - std::make_unique<Botan::HMAC_DRBG>
    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: 616
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 616
    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:622,1
    - Dst: std::make_unique<Botan::ChaCha_RNG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:624,1
    - Dst: std::make_unique<Botan::ChaCha_RNG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:626,1
    - Dst: std::make_unique<Botan::ChaCha_RNG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:628,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_rng_behavior.cpp:630,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: 632
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 632
    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:636,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:637,1
    - Dst: Botan::ChaCha_RNG::security_level
      Src: /src/botan/src/tests/test_rng_behavior.cpp:637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 639
    functionName: Botan_Tests::ChaCha_RNG_Unit_Tests::test_security_level
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_eq
    - Botan::ChaCha_RNG::security_level
    - Botan::ChaCha_RNG::ChaCha_RNG
    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: 645
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 645
    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: 651
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 651
    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:657,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:661,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:661,1
    - Dst: auto::initialize_with
      Src: /src/botan/src/tests/test_rng_behavior.cpp:663,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:663,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:663,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:667,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:667,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:667,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:668,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:668,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:669,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:672,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:672,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:672,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:673,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:673,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 677
    functionName: Botan_Tests::ChaCha_RNG_Unit_Tests::test_reseed_kat
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - auto::initialize_with
    - Request_Counting_RNG::randomize_count
    - auto::randomize
    - auto::is_seeded
    - Test::Result::test_eq
    - Botan::secure_vector::data
    - Botan::secure_vector::size
    - make_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_reseed_kat() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:693,1
    - Dst: Botan::Null_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:693,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rng_behavior.cpp:698,1
    - Dst: Botan::Entropy_Sources::Entropy_Sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:702,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_rng_behavior.cpp:706,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rng_behavior.cpp:708,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rng_behavior.cpp:714,1
    - Dst: Botan::AutoSeeded_RNG::AutoSeeded_RNG
      Src: /src/botan/src/tests/test_rng_behavior.cpp:718,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:720,1
    - Dst: Botan::AutoSeeded_RNG::name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:720,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:722,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:722,1
    - Dst: Botan::AutoSeeded_RNG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:723,1
    - Dst: Botan::AutoSeeded_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:724,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:725,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:725,1
    - Dst: Botan::AutoSeeded_RNG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:728,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:729,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:729,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:731,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:731,1
    - Dst: Botan::AutoSeeded_RNG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:732,1
    - Dst: Botan::AutoSeeded_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:733,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:734,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:734,1
    - Dst: Botan::AutoSeeded_RNG::reseed
      Src: /src/botan/src/tests/test_rng_behavior.cpp:737,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_rng_behavior.cpp:737,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:738,1
    - Dst: Test::Result::test_eq
      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:742,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:743,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:743,1
    - Dst: Botan::AutoSeeded_RNG::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:747,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:747,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:747,1
    - Dst: Botan::AutoSeeded_RNG::add_entropy
      Src: /src/botan/src/tests/test_rng_behavior.cpp:748,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:748,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:748,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rng_behavior.cpp:750,1
    - Dst: Botan::AutoSeeded_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:753,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 756
    functionName: Botan_Tests::AutoSeeded_RNG_Tests::auto_rng_tests
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 2
    functionsReached:
    - Botan_CLI::Timer::milliseconds
    - Botan::Null_RNG::is_seeded
    - Botan::AutoSeeded_RNG::AutoSeeded_RNG
    - Test::Result::test_failure
    - Botan::AutoSeeded_RNG::reseed
    - Botan::AutoSeeded_RNG::clear
    - Botan::AutoSeeded_RNG::random_vec
    - std::vector::data
    - Botan::AutoSeeded_RNG::is_seeded
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::AutoSeeded_RNG::randomize
    - Botan::AutoSeeded_RNG::add_entropy
    - Botan::Entropy_Sources::Entropy_Sources
    - Botan::AutoSeeded_RNG::name
    - std::vector::size
    - Test::Result::test_success
    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:761,1
    - Dst: Botan_Tests::AutoSeeded_RNG_Tests::auto_rng_tests
      Src: /src/botan/src/tests/test_rng_behavior.cpp:761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 759
    functionDepth: 2
    functionLinenumber: 759
    functionLinenumberEnd: 763
    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_gte
      Src: /src/botan/src/tests/test_rng_behavior.cpp:779,1
    - Dst: Botan::System_RNG::name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:779,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:781,1
    - Dst: Botan::System_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:781,1
    - Dst: Botan::System_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:782,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:783,1
    - Dst: Botan::System_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:783,1
    - Dst: Botan::System_RNG::reseed
      Src: /src/botan/src/tests/test_rng_behavior.cpp:786,1
    - Dst: Botan::Entropy_Sources::global_sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:786,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_rng_behavior.cpp:786,1
    - Dst: Botan::System_RNG::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:791,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:791,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:791,1
    - Dst: Botan::System_RNG::add_entropy
      Src: /src/botan/src/tests/test_rng_behavior.cpp:792,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:792,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:792,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_rng_behavior.cpp:795,1
    - Dst: Botan_Tests::Test::run_memory_intensive_tests
      Src: /src/botan/src/tests/test_rng_behavior.cpp:795,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/tests/test_rng_behavior.cpp:797,1
    - Dst: std::memset
      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: Botan::System_RNG::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:802,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:802,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:802,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:806,1
    - Dst: std::memcmp
      Src: /src/botan/src/tests/test_rng_behavior.cpp:807,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:807,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:807,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 774
    functionDepth: 1
    functionLinenumber: 774
    functionLinenumberEnd: 811
    functionName: Botan_Tests::System_RNG_Tests::run
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timer::milliseconds
    - Botan::System_RNG::add_entropy
    - Botan_Tests::random_bit_generator::max
    - std::memset
    - Botan::System_RNG::clear
    - Botan::System_RNG::name
    - Botan::Entropy_Sources::global_sources
    - Botan::System_RNG::randomize
    - Botan_Tests::Test::run_long_tests
    - Botan::System_RNG::is_seeded
    - std::vector::data
    - Test::Result::confirm
    - Test::Result::test_gte
    - Botan::System_RNG::reseed
    - Botan_Tests::Test::run_memory_intensive_tests
    - std::vector::size
    - std::memcmp
    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:825,1
    - Dst: Botan::Processor_RNG::Processor_RNG
      Src: /src/botan/src/tests/test_rng_behavior.cpp:826,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_rng_behavior.cpp:828,1
    - Dst: Botan::Processor_RNG::name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:828,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:829,1
    - Dst: Botan::Processor_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:829,1
    - Dst: Botan::Processor_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:830,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:831,1
    - Dst: Botan::Processor_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:831,1
    - Dst: Botan::Processor_RNG::reseed
      Src: /src/botan/src/tests/test_rng_behavior.cpp:834,1
    - Dst: Botan::Entropy_Sources::global_sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:834,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/tests/test_rng_behavior.cpp:834,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:835,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:844,1
    - Dst: static_cast<uintptr_t>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:844,1
    - Dst: Botan::Processor_RNG::add_entropy
      Src: /src/botan/src/tests/test_rng_behavior.cpp:846,1
    - Dst: Botan::Processor_RNG::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:850,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:850,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:850,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:853,1
    - Dst: Botan::Processor_RNG::Processor_RNG
      Src: /src/botan/src/tests/test_rng_behavior.cpp:853,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 822
    functionDepth: 1
    functionLinenumber: 822
    functionLinenumberEnd: 857
    functionName: Botan_Tests::Processor_RNG_Tests::run
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::Processor_RNG::available
    - Botan::Processor_RNG::add_entropy
    - Botan::Processor_RNG::clear
    - Botan::Entropy_Sources::global_sources
    - Test::Result::test_ne
    - Test::Result::test_throws
    - Botan::Processor_RNG::name
    - Botan_CLI::Timer::seconds
    - reinterpret_cast<const uint8_t*>
    - std::vector::data
    - Botan::Processor_RNG::reseed
    - Test::Result::test_eq
    - static_cast<uintptr_t>
    - Test::Result::confirm
    - Botan::Processor_RNG::Processor_RNG
    - std::vector::size
    - Botan::Processor_RNG::randomize
    - Botan::Processor_RNG::is_seeded
    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:56,1
    - Dst: test_reseed_kat
      Src: /src/botan/src/tests/test_rng_behavior.cpp:56,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:57,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::test_reseed
      Src: /src/botan/src/tests/test_rng_behavior.cpp:57,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:58,1
    - Dst: test_reseed_interval_limits
      Src: /src/botan/src/tests/test_rng_behavior.cpp:58,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:59,1
    - Dst: test_max_number_of_bytes_per_request
      Src: /src/botan/src/tests/test_rng_behavior.cpp:59,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:60,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::test_broken_entropy_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:60,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:61,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::test_check_nonce
      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_prediction_resistance
      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: Botan_Tests::Stateful_RNG_Tests::test_randomize_with_ts_input
      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_security_level
      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_input_output_edge_cases
      Src: /src/botan/src/tests/test_rng_behavior.cpp:65,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_rng_behavior.cpp:74,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_rng_behavior.cpp:75,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::test_fork_safety
      Src: /src/botan/src/tests/test_rng_behavior.cpp:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 79
    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
    - std::vector::push_back
    - test_max_number_of_bytes_per_request
    - Botan_Tests::Stateful_RNG_Tests::test_broken_entropy_input
    - Botan_Tests::Stateful_RNG_Tests::test_check_nonce
    - test_security_level
    - Botan_Tests::Stateful_RNG_Tests::test_input_output_edge_cases
    - Botan_Tests::test_encoding_options
    - test_reseed_interval_limits
    - Botan_Tests::Stateful_RNG_Tests::test_fork_safety
    - test_reseed_kat
    - Botan_Tests::Stateful_RNG_Tests::test_prediction_resistance
    - Botan_Tests::Stateful_RNG_Tests::test_randomize_with_ts_input
    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:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' underlying_rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    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:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' underlying_srcs'
    argTypes:
    - Botan::Entropy_Sources
    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::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:101,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: 102
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 102
    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:114,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:119,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:121,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:122,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:122,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:123,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:124,1
    - Dst: Request_Counting_RNG::randomize_count
      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_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_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_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_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::max_number_of_bytes_per_request
      Src: /src/botan/src/tests/test_rng_behavior.cpp:136,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:138,1
    - Dst: Test::Result::test_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::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:141,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:142,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 146
    functionName: Botan_Tests::Stateful_RNG_Tests::test_reseed
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 4
    functionsReached:
    - Request_Counting_RNG::randomize_count
    - rng_name
    - auto::random_vec
    - Test::Result::test_eq
    - Botan_Tests::Stateful_RNG_Tests::make_rng
    - auto::max_number_of_bytes_per_request
    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:149,1
    - Dst: Botan::Not_Implemented::Not_Implemented
      Src: /src/botan/src/tests/test_rng_behavior.cpp:157,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:173,1
    - Dst: Botan::Null_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:173,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:174,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:176,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:176,1
    - Dst: std::make_unique<Broken_Entropy_Source>
      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:182,1
    - Dst: Botan::Entropy_Sources::Entropy_Sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:184,1
    - Dst: Botan::Entropy_Sources::add_source
      Src: /src/botan/src/tests/test_rng_behavior.cpp:185,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:185,1
    - Dst: Botan::Entropy_Sources::add_source
      Src: /src/botan/src/tests/test_rng_behavior.cpp:186,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:186,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:188,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:189,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:189,1
    - Dst: Botan::Entropy_Sources::Entropy_Sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:192,1
    - Dst: std::make_unique<Insufficient_Entropy_Source>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:193,1
    - Dst: Botan::Entropy_Sources::add_source
      Src: /src/botan/src/tests/test_rng_behavior.cpp:194,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:194,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:196,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:197,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:198,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:203,1
    - Dst: Botan::Entropy_Sources::global_sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:203,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:205,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:206,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:208,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::rng
      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: 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
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 221
    functionName: Botan_Tests::Stateful_RNG_Tests::test_broken_entropy_input
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 4
    functionsReached:
    - Test::Result::test_throws
    - std::move
    - Botan::Entropy_Sources::global_sources
    - std::make_unique<Insufficient_Entropy_Source>
    - rng_name
    - Botan_Tests::Stateful_RNG_Tests::rng
    - Botan::Null_RNG::is_seeded
    - auto::random_vec
    - Botan::Not_Implemented::Not_Implemented
    - Test::Result::test_eq
    - Botan::Entropy_Sources::add_source
    - Botan_Tests::Stateful_RNG_Tests::make_rng
    - Botan::Entropy_Sources::Entropy_Sources
    - std::make_unique<Broken_Entropy_Source>
    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: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    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:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 158
    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: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    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: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    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:224,1
    - Dst: create_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:227,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:230,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:231,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:231,1
    - Dst: auto::initialize_with
      Src: /src/botan/src/tests/test_rng_behavior.cpp:234,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:234,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:234,1
    - Dst: auto::security_level
      Src: /src/botan/src/tests/test_rng_behavior.cpp:236,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:237,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:237,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:238,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:238,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:240,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:240,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:241,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 246
    functionName: Botan_Tests::Stateful_RNG_Tests::test_check_nonce
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 4
    functionsReached:
    - auto::initialize_with
    - Test::Result::test_throws
    - auto::clear
    - rng_name
    - auto::random_vec
    - auto::security_level
    - std::vector::data
    - auto::is_seeded
    - Test::Result::test_eq
    - std::vector::size
    - create_rng
    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:249,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:253,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:255,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:256,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:256,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:258,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:259,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:259,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:261,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:262,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 265
    functionName: Botan_Tests::Stateful_RNG_Tests::test_prediction_resistance
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 4
    functionsReached:
    - Request_Counting_RNG::randomize_count
    - rng_name
    - auto::random_vec
    - Test::Result::test_eq
    - 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:268,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:275,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:277,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:278,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:278,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:281,1
    - Dst: ::pipe
      Src: /src/botan/src/tests/test_rng_behavior.cpp:285,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_rng_behavior.cpp:287,1
    - Dst: Botan_Tests::Filter_Tests::test_fork
      Src: /src/botan/src/tests/test_rng_behavior.cpp:290,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_rng_behavior.cpp:293,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_rng_behavior.cpp:295,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/tests/test_rng_behavior.cpp:300,1
    - Dst: Shim_Socket::read
      Src: /src/botan/src/tests/test_rng_behavior.cpp:301,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:304,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:305,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:305,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:306,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_rng_behavior.cpp:308,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:311,1
    - Dst: Shim_Socket::read
      Src: /src/botan/src/tests/test_rng_behavior.cpp:312,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:312,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:312,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:315,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:315,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_rng_behavior.cpp:316,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_rng_behavior.cpp:318,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/tests/test_rng_behavior.cpp:320,1
    - Dst: ::waitpid
      Src: /src/botan/src/tests/test_rng_behavior.cpp:324,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/tests/test_rng_behavior.cpp:327,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:328,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:328,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:328,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:329,1
    - Dst: Shim_Socket::write
      Src: /src/botan/src/tests/test_rng_behavior.cpp:330,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_rng_behavior.cpp:331,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: static_cast<void>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:335,1
    - Dst: fprintf
      Src: /src/botan/src/tests/test_rng_behavior.cpp:335,1
    - Dst: what
      Src: /src/botan/src/tests/test_rng_behavior.cpp:335,1
    - Dst: Shim_Socket::write
      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: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_rng_behavior.cpp:338,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/tests/test_rng_behavior.cpp:339,1
    - Dst: ::execl
      Src: /src/botan/src/tests/test_rng_behavior.cpp:346,1
    - Dst: Botan_CLI::ServerStatus::should_exit
      Src: /src/botan/src/tests/test_rng_behavior.cpp:347,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 351
    functionName: Botan_Tests::Stateful_RNG_Tests::test_fork_safety
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 4
    functionsReached:
    - Shim_Socket::write
    - Botan_Tests::Filter_Tests::test_fork
    - Test::Result::test_failure
    - Botan::TLS::Channel_Impl::close
    - Botan::secure_vector::data
    - ::execl
    - what
    - BOTAN_UNUSED
    - ::waitpid
    - Botan::secure_vector::size
    - Request_Counting_RNG::randomize_count
    - Test::Result::test_ne
    - auto::randomize
    - Botan_CLI::ServerStatus::should_exit
    - Shim_Socket::read
    - Botan_Tests::Stateful_RNG_Tests::make_rng
    - Test::Result::test_note
    - rng_name
    - auto::random_vec
    - fprintf
    - Test::Result::test_eq
    - static_cast<void>
    - ::pipe
    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:354,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:364,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:365,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:370,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:370,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:370,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:371,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:371,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:371,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:373,1
    - Dst: auto::randomize_with_ts_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:375,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:375,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:375,1
    - Dst: auto::randomize_with_ts_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:376,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:376,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:376,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_rng_behavior.cpp:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 381
    functionName: Botan_Tests::Stateful_RNG_Tests::test_randomize_with_ts_input
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 4
    functionsReached:
    - Test::Result::test_ne
    - rng_name
    - auto::randomize_with_ts_input
    - auto::randomize
    - Test::Result::test_eq
    - Botan::secure_vector::data
    - Botan_Tests::Stateful_RNG_Tests::make_rng
    - Botan::secure_vector::size
    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:384,1
    - Dst: Botan_Tests::Stateful_RNG_Tests::make_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:389,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:393,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:393,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:393,1
    - Dst: auto::add_entropy
      Src: /src/botan/src/tests/test_rng_behavior.cpp:394,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:394,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:394,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rng_behavior.cpp:396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 400
    functionName: Botan_Tests::Stateful_RNG_Tests::test_input_output_edge_cases
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 4
    functionsReached:
    - rng_name
    - auto::randomize
    - std::vector::data
    - auto::add_entropy
    - Botan_Tests::Stateful_RNG_Tests::make_rng
    - std::vector::size
    - Test::Result::test_success
    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: 409
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 409
    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:415,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:418,1
    - Dst: std::move
      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:420,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:420,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:422,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:422,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:424,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_rng_behavior.cpp:424,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_rng_behavior.cpp:426,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: 428
      start: 411
    functionDepth: 1
    functionLinenumber: 411
    functionLinenumberEnd: 428
    functionName: Botan_Tests::HMAC_DRBG_Unit_Tests::create_rng
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::MessageAuthenticationCode::create
    - Test_Error
    - 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:437,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:439,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:442,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:445,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:452,1
    - Dst: Botan::HMAC_DRBG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:454,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:455,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:455,1
    - Dst: Botan::HMAC_DRBG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:457,1
    - Dst: Request_Counting_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:458,1
    - Dst: Botan::HMAC_DRBG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:460,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:461,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:461,1
    - Dst: Botan::HMAC_DRBG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:463,1
    - Dst: Request_Counting_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:464,1
    - Dst: Botan::HMAC_DRBG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:466,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:467,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:467,1
    - Dst: Botan::HMAC_DRBG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:469,1
    - Dst: Request_Counting_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:470,1
    - Dst: Botan::HMAC_DRBG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:472,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:473,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 476
    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:
    - Test::Result::test_throws
    - Request_Counting_RNG::randomize_count
    - Request_Counting_RNG::clear
    - Botan::HMAC_DRBG::clear
    - Botan::HMAC_DRBG::random_vec
    - Test::Result::test_eq
    - Botan::MessageAuthenticationCode::create
    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:485,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:486,1
    - 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:491,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 497
    functionName: Botan_Tests::HMAC_DRBG_Unit_Tests::test_reseed_interval_limits
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::MessageAuthenticationCode::create
    - 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:505,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:510,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_rng_behavior.cpp:512,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:517,1
    - Dst: Botan::HMAC_DRBG::security_level
      Src: /src/botan/src/tests/test_rng_behavior.cpp:517,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 521
    functionName: Botan_Tests::HMAC_DRBG_Unit_Tests::test_security_level
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::note_missing
    - Botan::HMAC_DRBG::security_level
    - Test::Result::test_eq
    - Botan::MessageAuthenticationCode::create
    - std::vector::size
    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:527,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:533,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:533,1
    - Dst: auto::initialize_with
      Src: /src/botan/src/tests/test_rng_behavior.cpp:535,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:535,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:535,1
    - Dst: auto::randomize
      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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:540,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:540,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:541,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:544,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:544,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:544,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:545,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:545,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 549
    functionName: Botan_Tests::HMAC_DRBG_Unit_Tests::test_reseed_kat
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - auto::initialize_with
    - Request_Counting_RNG::randomize_count
    - auto::randomize
    - auto::is_seeded
    - Test::Result::test_eq
    - Botan::secure_vector::data
    - Botan::secure_vector::size
    - make_rng
    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:553,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_rng_behavior.cpp:555,1
    - Dst: std::make_unique<Botan::HMAC_DRBG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:558,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_rng_behavior.cpp:558,1
    - Dst: auto::add_entropy
      Src: /src/botan/src/tests/test_rng_behavior.cpp:562,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_rng_behavior.cpp:566,1
    - Dst: make_seeded_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:568,1
    - Dst: make_seeded_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:569,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:571,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:571,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:572,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:572,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:574,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:576,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:577,1
    - Dst: auto::insert
      Src: /src/botan/src/tests/test_rng_behavior.cpp:578,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_rng_behavior.cpp:578,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_rng_behavior.cpp:578,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_rng_behavior.cpp:578,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:580,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_rng_behavior.cpp:585,1
    - Dst: make_seeded_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:586,1
    - Dst: make_seeded_rng
      Src: /src/botan/src/tests/test_rng_behavior.cpp:587,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:589,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:589,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:590,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:590,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:593,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:597,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_rng_behavior.cpp:597,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:598,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_rng_behavior.cpp:598,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_rng_behavior.cpp:599,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_rng_behavior.cpp:599,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 605
      start: 552
    functionDepth: 3
    functionLinenumber: 552
    functionLinenumberEnd: 605
    functionName: Botan_Tests::hmac_drbg_multiple_requests
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - make_seeded_rng
    - Botan_Tests::CHECK
    - auto::random_vec
    - auto::end
    - Botan::Null_RNG
    - std::span::subspan
    - auto::is_seeded
    - auto::randomize_with_input
    - auto::add_entropy
    - Botan::MessageAuthenticationCode::create
    - auto::insert
    - confirm
    - auto::begin
    - std::make_unique<Botan::HMAC_DRBG>
    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: 616
      start: 616
    functionDepth: 0
    functionLinenumber: 616
    functionLinenumberEnd: 616
    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:622,1
    - Dst: std::make_unique<Botan::ChaCha_RNG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:624,1
    - Dst: std::make_unique<Botan::ChaCha_RNG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:626,1
    - Dst: std::make_unique<Botan::ChaCha_RNG>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:628,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_rng_behavior.cpp:630,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: 632
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 632
    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:636,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:637,1
    - Dst: Botan::ChaCha_RNG::security_level
      Src: /src/botan/src/tests/test_rng_behavior.cpp:637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 634
    functionDepth: 1
    functionLinenumber: 634
    functionLinenumberEnd: 639
    functionName: Botan_Tests::ChaCha_RNG_Unit_Tests::test_security_level
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_eq
    - Botan::ChaCha_RNG::security_level
    - Botan::ChaCha_RNG::ChaCha_RNG
    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: 645
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 645
    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: 651
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 651
    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:657,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:661,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:661,1
    - Dst: auto::initialize_with
      Src: /src/botan/src/tests/test_rng_behavior.cpp:663,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:663,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:663,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:667,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:667,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:667,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:668,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:668,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:669,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:672,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:672,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:672,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:673,1
    - Dst: Request_Counting_RNG::randomize_count
      Src: /src/botan/src/tests/test_rng_behavior.cpp:673,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 653
    functionDepth: 1
    functionLinenumber: 653
    functionLinenumberEnd: 677
    functionName: Botan_Tests::ChaCha_RNG_Unit_Tests::test_reseed_kat
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - auto::initialize_with
    - Request_Counting_RNG::randomize_count
    - auto::randomize
    - auto::is_seeded
    - Test::Result::test_eq
    - Botan::secure_vector::data
    - Botan::secure_vector::size
    - make_rng
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_reseed_kat() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:693,1
    - Dst: Botan::Null_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:693,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rng_behavior.cpp:698,1
    - Dst: Botan::Entropy_Sources::Entropy_Sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:702,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_rng_behavior.cpp:706,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rng_behavior.cpp:708,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rng_behavior.cpp:714,1
    - Dst: Botan::AutoSeeded_RNG::AutoSeeded_RNG
      Src: /src/botan/src/tests/test_rng_behavior.cpp:718,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:720,1
    - Dst: Botan::AutoSeeded_RNG::name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:720,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:722,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:722,1
    - Dst: Botan::AutoSeeded_RNG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:723,1
    - Dst: Botan::AutoSeeded_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:724,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:725,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:725,1
    - Dst: Botan::AutoSeeded_RNG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:728,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:729,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:729,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:731,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:731,1
    - Dst: Botan::AutoSeeded_RNG::random_vec
      Src: /src/botan/src/tests/test_rng_behavior.cpp:732,1
    - Dst: Botan::AutoSeeded_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:733,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:734,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:734,1
    - Dst: Botan::AutoSeeded_RNG::reseed
      Src: /src/botan/src/tests/test_rng_behavior.cpp:737,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_rng_behavior.cpp:737,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:738,1
    - Dst: Test::Result::test_eq
      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:742,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:743,1
    - Dst: Botan::AutoSeeded_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:743,1
    - Dst: Botan::AutoSeeded_RNG::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:747,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:747,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:747,1
    - Dst: Botan::AutoSeeded_RNG::add_entropy
      Src: /src/botan/src/tests/test_rng_behavior.cpp:748,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:748,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:748,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rng_behavior.cpp:750,1
    - Dst: Botan::AutoSeeded_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:753,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 756
    functionName: Botan_Tests::AutoSeeded_RNG_Tests::auto_rng_tests
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 3
    functionsReached:
    - Botan_CLI::Timer::milliseconds
    - Botan::Null_RNG::is_seeded
    - Botan::AutoSeeded_RNG::AutoSeeded_RNG
    - Test::Result::test_failure
    - Botan::AutoSeeded_RNG::reseed
    - Botan::AutoSeeded_RNG::clear
    - Botan::AutoSeeded_RNG::random_vec
    - std::vector::data
    - Botan::AutoSeeded_RNG::is_seeded
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::AutoSeeded_RNG::randomize
    - Botan::AutoSeeded_RNG::add_entropy
    - Botan::Entropy_Sources::Entropy_Sources
    - Botan::AutoSeeded_RNG::name
    - std::vector::size
    - Test::Result::test_success
    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:761,1
    - Dst: Botan_Tests::AutoSeeded_RNG_Tests::auto_rng_tests
      Src: /src/botan/src/tests/test_rng_behavior.cpp:761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 759
    functionDepth: 2
    functionLinenumber: 759
    functionLinenumberEnd: 763
    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_gte
      Src: /src/botan/src/tests/test_rng_behavior.cpp:779,1
    - Dst: Botan::System_RNG::name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:779,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:781,1
    - Dst: Botan::System_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:781,1
    - Dst: Botan::System_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:782,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:783,1
    - Dst: Botan::System_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:783,1
    - Dst: Botan::System_RNG::reseed
      Src: /src/botan/src/tests/test_rng_behavior.cpp:786,1
    - Dst: Botan::Entropy_Sources::global_sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:786,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_rng_behavior.cpp:786,1
    - Dst: Botan::System_RNG::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:791,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:791,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:791,1
    - Dst: Botan::System_RNG::add_entropy
      Src: /src/botan/src/tests/test_rng_behavior.cpp:792,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:792,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:792,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_rng_behavior.cpp:795,1
    - Dst: Botan_Tests::Test::run_memory_intensive_tests
      Src: /src/botan/src/tests/test_rng_behavior.cpp:795,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/tests/test_rng_behavior.cpp:797,1
    - Dst: std::memset
      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: Botan::System_RNG::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:802,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:802,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:802,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:806,1
    - Dst: std::memcmp
      Src: /src/botan/src/tests/test_rng_behavior.cpp:807,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:807,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:807,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 774
    functionDepth: 1
    functionLinenumber: 774
    functionLinenumberEnd: 811
    functionName: Botan_Tests::System_RNG_Tests::run
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timer::milliseconds
    - Botan::System_RNG::add_entropy
    - Botan_Tests::random_bit_generator::max
    - std::memset
    - Botan::System_RNG::clear
    - Botan::System_RNG::name
    - Botan::Entropy_Sources::global_sources
    - Botan::System_RNG::randomize
    - Botan_Tests::Test::run_long_tests
    - Botan::System_RNG::is_seeded
    - std::vector::data
    - Test::Result::confirm
    - Test::Result::test_gte
    - Botan::System_RNG::reseed
    - Botan_Tests::Test::run_memory_intensive_tests
    - std::vector::size
    - std::memcmp
    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:825,1
    - Dst: Botan::Processor_RNG::Processor_RNG
      Src: /src/botan/src/tests/test_rng_behavior.cpp:826,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_rng_behavior.cpp:828,1
    - Dst: Botan::Processor_RNG::name
      Src: /src/botan/src/tests/test_rng_behavior.cpp:828,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:829,1
    - Dst: Botan::Processor_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:829,1
    - Dst: Botan::Processor_RNG::clear
      Src: /src/botan/src/tests/test_rng_behavior.cpp:830,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_rng_behavior.cpp:831,1
    - Dst: Botan::Processor_RNG::is_seeded
      Src: /src/botan/src/tests/test_rng_behavior.cpp:831,1
    - Dst: Botan::Processor_RNG::reseed
      Src: /src/botan/src/tests/test_rng_behavior.cpp:834,1
    - Dst: Botan::Entropy_Sources::global_sources
      Src: /src/botan/src/tests/test_rng_behavior.cpp:834,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/tests/test_rng_behavior.cpp:834,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rng_behavior.cpp:835,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:844,1
    - Dst: static_cast<uintptr_t>
      Src: /src/botan/src/tests/test_rng_behavior.cpp:844,1
    - Dst: Botan::Processor_RNG::add_entropy
      Src: /src/botan/src/tests/test_rng_behavior.cpp:846,1
    - Dst: Botan::Processor_RNG::randomize
      Src: /src/botan/src/tests/test_rng_behavior.cpp:850,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rng_behavior.cpp:850,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rng_behavior.cpp:850,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rng_behavior.cpp:853,1
    - Dst: Botan::Processor_RNG::Processor_RNG
      Src: /src/botan/src/tests/test_rng_behavior.cpp:853,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 822
    functionDepth: 1
    functionLinenumber: 822
    functionLinenumberEnd: 857
    functionName: Botan_Tests::Processor_RNG_Tests::run
    functionSourceFile: /src/botan/src/tests/test_rng_behavior.cpp
    functionUses: 0
    functionsReached:
    - Botan::Processor_RNG::available
    - Botan::Processor_RNG::add_entropy
    - Botan::Processor_RNG::clear
    - Botan::Entropy_Sources::global_sources
    - Test::Result::test_ne
    - Test::Result::test_throws
    - Botan::Processor_RNG::name
    - Botan_CLI::Timer::seconds
    - reinterpret_cast<const uint8_t*>
    - std::vector::data
    - Botan::Processor_RNG::reseed
    - Test::Result::test_eq
    - static_cast<uintptr_t>
    - Test::Result::confirm
    - Botan::Processor_RNG::Processor_RNG
    - std::vector::size
    - Botan::Processor_RNG::randomize
    - Botan::Processor_RNG::is_seeded
    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:42,1
    - Dst: Botan::AlternativeName::add_uri
      Src: /src/botan/src/tests/test_alt_name.cpp:44,1
    - Dst: Botan::AlternativeName::add_dns
      Src: /src/botan/src/tests/test_alt_name.cpp:47,1
    - Dst: Botan::AlternativeName::add_ipv4_address
      Src: /src/botan/src/tests/test_alt_name.cpp:50,1
    - Dst: Botan::AlternativeName::add_email
      Src: /src/botan/src/tests/test_alt_name.cpp:53,1
    - Dst: Botan::AlternativeName::add_other_name
      Src: /src/botan/src/tests/test_alt_name.cpp:56,1
    - Dst: Botan::ASN1_String::ASN1_String
      Src: /src/botan/src/tests/test_alt_name.cpp:56,1
    - Dst: Botan::AlternativeName::add_other_name
      Src: /src/botan/src/tests/test_alt_name.cpp:57,1
    - Dst: Botan::ASN1_String::ASN1_String
      Src: /src/botan/src/tests/test_alt_name.cpp:57,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/tests/test_alt_name.cpp:60,1
    - Dst: Botan::AlternativeName::add_dn
      Src: /src/botan/src/tests/test_alt_name.cpp:61,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/tests/test_alt_name.cpp:64,1
    - Dst: Botan::AlternativeName::add_dn
      Src: /src/botan/src/tests/test_alt_name.cpp:65,1
    - Dst: Botan::DER_Encoder::encode
      Src: /src/botan/src/tests/test_alt_name.cpp:69,1
    - Dst: Botan::AlternativeName::AlternativeName
      Src: /src/botan/src/tests/test_alt_name.cpp:71,1
    - Dst: Botan::BER_Decoder::decode
      Src: /src/botan/src/tests/test_alt_name.cpp:73,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_alt_name.cpp:75,1
    - Dst: Botan::AlternativeName::dns
      Src: /src/botan/src/tests/test_alt_name.cpp:75,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_alt_name.cpp:75,1
    - Dst: Test::Result::confirm
      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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_alt_name.cpp:80,1
    - Dst: Botan::AlternativeName::uris
      Src: /src/botan/src/tests/test_alt_name.cpp:80,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_alt_name.cpp:80,1
    - Dst: Test::Result::confirm
      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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_alt_name.cpp:85,1
    - Dst: Botan::AlternativeName::email
      Src: /src/botan/src/tests/test_alt_name.cpp:85,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_alt_name.cpp:85,1
    - Dst: Test::Result::confirm
      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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_alt_name.cpp:90,1
    - Dst: Botan::AlternativeName::directory_names
      Src: /src/botan/src/tests/test_alt_name.cpp:90,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_alt_name.cpp:91,1
    - Dst: Botan::AlternativeName::other_names
      Src: /src/botan/src/tests/test_alt_name.cpp:91,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 94
    functionName: Botan_Tests::X509_Alt_Name_Tests::run
    functionSourceFile: /src/botan/src/tests/test_alt_name.cpp
    functionUses: 0
    functionsReached:
    - Botan::AlternativeName::add_dns
    - Botan::AlternativeName::AlternativeName
    - Botan::DER_Encoder::encode
    - Botan::AlternativeName::directory_names
    - Botan::AlternativeName::add_other_name
    - Botan::ASN1_String::ASN1_String
    - Botan::AlternativeName::uris
    - Botan::AlternativeName::add_dn
    - Botan::AlternativeName::email
    - Botan::AlternativeName::other_names
    - Botan::AlternativeName::add_ipv4_address
    - std::vector::size
    - Botan::X509_DN::add_attribute
    - Botan::BER_Decoder::decode
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::AlternativeName::add_uri
    - Botan::AlternativeName::dns
    - Botan::AlternativeName::add_email
    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:42,1
    - Dst: Botan::AlternativeName::add_uri
      Src: /src/botan/src/tests/test_alt_name.cpp:44,1
    - Dst: Botan::AlternativeName::add_dns
      Src: /src/botan/src/tests/test_alt_name.cpp:47,1
    - Dst: Botan::AlternativeName::add_ipv4_address
      Src: /src/botan/src/tests/test_alt_name.cpp:50,1
    - Dst: Botan::AlternativeName::add_email
      Src: /src/botan/src/tests/test_alt_name.cpp:53,1
    - Dst: Botan::AlternativeName::add_other_name
      Src: /src/botan/src/tests/test_alt_name.cpp:56,1
    - Dst: Botan::ASN1_String::ASN1_String
      Src: /src/botan/src/tests/test_alt_name.cpp:56,1
    - Dst: Botan::AlternativeName::add_other_name
      Src: /src/botan/src/tests/test_alt_name.cpp:57,1
    - Dst: Botan::ASN1_String::ASN1_String
      Src: /src/botan/src/tests/test_alt_name.cpp:57,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/tests/test_alt_name.cpp:60,1
    - Dst: Botan::AlternativeName::add_dn
      Src: /src/botan/src/tests/test_alt_name.cpp:61,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/tests/test_alt_name.cpp:64,1
    - Dst: Botan::AlternativeName::add_dn
      Src: /src/botan/src/tests/test_alt_name.cpp:65,1
    - Dst: Botan::DER_Encoder::encode
      Src: /src/botan/src/tests/test_alt_name.cpp:69,1
    - Dst: Botan::AlternativeName::AlternativeName
      Src: /src/botan/src/tests/test_alt_name.cpp:71,1
    - Dst: Botan::BER_Decoder::decode
      Src: /src/botan/src/tests/test_alt_name.cpp:73,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_alt_name.cpp:75,1
    - Dst: Botan::AlternativeName::dns
      Src: /src/botan/src/tests/test_alt_name.cpp:75,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_alt_name.cpp:75,1
    - Dst: Test::Result::confirm
      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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_alt_name.cpp:80,1
    - Dst: Botan::AlternativeName::uris
      Src: /src/botan/src/tests/test_alt_name.cpp:80,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_alt_name.cpp:80,1
    - Dst: Test::Result::confirm
      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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_alt_name.cpp:85,1
    - Dst: Botan::AlternativeName::email
      Src: /src/botan/src/tests/test_alt_name.cpp:85,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_alt_name.cpp:85,1
    - Dst: Test::Result::confirm
      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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_alt_name.cpp:90,1
    - Dst: Botan::AlternativeName::directory_names
      Src: /src/botan/src/tests/test_alt_name.cpp:90,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_alt_name.cpp:91,1
    - Dst: Botan::AlternativeName::other_names
      Src: /src/botan/src/tests/test_alt_name.cpp:91,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 94
    functionName: Botan_Tests::X509_Alt_Name_Tests::run
    functionSourceFile: /src/botan/src/tests/test_alt_name.cpp
    functionUses: 0
    functionsReached:
    - Botan::AlternativeName::add_dns
    - Botan::AlternativeName::AlternativeName
    - Botan::DER_Encoder::encode
    - Botan::AlternativeName::directory_names
    - Botan::AlternativeName::add_other_name
    - Botan::ASN1_String::ASN1_String
    - Botan::AlternativeName::uris
    - Botan::AlternativeName::add_dn
    - Botan::AlternativeName::email
    - Botan::AlternativeName::other_names
    - Botan::AlternativeName::add_ipv4_address
    - std::vector::size
    - Botan::X509_DN::add_attribute
    - Botan::BER_Decoder::decode
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::AlternativeName::add_uri
    - Botan::AlternativeName::dns
    - Botan::AlternativeName::add_email
    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:
    - std::string_view::begin
    - std::string_view::end
    - Botan::PKCS11::secure_string
    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:
    - std::string_view::begin
    - std::string_view::end
    - Botan::PKCS11::secure_string
    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:51,1
    - Dst: static_cast<int>
      Src: /src/botan/src/tests/test_ec_group.cpp:54,1
    - Dst: flip_prob
      Src: /src/botan/src/tests/test_ec_group.cpp:56,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_ec_group.cpp:57,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/tests/test_ec_group.cpp:67,1
    - Dst: Botan::BigInt::bits
      Src: /src/botan/src/tests/test_ec_group.cpp:72,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/tests/test_ec_group.cpp:73,1
    - Dst: Botan::BigInt::get_bit
      Src: /src/botan/src/tests/test_ec_group.cpp:73,1
    - Dst: Botan::BigInt::clear_bit
      Src: /src/botan/src/tests/test_ec_group.cpp:74,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - ' rng'
    - bits
    - ' max'
    argTypes:
    - Botan::RandomNumberGenerator
    - size_t
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 79
    functionName: Botan_Tests::test_integer
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::bits
    - Botan::BigInt::clear_bit
    - flip_prob
    - next_byte
    - Botan::BigInt::random_integer
    - static_cast<int>
    - BOTAN_ASSERT
    - 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:82,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/tests/test_ec_group.cpp:83,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/tests/test_ec_group.cpp:86,1
    - Dst: auto::multiply
      Src: /src/botan/src/tests/test_ec_group.cpp:87,1
    - Dst: auto::square
      Src: /src/botan/src/tests/test_ec_group.cpp:87,1
    - Dst: auto::multiply
      Src: /src/botan/src/tests/test_ec_group.cpp:88,1
    - Dst: get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:88,1
    - Dst: auto::reduce
      Src: /src/botan/src/tests/test_ec_group.cpp:89,1
    - Dst: get_b
      Src: /src/botan/src/tests/test_ec_group.cpp:89,1
    - Dst: Botan::sqrt_modulo_prime
      Src: /src/botan/src/tests/test_ec_group.cpp:90,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/tests/test_ec_group.cpp:93,1
    - Dst: auto::square
      Src: /src/botan/src/tests/test_ec_group.cpp:93,1
    - Dst: point
      Src: /src/botan/src/tests/test_ec_group.cpp:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' rng'
    - ' group'
    argTypes:
    - Botan::RandomNumberGenerator
    - Botan::EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 97
    functionName: Botan_Tests::create_random_point
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - point
    - Botan::BigInt::random_integer
    - get_p
    - Botan::Barrett_Reduction::for_public_modulus
    - auto::multiply
    - auto::reduce
    - auto::square
    - get_a
    - BOTAN_ASSERT_EQUAL
    - get_b
    - Botan::sqrt_modulo_prime
    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:106,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:109,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:111,1
    - Dst: create_random_point
      Src: /src/botan/src/tests/test_ec_group.cpp:113,1
    - Dst: Botan_Tests::ECC_Randomized_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:113,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_ec_group.cpp:117,1
    - Dst: test_integer
      Src: /src/botan/src/tests/test_ec_group.cpp:119,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ec_group.cpp:119,1
    - Dst: auto::get_order_bits
      Src: /src/botan/src/tests/test_ec_group.cpp:119,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:119,1
    - Dst: test_integer
      Src: /src/botan/src/tests/test_ec_group.cpp:120,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ec_group.cpp:120,1
    - Dst: auto::get_order_bits
      Src: /src/botan/src/tests/test_ec_group.cpp:120,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:120,1
    - Dst: auto::mod_order
      Src: /src/botan/src/tests/test_ec_group.cpp:121,1
    - Dst: auto::blinded_var_point_multiply
      Src: /src/botan/src/tests/test_ec_group.cpp:127,1
    - Dst: Botan_Tests::ECC_Randomized_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:127,1
    - Dst: auto::blinded_var_point_multiply
      Src: /src/botan/src/tests/test_ec_group.cpp:128,1
    - Dst: Botan_Tests::ECC_Randomized_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:128,1
    - Dst: auto::blinded_var_point_multiply
      Src: /src/botan/src/tests/test_ec_group.cpp:129,1
    - Dst: Botan_Tests::ECC_Randomized_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:129,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:134,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:135,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:137,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:138,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:139,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:140,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:142,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:142,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:143,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:143,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:144,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:144,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:146,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:147,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:148,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:150,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:151,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:152,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:153,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:154,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:155,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:158,1
    - Dst: what
      Src: /src/botan/src/tests/test_ec_group.cpp:158,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:160,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 165
    functionName: Botan_Tests::ECC_Randomized_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - auto::blinded_var_point_multiply
    - auto::get_order_bits
    - Botan::EC_Point::force_affine
    - Test::Result::test_failure
    - what
    - Botan_Tests::ECC_Randomized_Tests::rng
    - rng
    - create_random_point
    - Botan::EC_Point::on_the_curve
    - Test::Result::start_timer
    - auto::mod_order
    - std::vector::push_back
    - test_integer
    - auto::get_order
    - Test::Result::end_timer
    - Botan::EC_Group::known_named_groups
    - Botan_Tests::Test::run_long_tests
    - Botan::EC_Group::from_name
    - Test::Result::test_eq
    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:176,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:179,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:181,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:183,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:183,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:184,1
    - Dst: auto::verify_group
      Src: /src/botan/src/tests/test_ec_group.cpp:184,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:184,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:185,1
    - Dst: auto::used_explicit_encoding
      Src: /src/botan/src/tests/test_ec_group.cpp:185,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:187,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:187,1
    - Dst: auto::get_p_bits
      Src: /src/botan/src/tests/test_ec_group.cpp:187,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:188,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:188,1
    - Dst: auto::get_p_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:188,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:190,1
    - Dst: auto::get_cofactor
      Src: /src/botan/src/tests/test_ec_group.cpp:190,1
    - Dst: Botan::EC_Group::EC_group_identity_from_order
      Src: /src/botan/src/tests/test_ec_group.cpp:192,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:192,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:194,1
    - Dst: Botan::OID::to_string
      Src: /src/botan/src/tests/test_ec_group.cpp:195,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:195,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:197,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:197,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:200,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:201,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:202,1
    - Dst: auto::get_b
      Src: /src/botan/src/tests/test_ec_group.cpp:203,1
    - Dst: auto::get_g_x
      Src: /src/botan/src/tests/test_ec_group.cpp:204,1
    - Dst: auto::get_g_y
      Src: /src/botan/src/tests/test_ec_group.cpp:205,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:206,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:208,1
    - Dst: auto::DER_encode
      Src: /src/botan/src/tests/test_ec_group.cpp:211,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:213,1
    - Dst: Botan::EC_Group::used_explicit_encoding
      Src: /src/botan/src/tests/test_ec_group.cpp:214,1
    - Dst: auto::DER_encode
      Src: /src/botan/src/tests/test_ec_group.cpp:216,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:218,1
    - Dst: Botan::EC_Group::used_explicit_encoding
      Src: /src/botan/src/tests/test_ec_group.cpp:219,1
    - Dst: auto::a_is_minus_3
      Src: /src/botan/src/tests/test_ec_group.cpp:221,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:222,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:222,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:222,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_ec_group.cpp:224,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:224,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:224,1
    - Dst: auto::a_is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:227,1
    - Dst: Test::Result::test_eq
      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: BigInt
      Src: /src/botan/src/tests/test_ec_group.cpp:228,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_ec_group.cpp:230,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:230,1
    - Dst: BigInt
      Src: /src/botan/src/tests/test_ec_group.cpp:230,1
    - Dst: auto::get_base_point
      Src: /src/botan/src/tests/test_ec_group.cpp:234,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:234,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:235,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:235,1
    - Dst: auto::get_base_point
      Src: /src/botan/src/tests/test_ec_group.cpp:238,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:238,1
    - Dst: Botan::EC_Point::randomize_repr
      Src: /src/botan/src/tests/test_ec_group.cpp:243,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:243,1
    - Dst: Botan::EC_Point::randomize_repr
      Src: /src/botan/src/tests/test_ec_group.cpp:244,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:244,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:246,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:246,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:246,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:247,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:247,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:247,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:249,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:251,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:251,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:251,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:252,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:252,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:252,1
    - Dst: Botan_Tests::EC_Group_Tests::test_ser_der
      Src: /src/botan/src/tests/test_ec_group.cpp:254,1
    - Dst: Botan_Tests::EC_Group_Tests::test_basic_math
      Src: /src/botan/src/tests/test_ec_group.cpp:255,1
    - Dst: Botan_Tests::EC_Group_Tests::test_point_swap
      Src: /src/botan/src/tests/test_ec_group.cpp:256,1
    - Dst: Botan_Tests::EC_Group_Tests::test_zeropoint
      Src: /src/botan/src/tests/test_ec_group.cpp:257,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:260,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:262,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 266
    functionName: Botan_Tests::EC_Group_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::EC_group_identity_from_order
    - Botan::EC_Point::force_affine
    - auto::verify_group
    - auto::is_zero
    - Test::Result::test_ne
    - Botan::EC_Point::randomize_repr
    - auto::get_base_point
    - auto::get_p_bits
    - auto::get_g_x
    - Botan_Tests::EC_Group_Tests::test_ser_der
    - auto::get_b
    - Test::Result::start_timer
    - auto::DER_encode
    - std::vector::push_back
    - auto::a_is_zero
    - auto::get_cofactor
    - Botan_Tests::EC_Group_Tests::rng
    - auto::get_p_bytes
    - auto::get_g_y
    - Botan_Tests::EC_Group_Tests::test_zeropoint
    - Botan_Tests::EC_Group_Tests::test_basic_math
    - Botan::EC_Point::get_affine_y
    - auto::used_explicit_encoding
    - auto::get_p
    - auto::get_order
    - Botan::EC_Group::used_explicit_encoding
    - Botan::EC_Group::known_named_groups
    - auto::a_is_minus_3
    - Test::Result::end_timer
    - Botan::EC_Group::from_name
    - Botan_Tests::EC_Group_Tests::test_point_swap
    - auto::get_curve_oid
    - Botan::EC_Point::get_affine_x
    - Test::Result::test_eq
    - Test::Result::confirm
    - auto::get_a
    - Botan::OID::to_string
    - BigInt
    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:273,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:273,1
    - Dst: zero_point
      Src: /src/botan/src/tests/test_ec_group.cpp:274,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:280,1
    - Dst: OS2ECP
      Src: /src/botan/src/tests/test_ec_group.cpp:280,1
    - Dst: Botan::EC_Point::encode
      Src: /src/botan/src/tests/test_ec_group.cpp:280,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:282,1
    - Dst: what
      Src: /src/botan/src/tests/test_ec_group.cpp:282,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:286,1
    - Dst: OS2ECP
      Src: /src/botan/src/tests/test_ec_group.cpp:286,1
    - Dst: Botan::EC_Point::encode
      Src: /src/botan/src/tests/test_ec_group.cpp:286,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:288,1
    - Dst: what
      Src: /src/botan/src/tests/test_ec_group.cpp:288,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ' result'
    - ' group'
    argTypes:
    - Test::Result
    - Botan::EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 291
    functionName: Botan_Tests::EC_Group_Tests::test_ser_der
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 1
    functionsReached:
    - test_eq
    - Botan::EC_Point::encode
    - create_random_point
    - OS2ECP
    - test_failure
    - Botan_Tests::EC_Group_Tests::rng
    - what
    - zero_point
    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:294,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:299,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:303,1
    - Dst: point
      Src: /src/botan/src/tests/test_ec_group.cpp:307,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:308,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:308,1
    - Dst: test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ' result'
    - ' group'
    argTypes:
    - Test::Result
    - Botan::EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 312
    functionName: Botan_Tests::EC_Group_Tests::test_basic_math
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 1
    functionsReached:
    - test_eq
    - test_success
    - point
    - get_base_point
    - Botan::EC_Point::on_the_curve
    - confirm
    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:315,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:315,1
    - Dst: create_random_point
      Src: /src/botan/src/tests/test_ec_group.cpp:316,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:316,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_ec_group.cpp:317,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:317,1
    - Dst: Botan::EC_Point::swap
      Src: /src/botan/src/tests/test_ec_group.cpp:322,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:323,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' result'
    - ' group'
    argTypes:
    - Test::Result
    - Botan::EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 325
    functionName: Botan_Tests::EC_Group_Tests::test_point_swap
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 1
    functionsReached:
    - Botan::BigInt
    - test_eq
    - create_random_point
    - Botan::EC_Point::swap
    - Botan_Tests::EC_Group_Tests::rng
    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:328,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_ec_group.cpp:330,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:330,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_ec_group.cpp:331,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:331,1
    - Dst: get_base_point
      Src: /src/botan/src/tests/test_ec_group.cpp:333,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:335,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:335,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:336,1
    - Dst: Botan::EC_Point::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:336,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:341,1
    - Dst: Botan::EC_Point::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:341,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:344,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:344,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:346,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:346,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:347,1
    - Dst: Botan::EC_Point::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:347,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:349,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:349,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:349,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:350,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:350,1
    - Dst: get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:350,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:350,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:352,1
    - Dst: Botan::EC_Point::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:352,1
    - Dst: confirm
      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_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:354,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:355,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:356,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:357,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:357,1
    - Dst: Botan::EC_Point::encode
      Src: /src/botan/src/tests/test_ec_group.cpp:362,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:363,1
    - Dst: OS2ECP
      Src: /src/botan/src/tests/test_ec_group.cpp:363,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - ' result'
    - ' group'
    argTypes:
    - Test::Result
    - Botan::EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 365
    functionName: Botan_Tests::EC_Group_Tests::test_zeropoint
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 1
    functionsReached:
    - test_eq
    - Botan::EC_Point::encode
    - test_throws
    - get_p
    - is_zero
    - OS2ECP
    - get_base_point
    - Botan::EC_Point::get_affine_x
    - Botan::EC_Point::on_the_curve
    - Botan::EC_Point::is_zero
    - zero_point
    - confirm
    - Botan::EC_Point::get_affine_y
    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:375,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:376,1
    - Dst: Botan::EC_Group::from_PEM
      Src: /src/botan/src/tests/test_ec_group.cpp:378,1
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_ec_group.cpp:378,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:379,1
    - Dst: auto::initialized
      Src: /src/botan/src/tests/test_ec_group.cpp:379,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:380,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:380,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:380,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:383,1
    - Dst: what
      Src: /src/botan/src/tests/test_ec_group.cpp:383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 371
    functionDepth: 2
    functionLinenumber: 371
    functionLinenumberEnd: 387
    functionName: Botan_Tests::test_decoding_with_seed
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::read_data_file
    - Botan::EC_Group::supports_named_group
    - auto::get_p
    - Test::Result::test_failure
    - auto::initialized
    - Botan::EC_Group::from_name
    - Test::Result::test_eq
    - Test::Result::confirm
    - what
    - Botan::EC_Group::from_PEM
    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:392,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ec_group.cpp:392,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:393,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:394,1
    - Dst: auto::get_base_point
      Src: /src/botan/src/tests/test_ec_group.cpp:397,1
    - Dst: auto::get_base_point
      Src: /src/botan/src/tests/test_ec_group.cpp:398,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ec_group.cpp:400,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ec_group.cpp:403,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ec_group.cpp:404,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ec_group.cpp:405,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 409
    functionName: Botan_Tests::test_mixed_points
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::EC_Group::supports_named_group
    - auto::get_base_point
    - Botan::EC_Group::from_name
    - Botan::EC_AffinePoint::generator
    - auto::add
    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:416,1
    - Dst: test_decoding_with_seed
      Src: /src/botan/src/tests/test_ec_group.cpp:416,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:417,1
    - Dst: test_mixed_points
      Src: /src/botan/src/tests/test_ec_group.cpp:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 420
    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:430,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:431,1
    - Dst: Botan_Tests::EC_Group_Registration_Tests::test_ecc_registration
      Src: /src/botan/src/tests/test_ec_group.cpp:431,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:432,1
    - Dst: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_from_params
      Src: /src/botan/src/tests/test_ec_group.cpp:432,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:433,1
    - Dst: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_bad_registration
      Src: /src/botan/src/tests/test_ec_group.cpp:433,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:434,1
    - Dst: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_duplicate_orders
      Src: /src/botan/src/tests/test_ec_group.cpp:434,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:435,1
    - Dst: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_registration_with_custom_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 439
    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_from_params
    - Botan_Tests::EC_Group_Registration_Tests::test_ec_group_registration_with_custom_oid
    - std::vector::push_back
    - Botan_Tests::EC_Group_Registration_Tests::test_ecc_registration
    - Botan_Tests::EC_Group_Registration_Tests::test_ec_group_bad_registration
    - Botan::EC_Group::supports_application_specific_group
    - Botan_Tests::EC_Group_Registration_Tests::test_ec_group_duplicate_orders
    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:459,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:461,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:461,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:464,1
    - Dst: auto::engine
      Src: /src/botan/src/tests/test_ec_group.cpp:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 467
    functionName: Botan_Tests::EC_Group_Registration_Tests::test_ecc_registration
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 1
    functionsReached:
    - auto::get_p
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::EC_Group::from_OID
    - auto::engine
    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:472,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:488,1
    - Dst: Botan::EC_Group::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 491
    functionName: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_from_params
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 1
    functionsReached:
    - Botan::EC_Group::clear_registered_curve_data
    - Botan::EC_Group::get_curve_oid
    - Test::Result::confirm
    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:496,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:511,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 517
    functionName: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_bad_registration
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 1
    functionsReached:
    - Botan::EC_Group::clear_registered_curve_data
    - Test::Result::test_failure
    - Test::Result::test_success
    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:522,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:536,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:537,1
    - Dst: Botan::EC_Group::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:537,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:540,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:541,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:541,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:545,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:546,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 549
    functionName: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_duplicate_orders
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 1
    functionsReached:
    - Botan::EC_Group::clear_registered_curve_data
    - Botan::EC_Group::get_curve_oid
    - auto::get_curve_oid
    - Test::Result::confirm
    - Botan::EC_Group::from_OID
    - Test::Result::test_success
    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:554,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:557,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:558,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:558,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:562,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:565,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:566,1
    - Dst: auto::get_b
      Src: /src/botan/src/tests/test_ec_group.cpp:567,1
    - Dst: auto::get_g_x
      Src: /src/botan/src/tests/test_ec_group.cpp:568,1
    - Dst: auto::get_g_y
      Src: /src/botan/src/tests/test_ec_group.cpp:569,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:570,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:572,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:573,1
    - Dst: Botan::EC_Group::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:573,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:576,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:576,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:580,1
    - Dst: Botan::EC_Group::_data
      Src: /src/botan/src/tests/test_ec_group.cpp:580,1
    - Dst: auto::_data
      Src: /src/botan/src/tests/test_ec_group.cpp:580,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:586,1
    - Dst: Botan::EC_Group::engine
      Src: /src/botan/src/tests/test_ec_group.cpp:586,1
    - Dst: Botan::EC_Group::_data
      Src: /src/botan/src/tests/test_ec_group.cpp:589,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:590,1
    - Dst: auto::_data
      Src: /src/botan/src/tests/test_ec_group.cpp:591,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:593,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 598
    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
    - auto::get_p
    - Botan::EC_Group::clear_registered_curve_data
    - Test::Result::test_failure
    - Botan::EC_Group::get_curve_oid
    - auto::get_g_x
    - Botan::EC_Group::from_OID
    - auto::get_curve_oid
    - Test::Result::test_success
    - Botan::EC_Group::_data
    - Test::Result::confirm
    - auto::get_a
    - auto::get_g_y
    - auto::_data
    - Botan::EC_Group::engine
    - Botan::OID::register_oid
    - auto::get_b
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ec_group_registration_with_custom_oid()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_ec_group.cpp:608,1
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/tests/test_ec_group.cpp:610,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:611,1
    - Dst: Result::start_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:615,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:618,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:619,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:621,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:622,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_ec_group.cpp:622,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ec_group.cpp:623,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ec_group.cpp:624,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:626,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ec_group.cpp:626,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ec_group.cpp:627,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:628,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:630,1
    - Dst: subspan
      Src: /src/botan/src/tests/test_ec_group.cpp:631,1
    - Dst: subspan
      Src: /src/botan/src/tests/test_ec_group.cpp:631,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/tests/test_ec_group.cpp:633,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:634,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:635,1
    - Dst: Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:637,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/tests/test_ec_group.cpp:640,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:641,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:642,1
    - Dst: Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:644,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/tests/test_ec_group.cpp:653,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:654,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:655,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:656,1
    - Dst: Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:658,1
    - Dst: Result::end_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:662,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:664,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 605
    functionDepth: 2
    functionLinenumber: 605
    functionLinenumberEnd: 668
    functionName: Botan_Tests::EC_PointEnc_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Result::confirm
    - auto::serialize_uncompressed
    - Botan::EC_AffinePoint::g_mul
    - Result::end_timer
    - std::vector::push_back
    - Botan::EC_Group::known_named_groups
    - Result::test_eq
    - Result::start_timer
    - static_cast<size_t>
    - auto::serialize_compressed
    - subspan
    - Botan::EC_Group::from_name
    - Botan::EC_Scalar::random
    - fuzzer_rng
    - Botan::EC_AffinePoint::deserialize
    - Result::test_failure
    - auto::negate
    - auto::size
    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: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::one
      Src: /src/botan/src/tests/test_ec_group.cpp:687,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ec_group.cpp:689,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:690,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:692,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:693,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ec_group.cpp:693,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:695,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:696,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ec_group.cpp:696,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:698,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:699,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:699,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:701,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:702,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:702,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:704,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:705,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:705,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:707,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:707,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:709,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:710,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ec_group.cpp:710,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:712,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:713,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:714,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:714,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:714,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:716,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:716,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:717,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:717,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:718,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:718,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:719,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:719,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:721,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:722,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:722,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:724,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:724,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:725,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:725,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:726,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:726,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:728,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:728,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:729,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:729,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:730,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:730,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:730,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:731,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:731,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:731,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:734,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:734,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:736,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:737,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ec_group.cpp:740,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ec_group.cpp:741,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ec_group.cpp:742,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:744,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:746,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:747,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:747,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:749,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:750,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:750,1
    - Dst: Botan::EC_Scalar::EC_Scalar
      Src: /src/botan/src/tests/test_ec_group.cpp:758,1
    - Dst: auto::get_order_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:761,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ec_group.cpp:762,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_ec_group.cpp:762,1
    - Dst: Botan::EC_Scalar::deserialize
      Src: /src/botan/src/tests/test_ec_group.cpp:763,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:767,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:770,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:773,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:777,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:778,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:782,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ec_group.cpp:782,1
    - Dst: Botan::EC_Group::Mul2Table::mul2_vartime
      Src: /src/botan/src/tests/test_ec_group.cpp:784,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:785,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:785,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:785,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:787,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ec_group.cpp:787,1
    - Dst: Result::end_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:791,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:793,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 675
    functionDepth: 2
    functionLinenumber: 675
    functionLinenumberEnd: 797
    functionName: Botan_Tests::EC_Point_Arithmetic_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Result::confirm
    - Botan::EC_AffinePoint::g_mul
    - auto::is_identity
    - fuzzer_rng
    - Botan::EC_AffinePoint::generator
    - auto::get_order_bytes
    - auto::negate
    - auto::is_zero
    - Botan::EC_Group::Mul2Table::mul2_vartime
    - Botan::EC_Scalar::random
    - Result::end_timer
    - std::vector::push_back
    - Result::test_eq
    - Botan::EC_Scalar::one
    - static_cast<uint8_t>
    - auto::mul
    - Botan::EC_Scalar::deserialize
    - std::vector::size
    - auto::add
    - auto::serialize_uncompressed
    - Botan::EC_Group::known_named_groups
    - Result::start_timer
    - is_zero
    - Botan::EC_Group::from_name
    - Botan::EC_Scalar::EC_Scalar
    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: 806
      start: 806
    functionDepth: 0
    functionLinenumber: 806
    functionLinenumberEnd: 806
    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: 808
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 808
    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:813,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_ec_group.cpp:817,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:818,1
    - Dst: auto::check_key
      Src: /src/botan/src/tests/test_ec_group.cpp:818,1
    - Dst: Botan_Tests::ECC_Invalid_Key_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:818,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:820,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 810
    functionDepth: 0
    functionLinenumber: 810
    functionLinenumberEnd: 824
    functionName: Botan_Tests::ECC_Invalid_Key_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::ECC_Invalid_Key_Tests::rng
    - Test::Result::test_eq
    - auto::check_key
    - Test::Result::test_success
    - Botan::X509::load_key
    - get_req_str
    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:51,1
    - Dst: static_cast<int>
      Src: /src/botan/src/tests/test_ec_group.cpp:54,1
    - Dst: flip_prob
      Src: /src/botan/src/tests/test_ec_group.cpp:56,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_ec_group.cpp:57,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/tests/test_ec_group.cpp:67,1
    - Dst: Botan::BigInt::bits
      Src: /src/botan/src/tests/test_ec_group.cpp:72,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/tests/test_ec_group.cpp:73,1
    - Dst: Botan::BigInt::get_bit
      Src: /src/botan/src/tests/test_ec_group.cpp:73,1
    - Dst: Botan::BigInt::clear_bit
      Src: /src/botan/src/tests/test_ec_group.cpp:74,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - ' rng'
    - bits
    - ' max'
    argTypes:
    - Botan::RandomNumberGenerator
    - size_t
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 79
    functionName: Botan_Tests::test_integer
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::bits
    - Botan::BigInt::clear_bit
    - flip_prob
    - next_byte
    - Botan::BigInt::random_integer
    - static_cast<int>
    - BOTAN_ASSERT
    - 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:82,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/tests/test_ec_group.cpp:83,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/tests/test_ec_group.cpp:86,1
    - Dst: auto::multiply
      Src: /src/botan/src/tests/test_ec_group.cpp:87,1
    - Dst: auto::square
      Src: /src/botan/src/tests/test_ec_group.cpp:87,1
    - Dst: auto::multiply
      Src: /src/botan/src/tests/test_ec_group.cpp:88,1
    - Dst: get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:88,1
    - Dst: auto::reduce
      Src: /src/botan/src/tests/test_ec_group.cpp:89,1
    - Dst: get_b
      Src: /src/botan/src/tests/test_ec_group.cpp:89,1
    - Dst: Botan::sqrt_modulo_prime
      Src: /src/botan/src/tests/test_ec_group.cpp:90,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/tests/test_ec_group.cpp:93,1
    - Dst: auto::square
      Src: /src/botan/src/tests/test_ec_group.cpp:93,1
    - Dst: point
      Src: /src/botan/src/tests/test_ec_group.cpp:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' rng'
    - ' group'
    argTypes:
    - Botan::RandomNumberGenerator
    - Botan::EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 97
    functionName: Botan_Tests::create_random_point
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - point
    - Botan::BigInt::random_integer
    - get_p
    - Botan::Barrett_Reduction::for_public_modulus
    - auto::multiply
    - auto::reduce
    - auto::square
    - get_a
    - BOTAN_ASSERT_EQUAL
    - get_b
    - Botan::sqrt_modulo_prime
    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:106,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:109,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:111,1
    - Dst: create_random_point
      Src: /src/botan/src/tests/test_ec_group.cpp:113,1
    - Dst: Botan_Tests::ECC_Randomized_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:113,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_ec_group.cpp:117,1
    - Dst: test_integer
      Src: /src/botan/src/tests/test_ec_group.cpp:119,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ec_group.cpp:119,1
    - Dst: auto::get_order_bits
      Src: /src/botan/src/tests/test_ec_group.cpp:119,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:119,1
    - Dst: test_integer
      Src: /src/botan/src/tests/test_ec_group.cpp:120,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ec_group.cpp:120,1
    - Dst: auto::get_order_bits
      Src: /src/botan/src/tests/test_ec_group.cpp:120,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:120,1
    - Dst: auto::mod_order
      Src: /src/botan/src/tests/test_ec_group.cpp:121,1
    - Dst: auto::blinded_var_point_multiply
      Src: /src/botan/src/tests/test_ec_group.cpp:127,1
    - Dst: Botan_Tests::ECC_Randomized_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:127,1
    - Dst: auto::blinded_var_point_multiply
      Src: /src/botan/src/tests/test_ec_group.cpp:128,1
    - Dst: Botan_Tests::ECC_Randomized_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:128,1
    - Dst: auto::blinded_var_point_multiply
      Src: /src/botan/src/tests/test_ec_group.cpp:129,1
    - Dst: Botan_Tests::ECC_Randomized_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:129,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:134,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:135,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:137,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:138,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:139,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:140,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:142,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:142,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:143,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:143,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:144,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:144,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:146,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:147,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:148,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:150,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:151,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:152,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:153,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:154,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:155,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:158,1
    - Dst: what
      Src: /src/botan/src/tests/test_ec_group.cpp:158,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:160,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 165
    functionName: Botan_Tests::ECC_Randomized_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - auto::blinded_var_point_multiply
    - auto::get_order_bits
    - Botan::EC_Point::force_affine
    - Test::Result::test_failure
    - what
    - Botan_Tests::ECC_Randomized_Tests::rng
    - rng
    - create_random_point
    - Botan::EC_Point::on_the_curve
    - Test::Result::start_timer
    - auto::mod_order
    - std::vector::push_back
    - test_integer
    - auto::get_order
    - Test::Result::end_timer
    - Botan::EC_Group::known_named_groups
    - Botan_Tests::Test::run_long_tests
    - Botan::EC_Group::from_name
    - Test::Result::test_eq
    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:176,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:179,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:181,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:183,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:183,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:184,1
    - Dst: auto::verify_group
      Src: /src/botan/src/tests/test_ec_group.cpp:184,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:184,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:185,1
    - Dst: auto::used_explicit_encoding
      Src: /src/botan/src/tests/test_ec_group.cpp:185,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:187,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:187,1
    - Dst: auto::get_p_bits
      Src: /src/botan/src/tests/test_ec_group.cpp:187,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:188,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:188,1
    - Dst: auto::get_p_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:188,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:190,1
    - Dst: auto::get_cofactor
      Src: /src/botan/src/tests/test_ec_group.cpp:190,1
    - Dst: Botan::EC_Group::EC_group_identity_from_order
      Src: /src/botan/src/tests/test_ec_group.cpp:192,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:192,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:194,1
    - Dst: Botan::OID::to_string
      Src: /src/botan/src/tests/test_ec_group.cpp:195,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:195,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:197,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:197,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:200,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:201,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:202,1
    - Dst: auto::get_b
      Src: /src/botan/src/tests/test_ec_group.cpp:203,1
    - Dst: auto::get_g_x
      Src: /src/botan/src/tests/test_ec_group.cpp:204,1
    - Dst: auto::get_g_y
      Src: /src/botan/src/tests/test_ec_group.cpp:205,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:206,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:208,1
    - Dst: auto::DER_encode
      Src: /src/botan/src/tests/test_ec_group.cpp:211,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:213,1
    - Dst: Botan::EC_Group::used_explicit_encoding
      Src: /src/botan/src/tests/test_ec_group.cpp:214,1
    - Dst: auto::DER_encode
      Src: /src/botan/src/tests/test_ec_group.cpp:216,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:218,1
    - Dst: Botan::EC_Group::used_explicit_encoding
      Src: /src/botan/src/tests/test_ec_group.cpp:219,1
    - Dst: auto::a_is_minus_3
      Src: /src/botan/src/tests/test_ec_group.cpp:221,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:222,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:222,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:222,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_ec_group.cpp:224,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:224,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:224,1
    - Dst: auto::a_is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:227,1
    - Dst: Test::Result::test_eq
      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: BigInt
      Src: /src/botan/src/tests/test_ec_group.cpp:228,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_ec_group.cpp:230,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:230,1
    - Dst: BigInt
      Src: /src/botan/src/tests/test_ec_group.cpp:230,1
    - Dst: auto::get_base_point
      Src: /src/botan/src/tests/test_ec_group.cpp:234,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:234,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:235,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:235,1
    - Dst: auto::get_base_point
      Src: /src/botan/src/tests/test_ec_group.cpp:238,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:238,1
    - Dst: Botan::EC_Point::randomize_repr
      Src: /src/botan/src/tests/test_ec_group.cpp:243,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:243,1
    - Dst: Botan::EC_Point::randomize_repr
      Src: /src/botan/src/tests/test_ec_group.cpp:244,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:244,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:246,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:246,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:246,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:247,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:247,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:247,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:249,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:251,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:251,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:251,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:252,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:252,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:252,1
    - Dst: Botan_Tests::EC_Group_Tests::test_ser_der
      Src: /src/botan/src/tests/test_ec_group.cpp:254,1
    - Dst: Botan_Tests::EC_Group_Tests::test_basic_math
      Src: /src/botan/src/tests/test_ec_group.cpp:255,1
    - Dst: Botan_Tests::EC_Group_Tests::test_point_swap
      Src: /src/botan/src/tests/test_ec_group.cpp:256,1
    - Dst: Botan_Tests::EC_Group_Tests::test_zeropoint
      Src: /src/botan/src/tests/test_ec_group.cpp:257,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:260,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:262,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 266
    functionName: Botan_Tests::EC_Group_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::EC_group_identity_from_order
    - Botan::EC_Point::force_affine
    - auto::verify_group
    - auto::is_zero
    - Test::Result::test_ne
    - Botan::EC_Point::randomize_repr
    - auto::get_base_point
    - auto::get_p_bits
    - auto::get_g_x
    - Botan_Tests::EC_Group_Tests::test_ser_der
    - auto::get_b
    - Test::Result::start_timer
    - auto::DER_encode
    - std::vector::push_back
    - auto::a_is_zero
    - auto::get_cofactor
    - Botan_Tests::EC_Group_Tests::rng
    - auto::get_p_bytes
    - auto::get_g_y
    - Botan_Tests::EC_Group_Tests::test_zeropoint
    - Botan_Tests::EC_Group_Tests::test_basic_math
    - Botan::EC_Point::get_affine_y
    - auto::used_explicit_encoding
    - auto::get_p
    - auto::get_order
    - Botan::EC_Group::used_explicit_encoding
    - Botan::EC_Group::known_named_groups
    - auto::a_is_minus_3
    - Test::Result::end_timer
    - Botan::EC_Group::from_name
    - Botan_Tests::EC_Group_Tests::test_point_swap
    - auto::get_curve_oid
    - Botan::EC_Point::get_affine_x
    - Test::Result::test_eq
    - Test::Result::confirm
    - auto::get_a
    - Botan::OID::to_string
    - BigInt
    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:273,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:273,1
    - Dst: zero_point
      Src: /src/botan/src/tests/test_ec_group.cpp:274,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:280,1
    - Dst: OS2ECP
      Src: /src/botan/src/tests/test_ec_group.cpp:280,1
    - Dst: Botan::EC_Point::encode
      Src: /src/botan/src/tests/test_ec_group.cpp:280,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:282,1
    - Dst: what
      Src: /src/botan/src/tests/test_ec_group.cpp:282,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:286,1
    - Dst: OS2ECP
      Src: /src/botan/src/tests/test_ec_group.cpp:286,1
    - Dst: Botan::EC_Point::encode
      Src: /src/botan/src/tests/test_ec_group.cpp:286,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:288,1
    - Dst: what
      Src: /src/botan/src/tests/test_ec_group.cpp:288,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ' result'
    - ' group'
    argTypes:
    - Test::Result
    - Botan::EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 291
    functionName: Botan_Tests::EC_Group_Tests::test_ser_der
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 2
    functionsReached:
    - test_eq
    - Botan::EC_Point::encode
    - create_random_point
    - OS2ECP
    - test_failure
    - Botan_Tests::EC_Group_Tests::rng
    - what
    - zero_point
    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:294,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:299,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:303,1
    - Dst: point
      Src: /src/botan/src/tests/test_ec_group.cpp:307,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:308,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:308,1
    - Dst: test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ' result'
    - ' group'
    argTypes:
    - Test::Result
    - Botan::EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 312
    functionName: Botan_Tests::EC_Group_Tests::test_basic_math
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 2
    functionsReached:
    - test_eq
    - test_success
    - point
    - get_base_point
    - Botan::EC_Point::on_the_curve
    - confirm
    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:315,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:315,1
    - Dst: create_random_point
      Src: /src/botan/src/tests/test_ec_group.cpp:316,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:316,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_ec_group.cpp:317,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:317,1
    - Dst: Botan::EC_Point::swap
      Src: /src/botan/src/tests/test_ec_group.cpp:322,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:323,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' result'
    - ' group'
    argTypes:
    - Test::Result
    - Botan::EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 325
    functionName: Botan_Tests::EC_Group_Tests::test_point_swap
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 2
    functionsReached:
    - Botan::BigInt
    - test_eq
    - create_random_point
    - Botan::EC_Point::swap
    - Botan_Tests::EC_Group_Tests::rng
    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:328,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_ec_group.cpp:330,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:330,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_ec_group.cpp:331,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:331,1
    - Dst: get_base_point
      Src: /src/botan/src/tests/test_ec_group.cpp:333,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:335,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:335,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:336,1
    - Dst: Botan::EC_Point::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:336,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:341,1
    - Dst: Botan::EC_Point::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:341,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:344,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:344,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:346,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:346,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:347,1
    - Dst: Botan::EC_Point::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:347,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:349,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:349,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:349,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:350,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:350,1
    - Dst: get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:350,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:350,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:352,1
    - Dst: Botan::EC_Point::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:352,1
    - Dst: confirm
      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_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:354,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:355,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:356,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:357,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:357,1
    - Dst: Botan::EC_Point::encode
      Src: /src/botan/src/tests/test_ec_group.cpp:362,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:363,1
    - Dst: OS2ECP
      Src: /src/botan/src/tests/test_ec_group.cpp:363,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - ' result'
    - ' group'
    argTypes:
    - Test::Result
    - Botan::EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 365
    functionName: Botan_Tests::EC_Group_Tests::test_zeropoint
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 2
    functionsReached:
    - test_eq
    - Botan::EC_Point::encode
    - test_throws
    - get_p
    - is_zero
    - OS2ECP
    - get_base_point
    - Botan::EC_Point::get_affine_x
    - Botan::EC_Point::on_the_curve
    - Botan::EC_Point::is_zero
    - zero_point
    - confirm
    - Botan::EC_Point::get_affine_y
    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:375,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:376,1
    - Dst: Botan::EC_Group::from_PEM
      Src: /src/botan/src/tests/test_ec_group.cpp:378,1
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_ec_group.cpp:378,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:379,1
    - Dst: auto::initialized
      Src: /src/botan/src/tests/test_ec_group.cpp:379,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:380,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:380,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:380,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:383,1
    - Dst: what
      Src: /src/botan/src/tests/test_ec_group.cpp:383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 371
    functionDepth: 2
    functionLinenumber: 371
    functionLinenumberEnd: 387
    functionName: Botan_Tests::test_decoding_with_seed
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::read_data_file
    - Botan::EC_Group::supports_named_group
    - auto::get_p
    - Test::Result::test_failure
    - auto::initialized
    - Botan::EC_Group::from_name
    - Test::Result::test_eq
    - Test::Result::confirm
    - what
    - Botan::EC_Group::from_PEM
    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:392,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ec_group.cpp:392,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:393,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:394,1
    - Dst: auto::get_base_point
      Src: /src/botan/src/tests/test_ec_group.cpp:397,1
    - Dst: auto::get_base_point
      Src: /src/botan/src/tests/test_ec_group.cpp:398,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ec_group.cpp:400,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ec_group.cpp:403,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ec_group.cpp:404,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ec_group.cpp:405,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 409
    functionName: Botan_Tests::test_mixed_points
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::EC_Group::supports_named_group
    - auto::get_base_point
    - Botan::EC_Group::from_name
    - Botan::EC_AffinePoint::generator
    - auto::add
    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:416,1
    - Dst: test_decoding_with_seed
      Src: /src/botan/src/tests/test_ec_group.cpp:416,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:417,1
    - Dst: test_mixed_points
      Src: /src/botan/src/tests/test_ec_group.cpp:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 420
    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:430,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:431,1
    - Dst: Botan_Tests::EC_Group_Registration_Tests::test_ecc_registration
      Src: /src/botan/src/tests/test_ec_group.cpp:431,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:432,1
    - Dst: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_from_params
      Src: /src/botan/src/tests/test_ec_group.cpp:432,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:433,1
    - Dst: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_bad_registration
      Src: /src/botan/src/tests/test_ec_group.cpp:433,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:434,1
    - Dst: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_duplicate_orders
      Src: /src/botan/src/tests/test_ec_group.cpp:434,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:435,1
    - Dst: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_registration_with_custom_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 427
    functionDepth: 2
    functionLinenumber: 427
    functionLinenumberEnd: 439
    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_from_params
    - Botan_Tests::EC_Group_Registration_Tests::test_ec_group_registration_with_custom_oid
    - std::vector::push_back
    - Botan_Tests::EC_Group_Registration_Tests::test_ecc_registration
    - Botan_Tests::EC_Group_Registration_Tests::test_ec_group_bad_registration
    - Botan::EC_Group::supports_application_specific_group
    - Botan_Tests::EC_Group_Registration_Tests::test_ec_group_duplicate_orders
    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:459,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:461,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:461,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:464,1
    - Dst: auto::engine
      Src: /src/botan/src/tests/test_ec_group.cpp:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 467
    functionName: Botan_Tests::EC_Group_Registration_Tests::test_ecc_registration
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 2
    functionsReached:
    - auto::get_p
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::EC_Group::from_OID
    - auto::engine
    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:472,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:488,1
    - Dst: Botan::EC_Group::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 491
    functionName: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_from_params
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 2
    functionsReached:
    - Botan::EC_Group::clear_registered_curve_data
    - Botan::EC_Group::get_curve_oid
    - Test::Result::confirm
    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:496,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:511,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 517
    functionName: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_bad_registration
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 2
    functionsReached:
    - Botan::EC_Group::clear_registered_curve_data
    - Test::Result::test_failure
    - Test::Result::test_success
    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:522,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:536,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:537,1
    - Dst: Botan::EC_Group::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:537,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:540,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:541,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:541,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:545,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:546,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 549
    functionName: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_duplicate_orders
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 2
    functionsReached:
    - Botan::EC_Group::clear_registered_curve_data
    - Botan::EC_Group::get_curve_oid
    - auto::get_curve_oid
    - Test::Result::confirm
    - Botan::EC_Group::from_OID
    - Test::Result::test_success
    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:554,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:557,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:558,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:558,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:562,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:565,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:566,1
    - Dst: auto::get_b
      Src: /src/botan/src/tests/test_ec_group.cpp:567,1
    - Dst: auto::get_g_x
      Src: /src/botan/src/tests/test_ec_group.cpp:568,1
    - Dst: auto::get_g_y
      Src: /src/botan/src/tests/test_ec_group.cpp:569,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:570,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:572,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:573,1
    - Dst: Botan::EC_Group::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:573,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:576,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:576,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:580,1
    - Dst: Botan::EC_Group::_data
      Src: /src/botan/src/tests/test_ec_group.cpp:580,1
    - Dst: auto::_data
      Src: /src/botan/src/tests/test_ec_group.cpp:580,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:586,1
    - Dst: Botan::EC_Group::engine
      Src: /src/botan/src/tests/test_ec_group.cpp:586,1
    - Dst: Botan::EC_Group::_data
      Src: /src/botan/src/tests/test_ec_group.cpp:589,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:590,1
    - Dst: auto::_data
      Src: /src/botan/src/tests/test_ec_group.cpp:591,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:593,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 598
    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
    - auto::get_p
    - Botan::EC_Group::clear_registered_curve_data
    - Test::Result::test_failure
    - Botan::EC_Group::get_curve_oid
    - auto::get_g_x
    - Botan::EC_Group::from_OID
    - auto::get_curve_oid
    - Test::Result::test_success
    - Botan::EC_Group::_data
    - Test::Result::confirm
    - auto::get_a
    - auto::get_g_y
    - auto::_data
    - Botan::EC_Group::engine
    - Botan::OID::register_oid
    - auto::get_b
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ec_group_registration_with_custom_oid()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_ec_group.cpp:608,1
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/tests/test_ec_group.cpp:610,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:611,1
    - Dst: Result::start_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:615,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:618,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:619,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:621,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:622,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_ec_group.cpp:622,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ec_group.cpp:623,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ec_group.cpp:624,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:626,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ec_group.cpp:626,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ec_group.cpp:627,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:628,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:630,1
    - Dst: subspan
      Src: /src/botan/src/tests/test_ec_group.cpp:631,1
    - Dst: subspan
      Src: /src/botan/src/tests/test_ec_group.cpp:631,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/tests/test_ec_group.cpp:633,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:634,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:635,1
    - Dst: Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:637,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/tests/test_ec_group.cpp:640,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:641,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:642,1
    - Dst: Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:644,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/tests/test_ec_group.cpp:653,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:654,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:655,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:656,1
    - Dst: Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:658,1
    - Dst: Result::end_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:662,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:664,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 605
    functionDepth: 2
    functionLinenumber: 605
    functionLinenumberEnd: 668
    functionName: Botan_Tests::EC_PointEnc_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Result::confirm
    - auto::serialize_uncompressed
    - Botan::EC_AffinePoint::g_mul
    - Result::end_timer
    - std::vector::push_back
    - Botan::EC_Group::known_named_groups
    - Result::test_eq
    - Result::start_timer
    - static_cast<size_t>
    - auto::serialize_compressed
    - subspan
    - Botan::EC_Group::from_name
    - Botan::EC_Scalar::random
    - fuzzer_rng
    - Botan::EC_AffinePoint::deserialize
    - Result::test_failure
    - auto::negate
    - auto::size
    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: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::one
      Src: /src/botan/src/tests/test_ec_group.cpp:687,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ec_group.cpp:689,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:690,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:692,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:693,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ec_group.cpp:693,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:695,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:696,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ec_group.cpp:696,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:698,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:699,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:699,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:701,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:702,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:702,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:704,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:705,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:705,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:707,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:707,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:709,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:710,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ec_group.cpp:710,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:712,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:713,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:714,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:714,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:714,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:716,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:716,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:717,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:717,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:718,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:718,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:719,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:719,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:721,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:722,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:722,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:724,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:724,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:725,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:725,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:726,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:726,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:728,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:728,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:729,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:729,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:730,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:730,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:730,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:731,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:731,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:731,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:734,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:734,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:736,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:737,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ec_group.cpp:740,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ec_group.cpp:741,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ec_group.cpp:742,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:744,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:746,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:747,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:747,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:749,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:750,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:750,1
    - Dst: Botan::EC_Scalar::EC_Scalar
      Src: /src/botan/src/tests/test_ec_group.cpp:758,1
    - Dst: auto::get_order_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:761,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ec_group.cpp:762,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_ec_group.cpp:762,1
    - Dst: Botan::EC_Scalar::deserialize
      Src: /src/botan/src/tests/test_ec_group.cpp:763,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:767,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:770,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:773,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:777,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:778,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:782,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ec_group.cpp:782,1
    - Dst: Botan::EC_Group::Mul2Table::mul2_vartime
      Src: /src/botan/src/tests/test_ec_group.cpp:784,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:785,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:785,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:785,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:787,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ec_group.cpp:787,1
    - Dst: Result::end_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:791,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:793,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 675
    functionDepth: 2
    functionLinenumber: 675
    functionLinenumberEnd: 797
    functionName: Botan_Tests::EC_Point_Arithmetic_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Result::confirm
    - Botan::EC_AffinePoint::g_mul
    - auto::is_identity
    - fuzzer_rng
    - Botan::EC_AffinePoint::generator
    - auto::get_order_bytes
    - auto::negate
    - auto::is_zero
    - Botan::EC_Group::Mul2Table::mul2_vartime
    - Botan::EC_Scalar::random
    - Result::end_timer
    - std::vector::push_back
    - Result::test_eq
    - Botan::EC_Scalar::one
    - static_cast<uint8_t>
    - auto::mul
    - Botan::EC_Scalar::deserialize
    - std::vector::size
    - auto::add
    - auto::serialize_uncompressed
    - Botan::EC_Group::known_named_groups
    - Result::start_timer
    - is_zero
    - Botan::EC_Group::from_name
    - Botan::EC_Scalar::EC_Scalar
    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: 806
      start: 806
    functionDepth: 0
    functionLinenumber: 806
    functionLinenumberEnd: 806
    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: 808
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 808
    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:813,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_ec_group.cpp:817,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:818,1
    - Dst: auto::check_key
      Src: /src/botan/src/tests/test_ec_group.cpp:818,1
    - Dst: Botan_Tests::ECC_Invalid_Key_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:818,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:820,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 810
    functionDepth: 0
    functionLinenumber: 810
    functionLinenumberEnd: 824
    functionName: Botan_Tests::ECC_Invalid_Key_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::ECC_Invalid_Key_Tests::rng
    - Test::Result::test_eq
    - auto::check_key
    - Test::Result::test_success
    - Botan::X509::load_key
    - get_req_str
    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:51,1
    - Dst: static_cast<int>
      Src: /src/botan/src/tests/test_ec_group.cpp:54,1
    - Dst: flip_prob
      Src: /src/botan/src/tests/test_ec_group.cpp:56,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_ec_group.cpp:57,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/tests/test_ec_group.cpp:67,1
    - Dst: Botan::BigInt::bits
      Src: /src/botan/src/tests/test_ec_group.cpp:72,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/tests/test_ec_group.cpp:73,1
    - Dst: Botan::BigInt::get_bit
      Src: /src/botan/src/tests/test_ec_group.cpp:73,1
    - Dst: Botan::BigInt::clear_bit
      Src: /src/botan/src/tests/test_ec_group.cpp:74,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - ' rng'
    - bits
    - ' max'
    argTypes:
    - Botan::RandomNumberGenerator
    - size_t
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 79
    functionName: Botan_Tests::test_integer
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::bits
    - Botan::BigInt::clear_bit
    - flip_prob
    - next_byte
    - Botan::BigInt::random_integer
    - static_cast<int>
    - BOTAN_ASSERT
    - 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:82,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/tests/test_ec_group.cpp:83,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/tests/test_ec_group.cpp:86,1
    - Dst: auto::multiply
      Src: /src/botan/src/tests/test_ec_group.cpp:87,1
    - Dst: auto::square
      Src: /src/botan/src/tests/test_ec_group.cpp:87,1
    - Dst: auto::multiply
      Src: /src/botan/src/tests/test_ec_group.cpp:88,1
    - Dst: get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:88,1
    - Dst: auto::reduce
      Src: /src/botan/src/tests/test_ec_group.cpp:89,1
    - Dst: get_b
      Src: /src/botan/src/tests/test_ec_group.cpp:89,1
    - Dst: Botan::sqrt_modulo_prime
      Src: /src/botan/src/tests/test_ec_group.cpp:90,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/tests/test_ec_group.cpp:93,1
    - Dst: auto::square
      Src: /src/botan/src/tests/test_ec_group.cpp:93,1
    - Dst: point
      Src: /src/botan/src/tests/test_ec_group.cpp:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' rng'
    - ' group'
    argTypes:
    - Botan::RandomNumberGenerator
    - Botan::EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 97
    functionName: Botan_Tests::create_random_point
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - point
    - Botan::BigInt::random_integer
    - get_p
    - Botan::Barrett_Reduction::for_public_modulus
    - auto::multiply
    - auto::reduce
    - auto::square
    - get_a
    - BOTAN_ASSERT_EQUAL
    - get_b
    - Botan::sqrt_modulo_prime
    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:106,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:109,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:111,1
    - Dst: create_random_point
      Src: /src/botan/src/tests/test_ec_group.cpp:113,1
    - Dst: Botan_Tests::ECC_Randomized_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:113,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_ec_group.cpp:117,1
    - Dst: test_integer
      Src: /src/botan/src/tests/test_ec_group.cpp:119,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ec_group.cpp:119,1
    - Dst: auto::get_order_bits
      Src: /src/botan/src/tests/test_ec_group.cpp:119,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:119,1
    - Dst: test_integer
      Src: /src/botan/src/tests/test_ec_group.cpp:120,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ec_group.cpp:120,1
    - Dst: auto::get_order_bits
      Src: /src/botan/src/tests/test_ec_group.cpp:120,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:120,1
    - Dst: auto::mod_order
      Src: /src/botan/src/tests/test_ec_group.cpp:121,1
    - Dst: auto::blinded_var_point_multiply
      Src: /src/botan/src/tests/test_ec_group.cpp:127,1
    - Dst: Botan_Tests::ECC_Randomized_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:127,1
    - Dst: auto::blinded_var_point_multiply
      Src: /src/botan/src/tests/test_ec_group.cpp:128,1
    - Dst: Botan_Tests::ECC_Randomized_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:128,1
    - Dst: auto::blinded_var_point_multiply
      Src: /src/botan/src/tests/test_ec_group.cpp:129,1
    - Dst: Botan_Tests::ECC_Randomized_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:129,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:134,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:135,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:137,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:138,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:139,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:140,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:142,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:142,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:143,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:143,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:144,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:144,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:146,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:147,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:148,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:150,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:151,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:152,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:153,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:154,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:155,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:158,1
    - Dst: what
      Src: /src/botan/src/tests/test_ec_group.cpp:158,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:160,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 165
    functionName: Botan_Tests::ECC_Randomized_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - auto::blinded_var_point_multiply
    - auto::get_order_bits
    - Botan::EC_Point::force_affine
    - Test::Result::test_failure
    - what
    - Botan_Tests::ECC_Randomized_Tests::rng
    - rng
    - create_random_point
    - Botan::EC_Point::on_the_curve
    - Test::Result::start_timer
    - auto::mod_order
    - std::vector::push_back
    - test_integer
    - auto::get_order
    - Test::Result::end_timer
    - Botan::EC_Group::known_named_groups
    - Botan_Tests::Test::run_long_tests
    - Botan::EC_Group::from_name
    - Test::Result::test_eq
    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:176,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:179,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:181,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:183,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:183,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:184,1
    - Dst: auto::verify_group
      Src: /src/botan/src/tests/test_ec_group.cpp:184,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:184,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:185,1
    - Dst: auto::used_explicit_encoding
      Src: /src/botan/src/tests/test_ec_group.cpp:185,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:187,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:187,1
    - Dst: auto::get_p_bits
      Src: /src/botan/src/tests/test_ec_group.cpp:187,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:188,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:188,1
    - Dst: auto::get_p_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:188,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:190,1
    - Dst: auto::get_cofactor
      Src: /src/botan/src/tests/test_ec_group.cpp:190,1
    - Dst: Botan::EC_Group::EC_group_identity_from_order
      Src: /src/botan/src/tests/test_ec_group.cpp:192,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:192,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:194,1
    - Dst: Botan::OID::to_string
      Src: /src/botan/src/tests/test_ec_group.cpp:195,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:195,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:197,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:197,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:200,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:201,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:202,1
    - Dst: auto::get_b
      Src: /src/botan/src/tests/test_ec_group.cpp:203,1
    - Dst: auto::get_g_x
      Src: /src/botan/src/tests/test_ec_group.cpp:204,1
    - Dst: auto::get_g_y
      Src: /src/botan/src/tests/test_ec_group.cpp:205,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:206,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:208,1
    - Dst: auto::DER_encode
      Src: /src/botan/src/tests/test_ec_group.cpp:211,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:213,1
    - Dst: Botan::EC_Group::used_explicit_encoding
      Src: /src/botan/src/tests/test_ec_group.cpp:214,1
    - Dst: auto::DER_encode
      Src: /src/botan/src/tests/test_ec_group.cpp:216,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:218,1
    - Dst: Botan::EC_Group::used_explicit_encoding
      Src: /src/botan/src/tests/test_ec_group.cpp:219,1
    - Dst: auto::a_is_minus_3
      Src: /src/botan/src/tests/test_ec_group.cpp:221,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:222,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:222,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:222,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_ec_group.cpp:224,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:224,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:224,1
    - Dst: auto::a_is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:227,1
    - Dst: Test::Result::test_eq
      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: BigInt
      Src: /src/botan/src/tests/test_ec_group.cpp:228,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_ec_group.cpp:230,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:230,1
    - Dst: BigInt
      Src: /src/botan/src/tests/test_ec_group.cpp:230,1
    - Dst: auto::get_base_point
      Src: /src/botan/src/tests/test_ec_group.cpp:234,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:234,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:235,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:235,1
    - Dst: auto::get_base_point
      Src: /src/botan/src/tests/test_ec_group.cpp:238,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:238,1
    - Dst: Botan::EC_Point::randomize_repr
      Src: /src/botan/src/tests/test_ec_group.cpp:243,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:243,1
    - Dst: Botan::EC_Point::randomize_repr
      Src: /src/botan/src/tests/test_ec_group.cpp:244,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:244,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:246,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:246,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:246,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:247,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:247,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:247,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:249,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:251,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:251,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:251,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:252,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:252,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:252,1
    - Dst: Botan_Tests::EC_Group_Tests::test_ser_der
      Src: /src/botan/src/tests/test_ec_group.cpp:254,1
    - Dst: Botan_Tests::EC_Group_Tests::test_basic_math
      Src: /src/botan/src/tests/test_ec_group.cpp:255,1
    - Dst: Botan_Tests::EC_Group_Tests::test_point_swap
      Src: /src/botan/src/tests/test_ec_group.cpp:256,1
    - Dst: Botan_Tests::EC_Group_Tests::test_zeropoint
      Src: /src/botan/src/tests/test_ec_group.cpp:257,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:260,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:262,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 266
    functionName: Botan_Tests::EC_Group_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::EC_group_identity_from_order
    - Botan::EC_Point::force_affine
    - auto::verify_group
    - auto::is_zero
    - Test::Result::test_ne
    - Botan::EC_Point::randomize_repr
    - auto::get_base_point
    - auto::get_p_bits
    - auto::get_g_x
    - Botan_Tests::EC_Group_Tests::test_ser_der
    - auto::get_b
    - Test::Result::start_timer
    - auto::DER_encode
    - std::vector::push_back
    - auto::a_is_zero
    - auto::get_cofactor
    - Botan_Tests::EC_Group_Tests::rng
    - auto::get_p_bytes
    - auto::get_g_y
    - Botan_Tests::EC_Group_Tests::test_zeropoint
    - Botan_Tests::EC_Group_Tests::test_basic_math
    - Botan::EC_Point::get_affine_y
    - auto::used_explicit_encoding
    - auto::get_p
    - auto::get_order
    - Botan::EC_Group::used_explicit_encoding
    - Botan::EC_Group::known_named_groups
    - auto::a_is_minus_3
    - Test::Result::end_timer
    - Botan::EC_Group::from_name
    - Botan_Tests::EC_Group_Tests::test_point_swap
    - auto::get_curve_oid
    - Botan::EC_Point::get_affine_x
    - Test::Result::test_eq
    - Test::Result::confirm
    - auto::get_a
    - Botan::OID::to_string
    - BigInt
    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:273,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:273,1
    - Dst: zero_point
      Src: /src/botan/src/tests/test_ec_group.cpp:274,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:280,1
    - Dst: OS2ECP
      Src: /src/botan/src/tests/test_ec_group.cpp:280,1
    - Dst: Botan::EC_Point::encode
      Src: /src/botan/src/tests/test_ec_group.cpp:280,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:282,1
    - Dst: what
      Src: /src/botan/src/tests/test_ec_group.cpp:282,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:286,1
    - Dst: OS2ECP
      Src: /src/botan/src/tests/test_ec_group.cpp:286,1
    - Dst: Botan::EC_Point::encode
      Src: /src/botan/src/tests/test_ec_group.cpp:286,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:288,1
    - Dst: what
      Src: /src/botan/src/tests/test_ec_group.cpp:288,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ' result'
    - ' group'
    argTypes:
    - Test::Result
    - Botan::EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 291
    functionName: Botan_Tests::EC_Group_Tests::test_ser_der
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 3
    functionsReached:
    - test_eq
    - Botan::EC_Point::encode
    - create_random_point
    - OS2ECP
    - test_failure
    - Botan_Tests::EC_Group_Tests::rng
    - what
    - zero_point
    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:294,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:299,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:303,1
    - Dst: point
      Src: /src/botan/src/tests/test_ec_group.cpp:307,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:308,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:308,1
    - Dst: test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ' result'
    - ' group'
    argTypes:
    - Test::Result
    - Botan::EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 312
    functionName: Botan_Tests::EC_Group_Tests::test_basic_math
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 3
    functionsReached:
    - test_eq
    - test_success
    - point
    - get_base_point
    - Botan::EC_Point::on_the_curve
    - confirm
    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:315,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:315,1
    - Dst: create_random_point
      Src: /src/botan/src/tests/test_ec_group.cpp:316,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:316,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_ec_group.cpp:317,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:317,1
    - Dst: Botan::EC_Point::swap
      Src: /src/botan/src/tests/test_ec_group.cpp:322,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:323,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' result'
    - ' group'
    argTypes:
    - Test::Result
    - Botan::EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 325
    functionName: Botan_Tests::EC_Group_Tests::test_point_swap
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 3
    functionsReached:
    - Botan::BigInt
    - test_eq
    - create_random_point
    - Botan::EC_Point::swap
    - Botan_Tests::EC_Group_Tests::rng
    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:328,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_ec_group.cpp:330,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:330,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_ec_group.cpp:331,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:331,1
    - Dst: get_base_point
      Src: /src/botan/src/tests/test_ec_group.cpp:333,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:335,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:335,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:336,1
    - Dst: Botan::EC_Point::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:336,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:341,1
    - Dst: Botan::EC_Point::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:341,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:344,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:344,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:346,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:346,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:347,1
    - Dst: Botan::EC_Point::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:347,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:349,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:349,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:349,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:350,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:350,1
    - Dst: get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:350,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:350,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:352,1
    - Dst: Botan::EC_Point::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:352,1
    - Dst: confirm
      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_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:354,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:355,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:356,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:357,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:357,1
    - Dst: Botan::EC_Point::encode
      Src: /src/botan/src/tests/test_ec_group.cpp:362,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:363,1
    - Dst: OS2ECP
      Src: /src/botan/src/tests/test_ec_group.cpp:363,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - ' result'
    - ' group'
    argTypes:
    - Test::Result
    - Botan::EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 365
    functionName: Botan_Tests::EC_Group_Tests::test_zeropoint
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 3
    functionsReached:
    - test_eq
    - Botan::EC_Point::encode
    - test_throws
    - get_p
    - is_zero
    - OS2ECP
    - get_base_point
    - Botan::EC_Point::get_affine_x
    - Botan::EC_Point::on_the_curve
    - Botan::EC_Point::is_zero
    - zero_point
    - confirm
    - Botan::EC_Point::get_affine_y
    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:375,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:376,1
    - Dst: Botan::EC_Group::from_PEM
      Src: /src/botan/src/tests/test_ec_group.cpp:378,1
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_ec_group.cpp:378,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:379,1
    - Dst: auto::initialized
      Src: /src/botan/src/tests/test_ec_group.cpp:379,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:380,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:380,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:380,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:383,1
    - Dst: what
      Src: /src/botan/src/tests/test_ec_group.cpp:383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 371
    functionDepth: 2
    functionLinenumber: 371
    functionLinenumberEnd: 387
    functionName: Botan_Tests::test_decoding_with_seed
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::read_data_file
    - Botan::EC_Group::supports_named_group
    - auto::get_p
    - Test::Result::test_failure
    - auto::initialized
    - Botan::EC_Group::from_name
    - Test::Result::test_eq
    - Test::Result::confirm
    - what
    - Botan::EC_Group::from_PEM
    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:392,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ec_group.cpp:392,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:393,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:394,1
    - Dst: auto::get_base_point
      Src: /src/botan/src/tests/test_ec_group.cpp:397,1
    - Dst: auto::get_base_point
      Src: /src/botan/src/tests/test_ec_group.cpp:398,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ec_group.cpp:400,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ec_group.cpp:403,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ec_group.cpp:404,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ec_group.cpp:405,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 409
    functionName: Botan_Tests::test_mixed_points
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::EC_Group::supports_named_group
    - auto::get_base_point
    - Botan::EC_Group::from_name
    - Botan::EC_AffinePoint::generator
    - auto::add
    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:416,1
    - Dst: test_decoding_with_seed
      Src: /src/botan/src/tests/test_ec_group.cpp:416,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:417,1
    - Dst: test_mixed_points
      Src: /src/botan/src/tests/test_ec_group.cpp:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 420
    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:430,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:431,1
    - Dst: Botan_Tests::EC_Group_Registration_Tests::test_ecc_registration
      Src: /src/botan/src/tests/test_ec_group.cpp:431,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:432,1
    - Dst: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_from_params
      Src: /src/botan/src/tests/test_ec_group.cpp:432,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:433,1
    - Dst: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_bad_registration
      Src: /src/botan/src/tests/test_ec_group.cpp:433,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:434,1
    - Dst: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_duplicate_orders
      Src: /src/botan/src/tests/test_ec_group.cpp:434,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:435,1
    - Dst: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_registration_with_custom_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 427
    functionDepth: 2
    functionLinenumber: 427
    functionLinenumberEnd: 439
    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_from_params
    - Botan_Tests::EC_Group_Registration_Tests::test_ec_group_registration_with_custom_oid
    - std::vector::push_back
    - Botan_Tests::EC_Group_Registration_Tests::test_ecc_registration
    - Botan_Tests::EC_Group_Registration_Tests::test_ec_group_bad_registration
    - Botan::EC_Group::supports_application_specific_group
    - Botan_Tests::EC_Group_Registration_Tests::test_ec_group_duplicate_orders
    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:459,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:461,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:461,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:464,1
    - Dst: auto::engine
      Src: /src/botan/src/tests/test_ec_group.cpp:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 467
    functionName: Botan_Tests::EC_Group_Registration_Tests::test_ecc_registration
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 3
    functionsReached:
    - auto::get_p
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::EC_Group::from_OID
    - auto::engine
    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:472,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:488,1
    - Dst: Botan::EC_Group::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 491
    functionName: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_from_params
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 3
    functionsReached:
    - Botan::EC_Group::clear_registered_curve_data
    - Botan::EC_Group::get_curve_oid
    - Test::Result::confirm
    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:496,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:511,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 517
    functionName: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_bad_registration
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 3
    functionsReached:
    - Botan::EC_Group::clear_registered_curve_data
    - Test::Result::test_failure
    - Test::Result::test_success
    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:522,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:536,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:537,1
    - Dst: Botan::EC_Group::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:537,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:540,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:541,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:541,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:545,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:546,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 549
    functionName: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_duplicate_orders
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 3
    functionsReached:
    - Botan::EC_Group::clear_registered_curve_data
    - Botan::EC_Group::get_curve_oid
    - auto::get_curve_oid
    - Test::Result::confirm
    - Botan::EC_Group::from_OID
    - Test::Result::test_success
    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:554,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:557,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:558,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:558,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:562,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:565,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:566,1
    - Dst: auto::get_b
      Src: /src/botan/src/tests/test_ec_group.cpp:567,1
    - Dst: auto::get_g_x
      Src: /src/botan/src/tests/test_ec_group.cpp:568,1
    - Dst: auto::get_g_y
      Src: /src/botan/src/tests/test_ec_group.cpp:569,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:570,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:572,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:573,1
    - Dst: Botan::EC_Group::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:573,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:576,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:576,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:580,1
    - Dst: Botan::EC_Group::_data
      Src: /src/botan/src/tests/test_ec_group.cpp:580,1
    - Dst: auto::_data
      Src: /src/botan/src/tests/test_ec_group.cpp:580,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:586,1
    - Dst: Botan::EC_Group::engine
      Src: /src/botan/src/tests/test_ec_group.cpp:586,1
    - Dst: Botan::EC_Group::_data
      Src: /src/botan/src/tests/test_ec_group.cpp:589,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:590,1
    - Dst: auto::_data
      Src: /src/botan/src/tests/test_ec_group.cpp:591,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:593,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 598
    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
    - auto::get_p
    - Botan::EC_Group::clear_registered_curve_data
    - Test::Result::test_failure
    - Botan::EC_Group::get_curve_oid
    - auto::get_g_x
    - Botan::EC_Group::from_OID
    - auto::get_curve_oid
    - Test::Result::test_success
    - Botan::EC_Group::_data
    - Test::Result::confirm
    - auto::get_a
    - auto::get_g_y
    - auto::_data
    - Botan::EC_Group::engine
    - Botan::OID::register_oid
    - auto::get_b
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ec_group_registration_with_custom_oid()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_ec_group.cpp:608,1
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/tests/test_ec_group.cpp:610,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:611,1
    - Dst: Result::start_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:615,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:618,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:619,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:621,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:622,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_ec_group.cpp:622,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ec_group.cpp:623,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ec_group.cpp:624,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:626,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ec_group.cpp:626,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ec_group.cpp:627,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:628,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:630,1
    - Dst: subspan
      Src: /src/botan/src/tests/test_ec_group.cpp:631,1
    - Dst: subspan
      Src: /src/botan/src/tests/test_ec_group.cpp:631,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/tests/test_ec_group.cpp:633,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:634,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:635,1
    - Dst: Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:637,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/tests/test_ec_group.cpp:640,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:641,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:642,1
    - Dst: Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:644,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/tests/test_ec_group.cpp:653,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:654,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:655,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:656,1
    - Dst: Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:658,1
    - Dst: Result::end_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:662,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:664,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 605
    functionDepth: 2
    functionLinenumber: 605
    functionLinenumberEnd: 668
    functionName: Botan_Tests::EC_PointEnc_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Result::confirm
    - auto::serialize_uncompressed
    - Botan::EC_AffinePoint::g_mul
    - Result::end_timer
    - std::vector::push_back
    - Botan::EC_Group::known_named_groups
    - Result::test_eq
    - Result::start_timer
    - static_cast<size_t>
    - auto::serialize_compressed
    - subspan
    - Botan::EC_Group::from_name
    - Botan::EC_Scalar::random
    - fuzzer_rng
    - Botan::EC_AffinePoint::deserialize
    - Result::test_failure
    - auto::negate
    - auto::size
    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: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::one
      Src: /src/botan/src/tests/test_ec_group.cpp:687,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ec_group.cpp:689,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:690,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:692,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:693,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ec_group.cpp:693,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:695,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:696,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ec_group.cpp:696,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:698,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:699,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:699,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:701,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:702,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:702,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:704,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:705,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:705,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:707,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:707,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:709,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:710,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ec_group.cpp:710,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:712,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:713,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:714,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:714,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:714,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:716,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:716,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:717,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:717,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:718,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:718,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:719,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:719,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:721,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:722,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:722,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:724,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:724,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:725,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:725,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:726,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:726,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:728,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:728,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:729,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:729,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:730,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:730,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:730,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:731,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:731,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:731,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:734,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:734,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:736,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:737,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ec_group.cpp:740,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ec_group.cpp:741,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ec_group.cpp:742,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:744,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:746,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:747,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:747,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:749,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:750,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:750,1
    - Dst: Botan::EC_Scalar::EC_Scalar
      Src: /src/botan/src/tests/test_ec_group.cpp:758,1
    - Dst: auto::get_order_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:761,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ec_group.cpp:762,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_ec_group.cpp:762,1
    - Dst: Botan::EC_Scalar::deserialize
      Src: /src/botan/src/tests/test_ec_group.cpp:763,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:767,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:770,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:773,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:777,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:778,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:782,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ec_group.cpp:782,1
    - Dst: Botan::EC_Group::Mul2Table::mul2_vartime
      Src: /src/botan/src/tests/test_ec_group.cpp:784,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:785,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:785,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:785,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:787,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ec_group.cpp:787,1
    - Dst: Result::end_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:791,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:793,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 675
    functionDepth: 2
    functionLinenumber: 675
    functionLinenumberEnd: 797
    functionName: Botan_Tests::EC_Point_Arithmetic_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Result::confirm
    - Botan::EC_AffinePoint::g_mul
    - auto::is_identity
    - fuzzer_rng
    - Botan::EC_AffinePoint::generator
    - auto::get_order_bytes
    - auto::negate
    - auto::is_zero
    - Botan::EC_Group::Mul2Table::mul2_vartime
    - Botan::EC_Scalar::random
    - Result::end_timer
    - std::vector::push_back
    - Result::test_eq
    - Botan::EC_Scalar::one
    - static_cast<uint8_t>
    - auto::mul
    - Botan::EC_Scalar::deserialize
    - std::vector::size
    - auto::add
    - auto::serialize_uncompressed
    - Botan::EC_Group::known_named_groups
    - Result::start_timer
    - is_zero
    - Botan::EC_Group::from_name
    - Botan::EC_Scalar::EC_Scalar
    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: 806
      start: 806
    functionDepth: 0
    functionLinenumber: 806
    functionLinenumberEnd: 806
    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: 808
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 808
    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:813,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_ec_group.cpp:817,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:818,1
    - Dst: auto::check_key
      Src: /src/botan/src/tests/test_ec_group.cpp:818,1
    - Dst: Botan_Tests::ECC_Invalid_Key_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:818,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:820,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 810
    functionDepth: 0
    functionLinenumber: 810
    functionLinenumberEnd: 824
    functionName: Botan_Tests::ECC_Invalid_Key_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::ECC_Invalid_Key_Tests::rng
    - Test::Result::test_eq
    - auto::check_key
    - Test::Result::test_success
    - Botan::X509::load_key
    - get_req_str
    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:51,1
    - Dst: static_cast<int>
      Src: /src/botan/src/tests/test_ec_group.cpp:54,1
    - Dst: flip_prob
      Src: /src/botan/src/tests/test_ec_group.cpp:56,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_ec_group.cpp:57,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/tests/test_ec_group.cpp:67,1
    - Dst: Botan::BigInt::bits
      Src: /src/botan/src/tests/test_ec_group.cpp:72,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/tests/test_ec_group.cpp:73,1
    - Dst: Botan::BigInt::get_bit
      Src: /src/botan/src/tests/test_ec_group.cpp:73,1
    - Dst: Botan::BigInt::clear_bit
      Src: /src/botan/src/tests/test_ec_group.cpp:74,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 3
    argNames:
    - ' rng'
    - bits
    - ' max'
    argTypes:
    - Botan::RandomNumberGenerator
    - size_t
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 79
    functionName: Botan_Tests::test_integer
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::bits
    - Botan::BigInt::clear_bit
    - flip_prob
    - next_byte
    - Botan::BigInt::random_integer
    - static_cast<int>
    - BOTAN_ASSERT
    - 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:82,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/tests/test_ec_group.cpp:83,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/tests/test_ec_group.cpp:86,1
    - Dst: auto::multiply
      Src: /src/botan/src/tests/test_ec_group.cpp:87,1
    - Dst: auto::square
      Src: /src/botan/src/tests/test_ec_group.cpp:87,1
    - Dst: auto::multiply
      Src: /src/botan/src/tests/test_ec_group.cpp:88,1
    - Dst: get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:88,1
    - Dst: auto::reduce
      Src: /src/botan/src/tests/test_ec_group.cpp:89,1
    - Dst: get_b
      Src: /src/botan/src/tests/test_ec_group.cpp:89,1
    - Dst: Botan::sqrt_modulo_prime
      Src: /src/botan/src/tests/test_ec_group.cpp:90,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/tests/test_ec_group.cpp:93,1
    - Dst: auto::square
      Src: /src/botan/src/tests/test_ec_group.cpp:93,1
    - Dst: point
      Src: /src/botan/src/tests/test_ec_group.cpp:94,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' rng'
    - ' group'
    argTypes:
    - Botan::RandomNumberGenerator
    - Botan::EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 97
    functionName: Botan_Tests::create_random_point
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - point
    - Botan::BigInt::random_integer
    - get_p
    - Botan::Barrett_Reduction::for_public_modulus
    - auto::multiply
    - auto::reduce
    - auto::square
    - get_a
    - BOTAN_ASSERT_EQUAL
    - get_b
    - Botan::sqrt_modulo_prime
    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:106,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:109,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:111,1
    - Dst: create_random_point
      Src: /src/botan/src/tests/test_ec_group.cpp:113,1
    - Dst: Botan_Tests::ECC_Randomized_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:113,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_ec_group.cpp:117,1
    - Dst: test_integer
      Src: /src/botan/src/tests/test_ec_group.cpp:119,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ec_group.cpp:119,1
    - Dst: auto::get_order_bits
      Src: /src/botan/src/tests/test_ec_group.cpp:119,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:119,1
    - Dst: test_integer
      Src: /src/botan/src/tests/test_ec_group.cpp:120,1
    - Dst: rng
      Src: /src/botan/src/tests/test_ec_group.cpp:120,1
    - Dst: auto::get_order_bits
      Src: /src/botan/src/tests/test_ec_group.cpp:120,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:120,1
    - Dst: auto::mod_order
      Src: /src/botan/src/tests/test_ec_group.cpp:121,1
    - Dst: auto::blinded_var_point_multiply
      Src: /src/botan/src/tests/test_ec_group.cpp:127,1
    - Dst: Botan_Tests::ECC_Randomized_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:127,1
    - Dst: auto::blinded_var_point_multiply
      Src: /src/botan/src/tests/test_ec_group.cpp:128,1
    - Dst: Botan_Tests::ECC_Randomized_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:128,1
    - Dst: auto::blinded_var_point_multiply
      Src: /src/botan/src/tests/test_ec_group.cpp:129,1
    - Dst: Botan_Tests::ECC_Randomized_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:129,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:134,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:135,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:137,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:138,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:139,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:140,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:142,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:142,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:143,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:143,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:144,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:144,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:146,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:147,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:148,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:150,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:151,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:152,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:153,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:154,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:155,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:158,1
    - Dst: what
      Src: /src/botan/src/tests/test_ec_group.cpp:158,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:160,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 165
    functionName: Botan_Tests::ECC_Randomized_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - auto::blinded_var_point_multiply
    - auto::get_order_bits
    - Botan::EC_Point::force_affine
    - Test::Result::test_failure
    - what
    - Botan_Tests::ECC_Randomized_Tests::rng
    - rng
    - create_random_point
    - Botan::EC_Point::on_the_curve
    - Test::Result::start_timer
    - auto::mod_order
    - std::vector::push_back
    - test_integer
    - auto::get_order
    - Test::Result::end_timer
    - Botan::EC_Group::known_named_groups
    - Botan_Tests::Test::run_long_tests
    - Botan::EC_Group::from_name
    - Test::Result::test_eq
    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:176,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:179,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:181,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:183,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:183,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:184,1
    - Dst: auto::verify_group
      Src: /src/botan/src/tests/test_ec_group.cpp:184,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:184,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:185,1
    - Dst: auto::used_explicit_encoding
      Src: /src/botan/src/tests/test_ec_group.cpp:185,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:187,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:187,1
    - Dst: auto::get_p_bits
      Src: /src/botan/src/tests/test_ec_group.cpp:187,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:188,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:188,1
    - Dst: auto::get_p_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:188,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:190,1
    - Dst: auto::get_cofactor
      Src: /src/botan/src/tests/test_ec_group.cpp:190,1
    - Dst: Botan::EC_Group::EC_group_identity_from_order
      Src: /src/botan/src/tests/test_ec_group.cpp:192,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:192,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:194,1
    - Dst: Botan::OID::to_string
      Src: /src/botan/src/tests/test_ec_group.cpp:195,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:195,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:197,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:197,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:200,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:201,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:202,1
    - Dst: auto::get_b
      Src: /src/botan/src/tests/test_ec_group.cpp:203,1
    - Dst: auto::get_g_x
      Src: /src/botan/src/tests/test_ec_group.cpp:204,1
    - Dst: auto::get_g_y
      Src: /src/botan/src/tests/test_ec_group.cpp:205,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:206,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:208,1
    - Dst: auto::DER_encode
      Src: /src/botan/src/tests/test_ec_group.cpp:211,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:213,1
    - Dst: Botan::EC_Group::used_explicit_encoding
      Src: /src/botan/src/tests/test_ec_group.cpp:214,1
    - Dst: auto::DER_encode
      Src: /src/botan/src/tests/test_ec_group.cpp:216,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:218,1
    - Dst: Botan::EC_Group::used_explicit_encoding
      Src: /src/botan/src/tests/test_ec_group.cpp:219,1
    - Dst: auto::a_is_minus_3
      Src: /src/botan/src/tests/test_ec_group.cpp:221,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:222,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:222,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:222,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_ec_group.cpp:224,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:224,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:224,1
    - Dst: auto::a_is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:227,1
    - Dst: Test::Result::test_eq
      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: BigInt
      Src: /src/botan/src/tests/test_ec_group.cpp:228,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_ec_group.cpp:230,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:230,1
    - Dst: BigInt
      Src: /src/botan/src/tests/test_ec_group.cpp:230,1
    - Dst: auto::get_base_point
      Src: /src/botan/src/tests/test_ec_group.cpp:234,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:234,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:235,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:235,1
    - Dst: auto::get_base_point
      Src: /src/botan/src/tests/test_ec_group.cpp:238,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:238,1
    - Dst: Botan::EC_Point::randomize_repr
      Src: /src/botan/src/tests/test_ec_group.cpp:243,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:243,1
    - Dst: Botan::EC_Point::randomize_repr
      Src: /src/botan/src/tests/test_ec_group.cpp:244,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:244,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:246,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:246,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:246,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:247,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:247,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:247,1
    - Dst: Botan::EC_Point::force_affine
      Src: /src/botan/src/tests/test_ec_group.cpp:249,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:251,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:251,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:251,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:252,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:252,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:252,1
    - Dst: Botan_Tests::EC_Group_Tests::test_ser_der
      Src: /src/botan/src/tests/test_ec_group.cpp:254,1
    - Dst: Botan_Tests::EC_Group_Tests::test_basic_math
      Src: /src/botan/src/tests/test_ec_group.cpp:255,1
    - Dst: Botan_Tests::EC_Group_Tests::test_point_swap
      Src: /src/botan/src/tests/test_ec_group.cpp:256,1
    - Dst: Botan_Tests::EC_Group_Tests::test_zeropoint
      Src: /src/botan/src/tests/test_ec_group.cpp:257,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:260,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:262,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 266
    functionName: Botan_Tests::EC_Group_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::EC_group_identity_from_order
    - Botan::EC_Point::force_affine
    - auto::verify_group
    - auto::is_zero
    - Test::Result::test_ne
    - Botan::EC_Point::randomize_repr
    - auto::get_base_point
    - auto::get_p_bits
    - auto::get_g_x
    - Botan_Tests::EC_Group_Tests::test_ser_der
    - auto::get_b
    - Test::Result::start_timer
    - auto::DER_encode
    - std::vector::push_back
    - auto::a_is_zero
    - auto::get_cofactor
    - Botan_Tests::EC_Group_Tests::rng
    - auto::get_p_bytes
    - auto::get_g_y
    - Botan_Tests::EC_Group_Tests::test_zeropoint
    - Botan_Tests::EC_Group_Tests::test_basic_math
    - Botan::EC_Point::get_affine_y
    - auto::used_explicit_encoding
    - auto::get_p
    - auto::get_order
    - Botan::EC_Group::used_explicit_encoding
    - Botan::EC_Group::known_named_groups
    - auto::a_is_minus_3
    - Test::Result::end_timer
    - Botan::EC_Group::from_name
    - Botan_Tests::EC_Group_Tests::test_point_swap
    - auto::get_curve_oid
    - Botan::EC_Point::get_affine_x
    - Test::Result::test_eq
    - Test::Result::confirm
    - auto::get_a
    - Botan::OID::to_string
    - BigInt
    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:273,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:273,1
    - Dst: zero_point
      Src: /src/botan/src/tests/test_ec_group.cpp:274,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:280,1
    - Dst: OS2ECP
      Src: /src/botan/src/tests/test_ec_group.cpp:280,1
    - Dst: Botan::EC_Point::encode
      Src: /src/botan/src/tests/test_ec_group.cpp:280,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:282,1
    - Dst: what
      Src: /src/botan/src/tests/test_ec_group.cpp:282,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:286,1
    - Dst: OS2ECP
      Src: /src/botan/src/tests/test_ec_group.cpp:286,1
    - Dst: Botan::EC_Point::encode
      Src: /src/botan/src/tests/test_ec_group.cpp:286,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:288,1
    - Dst: what
      Src: /src/botan/src/tests/test_ec_group.cpp:288,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ' result'
    - ' group'
    argTypes:
    - Test::Result
    - Botan::EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 291
    functionName: Botan_Tests::EC_Group_Tests::test_ser_der
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 4
    functionsReached:
    - test_eq
    - Botan::EC_Point::encode
    - create_random_point
    - OS2ECP
    - test_failure
    - Botan_Tests::EC_Group_Tests::rng
    - what
    - zero_point
    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:294,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:299,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:303,1
    - Dst: point
      Src: /src/botan/src/tests/test_ec_group.cpp:307,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:308,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:308,1
    - Dst: test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ' result'
    - ' group'
    argTypes:
    - Test::Result
    - Botan::EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 312
    functionName: Botan_Tests::EC_Group_Tests::test_basic_math
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 4
    functionsReached:
    - test_eq
    - test_success
    - point
    - get_base_point
    - Botan::EC_Point::on_the_curve
    - confirm
    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:315,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:315,1
    - Dst: create_random_point
      Src: /src/botan/src/tests/test_ec_group.cpp:316,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:316,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_ec_group.cpp:317,1
    - Dst: Botan_Tests::EC_Group_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:317,1
    - Dst: Botan::EC_Point::swap
      Src: /src/botan/src/tests/test_ec_group.cpp:322,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:323,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' result'
    - ' group'
    argTypes:
    - Test::Result
    - Botan::EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 325
    functionName: Botan_Tests::EC_Group_Tests::test_point_swap
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 4
    functionsReached:
    - Botan::BigInt
    - test_eq
    - create_random_point
    - Botan::EC_Point::swap
    - Botan_Tests::EC_Group_Tests::rng
    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:328,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_ec_group.cpp:330,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:330,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_ec_group.cpp:331,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:331,1
    - Dst: get_base_point
      Src: /src/botan/src/tests/test_ec_group.cpp:333,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:335,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:335,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:336,1
    - Dst: Botan::EC_Point::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:336,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:341,1
    - Dst: Botan::EC_Point::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:341,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:344,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:344,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:346,1
    - Dst: Botan::EC_Point::on_the_curve
      Src: /src/botan/src/tests/test_ec_group.cpp:346,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:347,1
    - Dst: Botan::EC_Point::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:347,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:349,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:349,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/tests/test_ec_group.cpp:349,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:350,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:350,1
    - Dst: get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:350,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/tests/test_ec_group.cpp:350,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:352,1
    - Dst: Botan::EC_Point::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:352,1
    - Dst: confirm
      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_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:354,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:355,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:356,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:357,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:357,1
    - Dst: Botan::EC_Point::encode
      Src: /src/botan/src/tests/test_ec_group.cpp:362,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:363,1
    - Dst: OS2ECP
      Src: /src/botan/src/tests/test_ec_group.cpp:363,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - ' result'
    - ' group'
    argTypes:
    - Test::Result
    - Botan::EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 365
    functionName: Botan_Tests::EC_Group_Tests::test_zeropoint
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 4
    functionsReached:
    - test_eq
    - Botan::EC_Point::encode
    - test_throws
    - get_p
    - is_zero
    - OS2ECP
    - get_base_point
    - Botan::EC_Point::get_affine_x
    - Botan::EC_Point::on_the_curve
    - Botan::EC_Point::is_zero
    - zero_point
    - confirm
    - Botan::EC_Point::get_affine_y
    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:375,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:376,1
    - Dst: Botan::EC_Group::from_PEM
      Src: /src/botan/src/tests/test_ec_group.cpp:378,1
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_ec_group.cpp:378,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:379,1
    - Dst: auto::initialized
      Src: /src/botan/src/tests/test_ec_group.cpp:379,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:380,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:380,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:380,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:383,1
    - Dst: what
      Src: /src/botan/src/tests/test_ec_group.cpp:383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 371
    functionDepth: 2
    functionLinenumber: 371
    functionLinenumberEnd: 387
    functionName: Botan_Tests::test_decoding_with_seed
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::read_data_file
    - Botan::EC_Group::supports_named_group
    - auto::get_p
    - Test::Result::test_failure
    - auto::initialized
    - Botan::EC_Group::from_name
    - Test::Result::test_eq
    - Test::Result::confirm
    - what
    - Botan::EC_Group::from_PEM
    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:392,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ec_group.cpp:392,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:393,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:394,1
    - Dst: auto::get_base_point
      Src: /src/botan/src/tests/test_ec_group.cpp:397,1
    - Dst: auto::get_base_point
      Src: /src/botan/src/tests/test_ec_group.cpp:398,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ec_group.cpp:400,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ec_group.cpp:403,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ec_group.cpp:404,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_ec_group.cpp:405,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 409
    functionName: Botan_Tests::test_mixed_points
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::EC_Group::supports_named_group
    - auto::get_base_point
    - Botan::EC_Group::from_name
    - Botan::EC_AffinePoint::generator
    - auto::add
    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:416,1
    - Dst: test_decoding_with_seed
      Src: /src/botan/src/tests/test_ec_group.cpp:416,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:417,1
    - Dst: test_mixed_points
      Src: /src/botan/src/tests/test_ec_group.cpp:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 420
    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:430,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:431,1
    - Dst: Botan_Tests::EC_Group_Registration_Tests::test_ecc_registration
      Src: /src/botan/src/tests/test_ec_group.cpp:431,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:432,1
    - Dst: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_from_params
      Src: /src/botan/src/tests/test_ec_group.cpp:432,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:433,1
    - Dst: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_bad_registration
      Src: /src/botan/src/tests/test_ec_group.cpp:433,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:434,1
    - Dst: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_duplicate_orders
      Src: /src/botan/src/tests/test_ec_group.cpp:434,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:435,1
    - Dst: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_registration_with_custom_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 427
    functionDepth: 2
    functionLinenumber: 427
    functionLinenumberEnd: 439
    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_from_params
    - Botan_Tests::EC_Group_Registration_Tests::test_ec_group_registration_with_custom_oid
    - std::vector::push_back
    - Botan_Tests::EC_Group_Registration_Tests::test_ecc_registration
    - Botan_Tests::EC_Group_Registration_Tests::test_ec_group_bad_registration
    - Botan::EC_Group::supports_application_specific_group
    - Botan_Tests::EC_Group_Registration_Tests::test_ec_group_duplicate_orders
    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:459,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:461,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:461,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:464,1
    - Dst: auto::engine
      Src: /src/botan/src/tests/test_ec_group.cpp:464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 442
    functionDepth: 1
    functionLinenumber: 442
    functionLinenumberEnd: 467
    functionName: Botan_Tests::EC_Group_Registration_Tests::test_ecc_registration
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 4
    functionsReached:
    - auto::get_p
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::EC_Group::from_OID
    - auto::engine
    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:472,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:488,1
    - Dst: Botan::EC_Group::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 491
    functionName: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_from_params
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 4
    functionsReached:
    - Botan::EC_Group::clear_registered_curve_data
    - Botan::EC_Group::get_curve_oid
    - Test::Result::confirm
    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:496,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:511,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 517
    functionName: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_bad_registration
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 4
    functionsReached:
    - Botan::EC_Group::clear_registered_curve_data
    - Test::Result::test_failure
    - Test::Result::test_success
    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:522,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:536,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:537,1
    - Dst: Botan::EC_Group::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:537,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:540,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:541,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:541,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:545,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:546,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 549
    functionName: Botan_Tests::EC_Group_Registration_Tests::test_ec_group_duplicate_orders
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 4
    functionsReached:
    - Botan::EC_Group::clear_registered_curve_data
    - Botan::EC_Group::get_curve_oid
    - auto::get_curve_oid
    - Test::Result::confirm
    - Botan::EC_Group::from_OID
    - Test::Result::test_success
    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:554,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:557,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:558,1
    - Dst: auto::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:558,1
    - Dst: Botan::OID::register_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:562,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_ec_group.cpp:565,1
    - Dst: auto::get_a
      Src: /src/botan/src/tests/test_ec_group.cpp:566,1
    - Dst: auto::get_b
      Src: /src/botan/src/tests/test_ec_group.cpp:567,1
    - Dst: auto::get_g_x
      Src: /src/botan/src/tests/test_ec_group.cpp:568,1
    - Dst: auto::get_g_y
      Src: /src/botan/src/tests/test_ec_group.cpp:569,1
    - Dst: auto::get_order
      Src: /src/botan/src/tests/test_ec_group.cpp:570,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:572,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:573,1
    - Dst: Botan::EC_Group::get_curve_oid
      Src: /src/botan/src/tests/test_ec_group.cpp:573,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:576,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/tests/test_ec_group.cpp:576,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:580,1
    - Dst: Botan::EC_Group::_data
      Src: /src/botan/src/tests/test_ec_group.cpp:580,1
    - Dst: auto::_data
      Src: /src/botan/src/tests/test_ec_group.cpp:580,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:586,1
    - Dst: Botan::EC_Group::engine
      Src: /src/botan/src/tests/test_ec_group.cpp:586,1
    - Dst: Botan::EC_Group::_data
      Src: /src/botan/src/tests/test_ec_group.cpp:589,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:590,1
    - Dst: auto::_data
      Src: /src/botan/src/tests/test_ec_group.cpp:591,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:593,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 598
    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
    - auto::get_p
    - Botan::EC_Group::clear_registered_curve_data
    - Test::Result::test_failure
    - Botan::EC_Group::get_curve_oid
    - auto::get_g_x
    - Botan::EC_Group::from_OID
    - auto::get_curve_oid
    - Test::Result::test_success
    - Botan::EC_Group::_data
    - Test::Result::confirm
    - auto::get_a
    - auto::get_g_y
    - auto::_data
    - Botan::EC_Group::engine
    - Botan::OID::register_oid
    - auto::get_b
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_ec_group_registration_with_custom_oid()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fuzzer_rng
      Src: /src/botan/src/tests/test_ec_group.cpp:608,1
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/tests/test_ec_group.cpp:610,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ec_group.cpp:611,1
    - Dst: Result::start_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:615,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:618,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:619,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:621,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:622,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_ec_group.cpp:622,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ec_group.cpp:623,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/tests/test_ec_group.cpp:624,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:626,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ec_group.cpp:626,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ec_group.cpp:627,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:628,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:630,1
    - Dst: subspan
      Src: /src/botan/src/tests/test_ec_group.cpp:631,1
    - Dst: subspan
      Src: /src/botan/src/tests/test_ec_group.cpp:631,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/tests/test_ec_group.cpp:633,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:634,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:635,1
    - Dst: Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:637,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/tests/test_ec_group.cpp:640,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:641,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:642,1
    - Dst: Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:644,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/tests/test_ec_group.cpp:653,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:654,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:655,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:656,1
    - Dst: Result::test_failure
      Src: /src/botan/src/tests/test_ec_group.cpp:658,1
    - Dst: Result::end_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:662,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:664,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 605
    functionDepth: 2
    functionLinenumber: 605
    functionLinenumberEnd: 668
    functionName: Botan_Tests::EC_PointEnc_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Result::confirm
    - auto::serialize_uncompressed
    - Botan::EC_AffinePoint::g_mul
    - Result::end_timer
    - std::vector::push_back
    - Botan::EC_Group::known_named_groups
    - Result::test_eq
    - Result::start_timer
    - static_cast<size_t>
    - auto::serialize_compressed
    - subspan
    - Botan::EC_Group::from_name
    - Botan::EC_Scalar::random
    - fuzzer_rng
    - Botan::EC_AffinePoint::deserialize
    - Result::test_failure
    - auto::negate
    - auto::size
    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: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::one
      Src: /src/botan/src/tests/test_ec_group.cpp:687,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/tests/test_ec_group.cpp:689,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:690,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:692,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:693,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ec_group.cpp:693,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:695,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:696,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ec_group.cpp:696,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:698,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:699,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:699,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:701,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:702,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:702,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:704,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:705,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:705,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:707,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:707,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:709,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:710,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ec_group.cpp:710,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:712,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:713,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:714,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:714,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:714,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:716,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:716,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:717,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:717,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:718,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:718,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:719,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:719,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:721,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:722,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:722,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:724,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:724,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:725,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:725,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:726,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:726,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:728,1
    - Dst: auto::is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:728,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:729,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:729,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:730,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:730,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:730,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:731,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:731,1
    - Dst: is_zero
      Src: /src/botan/src/tests/test_ec_group.cpp:731,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:734,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:734,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:736,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:737,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ec_group.cpp:740,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ec_group.cpp:741,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ec_group.cpp:742,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:744,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:746,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:747,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:747,1
    - Dst: auto::add
      Src: /src/botan/src/tests/test_ec_group.cpp:749,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:750,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:750,1
    - Dst: Botan::EC_Scalar::EC_Scalar
      Src: /src/botan/src/tests/test_ec_group.cpp:758,1
    - Dst: auto::get_order_bytes
      Src: /src/botan/src/tests/test_ec_group.cpp:761,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ec_group.cpp:762,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_ec_group.cpp:762,1
    - Dst: Botan::EC_Scalar::deserialize
      Src: /src/botan/src/tests/test_ec_group.cpp:763,1
    - Dst: auto::negate
      Src: /src/botan/src/tests/test_ec_group.cpp:767,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:770,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:773,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:777,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/tests/test_ec_group.cpp:778,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/tests/test_ec_group.cpp:782,1
    - Dst: auto::mul
      Src: /src/botan/src/tests/test_ec_group.cpp:782,1
    - Dst: Botan::EC_Group::Mul2Table::mul2_vartime
      Src: /src/botan/src/tests/test_ec_group.cpp:784,1
    - Dst: Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:785,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:785,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/tests/test_ec_group.cpp:785,1
    - Dst: Result::confirm
      Src: /src/botan/src/tests/test_ec_group.cpp:787,1
    - Dst: auto::is_identity
      Src: /src/botan/src/tests/test_ec_group.cpp:787,1
    - Dst: Result::end_timer
      Src: /src/botan/src/tests/test_ec_group.cpp:791,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_ec_group.cpp:793,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 675
    functionDepth: 2
    functionLinenumber: 675
    functionLinenumberEnd: 797
    functionName: Botan_Tests::EC_Point_Arithmetic_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Result::confirm
    - Botan::EC_AffinePoint::g_mul
    - auto::is_identity
    - fuzzer_rng
    - Botan::EC_AffinePoint::generator
    - auto::get_order_bytes
    - auto::negate
    - auto::is_zero
    - Botan::EC_Group::Mul2Table::mul2_vartime
    - Botan::EC_Scalar::random
    - Result::end_timer
    - std::vector::push_back
    - Result::test_eq
    - Botan::EC_Scalar::one
    - static_cast<uint8_t>
    - auto::mul
    - Botan::EC_Scalar::deserialize
    - std::vector::size
    - auto::add
    - auto::serialize_uncompressed
    - Botan::EC_Group::known_named_groups
    - Result::start_timer
    - is_zero
    - Botan::EC_Group::from_name
    - Botan::EC_Scalar::EC_Scalar
    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: 806
      start: 806
    functionDepth: 0
    functionLinenumber: 806
    functionLinenumberEnd: 806
    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: 808
      start: 808
    functionDepth: 0
    functionLinenumber: 808
    functionLinenumberEnd: 808
    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:813,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_ec_group.cpp:817,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ec_group.cpp:818,1
    - Dst: auto::check_key
      Src: /src/botan/src/tests/test_ec_group.cpp:818,1
    - Dst: Botan_Tests::ECC_Invalid_Key_Tests::rng
      Src: /src/botan/src/tests/test_ec_group.cpp:818,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_ec_group.cpp:820,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 810
    functionDepth: 0
    functionLinenumber: 810
    functionLinenumberEnd: 824
    functionName: Botan_Tests::ECC_Invalid_Key_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_ec_group.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::ECC_Invalid_Key_Tests::rng
    - Test::Result::test_eq
    - auto::check_key
    - Test::Result::test_success
    - Botan::X509::load_key
    - get_req_str
    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:43,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_rsa
      Src: /src/botan/src/tests/unit_tls_policy.cpp:43,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::rng
      Src: /src/botan/src/tests/unit_tls_policy.cpp:43,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls_policy.cpp:44,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdh
      Src: /src/botan/src/tests/unit_tls_policy.cpp:44,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::rng
      Src: /src/botan/src/tests/unit_tls_policy.cpp:44,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls_policy.cpp:45,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdsa
      Src: /src/botan/src/tests/unit_tls_policy.cpp:45,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::rng
      Src: /src/botan/src/tests/unit_tls_policy.cpp:45,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls_policy.cpp:46,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_dh
      Src: /src/botan/src/tests/unit_tls_policy.cpp:46,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls_policy.cpp:47,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::test_key_exchange_groups_to_offer
      Src: /src/botan/src/tests/unit_tls_policy.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 50
    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_key_exchange_groups_to_offer
    - std::vector::push_back
    - Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_rsa
    - Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdh
    - Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdsa
    - Botan_Tests::TLS_Policy_Unit_Tests::rng
    - Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_dh
    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:56,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:60,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls_policy.cpp:61,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:63,1
    - Dst: std::make_unique<Botan::RSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:66,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:67,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 71
    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_failure
    - Test::Result::test_success
    - Botan::TLS::Policy::check_peer_key_acceptable
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_peer_key_acceptable_rsa(Botan::RandomNumberGenerator&
      rng)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_tls_policy.cpp:79,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls_policy.cpp:80,1
    - Dst: std::make_unique<Botan::ECDH_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:81,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:84,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls_policy.cpp:85,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:87,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_tls_policy.cpp:91,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls_policy.cpp:92,1
    - Dst: std::make_unique<Botan::ECDH_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:93,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:94,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 99
    functionName: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdh
    functionSourceFile: /src/botan/src/tests/unit_tls_policy.cpp
    functionUses: 1
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - Test::Result::test_failure
    - Botan::EC_Group::from_name
    - Botan::TLS::Policy::check_peer_key_acceptable
    - Test::Result::test_success
    - std::make_unique<Botan::ECDH_PrivateKey>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_peer_key_acceptable_ecdh(Botan::RandomNumberGenerator&
      rng)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_tls_policy.cpp:106,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls_policy.cpp:107,1
    - Dst: std::make_unique<Botan::ECDSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:108,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:111,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls_policy.cpp:112,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:114,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_tls_policy.cpp:118,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls_policy.cpp:119,1
    - Dst: std::make_unique<Botan::ECDSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:120,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:121,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 126
    functionName: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdsa
    functionSourceFile: /src/botan/src/tests/unit_tls_policy.cpp
    functionUses: 1
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - Test::Result::test_failure
    - Botan::EC_Group::from_name
    - Botan::TLS::Policy::check_peer_key_acceptable
    - std::make_unique<Botan::ECDSA_PrivateKey>
    - Test::Result::test_success
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_peer_key_acceptable_ecdsa(Botan::RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::DH_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:135,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:139,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls_policy.cpp:140,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 146
    functionName: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_dh
    functionSourceFile: /src/botan/src/tests/unit_tls_policy.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_success
    - Test::Result::test_failure
    - std::make_unique<Botan::DH_PrivateKey>
    - Botan::TLS::Policy::check_peer_key_acceptable
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_peer_key_acceptable_dh()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_tls_policy.cpp:152,1
    - Dst: Botan::TLS::Policy::key_exchange_groups_to_offer
      Src: /src/botan/src/tests/unit_tls_policy.cpp:153,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_tls_policy.cpp:154,1
    - Dst: Botan::TLS::Policy::key_exchange_groups
      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:156,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_tls_policy.cpp:160,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:160,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_tls_policy.cpp:161,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:162,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:162,1
    - Dst: Test::Result::confirm
      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_eq
      Src: /src/botan/src/tests/unit_tls_policy.cpp:168,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:168,1
    - Dst: Test::Result::confirm
      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::confirm
      Src: /src/botan/src/tests/unit_tls_policy.cpp:171,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 175
    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_to_offer
    - Test::Result::test_eq
    - Test::Result::confirm
    - TP
    - Botan::TLS::Policy::key_exchange_groups
    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:43,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_rsa
      Src: /src/botan/src/tests/unit_tls_policy.cpp:43,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::rng
      Src: /src/botan/src/tests/unit_tls_policy.cpp:43,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls_policy.cpp:44,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdh
      Src: /src/botan/src/tests/unit_tls_policy.cpp:44,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::rng
      Src: /src/botan/src/tests/unit_tls_policy.cpp:44,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls_policy.cpp:45,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdsa
      Src: /src/botan/src/tests/unit_tls_policy.cpp:45,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::rng
      Src: /src/botan/src/tests/unit_tls_policy.cpp:45,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls_policy.cpp:46,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_dh
      Src: /src/botan/src/tests/unit_tls_policy.cpp:46,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls_policy.cpp:47,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::test_key_exchange_groups_to_offer
      Src: /src/botan/src/tests/unit_tls_policy.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 50
    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_key_exchange_groups_to_offer
    - std::vector::push_back
    - Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_rsa
    - Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdh
    - Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdsa
    - Botan_Tests::TLS_Policy_Unit_Tests::rng
    - Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_dh
    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:56,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:60,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls_policy.cpp:61,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:63,1
    - Dst: std::make_unique<Botan::RSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:66,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:67,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 71
    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_failure
    - Test::Result::test_success
    - Botan::TLS::Policy::check_peer_key_acceptable
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_peer_key_acceptable_rsa(Botan::RandomNumberGenerator&
      rng)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_tls_policy.cpp:79,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls_policy.cpp:80,1
    - Dst: std::make_unique<Botan::ECDH_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:81,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:84,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls_policy.cpp:85,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:87,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_tls_policy.cpp:91,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls_policy.cpp:92,1
    - Dst: std::make_unique<Botan::ECDH_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:93,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:94,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 99
    functionName: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdh
    functionSourceFile: /src/botan/src/tests/unit_tls_policy.cpp
    functionUses: 2
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - Test::Result::test_failure
    - Botan::EC_Group::from_name
    - Botan::TLS::Policy::check_peer_key_acceptable
    - Test::Result::test_success
    - std::make_unique<Botan::ECDH_PrivateKey>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_peer_key_acceptable_ecdh(Botan::RandomNumberGenerator&
      rng)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_tls_policy.cpp:106,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls_policy.cpp:107,1
    - Dst: std::make_unique<Botan::ECDSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:108,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:111,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls_policy.cpp:112,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:114,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_tls_policy.cpp:118,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls_policy.cpp:119,1
    - Dst: std::make_unique<Botan::ECDSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:120,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:121,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 126
    functionName: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdsa
    functionSourceFile: /src/botan/src/tests/unit_tls_policy.cpp
    functionUses: 2
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - Test::Result::test_failure
    - Botan::EC_Group::from_name
    - Botan::TLS::Policy::check_peer_key_acceptable
    - std::make_unique<Botan::ECDSA_PrivateKey>
    - Test::Result::test_success
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_peer_key_acceptable_ecdsa(Botan::RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::DH_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:135,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:139,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls_policy.cpp:140,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 146
    functionName: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_dh
    functionSourceFile: /src/botan/src/tests/unit_tls_policy.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::test_success
    - Test::Result::test_failure
    - std::make_unique<Botan::DH_PrivateKey>
    - Botan::TLS::Policy::check_peer_key_acceptable
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_peer_key_acceptable_dh()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_tls_policy.cpp:152,1
    - Dst: Botan::TLS::Policy::key_exchange_groups_to_offer
      Src: /src/botan/src/tests/unit_tls_policy.cpp:153,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_tls_policy.cpp:154,1
    - Dst: Botan::TLS::Policy::key_exchange_groups
      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:156,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_tls_policy.cpp:160,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:160,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_tls_policy.cpp:161,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:162,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:162,1
    - Dst: Test::Result::confirm
      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_eq
      Src: /src/botan/src/tests/unit_tls_policy.cpp:168,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:168,1
    - Dst: Test::Result::confirm
      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::confirm
      Src: /src/botan/src/tests/unit_tls_policy.cpp:171,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 175
    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_to_offer
    - Test::Result::test_eq
    - Test::Result::confirm
    - TP
    - Botan::TLS::Policy::key_exchange_groups
    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:43,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_rsa
      Src: /src/botan/src/tests/unit_tls_policy.cpp:43,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::rng
      Src: /src/botan/src/tests/unit_tls_policy.cpp:43,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls_policy.cpp:44,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdh
      Src: /src/botan/src/tests/unit_tls_policy.cpp:44,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::rng
      Src: /src/botan/src/tests/unit_tls_policy.cpp:44,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls_policy.cpp:45,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdsa
      Src: /src/botan/src/tests/unit_tls_policy.cpp:45,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::rng
      Src: /src/botan/src/tests/unit_tls_policy.cpp:45,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls_policy.cpp:46,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_dh
      Src: /src/botan/src/tests/unit_tls_policy.cpp:46,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls_policy.cpp:47,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::test_key_exchange_groups_to_offer
      Src: /src/botan/src/tests/unit_tls_policy.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 50
    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_key_exchange_groups_to_offer
    - std::vector::push_back
    - Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_rsa
    - Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdh
    - Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdsa
    - Botan_Tests::TLS_Policy_Unit_Tests::rng
    - Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_dh
    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:56,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:60,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls_policy.cpp:61,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:63,1
    - Dst: std::make_unique<Botan::RSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:66,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:67,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 71
    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_failure
    - Test::Result::test_success
    - Botan::TLS::Policy::check_peer_key_acceptable
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_peer_key_acceptable_rsa(Botan::RandomNumberGenerator&
      rng)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_tls_policy.cpp:79,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls_policy.cpp:80,1
    - Dst: std::make_unique<Botan::ECDH_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:81,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:84,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls_policy.cpp:85,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:87,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_tls_policy.cpp:91,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls_policy.cpp:92,1
    - Dst: std::make_unique<Botan::ECDH_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:93,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:94,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 99
    functionName: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdh
    functionSourceFile: /src/botan/src/tests/unit_tls_policy.cpp
    functionUses: 3
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - Test::Result::test_failure
    - Botan::EC_Group::from_name
    - Botan::TLS::Policy::check_peer_key_acceptable
    - Test::Result::test_success
    - std::make_unique<Botan::ECDH_PrivateKey>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_peer_key_acceptable_ecdh(Botan::RandomNumberGenerator&
      rng)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_tls_policy.cpp:106,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls_policy.cpp:107,1
    - Dst: std::make_unique<Botan::ECDSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:108,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:111,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls_policy.cpp:112,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:114,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_tls_policy.cpp:118,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls_policy.cpp:119,1
    - Dst: std::make_unique<Botan::ECDSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:120,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:121,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 126
    functionName: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdsa
    functionSourceFile: /src/botan/src/tests/unit_tls_policy.cpp
    functionUses: 3
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - Test::Result::test_failure
    - Botan::EC_Group::from_name
    - Botan::TLS::Policy::check_peer_key_acceptable
    - std::make_unique<Botan::ECDSA_PrivateKey>
    - Test::Result::test_success
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_peer_key_acceptable_ecdsa(Botan::RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::DH_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:135,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:139,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls_policy.cpp:140,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 146
    functionName: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_dh
    functionSourceFile: /src/botan/src/tests/unit_tls_policy.cpp
    functionUses: 3
    functionsReached:
    - Test::Result::test_success
    - Test::Result::test_failure
    - std::make_unique<Botan::DH_PrivateKey>
    - Botan::TLS::Policy::check_peer_key_acceptable
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_peer_key_acceptable_dh()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_tls_policy.cpp:152,1
    - Dst: Botan::TLS::Policy::key_exchange_groups_to_offer
      Src: /src/botan/src/tests/unit_tls_policy.cpp:153,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_tls_policy.cpp:154,1
    - Dst: Botan::TLS::Policy::key_exchange_groups
      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:156,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_tls_policy.cpp:160,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:160,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_tls_policy.cpp:161,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:162,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:162,1
    - Dst: Test::Result::confirm
      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_eq
      Src: /src/botan/src/tests/unit_tls_policy.cpp:168,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:168,1
    - Dst: Test::Result::confirm
      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::confirm
      Src: /src/botan/src/tests/unit_tls_policy.cpp:171,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 175
    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_to_offer
    - Test::Result::test_eq
    - Test::Result::confirm
    - TP
    - Botan::TLS::Policy::key_exchange_groups
    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:43,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_rsa
      Src: /src/botan/src/tests/unit_tls_policy.cpp:43,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::rng
      Src: /src/botan/src/tests/unit_tls_policy.cpp:43,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls_policy.cpp:44,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdh
      Src: /src/botan/src/tests/unit_tls_policy.cpp:44,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::rng
      Src: /src/botan/src/tests/unit_tls_policy.cpp:44,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls_policy.cpp:45,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdsa
      Src: /src/botan/src/tests/unit_tls_policy.cpp:45,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::rng
      Src: /src/botan/src/tests/unit_tls_policy.cpp:45,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls_policy.cpp:46,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_dh
      Src: /src/botan/src/tests/unit_tls_policy.cpp:46,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/unit_tls_policy.cpp:47,1
    - Dst: Botan_Tests::TLS_Policy_Unit_Tests::test_key_exchange_groups_to_offer
      Src: /src/botan/src/tests/unit_tls_policy.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 50
    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_key_exchange_groups_to_offer
    - std::vector::push_back
    - Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_rsa
    - Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdh
    - Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdsa
    - Botan_Tests::TLS_Policy_Unit_Tests::rng
    - Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_dh
    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:56,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:60,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls_policy.cpp:61,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:63,1
    - Dst: std::make_unique<Botan::RSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:66,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:67,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 71
    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_failure
    - Test::Result::test_success
    - Botan::TLS::Policy::check_peer_key_acceptable
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_peer_key_acceptable_rsa(Botan::RandomNumberGenerator&
      rng)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_tls_policy.cpp:79,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls_policy.cpp:80,1
    - Dst: std::make_unique<Botan::ECDH_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:81,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:84,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls_policy.cpp:85,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:87,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_tls_policy.cpp:91,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls_policy.cpp:92,1
    - Dst: std::make_unique<Botan::ECDH_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:93,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:94,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 99
    functionName: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdh
    functionSourceFile: /src/botan/src/tests/unit_tls_policy.cpp
    functionUses: 4
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - Test::Result::test_failure
    - Botan::EC_Group::from_name
    - Botan::TLS::Policy::check_peer_key_acceptable
    - Test::Result::test_success
    - std::make_unique<Botan::ECDH_PrivateKey>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_peer_key_acceptable_ecdh(Botan::RandomNumberGenerator&
      rng)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_tls_policy.cpp:106,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls_policy.cpp:107,1
    - Dst: std::make_unique<Botan::ECDSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:108,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:111,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls_policy.cpp:112,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:114,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/unit_tls_policy.cpp:118,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/unit_tls_policy.cpp:119,1
    - Dst: std::make_unique<Botan::ECDSA_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:120,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:121,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:122,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 126
    functionName: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_ecdsa
    functionSourceFile: /src/botan/src/tests/unit_tls_policy.cpp
    functionUses: 4
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - Test::Result::test_failure
    - Botan::EC_Group::from_name
    - Botan::TLS::Policy::check_peer_key_acceptable
    - std::make_unique<Botan::ECDSA_PrivateKey>
    - Test::Result::test_success
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_peer_key_acceptable_ecdsa(Botan::RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Botan::DH_PrivateKey>
      Src: /src/botan/src/tests/unit_tls_policy.cpp:135,1
    - Dst: Botan::TLS::Policy::check_peer_key_acceptable
      Src: /src/botan/src/tests/unit_tls_policy.cpp:139,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/unit_tls_policy.cpp:140,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/unit_tls_policy.cpp:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 146
    functionName: Botan_Tests::TLS_Policy_Unit_Tests::test_peer_key_acceptable_dh
    functionSourceFile: /src/botan/src/tests/unit_tls_policy.cpp
    functionUses: 4
    functionsReached:
    - Test::Result::test_success
    - Test::Result::test_failure
    - std::make_unique<Botan::DH_PrivateKey>
    - Botan::TLS::Policy::check_peer_key_acceptable
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_peer_key_acceptable_dh()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_tls_policy.cpp:152,1
    - Dst: Botan::TLS::Policy::key_exchange_groups_to_offer
      Src: /src/botan/src/tests/unit_tls_policy.cpp:153,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_tls_policy.cpp:154,1
    - Dst: Botan::TLS::Policy::key_exchange_groups
      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:156,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/unit_tls_policy.cpp:160,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:160,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/unit_tls_policy.cpp:161,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:162,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:162,1
    - Dst: Test::Result::confirm
      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_eq
      Src: /src/botan/src/tests/unit_tls_policy.cpp:168,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:168,1
    - Dst: Test::Result::confirm
      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::confirm
      Src: /src/botan/src/tests/unit_tls_policy.cpp:171,1
    - Dst: TP
      Src: /src/botan/src/tests/unit_tls_policy.cpp:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 175
    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_to_offer
    - Test::Result::test_eq
    - Test::Result::confirm
    - TP
    - Botan::TLS::Policy::key_exchange_groups
    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:52,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:56,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:57,1
    - Dst: Botan::TLS::Client_Handshake_State_13::sending
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:63,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:63,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:64,1
    - Dst: Botan::TLS::Client_Handshake_State_13::server_finished
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:64,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:65,1
    - Dst: Botan::TLS::Client_Handshake_State_13::client_finished
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:66,1
    - Dst: Botan::TLS::Client_Handshake_State_13::received
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:70,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:70,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:71,1
    - Dst: std::holds_alternative<std::reference_wrapper<Botan::TLS::Finished_13>>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:72,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:73,1
    - Dst: Botan::TLS::Client_Handshake_State_13::client_finished
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:74,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:75,1
    - Dst: Botan::TLS::Client_Handshake_State_13::server_finished
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 50
    functionDepth: 3
    functionLinenumber: 50
    functionLinenumberEnd: 79
    functionName: Botan_Tests::finished_message_handling
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_state_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - std::move
    - test_eq
    - Botan::TLS::Client_Handshake_State_13::client_finished
    - Botan_Tests::CHECK
    - test_throws
    - Botan::TLS::Client_Handshake_State_13::server_finished
    - require
    - Botan::TLS::Client_Handshake_State_13::sending
    - std::holds_alternative<std::reference_wrapper<Botan::TLS::Finished_13>>
    - Botan::TLS::Client_Handshake_State_13::received
    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:83,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:87,1
    - Dst: std::get<Botan::TLS::Client_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:90,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:90,1
    - Dst: Botan::TLS::Client_Handshake_State_13::sending
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:94,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:94,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:95,1
    - Dst: Botan::TLS::Client_Handshake_State_13::client_hello
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:95,1
    - Dst: template test_throws<Botan::TLS::TLS_Exception>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:97,1
    - Dst: std::get<Botan::TLS::Client_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:100,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:100,1
    - Dst: Botan::TLS::Client_Handshake_State_13::received
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:101,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:101,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:104,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:108,1
    - Dst: std::get<Botan::TLS::Server_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:111,1
    - Dst: Botan::TLS::Server_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:111,1
    - Dst: Botan::TLS::Client_Handshake_State_13::received
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:113,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:113,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:114,1
    - Dst: std::holds_alternative<std::reference_wrapper<Botan::TLS::Server_Hello_13>>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:115,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:117,1
    - Dst: Botan::TLS::Client_Handshake_State_13::server_hello
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 81
    functionDepth: 3
    functionLinenumber: 81
    functionLinenumberEnd: 120
    functionName: Botan_Tests::handshake_message_filtering
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_state_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - std::move
    - test_eq
    - Botan::TLS::Client_Hello_13::parse
    - Botan_Tests::CHECK
    - confirm
    - std::get<Botan::TLS::Server_Hello_13>
    - template test_throws<Botan::TLS::TLS_Exception>
    - Botan::TLS::Server_Hello_13::parse
    - Botan::TLS::Client_Handshake_State_13::sending
    - Botan::TLS::Client_Handshake_State_13::server_hello
    - std::holds_alternative<std::reference_wrapper<Botan::TLS::Server_Hello_13>>
    - std::get<Botan::TLS::Client_Hello_13>
    - Botan::TLS::Client_Handshake_State_13::received
    - Botan::TLS::Client_Handshake_State_13::client_hello
    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:52,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:56,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:57,1
    - Dst: Botan::TLS::Client_Handshake_State_13::sending
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:63,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:63,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:64,1
    - Dst: Botan::TLS::Client_Handshake_State_13::server_finished
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:64,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:65,1
    - Dst: Botan::TLS::Client_Handshake_State_13::client_finished
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:66,1
    - Dst: Botan::TLS::Client_Handshake_State_13::received
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:70,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:70,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:71,1
    - Dst: std::holds_alternative<std::reference_wrapper<Botan::TLS::Finished_13>>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:72,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:73,1
    - Dst: Botan::TLS::Client_Handshake_State_13::client_finished
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:74,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:75,1
    - Dst: Botan::TLS::Client_Handshake_State_13::server_finished
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 50
    functionDepth: 3
    functionLinenumber: 50
    functionLinenumberEnd: 79
    functionName: Botan_Tests::finished_message_handling
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_state_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - std::move
    - test_eq
    - Botan::TLS::Client_Handshake_State_13::client_finished
    - Botan_Tests::CHECK
    - test_throws
    - Botan::TLS::Client_Handshake_State_13::server_finished
    - require
    - Botan::TLS::Client_Handshake_State_13::sending
    - std::holds_alternative<std::reference_wrapper<Botan::TLS::Finished_13>>
    - Botan::TLS::Client_Handshake_State_13::received
    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:83,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:87,1
    - Dst: std::get<Botan::TLS::Client_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:90,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:90,1
    - Dst: Botan::TLS::Client_Handshake_State_13::sending
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:94,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:94,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:95,1
    - Dst: Botan::TLS::Client_Handshake_State_13::client_hello
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:95,1
    - Dst: template test_throws<Botan::TLS::TLS_Exception>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:97,1
    - Dst: std::get<Botan::TLS::Client_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:100,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:100,1
    - Dst: Botan::TLS::Client_Handshake_State_13::received
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:101,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:101,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:104,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:108,1
    - Dst: std::get<Botan::TLS::Server_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:111,1
    - Dst: Botan::TLS::Server_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:111,1
    - Dst: Botan::TLS::Client_Handshake_State_13::received
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:113,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:113,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:114,1
    - Dst: std::holds_alternative<std::reference_wrapper<Botan::TLS::Server_Hello_13>>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:115,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:117,1
    - Dst: Botan::TLS::Client_Handshake_State_13::server_hello
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 81
    functionDepth: 3
    functionLinenumber: 81
    functionLinenumberEnd: 120
    functionName: Botan_Tests::handshake_message_filtering
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_state_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - std::move
    - test_eq
    - Botan::TLS::Client_Hello_13::parse
    - Botan_Tests::CHECK
    - confirm
    - std::get<Botan::TLS::Server_Hello_13>
    - template test_throws<Botan::TLS::TLS_Exception>
    - Botan::TLS::Server_Hello_13::parse
    - Botan::TLS::Client_Handshake_State_13::sending
    - Botan::TLS::Client_Handshake_State_13::server_hello
    - std::holds_alternative<std::reference_wrapper<Botan::TLS::Server_Hello_13>>
    - std::get<Botan::TLS::Client_Hello_13>
    - Botan::TLS::Client_Handshake_State_13::received
    - Botan::TLS::Client_Handshake_State_13::client_hello
    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:52,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:56,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:57,1
    - Dst: Botan::TLS::Client_Handshake_State_13::sending
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:63,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:63,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:64,1
    - Dst: Botan::TLS::Client_Handshake_State_13::server_finished
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:64,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:65,1
    - Dst: Botan::TLS::Client_Handshake_State_13::client_finished
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:66,1
    - Dst: Botan::TLS::Client_Handshake_State_13::received
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:70,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:70,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:71,1
    - Dst: std::holds_alternative<std::reference_wrapper<Botan::TLS::Finished_13>>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:72,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:73,1
    - Dst: Botan::TLS::Client_Handshake_State_13::client_finished
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:74,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:75,1
    - Dst: Botan::TLS::Client_Handshake_State_13::server_finished
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 50
    functionDepth: 3
    functionLinenumber: 50
    functionLinenumberEnd: 79
    functionName: Botan_Tests::finished_message_handling
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_state_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - std::move
    - test_eq
    - Botan::TLS::Client_Handshake_State_13::client_finished
    - Botan_Tests::CHECK
    - test_throws
    - Botan::TLS::Client_Handshake_State_13::server_finished
    - require
    - Botan::TLS::Client_Handshake_State_13::sending
    - std::holds_alternative<std::reference_wrapper<Botan::TLS::Finished_13>>
    - Botan::TLS::Client_Handshake_State_13::received
    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:83,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:87,1
    - Dst: std::get<Botan::TLS::Client_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:90,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:90,1
    - Dst: Botan::TLS::Client_Handshake_State_13::sending
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:94,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:94,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:95,1
    - Dst: Botan::TLS::Client_Handshake_State_13::client_hello
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:95,1
    - Dst: template test_throws<Botan::TLS::TLS_Exception>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:97,1
    - Dst: std::get<Botan::TLS::Client_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:100,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:100,1
    - Dst: Botan::TLS::Client_Handshake_State_13::received
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:101,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:101,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:104,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:108,1
    - Dst: std::get<Botan::TLS::Server_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:111,1
    - Dst: Botan::TLS::Server_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:111,1
    - Dst: Botan::TLS::Client_Handshake_State_13::received
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:113,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:113,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:114,1
    - Dst: std::holds_alternative<std::reference_wrapper<Botan::TLS::Server_Hello_13>>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:115,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:117,1
    - Dst: Botan::TLS::Client_Handshake_State_13::server_hello
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 81
    functionDepth: 3
    functionLinenumber: 81
    functionLinenumberEnd: 120
    functionName: Botan_Tests::handshake_message_filtering
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_state_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - std::move
    - test_eq
    - Botan::TLS::Client_Hello_13::parse
    - Botan_Tests::CHECK
    - confirm
    - std::get<Botan::TLS::Server_Hello_13>
    - template test_throws<Botan::TLS::TLS_Exception>
    - Botan::TLS::Server_Hello_13::parse
    - Botan::TLS::Client_Handshake_State_13::sending
    - Botan::TLS::Client_Handshake_State_13::server_hello
    - std::holds_alternative<std::reference_wrapper<Botan::TLS::Server_Hello_13>>
    - std::get<Botan::TLS::Client_Hello_13>
    - Botan::TLS::Client_Handshake_State_13::received
    - Botan::TLS::Client_Handshake_State_13::client_hello
    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:52,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:56,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:57,1
    - Dst: Botan::TLS::Client_Handshake_State_13::sending
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:63,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:63,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:64,1
    - Dst: Botan::TLS::Client_Handshake_State_13::server_finished
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:64,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:65,1
    - Dst: Botan::TLS::Client_Handshake_State_13::client_finished
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:66,1
    - Dst: Botan::TLS::Client_Handshake_State_13::received
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:70,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:70,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:71,1
    - Dst: std::holds_alternative<std::reference_wrapper<Botan::TLS::Finished_13>>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:72,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:73,1
    - Dst: Botan::TLS::Client_Handshake_State_13::client_finished
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:74,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:75,1
    - Dst: Botan::TLS::Client_Handshake_State_13::server_finished
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 50
    functionDepth: 3
    functionLinenumber: 50
    functionLinenumberEnd: 79
    functionName: Botan_Tests::finished_message_handling
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_state_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - std::move
    - test_eq
    - Botan::TLS::Client_Handshake_State_13::client_finished
    - Botan_Tests::CHECK
    - test_throws
    - Botan::TLS::Client_Handshake_State_13::server_finished
    - require
    - Botan::TLS::Client_Handshake_State_13::sending
    - std::holds_alternative<std::reference_wrapper<Botan::TLS::Finished_13>>
    - Botan::TLS::Client_Handshake_State_13::received
    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:83,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:87,1
    - Dst: std::get<Botan::TLS::Client_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:90,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:90,1
    - Dst: Botan::TLS::Client_Handshake_State_13::sending
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:94,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:94,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:95,1
    - Dst: Botan::TLS::Client_Handshake_State_13::client_hello
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:95,1
    - Dst: template test_throws<Botan::TLS::TLS_Exception>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:97,1
    - Dst: std::get<Botan::TLS::Client_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:100,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:100,1
    - Dst: Botan::TLS::Client_Handshake_State_13::received
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:101,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:101,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:104,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:108,1
    - Dst: std::get<Botan::TLS::Server_Hello_13>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:111,1
    - Dst: Botan::TLS::Server_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:111,1
    - Dst: Botan::TLS::Client_Handshake_State_13::received
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:113,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:113,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:114,1
    - Dst: std::holds_alternative<std::reference_wrapper<Botan::TLS::Server_Hello_13>>
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:115,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:117,1
    - Dst: Botan::TLS::Client_Handshake_State_13::server_hello
      Src: /src/botan/src/tests/test_tls_handshake_state_13.cpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 81
    functionDepth: 3
    functionLinenumber: 81
    functionLinenumberEnd: 120
    functionName: Botan_Tests::handshake_message_filtering
    functionSourceFile: /src/botan/src/tests/test_tls_handshake_state_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - std::move
    - test_eq
    - Botan::TLS::Client_Hello_13::parse
    - Botan_Tests::CHECK
    - confirm
    - std::get<Botan::TLS::Server_Hello_13>
    - template test_throws<Botan::TLS::TLS_Exception>
    - Botan::TLS::Server_Hello_13::parse
    - Botan::TLS::Client_Handshake_State_13::sending
    - Botan::TLS::Client_Handshake_State_13::server_hello
    - std::holds_alternative<std::reference_wrapper<Botan::TLS::Server_Hello_13>>
    - std::get<Botan::TLS::Client_Hello_13>
    - Botan::TLS::Client_Handshake_State_13::received
    - Botan::TLS::Client_Handshake_State_13::client_hello
    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:24,1
    - 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: std::make_unique<Botan::RSA_PrivateKey>
      Src: /src/botan/src/tests/test_rsa.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 29
    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:32,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_rsa.cpp:33,1
    - Dst: std::make_unique<Botan::RSA_PublicKey>
      Src: /src/botan/src/tests/test_rsa.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    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: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    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:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    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: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    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: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    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:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    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: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    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:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    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: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    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: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    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:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    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: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    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:85,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_rsa.cpp:86,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_rsa.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: Botan_Tests::RSA_PSS_KAT_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - Botan::fmt
    - 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: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    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:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 94
    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: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    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:103,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_rsa.cpp:104,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_rsa.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: Botan_Tests::RSA_PSS_Raw_KAT_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - Botan::fmt
    - 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: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    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: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::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: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    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: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    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:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 124
    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: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    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: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    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:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 136
    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: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    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: 148
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 148
    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: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    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: 155
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 155
    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:172,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rsa.cpp:174,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rsa.cpp:175,1
    - Dst: what
      Src: /src/botan/src/tests/test_rsa.cpp:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 179
    functionName: Botan_Tests::RSA_Keygen_Bad_RNG_Test::run
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_failure
    - Test::Result::test_success
    - what
    - Test::Result::test_eq
    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:188,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_rsa.cpp:189,1
    - Dst: Botan_Tests::RSA_Blinding_Tests::rng
      Src: /src/botan/src/tests/test_rsa.cpp:194,1
    - Dst: Botan_Tests::RSA_Blinding_Tests::rng
      Src: /src/botan/src/tests/test_rsa.cpp:209,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rsa.cpp:214,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_rsa.cpp:214,1
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/tests/test_rsa.cpp:216,1
    - Dst: Botan::PK_Signer::signature
      Src: /src/botan/src/tests/test_rsa.cpp:219,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rsa.cpp:221,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_rsa.cpp:221,1
    - Dst: Botan_Tests::RSA_Blinding_Tests::rng
      Src: /src/botan/src/tests/test_rsa.cpp:235,1
    - Dst: Botan::RSA_PrivateKey::get_n
      Src: /src/botan/src/tests/test_rsa.cpp:244,1
    - Dst: Botan_Tests::RSA_Blinding_Tests::rng
      Src: /src/botan/src/tests/test_rsa.cpp:246,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rsa.cpp:251,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_rsa.cpp:251,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_rsa.cpp:253,1
    - Dst: Botan::unlock
      Src: /src/botan/src/tests/test_rsa.cpp:255,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_rsa.cpp:255,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_rsa.cpp:256,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_rsa.cpp:256,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rsa.cpp:256,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rsa.cpp:258,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rsa.cpp:261,1
    - Dst: Fixed_Output_RNG::is_seeded
      Src: /src/botan/src/tests/test_rsa.cpp:261,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rsa.cpp:264,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_rsa.cpp:268,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_rsa.cpp:268,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_rsa.cpp:269,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 275
    functionName: Botan_Tests::RSA_Blinding_Tests::run
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - Botan_Tests::RSA_Blinding_Tests::rng
    - Test::Result::note_missing
    - Botan::unlock
    - Botan::PK_Signer::update
    - Fixed_Output_RNG::is_seeded
    - Test::Result::test_throws
    - Botan::RSA_PrivateKey::get_n
    - Botan::PK_Decryptor_EME::decrypt
    - static_cast<uint8_t>
    - Botan::PK_Verifier::verify_message
    - Botan::PK_Signer::signature
    - Botan::PK_Encryptor_EME::encrypt
    - Test::Result::test_eq
    - std::vector<uint8_t>
    - std::vector::size
    - provider_filter
    - std::vector::insert
    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:292,1
    - Dst: rng
      Src: /src/botan/src/tests/test_rsa.cpp:292,1
    - Dst: Botan_Tests::test_decrypt_or_random
      Src: /src/botan/src/tests/test_rsa.cpp:297,1
    - Dst: rng
      Src: /src/botan/src/tests/test_rsa.cpp:297,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_rsa.cpp:298,1
    - Dst: public_key
      Src: /src/botan/src/tests/test_rsa.cpp:311,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_rsa.cpp:312,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_rsa.cpp:315,1
    - Dst: auto::get_int_field
      Src: /src/botan/src/tests/test_rsa.cpp:319,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/tests/test_rsa.cpp:322,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_rsa.cpp:322,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_rsa.cpp:322,1
    - Dst: Botan::PK_Decryptor_EME::decrypt_or_random
      Src: /src/botan/src/tests/test_rsa.cpp:324,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_rsa.cpp:324,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_rsa.cpp:324,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rsa.cpp:326,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_rsa.cpp:326,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_rsa.cpp:337,1
    - Dst: Botan::PK_Decryptor_EME::decrypt_or_random
      Src: /src/botan/src/tests/test_rsa.cpp:342,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_rsa.cpp:343,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_rsa.cpp:343,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rsa.cpp:343,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rsa.cpp:343,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rsa.cpp:345,1
    - Dst: Botan_Tests::Test::random_index
      Src: /src/botan/src/tests/test_rsa.cpp:355,1
    - Dst: next_nonzero_byte
      Src: /src/botan/src/tests/test_rsa.cpp:356,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_rsa.cpp:359,1
    - Dst: Botan::PK_Decryptor_EME::decrypt_or_random
      Src: /src/botan/src/tests/test_rsa.cpp:369,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_rsa.cpp:370,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_rsa.cpp:370,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rsa.cpp:370,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rsa.cpp:370,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_rsa.cpp:372,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_rsa.cpp:375,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: 379
      start: 278
    functionDepth: 2
    functionLinenumber: 278
    functionLinenumberEnd: 379
    functionName: Botan_Tests::test_decrypt_or_random
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 1
    functionsReached:
    - next_nonzero_byte
    - push_back
    - auto::get_int_field
    - auto::size
    - Botan::BigInt::from_bytes
    - public_key
    - Botan::RSA_PrivateKey::RSA_PrivateKey
    - Botan_Tests::test_decrypt_or_random
    - rng
    - Test::Result::test_ne
    - Botan_Tests::Test::random_index
    - std::vector::data
    - auto::data
    - next_byte
    - mutate_vec
    - Botan::PK_Decryptor_EME::decrypt_or_random
    - Botan::PK_Encryptor_EME::encrypt
    - Test::Result::test_eq
    - random_vec
    - Test::Result::confirm
    - serialize
    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: 288
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 288
    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:297,1
    - Dst: rng
      Src: /src/botan/src/tests/test_rsa.cpp:297,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_rsa.cpp:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' padding : padding_schemes'
    argTypes:
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 299
    functionName: Botan_Tests::RSA_DecryptOrRandom_Tests::for
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - rng
    - test_decrypt_or_random
    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:24,1
    - 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: std::make_unique<Botan::RSA_PrivateKey>
      Src: /src/botan/src/tests/test_rsa.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 29
    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:32,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_rsa.cpp:33,1
    - Dst: std::make_unique<Botan::RSA_PublicKey>
      Src: /src/botan/src/tests/test_rsa.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    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: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    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:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    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: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    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: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    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:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    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: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    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:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    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: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    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: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    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:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    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: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    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:85,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_rsa.cpp:86,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_rsa.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: Botan_Tests::RSA_PSS_KAT_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - Botan::fmt
    - 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: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    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:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 94
    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: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    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:103,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_rsa.cpp:104,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_rsa.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: Botan_Tests::RSA_PSS_Raw_KAT_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - Botan::fmt
    - 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: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    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: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::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: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    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: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    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:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 124
    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: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    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: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    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:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 136
    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: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    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: 148
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 148
    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: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    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: 155
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 155
    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:172,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rsa.cpp:174,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rsa.cpp:175,1
    - Dst: what
      Src: /src/botan/src/tests/test_rsa.cpp:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 179
    functionName: Botan_Tests::RSA_Keygen_Bad_RNG_Test::run
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_failure
    - Test::Result::test_success
    - what
    - Test::Result::test_eq
    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:188,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_rsa.cpp:189,1
    - Dst: Botan_Tests::RSA_Blinding_Tests::rng
      Src: /src/botan/src/tests/test_rsa.cpp:194,1
    - Dst: Botan_Tests::RSA_Blinding_Tests::rng
      Src: /src/botan/src/tests/test_rsa.cpp:209,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rsa.cpp:214,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_rsa.cpp:214,1
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/tests/test_rsa.cpp:216,1
    - Dst: Botan::PK_Signer::signature
      Src: /src/botan/src/tests/test_rsa.cpp:219,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rsa.cpp:221,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_rsa.cpp:221,1
    - Dst: Botan_Tests::RSA_Blinding_Tests::rng
      Src: /src/botan/src/tests/test_rsa.cpp:235,1
    - Dst: Botan::RSA_PrivateKey::get_n
      Src: /src/botan/src/tests/test_rsa.cpp:244,1
    - Dst: Botan_Tests::RSA_Blinding_Tests::rng
      Src: /src/botan/src/tests/test_rsa.cpp:246,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rsa.cpp:251,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_rsa.cpp:251,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_rsa.cpp:253,1
    - Dst: Botan::unlock
      Src: /src/botan/src/tests/test_rsa.cpp:255,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_rsa.cpp:255,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_rsa.cpp:256,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_rsa.cpp:256,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rsa.cpp:256,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rsa.cpp:258,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rsa.cpp:261,1
    - Dst: Fixed_Output_RNG::is_seeded
      Src: /src/botan/src/tests/test_rsa.cpp:261,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rsa.cpp:264,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_rsa.cpp:268,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_rsa.cpp:268,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_rsa.cpp:269,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 275
    functionName: Botan_Tests::RSA_Blinding_Tests::run
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - Botan_Tests::RSA_Blinding_Tests::rng
    - Test::Result::note_missing
    - Botan::unlock
    - Botan::PK_Signer::update
    - Fixed_Output_RNG::is_seeded
    - Test::Result::test_throws
    - Botan::RSA_PrivateKey::get_n
    - Botan::PK_Decryptor_EME::decrypt
    - static_cast<uint8_t>
    - Botan::PK_Verifier::verify_message
    - Botan::PK_Signer::signature
    - Botan::PK_Encryptor_EME::encrypt
    - Test::Result::test_eq
    - std::vector<uint8_t>
    - std::vector::size
    - provider_filter
    - std::vector::insert
    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:292,1
    - Dst: rng
      Src: /src/botan/src/tests/test_rsa.cpp:292,1
    - Dst: Botan_Tests::test_decrypt_or_random
      Src: /src/botan/src/tests/test_rsa.cpp:297,1
    - Dst: rng
      Src: /src/botan/src/tests/test_rsa.cpp:297,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_rsa.cpp:298,1
    - Dst: public_key
      Src: /src/botan/src/tests/test_rsa.cpp:311,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_rsa.cpp:312,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_rsa.cpp:315,1
    - Dst: auto::get_int_field
      Src: /src/botan/src/tests/test_rsa.cpp:319,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/tests/test_rsa.cpp:322,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_rsa.cpp:322,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_rsa.cpp:322,1
    - Dst: Botan::PK_Decryptor_EME::decrypt_or_random
      Src: /src/botan/src/tests/test_rsa.cpp:324,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_rsa.cpp:324,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_rsa.cpp:324,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rsa.cpp:326,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_rsa.cpp:326,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_rsa.cpp:337,1
    - Dst: Botan::PK_Decryptor_EME::decrypt_or_random
      Src: /src/botan/src/tests/test_rsa.cpp:342,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_rsa.cpp:343,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_rsa.cpp:343,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rsa.cpp:343,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rsa.cpp:343,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rsa.cpp:345,1
    - Dst: Botan_Tests::Test::random_index
      Src: /src/botan/src/tests/test_rsa.cpp:355,1
    - Dst: next_nonzero_byte
      Src: /src/botan/src/tests/test_rsa.cpp:356,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_rsa.cpp:359,1
    - Dst: Botan::PK_Decryptor_EME::decrypt_or_random
      Src: /src/botan/src/tests/test_rsa.cpp:369,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_rsa.cpp:370,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_rsa.cpp:370,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rsa.cpp:370,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rsa.cpp:370,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_rsa.cpp:372,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_rsa.cpp:375,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: 379
      start: 278
    functionDepth: 2
    functionLinenumber: 278
    functionLinenumberEnd: 379
    functionName: Botan_Tests::test_decrypt_or_random
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 2
    functionsReached:
    - next_nonzero_byte
    - push_back
    - auto::get_int_field
    - auto::size
    - Botan::BigInt::from_bytes
    - public_key
    - Botan::RSA_PrivateKey::RSA_PrivateKey
    - Botan_Tests::test_decrypt_or_random
    - rng
    - Test::Result::test_ne
    - Botan_Tests::Test::random_index
    - std::vector::data
    - auto::data
    - next_byte
    - mutate_vec
    - Botan::PK_Decryptor_EME::decrypt_or_random
    - Botan::PK_Encryptor_EME::encrypt
    - Test::Result::test_eq
    - random_vec
    - Test::Result::confirm
    - serialize
    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: 288
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 288
    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:297,1
    - Dst: rng
      Src: /src/botan/src/tests/test_rsa.cpp:297,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_rsa.cpp:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' padding : padding_schemes'
    argTypes:
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 299
    functionName: Botan_Tests::RSA_DecryptOrRandom_Tests::for
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - rng
    - test_decrypt_or_random
    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:24,1
    - 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: std::make_unique<Botan::RSA_PrivateKey>
      Src: /src/botan/src/tests/test_rsa.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 29
    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:32,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_rsa.cpp:33,1
    - Dst: std::make_unique<Botan::RSA_PublicKey>
      Src: /src/botan/src/tests/test_rsa.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    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: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    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:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    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: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    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: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    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:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    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: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    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:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    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: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    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: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    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:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    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: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    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:85,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_rsa.cpp:86,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_rsa.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: Botan_Tests::RSA_PSS_KAT_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - Botan::fmt
    - 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: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    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:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 94
    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: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    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:103,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_rsa.cpp:104,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_rsa.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: Botan_Tests::RSA_PSS_Raw_KAT_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - Botan::fmt
    - 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: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    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: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::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: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    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: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    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:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 124
    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: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    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: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    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:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 136
    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: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    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: 148
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 148
    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: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    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: 155
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 155
    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:172,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rsa.cpp:174,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rsa.cpp:175,1
    - Dst: what
      Src: /src/botan/src/tests/test_rsa.cpp:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 179
    functionName: Botan_Tests::RSA_Keygen_Bad_RNG_Test::run
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_failure
    - Test::Result::test_success
    - what
    - Test::Result::test_eq
    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:188,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_rsa.cpp:189,1
    - Dst: Botan_Tests::RSA_Blinding_Tests::rng
      Src: /src/botan/src/tests/test_rsa.cpp:194,1
    - Dst: Botan_Tests::RSA_Blinding_Tests::rng
      Src: /src/botan/src/tests/test_rsa.cpp:209,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rsa.cpp:214,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_rsa.cpp:214,1
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/tests/test_rsa.cpp:216,1
    - Dst: Botan::PK_Signer::signature
      Src: /src/botan/src/tests/test_rsa.cpp:219,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rsa.cpp:221,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_rsa.cpp:221,1
    - Dst: Botan_Tests::RSA_Blinding_Tests::rng
      Src: /src/botan/src/tests/test_rsa.cpp:235,1
    - Dst: Botan::RSA_PrivateKey::get_n
      Src: /src/botan/src/tests/test_rsa.cpp:244,1
    - Dst: Botan_Tests::RSA_Blinding_Tests::rng
      Src: /src/botan/src/tests/test_rsa.cpp:246,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rsa.cpp:251,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_rsa.cpp:251,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_rsa.cpp:253,1
    - Dst: Botan::unlock
      Src: /src/botan/src/tests/test_rsa.cpp:255,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_rsa.cpp:255,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_rsa.cpp:256,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_rsa.cpp:256,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rsa.cpp:256,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rsa.cpp:258,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rsa.cpp:261,1
    - Dst: Fixed_Output_RNG::is_seeded
      Src: /src/botan/src/tests/test_rsa.cpp:261,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rsa.cpp:264,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_rsa.cpp:268,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_rsa.cpp:268,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_rsa.cpp:269,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 275
    functionName: Botan_Tests::RSA_Blinding_Tests::run
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - Botan_Tests::RSA_Blinding_Tests::rng
    - Test::Result::note_missing
    - Botan::unlock
    - Botan::PK_Signer::update
    - Fixed_Output_RNG::is_seeded
    - Test::Result::test_throws
    - Botan::RSA_PrivateKey::get_n
    - Botan::PK_Decryptor_EME::decrypt
    - static_cast<uint8_t>
    - Botan::PK_Verifier::verify_message
    - Botan::PK_Signer::signature
    - Botan::PK_Encryptor_EME::encrypt
    - Test::Result::test_eq
    - std::vector<uint8_t>
    - std::vector::size
    - provider_filter
    - std::vector::insert
    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:292,1
    - Dst: rng
      Src: /src/botan/src/tests/test_rsa.cpp:292,1
    - Dst: Botan_Tests::test_decrypt_or_random
      Src: /src/botan/src/tests/test_rsa.cpp:297,1
    - Dst: rng
      Src: /src/botan/src/tests/test_rsa.cpp:297,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_rsa.cpp:298,1
    - Dst: public_key
      Src: /src/botan/src/tests/test_rsa.cpp:311,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_rsa.cpp:312,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_rsa.cpp:315,1
    - Dst: auto::get_int_field
      Src: /src/botan/src/tests/test_rsa.cpp:319,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/tests/test_rsa.cpp:322,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_rsa.cpp:322,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_rsa.cpp:322,1
    - Dst: Botan::PK_Decryptor_EME::decrypt_or_random
      Src: /src/botan/src/tests/test_rsa.cpp:324,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_rsa.cpp:324,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_rsa.cpp:324,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rsa.cpp:326,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_rsa.cpp:326,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_rsa.cpp:337,1
    - Dst: Botan::PK_Decryptor_EME::decrypt_or_random
      Src: /src/botan/src/tests/test_rsa.cpp:342,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_rsa.cpp:343,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_rsa.cpp:343,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rsa.cpp:343,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rsa.cpp:343,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rsa.cpp:345,1
    - Dst: Botan_Tests::Test::random_index
      Src: /src/botan/src/tests/test_rsa.cpp:355,1
    - Dst: next_nonzero_byte
      Src: /src/botan/src/tests/test_rsa.cpp:356,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_rsa.cpp:359,1
    - Dst: Botan::PK_Decryptor_EME::decrypt_or_random
      Src: /src/botan/src/tests/test_rsa.cpp:369,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_rsa.cpp:370,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_rsa.cpp:370,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rsa.cpp:370,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rsa.cpp:370,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_rsa.cpp:372,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_rsa.cpp:375,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: 379
      start: 278
    functionDepth: 2
    functionLinenumber: 278
    functionLinenumberEnd: 379
    functionName: Botan_Tests::test_decrypt_or_random
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 3
    functionsReached:
    - next_nonzero_byte
    - push_back
    - auto::get_int_field
    - auto::size
    - Botan::BigInt::from_bytes
    - public_key
    - Botan::RSA_PrivateKey::RSA_PrivateKey
    - Botan_Tests::test_decrypt_or_random
    - rng
    - Test::Result::test_ne
    - Botan_Tests::Test::random_index
    - std::vector::data
    - auto::data
    - next_byte
    - mutate_vec
    - Botan::PK_Decryptor_EME::decrypt_or_random
    - Botan::PK_Encryptor_EME::encrypt
    - Test::Result::test_eq
    - random_vec
    - Test::Result::confirm
    - serialize
    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: 288
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 288
    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:297,1
    - Dst: rng
      Src: /src/botan/src/tests/test_rsa.cpp:297,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_rsa.cpp:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' padding : padding_schemes'
    argTypes:
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 299
    functionName: Botan_Tests::RSA_DecryptOrRandom_Tests::for
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - rng
    - test_decrypt_or_random
    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:24,1
    - 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: std::make_unique<Botan::RSA_PrivateKey>
      Src: /src/botan/src/tests/test_rsa.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 29
    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:32,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_rsa.cpp:33,1
    - Dst: std::make_unique<Botan::RSA_PublicKey>
      Src: /src/botan/src/tests/test_rsa.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    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: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    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:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    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: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    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: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    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:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    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: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    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:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    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: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    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: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    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:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    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: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    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:85,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_rsa.cpp:86,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_rsa.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: Botan_Tests::RSA_PSS_KAT_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - Botan::fmt
    - 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: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    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:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 94
    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: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    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:103,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_rsa.cpp:104,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_rsa.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: Botan_Tests::RSA_PSS_Raw_KAT_Tests::default_padding
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - Botan::fmt
    - 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: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    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: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::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: 118
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 118
    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: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    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:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 124
    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: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    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: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    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:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 136
    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: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    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: 148
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 148
    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: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    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: 155
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 155
    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:172,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_rsa.cpp:174,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rsa.cpp:175,1
    - Dst: what
      Src: /src/botan/src/tests/test_rsa.cpp:175,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 179
    functionName: Botan_Tests::RSA_Keygen_Bad_RNG_Test::run
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_failure
    - Test::Result::test_success
    - what
    - Test::Result::test_eq
    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:188,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_rsa.cpp:189,1
    - Dst: Botan_Tests::RSA_Blinding_Tests::rng
      Src: /src/botan/src/tests/test_rsa.cpp:194,1
    - Dst: Botan_Tests::RSA_Blinding_Tests::rng
      Src: /src/botan/src/tests/test_rsa.cpp:209,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rsa.cpp:214,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_rsa.cpp:214,1
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/tests/test_rsa.cpp:216,1
    - Dst: Botan::PK_Signer::signature
      Src: /src/botan/src/tests/test_rsa.cpp:219,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rsa.cpp:221,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_rsa.cpp:221,1
    - Dst: Botan_Tests::RSA_Blinding_Tests::rng
      Src: /src/botan/src/tests/test_rsa.cpp:235,1
    - Dst: Botan::RSA_PrivateKey::get_n
      Src: /src/botan/src/tests/test_rsa.cpp:244,1
    - Dst: Botan_Tests::RSA_Blinding_Tests::rng
      Src: /src/botan/src/tests/test_rsa.cpp:246,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rsa.cpp:251,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_rsa.cpp:251,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_rsa.cpp:253,1
    - Dst: Botan::unlock
      Src: /src/botan/src/tests/test_rsa.cpp:255,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_rsa.cpp:255,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_rsa.cpp:256,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_rsa.cpp:256,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_rsa.cpp:256,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rsa.cpp:258,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rsa.cpp:261,1
    - Dst: Fixed_Output_RNG::is_seeded
      Src: /src/botan/src/tests/test_rsa.cpp:261,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_rsa.cpp:264,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_rsa.cpp:268,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_rsa.cpp:268,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_rsa.cpp:269,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 275
    functionName: Botan_Tests::RSA_Blinding_Tests::run
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - Botan_Tests::RSA_Blinding_Tests::rng
    - Test::Result::note_missing
    - Botan::unlock
    - Botan::PK_Signer::update
    - Fixed_Output_RNG::is_seeded
    - Test::Result::test_throws
    - Botan::RSA_PrivateKey::get_n
    - Botan::PK_Decryptor_EME::decrypt
    - static_cast<uint8_t>
    - Botan::PK_Verifier::verify_message
    - Botan::PK_Signer::signature
    - Botan::PK_Encryptor_EME::encrypt
    - Test::Result::test_eq
    - std::vector<uint8_t>
    - std::vector::size
    - provider_filter
    - std::vector::insert
    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:292,1
    - Dst: rng
      Src: /src/botan/src/tests/test_rsa.cpp:292,1
    - Dst: Botan_Tests::test_decrypt_or_random
      Src: /src/botan/src/tests/test_rsa.cpp:297,1
    - Dst: rng
      Src: /src/botan/src/tests/test_rsa.cpp:297,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_rsa.cpp:298,1
    - Dst: public_key
      Src: /src/botan/src/tests/test_rsa.cpp:311,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_rsa.cpp:312,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_rsa.cpp:315,1
    - Dst: auto::get_int_field
      Src: /src/botan/src/tests/test_rsa.cpp:319,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/tests/test_rsa.cpp:322,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_rsa.cpp:322,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_rsa.cpp:322,1
    - Dst: Botan::PK_Decryptor_EME::decrypt_or_random
      Src: /src/botan/src/tests/test_rsa.cpp:324,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_rsa.cpp:324,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_rsa.cpp:324,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rsa.cpp:326,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_rsa.cpp:326,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_rsa.cpp:337,1
    - Dst: Botan::PK_Decryptor_EME::decrypt_or_random
      Src: /src/botan/src/tests/test_rsa.cpp:342,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_rsa.cpp:343,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_rsa.cpp:343,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rsa.cpp:343,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rsa.cpp:343,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_rsa.cpp:345,1
    - Dst: Botan_Tests::Test::random_index
      Src: /src/botan/src/tests/test_rsa.cpp:355,1
    - Dst: next_nonzero_byte
      Src: /src/botan/src/tests/test_rsa.cpp:356,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_rsa.cpp:359,1
    - Dst: Botan::PK_Decryptor_EME::decrypt_or_random
      Src: /src/botan/src/tests/test_rsa.cpp:369,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_rsa.cpp:370,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_rsa.cpp:370,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rsa.cpp:370,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_rsa.cpp:370,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_rsa.cpp:372,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_rsa.cpp:375,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: 379
      start: 278
    functionDepth: 2
    functionLinenumber: 278
    functionLinenumberEnd: 379
    functionName: Botan_Tests::test_decrypt_or_random
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 4
    functionsReached:
    - next_nonzero_byte
    - push_back
    - auto::get_int_field
    - auto::size
    - Botan::BigInt::from_bytes
    - public_key
    - Botan::RSA_PrivateKey::RSA_PrivateKey
    - Botan_Tests::test_decrypt_or_random
    - rng
    - Test::Result::test_ne
    - Botan_Tests::Test::random_index
    - std::vector::data
    - auto::data
    - next_byte
    - mutate_vec
    - Botan::PK_Decryptor_EME::decrypt_or_random
    - Botan::PK_Encryptor_EME::encrypt
    - Test::Result::test_eq
    - random_vec
    - Test::Result::confirm
    - serialize
    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: 288
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 288
    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:297,1
    - Dst: rng
      Src: /src/botan/src/tests/test_rsa.cpp:297,1
    - Dst: push_back
      Src: /src/botan/src/tests/test_rsa.cpp:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' padding : padding_schemes'
    argTypes:
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 299
    functionName: Botan_Tests::RSA_DecryptOrRandom_Tests::for
    functionSourceFile: /src/botan/src/tests/test_rsa.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - rng
    - test_decrypt_or_random
    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:53,1
    - Dst: manufacturer
      Src: /src/botan/src/tests/test_tpm2.cpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' ctx'
    argTypes:
    - std::shared_ptr<Botan::TPM2::Context>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: Botan_Tests::validate_context_environment
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - manufacturer
    - vendor
    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:57,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tpm2.cpp:58,1
    - Dst: Botan::TPM2::Context::create
      Src: /src/botan/src/tests/test_tpm2.cpp:63,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:63,1
    - Dst: Botan_Tests::validate_context_environment
      Src: /src/botan/src/tests/test_tpm2.cpp:64,1
    - Dst: auto::supports_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:68,1
    - Dst: auto::use_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:69,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:69,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - rng_tag
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 73
    functionName: Botan_Tests::get_tpm2_context
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::validate_context_environment
    - auto::use_botan_crypto_backend
    - Botan::TPM2::Context::create
    - auto::value
    - auto::supports_botan_crypto_backend
    - Botan_Tests::test_encoding_options
    - 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: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    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:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - 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:
    - 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:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 92
    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: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    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: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    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:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 101
    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: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    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:110,1
    - Dst: Tss2_TctiLdr_Finalize
      Src: /src/botan/src/tests/test_tpm2.cpp:112,1
    - Dst: Esys_Finalize
      Src: /src/botan/src/tests/test_tpm2.cpp:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - esys_ctx
    argTypes:
    - ESYS_CONTEXT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 115
    functionName: operator()(ESYS_CONTEXT* esys_ctx)
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - Esys_GetTcti
    - Tss2_TctiLdr_Finalize
    - Esys_Finalize
    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:119,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:120,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tpm2.cpp:121,1
    - Dst: Tss2_TctiLdr_Initialize_Ex
      Src: /src/botan/src/tests/test_tpm2.cpp:130,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_tpm2.cpp:130,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_tpm2.cpp:130,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tpm2.cpp:132,1
    - Dst: Esys_Initialize
      Src: /src/botan/src/tests/test_tpm2.cpp:135,1
    - Dst: Botan::out_ptr
      Src: /src/botan/src/tests/test_tpm2.cpp:135,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tpm2.cpp:137,1
    - Dst: Botan::TPM2::Context::create
      Src: /src/botan/src/tests/test_tpm2.cpp:142,1
    - Dst: std::unique_ptr::get
      Src: /src/botan/src/tests/test_tpm2.cpp:142,1
    - Dst: Botan_Tests::validate_context_environment
      Src: /src/botan/src/tests/test_tpm2.cpp:143,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 148
    functionName: Botan_Tests::get_external_tpm2_context
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::validate_context_environment
    - Test_Error
    - auto::value
    - Botan_Tests::test_encoding_options
    - Tss2_TctiLdr_Initialize_Ex
    - Botan::TPM2::Context::create
    - std::unique_ptr::get
    - Botan::out_ptr
    - auto::c_str
    - Esys_Initialize
    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:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 164
    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:169,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_tpm2.cpp:170,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_tpm2.cpp:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 177
    functionName: Botan_Tests::not_zero_64
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::BufferSlicer::remaining
    - Botan::BufferSlicer::take
    - Botan::load_be
    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:180,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:182,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:186,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:188,1
    - Dst: auto::vendor
      Src: /src/botan/src/tests/test_tpm2.cpp:188,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:189,1
    - Dst: auto::manufacturer
      Src: /src/botan/src/tests/test_tpm2.cpp:189,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:192,1
    - Dst: auto::max_random_bytes_per_request
      Src: /src/botan/src/tests/test_tpm2.cpp:194,1
    - Dst: test_gte
      Src: /src/botan/src/tests/test_tpm2.cpp:195,1
    - Dst: test_lte
      Src: /src/botan/src/tests/test_tpm2.cpp:196,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:199,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:201,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:201,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:202,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:202,1
    - Dst: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:210,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:212,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:212,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:213,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:213,1
    - Dst: confirm
      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: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:215,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 179
    functionDepth: 3
    functionLinenumber: 179
    functionLinenumberEnd: 218
    functionName: Botan_Tests::test_tpm2_properties
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - auto::vendor
    - Botan_Tests::CHECK
    - auto::manufacturer
    - test_lte
    - auto::supports_algorithm
    - test_gte
    - Botan_Tests::bail_out
    - Botan_Tests::get_tpm2_context
    - auto::max_random_bytes_per_request
    - confirm
    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:221,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:223,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:226,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:229,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:231,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:232,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:232,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:233,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:233,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:234,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:234,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:235,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:236,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:239,1
    - Dst: auto::supports_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:241,1
    - Dst: auto::uses_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:242,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:243,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:245,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:249,1
    - Dst: auto::use_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:251,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:251,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:255,1
    - Dst: auto::use_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:257,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:257,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:263,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:264,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:265,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:266,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:266,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:267,1
    - Dst: auto::key_length
      Src: /src/botan/src/tests/test_tpm2.cpp:267,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:268,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:268,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 220
    functionDepth: 3
    functionLinenumber: 220
    functionLinenumberEnd: 272
    functionName: Botan_Tests::test_tpm2_context
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - auto::empty
    - test_throws
    - auto::handles
    - Botan_Tests::CHECK
    - auto::key_length
    - auto::supports_botan_crypto_backend
    - Botan_Tests::get_tpm2_context
    - Botan_Tests::Test::new_rng
    - confirm
    - Botan_Tests::test_encoding_options
    - require
    - auto::uses_botan_crypto_backend
    - Botan_Tests::bail_out
    - auto::use_botan_crypto_backend
    - auto::storage_root_key
    - Botan::value_exists
    - auto::persistent_handles
    - auto::algo_name
    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:283,1
    - Dst: Esys_TRSess_SetAttributes
      Src: /src/botan/src/tests/test_tpm2.cpp:297,1
    - Dst: Esys_GetRandom
      Src: /src/botan/src/tests/test_tpm2.cpp:306,1
    - Dst: Botan::out_ptr
      Src: /src/botan/src/tests/test_tpm2.cpp:306,1
    - Dst: std::make_pair
      Src: /src/botan/src/tests/test_tpm2.cpp:307,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tpm2.cpp:307,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:311,1
    - Dst: Botan_Tests::get_external_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:313,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:315,1
    - Dst: Botan::TPM2::Context::create
      Src: /src/botan/src/tests/test_tpm2.cpp:322,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:322,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:323,1
    - Dst: Botan::RandomNumberGenerator
      Src: /src/botan/src/tests/test_tpm2.cpp:324,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_tpm2.cpp:326,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:327,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tpm2.cpp:327,1
    - Dst: raw_start_session
      Src: /src/botan/src/tests/test_tpm2.cpp:332,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:332,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:333,1
    - Dst: raw_get_random_bytes
      Src: /src/botan/src/tests/test_tpm2.cpp:335,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:335,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:336,1
    - Dst: test_eq_sz
      Src: /src/botan/src/tests/test_tpm2.cpp:337,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:340,1
    - Dst: Botan_Tests::get_external_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:342,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:344,1
    - Dst: Botan::TPM2::Context::create
      Src: /src/botan/src/tests/test_tpm2.cpp:349,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:349,1
    - Dst: auto::supports_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:350,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:351,1
    - Dst: auto::use_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:355,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:355,1
    - Dst: raw_start_session
      Src: /src/botan/src/tests/test_tpm2.cpp:358,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:358,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:363,1
    - Dst: Esys_SetCryptoCallbacks
      Src: /src/botan/src/tests/test_tpm2.cpp:367,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:367,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:368,1
    - Dst: raw_start_session
      Src: /src/botan/src/tests/test_tpm2.cpp:370,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:370,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:371,1
    - Dst: raw_get_random_bytes
      Src: /src/botan/src/tests/test_tpm2.cpp:373,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:373,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:374,1
    - Dst: test_eq_sz
      Src: /src/botan/src/tests/test_tpm2.cpp:375,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:380,1
    - Dst: Botan::TPM2::supports_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:381,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:382,1
    - Dst: Botan_Tests::get_external_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:386,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:388,1
    - Dst: Botan::TPM2::use_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:392,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:392,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:392,1
    - Dst: raw_start_session
      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::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:395,1
    - Dst: raw_get_random_bytes
      Src: /src/botan/src/tests/test_tpm2.cpp:397,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:397,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:398,1
    - Dst: test_eq_sz
      Src: /src/botan/src/tests/test_tpm2.cpp:399,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 274
    functionDepth: 3
    functionLinenumber: 274
    functionLinenumberEnd: 403
    functionName: Botan_Tests::test_external_tpm2_context
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan::TPM2::use_botan_crypto_backend
    - Botan::TPM2::Session::unauthenticated_session
    - test_eq_sz
    - auto::get
    - Botan::TPM2::Context::create
    - Botan::TPM2::supports_botan_crypto_backend
    - Botan::out_ptr
    - auto::size
    - raw_start_session
    - Botan_Tests::CHECK
    - auto::supports_botan_crypto_backend
    - Botan_Tests::Test::new_rng
    - raw_get_random_bytes
    - Botan_Tests::get_external_tpm2_context
    - Botan::RandomNumberGenerator
    - require
    - Botan_Tests::bail_out
    - std::move
    - Esys_GetRandom
    - Esys_StartAuthSession
    - Botan::TPM2::check_rc
    - auto::use_botan_crypto_backend
    - auto::random_vec
    - std::make_pair
    - Esys_SetCryptoCallbacks
    - Esys_TRSess_SetAttributes
    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:406,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:408,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:412,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:412,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:413,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:413,1
    - Dst: handle
      Src: /src/botan/src/tests/test_tpm2.cpp:413,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:414,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:414,1
    - Dst: tpm_nonce
      Src: /src/botan/src/tests/test_tpm2.cpp:414,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:418,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:422,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:422,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:423,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:423,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: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:429,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:434,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:435,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:435,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:436,1
    - Dst: Botan::TPM2::Session::authenticated_session
      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: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:443,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:445,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:447,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:448,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:449,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:449,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:450,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:450,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:452,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:452,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:453,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:453,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:456,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:457,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 405
    functionDepth: 3
    functionLinenumber: 405
    functionLinenumberEnd: 461
    functionName: Botan_Tests::test_tpm2_sessions
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan::fmt
    - Botan_Tests::CHECK
    - Botan::TPM2::Session::unauthenticated_session
    - auto::storage_root_key
    - Botan_Tests::load_persistent
    - handle
    - auto::handles
    - tpm_nonce
    - ok
    - Botan_Tests::test_encoding_options
    - require
    - Botan::TPM2::Session::authenticated_session
    - Botan_Tests::bail_out
    - Botan_Tests::get_tpm2_context
    - auto::algo_name
    - confirm
    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:464,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:466,1
    - Dst: Botan::RandomNumberGenerator
      Src: /src/botan/src/tests/test_tpm2.cpp:469,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:469,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:472,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:474,1
    - Dst: auto::accepts_input
      Src: /src/botan/src/tests/test_tpm2.cpp:474,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:475,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_tpm2.cpp:475,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:476,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_tpm2.cpp:476,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:478,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_tpm2.cpp:478,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:481,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_tpm2.cpp:484,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:485,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:485,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_tpm2.cpp:488,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:489,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:489,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_tpm2.cpp:492,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:493,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:493,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:496,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_tpm2.cpp:499,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:500,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:500,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_tpm2.cpp:503,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:504,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:504,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_tpm2.cpp:507,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:508,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:508,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 463
    functionDepth: 3
    functionLinenumber: 463
    functionLinenumberEnd: 511
    functionName: Botan_Tests::test_tpm2_rng
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - auto::name
    - test_eq
    - auto::clear
    - Botan_Tests::not_zero_64
    - Botan_Tests::CHECK
    - Botan::TPM2::Session::unauthenticated_session
    - test_no_throw
    - auto::randomize
    - Botan::RandomNumberGenerator
    - auto::is_seeded
    - auto::randomize_with_input
    - Botan_Tests::bail_out
    - Botan_Tests::get_tpm2_context
    - confirm
    - auto::accepts_input
    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:521,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:522,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_tpm2.cpp:524,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tpm2.cpp:524,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tpm2.cpp:524,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tpm2.cpp:524,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:528,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:530,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:534,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:534,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:535,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:535,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: 537
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 537
    functionName: Botan_Tests::load_persistent
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 2
    functionsReached:
    - test_eq
    - auto::end
    - Botan_Tests::load_persistent
    - auto::handles
    - persistent_handles
    - auto::algo_name
    - test_is_eq
    - std::find
    - auto::begin
    - confirm
    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:540,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:542,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:545,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:547,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/tests/test_tpm2.cpp:548,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:548,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:551,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:553,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:553,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:554,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:554,1
    - Dst: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:562,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:566,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:567,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:567,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:567,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:571,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:574,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:582,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_tpm2.cpp:583,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:587,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:588,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:588,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:590,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:592,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:592,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:595,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:599,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:602,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:607,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:609,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:612,1
    - Dst: sign
      Src: /src/botan/src/tests/test_tpm2.cpp:613,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:615,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:615,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:618,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_tpm2.cpp:619,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:620,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:620,1
    - Dst: auto::attributes
      Src: /src/botan/src/tests/test_tpm2.cpp:627,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:628,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:631,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:631,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:634,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:637,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:638,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:639,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:645,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_tpm2.cpp:649,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:649,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tpm2.cpp:651,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:651,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:657,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:659,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:660,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:660,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:661,1
    - Dst: Botan::RSA_PublicKey::RSA_PublicKey
      Src: /src/botan/src/tests/test_tpm2.cpp:665,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tpm2.cpp:665,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:665,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:667,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:668,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:668,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:669,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:673,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:675,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:676,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:681,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:682,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:683,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:686,1
    - Dst: Botan_Tests::load_persistent
      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::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:692,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:697,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:701,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:702,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:705,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:708,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:710,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:713,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:714,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:716,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:721,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:722,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_tpm2.cpp:725,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:726,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:727,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:730,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:732,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:733,1
    - Dst: Botan::TPM2::RSA_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:737,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:738,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:740,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:743,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:745,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:750,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:751,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:755,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:759,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:760,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:763,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:766,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:767,1
    - Dst: auto::private_key_bits
      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::raw_private_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:770,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:773,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:775,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:777,1
    - Dst: Botan::TPM2::RSA_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:782,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:784,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:785,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:785,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:786,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:786,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:788,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:789,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:790,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:792,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:792,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:793,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:793,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:799,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:800,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:800,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:803,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:803,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_tpm2.cpp:806,1
    - Dst: Botan::TPM2::PrivateKey::load_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:808,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:809,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:810,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:810,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:812,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:813,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:815,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:816,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:821,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:822,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:822,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:823,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:824,1
    - Dst: Botan::TPM2::PublicKey::load_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:827,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:828,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:831,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:832,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:837,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:838,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:838,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:839,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:840,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:844,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:845,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:848,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:850,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:856,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:857,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:857,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:859,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:861,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:861,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:865,1
    - Dst: Botan::TPM2::RSA_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:869,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:870,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:871,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:871,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:872,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:872,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:873,1
    - Dst: sign_verify_roundtrip
      Src: /src/botan/src/tests/test_tpm2.cpp:873,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:876,1
    - Dst: auto::persist
      Src: /src/botan/src/tests/test_tpm2.cpp:877,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:878,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:878,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:879,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:879,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:879,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:880,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:880,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:881,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:882,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:883,1
    - Dst: auto::persist
      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_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:887,1
    - Dst: sign_verify_roundtrip
      Src: /src/botan/src/tests/test_tpm2.cpp:887,1
    - Dst: auto::evict
      Src: /src/botan/src/tests/test_tpm2.cpp:890,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tpm2.cpp:890,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:891,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:891,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:892,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:893,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:893,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 113
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 539
    functionDepth: 3
    functionLinenumber: 539
    functionLinenumberEnd: 896
    functionName: Botan_Tests::test_tpm2_rsa
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - sign
    - test_eq
    - auto::public_key
    - auto::empty
    - Botan::hex_decode
    - Botan::TPM2::RSA_PrivateKey::create_unrestricted_transient
    - auto::private_key_bits
    - Botan::TPM2::Session::unauthenticated_session
    - test_throws
    - auto::handles
    - Botan::as_span_of_bytes
    - Botan::PK_Verifier::verify_message
    - test_is_eq
    - Botan::TPM2::Session::authenticated_session
    - auto::algorithm_identifier
    - std::vector::reserve
    - Botan_Tests::CHECK
    - std::vector::emplace_back
    - auto::public_key_bits
    - Botan::RSA_PublicKey::RSA_PublicKey
    - auto::supports_algorithm
    - auto::evict
    - Botan::TPM2::PrivateKey::load_transient
    - Botan_Tests::get_tpm2_context
    - Botan_Tests::Test::new_rng
    - auto::raw_public_key_bits
    - confirm
    - sign_verify_roundtrip
    - Botan_Tests::load_persistent
    - static_cast<uint8_t>
    - test_no_throw
    - Botan_Tests::test_encoding_options
    - Botan::PK_Signer::sign_message
    - require
    - Botan_Tests::bail_out
    - Botan::TPM2::PublicKey::load_transient
    - auto::persist
    - std::vector::size
    - Botan::PK_Encryptor_EME::encrypt
    - verify
    - std::move
    - Botan::fmt
    - auto::storage_root_key
    - auto::reset
    - Botan::PK_Decryptor_EME::decrypt
    - Botan::value_exists
    - Botan_Tests::Test::mutate_vec
    - auto::raw_private_key_bits
    - auto::persistent_handles
    - auto::attributes
    - auto::algo_name
    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:908,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:909,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_tpm2.cpp:911,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tpm2.cpp:911,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tpm2.cpp:911,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tpm2.cpp:911,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:915,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:917,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:921,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:921,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:922,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:922,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: 924
      start: 902
    functionDepth: 2
    functionLinenumber: 902
    functionLinenumberEnd: 924
    functionName: Botan_Tests::load_persistent_ecc
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - auto::end
    - Botan_Tests::load_persistent
    - auto::handles
    - persistent_handles
    - auto::algo_name
    - test_is_eq
    - std::find
    - auto::begin
    - confirm
    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:928,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:930,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:933,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:935,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/tests/test_tpm2.cpp:936,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:936,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:939,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:941,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:941,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:942,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:942,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:944,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:947,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:949,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:949,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:949,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:952,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:955,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:963,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_tpm2.cpp:964,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:968,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:969,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:969,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:971,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:973,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:973,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:975,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:978,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:982,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:986,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:989,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:992,1
    - Dst: sign
      Src: /src/botan/src/tests/test_tpm2.cpp:993,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:995,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:995,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:998,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_tpm2.cpp:999,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1000,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:1000,1
    - Dst: auto::attributes
      Src: /src/botan/src/tests/test_tpm2.cpp:1007,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1008,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1011,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:1011,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1014,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1017,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1018,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1019,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1024,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_tpm2.cpp:1029,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:1029,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tpm2.cpp:1031,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1031,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1038,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:1040,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1041,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:1041,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1042,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1047,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:1050,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1051,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:1051,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1052,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1056,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1058,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1059,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1064,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:1065,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1066,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1071,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1073,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:1075,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1076,1
    - Dst: Botan::TPM2::EC_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:1079,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_tpm2.cpp:1080,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1081,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1083,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:1091,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_tpm2.cpp:1092,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1096,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1097,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1097,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1099,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1101,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1101,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1104,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1106,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:1108,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1110,1
    - Dst: Botan::TPM2::EC_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:1114,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_tpm2.cpp:1115,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1117,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1118,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1118,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1119,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1119,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1121,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1122,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1123,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1125,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1125,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1126,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1126,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1132,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1133,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1133,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1136,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1136,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_tpm2.cpp:1139,1
    - Dst: Botan::TPM2::PrivateKey::load_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:1141,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1142,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1143,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:1143,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1145,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1146,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1148,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1149,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1154,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1155,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1155,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1156,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1157,1
    - Dst: Botan::TPM2::PublicKey::load_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:1160,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1161,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1164,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1165,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1168,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1171,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:1172,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1178,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1179,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1179,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1181,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1183,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1183,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1187,1
    - Dst: Botan::TPM2::EC_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:1190,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_tpm2.cpp:1191,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1192,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1193,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1193,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1194,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1194,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:1195,1
    - Dst: sign_verify_roundtrip
      Src: /src/botan/src/tests/test_tpm2.cpp:1195,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1198,1
    - Dst: auto::persist
      Src: /src/botan/src/tests/test_tpm2.cpp:1199,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1200,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1200,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1201,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:1201,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1201,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1202,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1202,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1203,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1204,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:1205,1
    - Dst: auto::persist
      Src: /src/botan/src/tests/test_tpm2.cpp:1206,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:1207,1
    - Dst: auto::persist
      Src: /src/botan/src/tests/test_tpm2.cpp:1208,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:1209,1
    - Dst: sign_verify_roundtrip
      Src: /src/botan/src/tests/test_tpm2.cpp:1209,1
    - Dst: auto::evict
      Src: /src/botan/src/tests/test_tpm2.cpp:1212,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tpm2.cpp:1212,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1213,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1213,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1214,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:1215,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1215,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1219,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1220,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:1221,1
    - Dst: Botan::ECDSA_PublicKey
      Src: /src/botan/src/tests/test_tpm2.cpp:1222,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tpm2.cpp:1222,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1222,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1226,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:1227,1
    - Dst: Botan::ECDSA_PublicKey
      Src: /src/botan/src/tests/test_tpm2.cpp:1228,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tpm2.cpp:1228,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1228,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 103
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 926
    functionDepth: 3
    functionLinenumber: 926
    functionLinenumberEnd: 1232
    functionName: Botan_Tests::test_tpm2_ecc
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - sign
    - test_eq
    - auto::public_key
    - auto::empty
    - Botan::hex_decode
    - Botan::TPM2::Session::unauthenticated_session
    - test_throws
    - auto::handles
    - Botan::as_span_of_bytes
    - Botan::PK_Verifier::verify_message
    - test_is_eq
    - Botan::TPM2::Session::authenticated_session
    - auto::algorithm_identifier
    - std::vector::reserve
    - Botan::TPM2::EC_PrivateKey::create_unrestricted_transient
    - Botan_Tests::CHECK
    - std::vector::emplace_back
    - auto::public_key_bits
    - auto::supports_algorithm
    - auto::evict
    - Botan::TPM2::PrivateKey::load_transient
    - Botan_Tests::get_tpm2_context
    - Botan_Tests::Test::new_rng
    - auto::raw_public_key_bits
    - confirm
    - sign_verify_roundtrip
    - Botan_Tests::load_persistent
    - static_cast<uint8_t>
    - test_no_throw
    - Botan_Tests::test_encoding_options
    - Botan::PK_Signer::sign_message
    - require
    - Botan_Tests::bail_out
    - Botan::TPM2::PublicKey::load_transient
    - auto::persist
    - std::vector::size
    - verify
    - std::move
    - Botan::fmt
    - auto::storage_root_key
    - auto::reset
    - Botan::EC_Group::from_name
    - Botan::value_exists
    - Botan_Tests::load_persistent_ecc
    - Botan_Tests::Test::mutate_vec
    - auto::raw_private_key_bits
    - auto::persistent_handles
    - auto::attributes
    - auto::algo_name
    - Botan::ECDSA_PublicKey
    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:1236,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:1238,1
    - Dst: std::make_unique<Botan::TPM2::HashFunction>
      Src: /src/botan/src/tests/test_tpm2.cpp:1244,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1245,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_tpm2.cpp:1250,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_tpm2.cpp:1253,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:1253,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_tpm2.cpp:1258,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:1258,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1262,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_tpm2.cpp:1262,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_tpm2.cpp:1262,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1263,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tpm2.cpp:1263,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tpm2.cpp:1263,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1266,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1267,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1268,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_tpm2.cpp:1268,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1268,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1271,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1271,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1271,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:1276,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_tpm2.cpp:1277,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1282,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1283,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_tpm2.cpp:1283,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1283,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1284,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1285,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1285,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1288,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_tpm2.cpp:1289,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1290,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1291,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_tpm2.cpp:1291,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1291,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_tpm2.cpp:1294,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1295,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_tpm2.cpp:1295,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_tpm2.cpp:1295,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1296,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tpm2.cpp:1296,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tpm2.cpp:1296,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1297,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1298,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1299,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1303,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1305,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:1305,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1306,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:1306,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1307,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:1307,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1308,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:1308,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1311,1
    - Dst: test
      Src: /src/botan/src/tests/test_tpm2.cpp:1311,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1312,1
    - Dst: test
      Src: /src/botan/src/tests/test_tpm2.cpp:1312,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1313,1
    - Dst: test
      Src: /src/botan/src/tests/test_tpm2.cpp:1313,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1314,1
    - Dst: test
      Src: /src/botan/src/tests/test_tpm2.cpp:1314,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:1319,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:1321,1
    - Dst: Botan_CLI::PerfTest_HashFunction::PerfTest_HashFunction
      Src: /src/botan/src/tests/test_tpm2.cpp:1322,1
    - Dst: Botan_Tests::CHECK
      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:1327,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:1328,1
    - Dst: auto::copy_state
      Src: /src/botan/src/tests/test_tpm2.cpp:1329,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1332,1
    - Dst: Botan_CLI::PerfTest_HashFunction::PerfTest_HashFunction
      Src: /src/botan/src/tests/test_tpm2.cpp:1335,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1336,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1337,1
    - Dst: auto::final_with_ticket
      Src: /src/botan/src/tests/test_tpm2.cpp:1338,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1339,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1340,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1341,1
    - Dst: Botan_CLI::PerfTest_HashFunction::PerfTest_HashFunction
      Src: /src/botan/src/tests/test_tpm2.cpp:1344,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1345,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1346,1
    - Dst: auto::final_with_ticket
      Src: /src/botan/src/tests/test_tpm2.cpp:1347,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1348,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1349,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1350,1
    - Dst: Botan::TPM2::copy_into<Botan::secure_vector<uint8_t>>
      Src: /src/botan/src/tests/test_tpm2.cpp:1352,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1353,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1355,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1357,1
    - Dst: Botan::TPM2::copy_into<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_tpm2.cpp:1358,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 77
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1362
      start: 1235
    functionDepth: 3
    functionLinenumber: 1235
    functionLinenumberEnd: 1362
    functionName: Botan_Tests::test_tpm2_hash
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - test_eq
    - Botan::hex_decode
    - Botan::TPM2::Session::unauthenticated_session
    - test_throws
    - Botan_CLI::PerfTest_HashFunction::PerfTest_HashFunction
    - Botan::HashFunction::create
    - Botan::TPM2::copy_into<Botan::secure_vector<uint8_t>>
    - auto::name
    - Botan_Tests::CHECK
    - auto::supports_algorithm
    - Botan_Tests::get_tpm2_context
    - test
    - confirm
    - std::make_unique<Botan::TPM2::HashFunction>
    - test_note
    - auto::new_object
    - auto::clear
    - auto::process
    - static_cast<uint8_t>
    - auto::final_with_ticket
    - require
    - Botan_Tests::bail_out
    - std::vector::size
    - auto::final
    - Botan::fmt
    - auto::output_length
    - auto::copy_state
    - Botan::TPM2::copy_into<std::vector<uint8_t>>
    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:53,1
    - Dst: manufacturer
      Src: /src/botan/src/tests/test_tpm2.cpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' ctx'
    argTypes:
    - std::shared_ptr<Botan::TPM2::Context>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: Botan_Tests::validate_context_environment
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 2
    functionsReached:
    - manufacturer
    - vendor
    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:57,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tpm2.cpp:58,1
    - Dst: Botan::TPM2::Context::create
      Src: /src/botan/src/tests/test_tpm2.cpp:63,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:63,1
    - Dst: Botan_Tests::validate_context_environment
      Src: /src/botan/src/tests/test_tpm2.cpp:64,1
    - Dst: auto::supports_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:68,1
    - Dst: auto::use_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:69,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:69,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - rng_tag
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 73
    functionName: Botan_Tests::get_tpm2_context
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 7
    functionsReached:
    - Botan_Tests::validate_context_environment
    - auto::use_botan_crypto_backend
    - Botan::TPM2::Context::create
    - auto::value
    - auto::supports_botan_crypto_backend
    - Botan_Tests::test_encoding_options
    - 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: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    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:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - 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:
    - 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:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 92
    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: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    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: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    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:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 101
    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: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    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:110,1
    - Dst: Tss2_TctiLdr_Finalize
      Src: /src/botan/src/tests/test_tpm2.cpp:112,1
    - Dst: Esys_Finalize
      Src: /src/botan/src/tests/test_tpm2.cpp:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - esys_ctx
    argTypes:
    - ESYS_CONTEXT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 115
    functionName: operator()(ESYS_CONTEXT* esys_ctx)
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - Esys_GetTcti
    - Tss2_TctiLdr_Finalize
    - Esys_Finalize
    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:119,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:120,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tpm2.cpp:121,1
    - Dst: Tss2_TctiLdr_Initialize_Ex
      Src: /src/botan/src/tests/test_tpm2.cpp:130,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_tpm2.cpp:130,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_tpm2.cpp:130,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tpm2.cpp:132,1
    - Dst: Esys_Initialize
      Src: /src/botan/src/tests/test_tpm2.cpp:135,1
    - Dst: Botan::out_ptr
      Src: /src/botan/src/tests/test_tpm2.cpp:135,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tpm2.cpp:137,1
    - Dst: Botan::TPM2::Context::create
      Src: /src/botan/src/tests/test_tpm2.cpp:142,1
    - Dst: std::unique_ptr::get
      Src: /src/botan/src/tests/test_tpm2.cpp:142,1
    - Dst: Botan_Tests::validate_context_environment
      Src: /src/botan/src/tests/test_tpm2.cpp:143,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 148
    functionName: Botan_Tests::get_external_tpm2_context
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::validate_context_environment
    - Test_Error
    - auto::value
    - Botan_Tests::test_encoding_options
    - Tss2_TctiLdr_Initialize_Ex
    - Botan::TPM2::Context::create
    - std::unique_ptr::get
    - Botan::out_ptr
    - auto::c_str
    - Esys_Initialize
    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:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 164
    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:169,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_tpm2.cpp:170,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_tpm2.cpp:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 177
    functionName: Botan_Tests::not_zero_64
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 1
    functionsReached:
    - Botan::BufferSlicer::remaining
    - Botan::BufferSlicer::take
    - Botan::load_be
    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:180,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:182,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:186,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:188,1
    - Dst: auto::vendor
      Src: /src/botan/src/tests/test_tpm2.cpp:188,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:189,1
    - Dst: auto::manufacturer
      Src: /src/botan/src/tests/test_tpm2.cpp:189,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:192,1
    - Dst: auto::max_random_bytes_per_request
      Src: /src/botan/src/tests/test_tpm2.cpp:194,1
    - Dst: test_gte
      Src: /src/botan/src/tests/test_tpm2.cpp:195,1
    - Dst: test_lte
      Src: /src/botan/src/tests/test_tpm2.cpp:196,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:199,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:201,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:201,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:202,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:202,1
    - Dst: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:210,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:212,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:212,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:213,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:213,1
    - Dst: confirm
      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: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:215,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 179
    functionDepth: 3
    functionLinenumber: 179
    functionLinenumberEnd: 218
    functionName: Botan_Tests::test_tpm2_properties
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - auto::vendor
    - Botan_Tests::CHECK
    - auto::manufacturer
    - test_lte
    - auto::supports_algorithm
    - test_gte
    - Botan_Tests::bail_out
    - Botan_Tests::get_tpm2_context
    - auto::max_random_bytes_per_request
    - confirm
    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:221,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:223,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:226,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:229,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:231,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:232,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:232,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:233,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:233,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:234,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:234,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:235,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:236,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:239,1
    - Dst: auto::supports_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:241,1
    - Dst: auto::uses_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:242,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:243,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:245,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:249,1
    - Dst: auto::use_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:251,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:251,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:255,1
    - Dst: auto::use_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:257,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:257,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:263,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:264,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:265,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:266,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:266,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:267,1
    - Dst: auto::key_length
      Src: /src/botan/src/tests/test_tpm2.cpp:267,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:268,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:268,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 220
    functionDepth: 3
    functionLinenumber: 220
    functionLinenumberEnd: 272
    functionName: Botan_Tests::test_tpm2_context
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - auto::empty
    - test_throws
    - auto::handles
    - Botan_Tests::CHECK
    - auto::key_length
    - auto::supports_botan_crypto_backend
    - Botan_Tests::get_tpm2_context
    - Botan_Tests::Test::new_rng
    - confirm
    - Botan_Tests::test_encoding_options
    - require
    - auto::uses_botan_crypto_backend
    - Botan_Tests::bail_out
    - auto::use_botan_crypto_backend
    - auto::storage_root_key
    - Botan::value_exists
    - auto::persistent_handles
    - auto::algo_name
    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:283,1
    - Dst: Esys_TRSess_SetAttributes
      Src: /src/botan/src/tests/test_tpm2.cpp:297,1
    - Dst: Esys_GetRandom
      Src: /src/botan/src/tests/test_tpm2.cpp:306,1
    - Dst: Botan::out_ptr
      Src: /src/botan/src/tests/test_tpm2.cpp:306,1
    - Dst: std::make_pair
      Src: /src/botan/src/tests/test_tpm2.cpp:307,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tpm2.cpp:307,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:311,1
    - Dst: Botan_Tests::get_external_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:313,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:315,1
    - Dst: Botan::TPM2::Context::create
      Src: /src/botan/src/tests/test_tpm2.cpp:322,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:322,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:323,1
    - Dst: Botan::RandomNumberGenerator
      Src: /src/botan/src/tests/test_tpm2.cpp:324,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_tpm2.cpp:326,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:327,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tpm2.cpp:327,1
    - Dst: raw_start_session
      Src: /src/botan/src/tests/test_tpm2.cpp:332,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:332,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:333,1
    - Dst: raw_get_random_bytes
      Src: /src/botan/src/tests/test_tpm2.cpp:335,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:335,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:336,1
    - Dst: test_eq_sz
      Src: /src/botan/src/tests/test_tpm2.cpp:337,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:340,1
    - Dst: Botan_Tests::get_external_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:342,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:344,1
    - Dst: Botan::TPM2::Context::create
      Src: /src/botan/src/tests/test_tpm2.cpp:349,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:349,1
    - Dst: auto::supports_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:350,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:351,1
    - Dst: auto::use_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:355,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:355,1
    - Dst: raw_start_session
      Src: /src/botan/src/tests/test_tpm2.cpp:358,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:358,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:363,1
    - Dst: Esys_SetCryptoCallbacks
      Src: /src/botan/src/tests/test_tpm2.cpp:367,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:367,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:368,1
    - Dst: raw_start_session
      Src: /src/botan/src/tests/test_tpm2.cpp:370,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:370,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:371,1
    - Dst: raw_get_random_bytes
      Src: /src/botan/src/tests/test_tpm2.cpp:373,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:373,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:374,1
    - Dst: test_eq_sz
      Src: /src/botan/src/tests/test_tpm2.cpp:375,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:380,1
    - Dst: Botan::TPM2::supports_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:381,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:382,1
    - Dst: Botan_Tests::get_external_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:386,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:388,1
    - Dst: Botan::TPM2::use_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:392,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:392,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:392,1
    - Dst: raw_start_session
      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::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:395,1
    - Dst: raw_get_random_bytes
      Src: /src/botan/src/tests/test_tpm2.cpp:397,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:397,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:398,1
    - Dst: test_eq_sz
      Src: /src/botan/src/tests/test_tpm2.cpp:399,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 274
    functionDepth: 3
    functionLinenumber: 274
    functionLinenumberEnd: 403
    functionName: Botan_Tests::test_external_tpm2_context
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan::TPM2::use_botan_crypto_backend
    - Botan::TPM2::Session::unauthenticated_session
    - test_eq_sz
    - auto::get
    - Botan::TPM2::Context::create
    - Botan::TPM2::supports_botan_crypto_backend
    - Botan::out_ptr
    - auto::size
    - raw_start_session
    - Botan_Tests::CHECK
    - auto::supports_botan_crypto_backend
    - Botan_Tests::Test::new_rng
    - raw_get_random_bytes
    - Botan_Tests::get_external_tpm2_context
    - Botan::RandomNumberGenerator
    - require
    - Botan_Tests::bail_out
    - std::move
    - Esys_GetRandom
    - Esys_StartAuthSession
    - Botan::TPM2::check_rc
    - auto::use_botan_crypto_backend
    - auto::random_vec
    - std::make_pair
    - Esys_SetCryptoCallbacks
    - Esys_TRSess_SetAttributes
    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:406,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:408,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:412,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:412,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:413,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:413,1
    - Dst: handle
      Src: /src/botan/src/tests/test_tpm2.cpp:413,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:414,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:414,1
    - Dst: tpm_nonce
      Src: /src/botan/src/tests/test_tpm2.cpp:414,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:418,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:422,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:422,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:423,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:423,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: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:429,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:434,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:435,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:435,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:436,1
    - Dst: Botan::TPM2::Session::authenticated_session
      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: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:443,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:445,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:447,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:448,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:449,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:449,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:450,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:450,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:452,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:452,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:453,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:453,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:456,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:457,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 405
    functionDepth: 3
    functionLinenumber: 405
    functionLinenumberEnd: 461
    functionName: Botan_Tests::test_tpm2_sessions
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan::fmt
    - Botan_Tests::CHECK
    - Botan::TPM2::Session::unauthenticated_session
    - auto::storage_root_key
    - Botan_Tests::load_persistent
    - handle
    - auto::handles
    - tpm_nonce
    - ok
    - Botan_Tests::test_encoding_options
    - require
    - Botan::TPM2::Session::authenticated_session
    - Botan_Tests::bail_out
    - Botan_Tests::get_tpm2_context
    - auto::algo_name
    - confirm
    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:464,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:466,1
    - Dst: Botan::RandomNumberGenerator
      Src: /src/botan/src/tests/test_tpm2.cpp:469,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:469,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:472,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:474,1
    - Dst: auto::accepts_input
      Src: /src/botan/src/tests/test_tpm2.cpp:474,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:475,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_tpm2.cpp:475,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:476,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_tpm2.cpp:476,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:478,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_tpm2.cpp:478,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:481,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_tpm2.cpp:484,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:485,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:485,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_tpm2.cpp:488,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:489,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:489,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_tpm2.cpp:492,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:493,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:493,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:496,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_tpm2.cpp:499,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:500,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:500,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_tpm2.cpp:503,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:504,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:504,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_tpm2.cpp:507,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:508,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:508,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 463
    functionDepth: 3
    functionLinenumber: 463
    functionLinenumberEnd: 511
    functionName: Botan_Tests::test_tpm2_rng
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - auto::name
    - test_eq
    - auto::clear
    - Botan_Tests::not_zero_64
    - Botan_Tests::CHECK
    - Botan::TPM2::Session::unauthenticated_session
    - test_no_throw
    - auto::randomize
    - Botan::RandomNumberGenerator
    - auto::is_seeded
    - auto::randomize_with_input
    - Botan_Tests::bail_out
    - Botan_Tests::get_tpm2_context
    - confirm
    - auto::accepts_input
    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:521,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:522,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_tpm2.cpp:524,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tpm2.cpp:524,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tpm2.cpp:524,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tpm2.cpp:524,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:528,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:530,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:534,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:534,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:535,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:535,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: 537
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 537
    functionName: Botan_Tests::load_persistent
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 7
    functionsReached:
    - test_eq
    - auto::end
    - Botan_Tests::load_persistent
    - auto::handles
    - persistent_handles
    - auto::algo_name
    - test_is_eq
    - std::find
    - auto::begin
    - confirm
    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:540,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:542,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:545,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:547,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/tests/test_tpm2.cpp:548,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:548,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:551,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:553,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:553,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:554,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:554,1
    - Dst: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:562,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:566,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:567,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:567,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:567,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:571,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:574,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:582,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_tpm2.cpp:583,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:587,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:588,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:588,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:590,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:592,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:592,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:595,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:599,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:602,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:607,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:609,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:612,1
    - Dst: sign
      Src: /src/botan/src/tests/test_tpm2.cpp:613,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:615,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:615,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:618,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_tpm2.cpp:619,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:620,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:620,1
    - Dst: auto::attributes
      Src: /src/botan/src/tests/test_tpm2.cpp:627,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:628,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:631,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:631,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:634,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:637,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:638,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:639,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:645,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_tpm2.cpp:649,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:649,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tpm2.cpp:651,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:651,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:657,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:659,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:660,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:660,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:661,1
    - Dst: Botan::RSA_PublicKey::RSA_PublicKey
      Src: /src/botan/src/tests/test_tpm2.cpp:665,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tpm2.cpp:665,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:665,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:667,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:668,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:668,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:669,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:673,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:675,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:676,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:681,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:682,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:683,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:686,1
    - Dst: Botan_Tests::load_persistent
      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::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:692,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:697,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:701,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:702,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:705,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:708,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:710,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:713,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:714,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:716,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:721,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:722,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_tpm2.cpp:725,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:726,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:727,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:730,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:732,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:733,1
    - Dst: Botan::TPM2::RSA_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:737,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:738,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:740,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:743,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:745,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:750,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:751,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:755,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:759,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:760,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:763,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:766,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:767,1
    - Dst: auto::private_key_bits
      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::raw_private_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:770,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:773,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:775,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:777,1
    - Dst: Botan::TPM2::RSA_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:782,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:784,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:785,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:785,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:786,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:786,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:788,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:789,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:790,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:792,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:792,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:793,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:793,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:799,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:800,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:800,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:803,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:803,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_tpm2.cpp:806,1
    - Dst: Botan::TPM2::PrivateKey::load_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:808,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:809,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:810,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:810,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:812,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:813,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:815,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:816,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:821,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:822,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:822,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:823,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:824,1
    - Dst: Botan::TPM2::PublicKey::load_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:827,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:828,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:831,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:832,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:837,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:838,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:838,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:839,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:840,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:844,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:845,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:848,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:850,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:856,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:857,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:857,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:859,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:861,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:861,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:865,1
    - Dst: Botan::TPM2::RSA_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:869,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:870,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:871,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:871,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:872,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:872,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:873,1
    - Dst: sign_verify_roundtrip
      Src: /src/botan/src/tests/test_tpm2.cpp:873,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:876,1
    - Dst: auto::persist
      Src: /src/botan/src/tests/test_tpm2.cpp:877,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:878,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:878,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:879,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:879,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:879,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:880,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:880,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:881,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:882,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:883,1
    - Dst: auto::persist
      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_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:887,1
    - Dst: sign_verify_roundtrip
      Src: /src/botan/src/tests/test_tpm2.cpp:887,1
    - Dst: auto::evict
      Src: /src/botan/src/tests/test_tpm2.cpp:890,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tpm2.cpp:890,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:891,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:891,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:892,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:893,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:893,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 113
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 539
    functionDepth: 3
    functionLinenumber: 539
    functionLinenumberEnd: 896
    functionName: Botan_Tests::test_tpm2_rsa
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - sign
    - test_eq
    - auto::public_key
    - auto::empty
    - Botan::hex_decode
    - Botan::TPM2::RSA_PrivateKey::create_unrestricted_transient
    - auto::private_key_bits
    - Botan::TPM2::Session::unauthenticated_session
    - test_throws
    - auto::handles
    - Botan::as_span_of_bytes
    - Botan::PK_Verifier::verify_message
    - test_is_eq
    - Botan::TPM2::Session::authenticated_session
    - auto::algorithm_identifier
    - std::vector::reserve
    - Botan_Tests::CHECK
    - std::vector::emplace_back
    - auto::public_key_bits
    - Botan::RSA_PublicKey::RSA_PublicKey
    - auto::supports_algorithm
    - auto::evict
    - Botan::TPM2::PrivateKey::load_transient
    - Botan_Tests::get_tpm2_context
    - Botan_Tests::Test::new_rng
    - auto::raw_public_key_bits
    - confirm
    - sign_verify_roundtrip
    - Botan_Tests::load_persistent
    - static_cast<uint8_t>
    - test_no_throw
    - Botan_Tests::test_encoding_options
    - Botan::PK_Signer::sign_message
    - require
    - Botan_Tests::bail_out
    - Botan::TPM2::PublicKey::load_transient
    - auto::persist
    - std::vector::size
    - Botan::PK_Encryptor_EME::encrypt
    - verify
    - std::move
    - Botan::fmt
    - auto::storage_root_key
    - auto::reset
    - Botan::PK_Decryptor_EME::decrypt
    - Botan::value_exists
    - Botan_Tests::Test::mutate_vec
    - auto::raw_private_key_bits
    - auto::persistent_handles
    - auto::attributes
    - auto::algo_name
    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:908,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:909,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_tpm2.cpp:911,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tpm2.cpp:911,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tpm2.cpp:911,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tpm2.cpp:911,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:915,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:917,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:921,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:921,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:922,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:922,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: 924
      start: 902
    functionDepth: 2
    functionLinenumber: 902
    functionLinenumberEnd: 924
    functionName: Botan_Tests::load_persistent_ecc
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 1
    functionsReached:
    - test_eq
    - auto::end
    - Botan_Tests::load_persistent
    - auto::handles
    - persistent_handles
    - auto::algo_name
    - test_is_eq
    - std::find
    - auto::begin
    - confirm
    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:928,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:930,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:933,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:935,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/tests/test_tpm2.cpp:936,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:936,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:939,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:941,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:941,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:942,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:942,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:944,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:947,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:949,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:949,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:949,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:952,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:955,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:963,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_tpm2.cpp:964,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:968,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:969,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:969,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:971,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:973,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:973,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:975,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:978,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:982,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:986,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:989,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:992,1
    - Dst: sign
      Src: /src/botan/src/tests/test_tpm2.cpp:993,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:995,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:995,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:998,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_tpm2.cpp:999,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1000,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:1000,1
    - Dst: auto::attributes
      Src: /src/botan/src/tests/test_tpm2.cpp:1007,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1008,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1011,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:1011,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1014,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1017,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1018,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1019,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1024,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_tpm2.cpp:1029,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:1029,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tpm2.cpp:1031,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1031,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1038,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:1040,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1041,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:1041,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1042,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1047,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:1050,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1051,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:1051,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1052,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1056,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1058,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1059,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1064,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:1065,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1066,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1071,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1073,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:1075,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1076,1
    - Dst: Botan::TPM2::EC_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:1079,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_tpm2.cpp:1080,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1081,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1083,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:1091,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_tpm2.cpp:1092,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1096,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1097,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1097,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1099,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1101,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1101,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1104,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1106,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:1108,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1110,1
    - Dst: Botan::TPM2::EC_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:1114,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_tpm2.cpp:1115,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1117,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1118,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1118,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1119,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1119,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1121,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1122,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1123,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1125,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1125,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1126,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1126,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1132,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1133,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1133,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1136,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1136,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_tpm2.cpp:1139,1
    - Dst: Botan::TPM2::PrivateKey::load_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:1141,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1142,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1143,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:1143,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1145,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1146,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1148,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1149,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1154,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1155,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1155,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1156,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1157,1
    - Dst: Botan::TPM2::PublicKey::load_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:1160,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1161,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1164,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1165,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1168,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1171,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:1172,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1178,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1179,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1179,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1181,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1183,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1183,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1187,1
    - Dst: Botan::TPM2::EC_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:1190,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_tpm2.cpp:1191,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1192,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1193,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1193,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1194,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1194,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:1195,1
    - Dst: sign_verify_roundtrip
      Src: /src/botan/src/tests/test_tpm2.cpp:1195,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1198,1
    - Dst: auto::persist
      Src: /src/botan/src/tests/test_tpm2.cpp:1199,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1200,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1200,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1201,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:1201,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1201,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1202,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1202,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1203,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1204,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:1205,1
    - Dst: auto::persist
      Src: /src/botan/src/tests/test_tpm2.cpp:1206,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:1207,1
    - Dst: auto::persist
      Src: /src/botan/src/tests/test_tpm2.cpp:1208,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:1209,1
    - Dst: sign_verify_roundtrip
      Src: /src/botan/src/tests/test_tpm2.cpp:1209,1
    - Dst: auto::evict
      Src: /src/botan/src/tests/test_tpm2.cpp:1212,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tpm2.cpp:1212,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1213,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1213,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1214,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:1215,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1215,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1219,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1220,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:1221,1
    - Dst: Botan::ECDSA_PublicKey
      Src: /src/botan/src/tests/test_tpm2.cpp:1222,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tpm2.cpp:1222,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1222,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1226,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:1227,1
    - Dst: Botan::ECDSA_PublicKey
      Src: /src/botan/src/tests/test_tpm2.cpp:1228,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tpm2.cpp:1228,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1228,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 103
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 926
    functionDepth: 3
    functionLinenumber: 926
    functionLinenumberEnd: 1232
    functionName: Botan_Tests::test_tpm2_ecc
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - sign
    - test_eq
    - auto::public_key
    - auto::empty
    - Botan::hex_decode
    - Botan::TPM2::Session::unauthenticated_session
    - test_throws
    - auto::handles
    - Botan::as_span_of_bytes
    - Botan::PK_Verifier::verify_message
    - test_is_eq
    - Botan::TPM2::Session::authenticated_session
    - auto::algorithm_identifier
    - std::vector::reserve
    - Botan::TPM2::EC_PrivateKey::create_unrestricted_transient
    - Botan_Tests::CHECK
    - std::vector::emplace_back
    - auto::public_key_bits
    - auto::supports_algorithm
    - auto::evict
    - Botan::TPM2::PrivateKey::load_transient
    - Botan_Tests::get_tpm2_context
    - Botan_Tests::Test::new_rng
    - auto::raw_public_key_bits
    - confirm
    - sign_verify_roundtrip
    - Botan_Tests::load_persistent
    - static_cast<uint8_t>
    - test_no_throw
    - Botan_Tests::test_encoding_options
    - Botan::PK_Signer::sign_message
    - require
    - Botan_Tests::bail_out
    - Botan::TPM2::PublicKey::load_transient
    - auto::persist
    - std::vector::size
    - verify
    - std::move
    - Botan::fmt
    - auto::storage_root_key
    - auto::reset
    - Botan::EC_Group::from_name
    - Botan::value_exists
    - Botan_Tests::load_persistent_ecc
    - Botan_Tests::Test::mutate_vec
    - auto::raw_private_key_bits
    - auto::persistent_handles
    - auto::attributes
    - auto::algo_name
    - Botan::ECDSA_PublicKey
    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:1236,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:1238,1
    - Dst: std::make_unique<Botan::TPM2::HashFunction>
      Src: /src/botan/src/tests/test_tpm2.cpp:1244,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1245,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_tpm2.cpp:1250,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_tpm2.cpp:1253,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:1253,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_tpm2.cpp:1258,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:1258,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1262,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_tpm2.cpp:1262,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_tpm2.cpp:1262,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1263,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tpm2.cpp:1263,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tpm2.cpp:1263,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1266,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1267,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1268,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_tpm2.cpp:1268,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1268,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1271,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1271,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1271,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:1276,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_tpm2.cpp:1277,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1282,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1283,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_tpm2.cpp:1283,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1283,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1284,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1285,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1285,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1288,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_tpm2.cpp:1289,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1290,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1291,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_tpm2.cpp:1291,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1291,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_tpm2.cpp:1294,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1295,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_tpm2.cpp:1295,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_tpm2.cpp:1295,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1296,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tpm2.cpp:1296,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tpm2.cpp:1296,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1297,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1298,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1299,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1303,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1305,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:1305,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1306,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:1306,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1307,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:1307,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1308,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:1308,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1311,1
    - Dst: test
      Src: /src/botan/src/tests/test_tpm2.cpp:1311,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1312,1
    - Dst: test
      Src: /src/botan/src/tests/test_tpm2.cpp:1312,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1313,1
    - Dst: test
      Src: /src/botan/src/tests/test_tpm2.cpp:1313,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1314,1
    - Dst: test
      Src: /src/botan/src/tests/test_tpm2.cpp:1314,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:1319,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:1321,1
    - Dst: Botan_CLI::PerfTest_HashFunction::PerfTest_HashFunction
      Src: /src/botan/src/tests/test_tpm2.cpp:1322,1
    - Dst: Botan_Tests::CHECK
      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:1327,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:1328,1
    - Dst: auto::copy_state
      Src: /src/botan/src/tests/test_tpm2.cpp:1329,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1332,1
    - Dst: Botan_CLI::PerfTest_HashFunction::PerfTest_HashFunction
      Src: /src/botan/src/tests/test_tpm2.cpp:1335,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1336,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1337,1
    - Dst: auto::final_with_ticket
      Src: /src/botan/src/tests/test_tpm2.cpp:1338,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1339,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1340,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1341,1
    - Dst: Botan_CLI::PerfTest_HashFunction::PerfTest_HashFunction
      Src: /src/botan/src/tests/test_tpm2.cpp:1344,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1345,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1346,1
    - Dst: auto::final_with_ticket
      Src: /src/botan/src/tests/test_tpm2.cpp:1347,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1348,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1349,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1350,1
    - Dst: Botan::TPM2::copy_into<Botan::secure_vector<uint8_t>>
      Src: /src/botan/src/tests/test_tpm2.cpp:1352,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1353,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1355,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1357,1
    - Dst: Botan::TPM2::copy_into<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_tpm2.cpp:1358,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 77
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1362
      start: 1235
    functionDepth: 3
    functionLinenumber: 1235
    functionLinenumberEnd: 1362
    functionName: Botan_Tests::test_tpm2_hash
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - test_eq
    - Botan::hex_decode
    - Botan::TPM2::Session::unauthenticated_session
    - test_throws
    - Botan_CLI::PerfTest_HashFunction::PerfTest_HashFunction
    - Botan::HashFunction::create
    - Botan::TPM2::copy_into<Botan::secure_vector<uint8_t>>
    - auto::name
    - Botan_Tests::CHECK
    - auto::supports_algorithm
    - Botan_Tests::get_tpm2_context
    - test
    - confirm
    - std::make_unique<Botan::TPM2::HashFunction>
    - test_note
    - auto::new_object
    - auto::clear
    - auto::process
    - static_cast<uint8_t>
    - auto::final_with_ticket
    - require
    - Botan_Tests::bail_out
    - std::vector::size
    - auto::final
    - Botan::fmt
    - auto::output_length
    - auto::copy_state
    - Botan::TPM2::copy_into<std::vector<uint8_t>>
    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:53,1
    - Dst: manufacturer
      Src: /src/botan/src/tests/test_tpm2.cpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' ctx'
    argTypes:
    - std::shared_ptr<Botan::TPM2::Context>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: Botan_Tests::validate_context_environment
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 4
    functionsReached:
    - manufacturer
    - vendor
    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:57,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tpm2.cpp:58,1
    - Dst: Botan::TPM2::Context::create
      Src: /src/botan/src/tests/test_tpm2.cpp:63,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:63,1
    - Dst: Botan_Tests::validate_context_environment
      Src: /src/botan/src/tests/test_tpm2.cpp:64,1
    - Dst: auto::supports_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:68,1
    - Dst: auto::use_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:69,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:69,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - rng_tag
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 73
    functionName: Botan_Tests::get_tpm2_context
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 14
    functionsReached:
    - Botan_Tests::validate_context_environment
    - auto::use_botan_crypto_backend
    - Botan::TPM2::Context::create
    - auto::value
    - auto::supports_botan_crypto_backend
    - Botan_Tests::test_encoding_options
    - 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: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    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:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - 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:
    - 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:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 92
    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: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    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: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    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:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 101
    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: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    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:110,1
    - Dst: Tss2_TctiLdr_Finalize
      Src: /src/botan/src/tests/test_tpm2.cpp:112,1
    - Dst: Esys_Finalize
      Src: /src/botan/src/tests/test_tpm2.cpp:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - esys_ctx
    argTypes:
    - ESYS_CONTEXT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 115
    functionName: operator()(ESYS_CONTEXT* esys_ctx)
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - Esys_GetTcti
    - Tss2_TctiLdr_Finalize
    - Esys_Finalize
    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:119,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:120,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tpm2.cpp:121,1
    - Dst: Tss2_TctiLdr_Initialize_Ex
      Src: /src/botan/src/tests/test_tpm2.cpp:130,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_tpm2.cpp:130,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_tpm2.cpp:130,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tpm2.cpp:132,1
    - Dst: Esys_Initialize
      Src: /src/botan/src/tests/test_tpm2.cpp:135,1
    - Dst: Botan::out_ptr
      Src: /src/botan/src/tests/test_tpm2.cpp:135,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tpm2.cpp:137,1
    - Dst: Botan::TPM2::Context::create
      Src: /src/botan/src/tests/test_tpm2.cpp:142,1
    - Dst: std::unique_ptr::get
      Src: /src/botan/src/tests/test_tpm2.cpp:142,1
    - Dst: Botan_Tests::validate_context_environment
      Src: /src/botan/src/tests/test_tpm2.cpp:143,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 148
    functionName: Botan_Tests::get_external_tpm2_context
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::validate_context_environment
    - Test_Error
    - auto::value
    - Botan_Tests::test_encoding_options
    - Tss2_TctiLdr_Initialize_Ex
    - Botan::TPM2::Context::create
    - std::unique_ptr::get
    - Botan::out_ptr
    - auto::c_str
    - Esys_Initialize
    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:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 164
    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:169,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_tpm2.cpp:170,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_tpm2.cpp:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 177
    functionName: Botan_Tests::not_zero_64
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 2
    functionsReached:
    - Botan::BufferSlicer::remaining
    - Botan::BufferSlicer::take
    - Botan::load_be
    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:180,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:182,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:186,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:188,1
    - Dst: auto::vendor
      Src: /src/botan/src/tests/test_tpm2.cpp:188,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:189,1
    - Dst: auto::manufacturer
      Src: /src/botan/src/tests/test_tpm2.cpp:189,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:192,1
    - Dst: auto::max_random_bytes_per_request
      Src: /src/botan/src/tests/test_tpm2.cpp:194,1
    - Dst: test_gte
      Src: /src/botan/src/tests/test_tpm2.cpp:195,1
    - Dst: test_lte
      Src: /src/botan/src/tests/test_tpm2.cpp:196,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:199,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:201,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:201,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:202,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:202,1
    - Dst: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:210,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:212,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:212,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:213,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:213,1
    - Dst: confirm
      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: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:215,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 179
    functionDepth: 3
    functionLinenumber: 179
    functionLinenumberEnd: 218
    functionName: Botan_Tests::test_tpm2_properties
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - auto::vendor
    - Botan_Tests::CHECK
    - auto::manufacturer
    - test_lte
    - auto::supports_algorithm
    - test_gte
    - Botan_Tests::bail_out
    - Botan_Tests::get_tpm2_context
    - auto::max_random_bytes_per_request
    - confirm
    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:221,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:223,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:226,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:229,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:231,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:232,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:232,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:233,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:233,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:234,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:234,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:235,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:236,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:239,1
    - Dst: auto::supports_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:241,1
    - Dst: auto::uses_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:242,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:243,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:245,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:249,1
    - Dst: auto::use_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:251,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:251,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:255,1
    - Dst: auto::use_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:257,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:257,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:263,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:264,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:265,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:266,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:266,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:267,1
    - Dst: auto::key_length
      Src: /src/botan/src/tests/test_tpm2.cpp:267,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:268,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:268,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 220
    functionDepth: 3
    functionLinenumber: 220
    functionLinenumberEnd: 272
    functionName: Botan_Tests::test_tpm2_context
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - auto::empty
    - test_throws
    - auto::handles
    - Botan_Tests::CHECK
    - auto::key_length
    - auto::supports_botan_crypto_backend
    - Botan_Tests::get_tpm2_context
    - Botan_Tests::Test::new_rng
    - confirm
    - Botan_Tests::test_encoding_options
    - require
    - auto::uses_botan_crypto_backend
    - Botan_Tests::bail_out
    - auto::use_botan_crypto_backend
    - auto::storage_root_key
    - Botan::value_exists
    - auto::persistent_handles
    - auto::algo_name
    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:283,1
    - Dst: Esys_TRSess_SetAttributes
      Src: /src/botan/src/tests/test_tpm2.cpp:297,1
    - Dst: Esys_GetRandom
      Src: /src/botan/src/tests/test_tpm2.cpp:306,1
    - Dst: Botan::out_ptr
      Src: /src/botan/src/tests/test_tpm2.cpp:306,1
    - Dst: std::make_pair
      Src: /src/botan/src/tests/test_tpm2.cpp:307,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tpm2.cpp:307,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:311,1
    - Dst: Botan_Tests::get_external_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:313,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:315,1
    - Dst: Botan::TPM2::Context::create
      Src: /src/botan/src/tests/test_tpm2.cpp:322,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:322,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:323,1
    - Dst: Botan::RandomNumberGenerator
      Src: /src/botan/src/tests/test_tpm2.cpp:324,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_tpm2.cpp:326,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:327,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tpm2.cpp:327,1
    - Dst: raw_start_session
      Src: /src/botan/src/tests/test_tpm2.cpp:332,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:332,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:333,1
    - Dst: raw_get_random_bytes
      Src: /src/botan/src/tests/test_tpm2.cpp:335,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:335,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:336,1
    - Dst: test_eq_sz
      Src: /src/botan/src/tests/test_tpm2.cpp:337,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:340,1
    - Dst: Botan_Tests::get_external_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:342,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:344,1
    - Dst: Botan::TPM2::Context::create
      Src: /src/botan/src/tests/test_tpm2.cpp:349,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:349,1
    - Dst: auto::supports_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:350,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:351,1
    - Dst: auto::use_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:355,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:355,1
    - Dst: raw_start_session
      Src: /src/botan/src/tests/test_tpm2.cpp:358,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:358,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:363,1
    - Dst: Esys_SetCryptoCallbacks
      Src: /src/botan/src/tests/test_tpm2.cpp:367,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:367,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:368,1
    - Dst: raw_start_session
      Src: /src/botan/src/tests/test_tpm2.cpp:370,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:370,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:371,1
    - Dst: raw_get_random_bytes
      Src: /src/botan/src/tests/test_tpm2.cpp:373,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:373,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:374,1
    - Dst: test_eq_sz
      Src: /src/botan/src/tests/test_tpm2.cpp:375,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:380,1
    - Dst: Botan::TPM2::supports_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:381,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:382,1
    - Dst: Botan_Tests::get_external_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:386,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:388,1
    - Dst: Botan::TPM2::use_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:392,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:392,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:392,1
    - Dst: raw_start_session
      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::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:395,1
    - Dst: raw_get_random_bytes
      Src: /src/botan/src/tests/test_tpm2.cpp:397,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:397,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:398,1
    - Dst: test_eq_sz
      Src: /src/botan/src/tests/test_tpm2.cpp:399,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 274
    functionDepth: 3
    functionLinenumber: 274
    functionLinenumberEnd: 403
    functionName: Botan_Tests::test_external_tpm2_context
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan::TPM2::use_botan_crypto_backend
    - Botan::TPM2::Session::unauthenticated_session
    - test_eq_sz
    - auto::get
    - Botan::TPM2::Context::create
    - Botan::TPM2::supports_botan_crypto_backend
    - Botan::out_ptr
    - auto::size
    - raw_start_session
    - Botan_Tests::CHECK
    - auto::supports_botan_crypto_backend
    - Botan_Tests::Test::new_rng
    - raw_get_random_bytes
    - Botan_Tests::get_external_tpm2_context
    - Botan::RandomNumberGenerator
    - require
    - Botan_Tests::bail_out
    - std::move
    - Esys_GetRandom
    - Esys_StartAuthSession
    - Botan::TPM2::check_rc
    - auto::use_botan_crypto_backend
    - auto::random_vec
    - std::make_pair
    - Esys_SetCryptoCallbacks
    - Esys_TRSess_SetAttributes
    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:406,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:408,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:412,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:412,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:413,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:413,1
    - Dst: handle
      Src: /src/botan/src/tests/test_tpm2.cpp:413,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:414,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:414,1
    - Dst: tpm_nonce
      Src: /src/botan/src/tests/test_tpm2.cpp:414,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:418,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:422,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:422,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:423,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:423,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: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:429,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:434,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:435,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:435,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:436,1
    - Dst: Botan::TPM2::Session::authenticated_session
      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: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:443,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:445,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:447,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:448,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:449,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:449,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:450,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:450,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:452,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:452,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:453,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:453,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:456,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:457,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 405
    functionDepth: 3
    functionLinenumber: 405
    functionLinenumberEnd: 461
    functionName: Botan_Tests::test_tpm2_sessions
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan::fmt
    - Botan_Tests::CHECK
    - Botan::TPM2::Session::unauthenticated_session
    - auto::storage_root_key
    - Botan_Tests::load_persistent
    - handle
    - auto::handles
    - tpm_nonce
    - ok
    - Botan_Tests::test_encoding_options
    - require
    - Botan::TPM2::Session::authenticated_session
    - Botan_Tests::bail_out
    - Botan_Tests::get_tpm2_context
    - auto::algo_name
    - confirm
    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:464,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:466,1
    - Dst: Botan::RandomNumberGenerator
      Src: /src/botan/src/tests/test_tpm2.cpp:469,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:469,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:472,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:474,1
    - Dst: auto::accepts_input
      Src: /src/botan/src/tests/test_tpm2.cpp:474,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:475,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_tpm2.cpp:475,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:476,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_tpm2.cpp:476,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:478,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_tpm2.cpp:478,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:481,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_tpm2.cpp:484,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:485,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:485,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_tpm2.cpp:488,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:489,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:489,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_tpm2.cpp:492,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:493,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:493,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:496,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_tpm2.cpp:499,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:500,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:500,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_tpm2.cpp:503,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:504,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:504,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_tpm2.cpp:507,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:508,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:508,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 463
    functionDepth: 3
    functionLinenumber: 463
    functionLinenumberEnd: 511
    functionName: Botan_Tests::test_tpm2_rng
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - auto::name
    - test_eq
    - auto::clear
    - Botan_Tests::not_zero_64
    - Botan_Tests::CHECK
    - Botan::TPM2::Session::unauthenticated_session
    - test_no_throw
    - auto::randomize
    - Botan::RandomNumberGenerator
    - auto::is_seeded
    - auto::randomize_with_input
    - Botan_Tests::bail_out
    - Botan_Tests::get_tpm2_context
    - confirm
    - auto::accepts_input
    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:521,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:522,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_tpm2.cpp:524,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tpm2.cpp:524,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tpm2.cpp:524,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tpm2.cpp:524,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:528,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:530,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:534,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:534,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:535,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:535,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: 537
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 537
    functionName: Botan_Tests::load_persistent
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 12
    functionsReached:
    - test_eq
    - auto::end
    - Botan_Tests::load_persistent
    - auto::handles
    - persistent_handles
    - auto::algo_name
    - test_is_eq
    - std::find
    - auto::begin
    - confirm
    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:540,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:542,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:545,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:547,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/tests/test_tpm2.cpp:548,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:548,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:551,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:553,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:553,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:554,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:554,1
    - Dst: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:562,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:566,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:567,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:567,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:567,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:571,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:574,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:582,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_tpm2.cpp:583,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:587,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:588,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:588,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:590,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:592,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:592,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:595,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:599,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:602,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:607,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:609,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:612,1
    - Dst: sign
      Src: /src/botan/src/tests/test_tpm2.cpp:613,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:615,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:615,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:618,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_tpm2.cpp:619,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:620,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:620,1
    - Dst: auto::attributes
      Src: /src/botan/src/tests/test_tpm2.cpp:627,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:628,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:631,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:631,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:634,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:637,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:638,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:639,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:645,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_tpm2.cpp:649,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:649,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tpm2.cpp:651,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:651,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:657,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:659,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:660,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:660,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:661,1
    - Dst: Botan::RSA_PublicKey::RSA_PublicKey
      Src: /src/botan/src/tests/test_tpm2.cpp:665,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tpm2.cpp:665,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:665,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:667,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:668,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:668,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:669,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:673,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:675,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:676,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:681,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:682,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:683,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:686,1
    - Dst: Botan_Tests::load_persistent
      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::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:692,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:697,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:701,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:702,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:705,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:708,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:710,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:713,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:714,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:716,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:721,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:722,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_tpm2.cpp:725,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:726,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:727,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:730,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:732,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:733,1
    - Dst: Botan::TPM2::RSA_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:737,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:738,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:740,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:743,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:745,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:750,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:751,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:755,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:759,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:760,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:763,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:766,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:767,1
    - Dst: auto::private_key_bits
      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::raw_private_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:770,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:773,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:775,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:777,1
    - Dst: Botan::TPM2::RSA_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:782,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:784,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:785,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:785,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:786,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:786,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:788,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:789,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:790,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:792,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:792,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:793,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:793,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:799,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:800,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:800,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:803,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:803,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_tpm2.cpp:806,1
    - Dst: Botan::TPM2::PrivateKey::load_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:808,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:809,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:810,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:810,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:812,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:813,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:815,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:816,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:821,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:822,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:822,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:823,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:824,1
    - Dst: Botan::TPM2::PublicKey::load_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:827,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:828,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:831,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:832,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:837,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:838,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:838,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:839,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:840,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:844,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:845,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:848,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:850,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:856,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:857,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:857,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:859,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:861,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:861,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:865,1
    - Dst: Botan::TPM2::RSA_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:869,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:870,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:871,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:871,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:872,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:872,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:873,1
    - Dst: sign_verify_roundtrip
      Src: /src/botan/src/tests/test_tpm2.cpp:873,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:876,1
    - Dst: auto::persist
      Src: /src/botan/src/tests/test_tpm2.cpp:877,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:878,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:878,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:879,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:879,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:879,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:880,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:880,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:881,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:882,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:883,1
    - Dst: auto::persist
      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_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:887,1
    - Dst: sign_verify_roundtrip
      Src: /src/botan/src/tests/test_tpm2.cpp:887,1
    - Dst: auto::evict
      Src: /src/botan/src/tests/test_tpm2.cpp:890,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tpm2.cpp:890,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:891,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:891,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:892,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:893,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:893,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 113
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 539
    functionDepth: 3
    functionLinenumber: 539
    functionLinenumberEnd: 896
    functionName: Botan_Tests::test_tpm2_rsa
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - sign
    - test_eq
    - auto::public_key
    - auto::empty
    - Botan::hex_decode
    - Botan::TPM2::RSA_PrivateKey::create_unrestricted_transient
    - auto::private_key_bits
    - Botan::TPM2::Session::unauthenticated_session
    - test_throws
    - auto::handles
    - Botan::as_span_of_bytes
    - Botan::PK_Verifier::verify_message
    - test_is_eq
    - Botan::TPM2::Session::authenticated_session
    - auto::algorithm_identifier
    - std::vector::reserve
    - Botan_Tests::CHECK
    - std::vector::emplace_back
    - auto::public_key_bits
    - Botan::RSA_PublicKey::RSA_PublicKey
    - auto::supports_algorithm
    - auto::evict
    - Botan::TPM2::PrivateKey::load_transient
    - Botan_Tests::get_tpm2_context
    - Botan_Tests::Test::new_rng
    - auto::raw_public_key_bits
    - confirm
    - sign_verify_roundtrip
    - Botan_Tests::load_persistent
    - static_cast<uint8_t>
    - test_no_throw
    - Botan_Tests::test_encoding_options
    - Botan::PK_Signer::sign_message
    - require
    - Botan_Tests::bail_out
    - Botan::TPM2::PublicKey::load_transient
    - auto::persist
    - std::vector::size
    - Botan::PK_Encryptor_EME::encrypt
    - verify
    - std::move
    - Botan::fmt
    - auto::storage_root_key
    - auto::reset
    - Botan::PK_Decryptor_EME::decrypt
    - Botan::value_exists
    - Botan_Tests::Test::mutate_vec
    - auto::raw_private_key_bits
    - auto::persistent_handles
    - auto::attributes
    - auto::algo_name
    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:908,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:909,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_tpm2.cpp:911,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tpm2.cpp:911,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tpm2.cpp:911,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tpm2.cpp:911,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:915,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:917,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:921,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:921,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:922,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:922,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: 924
      start: 902
    functionDepth: 2
    functionLinenumber: 902
    functionLinenumberEnd: 924
    functionName: Botan_Tests::load_persistent_ecc
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 2
    functionsReached:
    - test_eq
    - auto::end
    - Botan_Tests::load_persistent
    - auto::handles
    - persistent_handles
    - auto::algo_name
    - test_is_eq
    - std::find
    - auto::begin
    - confirm
    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:928,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:930,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:933,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:935,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/tests/test_tpm2.cpp:936,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:936,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:939,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:941,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:941,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:942,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:942,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:944,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:947,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:949,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:949,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:949,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:952,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:955,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:963,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_tpm2.cpp:964,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:968,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:969,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:969,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:971,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:973,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:973,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:975,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:978,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:982,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:986,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:989,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:992,1
    - Dst: sign
      Src: /src/botan/src/tests/test_tpm2.cpp:993,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:995,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:995,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:998,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_tpm2.cpp:999,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1000,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:1000,1
    - Dst: auto::attributes
      Src: /src/botan/src/tests/test_tpm2.cpp:1007,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1008,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1011,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:1011,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1014,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1017,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1018,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1019,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1024,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_tpm2.cpp:1029,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:1029,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tpm2.cpp:1031,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1031,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1038,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:1040,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1041,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:1041,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1042,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1047,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:1050,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1051,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:1051,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1052,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1056,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1058,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1059,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1064,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:1065,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1066,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1071,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1073,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:1075,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1076,1
    - Dst: Botan::TPM2::EC_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:1079,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_tpm2.cpp:1080,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1081,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1083,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:1091,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_tpm2.cpp:1092,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1096,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1097,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1097,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1099,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1101,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1101,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1104,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1106,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:1108,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1110,1
    - Dst: Botan::TPM2::EC_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:1114,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_tpm2.cpp:1115,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1117,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1118,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1118,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1119,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1119,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1121,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1122,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1123,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1125,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1125,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1126,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1126,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1132,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1133,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1133,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1136,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1136,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_tpm2.cpp:1139,1
    - Dst: Botan::TPM2::PrivateKey::load_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:1141,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1142,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1143,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:1143,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1145,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1146,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1148,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1149,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1154,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1155,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1155,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1156,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1157,1
    - Dst: Botan::TPM2::PublicKey::load_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:1160,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1161,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1164,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1165,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1168,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1171,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:1172,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1178,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1179,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1179,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1181,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1183,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1183,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1187,1
    - Dst: Botan::TPM2::EC_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:1190,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_tpm2.cpp:1191,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1192,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1193,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1193,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1194,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1194,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:1195,1
    - Dst: sign_verify_roundtrip
      Src: /src/botan/src/tests/test_tpm2.cpp:1195,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1198,1
    - Dst: auto::persist
      Src: /src/botan/src/tests/test_tpm2.cpp:1199,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1200,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1200,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1201,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:1201,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1201,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1202,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1202,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1203,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1204,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:1205,1
    - Dst: auto::persist
      Src: /src/botan/src/tests/test_tpm2.cpp:1206,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:1207,1
    - Dst: auto::persist
      Src: /src/botan/src/tests/test_tpm2.cpp:1208,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:1209,1
    - Dst: sign_verify_roundtrip
      Src: /src/botan/src/tests/test_tpm2.cpp:1209,1
    - Dst: auto::evict
      Src: /src/botan/src/tests/test_tpm2.cpp:1212,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tpm2.cpp:1212,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1213,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1213,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1214,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:1215,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1215,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1219,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1220,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:1221,1
    - Dst: Botan::ECDSA_PublicKey
      Src: /src/botan/src/tests/test_tpm2.cpp:1222,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tpm2.cpp:1222,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1222,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1226,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:1227,1
    - Dst: Botan::ECDSA_PublicKey
      Src: /src/botan/src/tests/test_tpm2.cpp:1228,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tpm2.cpp:1228,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1228,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 103
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 926
    functionDepth: 3
    functionLinenumber: 926
    functionLinenumberEnd: 1232
    functionName: Botan_Tests::test_tpm2_ecc
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - sign
    - test_eq
    - auto::public_key
    - auto::empty
    - Botan::hex_decode
    - Botan::TPM2::Session::unauthenticated_session
    - test_throws
    - auto::handles
    - Botan::as_span_of_bytes
    - Botan::PK_Verifier::verify_message
    - test_is_eq
    - Botan::TPM2::Session::authenticated_session
    - auto::algorithm_identifier
    - std::vector::reserve
    - Botan::TPM2::EC_PrivateKey::create_unrestricted_transient
    - Botan_Tests::CHECK
    - std::vector::emplace_back
    - auto::public_key_bits
    - auto::supports_algorithm
    - auto::evict
    - Botan::TPM2::PrivateKey::load_transient
    - Botan_Tests::get_tpm2_context
    - Botan_Tests::Test::new_rng
    - auto::raw_public_key_bits
    - confirm
    - sign_verify_roundtrip
    - Botan_Tests::load_persistent
    - static_cast<uint8_t>
    - test_no_throw
    - Botan_Tests::test_encoding_options
    - Botan::PK_Signer::sign_message
    - require
    - Botan_Tests::bail_out
    - Botan::TPM2::PublicKey::load_transient
    - auto::persist
    - std::vector::size
    - verify
    - std::move
    - Botan::fmt
    - auto::storage_root_key
    - auto::reset
    - Botan::EC_Group::from_name
    - Botan::value_exists
    - Botan_Tests::load_persistent_ecc
    - Botan_Tests::Test::mutate_vec
    - auto::raw_private_key_bits
    - auto::persistent_handles
    - auto::attributes
    - auto::algo_name
    - Botan::ECDSA_PublicKey
    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:1236,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:1238,1
    - Dst: std::make_unique<Botan::TPM2::HashFunction>
      Src: /src/botan/src/tests/test_tpm2.cpp:1244,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1245,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_tpm2.cpp:1250,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_tpm2.cpp:1253,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:1253,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_tpm2.cpp:1258,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:1258,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1262,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_tpm2.cpp:1262,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_tpm2.cpp:1262,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1263,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tpm2.cpp:1263,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tpm2.cpp:1263,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1266,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1267,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1268,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_tpm2.cpp:1268,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1268,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1271,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1271,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1271,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:1276,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_tpm2.cpp:1277,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1282,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1283,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_tpm2.cpp:1283,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1283,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1284,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1285,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1285,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1288,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_tpm2.cpp:1289,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1290,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1291,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_tpm2.cpp:1291,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1291,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_tpm2.cpp:1294,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1295,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_tpm2.cpp:1295,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_tpm2.cpp:1295,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1296,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tpm2.cpp:1296,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tpm2.cpp:1296,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1297,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1298,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1299,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1303,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1305,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:1305,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1306,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:1306,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1307,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:1307,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1308,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:1308,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1311,1
    - Dst: test
      Src: /src/botan/src/tests/test_tpm2.cpp:1311,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1312,1
    - Dst: test
      Src: /src/botan/src/tests/test_tpm2.cpp:1312,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1313,1
    - Dst: test
      Src: /src/botan/src/tests/test_tpm2.cpp:1313,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1314,1
    - Dst: test
      Src: /src/botan/src/tests/test_tpm2.cpp:1314,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:1319,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:1321,1
    - Dst: Botan_CLI::PerfTest_HashFunction::PerfTest_HashFunction
      Src: /src/botan/src/tests/test_tpm2.cpp:1322,1
    - Dst: Botan_Tests::CHECK
      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:1327,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:1328,1
    - Dst: auto::copy_state
      Src: /src/botan/src/tests/test_tpm2.cpp:1329,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1332,1
    - Dst: Botan_CLI::PerfTest_HashFunction::PerfTest_HashFunction
      Src: /src/botan/src/tests/test_tpm2.cpp:1335,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1336,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1337,1
    - Dst: auto::final_with_ticket
      Src: /src/botan/src/tests/test_tpm2.cpp:1338,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1339,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1340,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1341,1
    - Dst: Botan_CLI::PerfTest_HashFunction::PerfTest_HashFunction
      Src: /src/botan/src/tests/test_tpm2.cpp:1344,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1345,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1346,1
    - Dst: auto::final_with_ticket
      Src: /src/botan/src/tests/test_tpm2.cpp:1347,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1348,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1349,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1350,1
    - Dst: Botan::TPM2::copy_into<Botan::secure_vector<uint8_t>>
      Src: /src/botan/src/tests/test_tpm2.cpp:1352,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1353,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1355,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1357,1
    - Dst: Botan::TPM2::copy_into<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_tpm2.cpp:1358,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 77
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1362
      start: 1235
    functionDepth: 3
    functionLinenumber: 1235
    functionLinenumberEnd: 1362
    functionName: Botan_Tests::test_tpm2_hash
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - test_eq
    - Botan::hex_decode
    - Botan::TPM2::Session::unauthenticated_session
    - test_throws
    - Botan_CLI::PerfTest_HashFunction::PerfTest_HashFunction
    - Botan::HashFunction::create
    - Botan::TPM2::copy_into<Botan::secure_vector<uint8_t>>
    - auto::name
    - Botan_Tests::CHECK
    - auto::supports_algorithm
    - Botan_Tests::get_tpm2_context
    - test
    - confirm
    - std::make_unique<Botan::TPM2::HashFunction>
    - test_note
    - auto::new_object
    - auto::clear
    - auto::process
    - static_cast<uint8_t>
    - auto::final_with_ticket
    - require
    - Botan_Tests::bail_out
    - std::vector::size
    - auto::final
    - Botan::fmt
    - auto::output_length
    - auto::copy_state
    - Botan::TPM2::copy_into<std::vector<uint8_t>>
    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:53,1
    - Dst: manufacturer
      Src: /src/botan/src/tests/test_tpm2.cpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' ctx'
    argTypes:
    - std::shared_ptr<Botan::TPM2::Context>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: Botan_Tests::validate_context_environment
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 6
    functionsReached:
    - manufacturer
    - vendor
    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:57,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tpm2.cpp:58,1
    - Dst: Botan::TPM2::Context::create
      Src: /src/botan/src/tests/test_tpm2.cpp:63,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:63,1
    - Dst: Botan_Tests::validate_context_environment
      Src: /src/botan/src/tests/test_tpm2.cpp:64,1
    - Dst: auto::supports_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:68,1
    - Dst: auto::use_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:69,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:69,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - rng_tag
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 73
    functionName: Botan_Tests::get_tpm2_context
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 21
    functionsReached:
    - Botan_Tests::validate_context_environment
    - auto::use_botan_crypto_backend
    - Botan::TPM2::Context::create
    - auto::value
    - auto::supports_botan_crypto_backend
    - Botan_Tests::test_encoding_options
    - 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: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    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:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - 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:
    - 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:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - TR
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 92
    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: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    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: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    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:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 101
    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: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    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:110,1
    - Dst: Tss2_TctiLdr_Finalize
      Src: /src/botan/src/tests/test_tpm2.cpp:112,1
    - Dst: Esys_Finalize
      Src: /src/botan/src/tests/test_tpm2.cpp:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - esys_ctx
    argTypes:
    - ESYS_CONTEXT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 115
    functionName: operator()(ESYS_CONTEXT* esys_ctx)
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - Esys_GetTcti
    - Tss2_TctiLdr_Finalize
    - Esys_Finalize
    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:119,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:120,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_tpm2.cpp:121,1
    - Dst: Tss2_TctiLdr_Initialize_Ex
      Src: /src/botan/src/tests/test_tpm2.cpp:130,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_tpm2.cpp:130,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_tpm2.cpp:130,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tpm2.cpp:132,1
    - Dst: Esys_Initialize
      Src: /src/botan/src/tests/test_tpm2.cpp:135,1
    - Dst: Botan::out_ptr
      Src: /src/botan/src/tests/test_tpm2.cpp:135,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tpm2.cpp:137,1
    - Dst: Botan::TPM2::Context::create
      Src: /src/botan/src/tests/test_tpm2.cpp:142,1
    - Dst: std::unique_ptr::get
      Src: /src/botan/src/tests/test_tpm2.cpp:142,1
    - Dst: Botan_Tests::validate_context_environment
      Src: /src/botan/src/tests/test_tpm2.cpp:143,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 148
    functionName: Botan_Tests::get_external_tpm2_context
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::validate_context_environment
    - Test_Error
    - auto::value
    - Botan_Tests::test_encoding_options
    - Tss2_TctiLdr_Initialize_Ex
    - Botan::TPM2::Context::create
    - std::unique_ptr::get
    - Botan::out_ptr
    - auto::c_str
    - Esys_Initialize
    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:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 164
    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:169,1
    - Dst: Botan::load_be
      Src: /src/botan/src/tests/test_tpm2.cpp:170,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_tpm2.cpp:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 177
    functionName: Botan_Tests::not_zero_64
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 3
    functionsReached:
    - Botan::BufferSlicer::remaining
    - Botan::BufferSlicer::take
    - Botan::load_be
    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:180,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:182,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:186,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:188,1
    - Dst: auto::vendor
      Src: /src/botan/src/tests/test_tpm2.cpp:188,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:189,1
    - Dst: auto::manufacturer
      Src: /src/botan/src/tests/test_tpm2.cpp:189,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:192,1
    - Dst: auto::max_random_bytes_per_request
      Src: /src/botan/src/tests/test_tpm2.cpp:194,1
    - Dst: test_gte
      Src: /src/botan/src/tests/test_tpm2.cpp:195,1
    - Dst: test_lte
      Src: /src/botan/src/tests/test_tpm2.cpp:196,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:199,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:201,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:201,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:202,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:202,1
    - Dst: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:210,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:212,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:212,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:213,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:213,1
    - Dst: confirm
      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: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:215,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 179
    functionDepth: 3
    functionLinenumber: 179
    functionLinenumberEnd: 218
    functionName: Botan_Tests::test_tpm2_properties
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - auto::vendor
    - Botan_Tests::CHECK
    - auto::manufacturer
    - test_lte
    - auto::supports_algorithm
    - test_gte
    - Botan_Tests::bail_out
    - Botan_Tests::get_tpm2_context
    - auto::max_random_bytes_per_request
    - confirm
    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:221,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:223,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:226,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:229,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:231,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:232,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:232,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:233,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:233,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:234,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:234,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:235,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:236,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:239,1
    - Dst: auto::supports_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:241,1
    - Dst: auto::uses_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:242,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:243,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:245,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:249,1
    - Dst: auto::use_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:251,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:251,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:255,1
    - Dst: auto::use_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:257,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:257,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:263,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:264,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:265,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:266,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:266,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:267,1
    - Dst: auto::key_length
      Src: /src/botan/src/tests/test_tpm2.cpp:267,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:268,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:268,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 220
    functionDepth: 3
    functionLinenumber: 220
    functionLinenumberEnd: 272
    functionName: Botan_Tests::test_tpm2_context
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - auto::empty
    - test_throws
    - auto::handles
    - Botan_Tests::CHECK
    - auto::key_length
    - auto::supports_botan_crypto_backend
    - Botan_Tests::get_tpm2_context
    - Botan_Tests::Test::new_rng
    - confirm
    - Botan_Tests::test_encoding_options
    - require
    - auto::uses_botan_crypto_backend
    - Botan_Tests::bail_out
    - auto::use_botan_crypto_backend
    - auto::storage_root_key
    - Botan::value_exists
    - auto::persistent_handles
    - auto::algo_name
    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:283,1
    - Dst: Esys_TRSess_SetAttributes
      Src: /src/botan/src/tests/test_tpm2.cpp:297,1
    - Dst: Esys_GetRandom
      Src: /src/botan/src/tests/test_tpm2.cpp:306,1
    - Dst: Botan::out_ptr
      Src: /src/botan/src/tests/test_tpm2.cpp:306,1
    - Dst: std::make_pair
      Src: /src/botan/src/tests/test_tpm2.cpp:307,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tpm2.cpp:307,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:311,1
    - Dst: Botan_Tests::get_external_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:313,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:315,1
    - Dst: Botan::TPM2::Context::create
      Src: /src/botan/src/tests/test_tpm2.cpp:322,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:322,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:323,1
    - Dst: Botan::RandomNumberGenerator
      Src: /src/botan/src/tests/test_tpm2.cpp:324,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_tpm2.cpp:326,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:327,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tpm2.cpp:327,1
    - Dst: raw_start_session
      Src: /src/botan/src/tests/test_tpm2.cpp:332,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:332,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:333,1
    - Dst: raw_get_random_bytes
      Src: /src/botan/src/tests/test_tpm2.cpp:335,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:335,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:336,1
    - Dst: test_eq_sz
      Src: /src/botan/src/tests/test_tpm2.cpp:337,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:340,1
    - Dst: Botan_Tests::get_external_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:342,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:344,1
    - Dst: Botan::TPM2::Context::create
      Src: /src/botan/src/tests/test_tpm2.cpp:349,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:349,1
    - Dst: auto::supports_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:350,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:351,1
    - Dst: auto::use_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:355,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:355,1
    - Dst: raw_start_session
      Src: /src/botan/src/tests/test_tpm2.cpp:358,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:358,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:363,1
    - Dst: Esys_SetCryptoCallbacks
      Src: /src/botan/src/tests/test_tpm2.cpp:367,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:367,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:368,1
    - Dst: raw_start_session
      Src: /src/botan/src/tests/test_tpm2.cpp:370,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:370,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:371,1
    - Dst: raw_get_random_bytes
      Src: /src/botan/src/tests/test_tpm2.cpp:373,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:373,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:374,1
    - Dst: test_eq_sz
      Src: /src/botan/src/tests/test_tpm2.cpp:375,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:380,1
    - Dst: Botan::TPM2::supports_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:381,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:382,1
    - Dst: Botan_Tests::get_external_tpm2_context
      Src: /src/botan/src/tests/test_tpm2.cpp:386,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:388,1
    - Dst: Botan::TPM2::use_botan_crypto_backend
      Src: /src/botan/src/tests/test_tpm2.cpp:392,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:392,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:392,1
    - Dst: raw_start_session
      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::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:395,1
    - Dst: raw_get_random_bytes
      Src: /src/botan/src/tests/test_tpm2.cpp:397,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_tpm2.cpp:397,1
    - Dst: Botan::TPM2::check_rc
      Src: /src/botan/src/tests/test_tpm2.cpp:398,1
    - Dst: test_eq_sz
      Src: /src/botan/src/tests/test_tpm2.cpp:399,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 274
    functionDepth: 3
    functionLinenumber: 274
    functionLinenumberEnd: 403
    functionName: Botan_Tests::test_external_tpm2_context
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan::TPM2::use_botan_crypto_backend
    - Botan::TPM2::Session::unauthenticated_session
    - test_eq_sz
    - auto::get
    - Botan::TPM2::Context::create
    - Botan::TPM2::supports_botan_crypto_backend
    - Botan::out_ptr
    - auto::size
    - raw_start_session
    - Botan_Tests::CHECK
    - auto::supports_botan_crypto_backend
    - Botan_Tests::Test::new_rng
    - raw_get_random_bytes
    - Botan_Tests::get_external_tpm2_context
    - Botan::RandomNumberGenerator
    - require
    - Botan_Tests::bail_out
    - std::move
    - Esys_GetRandom
    - Esys_StartAuthSession
    - Botan::TPM2::check_rc
    - auto::use_botan_crypto_backend
    - auto::random_vec
    - std::make_pair
    - Esys_SetCryptoCallbacks
    - Esys_TRSess_SetAttributes
    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:406,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:408,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:412,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:412,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:413,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:413,1
    - Dst: handle
      Src: /src/botan/src/tests/test_tpm2.cpp:413,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:414,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:414,1
    - Dst: tpm_nonce
      Src: /src/botan/src/tests/test_tpm2.cpp:414,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:418,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:422,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:422,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:423,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:423,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: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:429,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:434,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:435,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:435,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:436,1
    - Dst: Botan::TPM2::Session::authenticated_session
      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: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:443,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:445,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:447,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:448,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:449,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:449,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:450,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:450,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:452,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:452,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:453,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:453,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:456,1
    - Dst: ok
      Src: /src/botan/src/tests/test_tpm2.cpp:457,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:457,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 405
    functionDepth: 3
    functionLinenumber: 405
    functionLinenumberEnd: 461
    functionName: Botan_Tests::test_tpm2_sessions
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan::fmt
    - Botan_Tests::CHECK
    - Botan::TPM2::Session::unauthenticated_session
    - auto::storage_root_key
    - Botan_Tests::load_persistent
    - handle
    - auto::handles
    - tpm_nonce
    - ok
    - Botan_Tests::test_encoding_options
    - require
    - Botan::TPM2::Session::authenticated_session
    - Botan_Tests::bail_out
    - Botan_Tests::get_tpm2_context
    - auto::algo_name
    - confirm
    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:464,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:466,1
    - Dst: Botan::RandomNumberGenerator
      Src: /src/botan/src/tests/test_tpm2.cpp:469,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:469,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:472,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:474,1
    - Dst: auto::accepts_input
      Src: /src/botan/src/tests/test_tpm2.cpp:474,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:475,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/tests/test_tpm2.cpp:475,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:476,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_tpm2.cpp:476,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:478,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_tpm2.cpp:478,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:481,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_tpm2.cpp:484,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:485,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:485,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_tpm2.cpp:488,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:489,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:489,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_tpm2.cpp:492,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:493,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:493,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:496,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_tpm2.cpp:499,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:500,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:500,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_tpm2.cpp:503,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:504,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:504,1
    - Dst: auto::randomize_with_input
      Src: /src/botan/src/tests/test_tpm2.cpp:507,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:508,1
    - Dst: Botan_Tests::not_zero_64
      Src: /src/botan/src/tests/test_tpm2.cpp:508,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 463
    functionDepth: 3
    functionLinenumber: 463
    functionLinenumberEnd: 511
    functionName: Botan_Tests::test_tpm2_rng
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - auto::name
    - test_eq
    - auto::clear
    - Botan_Tests::not_zero_64
    - Botan_Tests::CHECK
    - Botan::TPM2::Session::unauthenticated_session
    - test_no_throw
    - auto::randomize
    - Botan::RandomNumberGenerator
    - auto::is_seeded
    - auto::randomize_with_input
    - Botan_Tests::bail_out
    - Botan_Tests::get_tpm2_context
    - confirm
    - auto::accepts_input
    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:521,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:522,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_tpm2.cpp:524,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tpm2.cpp:524,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tpm2.cpp:524,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tpm2.cpp:524,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:528,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:530,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:534,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:534,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:535,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:535,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: 537
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 537
    functionName: Botan_Tests::load_persistent
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 17
    functionsReached:
    - test_eq
    - auto::end
    - Botan_Tests::load_persistent
    - auto::handles
    - persistent_handles
    - auto::algo_name
    - test_is_eq
    - std::find
    - auto::begin
    - confirm
    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:540,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:542,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:545,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:547,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/tests/test_tpm2.cpp:548,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:548,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:551,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:553,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:553,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:554,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:554,1
    - Dst: confirm
      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: confirm
      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: confirm
      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: confirm
      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: confirm
      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: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:562,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:566,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:567,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:567,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:567,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:571,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:574,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:582,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_tpm2.cpp:583,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:587,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:588,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:588,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:590,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:592,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:592,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:595,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:599,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:602,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:607,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:609,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:612,1
    - Dst: sign
      Src: /src/botan/src/tests/test_tpm2.cpp:613,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:615,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:615,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:618,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_tpm2.cpp:619,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:620,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:620,1
    - Dst: auto::attributes
      Src: /src/botan/src/tests/test_tpm2.cpp:627,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:628,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:631,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:631,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:634,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:637,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:638,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:639,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:645,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_tpm2.cpp:649,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:649,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tpm2.cpp:651,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:651,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:657,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:659,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:660,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:660,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:661,1
    - Dst: Botan::RSA_PublicKey::RSA_PublicKey
      Src: /src/botan/src/tests/test_tpm2.cpp:665,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tpm2.cpp:665,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:665,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:667,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:668,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:668,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:669,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:673,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:675,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:676,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:681,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:682,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:683,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:686,1
    - Dst: Botan_Tests::load_persistent
      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::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:692,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:697,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:701,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:702,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:705,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:708,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:710,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:713,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:714,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:716,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:721,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:722,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_tpm2.cpp:725,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:726,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:727,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:730,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:732,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:733,1
    - Dst: Botan::TPM2::RSA_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:737,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:738,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:740,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:743,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:745,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:750,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:751,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:755,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_tpm2.cpp:759,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:760,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:763,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:766,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:767,1
    - Dst: auto::private_key_bits
      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::raw_private_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:770,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:773,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:775,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:777,1
    - Dst: Botan::TPM2::RSA_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:782,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:784,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:785,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:785,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:786,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:786,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:788,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:789,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:790,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:792,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:792,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:793,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:793,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:799,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:800,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:800,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:803,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:803,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_tpm2.cpp:806,1
    - Dst: Botan::TPM2::PrivateKey::load_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:808,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:809,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:810,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:810,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:812,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:813,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:815,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:816,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:821,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:822,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:822,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:823,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:824,1
    - Dst: Botan::TPM2::PublicKey::load_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:827,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:828,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:831,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:832,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:837,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:838,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:838,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:839,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:840,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:844,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:845,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:848,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:850,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:856,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:857,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:857,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:859,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:861,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:861,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:865,1
    - Dst: Botan::TPM2::RSA_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:869,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:870,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:871,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:871,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:872,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:872,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:873,1
    - Dst: sign_verify_roundtrip
      Src: /src/botan/src/tests/test_tpm2.cpp:873,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:876,1
    - Dst: auto::persist
      Src: /src/botan/src/tests/test_tpm2.cpp:877,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:878,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:878,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:879,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:879,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:879,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:880,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:880,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:881,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:882,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:883,1
    - Dst: auto::persist
      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_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:887,1
    - Dst: sign_verify_roundtrip
      Src: /src/botan/src/tests/test_tpm2.cpp:887,1
    - Dst: auto::evict
      Src: /src/botan/src/tests/test_tpm2.cpp:890,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tpm2.cpp:890,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:891,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:891,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:892,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:893,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:893,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 113
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 539
    functionDepth: 3
    functionLinenumber: 539
    functionLinenumberEnd: 896
    functionName: Botan_Tests::test_tpm2_rsa
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - sign
    - test_eq
    - auto::public_key
    - auto::empty
    - Botan::hex_decode
    - Botan::TPM2::RSA_PrivateKey::create_unrestricted_transient
    - auto::private_key_bits
    - Botan::TPM2::Session::unauthenticated_session
    - test_throws
    - auto::handles
    - Botan::as_span_of_bytes
    - Botan::PK_Verifier::verify_message
    - test_is_eq
    - Botan::TPM2::Session::authenticated_session
    - auto::algorithm_identifier
    - std::vector::reserve
    - Botan_Tests::CHECK
    - std::vector::emplace_back
    - auto::public_key_bits
    - Botan::RSA_PublicKey::RSA_PublicKey
    - auto::supports_algorithm
    - auto::evict
    - Botan::TPM2::PrivateKey::load_transient
    - Botan_Tests::get_tpm2_context
    - Botan_Tests::Test::new_rng
    - auto::raw_public_key_bits
    - confirm
    - sign_verify_roundtrip
    - Botan_Tests::load_persistent
    - static_cast<uint8_t>
    - test_no_throw
    - Botan_Tests::test_encoding_options
    - Botan::PK_Signer::sign_message
    - require
    - Botan_Tests::bail_out
    - Botan::TPM2::PublicKey::load_transient
    - auto::persist
    - std::vector::size
    - Botan::PK_Encryptor_EME::encrypt
    - verify
    - std::move
    - Botan::fmt
    - auto::storage_root_key
    - auto::reset
    - Botan::PK_Decryptor_EME::decrypt
    - Botan::value_exists
    - Botan_Tests::Test::mutate_vec
    - auto::raw_private_key_bits
    - auto::persistent_handles
    - auto::attributes
    - auto::algo_name
    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:908,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:909,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_tpm2.cpp:911,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tpm2.cpp:911,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tpm2.cpp:911,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tpm2.cpp:911,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:915,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:917,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:921,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:921,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:922,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:922,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: 924
      start: 902
    functionDepth: 2
    functionLinenumber: 902
    functionLinenumberEnd: 924
    functionName: Botan_Tests::load_persistent_ecc
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 3
    functionsReached:
    - test_eq
    - auto::end
    - Botan_Tests::load_persistent
    - auto::handles
    - persistent_handles
    - auto::algo_name
    - test_is_eq
    - std::find
    - auto::begin
    - confirm
    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:928,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:930,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:933,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:935,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/tests/test_tpm2.cpp:936,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_tpm2.cpp:936,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:939,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:941,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:941,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:942,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:942,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:944,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:947,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:949,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:949,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:949,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:952,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:955,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:963,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_tpm2.cpp:964,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:968,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:969,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:969,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:971,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:973,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:973,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:975,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:978,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:982,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:986,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:989,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:992,1
    - Dst: sign
      Src: /src/botan/src/tests/test_tpm2.cpp:993,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:995,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:995,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_tpm2.cpp:998,1
    - Dst: Botan_Tests::Test::mutate_vec
      Src: /src/botan/src/tests/test_tpm2.cpp:999,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1000,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:1000,1
    - Dst: auto::attributes
      Src: /src/botan/src/tests/test_tpm2.cpp:1007,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1008,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1011,1
    - Dst: verify
      Src: /src/botan/src/tests/test_tpm2.cpp:1011,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1014,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1017,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1018,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1019,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1024,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_tpm2.cpp:1029,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:1029,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tpm2.cpp:1031,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1031,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1038,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:1040,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1041,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:1041,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1042,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1047,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:1050,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1051,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:1051,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1052,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1056,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1058,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1059,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1064,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:1065,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1066,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1071,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1073,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:1075,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1076,1
    - Dst: Botan::TPM2::EC_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:1079,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_tpm2.cpp:1080,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1081,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1083,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:1091,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_tpm2.cpp:1092,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1096,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1097,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1097,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1099,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1101,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1101,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1104,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1106,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:1108,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1110,1
    - Dst: Botan::TPM2::EC_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:1114,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_tpm2.cpp:1115,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1117,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1118,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1118,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1119,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1119,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1121,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1122,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1123,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1125,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1125,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1126,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1126,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1132,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1133,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1133,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1136,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1136,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_tpm2.cpp:1139,1
    - Dst: Botan::TPM2::PrivateKey::load_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:1141,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1142,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1143,1
    - Dst: auto::algo_name
      Src: /src/botan/src/tests/test_tpm2.cpp:1143,1
    - Dst: auto::raw_private_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1145,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1146,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1148,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1149,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1154,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1155,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1155,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1156,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1157,1
    - Dst: Botan::TPM2::PublicKey::load_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:1160,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1161,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1164,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1165,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1168,1
    - Dst: auto::storage_root_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1171,1
    - Dst: Botan_Tests::load_persistent
      Src: /src/botan/src/tests/test_tpm2.cpp:1172,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1178,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1179,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tpm2.cpp:1179,1
    - Dst: auto::public_key
      Src: /src/botan/src/tests/test_tpm2.cpp:1181,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1183,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_tpm2.cpp:1183,1
    - Dst: Botan::TPM2::Session::authenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1187,1
    - Dst: Botan::TPM2::EC_PrivateKey::create_unrestricted_transient
      Src: /src/botan/src/tests/test_tpm2.cpp:1190,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_tpm2.cpp:1191,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1192,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1193,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1193,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1194,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1194,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:1195,1
    - Dst: sign_verify_roundtrip
      Src: /src/botan/src/tests/test_tpm2.cpp:1195,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1198,1
    - Dst: auto::persist
      Src: /src/botan/src/tests/test_tpm2.cpp:1199,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1200,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1200,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1201,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:1201,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1201,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1202,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1202,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1203,1
    - Dst: auto::handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1204,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:1205,1
    - Dst: auto::persist
      Src: /src/botan/src/tests/test_tpm2.cpp:1206,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:1207,1
    - Dst: auto::persist
      Src: /src/botan/src/tests/test_tpm2.cpp:1208,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:1209,1
    - Dst: sign_verify_roundtrip
      Src: /src/botan/src/tests/test_tpm2.cpp:1209,1
    - Dst: auto::evict
      Src: /src/botan/src/tests/test_tpm2.cpp:1212,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tpm2.cpp:1212,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1213,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1213,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1214,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/tests/test_tpm2.cpp:1215,1
    - Dst: auto::persistent_handles
      Src: /src/botan/src/tests/test_tpm2.cpp:1215,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1219,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1220,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:1221,1
    - Dst: Botan::ECDSA_PublicKey
      Src: /src/botan/src/tests/test_tpm2.cpp:1222,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tpm2.cpp:1222,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1222,1
    - Dst: Botan_Tests::load_persistent_ecc
      Src: /src/botan/src/tests/test_tpm2.cpp:1226,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_tpm2.cpp:1227,1
    - Dst: Botan::ECDSA_PublicKey
      Src: /src/botan/src/tests/test_tpm2.cpp:1228,1
    - Dst: auto::algorithm_identifier
      Src: /src/botan/src/tests/test_tpm2.cpp:1228,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_tpm2.cpp:1228,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 103
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 926
    functionDepth: 3
    functionLinenumber: 926
    functionLinenumberEnd: 1232
    functionName: Botan_Tests::test_tpm2_ecc
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - sign
    - test_eq
    - auto::public_key
    - auto::empty
    - Botan::hex_decode
    - Botan::TPM2::Session::unauthenticated_session
    - test_throws
    - auto::handles
    - Botan::as_span_of_bytes
    - Botan::PK_Verifier::verify_message
    - test_is_eq
    - Botan::TPM2::Session::authenticated_session
    - auto::algorithm_identifier
    - std::vector::reserve
    - Botan::TPM2::EC_PrivateKey::create_unrestricted_transient
    - Botan_Tests::CHECK
    - std::vector::emplace_back
    - auto::public_key_bits
    - auto::supports_algorithm
    - auto::evict
    - Botan::TPM2::PrivateKey::load_transient
    - Botan_Tests::get_tpm2_context
    - Botan_Tests::Test::new_rng
    - auto::raw_public_key_bits
    - confirm
    - sign_verify_roundtrip
    - Botan_Tests::load_persistent
    - static_cast<uint8_t>
    - test_no_throw
    - Botan_Tests::test_encoding_options
    - Botan::PK_Signer::sign_message
    - require
    - Botan_Tests::bail_out
    - Botan::TPM2::PublicKey::load_transient
    - auto::persist
    - std::vector::size
    - verify
    - std::move
    - Botan::fmt
    - auto::storage_root_key
    - auto::reset
    - Botan::EC_Group::from_name
    - Botan::value_exists
    - Botan_Tests::load_persistent_ecc
    - Botan_Tests::Test::mutate_vec
    - auto::raw_private_key_bits
    - auto::persistent_handles
    - auto::attributes
    - auto::algo_name
    - Botan::ECDSA_PublicKey
    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:1236,1
    - Dst: Botan_Tests::bail_out
      Src: /src/botan/src/tests/test_tpm2.cpp:1238,1
    - Dst: std::make_unique<Botan::TPM2::HashFunction>
      Src: /src/botan/src/tests/test_tpm2.cpp:1244,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1245,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_tpm2.cpp:1250,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_tpm2.cpp:1253,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:1253,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_tpm2.cpp:1258,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tpm2.cpp:1258,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1262,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_tpm2.cpp:1262,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_tpm2.cpp:1262,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1263,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tpm2.cpp:1263,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tpm2.cpp:1263,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1266,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1267,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1268,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_tpm2.cpp:1268,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1268,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1271,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1271,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1271,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tpm2.cpp:1276,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_tpm2.cpp:1277,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1282,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1283,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_tpm2.cpp:1283,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1283,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1284,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1285,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1285,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1288,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_tpm2.cpp:1289,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1290,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1291,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_tpm2.cpp:1291,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1291,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_tpm2.cpp:1294,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1295,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_tpm2.cpp:1295,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_tpm2.cpp:1295,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1296,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tpm2.cpp:1296,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_tpm2.cpp:1296,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1297,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1298,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_tpm2.cpp:1299,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1303,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1305,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:1305,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1306,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:1306,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1307,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:1307,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1308,1
    - Dst: auto::supports_algorithm
      Src: /src/botan/src/tests/test_tpm2.cpp:1308,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1311,1
    - Dst: test
      Src: /src/botan/src/tests/test_tpm2.cpp:1311,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1312,1
    - Dst: test
      Src: /src/botan/src/tests/test_tpm2.cpp:1312,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1313,1
    - Dst: test
      Src: /src/botan/src/tests/test_tpm2.cpp:1313,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1314,1
    - Dst: test
      Src: /src/botan/src/tests/test_tpm2.cpp:1314,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:1319,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:1321,1
    - Dst: Botan_CLI::PerfTest_HashFunction::PerfTest_HashFunction
      Src: /src/botan/src/tests/test_tpm2.cpp:1322,1
    - Dst: Botan_Tests::CHECK
      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:1327,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_tpm2.cpp:1328,1
    - Dst: auto::copy_state
      Src: /src/botan/src/tests/test_tpm2.cpp:1329,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_tpm2.cpp:1332,1
    - Dst: Botan_CLI::PerfTest_HashFunction::PerfTest_HashFunction
      Src: /src/botan/src/tests/test_tpm2.cpp:1335,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1336,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1337,1
    - Dst: auto::final_with_ticket
      Src: /src/botan/src/tests/test_tpm2.cpp:1338,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1339,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1340,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1341,1
    - Dst: Botan_CLI::PerfTest_HashFunction::PerfTest_HashFunction
      Src: /src/botan/src/tests/test_tpm2.cpp:1344,1
    - Dst: Botan::TPM2::Session::unauthenticated_session
      Src: /src/botan/src/tests/test_tpm2.cpp:1345,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_tpm2.cpp:1346,1
    - Dst: auto::final_with_ticket
      Src: /src/botan/src/tests/test_tpm2.cpp:1347,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1348,1
    - Dst: require
      Src: /src/botan/src/tests/test_tpm2.cpp:1349,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tpm2.cpp:1350,1
    - Dst: Botan::TPM2::copy_into<Botan::secure_vector<uint8_t>>
      Src: /src/botan/src/tests/test_tpm2.cpp:1352,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1353,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_tpm2.cpp:1355,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tpm2.cpp:1357,1
    - Dst: Botan::TPM2::copy_into<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_tpm2.cpp:1358,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 77
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1362
      start: 1235
    functionDepth: 3
    functionLinenumber: 1235
    functionLinenumberEnd: 1362
    functionName: Botan_Tests::test_tpm2_hash
    functionSourceFile: /src/botan/src/tests/test_tpm2.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - test_eq
    - Botan::hex_decode
    - Botan::TPM2::Session::unauthenticated_session
    - test_throws
    - Botan_CLI::PerfTest_HashFunction::PerfTest_HashFunction
    - Botan::HashFunction::create
    - Botan::TPM2::copy_into<Botan::secure_vector<uint8_t>>
    - auto::name
    - Botan_Tests::CHECK
    - auto::supports_algorithm
    - Botan_Tests::get_tpm2_context
    - test
    - confirm
    - std::make_unique<Botan::TPM2::HashFunction>
    - test_note
    - auto::new_object
    - auto::clear
    - auto::process
    - static_cast<uint8_t>
    - auto::final_with_ticket
    - require
    - Botan_Tests::bail_out
    - std::vector::size
    - auto::final
    - Botan::fmt
    - auto::output_length
    - auto::copy_state
    - Botan::TPM2::copy_into<std::vector<uint8_t>>
    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:20,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:23,1
    - Dst: Botan::OctetString::size
      Src: /src/botan/src/tests/test_octetstring.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 26
    functionName: Botan_Tests::test_from_rng
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::new_rng
    - Test::Result::test_eq
    - Botan::OctetString::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_from_rng()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:32,1
    - Dst: Botan::OctetString::size
      Src: /src/botan/src/tests/test_octetstring.cpp:32,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: Botan_Tests::test_from_hex
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_eq
    - Botan::OctetString::size
    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:40,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_octetstring.cpp:41,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_octetstring.cpp:42,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_octetstring.cpp:42,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:43,1
    - Dst: Botan::OctetString::size
      Src: /src/botan/src/tests/test_octetstring.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 46
    functionName: Botan_Tests::test_from_byte
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - auto::random_vec
    - Test::Result::test_eq
    - Botan::OctetString::size
    - Botan_Tests::Test::new_rng
    - auto::size
    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:52,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:54,1
    - Dst: Botan::OctetString::set_odd_parity
      Src: /src/botan/src/tests/test_octetstring.cpp:57,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 62
    functionName: Botan_Tests::test_odd_parity
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Botan::OctetString::set_odd_parity
    - Test::Result::test_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_odd_parity()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:68,1
    - Dst: Botan::OctetString::to_string
      Src: /src/botan/src/tests/test_octetstring.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 71
    functionName: Botan_Tests::test_to_string
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_eq
    - Botan::OctetString::to_string
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_to_string()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:80,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:84,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:87,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 95
    functionName: Botan_Tests::test_xor
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_xor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_octetstring.cpp:105,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_octetstring.cpp:106,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_octetstring.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 110
    functionName: Botan_Tests::test_equality
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::confirm
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_equality()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 124
    functionName: Botan_Tests::test_append
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_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:140,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_octetstring.cpp:142,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_octetstring.cpp:144,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_octetstring.cpp:144,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_octetstring.cpp:144,1
    - Dst: what
      Src: /src/botan/src/tests/test_octetstring.cpp:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 149
    functionName: Botan_Tests::OctetString_Tests::run
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - std::to_string
    - 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:20,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:23,1
    - Dst: Botan::OctetString::size
      Src: /src/botan/src/tests/test_octetstring.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 26
    functionName: Botan_Tests::test_from_rng
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::new_rng
    - Test::Result::test_eq
    - Botan::OctetString::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_from_rng()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:32,1
    - Dst: Botan::OctetString::size
      Src: /src/botan/src/tests/test_octetstring.cpp:32,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: Botan_Tests::test_from_hex
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_eq
    - Botan::OctetString::size
    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:40,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_octetstring.cpp:41,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_octetstring.cpp:42,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_octetstring.cpp:42,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:43,1
    - Dst: Botan::OctetString::size
      Src: /src/botan/src/tests/test_octetstring.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 46
    functionName: Botan_Tests::test_from_byte
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - auto::random_vec
    - Test::Result::test_eq
    - Botan::OctetString::size
    - Botan_Tests::Test::new_rng
    - auto::size
    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:52,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:54,1
    - Dst: Botan::OctetString::set_odd_parity
      Src: /src/botan/src/tests/test_octetstring.cpp:57,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 62
    functionName: Botan_Tests::test_odd_parity
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Botan::OctetString::set_odd_parity
    - Test::Result::test_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_odd_parity()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:68,1
    - Dst: Botan::OctetString::to_string
      Src: /src/botan/src/tests/test_octetstring.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 71
    functionName: Botan_Tests::test_to_string
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_eq
    - Botan::OctetString::to_string
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_to_string()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:80,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:84,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:87,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 95
    functionName: Botan_Tests::test_xor
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_xor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_octetstring.cpp:105,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_octetstring.cpp:106,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_octetstring.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 110
    functionName: Botan_Tests::test_equality
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::confirm
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_equality()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 124
    functionName: Botan_Tests::test_append
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_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:140,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_octetstring.cpp:142,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_octetstring.cpp:144,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_octetstring.cpp:144,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_octetstring.cpp:144,1
    - Dst: what
      Src: /src/botan/src/tests/test_octetstring.cpp:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 149
    functionName: Botan_Tests::OctetString_Tests::run
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - std::to_string
    - 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:20,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:23,1
    - Dst: Botan::OctetString::size
      Src: /src/botan/src/tests/test_octetstring.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 26
    functionName: Botan_Tests::test_from_rng
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::new_rng
    - Test::Result::test_eq
    - Botan::OctetString::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_from_rng()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:32,1
    - Dst: Botan::OctetString::size
      Src: /src/botan/src/tests/test_octetstring.cpp:32,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: Botan_Tests::test_from_hex
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_eq
    - Botan::OctetString::size
    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:40,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_octetstring.cpp:41,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_octetstring.cpp:42,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_octetstring.cpp:42,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:43,1
    - Dst: Botan::OctetString::size
      Src: /src/botan/src/tests/test_octetstring.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 46
    functionName: Botan_Tests::test_from_byte
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - auto::random_vec
    - Test::Result::test_eq
    - Botan::OctetString::size
    - Botan_Tests::Test::new_rng
    - auto::size
    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:52,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:54,1
    - Dst: Botan::OctetString::set_odd_parity
      Src: /src/botan/src/tests/test_octetstring.cpp:57,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 62
    functionName: Botan_Tests::test_odd_parity
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Botan::OctetString::set_odd_parity
    - Test::Result::test_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_odd_parity()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:68,1
    - Dst: Botan::OctetString::to_string
      Src: /src/botan/src/tests/test_octetstring.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 71
    functionName: Botan_Tests::test_to_string
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_eq
    - Botan::OctetString::to_string
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_to_string()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:80,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:84,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:87,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 95
    functionName: Botan_Tests::test_xor
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_xor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_octetstring.cpp:105,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_octetstring.cpp:106,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_octetstring.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 110
    functionName: Botan_Tests::test_equality
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::confirm
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_equality()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 124
    functionName: Botan_Tests::test_append
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_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:140,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_octetstring.cpp:142,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_octetstring.cpp:144,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_octetstring.cpp:144,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_octetstring.cpp:144,1
    - Dst: what
      Src: /src/botan/src/tests/test_octetstring.cpp:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 149
    functionName: Botan_Tests::OctetString_Tests::run
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - std::to_string
    - 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:20,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:23,1
    - Dst: Botan::OctetString::size
      Src: /src/botan/src/tests/test_octetstring.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 26
    functionName: Botan_Tests::test_from_rng
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::new_rng
    - Test::Result::test_eq
    - Botan::OctetString::size
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_from_rng()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:32,1
    - Dst: Botan::OctetString::size
      Src: /src/botan/src/tests/test_octetstring.cpp:32,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: Botan_Tests::test_from_hex
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_eq
    - Botan::OctetString::size
    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:40,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_octetstring.cpp:41,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_octetstring.cpp:42,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_octetstring.cpp:42,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:43,1
    - Dst: Botan::OctetString::size
      Src: /src/botan/src/tests/test_octetstring.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 46
    functionName: Botan_Tests::test_from_byte
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - auto::random_vec
    - Test::Result::test_eq
    - Botan::OctetString::size
    - Botan_Tests::Test::new_rng
    - auto::size
    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:52,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:54,1
    - Dst: Botan::OctetString::set_odd_parity
      Src: /src/botan/src/tests/test_octetstring.cpp:57,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 62
    functionName: Botan_Tests::test_odd_parity
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Botan::OctetString::set_odd_parity
    - Test::Result::test_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_odd_parity()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:68,1
    - Dst: Botan::OctetString::to_string
      Src: /src/botan/src/tests/test_octetstring.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 71
    functionName: Botan_Tests::test_to_string
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_eq
    - Botan::OctetString::to_string
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_to_string()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:80,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:84,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:87,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 95
    functionName: Botan_Tests::test_xor
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_eq
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_xor()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_octetstring.cpp:105,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_octetstring.cpp:106,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_octetstring.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 110
    functionName: Botan_Tests::test_equality
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::confirm
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_equality()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_octetstring.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 124
    functionName: Botan_Tests::test_append
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_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:140,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_octetstring.cpp:142,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_octetstring.cpp:144,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_octetstring.cpp:144,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_octetstring.cpp:144,1
    - Dst: what
      Src: /src/botan/src/tests/test_octetstring.cpp:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 149
    functionName: Botan_Tests::OctetString_Tests::run
    functionSourceFile: /src/botan/src/tests/test_octetstring.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - std::to_string
    - 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:37,1
    - Dst: Botan::PKCS11::LowLevel::C_GetFunctionList
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:42,1
    - Dst: std::make_unique<LowLevel>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:43,1
    - Dst: static_cast<CK_FLAGS>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:46,1
    - Dst: C_Initialize
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 49
    functionName: Botan_Tests::RAII_LowLevel::RAII_LowLevel
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Test::pkcs11_lib
    - std::make_unique<LowLevel>
    - static_cast<CK_FLAGS>
    - Botan::PKCS11::LowLevel::C_GetFunctionList
    - C_Initialize
    linkageType: ''
    returnType: void
    signature: void RAII_LowLevel()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: C_Logout
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:55,1
    - Dst: C_CloseSession
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:58,1
    - Dst: C_Finalize
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 64
    functionName: ~RAII_LowLevel() noexcept
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - C_Logout
    - C_CloseSession
    - C_Finalize
    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: 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(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: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    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: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    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: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    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:73,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:75,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - token_present
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 80
    functionName: Botan_Tests::RAII_LowLevel::get_slots
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - C_GetSlotList
    - Test_Error
    - 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:83,1
    - Dst: C_OpenSession
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:84,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - session_flags
    argTypes:
    - Flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 87
    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
    - C_OpenSession
    - std::vector::at
    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:90,1
    - Dst: Botan_Tests::RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:91,1
    - Dst: Botan_Tests::RAII_LowLevel::login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:92,1
    - Dst: PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: Botan_Tests::RAII_LowLevel::open_rw_session_with_user_login
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - PIN
    - Botan_Tests::RAII_LowLevel::open_session
    - Botan_Tests::RAII_LowLevel::login
    - Botan::PKCS11::flags
    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:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 101
    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:105,1
    - Dst: C_CloseSession
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 110
    functionName: Botan_Tests::RAII_LowLevel::close_session
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - C_CloseSession
    - Test_Error
    linkageType: ''
    returnType: void
    signature: void close_session()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:114,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:118,1
    - Dst: C_Login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - user_type
    - ' pin'
    argTypes:
    - UserType
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 123
    functionName: Botan_Tests::RAII_LowLevel::login
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 1
    functionsReached:
    - C_Login
    - Test_Error
    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:127,1
    - Dst: C_Logout
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 132
    functionName: Botan_Tests::RAII_LowLevel::logout
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - C_Logout
    - Test_Error
    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: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_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: 147
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 147
    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:159,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:164,1
    - Dst: test_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:164,1
    - Dst: test_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:166,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:167,1
    - Dst: empty
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:169,1
    - Dst: revert_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:170,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:171,1
    - Dst: test_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:176,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:177,1
    - Dst: empty
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:178,1
    - Dst: revert_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:179,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:180,1
    - Dst: test_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:185,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:186,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:188,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:188,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:190,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:191,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:191,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:192,1
    - Dst: empty
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:195,1
    - Dst: revert_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:196,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:197,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:198,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:198,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: 202
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 202
    functionName: Botan_Tests::test_function
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - static_cast<uint32_t>
    - revert_func
    - test_func
    - Test::Result::test_rc_ok
    - empty
    - Test::Result::test_eq
    - std::to_string
    - Test::Result::test_rc_fail
    - Test::Result::test_success
    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:208,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:208,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: 209
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 209
    functionName: Botan_Tests::test_function
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::test_function
    - std::string
    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:212,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' name'
    - ' test_func'
    argTypes:
    - std::string
    - PKCS11_BoundTestFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 213
    functionName: Botan_Tests::test_function
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::test_function
    - std::string
    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:219,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: 220
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 220
    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:227,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:230,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 236
    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
    - 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:243,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:245,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 246
    functionName: Botan_Tests::test_c_get_function_list
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - std::ref
    - std::bind
    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:251,1
    - Dst: static_cast<CK_FLAGS>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:256,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:258,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:259,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 261
    functionName: Botan_Tests::test_initialize_finalize
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - static_cast<CK_FLAGS>
    - Botan::PKCS11::LowLevel::C_GetFunctionList
    - std::bind
    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:268,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:268,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:268,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 272
    functionName: Botan_Tests::test_c_get_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - RAII_LowLevel::get
    - Test::Result::test_ne
    - std::bind
    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:281,1
    - Dst: static_cast<bool (LowLevel::*)(bool, std::vector<SlotId>&, ReturnValue*)
        const>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:282,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:283,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:285,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:288,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:289,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:289,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:293,1
    - Dst: static_cast<bool (LowLevel::*)(bool, std::vector<SlotId>&, ReturnValue*)
        const>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:294,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:295,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:297,1
    - Dst: std::vector::clear
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:300,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:301,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:301,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:302,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 305
    functionName: Botan_Tests::test_c_get_slot_list
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - Test::Result::test_ne
    - RAII_LowLevel::get
    - std::vector::clear
    - std::ref
    - std::bind
    - static_cast<bool (LowLevel::*)(bool, std::vector<SlotId>&, ReturnValue*) const>
    - std::vector::size
    - Test::Result::merge
    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:309,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:312,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:314,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:314,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:314,1
    - Dst: reinterpret_cast<char*>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:316,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:317,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 320
    functionName: Botan_Tests::test_c_get_slot_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - std::string::size
    - RAII_LowLevel::get_slots
    - Test::Result::test_ne
    - std::vector::at
    - RAII_LowLevel::get
    - std::bind
    - reinterpret_cast<char*>
    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:324,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:327,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:329,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:329,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:329,1
    - Dst: reinterpret_cast<char*>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:331,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:332,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 335
    functionName: Botan_Tests::test_c_get_token_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - std::string::size
    - RAII_LowLevel::get_slots
    - Test::Result::test_ne
    - std::vector::at
    - RAII_LowLevel::get
    - std::bind
    - reinterpret_cast<char*>
    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:340,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:343,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:345,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 348
    functionName: Botan_Tests::test_c_wait_for_slot_event
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - RAII_LowLevel::get
    - Botan::PKCS11::flags
    - std::bind
    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:352,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:356,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:358,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:359,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:360,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:363,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:364,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 367
    functionName: Botan_Tests::test_c_get_mechanism_list
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - RAII_LowLevel::get_slots
    - std::vector::at
    - RAII_LowLevel::get
    - std::vector::empty
    - std::ref
    - Test::Result::confirm
    - std::bind
    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:371,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:374,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:374,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:377,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:378,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:379,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:380,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 384
    functionName: Botan_Tests::test_c_get_mechanism_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - RAII_LowLevel::get_slots
    - std::vector::at
    - RAII_LowLevel::get
    - std::bind
    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:388,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:393,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:396,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:397,1
    - Dst: Botan_Tests::SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:398,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:399,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 386
    functionDepth: 2
    functionLinenumber: 386
    functionLinenumberEnd: 403
    functionName: Botan_Tests::test_c_init_token
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - Botan_Tests::SO_PIN
    - RAII_LowLevel::get_slots
    - std::vector::at
    - RAII_LowLevel::get
    - std::ref
    - std::bind
    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:407,1
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:410,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:413,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:414,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:415,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:423,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:423,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:423,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:425,1
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:428,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:430,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:431,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:432,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:439,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 442
    functionName: Botan_Tests::test_open_close_session
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - RAII_LowLevel::get_slots
    - std::vector::at
    - RAII_LowLevel::get
    - Botan::PKCS11::flags
    - std::ref
    - std::bind
    - Test::Result::merge
    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:446,1
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:450,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: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:456,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:457,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:457,1
    - Dst: open_two_sessions
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:460,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:465,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:465,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:466,1
    - Dst: open_two_sessions
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:469,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:471,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:471,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:472,1
    - Dst: open_two_sessions
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:475,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:478,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:478,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:479,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:480,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 483
    functionName: Botan_Tests::test_c_close_all_sessions
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - RAII_LowLevel::get_slots
    - static_cast<uint32_t>
    - std::vector::at
    - RAII_LowLevel::get
    - Botan::PKCS11::flags
    - Test::Result::test_rc_ok
    - Test::Result::test_eq
    - Test::Result::test_success
    - 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:487,1
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:490,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:491,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:494,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:496,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:497,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:499,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:500,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:501,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:502,1
    - Dst: static_cast<CK_FLAGS>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 506
    functionName: Botan_Tests::test_c_get_session_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - RAII_LowLevel::get_slots
    - std::vector::at
    - RAII_LowLevel::get
    - static_cast<CK_FLAGS>
    - Botan::PKCS11::flags
    - RAII_LowLevel::open_session
    - Test::Result::confirm
    - std::bind
    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:512,1
    - Dst: std::string_view::end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:512,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:514,1
    - Dst: get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:517,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:520,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:524,1
    - Dst: get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:525,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:529,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: 530
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 530
    functionName: Botan_Tests::login_logout_helper
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::begin
    - Botan_Tests::test_function
    - std::ref
    - std::string_view::end
    - get
    - std::bind
    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:536,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:537,1
    - Dst: Botan_Tests::login_logout_helper
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 532
    functionDepth: 2
    functionLinenumber: 532
    functionLinenumberEnd: 540
    functionName: Botan_Tests::test_c_login_logout_security_officier
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::login_logout_helper
    - RAII_LowLevel::open_session
    - 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:546,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:547,1
    - Dst: Botan_Tests::login_logout_helper
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:548,1
    - Dst: RAII_LowLevel::close_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:549,1
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:552,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:553,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:555,1
    - Dst: Botan_Tests::login_logout_helper
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 542
    functionDepth: 2
    functionLinenumber: 542
    functionLinenumberEnd: 558
    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
    - RAII_LowLevel::close_session
    - RAII_LowLevel::open_session
    - Test::Result::merge
    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:564,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:565,1
    - Dst: RAII_LowLevel::login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:567,1
    - Dst: Botan_Tests::SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:567,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:570,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:572,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:574,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 560
    functionDepth: 2
    functionLinenumber: 560
    functionLinenumberEnd: 578
    functionName: Botan_Tests::test_c_init_pin
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - Botan_Tests::SO_PIN
    - Botan_Tests::PIN
    - RAII_LowLevel::get
    - Botan::PKCS11::flags
    - RAII_LowLevel::open_session
    - RAII_LowLevel::login
    - std::bind
    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:584,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:585,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:592,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:596,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:604,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:604,1
    - Dst: std::string::end
      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:606,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:606,1
    - Dst: get_pin_bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:607,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:607,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:609,1
    - Dst: RAII_LowLevel::login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:612,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:612,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:614,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:614,1
    - Dst: RAII_LowLevel::logout
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:615,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:619,1
    - Dst: std::string::end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:619,1
    - Dst: RAII_LowLevel::login
      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:622,1
    - Dst: Botan_Tests::SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:622,1
    - Dst: get_pin_bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:623,1
    - Dst: Botan_Tests::SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:623,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:625,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 580
    functionDepth: 2
    functionLinenumber: 580
    functionLinenumberEnd: 628
    functionName: Botan_Tests::test_c_set_pin
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - Botan_Tests::SO_PIN
    - Botan_Tests::PIN
    - std::string::begin
    - RAII_LowLevel::get
    - secure_vector<uint8_t>
    - Botan::PKCS11::flags
    - RAII_LowLevel::open_session
    - std::string::end
    - RAII_LowLevel::login
    - RAII_LowLevel::logout
    - std::bind
    - get_pin_bind
    - Test::Result::merge
    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:652,1
    - Dst: get_session_handle
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:653,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:653,1
    - Dst: static_cast<Ulong>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:653,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' p11_low_level'
    argTypes:
    - RAII_LowLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 648
    functionDepth: 1
    functionLinenumber: 648
    functionLinenumberEnd: 655
    functionName: Botan_Tests::create_simple_data_object
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - static_cast<Ulong>
    - get_session_handle
    - get
    - auto::size
    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:659,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:665,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:666,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:668,1
    - Dst: static_cast<Ulong>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:669,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:669,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:673,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:674,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:674,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 657
    functionDepth: 1
    functionLinenumber: 657
    functionLinenumberEnd: 677
    functionName: Botan_Tests::test_c_create_object_c_destroy_object
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - Botan_Tests::test_function
    - RAII_LowLevel::open_rw_session_with_user_login
    - RAII_LowLevel::get
    - std::ref
    - static_cast<Ulong>
    - std::bind
    - auto::size
    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:682,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:683,1
    - Dst: RAII_LowLevel::login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:685,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:685,1
    - Dst: Botan_Tests::create_simple_data_object
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:687,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:690,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:691,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:697,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:698,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 679
    functionDepth: 2
    functionLinenumber: 679
    functionLinenumberEnd: 704
    functionName: Botan_Tests::test_c_get_object_size
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - Botan_Tests::PIN
    - Botan_Tests::create_simple_data_object
    - Test::Result::test_ne
    - RAII_LowLevel::get
    - Botan::PKCS11::flags
    - RAII_LowLevel::open_session
    - RAII_LowLevel::login
    - std::bind
    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:708,1
    - Dst: Botan_Tests::create_simple_data_object
      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:712,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:713,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:716,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:719,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:722,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:725,1
    - Dst: begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:727,1
    - Dst: end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:727,1
    - Dst: begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:728,1
    - Dst: end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:728,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:729,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:730,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 706
    functionDepth: 2
    functionLinenumber: 706
    functionLinenumberEnd: 736
    functionName: Botan_Tests::test_c_get_attribute_value
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - Botan_Tests::create_simple_data_object
    - RAII_LowLevel::open_rw_session_with_user_login
    - RAII_LowLevel::get
    - secure_vector<uint8_t>
    - std::ref
    - Test::Result::test_eq
    - end
    - std::bind
    - begin
    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:745,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:745,1
    - Dst: get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:748,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: 751
      start: 738
    functionDepth: 0
    functionLinenumber: 738
    functionLinenumberEnd: 751
    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:756,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:757,1
    - Dst: RAII_LowLevel::login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:759,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:759,1
    - Dst: Botan_Tests::create_simple_data_object
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:761,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:766,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:766,1
    - Dst: std::string::end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:766,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:769,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:772,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:775,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:778,1
    - Dst: Botan_Tests::get_attribute_values
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:782,1
    - Dst: begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:784,1
    - Dst: end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:785,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:787,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 753
    functionDepth: 2
    functionLinenumber: 753
    functionLinenumberEnd: 793
    functionName: Botan_Tests::test_c_set_attribute_value
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - Botan_Tests::PIN
    - Botan_Tests::create_simple_data_object
    - std::string::begin
    - RAII_LowLevel::get
    - secure_vector<uint8_t>
    - Botan::PKCS11::flags
    - Botan_Tests::get_attribute_values
    - std::ref
    - Test::Result::test_eq
    - RAII_LowLevel::open_session
    - std::string::end
    - RAII_LowLevel::login
    - end
    - std::bind
    - begin
    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:797,1
    - Dst: Botan_Tests::create_simple_data_object
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:799,1
    - Dst: static_cast<CK_ATTRIBUTE_TYPE>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:804,1
    - Dst: const_cast<char*>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:805,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:805,1
    - Dst: static_cast<CK_ULONG>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:806,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:806,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:808,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:809,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:817,1
    - Dst: Botan_Tests::get_attribute_values
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:821,1
    - Dst: begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:823,1
    - Dst: end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:824,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:826,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:829,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 795
    functionDepth: 2
    functionLinenumber: 795
    functionLinenumberEnd: 833
    functionName: Botan_Tests::test_c_copy_object
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - std::string::size
    - begin
    - Botan_Tests::create_simple_data_object
    - const_cast<char*>
    - RAII_LowLevel::open_rw_session_with_user_login
    - RAII_LowLevel::get
    - std::string::c_str
    - Botan_Tests::get_attribute_values
    - Test::Result::test_eq
    - end
    - std::bind
    - static_cast<CK_ULONG>
    - static_cast<CK_ATTRIBUTE_TYPE>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_copy_object()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:841,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:842,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:843,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:844,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:845,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:846,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:847,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:848,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:849,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:850,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:851,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:852,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:853,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:854,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:855,1
    - 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: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: run_pkcs11_tests
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 839
    functionDepth: 1
    functionLinenumber: 839
    functionLinenumberEnd: 867
    functionName: Botan_Tests::LowLevelTests::run
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - run_pkcs11_tests
    - STRING_AND_FUNCTION
    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:37,1
    - Dst: Botan::PKCS11::LowLevel::C_GetFunctionList
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:42,1
    - Dst: std::make_unique<LowLevel>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:43,1
    - Dst: static_cast<CK_FLAGS>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:46,1
    - Dst: C_Initialize
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 49
    functionName: Botan_Tests::RAII_LowLevel::RAII_LowLevel
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Test::pkcs11_lib
    - std::make_unique<LowLevel>
    - static_cast<CK_FLAGS>
    - Botan::PKCS11::LowLevel::C_GetFunctionList
    - C_Initialize
    linkageType: ''
    returnType: void
    signature: void RAII_LowLevel()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: C_Logout
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:55,1
    - Dst: C_CloseSession
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:58,1
    - Dst: C_Finalize
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 64
    functionName: ~RAII_LowLevel() noexcept
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - C_Logout
    - C_CloseSession
    - C_Finalize
    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: 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(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: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    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: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    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: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    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:73,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:75,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - token_present
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 80
    functionName: Botan_Tests::RAII_LowLevel::get_slots
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 1
    functionsReached:
    - C_GetSlotList
    - Test_Error
    - 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:83,1
    - Dst: C_OpenSession
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:84,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - session_flags
    argTypes:
    - Flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 87
    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
    - C_OpenSession
    - std::vector::at
    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:90,1
    - Dst: Botan_Tests::RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:91,1
    - Dst: Botan_Tests::RAII_LowLevel::login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:92,1
    - Dst: PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: Botan_Tests::RAII_LowLevel::open_rw_session_with_user_login
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - PIN
    - Botan_Tests::RAII_LowLevel::open_session
    - Botan_Tests::RAII_LowLevel::login
    - Botan::PKCS11::flags
    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:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 101
    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:105,1
    - Dst: C_CloseSession
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 110
    functionName: Botan_Tests::RAII_LowLevel::close_session
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - C_CloseSession
    - Test_Error
    linkageType: ''
    returnType: void
    signature: void close_session()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:114,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:118,1
    - Dst: C_Login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - user_type
    - ' pin'
    argTypes:
    - UserType
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 123
    functionName: Botan_Tests::RAII_LowLevel::login
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 2
    functionsReached:
    - C_Login
    - Test_Error
    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:127,1
    - Dst: C_Logout
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 132
    functionName: Botan_Tests::RAII_LowLevel::logout
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - C_Logout
    - Test_Error
    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: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_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: 147
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 147
    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:159,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:164,1
    - Dst: test_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:164,1
    - Dst: test_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:166,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:167,1
    - Dst: empty
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:169,1
    - Dst: revert_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:170,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:171,1
    - Dst: test_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:176,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:177,1
    - Dst: empty
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:178,1
    - Dst: revert_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:179,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:180,1
    - Dst: test_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:185,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:186,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:188,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:188,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:190,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:191,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:191,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:192,1
    - Dst: empty
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:195,1
    - Dst: revert_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:196,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:197,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:198,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:198,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: 202
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 202
    functionName: Botan_Tests::test_function
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 23
    functionsReached:
    - Test::Result::test_throws
    - static_cast<uint32_t>
    - revert_func
    - test_func
    - Test::Result::test_rc_ok
    - empty
    - Test::Result::test_eq
    - std::to_string
    - Test::Result::test_rc_fail
    - Test::Result::test_success
    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:208,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:208,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: 209
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 209
    functionName: Botan_Tests::test_function
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 24
    functionsReached:
    - Botan_Tests::test_function
    - std::string
    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:212,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' name'
    - ' test_func'
    argTypes:
    - std::string
    - PKCS11_BoundTestFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 213
    functionName: Botan_Tests::test_function
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 25
    functionsReached:
    - Botan_Tests::test_function
    - std::string
    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:219,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: 220
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 220
    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:227,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:230,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 236
    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
    - 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:243,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:245,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 246
    functionName: Botan_Tests::test_c_get_function_list
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - std::ref
    - std::bind
    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:251,1
    - Dst: static_cast<CK_FLAGS>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:256,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:258,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:259,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 261
    functionName: Botan_Tests::test_initialize_finalize
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - static_cast<CK_FLAGS>
    - Botan::PKCS11::LowLevel::C_GetFunctionList
    - std::bind
    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:268,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:268,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:268,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 272
    functionName: Botan_Tests::test_c_get_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - RAII_LowLevel::get
    - Test::Result::test_ne
    - std::bind
    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:281,1
    - Dst: static_cast<bool (LowLevel::*)(bool, std::vector<SlotId>&, ReturnValue*)
        const>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:282,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:283,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:285,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:288,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:289,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:289,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:293,1
    - Dst: static_cast<bool (LowLevel::*)(bool, std::vector<SlotId>&, ReturnValue*)
        const>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:294,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:295,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:297,1
    - Dst: std::vector::clear
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:300,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:301,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:301,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:302,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 305
    functionName: Botan_Tests::test_c_get_slot_list
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - Test::Result::test_ne
    - RAII_LowLevel::get
    - std::vector::clear
    - std::ref
    - std::bind
    - static_cast<bool (LowLevel::*)(bool, std::vector<SlotId>&, ReturnValue*) const>
    - std::vector::size
    - Test::Result::merge
    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:309,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:312,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:314,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:314,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:314,1
    - Dst: reinterpret_cast<char*>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:316,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:317,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 320
    functionName: Botan_Tests::test_c_get_slot_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - std::string::size
    - RAII_LowLevel::get_slots
    - Test::Result::test_ne
    - std::vector::at
    - RAII_LowLevel::get
    - std::bind
    - reinterpret_cast<char*>
    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:324,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:327,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:329,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:329,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:329,1
    - Dst: reinterpret_cast<char*>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:331,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:332,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 335
    functionName: Botan_Tests::test_c_get_token_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - std::string::size
    - RAII_LowLevel::get_slots
    - Test::Result::test_ne
    - std::vector::at
    - RAII_LowLevel::get
    - std::bind
    - reinterpret_cast<char*>
    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:340,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:343,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:345,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 348
    functionName: Botan_Tests::test_c_wait_for_slot_event
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - RAII_LowLevel::get
    - Botan::PKCS11::flags
    - std::bind
    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:352,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:356,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:358,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:359,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:360,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:363,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:364,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 367
    functionName: Botan_Tests::test_c_get_mechanism_list
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - RAII_LowLevel::get_slots
    - std::vector::at
    - RAII_LowLevel::get
    - std::vector::empty
    - std::ref
    - Test::Result::confirm
    - std::bind
    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:371,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:374,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:374,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:377,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:378,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:379,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:380,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 384
    functionName: Botan_Tests::test_c_get_mechanism_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - RAII_LowLevel::get_slots
    - std::vector::at
    - RAII_LowLevel::get
    - std::bind
    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:388,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:393,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:396,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:397,1
    - Dst: Botan_Tests::SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:398,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:399,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 386
    functionDepth: 2
    functionLinenumber: 386
    functionLinenumberEnd: 403
    functionName: Botan_Tests::test_c_init_token
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - Botan_Tests::SO_PIN
    - RAII_LowLevel::get_slots
    - std::vector::at
    - RAII_LowLevel::get
    - std::ref
    - std::bind
    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:407,1
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:410,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:413,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:414,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:415,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:423,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:423,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:423,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:425,1
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:428,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:430,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:431,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:432,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:439,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 442
    functionName: Botan_Tests::test_open_close_session
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - RAII_LowLevel::get_slots
    - std::vector::at
    - RAII_LowLevel::get
    - Botan::PKCS11::flags
    - std::ref
    - std::bind
    - Test::Result::merge
    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:446,1
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:450,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: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:456,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:457,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:457,1
    - Dst: open_two_sessions
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:460,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:465,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:465,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:466,1
    - Dst: open_two_sessions
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:469,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:471,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:471,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:472,1
    - Dst: open_two_sessions
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:475,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:478,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:478,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:479,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:480,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 483
    functionName: Botan_Tests::test_c_close_all_sessions
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - RAII_LowLevel::get_slots
    - static_cast<uint32_t>
    - std::vector::at
    - RAII_LowLevel::get
    - Botan::PKCS11::flags
    - Test::Result::test_rc_ok
    - Test::Result::test_eq
    - Test::Result::test_success
    - 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:487,1
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:490,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:491,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:494,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:496,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:497,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:499,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:500,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:501,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:502,1
    - Dst: static_cast<CK_FLAGS>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 506
    functionName: Botan_Tests::test_c_get_session_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - RAII_LowLevel::get_slots
    - std::vector::at
    - RAII_LowLevel::get
    - static_cast<CK_FLAGS>
    - Botan::PKCS11::flags
    - RAII_LowLevel::open_session
    - Test::Result::confirm
    - std::bind
    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:512,1
    - Dst: std::string_view::end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:512,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:514,1
    - Dst: get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:517,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:520,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:524,1
    - Dst: get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:525,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:529,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: 530
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 530
    functionName: Botan_Tests::login_logout_helper
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 2
    functionsReached:
    - std::string_view::begin
    - Botan_Tests::test_function
    - std::ref
    - std::string_view::end
    - get
    - std::bind
    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:536,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:537,1
    - Dst: Botan_Tests::login_logout_helper
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 532
    functionDepth: 2
    functionLinenumber: 532
    functionLinenumberEnd: 540
    functionName: Botan_Tests::test_c_login_logout_security_officier
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::login_logout_helper
    - RAII_LowLevel::open_session
    - 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:546,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:547,1
    - Dst: Botan_Tests::login_logout_helper
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:548,1
    - Dst: RAII_LowLevel::close_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:549,1
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:552,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:553,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:555,1
    - Dst: Botan_Tests::login_logout_helper
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 542
    functionDepth: 2
    functionLinenumber: 542
    functionLinenumberEnd: 558
    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
    - RAII_LowLevel::close_session
    - RAII_LowLevel::open_session
    - Test::Result::merge
    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:564,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:565,1
    - Dst: RAII_LowLevel::login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:567,1
    - Dst: Botan_Tests::SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:567,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:570,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:572,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:574,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 560
    functionDepth: 2
    functionLinenumber: 560
    functionLinenumberEnd: 578
    functionName: Botan_Tests::test_c_init_pin
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - Botan_Tests::SO_PIN
    - Botan_Tests::PIN
    - RAII_LowLevel::get
    - Botan::PKCS11::flags
    - RAII_LowLevel::open_session
    - RAII_LowLevel::login
    - std::bind
    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:584,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:585,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:592,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:596,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:604,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:604,1
    - Dst: std::string::end
      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:606,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:606,1
    - Dst: get_pin_bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:607,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:607,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:609,1
    - Dst: RAII_LowLevel::login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:612,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:612,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:614,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:614,1
    - Dst: RAII_LowLevel::logout
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:615,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:619,1
    - Dst: std::string::end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:619,1
    - Dst: RAII_LowLevel::login
      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:622,1
    - Dst: Botan_Tests::SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:622,1
    - Dst: get_pin_bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:623,1
    - Dst: Botan_Tests::SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:623,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:625,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 580
    functionDepth: 2
    functionLinenumber: 580
    functionLinenumberEnd: 628
    functionName: Botan_Tests::test_c_set_pin
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - Botan_Tests::SO_PIN
    - Botan_Tests::PIN
    - std::string::begin
    - RAII_LowLevel::get
    - secure_vector<uint8_t>
    - Botan::PKCS11::flags
    - RAII_LowLevel::open_session
    - std::string::end
    - RAII_LowLevel::login
    - RAII_LowLevel::logout
    - std::bind
    - get_pin_bind
    - Test::Result::merge
    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:652,1
    - Dst: get_session_handle
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:653,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:653,1
    - Dst: static_cast<Ulong>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:653,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' p11_low_level'
    argTypes:
    - RAII_LowLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 648
    functionDepth: 1
    functionLinenumber: 648
    functionLinenumberEnd: 655
    functionName: Botan_Tests::create_simple_data_object
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 4
    functionsReached:
    - auto::data
    - static_cast<Ulong>
    - get_session_handle
    - get
    - auto::size
    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:659,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:665,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:666,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:668,1
    - Dst: static_cast<Ulong>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:669,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:669,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:673,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:674,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:674,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 657
    functionDepth: 1
    functionLinenumber: 657
    functionLinenumberEnd: 677
    functionName: Botan_Tests::test_c_create_object_c_destroy_object
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - Botan_Tests::test_function
    - RAII_LowLevel::open_rw_session_with_user_login
    - RAII_LowLevel::get
    - std::ref
    - static_cast<Ulong>
    - std::bind
    - auto::size
    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:682,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:683,1
    - Dst: RAII_LowLevel::login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:685,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:685,1
    - Dst: Botan_Tests::create_simple_data_object
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:687,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:690,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:691,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:697,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:698,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 679
    functionDepth: 2
    functionLinenumber: 679
    functionLinenumberEnd: 704
    functionName: Botan_Tests::test_c_get_object_size
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - Botan_Tests::PIN
    - Botan_Tests::create_simple_data_object
    - Test::Result::test_ne
    - RAII_LowLevel::get
    - Botan::PKCS11::flags
    - RAII_LowLevel::open_session
    - RAII_LowLevel::login
    - std::bind
    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:708,1
    - Dst: Botan_Tests::create_simple_data_object
      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:712,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:713,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:716,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:719,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:722,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:725,1
    - Dst: begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:727,1
    - Dst: end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:727,1
    - Dst: begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:728,1
    - Dst: end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:728,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:729,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:730,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 706
    functionDepth: 2
    functionLinenumber: 706
    functionLinenumberEnd: 736
    functionName: Botan_Tests::test_c_get_attribute_value
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - Botan_Tests::create_simple_data_object
    - RAII_LowLevel::open_rw_session_with_user_login
    - RAII_LowLevel::get
    - secure_vector<uint8_t>
    - std::ref
    - Test::Result::test_eq
    - end
    - std::bind
    - begin
    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:745,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:745,1
    - Dst: get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:748,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: 751
      start: 738
    functionDepth: 0
    functionLinenumber: 738
    functionLinenumberEnd: 751
    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:756,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:757,1
    - Dst: RAII_LowLevel::login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:759,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:759,1
    - Dst: Botan_Tests::create_simple_data_object
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:761,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:766,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:766,1
    - Dst: std::string::end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:766,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:769,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:772,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:775,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:778,1
    - Dst: Botan_Tests::get_attribute_values
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:782,1
    - Dst: begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:784,1
    - Dst: end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:785,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:787,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 753
    functionDepth: 2
    functionLinenumber: 753
    functionLinenumberEnd: 793
    functionName: Botan_Tests::test_c_set_attribute_value
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - Botan_Tests::PIN
    - Botan_Tests::create_simple_data_object
    - std::string::begin
    - RAII_LowLevel::get
    - secure_vector<uint8_t>
    - Botan::PKCS11::flags
    - Botan_Tests::get_attribute_values
    - std::ref
    - Test::Result::test_eq
    - RAII_LowLevel::open_session
    - std::string::end
    - RAII_LowLevel::login
    - end
    - std::bind
    - begin
    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:797,1
    - Dst: Botan_Tests::create_simple_data_object
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:799,1
    - Dst: static_cast<CK_ATTRIBUTE_TYPE>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:804,1
    - Dst: const_cast<char*>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:805,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:805,1
    - Dst: static_cast<CK_ULONG>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:806,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:806,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:808,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:809,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:817,1
    - Dst: Botan_Tests::get_attribute_values
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:821,1
    - Dst: begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:823,1
    - Dst: end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:824,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:826,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:829,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 795
    functionDepth: 2
    functionLinenumber: 795
    functionLinenumberEnd: 833
    functionName: Botan_Tests::test_c_copy_object
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - std::string::size
    - begin
    - Botan_Tests::create_simple_data_object
    - const_cast<char*>
    - RAII_LowLevel::open_rw_session_with_user_login
    - RAII_LowLevel::get
    - std::string::c_str
    - Botan_Tests::get_attribute_values
    - Test::Result::test_eq
    - end
    - std::bind
    - static_cast<CK_ULONG>
    - static_cast<CK_ATTRIBUTE_TYPE>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_copy_object()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:841,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:842,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:843,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:844,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:845,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:846,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:847,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:848,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:849,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:850,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:851,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:852,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:853,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:854,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:855,1
    - 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: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: run_pkcs11_tests
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 839
    functionDepth: 1
    functionLinenumber: 839
    functionLinenumberEnd: 867
    functionName: Botan_Tests::LowLevelTests::run
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - run_pkcs11_tests
    - STRING_AND_FUNCTION
    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:37,1
    - Dst: Botan::PKCS11::LowLevel::C_GetFunctionList
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:42,1
    - Dst: std::make_unique<LowLevel>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:43,1
    - Dst: static_cast<CK_FLAGS>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:46,1
    - Dst: C_Initialize
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 49
    functionName: Botan_Tests::RAII_LowLevel::RAII_LowLevel
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Test::pkcs11_lib
    - std::make_unique<LowLevel>
    - static_cast<CK_FLAGS>
    - Botan::PKCS11::LowLevel::C_GetFunctionList
    - C_Initialize
    linkageType: ''
    returnType: void
    signature: void RAII_LowLevel()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: C_Logout
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:55,1
    - Dst: C_CloseSession
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:58,1
    - Dst: C_Finalize
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 64
    functionName: ~RAII_LowLevel() noexcept
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - C_Logout
    - C_CloseSession
    - C_Finalize
    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: 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(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: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    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: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    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: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    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:73,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:75,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - token_present
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 80
    functionName: Botan_Tests::RAII_LowLevel::get_slots
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 2
    functionsReached:
    - C_GetSlotList
    - Test_Error
    - 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:83,1
    - Dst: C_OpenSession
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:84,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - session_flags
    argTypes:
    - Flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 87
    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
    - C_OpenSession
    - std::vector::at
    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:90,1
    - Dst: Botan_Tests::RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:91,1
    - Dst: Botan_Tests::RAII_LowLevel::login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:92,1
    - Dst: PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: Botan_Tests::RAII_LowLevel::open_rw_session_with_user_login
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - PIN
    - Botan_Tests::RAII_LowLevel::open_session
    - Botan_Tests::RAII_LowLevel::login
    - Botan::PKCS11::flags
    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:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 101
    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:105,1
    - Dst: C_CloseSession
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 110
    functionName: Botan_Tests::RAII_LowLevel::close_session
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - C_CloseSession
    - Test_Error
    linkageType: ''
    returnType: void
    signature: void close_session()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:114,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:118,1
    - Dst: C_Login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - user_type
    - ' pin'
    argTypes:
    - UserType
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 123
    functionName: Botan_Tests::RAII_LowLevel::login
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 3
    functionsReached:
    - C_Login
    - Test_Error
    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:127,1
    - Dst: C_Logout
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 132
    functionName: Botan_Tests::RAII_LowLevel::logout
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - C_Logout
    - Test_Error
    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: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_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: 147
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 147
    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:159,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:164,1
    - Dst: test_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:164,1
    - Dst: test_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:166,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:167,1
    - Dst: empty
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:169,1
    - Dst: revert_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:170,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:171,1
    - Dst: test_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:176,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:177,1
    - Dst: empty
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:178,1
    - Dst: revert_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:179,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:180,1
    - Dst: test_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:185,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:186,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:188,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:188,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:190,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:191,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:191,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:192,1
    - Dst: empty
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:195,1
    - Dst: revert_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:196,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:197,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:198,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:198,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: 202
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 202
    functionName: Botan_Tests::test_function
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 46
    functionsReached:
    - Test::Result::test_throws
    - static_cast<uint32_t>
    - revert_func
    - test_func
    - Test::Result::test_rc_ok
    - empty
    - Test::Result::test_eq
    - std::to_string
    - Test::Result::test_rc_fail
    - Test::Result::test_success
    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:208,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:208,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: 209
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 209
    functionName: Botan_Tests::test_function
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 47
    functionsReached:
    - Botan_Tests::test_function
    - std::string
    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:212,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' name'
    - ' test_func'
    argTypes:
    - std::string
    - PKCS11_BoundTestFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 213
    functionName: Botan_Tests::test_function
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 48
    functionsReached:
    - Botan_Tests::test_function
    - std::string
    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:219,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: 220
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 220
    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:227,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:230,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 236
    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
    - 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:243,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:245,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 246
    functionName: Botan_Tests::test_c_get_function_list
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - std::ref
    - std::bind
    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:251,1
    - Dst: static_cast<CK_FLAGS>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:256,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:258,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:259,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 261
    functionName: Botan_Tests::test_initialize_finalize
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - static_cast<CK_FLAGS>
    - Botan::PKCS11::LowLevel::C_GetFunctionList
    - std::bind
    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:268,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:268,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:268,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 272
    functionName: Botan_Tests::test_c_get_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - RAII_LowLevel::get
    - Test::Result::test_ne
    - std::bind
    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:281,1
    - Dst: static_cast<bool (LowLevel::*)(bool, std::vector<SlotId>&, ReturnValue*)
        const>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:282,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:283,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:285,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:288,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:289,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:289,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:293,1
    - Dst: static_cast<bool (LowLevel::*)(bool, std::vector<SlotId>&, ReturnValue*)
        const>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:294,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:295,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:297,1
    - Dst: std::vector::clear
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:300,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:301,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:301,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:302,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 305
    functionName: Botan_Tests::test_c_get_slot_list
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - Test::Result::test_ne
    - RAII_LowLevel::get
    - std::vector::clear
    - std::ref
    - std::bind
    - static_cast<bool (LowLevel::*)(bool, std::vector<SlotId>&, ReturnValue*) const>
    - std::vector::size
    - Test::Result::merge
    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:309,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:312,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:314,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:314,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:314,1
    - Dst: reinterpret_cast<char*>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:316,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:317,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 320
    functionName: Botan_Tests::test_c_get_slot_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - std::string::size
    - RAII_LowLevel::get_slots
    - Test::Result::test_ne
    - std::vector::at
    - RAII_LowLevel::get
    - std::bind
    - reinterpret_cast<char*>
    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:324,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:327,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:329,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:329,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:329,1
    - Dst: reinterpret_cast<char*>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:331,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:332,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 335
    functionName: Botan_Tests::test_c_get_token_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - std::string::size
    - RAII_LowLevel::get_slots
    - Test::Result::test_ne
    - std::vector::at
    - RAII_LowLevel::get
    - std::bind
    - reinterpret_cast<char*>
    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:340,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:343,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:345,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 348
    functionName: Botan_Tests::test_c_wait_for_slot_event
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - RAII_LowLevel::get
    - Botan::PKCS11::flags
    - std::bind
    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:352,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:356,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:358,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:359,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:360,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:363,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:364,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 367
    functionName: Botan_Tests::test_c_get_mechanism_list
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - RAII_LowLevel::get_slots
    - std::vector::at
    - RAII_LowLevel::get
    - std::vector::empty
    - std::ref
    - Test::Result::confirm
    - std::bind
    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:371,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:374,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:374,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:377,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:378,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:379,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:380,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 384
    functionName: Botan_Tests::test_c_get_mechanism_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - RAII_LowLevel::get_slots
    - std::vector::at
    - RAII_LowLevel::get
    - std::bind
    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:388,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:393,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:396,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:397,1
    - Dst: Botan_Tests::SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:398,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:399,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 386
    functionDepth: 2
    functionLinenumber: 386
    functionLinenumberEnd: 403
    functionName: Botan_Tests::test_c_init_token
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - Botan_Tests::SO_PIN
    - RAII_LowLevel::get_slots
    - std::vector::at
    - RAII_LowLevel::get
    - std::ref
    - std::bind
    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:407,1
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:410,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:413,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:414,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:415,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:423,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:423,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:423,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:425,1
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:428,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:430,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:431,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:432,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:439,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 442
    functionName: Botan_Tests::test_open_close_session
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - RAII_LowLevel::get_slots
    - std::vector::at
    - RAII_LowLevel::get
    - Botan::PKCS11::flags
    - std::ref
    - std::bind
    - Test::Result::merge
    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:446,1
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:450,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: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:456,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:457,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:457,1
    - Dst: open_two_sessions
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:460,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:465,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:465,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:466,1
    - Dst: open_two_sessions
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:469,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:471,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:471,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:472,1
    - Dst: open_two_sessions
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:475,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:478,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:478,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:479,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:480,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 483
    functionName: Botan_Tests::test_c_close_all_sessions
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - RAII_LowLevel::get_slots
    - static_cast<uint32_t>
    - std::vector::at
    - RAII_LowLevel::get
    - Botan::PKCS11::flags
    - Test::Result::test_rc_ok
    - Test::Result::test_eq
    - Test::Result::test_success
    - 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:487,1
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:490,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:491,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:494,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:496,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:497,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:499,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:500,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:501,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:502,1
    - Dst: static_cast<CK_FLAGS>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 506
    functionName: Botan_Tests::test_c_get_session_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - RAII_LowLevel::get_slots
    - std::vector::at
    - RAII_LowLevel::get
    - static_cast<CK_FLAGS>
    - Botan::PKCS11::flags
    - RAII_LowLevel::open_session
    - Test::Result::confirm
    - std::bind
    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:512,1
    - Dst: std::string_view::end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:512,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:514,1
    - Dst: get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:517,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:520,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:524,1
    - Dst: get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:525,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:529,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: 530
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 530
    functionName: Botan_Tests::login_logout_helper
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 4
    functionsReached:
    - std::string_view::begin
    - Botan_Tests::test_function
    - std::ref
    - std::string_view::end
    - get
    - std::bind
    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:536,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:537,1
    - Dst: Botan_Tests::login_logout_helper
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 532
    functionDepth: 2
    functionLinenumber: 532
    functionLinenumberEnd: 540
    functionName: Botan_Tests::test_c_login_logout_security_officier
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::login_logout_helper
    - RAII_LowLevel::open_session
    - 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:546,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:547,1
    - Dst: Botan_Tests::login_logout_helper
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:548,1
    - Dst: RAII_LowLevel::close_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:549,1
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:552,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:553,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:555,1
    - Dst: Botan_Tests::login_logout_helper
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 542
    functionDepth: 2
    functionLinenumber: 542
    functionLinenumberEnd: 558
    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
    - RAII_LowLevel::close_session
    - RAII_LowLevel::open_session
    - Test::Result::merge
    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:564,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:565,1
    - Dst: RAII_LowLevel::login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:567,1
    - Dst: Botan_Tests::SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:567,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:570,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:572,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:574,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 560
    functionDepth: 2
    functionLinenumber: 560
    functionLinenumberEnd: 578
    functionName: Botan_Tests::test_c_init_pin
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - Botan_Tests::SO_PIN
    - Botan_Tests::PIN
    - RAII_LowLevel::get
    - Botan::PKCS11::flags
    - RAII_LowLevel::open_session
    - RAII_LowLevel::login
    - std::bind
    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:584,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:585,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:592,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:596,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:604,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:604,1
    - Dst: std::string::end
      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:606,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:606,1
    - Dst: get_pin_bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:607,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:607,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:609,1
    - Dst: RAII_LowLevel::login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:612,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:612,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:614,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:614,1
    - Dst: RAII_LowLevel::logout
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:615,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:619,1
    - Dst: std::string::end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:619,1
    - Dst: RAII_LowLevel::login
      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:622,1
    - Dst: Botan_Tests::SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:622,1
    - Dst: get_pin_bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:623,1
    - Dst: Botan_Tests::SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:623,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:625,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 580
    functionDepth: 2
    functionLinenumber: 580
    functionLinenumberEnd: 628
    functionName: Botan_Tests::test_c_set_pin
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - Botan_Tests::SO_PIN
    - Botan_Tests::PIN
    - std::string::begin
    - RAII_LowLevel::get
    - secure_vector<uint8_t>
    - Botan::PKCS11::flags
    - RAII_LowLevel::open_session
    - std::string::end
    - RAII_LowLevel::login
    - RAII_LowLevel::logout
    - std::bind
    - get_pin_bind
    - Test::Result::merge
    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:652,1
    - Dst: get_session_handle
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:653,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:653,1
    - Dst: static_cast<Ulong>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:653,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' p11_low_level'
    argTypes:
    - RAII_LowLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 648
    functionDepth: 1
    functionLinenumber: 648
    functionLinenumberEnd: 655
    functionName: Botan_Tests::create_simple_data_object
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 8
    functionsReached:
    - auto::data
    - static_cast<Ulong>
    - get_session_handle
    - get
    - auto::size
    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:659,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:665,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:666,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:668,1
    - Dst: static_cast<Ulong>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:669,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:669,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:673,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:674,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:674,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 657
    functionDepth: 1
    functionLinenumber: 657
    functionLinenumberEnd: 677
    functionName: Botan_Tests::test_c_create_object_c_destroy_object
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - Botan_Tests::test_function
    - RAII_LowLevel::open_rw_session_with_user_login
    - RAII_LowLevel::get
    - std::ref
    - static_cast<Ulong>
    - std::bind
    - auto::size
    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:682,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:683,1
    - Dst: RAII_LowLevel::login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:685,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:685,1
    - Dst: Botan_Tests::create_simple_data_object
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:687,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:690,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:691,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:697,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:698,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 679
    functionDepth: 2
    functionLinenumber: 679
    functionLinenumberEnd: 704
    functionName: Botan_Tests::test_c_get_object_size
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - Botan_Tests::PIN
    - Botan_Tests::create_simple_data_object
    - Test::Result::test_ne
    - RAII_LowLevel::get
    - Botan::PKCS11::flags
    - RAII_LowLevel::open_session
    - RAII_LowLevel::login
    - std::bind
    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:708,1
    - Dst: Botan_Tests::create_simple_data_object
      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:712,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:713,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:716,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:719,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:722,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:725,1
    - Dst: begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:727,1
    - Dst: end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:727,1
    - Dst: begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:728,1
    - Dst: end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:728,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:729,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:730,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 706
    functionDepth: 2
    functionLinenumber: 706
    functionLinenumberEnd: 736
    functionName: Botan_Tests::test_c_get_attribute_value
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - Botan_Tests::create_simple_data_object
    - RAII_LowLevel::open_rw_session_with_user_login
    - RAII_LowLevel::get
    - secure_vector<uint8_t>
    - std::ref
    - Test::Result::test_eq
    - end
    - std::bind
    - begin
    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:745,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:745,1
    - Dst: get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:748,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: 751
      start: 738
    functionDepth: 0
    functionLinenumber: 738
    functionLinenumberEnd: 751
    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:756,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:757,1
    - Dst: RAII_LowLevel::login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:759,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:759,1
    - Dst: Botan_Tests::create_simple_data_object
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:761,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:766,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:766,1
    - Dst: std::string::end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:766,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:769,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:772,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:775,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:778,1
    - Dst: Botan_Tests::get_attribute_values
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:782,1
    - Dst: begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:784,1
    - Dst: end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:785,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:787,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 753
    functionDepth: 2
    functionLinenumber: 753
    functionLinenumberEnd: 793
    functionName: Botan_Tests::test_c_set_attribute_value
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - Botan_Tests::PIN
    - Botan_Tests::create_simple_data_object
    - std::string::begin
    - RAII_LowLevel::get
    - secure_vector<uint8_t>
    - Botan::PKCS11::flags
    - Botan_Tests::get_attribute_values
    - std::ref
    - Test::Result::test_eq
    - RAII_LowLevel::open_session
    - std::string::end
    - RAII_LowLevel::login
    - end
    - std::bind
    - begin
    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:797,1
    - Dst: Botan_Tests::create_simple_data_object
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:799,1
    - Dst: static_cast<CK_ATTRIBUTE_TYPE>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:804,1
    - Dst: const_cast<char*>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:805,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:805,1
    - Dst: static_cast<CK_ULONG>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:806,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:806,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:808,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:809,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:817,1
    - Dst: Botan_Tests::get_attribute_values
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:821,1
    - Dst: begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:823,1
    - Dst: end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:824,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:826,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:829,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 795
    functionDepth: 2
    functionLinenumber: 795
    functionLinenumberEnd: 833
    functionName: Botan_Tests::test_c_copy_object
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - std::string::size
    - begin
    - Botan_Tests::create_simple_data_object
    - const_cast<char*>
    - RAII_LowLevel::open_rw_session_with_user_login
    - RAII_LowLevel::get
    - std::string::c_str
    - Botan_Tests::get_attribute_values
    - Test::Result::test_eq
    - end
    - std::bind
    - static_cast<CK_ULONG>
    - static_cast<CK_ATTRIBUTE_TYPE>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_copy_object()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:841,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:842,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:843,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:844,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:845,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:846,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:847,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:848,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:849,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:850,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:851,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:852,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:853,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:854,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:855,1
    - 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: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: run_pkcs11_tests
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 839
    functionDepth: 1
    functionLinenumber: 839
    functionLinenumberEnd: 867
    functionName: Botan_Tests::LowLevelTests::run
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - run_pkcs11_tests
    - STRING_AND_FUNCTION
    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:37,1
    - Dst: Botan::PKCS11::LowLevel::C_GetFunctionList
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:42,1
    - Dst: std::make_unique<LowLevel>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:43,1
    - Dst: static_cast<CK_FLAGS>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:46,1
    - Dst: C_Initialize
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 49
    functionName: Botan_Tests::RAII_LowLevel::RAII_LowLevel
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Test::pkcs11_lib
    - std::make_unique<LowLevel>
    - static_cast<CK_FLAGS>
    - Botan::PKCS11::LowLevel::C_GetFunctionList
    - C_Initialize
    linkageType: ''
    returnType: void
    signature: void RAII_LowLevel()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: C_Logout
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:55,1
    - Dst: C_CloseSession
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:58,1
    - Dst: C_Finalize
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 64
    functionName: ~RAII_LowLevel() noexcept
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - C_Logout
    - C_CloseSession
    - C_Finalize
    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: 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(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: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    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: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    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: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    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:73,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:75,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - token_present
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 80
    functionName: Botan_Tests::RAII_LowLevel::get_slots
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 3
    functionsReached:
    - C_GetSlotList
    - Test_Error
    - 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:83,1
    - Dst: C_OpenSession
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:84,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - session_flags
    argTypes:
    - Flags
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 87
    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
    - C_OpenSession
    - std::vector::at
    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:90,1
    - Dst: Botan_Tests::RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:91,1
    - Dst: Botan_Tests::RAII_LowLevel::login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:92,1
    - Dst: PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 94
    functionName: Botan_Tests::RAII_LowLevel::open_rw_session_with_user_login
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - PIN
    - Botan_Tests::RAII_LowLevel::open_session
    - Botan_Tests::RAII_LowLevel::login
    - Botan::PKCS11::flags
    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:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 101
    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:105,1
    - Dst: C_CloseSession
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 110
    functionName: Botan_Tests::RAII_LowLevel::close_session
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - C_CloseSession
    - Test_Error
    linkageType: ''
    returnType: void
    signature: void close_session()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:114,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:118,1
    - Dst: C_Login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - user_type
    - ' pin'
    argTypes:
    - UserType
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 123
    functionName: Botan_Tests::RAII_LowLevel::login
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 4
    functionsReached:
    - C_Login
    - Test_Error
    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:127,1
    - Dst: C_Logout
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:130,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 132
    functionName: Botan_Tests::RAII_LowLevel::logout
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - C_Logout
    - Test_Error
    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: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_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: 147
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 147
    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:159,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:164,1
    - Dst: test_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:164,1
    - Dst: test_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:166,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:167,1
    - Dst: empty
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:169,1
    - Dst: revert_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:170,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:171,1
    - Dst: test_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:176,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:177,1
    - Dst: empty
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:178,1
    - Dst: revert_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:179,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:180,1
    - Dst: test_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:185,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:186,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:188,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:188,1
    - Dst: Test::Result::test_rc_fail
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:190,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:191,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:191,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:192,1
    - Dst: empty
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:195,1
    - Dst: revert_func
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:196,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:197,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:198,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:198,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: 202
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 202
    functionName: Botan_Tests::test_function
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 69
    functionsReached:
    - Test::Result::test_throws
    - static_cast<uint32_t>
    - revert_func
    - test_func
    - Test::Result::test_rc_ok
    - empty
    - Test::Result::test_eq
    - std::to_string
    - Test::Result::test_rc_fail
    - Test::Result::test_success
    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:208,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:208,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: 209
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 209
    functionName: Botan_Tests::test_function
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 70
    functionsReached:
    - Botan_Tests::test_function
    - std::string
    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:212,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' name'
    - ' test_func'
    argTypes:
    - std::string
    - PKCS11_BoundTestFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 213
    functionName: Botan_Tests::test_function
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 71
    functionsReached:
    - Botan_Tests::test_function
    - std::string
    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:219,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: 220
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 220
    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:227,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:230,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 236
    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
    - 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:243,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:245,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 246
    functionName: Botan_Tests::test_c_get_function_list
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - std::ref
    - std::bind
    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:251,1
    - Dst: static_cast<CK_FLAGS>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:256,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:258,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:259,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 261
    functionName: Botan_Tests::test_initialize_finalize
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - static_cast<CK_FLAGS>
    - Botan::PKCS11::LowLevel::C_GetFunctionList
    - std::bind
    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:268,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:268,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:268,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 272
    functionName: Botan_Tests::test_c_get_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - RAII_LowLevel::get
    - Test::Result::test_ne
    - std::bind
    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:281,1
    - Dst: static_cast<bool (LowLevel::*)(bool, std::vector<SlotId>&, ReturnValue*)
        const>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:282,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:283,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:285,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:288,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:289,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:289,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:293,1
    - Dst: static_cast<bool (LowLevel::*)(bool, std::vector<SlotId>&, ReturnValue*)
        const>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:294,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:295,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:297,1
    - Dst: std::vector::clear
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:300,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:301,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:301,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:302,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 305
    functionName: Botan_Tests::test_c_get_slot_list
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - Test::Result::test_ne
    - RAII_LowLevel::get
    - std::vector::clear
    - std::ref
    - std::bind
    - static_cast<bool (LowLevel::*)(bool, std::vector<SlotId>&, ReturnValue*) const>
    - std::vector::size
    - Test::Result::merge
    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:309,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:312,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:314,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:314,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:314,1
    - Dst: reinterpret_cast<char*>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:316,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:317,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 320
    functionName: Botan_Tests::test_c_get_slot_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - std::string::size
    - RAII_LowLevel::get_slots
    - Test::Result::test_ne
    - std::vector::at
    - RAII_LowLevel::get
    - std::bind
    - reinterpret_cast<char*>
    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:324,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:327,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:329,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:329,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:329,1
    - Dst: reinterpret_cast<char*>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:331,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:332,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 335
    functionName: Botan_Tests::test_c_get_token_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - std::string::size
    - RAII_LowLevel::get_slots
    - Test::Result::test_ne
    - std::vector::at
    - RAII_LowLevel::get
    - std::bind
    - reinterpret_cast<char*>
    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:340,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:343,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:345,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 348
    functionName: Botan_Tests::test_c_wait_for_slot_event
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - RAII_LowLevel::get
    - Botan::PKCS11::flags
    - std::bind
    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:352,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:356,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:358,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:359,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:360,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:363,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:364,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 367
    functionName: Botan_Tests::test_c_get_mechanism_list
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - RAII_LowLevel::get_slots
    - std::vector::at
    - RAII_LowLevel::get
    - std::vector::empty
    - std::ref
    - Test::Result::confirm
    - std::bind
    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:371,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:374,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:374,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:377,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:378,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:379,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:380,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 384
    functionName: Botan_Tests::test_c_get_mechanism_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - RAII_LowLevel::get_slots
    - std::vector::at
    - RAII_LowLevel::get
    - std::bind
    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:388,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:393,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:396,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:397,1
    - Dst: Botan_Tests::SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:398,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:399,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 386
    functionDepth: 2
    functionLinenumber: 386
    functionLinenumberEnd: 403
    functionName: Botan_Tests::test_c_init_token
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - Botan_Tests::SO_PIN
    - RAII_LowLevel::get_slots
    - std::vector::at
    - RAII_LowLevel::get
    - std::ref
    - std::bind
    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:407,1
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:410,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:413,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:414,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:415,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:423,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:423,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:423,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:425,1
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:428,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:430,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:431,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:432,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:439,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 442
    functionName: Botan_Tests::test_open_close_session
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - RAII_LowLevel::get_slots
    - std::vector::at
    - RAII_LowLevel::get
    - Botan::PKCS11::flags
    - std::ref
    - std::bind
    - Test::Result::merge
    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:446,1
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:450,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: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:456,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:457,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:457,1
    - Dst: open_two_sessions
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:460,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:465,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:465,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:466,1
    - Dst: open_two_sessions
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:469,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:471,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:471,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:472,1
    - Dst: open_two_sessions
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:475,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:478,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:478,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:479,1
    - Dst: Test::Result::test_rc_ok
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:480,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 483
    functionName: Botan_Tests::test_c_close_all_sessions
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - RAII_LowLevel::get_slots
    - static_cast<uint32_t>
    - std::vector::at
    - RAII_LowLevel::get
    - Botan::PKCS11::flags
    - Test::Result::test_rc_ok
    - Test::Result::test_eq
    - Test::Result::test_success
    - 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:487,1
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:490,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:491,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:494,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:496,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:497,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:499,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:500,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:501,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:502,1
    - Dst: static_cast<CK_FLAGS>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 506
    functionName: Botan_Tests::test_c_get_session_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - RAII_LowLevel::get_slots
    - std::vector::at
    - RAII_LowLevel::get
    - static_cast<CK_FLAGS>
    - Botan::PKCS11::flags
    - RAII_LowLevel::open_session
    - Test::Result::confirm
    - std::bind
    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:512,1
    - Dst: std::string_view::end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:512,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:514,1
    - Dst: get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:517,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:520,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:524,1
    - Dst: get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:525,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:529,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: 530
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 530
    functionName: Botan_Tests::login_logout_helper
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 6
    functionsReached:
    - std::string_view::begin
    - Botan_Tests::test_function
    - std::ref
    - std::string_view::end
    - get
    - std::bind
    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:536,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:537,1
    - Dst: Botan_Tests::login_logout_helper
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 532
    functionDepth: 2
    functionLinenumber: 532
    functionLinenumberEnd: 540
    functionName: Botan_Tests::test_c_login_logout_security_officier
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::login_logout_helper
    - RAII_LowLevel::open_session
    - 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:546,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:547,1
    - Dst: Botan_Tests::login_logout_helper
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:548,1
    - Dst: RAII_LowLevel::close_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:549,1
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:552,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:553,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:555,1
    - Dst: Botan_Tests::login_logout_helper
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 542
    functionDepth: 2
    functionLinenumber: 542
    functionLinenumberEnd: 558
    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
    - RAII_LowLevel::close_session
    - RAII_LowLevel::open_session
    - Test::Result::merge
    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:564,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:565,1
    - Dst: RAII_LowLevel::login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:567,1
    - Dst: Botan_Tests::SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:567,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:570,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:572,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:574,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 560
    functionDepth: 2
    functionLinenumber: 560
    functionLinenumberEnd: 578
    functionName: Botan_Tests::test_c_init_pin
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - Botan_Tests::SO_PIN
    - Botan_Tests::PIN
    - RAII_LowLevel::get
    - Botan::PKCS11::flags
    - RAII_LowLevel::open_session
    - RAII_LowLevel::login
    - std::bind
    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:584,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:585,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:592,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:596,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:604,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:604,1
    - Dst: std::string::end
      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:606,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:606,1
    - Dst: get_pin_bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:607,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:607,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:609,1
    - Dst: RAII_LowLevel::login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:612,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:612,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:614,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:614,1
    - Dst: RAII_LowLevel::logout
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:615,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:619,1
    - Dst: std::string::end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:619,1
    - Dst: RAII_LowLevel::login
      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:622,1
    - Dst: Botan_Tests::SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:622,1
    - Dst: get_pin_bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:623,1
    - Dst: Botan_Tests::SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:623,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:625,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 580
    functionDepth: 2
    functionLinenumber: 580
    functionLinenumberEnd: 628
    functionName: Botan_Tests::test_c_set_pin
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - Botan_Tests::SO_PIN
    - Botan_Tests::PIN
    - std::string::begin
    - RAII_LowLevel::get
    - secure_vector<uint8_t>
    - Botan::PKCS11::flags
    - RAII_LowLevel::open_session
    - std::string::end
    - RAII_LowLevel::login
    - RAII_LowLevel::logout
    - std::bind
    - get_pin_bind
    - Test::Result::merge
    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:652,1
    - Dst: get_session_handle
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:653,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:653,1
    - Dst: static_cast<Ulong>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:653,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:653,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' p11_low_level'
    argTypes:
    - RAII_LowLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 648
    functionDepth: 1
    functionLinenumber: 648
    functionLinenumberEnd: 655
    functionName: Botan_Tests::create_simple_data_object
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 12
    functionsReached:
    - auto::data
    - static_cast<Ulong>
    - get_session_handle
    - get
    - auto::size
    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:659,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:665,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:666,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:668,1
    - Dst: static_cast<Ulong>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:669,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:669,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:673,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:674,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:674,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:676,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 677
      start: 657
    functionDepth: 1
    functionLinenumber: 657
    functionLinenumberEnd: 677
    functionName: Botan_Tests::test_c_create_object_c_destroy_object
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - Botan_Tests::test_function
    - RAII_LowLevel::open_rw_session_with_user_login
    - RAII_LowLevel::get
    - std::ref
    - static_cast<Ulong>
    - std::bind
    - auto::size
    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:682,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:683,1
    - Dst: RAII_LowLevel::login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:685,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:685,1
    - Dst: Botan_Tests::create_simple_data_object
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:687,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:690,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:691,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:697,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:698,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 679
    functionDepth: 2
    functionLinenumber: 679
    functionLinenumberEnd: 704
    functionName: Botan_Tests::test_c_get_object_size
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - Botan_Tests::PIN
    - Botan_Tests::create_simple_data_object
    - Test::Result::test_ne
    - RAII_LowLevel::get
    - Botan::PKCS11::flags
    - RAII_LowLevel::open_session
    - RAII_LowLevel::login
    - std::bind
    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:708,1
    - Dst: Botan_Tests::create_simple_data_object
      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:712,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:713,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:716,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:719,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:722,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:725,1
    - Dst: begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:727,1
    - Dst: end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:727,1
    - Dst: begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:728,1
    - Dst: end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:728,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:729,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:730,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 706
    functionDepth: 2
    functionLinenumber: 706
    functionLinenumberEnd: 736
    functionName: Botan_Tests::test_c_get_attribute_value
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - Botan_Tests::create_simple_data_object
    - RAII_LowLevel::open_rw_session_with_user_login
    - RAII_LowLevel::get
    - secure_vector<uint8_t>
    - std::ref
    - Test::Result::test_eq
    - end
    - std::bind
    - begin
    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:745,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:745,1
    - Dst: get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:748,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: 751
      start: 738
    functionDepth: 0
    functionLinenumber: 738
    functionLinenumberEnd: 751
    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:756,1
    - Dst: RAII_LowLevel::open_session
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:757,1
    - Dst: RAII_LowLevel::login
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:759,1
    - Dst: Botan_Tests::PIN
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:759,1
    - Dst: Botan_Tests::create_simple_data_object
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:761,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:766,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:766,1
    - Dst: std::string::end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:766,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:769,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:772,1
    - Dst: std::ref
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:775,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:778,1
    - Dst: Botan_Tests::get_attribute_values
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:782,1
    - Dst: begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:784,1
    - Dst: end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:785,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:787,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 753
    functionDepth: 2
    functionLinenumber: 753
    functionLinenumberEnd: 793
    functionName: Botan_Tests::test_c_set_attribute_value
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - Botan_Tests::PIN
    - Botan_Tests::create_simple_data_object
    - std::string::begin
    - RAII_LowLevel::get
    - secure_vector<uint8_t>
    - Botan::PKCS11::flags
    - Botan_Tests::get_attribute_values
    - std::ref
    - Test::Result::test_eq
    - RAII_LowLevel::open_session
    - std::string::end
    - RAII_LowLevel::login
    - end
    - std::bind
    - begin
    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:797,1
    - Dst: Botan_Tests::create_simple_data_object
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:799,1
    - Dst: static_cast<CK_ATTRIBUTE_TYPE>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:804,1
    - Dst: const_cast<char*>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:805,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:805,1
    - Dst: static_cast<CK_ULONG>
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:806,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:806,1
    - Dst: std::bind
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:808,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:809,1
    - Dst: Botan_Tests::test_function
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:817,1
    - Dst: Botan_Tests::get_attribute_values
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:821,1
    - Dst: begin
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:823,1
    - Dst: end
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:824,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:826,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:829,1
    - Dst: RAII_LowLevel::get
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 795
    functionDepth: 2
    functionLinenumber: 795
    functionLinenumberEnd: 833
    functionName: Botan_Tests::test_c_copy_object
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_function
    - std::string::size
    - begin
    - Botan_Tests::create_simple_data_object
    - const_cast<char*>
    - RAII_LowLevel::open_rw_session_with_user_login
    - RAII_LowLevel::get
    - std::string::c_str
    - Botan_Tests::get_attribute_values
    - Test::Result::test_eq
    - end
    - std::bind
    - static_cast<CK_ULONG>
    - static_cast<CK_ATTRIBUTE_TYPE>
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_c_copy_object()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:841,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:842,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:843,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:844,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:845,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:846,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:847,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:848,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:849,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:850,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:851,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:852,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:853,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:854,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:855,1
    - 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: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: run_pkcs11_tests
      Src: /src/botan/src/tests/test_pkcs11_low_level.cpp:866,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 839
    functionDepth: 1
    functionLinenumber: 839
    functionLinenumberEnd: 867
    functionName: Botan_Tests::LowLevelTests::run
    functionSourceFile: /src/botan/src/tests/test_pkcs11_low_level.cpp
    functionUses: 0
    functionsReached:
    - run_pkcs11_tests
    - STRING_AND_FUNCTION
    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: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    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:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    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:33,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lms.cpp:33,1
    - Dst: Botan::LMS_Message
      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_Tree_Node_Idx
      Src: /src/botan/src/tests/test_lms.cpp:35,1
    - Dst: get_req_u32
      Src: /src/botan/src/tests/test_lms.cpp:35,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lms.cpp:36,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lms.cpp:38,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_lms.cpp:40,1
    - Dst: Botan::BufferSlicer::BufferSlicer
      Src: /src/botan/src/tests/test_lms.cpp:42,1
    - Dst: Botan::LMS_PublicKey::from_bytes_or_throw
      Src: /src/botan/src/tests/test_lms.cpp:43,1
    - Dst: Botan::LMS_PrivateKey
      Src: /src/botan/src/tests/test_lms.cpp:47,1
    - Dst: Botan::LMS_PublicKey::lms_params
      Src: /src/botan/src/tests/test_lms.cpp:47,1
    - Dst: Botan::LMS_PublicKey::lmots_params
      Src: /src/botan/src/tests/test_lms.cpp:47,1
    - Dst: Botan::LMS_PublicKey::identifier
      Src: /src/botan/src/tests/test_lms.cpp:47,1
    - Dst: Botan::LMS_PublicKey
      Src: /src/botan/src/tests/test_lms.cpp:48,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_lms.cpp:50,1
    - Dst: auto::to_bytes
      Src: /src/botan/src/tests/test_lms.cpp:50,1
    - Dst: Botan::LMS_PrivateKey
      Src: /src/botan/src/tests/test_lms.cpp:54,1
    - Dst: Botan::LMS_PublicKey::lms_params
      Src: /src/botan/src/tests/test_lms.cpp:54,1
    - Dst: Botan::LMS_PublicKey::lmots_params
      Src: /src/botan/src/tests/test_lms.cpp:54,1
    - Dst: Botan::LMS_PublicKey::identifier
      Src: /src/botan/src/tests/test_lms.cpp:54,1
    - Dst: Botan::LMS_Signature::size
      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: auto::sign_and_get_pk
      Src: /src/botan/src/tests/test_lms.cpp:56,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_lms.cpp:57,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_lms.cpp:57,1
    - Dst: Botan::BufferSlicer::BufferSlicer
      Src: /src/botan/src/tests/test_lms.cpp:59,1
    - Dst: Botan::LMS_Signature::from_bytes_or_throw
      Src: /src/botan/src/tests/test_lms.cpp:60,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_lms.cpp:61,1
    - Dst: auto::verify_signature
      Src: /src/botan/src/tests/test_lms.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 64
    functionName: Botan_Tests::LMS_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_lms.cpp
    functionUses: 0
    functionsReached:
    - Botan::LMS_PublicKey::identifier
    - Botan::LMS_Message
    - Botan::HashFunction::create
    - Test::Result::test_is_eq
    - Botan::BufferSlicer::BufferSlicer
    - Botan::LMS_PublicKey
    - get_req_bin
    - Botan::LMS_Tree_Node_Idx
    - Botan::LMS_PublicKey::lmots_params
    - Botan::LMS_Signature::size
    - Botan::LMS_Seed
    - auto::to_bytes
    - auto::process
    - Botan::LMS_PublicKey::lms_params
    - Botan::LMS_PrivateKey
    - Botan::LMS_PublicKey::from_bytes_or_throw
    - auto::verify_signature
    - get_req_u32
    - auto::sign_and_get_pk
    - Test::Result::confirm
    - Botan::LMS_Signature::from_bytes_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: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    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:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    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:33,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lms.cpp:33,1
    - Dst: Botan::LMS_Message
      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_Tree_Node_Idx
      Src: /src/botan/src/tests/test_lms.cpp:35,1
    - Dst: get_req_u32
      Src: /src/botan/src/tests/test_lms.cpp:35,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lms.cpp:36,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lms.cpp:38,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_lms.cpp:40,1
    - Dst: Botan::BufferSlicer::BufferSlicer
      Src: /src/botan/src/tests/test_lms.cpp:42,1
    - Dst: Botan::LMS_PublicKey::from_bytes_or_throw
      Src: /src/botan/src/tests/test_lms.cpp:43,1
    - Dst: Botan::LMS_PrivateKey
      Src: /src/botan/src/tests/test_lms.cpp:47,1
    - Dst: Botan::LMS_PublicKey::lms_params
      Src: /src/botan/src/tests/test_lms.cpp:47,1
    - Dst: Botan::LMS_PublicKey::lmots_params
      Src: /src/botan/src/tests/test_lms.cpp:47,1
    - Dst: Botan::LMS_PublicKey::identifier
      Src: /src/botan/src/tests/test_lms.cpp:47,1
    - Dst: Botan::LMS_PublicKey
      Src: /src/botan/src/tests/test_lms.cpp:48,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_lms.cpp:50,1
    - Dst: auto::to_bytes
      Src: /src/botan/src/tests/test_lms.cpp:50,1
    - Dst: Botan::LMS_PrivateKey
      Src: /src/botan/src/tests/test_lms.cpp:54,1
    - Dst: Botan::LMS_PublicKey::lms_params
      Src: /src/botan/src/tests/test_lms.cpp:54,1
    - Dst: Botan::LMS_PublicKey::lmots_params
      Src: /src/botan/src/tests/test_lms.cpp:54,1
    - Dst: Botan::LMS_PublicKey::identifier
      Src: /src/botan/src/tests/test_lms.cpp:54,1
    - Dst: Botan::LMS_Signature::size
      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: auto::sign_and_get_pk
      Src: /src/botan/src/tests/test_lms.cpp:56,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_lms.cpp:57,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_lms.cpp:57,1
    - Dst: Botan::BufferSlicer::BufferSlicer
      Src: /src/botan/src/tests/test_lms.cpp:59,1
    - Dst: Botan::LMS_Signature::from_bytes_or_throw
      Src: /src/botan/src/tests/test_lms.cpp:60,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_lms.cpp:61,1
    - Dst: auto::verify_signature
      Src: /src/botan/src/tests/test_lms.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 64
    functionName: Botan_Tests::LMS_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_lms.cpp
    functionUses: 0
    functionsReached:
    - Botan::LMS_PublicKey::identifier
    - Botan::LMS_Message
    - Botan::HashFunction::create
    - Test::Result::test_is_eq
    - Botan::BufferSlicer::BufferSlicer
    - Botan::LMS_PublicKey
    - get_req_bin
    - Botan::LMS_Tree_Node_Idx
    - Botan::LMS_PublicKey::lmots_params
    - Botan::LMS_Signature::size
    - Botan::LMS_Seed
    - auto::to_bytes
    - auto::process
    - Botan::LMS_PublicKey::lms_params
    - Botan::LMS_PrivateKey
    - Botan::LMS_PublicKey::from_bytes_or_throw
    - auto::verify_signature
    - get_req_u32
    - auto::sign_and_get_pk
    - Test::Result::confirm
    - Botan::LMS_Signature::from_bytes_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: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    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:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    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:33,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lms.cpp:33,1
    - Dst: Botan::LMS_Message
      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_Tree_Node_Idx
      Src: /src/botan/src/tests/test_lms.cpp:35,1
    - Dst: get_req_u32
      Src: /src/botan/src/tests/test_lms.cpp:35,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lms.cpp:36,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lms.cpp:38,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_lms.cpp:40,1
    - Dst: Botan::BufferSlicer::BufferSlicer
      Src: /src/botan/src/tests/test_lms.cpp:42,1
    - Dst: Botan::LMS_PublicKey::from_bytes_or_throw
      Src: /src/botan/src/tests/test_lms.cpp:43,1
    - Dst: Botan::LMS_PrivateKey
      Src: /src/botan/src/tests/test_lms.cpp:47,1
    - Dst: Botan::LMS_PublicKey::lms_params
      Src: /src/botan/src/tests/test_lms.cpp:47,1
    - Dst: Botan::LMS_PublicKey::lmots_params
      Src: /src/botan/src/tests/test_lms.cpp:47,1
    - Dst: Botan::LMS_PublicKey::identifier
      Src: /src/botan/src/tests/test_lms.cpp:47,1
    - Dst: Botan::LMS_PublicKey
      Src: /src/botan/src/tests/test_lms.cpp:48,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_lms.cpp:50,1
    - Dst: auto::to_bytes
      Src: /src/botan/src/tests/test_lms.cpp:50,1
    - Dst: Botan::LMS_PrivateKey
      Src: /src/botan/src/tests/test_lms.cpp:54,1
    - Dst: Botan::LMS_PublicKey::lms_params
      Src: /src/botan/src/tests/test_lms.cpp:54,1
    - Dst: Botan::LMS_PublicKey::lmots_params
      Src: /src/botan/src/tests/test_lms.cpp:54,1
    - Dst: Botan::LMS_PublicKey::identifier
      Src: /src/botan/src/tests/test_lms.cpp:54,1
    - Dst: Botan::LMS_Signature::size
      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: auto::sign_and_get_pk
      Src: /src/botan/src/tests/test_lms.cpp:56,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_lms.cpp:57,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_lms.cpp:57,1
    - Dst: Botan::BufferSlicer::BufferSlicer
      Src: /src/botan/src/tests/test_lms.cpp:59,1
    - Dst: Botan::LMS_Signature::from_bytes_or_throw
      Src: /src/botan/src/tests/test_lms.cpp:60,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_lms.cpp:61,1
    - Dst: auto::verify_signature
      Src: /src/botan/src/tests/test_lms.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 64
    functionName: Botan_Tests::LMS_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_lms.cpp
    functionUses: 0
    functionsReached:
    - Botan::LMS_PublicKey::identifier
    - Botan::LMS_Message
    - Botan::HashFunction::create
    - Test::Result::test_is_eq
    - Botan::BufferSlicer::BufferSlicer
    - Botan::LMS_PublicKey
    - get_req_bin
    - Botan::LMS_Tree_Node_Idx
    - Botan::LMS_PublicKey::lmots_params
    - Botan::LMS_Signature::size
    - Botan::LMS_Seed
    - auto::to_bytes
    - auto::process
    - Botan::LMS_PublicKey::lms_params
    - Botan::LMS_PrivateKey
    - Botan::LMS_PublicKey::from_bytes_or_throw
    - auto::verify_signature
    - get_req_u32
    - auto::sign_and_get_pk
    - Test::Result::confirm
    - Botan::LMS_Signature::from_bytes_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: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    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:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    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:33,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lms.cpp:33,1
    - Dst: Botan::LMS_Message
      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_Tree_Node_Idx
      Src: /src/botan/src/tests/test_lms.cpp:35,1
    - Dst: get_req_u32
      Src: /src/botan/src/tests/test_lms.cpp:35,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lms.cpp:36,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lms.cpp:38,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_lms.cpp:40,1
    - Dst: Botan::BufferSlicer::BufferSlicer
      Src: /src/botan/src/tests/test_lms.cpp:42,1
    - Dst: Botan::LMS_PublicKey::from_bytes_or_throw
      Src: /src/botan/src/tests/test_lms.cpp:43,1
    - Dst: Botan::LMS_PrivateKey
      Src: /src/botan/src/tests/test_lms.cpp:47,1
    - Dst: Botan::LMS_PublicKey::lms_params
      Src: /src/botan/src/tests/test_lms.cpp:47,1
    - Dst: Botan::LMS_PublicKey::lmots_params
      Src: /src/botan/src/tests/test_lms.cpp:47,1
    - Dst: Botan::LMS_PublicKey::identifier
      Src: /src/botan/src/tests/test_lms.cpp:47,1
    - Dst: Botan::LMS_PublicKey
      Src: /src/botan/src/tests/test_lms.cpp:48,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_lms.cpp:50,1
    - Dst: auto::to_bytes
      Src: /src/botan/src/tests/test_lms.cpp:50,1
    - Dst: Botan::LMS_PrivateKey
      Src: /src/botan/src/tests/test_lms.cpp:54,1
    - Dst: Botan::LMS_PublicKey::lms_params
      Src: /src/botan/src/tests/test_lms.cpp:54,1
    - Dst: Botan::LMS_PublicKey::lmots_params
      Src: /src/botan/src/tests/test_lms.cpp:54,1
    - Dst: Botan::LMS_PublicKey::identifier
      Src: /src/botan/src/tests/test_lms.cpp:54,1
    - Dst: Botan::LMS_Signature::size
      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: auto::sign_and_get_pk
      Src: /src/botan/src/tests/test_lms.cpp:56,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_lms.cpp:57,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_lms.cpp:57,1
    - Dst: Botan::BufferSlicer::BufferSlicer
      Src: /src/botan/src/tests/test_lms.cpp:59,1
    - Dst: Botan::LMS_Signature::from_bytes_or_throw
      Src: /src/botan/src/tests/test_lms.cpp:60,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_lms.cpp:61,1
    - Dst: auto::verify_signature
      Src: /src/botan/src/tests/test_lms.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 64
    functionName: Botan_Tests::LMS_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_lms.cpp
    functionUses: 0
    functionsReached:
    - Botan::LMS_PublicKey::identifier
    - Botan::LMS_Message
    - Botan::HashFunction::create
    - Test::Result::test_is_eq
    - Botan::BufferSlicer::BufferSlicer
    - Botan::LMS_PublicKey
    - get_req_bin
    - Botan::LMS_Tree_Node_Idx
    - Botan::LMS_PublicKey::lmots_params
    - Botan::LMS_Signature::size
    - Botan::LMS_Seed
    - auto::to_bytes
    - auto::process
    - Botan::LMS_PublicKey::lms_params
    - Botan::LMS_PrivateKey
    - Botan::LMS_PublicKey::from_bytes_or_throw
    - auto::verify_signature
    - get_req_u32
    - auto::sign_and_get_pk
    - Test::Result::confirm
    - Botan::LMS_Signature::from_bytes_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: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    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: 9
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/test_aead.cpp:32,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/tests/test_aead.cpp:36,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:38,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_aead.cpp:38,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:38,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:38,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_aead.cpp:40,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_aead.cpp:40,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_aead.cpp:41,1
    - Dst: auto::valid_nonce_length
      Src: /src/botan/src/tests/test_aead.cpp:41,1
    - Dst: auto::default_nonce_length
      Src: /src/botan/src/tests/test_aead.cpp:41,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_aead.cpp:43,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:43,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:46,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:47,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:48,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:52,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:53,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:54,1
    - Dst: auto::associated_data_requires_key
      Src: /src/botan/src/tests/test_aead.cpp:57,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:58,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:59,1
    - Dst: data
      Src: /src/botan/src/tests/test_aead.cpp:59,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:59,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:62,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:62,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:65,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:65,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_aead.cpp:66,1
    - Dst: Test::Result::test_eq
      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: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:70,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:71,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:72,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:74,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:75,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:76,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:80,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:80,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:81,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:81,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:83,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:84,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:87,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:93,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:96,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:99,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:100,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:101,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:104,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:104,1
    - Dst: Botan::secure_vector::empty
      Src: /src/botan/src/tests/test_aead.cpp:107,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:108,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:109,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:112,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:113,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:116,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:117,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:119,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:121,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:122,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:124,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:124,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:124,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_aead.cpp:125,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_aead.cpp:126,1
    - Dst: Botan::secure_vector::reserve
      Src: /src/botan/src/tests/test_aead.cpp:129,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_aead.cpp:129,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_aead.cpp:129,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:131,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:132,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:133,1
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/tests/test_aead.cpp:137,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:137,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:137,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:137,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:141,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:142,1
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/tests/test_aead.cpp:143,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:143,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:143,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:143,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:145,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:149,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:150,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:152,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:154,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:155,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:157,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:157,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:157,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:160,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_aead.cpp:163,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_aead.cpp:163,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_aead.cpp:165,1
    - Dst: auto::requires_entire_message
      Src: /src/botan/src/tests/test_aead.cpp:166,1
    - Dst: Botan::secure_vector::erase
      Src: /src/botan/src/tests/test_aead.cpp:171,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:171,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:171,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:172,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:174,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:175,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:178,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:183,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_aead.cpp:184,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:185,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:185,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:187,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:188,1
    - Dst: auto::associated_data_requires_key
      Src: /src/botan/src/tests/test_aead.cpp:190,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:191,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:192,1
    - Dst: data
      Src: /src/botan/src/tests/test_aead.cpp:192,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:192,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 95
    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: 196
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 196
    functionName: Botan_Tests::AEAD_Tests::test_enc
    functionSourceFile: /src/botan/src/tests/test_aead.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - Test::Result::test_throws
    - Botan::secure_vector::end
    - Botan::secure_vector::erase
    - auto::set_key
    - Botan::secure_vector::empty
    - auto::default_nonce_length
    - Botan::secure_vector::data
    - begin
    - Botan::secure_vector::begin
    - auto::valid_nonce_length
    - Botan::secure_vector::size
    - get_garbage
    - auto::name
    - data
    - auto::has_keying_material
    - Botan::secure_vector::insert
    - Botan::secure_vector::reserve
    - find
    - auto::clear
    - Botan::secure_vector::assign
    - auto::associated_data_requires_key
    - auto::process
    - mutate_vec
    - Botan::AEAD_Mode::create
    - auto::finish
    - auto::requires_entire_message
    - auto::minimum_final_size
    - auto::reset
    - size
    - auto::output_length
    - auto::update_granularity
    - auto::set_associated_data
    - Test::Result::test_eq
    - random_vec
    - Test::Result::confirm
    - auto::start
    - 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: 9
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/test_aead.cpp:205,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/tests/test_aead.cpp:209,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:211,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_aead.cpp:211,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:211,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:211,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_aead.cpp:213,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:213,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_aead.cpp:214,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:214,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:217,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:218,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:219,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:223,1
    - Dst: get_ultimate_garbage
      Src: /src/botan/src/tests/test_aead.cpp:224,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:225,1
    - Dst: auto::associated_data_requires_key
      Src: /src/botan/src/tests/test_aead.cpp:228,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:229,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:230,1
    - Dst: data
      Src: /src/botan/src/tests/test_aead.cpp:230,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:230,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:235,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:235,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_aead.cpp:236,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:237,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:237,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:238,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:238,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:241,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:242,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:243,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:245,1
    - Dst: get_ultimate_garbage
      Src: /src/botan/src/tests/test_aead.cpp:246,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:247,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:251,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:251,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:252,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:253,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:256,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:258,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:258,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:263,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:264,1
    - Dst: auto::reset
      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::start
      Src: /src/botan/src/tests/test_aead.cpp:269,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:273,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:274,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:277,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:278,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:280,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:282,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:283,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:285,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:285,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:285,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_aead.cpp:286,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_aead.cpp:287,1
    - Dst: Botan::secure_vector::reserve
      Src: /src/botan/src/tests/test_aead.cpp:290,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_aead.cpp:290,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_aead.cpp:290,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:292,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:293,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:294,1
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/tests/test_aead.cpp:297,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:297,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:297,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:297,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:301,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:302,1
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/tests/test_aead.cpp:303,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:303,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:303,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:303,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:305,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:309,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:310,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:312,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:314,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:315,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:317,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:317,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:317,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:320,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_aead.cpp:323,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_aead.cpp:323,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_aead.cpp:325,1
    - Dst: auto::requires_entire_message
      Src: /src/botan/src/tests/test_aead.cpp:326,1
    - Dst: Botan::secure_vector::erase
      Src: /src/botan/src/tests/test_aead.cpp:331,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:331,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:331,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:332,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:334,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:335,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:338,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:342,1
    - Dst: what
      Src: /src/botan/src/tests/test_aead.cpp:342,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:346,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:347,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:347,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_aead.cpp:347,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:349,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:351,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:352,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:355,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:356,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_aead.cpp:358,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:360,1
    - Dst: what
      Src: /src/botan/src/tests/test_aead.cpp:360,1
    - Dst: empty
      Src: /src/botan/src/tests/test_aead.cpp:364,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:365,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:365,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:365,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:366,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:368,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:369,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:370,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:373,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:374,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_aead.cpp:376,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:378,1
    - Dst: what
      Src: /src/botan/src/tests/test_aead.cpp:378,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:383,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:385,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:386,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:388,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:391,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:391,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:391,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:392,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:393,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_aead.cpp:395,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:397,1
    - Dst: what
      Src: /src/botan/src/tests/test_aead.cpp:397,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:401,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_aead.cpp:402,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:403,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:403,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:405,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:405,1
    - Dst: auto::associated_data_requires_key
      Src: /src/botan/src/tests/test_aead.cpp:407,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:408,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:409,1
    - Dst: data
      Src: /src/botan/src/tests/test_aead.cpp:409,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:409,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 131
    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: 413
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 413
    functionName: Botan_Tests::AEAD_Tests::test_dec
    functionSourceFile: /src/botan/src/tests/test_aead.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - Test::Result::test_throws
    - Botan::secure_vector::end
    - Botan::secure_vector::erase
    - auto::set_key
    - Test::Result::test_failure
    - std::vector::end
    - Botan::secure_vector::data
    - what
    - begin
    - Botan::secure_vector::begin
    - Botan::secure_vector::size
    - get_garbage
    - std::vector::begin
    - data
    - auto::has_keying_material
    - get_ultimate_garbage
    - Botan::secure_vector::insert
    - Botan::secure_vector::reserve
    - find
    - Test::Result::test_success
    - auto::clear
    - Botan::secure_vector::assign
    - auto::associated_data_requires_key
    - auto::process
    - mutate_vec
    - Botan::AEAD_Mode::create
    - auto::finish
    - auto::requires_entire_message
    - auto::minimum_final_size
    - auto::reset
    - size
    - auto::output_length
    - auto::update_granularity
    - auto::set_associated_data
    - Test::Result::test_eq
    - empty
    - random_vec
    - auto::start
    - end
    - Test::Result::confirm
    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:416,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_aead.cpp:417,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_aead.cpp:418,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_aead.cpp:419,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_aead.cpp:420,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/tests/test_aead.cpp:424,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/tests/test_aead.cpp:425,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_aead.cpp:428,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:433,1
    - Dst: auto::authenticated
      Src: /src/botan/src/tests/test_aead.cpp:433,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:434,1
    - Dst: auto::authenticated
      Src: /src/botan/src/tests/test_aead.cpp:434,1
    - Dst: auto::provider
      Src: /src/botan/src/tests/test_aead.cpp:436,1
    - Dst: Test::Result::test_is_nonempty
      Src: /src/botan/src/tests/test_aead.cpp:437,1
    - Dst: auto::provider
      Src: /src/botan/src/tests/test_aead.cpp:438,1
    - Dst: Test::Result::test_is_nonempty
      Src: /src/botan/src/tests/test_aead.cpp:439,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:441,1
    - Dst: Test::Result::test_gt
      Src: /src/botan/src/tests/test_aead.cpp:444,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_aead.cpp:444,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:444,1
    - Dst: Test::Result::test_gt
      Src: /src/botan/src/tests/test_aead.cpp:445,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_aead.cpp:445,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:445,1
    - Dst: Test::Result::test_gt
      Src: /src/botan/src/tests/test_aead.cpp:447,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:447,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:449,1
    - Dst: auto::ideal_granularity
      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: Test::Result::test_gt
      Src: /src/botan/src/tests/test_aead.cpp:452,1
    - Dst: auto::ideal_granularity
      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::confirm
      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::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:456,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_aead.cpp:459,1
    - Dst: Botan_Tests::AEAD_Tests::test_enc
      Src: /src/botan/src/tests/test_aead.cpp:459,1
    - Dst: Botan_Tests::AEAD_Tests::rng
      Src: /src/botan/src/tests/test_aead.cpp:459,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_aead.cpp:463,1
    - Dst: Botan_Tests::AEAD_Tests::test_dec
      Src: /src/botan/src/tests/test_aead.cpp:463,1
    - Dst: Botan_Tests::AEAD_Tests::rng
      Src: /src/botan/src/tests/test_aead.cpp:463,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 415
    functionDepth: 2
    functionLinenumber: 415
    functionLinenumberEnd: 466
    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
    - Test::Result::note_missing
    - auto::minimum_final_size
    - get_opt_bin
    - auto::ideal_granularity
    - Test::Result::test_is_nonempty
    - Botan_Tests::AEAD_Tests::test_dec
    - auto::provider
    - Botan::AEAD_Mode::create
    - Test::Result::test_eq
    - auto::update_granularity
    - Test::Result::confirm
    - Test::Result::test_gt
    - Botan_Tests::AEAD_Tests::rng
    - get_req_bin
    - auto::authenticated
    - Test::Result::merge
    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::AEAD_Tests::AEAD_Tests
    functionSourceFile: /src/botan/src/tests/test_aead.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AEAD_Tests()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/test_aead.cpp:32,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/tests/test_aead.cpp:36,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:38,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_aead.cpp:38,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:38,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:38,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_aead.cpp:40,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_aead.cpp:40,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_aead.cpp:41,1
    - Dst: auto::valid_nonce_length
      Src: /src/botan/src/tests/test_aead.cpp:41,1
    - Dst: auto::default_nonce_length
      Src: /src/botan/src/tests/test_aead.cpp:41,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_aead.cpp:43,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:43,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:46,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:47,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:48,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:52,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:53,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:54,1
    - Dst: auto::associated_data_requires_key
      Src: /src/botan/src/tests/test_aead.cpp:57,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:58,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:59,1
    - Dst: data
      Src: /src/botan/src/tests/test_aead.cpp:59,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:59,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:62,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:62,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:65,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:65,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_aead.cpp:66,1
    - Dst: Test::Result::test_eq
      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: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:70,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:71,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:72,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:74,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:75,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:76,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:80,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:80,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:81,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:81,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:83,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:84,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:87,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:93,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:96,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:99,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:100,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:101,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:104,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:104,1
    - Dst: Botan::secure_vector::empty
      Src: /src/botan/src/tests/test_aead.cpp:107,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:108,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:109,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:112,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:113,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:116,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:117,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:119,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:121,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:122,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:124,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:124,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:124,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_aead.cpp:125,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_aead.cpp:126,1
    - Dst: Botan::secure_vector::reserve
      Src: /src/botan/src/tests/test_aead.cpp:129,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_aead.cpp:129,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_aead.cpp:129,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:131,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:132,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:133,1
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/tests/test_aead.cpp:137,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:137,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:137,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:137,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:141,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:142,1
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/tests/test_aead.cpp:143,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:143,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:143,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:143,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:145,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:149,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:150,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:152,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:154,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:155,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:157,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:157,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:157,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:160,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_aead.cpp:163,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_aead.cpp:163,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_aead.cpp:165,1
    - Dst: auto::requires_entire_message
      Src: /src/botan/src/tests/test_aead.cpp:166,1
    - Dst: Botan::secure_vector::erase
      Src: /src/botan/src/tests/test_aead.cpp:171,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:171,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:171,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:172,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:174,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:175,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:178,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:183,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_aead.cpp:184,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:185,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:185,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:187,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:188,1
    - Dst: auto::associated_data_requires_key
      Src: /src/botan/src/tests/test_aead.cpp:190,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:191,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:192,1
    - Dst: data
      Src: /src/botan/src/tests/test_aead.cpp:192,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:192,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 95
    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: 196
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 196
    functionName: Botan_Tests::AEAD_Tests::test_enc
    functionSourceFile: /src/botan/src/tests/test_aead.cpp
    functionUses: 1
    functionsReached:
    - auto::update
    - Test::Result::test_throws
    - Botan::secure_vector::end
    - Botan::secure_vector::erase
    - auto::set_key
    - Botan::secure_vector::empty
    - auto::default_nonce_length
    - Botan::secure_vector::data
    - begin
    - Botan::secure_vector::begin
    - auto::valid_nonce_length
    - Botan::secure_vector::size
    - get_garbage
    - auto::name
    - data
    - auto::has_keying_material
    - Botan::secure_vector::insert
    - Botan::secure_vector::reserve
    - find
    - auto::clear
    - Botan::secure_vector::assign
    - auto::associated_data_requires_key
    - auto::process
    - mutate_vec
    - Botan::AEAD_Mode::create
    - auto::finish
    - auto::requires_entire_message
    - auto::minimum_final_size
    - auto::reset
    - size
    - auto::output_length
    - auto::update_granularity
    - auto::set_associated_data
    - Test::Result::test_eq
    - random_vec
    - Test::Result::confirm
    - auto::start
    - 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: 9
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/test_aead.cpp:205,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/tests/test_aead.cpp:209,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:211,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_aead.cpp:211,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:211,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:211,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_aead.cpp:213,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:213,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_aead.cpp:214,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:214,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:217,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:218,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:219,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:223,1
    - Dst: get_ultimate_garbage
      Src: /src/botan/src/tests/test_aead.cpp:224,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:225,1
    - Dst: auto::associated_data_requires_key
      Src: /src/botan/src/tests/test_aead.cpp:228,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:229,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:230,1
    - Dst: data
      Src: /src/botan/src/tests/test_aead.cpp:230,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:230,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:235,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:235,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_aead.cpp:236,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:237,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:237,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:238,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:238,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:241,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:242,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:243,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:245,1
    - Dst: get_ultimate_garbage
      Src: /src/botan/src/tests/test_aead.cpp:246,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:247,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:251,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:251,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:252,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:253,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:256,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:258,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:258,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:263,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:264,1
    - Dst: auto::reset
      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::start
      Src: /src/botan/src/tests/test_aead.cpp:269,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:273,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:274,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:277,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:278,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:280,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:282,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:283,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:285,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:285,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:285,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_aead.cpp:286,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_aead.cpp:287,1
    - Dst: Botan::secure_vector::reserve
      Src: /src/botan/src/tests/test_aead.cpp:290,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_aead.cpp:290,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_aead.cpp:290,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:292,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:293,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:294,1
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/tests/test_aead.cpp:297,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:297,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:297,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:297,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:301,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:302,1
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/tests/test_aead.cpp:303,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:303,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:303,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:303,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:305,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:309,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:310,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:312,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:314,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:315,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:317,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:317,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:317,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:320,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_aead.cpp:323,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_aead.cpp:323,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_aead.cpp:325,1
    - Dst: auto::requires_entire_message
      Src: /src/botan/src/tests/test_aead.cpp:326,1
    - Dst: Botan::secure_vector::erase
      Src: /src/botan/src/tests/test_aead.cpp:331,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:331,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:331,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:332,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:334,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:335,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:338,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:342,1
    - Dst: what
      Src: /src/botan/src/tests/test_aead.cpp:342,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:346,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:347,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:347,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_aead.cpp:347,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:349,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:351,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:352,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:355,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:356,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_aead.cpp:358,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:360,1
    - Dst: what
      Src: /src/botan/src/tests/test_aead.cpp:360,1
    - Dst: empty
      Src: /src/botan/src/tests/test_aead.cpp:364,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:365,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:365,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:365,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:366,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:368,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:369,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:370,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:373,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:374,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_aead.cpp:376,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:378,1
    - Dst: what
      Src: /src/botan/src/tests/test_aead.cpp:378,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:383,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:385,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:386,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:388,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:391,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:391,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:391,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:392,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:393,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_aead.cpp:395,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:397,1
    - Dst: what
      Src: /src/botan/src/tests/test_aead.cpp:397,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:401,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_aead.cpp:402,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:403,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:403,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:405,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:405,1
    - Dst: auto::associated_data_requires_key
      Src: /src/botan/src/tests/test_aead.cpp:407,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:408,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:409,1
    - Dst: data
      Src: /src/botan/src/tests/test_aead.cpp:409,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:409,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 131
    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: 413
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 413
    functionName: Botan_Tests::AEAD_Tests::test_dec
    functionSourceFile: /src/botan/src/tests/test_aead.cpp
    functionUses: 1
    functionsReached:
    - auto::update
    - Test::Result::test_throws
    - Botan::secure_vector::end
    - Botan::secure_vector::erase
    - auto::set_key
    - Test::Result::test_failure
    - std::vector::end
    - Botan::secure_vector::data
    - what
    - begin
    - Botan::secure_vector::begin
    - Botan::secure_vector::size
    - get_garbage
    - std::vector::begin
    - data
    - auto::has_keying_material
    - get_ultimate_garbage
    - Botan::secure_vector::insert
    - Botan::secure_vector::reserve
    - find
    - Test::Result::test_success
    - auto::clear
    - Botan::secure_vector::assign
    - auto::associated_data_requires_key
    - auto::process
    - mutate_vec
    - Botan::AEAD_Mode::create
    - auto::finish
    - auto::requires_entire_message
    - auto::minimum_final_size
    - auto::reset
    - size
    - auto::output_length
    - auto::update_granularity
    - auto::set_associated_data
    - Test::Result::test_eq
    - empty
    - random_vec
    - auto::start
    - end
    - Test::Result::confirm
    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:416,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_aead.cpp:417,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_aead.cpp:418,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_aead.cpp:419,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_aead.cpp:420,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/tests/test_aead.cpp:424,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/tests/test_aead.cpp:425,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_aead.cpp:428,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:433,1
    - Dst: auto::authenticated
      Src: /src/botan/src/tests/test_aead.cpp:433,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:434,1
    - Dst: auto::authenticated
      Src: /src/botan/src/tests/test_aead.cpp:434,1
    - Dst: auto::provider
      Src: /src/botan/src/tests/test_aead.cpp:436,1
    - Dst: Test::Result::test_is_nonempty
      Src: /src/botan/src/tests/test_aead.cpp:437,1
    - Dst: auto::provider
      Src: /src/botan/src/tests/test_aead.cpp:438,1
    - Dst: Test::Result::test_is_nonempty
      Src: /src/botan/src/tests/test_aead.cpp:439,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:441,1
    - Dst: Test::Result::test_gt
      Src: /src/botan/src/tests/test_aead.cpp:444,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_aead.cpp:444,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:444,1
    - Dst: Test::Result::test_gt
      Src: /src/botan/src/tests/test_aead.cpp:445,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_aead.cpp:445,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:445,1
    - Dst: Test::Result::test_gt
      Src: /src/botan/src/tests/test_aead.cpp:447,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:447,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:449,1
    - Dst: auto::ideal_granularity
      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: Test::Result::test_gt
      Src: /src/botan/src/tests/test_aead.cpp:452,1
    - Dst: auto::ideal_granularity
      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::confirm
      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::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:456,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_aead.cpp:459,1
    - Dst: Botan_Tests::AEAD_Tests::test_enc
      Src: /src/botan/src/tests/test_aead.cpp:459,1
    - Dst: Botan_Tests::AEAD_Tests::rng
      Src: /src/botan/src/tests/test_aead.cpp:459,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_aead.cpp:463,1
    - Dst: Botan_Tests::AEAD_Tests::test_dec
      Src: /src/botan/src/tests/test_aead.cpp:463,1
    - Dst: Botan_Tests::AEAD_Tests::rng
      Src: /src/botan/src/tests/test_aead.cpp:463,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 415
    functionDepth: 2
    functionLinenumber: 415
    functionLinenumberEnd: 466
    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
    - Test::Result::note_missing
    - auto::minimum_final_size
    - get_opt_bin
    - auto::ideal_granularity
    - Test::Result::test_is_nonempty
    - Botan_Tests::AEAD_Tests::test_dec
    - auto::provider
    - Botan::AEAD_Mode::create
    - Test::Result::test_eq
    - auto::update_granularity
    - Test::Result::confirm
    - Test::Result::test_gt
    - Botan_Tests::AEAD_Tests::rng
    - get_req_bin
    - auto::authenticated
    - Test::Result::merge
    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::AEAD_Tests::AEAD_Tests
    functionSourceFile: /src/botan/src/tests/test_aead.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AEAD_Tests()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/test_aead.cpp:32,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/tests/test_aead.cpp:36,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:38,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_aead.cpp:38,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:38,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:38,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_aead.cpp:40,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_aead.cpp:40,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_aead.cpp:41,1
    - Dst: auto::valid_nonce_length
      Src: /src/botan/src/tests/test_aead.cpp:41,1
    - Dst: auto::default_nonce_length
      Src: /src/botan/src/tests/test_aead.cpp:41,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_aead.cpp:43,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:43,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:46,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:47,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:48,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:52,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:53,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:54,1
    - Dst: auto::associated_data_requires_key
      Src: /src/botan/src/tests/test_aead.cpp:57,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:58,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:59,1
    - Dst: data
      Src: /src/botan/src/tests/test_aead.cpp:59,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:59,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:62,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:62,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:65,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:65,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_aead.cpp:66,1
    - Dst: Test::Result::test_eq
      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: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:70,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:71,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:72,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:74,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:75,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:76,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:80,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:80,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:81,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:81,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:83,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:84,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:87,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:93,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:96,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:99,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:100,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:101,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:104,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:104,1
    - Dst: Botan::secure_vector::empty
      Src: /src/botan/src/tests/test_aead.cpp:107,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:108,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:109,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:112,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:113,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:116,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:117,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:119,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:121,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:122,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:124,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:124,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:124,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_aead.cpp:125,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_aead.cpp:126,1
    - Dst: Botan::secure_vector::reserve
      Src: /src/botan/src/tests/test_aead.cpp:129,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_aead.cpp:129,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_aead.cpp:129,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:131,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:132,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:133,1
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/tests/test_aead.cpp:137,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:137,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:137,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:137,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:141,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:142,1
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/tests/test_aead.cpp:143,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:143,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:143,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:143,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:145,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:149,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:150,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:152,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:154,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:155,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:157,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:157,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:157,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:160,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_aead.cpp:163,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_aead.cpp:163,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_aead.cpp:165,1
    - Dst: auto::requires_entire_message
      Src: /src/botan/src/tests/test_aead.cpp:166,1
    - Dst: Botan::secure_vector::erase
      Src: /src/botan/src/tests/test_aead.cpp:171,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:171,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:171,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:172,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:174,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:175,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:178,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:183,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_aead.cpp:184,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:185,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:185,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:187,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:188,1
    - Dst: auto::associated_data_requires_key
      Src: /src/botan/src/tests/test_aead.cpp:190,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:191,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:192,1
    - Dst: data
      Src: /src/botan/src/tests/test_aead.cpp:192,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:192,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 95
    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: 196
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 196
    functionName: Botan_Tests::AEAD_Tests::test_enc
    functionSourceFile: /src/botan/src/tests/test_aead.cpp
    functionUses: 2
    functionsReached:
    - auto::update
    - Test::Result::test_throws
    - Botan::secure_vector::end
    - Botan::secure_vector::erase
    - auto::set_key
    - Botan::secure_vector::empty
    - auto::default_nonce_length
    - Botan::secure_vector::data
    - begin
    - Botan::secure_vector::begin
    - auto::valid_nonce_length
    - Botan::secure_vector::size
    - get_garbage
    - auto::name
    - data
    - auto::has_keying_material
    - Botan::secure_vector::insert
    - Botan::secure_vector::reserve
    - find
    - auto::clear
    - Botan::secure_vector::assign
    - auto::associated_data_requires_key
    - auto::process
    - mutate_vec
    - Botan::AEAD_Mode::create
    - auto::finish
    - auto::requires_entire_message
    - auto::minimum_final_size
    - auto::reset
    - size
    - auto::output_length
    - auto::update_granularity
    - auto::set_associated_data
    - Test::Result::test_eq
    - random_vec
    - Test::Result::confirm
    - auto::start
    - 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: 9
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/test_aead.cpp:205,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/tests/test_aead.cpp:209,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:211,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_aead.cpp:211,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:211,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:211,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_aead.cpp:213,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:213,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_aead.cpp:214,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:214,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:217,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:218,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:219,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:223,1
    - Dst: get_ultimate_garbage
      Src: /src/botan/src/tests/test_aead.cpp:224,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:225,1
    - Dst: auto::associated_data_requires_key
      Src: /src/botan/src/tests/test_aead.cpp:228,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:229,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:230,1
    - Dst: data
      Src: /src/botan/src/tests/test_aead.cpp:230,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:230,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:235,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:235,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_aead.cpp:236,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:237,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:237,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:238,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:238,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:241,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:242,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:243,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:245,1
    - Dst: get_ultimate_garbage
      Src: /src/botan/src/tests/test_aead.cpp:246,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:247,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:251,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:251,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:252,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:253,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:256,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:258,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:258,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:263,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:264,1
    - Dst: auto::reset
      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::start
      Src: /src/botan/src/tests/test_aead.cpp:269,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:273,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:274,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:277,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:278,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:280,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:282,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:283,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:285,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:285,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:285,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_aead.cpp:286,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_aead.cpp:287,1
    - Dst: Botan::secure_vector::reserve
      Src: /src/botan/src/tests/test_aead.cpp:290,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_aead.cpp:290,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_aead.cpp:290,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:292,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:293,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:294,1
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/tests/test_aead.cpp:297,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:297,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:297,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:297,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:301,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:302,1
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/tests/test_aead.cpp:303,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:303,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:303,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:303,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:305,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:309,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:310,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:312,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:314,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:315,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:317,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:317,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:317,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:320,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_aead.cpp:323,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_aead.cpp:323,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_aead.cpp:325,1
    - Dst: auto::requires_entire_message
      Src: /src/botan/src/tests/test_aead.cpp:326,1
    - Dst: Botan::secure_vector::erase
      Src: /src/botan/src/tests/test_aead.cpp:331,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:331,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:331,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:332,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:334,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:335,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:338,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:342,1
    - Dst: what
      Src: /src/botan/src/tests/test_aead.cpp:342,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:346,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:347,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:347,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_aead.cpp:347,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:349,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:351,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:352,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:355,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:356,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_aead.cpp:358,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:360,1
    - Dst: what
      Src: /src/botan/src/tests/test_aead.cpp:360,1
    - Dst: empty
      Src: /src/botan/src/tests/test_aead.cpp:364,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:365,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:365,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:365,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:366,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:368,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:369,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:370,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:373,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:374,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_aead.cpp:376,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:378,1
    - Dst: what
      Src: /src/botan/src/tests/test_aead.cpp:378,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:383,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:385,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:386,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:388,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:391,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:391,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:391,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:392,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:393,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_aead.cpp:395,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:397,1
    - Dst: what
      Src: /src/botan/src/tests/test_aead.cpp:397,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:401,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_aead.cpp:402,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:403,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:403,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:405,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:405,1
    - Dst: auto::associated_data_requires_key
      Src: /src/botan/src/tests/test_aead.cpp:407,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:408,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:409,1
    - Dst: data
      Src: /src/botan/src/tests/test_aead.cpp:409,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:409,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 131
    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: 413
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 413
    functionName: Botan_Tests::AEAD_Tests::test_dec
    functionSourceFile: /src/botan/src/tests/test_aead.cpp
    functionUses: 2
    functionsReached:
    - auto::update
    - Test::Result::test_throws
    - Botan::secure_vector::end
    - Botan::secure_vector::erase
    - auto::set_key
    - Test::Result::test_failure
    - std::vector::end
    - Botan::secure_vector::data
    - what
    - begin
    - Botan::secure_vector::begin
    - Botan::secure_vector::size
    - get_garbage
    - std::vector::begin
    - data
    - auto::has_keying_material
    - get_ultimate_garbage
    - Botan::secure_vector::insert
    - Botan::secure_vector::reserve
    - find
    - Test::Result::test_success
    - auto::clear
    - Botan::secure_vector::assign
    - auto::associated_data_requires_key
    - auto::process
    - mutate_vec
    - Botan::AEAD_Mode::create
    - auto::finish
    - auto::requires_entire_message
    - auto::minimum_final_size
    - auto::reset
    - size
    - auto::output_length
    - auto::update_granularity
    - auto::set_associated_data
    - Test::Result::test_eq
    - empty
    - random_vec
    - auto::start
    - end
    - Test::Result::confirm
    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:416,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_aead.cpp:417,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_aead.cpp:418,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_aead.cpp:419,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_aead.cpp:420,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/tests/test_aead.cpp:424,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/tests/test_aead.cpp:425,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_aead.cpp:428,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:433,1
    - Dst: auto::authenticated
      Src: /src/botan/src/tests/test_aead.cpp:433,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:434,1
    - Dst: auto::authenticated
      Src: /src/botan/src/tests/test_aead.cpp:434,1
    - Dst: auto::provider
      Src: /src/botan/src/tests/test_aead.cpp:436,1
    - Dst: Test::Result::test_is_nonempty
      Src: /src/botan/src/tests/test_aead.cpp:437,1
    - Dst: auto::provider
      Src: /src/botan/src/tests/test_aead.cpp:438,1
    - Dst: Test::Result::test_is_nonempty
      Src: /src/botan/src/tests/test_aead.cpp:439,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:441,1
    - Dst: Test::Result::test_gt
      Src: /src/botan/src/tests/test_aead.cpp:444,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_aead.cpp:444,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:444,1
    - Dst: Test::Result::test_gt
      Src: /src/botan/src/tests/test_aead.cpp:445,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_aead.cpp:445,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:445,1
    - Dst: Test::Result::test_gt
      Src: /src/botan/src/tests/test_aead.cpp:447,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:447,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:449,1
    - Dst: auto::ideal_granularity
      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: Test::Result::test_gt
      Src: /src/botan/src/tests/test_aead.cpp:452,1
    - Dst: auto::ideal_granularity
      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::confirm
      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::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:456,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_aead.cpp:459,1
    - Dst: Botan_Tests::AEAD_Tests::test_enc
      Src: /src/botan/src/tests/test_aead.cpp:459,1
    - Dst: Botan_Tests::AEAD_Tests::rng
      Src: /src/botan/src/tests/test_aead.cpp:459,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_aead.cpp:463,1
    - Dst: Botan_Tests::AEAD_Tests::test_dec
      Src: /src/botan/src/tests/test_aead.cpp:463,1
    - Dst: Botan_Tests::AEAD_Tests::rng
      Src: /src/botan/src/tests/test_aead.cpp:463,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 415
    functionDepth: 2
    functionLinenumber: 415
    functionLinenumberEnd: 466
    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
    - Test::Result::note_missing
    - auto::minimum_final_size
    - get_opt_bin
    - auto::ideal_granularity
    - Test::Result::test_is_nonempty
    - Botan_Tests::AEAD_Tests::test_dec
    - auto::provider
    - Botan::AEAD_Mode::create
    - Test::Result::test_eq
    - auto::update_granularity
    - Test::Result::confirm
    - Test::Result::test_gt
    - Botan_Tests::AEAD_Tests::rng
    - get_req_bin
    - auto::authenticated
    - Test::Result::merge
    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::AEAD_Tests::AEAD_Tests
    functionSourceFile: /src/botan/src/tests/test_aead.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void AEAD_Tests()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/test_aead.cpp:32,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/tests/test_aead.cpp:36,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:38,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_aead.cpp:38,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:38,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:38,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_aead.cpp:40,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_aead.cpp:40,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_aead.cpp:41,1
    - Dst: auto::valid_nonce_length
      Src: /src/botan/src/tests/test_aead.cpp:41,1
    - Dst: auto::default_nonce_length
      Src: /src/botan/src/tests/test_aead.cpp:41,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_aead.cpp:43,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:43,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:46,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:47,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:48,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:52,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:53,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:54,1
    - Dst: auto::associated_data_requires_key
      Src: /src/botan/src/tests/test_aead.cpp:57,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:58,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:59,1
    - Dst: data
      Src: /src/botan/src/tests/test_aead.cpp:59,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:59,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:62,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:62,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:65,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:65,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_aead.cpp:66,1
    - Dst: Test::Result::test_eq
      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: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:70,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:71,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:72,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:74,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:75,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:76,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:80,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:80,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:81,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:81,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:83,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:84,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:87,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:93,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:96,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:99,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:100,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:101,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:104,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:104,1
    - Dst: Botan::secure_vector::empty
      Src: /src/botan/src/tests/test_aead.cpp:107,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:108,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:109,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:112,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:113,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:116,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:117,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:119,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:121,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:122,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:124,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:124,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:124,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_aead.cpp:125,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_aead.cpp:126,1
    - Dst: Botan::secure_vector::reserve
      Src: /src/botan/src/tests/test_aead.cpp:129,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_aead.cpp:129,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_aead.cpp:129,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:131,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:132,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:133,1
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/tests/test_aead.cpp:137,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:137,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:137,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:137,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:141,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:142,1
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/tests/test_aead.cpp:143,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:143,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:143,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:143,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:145,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:149,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:150,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:152,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:154,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:155,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:157,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:157,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:157,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:160,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_aead.cpp:163,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_aead.cpp:163,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_aead.cpp:165,1
    - Dst: auto::requires_entire_message
      Src: /src/botan/src/tests/test_aead.cpp:166,1
    - Dst: Botan::secure_vector::erase
      Src: /src/botan/src/tests/test_aead.cpp:171,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:171,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:171,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:172,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:174,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:175,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:178,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:183,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_aead.cpp:184,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:185,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:185,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:187,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:188,1
    - Dst: auto::associated_data_requires_key
      Src: /src/botan/src/tests/test_aead.cpp:190,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:191,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:192,1
    - Dst: data
      Src: /src/botan/src/tests/test_aead.cpp:192,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:192,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 95
    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: 196
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 196
    functionName: Botan_Tests::AEAD_Tests::test_enc
    functionSourceFile: /src/botan/src/tests/test_aead.cpp
    functionUses: 3
    functionsReached:
    - auto::update
    - Test::Result::test_throws
    - Botan::secure_vector::end
    - Botan::secure_vector::erase
    - auto::set_key
    - Botan::secure_vector::empty
    - auto::default_nonce_length
    - Botan::secure_vector::data
    - begin
    - Botan::secure_vector::begin
    - auto::valid_nonce_length
    - Botan::secure_vector::size
    - get_garbage
    - auto::name
    - data
    - auto::has_keying_material
    - Botan::secure_vector::insert
    - Botan::secure_vector::reserve
    - find
    - auto::clear
    - Botan::secure_vector::assign
    - auto::associated_data_requires_key
    - auto::process
    - mutate_vec
    - Botan::AEAD_Mode::create
    - auto::finish
    - auto::requires_entire_message
    - auto::minimum_final_size
    - auto::reset
    - size
    - auto::output_length
    - auto::update_granularity
    - auto::set_associated_data
    - Test::Result::test_eq
    - random_vec
    - Test::Result::confirm
    - auto::start
    - 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: 9
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/tests/test_aead.cpp:205,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/tests/test_aead.cpp:209,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:211,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_aead.cpp:211,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:211,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:211,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_aead.cpp:213,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:213,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_aead.cpp:214,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:214,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:217,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:218,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:219,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:223,1
    - Dst: get_ultimate_garbage
      Src: /src/botan/src/tests/test_aead.cpp:224,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:225,1
    - Dst: auto::associated_data_requires_key
      Src: /src/botan/src/tests/test_aead.cpp:228,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:229,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:230,1
    - Dst: data
      Src: /src/botan/src/tests/test_aead.cpp:230,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:230,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:235,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:235,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_aead.cpp:236,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:237,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:237,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:238,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:238,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:241,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:242,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:243,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:245,1
    - Dst: get_ultimate_garbage
      Src: /src/botan/src/tests/test_aead.cpp:246,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:247,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:251,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:251,1
    - Dst: get_garbage
      Src: /src/botan/src/tests/test_aead.cpp:252,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:253,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:256,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:258,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:258,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:263,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:264,1
    - Dst: auto::reset
      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::start
      Src: /src/botan/src/tests/test_aead.cpp:269,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:273,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:274,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:277,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:278,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:280,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:282,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:283,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:285,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:285,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:285,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_aead.cpp:286,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_aead.cpp:287,1
    - Dst: Botan::secure_vector::reserve
      Src: /src/botan/src/tests/test_aead.cpp:290,1
    - Dst: auto::output_length
      Src: /src/botan/src/tests/test_aead.cpp:290,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_aead.cpp:290,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:292,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:293,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_aead.cpp:294,1
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/tests/test_aead.cpp:297,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:297,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:297,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:297,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:301,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:302,1
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/tests/test_aead.cpp:303,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:303,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:303,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/tests/test_aead.cpp:303,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:305,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:309,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:310,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:312,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:314,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:315,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:317,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:317,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:317,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:320,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_aead.cpp:323,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_aead.cpp:323,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_aead.cpp:325,1
    - Dst: auto::requires_entire_message
      Src: /src/botan/src/tests/test_aead.cpp:326,1
    - Dst: Botan::secure_vector::erase
      Src: /src/botan/src/tests/test_aead.cpp:331,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:331,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:331,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:332,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:334,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:335,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:338,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:342,1
    - Dst: what
      Src: /src/botan/src/tests/test_aead.cpp:342,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:346,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:347,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_aead.cpp:347,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_aead.cpp:347,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:349,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:351,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:352,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:355,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:356,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_aead.cpp:358,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:360,1
    - Dst: what
      Src: /src/botan/src/tests/test_aead.cpp:360,1
    - Dst: empty
      Src: /src/botan/src/tests/test_aead.cpp:364,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:365,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:365,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:365,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:366,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:368,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:369,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:370,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:373,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:374,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_aead.cpp:376,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:378,1
    - Dst: what
      Src: /src/botan/src/tests/test_aead.cpp:378,1
    - Dst: mutate_vec
      Src: /src/botan/src/tests/test_aead.cpp:383,1
    - Dst: auto::reset
      Src: /src/botan/src/tests/test_aead.cpp:385,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:386,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_aead.cpp:388,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/tests/test_aead.cpp:391,1
    - Dst: begin
      Src: /src/botan/src/tests/test_aead.cpp:391,1
    - Dst: end
      Src: /src/botan/src/tests/test_aead.cpp:391,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:392,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:393,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_aead.cpp:395,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_aead.cpp:397,1
    - Dst: what
      Src: /src/botan/src/tests/test_aead.cpp:397,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:401,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_aead.cpp:402,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:403,1
    - Dst: auto::has_keying_material
      Src: /src/botan/src/tests/test_aead.cpp:403,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:405,1
    - Dst: auto::finish
      Src: /src/botan/src/tests/test_aead.cpp:405,1
    - Dst: auto::associated_data_requires_key
      Src: /src/botan/src/tests/test_aead.cpp:407,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_aead.cpp:408,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/tests/test_aead.cpp:409,1
    - Dst: data
      Src: /src/botan/src/tests/test_aead.cpp:409,1
    - Dst: size
      Src: /src/botan/src/tests/test_aead.cpp:409,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 131
    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: 413
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 413
    functionName: Botan_Tests::AEAD_Tests::test_dec
    functionSourceFile: /src/botan/src/tests/test_aead.cpp
    functionUses: 3
    functionsReached:
    - auto::update
    - Test::Result::test_throws
    - Botan::secure_vector::end
    - Botan::secure_vector::erase
    - auto::set_key
    - Test::Result::test_failure
    - std::vector::end
    - Botan::secure_vector::data
    - what
    - begin
    - Botan::secure_vector::begin
    - Botan::secure_vector::size
    - get_garbage
    - std::vector::begin
    - data
    - auto::has_keying_material
    - get_ultimate_garbage
    - Botan::secure_vector::insert
    - Botan::secure_vector::reserve
    - find
    - Test::Result::test_success
    - auto::clear
    - Botan::secure_vector::assign
    - auto::associated_data_requires_key
    - auto::process
    - mutate_vec
    - Botan::AEAD_Mode::create
    - auto::finish
    - auto::requires_entire_message
    - auto::minimum_final_size
    - auto::reset
    - size
    - auto::output_length
    - auto::update_granularity
    - auto::set_associated_data
    - Test::Result::test_eq
    - empty
    - random_vec
    - auto::start
    - end
    - Test::Result::confirm
    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:416,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_aead.cpp:417,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_aead.cpp:418,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_aead.cpp:419,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_aead.cpp:420,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/tests/test_aead.cpp:424,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/tests/test_aead.cpp:425,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_aead.cpp:428,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:433,1
    - Dst: auto::authenticated
      Src: /src/botan/src/tests/test_aead.cpp:433,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:434,1
    - Dst: auto::authenticated
      Src: /src/botan/src/tests/test_aead.cpp:434,1
    - Dst: auto::provider
      Src: /src/botan/src/tests/test_aead.cpp:436,1
    - Dst: Test::Result::test_is_nonempty
      Src: /src/botan/src/tests/test_aead.cpp:437,1
    - Dst: auto::provider
      Src: /src/botan/src/tests/test_aead.cpp:438,1
    - Dst: Test::Result::test_is_nonempty
      Src: /src/botan/src/tests/test_aead.cpp:439,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:441,1
    - Dst: Test::Result::test_gt
      Src: /src/botan/src/tests/test_aead.cpp:444,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_aead.cpp:444,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:444,1
    - Dst: Test::Result::test_gt
      Src: /src/botan/src/tests/test_aead.cpp:445,1
    - Dst: auto::ideal_granularity
      Src: /src/botan/src/tests/test_aead.cpp:445,1
    - Dst: auto::minimum_final_size
      Src: /src/botan/src/tests/test_aead.cpp:445,1
    - Dst: Test::Result::test_gt
      Src: /src/botan/src/tests/test_aead.cpp:447,1
    - Dst: auto::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:447,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_aead.cpp:449,1
    - Dst: auto::ideal_granularity
      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: Test::Result::test_gt
      Src: /src/botan/src/tests/test_aead.cpp:452,1
    - Dst: auto::ideal_granularity
      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::confirm
      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::update_granularity
      Src: /src/botan/src/tests/test_aead.cpp:456,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_aead.cpp:459,1
    - Dst: Botan_Tests::AEAD_Tests::test_enc
      Src: /src/botan/src/tests/test_aead.cpp:459,1
    - Dst: Botan_Tests::AEAD_Tests::rng
      Src: /src/botan/src/tests/test_aead.cpp:459,1
    - Dst: Test::Result::merge
      Src: /src/botan/src/tests/test_aead.cpp:463,1
    - Dst: Botan_Tests::AEAD_Tests::test_dec
      Src: /src/botan/src/tests/test_aead.cpp:463,1
    - Dst: Botan_Tests::AEAD_Tests::rng
      Src: /src/botan/src/tests/test_aead.cpp:463,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 415
    functionDepth: 2
    functionLinenumber: 415
    functionLinenumberEnd: 466
    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
    - Test::Result::note_missing
    - auto::minimum_final_size
    - get_opt_bin
    - auto::ideal_granularity
    - Test::Result::test_is_nonempty
    - Botan_Tests::AEAD_Tests::test_dec
    - auto::provider
    - Botan::AEAD_Mode::create
    - Test::Result::test_eq
    - auto::update_granularity
    - Test::Result::confirm
    - Test::Result::test_gt
    - Botan_Tests::AEAD_Tests::rng
    - get_req_bin
    - auto::authenticated
    - Test::Result::merge
    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:22,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pem.cpp:24,1
    - Dst: Botan::PEM_Code::decode
      Src: /src/botan/src/tests/test_pem.cpp:27,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pem.cpp:29,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_pem.cpp:31,1
    - Dst: Botan::PEM_Code::decode_check_label
      Src: /src/botan/src/tests/test_pem.cpp:33,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_pem.cpp:36,1
    - Dst: Botan::PEM_Code::decode_check_label
      Src: /src/botan/src/tests/test_pem.cpp:37,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_pem.cpp:41,1
    - Dst: Botan::PEM_Code::decode_check_label
      Src: /src/botan/src/tests/test_pem.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 46
    functionName: Botan_Tests::PEM_Tests::run
    functionSourceFile: /src/botan/src/tests/test_pem.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::PEM_Code::encode
    - Test::Result::test_eq
    - Botan::PEM_Code::decode_check_label
    - Botan::PEM_Code::decode
    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:22,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pem.cpp:24,1
    - Dst: Botan::PEM_Code::decode
      Src: /src/botan/src/tests/test_pem.cpp:27,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pem.cpp:29,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_pem.cpp:31,1
    - Dst: Botan::PEM_Code::decode_check_label
      Src: /src/botan/src/tests/test_pem.cpp:33,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_pem.cpp:36,1
    - Dst: Botan::PEM_Code::decode_check_label
      Src: /src/botan/src/tests/test_pem.cpp:37,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_pem.cpp:41,1
    - Dst: Botan::PEM_Code::decode_check_label
      Src: /src/botan/src/tests/test_pem.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 46
    functionName: Botan_Tests::PEM_Tests::run
    functionSourceFile: /src/botan/src/tests/test_pem.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - Botan::PEM_Code::encode
    - Test::Result::test_eq
    - Botan::PEM_Code::decode_check_label
    - Botan::PEM_Code::decode
    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: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: 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:37,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_xof.cpp:38,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_xof.cpp:39,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_xof.cpp:40,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_xof.cpp:43,1
    - Dst: provider_filter
      Src: /src/botan/src/tests/test_xof.cpp:59,1
    - Dst: Botan::XOF::providers
      Src: /src/botan/src/tests/test_xof.cpp:59,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_xof.cpp:62,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_xof.cpp:63,1
    - Dst: std::make_unique<Botan::cSHAKE_128_XOF>
      Src: /src/botan/src/tests/test_xof.cpp:71,1
    - Dst: std::make_unique<Botan::cSHAKE_256_XOF>
      Src: /src/botan/src/tests/test_xof.cpp:74,1
    - Dst: std::make_unique<Botan::AES_256_CTR_XOF>
      Src: /src/botan/src/tests/test_xof.cpp:80,1
    - Dst: Botan::XOF::create
      Src: /src/botan/src/tests/test_xof.cpp:83,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_xof.cpp:87,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_xof.cpp:87,1
    - Dst: auto::provider
      Src: /src/botan/src/tests/test_xof.cpp:91,1
    - Dst: Test::Result::test_is_nonempty
      Src: /src/botan/src/tests/test_xof.cpp:92,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_xof.cpp:93,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_xof.cpp:93,1
    - Dst: auto::accepts_input
      Src: /src/botan/src/tests/test_xof.cpp:97,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_xof.cpp:99,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_xof.cpp:99,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_xof.cpp:100,1
    - Dst: auto::accepts_input
      Src: /src/botan/src/tests/test_xof.cpp:100,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_xof.cpp:103,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_xof.cpp:104,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_xof.cpp:105,1
    - Dst: auto::accepts_input
      Src: /src/botan/src/tests/test_xof.cpp:105,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_xof.cpp:106,1
    - Dst: auto::output_stdvec
      Src: /src/botan/src/tests/test_xof.cpp:106,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_xof.cpp:106,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_xof.cpp:107,1
    - Dst: auto::accepts_input
      Src: /src/botan/src/tests/test_xof.cpp:107,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_xof.cpp:110,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_xof.cpp:110,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_xof.cpp:111,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_xof.cpp:112,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_xof.cpp:113,1
    - Dst: auto::output_stdvec
      Src: /src/botan/src/tests/test_xof.cpp:113,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_xof.cpp:113,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_xof.cpp:117,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_xof.cpp:118,1
    - Dst: auto::accepts_input
      Src: /src/botan/src/tests/test_xof.cpp:118,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_xof.cpp:119,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_xof.cpp:120,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_xof.cpp:122,1
    - Dst: auto::output_next_byte
      Src: /src/botan/src/tests/test_xof.cpp:124,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_xof.cpp:126,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_xof.cpp:130,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_xof.cpp:131,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_xof.cpp:131,1
    - Dst: auto::accepts_input
      Src: /src/botan/src/tests/test_xof.cpp:132,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_xof.cpp:135,1
    - Dst: std::span::empty
      Src: /src/botan/src/tests/test_xof.cpp:137,1
    - Dst: min
      Src: /src/botan/src/tests/test_xof.cpp:138,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_xof.cpp:138,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_xof.cpp:139,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_xof.cpp:139,1
    - Dst: std::span::last
      Src: /src/botan/src/tests/test_xof.cpp:140,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_xof.cpp:140,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_xof.cpp:142,1
    - Dst: std::span::empty
      Src: /src/botan/src/tests/test_xof.cpp:144,1
    - Dst: min
      Src: /src/botan/src/tests/test_xof.cpp:145,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_xof.cpp:145,1
    - Dst: auto::output
      Src: /src/botan/src/tests/test_xof.cpp:146,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_xof.cpp:146,1
    - Dst: std::span::last
      Src: /src/botan/src/tests/test_xof.cpp:147,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_xof.cpp:147,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_xof.cpp:149,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_xof.cpp:149,1
    - Dst: process_as_blocks
      Src: /src/botan/src/tests/test_xof.cpp:152,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_xof.cpp:152,1
    - Dst: process_as_blocks
      Src: /src/botan/src/tests/test_xof.cpp:153,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_xof.cpp:153,1
    - Dst: process_as_blocks
      Src: /src/botan/src/tests/test_xof.cpp:154,1
    - Dst: auto::block_size
      Src: /src/botan/src/tests/test_xof.cpp:154,1
    - Dst: auto::clear
      Src: /src/botan/src/tests/test_xof.cpp:158,1
    - Dst: auto::start
      Src: /src/botan/src/tests/test_xof.cpp:159,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_xof.cpp:160,1
    - Dst: std::span
      Src: /src/botan/src/tests/test_xof.cpp:160,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_xof.cpp:160,1
    - Dst: auto::copy_state
      Src: /src/botan/src/tests/test_xof.cpp:161,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_xof.cpp:162,1
    - Dst: auto::accepts_input
      Src: /src/botan/src/tests/test_xof.cpp:162,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_xof.cpp:163,1
    - Dst: std::span
      Src: /src/botan/src/tests/test_xof.cpp:163,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_xof.cpp:163,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_xof.cpp:163,1
    - Dst: auto::update
      Src: /src/botan/src/tests/test_xof.cpp:164,1
    - Dst: std::span
      Src: /src/botan/src/tests/test_xof.cpp:164,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_xof.cpp:164,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_xof.cpp:164,1
    - Dst: auto::output_stdvec
      Src: /src/botan/src/tests/test_xof.cpp:165,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_xof.cpp:165,1
    - Dst: auto::output_stdvec
      Src: /src/botan/src/tests/test_xof.cpp:166,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_xof.cpp:166,1
    - Dst: auto::copy_state
      Src: /src/botan/src/tests/test_xof.cpp:167,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_xof.cpp:168,1
    - Dst: auto::accepts_input
      Src: /src/botan/src/tests/test_xof.cpp:168,1
    - Dst: auto::output_stdvec
      Src: /src/botan/src/tests/test_xof.cpp:169,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_xof.cpp:169,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_xof.cpp:169,1
    - Dst: auto::output_stdvec
      Src: /src/botan/src/tests/test_xof.cpp:170,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_xof.cpp:170,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_xof.cpp:170,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_xof.cpp:171,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_xof.cpp:172,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_xof.cpp:172,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_xof.cpp:173,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_xof.cpp:173,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 79
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 180
    functionName: run_one_test
    functionSourceFile: /src/botan/src/tests/test_xof.cpp
    functionUses: 2
    functionsReached:
    - auto::update
    - process_as_blocks
    - std::span::size
    - auto::empty
    - Test::Result::test_failure
    - std::span::last
    - Botan::XOF::create
    - std::span::empty
    - std::make_unique<Botan::cSHAKE_256_XOF>
    - auto::block_size
    - provider_filter
    - std::span
    - auto::accepts_input
    - std::span::first
    - auto::name
    - min
    - get_req_bin
    - auto::new_object
    - Test::Result::note_missing
    - auto::clear
    - Test::Result::test_is_nonempty
    - std::vector::empty
    - Botan::XOF::providers
    - std::vector::size
    - std::make_unique<Botan::AES_256_CTR_XOF>
    - Botan::fmt
    - get_opt_bin
    - std::make_unique<Botan::cSHAKE_128_XOF>
    - auto::output
    - auto::output_next_byte
    - auto::copy_state
    - Botan::concat
    - auto::provider
    - Test::Result::test_eq
    - auto::start
    - Test::Result::confirm
    - auto::output_stdvec
    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:185,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_xof.cpp:188,1
    - Dst: std::make_unique<Botan::cSHAKE_128_XOF>
      Src: /src/botan/src/tests/test_xof.cpp:188,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_xof.cpp:189,1
    - Dst: std::make_unique<Botan::cSHAKE_256_XOF>
      Src: /src/botan/src/tests/test_xof.cpp:189,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_xof.cpp:192,1
    - Dst: valid_salt_length
      Src: /src/botan/src/tests/test_xof.cpp:192,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_xof.cpp:193,1
    - Dst: valid_salt_length
      Src: /src/botan/src/tests/test_xof.cpp:194,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_xof.cpp:195,1
    - Dst: start
      Src: /src/botan/src/tests/test_xof.cpp:195,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_xof.cpp:200,1
    - Dst: Botan::AES_256_CTR_XOF::AES_256_CTR_XOF
      Src: /src/botan/src/tests/test_xof.cpp:201,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_xof.cpp:202,1
    - Dst: Botan::AES_256_CTR_XOF::start
      Src: /src/botan/src/tests/test_xof.cpp:202,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_xof.cpp:203,1
    - Dst: Botan::AES_256_CTR_XOF::start
      Src: /src/botan/src/tests/test_xof.cpp:204,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_xof.cpp:204,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_xof.cpp:205,1
    - Dst: Botan::AES_256_CTR_XOF::start
      Src: /src/botan/src/tests/test_xof.cpp:206,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_xof.cpp:206,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_xof.cpp:206,1
    - Dst: BOTAN_REGISTER_SERIALIZED_TEST
      Src: /src/botan/src/tests/test_xof.cpp:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 217
    functionName: run_final_tests
    functionSourceFile: /src/botan/src/tests/test_xof.cpp
    functionUses: 2
    functionsReached:
    - start
    - std::vector::push_back
    - Botan::AES_256_CTR_XOF::AES_256_CTR_XOF
    - std::make_unique<Botan::cSHAKE_128_XOF>
    - Botan::AES_256_CTR_XOF::start
    - test_throws
    - valid_salt_length
    - CHECK
    - std::vector<uint8_t>
    - std::make_unique<Botan::cSHAKE_256_XOF>
    - BOTAN_REGISTER_SERIALIZED_TEST
    - confirm
    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:25,1
    - Dst: Botan_Tests::DL_Group_Tests::test_dl_encoding
      Src: /src/botan/src/tests/test_dl_group.cpp:25,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_dl_group.cpp:26,1
    - Dst: Botan_Tests::DL_Group_Tests::test_dl_errors
      Src: /src/botan/src/tests/test_dl_group.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 29
    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
    - std::vector::push_back
    - Botan_Tests::DL_Group_Tests::test_dl_encoding
    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:34,1
    - Dst: Botan::DL_Group::DL_Group
      Src: /src/botan/src/tests/test_dl_group.cpp:35,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 40
    functionName: Botan_Tests::DL_Group_Tests::test_dl_errors
    functionSourceFile: /src/botan/src/tests/test_dl_group.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_throws
    - Botan::DL_Group::DL_Group
    - Botan::DL_Group::get_p
    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:45,1
    - Dst: auto::PEM_encode
      Src: /src/botan/src/tests/test_dl_group.cpp:47,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: Botan::DL_Group::from_PEM
      Src: /src/botan/src/tests/test_dl_group.cpp:51,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:53,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:53,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:53,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:54,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:54,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:54,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:55,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:55,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:55,1
    - Dst: Botan::DL_Group::from_PEM
      Src: /src/botan/src/tests/test_dl_group.cpp:57,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:59,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:59,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:59,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:60,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:60,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:60,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:61,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:61,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:61,1
    - Dst: Botan::DL_Group::from_PEM
      Src: /src/botan/src/tests/test_dl_group.cpp:63,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:65,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:65,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:65,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:67,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:67,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 70
    functionName: Botan_Tests::DL_Group_Tests::test_dl_encoding
    functionSourceFile: /src/botan/src/tests/test_dl_group.cpp
    functionUses: 1
    functionsReached:
    - auto::get_p
    - Botan::DL_Group::from_name
    - Test::Result::test_eq
    - Botan::DL_Group::from_PEM
    - auto::get_g
    - auto::PEM_encode
    - auto::get_q
    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:80,1
    - Dst: Botan_Tests::DL_Generate_Group_Tests::rng
      Src: /src/botan/src/tests/test_dl_group.cpp:82,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:85,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:85,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:86,1
    - Dst: Botan::DL_Group::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:86,1
    - Dst: Test::Result::test_lte
      Src: /src/botan/src/tests/test_dl_group.cpp:87,1
    - Dst: Botan::DL_Group::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:87,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:88,1
    - Dst: Botan::DL_Group::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:88,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:91,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:91,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:92,1
    - Dst: Botan::DL_Group::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:92,1
    - Dst: Botan::dl_exponent_size
      Src: /src/botan/src/tests/test_dl_group.cpp:92,1
    - Dst: Test::Result::test_lte
      Src: /src/botan/src/tests/test_dl_group.cpp:93,1
    - Dst: Botan::DL_Group::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:93,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:94,1
    - Dst: Botan::DL_Group::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:94,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_dl_group.cpp:96,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:98,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:98,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:99,1
    - Dst: Botan::DL_Group::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:99,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:100,1
    - Dst: Botan::DL_Group::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:100,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:105,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:105,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:106,1
    - Dst: Botan::DL_Group::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:106,1
    - Dst: Test::Result::test_lte
      Src: /src/botan/src/tests/test_dl_group.cpp:107,1
    - Dst: Botan::DL_Group::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:107,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:108,1
    - Dst: Botan::DL_Group::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:108,1
    - Dst: Botan::hex_decode
      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:114,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dl_group.cpp:118,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_dl_group.cpp:124,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dl_group.cpp:126,1
    - Dst: Test::Result::test_throws
      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:128,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:132,1
    - Dst: Botan::DL_Group::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:133,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_dl_group.cpp:133,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:136,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_dl_group.cpp:136,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:136,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:138,1
    - Dst: Botan::DL_Group::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:138,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_dl_group.cpp:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 144
    functionName: Botan_Tests::DL_Generate_Group_Tests::run
    functionSourceFile: /src/botan/src/tests/test_dl_group.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Botan::hex_decode
    - Botan::dl_exponent_size
    - Test::Result::test_throws
    - Botan::BigInt
    - Test::Result::end_timer
    - static_cast<size_t>
    - Botan_Tests::Test::run_long_tests
    - Test::Result::test_lte
    - Botan::DL_Group::verify_group
    - Test::Result::test_eq
    - Botan::DL_Group::get_q
    - Botan::DL_Group::get_p
    - Botan::DL_Group::get_g
    - Botan_Tests::DL_Generate_Group_Tests::rng
    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:165,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_dl_group.cpp:169,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_dl_group.cpp:171,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:171,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_dl_group.cpp:172,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:172,1
    - Dst: auto::estimated_strength
      Src: /src/botan/src/tests/test_dl_group.cpp:174,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_dl_group.cpp:177,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_dl_group.cpp:179,1
    - Dst: auto::source
      Src: /src/botan/src/tests/test_dl_group.cpp:179,1
    - Dst: find
      Src: /src/botan/src/tests/test_dl_group.cpp:181,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_dl_group.cpp:182,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:182,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:184,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:184,1
    - Dst: auto::p_bits
      Src: /src/botan/src/tests/test_dl_group.cpp:187,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_dl_group.cpp:187,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:188,1
    - Dst: auto::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:188,1
    - Dst: Botan_Tests::DL_Named_Group_Tests::rng
      Src: /src/botan/src/tests/test_dl_group.cpp:188,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_dl_group.cpp:191,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 194
    functionName: Botan_Tests::DL_Named_Group_Tests::run
    functionSourceFile: /src/botan/src/tests/test_dl_group.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Botan_Tests::DL_Named_Group_Tests::rng
    - auto::get_p
    - Test::Result::test_ne
    - auto::p_bits
    - Test::Result::end_timer
    - Botan::DL_Group::from_name
    - auto::estimated_strength
    - Botan_Tests::Test::run_long_tests
    - auto::verify_group
    - auto::source
    - Test::Result::test_eq
    - auto::get_g
    - Test::Result::confirm
    - find
    - auto::get_q
    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:25,1
    - Dst: Botan_Tests::DL_Group_Tests::test_dl_encoding
      Src: /src/botan/src/tests/test_dl_group.cpp:25,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_dl_group.cpp:26,1
    - Dst: Botan_Tests::DL_Group_Tests::test_dl_errors
      Src: /src/botan/src/tests/test_dl_group.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 29
    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
    - std::vector::push_back
    - Botan_Tests::DL_Group_Tests::test_dl_encoding
    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:34,1
    - Dst: Botan::DL_Group::DL_Group
      Src: /src/botan/src/tests/test_dl_group.cpp:35,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 40
    functionName: Botan_Tests::DL_Group_Tests::test_dl_errors
    functionSourceFile: /src/botan/src/tests/test_dl_group.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::test_throws
    - Botan::DL_Group::DL_Group
    - Botan::DL_Group::get_p
    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:45,1
    - Dst: auto::PEM_encode
      Src: /src/botan/src/tests/test_dl_group.cpp:47,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: Botan::DL_Group::from_PEM
      Src: /src/botan/src/tests/test_dl_group.cpp:51,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:53,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:53,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:53,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:54,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:54,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:54,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:55,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:55,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:55,1
    - Dst: Botan::DL_Group::from_PEM
      Src: /src/botan/src/tests/test_dl_group.cpp:57,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:59,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:59,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:59,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:60,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:60,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:60,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:61,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:61,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:61,1
    - Dst: Botan::DL_Group::from_PEM
      Src: /src/botan/src/tests/test_dl_group.cpp:63,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:65,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:65,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:65,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:67,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:67,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 70
    functionName: Botan_Tests::DL_Group_Tests::test_dl_encoding
    functionSourceFile: /src/botan/src/tests/test_dl_group.cpp
    functionUses: 2
    functionsReached:
    - auto::get_p
    - Botan::DL_Group::from_name
    - Test::Result::test_eq
    - Botan::DL_Group::from_PEM
    - auto::get_g
    - auto::PEM_encode
    - auto::get_q
    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:80,1
    - Dst: Botan_Tests::DL_Generate_Group_Tests::rng
      Src: /src/botan/src/tests/test_dl_group.cpp:82,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:85,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:85,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:86,1
    - Dst: Botan::DL_Group::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:86,1
    - Dst: Test::Result::test_lte
      Src: /src/botan/src/tests/test_dl_group.cpp:87,1
    - Dst: Botan::DL_Group::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:87,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:88,1
    - Dst: Botan::DL_Group::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:88,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:91,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:91,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:92,1
    - Dst: Botan::DL_Group::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:92,1
    - Dst: Botan::dl_exponent_size
      Src: /src/botan/src/tests/test_dl_group.cpp:92,1
    - Dst: Test::Result::test_lte
      Src: /src/botan/src/tests/test_dl_group.cpp:93,1
    - Dst: Botan::DL_Group::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:93,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:94,1
    - Dst: Botan::DL_Group::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:94,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_dl_group.cpp:96,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:98,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:98,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:99,1
    - Dst: Botan::DL_Group::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:99,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:100,1
    - Dst: Botan::DL_Group::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:100,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:105,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:105,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:106,1
    - Dst: Botan::DL_Group::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:106,1
    - Dst: Test::Result::test_lte
      Src: /src/botan/src/tests/test_dl_group.cpp:107,1
    - Dst: Botan::DL_Group::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:107,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:108,1
    - Dst: Botan::DL_Group::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:108,1
    - Dst: Botan::hex_decode
      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:114,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dl_group.cpp:118,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_dl_group.cpp:124,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dl_group.cpp:126,1
    - Dst: Test::Result::test_throws
      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:128,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:132,1
    - Dst: Botan::DL_Group::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:133,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_dl_group.cpp:133,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:136,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_dl_group.cpp:136,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:136,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:138,1
    - Dst: Botan::DL_Group::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:138,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_dl_group.cpp:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 144
    functionName: Botan_Tests::DL_Generate_Group_Tests::run
    functionSourceFile: /src/botan/src/tests/test_dl_group.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Botan::hex_decode
    - Botan::dl_exponent_size
    - Test::Result::test_throws
    - Botan::BigInt
    - Test::Result::end_timer
    - static_cast<size_t>
    - Botan_Tests::Test::run_long_tests
    - Test::Result::test_lte
    - Botan::DL_Group::verify_group
    - Test::Result::test_eq
    - Botan::DL_Group::get_q
    - Botan::DL_Group::get_p
    - Botan::DL_Group::get_g
    - Botan_Tests::DL_Generate_Group_Tests::rng
    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:165,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_dl_group.cpp:169,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_dl_group.cpp:171,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:171,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_dl_group.cpp:172,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:172,1
    - Dst: auto::estimated_strength
      Src: /src/botan/src/tests/test_dl_group.cpp:174,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_dl_group.cpp:177,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_dl_group.cpp:179,1
    - Dst: auto::source
      Src: /src/botan/src/tests/test_dl_group.cpp:179,1
    - Dst: find
      Src: /src/botan/src/tests/test_dl_group.cpp:181,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_dl_group.cpp:182,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:182,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:184,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:184,1
    - Dst: auto::p_bits
      Src: /src/botan/src/tests/test_dl_group.cpp:187,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_dl_group.cpp:187,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:188,1
    - Dst: auto::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:188,1
    - Dst: Botan_Tests::DL_Named_Group_Tests::rng
      Src: /src/botan/src/tests/test_dl_group.cpp:188,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_dl_group.cpp:191,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 194
    functionName: Botan_Tests::DL_Named_Group_Tests::run
    functionSourceFile: /src/botan/src/tests/test_dl_group.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Botan_Tests::DL_Named_Group_Tests::rng
    - auto::get_p
    - Test::Result::test_ne
    - auto::p_bits
    - Test::Result::end_timer
    - Botan::DL_Group::from_name
    - auto::estimated_strength
    - Botan_Tests::Test::run_long_tests
    - auto::verify_group
    - auto::source
    - Test::Result::test_eq
    - auto::get_g
    - Test::Result::confirm
    - find
    - auto::get_q
    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:25,1
    - Dst: Botan_Tests::DL_Group_Tests::test_dl_encoding
      Src: /src/botan/src/tests/test_dl_group.cpp:25,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_dl_group.cpp:26,1
    - Dst: Botan_Tests::DL_Group_Tests::test_dl_errors
      Src: /src/botan/src/tests/test_dl_group.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 29
    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
    - std::vector::push_back
    - Botan_Tests::DL_Group_Tests::test_dl_encoding
    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:34,1
    - Dst: Botan::DL_Group::DL_Group
      Src: /src/botan/src/tests/test_dl_group.cpp:35,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 40
    functionName: Botan_Tests::DL_Group_Tests::test_dl_errors
    functionSourceFile: /src/botan/src/tests/test_dl_group.cpp
    functionUses: 3
    functionsReached:
    - Test::Result::test_throws
    - Botan::DL_Group::DL_Group
    - Botan::DL_Group::get_p
    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:45,1
    - Dst: auto::PEM_encode
      Src: /src/botan/src/tests/test_dl_group.cpp:47,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: Botan::DL_Group::from_PEM
      Src: /src/botan/src/tests/test_dl_group.cpp:51,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:53,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:53,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:53,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:54,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:54,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:54,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:55,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:55,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:55,1
    - Dst: Botan::DL_Group::from_PEM
      Src: /src/botan/src/tests/test_dl_group.cpp:57,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:59,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:59,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:59,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:60,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:60,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:60,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:61,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:61,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:61,1
    - Dst: Botan::DL_Group::from_PEM
      Src: /src/botan/src/tests/test_dl_group.cpp:63,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:65,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:65,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:65,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:67,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:67,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 70
    functionName: Botan_Tests::DL_Group_Tests::test_dl_encoding
    functionSourceFile: /src/botan/src/tests/test_dl_group.cpp
    functionUses: 3
    functionsReached:
    - auto::get_p
    - Botan::DL_Group::from_name
    - Test::Result::test_eq
    - Botan::DL_Group::from_PEM
    - auto::get_g
    - auto::PEM_encode
    - auto::get_q
    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:80,1
    - Dst: Botan_Tests::DL_Generate_Group_Tests::rng
      Src: /src/botan/src/tests/test_dl_group.cpp:82,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:85,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:85,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:86,1
    - Dst: Botan::DL_Group::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:86,1
    - Dst: Test::Result::test_lte
      Src: /src/botan/src/tests/test_dl_group.cpp:87,1
    - Dst: Botan::DL_Group::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:87,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:88,1
    - Dst: Botan::DL_Group::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:88,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:91,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:91,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:92,1
    - Dst: Botan::DL_Group::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:92,1
    - Dst: Botan::dl_exponent_size
      Src: /src/botan/src/tests/test_dl_group.cpp:92,1
    - Dst: Test::Result::test_lte
      Src: /src/botan/src/tests/test_dl_group.cpp:93,1
    - Dst: Botan::DL_Group::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:93,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:94,1
    - Dst: Botan::DL_Group::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:94,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_dl_group.cpp:96,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:98,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:98,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:99,1
    - Dst: Botan::DL_Group::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:99,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:100,1
    - Dst: Botan::DL_Group::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:100,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:105,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:105,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:106,1
    - Dst: Botan::DL_Group::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:106,1
    - Dst: Test::Result::test_lte
      Src: /src/botan/src/tests/test_dl_group.cpp:107,1
    - Dst: Botan::DL_Group::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:107,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:108,1
    - Dst: Botan::DL_Group::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:108,1
    - Dst: Botan::hex_decode
      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:114,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dl_group.cpp:118,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_dl_group.cpp:124,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dl_group.cpp:126,1
    - Dst: Test::Result::test_throws
      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:128,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:132,1
    - Dst: Botan::DL_Group::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:133,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_dl_group.cpp:133,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:136,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_dl_group.cpp:136,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:136,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:138,1
    - Dst: Botan::DL_Group::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:138,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_dl_group.cpp:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 144
    functionName: Botan_Tests::DL_Generate_Group_Tests::run
    functionSourceFile: /src/botan/src/tests/test_dl_group.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Botan::hex_decode
    - Botan::dl_exponent_size
    - Test::Result::test_throws
    - Botan::BigInt
    - Test::Result::end_timer
    - static_cast<size_t>
    - Botan_Tests::Test::run_long_tests
    - Test::Result::test_lte
    - Botan::DL_Group::verify_group
    - Test::Result::test_eq
    - Botan::DL_Group::get_q
    - Botan::DL_Group::get_p
    - Botan::DL_Group::get_g
    - Botan_Tests::DL_Generate_Group_Tests::rng
    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:165,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_dl_group.cpp:169,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_dl_group.cpp:171,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:171,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_dl_group.cpp:172,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:172,1
    - Dst: auto::estimated_strength
      Src: /src/botan/src/tests/test_dl_group.cpp:174,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_dl_group.cpp:177,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_dl_group.cpp:179,1
    - Dst: auto::source
      Src: /src/botan/src/tests/test_dl_group.cpp:179,1
    - Dst: find
      Src: /src/botan/src/tests/test_dl_group.cpp:181,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_dl_group.cpp:182,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:182,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:184,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:184,1
    - Dst: auto::p_bits
      Src: /src/botan/src/tests/test_dl_group.cpp:187,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_dl_group.cpp:187,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:188,1
    - Dst: auto::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:188,1
    - Dst: Botan_Tests::DL_Named_Group_Tests::rng
      Src: /src/botan/src/tests/test_dl_group.cpp:188,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_dl_group.cpp:191,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 194
    functionName: Botan_Tests::DL_Named_Group_Tests::run
    functionSourceFile: /src/botan/src/tests/test_dl_group.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Botan_Tests::DL_Named_Group_Tests::rng
    - auto::get_p
    - Test::Result::test_ne
    - auto::p_bits
    - Test::Result::end_timer
    - Botan::DL_Group::from_name
    - auto::estimated_strength
    - Botan_Tests::Test::run_long_tests
    - auto::verify_group
    - auto::source
    - Test::Result::test_eq
    - auto::get_g
    - Test::Result::confirm
    - find
    - auto::get_q
    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:25,1
    - Dst: Botan_Tests::DL_Group_Tests::test_dl_encoding
      Src: /src/botan/src/tests/test_dl_group.cpp:25,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_dl_group.cpp:26,1
    - Dst: Botan_Tests::DL_Group_Tests::test_dl_errors
      Src: /src/botan/src/tests/test_dl_group.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 29
    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
    - std::vector::push_back
    - Botan_Tests::DL_Group_Tests::test_dl_encoding
    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:34,1
    - Dst: Botan::DL_Group::DL_Group
      Src: /src/botan/src/tests/test_dl_group.cpp:35,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 40
    functionName: Botan_Tests::DL_Group_Tests::test_dl_errors
    functionSourceFile: /src/botan/src/tests/test_dl_group.cpp
    functionUses: 4
    functionsReached:
    - Test::Result::test_throws
    - Botan::DL_Group::DL_Group
    - Botan::DL_Group::get_p
    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:45,1
    - Dst: auto::PEM_encode
      Src: /src/botan/src/tests/test_dl_group.cpp:47,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: Botan::DL_Group::from_PEM
      Src: /src/botan/src/tests/test_dl_group.cpp:51,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:53,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:53,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:53,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:54,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:54,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:54,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:55,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:55,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:55,1
    - Dst: Botan::DL_Group::from_PEM
      Src: /src/botan/src/tests/test_dl_group.cpp:57,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:59,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:59,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:59,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:60,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:60,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:60,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:61,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:61,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:61,1
    - Dst: Botan::DL_Group::from_PEM
      Src: /src/botan/src/tests/test_dl_group.cpp:63,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:65,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:65,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:65,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:67,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:67,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 70
    functionName: Botan_Tests::DL_Group_Tests::test_dl_encoding
    functionSourceFile: /src/botan/src/tests/test_dl_group.cpp
    functionUses: 4
    functionsReached:
    - auto::get_p
    - Botan::DL_Group::from_name
    - Test::Result::test_eq
    - Botan::DL_Group::from_PEM
    - auto::get_g
    - auto::PEM_encode
    - auto::get_q
    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:80,1
    - Dst: Botan_Tests::DL_Generate_Group_Tests::rng
      Src: /src/botan/src/tests/test_dl_group.cpp:82,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:85,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:85,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:86,1
    - Dst: Botan::DL_Group::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:86,1
    - Dst: Test::Result::test_lte
      Src: /src/botan/src/tests/test_dl_group.cpp:87,1
    - Dst: Botan::DL_Group::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:87,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:88,1
    - Dst: Botan::DL_Group::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:88,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:91,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:91,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:92,1
    - Dst: Botan::DL_Group::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:92,1
    - Dst: Botan::dl_exponent_size
      Src: /src/botan/src/tests/test_dl_group.cpp:92,1
    - Dst: Test::Result::test_lte
      Src: /src/botan/src/tests/test_dl_group.cpp:93,1
    - Dst: Botan::DL_Group::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:93,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:94,1
    - Dst: Botan::DL_Group::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:94,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_dl_group.cpp:96,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:98,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:98,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:99,1
    - Dst: Botan::DL_Group::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:99,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:100,1
    - Dst: Botan::DL_Group::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:100,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:105,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:105,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:106,1
    - Dst: Botan::DL_Group::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:106,1
    - Dst: Test::Result::test_lte
      Src: /src/botan/src/tests/test_dl_group.cpp:107,1
    - Dst: Botan::DL_Group::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:107,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:108,1
    - Dst: Botan::DL_Group::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:108,1
    - Dst: Botan::hex_decode
      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:114,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dl_group.cpp:118,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_dl_group.cpp:124,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dl_group.cpp:126,1
    - Dst: Test::Result::test_throws
      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:128,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:132,1
    - Dst: Botan::DL_Group::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:133,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_dl_group.cpp:133,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:136,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_dl_group.cpp:136,1
    - Dst: Botan::DL_Group::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:136,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:138,1
    - Dst: Botan::DL_Group::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:138,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_dl_group.cpp:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 144
    functionName: Botan_Tests::DL_Generate_Group_Tests::run
    functionSourceFile: /src/botan/src/tests/test_dl_group.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Botan::hex_decode
    - Botan::dl_exponent_size
    - Test::Result::test_throws
    - Botan::BigInt
    - Test::Result::end_timer
    - static_cast<size_t>
    - Botan_Tests::Test::run_long_tests
    - Test::Result::test_lte
    - Botan::DL_Group::verify_group
    - Test::Result::test_eq
    - Botan::DL_Group::get_q
    - Botan::DL_Group::get_p
    - Botan::DL_Group::get_g
    - Botan_Tests::DL_Generate_Group_Tests::rng
    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:165,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_dl_group.cpp:169,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_dl_group.cpp:171,1
    - Dst: auto::get_p
      Src: /src/botan/src/tests/test_dl_group.cpp:171,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_dl_group.cpp:172,1
    - Dst: auto::get_g
      Src: /src/botan/src/tests/test_dl_group.cpp:172,1
    - Dst: auto::estimated_strength
      Src: /src/botan/src/tests/test_dl_group.cpp:174,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_dl_group.cpp:177,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_dl_group.cpp:179,1
    - Dst: auto::source
      Src: /src/botan/src/tests/test_dl_group.cpp:179,1
    - Dst: find
      Src: /src/botan/src/tests/test_dl_group.cpp:181,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_dl_group.cpp:182,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:182,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:184,1
    - Dst: auto::get_q
      Src: /src/botan/src/tests/test_dl_group.cpp:184,1
    - Dst: auto::p_bits
      Src: /src/botan/src/tests/test_dl_group.cpp:187,1
    - Dst: Botan_Tests::Test::run_long_tests
      Src: /src/botan/src/tests/test_dl_group.cpp:187,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dl_group.cpp:188,1
    - Dst: auto::verify_group
      Src: /src/botan/src/tests/test_dl_group.cpp:188,1
    - Dst: Botan_Tests::DL_Named_Group_Tests::rng
      Src: /src/botan/src/tests/test_dl_group.cpp:188,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_dl_group.cpp:191,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 194
    functionName: Botan_Tests::DL_Named_Group_Tests::run
    functionSourceFile: /src/botan/src/tests/test_dl_group.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Botan_Tests::DL_Named_Group_Tests::rng
    - auto::get_p
    - Test::Result::test_ne
    - auto::p_bits
    - Test::Result::end_timer
    - Botan::DL_Group::from_name
    - auto::estimated_strength
    - Botan_Tests::Test::run_long_tests
    - auto::verify_group
    - auto::source
    - Test::Result::test_eq
    - auto::get_g
    - Test::Result::confirm
    - find
    - auto::get_q
    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:28,1
    - Dst: find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_system.cpp:29,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:29,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:30,1
    - Dst: Test::Result::test_not_nullopt
      Src: /src/botan/src/tests/test_certstor_system.cpp:32,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:33,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:34,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:34,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:35,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:35,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:35,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:38,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:38,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_certstor_system.cpp:41,1
    - Dst: find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_system.cpp:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 44
    functionName: Botan_Tests::find_certificate_by_pubkey_sha1
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::test_throws
    - Test::Result::end_timer
    - auto::front
    - Test::Result::test_failure
    - Test::Result::test_is_eq
    - Botan_Tests::get_subject_cn
    - Test::Result::test_eq
    - Test::Result::test_not_nullopt
    - Botan_Tests::get_key_id
    - find_cert_by_pubkey_sha1
    - what
    - auto::size
    - auto::subject_dn
    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:49,1
    - Dst: Botan_Tests::get_dn_of_cert_with_different_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:49,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_certstor_system.cpp:50,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:55,1
    - Dst: find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_system.cpp:56,1
    - Dst: Botan_Tests::get_pubkey_sha1_of_cert_with_different_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:56,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:57,1
    - Dst: Test::Result::test_not_nullopt
      Src: /src/botan/src/tests/test_certstor_system.cpp:59,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:60,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:61,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:61,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:62,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:62,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:65,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 46
    functionDepth: 3
    functionLinenumber: 46
    functionLinenumberEnd: 69
    functionName: Botan_Tests::find_certificate_by_pubkey_sha1_with_unmatching_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::note_missing
    - Test::Result::end_timer
    - find_cert
    - auto::front
    - Test::Result::test_failure
    - Botan_Tests::get_pubkey_sha1_of_cert_with_different_key_id
    - Test::Result::test_is_eq
    - Test::Result::test_eq
    - Test::Result::test_not_nullopt
    - what
    - find_cert_by_pubkey_sha1
    - Botan_Tests::get_dn_of_cert_with_different_key_id
    - auto::size
    - auto::subject_dn
    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:75,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:77,1
    - Dst: find_cert
      Src: /src/botan/src/tests/test_certstor_system.cpp:78,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_system.cpp:78,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:79,1
    - Dst: Test::Result::test_not_nullopt
      Src: /src/botan/src/tests/test_certstor_system.cpp:81,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:82,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:83,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:83,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:84,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:84,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:84,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:87,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 91
    functionName: Botan_Tests::find_cert_by_subject_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::end_timer
    - find_cert
    - auto::front
    - Test::Result::test_failure
    - Test::Result::test_is_eq
    - Botan_Tests::get_subject_cn
    - Test::Result::test_eq
    - Botan_Tests::get_dn
    - std::vector<uint8_t>
    - Test::Result::test_not_nullopt
    - what
    - auto::subject_dn
    - auto::size
    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:97,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:101,1
    - Dst: find_cert
      Src: /src/botan/src/tests/test_certstor_system.cpp:103,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:104,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:105,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:105,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:106,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:106,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:111,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_certstor_system.cpp:119,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:120,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_certstor_system.cpp:123,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:125,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:125,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 93
    functionDepth: 3
    functionLinenumber: 93
    functionLinenumberEnd: 129
    functionName: Botan_Tests::find_cert_by_utf8_subject_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::end_timer
    - find_cert
    - auto::front
    - Test::Result::test_failure
    - Test::Result::test_is_eq
    - Test::Result::test_eq
    - Test::Result::test_gte
    - what
    - auto::subject_dn
    - auto::size
    - Botan_Tests::get_utf8_dn_alternatives
    - Test::Result::test_note
    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:135,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:137,1
    - Dst: find_cert
      Src: /src/botan/src/tests/test_certstor_system.cpp:138,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:138,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:139,1
    - Dst: Test::Result::test_not_nullopt
      Src: /src/botan/src/tests/test_certstor_system.cpp:141,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:142,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:143,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:143,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:144,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:144,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:144,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:147,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 151
    functionName: Botan_Tests::find_cert_by_subject_dn_and_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::end_timer
    - find_cert
    - auto::front
    - Test::Result::test_failure
    - Test::Result::test_is_eq
    - Botan_Tests::get_subject_cn
    - Test::Result::test_eq
    - Botan_Tests::get_dn
    - Test::Result::test_not_nullopt
    - what
    - Botan_Tests::get_key_id
    - auto::size
    - auto::subject_dn
    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:157,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:159,1
    - Dst: find_all_certs
      Src: /src/botan/src/tests/test_certstor_system.cpp:160,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:160,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:161,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_system.cpp:163,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_system.cpp:163,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:164,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:164,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:165,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:166,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:166,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:167,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:167,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:167,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:170,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:170,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 174
    functionName: Botan_Tests::find_certs_by_subject_dn_and_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - auto::empty
    - Test::Result::end_timer
    - auto::front
    - Test::Result::test_failure
    - Test::Result::test_is_eq
    - Botan_Tests::get_subject_cn
    - Test::Result::test_eq
    - Botan_Tests::get_dn
    - Test::Result::confirm
    - what
    - Botan_Tests::get_key_id
    - auto::size
    - 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:180,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:182,1
    - Dst: find_all_certs
      Src: /src/botan/src/tests/test_certstor_system.cpp:183,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_system.cpp:183,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:184,1
    - Dst: sort
      Src: /src/botan/src/tests/test_certstor_system.cpp:187,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_certstor_system.cpp:187,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_certstor_system.cpp:187,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:188,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:190,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_system.cpp:194,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_system.cpp:194,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:195,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_certstor_system.cpp:196,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:196,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:197,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:197,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:197,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:200,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:200,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 176
    functionDepth: 3
    functionLinenumber: 176
    functionLinenumberEnd: 204
    functionName: Botan_Tests::find_all_certs_by_subject_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - auto::empty
    - Test::Result::end_timer
    - auto::front
    - auto::end
    - Test::Result::test_failure
    - Botan_Tests::get_subject_cn
    - Test::Result::test_eq
    - Botan_Tests::get_dn
    - std::vector<uint8_t>
    - sort
    - Test::Result::confirm
    - Test::Result::test_gte
    - what
    - auto::size
    - auto::begin
    - 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:210,1
    - Dst: all_subjects
      Src: /src/botan/src/tests/test_certstor_system.cpp:211,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:212,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_system.cpp:214,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_system.cpp:214,1
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:215,1
    - Dst: std::find_if
      Src: /src/botan/src/tests/test_certstor_system.cpp:216,1
    - Dst: auto::cbegin
      Src: /src/botan/src/tests/test_certstor_system.cpp:217,1
    - Dst: auto::cend
      Src: /src/botan/src/tests/test_certstor_system.cpp:217,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_system.cpp:219,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_certstor_system.cpp:219,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_system.cpp:220,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:224,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:224,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 206
    functionDepth: 3
    functionLinenumber: 206
    functionLinenumberEnd: 228
    functionName: Botan_Tests::find_all_subjects
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - auto::empty
    - Test::Result::end_timer
    - auto::end
    - Test::Result::test_failure
    - auto::cbegin
    - Botan_Tests::get_dn
    - Test::Result::confirm
    - what
    - auto::cend
    - std::find_if
    - all_subjects
    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:234,1
    - Dst: Botan_Tests::find_cert_by_issuer_dn_and_serial_number
      Src: /src/botan/src/tests/test_certstor_system.cpp:235,1
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:235,1
    - Dst: Botan_Tests::get_serial_number
      Src: /src/botan/src/tests/test_certstor_system.cpp:235,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:236,1
    - Dst: Test::Result::test_not_nullopt
      Src: /src/botan/src/tests/test_certstor_system.cpp:238,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:239,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:240,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:240,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:241,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:241,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:241,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:242,1
    - Dst: auto::serial_number
      Src: /src/botan/src/tests/test_certstor_system.cpp:242,1
    - Dst: Botan_Tests::get_serial_number
      Src: /src/botan/src/tests/test_certstor_system.cpp:242,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:245,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 230
    functionDepth: 3
    functionLinenumber: 230
    functionLinenumberEnd: 249
    functionName: Botan_Tests::find_cert_by_issuer_dn_and_serial_number
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::start_timer
    - auto::serial_number
    - Test::Result::end_timer
    - auto::front
    - Test::Result::test_failure
    - Test::Result::test_is_eq
    - Botan_Tests::get_subject_cn
    - Botan_Tests::find_cert_by_issuer_dn_and_serial_number
    - Test::Result::test_eq
    - Botan_Tests::get_serial_number
    - Botan_Tests::get_dn
    - Test::Result::test_not_nullopt
    - what
    - auto::subject_dn
    - auto::size
    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:255,1
    - Dst: Botan_Tests::get_unknown_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:256,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:258,1
    - Dst: find_all_certs
      Src: /src/botan/src/tests/test_certstor_system.cpp:259,1
    - Dst: find_cert
      Src: /src/botan/src/tests/test_certstor_system.cpp:260,1
    - Dst: find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_system.cpp:261,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:262,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_system.cpp:264,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_system.cpp:264,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_system.cpp:265,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_system.cpp:266,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:268,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 251
    functionDepth: 3
    functionLinenumber: 251
    functionLinenumberEnd: 272
    functionName: Botan_Tests::no_certificate_matches
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - auto::empty
    - Test::Result::end_timer
    - find_cert
    - Botan_Tests::get_unknown_dn
    - Test::Result::test_failure
    - Test::Result::confirm
    - what
    - find_cert_by_pubkey_sha1
    - Botan_Tests::get_unknown_key_id
    - 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:280,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:282,1
    - Dst: find_all_certs
      Src: /src/botan/src/tests/test_certstor_system.cpp:283,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_system.cpp:283,1
    - Dst: find_cert
      Src: /src/botan/src/tests/test_certstor_system.cpp:284,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_system.cpp:284,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:285,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_system.cpp:287,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_system.cpp:287,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_system.cpp:288,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_certstor_system.cpp:288,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:289,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:290,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:290,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:291,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:291,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:291,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:294,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:294,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 276
    functionDepth: 3
    functionLinenumber: 276
    functionLinenumberEnd: 298
    functionName: Botan_Tests::certificate_matching_with_dn_normalization
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - auto::empty
    - Test::Result::end_timer
    - find_cert
    - auto::front
    - auto::has_value
    - Test::Result::test_failure
    - Botan_Tests::get_subject_cn
    - Test::Result::test_eq
    - Botan_Tests::get_skewed_dn
    - std::vector<uint8_t>
    - Test::Result::confirm
    - what
    - auto::subject_dn
    - 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:310,1
    - Dst: std::make_unique<Botan::System_Certificate_Store>
      Src: /src/botan/src/tests/test_certstor_system.cpp:311,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:312,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_certstor_system.cpp:314,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_certstor_system.cpp:315,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:318,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:318,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_certstor_system.cpp:322,1
    - Dst: std::vector::push_back
      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:327,1
    - Dst: find_certificate_by_pubkey_sha1
      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_certificate_by_pubkey_sha1_with_unmatching_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_cert_by_subject_dn
      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: find_cert_by_subject_dn_and_key_id
      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_all_certs_by_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_certs_by_subject_dn_and_key_id
      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:333,1
    - Dst: find_all_subjects
      Src: /src/botan/src/tests/test_certstor_system.cpp:333,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:334,1
    - Dst: no_certificate_matches
      Src: /src/botan/src/tests/test_certstor_system.cpp:334,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:335,1
    - Dst: find_cert_by_utf8_subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:335,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:336,1
    - Dst: find_cert_by_issuer_dn_and_serial_number
      Src: /src/botan/src/tests/test_certstor_system.cpp:336,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:338,1
    - Dst: certificate_matching_with_dn_normalization
      Src: /src/botan/src/tests/test_certstor_system.cpp:338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 342
    functionName: Botan_Tests::Certstor_System_Tests::run
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_failure
    - find_cert_by_subject_dn
    - what
    - BOTAN_UNUSED
    - no_certificate_matches
    - find_cert_by_subject_dn_and_key_id
    - Test::Result::test_success
    - std::make_unique<Botan::System_Certificate_Store>
    - Test::Result::start_timer
    - find_certificate_by_pubkey_sha1_with_unmatching_key_id
    - std::vector::push_back
    - find_certificate_by_pubkey_sha1
    - find_cert_by_utf8_subject_dn
    - Test::Result::test_note
    - Test::Result::end_timer
    - find_certs_by_subject_dn_and_key_id
    - find_all_certs_by_subject_dn
    - find_cert_by_issuer_dn_and_serial_number
    - certificate_matching_with_dn_normalization
    - 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:28,1
    - Dst: find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_system.cpp:29,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:29,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:30,1
    - Dst: Test::Result::test_not_nullopt
      Src: /src/botan/src/tests/test_certstor_system.cpp:32,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:33,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:34,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:34,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:35,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:35,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:35,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:38,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:38,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_certstor_system.cpp:41,1
    - Dst: find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_system.cpp:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 44
    functionName: Botan_Tests::find_certificate_by_pubkey_sha1
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::test_throws
    - Test::Result::end_timer
    - auto::front
    - Test::Result::test_failure
    - Test::Result::test_is_eq
    - Botan_Tests::get_subject_cn
    - Test::Result::test_eq
    - Test::Result::test_not_nullopt
    - Botan_Tests::get_key_id
    - find_cert_by_pubkey_sha1
    - what
    - auto::size
    - auto::subject_dn
    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:49,1
    - Dst: Botan_Tests::get_dn_of_cert_with_different_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:49,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_certstor_system.cpp:50,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:55,1
    - Dst: find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_system.cpp:56,1
    - Dst: Botan_Tests::get_pubkey_sha1_of_cert_with_different_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:56,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:57,1
    - Dst: Test::Result::test_not_nullopt
      Src: /src/botan/src/tests/test_certstor_system.cpp:59,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:60,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:61,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:61,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:62,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:62,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:65,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 46
    functionDepth: 3
    functionLinenumber: 46
    functionLinenumberEnd: 69
    functionName: Botan_Tests::find_certificate_by_pubkey_sha1_with_unmatching_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::note_missing
    - Test::Result::end_timer
    - find_cert
    - auto::front
    - Test::Result::test_failure
    - Botan_Tests::get_pubkey_sha1_of_cert_with_different_key_id
    - Test::Result::test_is_eq
    - Test::Result::test_eq
    - Test::Result::test_not_nullopt
    - what
    - find_cert_by_pubkey_sha1
    - Botan_Tests::get_dn_of_cert_with_different_key_id
    - auto::size
    - auto::subject_dn
    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:75,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:77,1
    - Dst: find_cert
      Src: /src/botan/src/tests/test_certstor_system.cpp:78,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_system.cpp:78,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:79,1
    - Dst: Test::Result::test_not_nullopt
      Src: /src/botan/src/tests/test_certstor_system.cpp:81,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:82,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:83,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:83,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:84,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:84,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:84,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:87,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 91
    functionName: Botan_Tests::find_cert_by_subject_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::end_timer
    - find_cert
    - auto::front
    - Test::Result::test_failure
    - Test::Result::test_is_eq
    - Botan_Tests::get_subject_cn
    - Test::Result::test_eq
    - Botan_Tests::get_dn
    - std::vector<uint8_t>
    - Test::Result::test_not_nullopt
    - what
    - auto::subject_dn
    - auto::size
    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:97,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:101,1
    - Dst: find_cert
      Src: /src/botan/src/tests/test_certstor_system.cpp:103,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:104,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:105,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:105,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:106,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:106,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:111,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_certstor_system.cpp:119,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:120,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_certstor_system.cpp:123,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:125,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:125,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 93
    functionDepth: 3
    functionLinenumber: 93
    functionLinenumberEnd: 129
    functionName: Botan_Tests::find_cert_by_utf8_subject_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::end_timer
    - find_cert
    - auto::front
    - Test::Result::test_failure
    - Test::Result::test_is_eq
    - Test::Result::test_eq
    - Test::Result::test_gte
    - what
    - auto::subject_dn
    - auto::size
    - Botan_Tests::get_utf8_dn_alternatives
    - Test::Result::test_note
    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:135,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:137,1
    - Dst: find_cert
      Src: /src/botan/src/tests/test_certstor_system.cpp:138,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:138,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:139,1
    - Dst: Test::Result::test_not_nullopt
      Src: /src/botan/src/tests/test_certstor_system.cpp:141,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:142,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:143,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:143,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:144,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:144,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:144,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:147,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 151
    functionName: Botan_Tests::find_cert_by_subject_dn_and_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::end_timer
    - find_cert
    - auto::front
    - Test::Result::test_failure
    - Test::Result::test_is_eq
    - Botan_Tests::get_subject_cn
    - Test::Result::test_eq
    - Botan_Tests::get_dn
    - Test::Result::test_not_nullopt
    - what
    - Botan_Tests::get_key_id
    - auto::size
    - auto::subject_dn
    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:157,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:159,1
    - Dst: find_all_certs
      Src: /src/botan/src/tests/test_certstor_system.cpp:160,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:160,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:161,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_system.cpp:163,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_system.cpp:163,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:164,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:164,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:165,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:166,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:166,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:167,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:167,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:167,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:170,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:170,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 174
    functionName: Botan_Tests::find_certs_by_subject_dn_and_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - auto::empty
    - Test::Result::end_timer
    - auto::front
    - Test::Result::test_failure
    - Test::Result::test_is_eq
    - Botan_Tests::get_subject_cn
    - Test::Result::test_eq
    - Botan_Tests::get_dn
    - Test::Result::confirm
    - what
    - Botan_Tests::get_key_id
    - auto::size
    - 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:180,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:182,1
    - Dst: find_all_certs
      Src: /src/botan/src/tests/test_certstor_system.cpp:183,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_system.cpp:183,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:184,1
    - Dst: sort
      Src: /src/botan/src/tests/test_certstor_system.cpp:187,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_certstor_system.cpp:187,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_certstor_system.cpp:187,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:188,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:190,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_system.cpp:194,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_system.cpp:194,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:195,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_certstor_system.cpp:196,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:196,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:197,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:197,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:197,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:200,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:200,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 176
    functionDepth: 3
    functionLinenumber: 176
    functionLinenumberEnd: 204
    functionName: Botan_Tests::find_all_certs_by_subject_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - auto::empty
    - Test::Result::end_timer
    - auto::front
    - auto::end
    - Test::Result::test_failure
    - Botan_Tests::get_subject_cn
    - Test::Result::test_eq
    - Botan_Tests::get_dn
    - std::vector<uint8_t>
    - sort
    - Test::Result::confirm
    - Test::Result::test_gte
    - what
    - auto::size
    - auto::begin
    - 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:210,1
    - Dst: all_subjects
      Src: /src/botan/src/tests/test_certstor_system.cpp:211,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:212,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_system.cpp:214,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_system.cpp:214,1
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:215,1
    - Dst: std::find_if
      Src: /src/botan/src/tests/test_certstor_system.cpp:216,1
    - Dst: auto::cbegin
      Src: /src/botan/src/tests/test_certstor_system.cpp:217,1
    - Dst: auto::cend
      Src: /src/botan/src/tests/test_certstor_system.cpp:217,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_system.cpp:219,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_certstor_system.cpp:219,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_system.cpp:220,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:224,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:224,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 206
    functionDepth: 3
    functionLinenumber: 206
    functionLinenumberEnd: 228
    functionName: Botan_Tests::find_all_subjects
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - auto::empty
    - Test::Result::end_timer
    - auto::end
    - Test::Result::test_failure
    - auto::cbegin
    - Botan_Tests::get_dn
    - Test::Result::confirm
    - what
    - auto::cend
    - std::find_if
    - all_subjects
    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:234,1
    - Dst: Botan_Tests::find_cert_by_issuer_dn_and_serial_number
      Src: /src/botan/src/tests/test_certstor_system.cpp:235,1
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:235,1
    - Dst: Botan_Tests::get_serial_number
      Src: /src/botan/src/tests/test_certstor_system.cpp:235,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:236,1
    - Dst: Test::Result::test_not_nullopt
      Src: /src/botan/src/tests/test_certstor_system.cpp:238,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:239,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:240,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:240,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:241,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:241,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:241,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:242,1
    - Dst: auto::serial_number
      Src: /src/botan/src/tests/test_certstor_system.cpp:242,1
    - Dst: Botan_Tests::get_serial_number
      Src: /src/botan/src/tests/test_certstor_system.cpp:242,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:245,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 230
    functionDepth: 3
    functionLinenumber: 230
    functionLinenumberEnd: 249
    functionName: Botan_Tests::find_cert_by_issuer_dn_and_serial_number
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::start_timer
    - auto::serial_number
    - Test::Result::end_timer
    - auto::front
    - Test::Result::test_failure
    - Test::Result::test_is_eq
    - Botan_Tests::get_subject_cn
    - Botan_Tests::find_cert_by_issuer_dn_and_serial_number
    - Test::Result::test_eq
    - Botan_Tests::get_serial_number
    - Botan_Tests::get_dn
    - Test::Result::test_not_nullopt
    - what
    - auto::subject_dn
    - auto::size
    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:255,1
    - Dst: Botan_Tests::get_unknown_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:256,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:258,1
    - Dst: find_all_certs
      Src: /src/botan/src/tests/test_certstor_system.cpp:259,1
    - Dst: find_cert
      Src: /src/botan/src/tests/test_certstor_system.cpp:260,1
    - Dst: find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_system.cpp:261,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:262,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_system.cpp:264,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_system.cpp:264,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_system.cpp:265,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_system.cpp:266,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:268,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 251
    functionDepth: 3
    functionLinenumber: 251
    functionLinenumberEnd: 272
    functionName: Botan_Tests::no_certificate_matches
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - auto::empty
    - Test::Result::end_timer
    - find_cert
    - Botan_Tests::get_unknown_dn
    - Test::Result::test_failure
    - Test::Result::confirm
    - what
    - find_cert_by_pubkey_sha1
    - Botan_Tests::get_unknown_key_id
    - 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:280,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:282,1
    - Dst: find_all_certs
      Src: /src/botan/src/tests/test_certstor_system.cpp:283,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_system.cpp:283,1
    - Dst: find_cert
      Src: /src/botan/src/tests/test_certstor_system.cpp:284,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_system.cpp:284,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:285,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_system.cpp:287,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_system.cpp:287,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_system.cpp:288,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_certstor_system.cpp:288,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:289,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:290,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:290,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:291,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:291,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:291,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:294,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:294,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 276
    functionDepth: 3
    functionLinenumber: 276
    functionLinenumberEnd: 298
    functionName: Botan_Tests::certificate_matching_with_dn_normalization
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - auto::empty
    - Test::Result::end_timer
    - find_cert
    - auto::front
    - auto::has_value
    - Test::Result::test_failure
    - Botan_Tests::get_subject_cn
    - Test::Result::test_eq
    - Botan_Tests::get_skewed_dn
    - std::vector<uint8_t>
    - Test::Result::confirm
    - what
    - auto::subject_dn
    - 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:310,1
    - Dst: std::make_unique<Botan::System_Certificate_Store>
      Src: /src/botan/src/tests/test_certstor_system.cpp:311,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:312,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_certstor_system.cpp:314,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_certstor_system.cpp:315,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:318,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:318,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_certstor_system.cpp:322,1
    - Dst: std::vector::push_back
      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:327,1
    - Dst: find_certificate_by_pubkey_sha1
      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_certificate_by_pubkey_sha1_with_unmatching_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_cert_by_subject_dn
      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: find_cert_by_subject_dn_and_key_id
      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_all_certs_by_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_certs_by_subject_dn_and_key_id
      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:333,1
    - Dst: find_all_subjects
      Src: /src/botan/src/tests/test_certstor_system.cpp:333,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:334,1
    - Dst: no_certificate_matches
      Src: /src/botan/src/tests/test_certstor_system.cpp:334,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:335,1
    - Dst: find_cert_by_utf8_subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:335,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:336,1
    - Dst: find_cert_by_issuer_dn_and_serial_number
      Src: /src/botan/src/tests/test_certstor_system.cpp:336,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:338,1
    - Dst: certificate_matching_with_dn_normalization
      Src: /src/botan/src/tests/test_certstor_system.cpp:338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 342
    functionName: Botan_Tests::Certstor_System_Tests::run
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_failure
    - find_cert_by_subject_dn
    - what
    - BOTAN_UNUSED
    - no_certificate_matches
    - find_cert_by_subject_dn_and_key_id
    - Test::Result::test_success
    - std::make_unique<Botan::System_Certificate_Store>
    - Test::Result::start_timer
    - find_certificate_by_pubkey_sha1_with_unmatching_key_id
    - std::vector::push_back
    - find_certificate_by_pubkey_sha1
    - find_cert_by_utf8_subject_dn
    - Test::Result::test_note
    - Test::Result::end_timer
    - find_certs_by_subject_dn_and_key_id
    - find_all_certs_by_subject_dn
    - find_cert_by_issuer_dn_and_serial_number
    - certificate_matching_with_dn_normalization
    - 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:28,1
    - Dst: find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_system.cpp:29,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:29,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:30,1
    - Dst: Test::Result::test_not_nullopt
      Src: /src/botan/src/tests/test_certstor_system.cpp:32,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:33,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:34,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:34,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:35,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:35,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:35,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:38,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:38,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_certstor_system.cpp:41,1
    - Dst: find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_system.cpp:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 44
    functionName: Botan_Tests::find_certificate_by_pubkey_sha1
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::test_throws
    - Test::Result::end_timer
    - auto::front
    - Test::Result::test_failure
    - Test::Result::test_is_eq
    - Botan_Tests::get_subject_cn
    - Test::Result::test_eq
    - Test::Result::test_not_nullopt
    - Botan_Tests::get_key_id
    - find_cert_by_pubkey_sha1
    - what
    - auto::size
    - auto::subject_dn
    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:49,1
    - Dst: Botan_Tests::get_dn_of_cert_with_different_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:49,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_certstor_system.cpp:50,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:55,1
    - Dst: find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_system.cpp:56,1
    - Dst: Botan_Tests::get_pubkey_sha1_of_cert_with_different_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:56,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:57,1
    - Dst: Test::Result::test_not_nullopt
      Src: /src/botan/src/tests/test_certstor_system.cpp:59,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:60,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:61,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:61,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:62,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:62,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:65,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 46
    functionDepth: 3
    functionLinenumber: 46
    functionLinenumberEnd: 69
    functionName: Botan_Tests::find_certificate_by_pubkey_sha1_with_unmatching_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::note_missing
    - Test::Result::end_timer
    - find_cert
    - auto::front
    - Test::Result::test_failure
    - Botan_Tests::get_pubkey_sha1_of_cert_with_different_key_id
    - Test::Result::test_is_eq
    - Test::Result::test_eq
    - Test::Result::test_not_nullopt
    - what
    - find_cert_by_pubkey_sha1
    - Botan_Tests::get_dn_of_cert_with_different_key_id
    - auto::size
    - auto::subject_dn
    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:75,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:77,1
    - Dst: find_cert
      Src: /src/botan/src/tests/test_certstor_system.cpp:78,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_system.cpp:78,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:79,1
    - Dst: Test::Result::test_not_nullopt
      Src: /src/botan/src/tests/test_certstor_system.cpp:81,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:82,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:83,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:83,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:84,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:84,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:84,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:87,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 91
    functionName: Botan_Tests::find_cert_by_subject_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::end_timer
    - find_cert
    - auto::front
    - Test::Result::test_failure
    - Test::Result::test_is_eq
    - Botan_Tests::get_subject_cn
    - Test::Result::test_eq
    - Botan_Tests::get_dn
    - std::vector<uint8_t>
    - Test::Result::test_not_nullopt
    - what
    - auto::subject_dn
    - auto::size
    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:97,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:101,1
    - Dst: find_cert
      Src: /src/botan/src/tests/test_certstor_system.cpp:103,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:104,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:105,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:105,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:106,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:106,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:111,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_certstor_system.cpp:119,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:120,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_certstor_system.cpp:123,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:125,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:125,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 93
    functionDepth: 3
    functionLinenumber: 93
    functionLinenumberEnd: 129
    functionName: Botan_Tests::find_cert_by_utf8_subject_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::end_timer
    - find_cert
    - auto::front
    - Test::Result::test_failure
    - Test::Result::test_is_eq
    - Test::Result::test_eq
    - Test::Result::test_gte
    - what
    - auto::subject_dn
    - auto::size
    - Botan_Tests::get_utf8_dn_alternatives
    - Test::Result::test_note
    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:135,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:137,1
    - Dst: find_cert
      Src: /src/botan/src/tests/test_certstor_system.cpp:138,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:138,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:139,1
    - Dst: Test::Result::test_not_nullopt
      Src: /src/botan/src/tests/test_certstor_system.cpp:141,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:142,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:143,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:143,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:144,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:144,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:144,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:147,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 151
    functionName: Botan_Tests::find_cert_by_subject_dn_and_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::end_timer
    - find_cert
    - auto::front
    - Test::Result::test_failure
    - Test::Result::test_is_eq
    - Botan_Tests::get_subject_cn
    - Test::Result::test_eq
    - Botan_Tests::get_dn
    - Test::Result::test_not_nullopt
    - what
    - Botan_Tests::get_key_id
    - auto::size
    - auto::subject_dn
    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:157,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:159,1
    - Dst: find_all_certs
      Src: /src/botan/src/tests/test_certstor_system.cpp:160,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:160,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:161,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_system.cpp:163,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_system.cpp:163,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:164,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:164,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:165,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:166,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:166,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:167,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:167,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:167,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:170,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:170,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 174
    functionName: Botan_Tests::find_certs_by_subject_dn_and_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - auto::empty
    - Test::Result::end_timer
    - auto::front
    - Test::Result::test_failure
    - Test::Result::test_is_eq
    - Botan_Tests::get_subject_cn
    - Test::Result::test_eq
    - Botan_Tests::get_dn
    - Test::Result::confirm
    - what
    - Botan_Tests::get_key_id
    - auto::size
    - 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:180,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:182,1
    - Dst: find_all_certs
      Src: /src/botan/src/tests/test_certstor_system.cpp:183,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_system.cpp:183,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:184,1
    - Dst: sort
      Src: /src/botan/src/tests/test_certstor_system.cpp:187,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_certstor_system.cpp:187,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_certstor_system.cpp:187,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:188,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:190,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_system.cpp:194,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_system.cpp:194,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:195,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_certstor_system.cpp:196,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:196,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:197,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:197,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:197,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:200,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:200,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 176
    functionDepth: 3
    functionLinenumber: 176
    functionLinenumberEnd: 204
    functionName: Botan_Tests::find_all_certs_by_subject_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - auto::empty
    - Test::Result::end_timer
    - auto::front
    - auto::end
    - Test::Result::test_failure
    - Botan_Tests::get_subject_cn
    - Test::Result::test_eq
    - Botan_Tests::get_dn
    - std::vector<uint8_t>
    - sort
    - Test::Result::confirm
    - Test::Result::test_gte
    - what
    - auto::size
    - auto::begin
    - 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:210,1
    - Dst: all_subjects
      Src: /src/botan/src/tests/test_certstor_system.cpp:211,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:212,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_system.cpp:214,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_system.cpp:214,1
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:215,1
    - Dst: std::find_if
      Src: /src/botan/src/tests/test_certstor_system.cpp:216,1
    - Dst: auto::cbegin
      Src: /src/botan/src/tests/test_certstor_system.cpp:217,1
    - Dst: auto::cend
      Src: /src/botan/src/tests/test_certstor_system.cpp:217,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_system.cpp:219,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_certstor_system.cpp:219,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_system.cpp:220,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:224,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:224,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 206
    functionDepth: 3
    functionLinenumber: 206
    functionLinenumberEnd: 228
    functionName: Botan_Tests::find_all_subjects
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - auto::empty
    - Test::Result::end_timer
    - auto::end
    - Test::Result::test_failure
    - auto::cbegin
    - Botan_Tests::get_dn
    - Test::Result::confirm
    - what
    - auto::cend
    - std::find_if
    - all_subjects
    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:234,1
    - Dst: Botan_Tests::find_cert_by_issuer_dn_and_serial_number
      Src: /src/botan/src/tests/test_certstor_system.cpp:235,1
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:235,1
    - Dst: Botan_Tests::get_serial_number
      Src: /src/botan/src/tests/test_certstor_system.cpp:235,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:236,1
    - Dst: Test::Result::test_not_nullopt
      Src: /src/botan/src/tests/test_certstor_system.cpp:238,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:239,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:240,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:240,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:241,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:241,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:241,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:242,1
    - Dst: auto::serial_number
      Src: /src/botan/src/tests/test_certstor_system.cpp:242,1
    - Dst: Botan_Tests::get_serial_number
      Src: /src/botan/src/tests/test_certstor_system.cpp:242,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:245,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 230
    functionDepth: 3
    functionLinenumber: 230
    functionLinenumberEnd: 249
    functionName: Botan_Tests::find_cert_by_issuer_dn_and_serial_number
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 3
    functionsReached:
    - Test::Result::start_timer
    - auto::serial_number
    - Test::Result::end_timer
    - auto::front
    - Test::Result::test_failure
    - Test::Result::test_is_eq
    - Botan_Tests::get_subject_cn
    - Botan_Tests::find_cert_by_issuer_dn_and_serial_number
    - Test::Result::test_eq
    - Botan_Tests::get_serial_number
    - Botan_Tests::get_dn
    - Test::Result::test_not_nullopt
    - what
    - auto::subject_dn
    - auto::size
    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:255,1
    - Dst: Botan_Tests::get_unknown_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:256,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:258,1
    - Dst: find_all_certs
      Src: /src/botan/src/tests/test_certstor_system.cpp:259,1
    - Dst: find_cert
      Src: /src/botan/src/tests/test_certstor_system.cpp:260,1
    - Dst: find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_system.cpp:261,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:262,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_system.cpp:264,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_system.cpp:264,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_system.cpp:265,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_system.cpp:266,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:268,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 251
    functionDepth: 3
    functionLinenumber: 251
    functionLinenumberEnd: 272
    functionName: Botan_Tests::no_certificate_matches
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - auto::empty
    - Test::Result::end_timer
    - find_cert
    - Botan_Tests::get_unknown_dn
    - Test::Result::test_failure
    - Test::Result::confirm
    - what
    - find_cert_by_pubkey_sha1
    - Botan_Tests::get_unknown_key_id
    - 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:280,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:282,1
    - Dst: find_all_certs
      Src: /src/botan/src/tests/test_certstor_system.cpp:283,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_system.cpp:283,1
    - Dst: find_cert
      Src: /src/botan/src/tests/test_certstor_system.cpp:284,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_system.cpp:284,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:285,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_system.cpp:287,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_system.cpp:287,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_system.cpp:288,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_certstor_system.cpp:288,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:289,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:290,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:290,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:291,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:291,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:291,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:294,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:294,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 276
    functionDepth: 3
    functionLinenumber: 276
    functionLinenumberEnd: 298
    functionName: Botan_Tests::certificate_matching_with_dn_normalization
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - auto::empty
    - Test::Result::end_timer
    - find_cert
    - auto::front
    - auto::has_value
    - Test::Result::test_failure
    - Botan_Tests::get_subject_cn
    - Test::Result::test_eq
    - Botan_Tests::get_skewed_dn
    - std::vector<uint8_t>
    - Test::Result::confirm
    - what
    - auto::subject_dn
    - 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:310,1
    - Dst: std::make_unique<Botan::System_Certificate_Store>
      Src: /src/botan/src/tests/test_certstor_system.cpp:311,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:312,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_certstor_system.cpp:314,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_certstor_system.cpp:315,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:318,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:318,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_certstor_system.cpp:322,1
    - Dst: std::vector::push_back
      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:327,1
    - Dst: find_certificate_by_pubkey_sha1
      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_certificate_by_pubkey_sha1_with_unmatching_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_cert_by_subject_dn
      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: find_cert_by_subject_dn_and_key_id
      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_all_certs_by_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_certs_by_subject_dn_and_key_id
      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:333,1
    - Dst: find_all_subjects
      Src: /src/botan/src/tests/test_certstor_system.cpp:333,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:334,1
    - Dst: no_certificate_matches
      Src: /src/botan/src/tests/test_certstor_system.cpp:334,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:335,1
    - Dst: find_cert_by_utf8_subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:335,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:336,1
    - Dst: find_cert_by_issuer_dn_and_serial_number
      Src: /src/botan/src/tests/test_certstor_system.cpp:336,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:338,1
    - Dst: certificate_matching_with_dn_normalization
      Src: /src/botan/src/tests/test_certstor_system.cpp:338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 342
    functionName: Botan_Tests::Certstor_System_Tests::run
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_failure
    - find_cert_by_subject_dn
    - what
    - BOTAN_UNUSED
    - no_certificate_matches
    - find_cert_by_subject_dn_and_key_id
    - Test::Result::test_success
    - std::make_unique<Botan::System_Certificate_Store>
    - Test::Result::start_timer
    - find_certificate_by_pubkey_sha1_with_unmatching_key_id
    - std::vector::push_back
    - find_certificate_by_pubkey_sha1
    - find_cert_by_utf8_subject_dn
    - Test::Result::test_note
    - Test::Result::end_timer
    - find_certs_by_subject_dn_and_key_id
    - find_all_certs_by_subject_dn
    - find_cert_by_issuer_dn_and_serial_number
    - certificate_matching_with_dn_normalization
    - 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:28,1
    - Dst: find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_system.cpp:29,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:29,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:30,1
    - Dst: Test::Result::test_not_nullopt
      Src: /src/botan/src/tests/test_certstor_system.cpp:32,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:33,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:34,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:34,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:35,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:35,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:35,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:38,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:38,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_certstor_system.cpp:41,1
    - Dst: find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_system.cpp:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 44
    functionName: Botan_Tests::find_certificate_by_pubkey_sha1
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::test_throws
    - Test::Result::end_timer
    - auto::front
    - Test::Result::test_failure
    - Test::Result::test_is_eq
    - Botan_Tests::get_subject_cn
    - Test::Result::test_eq
    - Test::Result::test_not_nullopt
    - Botan_Tests::get_key_id
    - find_cert_by_pubkey_sha1
    - what
    - auto::size
    - auto::subject_dn
    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:49,1
    - Dst: Botan_Tests::get_dn_of_cert_with_different_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:49,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_certstor_system.cpp:50,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:55,1
    - Dst: find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_system.cpp:56,1
    - Dst: Botan_Tests::get_pubkey_sha1_of_cert_with_different_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:56,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:57,1
    - Dst: Test::Result::test_not_nullopt
      Src: /src/botan/src/tests/test_certstor_system.cpp:59,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:60,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:61,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:61,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:62,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:62,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:65,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 46
    functionDepth: 3
    functionLinenumber: 46
    functionLinenumberEnd: 69
    functionName: Botan_Tests::find_certificate_by_pubkey_sha1_with_unmatching_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::note_missing
    - Test::Result::end_timer
    - find_cert
    - auto::front
    - Test::Result::test_failure
    - Botan_Tests::get_pubkey_sha1_of_cert_with_different_key_id
    - Test::Result::test_is_eq
    - Test::Result::test_eq
    - Test::Result::test_not_nullopt
    - what
    - find_cert_by_pubkey_sha1
    - Botan_Tests::get_dn_of_cert_with_different_key_id
    - auto::size
    - auto::subject_dn
    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:75,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:77,1
    - Dst: find_cert
      Src: /src/botan/src/tests/test_certstor_system.cpp:78,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_system.cpp:78,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:79,1
    - Dst: Test::Result::test_not_nullopt
      Src: /src/botan/src/tests/test_certstor_system.cpp:81,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:82,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:83,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:83,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:84,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:84,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:84,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:87,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 91
    functionName: Botan_Tests::find_cert_by_subject_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::end_timer
    - find_cert
    - auto::front
    - Test::Result::test_failure
    - Test::Result::test_is_eq
    - Botan_Tests::get_subject_cn
    - Test::Result::test_eq
    - Botan_Tests::get_dn
    - std::vector<uint8_t>
    - Test::Result::test_not_nullopt
    - what
    - auto::subject_dn
    - auto::size
    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:97,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:101,1
    - Dst: find_cert
      Src: /src/botan/src/tests/test_certstor_system.cpp:103,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:104,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:105,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:105,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:106,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:106,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:111,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_certstor_system.cpp:119,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:120,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_certstor_system.cpp:123,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:125,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:125,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 93
    functionDepth: 3
    functionLinenumber: 93
    functionLinenumberEnd: 129
    functionName: Botan_Tests::find_cert_by_utf8_subject_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::end_timer
    - find_cert
    - auto::front
    - Test::Result::test_failure
    - Test::Result::test_is_eq
    - Test::Result::test_eq
    - Test::Result::test_gte
    - what
    - auto::subject_dn
    - auto::size
    - Botan_Tests::get_utf8_dn_alternatives
    - Test::Result::test_note
    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:135,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:137,1
    - Dst: find_cert
      Src: /src/botan/src/tests/test_certstor_system.cpp:138,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:138,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:139,1
    - Dst: Test::Result::test_not_nullopt
      Src: /src/botan/src/tests/test_certstor_system.cpp:141,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:142,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:143,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:143,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:144,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:144,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:144,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:147,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 151
    functionName: Botan_Tests::find_cert_by_subject_dn_and_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::end_timer
    - find_cert
    - auto::front
    - Test::Result::test_failure
    - Test::Result::test_is_eq
    - Botan_Tests::get_subject_cn
    - Test::Result::test_eq
    - Botan_Tests::get_dn
    - Test::Result::test_not_nullopt
    - what
    - Botan_Tests::get_key_id
    - auto::size
    - auto::subject_dn
    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:157,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:159,1
    - Dst: find_all_certs
      Src: /src/botan/src/tests/test_certstor_system.cpp:160,1
    - Dst: Botan_Tests::get_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:160,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:161,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_system.cpp:163,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_system.cpp:163,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:164,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:164,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:165,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:166,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:166,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:167,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:167,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:167,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:170,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:170,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 174
    functionName: Botan_Tests::find_certs_by_subject_dn_and_key_id
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - auto::empty
    - Test::Result::end_timer
    - auto::front
    - Test::Result::test_failure
    - Test::Result::test_is_eq
    - Botan_Tests::get_subject_cn
    - Test::Result::test_eq
    - Botan_Tests::get_dn
    - Test::Result::confirm
    - what
    - Botan_Tests::get_key_id
    - auto::size
    - 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:180,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:182,1
    - Dst: find_all_certs
      Src: /src/botan/src/tests/test_certstor_system.cpp:183,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_system.cpp:183,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:184,1
    - Dst: sort
      Src: /src/botan/src/tests/test_certstor_system.cpp:187,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_certstor_system.cpp:187,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_certstor_system.cpp:187,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:188,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:190,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_system.cpp:194,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_system.cpp:194,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:195,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_certstor_system.cpp:196,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:196,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:197,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:197,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:197,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:200,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:200,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 176
    functionDepth: 3
    functionLinenumber: 176
    functionLinenumberEnd: 204
    functionName: Botan_Tests::find_all_certs_by_subject_dn
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - auto::empty
    - Test::Result::end_timer
    - auto::front
    - auto::end
    - Test::Result::test_failure
    - Botan_Tests::get_subject_cn
    - Test::Result::test_eq
    - Botan_Tests::get_dn
    - std::vector<uint8_t>
    - sort
    - Test::Result::confirm
    - Test::Result::test_gte
    - what
    - auto::size
    - auto::begin
    - 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:210,1
    - Dst: all_subjects
      Src: /src/botan/src/tests/test_certstor_system.cpp:211,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:212,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_system.cpp:214,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_system.cpp:214,1
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:215,1
    - Dst: std::find_if
      Src: /src/botan/src/tests/test_certstor_system.cpp:216,1
    - Dst: auto::cbegin
      Src: /src/botan/src/tests/test_certstor_system.cpp:217,1
    - Dst: auto::cend
      Src: /src/botan/src/tests/test_certstor_system.cpp:217,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_system.cpp:219,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_certstor_system.cpp:219,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_system.cpp:220,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:224,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:224,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 206
    functionDepth: 3
    functionLinenumber: 206
    functionLinenumberEnd: 228
    functionName: Botan_Tests::find_all_subjects
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - auto::empty
    - Test::Result::end_timer
    - auto::end
    - Test::Result::test_failure
    - auto::cbegin
    - Botan_Tests::get_dn
    - Test::Result::confirm
    - what
    - auto::cend
    - std::find_if
    - all_subjects
    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:234,1
    - Dst: Botan_Tests::find_cert_by_issuer_dn_and_serial_number
      Src: /src/botan/src/tests/test_certstor_system.cpp:235,1
    - Dst: Botan_Tests::get_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:235,1
    - Dst: Botan_Tests::get_serial_number
      Src: /src/botan/src/tests/test_certstor_system.cpp:235,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:236,1
    - Dst: Test::Result::test_not_nullopt
      Src: /src/botan/src/tests/test_certstor_system.cpp:238,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:239,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:240,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor_system.cpp:240,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:241,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:241,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:241,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:242,1
    - Dst: auto::serial_number
      Src: /src/botan/src/tests/test_certstor_system.cpp:242,1
    - Dst: Botan_Tests::get_serial_number
      Src: /src/botan/src/tests/test_certstor_system.cpp:242,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:245,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 230
    functionDepth: 3
    functionLinenumber: 230
    functionLinenumberEnd: 249
    functionName: Botan_Tests::find_cert_by_issuer_dn_and_serial_number
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 4
    functionsReached:
    - Test::Result::start_timer
    - auto::serial_number
    - Test::Result::end_timer
    - auto::front
    - Test::Result::test_failure
    - Test::Result::test_is_eq
    - Botan_Tests::get_subject_cn
    - Botan_Tests::find_cert_by_issuer_dn_and_serial_number
    - Test::Result::test_eq
    - Botan_Tests::get_serial_number
    - Botan_Tests::get_dn
    - Test::Result::test_not_nullopt
    - what
    - auto::subject_dn
    - auto::size
    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:255,1
    - Dst: Botan_Tests::get_unknown_key_id
      Src: /src/botan/src/tests/test_certstor_system.cpp:256,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:258,1
    - Dst: find_all_certs
      Src: /src/botan/src/tests/test_certstor_system.cpp:259,1
    - Dst: find_cert
      Src: /src/botan/src/tests/test_certstor_system.cpp:260,1
    - Dst: find_cert_by_pubkey_sha1
      Src: /src/botan/src/tests/test_certstor_system.cpp:261,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:262,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_system.cpp:264,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_system.cpp:264,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_system.cpp:265,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_system.cpp:266,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:268,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 251
    functionDepth: 3
    functionLinenumber: 251
    functionLinenumberEnd: 272
    functionName: Botan_Tests::no_certificate_matches
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - auto::empty
    - Test::Result::end_timer
    - find_cert
    - Botan_Tests::get_unknown_dn
    - Test::Result::test_failure
    - Test::Result::confirm
    - what
    - find_cert_by_pubkey_sha1
    - Botan_Tests::get_unknown_key_id
    - 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:280,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:282,1
    - Dst: find_all_certs
      Src: /src/botan/src/tests/test_certstor_system.cpp:283,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_system.cpp:283,1
    - Dst: find_cert
      Src: /src/botan/src/tests/test_certstor_system.cpp:284,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor_system.cpp:284,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:285,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_system.cpp:287,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor_system.cpp:287,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor_system.cpp:288,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_certstor_system.cpp:288,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:289,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_certstor_system.cpp:290,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:290,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor_system.cpp:291,1
    - Dst: auto::subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:291,1
    - Dst: Botan_Tests::get_subject_cn
      Src: /src/botan/src/tests/test_certstor_system.cpp:291,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:294,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:294,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' certstore'
    argTypes:
    - Botan::Certificate_Store
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 276
    functionDepth: 3
    functionLinenumber: 276
    functionLinenumberEnd: 298
    functionName: Botan_Tests::certificate_matching_with_dn_normalization
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - auto::empty
    - Test::Result::end_timer
    - find_cert
    - auto::front
    - auto::has_value
    - Test::Result::test_failure
    - Botan_Tests::get_subject_cn
    - Test::Result::test_eq
    - Botan_Tests::get_skewed_dn
    - std::vector<uint8_t>
    - Test::Result::confirm
    - what
    - auto::subject_dn
    - 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:310,1
    - Dst: std::make_unique<Botan::System_Certificate_Store>
      Src: /src/botan/src/tests/test_certstor_system.cpp:311,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_certstor_system.cpp:312,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_certstor_system.cpp:314,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_certstor_system.cpp:315,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor_system.cpp:318,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor_system.cpp:318,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_certstor_system.cpp:322,1
    - Dst: std::vector::push_back
      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:327,1
    - Dst: find_certificate_by_pubkey_sha1
      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_certificate_by_pubkey_sha1_with_unmatching_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_cert_by_subject_dn
      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: find_cert_by_subject_dn_and_key_id
      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_all_certs_by_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_certs_by_subject_dn_and_key_id
      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:333,1
    - Dst: find_all_subjects
      Src: /src/botan/src/tests/test_certstor_system.cpp:333,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:334,1
    - Dst: no_certificate_matches
      Src: /src/botan/src/tests/test_certstor_system.cpp:334,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:335,1
    - Dst: find_cert_by_utf8_subject_dn
      Src: /src/botan/src/tests/test_certstor_system.cpp:335,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:336,1
    - Dst: find_cert_by_issuer_dn_and_serial_number
      Src: /src/botan/src/tests/test_certstor_system.cpp:336,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor_system.cpp:338,1
    - Dst: certificate_matching_with_dn_normalization
      Src: /src/botan/src/tests/test_certstor_system.cpp:338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 342
    functionName: Botan_Tests::Certstor_System_Tests::run
    functionSourceFile: /src/botan/src/tests/test_certstor_system.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_failure
    - find_cert_by_subject_dn
    - what
    - BOTAN_UNUSED
    - no_certificate_matches
    - find_cert_by_subject_dn_and_key_id
    - Test::Result::test_success
    - std::make_unique<Botan::System_Certificate_Store>
    - Test::Result::start_timer
    - find_certificate_by_pubkey_sha1_with_unmatching_key_id
    - std::vector::push_back
    - find_certificate_by_pubkey_sha1
    - find_cert_by_utf8_subject_dn
    - Test::Result::test_note
    - Test::Result::end_timer
    - find_certs_by_subject_dn_and_key_id
    - find_all_certs_by_subject_dn
    - find_cert_by_issuer_dn_and_serial_number
    - certificate_matching_with_dn_normalization
    - 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: 19
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 19
    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:22,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_x509_dn.cpp:23,1
    - Dst: Botan::X509_DN::decode_from
      Src: /src/botan/src/tests/test_x509_dn.cpp:31,1
    - Dst: Botan::X509_DN::decode_from
      Src: /src/botan/src/tests/test_x509_dn.cpp:35,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_dn.cpp:38,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_dn.cpp:44,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_dn.cpp:45,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_dn.cpp:47,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_dn.cpp:48,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_x509_dn.cpp:51,1
    - Dst: what
      Src: /src/botan/src/tests/test_x509_dn.cpp:51,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 55
    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_failure
    - Test::Result::test_eq
    - what
    - get_req_bin
    - Botan::X509_DN::decode_from
    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: 19
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 19
    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:22,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_x509_dn.cpp:23,1
    - Dst: Botan::X509_DN::decode_from
      Src: /src/botan/src/tests/test_x509_dn.cpp:31,1
    - Dst: Botan::X509_DN::decode_from
      Src: /src/botan/src/tests/test_x509_dn.cpp:35,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_dn.cpp:38,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_dn.cpp:44,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_dn.cpp:45,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_dn.cpp:47,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_x509_dn.cpp:48,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_x509_dn.cpp:51,1
    - Dst: what
      Src: /src/botan/src/tests/test_x509_dn.cpp:51,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 55
    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_failure
    - Test::Result::test_eq
    - what
    - get_req_bin
    - Botan::X509_DN::decode_from
    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:38,1
    - Dst: Botan_Tests::BigInt_Unit_Tests::test_bigint_sizes
      Src: /src/botan/src/tests/test_bigint.cpp:38,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_bigint.cpp:39,1
    - Dst: Botan_Tests::BigInt_Unit_Tests::test_random_prime
      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_encode
      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_bigint_io
      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_get_substring
      Src: /src/botan/src/tests/test_bigint.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 45
    functionName: Botan_Tests::BigInt_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::BigInt_Unit_Tests::test_get_substring
    - std::vector::push_back
    - Botan_Tests::BigInt_Unit_Tests::test_bigint_sizes
    - Botan_Tests::BigInt_Unit_Tests::test_bigint_io
    - Botan_Tests::BigInt_Unit_Tests::test_random_prime
    - 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:54,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:59,1
    - Dst: BigInt::bits
      Src: /src/botan/src/tests/test_bigint.cpp:59,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:60,1
    - Dst: BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:61,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_bigint.cpp:64,1
    - Dst: BigInt::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:64,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_bigint.cpp:64,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_bigint.cpp:66,1
    - Dst: BigInt::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:67,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_bigint.cpp:67,1
    - Dst: BigInt::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:70,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_bigint.cpp:71,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_bigint.cpp:73,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 82
    functionName: Botan_Tests::BigInt_Unit_Tests::test_bigint_sizes
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 1
    functionsReached:
    - BigInt::bytes
    - BigInt::set_bit
    - BigInt::bits
    - static_cast<uint32_t>
    - BigInt::to_u32bit
    - Test::Result::test_failure
    - Test::Result::test_is_eq
    - Test::Result::test_eq
    - Test::Result::test_success
    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:87,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_bigint.cpp:89,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:90,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_bigint.cpp:91,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:92,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_bigint.cpp:93,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:94,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:97,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:98,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:100,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:101,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:103,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:104,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:107,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:108,1
    - Dst: BigInt::bits
      Src: /src/botan/src/tests/test_bigint.cpp:108,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:109,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:109,1
    - Dst: Botan::random_safe_prime
      Src: /src/botan/src/tests/test_bigint.cpp:113,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:114,1
    - Dst: BigInt::bits
      Src: /src/botan/src/tests/test_bigint.cpp:114,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:115,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:115,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:116,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:116,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 119
    functionName: Botan_Tests::BigInt_Unit_Tests::test_random_prime
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_throws
    - BigInt::bits
    - Botan::random_safe_prime
    - Botan::random_prime
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan_Tests::Test::new_rng
    - Botan::is_prime
    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:124,1
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/tests/test_bigint.cpp:125,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_bigint.cpp:127,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_bigint.cpp:128,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_bigint.cpp:129,1
    - Dst: Botan::BigInt::encode_fixed_length_int_pair
      Src: /src/botan/src/tests/test_bigint.cpp:131,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:132,1
    - Dst: auto::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:134,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_bigint.cpp:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 141
    functionName: Botan_Tests::BigInt_Unit_Tests::test_encode
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 1
    functionsReached:
    - auto::bytes
    - auto::serialize
    - Test::Result::test_failure
    - Botan::concat
    - Botan::BigInt::from_u64
    - Test::Result::test_eq
    - Botan::BigInt::encode_fixed_length_int_pair
    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:148,1
    - Dst: Botan::BigInt::get_substring
      Src: /src/botan/src/tests/test_bigint.cpp:154,1
    - Dst: Botan::BigInt::mask_bits
      Src: /src/botan/src/tests/test_bigint.cpp:157,1
    - Dst: Botan::BigInt::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:159,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 166
    functionName: Botan_Tests::BigInt_Unit_Tests::test_get_substring
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 1
    functionsReached:
    - Botan::BigInt::get_substring
    - Botan::BigInt::mask_bits
    - Test::Result::test_eq
    - Botan_Tests::Test::new_rng
    - Botan::BigInt::to_u32bit
    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:171,1
    - 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::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:178,1
    - Dst: std::istringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:181,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:183,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:193,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:193,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:195,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:197,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:197,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:199,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:201,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:201,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:203,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:205,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:205,1
    - Dst: check_bigint_formatting
      Src: /src/botan/src/tests/test_bigint.cpp:208,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:208,1
    - Dst: check_bigint_formatting
      Src: /src/botan/src/tests/test_bigint.cpp:209,1
    - Dst: Botan::BigInt::from_s32
      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
      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: Test::Result::test_throws
      Src: /src/botan/src/tests/test_bigint.cpp:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 221
    functionName: Botan_Tests::BigInt_Unit_Tests::test_bigint_io
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 1
    functionsReached:
    - Botan::BigInt
    - Test::Result::test_throws
    - std::ostringstream::str
    - Botan::BigInt::from_s32
    - Test::Result::test_eq
    - std::istringstream::str
    - check_bigint_formatting
    - 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: 228
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 228
    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:233,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:234,1
    - Dst: get_req_bool
      Src: /src/botan/src/tests/test_bigint.cpp:235,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:238,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:240,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:243,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:245,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:248,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:251,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:253,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_bigint.cpp:256,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - ' op'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 260
    functionName: Botan_Tests::BigInt_Cmp_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - get_req_bn
    - get_req_bool
    - Test::Result::confirm
    - Test_Error
    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: 267
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 267
    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:274,1
    - 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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:278,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:279,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:283,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 290
    functionName: Botan_Tests::BigInt_Add_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - get_req_bn
    - Test::Result::test_eq
    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: 297
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 297
    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:302,1
    - 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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:306,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 313
    functionName: Botan_Tests::BigInt_Sub_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - get_req_bn
    - Test::Result::test_eq
    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: 320
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 320
    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:325,1
    - 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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:329,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:330,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:334,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 341
    functionName: Botan_Tests::BigInt_Mul_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - get_req_bn
    - Test::Result::test_eq
    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: 348
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 348
    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:353,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:354,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:356,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:357,1
    - Dst: square
      Src: /src/botan/src/tests/test_bigint.cpp:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 360
    functionName: Botan_Tests::BigInt_Sqr_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - get_req_bn
    - square
    - Test::Result::test_eq
    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: 367
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 367
    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:372,1
    - 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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:376,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:380,1
    - Dst: BigInt::sig_words
      Src: /src/botan/src/tests/test_bigint.cpp:382,1
    - Dst: BigInt::is_positive
      Src: /src/botan/src/tests/test_bigint.cpp:382,1
    - Dst: BigInt::word_at
      Src: /src/botan/src/tests/test_bigint.cpp:383,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:384,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/tests/test_bigint.cpp:384,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:386,1
    - Dst: Botan::ct_divide_word
      Src: /src/botan/src/tests/test_bigint.cpp:388,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:389,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:390,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:393,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:394,1
    - Dst: Botan::ct_divide
      Src: /src/botan/src/tests/test_bigint.cpp:395,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:396,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:397,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 400
    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::is_positive
    - Test::Result::test_eq
    - Botan::ct_divide_word
    - BigInt::word_at
    - get_req_bn
    - Botan::BigInt::BigInt
    - BigInt::sig_words
    - Botan::ct_divide
    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:411,1
    - 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::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_bigint.cpp:417,1
    - Dst: BigInt::is_zero
      Src: /src/botan/src/tests/test_bigint.cpp:421,1
    - Dst: Botan_Tests::BigInt_DivPow2k_Test::testcase
      Src: /src/botan/src/tests/test_bigint.cpp:425,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 430
    functionName: Botan_Tests::BigInt_DivPow2k_Test::run
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - BigInt::is_zero
    - Botan_Tests::BitOps_Tests::test_power_of_2
    - Botan_Tests::BigInt_DivPow2k_Test::testcase
    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:434,1
    - Dst: vartime_divide_pow2k
      Src: /src/botan/src/tests/test_bigint.cpp:435,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_bigint.cpp:436,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:438,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - k
    - ' y'
    - ' result'
    argTypes:
    - size_t
    - BigInt
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 440
    functionName: Botan_Tests::BigInt_DivPow2k_Test::testcase
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 1
    functionsReached:
    - ct_divide_pow2k
    - test_eq
    - Botan_Tests::BitOps_Tests::test_power_of_2
    - vartime_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: 447
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 447
    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:452,1
    - 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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:456,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:460,1
    - Dst: BigInt::is_positive
      Src: /src/botan/src/tests/test_bigint.cpp:462,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/tests/test_bigint.cpp:463,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:464,1
    - Dst: auto::reduce
      Src: /src/botan/src/tests/test_bigint.cpp:464,1
    - Dst: Botan::Barrett_Reduction::for_secret_modulus
      Src: /src/botan/src/tests/test_bigint.cpp:466,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:467,1
    - Dst: auto::reduce
      Src: /src/botan/src/tests/test_bigint.cpp:467,1
    - Dst: BigInt::sig_words
      Src: /src/botan/src/tests/test_bigint.cpp:471,1
    - Dst: BigInt::word_at
      Src: /src/botan/src/tests/test_bigint.cpp:472,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:476,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:478,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:480,1
    - Dst: Botan::ct_divide_word
      Src: /src/botan/src/tests/test_bigint.cpp:482,1
    - Dst: BigInt::word_at
      Src: /src/botan/src/tests/test_bigint.cpp:482,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:483,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:486,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:487,1
    - Dst: Botan::ct_divide
      Src: /src/botan/src/tests/test_bigint.cpp:488,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:489,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 492
    functionName: Botan_Tests::BigInt_Mod_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::Barrett_Reduction::for_secret_modulus
    - BigInt::is_positive
    - Botan::Barrett_Reduction::for_public_modulus
    - auto::reduce
    - Test::Result::test_eq
    - Botan::ct_divide_word
    - BigInt::word_at
    - get_req_bn
    - Botan::BigInt::BigInt
    - BigInt::sig_words
    - Botan::ct_divide
    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:505,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_bigint.cpp:510,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_bigint.cpp:512,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_bigint.cpp:514,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:516,1
    - Dst: Botan::BigInt::randomize
      Src: /src/botan/src/tests/test_bigint.cpp:517,1
    - Dst: rng
      Src: /src/botan/src/tests/test_bigint.cpp:517,1
    - Dst: auto::bits
      Src: /src/botan/src/tests/test_bigint.cpp:523,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/tests/test_bigint.cpp:524,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:528,1
    - Dst: Botan::BigInt::randomize
      Src: /src/botan/src/tests/test_bigint.cpp:529,1
    - Dst: rng
      Src: /src/botan/src/tests/test_bigint.cpp:529,1
    - Dst: auto::reduce
      Src: /src/botan/src/tests/test_bigint.cpp:534,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:536,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 541
    functionName: Botan_Tests::Barrett_Redc_Test::run
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - rng
    - Botan::BigInt::from_u64
    - auto::bits
    - Botan::BigInt::randomize
    - Botan::Barrett_Reduction::for_public_modulus
    - auto::reduce
    - Test::Result::test_eq
    - Botan_Tests::BitOps_Tests::test_power_of_2
    - Botan::BigInt::BigInt
    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: 548
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 548
    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:553,1
    - 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: Botan::gcd
      Src: /src/botan/src/tests/test_bigint.cpp:557,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:558,1
    - Dst: Botan::gcd
      Src: /src/botan/src/tests/test_bigint.cpp:560,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 564
    functionName: Botan_Tests::BigInt_GCD_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_eq
    - get_req_bn
    - Botan::gcd
    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: 571
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 571
    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:576,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:577,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_bigint.cpp:578,1
    - Dst: Botan::jacobi
      Src: /src/botan/src/tests/test_bigint.cpp:580,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:583,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:585,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:587,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 591
    functionName: Botan_Tests::BigInt_Jacobi_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - get_req_bn
    - Botan::jacobi
    - get_req_str
    - Test::Result::test_eq
    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: 598
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 598
    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:603,1
    - 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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:607,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 614
    functionName: Botan_Tests::BigInt_Lshift_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - get_req_bn
    - Test::Result::test_eq
    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: 621
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 621
    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:626,1
    - 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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:630,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 637
    functionName: Botan_Tests::BigInt_Rshift_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - get_req_bn
    - Test::Result::test_eq
    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:644,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_bigint.cpp:646,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_bigint.cpp:648,1
    - Dst: Botan::BigInt::with_capacity
      Src: /src/botan/src/tests/test_bigint.cpp:650,1
    - Dst: auto::next_byte
      Src: /src/botan/src/tests/test_bigint.cpp:652,1
    - Dst: Botan::BigInt::set_bit
      Src: /src/botan/src/tests/test_bigint.cpp:653,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/tests/test_bigint.cpp:660,1
    - Dst: auto::ct_shift_left
      Src: /src/botan/src/tests/test_bigint.cpp:661,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/tests/test_bigint.cpp:662,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:664,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_bigint.cpp:664,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_bigint.cpp:667,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 642
    functionDepth: 1
    functionLinenumber: 642
    functionLinenumberEnd: 670
    functionName: Botan_Tests::test_const_time_left_shift
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - auto::ct_shift_left
    - Test::Result::end_timer
    - Botan::fmt
    - Botan::CT::poison
    - Botan_Tests::Test::run_long_tests
    - Botan::BigInt::set_bit
    - Test::Result::test_eq
    - Botan::CT::unpoison
    - Botan::BigInt::with_capacity
    - Botan_Tests::Test::new_rng
    - auto::next_byte
    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: 674
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 674
    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:679,1
    - 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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:684,1
    - Dst: Botan::power_mod
      Src: /src/botan/src/tests/test_bigint.cpp:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 676
    functionDepth: 1
    functionLinenumber: 676
    functionLinenumberEnd: 686
    functionName: Botan_Tests::BigInt_Powmod_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - get_req_bn
    - Botan::power_mod
    - Test::Result::test_eq
    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: 693
      start: 693
    functionDepth: 0
    functionLinenumber: 693
    functionLinenumberEnd: 693
    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:697,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:700,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:704,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:704,1
    - Dst: Botan_Tests::BigInt_IsPrime_Test::rng
      Src: /src/botan/src/tests/test_bigint.cpp:704,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 695
    functionDepth: 1
    functionLinenumber: 695
    functionLinenumberEnd: 707
    functionName: Botan_Tests::BigInt_IsPrime_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - Botan_Tests::BigInt_IsPrime_Test::rng
    - Test::Result::test_eq
    - get_req_bn
    - Botan::is_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: 714
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 714
    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:717,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:718,1
    - Dst: Botan::is_perfect_square
      Src: /src/botan/src/tests/test_bigint.cpp:719,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:722,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 716
    functionDepth: 1
    functionLinenumber: 716
    functionLinenumberEnd: 724
    functionName: Botan_Tests::BigInt_IsSquare_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::is_perfect_square
    - get_req_bn
    - Test::Result::test_eq
    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: 731
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 731
    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:736,1
    - 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: Botan::sqrt_modulo_prime
      Src: /src/botan/src/tests/test_bigint.cpp:740,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:742,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:746,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 750
    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_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: 757
      start: 757
    functionDepth: 0
    functionLinenumber: 757
    functionLinenumberEnd: 757
    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:762,1
    - 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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:766,1
    - Dst: Botan::inverse_mod
      Src: /src/botan/src/tests/test_bigint.cpp:766,1
    - Dst: Botan::inverse_mod_general
      Src: /src/botan/src/tests/test_bigint.cpp:769,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_bigint.cpp:770,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:771,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_bigint.cpp:771,1
    - Dst: Test::Result::test_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: Botan_Tests::RFC8448_Session_Manager::retrieve_one
      Src: /src/botan/src/tests/test_bigint.cpp:772,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:774,1
    - Dst: Botan::BigInt::is_zero
      Src: /src/botan/src/tests/test_bigint.cpp:774,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:777,1
    - Dst: rng
      Src: /src/botan/src/tests/test_bigint.cpp:777,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_bigint.cpp:778,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:779,1
    - Dst: Botan::inverse_mod_secret_prime
      Src: /src/botan/src/tests/test_bigint.cpp:779,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:780,1
    - Dst: Botan::inverse_mod_public_prime
      Src: /src/botan/src/tests/test_bigint.cpp:780,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 759
    functionDepth: 1
    functionLinenumber: 759
    functionLinenumberEnd: 785
    functionName: Botan_Tests::BigInt_InvMod_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::is_zero
    - BOTAN_ASSERT_NOMSG
    - rng
    - Botan::inverse_mod_general
    - Botan::inverse_mod
    - Botan::inverse_mod_public_prime
    - auto::has_value
    - Botan_Tests::RFC8448_Session_Manager::retrieve_one
    - Botan::inverse_mod_secret_prime
    - auto::value
    - Test::Result::test_eq
    - Test::Result::confirm
    - get_req_bn
    - Botan::is_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: 792
      start: 792
    functionDepth: 0
    functionLinenumber: 792
    functionLinenumberEnd: 792
    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:797,1
    - Dst: get_req_bn
      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: Botan::BigInt::random_integer
      Src: /src/botan/src/tests/test_bigint.cpp:803,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 794
    functionDepth: 1
    functionLinenumber: 794
    functionLinenumberEnd: 808
    functionName: Botan_Tests::BigInt_Rand_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - get_req_bn
    - Botan::BigInt::random_integer
    - Test::Result::test_eq
    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:816,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/tests/test_bigint.cpp:829,1
    - Dst: Botan::is_lucas_probable_prime
      Src: /src/botan/src/tests/test_bigint.cpp:830,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:831,1
    - Dst: Botan_Tests::Lucas_Primality_Test::rng
      Src: /src/botan/src/tests/test_bigint.cpp:831,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:836,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_bigint.cpp:836,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:838,1
    - Dst: std::set::contains
      Src: /src/botan/src/tests/test_bigint.cpp:838,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 815
    functionDepth: 1
    functionLinenumber: 815
    functionLinenumberEnd: 843
    functionName: Botan_Tests::Lucas_Primality_Test::run
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::is_lucas_probable_prime
    - std::set::contains
    - Botan_Tests::Test::run_long_tests
    - std::set::count
    - Botan_Tests::Lucas_Primality_Test::rng
    - Botan::Barrett_Reduction::for_public_modulus
    - Test::Result::confirm
    - Botan::is_prime
    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:855,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:866,1
    - Dst: rng
      Src: /src/botan/src/tests/test_bigint.cpp:866,1
    - Dst: gcd
      Src: /src/botan/src/tests/test_bigint.cpp:867,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_bigint.cpp:868,1
    - Dst: random_index
      Src: /src/botan/src/tests/test_bigint.cpp:875,1
    - Dst: rng
      Src: /src/botan/src/tests/test_bigint.cpp:875,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_bigint.cpp:875,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: lcm
      Src: /src/botan/src/tests/test_bigint.cpp:885,1
    - Dst: Botan::compute_rsa_secret_exponent
      Src: /src/botan/src/tests/test_bigint.cpp:887,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:891,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::retrieve_one
      Src: /src/botan/src/tests/test_bigint.cpp:891,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 850
    functionDepth: 1
    functionLinenumber: 850
    functionLinenumberEnd: 895
    functionName: Botan_Tests::RSA_Compute_Exp_Test::run
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - rng
    - std::vector::push_back
    - gcd
    - Botan_Tests::RFC8448_Session_Manager::retrieve_one
    - Botan::random_prime
    - Botan::BigInt::from_u64
    - Test::Result::test_eq
    - random_index
    - auto::size
    - Botan::compute_rsa_secret_exponent
    - lcm
    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: 902
      start: 902
    functionDepth: 0
    functionLinenumber: 902
    functionLinenumberEnd: 902
    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:905,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_bigint.cpp:906,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:908,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:909,1
    - Dst: Botan::split_on
      Src: /src/botan/src/tests/test_bigint.cpp:911,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:913,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_bigint.cpp:914,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:917,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:918,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:923,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:924,1
    - Dst: Botan::generate_dsa_primes
      Src: /src/botan/src/tests/test_bigint.cpp:925,1
    - Dst: Botan_Tests::DSA_ParamGen_Test::rng
      Src: /src/botan/src/tests/test_bigint.cpp:925,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:926,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:927,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_bigint.cpp:929,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 904
    functionDepth: 1
    functionLinenumber: 904
    functionLinenumberEnd: 934
    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_Error
    - Test::Result::test_failure
    - Botan::split_on
    - get_req_sz
    - Botan::to_u32bit
    - Test::Result::test_eq
    - std::vector::size
    - get_req_bin
    - get_req_bn
    - Botan::BigInt::BigInt
    - Botan_Tests::DSA_ParamGen_Test::rng
    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:940,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_bigint.cpp:943,1
    - Dst: Botan::BigInt::serialize
      Src: /src/botan/src/tests/test_bigint.cpp:946,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:947,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_bigint.cpp:947,1
    - Dst: Botan::BigInt::serialize
      Src: /src/botan/src/tests/test_bigint.cpp:949,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:950,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_bigint.cpp:950,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_bigint.cpp:952,1
    - Dst: Botan::BigInt::serialize
      Src: /src/botan/src/tests/test_bigint.cpp:952,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_bigint.cpp:955,1
    - Dst: Botan::BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:959,1
    - Dst: Botan::BigInt::binary_encode
      Src: /src/botan/src/tests/test_bigint.cpp:960,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_bigint.cpp:960,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:960,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:961,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_bigint.cpp:961,1
    - Dst: Botan::BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:963,1
    - Dst: Botan::BigInt::binary_encode
      Src: /src/botan/src/tests/test_bigint.cpp:964,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_bigint.cpp:964,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:964,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:965,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_bigint.cpp:965,1
    - Dst: Botan::BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:967,1
    - Dst: Botan::BigInt::binary_encode
      Src: /src/botan/src/tests/test_bigint.cpp:968,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_bigint.cpp:968,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:968,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:969,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_bigint.cpp:969,1
    - Dst: Botan::BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:972,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_bigint.cpp:973,1
    - Dst: Botan::BigInt::binary_encode
      Src: /src/botan/src/tests/test_bigint.cpp:974,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_bigint.cpp:974,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:974,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:975,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_bigint.cpp:975,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_bigint.cpp:977,1
    - Dst: Botan::BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:979,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_bigint.cpp:980,1
    - Dst: Botan::BigInt::binary_encode
      Src: /src/botan/src/tests/test_bigint.cpp:981,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_bigint.cpp:981,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:981,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:982,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_bigint.cpp:984,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 939
    functionDepth: 3
    functionLinenumber: 939
    functionLinenumberEnd: 987
    functionName: Botan_Tests::test_bigint_serialization
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan::hex_decode
    - Botan::BigInt::serialize
    - Botan_Tests::CHECK
    - test_throws
    - auto::randomize
    - std::vector::data
    - Botan::BigInt::bytes
    - Botan_Tests::Test::new_rng
    - std::vector::size
    - Botan::BigInt::binary_encode
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bigint_serialization()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_bigint.cpp:38,1
    - Dst: Botan_Tests::BigInt_Unit_Tests::test_bigint_sizes
      Src: /src/botan/src/tests/test_bigint.cpp:38,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_bigint.cpp:39,1
    - Dst: Botan_Tests::BigInt_Unit_Tests::test_random_prime
      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_encode
      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_bigint_io
      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_get_substring
      Src: /src/botan/src/tests/test_bigint.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 45
    functionName: Botan_Tests::BigInt_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::BigInt_Unit_Tests::test_get_substring
    - std::vector::push_back
    - Botan_Tests::BigInt_Unit_Tests::test_bigint_sizes
    - Botan_Tests::BigInt_Unit_Tests::test_bigint_io
    - Botan_Tests::BigInt_Unit_Tests::test_random_prime
    - 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:54,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:59,1
    - Dst: BigInt::bits
      Src: /src/botan/src/tests/test_bigint.cpp:59,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:60,1
    - Dst: BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:61,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_bigint.cpp:64,1
    - Dst: BigInt::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:64,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_bigint.cpp:64,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_bigint.cpp:66,1
    - Dst: BigInt::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:67,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_bigint.cpp:67,1
    - Dst: BigInt::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:70,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_bigint.cpp:71,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_bigint.cpp:73,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 82
    functionName: Botan_Tests::BigInt_Unit_Tests::test_bigint_sizes
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 2
    functionsReached:
    - BigInt::bytes
    - BigInt::set_bit
    - BigInt::bits
    - static_cast<uint32_t>
    - BigInt::to_u32bit
    - Test::Result::test_failure
    - Test::Result::test_is_eq
    - Test::Result::test_eq
    - Test::Result::test_success
    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:87,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_bigint.cpp:89,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:90,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_bigint.cpp:91,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:92,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_bigint.cpp:93,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:94,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:97,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:98,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:100,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:101,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:103,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:104,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:107,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:108,1
    - Dst: BigInt::bits
      Src: /src/botan/src/tests/test_bigint.cpp:108,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:109,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:109,1
    - Dst: Botan::random_safe_prime
      Src: /src/botan/src/tests/test_bigint.cpp:113,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:114,1
    - Dst: BigInt::bits
      Src: /src/botan/src/tests/test_bigint.cpp:114,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:115,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:115,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:116,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:116,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 119
    functionName: Botan_Tests::BigInt_Unit_Tests::test_random_prime
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::test_throws
    - BigInt::bits
    - Botan::random_safe_prime
    - Botan::random_prime
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan_Tests::Test::new_rng
    - Botan::is_prime
    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:124,1
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/tests/test_bigint.cpp:125,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_bigint.cpp:127,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_bigint.cpp:128,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_bigint.cpp:129,1
    - Dst: Botan::BigInt::encode_fixed_length_int_pair
      Src: /src/botan/src/tests/test_bigint.cpp:131,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:132,1
    - Dst: auto::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:134,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_bigint.cpp:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 141
    functionName: Botan_Tests::BigInt_Unit_Tests::test_encode
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 2
    functionsReached:
    - auto::bytes
    - auto::serialize
    - Test::Result::test_failure
    - Botan::concat
    - Botan::BigInt::from_u64
    - Test::Result::test_eq
    - Botan::BigInt::encode_fixed_length_int_pair
    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:148,1
    - Dst: Botan::BigInt::get_substring
      Src: /src/botan/src/tests/test_bigint.cpp:154,1
    - Dst: Botan::BigInt::mask_bits
      Src: /src/botan/src/tests/test_bigint.cpp:157,1
    - Dst: Botan::BigInt::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:159,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 166
    functionName: Botan_Tests::BigInt_Unit_Tests::test_get_substring
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 2
    functionsReached:
    - Botan::BigInt::get_substring
    - Botan::BigInt::mask_bits
    - Test::Result::test_eq
    - Botan_Tests::Test::new_rng
    - Botan::BigInt::to_u32bit
    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:171,1
    - 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::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:178,1
    - Dst: std::istringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:181,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:183,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:193,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:193,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:195,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:197,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:197,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:199,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:201,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:201,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:203,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:205,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:205,1
    - Dst: check_bigint_formatting
      Src: /src/botan/src/tests/test_bigint.cpp:208,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:208,1
    - Dst: check_bigint_formatting
      Src: /src/botan/src/tests/test_bigint.cpp:209,1
    - Dst: Botan::BigInt::from_s32
      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
      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: Test::Result::test_throws
      Src: /src/botan/src/tests/test_bigint.cpp:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 221
    functionName: Botan_Tests::BigInt_Unit_Tests::test_bigint_io
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 2
    functionsReached:
    - Botan::BigInt
    - Test::Result::test_throws
    - std::ostringstream::str
    - Botan::BigInt::from_s32
    - Test::Result::test_eq
    - std::istringstream::str
    - check_bigint_formatting
    - 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: 228
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 228
    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:233,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:234,1
    - Dst: get_req_bool
      Src: /src/botan/src/tests/test_bigint.cpp:235,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:238,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:240,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:243,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:245,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:248,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:251,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:253,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_bigint.cpp:256,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - ' op'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 260
    functionName: Botan_Tests::BigInt_Cmp_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - get_req_bn
    - get_req_bool
    - Test::Result::confirm
    - Test_Error
    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: 267
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 267
    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:274,1
    - 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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:278,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:279,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:283,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 290
    functionName: Botan_Tests::BigInt_Add_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - get_req_bn
    - Test::Result::test_eq
    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: 297
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 297
    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:302,1
    - 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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:306,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 313
    functionName: Botan_Tests::BigInt_Sub_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - get_req_bn
    - Test::Result::test_eq
    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: 320
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 320
    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:325,1
    - 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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:329,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:330,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:334,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 341
    functionName: Botan_Tests::BigInt_Mul_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - get_req_bn
    - Test::Result::test_eq
    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: 348
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 348
    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:353,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:354,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:356,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:357,1
    - Dst: square
      Src: /src/botan/src/tests/test_bigint.cpp:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 360
    functionName: Botan_Tests::BigInt_Sqr_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - get_req_bn
    - square
    - Test::Result::test_eq
    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: 367
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 367
    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:372,1
    - 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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:376,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:380,1
    - Dst: BigInt::sig_words
      Src: /src/botan/src/tests/test_bigint.cpp:382,1
    - Dst: BigInt::is_positive
      Src: /src/botan/src/tests/test_bigint.cpp:382,1
    - Dst: BigInt::word_at
      Src: /src/botan/src/tests/test_bigint.cpp:383,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:384,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/tests/test_bigint.cpp:384,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:386,1
    - Dst: Botan::ct_divide_word
      Src: /src/botan/src/tests/test_bigint.cpp:388,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:389,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:390,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:393,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:394,1
    - Dst: Botan::ct_divide
      Src: /src/botan/src/tests/test_bigint.cpp:395,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:396,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:397,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 400
    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::is_positive
    - Test::Result::test_eq
    - Botan::ct_divide_word
    - BigInt::word_at
    - get_req_bn
    - Botan::BigInt::BigInt
    - BigInt::sig_words
    - Botan::ct_divide
    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:411,1
    - 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::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_bigint.cpp:417,1
    - Dst: BigInt::is_zero
      Src: /src/botan/src/tests/test_bigint.cpp:421,1
    - Dst: Botan_Tests::BigInt_DivPow2k_Test::testcase
      Src: /src/botan/src/tests/test_bigint.cpp:425,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 407
    functionDepth: 2
    functionLinenumber: 407
    functionLinenumberEnd: 430
    functionName: Botan_Tests::BigInt_DivPow2k_Test::run
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - BigInt::is_zero
    - Botan_Tests::BitOps_Tests::test_power_of_2
    - Botan_Tests::BigInt_DivPow2k_Test::testcase
    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:434,1
    - Dst: vartime_divide_pow2k
      Src: /src/botan/src/tests/test_bigint.cpp:435,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_bigint.cpp:436,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:438,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - k
    - ' y'
    - ' result'
    argTypes:
    - size_t
    - BigInt
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 440
    functionName: Botan_Tests::BigInt_DivPow2k_Test::testcase
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 2
    functionsReached:
    - ct_divide_pow2k
    - test_eq
    - Botan_Tests::BitOps_Tests::test_power_of_2
    - vartime_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: 447
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 447
    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:452,1
    - 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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:456,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:460,1
    - Dst: BigInt::is_positive
      Src: /src/botan/src/tests/test_bigint.cpp:462,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/tests/test_bigint.cpp:463,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:464,1
    - Dst: auto::reduce
      Src: /src/botan/src/tests/test_bigint.cpp:464,1
    - Dst: Botan::Barrett_Reduction::for_secret_modulus
      Src: /src/botan/src/tests/test_bigint.cpp:466,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:467,1
    - Dst: auto::reduce
      Src: /src/botan/src/tests/test_bigint.cpp:467,1
    - Dst: BigInt::sig_words
      Src: /src/botan/src/tests/test_bigint.cpp:471,1
    - Dst: BigInt::word_at
      Src: /src/botan/src/tests/test_bigint.cpp:472,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:476,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:478,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:480,1
    - Dst: Botan::ct_divide_word
      Src: /src/botan/src/tests/test_bigint.cpp:482,1
    - Dst: BigInt::word_at
      Src: /src/botan/src/tests/test_bigint.cpp:482,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:483,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:486,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:487,1
    - Dst: Botan::ct_divide
      Src: /src/botan/src/tests/test_bigint.cpp:488,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:489,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 492
    functionName: Botan_Tests::BigInt_Mod_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::Barrett_Reduction::for_secret_modulus
    - BigInt::is_positive
    - Botan::Barrett_Reduction::for_public_modulus
    - auto::reduce
    - Test::Result::test_eq
    - Botan::ct_divide_word
    - BigInt::word_at
    - get_req_bn
    - Botan::BigInt::BigInt
    - BigInt::sig_words
    - Botan::ct_divide
    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:505,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_bigint.cpp:510,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_bigint.cpp:512,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_bigint.cpp:514,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:516,1
    - Dst: Botan::BigInt::randomize
      Src: /src/botan/src/tests/test_bigint.cpp:517,1
    - Dst: rng
      Src: /src/botan/src/tests/test_bigint.cpp:517,1
    - Dst: auto::bits
      Src: /src/botan/src/tests/test_bigint.cpp:523,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/tests/test_bigint.cpp:524,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:528,1
    - Dst: Botan::BigInt::randomize
      Src: /src/botan/src/tests/test_bigint.cpp:529,1
    - Dst: rng
      Src: /src/botan/src/tests/test_bigint.cpp:529,1
    - Dst: auto::reduce
      Src: /src/botan/src/tests/test_bigint.cpp:534,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:536,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 541
    functionName: Botan_Tests::Barrett_Redc_Test::run
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - rng
    - Botan::BigInt::from_u64
    - auto::bits
    - Botan::BigInt::randomize
    - Botan::Barrett_Reduction::for_public_modulus
    - auto::reduce
    - Test::Result::test_eq
    - Botan_Tests::BitOps_Tests::test_power_of_2
    - Botan::BigInt::BigInt
    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: 548
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 548
    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:553,1
    - 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: Botan::gcd
      Src: /src/botan/src/tests/test_bigint.cpp:557,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:558,1
    - Dst: Botan::gcd
      Src: /src/botan/src/tests/test_bigint.cpp:560,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 564
    functionName: Botan_Tests::BigInt_GCD_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_eq
    - get_req_bn
    - Botan::gcd
    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: 571
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 571
    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:576,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:577,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_bigint.cpp:578,1
    - Dst: Botan::jacobi
      Src: /src/botan/src/tests/test_bigint.cpp:580,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:583,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:585,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:587,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 591
    functionName: Botan_Tests::BigInt_Jacobi_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - get_req_bn
    - Botan::jacobi
    - get_req_str
    - Test::Result::test_eq
    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: 598
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 598
    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:603,1
    - 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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:607,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 614
    functionName: Botan_Tests::BigInt_Lshift_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - get_req_bn
    - Test::Result::test_eq
    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: 621
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 621
    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:626,1
    - 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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:630,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 637
    functionName: Botan_Tests::BigInt_Rshift_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - get_req_bn
    - Test::Result::test_eq
    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:644,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_bigint.cpp:646,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_bigint.cpp:648,1
    - Dst: Botan::BigInt::with_capacity
      Src: /src/botan/src/tests/test_bigint.cpp:650,1
    - Dst: auto::next_byte
      Src: /src/botan/src/tests/test_bigint.cpp:652,1
    - Dst: Botan::BigInt::set_bit
      Src: /src/botan/src/tests/test_bigint.cpp:653,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/tests/test_bigint.cpp:660,1
    - Dst: auto::ct_shift_left
      Src: /src/botan/src/tests/test_bigint.cpp:661,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/tests/test_bigint.cpp:662,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:664,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_bigint.cpp:664,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_bigint.cpp:667,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 642
    functionDepth: 1
    functionLinenumber: 642
    functionLinenumberEnd: 670
    functionName: Botan_Tests::test_const_time_left_shift
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - auto::ct_shift_left
    - Test::Result::end_timer
    - Botan::fmt
    - Botan::CT::poison
    - Botan_Tests::Test::run_long_tests
    - Botan::BigInt::set_bit
    - Test::Result::test_eq
    - Botan::CT::unpoison
    - Botan::BigInt::with_capacity
    - Botan_Tests::Test::new_rng
    - auto::next_byte
    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: 674
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 674
    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:679,1
    - 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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:684,1
    - Dst: Botan::power_mod
      Src: /src/botan/src/tests/test_bigint.cpp:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 676
    functionDepth: 1
    functionLinenumber: 676
    functionLinenumberEnd: 686
    functionName: Botan_Tests::BigInt_Powmod_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - get_req_bn
    - Botan::power_mod
    - Test::Result::test_eq
    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: 693
      start: 693
    functionDepth: 0
    functionLinenumber: 693
    functionLinenumberEnd: 693
    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:697,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:700,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:704,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:704,1
    - Dst: Botan_Tests::BigInt_IsPrime_Test::rng
      Src: /src/botan/src/tests/test_bigint.cpp:704,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 695
    functionDepth: 1
    functionLinenumber: 695
    functionLinenumberEnd: 707
    functionName: Botan_Tests::BigInt_IsPrime_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - Botan_Tests::BigInt_IsPrime_Test::rng
    - Test::Result::test_eq
    - get_req_bn
    - Botan::is_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: 714
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 714
    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:717,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:718,1
    - Dst: Botan::is_perfect_square
      Src: /src/botan/src/tests/test_bigint.cpp:719,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:722,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 716
    functionDepth: 1
    functionLinenumber: 716
    functionLinenumberEnd: 724
    functionName: Botan_Tests::BigInt_IsSquare_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::is_perfect_square
    - get_req_bn
    - Test::Result::test_eq
    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: 731
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 731
    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:736,1
    - 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: Botan::sqrt_modulo_prime
      Src: /src/botan/src/tests/test_bigint.cpp:740,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:742,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:746,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 750
    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_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: 757
      start: 757
    functionDepth: 0
    functionLinenumber: 757
    functionLinenumberEnd: 757
    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:762,1
    - 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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:766,1
    - Dst: Botan::inverse_mod
      Src: /src/botan/src/tests/test_bigint.cpp:766,1
    - Dst: Botan::inverse_mod_general
      Src: /src/botan/src/tests/test_bigint.cpp:769,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_bigint.cpp:770,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:771,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_bigint.cpp:771,1
    - Dst: Test::Result::test_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: Botan_Tests::RFC8448_Session_Manager::retrieve_one
      Src: /src/botan/src/tests/test_bigint.cpp:772,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:774,1
    - Dst: Botan::BigInt::is_zero
      Src: /src/botan/src/tests/test_bigint.cpp:774,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:777,1
    - Dst: rng
      Src: /src/botan/src/tests/test_bigint.cpp:777,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_bigint.cpp:778,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:779,1
    - Dst: Botan::inverse_mod_secret_prime
      Src: /src/botan/src/tests/test_bigint.cpp:779,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:780,1
    - Dst: Botan::inverse_mod_public_prime
      Src: /src/botan/src/tests/test_bigint.cpp:780,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 759
    functionDepth: 1
    functionLinenumber: 759
    functionLinenumberEnd: 785
    functionName: Botan_Tests::BigInt_InvMod_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::is_zero
    - BOTAN_ASSERT_NOMSG
    - rng
    - Botan::inverse_mod_general
    - Botan::inverse_mod
    - Botan::inverse_mod_public_prime
    - auto::has_value
    - Botan_Tests::RFC8448_Session_Manager::retrieve_one
    - Botan::inverse_mod_secret_prime
    - auto::value
    - Test::Result::test_eq
    - Test::Result::confirm
    - get_req_bn
    - Botan::is_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: 792
      start: 792
    functionDepth: 0
    functionLinenumber: 792
    functionLinenumberEnd: 792
    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:797,1
    - Dst: get_req_bn
      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: Botan::BigInt::random_integer
      Src: /src/botan/src/tests/test_bigint.cpp:803,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 794
    functionDepth: 1
    functionLinenumber: 794
    functionLinenumberEnd: 808
    functionName: Botan_Tests::BigInt_Rand_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - get_req_bn
    - Botan::BigInt::random_integer
    - Test::Result::test_eq
    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:816,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/tests/test_bigint.cpp:829,1
    - Dst: Botan::is_lucas_probable_prime
      Src: /src/botan/src/tests/test_bigint.cpp:830,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:831,1
    - Dst: Botan_Tests::Lucas_Primality_Test::rng
      Src: /src/botan/src/tests/test_bigint.cpp:831,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:836,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_bigint.cpp:836,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:838,1
    - Dst: std::set::contains
      Src: /src/botan/src/tests/test_bigint.cpp:838,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 815
    functionDepth: 1
    functionLinenumber: 815
    functionLinenumberEnd: 843
    functionName: Botan_Tests::Lucas_Primality_Test::run
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::is_lucas_probable_prime
    - std::set::contains
    - Botan_Tests::Test::run_long_tests
    - std::set::count
    - Botan_Tests::Lucas_Primality_Test::rng
    - Botan::Barrett_Reduction::for_public_modulus
    - Test::Result::confirm
    - Botan::is_prime
    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:855,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:866,1
    - Dst: rng
      Src: /src/botan/src/tests/test_bigint.cpp:866,1
    - Dst: gcd
      Src: /src/botan/src/tests/test_bigint.cpp:867,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_bigint.cpp:868,1
    - Dst: random_index
      Src: /src/botan/src/tests/test_bigint.cpp:875,1
    - Dst: rng
      Src: /src/botan/src/tests/test_bigint.cpp:875,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_bigint.cpp:875,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: lcm
      Src: /src/botan/src/tests/test_bigint.cpp:885,1
    - Dst: Botan::compute_rsa_secret_exponent
      Src: /src/botan/src/tests/test_bigint.cpp:887,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:891,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::retrieve_one
      Src: /src/botan/src/tests/test_bigint.cpp:891,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 850
    functionDepth: 1
    functionLinenumber: 850
    functionLinenumberEnd: 895
    functionName: Botan_Tests::RSA_Compute_Exp_Test::run
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - rng
    - std::vector::push_back
    - gcd
    - Botan_Tests::RFC8448_Session_Manager::retrieve_one
    - Botan::random_prime
    - Botan::BigInt::from_u64
    - Test::Result::test_eq
    - random_index
    - auto::size
    - Botan::compute_rsa_secret_exponent
    - lcm
    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: 902
      start: 902
    functionDepth: 0
    functionLinenumber: 902
    functionLinenumberEnd: 902
    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:905,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_bigint.cpp:906,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:908,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:909,1
    - Dst: Botan::split_on
      Src: /src/botan/src/tests/test_bigint.cpp:911,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:913,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_bigint.cpp:914,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:917,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:918,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:923,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:924,1
    - Dst: Botan::generate_dsa_primes
      Src: /src/botan/src/tests/test_bigint.cpp:925,1
    - Dst: Botan_Tests::DSA_ParamGen_Test::rng
      Src: /src/botan/src/tests/test_bigint.cpp:925,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:926,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:927,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_bigint.cpp:929,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 904
    functionDepth: 1
    functionLinenumber: 904
    functionLinenumberEnd: 934
    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_Error
    - Test::Result::test_failure
    - Botan::split_on
    - get_req_sz
    - Botan::to_u32bit
    - Test::Result::test_eq
    - std::vector::size
    - get_req_bin
    - get_req_bn
    - Botan::BigInt::BigInt
    - Botan_Tests::DSA_ParamGen_Test::rng
    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:940,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_bigint.cpp:943,1
    - Dst: Botan::BigInt::serialize
      Src: /src/botan/src/tests/test_bigint.cpp:946,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:947,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_bigint.cpp:947,1
    - Dst: Botan::BigInt::serialize
      Src: /src/botan/src/tests/test_bigint.cpp:949,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:950,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_bigint.cpp:950,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_bigint.cpp:952,1
    - Dst: Botan::BigInt::serialize
      Src: /src/botan/src/tests/test_bigint.cpp:952,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_bigint.cpp:955,1
    - Dst: Botan::BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:959,1
    - Dst: Botan::BigInt::binary_encode
      Src: /src/botan/src/tests/test_bigint.cpp:960,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_bigint.cpp:960,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:960,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:961,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_bigint.cpp:961,1
    - Dst: Botan::BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:963,1
    - Dst: Botan::BigInt::binary_encode
      Src: /src/botan/src/tests/test_bigint.cpp:964,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_bigint.cpp:964,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:964,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:965,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_bigint.cpp:965,1
    - Dst: Botan::BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:967,1
    - Dst: Botan::BigInt::binary_encode
      Src: /src/botan/src/tests/test_bigint.cpp:968,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_bigint.cpp:968,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:968,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:969,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_bigint.cpp:969,1
    - Dst: Botan::BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:972,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_bigint.cpp:973,1
    - Dst: Botan::BigInt::binary_encode
      Src: /src/botan/src/tests/test_bigint.cpp:974,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_bigint.cpp:974,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:974,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:975,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_bigint.cpp:975,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_bigint.cpp:977,1
    - Dst: Botan::BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:979,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_bigint.cpp:980,1
    - Dst: Botan::BigInt::binary_encode
      Src: /src/botan/src/tests/test_bigint.cpp:981,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_bigint.cpp:981,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:981,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:982,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_bigint.cpp:984,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 939
    functionDepth: 3
    functionLinenumber: 939
    functionLinenumberEnd: 987
    functionName: Botan_Tests::test_bigint_serialization
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan::hex_decode
    - Botan::BigInt::serialize
    - Botan_Tests::CHECK
    - test_throws
    - auto::randomize
    - std::vector::data
    - Botan::BigInt::bytes
    - Botan_Tests::Test::new_rng
    - std::vector::size
    - Botan::BigInt::binary_encode
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bigint_serialization()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_bigint.cpp:38,1
    - Dst: Botan_Tests::BigInt_Unit_Tests::test_bigint_sizes
      Src: /src/botan/src/tests/test_bigint.cpp:38,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_bigint.cpp:39,1
    - Dst: Botan_Tests::BigInt_Unit_Tests::test_random_prime
      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_encode
      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_bigint_io
      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_get_substring
      Src: /src/botan/src/tests/test_bigint.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 45
    functionName: Botan_Tests::BigInt_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::BigInt_Unit_Tests::test_get_substring
    - std::vector::push_back
    - Botan_Tests::BigInt_Unit_Tests::test_bigint_sizes
    - Botan_Tests::BigInt_Unit_Tests::test_bigint_io
    - Botan_Tests::BigInt_Unit_Tests::test_random_prime
    - 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:54,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:59,1
    - Dst: BigInt::bits
      Src: /src/botan/src/tests/test_bigint.cpp:59,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:60,1
    - Dst: BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:61,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_bigint.cpp:64,1
    - Dst: BigInt::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:64,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_bigint.cpp:64,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_bigint.cpp:66,1
    - Dst: BigInt::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:67,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_bigint.cpp:67,1
    - Dst: BigInt::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:70,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_bigint.cpp:71,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_bigint.cpp:73,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 82
    functionName: Botan_Tests::BigInt_Unit_Tests::test_bigint_sizes
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 3
    functionsReached:
    - BigInt::bytes
    - BigInt::set_bit
    - BigInt::bits
    - static_cast<uint32_t>
    - BigInt::to_u32bit
    - Test::Result::test_failure
    - Test::Result::test_is_eq
    - Test::Result::test_eq
    - Test::Result::test_success
    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:87,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_bigint.cpp:89,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:90,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_bigint.cpp:91,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:92,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_bigint.cpp:93,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:94,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:97,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:98,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:100,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:101,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:103,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:104,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:107,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:108,1
    - Dst: BigInt::bits
      Src: /src/botan/src/tests/test_bigint.cpp:108,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:109,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:109,1
    - Dst: Botan::random_safe_prime
      Src: /src/botan/src/tests/test_bigint.cpp:113,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:114,1
    - Dst: BigInt::bits
      Src: /src/botan/src/tests/test_bigint.cpp:114,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:115,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:115,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:116,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:116,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 119
    functionName: Botan_Tests::BigInt_Unit_Tests::test_random_prime
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 3
    functionsReached:
    - Test::Result::test_throws
    - BigInt::bits
    - Botan::random_safe_prime
    - Botan::random_prime
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan_Tests::Test::new_rng
    - Botan::is_prime
    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:124,1
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/tests/test_bigint.cpp:125,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_bigint.cpp:127,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_bigint.cpp:128,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_bigint.cpp:129,1
    - Dst: Botan::BigInt::encode_fixed_length_int_pair
      Src: /src/botan/src/tests/test_bigint.cpp:131,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:132,1
    - Dst: auto::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:134,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_bigint.cpp:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 141
    functionName: Botan_Tests::BigInt_Unit_Tests::test_encode
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 3
    functionsReached:
    - auto::bytes
    - auto::serialize
    - Test::Result::test_failure
    - Botan::concat
    - Botan::BigInt::from_u64
    - Test::Result::test_eq
    - Botan::BigInt::encode_fixed_length_int_pair
    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:148,1
    - Dst: Botan::BigInt::get_substring
      Src: /src/botan/src/tests/test_bigint.cpp:154,1
    - Dst: Botan::BigInt::mask_bits
      Src: /src/botan/src/tests/test_bigint.cpp:157,1
    - Dst: Botan::BigInt::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:159,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 166
    functionName: Botan_Tests::BigInt_Unit_Tests::test_get_substring
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 3
    functionsReached:
    - Botan::BigInt::get_substring
    - Botan::BigInt::mask_bits
    - Test::Result::test_eq
    - Botan_Tests::Test::new_rng
    - Botan::BigInt::to_u32bit
    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:171,1
    - 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::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:178,1
    - Dst: std::istringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:181,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:183,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:193,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:193,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:195,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:197,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:197,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:199,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:201,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:201,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:203,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:205,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:205,1
    - Dst: check_bigint_formatting
      Src: /src/botan/src/tests/test_bigint.cpp:208,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:208,1
    - Dst: check_bigint_formatting
      Src: /src/botan/src/tests/test_bigint.cpp:209,1
    - Dst: Botan::BigInt::from_s32
      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
      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: Test::Result::test_throws
      Src: /src/botan/src/tests/test_bigint.cpp:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 221
    functionName: Botan_Tests::BigInt_Unit_Tests::test_bigint_io
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 3
    functionsReached:
    - Botan::BigInt
    - Test::Result::test_throws
    - std::ostringstream::str
    - Botan::BigInt::from_s32
    - Test::Result::test_eq
    - std::istringstream::str
    - check_bigint_formatting
    - 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: 228
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 228
    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:233,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:234,1
    - Dst: get_req_bool
      Src: /src/botan/src/tests/test_bigint.cpp:235,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:238,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:240,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:243,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:245,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:248,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:251,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:253,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_bigint.cpp:256,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - ' op'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 260
    functionName: Botan_Tests::BigInt_Cmp_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - get_req_bn
    - get_req_bool
    - Test::Result::confirm
    - Test_Error
    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: 267
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 267
    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:274,1
    - 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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:278,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:279,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:283,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 290
    functionName: Botan_Tests::BigInt_Add_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - get_req_bn
    - Test::Result::test_eq
    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: 297
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 297
    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:302,1
    - 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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:306,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 313
    functionName: Botan_Tests::BigInt_Sub_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - get_req_bn
    - Test::Result::test_eq
    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: 320
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 320
    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:325,1
    - 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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:329,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:330,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:334,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 341
    functionName: Botan_Tests::BigInt_Mul_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - get_req_bn
    - Test::Result::test_eq
    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: 348
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 348
    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:353,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:354,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:356,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:357,1
    - Dst: square
      Src: /src/botan/src/tests/test_bigint.cpp:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 360
    functionName: Botan_Tests::BigInt_Sqr_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - get_req_bn
    - square
    - Test::Result::test_eq
    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: 367
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 367
    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:372,1
    - 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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:376,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:380,1
    - Dst: BigInt::sig_words
      Src: /src/botan/src/tests/test_bigint.cpp:382,1
    - Dst: BigInt::is_positive
      Src: /src/botan/src/tests/test_bigint.cpp:382,1
    - Dst: BigInt::word_at
      Src: /src/botan/src/tests/test_bigint.cpp:383,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:384,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/tests/test_bigint.cpp:384,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:386,1
    - Dst: Botan::ct_divide_word
      Src: /src/botan/src/tests/test_bigint.cpp:388,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:389,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:390,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:393,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:394,1
    - Dst: Botan::ct_divide
      Src: /src/botan/src/tests/test_bigint.cpp:395,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:396,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:397,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 400
    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::is_positive
    - Test::Result::test_eq
    - Botan::ct_divide_word
    - BigInt::word_at
    - get_req_bn
    - Botan::BigInt::BigInt
    - BigInt::sig_words
    - Botan::ct_divide
    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:411,1
    - 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::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_bigint.cpp:417,1
    - Dst: BigInt::is_zero
      Src: /src/botan/src/tests/test_bigint.cpp:421,1
    - Dst: Botan_Tests::BigInt_DivPow2k_Test::testcase
      Src: /src/botan/src/tests/test_bigint.cpp:425,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 407
    functionDepth: 2
    functionLinenumber: 407
    functionLinenumberEnd: 430
    functionName: Botan_Tests::BigInt_DivPow2k_Test::run
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - BigInt::is_zero
    - Botan_Tests::BitOps_Tests::test_power_of_2
    - Botan_Tests::BigInt_DivPow2k_Test::testcase
    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:434,1
    - Dst: vartime_divide_pow2k
      Src: /src/botan/src/tests/test_bigint.cpp:435,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_bigint.cpp:436,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:438,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - k
    - ' y'
    - ' result'
    argTypes:
    - size_t
    - BigInt
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 440
    functionName: Botan_Tests::BigInt_DivPow2k_Test::testcase
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 3
    functionsReached:
    - ct_divide_pow2k
    - test_eq
    - Botan_Tests::BitOps_Tests::test_power_of_2
    - vartime_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: 447
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 447
    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:452,1
    - 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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:456,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:460,1
    - Dst: BigInt::is_positive
      Src: /src/botan/src/tests/test_bigint.cpp:462,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/tests/test_bigint.cpp:463,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:464,1
    - Dst: auto::reduce
      Src: /src/botan/src/tests/test_bigint.cpp:464,1
    - Dst: Botan::Barrett_Reduction::for_secret_modulus
      Src: /src/botan/src/tests/test_bigint.cpp:466,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:467,1
    - Dst: auto::reduce
      Src: /src/botan/src/tests/test_bigint.cpp:467,1
    - Dst: BigInt::sig_words
      Src: /src/botan/src/tests/test_bigint.cpp:471,1
    - Dst: BigInt::word_at
      Src: /src/botan/src/tests/test_bigint.cpp:472,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:476,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:478,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:480,1
    - Dst: Botan::ct_divide_word
      Src: /src/botan/src/tests/test_bigint.cpp:482,1
    - Dst: BigInt::word_at
      Src: /src/botan/src/tests/test_bigint.cpp:482,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:483,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:486,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:487,1
    - Dst: Botan::ct_divide
      Src: /src/botan/src/tests/test_bigint.cpp:488,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:489,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 492
    functionName: Botan_Tests::BigInt_Mod_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::Barrett_Reduction::for_secret_modulus
    - BigInt::is_positive
    - Botan::Barrett_Reduction::for_public_modulus
    - auto::reduce
    - Test::Result::test_eq
    - Botan::ct_divide_word
    - BigInt::word_at
    - get_req_bn
    - Botan::BigInt::BigInt
    - BigInt::sig_words
    - Botan::ct_divide
    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:505,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_bigint.cpp:510,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_bigint.cpp:512,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_bigint.cpp:514,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:516,1
    - Dst: Botan::BigInt::randomize
      Src: /src/botan/src/tests/test_bigint.cpp:517,1
    - Dst: rng
      Src: /src/botan/src/tests/test_bigint.cpp:517,1
    - Dst: auto::bits
      Src: /src/botan/src/tests/test_bigint.cpp:523,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/tests/test_bigint.cpp:524,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:528,1
    - Dst: Botan::BigInt::randomize
      Src: /src/botan/src/tests/test_bigint.cpp:529,1
    - Dst: rng
      Src: /src/botan/src/tests/test_bigint.cpp:529,1
    - Dst: auto::reduce
      Src: /src/botan/src/tests/test_bigint.cpp:534,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:536,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 541
    functionName: Botan_Tests::Barrett_Redc_Test::run
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - rng
    - Botan::BigInt::from_u64
    - auto::bits
    - Botan::BigInt::randomize
    - Botan::Barrett_Reduction::for_public_modulus
    - auto::reduce
    - Test::Result::test_eq
    - Botan_Tests::BitOps_Tests::test_power_of_2
    - Botan::BigInt::BigInt
    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: 548
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 548
    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:553,1
    - 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: Botan::gcd
      Src: /src/botan/src/tests/test_bigint.cpp:557,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:558,1
    - Dst: Botan::gcd
      Src: /src/botan/src/tests/test_bigint.cpp:560,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 564
    functionName: Botan_Tests::BigInt_GCD_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_eq
    - get_req_bn
    - Botan::gcd
    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: 571
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 571
    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:576,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:577,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_bigint.cpp:578,1
    - Dst: Botan::jacobi
      Src: /src/botan/src/tests/test_bigint.cpp:580,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:583,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:585,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:587,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 591
    functionName: Botan_Tests::BigInt_Jacobi_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - get_req_bn
    - Botan::jacobi
    - get_req_str
    - Test::Result::test_eq
    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: 598
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 598
    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:603,1
    - 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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:607,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 614
    functionName: Botan_Tests::BigInt_Lshift_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - get_req_bn
    - Test::Result::test_eq
    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: 621
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 621
    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:626,1
    - 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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:630,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 637
    functionName: Botan_Tests::BigInt_Rshift_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - get_req_bn
    - Test::Result::test_eq
    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:644,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_bigint.cpp:646,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_bigint.cpp:648,1
    - Dst: Botan::BigInt::with_capacity
      Src: /src/botan/src/tests/test_bigint.cpp:650,1
    - Dst: auto::next_byte
      Src: /src/botan/src/tests/test_bigint.cpp:652,1
    - Dst: Botan::BigInt::set_bit
      Src: /src/botan/src/tests/test_bigint.cpp:653,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/tests/test_bigint.cpp:660,1
    - Dst: auto::ct_shift_left
      Src: /src/botan/src/tests/test_bigint.cpp:661,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/tests/test_bigint.cpp:662,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:664,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_bigint.cpp:664,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_bigint.cpp:667,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 642
    functionDepth: 1
    functionLinenumber: 642
    functionLinenumberEnd: 670
    functionName: Botan_Tests::test_const_time_left_shift
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - auto::ct_shift_left
    - Test::Result::end_timer
    - Botan::fmt
    - Botan::CT::poison
    - Botan_Tests::Test::run_long_tests
    - Botan::BigInt::set_bit
    - Test::Result::test_eq
    - Botan::CT::unpoison
    - Botan::BigInt::with_capacity
    - Botan_Tests::Test::new_rng
    - auto::next_byte
    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: 674
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 674
    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:679,1
    - 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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:684,1
    - Dst: Botan::power_mod
      Src: /src/botan/src/tests/test_bigint.cpp:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 676
    functionDepth: 1
    functionLinenumber: 676
    functionLinenumberEnd: 686
    functionName: Botan_Tests::BigInt_Powmod_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - get_req_bn
    - Botan::power_mod
    - Test::Result::test_eq
    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: 693
      start: 693
    functionDepth: 0
    functionLinenumber: 693
    functionLinenumberEnd: 693
    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:697,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:700,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:704,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:704,1
    - Dst: Botan_Tests::BigInt_IsPrime_Test::rng
      Src: /src/botan/src/tests/test_bigint.cpp:704,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 695
    functionDepth: 1
    functionLinenumber: 695
    functionLinenumberEnd: 707
    functionName: Botan_Tests::BigInt_IsPrime_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - Botan_Tests::BigInt_IsPrime_Test::rng
    - Test::Result::test_eq
    - get_req_bn
    - Botan::is_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: 714
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 714
    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:717,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:718,1
    - Dst: Botan::is_perfect_square
      Src: /src/botan/src/tests/test_bigint.cpp:719,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:722,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 716
    functionDepth: 1
    functionLinenumber: 716
    functionLinenumberEnd: 724
    functionName: Botan_Tests::BigInt_IsSquare_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::is_perfect_square
    - get_req_bn
    - Test::Result::test_eq
    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: 731
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 731
    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:736,1
    - 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: Botan::sqrt_modulo_prime
      Src: /src/botan/src/tests/test_bigint.cpp:740,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:742,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:746,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 750
    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_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: 757
      start: 757
    functionDepth: 0
    functionLinenumber: 757
    functionLinenumberEnd: 757
    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:762,1
    - 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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:766,1
    - Dst: Botan::inverse_mod
      Src: /src/botan/src/tests/test_bigint.cpp:766,1
    - Dst: Botan::inverse_mod_general
      Src: /src/botan/src/tests/test_bigint.cpp:769,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_bigint.cpp:770,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:771,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_bigint.cpp:771,1
    - Dst: Test::Result::test_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: Botan_Tests::RFC8448_Session_Manager::retrieve_one
      Src: /src/botan/src/tests/test_bigint.cpp:772,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:774,1
    - Dst: Botan::BigInt::is_zero
      Src: /src/botan/src/tests/test_bigint.cpp:774,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:777,1
    - Dst: rng
      Src: /src/botan/src/tests/test_bigint.cpp:777,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_bigint.cpp:778,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:779,1
    - Dst: Botan::inverse_mod_secret_prime
      Src: /src/botan/src/tests/test_bigint.cpp:779,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:780,1
    - Dst: Botan::inverse_mod_public_prime
      Src: /src/botan/src/tests/test_bigint.cpp:780,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 759
    functionDepth: 1
    functionLinenumber: 759
    functionLinenumberEnd: 785
    functionName: Botan_Tests::BigInt_InvMod_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::is_zero
    - BOTAN_ASSERT_NOMSG
    - rng
    - Botan::inverse_mod_general
    - Botan::inverse_mod
    - Botan::inverse_mod_public_prime
    - auto::has_value
    - Botan_Tests::RFC8448_Session_Manager::retrieve_one
    - Botan::inverse_mod_secret_prime
    - auto::value
    - Test::Result::test_eq
    - Test::Result::confirm
    - get_req_bn
    - Botan::is_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: 792
      start: 792
    functionDepth: 0
    functionLinenumber: 792
    functionLinenumberEnd: 792
    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:797,1
    - Dst: get_req_bn
      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: Botan::BigInt::random_integer
      Src: /src/botan/src/tests/test_bigint.cpp:803,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 794
    functionDepth: 1
    functionLinenumber: 794
    functionLinenumberEnd: 808
    functionName: Botan_Tests::BigInt_Rand_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - get_req_bn
    - Botan::BigInt::random_integer
    - Test::Result::test_eq
    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:816,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/tests/test_bigint.cpp:829,1
    - Dst: Botan::is_lucas_probable_prime
      Src: /src/botan/src/tests/test_bigint.cpp:830,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:831,1
    - Dst: Botan_Tests::Lucas_Primality_Test::rng
      Src: /src/botan/src/tests/test_bigint.cpp:831,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:836,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_bigint.cpp:836,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:838,1
    - Dst: std::set::contains
      Src: /src/botan/src/tests/test_bigint.cpp:838,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 815
    functionDepth: 1
    functionLinenumber: 815
    functionLinenumberEnd: 843
    functionName: Botan_Tests::Lucas_Primality_Test::run
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::is_lucas_probable_prime
    - std::set::contains
    - Botan_Tests::Test::run_long_tests
    - std::set::count
    - Botan_Tests::Lucas_Primality_Test::rng
    - Botan::Barrett_Reduction::for_public_modulus
    - Test::Result::confirm
    - Botan::is_prime
    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:855,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:866,1
    - Dst: rng
      Src: /src/botan/src/tests/test_bigint.cpp:866,1
    - Dst: gcd
      Src: /src/botan/src/tests/test_bigint.cpp:867,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_bigint.cpp:868,1
    - Dst: random_index
      Src: /src/botan/src/tests/test_bigint.cpp:875,1
    - Dst: rng
      Src: /src/botan/src/tests/test_bigint.cpp:875,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_bigint.cpp:875,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: lcm
      Src: /src/botan/src/tests/test_bigint.cpp:885,1
    - Dst: Botan::compute_rsa_secret_exponent
      Src: /src/botan/src/tests/test_bigint.cpp:887,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:891,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::retrieve_one
      Src: /src/botan/src/tests/test_bigint.cpp:891,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 850
    functionDepth: 1
    functionLinenumber: 850
    functionLinenumberEnd: 895
    functionName: Botan_Tests::RSA_Compute_Exp_Test::run
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - rng
    - std::vector::push_back
    - gcd
    - Botan_Tests::RFC8448_Session_Manager::retrieve_one
    - Botan::random_prime
    - Botan::BigInt::from_u64
    - Test::Result::test_eq
    - random_index
    - auto::size
    - Botan::compute_rsa_secret_exponent
    - lcm
    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: 902
      start: 902
    functionDepth: 0
    functionLinenumber: 902
    functionLinenumberEnd: 902
    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:905,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_bigint.cpp:906,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:908,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:909,1
    - Dst: Botan::split_on
      Src: /src/botan/src/tests/test_bigint.cpp:911,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:913,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_bigint.cpp:914,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:917,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:918,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:923,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:924,1
    - Dst: Botan::generate_dsa_primes
      Src: /src/botan/src/tests/test_bigint.cpp:925,1
    - Dst: Botan_Tests::DSA_ParamGen_Test::rng
      Src: /src/botan/src/tests/test_bigint.cpp:925,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:926,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:927,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_bigint.cpp:929,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 904
    functionDepth: 1
    functionLinenumber: 904
    functionLinenumberEnd: 934
    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_Error
    - Test::Result::test_failure
    - Botan::split_on
    - get_req_sz
    - Botan::to_u32bit
    - Test::Result::test_eq
    - std::vector::size
    - get_req_bin
    - get_req_bn
    - Botan::BigInt::BigInt
    - Botan_Tests::DSA_ParamGen_Test::rng
    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:940,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_bigint.cpp:943,1
    - Dst: Botan::BigInt::serialize
      Src: /src/botan/src/tests/test_bigint.cpp:946,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:947,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_bigint.cpp:947,1
    - Dst: Botan::BigInt::serialize
      Src: /src/botan/src/tests/test_bigint.cpp:949,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:950,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_bigint.cpp:950,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_bigint.cpp:952,1
    - Dst: Botan::BigInt::serialize
      Src: /src/botan/src/tests/test_bigint.cpp:952,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_bigint.cpp:955,1
    - Dst: Botan::BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:959,1
    - Dst: Botan::BigInt::binary_encode
      Src: /src/botan/src/tests/test_bigint.cpp:960,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_bigint.cpp:960,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:960,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:961,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_bigint.cpp:961,1
    - Dst: Botan::BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:963,1
    - Dst: Botan::BigInt::binary_encode
      Src: /src/botan/src/tests/test_bigint.cpp:964,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_bigint.cpp:964,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:964,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:965,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_bigint.cpp:965,1
    - Dst: Botan::BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:967,1
    - Dst: Botan::BigInt::binary_encode
      Src: /src/botan/src/tests/test_bigint.cpp:968,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_bigint.cpp:968,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:968,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:969,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_bigint.cpp:969,1
    - Dst: Botan::BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:972,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_bigint.cpp:973,1
    - Dst: Botan::BigInt::binary_encode
      Src: /src/botan/src/tests/test_bigint.cpp:974,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_bigint.cpp:974,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:974,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:975,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_bigint.cpp:975,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_bigint.cpp:977,1
    - Dst: Botan::BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:979,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_bigint.cpp:980,1
    - Dst: Botan::BigInt::binary_encode
      Src: /src/botan/src/tests/test_bigint.cpp:981,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_bigint.cpp:981,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:981,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:982,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_bigint.cpp:984,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 939
    functionDepth: 3
    functionLinenumber: 939
    functionLinenumberEnd: 987
    functionName: Botan_Tests::test_bigint_serialization
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan::hex_decode
    - Botan::BigInt::serialize
    - Botan_Tests::CHECK
    - test_throws
    - auto::randomize
    - std::vector::data
    - Botan::BigInt::bytes
    - Botan_Tests::Test::new_rng
    - std::vector::size
    - Botan::BigInt::binary_encode
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bigint_serialization()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_bigint.cpp:38,1
    - Dst: Botan_Tests::BigInt_Unit_Tests::test_bigint_sizes
      Src: /src/botan/src/tests/test_bigint.cpp:38,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_bigint.cpp:39,1
    - Dst: Botan_Tests::BigInt_Unit_Tests::test_random_prime
      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_encode
      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_bigint_io
      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_get_substring
      Src: /src/botan/src/tests/test_bigint.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 45
    functionName: Botan_Tests::BigInt_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::BigInt_Unit_Tests::test_get_substring
    - std::vector::push_back
    - Botan_Tests::BigInt_Unit_Tests::test_bigint_sizes
    - Botan_Tests::BigInt_Unit_Tests::test_bigint_io
    - Botan_Tests::BigInt_Unit_Tests::test_random_prime
    - 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:54,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:59,1
    - Dst: BigInt::bits
      Src: /src/botan/src/tests/test_bigint.cpp:59,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:60,1
    - Dst: BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:61,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_bigint.cpp:64,1
    - Dst: BigInt::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:64,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_bigint.cpp:64,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_bigint.cpp:66,1
    - Dst: BigInt::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:67,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_bigint.cpp:67,1
    - Dst: BigInt::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:70,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_bigint.cpp:71,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_bigint.cpp:73,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 82
    functionName: Botan_Tests::BigInt_Unit_Tests::test_bigint_sizes
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 4
    functionsReached:
    - BigInt::bytes
    - BigInt::set_bit
    - BigInt::bits
    - static_cast<uint32_t>
    - BigInt::to_u32bit
    - Test::Result::test_failure
    - Test::Result::test_is_eq
    - Test::Result::test_eq
    - Test::Result::test_success
    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:87,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_bigint.cpp:89,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:90,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_bigint.cpp:91,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:92,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_bigint.cpp:93,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:94,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:97,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:98,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:100,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:101,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:103,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:104,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:107,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:108,1
    - Dst: BigInt::bits
      Src: /src/botan/src/tests/test_bigint.cpp:108,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:109,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:109,1
    - Dst: Botan::random_safe_prime
      Src: /src/botan/src/tests/test_bigint.cpp:113,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:114,1
    - Dst: BigInt::bits
      Src: /src/botan/src/tests/test_bigint.cpp:114,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:115,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:115,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:116,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:116,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 119
    functionName: Botan_Tests::BigInt_Unit_Tests::test_random_prime
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 4
    functionsReached:
    - Test::Result::test_throws
    - BigInt::bits
    - Botan::random_safe_prime
    - Botan::random_prime
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan_Tests::Test::new_rng
    - Botan::is_prime
    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:124,1
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/tests/test_bigint.cpp:125,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_bigint.cpp:127,1
    - Dst: auto::serialize
      Src: /src/botan/src/tests/test_bigint.cpp:128,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_bigint.cpp:129,1
    - Dst: Botan::BigInt::encode_fixed_length_int_pair
      Src: /src/botan/src/tests/test_bigint.cpp:131,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:132,1
    - Dst: auto::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:134,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_bigint.cpp:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 141
    functionName: Botan_Tests::BigInt_Unit_Tests::test_encode
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 4
    functionsReached:
    - auto::bytes
    - auto::serialize
    - Test::Result::test_failure
    - Botan::concat
    - Botan::BigInt::from_u64
    - Test::Result::test_eq
    - Botan::BigInt::encode_fixed_length_int_pair
    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:148,1
    - Dst: Botan::BigInt::get_substring
      Src: /src/botan/src/tests/test_bigint.cpp:154,1
    - Dst: Botan::BigInt::mask_bits
      Src: /src/botan/src/tests/test_bigint.cpp:157,1
    - Dst: Botan::BigInt::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:159,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 166
    functionName: Botan_Tests::BigInt_Unit_Tests::test_get_substring
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 4
    functionsReached:
    - Botan::BigInt::get_substring
    - Botan::BigInt::mask_bits
    - Test::Result::test_eq
    - Botan_Tests::Test::new_rng
    - Botan::BigInt::to_u32bit
    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:171,1
    - 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::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:178,1
    - Dst: std::istringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:181,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:183,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:193,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:193,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:195,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:197,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:197,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:199,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:201,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:201,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:203,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:205,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_bigint.cpp:205,1
    - Dst: check_bigint_formatting
      Src: /src/botan/src/tests/test_bigint.cpp:208,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:208,1
    - Dst: check_bigint_formatting
      Src: /src/botan/src/tests/test_bigint.cpp:209,1
    - Dst: Botan::BigInt::from_s32
      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
      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: Test::Result::test_throws
      Src: /src/botan/src/tests/test_bigint.cpp:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 221
    functionName: Botan_Tests::BigInt_Unit_Tests::test_bigint_io
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 4
    functionsReached:
    - Botan::BigInt
    - Test::Result::test_throws
    - std::ostringstream::str
    - Botan::BigInt::from_s32
    - Test::Result::test_eq
    - std::istringstream::str
    - check_bigint_formatting
    - 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: 228
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 228
    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:233,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:234,1
    - Dst: get_req_bool
      Src: /src/botan/src/tests/test_bigint.cpp:235,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:238,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:240,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:243,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:245,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:248,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:251,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:253,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_bigint.cpp:256,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - ' op'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 260
    functionName: Botan_Tests::BigInt_Cmp_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - get_req_bn
    - get_req_bool
    - Test::Result::confirm
    - Test_Error
    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: 267
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 267
    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:274,1
    - 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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:278,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:279,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:283,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 290
    functionName: Botan_Tests::BigInt_Add_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - get_req_bn
    - Test::Result::test_eq
    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: 297
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 297
    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:302,1
    - 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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:306,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 313
    functionName: Botan_Tests::BigInt_Sub_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - get_req_bn
    - Test::Result::test_eq
    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: 320
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 320
    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:325,1
    - 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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:329,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:330,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:334,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 341
    functionName: Botan_Tests::BigInt_Mul_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - get_req_bn
    - Test::Result::test_eq
    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: 348
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 348
    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:353,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:354,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:356,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:357,1
    - Dst: square
      Src: /src/botan/src/tests/test_bigint.cpp:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 360
    functionName: Botan_Tests::BigInt_Sqr_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - get_req_bn
    - square
    - Test::Result::test_eq
    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: 367
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 367
    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:372,1
    - 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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:376,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:380,1
    - Dst: BigInt::sig_words
      Src: /src/botan/src/tests/test_bigint.cpp:382,1
    - Dst: BigInt::is_positive
      Src: /src/botan/src/tests/test_bigint.cpp:382,1
    - Dst: BigInt::word_at
      Src: /src/botan/src/tests/test_bigint.cpp:383,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:384,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/tests/test_bigint.cpp:384,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:386,1
    - Dst: Botan::ct_divide_word
      Src: /src/botan/src/tests/test_bigint.cpp:388,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:389,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:390,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:393,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:394,1
    - Dst: Botan::ct_divide
      Src: /src/botan/src/tests/test_bigint.cpp:395,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:396,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:397,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 400
    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::is_positive
    - Test::Result::test_eq
    - Botan::ct_divide_word
    - BigInt::word_at
    - get_req_bn
    - Botan::BigInt::BigInt
    - BigInt::sig_words
    - Botan::ct_divide
    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:411,1
    - 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::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_bigint.cpp:417,1
    - Dst: BigInt::is_zero
      Src: /src/botan/src/tests/test_bigint.cpp:421,1
    - Dst: Botan_Tests::BigInt_DivPow2k_Test::testcase
      Src: /src/botan/src/tests/test_bigint.cpp:425,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 407
    functionDepth: 2
    functionLinenumber: 407
    functionLinenumberEnd: 430
    functionName: Botan_Tests::BigInt_DivPow2k_Test::run
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - BigInt::is_zero
    - Botan_Tests::BitOps_Tests::test_power_of_2
    - Botan_Tests::BigInt_DivPow2k_Test::testcase
    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:434,1
    - Dst: vartime_divide_pow2k
      Src: /src/botan/src/tests/test_bigint.cpp:435,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_bigint.cpp:436,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:438,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:439,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - k
    - ' y'
    - ' result'
    argTypes:
    - size_t
    - BigInt
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 440
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 440
    functionName: Botan_Tests::BigInt_DivPow2k_Test::testcase
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 4
    functionsReached:
    - ct_divide_pow2k
    - test_eq
    - Botan_Tests::BitOps_Tests::test_power_of_2
    - vartime_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: 447
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 447
    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:452,1
    - 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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:456,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:460,1
    - Dst: BigInt::is_positive
      Src: /src/botan/src/tests/test_bigint.cpp:462,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/tests/test_bigint.cpp:463,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:464,1
    - Dst: auto::reduce
      Src: /src/botan/src/tests/test_bigint.cpp:464,1
    - Dst: Botan::Barrett_Reduction::for_secret_modulus
      Src: /src/botan/src/tests/test_bigint.cpp:466,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:467,1
    - Dst: auto::reduce
      Src: /src/botan/src/tests/test_bigint.cpp:467,1
    - Dst: BigInt::sig_words
      Src: /src/botan/src/tests/test_bigint.cpp:471,1
    - Dst: BigInt::word_at
      Src: /src/botan/src/tests/test_bigint.cpp:472,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:476,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:478,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:480,1
    - Dst: Botan::ct_divide_word
      Src: /src/botan/src/tests/test_bigint.cpp:482,1
    - Dst: BigInt::word_at
      Src: /src/botan/src/tests/test_bigint.cpp:482,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:483,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:486,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:487,1
    - Dst: Botan::ct_divide
      Src: /src/botan/src/tests/test_bigint.cpp:488,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:489,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 492
    functionName: Botan_Tests::BigInt_Mod_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::Barrett_Reduction::for_secret_modulus
    - BigInt::is_positive
    - Botan::Barrett_Reduction::for_public_modulus
    - auto::reduce
    - Test::Result::test_eq
    - Botan::ct_divide_word
    - BigInt::word_at
    - get_req_bn
    - Botan::BigInt::BigInt
    - BigInt::sig_words
    - Botan::ct_divide
    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:505,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_bigint.cpp:510,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_bigint.cpp:512,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/tests/test_bigint.cpp:514,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:516,1
    - Dst: Botan::BigInt::randomize
      Src: /src/botan/src/tests/test_bigint.cpp:517,1
    - Dst: rng
      Src: /src/botan/src/tests/test_bigint.cpp:517,1
    - Dst: auto::bits
      Src: /src/botan/src/tests/test_bigint.cpp:523,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/tests/test_bigint.cpp:524,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:528,1
    - Dst: Botan::BigInt::randomize
      Src: /src/botan/src/tests/test_bigint.cpp:529,1
    - Dst: rng
      Src: /src/botan/src/tests/test_bigint.cpp:529,1
    - Dst: auto::reduce
      Src: /src/botan/src/tests/test_bigint.cpp:534,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:536,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 499
    functionDepth: 1
    functionLinenumber: 499
    functionLinenumberEnd: 541
    functionName: Botan_Tests::Barrett_Redc_Test::run
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - rng
    - Botan::BigInt::from_u64
    - auto::bits
    - Botan::BigInt::randomize
    - Botan::Barrett_Reduction::for_public_modulus
    - auto::reduce
    - Test::Result::test_eq
    - Botan_Tests::BitOps_Tests::test_power_of_2
    - Botan::BigInt::BigInt
    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: 548
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 548
    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:553,1
    - 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: Botan::gcd
      Src: /src/botan/src/tests/test_bigint.cpp:557,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:558,1
    - Dst: Botan::gcd
      Src: /src/botan/src/tests/test_bigint.cpp:560,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 564
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 564
    functionName: Botan_Tests::BigInt_GCD_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_eq
    - get_req_bn
    - Botan::gcd
    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: 571
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 571
    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:576,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:577,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_bigint.cpp:578,1
    - Dst: Botan::jacobi
      Src: /src/botan/src/tests/test_bigint.cpp:580,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:583,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:585,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:587,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 591
    functionName: Botan_Tests::BigInt_Jacobi_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - get_req_bn
    - Botan::jacobi
    - get_req_str
    - Test::Result::test_eq
    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: 598
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 598
    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:603,1
    - 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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:607,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 614
    functionName: Botan_Tests::BigInt_Lshift_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - get_req_bn
    - Test::Result::test_eq
    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: 621
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 621
    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:626,1
    - 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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:630,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 637
    functionName: Botan_Tests::BigInt_Rshift_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - get_req_bn
    - Test::Result::test_eq
    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:644,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_bigint.cpp:646,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_bigint.cpp:648,1
    - Dst: Botan::BigInt::with_capacity
      Src: /src/botan/src/tests/test_bigint.cpp:650,1
    - Dst: auto::next_byte
      Src: /src/botan/src/tests/test_bigint.cpp:652,1
    - Dst: Botan::BigInt::set_bit
      Src: /src/botan/src/tests/test_bigint.cpp:653,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/tests/test_bigint.cpp:660,1
    - Dst: auto::ct_shift_left
      Src: /src/botan/src/tests/test_bigint.cpp:661,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/tests/test_bigint.cpp:662,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:664,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_bigint.cpp:664,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_bigint.cpp:667,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 642
    functionDepth: 1
    functionLinenumber: 642
    functionLinenumberEnd: 670
    functionName: Botan_Tests::test_const_time_left_shift
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - auto::ct_shift_left
    - Test::Result::end_timer
    - Botan::fmt
    - Botan::CT::poison
    - Botan_Tests::Test::run_long_tests
    - Botan::BigInt::set_bit
    - Test::Result::test_eq
    - Botan::CT::unpoison
    - Botan::BigInt::with_capacity
    - Botan_Tests::Test::new_rng
    - auto::next_byte
    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: 674
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 674
    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:679,1
    - 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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:684,1
    - Dst: Botan::power_mod
      Src: /src/botan/src/tests/test_bigint.cpp:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 676
    functionDepth: 1
    functionLinenumber: 676
    functionLinenumberEnd: 686
    functionName: Botan_Tests::BigInt_Powmod_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - get_req_bn
    - Botan::power_mod
    - Test::Result::test_eq
    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: 693
      start: 693
    functionDepth: 0
    functionLinenumber: 693
    functionLinenumberEnd: 693
    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:697,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:700,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:704,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:704,1
    - Dst: Botan_Tests::BigInt_IsPrime_Test::rng
      Src: /src/botan/src/tests/test_bigint.cpp:704,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 695
    functionDepth: 1
    functionLinenumber: 695
    functionLinenumberEnd: 707
    functionName: Botan_Tests::BigInt_IsPrime_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Test_Error
    - Botan_Tests::BigInt_IsPrime_Test::rng
    - Test::Result::test_eq
    - get_req_bn
    - Botan::is_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: 714
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 714
    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:717,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:718,1
    - Dst: Botan::is_perfect_square
      Src: /src/botan/src/tests/test_bigint.cpp:719,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:722,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 716
    functionDepth: 1
    functionLinenumber: 716
    functionLinenumberEnd: 724
    functionName: Botan_Tests::BigInt_IsSquare_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::is_perfect_square
    - get_req_bn
    - Test::Result::test_eq
    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: 731
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 731
    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:736,1
    - 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: Botan::sqrt_modulo_prime
      Src: /src/botan/src/tests/test_bigint.cpp:740,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:742,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:746,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 750
    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_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: 757
      start: 757
    functionDepth: 0
    functionLinenumber: 757
    functionLinenumberEnd: 757
    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:762,1
    - 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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:766,1
    - Dst: Botan::inverse_mod
      Src: /src/botan/src/tests/test_bigint.cpp:766,1
    - Dst: Botan::inverse_mod_general
      Src: /src/botan/src/tests/test_bigint.cpp:769,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_bigint.cpp:770,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:771,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_bigint.cpp:771,1
    - Dst: Test::Result::test_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: Botan_Tests::RFC8448_Session_Manager::retrieve_one
      Src: /src/botan/src/tests/test_bigint.cpp:772,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:774,1
    - Dst: Botan::BigInt::is_zero
      Src: /src/botan/src/tests/test_bigint.cpp:774,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:777,1
    - Dst: rng
      Src: /src/botan/src/tests/test_bigint.cpp:777,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_bigint.cpp:778,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:779,1
    - Dst: Botan::inverse_mod_secret_prime
      Src: /src/botan/src/tests/test_bigint.cpp:779,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:780,1
    - Dst: Botan::inverse_mod_public_prime
      Src: /src/botan/src/tests/test_bigint.cpp:780,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 759
    functionDepth: 1
    functionLinenumber: 759
    functionLinenumberEnd: 785
    functionName: Botan_Tests::BigInt_InvMod_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::is_zero
    - BOTAN_ASSERT_NOMSG
    - rng
    - Botan::inverse_mod_general
    - Botan::inverse_mod
    - Botan::inverse_mod_public_prime
    - auto::has_value
    - Botan_Tests::RFC8448_Session_Manager::retrieve_one
    - Botan::inverse_mod_secret_prime
    - auto::value
    - Test::Result::test_eq
    - Test::Result::confirm
    - get_req_bn
    - Botan::is_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: 792
      start: 792
    functionDepth: 0
    functionLinenumber: 792
    functionLinenumberEnd: 792
    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:797,1
    - Dst: get_req_bn
      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: Botan::BigInt::random_integer
      Src: /src/botan/src/tests/test_bigint.cpp:803,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 794
    functionDepth: 1
    functionLinenumber: 794
    functionLinenumberEnd: 808
    functionName: Botan_Tests::BigInt_Rand_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - get_req_bn
    - Botan::BigInt::random_integer
    - Test::Result::test_eq
    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:816,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/tests/test_bigint.cpp:829,1
    - Dst: Botan::is_lucas_probable_prime
      Src: /src/botan/src/tests/test_bigint.cpp:830,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/tests/test_bigint.cpp:831,1
    - Dst: Botan_Tests::Lucas_Primality_Test::rng
      Src: /src/botan/src/tests/test_bigint.cpp:831,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:836,1
    - Dst: std::set::count
      Src: /src/botan/src/tests/test_bigint.cpp:836,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_bigint.cpp:838,1
    - Dst: std::set::contains
      Src: /src/botan/src/tests/test_bigint.cpp:838,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 815
    functionDepth: 1
    functionLinenumber: 815
    functionLinenumberEnd: 843
    functionName: Botan_Tests::Lucas_Primality_Test::run
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - Botan::is_lucas_probable_prime
    - std::set::contains
    - Botan_Tests::Test::run_long_tests
    - std::set::count
    - Botan_Tests::Lucas_Primality_Test::rng
    - Botan::Barrett_Reduction::for_public_modulus
    - Test::Result::confirm
    - Botan::is_prime
    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:855,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/tests/test_bigint.cpp:866,1
    - Dst: rng
      Src: /src/botan/src/tests/test_bigint.cpp:866,1
    - Dst: gcd
      Src: /src/botan/src/tests/test_bigint.cpp:867,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_bigint.cpp:868,1
    - Dst: random_index
      Src: /src/botan/src/tests/test_bigint.cpp:875,1
    - Dst: rng
      Src: /src/botan/src/tests/test_bigint.cpp:875,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_bigint.cpp:875,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: lcm
      Src: /src/botan/src/tests/test_bigint.cpp:885,1
    - Dst: Botan::compute_rsa_secret_exponent
      Src: /src/botan/src/tests/test_bigint.cpp:887,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:891,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::retrieve_one
      Src: /src/botan/src/tests/test_bigint.cpp:891,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 850
    functionDepth: 1
    functionLinenumber: 850
    functionLinenumberEnd: 895
    functionName: Botan_Tests::RSA_Compute_Exp_Test::run
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - rng
    - std::vector::push_back
    - gcd
    - Botan_Tests::RFC8448_Session_Manager::retrieve_one
    - Botan::random_prime
    - Botan::BigInt::from_u64
    - Test::Result::test_eq
    - random_index
    - auto::size
    - Botan::compute_rsa_secret_exponent
    - lcm
    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: 902
      start: 902
    functionDepth: 0
    functionLinenumber: 902
    functionLinenumberEnd: 902
    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:905,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_bigint.cpp:906,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:908,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_bigint.cpp:909,1
    - Dst: Botan::split_on
      Src: /src/botan/src/tests/test_bigint.cpp:911,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:913,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_bigint.cpp:914,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:917,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/tests/test_bigint.cpp:918,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:923,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/tests/test_bigint.cpp:924,1
    - Dst: Botan::generate_dsa_primes
      Src: /src/botan/src/tests/test_bigint.cpp:925,1
    - Dst: Botan_Tests::DSA_ParamGen_Test::rng
      Src: /src/botan/src/tests/test_bigint.cpp:925,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:926,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:927,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_bigint.cpp:929,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 904
    functionDepth: 1
    functionLinenumber: 904
    functionLinenumberEnd: 934
    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_Error
    - Test::Result::test_failure
    - Botan::split_on
    - get_req_sz
    - Botan::to_u32bit
    - Test::Result::test_eq
    - std::vector::size
    - get_req_bin
    - get_req_bn
    - Botan::BigInt::BigInt
    - Botan_Tests::DSA_ParamGen_Test::rng
    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:940,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_bigint.cpp:943,1
    - Dst: Botan::BigInt::serialize
      Src: /src/botan/src/tests/test_bigint.cpp:946,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:947,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_bigint.cpp:947,1
    - Dst: Botan::BigInt::serialize
      Src: /src/botan/src/tests/test_bigint.cpp:949,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:950,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_bigint.cpp:950,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_bigint.cpp:952,1
    - Dst: Botan::BigInt::serialize
      Src: /src/botan/src/tests/test_bigint.cpp:952,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_bigint.cpp:955,1
    - Dst: Botan::BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:959,1
    - Dst: Botan::BigInt::binary_encode
      Src: /src/botan/src/tests/test_bigint.cpp:960,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_bigint.cpp:960,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:960,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:961,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_bigint.cpp:961,1
    - Dst: Botan::BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:963,1
    - Dst: Botan::BigInt::binary_encode
      Src: /src/botan/src/tests/test_bigint.cpp:964,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_bigint.cpp:964,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:964,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:965,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_bigint.cpp:965,1
    - Dst: Botan::BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:967,1
    - Dst: Botan::BigInt::binary_encode
      Src: /src/botan/src/tests/test_bigint.cpp:968,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_bigint.cpp:968,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:968,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:969,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_bigint.cpp:969,1
    - Dst: Botan::BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:972,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_bigint.cpp:973,1
    - Dst: Botan::BigInt::binary_encode
      Src: /src/botan/src/tests/test_bigint.cpp:974,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_bigint.cpp:974,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:974,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:975,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_bigint.cpp:975,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_bigint.cpp:977,1
    - Dst: Botan::BigInt::bytes
      Src: /src/botan/src/tests/test_bigint.cpp:979,1
    - Dst: auto::randomize
      Src: /src/botan/src/tests/test_bigint.cpp:980,1
    - Dst: Botan::BigInt::binary_encode
      Src: /src/botan/src/tests/test_bigint.cpp:981,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_bigint.cpp:981,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_bigint.cpp:981,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_bigint.cpp:982,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_bigint.cpp:984,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 939
    functionDepth: 3
    functionLinenumber: 939
    functionLinenumberEnd: 987
    functionName: Botan_Tests::test_bigint_serialization
    functionSourceFile: /src/botan/src/tests/test_bigint.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan::hex_decode
    - Botan::BigInt::serialize
    - Botan_Tests::CHECK
    - test_throws
    - auto::randomize
    - std::vector::data
    - Botan::BigInt::bytes
    - Botan_Tests::Test::new_rng
    - std::vector::size
    - Botan::BigInt::binary_encode
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bigint_serialization()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::load_le<size_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:29,1
    - Dst: random_array
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:29,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: 31
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 31
    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:37,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:40,1
    - Dst: Botan_Tests::rand_in_range
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:41,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:41,1
    - Dst: std::swap
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:42,1
    - Dst: std::iota
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:47,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:47,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:47,1
    - Dst: shuffle
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:48,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:49,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: 51
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 51
    functionName: Botan_Tests::rand_indices
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - Botan_Tests::rand_in_range
    - std::swap
    - size
    - std::vector::end
    - std::vector::resize
    - shuffle
    - std::iota
    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:55,1
    - Dst: Botan_Tests::rand_in_range
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:56,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:56,1
    - Dst: Botan_Tests::rand_indices
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:57,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:57,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:59,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: Botan_Tests::rnd_bitvector_with_rnd_pois
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::rand_in_range
    - auto::end
    - Botan_Tests::rand_indices
    - Botan::bitvector::size
    - auto::begin
    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: 69
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 69
    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:73,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:76,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:76,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:77,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:77,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:80,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:83,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:83,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:84,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:84,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:86,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:86,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:90,1
    - Dst: Botan_Tests::rnd_bitvector_with_rnd_pois
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:92,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:95,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:96,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:98,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:101,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:102,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:102,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:102,1
    - Dst: contains
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:102,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:106,1
    - Dst: Botan_Tests::rnd_bitvector_with_rnd_pois
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:108,1
    - Dst: set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:110,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:114,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:115,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:117,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:120,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:121,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:121,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:121,1
    - Dst: contains
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:121,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:125,1
    - Dst: Botan_Tests::rnd_bitvector_with_rnd_pois
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:127,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:129,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:130,1
    - Dst: begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:130,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:130,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:130,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:131,1
    - Dst: Botan::bitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:133,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:135,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:136,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:136,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:136,1
    - Dst: contains
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:136,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:140,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:143,1
    - Dst: const_cast<const decltype(bv)&>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:144,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:145,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:145,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:146,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:146,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:147,1
    - Dst: Botan::bitvector::unset
      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::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:148,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:151,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:154,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:154,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:155,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:156,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:158,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:158,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:158,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:162,1
    - Dst: set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:165,1
    - Dst: flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:167,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:170,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:171,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:172,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:173,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:174,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:175,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:178,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:181,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:181,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:185,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:188,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:192,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:194,1
    - Dst: set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:195,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:197,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:199,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:201,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:203,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:205,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:207,1
    - Dst: unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:208,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:210,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:212,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:214,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:216,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:218,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:220,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 112
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 223
    functionName: Botan_Tests::test_bitvector_bitwise_accessors
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - unset
    - Botan::bitvector::flip
    - Botan::bitvector::empty
    - begin
    - Botan_Tests::CHECK
    - Botan_Tests::rnd_bitvector_with_rnd_pois
    - contains
    - Botan::bitvector::at
    - set
    - confirm
    - next_byte
    - flip
    - Botan::bitvector::set
    - template test_throws<Botan::Invalid_Argument>
    - test_no_throw
    - require
    - const_cast<const decltype(bv)&>
    - Botan::fmt
    - Botan::bitvector::unset
    - end
    - std::find
    - Botan::bitvector::size
    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:227,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:230,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:230,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:231,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:231,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:232,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:232,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:235,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:238,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:238,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:239,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:239,1
    - Dst: test_gte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:240,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:240,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:243,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:246,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:246,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:247,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:247,1
    - Dst: Botan::bitvector::reserve
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:249,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:250,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:250,1
    - Dst: test_gte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:251,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:251,1
    - Dst: Botan::bitvector::reserve
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:253,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:254,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:254,1
    - Dst: test_gte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:255,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:255,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:258,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:261,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:261,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:262,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:262,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:264,1
    - Dst: Botan::bitvector::push_back
      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:266,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:267,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:269,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:269,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:270,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:270,1
    - Dst: test_gte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:271,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:271,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:273,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:273,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:274,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:274,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:275,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:275,1
    - Dst: confirm
      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_throws
      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: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:281,1
    - Dst: Botan::bitvector::push_back
      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:285,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:286,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:287,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:288,1
    - Dst: Botan::bitvector::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:288,1
    - Dst: Botan::bitvector::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:290,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:291,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:291,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:292,1
    - Dst: Botan::bitvector::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:292,1
    - Dst: Botan::bitvector::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:294,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:295,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:295,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:296,1
    - Dst: Botan::bitvector::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:296,1
    - Dst: Botan::bitvector::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:298,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:299,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:299,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:300,1
    - Dst: Botan::bitvector::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:300,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:301,1
    - Dst: Botan::bitvector::front
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:301,1
    - Dst: Botan::bitvector::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:303,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:304,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:304,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:306,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:306,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:309,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:316,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:317,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:317,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:319,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:321,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:321,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:324,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:325,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:325,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:327,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:328,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:329,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 71
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 225
    functionDepth: 3
    functionLinenumber: 225
    functionLinenumberEnd: 332
    functionName: Botan_Tests::test_bitvector_capacity
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan_Tests::CHECK
    - Botan::fmt
    - test_throws
    - Botan::bitvector::resize
    - Botan::bitvector::front
    - Botan::bitvector::empty
    - Botan::bitvector::push_back
    - Botan::bitvector::reserve
    - test_gte
    - Botan::bitvector::back
    - Botan::bitvector::at
    - Botan::bitvector::size
    - Botan::bitvector::pop_back
    - Botan::bitvector::capacity
    - confirm
    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:336,1
    - Dst: static_cast<T>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:340,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:340,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:344,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:351,1
    - Dst: Botan_Tests::pattern_generator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:357,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:361,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:361,1
    - Dst: bv_t
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:361,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:361,1
    - Dst: T::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:364,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:365,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:365,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:365,1
    - Dst: Botan_Tests::pattern_generator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:371,1
    - Dst: T::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:372,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:374,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:375,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:375,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:380,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:383,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:383,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:384,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:384,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:385,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:385,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:386,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:386,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:389,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:392,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:393,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:393,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:394,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:395,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:395,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:396,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:397,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:397,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:400,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:403,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:405,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:406,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:406,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:407,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:409,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:410,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:410,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:411,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:414,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:417,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:419,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:420,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:420,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:421,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:423,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:424,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:424,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:425,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:427,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:428,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:428,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:429,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:431,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:432,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:432,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:433,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:435,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:436,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:436,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:437,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:440,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:443,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:445,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:446,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:446,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:447,1
    - Dst: auto::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:449,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:450,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:451,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:455,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:458,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:460,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:461,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:461,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:462,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:464,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:465,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:465,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:466,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:468,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:469,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:469,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:470,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:472,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:473,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:473,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:474,1
    - Dst: auto::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:476,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:477,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:477,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:478,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:480,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:481,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:481,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:482,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:484,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:485,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:485,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:486,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: Botan::bitvector::subvector
      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: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:497,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:499,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:500,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:501,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:502,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:504,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:505,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:506,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:507,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:509,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:510,1
    - Dst: check_bitpattern
      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: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:514,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:514,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:515,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:515,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:516,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:516,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:517,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:517,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:520,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:523,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:525,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:526,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:527,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:528,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:530,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:531,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:532,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:533,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:535,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:536,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:537,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:538,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:540,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:541,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:542,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:543,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:546,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:549,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:551,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:552,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:553,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:553,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:554,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:556,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:557,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:558,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:558,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:559,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:561,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:562,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:563,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:563,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:564,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:566,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:567,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:568,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:568,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:569,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:571,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:572,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:573,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:573,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:574,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:576,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:576,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:577,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:577,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:578,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:578,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:579,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:579,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:582,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:585,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:587,1
    - Dst: check_bitpattern_with_zero_region
      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:589,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:589,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:590,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:592,1
    - Dst: check_bitpattern_with_zero_region
      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:594,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:594,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:595,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:597,1
    - Dst: check_bitpattern_with_zero_region
      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:599,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:599,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:600,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:602,1
    - Dst: check_bitpattern_with_zero_region
      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:604,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:604,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:605,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:607,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:608,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:609,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:609,1
    - Dst: check_bitpattern
      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:612,1
    - Dst: check_bitpattern_with_zero_region
      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:614,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:614,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:615,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:617,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:618,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:619,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:619,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:620,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 183
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 334
    functionDepth: 3
    functionLinenumber: 334
    functionLinenumberEnd: 623
    functionName: Botan_Tests::test_bitvector_subvector
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - auto::subvector
    - test_eq
    - test_throws
    - auto::size
    - Botan_Tests::CHECK
    - bv_t
    - Botan_Tests::pattern_generator
    - confirm
    - static_cast<T>
    - T::size
    - make_bitpattern
    - template test_throws<Botan::Invalid_Argument>
    - next
    - auto::resize
    - Botan::fmt
    - check_bitpattern_with_zero_region
    - Botan::bitvector::subvector_replace
    - check_bitpattern
    - bitpattern_at
    - Botan::bitvector::subvector
    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:627,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:629,1
    - Dst: Botan_Tests::pattern_generator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:634,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:635,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:636,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:636,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:636,1
    - Dst: Botan_Tests::pattern_generator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:641,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:642,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:643,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:643,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:643,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:648,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:651,1
    - Dst: Botan::bitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:653,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:654,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:657,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:659,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:661,1
    - Dst: Botan::bitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:663,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:664,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:667,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:671,1
    - Dst: Botan::bitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:672,1
    - Dst: check_flipped_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:673,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:676,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:678,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:679,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:680,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:684,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:688,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:689,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:690,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:691,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:693,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:696,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:698,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:702,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:706,1
    - Dst: Botan::bitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:706,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:707,1
    - Dst: Botan::bitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:707,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:708,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:708,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:709,1
    - Dst: Botan::bitvector::none
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:709,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:710,1
    - Dst: Botan::bitvector::any
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:710,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:711,1
    - Dst: Botan::bitvector::all
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:711,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:713,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:714,1
    - Dst: Botan::bitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:714,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:715,1
    - Dst: Botan::bitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:715,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:716,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:716,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:717,1
    - Dst: Botan::bitvector::none
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:717,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:718,1
    - Dst: Botan::bitvector::any
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:718,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:719,1
    - Dst: Botan::bitvector::all
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:719,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:721,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:722,1
    - Dst: Botan::bitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:722,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:723,1
    - Dst: Botan::bitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:723,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:724,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:724,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:725,1
    - Dst: Botan::bitvector::none
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:725,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:726,1
    - Dst: Botan::bitvector::any
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:726,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:727,1
    - Dst: Botan::bitvector::all
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:727,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:729,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:730,1
    - Dst: Botan::bitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:730,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:731,1
    - Dst: Botan::bitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:731,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:732,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:732,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:733,1
    - Dst: Botan::bitvector::none
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:733,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:734,1
    - Dst: Botan::bitvector::any
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:734,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:735,1
    - Dst: Botan::bitvector::all
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:735,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:737,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:738,1
    - Dst: Botan::bitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:738,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:739,1
    - Dst: Botan::bitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:739,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:740,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:740,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:741,1
    - Dst: Botan::bitvector::none
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:741,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:742,1
    - Dst: Botan::bitvector::any
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:742,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:743,1
    - Dst: Botan::bitvector::all
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:743,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:746,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:748,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:749,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:751,1
    - Dst: Botan::bitvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:751,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:752,1
    - Dst: Botan::bitvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:752,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:755,1
    - Dst: template as<size_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:760,1
    - Dst: Botan::bitvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:766,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:766,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:767,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:767,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:768,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:768,1
    - Dst: naive_count
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:768,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:770,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:771,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:771,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:772,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:772,1
    - Dst: naive_count
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:772,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:774,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:775,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:775,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:776,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:776,1
    - Dst: naive_count
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:776,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:778,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:779,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:779,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:780,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:780,1
    - Dst: naive_count
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:780,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:782,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:783,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:783,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:784,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:784,1
    - Dst: naive_count
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:784,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 100
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 625
    functionDepth: 3
    functionLinenumber: 625
    functionLinenumberEnd: 787
    functionName: Botan_Tests::test_bitvector_global_modifiers_and_predicates
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan::hex_decode
    - naive_count
    - Botan::bitvector::resize
    - Botan::bitvector::flip
    - Botan::bitvector::all_vartime
    - auto::pop_back
    - Botan::bitvector::none_vartime
    - Botan_Tests::CHECK
    - auto::hamming_weight
    - Botan::bitvector::push_back
    - Botan::bitvector::all
    - Botan_Tests::pattern_generator
    - check_flipped_bitpattern
    - confirm
    - make_bitpattern
    - Botan::bitvector::set
    - next
    - Botan::bitvector
    - template as<size_t>
    - Botan::fmt
    - Botan::bitvector::none
    - Botan::bitvector::any_vartime
    - size
    - Botan::bitvector::any
    - check_bitpattern
    - Botan::bitvector::unset
    - Botan::bitvector::size
    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:791,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:792,1
    - Dst: begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:792,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:792,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:792,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:793,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:793,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:799,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:805,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:809,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:812,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:814,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:816,1
    - Dst: Botan::bitvector::equals_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:816,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:817,1
    - Dst: Botan::bitvector::equals
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:817,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:819,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:820,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:822,1
    - Dst: Botan::bitvector::equals_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:822,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:823,1
    - Dst: Botan::bitvector::equals
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:823,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:826,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:829,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:831,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:833,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:836,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:839,1
    - Dst: is_standard_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:841,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: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:851,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:854,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:857,1
    - Dst: is_standard_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:859,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:862,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:865,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:867,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:869,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:872,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:875,1
    - Dst: is_standard_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:877,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:880,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:883,1
    - Dst: Botan::secure_bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:885,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:887,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:890,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:891,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:894,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:895,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:898,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:899,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:902,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:903,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:906,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:907,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:910,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:911,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 789
    functionDepth: 3
    functionLinenumber: 789
    functionLinenumberEnd: 914
    functionName: Botan_Tests::test_bitvector_binary_operators
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - begin
    - test_eq
    - Botan::secure_bitvector::set
    - Botan::fmt
    - Botan_Tests::CHECK
    - check_set
    - is_secure_allocator
    - size
    - Botan::bitvector::set
    - Botan::bitvector::equals_vartime
    - Botan::bitvector::equals
    - end
    - Botan::bitvector::unset
    - std::find
    - is_standard_allocator
    - confirm
    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:927,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:928,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:928,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:929,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:929,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:930,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:930,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:931,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:931,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:933,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:933,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:933,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:933,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:938,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:941,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:941,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:944,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:944,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:946,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:947,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:947,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:950,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:955,1
    - Dst: Botan::secure_bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:956,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:958,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:960,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:964,1
    - Dst: validate_bytewise
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:967,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:969,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:970,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:970,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:973,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:976,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:976,1
    - Dst: first
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:976,1
    - Dst: validate_bytewise
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:979,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:981,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:982,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:982,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:985,1
    - Dst: Botan::ceil_tobytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:988,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:994,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:994,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:994,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:997,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:999,1
    - Dst: first
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:999,1
    - Dst: std::array::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1000,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1001,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1001,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1004,1
    - Dst: Botan::ceil_tobytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1007,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1010,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1013,1
    - Dst: test_eq_sz
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1015,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 916
    functionDepth: 3
    functionLinenumber: 916
    functionLinenumberEnd: 1018
    functionName: Botan_Tests::test_bitvector_serialization
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - auto::empty
    - static_cast<size_t>
    - test_eq_sz
    - Botan::bitvector::empty
    - Botan::copy_mem
    - first
    - Botan_Tests::CHECK
    - Botan::ceil_tobytes
    - Botan::secure_bitvector::to_bytes
    - std::array::size
    - Botan::bitvector::at
    - confirm
    - Botan::bitvector::set
    - static_cast<uint8_t>
    - std::array::back
    - std::vector::empty
    - require
    - validate_bytewise
    - Botan::bitvector::to_bytes
    - Botan::fmt
    - size
    - Botan::ct_is_equal
    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:1021,1
    - Dst: Botan::CT::Choice::no
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1022,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1025,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1027,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1028,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1032,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1033,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1035,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1036,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1039,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1041,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1042,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1046,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1047,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1049,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1050,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1053,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1055,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1056,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1057,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1058,1
    - Dst: Botan::secure_bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1059,1
    - Dst: Botan::secure_bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1060,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1065,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1066,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1068,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1069,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1020
    functionDepth: 3
    functionLinenumber: 1020
    functionLinenumberEnd: 1072
    functionName: Botan_Tests::test_bitvector_constant_time_operations
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Botan_Tests::CHECK
    - Botan::secure_bitvector::push_back
    - Botan::bitvector::push_back
    - Botan::CT::Choice::yes
    - Botan::bitvector::ct_conditional_xor
    - Botan::CT::Choice::no
    - confirm
    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:1077,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1083,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1085,1
    - Dst: Botan::bitvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1085,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1085,1
    - Dst: Botan_Tests::Test::timestamp
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1090,1
    - Dst: Botan::CT::Choice::from_int
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1092,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1092,1
    - Dst: auto::next_byte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1092,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1093,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1093,1
    - Dst: auto::next_byte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1093,1
    - Dst: Test::Result::set_ns_consumed
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1095,1
    - Dst: Botan_Tests::Test::timestamp
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1095,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1097,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1098,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1098,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1074
    functionDepth: 2
    functionLinenumber: 1074
    functionLinenumberEnd: 1100
    functionName: Botan_Tests::test_bitvector_conditional_xor_workload
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - auto::next_byte
    - Botan::CT::Choice::from_int
    - auto::random_vec
    - std::vector::at
    - static_cast<uint8_t>
    - Test::Result::set_ns_consumed
    - Botan::bitvector
    - Test::Result::confirm
    - Botan_Tests::Test::new_rng
    - Botan_Tests::Test::timestamp
    - std::vector::reserve
    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:1104,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1107,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1111,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1111,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1117,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1117,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1125,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1125,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1128,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1131,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1134,1
    - Dst: Botan::bitvector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1134,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1136,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1136,1
    - Dst: Botan::bitvector::cbegin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1140,1
    - Dst: Botan::bitvector::cend
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1140,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1142,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1142,1
    - Dst: auto::is_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1142,1
    - Dst: Botan::bitvector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1146,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1152,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1152,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1153,1
    - Dst: auto::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1156,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1160,1
    - Dst: Botan::bitvector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1160,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1162,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1162,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1166,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1171,1
    - Dst: std::distance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1171,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1171,1
    - Dst: Botan::bitvector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1171,1
    - Dst: signed_size_t
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1171,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1172,1
    - Dst: std::distance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1172,1
    - Dst: Botan::bitvector::cbegin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1172,1
    - Dst: Botan::bitvector::cend
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1172,1
    - Dst: signed_size_t
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1172,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1174,1
    - Dst: std::advance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1175,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1176,1
    - Dst: std::distance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1176,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1176,1
    - Dst: signed_size_t
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1176,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1179,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1183,1
    - Dst: Botan::bitvector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1183,1
    - Dst: std::distance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1184,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1184,1
    - Dst: auto::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1185,1
    - Dst: std::distance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1187,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1187,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1194,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1194,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1199,1
    - Dst: Botan::secure_bitvector::cbegin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1202,1
    - Dst: Botan::secure_bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1203,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1208,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1209,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1210,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1211,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1212,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1213,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1214,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1215,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1218
      start: 1102
    functionDepth: 3
    functionLinenumber: 1102
    functionLinenumberEnd: 1218
    functionName: Botan_Tests::test_bitvector_iterators
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan::bitvector::all_vartime
    - Botan::bitvector::end
    - Botan_Tests::CHECK
    - Botan::bitvector::cbegin
    - Botan::bitvector::cend
    - Botan::secure_bitvector::begin
    - confirm
    - std::distance
    - auto::is_set
    - auto::flip
    - Botan::bitvector::set
    - auto::set
    - Botan::bitvector::begin
    - signed_size_t
    - Botan::fmt
    - Botan::secure_bitvector::cbegin
    - test_is_eq
    - std::advance
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bitvector_iterators(Botan::RandomNumberGenerator&
      /*rng*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1229,1
    - Dst: TestBitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1229,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1230,1
    - Dst: TestBitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1230,1
    - Dst: TestBitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1233,1
    - Dst: TestBitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1234,1
    - Dst: TestBitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1235,1
    - Dst: TestBitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1236,1
    - Dst: TestBitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1237,1
    - Dst: TestBitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1238,1
    - Dst: TestBitvector::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1239,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1241,1
    - Dst: TestBitvector::front
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1241,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1242,1
    - Dst: TestBitvector::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1242,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1243,1
    - Dst: TestBitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1243,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1244,1
    - Dst: TestBitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1244,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1245,1
    - Dst: TestBitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1245,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1247,1
    - Dst: TestBitvector::has_odd_hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1247,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1251,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1251,1
    - Dst: TestBitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1255,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1259,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1259,1
    - Dst: TestBitvector::as
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1263,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1266,1
    - Dst: auto::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1268,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1269,1
    - Dst: auto::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1271,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1272,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1273,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1273,1
    - Dst: auto::to_string
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1275,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1276,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1279
      start: 1224
    functionDepth: 1
    functionLinenumber: 1224
    functionLinenumberEnd: 1279
    functionName: Botan_Tests::test_bitvector_strongtype_adapter
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - auto::subvector
    - TestBitvector::push_back
    - TestBitvector::any_vartime
    - auto::get
    - TestBitvector::front
    - auto::to_string
    - TestBitvector::has_odd_hamming_weight
    - Test::Result::test_is_eq
    - TestBitvector::pop_back
    - TestBitvector::all_vartime
    - TestBitvector::none_vartime
    - TestBitvector::empty
    - TestBitvector::flip
    - TestBitvector::unset
    - TestBitvector::size
    - Botan::fmt
    - TestBitvector::at
    - TestBitvector::set
    - TestBitvector::as
    - Test::Result::test_eq
    - Test::Result::confirm
    - TestBitvector::back
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bitvector_strongtype_adapter(Botan::RandomNumberGenerator&
      /*rng*/)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::load_le<size_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:29,1
    - Dst: random_array
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:29,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: 31
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 31
    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:37,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:40,1
    - Dst: Botan_Tests::rand_in_range
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:41,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:41,1
    - Dst: std::swap
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:42,1
    - Dst: std::iota
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:47,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:47,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:47,1
    - Dst: shuffle
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:48,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:49,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: 51
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 51
    functionName: Botan_Tests::rand_indices
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 1
    functionsReached:
    - std::vector::begin
    - Botan_Tests::rand_in_range
    - std::swap
    - size
    - std::vector::end
    - std::vector::resize
    - shuffle
    - std::iota
    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:55,1
    - Dst: Botan_Tests::rand_in_range
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:56,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:56,1
    - Dst: Botan_Tests::rand_indices
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:57,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:57,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:59,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: Botan_Tests::rnd_bitvector_with_rnd_pois
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::rand_in_range
    - auto::end
    - Botan_Tests::rand_indices
    - Botan::bitvector::size
    - auto::begin
    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: 69
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 69
    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:73,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:76,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:76,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:77,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:77,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:80,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:83,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:83,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:84,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:84,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:86,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:86,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:90,1
    - Dst: Botan_Tests::rnd_bitvector_with_rnd_pois
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:92,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:95,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:96,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:98,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:101,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:102,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:102,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:102,1
    - Dst: contains
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:102,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:106,1
    - Dst: Botan_Tests::rnd_bitvector_with_rnd_pois
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:108,1
    - Dst: set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:110,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:114,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:115,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:117,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:120,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:121,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:121,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:121,1
    - Dst: contains
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:121,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:125,1
    - Dst: Botan_Tests::rnd_bitvector_with_rnd_pois
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:127,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:129,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:130,1
    - Dst: begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:130,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:130,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:130,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:131,1
    - Dst: Botan::bitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:133,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:135,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:136,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:136,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:136,1
    - Dst: contains
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:136,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:140,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:143,1
    - Dst: const_cast<const decltype(bv)&>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:144,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:145,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:145,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:146,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:146,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:147,1
    - Dst: Botan::bitvector::unset
      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::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:148,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:151,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:154,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:154,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:155,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:156,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:158,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:158,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:158,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:162,1
    - Dst: set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:165,1
    - Dst: flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:167,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:170,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:171,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:172,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:173,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:174,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:175,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:178,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:181,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:181,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:185,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:188,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:192,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:194,1
    - Dst: set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:195,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:197,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:199,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:201,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:203,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:205,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:207,1
    - Dst: unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:208,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:210,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:212,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:214,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:216,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:218,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:220,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 112
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 223
    functionName: Botan_Tests::test_bitvector_bitwise_accessors
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - unset
    - Botan::bitvector::flip
    - Botan::bitvector::empty
    - begin
    - Botan_Tests::CHECK
    - Botan_Tests::rnd_bitvector_with_rnd_pois
    - contains
    - Botan::bitvector::at
    - set
    - confirm
    - next_byte
    - flip
    - Botan::bitvector::set
    - template test_throws<Botan::Invalid_Argument>
    - test_no_throw
    - require
    - const_cast<const decltype(bv)&>
    - Botan::fmt
    - Botan::bitvector::unset
    - end
    - std::find
    - Botan::bitvector::size
    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:227,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:230,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:230,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:231,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:231,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:232,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:232,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:235,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:238,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:238,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:239,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:239,1
    - Dst: test_gte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:240,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:240,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:243,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:246,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:246,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:247,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:247,1
    - Dst: Botan::bitvector::reserve
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:249,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:250,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:250,1
    - Dst: test_gte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:251,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:251,1
    - Dst: Botan::bitvector::reserve
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:253,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:254,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:254,1
    - Dst: test_gte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:255,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:255,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:258,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:261,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:261,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:262,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:262,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:264,1
    - Dst: Botan::bitvector::push_back
      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:266,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:267,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:269,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:269,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:270,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:270,1
    - Dst: test_gte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:271,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:271,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:273,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:273,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:274,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:274,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:275,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:275,1
    - Dst: confirm
      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_throws
      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: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:281,1
    - Dst: Botan::bitvector::push_back
      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:285,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:286,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:287,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:288,1
    - Dst: Botan::bitvector::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:288,1
    - Dst: Botan::bitvector::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:290,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:291,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:291,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:292,1
    - Dst: Botan::bitvector::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:292,1
    - Dst: Botan::bitvector::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:294,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:295,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:295,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:296,1
    - Dst: Botan::bitvector::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:296,1
    - Dst: Botan::bitvector::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:298,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:299,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:299,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:300,1
    - Dst: Botan::bitvector::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:300,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:301,1
    - Dst: Botan::bitvector::front
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:301,1
    - Dst: Botan::bitvector::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:303,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:304,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:304,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:306,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:306,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:309,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:316,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:317,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:317,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:319,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:321,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:321,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:324,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:325,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:325,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:327,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:328,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:329,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 71
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 225
    functionDepth: 3
    functionLinenumber: 225
    functionLinenumberEnd: 332
    functionName: Botan_Tests::test_bitvector_capacity
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan_Tests::CHECK
    - Botan::fmt
    - test_throws
    - Botan::bitvector::resize
    - Botan::bitvector::front
    - Botan::bitvector::empty
    - Botan::bitvector::push_back
    - Botan::bitvector::reserve
    - test_gte
    - Botan::bitvector::back
    - Botan::bitvector::at
    - Botan::bitvector::size
    - Botan::bitvector::pop_back
    - Botan::bitvector::capacity
    - confirm
    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:336,1
    - Dst: static_cast<T>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:340,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:340,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:344,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:351,1
    - Dst: Botan_Tests::pattern_generator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:357,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:361,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:361,1
    - Dst: bv_t
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:361,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:361,1
    - Dst: T::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:364,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:365,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:365,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:365,1
    - Dst: Botan_Tests::pattern_generator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:371,1
    - Dst: T::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:372,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:374,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:375,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:375,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:380,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:383,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:383,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:384,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:384,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:385,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:385,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:386,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:386,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:389,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:392,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:393,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:393,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:394,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:395,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:395,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:396,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:397,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:397,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:400,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:403,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:405,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:406,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:406,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:407,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:409,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:410,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:410,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:411,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:414,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:417,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:419,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:420,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:420,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:421,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:423,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:424,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:424,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:425,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:427,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:428,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:428,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:429,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:431,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:432,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:432,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:433,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:435,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:436,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:436,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:437,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:440,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:443,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:445,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:446,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:446,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:447,1
    - Dst: auto::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:449,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:450,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:451,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:455,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:458,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:460,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:461,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:461,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:462,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:464,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:465,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:465,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:466,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:468,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:469,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:469,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:470,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:472,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:473,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:473,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:474,1
    - Dst: auto::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:476,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:477,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:477,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:478,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:480,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:481,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:481,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:482,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:484,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:485,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:485,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:486,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: Botan::bitvector::subvector
      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: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:497,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:499,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:500,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:501,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:502,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:504,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:505,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:506,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:507,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:509,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:510,1
    - Dst: check_bitpattern
      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: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:514,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:514,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:515,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:515,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:516,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:516,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:517,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:517,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:520,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:523,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:525,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:526,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:527,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:528,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:530,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:531,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:532,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:533,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:535,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:536,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:537,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:538,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:540,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:541,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:542,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:543,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:546,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:549,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:551,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:552,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:553,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:553,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:554,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:556,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:557,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:558,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:558,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:559,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:561,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:562,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:563,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:563,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:564,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:566,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:567,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:568,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:568,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:569,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:571,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:572,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:573,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:573,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:574,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:576,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:576,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:577,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:577,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:578,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:578,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:579,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:579,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:582,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:585,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:587,1
    - Dst: check_bitpattern_with_zero_region
      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:589,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:589,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:590,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:592,1
    - Dst: check_bitpattern_with_zero_region
      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:594,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:594,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:595,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:597,1
    - Dst: check_bitpattern_with_zero_region
      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:599,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:599,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:600,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:602,1
    - Dst: check_bitpattern_with_zero_region
      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:604,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:604,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:605,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:607,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:608,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:609,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:609,1
    - Dst: check_bitpattern
      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:612,1
    - Dst: check_bitpattern_with_zero_region
      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:614,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:614,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:615,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:617,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:618,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:619,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:619,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:620,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 183
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 334
    functionDepth: 3
    functionLinenumber: 334
    functionLinenumberEnd: 623
    functionName: Botan_Tests::test_bitvector_subvector
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - auto::subvector
    - test_eq
    - test_throws
    - auto::size
    - Botan_Tests::CHECK
    - bv_t
    - Botan_Tests::pattern_generator
    - confirm
    - static_cast<T>
    - T::size
    - make_bitpattern
    - template test_throws<Botan::Invalid_Argument>
    - next
    - auto::resize
    - Botan::fmt
    - check_bitpattern_with_zero_region
    - Botan::bitvector::subvector_replace
    - check_bitpattern
    - bitpattern_at
    - Botan::bitvector::subvector
    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:627,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:629,1
    - Dst: Botan_Tests::pattern_generator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:634,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:635,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:636,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:636,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:636,1
    - Dst: Botan_Tests::pattern_generator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:641,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:642,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:643,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:643,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:643,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:648,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:651,1
    - Dst: Botan::bitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:653,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:654,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:657,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:659,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:661,1
    - Dst: Botan::bitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:663,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:664,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:667,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:671,1
    - Dst: Botan::bitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:672,1
    - Dst: check_flipped_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:673,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:676,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:678,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:679,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:680,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:684,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:688,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:689,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:690,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:691,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:693,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:696,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:698,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:702,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:706,1
    - Dst: Botan::bitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:706,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:707,1
    - Dst: Botan::bitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:707,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:708,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:708,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:709,1
    - Dst: Botan::bitvector::none
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:709,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:710,1
    - Dst: Botan::bitvector::any
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:710,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:711,1
    - Dst: Botan::bitvector::all
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:711,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:713,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:714,1
    - Dst: Botan::bitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:714,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:715,1
    - Dst: Botan::bitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:715,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:716,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:716,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:717,1
    - Dst: Botan::bitvector::none
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:717,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:718,1
    - Dst: Botan::bitvector::any
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:718,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:719,1
    - Dst: Botan::bitvector::all
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:719,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:721,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:722,1
    - Dst: Botan::bitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:722,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:723,1
    - Dst: Botan::bitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:723,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:724,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:724,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:725,1
    - Dst: Botan::bitvector::none
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:725,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:726,1
    - Dst: Botan::bitvector::any
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:726,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:727,1
    - Dst: Botan::bitvector::all
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:727,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:729,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:730,1
    - Dst: Botan::bitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:730,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:731,1
    - Dst: Botan::bitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:731,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:732,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:732,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:733,1
    - Dst: Botan::bitvector::none
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:733,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:734,1
    - Dst: Botan::bitvector::any
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:734,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:735,1
    - Dst: Botan::bitvector::all
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:735,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:737,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:738,1
    - Dst: Botan::bitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:738,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:739,1
    - Dst: Botan::bitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:739,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:740,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:740,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:741,1
    - Dst: Botan::bitvector::none
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:741,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:742,1
    - Dst: Botan::bitvector::any
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:742,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:743,1
    - Dst: Botan::bitvector::all
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:743,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:746,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:748,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:749,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:751,1
    - Dst: Botan::bitvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:751,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:752,1
    - Dst: Botan::bitvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:752,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:755,1
    - Dst: template as<size_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:760,1
    - Dst: Botan::bitvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:766,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:766,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:767,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:767,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:768,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:768,1
    - Dst: naive_count
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:768,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:770,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:771,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:771,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:772,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:772,1
    - Dst: naive_count
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:772,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:774,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:775,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:775,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:776,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:776,1
    - Dst: naive_count
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:776,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:778,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:779,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:779,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:780,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:780,1
    - Dst: naive_count
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:780,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:782,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:783,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:783,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:784,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:784,1
    - Dst: naive_count
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:784,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 100
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 625
    functionDepth: 3
    functionLinenumber: 625
    functionLinenumberEnd: 787
    functionName: Botan_Tests::test_bitvector_global_modifiers_and_predicates
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan::hex_decode
    - naive_count
    - Botan::bitvector::resize
    - Botan::bitvector::flip
    - Botan::bitvector::all_vartime
    - auto::pop_back
    - Botan::bitvector::none_vartime
    - Botan_Tests::CHECK
    - auto::hamming_weight
    - Botan::bitvector::push_back
    - Botan::bitvector::all
    - Botan_Tests::pattern_generator
    - check_flipped_bitpattern
    - confirm
    - make_bitpattern
    - Botan::bitvector::set
    - next
    - Botan::bitvector
    - template as<size_t>
    - Botan::fmt
    - Botan::bitvector::none
    - Botan::bitvector::any_vartime
    - size
    - Botan::bitvector::any
    - check_bitpattern
    - Botan::bitvector::unset
    - Botan::bitvector::size
    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:791,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:792,1
    - Dst: begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:792,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:792,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:792,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:793,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:793,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:799,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:805,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:809,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:812,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:814,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:816,1
    - Dst: Botan::bitvector::equals_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:816,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:817,1
    - Dst: Botan::bitvector::equals
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:817,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:819,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:820,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:822,1
    - Dst: Botan::bitvector::equals_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:822,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:823,1
    - Dst: Botan::bitvector::equals
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:823,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:826,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:829,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:831,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:833,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:836,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:839,1
    - Dst: is_standard_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:841,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: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:851,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:854,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:857,1
    - Dst: is_standard_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:859,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:862,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:865,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:867,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:869,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:872,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:875,1
    - Dst: is_standard_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:877,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:880,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:883,1
    - Dst: Botan::secure_bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:885,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:887,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:890,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:891,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:894,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:895,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:898,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:899,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:902,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:903,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:906,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:907,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:910,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:911,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 789
    functionDepth: 3
    functionLinenumber: 789
    functionLinenumberEnd: 914
    functionName: Botan_Tests::test_bitvector_binary_operators
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - begin
    - test_eq
    - Botan::secure_bitvector::set
    - Botan::fmt
    - Botan_Tests::CHECK
    - check_set
    - is_secure_allocator
    - size
    - Botan::bitvector::set
    - Botan::bitvector::equals_vartime
    - Botan::bitvector::equals
    - end
    - Botan::bitvector::unset
    - std::find
    - is_standard_allocator
    - confirm
    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:927,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:928,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:928,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:929,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:929,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:930,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:930,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:931,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:931,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:933,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:933,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:933,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:933,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:938,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:941,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:941,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:944,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:944,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:946,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:947,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:947,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:950,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:955,1
    - Dst: Botan::secure_bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:956,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:958,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:960,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:964,1
    - Dst: validate_bytewise
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:967,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:969,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:970,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:970,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:973,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:976,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:976,1
    - Dst: first
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:976,1
    - Dst: validate_bytewise
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:979,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:981,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:982,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:982,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:985,1
    - Dst: Botan::ceil_tobytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:988,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:994,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:994,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:994,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:997,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:999,1
    - Dst: first
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:999,1
    - Dst: std::array::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1000,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1001,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1001,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1004,1
    - Dst: Botan::ceil_tobytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1007,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1010,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1013,1
    - Dst: test_eq_sz
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1015,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 916
    functionDepth: 3
    functionLinenumber: 916
    functionLinenumberEnd: 1018
    functionName: Botan_Tests::test_bitvector_serialization
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - auto::empty
    - static_cast<size_t>
    - test_eq_sz
    - Botan::bitvector::empty
    - Botan::copy_mem
    - first
    - Botan_Tests::CHECK
    - Botan::ceil_tobytes
    - Botan::secure_bitvector::to_bytes
    - std::array::size
    - Botan::bitvector::at
    - confirm
    - Botan::bitvector::set
    - static_cast<uint8_t>
    - std::array::back
    - std::vector::empty
    - require
    - validate_bytewise
    - Botan::bitvector::to_bytes
    - Botan::fmt
    - size
    - Botan::ct_is_equal
    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:1021,1
    - Dst: Botan::CT::Choice::no
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1022,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1025,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1027,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1028,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1032,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1033,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1035,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1036,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1039,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1041,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1042,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1046,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1047,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1049,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1050,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1053,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1055,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1056,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1057,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1058,1
    - Dst: Botan::secure_bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1059,1
    - Dst: Botan::secure_bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1060,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1065,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1066,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1068,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1069,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1020
    functionDepth: 3
    functionLinenumber: 1020
    functionLinenumberEnd: 1072
    functionName: Botan_Tests::test_bitvector_constant_time_operations
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Botan_Tests::CHECK
    - Botan::secure_bitvector::push_back
    - Botan::bitvector::push_back
    - Botan::CT::Choice::yes
    - Botan::bitvector::ct_conditional_xor
    - Botan::CT::Choice::no
    - confirm
    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:1077,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1083,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1085,1
    - Dst: Botan::bitvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1085,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1085,1
    - Dst: Botan_Tests::Test::timestamp
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1090,1
    - Dst: Botan::CT::Choice::from_int
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1092,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1092,1
    - Dst: auto::next_byte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1092,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1093,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1093,1
    - Dst: auto::next_byte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1093,1
    - Dst: Test::Result::set_ns_consumed
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1095,1
    - Dst: Botan_Tests::Test::timestamp
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1095,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1097,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1098,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1098,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1074
    functionDepth: 2
    functionLinenumber: 1074
    functionLinenumberEnd: 1100
    functionName: Botan_Tests::test_bitvector_conditional_xor_workload
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - auto::next_byte
    - Botan::CT::Choice::from_int
    - auto::random_vec
    - std::vector::at
    - static_cast<uint8_t>
    - Test::Result::set_ns_consumed
    - Botan::bitvector
    - Test::Result::confirm
    - Botan_Tests::Test::new_rng
    - Botan_Tests::Test::timestamp
    - std::vector::reserve
    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:1104,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1107,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1111,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1111,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1117,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1117,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1125,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1125,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1128,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1131,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1134,1
    - Dst: Botan::bitvector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1134,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1136,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1136,1
    - Dst: Botan::bitvector::cbegin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1140,1
    - Dst: Botan::bitvector::cend
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1140,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1142,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1142,1
    - Dst: auto::is_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1142,1
    - Dst: Botan::bitvector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1146,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1152,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1152,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1153,1
    - Dst: auto::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1156,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1160,1
    - Dst: Botan::bitvector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1160,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1162,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1162,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1166,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1171,1
    - Dst: std::distance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1171,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1171,1
    - Dst: Botan::bitvector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1171,1
    - Dst: signed_size_t
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1171,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1172,1
    - Dst: std::distance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1172,1
    - Dst: Botan::bitvector::cbegin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1172,1
    - Dst: Botan::bitvector::cend
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1172,1
    - Dst: signed_size_t
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1172,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1174,1
    - Dst: std::advance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1175,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1176,1
    - Dst: std::distance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1176,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1176,1
    - Dst: signed_size_t
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1176,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1179,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1183,1
    - Dst: Botan::bitvector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1183,1
    - Dst: std::distance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1184,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1184,1
    - Dst: auto::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1185,1
    - Dst: std::distance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1187,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1187,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1194,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1194,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1199,1
    - Dst: Botan::secure_bitvector::cbegin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1202,1
    - Dst: Botan::secure_bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1203,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1208,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1209,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1210,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1211,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1212,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1213,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1214,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1215,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1218
      start: 1102
    functionDepth: 3
    functionLinenumber: 1102
    functionLinenumberEnd: 1218
    functionName: Botan_Tests::test_bitvector_iterators
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan::bitvector::all_vartime
    - Botan::bitvector::end
    - Botan_Tests::CHECK
    - Botan::bitvector::cbegin
    - Botan::bitvector::cend
    - Botan::secure_bitvector::begin
    - confirm
    - std::distance
    - auto::is_set
    - auto::flip
    - Botan::bitvector::set
    - auto::set
    - Botan::bitvector::begin
    - signed_size_t
    - Botan::fmt
    - Botan::secure_bitvector::cbegin
    - test_is_eq
    - std::advance
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bitvector_iterators(Botan::RandomNumberGenerator&
      /*rng*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1229,1
    - Dst: TestBitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1229,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1230,1
    - Dst: TestBitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1230,1
    - Dst: TestBitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1233,1
    - Dst: TestBitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1234,1
    - Dst: TestBitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1235,1
    - Dst: TestBitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1236,1
    - Dst: TestBitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1237,1
    - Dst: TestBitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1238,1
    - Dst: TestBitvector::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1239,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1241,1
    - Dst: TestBitvector::front
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1241,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1242,1
    - Dst: TestBitvector::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1242,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1243,1
    - Dst: TestBitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1243,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1244,1
    - Dst: TestBitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1244,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1245,1
    - Dst: TestBitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1245,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1247,1
    - Dst: TestBitvector::has_odd_hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1247,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1251,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1251,1
    - Dst: TestBitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1255,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1259,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1259,1
    - Dst: TestBitvector::as
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1263,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1266,1
    - Dst: auto::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1268,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1269,1
    - Dst: auto::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1271,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1272,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1273,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1273,1
    - Dst: auto::to_string
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1275,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1276,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1279
      start: 1224
    functionDepth: 1
    functionLinenumber: 1224
    functionLinenumberEnd: 1279
    functionName: Botan_Tests::test_bitvector_strongtype_adapter
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - auto::subvector
    - TestBitvector::push_back
    - TestBitvector::any_vartime
    - auto::get
    - TestBitvector::front
    - auto::to_string
    - TestBitvector::has_odd_hamming_weight
    - Test::Result::test_is_eq
    - TestBitvector::pop_back
    - TestBitvector::all_vartime
    - TestBitvector::none_vartime
    - TestBitvector::empty
    - TestBitvector::flip
    - TestBitvector::unset
    - TestBitvector::size
    - Botan::fmt
    - TestBitvector::at
    - TestBitvector::set
    - TestBitvector::as
    - Test::Result::test_eq
    - Test::Result::confirm
    - TestBitvector::back
    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:1287,1
    - Dst: test_func
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1303,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1304,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1304,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1304,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1304,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1308
      start: 1285
    functionDepth: 2
    functionLinenumber: 1285
    functionLinenumberEnd: 1308
    functionName: Botan_Tests::BitVector_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - test_func
    - auto::end
    - fuzzer_rng
    - std::vector::end
    - auto::begin
    - std::vector::insert
    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:29,1
    - Dst: random_array
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:29,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: 31
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 31
    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:37,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:40,1
    - Dst: Botan_Tests::rand_in_range
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:41,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:41,1
    - Dst: std::swap
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:42,1
    - Dst: std::iota
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:47,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:47,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:47,1
    - Dst: shuffle
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:48,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:49,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: 51
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 51
    functionName: Botan_Tests::rand_indices
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 2
    functionsReached:
    - std::vector::begin
    - Botan_Tests::rand_in_range
    - std::swap
    - size
    - std::vector::end
    - std::vector::resize
    - shuffle
    - std::iota
    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:55,1
    - Dst: Botan_Tests::rand_in_range
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:56,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:56,1
    - Dst: Botan_Tests::rand_indices
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:57,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:57,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:59,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: Botan_Tests::rnd_bitvector_with_rnd_pois
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::rand_in_range
    - auto::end
    - Botan_Tests::rand_indices
    - Botan::bitvector::size
    - auto::begin
    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: 69
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 69
    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:73,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:76,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:76,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:77,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:77,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:80,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:83,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:83,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:84,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:84,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:86,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:86,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:90,1
    - Dst: Botan_Tests::rnd_bitvector_with_rnd_pois
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:92,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:95,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:96,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:98,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:101,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:102,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:102,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:102,1
    - Dst: contains
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:102,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:106,1
    - Dst: Botan_Tests::rnd_bitvector_with_rnd_pois
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:108,1
    - Dst: set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:110,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:114,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:115,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:117,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:120,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:121,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:121,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:121,1
    - Dst: contains
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:121,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:125,1
    - Dst: Botan_Tests::rnd_bitvector_with_rnd_pois
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:127,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:129,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:130,1
    - Dst: begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:130,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:130,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:130,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:131,1
    - Dst: Botan::bitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:133,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:135,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:136,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:136,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:136,1
    - Dst: contains
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:136,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:140,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:143,1
    - Dst: const_cast<const decltype(bv)&>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:144,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:145,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:145,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:146,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:146,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:147,1
    - Dst: Botan::bitvector::unset
      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::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:148,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:151,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:154,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:154,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:155,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:156,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:158,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:158,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:158,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:162,1
    - Dst: set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:165,1
    - Dst: flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:167,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:170,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:171,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:172,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:173,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:174,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:175,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:178,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:181,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:181,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:185,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:188,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:192,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:194,1
    - Dst: set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:195,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:197,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:199,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:201,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:203,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:205,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:207,1
    - Dst: unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:208,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:210,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:212,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:214,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:216,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:218,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:220,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 112
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 223
    functionName: Botan_Tests::test_bitvector_bitwise_accessors
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - unset
    - Botan::bitvector::flip
    - Botan::bitvector::empty
    - begin
    - Botan_Tests::CHECK
    - Botan_Tests::rnd_bitvector_with_rnd_pois
    - contains
    - Botan::bitvector::at
    - set
    - confirm
    - next_byte
    - flip
    - Botan::bitvector::set
    - template test_throws<Botan::Invalid_Argument>
    - test_no_throw
    - require
    - const_cast<const decltype(bv)&>
    - Botan::fmt
    - Botan::bitvector::unset
    - end
    - std::find
    - Botan::bitvector::size
    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:227,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:230,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:230,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:231,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:231,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:232,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:232,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:235,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:238,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:238,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:239,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:239,1
    - Dst: test_gte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:240,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:240,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:243,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:246,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:246,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:247,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:247,1
    - Dst: Botan::bitvector::reserve
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:249,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:250,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:250,1
    - Dst: test_gte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:251,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:251,1
    - Dst: Botan::bitvector::reserve
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:253,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:254,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:254,1
    - Dst: test_gte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:255,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:255,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:258,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:261,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:261,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:262,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:262,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:264,1
    - Dst: Botan::bitvector::push_back
      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:266,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:267,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:269,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:269,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:270,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:270,1
    - Dst: test_gte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:271,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:271,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:273,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:273,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:274,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:274,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:275,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:275,1
    - Dst: confirm
      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_throws
      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: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:281,1
    - Dst: Botan::bitvector::push_back
      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:285,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:286,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:287,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:288,1
    - Dst: Botan::bitvector::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:288,1
    - Dst: Botan::bitvector::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:290,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:291,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:291,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:292,1
    - Dst: Botan::bitvector::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:292,1
    - Dst: Botan::bitvector::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:294,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:295,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:295,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:296,1
    - Dst: Botan::bitvector::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:296,1
    - Dst: Botan::bitvector::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:298,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:299,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:299,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:300,1
    - Dst: Botan::bitvector::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:300,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:301,1
    - Dst: Botan::bitvector::front
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:301,1
    - Dst: Botan::bitvector::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:303,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:304,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:304,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:306,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:306,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:309,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:316,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:317,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:317,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:319,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:321,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:321,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:324,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:325,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:325,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:327,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:328,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:329,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 71
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 225
    functionDepth: 3
    functionLinenumber: 225
    functionLinenumberEnd: 332
    functionName: Botan_Tests::test_bitvector_capacity
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan_Tests::CHECK
    - Botan::fmt
    - test_throws
    - Botan::bitvector::resize
    - Botan::bitvector::front
    - Botan::bitvector::empty
    - Botan::bitvector::push_back
    - Botan::bitvector::reserve
    - test_gte
    - Botan::bitvector::back
    - Botan::bitvector::at
    - Botan::bitvector::size
    - Botan::bitvector::pop_back
    - Botan::bitvector::capacity
    - confirm
    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:336,1
    - Dst: static_cast<T>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:340,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:340,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:344,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:351,1
    - Dst: Botan_Tests::pattern_generator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:357,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:361,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:361,1
    - Dst: bv_t
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:361,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:361,1
    - Dst: T::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:364,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:365,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:365,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:365,1
    - Dst: Botan_Tests::pattern_generator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:371,1
    - Dst: T::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:372,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:374,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:375,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:375,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:380,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:383,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:383,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:384,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:384,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:385,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:385,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:386,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:386,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:389,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:392,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:393,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:393,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:394,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:395,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:395,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:396,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:397,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:397,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:400,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:403,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:405,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:406,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:406,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:407,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:409,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:410,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:410,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:411,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:414,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:417,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:419,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:420,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:420,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:421,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:423,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:424,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:424,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:425,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:427,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:428,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:428,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:429,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:431,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:432,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:432,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:433,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:435,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:436,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:436,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:437,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:440,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:443,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:445,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:446,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:446,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:447,1
    - Dst: auto::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:449,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:450,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:451,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:455,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:458,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:460,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:461,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:461,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:462,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:464,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:465,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:465,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:466,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:468,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:469,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:469,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:470,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:472,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:473,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:473,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:474,1
    - Dst: auto::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:476,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:477,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:477,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:478,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:480,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:481,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:481,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:482,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:484,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:485,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:485,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:486,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: Botan::bitvector::subvector
      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: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:497,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:499,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:500,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:501,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:502,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:504,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:505,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:506,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:507,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:509,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:510,1
    - Dst: check_bitpattern
      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: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:514,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:514,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:515,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:515,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:516,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:516,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:517,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:517,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:520,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:523,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:525,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:526,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:527,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:528,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:530,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:531,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:532,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:533,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:535,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:536,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:537,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:538,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:540,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:541,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:542,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:543,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:546,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:549,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:551,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:552,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:553,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:553,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:554,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:556,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:557,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:558,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:558,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:559,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:561,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:562,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:563,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:563,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:564,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:566,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:567,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:568,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:568,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:569,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:571,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:572,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:573,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:573,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:574,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:576,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:576,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:577,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:577,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:578,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:578,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:579,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:579,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:582,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:585,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:587,1
    - Dst: check_bitpattern_with_zero_region
      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:589,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:589,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:590,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:592,1
    - Dst: check_bitpattern_with_zero_region
      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:594,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:594,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:595,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:597,1
    - Dst: check_bitpattern_with_zero_region
      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:599,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:599,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:600,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:602,1
    - Dst: check_bitpattern_with_zero_region
      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:604,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:604,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:605,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:607,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:608,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:609,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:609,1
    - Dst: check_bitpattern
      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:612,1
    - Dst: check_bitpattern_with_zero_region
      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:614,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:614,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:615,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:617,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:618,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:619,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:619,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:620,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 183
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 334
    functionDepth: 3
    functionLinenumber: 334
    functionLinenumberEnd: 623
    functionName: Botan_Tests::test_bitvector_subvector
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - auto::subvector
    - test_eq
    - test_throws
    - auto::size
    - Botan_Tests::CHECK
    - bv_t
    - Botan_Tests::pattern_generator
    - confirm
    - static_cast<T>
    - T::size
    - make_bitpattern
    - template test_throws<Botan::Invalid_Argument>
    - next
    - auto::resize
    - Botan::fmt
    - check_bitpattern_with_zero_region
    - Botan::bitvector::subvector_replace
    - check_bitpattern
    - bitpattern_at
    - Botan::bitvector::subvector
    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:627,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:629,1
    - Dst: Botan_Tests::pattern_generator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:634,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:635,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:636,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:636,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:636,1
    - Dst: Botan_Tests::pattern_generator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:641,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:642,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:643,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:643,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:643,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:648,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:651,1
    - Dst: Botan::bitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:653,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:654,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:657,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:659,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:661,1
    - Dst: Botan::bitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:663,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:664,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:667,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:671,1
    - Dst: Botan::bitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:672,1
    - Dst: check_flipped_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:673,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:676,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:678,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:679,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:680,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:684,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:688,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:689,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:690,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:691,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:693,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:696,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:698,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:702,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:706,1
    - Dst: Botan::bitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:706,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:707,1
    - Dst: Botan::bitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:707,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:708,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:708,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:709,1
    - Dst: Botan::bitvector::none
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:709,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:710,1
    - Dst: Botan::bitvector::any
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:710,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:711,1
    - Dst: Botan::bitvector::all
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:711,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:713,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:714,1
    - Dst: Botan::bitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:714,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:715,1
    - Dst: Botan::bitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:715,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:716,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:716,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:717,1
    - Dst: Botan::bitvector::none
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:717,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:718,1
    - Dst: Botan::bitvector::any
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:718,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:719,1
    - Dst: Botan::bitvector::all
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:719,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:721,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:722,1
    - Dst: Botan::bitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:722,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:723,1
    - Dst: Botan::bitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:723,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:724,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:724,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:725,1
    - Dst: Botan::bitvector::none
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:725,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:726,1
    - Dst: Botan::bitvector::any
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:726,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:727,1
    - Dst: Botan::bitvector::all
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:727,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:729,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:730,1
    - Dst: Botan::bitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:730,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:731,1
    - Dst: Botan::bitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:731,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:732,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:732,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:733,1
    - Dst: Botan::bitvector::none
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:733,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:734,1
    - Dst: Botan::bitvector::any
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:734,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:735,1
    - Dst: Botan::bitvector::all
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:735,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:737,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:738,1
    - Dst: Botan::bitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:738,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:739,1
    - Dst: Botan::bitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:739,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:740,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:740,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:741,1
    - Dst: Botan::bitvector::none
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:741,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:742,1
    - Dst: Botan::bitvector::any
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:742,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:743,1
    - Dst: Botan::bitvector::all
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:743,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:746,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:748,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:749,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:751,1
    - Dst: Botan::bitvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:751,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:752,1
    - Dst: Botan::bitvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:752,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:755,1
    - Dst: template as<size_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:760,1
    - Dst: Botan::bitvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:766,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:766,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:767,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:767,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:768,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:768,1
    - Dst: naive_count
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:768,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:770,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:771,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:771,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:772,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:772,1
    - Dst: naive_count
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:772,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:774,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:775,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:775,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:776,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:776,1
    - Dst: naive_count
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:776,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:778,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:779,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:779,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:780,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:780,1
    - Dst: naive_count
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:780,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:782,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:783,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:783,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:784,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:784,1
    - Dst: naive_count
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:784,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 100
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 625
    functionDepth: 3
    functionLinenumber: 625
    functionLinenumberEnd: 787
    functionName: Botan_Tests::test_bitvector_global_modifiers_and_predicates
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan::hex_decode
    - naive_count
    - Botan::bitvector::resize
    - Botan::bitvector::flip
    - Botan::bitvector::all_vartime
    - auto::pop_back
    - Botan::bitvector::none_vartime
    - Botan_Tests::CHECK
    - auto::hamming_weight
    - Botan::bitvector::push_back
    - Botan::bitvector::all
    - Botan_Tests::pattern_generator
    - check_flipped_bitpattern
    - confirm
    - make_bitpattern
    - Botan::bitvector::set
    - next
    - Botan::bitvector
    - template as<size_t>
    - Botan::fmt
    - Botan::bitvector::none
    - Botan::bitvector::any_vartime
    - size
    - Botan::bitvector::any
    - check_bitpattern
    - Botan::bitvector::unset
    - Botan::bitvector::size
    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:791,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:792,1
    - Dst: begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:792,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:792,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:792,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:793,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:793,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:799,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:805,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:809,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:812,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:814,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:816,1
    - Dst: Botan::bitvector::equals_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:816,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:817,1
    - Dst: Botan::bitvector::equals
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:817,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:819,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:820,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:822,1
    - Dst: Botan::bitvector::equals_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:822,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:823,1
    - Dst: Botan::bitvector::equals
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:823,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:826,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:829,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:831,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:833,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:836,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:839,1
    - Dst: is_standard_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:841,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: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:851,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:854,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:857,1
    - Dst: is_standard_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:859,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:862,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:865,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:867,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:869,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:872,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:875,1
    - Dst: is_standard_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:877,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:880,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:883,1
    - Dst: Botan::secure_bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:885,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:887,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:890,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:891,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:894,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:895,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:898,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:899,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:902,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:903,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:906,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:907,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:910,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:911,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 789
    functionDepth: 3
    functionLinenumber: 789
    functionLinenumberEnd: 914
    functionName: Botan_Tests::test_bitvector_binary_operators
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - begin
    - test_eq
    - Botan::secure_bitvector::set
    - Botan::fmt
    - Botan_Tests::CHECK
    - check_set
    - is_secure_allocator
    - size
    - Botan::bitvector::set
    - Botan::bitvector::equals_vartime
    - Botan::bitvector::equals
    - end
    - Botan::bitvector::unset
    - std::find
    - is_standard_allocator
    - confirm
    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:927,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:928,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:928,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:929,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:929,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:930,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:930,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:931,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:931,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:933,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:933,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:933,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:933,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:938,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:941,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:941,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:944,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:944,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:946,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:947,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:947,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:950,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:955,1
    - Dst: Botan::secure_bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:956,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:958,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:960,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:964,1
    - Dst: validate_bytewise
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:967,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:969,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:970,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:970,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:973,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:976,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:976,1
    - Dst: first
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:976,1
    - Dst: validate_bytewise
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:979,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:981,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:982,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:982,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:985,1
    - Dst: Botan::ceil_tobytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:988,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:994,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:994,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:994,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:997,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:999,1
    - Dst: first
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:999,1
    - Dst: std::array::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1000,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1001,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1001,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1004,1
    - Dst: Botan::ceil_tobytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1007,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1010,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1013,1
    - Dst: test_eq_sz
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1015,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 916
    functionDepth: 3
    functionLinenumber: 916
    functionLinenumberEnd: 1018
    functionName: Botan_Tests::test_bitvector_serialization
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - auto::empty
    - static_cast<size_t>
    - test_eq_sz
    - Botan::bitvector::empty
    - Botan::copy_mem
    - first
    - Botan_Tests::CHECK
    - Botan::ceil_tobytes
    - Botan::secure_bitvector::to_bytes
    - std::array::size
    - Botan::bitvector::at
    - confirm
    - Botan::bitvector::set
    - static_cast<uint8_t>
    - std::array::back
    - std::vector::empty
    - require
    - validate_bytewise
    - Botan::bitvector::to_bytes
    - Botan::fmt
    - size
    - Botan::ct_is_equal
    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:1021,1
    - Dst: Botan::CT::Choice::no
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1022,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1025,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1027,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1028,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1032,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1033,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1035,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1036,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1039,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1041,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1042,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1046,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1047,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1049,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1050,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1053,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1055,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1056,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1057,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1058,1
    - Dst: Botan::secure_bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1059,1
    - Dst: Botan::secure_bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1060,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1065,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1066,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1068,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1069,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1020
    functionDepth: 3
    functionLinenumber: 1020
    functionLinenumberEnd: 1072
    functionName: Botan_Tests::test_bitvector_constant_time_operations
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Botan_Tests::CHECK
    - Botan::secure_bitvector::push_back
    - Botan::bitvector::push_back
    - Botan::CT::Choice::yes
    - Botan::bitvector::ct_conditional_xor
    - Botan::CT::Choice::no
    - confirm
    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:1077,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1083,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1085,1
    - Dst: Botan::bitvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1085,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1085,1
    - Dst: Botan_Tests::Test::timestamp
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1090,1
    - Dst: Botan::CT::Choice::from_int
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1092,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1092,1
    - Dst: auto::next_byte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1092,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1093,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1093,1
    - Dst: auto::next_byte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1093,1
    - Dst: Test::Result::set_ns_consumed
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1095,1
    - Dst: Botan_Tests::Test::timestamp
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1095,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1097,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1098,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1098,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1074
    functionDepth: 2
    functionLinenumber: 1074
    functionLinenumberEnd: 1100
    functionName: Botan_Tests::test_bitvector_conditional_xor_workload
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - auto::next_byte
    - Botan::CT::Choice::from_int
    - auto::random_vec
    - std::vector::at
    - static_cast<uint8_t>
    - Test::Result::set_ns_consumed
    - Botan::bitvector
    - Test::Result::confirm
    - Botan_Tests::Test::new_rng
    - Botan_Tests::Test::timestamp
    - std::vector::reserve
    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:1104,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1107,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1111,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1111,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1117,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1117,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1125,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1125,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1128,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1131,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1134,1
    - Dst: Botan::bitvector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1134,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1136,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1136,1
    - Dst: Botan::bitvector::cbegin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1140,1
    - Dst: Botan::bitvector::cend
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1140,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1142,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1142,1
    - Dst: auto::is_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1142,1
    - Dst: Botan::bitvector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1146,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1152,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1152,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1153,1
    - Dst: auto::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1156,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1160,1
    - Dst: Botan::bitvector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1160,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1162,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1162,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1166,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1171,1
    - Dst: std::distance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1171,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1171,1
    - Dst: Botan::bitvector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1171,1
    - Dst: signed_size_t
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1171,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1172,1
    - Dst: std::distance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1172,1
    - Dst: Botan::bitvector::cbegin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1172,1
    - Dst: Botan::bitvector::cend
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1172,1
    - Dst: signed_size_t
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1172,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1174,1
    - Dst: std::advance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1175,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1176,1
    - Dst: std::distance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1176,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1176,1
    - Dst: signed_size_t
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1176,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1179,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1183,1
    - Dst: Botan::bitvector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1183,1
    - Dst: std::distance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1184,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1184,1
    - Dst: auto::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1185,1
    - Dst: std::distance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1187,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1187,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1194,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1194,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1199,1
    - Dst: Botan::secure_bitvector::cbegin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1202,1
    - Dst: Botan::secure_bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1203,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1208,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1209,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1210,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1211,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1212,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1213,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1214,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1215,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1218
      start: 1102
    functionDepth: 3
    functionLinenumber: 1102
    functionLinenumberEnd: 1218
    functionName: Botan_Tests::test_bitvector_iterators
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan::bitvector::all_vartime
    - Botan::bitvector::end
    - Botan_Tests::CHECK
    - Botan::bitvector::cbegin
    - Botan::bitvector::cend
    - Botan::secure_bitvector::begin
    - confirm
    - std::distance
    - auto::is_set
    - auto::flip
    - Botan::bitvector::set
    - auto::set
    - Botan::bitvector::begin
    - signed_size_t
    - Botan::fmt
    - Botan::secure_bitvector::cbegin
    - test_is_eq
    - std::advance
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bitvector_iterators(Botan::RandomNumberGenerator&
      /*rng*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1229,1
    - Dst: TestBitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1229,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1230,1
    - Dst: TestBitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1230,1
    - Dst: TestBitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1233,1
    - Dst: TestBitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1234,1
    - Dst: TestBitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1235,1
    - Dst: TestBitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1236,1
    - Dst: TestBitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1237,1
    - Dst: TestBitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1238,1
    - Dst: TestBitvector::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1239,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1241,1
    - Dst: TestBitvector::front
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1241,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1242,1
    - Dst: TestBitvector::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1242,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1243,1
    - Dst: TestBitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1243,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1244,1
    - Dst: TestBitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1244,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1245,1
    - Dst: TestBitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1245,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1247,1
    - Dst: TestBitvector::has_odd_hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1247,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1251,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1251,1
    - Dst: TestBitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1255,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1259,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1259,1
    - Dst: TestBitvector::as
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1263,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1266,1
    - Dst: auto::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1268,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1269,1
    - Dst: auto::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1271,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1272,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1273,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1273,1
    - Dst: auto::to_string
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1275,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1276,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1279
      start: 1224
    functionDepth: 1
    functionLinenumber: 1224
    functionLinenumberEnd: 1279
    functionName: Botan_Tests::test_bitvector_strongtype_adapter
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - auto::subvector
    - TestBitvector::push_back
    - TestBitvector::any_vartime
    - auto::get
    - TestBitvector::front
    - auto::to_string
    - TestBitvector::has_odd_hamming_weight
    - Test::Result::test_is_eq
    - TestBitvector::pop_back
    - TestBitvector::all_vartime
    - TestBitvector::none_vartime
    - TestBitvector::empty
    - TestBitvector::flip
    - TestBitvector::unset
    - TestBitvector::size
    - Botan::fmt
    - TestBitvector::at
    - TestBitvector::set
    - TestBitvector::as
    - Test::Result::test_eq
    - Test::Result::confirm
    - TestBitvector::back
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bitvector_strongtype_adapter(Botan::RandomNumberGenerator&
      /*rng*/)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::load_le<size_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:29,1
    - Dst: random_array
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:29,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: 31
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 31
    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:37,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:40,1
    - Dst: Botan_Tests::rand_in_range
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:41,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:41,1
    - Dst: std::swap
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:42,1
    - Dst: std::iota
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:47,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:47,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:47,1
    - Dst: shuffle
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:48,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:49,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: 51
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 51
    functionName: Botan_Tests::rand_indices
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 3
    functionsReached:
    - std::vector::begin
    - Botan_Tests::rand_in_range
    - std::swap
    - size
    - std::vector::end
    - std::vector::resize
    - shuffle
    - std::iota
    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:55,1
    - Dst: Botan_Tests::rand_in_range
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:56,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:56,1
    - Dst: Botan_Tests::rand_indices
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:57,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:57,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:59,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: Botan_Tests::rnd_bitvector_with_rnd_pois
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::rand_in_range
    - auto::end
    - Botan_Tests::rand_indices
    - Botan::bitvector::size
    - auto::begin
    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: 69
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 69
    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:73,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:76,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:76,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:77,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:77,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:80,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:83,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:83,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:84,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:84,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:86,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:86,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:90,1
    - Dst: Botan_Tests::rnd_bitvector_with_rnd_pois
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:92,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:95,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:96,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:98,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:101,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:102,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:102,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:102,1
    - Dst: contains
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:102,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:106,1
    - Dst: Botan_Tests::rnd_bitvector_with_rnd_pois
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:108,1
    - Dst: set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:110,1
    - Dst: next_byte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:114,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:115,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:117,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:120,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:121,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:121,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:121,1
    - Dst: contains
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:121,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:125,1
    - Dst: Botan_Tests::rnd_bitvector_with_rnd_pois
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:127,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:129,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:130,1
    - Dst: begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:130,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:130,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:130,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:131,1
    - Dst: Botan::bitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:133,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:135,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:136,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:136,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:136,1
    - Dst: contains
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:136,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:140,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:143,1
    - Dst: const_cast<const decltype(bv)&>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:144,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:145,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:145,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:146,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:146,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:147,1
    - Dst: Botan::bitvector::unset
      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::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:148,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:151,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:154,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:154,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:155,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:156,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:158,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:158,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:158,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:162,1
    - Dst: set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:165,1
    - Dst: flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:167,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:170,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:171,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:172,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:173,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:174,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:175,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:178,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:181,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:181,1
    - Dst: test_no_throw
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:185,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:188,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:192,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:194,1
    - Dst: set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:195,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:197,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:199,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:201,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:203,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:205,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:207,1
    - Dst: unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:208,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:210,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:212,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:214,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:216,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:218,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:220,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 112
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 71
    functionDepth: 3
    functionLinenumber: 71
    functionLinenumberEnd: 223
    functionName: Botan_Tests::test_bitvector_bitwise_accessors
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - unset
    - Botan::bitvector::flip
    - Botan::bitvector::empty
    - begin
    - Botan_Tests::CHECK
    - Botan_Tests::rnd_bitvector_with_rnd_pois
    - contains
    - Botan::bitvector::at
    - set
    - confirm
    - next_byte
    - flip
    - Botan::bitvector::set
    - template test_throws<Botan::Invalid_Argument>
    - test_no_throw
    - require
    - const_cast<const decltype(bv)&>
    - Botan::fmt
    - Botan::bitvector::unset
    - end
    - std::find
    - Botan::bitvector::size
    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:227,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:230,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:230,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:231,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:231,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:232,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:232,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:235,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:238,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:238,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:239,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:239,1
    - Dst: test_gte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:240,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:240,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:243,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:246,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:246,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:247,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:247,1
    - Dst: Botan::bitvector::reserve
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:249,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:250,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:250,1
    - Dst: test_gte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:251,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:251,1
    - Dst: Botan::bitvector::reserve
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:253,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:254,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:254,1
    - Dst: test_gte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:255,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:255,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:258,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:261,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:261,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:262,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:262,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:264,1
    - Dst: Botan::bitvector::push_back
      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:266,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:267,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:269,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:269,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:270,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:270,1
    - Dst: test_gte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:271,1
    - Dst: Botan::bitvector::capacity
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:271,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:273,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:273,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:274,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:274,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:275,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:275,1
    - Dst: confirm
      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_throws
      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: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:281,1
    - Dst: Botan::bitvector::push_back
      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:285,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:286,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:287,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:288,1
    - Dst: Botan::bitvector::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:288,1
    - Dst: Botan::bitvector::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:290,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:291,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:291,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:292,1
    - Dst: Botan::bitvector::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:292,1
    - Dst: Botan::bitvector::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:294,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:295,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:295,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:296,1
    - Dst: Botan::bitvector::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:296,1
    - Dst: Botan::bitvector::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:298,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:299,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:299,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:300,1
    - Dst: Botan::bitvector::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:300,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:301,1
    - Dst: Botan::bitvector::front
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:301,1
    - Dst: Botan::bitvector::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:303,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:304,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:304,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:306,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:306,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:309,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:316,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:317,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:317,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:319,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:321,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:321,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:324,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:325,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:325,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:327,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:328,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:329,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 71
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 225
    functionDepth: 3
    functionLinenumber: 225
    functionLinenumberEnd: 332
    functionName: Botan_Tests::test_bitvector_capacity
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan_Tests::CHECK
    - Botan::fmt
    - test_throws
    - Botan::bitvector::resize
    - Botan::bitvector::front
    - Botan::bitvector::empty
    - Botan::bitvector::push_back
    - Botan::bitvector::reserve
    - test_gte
    - Botan::bitvector::back
    - Botan::bitvector::at
    - Botan::bitvector::size
    - Botan::bitvector::pop_back
    - Botan::bitvector::capacity
    - confirm
    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:336,1
    - Dst: static_cast<T>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:340,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:340,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:344,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:351,1
    - Dst: Botan_Tests::pattern_generator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:357,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:361,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:361,1
    - Dst: bv_t
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:361,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:361,1
    - Dst: T::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:364,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:365,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:365,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:365,1
    - Dst: Botan_Tests::pattern_generator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:371,1
    - Dst: T::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:372,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:374,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:375,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:375,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:380,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:383,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:383,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:384,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:384,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:385,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:385,1
    - Dst: template test_throws<Botan::Invalid_Argument>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:386,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:386,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:389,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:392,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:393,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:393,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:394,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:395,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:395,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:396,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:397,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:397,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:400,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:403,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:405,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:406,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:406,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:407,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:409,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:410,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:410,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:411,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:414,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:417,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:419,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:420,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:420,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:421,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:423,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:424,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:424,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:425,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:427,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:428,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:428,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:429,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:431,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:432,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:432,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:433,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:435,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:436,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:436,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:437,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:440,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:443,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:445,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:446,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:446,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:447,1
    - Dst: auto::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:449,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:450,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:451,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:455,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:458,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:460,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:461,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:461,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:462,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:464,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:465,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:465,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:466,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:468,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:469,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:469,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:470,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:472,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:473,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:473,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:474,1
    - Dst: auto::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:476,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:477,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:477,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:478,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:480,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:481,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:481,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:482,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:484,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:485,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:485,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:486,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: Botan::bitvector::subvector
      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: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:497,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:499,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:500,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:501,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:502,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:504,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:505,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:506,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:507,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:509,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:510,1
    - Dst: check_bitpattern
      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: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:514,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:514,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:515,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:515,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:516,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:516,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:517,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:517,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:520,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:523,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:525,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:526,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:527,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:528,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:530,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:531,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:532,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:533,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:535,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:536,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:537,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:538,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:540,1
    - Dst: Botan::bitvector::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:541,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:542,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:543,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:546,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:549,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:551,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:552,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:553,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:553,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:554,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:556,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:557,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:558,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:558,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:559,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:561,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:562,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:563,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:563,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:564,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:566,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:567,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:568,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:568,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:569,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:571,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:572,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:573,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:573,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:574,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:576,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:576,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:577,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:577,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:578,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:578,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:579,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:579,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:582,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:585,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:587,1
    - Dst: check_bitpattern_with_zero_region
      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:589,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:589,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:590,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:592,1
    - Dst: check_bitpattern_with_zero_region
      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:594,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:594,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:595,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:597,1
    - Dst: check_bitpattern_with_zero_region
      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:599,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:599,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:600,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:602,1
    - Dst: check_bitpattern_with_zero_region
      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:604,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:604,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:605,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:607,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:608,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:609,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:609,1
    - Dst: check_bitpattern
      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:612,1
    - Dst: check_bitpattern_with_zero_region
      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:614,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:614,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:615,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:617,1
    - Dst: check_bitpattern_with_zero_region
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:618,1
    - Dst: Botan::bitvector::subvector_replace
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:619,1
    - Dst: bitpattern_at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:619,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:620,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 183
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 334
    functionDepth: 3
    functionLinenumber: 334
    functionLinenumberEnd: 623
    functionName: Botan_Tests::test_bitvector_subvector
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - auto::subvector
    - test_eq
    - test_throws
    - auto::size
    - Botan_Tests::CHECK
    - bv_t
    - Botan_Tests::pattern_generator
    - confirm
    - static_cast<T>
    - T::size
    - make_bitpattern
    - template test_throws<Botan::Invalid_Argument>
    - next
    - auto::resize
    - Botan::fmt
    - check_bitpattern_with_zero_region
    - Botan::bitvector::subvector_replace
    - check_bitpattern
    - bitpattern_at
    - Botan::bitvector::subvector
    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:627,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:629,1
    - Dst: Botan_Tests::pattern_generator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:634,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:635,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:636,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:636,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:636,1
    - Dst: Botan_Tests::pattern_generator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:641,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:642,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:643,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:643,1
    - Dst: next
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:643,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:648,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:651,1
    - Dst: Botan::bitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:653,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:654,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:657,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:659,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:661,1
    - Dst: Botan::bitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:663,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:664,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:667,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:671,1
    - Dst: Botan::bitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:672,1
    - Dst: check_flipped_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:673,1
    - Dst: check_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:676,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:678,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:679,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:680,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:684,1
    - Dst: make_bitpattern
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:688,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:689,1
    - Dst: Botan::bitvector::resize
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:690,1
    - Dst: Botan::bitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:691,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:693,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:696,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:698,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:702,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:706,1
    - Dst: Botan::bitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:706,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:707,1
    - Dst: Botan::bitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:707,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:708,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:708,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:709,1
    - Dst: Botan::bitvector::none
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:709,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:710,1
    - Dst: Botan::bitvector::any
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:710,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:711,1
    - Dst: Botan::bitvector::all
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:711,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:713,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:714,1
    - Dst: Botan::bitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:714,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:715,1
    - Dst: Botan::bitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:715,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:716,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:716,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:717,1
    - Dst: Botan::bitvector::none
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:717,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:718,1
    - Dst: Botan::bitvector::any
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:718,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:719,1
    - Dst: Botan::bitvector::all
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:719,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:721,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:722,1
    - Dst: Botan::bitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:722,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:723,1
    - Dst: Botan::bitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:723,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:724,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:724,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:725,1
    - Dst: Botan::bitvector::none
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:725,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:726,1
    - Dst: Botan::bitvector::any
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:726,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:727,1
    - Dst: Botan::bitvector::all
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:727,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:729,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:730,1
    - Dst: Botan::bitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:730,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:731,1
    - Dst: Botan::bitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:731,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:732,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:732,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:733,1
    - Dst: Botan::bitvector::none
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:733,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:734,1
    - Dst: Botan::bitvector::any
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:734,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:735,1
    - Dst: Botan::bitvector::all
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:735,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:737,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:738,1
    - Dst: Botan::bitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:738,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:739,1
    - Dst: Botan::bitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:739,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:740,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:740,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:741,1
    - Dst: Botan::bitvector::none
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:741,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:742,1
    - Dst: Botan::bitvector::any
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:742,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:743,1
    - Dst: Botan::bitvector::all
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:743,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:746,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:748,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:749,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:751,1
    - Dst: Botan::bitvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:751,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:752,1
    - Dst: Botan::bitvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:752,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:755,1
    - Dst: template as<size_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:760,1
    - Dst: Botan::bitvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:766,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:766,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:767,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:767,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:768,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:768,1
    - Dst: naive_count
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:768,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:770,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:771,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:771,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:772,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:772,1
    - Dst: naive_count
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:772,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:774,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:775,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:775,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:776,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:776,1
    - Dst: naive_count
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:776,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:778,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:779,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:779,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:780,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:780,1
    - Dst: naive_count
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:780,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:782,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:783,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:783,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:784,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:784,1
    - Dst: naive_count
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:784,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 100
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 625
    functionDepth: 3
    functionLinenumber: 625
    functionLinenumberEnd: 787
    functionName: Botan_Tests::test_bitvector_global_modifiers_and_predicates
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan::hex_decode
    - naive_count
    - Botan::bitvector::resize
    - Botan::bitvector::flip
    - Botan::bitvector::all_vartime
    - auto::pop_back
    - Botan::bitvector::none_vartime
    - Botan_Tests::CHECK
    - auto::hamming_weight
    - Botan::bitvector::push_back
    - Botan::bitvector::all
    - Botan_Tests::pattern_generator
    - check_flipped_bitpattern
    - confirm
    - make_bitpattern
    - Botan::bitvector::set
    - next
    - Botan::bitvector
    - template as<size_t>
    - Botan::fmt
    - Botan::bitvector::none
    - Botan::bitvector::any_vartime
    - size
    - Botan::bitvector::any
    - check_bitpattern
    - Botan::bitvector::unset
    - Botan::bitvector::size
    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:791,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:792,1
    - Dst: begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:792,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:792,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:792,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:793,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:793,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:799,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:805,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:809,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:812,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:814,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:816,1
    - Dst: Botan::bitvector::equals_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:816,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:817,1
    - Dst: Botan::bitvector::equals
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:817,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:819,1
    - Dst: Botan::bitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:820,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:822,1
    - Dst: Botan::bitvector::equals_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:822,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:823,1
    - Dst: Botan::bitvector::equals
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:823,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:826,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:829,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:831,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:833,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:836,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:839,1
    - Dst: is_standard_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:841,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: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:851,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:854,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:857,1
    - Dst: is_standard_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:859,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:862,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:865,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:867,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:869,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:872,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:875,1
    - Dst: is_standard_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:877,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:880,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:883,1
    - Dst: Botan::secure_bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:885,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:887,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:890,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:891,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:894,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:895,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:898,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:899,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:902,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:903,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:906,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:907,1
    - Dst: is_secure_allocator
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:910,1
    - Dst: check_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:911,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 789
    functionDepth: 3
    functionLinenumber: 789
    functionLinenumberEnd: 914
    functionName: Botan_Tests::test_bitvector_binary_operators
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - begin
    - test_eq
    - Botan::secure_bitvector::set
    - Botan::fmt
    - Botan_Tests::CHECK
    - check_set
    - is_secure_allocator
    - size
    - Botan::bitvector::set
    - Botan::bitvector::equals_vartime
    - Botan::bitvector::equals
    - end
    - Botan::bitvector::unset
    - std::find
    - is_standard_allocator
    - confirm
    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:927,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:928,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:928,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:929,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:929,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:930,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:930,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:931,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:931,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:933,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:933,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:933,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:933,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:938,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:941,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:941,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:944,1
    - Dst: Botan::bitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:944,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:946,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:947,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:947,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:950,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:955,1
    - Dst: Botan::secure_bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:956,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:958,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:960,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:964,1
    - Dst: validate_bytewise
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:967,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:969,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:970,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:970,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:973,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:976,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:976,1
    - Dst: first
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:976,1
    - Dst: validate_bytewise
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:979,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:981,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:982,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:982,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:985,1
    - Dst: Botan::ceil_tobytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:988,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:994,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:994,1
    - Dst: Botan::bitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:994,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:997,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:999,1
    - Dst: first
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:999,1
    - Dst: std::array::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1000,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1001,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1001,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1004,1
    - Dst: Botan::ceil_tobytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1007,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1010,1
    - Dst: Botan::bitvector::to_bytes
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1013,1
    - Dst: test_eq_sz
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1015,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 916
    functionDepth: 3
    functionLinenumber: 916
    functionLinenumberEnd: 1018
    functionName: Botan_Tests::test_bitvector_serialization
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - auto::empty
    - static_cast<size_t>
    - test_eq_sz
    - Botan::bitvector::empty
    - Botan::copy_mem
    - first
    - Botan_Tests::CHECK
    - Botan::ceil_tobytes
    - Botan::secure_bitvector::to_bytes
    - std::array::size
    - Botan::bitvector::at
    - confirm
    - Botan::bitvector::set
    - static_cast<uint8_t>
    - std::array::back
    - std::vector::empty
    - require
    - validate_bytewise
    - Botan::bitvector::to_bytes
    - Botan::fmt
    - size
    - Botan::ct_is_equal
    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:1021,1
    - Dst: Botan::CT::Choice::no
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1022,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1025,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1027,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1028,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1032,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1033,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1035,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1036,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1039,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1041,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1042,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1046,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1047,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1049,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1050,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1053,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1055,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1056,1
    - Dst: Botan::bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1057,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1058,1
    - Dst: Botan::secure_bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1059,1
    - Dst: Botan::secure_bitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1060,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1065,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1066,1
    - Dst: Botan::bitvector::ct_conditional_xor
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1068,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1069,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1072
      start: 1020
    functionDepth: 3
    functionLinenumber: 1020
    functionLinenumberEnd: 1072
    functionName: Botan_Tests::test_bitvector_constant_time_operations
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Botan_Tests::CHECK
    - Botan::secure_bitvector::push_back
    - Botan::bitvector::push_back
    - Botan::CT::Choice::yes
    - Botan::bitvector::ct_conditional_xor
    - Botan::CT::Choice::no
    - confirm
    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:1077,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1083,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1085,1
    - Dst: Botan::bitvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1085,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1085,1
    - Dst: Botan_Tests::Test::timestamp
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1090,1
    - Dst: Botan::CT::Choice::from_int
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1092,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1092,1
    - Dst: auto::next_byte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1092,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1093,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1093,1
    - Dst: auto::next_byte
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1093,1
    - Dst: Test::Result::set_ns_consumed
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1095,1
    - Dst: Botan_Tests::Test::timestamp
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1095,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1097,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1098,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1098,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1100
      start: 1074
    functionDepth: 2
    functionLinenumber: 1074
    functionLinenumberEnd: 1100
    functionName: Botan_Tests::test_bitvector_conditional_xor_workload
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - auto::next_byte
    - Botan::CT::Choice::from_int
    - auto::random_vec
    - std::vector::at
    - static_cast<uint8_t>
    - Test::Result::set_ns_consumed
    - Botan::bitvector
    - Test::Result::confirm
    - Botan_Tests::Test::new_rng
    - Botan_Tests::Test::timestamp
    - std::vector::reserve
    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:1104,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1107,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1111,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1111,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1117,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1117,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1125,1
    - Dst: Botan::bitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1125,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1128,1
    - Dst: Botan::bitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1131,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1134,1
    - Dst: Botan::bitvector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1134,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1136,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1136,1
    - Dst: Botan::bitvector::cbegin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1140,1
    - Dst: Botan::bitvector::cend
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1140,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1142,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1142,1
    - Dst: auto::is_set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1142,1
    - Dst: Botan::bitvector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1146,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1152,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1152,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1153,1
    - Dst: auto::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1156,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1160,1
    - Dst: Botan::bitvector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1160,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1162,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1162,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1166,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1171,1
    - Dst: std::distance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1171,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1171,1
    - Dst: Botan::bitvector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1171,1
    - Dst: signed_size_t
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1171,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1172,1
    - Dst: std::distance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1172,1
    - Dst: Botan::bitvector::cbegin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1172,1
    - Dst: Botan::bitvector::cend
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1172,1
    - Dst: signed_size_t
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1172,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1174,1
    - Dst: std::advance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1175,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1176,1
    - Dst: std::distance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1176,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1176,1
    - Dst: signed_size_t
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1176,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1179,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1183,1
    - Dst: Botan::bitvector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1183,1
    - Dst: std::distance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1184,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1184,1
    - Dst: auto::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1185,1
    - Dst: std::distance
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1187,1
    - Dst: Botan::bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1187,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1194,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1194,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1199,1
    - Dst: Botan::secure_bitvector::cbegin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1202,1
    - Dst: Botan::secure_bitvector::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1203,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1208,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1209,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1210,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1211,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1212,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1213,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1214,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1215,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1218
      start: 1102
    functionDepth: 3
    functionLinenumber: 1102
    functionLinenumberEnd: 1218
    functionName: Botan_Tests::test_bitvector_iterators
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan::bitvector::all_vartime
    - Botan::bitvector::end
    - Botan_Tests::CHECK
    - Botan::bitvector::cbegin
    - Botan::bitvector::cend
    - Botan::secure_bitvector::begin
    - confirm
    - std::distance
    - auto::is_set
    - auto::flip
    - Botan::bitvector::set
    - auto::set
    - Botan::bitvector::begin
    - signed_size_t
    - Botan::fmt
    - Botan::secure_bitvector::cbegin
    - test_is_eq
    - std::advance
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_bitvector_iterators(Botan::RandomNumberGenerator&
      /*rng*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1229,1
    - Dst: TestBitvector::empty
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1229,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1230,1
    - Dst: TestBitvector::size
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1230,1
    - Dst: TestBitvector::at
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1233,1
    - Dst: TestBitvector::set
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1234,1
    - Dst: TestBitvector::unset
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1235,1
    - Dst: TestBitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1236,1
    - Dst: TestBitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1237,1
    - Dst: TestBitvector::push_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1238,1
    - Dst: TestBitvector::pop_back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1239,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1241,1
    - Dst: TestBitvector::front
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1241,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1242,1
    - Dst: TestBitvector::back
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1242,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1243,1
    - Dst: TestBitvector::any_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1243,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1244,1
    - Dst: TestBitvector::none_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1244,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1245,1
    - Dst: TestBitvector::all_vartime
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1245,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1247,1
    - Dst: TestBitvector::has_odd_hamming_weight
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1247,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1251,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1251,1
    - Dst: TestBitvector::flip
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1255,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1259,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1259,1
    - Dst: TestBitvector::as
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1263,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1266,1
    - Dst: auto::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1268,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1269,1
    - Dst: auto::subvector
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1271,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1272,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1273,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1273,1
    - Dst: auto::to_string
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1275,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1276,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1279
      start: 1224
    functionDepth: 1
    functionLinenumber: 1224
    functionLinenumberEnd: 1279
    functionName: Botan_Tests::test_bitvector_strongtype_adapter
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - auto::subvector
    - TestBitvector::push_back
    - TestBitvector::any_vartime
    - auto::get
    - TestBitvector::front
    - auto::to_string
    - TestBitvector::has_odd_hamming_weight
    - Test::Result::test_is_eq
    - TestBitvector::pop_back
    - TestBitvector::all_vartime
    - TestBitvector::none_vartime
    - TestBitvector::empty
    - TestBitvector::flip
    - TestBitvector::unset
    - TestBitvector::size
    - Botan::fmt
    - TestBitvector::at
    - TestBitvector::set
    - TestBitvector::as
    - Test::Result::test_eq
    - Test::Result::confirm
    - TestBitvector::back
    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:1287,1
    - Dst: test_func
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1303,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1304,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1304,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1304,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_utils_bitvector.cpp:1304,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1308
      start: 1285
    functionDepth: 2
    functionLinenumber: 1285
    functionLinenumberEnd: 1308
    functionName: Botan_Tests::BitVector_Tests::run
    functionSourceFile: /src/botan/src/tests/test_utils_bitvector.cpp
    functionUses: 0
    functionsReached:
    - test_func
    - auto::end
    - fuzzer_rng
    - std::vector::end
    - auto::begin
    - std::vector::insert
    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:76,1
    - Dst: fn
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:76,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:78,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:78,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:78,1
    - Dst: what
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:78,1
    - Dst: get_return_value
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:80,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:84,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:84,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:84,1
    - Dst: what
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:84,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: 89
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 89
    functionName: run_pkcs11_tests
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 4
    functionsReached:
    - fn
    - std::vector::push_back
    - Botan::fmt
    - get_return_value
    - what
    - Botan_Tests::Test::Result::Failure
    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:98,1
    - Dst: Module::Module
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:98,1
    - Dst: Botan::PKCS11::Slot::get_available_slots
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:99,1
    - Dst: std::make_unique<Slot>
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:100,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:100,1
    - Dst: std::make_unique<Session>
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:101,1
    - Dst: login
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:103,1
    - Dst: PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - login
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 105
    functionName: TestSession::TestSession
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 8
    functionsReached:
    - std::make_unique<Session>
    - PIN
    - std::make_unique<Slot>
    - Test::pkcs11_lib
    - std::vector::at
    - Module::Module
    - Botan::PKCS11::Slot::get_available_slots
    - login
    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: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    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: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    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:122,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 128
    functionName: test_module_ctor
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - 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:135,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:136,1
    - Dst: Module::get_info
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:138,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 142
    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:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 152
    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:159,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 163
    functionName: test_module_get_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - Module::get_info
    - Test::Result::test_ne
    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:169,1
    - 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: run_pkcs11_tests
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 167
    functionDepth: 2
    functionLinenumber: 167
    functionLinenumberEnd: 175
    functionName: Module_Tests::run
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - run_pkcs11_tests
    - STRING_AND_FUNCTION
    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:186,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:187,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 190
    functionName: test_slot_get_available_slots
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - std::vector::size
    - Botan::PKCS11::Slot::get_available_slots
    - Test::Result::test_gte
    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:196,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:198,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:199,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:200,1
    - Dst: Slot::slot_id
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:200,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 203
    functionName: test_slot_ctor
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - std::vector::at
    - Test::Result::test_is_eq
    - Botan::PKCS11::Slot::get_available_slots
    - Test::Result::test_success
    - Slot::slot_id
    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:209,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:210,1
    - Dst: Slot::get_slot_info
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:212,1
    - Dst: reinterpret_cast<char*>
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:213,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:214,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 217
    functionName: test_get_slot_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - std::vector::at
    - Botan::PKCS11::Slot::get_available_slots
    - std::string::empty
    - Test::Result::confirm
    - Slot::get_slot_info
    - reinterpret_cast<char*>
    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:220,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:225,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:225,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:225,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' module'
    argTypes:
    - Module
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 230
    functionName: get_invalid_slot_id
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - std::find
    - std::vector::begin
    - Botan::PKCS11::Slot::get_available_slots
    - std::vector::end
    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:237,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:241,1
    - Dst: Slot::get_slot_info
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 244
    functionName: test_slot_invalid_id
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - Slot::get_slot_info
    - get_invalid_slot_id
    - Test::Result::test_throws
    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:250,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:251,1
    - Dst: Slot::get_token_info
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:253,1
    - Dst: reinterpret_cast<char*>
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:254,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:255,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 258
    functionName: test_get_token_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - Slot::get_token_info
    - std::vector::at
    - Botan::PKCS11::Slot::get_available_slots
    - std::string::empty
    - Test::Result::confirm
    - reinterpret_cast<char*>
    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:264,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:265,1
    - Dst: Slot::get_mechanism_list
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:267,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:268,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 271
    functionName: test_get_mechanism_list
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - std::vector::at
    - Botan::PKCS11::Slot::get_available_slots
    - std::vector::empty
    - Test::Result::confirm
    - Slot::get_mechanism_list
    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:277,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:278,1
    - Dst: Slot::get_mechanism_info
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:280,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 284
    functionName: test_get_mechanisms_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_success
    - Slot::get_mechanism_info
    - Botan::PKCS11::Slot::get_available_slots
    - std::vector::at
    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:290,1
    - 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: run_pkcs11_tests
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 288
    functionDepth: 2
    functionLinenumber: 288
    functionLinenumberEnd: 299
    functionName: Slot_Tests::run
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - run_pkcs11_tests
    - STRING_AND_FUNCTION
    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:310,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:311,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:315,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:319,1
    - Dst: Botan::PKCS11::flags
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:322,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:324,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 333
    functionName: test_session_ctor
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - Botan::PKCS11::flags
    - Test::Result::test_success
    - Botan::PKCS11::Slot::get_available_slots
    - std::vector::at
    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:340,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 335
    functionDepth: 2
    functionLinenumber: 335
    functionLinenumberEnd: 346
    functionName: test_session_ctor_invalid_slot
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - get_invalid_slot_id
    - Test::Result::test_throws
    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:352,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:353,1
    - Dst: Session::release
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:356,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 348
    functionDepth: 1
    functionLinenumber: 348
    functionLinenumberEnd: 362
    functionName: test_session_release
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - Session::release
    - Test::Result::test_success
    - Botan::PKCS11::Slot::get_available_slots
    - std::vector::at
    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:368,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:369,1
    - Dst: Session::login
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:372,1
    - Dst: PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:372,1
    - Dst: Session::logoff
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:373,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:374,1
    - Dst: Session::login
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:376,1
    - Dst: SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:376,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 380
    functionName: test_session_login_logout
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - PIN
    - std::vector::at
    - Botan::PKCS11::Slot::get_available_slots
    - Session::logoff
    - Session::login
    - SO_PIN
    - Test::Result::test_success
    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:386,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:387,1
    - Dst: Session::get_info
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:390,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:391,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:391,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:392,1
    - Dst: static_cast<CK_STATE>
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:393,1
    - Dst: Session::login
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:395,1
    - Dst: PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:395,1
    - Dst: Session::get_info
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:396,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:397,1
    - Dst: static_cast<CK_STATE>
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:398,1
    - Dst: Session::logoff
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:400,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:401,1
    - Dst: Session::login
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:403,1
    - Dst: SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:403,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 407
    functionName: test_session_info
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - PIN
    - Session::get_info
    - std::vector::at
    - Test::Result::test_is_eq
    - Botan::PKCS11::Slot::get_available_slots
    - Session::logoff
    - static_cast<CK_STATE>
    - Session::login
    - SO_PIN
    - Test::Result::test_success
    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:413,1
    - 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: run_pkcs11_tests
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 411
    functionDepth: 2
    functionLinenumber: 411
    functionLinenumberEnd: 420
    functionName: Session_Tests::run
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - run_pkcs11_tests
    - STRING_AND_FUNCTION
    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:431,1
    - Dst: AttributeContainer::add_string
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:434,1
    - Dst: AttributeContainer::add_binary
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:437,1
    - Dst: AttributeContainer::add_bool
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:439,1
    - Dst: AttributeContainer::add_numeric
      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:444,1
    - Dst: AttributeContainer::add_numeric
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:445,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:447,1
    - Dst: AttributeContainer::count
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:447,1
    - Dst: AttributeContainer::attributes
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:449,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:450,1
    - Dst: at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:450,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:451,1
    - Dst: reinterpret_cast<uint64_t*>
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:451,1
    - Dst: at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:451,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:452,1
    - Dst: at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:452,1
    - Dst: Test::Result::test_int_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_int_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: Test::Result::test_int_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_int_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:456,1
    - Dst: Test::Result::test_int_eq
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:457,1
    - Dst: reinterpret_cast<uint64_t*>
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:457,1
    - Dst: at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:457,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 460
    functionName: test_attribute_container
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<uint64_t*>
    - AttributeContainer::add_numeric
    - at
    - AttributeContainer::add_bool
    - AttributeContainer::attributes
    - AttributeContainer::add_binary
    - AttributeContainer::add_string
    - Test::Result::test_eq
    - AttributeContainer::count
    - AttributeContainer::add_class
    - Test::Result::test_int_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:464,1
    - Dst: std::string::end
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:464,1
    - Dst: DER_Encoder
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:470,1
    - Dst: DataObjectProperties::set_application
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:473,1
    - Dst: DataObjectProperties::set_label
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:474,1
    - Dst: DataObjectProperties::set_value
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:475,1
    - Dst: DataObjectProperties::set_token
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:476,1
    - Dst: DataObjectProperties::set_modifiable
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:477,1
    - Dst: DataObjectProperties::set_object_id
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - ' label'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 481
    functionName: make_test_object
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - std::string::begin
    - DataObjectProperties::set_token
    - std::string::end
    - DataObjectProperties::set_modifiable
    - DataObjectProperties::set_application
    - DataObjectProperties::set_value
    - DER_Encoder
    - DataObjectProperties::set_label
    - DataObjectProperties::set_object_id
    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:490,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:491,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:492,1
    - Dst: Object::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:494,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 484
    functionDepth: 2
    functionLinenumber: 484
    functionLinenumberEnd: 498
    functionName: test_create_destroy_data_object
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_success
    - make_test_object
    - TestSession::session
    - 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:507,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:508,1
    - Dst: Object::get_attribute_value
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:511,1
    - Dst: secure_vector::begin
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:512,1
    - Dst: secure_vector::end
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:512,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:513,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:517,1
    - Dst: std::string::end
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:517,1
    - Dst: Object::set_attribute_value
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:518,1
    - Dst: Object::get_attribute_value
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:521,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:522,1
    - Dst: secure_vector::begin
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:522,1
    - Dst: secure_vector::end
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:522,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:523,1
    - Dst: Object::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:525,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 500
    functionDepth: 2
    functionLinenumber: 500
    functionLinenumberEnd: 527
    functionName: test_get_set_attribute_values
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - Object::get_attribute_value
    - std::string::begin
    - std::string
    - secure_vector::begin
    - Object::destroy
    - Object::set_attribute_value
    - Test::Result::test_eq
    - make_test_object
    - TestSession::session
    - secure_vector::end
    - std::string::end
    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:536,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:537,1
    - Dst: AttributeContainer::add_string
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:541,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:542,1
    - Dst: AttributeContainer::attributes
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:542,1
    - Dst: ObjectFinder::find
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:544,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:545,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:545,1
    - Dst: ObjectFinder::finish
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:546,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:548,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:548,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:549,1
    - Dst: Object::get_attribute_value
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:550,1
    - Dst: Object::get_attribute_value
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:551,1
    - Dst: Object::search<Object>
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:553,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:553,1
    - Dst: AttributeContainer::attributes
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:553,1
    - Dst: Test::Result::test_eq
      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: auto::at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:556,1
    - Dst: Object::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 529
    functionDepth: 2
    functionLinenumber: 529
    functionLinenumberEnd: 560
    functionName: test_object_finder
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - Object::get_attribute_value
    - auto::at
    - AttributeContainer::attributes
    - Object::destroy
    - AttributeContainer::add_string
    - make_test_object
    - TestSession::session
    - Test::Result::test_eq
    - ObjectFinder::find
    - ObjectFinder::finish
    - auto::size
    - Object::search<Object>
    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:569,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:570,1
    - Dst: AttributeContainer::add_string
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:574,1
    - Dst: Object::copy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:575,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:577,1
    - Dst: AttributeContainer::attributes
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:577,1
    - Dst: ObjectFinder::find
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:578,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:579,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:579,1
    - Dst: Object::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:581,1
    - Dst: TestSession::session
      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:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 562
    functionDepth: 2
    functionLinenumber: 562
    functionLinenumberEnd: 586
    functionName: test_object_copy
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - Object::copy
    - AttributeContainer::attributes
    - Object::destroy
    - AttributeContainer::add_string
    - make_test_object
    - TestSession::session
    - Test::Result::test_eq
    - ObjectFinder::find
    - auto::size
    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:593,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:596,1
    - 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:598,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:599,1
    - Dst: run_pkcs11_tests
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 591
    functionDepth: 2
    functionLinenumber: 591
    functionLinenumberEnd: 604
    functionName: Object_Tests::run
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - run_pkcs11_tests
    - STRING_AND_FUNCTION
    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:618,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:622,1
    - Dst: RSA_PrivateKey::check_key
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:622,1
    - Dst: RSA_PrivateKey::get_n
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:625,1
    - Dst: RSA_PrivateKey::get_d
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:625,1
    - Dst: RSA_PrivateKeyImportProperties::set_pub_exponent
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:626,1
    - Dst: RSA_PrivateKey::get_e
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:626,1
    - Dst: RSA_PrivateKeyImportProperties::set_prime_1
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:627,1
    - Dst: RSA_PrivateKey::get_p
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:627,1
    - Dst: RSA_PrivateKeyImportProperties::set_prime_2
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:628,1
    - Dst: RSA_PrivateKey::get_q
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:628,1
    - Dst: RSA_PrivateKeyImportProperties::set_coefficient
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:629,1
    - Dst: RSA_PrivateKey::get_c
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:629,1
    - Dst: RSA_PrivateKeyImportProperties::set_exponent_1
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:630,1
    - Dst: RSA_PrivateKey::get_d1
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:630,1
    - Dst: RSA_PrivateKeyImportProperties::set_exponent_2
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:631,1
    - Dst: RSA_PrivateKey::get_d2
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:631,1
    - Dst: RSA_PrivateKeyImportProperties::set_token
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:633,1
    - Dst: RSA_PrivateKeyImportProperties::set_private
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:634,1
    - Dst: RSA_PrivateKeyImportProperties::set_decrypt
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:635,1
    - Dst: RSA_PrivateKeyImportProperties::set_sign
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:636,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:638,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:639,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:640,1
    - Dst: PKCS11_RSA_PrivateKey::check_key
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:640,1
    - Dst: PKCS11_RSA_PrivateKey::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 644
    functionName: test_rsa_privkey_import
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - RSA_PrivateKeyImportProperties::set_pub_exponent
    - RSA_PrivateKeyImportProperties::set_token
    - RSA_PrivateKeyImportProperties::set_coefficient
    - RSA_PrivateKey::get_d1
    - RSA_PrivateKey::get_c
    - RSA_PrivateKeyImportProperties::set_prime_2
    - RSA_PrivateKey::check_key
    - RSA_PrivateKey::get_d2
    - PKCS11_RSA_PrivateKey::destroy
    - TestSession::session
    - RSA_PrivateKeyImportProperties::set_exponent_1
    - Botan_Tests::Test::new_rng
    - Test::Result::test_success
    - RSA_PrivateKeyImportProperties::set_prime_1
    - RSA_PrivateKeyImportProperties::set_private
    - RSA_PrivateKeyImportProperties::set_decrypt
    - RSA_PrivateKey::get_d
    - RSA_PrivateKey::get_n
    - PKCS11_RSA_PrivateKey::check_key
    - RSA_PrivateKey::get_p
    - RSA_PrivateKeyImportProperties::set_sign
    - RSA_PrivateKeyImportProperties::set_exponent_2
    - RSA_PrivateKey::get_q
    - Test::Result::confirm
    - RSA_PrivateKey::get_e
    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:651,1
    - Dst: RSA_PrivateKey::get_n
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:657,1
    - Dst: RSA_PrivateKey::get_d
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:657,1
    - Dst: RSA_PrivateKeyImportProperties::set_pub_exponent
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:658,1
    - Dst: RSA_PrivateKey::get_e
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:658,1
    - Dst: RSA_PrivateKeyImportProperties::set_prime_1
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:659,1
    - Dst: RSA_PrivateKey::get_p
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:659,1
    - Dst: RSA_PrivateKeyImportProperties::set_prime_2
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:660,1
    - Dst: RSA_PrivateKey::get_q
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:660,1
    - Dst: RSA_PrivateKeyImportProperties::set_coefficient
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:661,1
    - Dst: RSA_PrivateKey::get_c
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:661,1
    - Dst: RSA_PrivateKeyImportProperties::set_exponent_1
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:662,1
    - Dst: RSA_PrivateKey::get_d1
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:662,1
    - Dst: RSA_PrivateKeyImportProperties::set_exponent_2
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:663,1
    - Dst: RSA_PrivateKey::get_d2
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:663,1
    - Dst: RSA_PrivateKeyImportProperties::set_token
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:665,1
    - Dst: RSA_PrivateKeyImportProperties::set_private
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:666,1
    - Dst: RSA_PrivateKeyImportProperties::set_decrypt
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:667,1
    - Dst: RSA_PrivateKeyImportProperties::set_sign
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:668,1
    - Dst: RSA_PrivateKeyImportProperties::set_extractable
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:669,1
    - Dst: RSA_PrivateKeyImportProperties::set_sensitive
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:670,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:672,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:673,1
    - Dst: PKCS11_RSA_PrivateKey::check_key
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:673,1
    - Dst: PKCS11_RSA_PrivateKey::export_key
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:675,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:676,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:677,1
    - Dst: RSA_PrivateKey::check_key
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:677,1
    - Dst: PKCS11_RSA_PrivateKey::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 681
    functionName: test_rsa_privkey_export
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - RSA_PrivateKeyImportProperties::set_sensitive
    - RSA_PrivateKeyImportProperties::set_pub_exponent
    - RSA_PrivateKeyImportProperties::set_token
    - PKCS11_RSA_PrivateKey::export_key
    - RSA_PrivateKeyImportProperties::set_coefficient
    - RSA_PrivateKey::get_d1
    - RSA_PrivateKey::get_c
    - RSA_PrivateKeyImportProperties::set_prime_2
    - RSA_PrivateKey::check_key
    - RSA_PrivateKey::get_d2
    - PKCS11_RSA_PrivateKey::destroy
    - TestSession::session
    - RSA_PrivateKeyImportProperties::set_exponent_1
    - Botan_Tests::Test::new_rng
    - Test::Result::test_success
    - RSA_PrivateKeyImportProperties::set_prime_1
    - RSA_PrivateKeyImportProperties::set_private
    - RSA_PrivateKeyImportProperties::set_decrypt
    - RSA_PrivateKey::get_d
    - RSA_PrivateKeyImportProperties::set_extractable
    - RSA_PrivateKey::get_n
    - PKCS11_RSA_PrivateKey::check_key
    - RSA_PrivateKey::get_p
    - RSA_PrivateKeyImportProperties::set_sign
    - RSA_PrivateKeyImportProperties::set_exponent_2
    - RSA_PrivateKey::get_q
    - Test::Result::confirm
    - RSA_PrivateKey::get_e
    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:688,1
    - Dst: RSA_PrivateKey::get_n
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:694,1
    - Dst: RSA_PrivateKey::get_e
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:694,1
    - Dst: RSA_PublicKeyImportProperties::set_token
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:695,1
    - Dst: RSA_PublicKeyImportProperties::set_encrypt
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:696,1
    - Dst: RSA_PublicKeyImportProperties::set_private
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:697,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:699,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:700,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:701,1
    - Dst: PKCS11_RSA_PublicKey::check_key
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:701,1
    - Dst: PKCS11_RSA_PublicKey::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:703,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 683
    functionDepth: 1
    functionLinenumber: 683
    functionLinenumberEnd: 706
    functionName: test_rsa_pubkey_import
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - PKCS11_RSA_PublicKey::destroy
    - RSA_PublicKeyImportProperties::set_encrypt
    - RSA_PublicKeyImportProperties::set_private
    - TestSession::session
    - Test::Result::confirm
    - PKCS11_RSA_PublicKey::check_key
    - Botan_Tests::Test::new_rng
    - RSA_PublicKeyImportProperties::set_token
    - Test::Result::test_success
    - RSA_PrivateKey::get_n
    - RSA_PrivateKey::get_e
    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:713,1
    - Dst: RSA_PrivateKeyGenerationProperties::set_private
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:714,1
    - Dst: RSA_PrivateKeyGenerationProperties::set_sign
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:715,1
    - Dst: RSA_PrivateKeyGenerationProperties::set_decrypt
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:716,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:718,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:719,1
    - Dst: PKCS11_RSA_PrivateKey::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 708
    functionDepth: 1
    functionLinenumber: 708
    functionLinenumberEnd: 724
    functionName: test_rsa_generate_private_key
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - RSA_PrivateKeyGenerationProperties::set_decrypt
    - PKCS11_RSA_PrivateKey::destroy
    - TestSession::session
    - RSA_PrivateKeyGenerationProperties::set_private
    - Test::Result::test_success
    - 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:728,1
    - Dst: RSA_PublicKeyGenerationProperties::set_label
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:729,1
    - Dst: RSA_PublicKeyGenerationProperties::set_token
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:730,1
    - Dst: RSA_PublicKeyGenerationProperties::set_encrypt
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:731,1
    - Dst: RSA_PublicKeyGenerationProperties::set_verify
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:732,1
    - Dst: RSA_PublicKeyGenerationProperties::set_private
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:733,1
    - Dst: RSA_PrivateKeyGenerationProperties::set_label
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:736,1
    - Dst: RSA_PrivateKeyGenerationProperties::set_token
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:737,1
    - Dst: RSA_PrivateKeyGenerationProperties::set_private
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:738,1
    - Dst: RSA_PrivateKeyGenerationProperties::set_sign
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:739,1
    - Dst: RSA_PrivateKeyGenerationProperties::set_decrypt
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:740,1
    - Dst: Botan::PKCS11::generate_rsa_keypair
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:742,1
    - Dst: session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - ' test_session'
    argTypes:
    - TestSession
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 726
    functionDepth: 1
    functionLinenumber: 726
    functionLinenumberEnd: 743
    functionName: generate_rsa_keypair
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 1
    functionsReached:
    - RSA_PublicKeyGenerationProperties::set_pub_exponent
    - RSA_PrivateKeyGenerationProperties::set_label
    - RSA_PrivateKeyGenerationProperties::set_decrypt
    - Botan::PKCS11::generate_rsa_keypair
    - RSA_PublicKeyGenerationProperties::set_token
    - RSA_PublicKeyGenerationProperties::set_encrypt
    - RSA_PublicKeyGenerationProperties::set_verify
    - session
    - RSA_PublicKeyGenerationProperties::set_private
    - RSA_PrivateKeyGenerationProperties::set_private
    - RSA_PrivateKeyGenerationProperties::set_sign
    - RSA_PrivateKeyGenerationProperties::set_token
    - RSA_PublicKeyGenerationProperties::set_label
    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:749,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:750,1
    - Dst: PKCS11_RSA_KeyPair::first::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:752,1
    - Dst: PKCS11_RSA_KeyPair::second::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:753,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 745
    functionDepth: 2
    functionLinenumber: 745
    functionLinenumberEnd: 756
    functionName: test_rsa_generate_key_pair
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - PKCS11_RSA_KeyPair::second::destroy
    - Test::Result::test_success
    - PKCS11_RSA_KeyPair::first::destroy
    - generate_rsa_keypair
    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:763,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:765,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:773,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:775,1
    - Dst: what
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:775,1
    - Dst: PKCS11_RSA_KeyPair::second::set_use_software_padding
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:781,1
    - Dst: Botan::PK_Decryptor_EME::decrypt
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:783,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:791,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:791,1
    - Dst: what
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:791,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:794,1
    - Dst: std::iota
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:798,1
    - Dst: std::begin
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:798,1
    - Dst: std::end
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:798,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:798,1
    - Dst: encrypt_and_decrypt
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:799,1
    - Dst: encrypt_and_decrypt
      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:805,1
    - Dst: encrypt_and_decrypt
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:806,1
    - Dst: PKCS11_RSA_KeyPair::first::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:808,1
    - Dst: PKCS11_RSA_KeyPair::second::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:809,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 758
    functionDepth: 2
    functionLinenumber: 758
    functionLinenumberEnd: 812
    functionName: test_rsa_encrypt_decrypt
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - Botan::PK_Decryptor_EME::decrypt
    - Test::Result::test_failure
    - std::ostringstream::str
    - static_cast<uint8_t>
    - std::end
    - PKCS11_RSA_KeyPair::second::set_use_software_padding
    - Test::Result::test_eq
    - std::begin
    - encrypt_and_decrypt
    - PKCS11_RSA_KeyPair::first::destroy
    - what
    - std::iota
    - PKCS11_RSA_KeyPair::second::destroy
    - Botan_Tests::Test::new_rng
    - Botan::PK_Encryptor_EME::encrypt
    - generate_rsa_keypair
    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:819,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:821,1
    - Dst: std::iota
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:824,1
    - Dst: std::begin
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:824,1
    - Dst: std::end
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:824,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:824,1
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:830,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:830,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:830,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:831,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:831,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:831,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:831,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:833,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:839,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:839,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:839,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:840,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:841,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:841,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:841,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:841,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:841,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:843,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:846,1
    - Dst: sign_and_verify
      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:851,1
    - Dst: sign_and_verify
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:852,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: PKCS11_RSA_KeyPair::first::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:858,1
    - Dst: PKCS11_RSA_KeyPair::second::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:859,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 814
    functionDepth: 2
    functionLinenumber: 814
    functionLinenumberEnd: 862
    functionName: test_rsa_sign_verify
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - Botan::PK_Signer::update
    - static_cast<uint8_t>
    - std::end
    - std::vector::data
    - Botan::PK_Verifier::verify_message
    - Botan::PK_Signer::sign_message
    - Test::Result::test_eq
    - PKCS11_RSA_KeyPair::second::destroy
    - PKCS11_RSA_KeyPair::first::destroy
    - std::iota
    - std::begin
    - sign_and_verify
    - Botan_Tests::Test::new_rng
    - std::vector::size
    - generate_rsa_keypair
    - Botan::PK_Verifier::update
    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:868,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:869,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:870,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:871,1
    - 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: run_pkcs11_tests
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:876,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 866
    functionDepth: 2
    functionLinenumber: 866
    functionLinenumberEnd: 877
    functionName: PKCS11_RSA_Tests::run
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - run_pkcs11_tests
    - STRING_AND_FUNCTION
    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:888,1
    - Dst: _public_ec_point
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:888,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' pk'
    argTypes:
    - Botan::EC_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 886
    functionDepth: 0
    functionLinenumber: 886
    functionLinenumberEnd: 890
    functionName: encode_ec_point_in_octet_str
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - _public_ec_point
    - DER_Encoder
    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:900,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:903,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:904,1
    - Dst: ECDSA_PrivateKey::check_key
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:904,1
    - Dst: ECDSA_PrivateKey::DER_domain
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:907,1
    - Dst: ECDSA_PrivateKey::private_value
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:907,1
    - Dst: EC_PrivateKeyImportProperties::set_token
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:908,1
    - Dst: EC_PrivateKeyImportProperties::set_private
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:909,1
    - Dst: EC_PrivateKeyImportProperties::set_sign
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:910,1
    - Dst: EC_PrivateKeyImportProperties::set_label
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:914,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:916,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:917,1
    - Dst: PKCS11_ECDSA_PrivateKey::set_public_point
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:918,1
    - Dst: ECDSA_PrivateKey::_public_ec_point
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:918,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:919,1
    - Dst: PKCS11_ECDSA_PrivateKey::check_key
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:919,1
    - Dst: PKCS11_ECDSA_PrivateKey::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:921,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 895
    functionDepth: 1
    functionLinenumber: 895
    functionLinenumberEnd: 923
    functionName: test_ecdsa_privkey_import
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - EC_PrivateKeyImportProperties::set_token
    - EC_PrivateKeyImportProperties::set_sign
    - ECDSA_PrivateKey::_public_ec_point
    - Botan::EC_Group::from_name
    - ECDSA_PrivateKey::check_key
    - ECDSA_PrivateKey::private_value
    - PKCS11_ECDSA_PrivateKey::check_key
    - PKCS11_ECDSA_PrivateKey::destroy
    - TestSession::session
    - Test::Result::confirm
    - EC_PrivateKeyImportProperties::set_private
    - PKCS11_ECDSA_PrivateKey::set_public_point
    - Botan_Tests::Test::new_rng
    - ECDSA_PrivateKey::DER_domain
    - Test::Result::test_success
    - EC_PrivateKeyImportProperties::set_label
    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:930,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:933,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:935,1
    - Dst: ECDSA_PrivateKey::check_key
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:935,1
    - Dst: ECDSA_PrivateKey::DER_domain
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:937,1
    - Dst: ECDSA_PrivateKey::private_value
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:937,1
    - Dst: EC_PrivateKeyImportProperties::set_token
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:938,1
    - Dst: EC_PrivateKeyImportProperties::set_private
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:939,1
    - Dst: EC_PrivateKeyImportProperties::set_sign
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:940,1
    - Dst: EC_PrivateKeyImportProperties::set_extractable
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:941,1
    - Dst: EC_PrivateKeyImportProperties::set_label
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:945,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:947,1
    - Dst: PKCS11_ECDSA_PrivateKey::set_public_point
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:948,1
    - Dst: ECDSA_PrivateKey::_public_ec_point
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:948,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:949,1
    - Dst: PKCS11_ECDSA_PrivateKey::check_key
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:949,1
    - Dst: PKCS11_ECDSA_PrivateKey::export_key
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:951,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:952,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:953,1
    - Dst: ECDSA_PrivateKey::check_key
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:953,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:954,1
    - Dst: ECDSA_PrivateKey::private_key_bits
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:954,1
    - Dst: ECDSA_PrivateKey::private_key_bits
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:954,1
    - Dst: PKCS11_ECDSA_PrivateKey::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:956,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 925
    functionDepth: 1
    functionLinenumber: 925
    functionLinenumberEnd: 958
    functionName: test_ecdsa_privkey_export
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - PKCS11_ECDSA_PrivateKey::check_key
    - PKCS11_ECDSA_PrivateKey::export_key
    - EC_PrivateKeyImportProperties::set_sign
    - ECDSA_PrivateKey::check_key
    - ECDSA_PrivateKey::private_value
    - PKCS11_ECDSA_PrivateKey::destroy
    - TestSession::session
    - Botan_Tests::Test::new_rng
    - Test::Result::test_success
    - ECDSA_PrivateKey::_public_ec_point
    - ECDSA_PrivateKey::private_key_bits
    - EC_PrivateKeyImportProperties::set_private
    - EC_PrivateKeyImportProperties::set_extractable
    - PKCS11_ECDSA_PrivateKey::set_public_point
    - EC_PrivateKeyImportProperties::set_token
    - Botan::EC_Group::from_name
    - Test::Result::test_eq
    - Test::Result::confirm
    - ECDSA_PrivateKey::DER_domain
    - EC_PrivateKeyImportProperties::set_label
    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:965,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:968,1
    - Dst: encode_ec_point_in_octet_str
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:970,1
    - Dst: ECDSA_PrivateKey::DER_domain
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:973,1
    - Dst: EC_PublicKeyImportProperties::set_token
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:974,1
    - Dst: EC_PublicKeyImportProperties::set_verify
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:975,1
    - Dst: EC_PublicKeyImportProperties::set_private
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:976,1
    - Dst: EC_PublicKeyImportProperties::set_label
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:980,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:982,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:983,1
    - Dst: PKCS11_ECDSA_PublicKey::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:985,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 960
    functionDepth: 1
    functionLinenumber: 960
    functionLinenumberEnd: 987
    functionName: test_ecdsa_pubkey_import
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - EC_PublicKeyImportProperties::set_token
    - Botan::EC_Group::from_name
    - EC_PublicKeyImportProperties::set_verify
    - TestSession::session
    - EC_PublicKeyImportProperties::set_private
    - PKCS11_ECDSA_PublicKey::destroy
    - Botan_Tests::Test::new_rng
    - ECDSA_PrivateKey::DER_domain
    - Test::Result::test_success
    - encode_ec_point_in_octet_str
    - EC_PublicKeyImportProperties::set_label
    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:994,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:997,1
    - Dst: encode_ec_point_in_octet_str
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:999,1
    - Dst: ECDSA_PrivateKey::DER_domain
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1002,1
    - Dst: EC_PublicKeyImportProperties::set_token
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1003,1
    - Dst: EC_PublicKeyImportProperties::set_verify
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1004,1
    - Dst: EC_PublicKeyImportProperties::set_private
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1005,1
    - Dst: EC_PublicKeyImportProperties::set_label
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1009,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1011,1
    - Dst: PKCS11_ECDSA_PublicKey::export_key
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1013,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1014,1
    - Dst: PKCS11_ECDSA_PublicKey::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 989
    functionDepth: 1
    functionLinenumber: 989
    functionLinenumberEnd: 1019
    functionName: test_ecdsa_pubkey_export
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - EC_PublicKeyImportProperties::set_token
    - PKCS11_ECDSA_PublicKey::export_key
    - Botan::EC_Group::from_name
    - EC_PublicKeyImportProperties::set_verify
    - TestSession::session
    - EC_PublicKeyImportProperties::set_private
    - PKCS11_ECDSA_PublicKey::destroy
    - Botan_Tests::Test::new_rng
    - ECDSA_PrivateKey::DER_domain
    - Test::Result::test_success
    - encode_ec_point_in_octet_str
    - EC_PublicKeyImportProperties::set_label
    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:1026,1
    - Dst: EC_PrivateKeyGenerationProperties::set_private
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1027,1
    - Dst: EC_PrivateKeyGenerationProperties::set_sign
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1028,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1030,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1030,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1031,1
    - Dst: PKCS11_ECDSA_PrivateKey::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1033,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 1021
    functionDepth: 1
    functionLinenumber: 1021
    functionLinenumberEnd: 1036
    functionName: test_ecdsa_generate_private_key
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::from_name
    - EC_PrivateKeyGenerationProperties::set_token
    - TestSession::session
    - EC_PrivateKeyGenerationProperties::set_sign
    - PKCS11_ECDSA_PrivateKey::destroy
    - EC_PrivateKeyGenerationProperties::set_private
    - Test::Result::test_success
    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:1041,1
    - Dst: EC_PublicKeyGenerationProperties::set_label
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1042,1
    - Dst: EC_PublicKeyGenerationProperties::set_token
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1043,1
    - Dst: EC_PublicKeyGenerationProperties::set_verify
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1044,1
    - Dst: EC_PublicKeyGenerationProperties::set_private
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1045,1
    - Dst: EC_PublicKeyGenerationProperties::set_modifiable
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1046,1
    - Dst: EC_PrivateKeyGenerationProperties::set_label
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1049,1
    - Dst: EC_PrivateKeyGenerationProperties::set_token
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1050,1
    - Dst: EC_PrivateKeyGenerationProperties::set_private
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1051,1
    - Dst: EC_PrivateKeyGenerationProperties::set_sensitive
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1052,1
    - Dst: EC_PrivateKeyGenerationProperties::set_extractable
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1053,1
    - Dst: EC_PrivateKeyGenerationProperties::set_sign
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1054,1
    - Dst: EC_PrivateKeyGenerationProperties::set_modifiable
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1055,1
    - Dst: Botan::PKCS11::generate_ecdsa_keypair
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1057,1
    - Dst: session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1057,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: 1058
      start: 1038
    functionDepth: 1
    functionLinenumber: 1038
    functionLinenumberEnd: 1058
    functionName: generate_ecdsa_keypair
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 1
    functionsReached:
    - EC_PublicKeyGenerationProperties::set_verify
    - EC_PrivateKeyGenerationProperties::set_sensitive
    - EC_PublicKeyGenerationProperties::set_modifiable
    - EC_PublicKeyGenerationProperties::set_token
    - Botan::EC_Group::from_name
    - EC_PublicKeyGenerationProperties::set_private
    - EC_PrivateKeyGenerationProperties::set_label
    - EC_PrivateKeyGenerationProperties::set_token
    - EC_PrivateKeyGenerationProperties::set_extractable
    - EC_PrivateKeyGenerationProperties::set_sign
    - session
    - EC_PrivateKeyGenerationProperties::set_private
    - EC_PrivateKeyGenerationProperties::set_modifiable
    - EC_PublicKeyGenerationProperties::set_label
    - Botan::PKCS11::generate_ecdsa_keypair
    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:1065,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1066,1
    - Dst: generate_ecdsa_keypair
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1069,1
    - Dst: PKCS11_ECDSA_KeyPair::first::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1071,1
    - Dst: PKCS11_ECDSA_KeyPair::second::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1072,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1074,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1060
    functionDepth: 2
    functionLinenumber: 1060
    functionLinenumberEnd: 1077
    functionName: test_ecdsa_generate_keypair
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - PKCS11_ECDSA_KeyPair::second::destroy
    - std::vector::push_back
    - PKCS11_ECDSA_KeyPair::first::destroy
    - generate_ecdsa_keypair
    - Test::Result::test_success
    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:1084,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1085,1
    - Dst: TestSession::slot
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1087,1
    - Dst: get_slot_info
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1088,1
    - Dst: reinterpret_cast<char*>
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1089,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1091,1
    - Dst: generate_ecdsa_keypair
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1095,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1101,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1104,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1106,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1111,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1113,1
    - Dst: std::string::find
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1118,1
    - Dst: sign_and_verify
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1119,1
    - Dst: sign_and_verify
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1120,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:1126,1
    - Dst: PKCS11_ECDSA_KeyPair::first::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1129,1
    - Dst: PKCS11_ECDSA_KeyPair::second::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - enc
    - ' test_name'
    argTypes:
    - EC_Group_Encoding
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 1079
    functionDepth: 2
    functionLinenumber: 1079
    functionLinenumberEnd: 1134
    functionName: test_ecdsa_sign_verify_core
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - PKCS11_ECDSA_KeyPair::second::destroy
    - std::vector::push_back
    - get_slot_info
    - Botan::PK_Verifier::verify_message
    - TestSession::slot
    - Botan::PK_Signer::sign_message
    - Test::Result::test_eq
    - PKCS11_ECDSA_KeyPair::first::destroy
    - generate_ecdsa_keypair
    - std::string::find
    - sign_and_verify
    - Botan_Tests::Test::new_rng
    - reinterpret_cast<char*>
    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:1138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 1136
    functionDepth: 3
    functionLinenumber: 1136
    functionLinenumberEnd: 1139
    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:1143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1144
      start: 1141
    functionDepth: 3
    functionLinenumber: 1141
    functionLinenumberEnd: 1144
    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:1150,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1151,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1152,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1153,1
    - 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: run_pkcs11_tests
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1148
    functionDepth: 2
    functionLinenumber: 1148
    functionLinenumberEnd: 1160
    functionName: PKCS11_ECDSA_Tests::run
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - run_pkcs11_tests
    - STRING_AND_FUNCTION
    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:1176,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1179,1
    - Dst: ECDH_PrivateKey::DER_domain
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1182,1
    - Dst: ECDH_PrivateKey::private_value
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1182,1
    - Dst: EC_PrivateKeyImportProperties::set_token
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1183,1
    - Dst: EC_PrivateKeyImportProperties::set_private
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1184,1
    - Dst: EC_PrivateKeyImportProperties::set_derive
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1185,1
    - Dst: EC_PrivateKeyImportProperties::set_label
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1189,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1191,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1192,1
    - Dst: PKCS11_ECDH_PrivateKey::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1196
      start: 1171
    functionDepth: 1
    functionLinenumber: 1171
    functionLinenumberEnd: 1196
    functionName: test_ecdh_privkey_import
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - EC_PrivateKeyImportProperties::set_token
    - Botan::EC_Group::from_name
    - ECDH_PrivateKey::private_value
    - ECDH_PrivateKey::DER_domain
    - TestSession::session
    - EC_PrivateKeyImportProperties::set_derive
    - EC_PrivateKeyImportProperties::set_private
    - PKCS11_ECDH_PrivateKey::destroy
    - Botan_Tests::Test::new_rng
    - Test::Result::test_success
    - EC_PrivateKeyImportProperties::set_label
    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:1203,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1206,1
    - Dst: ECDH_PrivateKey::DER_domain
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1209,1
    - Dst: ECDH_PrivateKey::private_value
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1209,1
    - Dst: EC_PrivateKeyImportProperties::set_token
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1210,1
    - Dst: EC_PrivateKeyImportProperties::set_private
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1211,1
    - Dst: EC_PrivateKeyImportProperties::set_derive
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1212,1
    - Dst: EC_PrivateKeyImportProperties::set_extractable
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1213,1
    - Dst: EC_PrivateKeyImportProperties::set_label
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1217,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1219,1
    - Dst: PKCS11_ECDH_PrivateKey::export_key
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1221,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1222,1
    - Dst: PKCS11_ECDH_PrivateKey::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1198
    functionDepth: 1
    functionLinenumber: 1198
    functionLinenumberEnd: 1226
    functionName: test_ecdh_privkey_export
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - EC_PrivateKeyImportProperties::set_token
    - PKCS11_ECDH_PrivateKey::destroy
    - Botan::EC_Group::from_name
    - ECDH_PrivateKey::private_value
    - ECDH_PrivateKey::DER_domain
    - TestSession::session
    - EC_PrivateKeyImportProperties::set_derive
    - EC_PrivateKeyImportProperties::set_private
    - PKCS11_ECDH_PrivateKey::export_key
    - EC_PrivateKeyImportProperties::set_extractable
    - Botan_Tests::Test::new_rng
    - Test::Result::test_success
    - EC_PrivateKeyImportProperties::set_label
    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:1233,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1236,1
    - Dst: encode_ec_point_in_octet_str
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1238,1
    - Dst: ECDH_PrivateKey::DER_domain
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1241,1
    - Dst: EC_PublicKeyImportProperties::set_token
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1242,1
    - Dst: EC_PublicKeyImportProperties::set_private
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1243,1
    - Dst: EC_PublicKeyImportProperties::set_derive
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1244,1
    - Dst: EC_PublicKeyImportProperties::set_label
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1248,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1250,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1251,1
    - Dst: PKCS11_ECDH_PublicKey::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1228
    functionDepth: 1
    functionLinenumber: 1228
    functionLinenumberEnd: 1255
    functionName: test_ecdh_pubkey_import
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - EC_PublicKeyImportProperties::set_derive
    - EC_PublicKeyImportProperties::set_token
    - PKCS11_ECDH_PublicKey::destroy
    - Botan::EC_Group::from_name
    - ECDH_PrivateKey::DER_domain
    - TestSession::session
    - EC_PublicKeyImportProperties::set_private
    - Botan_Tests::Test::new_rng
    - Test::Result::test_success
    - encode_ec_point_in_octet_str
    - EC_PublicKeyImportProperties::set_label
    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:1262,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1265,1
    - Dst: encode_ec_point_in_octet_str
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1267,1
    - Dst: ECDH_PrivateKey::DER_domain
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1270,1
    - Dst: EC_PublicKeyImportProperties::set_token
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1271,1
    - Dst: EC_PublicKeyImportProperties::set_derive
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1272,1
    - Dst: EC_PublicKeyImportProperties::set_private
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1273,1
    - Dst: EC_PublicKeyImportProperties::set_label
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1277,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1279,1
    - Dst: PKCS11_ECDH_PublicKey::export_key
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1281,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1282,1
    - Dst: PKCS11_ECDH_PublicKey::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1257
    functionDepth: 1
    functionLinenumber: 1257
    functionLinenumberEnd: 1287
    functionName: test_ecdh_pubkey_export
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - EC_PublicKeyImportProperties::set_derive
    - PKCS11_ECDH_PublicKey::export_key
    - EC_PublicKeyImportProperties::set_token
    - PKCS11_ECDH_PublicKey::destroy
    - Botan::EC_Group::from_name
    - ECDH_PrivateKey::DER_domain
    - TestSession::session
    - EC_PublicKeyImportProperties::set_private
    - Botan_Tests::Test::new_rng
    - Test::Result::test_success
    - encode_ec_point_in_octet_str
    - EC_PublicKeyImportProperties::set_label
    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:1294,1
    - Dst: EC_PrivateKeyGenerationProperties::set_private
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1295,1
    - Dst: EC_PrivateKeyGenerationProperties::set_derive
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1296,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1298,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1298,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1299,1
    - Dst: PKCS11_ECDH_PrivateKey::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1304
      start: 1289
    functionDepth: 1
    functionLinenumber: 1289
    functionLinenumberEnd: 1304
    functionName: test_ecdh_generate_private_key
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - EC_PrivateKeyGenerationProperties::set_derive
    - Botan::EC_Group::from_name
    - EC_PrivateKeyGenerationProperties::set_token
    - TestSession::session
    - PKCS11_ECDH_PrivateKey::destroy
    - EC_PrivateKeyGenerationProperties::set_private
    - Test::Result::test_success
    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:1307,1
    - Dst: EC_PublicKeyGenerationProperties::set_label
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1308,1
    - Dst: EC_PublicKeyGenerationProperties::set_token
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1309,1
    - Dst: EC_PublicKeyGenerationProperties::set_derive
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1310,1
    - Dst: EC_PublicKeyGenerationProperties::set_private
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1311,1
    - Dst: EC_PublicKeyGenerationProperties::set_modifiable
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1312,1
    - Dst: EC_PrivateKeyGenerationProperties::set_label
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1315,1
    - Dst: EC_PrivateKeyGenerationProperties::set_token
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1316,1
    - Dst: EC_PrivateKeyGenerationProperties::set_private
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1317,1
    - Dst: EC_PrivateKeyGenerationProperties::set_sensitive
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1318,1
    - Dst: EC_PrivateKeyGenerationProperties::set_extractable
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1319,1
    - Dst: EC_PrivateKeyGenerationProperties::set_derive
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1320,1
    - Dst: EC_PrivateKeyGenerationProperties::set_modifiable
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1321,1
    - Dst: Botan::PKCS11::generate_ecdh_keypair
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1323,1
    - Dst: session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - ' test_session'
    - ' label'
    argTypes:
    - TestSession
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1324
      start: 1306
    functionDepth: 1
    functionLinenumber: 1306
    functionLinenumberEnd: 1324
    functionName: generate_ecdh_keypair
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 1
    functionsReached:
    - EC_PrivateKeyGenerationProperties::set_sensitive
    - EC_PublicKeyGenerationProperties::set_derive
    - EC_PublicKeyGenerationProperties::set_modifiable
    - EC_PrivateKeyGenerationProperties::set_derive
    - EC_PublicKeyGenerationProperties::set_token
    - Botan::EC_Group::from_name
    - EC_PublicKeyGenerationProperties::set_private
    - Botan::PKCS11::generate_ecdh_keypair
    - EC_PrivateKeyGenerationProperties::set_label
    - EC_PrivateKeyGenerationProperties::set_token
    - EC_PrivateKeyGenerationProperties::set_extractable
    - session
    - EC_PrivateKeyGenerationProperties::set_private
    - EC_PrivateKeyGenerationProperties::set_modifiable
    - 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:1330,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1331,1
    - Dst: PKCS11_ECDH_KeyPair::first::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1333,1
    - Dst: PKCS11_ECDH_KeyPair::second::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1337
      start: 1326
    functionDepth: 2
    functionLinenumber: 1326
    functionLinenumberEnd: 1337
    functionName: test_ecdh_generate_keypair
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - generate_ecdh_keypair
    - PKCS11_ECDH_KeyPair::second::destroy
    - Test::Result::test_success
    - PKCS11_ECDH_KeyPair::first::destroy
    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:1343,1
    - Dst: generate_ecdh_keypair
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1344,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1346,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1352,1
    - Dst: PKCS11_ECDH_KeyPair::first::raw_public_key_bits
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1352,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1353,1
    - Dst: PKCS11_ECDH_KeyPair::first::raw_public_key_bits
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1353,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1356,1
    - Dst: PKCS11_ECDH_KeyPair::first::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1358,1
    - Dst: PKCS11_ECDH_KeyPair::second::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1359,1
    - Dst: PKCS11_ECDH_KeyPair::first::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1360,1
    - Dst: PKCS11_ECDH_KeyPair::second::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1339
    functionDepth: 2
    functionLinenumber: 1339
    functionLinenumberEnd: 1364
    functionName: test_ecdh_derive
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - Botan::PK_Key_Agreement::derive_key
    - PKCS11_ECDH_KeyPair::second::destroy
    - PKCS11_ECDH_KeyPair::first::raw_public_key_bits
    - Test::Result::test_eq
    - PKCS11_ECDH_KeyPair::first::destroy
    - generate_ecdh_keypair
    - Botan_Tests::Test::new_rng
    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:1370,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1371,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1372,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1373,1
    - 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: run_pkcs11_tests
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1379
      start: 1368
    functionDepth: 2
    functionLinenumber: 1368
    functionLinenumberEnd: 1379
    functionName: PKCS11_ECDH_Tests::run
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - run_pkcs11_tests
    - STRING_AND_FUNCTION
    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:1392,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1393,1
    - Dst: PKCS11_RNG::is_seeded
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1393,1
    - Dst: PKCS11_RNG::randomize
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1396,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1396,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1396,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1397,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1400
      start: 1388
    functionDepth: 1
    functionLinenumber: 1388
    functionLinenumberEnd: 1400
    functionName: test_rng_generate_random
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - PKCS11_RNG::randomize
    - Test::Result::test_ne
    - std::vector::data
    - PKCS11_RNG::is_seeded
    - TestSession::session
    - Test::Result::confirm
    - std::vector<uint8_t>
    - 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:1406,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1408,1
    - Dst: PKCS11_RNG::is_seeded
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1408,1
    - Dst: PKCS11_RNG::clear
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1409,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1410,1
    - Dst: PKCS11_RNG::is_seeded
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1410,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1413,1
    - Dst: PKCS11_RNG::reseed
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1414,1
    - Dst: Botan::Entropy_Sources::global_sources
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1414,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1414,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1418,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1419,1
    - Dst: PKCS11_RNG::add_entropy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1420,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1420,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1420,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1424
      start: 1402
    functionDepth: 1
    functionLinenumber: 1402
    functionLinenumberEnd: 1424
    functionName: test_rng_add_entropy
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timer::milliseconds
    - auto::data
    - Botan::Entropy_Sources::global_sources
    - auto::random_vec
    - PKCS11_RNG::add_entropy
    - Test::Result::test_eq
    - PKCS11_RNG::is_seeded
    - TestSession::session
    - Test::Result::confirm
    - Test::Result::test_success
    - Botan_Tests::Test::new_rng
    - PKCS11_RNG::clear
    - auto::size
    - PKCS11_RNG::reseed
    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:1432,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1433,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1436,1
    - Dst: HMAC_DRBG::is_seeded
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1436,1
    - Dst: HMAC_DRBG::random_vec
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1437,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1438,1
    - Dst: HMAC_DRBG::is_seeded
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1438,1
    - Dst: std::string::begin
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1441,1
    - Dst: std::string::end
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1441,1
    - Dst: HMAC_DRBG::add_entropy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1442,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1442,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1442,1
    - Dst: HMAC_DRBG::random_vec
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1444,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1445,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1448
      start: 1428
    functionDepth: 1
    functionLinenumber: 1428
    functionLinenumberEnd: 1448
    functionName: test_pkcs11_hmac_drbg
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_ne
    - std::string::begin
    - std::vector::data
    - Test::Result::test_eq
    - std::string::end
    - TestSession::session
    - Botan::MessageAuthenticationCode::create
    - std::vector<uint8_t>
    - HMAC_DRBG::add_entropy
    - HMAC_DRBG::is_seeded
    - std::vector::size
    - HMAC_DRBG::random_vec
    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:1456,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1458,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1459,1
    - Dst: run_pkcs11_tests
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1462,1
    - Dst: BOTAN_REGISTER_SERIALIZED_TEST
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1466,1
    - Dst: Botan::PKCS11::Slot::get_available_slots
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1474,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1475,1
    - Dst: Botan::PKCS11::set_pin
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1477,1
    - Dst: SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1477,1
    - Dst: TEST_PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1477,1
    - Dst: Test::Result::test_success
      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: 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::Slot::get_available_slots
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1490,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1491,1
    - Dst: Botan::PKCS11::initialize_token
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1493,1
    - Dst: SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1493,1
    - Dst: PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1493,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1494,1
    - Dst: Botan::PKCS11::Slot::get_available_slots
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1503,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1504,1
    - Dst: Botan::PKCS11::change_pin
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1506,1
    - Dst: PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1506,1
    - Dst: TEST_PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1506,1
    - Dst: Test::Result::test_success
      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: TEST_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::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1510,1
    - Dst: Botan::PKCS11::Slot::get_available_slots
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1519,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1520,1
    - Dst: Botan::PKCS11::change_so_pin
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1522,1
    - Dst: SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1522,1
    - Dst: TEST_SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1522,1
    - Dst: Test::Result::test_success
      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: TEST_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::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1526,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1535,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1536,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1537,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1538,1
    - Dst: run_pkcs11_tests
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1540,1
    - Dst: BOTAN_REGISTER_SERIALIZED_TEST
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1544,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1556,1
    - Dst: X509_CertificateProperties::set_label
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1558,1
    - Dst: X509_CertificateProperties::set_private
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1559,1
    - Dst: X509_CertificateProperties::set_token
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1560,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1562,1
    - Dst: Test::Result::test_success
      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: PKCS11_X509_Certificate::handle
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1565,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1566,1
    - Dst: PKCS11_X509_Certificate::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1568,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1578,1
    - Dst: run_pkcs11_tests
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1580,1
    - Dst: BOTAN_REGISTER_SERIALIZED_TEST
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1584,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1592
      start: 1453
    functionDepth: 2
    functionLinenumber: 1453
    functionLinenumberEnd: 1592
    functionName: run
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 39
    functionsReached:
    - Botan::PKCS11::initialize_token
    - SO_PIN
    - TEST_SO_PIN
    - Botan_Tests::Test::data_file
    - TestSession::session
    - STRING_AND_FUNCTION
    - TEST_PIN
    - BOTAN_REGISTER_SERIALIZED_TEST
    - Botan::PKCS11::set_pin
    - Test::Result::test_success
    - X509_CertificateProperties::set_private
    - PIN
    - std::vector::at
    - X509_CertificateProperties::set_label
    - Botan::PKCS11::Slot::get_available_slots
    - X509_CertificateProperties::set_token
    - run_pkcs11_tests
    - PKCS11_X509_Certificate::handle
    - Botan::PKCS11::change_so_pin
    - Botan::PKCS11::change_pin
    - Test::Result::test_eq
    - PKCS11_X509_Certificate::destroy
    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:1474,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1475,1
    - Dst: Botan::PKCS11::set_pin
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1477,1
    - Dst: SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1477,1
    - Dst: TEST_PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1477,1
    - Dst: Test::Result::test_success
      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: 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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1484
      start: 1470
    functionDepth: 1
    functionLinenumber: 1470
    functionLinenumberEnd: 1484
    functionName: test_set_pin
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - PIN
    - std::vector::at
    - Botan::PKCS11::Slot::get_available_slots
    - SO_PIN
    - TEST_PIN
    - Botan::PKCS11::set_pin
    - Test::Result::test_success
    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:1490,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1491,1
    - Dst: Botan::PKCS11::initialize_token
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1493,1
    - Dst: SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1493,1
    - Dst: PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1493,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1497
      start: 1486
    functionDepth: 1
    functionLinenumber: 1486
    functionLinenumberEnd: 1497
    functionName: test_initialize
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - PIN
    - std::vector::at
    - Botan::PKCS11::Slot::get_available_slots
    - Botan::PKCS11::initialize_token
    - SO_PIN
    - Test::Result::test_success
    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:1503,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1504,1
    - Dst: Botan::PKCS11::change_pin
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1506,1
    - Dst: PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1506,1
    - Dst: TEST_PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1506,1
    - Dst: Test::Result::test_success
      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: TEST_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::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1513
      start: 1499
    functionDepth: 1
    functionLinenumber: 1499
    functionLinenumberEnd: 1513
    functionName: test_change_pin
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - PIN
    - std::vector::at
    - Botan::PKCS11::change_pin
    - Botan::PKCS11::Slot::get_available_slots
    - TEST_PIN
    - Test::Result::test_success
    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:1519,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1520,1
    - Dst: Botan::PKCS11::change_so_pin
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1522,1
    - Dst: SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1522,1
    - Dst: TEST_SO_PIN
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1522,1
    - Dst: Test::Result::test_success
      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: TEST_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::Result::test_success
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1529
      start: 1515
    functionDepth: 1
    functionLinenumber: 1515
    functionLinenumberEnd: 1529
    functionName: test_change_so_pin
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - std::vector::at
    - Botan::PKCS11::change_so_pin
    - TEST_SO_PIN
    - Botan::PKCS11::Slot::get_available_slots
    - SO_PIN
    - Test::Result::test_success
    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:1535,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1536,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1537,1
    - Dst: STRING_AND_FUNCTION
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1538,1
    - Dst: run_pkcs11_tests
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1541
      start: 1533
    functionDepth: 2
    functionLinenumber: 1533
    functionLinenumberEnd: 1541
    functionName: PKCS11_Token_Management_Tests::run
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - run_pkcs11_tests
    - STRING_AND_FUNCTION
    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:1556,1
    - Dst: X509_CertificateProperties::set_label
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1558,1
    - Dst: X509_CertificateProperties::set_private
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1559,1
    - Dst: X509_CertificateProperties::set_token
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1560,1
    - Dst: TestSession::session
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1562,1
    - Dst: Test::Result::test_success
      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: PKCS11_X509_Certificate::handle
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1565,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1566,1
    - Dst: PKCS11_X509_Certificate::destroy
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1572
      start: 1550
    functionDepth: 1
    functionLinenumber: 1550
    functionLinenumberEnd: 1572
    functionName: test_x509_import
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::data_file
    - X509_CertificateProperties::set_label
    - X509_CertificateProperties::set_token
    - Test::Result::test_eq
    - TestSession::session
    - Test::Result::test_success
    - PKCS11_X509_Certificate::destroy
    - X509_CertificateProperties::set_private
    - PKCS11_X509_Certificate::handle
    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:1578,1
    - Dst: run_pkcs11_tests
      Src: /src/botan/src/tests/test_pkcs11_high_level.cpp:1580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1581
      start: 1576
    functionDepth: 2
    functionLinenumber: 1576
    functionLinenumberEnd: 1581
    functionName: PKCS11_X509_Tests::run
    functionSourceFile: /src/botan/src/tests/test_pkcs11_high_level.cpp
    functionUses: 0
    functionsReached:
    - run_pkcs11_tests
    - STRING_AND_FUNCTION
    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: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    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: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    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: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    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: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    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: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    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: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    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: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    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: 61
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 61
    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: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    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: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    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: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    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: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_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: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_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:92,1
    - Dst: auto*::m_buf::assign
      Src: /src/botan/src/tests/test_ffi.cpp:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - buf
    - len
    argTypes:
    - void*
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 96
    functionName: Botan_Tests::ViewBytesSink::write_fn
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - auto*::m_buf::assign
    - static_cast<ViewBytesSink*>
    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: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    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: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    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: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: Botan_Tests::ViewStringSink::get
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string_view
    signature: std::string_view get()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ViewStringSink*>
      Src: /src/botan/src/tests/test_ffi.cpp:119,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - str
    - len
    argTypes:
    - void*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 124
    functionName: Botan_Tests::ViewStringSink::write_fn
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - static_cast<ViewStringSink*>
    linkageType: ''
    returnType: int
    signature: int write_fn(void* ctx, const char* str, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::FFI_Test::name
      Src: /src/botan/src/tests/test_ffi.cpp:135,1
    - Dst: botan_rng_init
      Src: /src/botan/src/tests/test_ffi.cpp:138,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ffi.cpp:139,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_ffi.cpp:143,1
    - Dst: ffi_test
      Src: /src/botan/src/tests/test_ffi.cpp:144,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_ffi.cpp:145,1
    - Dst: botan_rng_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 150
    functionName: Botan_Tests::FFI_Test::run
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::end_timer
    - Test::Result::test_failure
    - botan_rng_init
    - ffi_test
    - botan_rng_destroy
    - Botan_Tests::FFI_Test::name
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:160,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:165,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:165,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:168,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:172,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:173,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:173,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:177,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:177,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:178,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:179,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:186,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:190,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:191,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:193,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:193,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:195,1
    - Dst: test_gte
      Src: /src/botan/src/tests/test_ffi.cpp:197,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:197,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:201,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:201,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:201,1
    - Dst: botan_privkey_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:202,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:207,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:211,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:212,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:212,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:222,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:226,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:227,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:229,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:231,1
    - Dst: botan_privkey_load
      Src: /src/botan/src/tests/test_ffi.cpp:234,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:234,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:234,1
    - Dst: botan_privkey_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:235,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:238,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:242,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:243,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:245,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:247,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:248,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:264,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:266,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:272,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:273,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:277,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:280,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:283,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:285,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:285,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:285,1
    - Dst: botan_privkey_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:286,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:291,1
    - Dst: test_gte
      Src: /src/botan/src/tests/test_ffi.cpp:292,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:295,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:299,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:299,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: 300
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 300
    functionName: Botan_Tests::ffi_test_pubkey_export
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - test_eq
    - std::string::c_str
    - std::vector::data
    - botan_privkey_destroy
    - std::vector::resize
    - test_gte
    - botan_privkey_load
    - TEST_FFI_OK
    - 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: 304
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 304
    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_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:307,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:308,1
    - Dst: botan_ffi_api_version
      Src: /src/botan/src/tests/test_ffi.cpp:308,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:309,1
    - Dst: botan_version_major
      Src: /src/botan/src/tests/test_ffi.cpp:309,1
    - Dst: Botan::version_major
      Src: /src/botan/src/tests/test_ffi.cpp:309,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:310,1
    - Dst: botan_version_minor
      Src: /src/botan/src/tests/test_ffi.cpp:310,1
    - Dst: Botan::version_minor
      Src: /src/botan/src/tests/test_ffi.cpp:310,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:311,1
    - Dst: botan_version_patch
      Src: /src/botan/src/tests/test_ffi.cpp:311,1
    - Dst: Botan::version_patch
      Src: /src/botan/src/tests/test_ffi.cpp:311,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:312,1
    - Dst: botan_version_string
      Src: /src/botan/src/tests/test_ffi.cpp:312,1
    - Dst: Botan::version_cstr
      Src: /src/botan/src/tests/test_ffi.cpp:312,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:313,1
    - Dst: botan_version_datestamp
      Src: /src/botan/src/tests/test_ffi.cpp:313,1
    - Dst: Botan::version_datestamp
      Src: /src/botan/src/tests/test_ffi.cpp:313,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:314,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:314,1
    - Dst: botan_ffi_api_version
      Src: /src/botan/src/tests/test_ffi.cpp:314,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:316,1
    - Dst: botan_ffi_api_version
      Src: /src/botan/src/tests/test_ffi.cpp:317,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:320,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:320,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:321,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:321,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:322,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:322,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:323,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:323,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:325,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:325,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:330,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:330,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:330,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:330,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:331,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:331,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:331,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:331,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:334,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:334,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:334,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:335,1
    - Dst: std::string::resize
      Src: /src/botan/src/tests/test_ffi.cpp:342,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:342,1
    - Dst: TEST_FFI_OK
      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: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:343,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:344,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:346,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:346,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:346,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:346,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 348
    functionName: Botan_Tests::FFI_Utils_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - test_eq
    - botan_version_patch
    - Botan::version_major
    - botan_ffi_supports_api
    - std::vector::data
    - Botan::version_datestamp
    - confirm
    - botan_version_datestamp
    - std::string::resize
    - Botan::version_patch
    - botan_version_string
    - botan_ffi_api_version
    - botan_version_minor
    - TEST_FFI_OK
    - std::vector::size
    - Botan::version_cstr
    - botan_version_major
    - Botan::version_minor
    - std::string::data
    - test_is_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: 353
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 353
    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:367,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:369,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:370,1
    - Dst: botan_rng_init
      Src: /src/botan/src/tests/test_ffi.cpp:372,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:373,1
    - Dst: botan_rng_init
      Src: /src/botan/src/tests/test_ffi.cpp:377,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:378,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:381,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:382,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:386,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:386,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:386,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:387,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:389,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:391,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:393,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:393,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:393,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:395,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:398,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:399,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:399,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:399,1
    - Dst: TEST_FFI_OK
      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_OK
      Src: /src/botan/src/tests/test_ffi.cpp:405,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:409,1
    - Dst: static_cast<size_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:417,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_ffi.cpp:422,1
    - Dst: static_cast<size_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:423,1
    - Dst: static_cast<size_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:427,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:429,1
    - Dst: Botan::clear_mem
      Src: /src/botan/src/tests/test_ffi.cpp:432,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:432,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:432,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:433,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:433,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:433,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:434,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:435,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:436,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:438,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:439,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:441,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:442,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:445,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:446,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:448,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:449,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:454,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:456,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:456,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:456,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:457,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_ffi.cpp:461,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_ffi.cpp:462,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_ffi.cpp:463,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:464,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:469,1
    - Dst: Botan::clear_mem
      Src: /src/botan/src/tests/test_ffi.cpp:470,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:470,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:470,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:472,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:472,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:472,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:473,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:475,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:478,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:479,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:483,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:486,1
    - Dst: Botan::clear_mem
      Src: /src/botan/src/tests/test_ffi.cpp:487,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:487,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:487,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:489,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:489,1
    - Dst: std::vector::size
      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_OK
      Src: /src/botan/src/tests/test_ffi.cpp:492,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:495,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:496,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:499,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:503,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:503,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:503,1
    - Dst: botan_tpm2_supports_crypto_backend
      Src: /src/botan/src/tests/test_ffi.cpp:504,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:505,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:506,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:508,1
    - Dst: tpm2_test_rng
      Src: /src/botan/src/tests/test_ffi.cpp:511,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:512,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:519,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:519,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:519,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:520,1
    - Dst: botan_tpm2_supports_crypto_backend
      Src: /src/botan/src/tests/test_ffi.cpp:524,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:525,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:526,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:528,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:532,1
    - Dst: tpm2_test_rng
      Src: /src/botan/src/tests/test_ffi.cpp:533,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:534,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:538,1
    - Dst: Esys_Finalize
      Src: /src/botan/src/tests/test_ffi.cpp:541,1
    - Dst: Tss2_TctiLdr_Finalize
      Src: /src/botan/src/tests/test_ffi.cpp:543,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:548,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:549,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:550,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:551,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 115
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 552
    functionName: Botan_Tests::FFI_RNG_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - test_eq
    - auto::empty
    - botan_rng_init
    - BOTAN_UNUSED
    - auto::c_str
    - REQUIRE_FFI_OK
    - std::vector::data
    - Esys_Finalize
    - TEST_FFI_FAIL
    - confirm
    - test_note
    - static_cast<size_t*>
    - Tss2_TctiLdr_Finalize
    - Botan_Tests::test_encoding_options
    - Botan::clear_mem
    - TEST_FFI_OK
    - std::vector::size
    - botan_tpm2_supports_crypto_backend
    - TEST_FFI_INIT
    - tpm2_test_rng
    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: 557
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 557
    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:561,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:561,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:562,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:563,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:564,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:565,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:566,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:569,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:570,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:572,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:573,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 559
    functionDepth: 1
    functionLinenumber: 559
    functionLinenumberEnd: 575
    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_RC
    - 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: 580
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 580
    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:627,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:627,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:636,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_ffi.cpp:636,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:640,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:641,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:641,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:641,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:646,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:657,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:660,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 663
    functionName: Botan_Tests::FFI_ZFEC_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - REQUIRE_FFI_OK
    - std::vector::data
    - TEST_FFI_FAIL
    - std::to_string
    - 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: 668
      start: 668
    functionDepth: 0
    functionLinenumber: 668
    functionLinenumberEnd: 668
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:691,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:691,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:696,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:696,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:699,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:699,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:700,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:701,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:704,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:704,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:705,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:706,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:707,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:709,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:710,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 711
    functionName: Botan_Tests::FFI_CRL_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - REQUIRE_FFI_OK
    - Botan_Tests::Test::data_file
    - reinterpret_cast<const uint8_t*>
    - TEST_FFI_OK
    - 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: 716
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 716
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:722,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:722,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:728,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:728,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:729,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:729,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:731,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:732,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:733,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:733,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:735,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:736,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:737,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:738,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:742,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:742,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:743,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:743,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:746,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:747,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:748,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:749,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:752,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:753,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:754,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:754,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:756,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:759,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:760,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:761,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:765,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:765,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:766,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:768,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:769,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:769,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:774,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:774,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:775,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:775,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:776,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:776,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:778,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:780,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:781,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:782,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_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:786,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:787,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:788,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:789,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:790,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:791,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:792,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 42
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 718
    functionDepth: 1
    functionLinenumber: 718
    functionLinenumberEnd: 793
    functionName: Botan_Tests::FFI_Cert_Validation_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - test_eq
    - REQUIRE_FFI_OK
    - Botan_Tests::Test::data_file
    - botan_x509_cert_validation_status
    - TEST_FFI_OK
    - confirm
    - 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: 798
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 798
    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:802,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:802,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:804,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:808,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:812,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:812,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:813,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:816,1
    - Dst: std::string::resize
      Src: /src/botan/src/tests/test_ffi.cpp:819,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:820,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:820,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:821,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:824,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:825,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:828,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:829,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:832,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:837,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:837,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:838,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:838,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:839,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_ffi.cpp:839,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:842,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:847,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:847,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:848,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_ffi.cpp:850,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:850,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:854,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:858,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:861,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:866,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:866,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:867,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_ffi.cpp:868,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:868,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:868,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:872,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:877,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:877,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:881,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:882,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:883,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:888,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:893,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:893,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:894,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_ffi.cpp:894,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:894,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:897,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:901,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:902,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:902,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:903,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_ffi.cpp:903,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:903,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:906,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:910,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:910,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:912,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:913,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:914,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:916,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 50
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 800
    functionDepth: 1
    functionLinenumber: 800
    functionLinenumberEnd: 918
    functionName: Botan_Tests::FFI_ECDSA_Certificate_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - test_eq
    - std::string::resize
    - Botan::hex_encode
    - Botan_Tests::Test::data_file
    - std::string::data
    - std::vector::data
    - std::vector::resize
    - reinterpret_cast<const char*>
    - TEST_FFI_OK
    - std::vector::size
    - confirm
    - 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: 923
      start: 923
    functionDepth: 0
    functionLinenumber: 923
    functionLinenumberEnd: 923
    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:927,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:929,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:929,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:930,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:932,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:933,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:936,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:938,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 925
    functionDepth: 1
    functionLinenumber: 925
    functionLinenumberEnd: 940
    functionName: Botan_Tests::FFI_PKCS_Hashid_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - TEST_FFI_RC
    - std::vector::data
    - std::vector::resize
    - std::vector::size
    - 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: 945
      start: 945
    functionDepth: 0
    functionLinenumber: 945
    functionLinenumberEnd: 945
    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:951,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:954,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:955,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:956,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:960,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:961,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:962,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:963,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:972,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:972,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:973,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:973,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:980,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:981,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:982,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:984,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:986,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:988,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:988,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:988,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:989,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:989,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:989,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:990,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:993,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:994,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:996,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:997,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:999,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1001,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1001,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1001,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1002,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1002,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1002,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1003,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1006,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1007,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1009,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1010,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1013,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1014,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1016,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1018,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1018,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1021,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1023,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1024,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1025,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1027,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1030,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1032,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1032,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1032,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1033,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1033,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1033,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1034,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1037,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1038,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1040,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1041,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1044,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1046,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1048,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1052,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 947
    functionDepth: 1
    functionLinenumber: 947
    functionLinenumberEnd: 1054
    functionName: Botan_Tests::FFI_CBC_Cipher_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - TEST_FFI_RC
    - std::vector::data
    - test_int_eq
    - std::vector::resize
    - TEST_FFI_OK
    - std::vector::size
    - 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: 1059
      start: 1059
    functionDepth: 0
    functionLinenumber: 1059
    functionLinenumberEnd: 1059
    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:1065,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:1068,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1068,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1069,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:1071,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1072,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1072,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1073,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1074,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1074,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1084,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1085,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1087,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1090,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1091,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1092,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1094,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1095,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1097,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1098,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1100,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1102,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1104,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1105,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1106,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1109,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1112,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1113,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1114,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1116,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1118,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1125,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1125,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1125,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1128,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1128,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1128,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1129,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1131,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1131,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1131,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1132,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1135,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1136,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1138,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1139,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1141,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1143,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1143,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1143,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: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1144,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1145,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1145,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1145,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1146,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1149,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1150,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1152,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1153,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1156,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1157,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1159,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1160,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1162,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1163,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1165,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: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1169,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1170,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1170,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1170,1
    - Dst: TEST_FFI_OK
      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:1172,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1175,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1176,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1178,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1179,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1182,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1182,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1183,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1183,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1184,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1186,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1190,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 53
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1061
    functionDepth: 1
    functionLinenumber: 1061
    functionLinenumberEnd: 1192
    functionName: Botan_Tests::FFI_GCM_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - std::array::data
    - TEST_FFI_RC
    - Botan::hex_decode
    - std::vector::data
    - test_int_eq
    - std::vector::resize
    - std::array::size
    - TEST_FFI_FAIL
    - TEST_FFI_OK
    - std::vector::size
    - 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: 1197
      start: 1197
    functionDepth: 0
    functionLinenumber: 1197
    functionLinenumberEnd: 1197
    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:1203,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:1206,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1206,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1207,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:1209,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1210,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1210,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1211,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1212,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:1212,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1212,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1222,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1223,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1225,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1228,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1229,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1230,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1232,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1233,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1235,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1236,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1238,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1241,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1244,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1245,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1246,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1248,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1250,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1257,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1257,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1257,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1260,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1260,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1260,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1261,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1263,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1263,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1263,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1264,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1267,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1268,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1270,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1271,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1273,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1275,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1275,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1275,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1276,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1276,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1276,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1277,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1277,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1277,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1278,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1281,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1282,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1284,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1285,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1288,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1289,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1291,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1293,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1295,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1296,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1298,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1302,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1302,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1302,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1303,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1303,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1303,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1304,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1304,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1304,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1305,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1308,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1309,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1311,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1312,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1315,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1315,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1316,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1316,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1317,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1319,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1323,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 49
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1325
      start: 1199
    functionDepth: 1
    functionLinenumber: 1199
    functionLinenumberEnd: 1325
    functionName: Botan_Tests::FFI_ChaCha20Poly1305_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - std::array::data
    - TEST_FFI_RC
    - Botan::hex_decode
    - std::string
    - std::vector::data
    - test_int_eq
    - std::vector::resize
    - std::array::size
    - TEST_FFI_FAIL
    - TEST_FFI_OK
    - std::vector::size
    - 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: 1330
      start: 1330
    functionDepth: 0
    functionLinenumber: 1330
    functionLinenumberEnd: 1330
    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:1336,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1345,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1346,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1348,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1351,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1352,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1353,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1355,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1356,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1357,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1358,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1360,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1361,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1363,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1364,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1366,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1368,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1370,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1373,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1374,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1375,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1376,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1379,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1386,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1386,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1386,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1387,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1387,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1387,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1388,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1391,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1392,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1394,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1395,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1397,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1399,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1399,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1399,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1400,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1400,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1400,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1401,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1404,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1405,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1407,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1408,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1411,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1412,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1414,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1415,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1417,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1418,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1420,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1424,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1424,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1424,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1425,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1425,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1425,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1426,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1429,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1430,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1432,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1433,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1436,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1436,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1437,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1437,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1438,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1440,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1444,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 44
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1446
      start: 1332
    functionDepth: 1
    functionLinenumber: 1332
    functionLinenumberEnd: 1446
    functionName: Botan_Tests::FFI_EAX_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - TEST_FFI_RC
    - Botan::hex_decode
    - std::vector::data
    - test_int_eq
    - std::vector::resize
    - TEST_FFI_OK
    - std::vector::size
    - 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: 1451
      start: 1451
    functionDepth: 0
    functionLinenumber: 1451
    functionLinenumberEnd: 1451
    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:1461,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1463,1
    - Dst: c_str
      Src: /src/botan/src/tests/test_ffi.cpp:1463,1
    - Dst: botan_cipher_is_authenticated
      Src: /src/botan/src/tests/test_ffi.cpp:1467,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ffi.cpp:1468,1
    - Dst: botan_cipher_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:1469,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1480,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1481,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1482,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1483,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1484,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1486,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1490,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1490,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1490,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1491,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1491,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1491,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1494,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1494,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1494,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1495,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1495,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1495,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1499,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1499,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1499,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1502,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1502,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1502,1
    - Dst: botan_cipher_requires_entire_message
      Src: /src/botan/src/tests/test_ffi.cpp:1505,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1506,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:1519,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_ffi.cpp:1525,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1525,1
    - Dst: std::span
      Src: /src/botan/src/tests/test_ffi.cpp:1526,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:1527,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1529,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:1532,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1533,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:1535,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1536,1
    - Dst: Test::Result::test_gt
      Src: /src/botan/src/tests/test_ffi.cpp:1539,1
    - Dst: Test::Result::test_lte
      Src: /src/botan/src/tests/test_ffi.cpp:1540,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1540,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_ffi.cpp:1541,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1544,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1546,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_ffi.cpp:1547,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1556,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1560,1
    - Dst: std::span::data
      Src: /src/botan/src/tests/test_ffi.cpp:1563,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:1564,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1567,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:1567,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1569,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:1569,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1570,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:1572,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1574,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:1577,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1578,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1584,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1585,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1586,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1588,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1592,1
    - Dst: c_str
      Src: /src/botan/src/tests/test_ffi.cpp:1592,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1594,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1595,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1597,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1601,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1601,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1601,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1602,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1602,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1602,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1604,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:1616,1
    - Dst: std::span
      Src: /src/botan/src/tests/test_ffi.cpp:1622,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:1623,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1625,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:1628,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1629,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:1631,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1632,1
    - Dst: Test::Result::test_gt
      Src: /src/botan/src/tests/test_ffi.cpp:1635,1
    - Dst: Test::Result::test_lte
      Src: /src/botan/src/tests/test_ffi.cpp:1636,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1636,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_ffi.cpp:1637,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1640,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1642,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_ffi.cpp:1643,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1647,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:1647,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:1648,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1653,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:1656,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1657,1
    - Dst: std::span::data
      Src: /src/botan/src/tests/test_ffi.cpp:1659,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:1660,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1663,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:1663,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1664,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1665,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1667,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1669,1
    - Dst: merge
      Src: /src/botan/src/tests/test_ffi.cpp:1671,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 69
    argCount: 2
    argNames:
    - ' merged_result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1673
      start: 1453
    functionDepth: 1
    functionLinenumber: 1453
    functionLinenumberEnd: 1673
    functionName: Botan_Tests::FFI_AEAD_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - TEST_FFI_RC
    - std::span::size
    - Test::Result::test_failure
    - Test::Result::test_lte
    - std::span::subspan
    - botan_cipher_is_authenticated
    - auto::size
    - std::span
    - std::span::first
    - c_str
    - botan_cipher_requires_entire_message
    - merge
    - std::vector::data
    - Test::Result::test_gt
    - auto::data
    - std::span::data
    - TEST_FFI_OK
    - std::vector::size
    - TEST_FFI_INIT
    - Botan::fmt
    - botan_cipher_destroy
    - Test::Result::test_eq
    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: 1678
      start: 1678
    functionDepth: 0
    functionLinenumber: 1678
    functionLinenumberEnd: 1678
    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:1683,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1684,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1685,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1686,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1688,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1691,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1696,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1697,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1699,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1702,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1707,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1707,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1707,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1708,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1708,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1708,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1711,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1712,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1712,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1712,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1714,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1715,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1717,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1718,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1718,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1720,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1720,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1721,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1721,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1722,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1724,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1726
      start: 1680
    functionDepth: 1
    functionLinenumber: 1680
    functionLinenumberEnd: 1726
    functionName: Botan_Tests::FFI_StreamCipher_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - TEST_FFI_RC
    - std::vector::data
    - test_int_eq
    - TEST_FFI_OK
    - std::vector::size
    - 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: 1731
      start: 1731
    functionDepth: 0
    functionLinenumber: 1731
    functionLinenumberEnd: 1731
    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:1737,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:1738,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1740,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:1743,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1743,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1744,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:1746,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1747,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1747,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1748,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1749,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1749,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1753,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1754,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1758,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1759,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1765,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:1765,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1766,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1768,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:1769,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:1769,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1770,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1770,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1772,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1779,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1780,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:1780,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1782,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1783,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:1784,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:1784,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1786,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:1787,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:1787,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1788,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1788,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1789,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1791,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:1792,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:1792,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1793,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1793,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1794,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1796,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1800,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1802
      start: 1733
    functionDepth: 1
    functionLinenumber: 1733
    functionLinenumberEnd: 1802
    functionName: Botan_Tests::FFI_HashFunction_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - std::array::data
    - std::strlen
    - reinterpret_cast<const uint8_t*>
    - std::vector::data
    - std::array::size
    - TEST_FFI_FAIL
    - TEST_FFI_OK
    - 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: 1807
      start: 1807
    functionDepth: 0
    functionLinenumber: 1807
    functionLinenumberEnd: 1807
    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:1814,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:1815,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1817,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:1820,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1820,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1821,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:1823,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1824,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1824,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1825,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1826,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1826,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1832,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1833,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1834,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1835,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1837,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1838,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1839,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1842,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1843,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1850,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1851,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:1852,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:1852,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1853,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1855,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1856,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:1857,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:1857,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1858,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1858,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1860,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1865,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1867
      start: 1809
    functionDepth: 1
    functionLinenumber: 1809
    functionLinenumberEnd: 1867
    functionName: Botan_Tests::FFI_MAC_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - std::array::data
    - TEST_FFI_RC
    - std::strlen
    - reinterpret_cast<const uint8_t*>
    - std::vector::data
    - std::array::size
    - TEST_FFI_FAIL
    - TEST_FFI_OK
    - 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: 1872
      start: 1872
    functionDepth: 0
    functionLinenumber: 1872
    functionLinenumberEnd: 1872
    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:1879,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1879,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1879,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1880,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1885,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1886,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1886,1
    - Dst: std::vector::size
      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: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1890,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1890,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1891,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1893
      start: 1874
    functionDepth: 1
    functionLinenumber: 1874
    functionLinenumberEnd: 1893
    functionName: Botan_Tests::FFI_Scrypt_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - std::vector::data
    - TEST_FFI_OK
    - std::vector::size
    - 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: 1898
      start: 1898
    functionDepth: 0
    functionLinenumber: 1898
    functionLinenumberEnd: 1898
    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:1905,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1909,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1911,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1913,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1914,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:1915,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1916,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1917,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1919,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:1926,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1927,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:1928,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1929,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1930,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1933,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1935,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1936,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:1937,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1938,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1939,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:1943,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_ffi.cpp:1943,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_ffi.cpp:1944,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1947,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1948,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1950,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1952,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1954,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1955,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1956,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1957,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1958,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1959,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1962,1
    - Dst: std::string::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1967,1
    - Dst: botan_bcrypt_generate
      Src: /src/botan/src/tests/test_ffi.cpp:1970,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:1970,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:1970,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:1970,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1973,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1975,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:1975,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:1975,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:1976,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:1976,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1978
      start: 1900
    functionDepth: 1
    functionLinenumber: 1900
    functionLinenumberEnd: 1978
    functionName: Botan_Tests::FFI_KDF_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - std::string::resize
    - reinterpret_cast<uint8_t*>
    - botan_bcrypt_generate
    - std::string::data
    - std::string::c_str
    - std::vector::data
    - std::vector::resize
    - TEST_FFI_FAIL
    - std::to_string
    - TEST_FFI_OK
    - std::vector::size
    - TEST_FFI_INIT
    - test_note
    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: 1983
      start: 1983
    functionDepth: 0
    functionLinenumber: 1983
    functionLinenumberEnd: 1983
    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:1988,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:1991,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1991,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1992,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:1994,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1995,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1995,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1996,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1997,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1997,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2003,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2005,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2006,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2006,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2007,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2008,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2008,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2010,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2011,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2013,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2018,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2019,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2020,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2021,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2023,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2024,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2025,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2027,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2027,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2027,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2029,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2029,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2029,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2030,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2032,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2032,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2032,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2033,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2035,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2035,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2035,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2036,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2038,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2038,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2038,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2039,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2041,1
    - Dst: botan_block_cipher_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2042,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 34
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2044
      start: 1985
    functionDepth: 1
    functionLinenumber: 1985
    functionLinenumberEnd: 2044
    functionName: Botan_Tests::FFI_Blockcipher_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - botan_block_cipher_destroy
    - test_eq
    - std::array::data
    - TEST_FFI_RC
    - std::vector::data
    - std::array::size
    - TEST_FFI_FAIL
    - TEST_FFI_OK
    - std::vector::size
    - 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: 2049
      start: 2049
    functionDepth: 0
    functionLinenumber: 2049
    functionLinenumberEnd: 2049
    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:2053,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2058,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2059,1
    - Dst: reinterpret_cast<botan_hash_t>
      Src: /src/botan/src/tests/test_ffi.cpp:2059,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2060,1
    - Dst: botan_error_description
      Src: /src/botan/src/tests/test_ffi.cpp:2065,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2066,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2072,1
    - Dst: std::set::contains
      Src: /src/botan/src/tests/test_ffi.cpp:2072,1
    - Dst: std::set::insert
      Src: /src/botan/src/tests/test_ffi.cpp:2073,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2077
      start: 2051
    functionDepth: 1
    functionLinenumber: 2051
    functionLinenumberEnd: 2077
    functionName: Botan_Tests::FFI_ErrorHandling_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - std::set::contains
    - botan_error_description
    - std::set::insert
    - botan_mp_init
    - confirm
    - 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: 2082
      start: 2082
    functionDepth: 0
    functionLinenumber: 2082
    functionLinenumberEnd: 2082
    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:2089,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2091,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2094,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2101,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2103,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2105,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2108,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2108,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2110,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2111,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_ffi.cpp:2111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2112
      start: 2084
    functionDepth: 1
    functionLinenumber: 2084
    functionLinenumberEnd: 2112
    functionName: Botan_Tests::FFI_Base64_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - TEST_FFI_RC
    - std::string
    - strlen
    - reinterpret_cast<const char*>
    - TEST_FFI_OK
    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: 2117
      start: 2117
    functionDepth: 0
    functionLinenumber: 2117
    functionLinenumberEnd: 2117
    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:2123,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2125,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2131,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2132,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2135,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2135,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2137,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2138,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_ffi.cpp:2138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2139
      start: 2119
    functionDepth: 1
    functionLinenumber: 2119
    functionLinenumberEnd: 2139
    functionName: Botan_Tests::FFI_Hex_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - TEST_FFI_RC
    - std::string
    - strlen
    - reinterpret_cast<const char*>
    - TEST_FFI_OK
    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: 2144
      start: 2144
    functionDepth: 0
    functionLinenumber: 2144
    functionLinenumberEnd: 2144
    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:2151,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2152,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2153,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2154,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2155,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2156,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2157,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2159,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2161,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2162,1
    - Dst: botan_mp_set_from_int
      Src: /src/botan/src/tests/test_ffi.cpp:2164,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2165,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2166,1
    - Dst: botan_mp_add_u32
      Src: /src/botan/src/tests/test_ffi.cpp:2168,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2169,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2170,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2173,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2174,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2174,1
    - Dst: botan_mp_sub_u32
      Src: /src/botan/src/tests/test_ffi.cpp:2176,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2177,1
    - Dst: botan_mp_add_u32
      Src: /src/botan/src/tests/test_ffi.cpp:2178,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2179,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2180,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2183,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2184,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2184,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2186,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2187,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2188,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2189,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2190,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2194,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2196,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2197,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2199,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2200,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2202,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2203,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2204,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2205,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2206,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2209,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2210,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2211,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2212,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2213,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2215,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2216,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2218,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2219,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2221,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2222,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2224,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2225,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2227,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2229,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2233,1
    - Dst: test_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_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2237,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2237,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2240,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2241,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2243,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2244,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2245,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2246,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2247,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2248,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2248,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2250,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2251,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2252,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2252,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2255,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2256,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2259,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2261,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2263,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2264,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2264,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2266,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2268,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2269,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2269,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2270,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2273,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2274,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2277,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2278,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2278,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2281,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2282,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2282,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2284,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2285,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2287,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2288,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2288,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2289,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2291,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2293,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2294,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2294,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2296,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2298,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2299,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2299,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2301,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2303,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2304,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2304,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2307,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2310,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2311,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2314,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2315,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2317,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2319,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2320,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2320,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2322,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2324,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2325,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2325,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2327,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2328,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2331,1
    - Dst: botan_mp_to_bin
      Src: /src/botan/src/tests/test_ffi.cpp:2332,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2332,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2333,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2335,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2336,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2338,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2339,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2339,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2342,1
    - Dst: botan_mp_rand_bits
      Src: /src/botan/src/tests/test_ffi.cpp:2345,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2346,1
    - Dst: test_lte
      Src: /src/botan/src/tests/test_ffi.cpp:2347,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2349,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2350,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2351,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_ffi.cpp:2351,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2353,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2354,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2355,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_ffi.cpp:2355,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2357,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2358,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2359,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2360,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 151
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2362
      start: 2146
    functionDepth: 1
    functionLinenumber: 2146
    functionLinenumberEnd: 2362
    functionName: Botan_Tests::FFI_MP_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - botan_mp_set_from_int
    - TEST_FFI_RC
    - test_eq
    - botan_mp_sub_u32
    - botan_mp_destroy
    - static_cast<size_t>
    - botan_mp_to_bin
    - std::string
    - botan_mp_add_u32
    - std::vector::data
    - test_lte
    - std::vector::resize
    - botan_mp_rand_bits
    - TEST_FFI_OK
    - botan_mp_init
    - confirm
    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: 2367
      start: 2367
    functionDepth: 0
    functionLinenumber: 2367
    functionLinenumberEnd: 2367
    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:2373,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:2374,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2377,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2378,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2383,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:2384,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2386,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2389,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2390,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2392,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2393,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2394,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2396,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2397,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2399,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2400,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2402
      start: 2369
    functionDepth: 1
    functionLinenumber: 2369
    functionLinenumberEnd: 2402
    functionName: Botan_Tests::FFI_FPE_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - botan_mp_destroy
    - botan_mp_set_from_str
    - TEST_FFI_OK
    - botan_mp_init
    - 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: 2407
      start: 2407
    functionDepth: 0
    functionLinenumber: 2407
    functionLinenumberEnd: 2407
    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:2410,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2415,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2415,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2415,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2420,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2421,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2423,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2424,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2426,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2427,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2428,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2431
      start: 2409
    functionDepth: 1
    functionLinenumber: 2409
    functionLinenumberEnd: 2431
    functionName: Botan_Tests::FFI_TOTP_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - TEST_FFI_RC
    - std::vector::data
    - TEST_FFI_OK
    - std::vector::size
    - confirm
    - 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: 2436
      start: 2436
    functionDepth: 0
    functionLinenumber: 2436
    functionLinenumberEnd: 2436
    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:2439,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2445,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2445,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2445,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2449,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2450,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2451,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2452,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2453,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2454,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2455,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2456,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2460,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2461,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2462,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2463,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2464,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2465,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2468
      start: 2438
    functionDepth: 1
    functionLinenumber: 2438
    functionLinenumberEnd: 2468
    functionName: Botan_Tests::FFI_HOTP_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - TEST_FFI_RC
    - std::vector::data
    - TEST_FFI_OK
    - std::vector::size
    - confirm
    - 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: 2473
      start: 2473
    functionDepth: 0
    functionLinenumber: 2473
    functionLinenumberEnd: 2473
    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:2482,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2487,1
    - Dst: test_eq
      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_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2496,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2498
      start: 2475
    functionDepth: 1
    functionLinenumber: 2475
    functionLinenumberEnd: 2498
    functionName: Botan_Tests::FFI_Keywrap_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_OK
    - test_eq
    - 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: 2503
      start: 2503
    functionDepth: 0
    functionLinenumber: 2503
    functionLinenumberEnd: 2503
    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:2507,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2508,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2510,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2511,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2514,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2515,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2518,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2519,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2523
      start: 2505
    functionDepth: 1
    functionLinenumber: 2505
    functionLinenumberEnd: 2523
    functionName: Botan_Tests::FFI_XMSS_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_OK
    - TEST_FFI_RC
    - confirm
    - 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: 2528
      start: 2528
    functionDepth: 0
    functionLinenumber: 2528
    functionLinenumberEnd: 2528
    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:2533,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2534,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2537,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2538,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2541,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2544,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2545,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:2547,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2554,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2555,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2556,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2557,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2558,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2560,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2561,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2563,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2564,1
    - Dst: TEST_FFI_OK
      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: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2567,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2573,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2574,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2575,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2576,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2578,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2579,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2580,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2581,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2584,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2585,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2588,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2592,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2593,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2595,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2596,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2600,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2601,1
    - Dst: botan_privkey_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2602,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2604,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2605,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2608,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2609,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2611,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2612,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2613,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2614,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2615,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2618,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2623,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2624,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2627,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2627,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2628,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2631,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2634,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2635,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2636,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2639,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2640,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2640,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2641,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2641,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2644,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2645,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2645,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2646,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2646,1
    - Dst: TEST_FFI_INIT
      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: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2652,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2652,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2655,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2655,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2658,1
    - Dst: std::vector::data
      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: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2659,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2660,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2663,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2665,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2665,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2667,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2668,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2668,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2668,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2669,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2671,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2674,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2677,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2680,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2681,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2682,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2683,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 84
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2685
      start: 2530
    functionDepth: 1
    functionLinenumber: 2530
    functionLinenumberEnd: 2685
    functionName: Botan_Tests::FFI_RSA_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - std::array::data
    - test_eq
    - botan_mp_destroy
    - std::vector::data
    - ffi_test_pubkey_export
    - botan_privkey_destroy
    - std::vector::resize
    - std::array::size
    - TEST_FFI_FAIL
    - std::vector::size
    - TEST_FFI_OK
    - botan_mp_init
    - confirm
    - 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: 2690
      start: 2690
    functionDepth: 0
    functionLinenumber: 2690
    functionLinenumberEnd: 2690
    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:2695,1
    - Dst: Botan_Tests::FFI_DSA_Test::do_dsa_test
      Src: /src/botan/src/tests/test_ffi.cpp:2696,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2699,1
    - Dst: Botan_Tests::FFI_DSA_Test::do_dsa_test
      Src: /src/botan/src/tests/test_ffi.cpp:2700,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2702
      start: 2692
    functionDepth: 1
    functionLinenumber: 2692
    functionLinenumberEnd: 2702
    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:2706,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2709,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2710,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:2712,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2719,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2720,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2721,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2722,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2723,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2725,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2726,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2727,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2728,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2729,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2732,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2733,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2735,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2736,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2738,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2739,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2741,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2742,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2743,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2746,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2747,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2750,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2751,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2753,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2754,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2755,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2756,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2757,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2764,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2766,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2766,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2766,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2769,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2770,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2773,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2773,1
    - Dst: test_lte
      Src: /src/botan/src/tests/test_ffi.cpp:2774,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2775,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2777,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_ffi.cpp:2782,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2782,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2783,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2783,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2783,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2784,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2784,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2784,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2788,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2788,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2788,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2789,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2790,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2790,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2793,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2793,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2793,1
    - Dst: TEST_FFI_RC
      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:2795,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2798,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2798,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2798,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2799,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2800,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2800,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2803,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2803,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2803,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2804,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:2804,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2806,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2809,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2810,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2811,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2812,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: 2813
      start: 2705
    functionDepth: 1
    functionLinenumber: 2705
    functionLinenumberEnd: 2813
    functionName: Botan_Tests::FFI_DSA_Test::do_dsa_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 1
    functionsReached:
    - TEST_FFI_RC
    - botan_mp_destroy
    - std::vector::data
    - test_lte
    - ffi_test_pubkey_export
    - std::vector::empty
    - std::vector::resize
    - std::vector::size
    - TEST_FFI_OK
    - botan_mp_init
    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: 2818
      start: 2818
    functionDepth: 0
    functionLinenumber: 2818
    functionLinenumberEnd: 2818
    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:2825,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2829,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:2830,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2837,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2838,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2839,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2841,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2842,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2844,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2845,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2846,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2847,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:2847,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:2847,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2852,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2853,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2854,1
    - Dst: ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:2854,1
    - Dst: ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:2854,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2855,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2856,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2857,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:2862,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2862,1
    - Dst: test_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:2867,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2867,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2867,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2871,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2873,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2873,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2873,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2876,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2878,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2880,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2881,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2881,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2882,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2884,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_ffi.cpp:2889,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2889,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2890,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2890,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2890,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2891,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2891,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2891,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::size
      Src: /src/botan/src/tests/test_ffi.cpp:2895,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2896,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2898,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2898,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::size
      Src: /src/botan/src/tests/test_ffi.cpp:2901,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2902,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2904,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2904,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2907,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2907,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2907,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2908,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2910,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2910,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2913,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2913,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2913,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2914,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2914,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2914,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2916,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2920,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2921,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2922,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2923,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2924,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2925,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2926,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2927,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 59
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2928
      start: 2820
    functionDepth: 1
    functionLinenumber: 2820
    functionLinenumberEnd: 2928
    functionName: Botan_Tests::FFI_ECDSA_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - std::array::data
    - ViewBytesSink::callback
    - test_eq
    - ViewBytesSink::data
    - ViewBytesSink::size
    - std::vector::data
    - std::vector::empty
    - ffi_test_pubkey_export
    - ViewBytesSink::delegate
    - std::vector::resize
    - std::array::size
    - std::vector::size
    - TEST_FFI_OK
    - botan_mp_init
    - 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: 2933
      start: 2933
    functionDepth: 0
    functionLinenumber: 2933
    functionLinenumberEnd: 2933
    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:2944,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2948,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:2949,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2953,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2960,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2961,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2962,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2964,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2965,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2966,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2967,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:2967,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:2967,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2968,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2969,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2970,1
    - Dst: ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:2970,1
    - Dst: ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:2970,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2971,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2972,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2973,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2976,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2978,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2978,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2979,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2979,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2983,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2983,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2983,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2985,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:2985,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2987,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2987,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2987,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2990,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2992,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2994,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2994,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2995,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2997,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_ffi.cpp:3002,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3002,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:3002,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3003,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3003,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3003,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3004,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3004,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3004,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3008,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3008,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3008,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3009,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3010,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3010,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3013,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3013,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3013,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3014,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3015,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3015,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3018,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3018,1
    - Dst: std::vector::size
      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: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3020,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3020,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3023,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3023,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3023,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3024,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3024,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3024,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3026,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3029,1
    - Dst: TEST_FFI_OK
      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_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3032,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3033,1
    - Dst: TEST_FFI_OK
      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_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3036,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 56
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3037
      start: 2935
    functionDepth: 1
    functionLinenumber: 2935
    functionLinenumberEnd: 3037
    functionName: Botan_Tests::FFI_SM2_Sig_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - std::array::data
    - ViewBytesSink::callback
    - TEST_FFI_RC
    - ViewBytesSink::data
    - REQUIRE_FFI_OK
    - ViewBytesSink::size
    - std::string::c_str
    - std::vector::data
    - std::vector::empty
    - ffi_test_pubkey_export
    - ViewBytesSink::delegate
    - std::vector::resize
    - std::array::size
    - std::vector::size
    - TEST_FFI_OK
    - botan_mp_init
    - 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: 3042
      start: 3042
    functionDepth: 0
    functionLinenumber: 3042
    functionLinenumberEnd: 3042
    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:3052,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3056,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:3057,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3061,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3068,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3069,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3070,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3072,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3073,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3074,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3075,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3075,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3075,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3076,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3077,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3078,1
    - Dst: ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:3078,1
    - Dst: ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:3078,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3079,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3080,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3081,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:3084,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3086,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3086,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3087,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3087,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3092,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3092,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3092,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3095,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3097,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3097,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3099,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3100,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3100,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3100,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3100,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3101,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3104,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3106,1
    - Dst: std::vector::size
      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: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3110,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3110,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3110,1
    - Dst: botan_pk_op_decrypt_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3112,1
    - Dst: botan_pk_op_encrypt_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3114,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3116,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3117,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3118,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3119,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3120,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3121,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3122,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 41
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3124
      start: 3044
    functionDepth: 1
    functionLinenumber: 3044
    functionLinenumberEnd: 3124
    functionName: Botan_Tests::FFI_SM2_Enc_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - std::array::data
    - ViewBytesSink::callback
    - ViewBytesSink::data
    - REQUIRE_FFI_OK
    - ViewBytesSink::size
    - botan_pk_op_decrypt_destroy
    - std::vector::data
    - botan_pk_op_encrypt_destroy
    - ffi_test_pubkey_export
    - ViewBytesSink::delegate
    - std::vector::resize
    - std::array::size
    - std::vector::size
    - TEST_FFI_OK
    - botan_mp_init
    - 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: 3129
      start: 3129
    functionDepth: 0
    functionLinenumber: 3129
    functionLinenumberEnd: 3129
    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:3133,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3138,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3141,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3144,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3151,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3152,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3153,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3155,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3156,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3157,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3158,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3158,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3158,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3163,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3164,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3165,1
    - Dst: ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:3165,1
    - Dst: ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:3165,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3166,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3167,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3168,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:3170,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:3171,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:3172,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3184,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3186,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3189,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3193,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3193,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3195,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3199,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3199,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3202,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3202,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3202,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3207,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3208,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3209,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3209,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3209,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3209,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3209,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3212,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3213,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3214,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3214,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3214,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3214,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3214,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3216,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3218,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3219,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:3222,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3223,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3224,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3225,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3226,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3227,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3228,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3229,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 45
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3230
      start: 3131
    functionDepth: 1
    functionLinenumber: 3131
    functionLinenumberEnd: 3230
    functionName: Botan_Tests::FFI_ECDH_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - test_eq
    - ViewBytesSink::callback
    - botan_mp_init
    - ViewBytesSink::data
    - REQUIRE_FFI_OK
    - ViewBytesSink::size
    - std::vector::data
    - ffi_test_pubkey_export
    - std::vector::size
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - 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: 3235
      start: 3235
    functionDepth: 0
    functionLinenumber: 3235
    functionLinenumberEnd: 3235
    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:3239,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3241,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:3243,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:3246,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3247,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3247,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3248,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3248,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3253,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3254,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3256
      start: 3237
    functionDepth: 1
    functionLinenumber: 3237
    functionLinenumberEnd: 3256
    functionName: Botan_Tests::FFI_McEliece_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - std::array::data
    - ffi_test_pubkey_export
    - std::array::size
    - 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: 3261
      start: 3261
    functionDepth: 0
    functionLinenumber: 3261
    functionLinenumberEnd: 3261
    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:3269,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3271,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3272,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3273,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3277,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3277,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3282,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3284,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3284,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3284,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3286,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3289,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3290,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3290,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3290,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3292,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3293,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3293,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3298,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3299,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3299,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3299,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3302,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3304,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3306,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3306,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3307,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3309,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3312,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3316,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3317,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3317,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3317,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3318,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3318,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3318,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3320,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3323,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3324,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3325
      start: 3263
    functionDepth: 1
    functionLinenumber: 3263
    functionLinenumberEnd: 3325
    functionName: Botan_Tests::FFI_Ed25519_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - std::vector::data
    - std::vector::resize
    - TEST_FFI_OK
    - std::vector::size
    - 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: 3330
      start: 3330
    functionDepth: 0
    functionLinenumber: 3330
    functionLinenumberEnd: 3330
    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:3337,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3339,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3341,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3342,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3345,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:3345,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3350,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3350,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3351,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3353,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3356,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3356,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3357,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3359,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3360,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:3360,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3365,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3366,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:3366,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:3366,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3369,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3371,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3373,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3373,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3374,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3376,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3379,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3383,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3384,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:3384,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:3384,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3385,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3385,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3385,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3387,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3390,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3391,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3392
      start: 3332
    functionDepth: 1
    functionLinenumber: 3332
    functionLinenumberEnd: 3392
    functionName: Botan_Tests::FFI_Ed448_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - Botan::hex_decode
    - test_eq
    - std::vector::data
    - std::vector::resize
    - TEST_FFI_OK
    - std::vector::size
    - auto::size
    - test_is_eq
    - 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: 3397
      start: 3397
    functionDepth: 0
    functionLinenumber: 3397
    functionLinenumberEnd: 3397
    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:3403,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3405,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3407,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3409,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3412,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3412,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3417,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3417,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3418,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3423,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3424,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3424,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3425,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3428,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3428,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3429,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3429,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3430,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3433,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3436,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3437,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3438,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3438,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3438,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3440,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3442,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3443,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3444,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3446
      start: 3399
    functionDepth: 1
    functionLinenumber: 3399
    functionLinenumberEnd: 3446
    functionName: Botan_Tests::FFI_X25519_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - REQUIRE_FFI_OK
    - std::vector::data
    - TEST_FFI_OK
    - std::vector::size
    - 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: 3451
      start: 3451
    functionDepth: 0
    functionLinenumber: 3451
    functionLinenumberEnd: 3451
    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:3455,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3457,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3459,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3461,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3465,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:3465,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3470,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3470,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3471,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3476,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3477,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3477,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3478,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3481,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:3481,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3482,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3482,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3483,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3486,1
    - Dst: std::vector::size
      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: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3491,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:3491,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:3491,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3493,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3495,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3496,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3497,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3499
      start: 3453
    functionDepth: 1
    functionLinenumber: 3453
    functionLinenumberEnd: 3499
    functionName: Botan_Tests::FFI_X448_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - Botan::hex_decode
    - test_eq
    - REQUIRE_FFI_OK
    - std::vector::data
    - TEST_FFI_OK
    - std::vector::size
    - auto::size
    - TEST_FFI_INIT
    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:3518,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3522,1
    - Dst: algo
      Src: /src/botan/src/tests/test_ffi.cpp:3522,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3525,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3530,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3530,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3530,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3531,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3531,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3531,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3536,1
    - Dst: private_key_load_function
      Src: /src/botan/src/tests/test_ffi.cpp:3536,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3537,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3537,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3538,1
    - Dst: public_key_load_function
      Src: /src/botan/src/tests/test_ffi.cpp:3538,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3539,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3539,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3544,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3544,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3544,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3545,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3545,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3545,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3546,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3546,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3546,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3547,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3547,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3547,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3551,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3556,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3557,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3562,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:3575,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3583,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3589,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3591,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3593,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3594,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3595,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3596,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3597,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3601,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3603,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3604,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3608,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3613,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3614,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3618,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3623,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3627,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3628,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3630,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3632,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3633,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3634,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3637,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3639,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3640,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3641,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3642,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 43
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3644
      start: 3517
    functionDepth: 1
    functionLinenumber: 3517
    functionLinenumberEnd: 3644
    functionName: Botan_Tests::FFI_KEM_Roundtrip_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - modes
    - test_eq
    - private_key_load_function
    - ViewBytesSink::callback
    - public_key_load_function
    - TEST_FFI_RC
    - Botan::secure_vector::resize
    - ViewBytesSink::get
    - std::vector::data
    - std::vector::resize
    - Botan::secure_vector::data
    - std::vector::size
    - algo
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - confirm
    - TEST_FFI_INIT
    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:3667,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3671,1
    - Dst: algo
      Src: /src/botan/src/tests/test_ffi.cpp:3671,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3674,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3679,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3679,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3679,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3680,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3680,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3680,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3685,1
    - Dst: private_key_load_function
      Src: /src/botan/src/tests/test_ffi.cpp:3685,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3686,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3686,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3687,1
    - Dst: public_key_load_function
      Src: /src/botan/src/tests/test_ffi.cpp:3687,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3688,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3688,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3693,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3693,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3693,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3694,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3694,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3694,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3695,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3695,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3695,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3696,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3696,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3696,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3700,1
    - Dst: hash_algo_or_padding
      Src: /src/botan/src/tests/test_ffi.cpp:3700,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3704,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3707,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3707,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3707,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3708,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3708,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3708,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3712,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3715,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3718,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3719,1
    - Dst: hash_algo_or_padding
      Src: /src/botan/src/tests/test_ffi.cpp:3719,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3720,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3720,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3720,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3721,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3721,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3721,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3726,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3726,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3727,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3728,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:3733,1
    - Dst: hash_algo_or_padding
      Src: /src/botan/src/tests/test_ffi.cpp:3733,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3734,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3734,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3734,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3735,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3735,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3735,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3738,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3738,1
    - Dst: Botan::secure_vector::size
      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: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3742,1
    - Dst: hash_algo_or_padding
      Src: /src/botan/src/tests/test_ffi.cpp:3742,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3743,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3743,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3743,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3744,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3745,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3745,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3746,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3749,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3750,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3751,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3752,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 42
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3754
      start: 3663
    functionDepth: 1
    functionLinenumber: 3663
    functionLinenumberEnd: 3754
    functionName: Botan_Tests::FFI_Signature_Roundtrip_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - modes
    - test_eq
    - private_key_load_function
    - ViewBytesSink::callback
    - public_key_load_function
    - TEST_FFI_RC
    - Botan::secure_vector::resize
    - ViewBytesSink::get
    - hash_algo_or_padding
    - std::vector::data
    - Botan::secure_vector::data
    - std::vector::size
    - algo
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - Botan::secure_vector::size
    - 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: 3759
      start: 3759
    functionDepth: 0
    functionLinenumber: 3759
    functionLinenumberEnd: 3759
    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:3762,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3764,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3766,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3770,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3770,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3776,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3776,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3776,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3777,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3777,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3777,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3778,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3778,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3779,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3779,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3785,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3786,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3786,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3786,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3787,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3787,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3787,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3788,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3788,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3789,1
    - Dst: ViewBytesSink::get
      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: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3793,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3793,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3793,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3794,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3794,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3796,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3797,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3798,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3799
      start: 3761
    functionDepth: 1
    functionLinenumber: 3761
    functionLinenumberEnd: 3799
    functionName: Botan_Tests::FFI_Kyber512_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - ViewBytesSink::callback
    - ViewBytesSink::get
    - std::vector::data
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - 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: 3804
      start: 3804
    functionDepth: 0
    functionLinenumber: 3804
    functionLinenumberEnd: 3804
    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:3807,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3809,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3811,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3815,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3815,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3821,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3821,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3821,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3822,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3822,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3822,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3823,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3823,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3824,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3824,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3830,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3831,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3831,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3831,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3832,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3832,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3832,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3833,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3833,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3834,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3834,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3837,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3837,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3838,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3838,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3838,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3839,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3839,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3841,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3842,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3843,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3844
      start: 3806
    functionDepth: 1
    functionLinenumber: 3806
    functionLinenumberEnd: 3844
    functionName: Botan_Tests::FFI_Kyber768_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - ViewBytesSink::callback
    - ViewBytesSink::get
    - std::vector::data
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - 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: 3849
      start: 3849
    functionDepth: 0
    functionLinenumber: 3849
    functionLinenumberEnd: 3849
    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:3852,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3854,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3856,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3860,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3860,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3866,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3866,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3866,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3867,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3867,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3867,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3868,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3868,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3869,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3869,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3875,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3876,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3876,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3876,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3877,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3877,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3877,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3878,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3878,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3879,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3879,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3882,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3882,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3883,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3883,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3883,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3884,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3884,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3886,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3887,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3888,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3889
      start: 3851
    functionDepth: 1
    functionLinenumber: 3851
    functionLinenumberEnd: 3889
    functionName: Botan_Tests::FFI_Kyber1024_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - ViewBytesSink::callback
    - ViewBytesSink::get
    - std::vector::data
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - 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: 3894
      start: 3894
    functionDepth: 0
    functionLinenumber: 3894
    functionLinenumberEnd: 3894
    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: 3897
      start: 3897
    functionDepth: 0
    functionLinenumber: 3897
    functionLinenumberEnd: 3897
    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: 3899
      start: 3899
    functionDepth: 0
    functionLinenumber: 3899
    functionLinenumberEnd: 3899
    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: 3901
      start: 3901
    functionDepth: 0
    functionLinenumber: 3901
    functionLinenumberEnd: 3901
    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: 3903
      start: 3903
    functionDepth: 0
    functionLinenumber: 3903
    functionLinenumberEnd: 3903
    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: 3908
      start: 3908
    functionDepth: 0
    functionLinenumber: 3908
    functionLinenumberEnd: 3908
    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: 3911
      start: 3911
    functionDepth: 0
    functionLinenumber: 3911
    functionLinenumberEnd: 3911
    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: 3913
      start: 3913
    functionDepth: 0
    functionLinenumber: 3913
    functionLinenumberEnd: 3913
    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: 3915
      start: 3915
    functionDepth: 0
    functionLinenumber: 3915
    functionLinenumberEnd: 3915
    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: 3932
      start: 3917
    functionDepth: 0
    functionLinenumber: 3917
    functionLinenumberEnd: 3932
    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: 3937
      start: 3937
    functionDepth: 0
    functionLinenumber: 3937
    functionLinenumberEnd: 3937
    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: 3940
      start: 3940
    functionDepth: 0
    functionLinenumber: 3940
    functionLinenumberEnd: 3940
    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: 3942
      start: 3942
    functionDepth: 0
    functionLinenumber: 3942
    functionLinenumberEnd: 3942
    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: 3944
      start: 3944
    functionDepth: 0
    functionLinenumber: 3944
    functionLinenumberEnd: 3944
    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: 3952
      start: 3946
    functionDepth: 0
    functionLinenumber: 3946
    functionLinenumberEnd: 3952
    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: 3954
      start: 3954
    functionDepth: 0
    functionLinenumber: 3954
    functionLinenumberEnd: 3954
    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: 3959
      start: 3959
    functionDepth: 0
    functionLinenumber: 3959
    functionLinenumberEnd: 3959
    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: 3962
      start: 3962
    functionDepth: 0
    functionLinenumber: 3962
    functionLinenumberEnd: 3962
    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: 3964
      start: 3964
    functionDepth: 0
    functionLinenumber: 3964
    functionLinenumberEnd: 3964
    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: 3966
      start: 3966
    functionDepth: 0
    functionLinenumber: 3966
    functionLinenumberEnd: 3966
    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:3978,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_ffi.cpp:3979,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3991
      start: 3968
    functionDepth: 1
    functionLinenumber: 3968
    functionLinenumberEnd: 3991
    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: 3993
      start: 3993
    functionDepth: 0
    functionLinenumber: 3993
    functionLinenumberEnd: 3993
    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: 3998
      start: 3998
    functionDepth: 0
    functionLinenumber: 3998
    functionLinenumberEnd: 3998
    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: 4001
      start: 4001
    functionDepth: 0
    functionLinenumber: 4001
    functionLinenumberEnd: 4001
    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: 4003
      start: 4003
    functionDepth: 0
    functionLinenumber: 4003
    functionLinenumberEnd: 4003
    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: 4005
      start: 4005
    functionDepth: 0
    functionLinenumber: 4005
    functionLinenumberEnd: 4005
    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:4012,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_ffi.cpp:4013,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4032
      start: 4007
    functionDepth: 1
    functionLinenumber: 4007
    functionLinenumberEnd: 4032
    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: 4037
      start: 4037
    functionDepth: 0
    functionLinenumber: 4037
    functionLinenumberEnd: 4037
    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:4042,1
    - Dst: Botan_Tests::FFI_ElGamal_Test::do_elgamal_test
      Src: /src/botan/src/tests/test_ffi.cpp:4043,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4046,1
    - Dst: Botan_Tests::FFI_ElGamal_Test::do_elgamal_test
      Src: /src/botan/src/tests/test_ffi.cpp:4047,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4049
      start: 4039
    functionDepth: 1
    functionLinenumber: 4039
    functionLinenumberEnd: 4049
    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:4053,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4056,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4057,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:4059,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4064,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4065,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4066,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4067,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4069,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4070,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4071,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4072,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4075,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4078,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4081,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4083,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4084,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4085,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4086,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4100,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:4100,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4102,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4102,1
    - Dst: std::vector::resize
      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: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4105,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4105,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4105,1
    - Dst: std::vector::resize
      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:4112,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:4112,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4114,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4114,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4115,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4116,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4117,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4117,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4117,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4118,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4119,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4122,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4124,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4125,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4126,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4127,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: 4128
      start: 4052
    functionDepth: 1
    functionLinenumber: 4052
    functionLinenumberEnd: 4128
    functionName: Botan_Tests::FFI_ElGamal_Test::do_elgamal_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 1
    functionsReached:
    - test_eq
    - botan_mp_destroy
    - std::string::c_str
    - std::vector::data
    - ffi_test_pubkey_export
    - std::vector::resize
    - std::vector::size
    - TEST_FFI_OK
    - botan_mp_init
    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: 4133
      start: 4133
    functionDepth: 0
    functionLinenumber: 4133
    functionLinenumberEnd: 4133
    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:4137,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4142,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4145,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4148,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4156,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4157,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4158,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4159,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4161,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4162,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4163,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4164,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4168,1
    - Dst: TEST_FFI_OK
      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:4172,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4177,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4178,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4179,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4181,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4182,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:4187,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:4188,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4190,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:4191,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4193,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:4194,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4197,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4199,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4202,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4206,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4206,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4208,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4212,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4212,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4217,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4219,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4220,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4220,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4220,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4223,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4225,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4226,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4226,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4226,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4228,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4230,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4231,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4232,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4233,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4235,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4236,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4237,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4239,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4240,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4241,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4242,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4243,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: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 55
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4247
      start: 4135
    functionDepth: 1
    functionLinenumber: 4135
    functionLinenumberEnd: 4247
    functionName: Botan_Tests::FFI_DH_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - test_eq
    - REQUIRE_FFI_OK
    - std::vector::data
    - std::vector::size
    - TEST_FFI_OK
    - botan_mp_init
    - confirm
    - 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: 4252
      start: 4252
    functionDepth: 0
    functionLinenumber: 4252
    functionLinenumberEnd: 4252
    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:4262,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4263,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4265,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4266,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4267,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4270,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4271,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4273,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4274,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4276,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4277,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4278,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4280,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4281,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4285,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:4286,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4288,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:4289,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4291,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:4292,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4294,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4295,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4296,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4297,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4298,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4299,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4302,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4303,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4312,1
    - Dst: TEST_FFI_RC
      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::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:4314,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4315,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4317,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4320,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4322,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4323,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4326,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4326,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4326,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4327,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4327,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4329,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4331,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4332,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4335,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4335,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4335,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4336,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4336,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4337,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4339,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4340,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4341,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4342,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4344,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4345,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 50
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4347
      start: 4254
    functionDepth: 1
    functionLinenumber: 4254
    functionLinenumberEnd: 4347
    functionName: Botan_Tests::FFI_OID_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - test_eq
    - ViewStringSink::callback
    - std::string::c_str
    - ViewStringSink::get
    - TEST_FFI_FAIL
    - TEST_FFI_OK
    - ViewStringSink::delegate
    - confirm
    - 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: 4352
      start: 4352
    functionDepth: 0
    functionLinenumber: 4352
    functionLinenumberEnd: 4352
    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:4357,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4358,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:4359,1
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/test_ffi.cpp:4361,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:4362,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ffi.cpp:4363,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4375,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4377,1
    - Dst: Botan_Tests::FFI_EC_Group_Test::get_group_parameters
      Src: /src/botan/src/tests/test_ffi.cpp:4379,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4399,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4401,1
    - Dst: Botan_Tests::FFI_EC_Group_Test::get_group_parameters
      Src: /src/botan/src/tests/test_ffi.cpp:4403,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4413,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4414,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4434,1
    - Dst: botan_oid_register
      Src: /src/botan/src/tests/test_ffi.cpp:4435,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4436,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4437,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4438,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4439,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4440,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4441,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:4443,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:4444,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:4445,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:4446,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:4448,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:4450,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4453,1
    - Dst: Botan_Tests::FFI_EC_Group_Test::get_group_parameters
      Src: /src/botan/src/tests/test_ffi.cpp:4463,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4475,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4478,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4480,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4481,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4492,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4493,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4496,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4497,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4498,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4499,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4500,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4501,1
    - Dst: botan_oid_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4503,1
    - Dst: botan_oid_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4504,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4506,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4507,1
    - Dst: botan_oid_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4510,1
    - Dst: botan_oid_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4511,1
    - Dst: botan_oid_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4512,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4522,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4523,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4524,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4530,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4531,1
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_ffi.cpp:4532,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4536,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4537,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4538,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4539,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4540,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4542,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4543,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4546,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4546,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4546,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4548,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:4550,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4550,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4550,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4553,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4553,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4553,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4554,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4554,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4557,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:4557,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4559,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4560,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4563,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:4565,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4567,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:4567,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4568,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:4568,1
    - Dst: botan_privkey_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4570,1
    - Dst: TEST_FFI_OK
      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: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4574,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4575,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4576,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4577,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 82
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4579
      start: 4354
    functionDepth: 2
    functionLinenumber: 4354
    functionLinenumberEnd: 4579
    functionName: Botan_Tests::FFI_EC_Group_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - Botan_Tests::FFI_EC_Group_Test::get_group_parameters
    - Botan_Tests::Test::read_data_file
    - test_eq
    - reinterpret_cast<const uint8_t*>
    - botan_privkey_destroy
    - std::array::data
    - Botan::EC_Group::supports_application_specific_group
    - std::array::size
    - botan_mp_destroy
    - botan_mp_init
    - confirm
    - botan_mp_set_from_str
    - ViewBytesSink::callback
    - ViewStringSink::callback
    - ViewBytesSink::get
    - ViewStringSink::get
    - TEST_FFI_OK
    - ViewStringSink::delegate
    - Botan::EC_Group::supports_named_group
    - botan_oid_register
    - std::string::c_str
    - botan_oid_destroy
    - ViewBytesSink::delegate
    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:4591,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4592,1
    - Dst: TEST_FFI_OK
      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: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4595,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4596,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4597,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: 4598
      start: 4582
    functionDepth: 1
    functionLinenumber: 4582
    functionLinenumberEnd: 4598
    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: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    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: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    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: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    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: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: TEST_FFI_OK
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 47
    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: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: TEST_FFI_INIT
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 42
    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: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: TEST_FFI_FAIL
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 10
    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: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: TEST_FFI_RC
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 34
    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: 61
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 61
    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: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    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: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    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: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    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: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_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: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_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:92,1
    - Dst: auto*::m_buf::assign
      Src: /src/botan/src/tests/test_ffi.cpp:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - buf
    - len
    argTypes:
    - void*
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 96
    functionName: Botan_Tests::ViewBytesSink::write_fn
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - auto*::m_buf::assign
    - static_cast<ViewBytesSink*>
    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: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    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: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    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: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: Botan_Tests::ViewStringSink::get
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string_view
    signature: std::string_view get()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ViewStringSink*>
      Src: /src/botan/src/tests/test_ffi.cpp:119,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - str
    - len
    argTypes:
    - void*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 124
    functionName: Botan_Tests::ViewStringSink::write_fn
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - static_cast<ViewStringSink*>
    linkageType: ''
    returnType: int
    signature: int write_fn(void* ctx, const char* str, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::FFI_Test::name
      Src: /src/botan/src/tests/test_ffi.cpp:135,1
    - Dst: botan_rng_init
      Src: /src/botan/src/tests/test_ffi.cpp:138,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ffi.cpp:139,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_ffi.cpp:143,1
    - Dst: ffi_test
      Src: /src/botan/src/tests/test_ffi.cpp:144,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_ffi.cpp:145,1
    - Dst: botan_rng_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 150
    functionName: Botan_Tests::FFI_Test::run
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::end_timer
    - Test::Result::test_failure
    - botan_rng_init
    - ffi_test
    - botan_rng_destroy
    - Botan_Tests::FFI_Test::name
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:160,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:165,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:165,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:168,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:172,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:173,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:173,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:177,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:177,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:178,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:179,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:186,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:190,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:191,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:193,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:193,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:195,1
    - Dst: test_gte
      Src: /src/botan/src/tests/test_ffi.cpp:197,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:197,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:201,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:201,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:201,1
    - Dst: botan_privkey_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:202,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:207,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:211,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:212,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:212,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:222,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:226,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:227,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:229,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:231,1
    - Dst: botan_privkey_load
      Src: /src/botan/src/tests/test_ffi.cpp:234,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:234,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:234,1
    - Dst: botan_privkey_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:235,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:238,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:242,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:243,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:245,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:247,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:248,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:264,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:266,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:272,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:273,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:277,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:280,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:283,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:285,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:285,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:285,1
    - Dst: botan_privkey_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:286,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:291,1
    - Dst: test_gte
      Src: /src/botan/src/tests/test_ffi.cpp:292,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:295,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:299,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:299,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: 300
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 300
    functionName: Botan_Tests::ffi_test_pubkey_export
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - test_eq
    - std::string::c_str
    - std::vector::data
    - botan_privkey_destroy
    - std::vector::resize
    - test_gte
    - botan_privkey_load
    - TEST_FFI_OK
    - 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: 304
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 304
    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_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:307,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:308,1
    - Dst: botan_ffi_api_version
      Src: /src/botan/src/tests/test_ffi.cpp:308,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:309,1
    - Dst: botan_version_major
      Src: /src/botan/src/tests/test_ffi.cpp:309,1
    - Dst: Botan::version_major
      Src: /src/botan/src/tests/test_ffi.cpp:309,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:310,1
    - Dst: botan_version_minor
      Src: /src/botan/src/tests/test_ffi.cpp:310,1
    - Dst: Botan::version_minor
      Src: /src/botan/src/tests/test_ffi.cpp:310,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:311,1
    - Dst: botan_version_patch
      Src: /src/botan/src/tests/test_ffi.cpp:311,1
    - Dst: Botan::version_patch
      Src: /src/botan/src/tests/test_ffi.cpp:311,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:312,1
    - Dst: botan_version_string
      Src: /src/botan/src/tests/test_ffi.cpp:312,1
    - Dst: Botan::version_cstr
      Src: /src/botan/src/tests/test_ffi.cpp:312,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:313,1
    - Dst: botan_version_datestamp
      Src: /src/botan/src/tests/test_ffi.cpp:313,1
    - Dst: Botan::version_datestamp
      Src: /src/botan/src/tests/test_ffi.cpp:313,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:314,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:314,1
    - Dst: botan_ffi_api_version
      Src: /src/botan/src/tests/test_ffi.cpp:314,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:316,1
    - Dst: botan_ffi_api_version
      Src: /src/botan/src/tests/test_ffi.cpp:317,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:320,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:320,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:321,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:321,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:322,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:322,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:323,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:323,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:325,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:325,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:330,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:330,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:330,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:330,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:331,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:331,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:331,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:331,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:334,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:334,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:334,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:335,1
    - Dst: std::string::resize
      Src: /src/botan/src/tests/test_ffi.cpp:342,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:342,1
    - Dst: TEST_FFI_OK
      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: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:343,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:344,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:346,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:346,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:346,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:346,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 348
    functionName: Botan_Tests::FFI_Utils_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - test_eq
    - botan_version_patch
    - Botan::version_major
    - botan_ffi_supports_api
    - std::vector::data
    - Botan::version_datestamp
    - confirm
    - botan_version_datestamp
    - std::string::resize
    - Botan::version_patch
    - botan_version_string
    - botan_ffi_api_version
    - botan_version_minor
    - TEST_FFI_OK
    - std::vector::size
    - Botan::version_cstr
    - botan_version_major
    - Botan::version_minor
    - std::string::data
    - test_is_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: 353
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 353
    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:367,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:369,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:370,1
    - Dst: botan_rng_init
      Src: /src/botan/src/tests/test_ffi.cpp:372,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:373,1
    - Dst: botan_rng_init
      Src: /src/botan/src/tests/test_ffi.cpp:377,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:378,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:381,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:382,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:386,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:386,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:386,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:387,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:389,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:391,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:393,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:393,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:393,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:395,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:398,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:399,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:399,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:399,1
    - Dst: TEST_FFI_OK
      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_OK
      Src: /src/botan/src/tests/test_ffi.cpp:405,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:409,1
    - Dst: static_cast<size_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:417,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_ffi.cpp:422,1
    - Dst: static_cast<size_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:423,1
    - Dst: static_cast<size_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:427,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:429,1
    - Dst: Botan::clear_mem
      Src: /src/botan/src/tests/test_ffi.cpp:432,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:432,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:432,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:433,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:433,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:433,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:434,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:435,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:436,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:438,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:439,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:441,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:442,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:445,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:446,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:448,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:449,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:454,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:456,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:456,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:456,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:457,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_ffi.cpp:461,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_ffi.cpp:462,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_ffi.cpp:463,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:464,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:469,1
    - Dst: Botan::clear_mem
      Src: /src/botan/src/tests/test_ffi.cpp:470,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:470,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:470,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:472,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:472,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:472,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:473,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:475,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:478,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:479,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:483,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:486,1
    - Dst: Botan::clear_mem
      Src: /src/botan/src/tests/test_ffi.cpp:487,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:487,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:487,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:489,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:489,1
    - Dst: std::vector::size
      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_OK
      Src: /src/botan/src/tests/test_ffi.cpp:492,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:495,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:496,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:499,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:503,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:503,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:503,1
    - Dst: botan_tpm2_supports_crypto_backend
      Src: /src/botan/src/tests/test_ffi.cpp:504,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:505,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:506,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:508,1
    - Dst: tpm2_test_rng
      Src: /src/botan/src/tests/test_ffi.cpp:511,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:512,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:519,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:519,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:519,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:520,1
    - Dst: botan_tpm2_supports_crypto_backend
      Src: /src/botan/src/tests/test_ffi.cpp:524,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:525,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:526,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:528,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:532,1
    - Dst: tpm2_test_rng
      Src: /src/botan/src/tests/test_ffi.cpp:533,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:534,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:538,1
    - Dst: Esys_Finalize
      Src: /src/botan/src/tests/test_ffi.cpp:541,1
    - Dst: Tss2_TctiLdr_Finalize
      Src: /src/botan/src/tests/test_ffi.cpp:543,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:548,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:549,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:550,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:551,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 115
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 552
    functionName: Botan_Tests::FFI_RNG_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - test_eq
    - auto::empty
    - botan_rng_init
    - BOTAN_UNUSED
    - auto::c_str
    - REQUIRE_FFI_OK
    - std::vector::data
    - Esys_Finalize
    - TEST_FFI_FAIL
    - confirm
    - test_note
    - static_cast<size_t*>
    - Tss2_TctiLdr_Finalize
    - Botan_Tests::test_encoding_options
    - Botan::clear_mem
    - TEST_FFI_OK
    - std::vector::size
    - botan_tpm2_supports_crypto_backend
    - TEST_FFI_INIT
    - tpm2_test_rng
    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: 557
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 557
    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:561,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:561,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:562,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:563,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:564,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:565,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:566,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:569,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:570,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:572,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:573,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 559
    functionDepth: 1
    functionLinenumber: 559
    functionLinenumberEnd: 575
    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_RC
    - 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: 580
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 580
    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:627,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:627,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:636,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_ffi.cpp:636,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:640,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:641,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:641,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:641,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:646,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:657,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:660,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 663
    functionName: Botan_Tests::FFI_ZFEC_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - REQUIRE_FFI_OK
    - std::vector::data
    - TEST_FFI_FAIL
    - std::to_string
    - 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: 668
      start: 668
    functionDepth: 0
    functionLinenumber: 668
    functionLinenumberEnd: 668
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:691,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:691,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:696,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:696,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:699,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:699,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:700,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:701,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:704,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:704,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:705,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:706,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:707,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:709,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:710,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 711
    functionName: Botan_Tests::FFI_CRL_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - REQUIRE_FFI_OK
    - Botan_Tests::Test::data_file
    - reinterpret_cast<const uint8_t*>
    - TEST_FFI_OK
    - 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: 716
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 716
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:722,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:722,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:728,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:728,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:729,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:729,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:731,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:732,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:733,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:733,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:735,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:736,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:737,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:738,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:742,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:742,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:743,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:743,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:746,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:747,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:748,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:749,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:752,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:753,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:754,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:754,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:756,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:759,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:760,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:761,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:765,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:765,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:766,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:768,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:769,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:769,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:774,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:774,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:775,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:775,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:776,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:776,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:778,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:780,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:781,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:782,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_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:786,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:787,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:788,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:789,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:790,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:791,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:792,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 42
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 718
    functionDepth: 1
    functionLinenumber: 718
    functionLinenumberEnd: 793
    functionName: Botan_Tests::FFI_Cert_Validation_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - test_eq
    - REQUIRE_FFI_OK
    - Botan_Tests::Test::data_file
    - botan_x509_cert_validation_status
    - TEST_FFI_OK
    - confirm
    - 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: 798
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 798
    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:802,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:802,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:804,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:808,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:812,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:812,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:813,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:816,1
    - Dst: std::string::resize
      Src: /src/botan/src/tests/test_ffi.cpp:819,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:820,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:820,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:821,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:824,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:825,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:828,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:829,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:832,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:837,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:837,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:838,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:838,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:839,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_ffi.cpp:839,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:842,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:847,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:847,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:848,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_ffi.cpp:850,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:850,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:854,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:858,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:861,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:866,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:866,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:867,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_ffi.cpp:868,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:868,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:868,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:872,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:877,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:877,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:881,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:882,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:883,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:888,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:893,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:893,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:894,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_ffi.cpp:894,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:894,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:897,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:901,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:902,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:902,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:903,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_ffi.cpp:903,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:903,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:906,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:910,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:910,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:912,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:913,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:914,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:916,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 50
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 800
    functionDepth: 1
    functionLinenumber: 800
    functionLinenumberEnd: 918
    functionName: Botan_Tests::FFI_ECDSA_Certificate_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - test_eq
    - std::string::resize
    - Botan::hex_encode
    - Botan_Tests::Test::data_file
    - std::string::data
    - std::vector::data
    - std::vector::resize
    - reinterpret_cast<const char*>
    - TEST_FFI_OK
    - std::vector::size
    - confirm
    - 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: 923
      start: 923
    functionDepth: 0
    functionLinenumber: 923
    functionLinenumberEnd: 923
    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:927,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:929,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:929,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:930,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:932,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:933,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:936,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:938,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 925
    functionDepth: 1
    functionLinenumber: 925
    functionLinenumberEnd: 940
    functionName: Botan_Tests::FFI_PKCS_Hashid_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - TEST_FFI_RC
    - std::vector::data
    - std::vector::resize
    - std::vector::size
    - 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: 945
      start: 945
    functionDepth: 0
    functionLinenumber: 945
    functionLinenumberEnd: 945
    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:951,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:954,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:955,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:956,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:960,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:961,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:962,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:963,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:972,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:972,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:973,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:973,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:980,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:981,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:982,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:984,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:986,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:988,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:988,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:988,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:989,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:989,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:989,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:990,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:993,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:994,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:996,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:997,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:999,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1001,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1001,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1001,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1002,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1002,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1002,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1003,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1006,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1007,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1009,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1010,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1013,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1014,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1016,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1018,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1018,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1021,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1023,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1024,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1025,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1027,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1030,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1032,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1032,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1032,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1033,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1033,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1033,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1034,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1037,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1038,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1040,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1041,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1044,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1046,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1048,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1052,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 947
    functionDepth: 1
    functionLinenumber: 947
    functionLinenumberEnd: 1054
    functionName: Botan_Tests::FFI_CBC_Cipher_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - TEST_FFI_RC
    - std::vector::data
    - test_int_eq
    - std::vector::resize
    - TEST_FFI_OK
    - std::vector::size
    - 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: 1059
      start: 1059
    functionDepth: 0
    functionLinenumber: 1059
    functionLinenumberEnd: 1059
    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:1065,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:1068,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1068,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1069,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:1071,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1072,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1072,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1073,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1074,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1074,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1084,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1085,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1087,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1090,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1091,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1092,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1094,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1095,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1097,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1098,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1100,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1102,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1104,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1105,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1106,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1109,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1112,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1113,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1114,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1116,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1118,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1125,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1125,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1125,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1128,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1128,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1128,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1129,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1131,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1131,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1131,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1132,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1135,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1136,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1138,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1139,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1141,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1143,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1143,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1143,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: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1144,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1145,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1145,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1145,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1146,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1149,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1150,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1152,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1153,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1156,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1157,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1159,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1160,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1162,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1163,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1165,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: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1169,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1170,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1170,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1170,1
    - Dst: TEST_FFI_OK
      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:1172,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1175,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1176,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1178,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1179,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1182,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1182,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1183,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1183,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1184,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1186,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1190,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 53
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1061
    functionDepth: 1
    functionLinenumber: 1061
    functionLinenumberEnd: 1192
    functionName: Botan_Tests::FFI_GCM_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - std::array::data
    - TEST_FFI_RC
    - Botan::hex_decode
    - std::vector::data
    - test_int_eq
    - std::vector::resize
    - std::array::size
    - TEST_FFI_FAIL
    - TEST_FFI_OK
    - std::vector::size
    - 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: 1197
      start: 1197
    functionDepth: 0
    functionLinenumber: 1197
    functionLinenumberEnd: 1197
    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:1203,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:1206,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1206,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1207,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:1209,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1210,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1210,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1211,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1212,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:1212,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1212,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1222,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1223,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1225,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1228,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1229,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1230,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1232,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1233,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1235,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1236,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1238,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1241,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1244,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1245,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1246,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1248,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1250,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1257,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1257,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1257,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1260,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1260,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1260,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1261,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1263,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1263,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1263,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1264,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1267,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1268,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1270,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1271,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1273,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1275,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1275,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1275,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1276,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1276,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1276,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1277,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1277,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1277,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1278,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1281,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1282,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1284,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1285,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1288,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1289,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1291,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1293,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1295,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1296,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1298,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1302,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1302,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1302,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1303,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1303,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1303,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1304,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1304,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1304,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1305,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1308,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1309,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1311,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1312,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1315,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1315,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1316,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1316,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1317,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1319,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1323,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 49
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1325
      start: 1199
    functionDepth: 1
    functionLinenumber: 1199
    functionLinenumberEnd: 1325
    functionName: Botan_Tests::FFI_ChaCha20Poly1305_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - std::array::data
    - TEST_FFI_RC
    - Botan::hex_decode
    - std::string
    - std::vector::data
    - test_int_eq
    - std::vector::resize
    - std::array::size
    - TEST_FFI_FAIL
    - TEST_FFI_OK
    - std::vector::size
    - 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: 1330
      start: 1330
    functionDepth: 0
    functionLinenumber: 1330
    functionLinenumberEnd: 1330
    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:1336,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1345,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1346,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1348,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1351,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1352,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1353,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1355,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1356,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1357,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1358,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1360,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1361,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1363,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1364,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1366,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1368,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1370,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1373,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1374,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1375,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1376,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1379,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1386,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1386,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1386,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1387,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1387,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1387,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1388,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1391,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1392,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1394,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1395,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1397,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1399,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1399,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1399,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1400,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1400,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1400,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1401,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1404,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1405,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1407,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1408,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1411,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1412,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1414,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1415,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1417,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1418,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1420,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1424,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1424,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1424,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1425,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1425,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1425,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1426,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1429,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1430,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1432,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1433,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1436,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1436,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1437,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1437,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1438,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1440,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1444,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 44
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1446
      start: 1332
    functionDepth: 1
    functionLinenumber: 1332
    functionLinenumberEnd: 1446
    functionName: Botan_Tests::FFI_EAX_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - TEST_FFI_RC
    - Botan::hex_decode
    - std::vector::data
    - test_int_eq
    - std::vector::resize
    - TEST_FFI_OK
    - std::vector::size
    - 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: 1451
      start: 1451
    functionDepth: 0
    functionLinenumber: 1451
    functionLinenumberEnd: 1451
    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:1461,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1463,1
    - Dst: c_str
      Src: /src/botan/src/tests/test_ffi.cpp:1463,1
    - Dst: botan_cipher_is_authenticated
      Src: /src/botan/src/tests/test_ffi.cpp:1467,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ffi.cpp:1468,1
    - Dst: botan_cipher_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:1469,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1480,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1481,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1482,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1483,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1484,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1486,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1490,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1490,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1490,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1491,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1491,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1491,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1494,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1494,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1494,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1495,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1495,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1495,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1499,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1499,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1499,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1502,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1502,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1502,1
    - Dst: botan_cipher_requires_entire_message
      Src: /src/botan/src/tests/test_ffi.cpp:1505,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1506,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:1519,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_ffi.cpp:1525,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1525,1
    - Dst: std::span
      Src: /src/botan/src/tests/test_ffi.cpp:1526,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:1527,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1529,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:1532,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1533,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:1535,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1536,1
    - Dst: Test::Result::test_gt
      Src: /src/botan/src/tests/test_ffi.cpp:1539,1
    - Dst: Test::Result::test_lte
      Src: /src/botan/src/tests/test_ffi.cpp:1540,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1540,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_ffi.cpp:1541,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1544,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1546,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_ffi.cpp:1547,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1556,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1560,1
    - Dst: std::span::data
      Src: /src/botan/src/tests/test_ffi.cpp:1563,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:1564,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1567,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:1567,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1569,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:1569,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1570,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:1572,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1574,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:1577,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1578,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1584,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1585,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1586,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1588,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1592,1
    - Dst: c_str
      Src: /src/botan/src/tests/test_ffi.cpp:1592,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1594,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1595,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1597,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1601,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1601,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1601,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1602,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1602,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1602,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1604,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:1616,1
    - Dst: std::span
      Src: /src/botan/src/tests/test_ffi.cpp:1622,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:1623,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1625,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:1628,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1629,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:1631,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1632,1
    - Dst: Test::Result::test_gt
      Src: /src/botan/src/tests/test_ffi.cpp:1635,1
    - Dst: Test::Result::test_lte
      Src: /src/botan/src/tests/test_ffi.cpp:1636,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1636,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_ffi.cpp:1637,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1640,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1642,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_ffi.cpp:1643,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1647,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:1647,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:1648,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1653,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:1656,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1657,1
    - Dst: std::span::data
      Src: /src/botan/src/tests/test_ffi.cpp:1659,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:1660,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1663,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:1663,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1664,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1665,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1667,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1669,1
    - Dst: merge
      Src: /src/botan/src/tests/test_ffi.cpp:1671,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 69
    argCount: 2
    argNames:
    - ' merged_result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1673
      start: 1453
    functionDepth: 1
    functionLinenumber: 1453
    functionLinenumberEnd: 1673
    functionName: Botan_Tests::FFI_AEAD_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - TEST_FFI_RC
    - std::span::size
    - Test::Result::test_failure
    - Test::Result::test_lte
    - std::span::subspan
    - botan_cipher_is_authenticated
    - auto::size
    - std::span
    - std::span::first
    - c_str
    - botan_cipher_requires_entire_message
    - merge
    - std::vector::data
    - Test::Result::test_gt
    - auto::data
    - std::span::data
    - TEST_FFI_OK
    - std::vector::size
    - TEST_FFI_INIT
    - Botan::fmt
    - botan_cipher_destroy
    - Test::Result::test_eq
    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: 1678
      start: 1678
    functionDepth: 0
    functionLinenumber: 1678
    functionLinenumberEnd: 1678
    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:1683,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1684,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1685,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1686,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1688,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1691,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1696,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1697,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1699,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1702,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1707,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1707,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1707,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1708,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1708,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1708,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1711,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1712,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1712,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1712,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1714,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1715,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1717,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1718,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1718,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1720,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1720,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1721,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1721,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1722,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1724,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1726
      start: 1680
    functionDepth: 1
    functionLinenumber: 1680
    functionLinenumberEnd: 1726
    functionName: Botan_Tests::FFI_StreamCipher_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - TEST_FFI_RC
    - std::vector::data
    - test_int_eq
    - TEST_FFI_OK
    - std::vector::size
    - 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: 1731
      start: 1731
    functionDepth: 0
    functionLinenumber: 1731
    functionLinenumberEnd: 1731
    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:1737,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:1738,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1740,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:1743,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1743,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1744,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:1746,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1747,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1747,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1748,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1749,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1749,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1753,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1754,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1758,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1759,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1765,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:1765,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1766,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1768,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:1769,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:1769,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1770,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1770,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1772,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1779,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1780,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:1780,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1782,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1783,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:1784,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:1784,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1786,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:1787,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:1787,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1788,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1788,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1789,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1791,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:1792,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:1792,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1793,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1793,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1794,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1796,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1800,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1802
      start: 1733
    functionDepth: 1
    functionLinenumber: 1733
    functionLinenumberEnd: 1802
    functionName: Botan_Tests::FFI_HashFunction_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - std::array::data
    - std::strlen
    - reinterpret_cast<const uint8_t*>
    - std::vector::data
    - std::array::size
    - TEST_FFI_FAIL
    - TEST_FFI_OK
    - 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: 1807
      start: 1807
    functionDepth: 0
    functionLinenumber: 1807
    functionLinenumberEnd: 1807
    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:1814,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:1815,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1817,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:1820,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1820,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1821,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:1823,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1824,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1824,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1825,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1826,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1826,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1832,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1833,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1834,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1835,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1837,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1838,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1839,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1842,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1843,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1850,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1851,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:1852,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:1852,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1853,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1855,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1856,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:1857,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:1857,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1858,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1858,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1860,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1865,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1867
      start: 1809
    functionDepth: 1
    functionLinenumber: 1809
    functionLinenumberEnd: 1867
    functionName: Botan_Tests::FFI_MAC_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - std::array::data
    - TEST_FFI_RC
    - std::strlen
    - reinterpret_cast<const uint8_t*>
    - std::vector::data
    - std::array::size
    - TEST_FFI_FAIL
    - TEST_FFI_OK
    - 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: 1872
      start: 1872
    functionDepth: 0
    functionLinenumber: 1872
    functionLinenumberEnd: 1872
    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:1879,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1879,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1879,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1880,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1885,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1886,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1886,1
    - Dst: std::vector::size
      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: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1890,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1890,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1891,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1893
      start: 1874
    functionDepth: 1
    functionLinenumber: 1874
    functionLinenumberEnd: 1893
    functionName: Botan_Tests::FFI_Scrypt_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - std::vector::data
    - TEST_FFI_OK
    - std::vector::size
    - 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: 1898
      start: 1898
    functionDepth: 0
    functionLinenumber: 1898
    functionLinenumberEnd: 1898
    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:1905,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1909,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1911,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1913,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1914,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:1915,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1916,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1917,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1919,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:1926,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1927,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:1928,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1929,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1930,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1933,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1935,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1936,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:1937,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1938,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1939,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:1943,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_ffi.cpp:1943,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_ffi.cpp:1944,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1947,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1948,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1950,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1952,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1954,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1955,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1956,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1957,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1958,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1959,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1962,1
    - Dst: std::string::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1967,1
    - Dst: botan_bcrypt_generate
      Src: /src/botan/src/tests/test_ffi.cpp:1970,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:1970,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:1970,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:1970,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1973,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1975,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:1975,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:1975,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:1976,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:1976,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1978
      start: 1900
    functionDepth: 1
    functionLinenumber: 1900
    functionLinenumberEnd: 1978
    functionName: Botan_Tests::FFI_KDF_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - std::string::resize
    - reinterpret_cast<uint8_t*>
    - botan_bcrypt_generate
    - std::string::data
    - std::string::c_str
    - std::vector::data
    - std::vector::resize
    - TEST_FFI_FAIL
    - std::to_string
    - TEST_FFI_OK
    - std::vector::size
    - TEST_FFI_INIT
    - test_note
    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: 1983
      start: 1983
    functionDepth: 0
    functionLinenumber: 1983
    functionLinenumberEnd: 1983
    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:1988,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:1991,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1991,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1992,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:1994,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1995,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1995,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1996,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1997,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1997,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2003,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2005,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2006,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2006,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2007,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2008,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2008,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2010,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2011,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2013,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2018,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2019,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2020,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2021,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2023,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2024,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2025,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2027,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2027,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2027,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2029,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2029,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2029,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2030,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2032,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2032,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2032,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2033,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2035,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2035,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2035,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2036,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2038,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2038,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2038,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2039,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2041,1
    - Dst: botan_block_cipher_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2042,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 34
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2044
      start: 1985
    functionDepth: 1
    functionLinenumber: 1985
    functionLinenumberEnd: 2044
    functionName: Botan_Tests::FFI_Blockcipher_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - botan_block_cipher_destroy
    - test_eq
    - std::array::data
    - TEST_FFI_RC
    - std::vector::data
    - std::array::size
    - TEST_FFI_FAIL
    - TEST_FFI_OK
    - std::vector::size
    - 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: 2049
      start: 2049
    functionDepth: 0
    functionLinenumber: 2049
    functionLinenumberEnd: 2049
    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:2053,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2058,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2059,1
    - Dst: reinterpret_cast<botan_hash_t>
      Src: /src/botan/src/tests/test_ffi.cpp:2059,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2060,1
    - Dst: botan_error_description
      Src: /src/botan/src/tests/test_ffi.cpp:2065,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2066,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2072,1
    - Dst: std::set::contains
      Src: /src/botan/src/tests/test_ffi.cpp:2072,1
    - Dst: std::set::insert
      Src: /src/botan/src/tests/test_ffi.cpp:2073,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2077
      start: 2051
    functionDepth: 1
    functionLinenumber: 2051
    functionLinenumberEnd: 2077
    functionName: Botan_Tests::FFI_ErrorHandling_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - std::set::contains
    - botan_error_description
    - std::set::insert
    - botan_mp_init
    - confirm
    - 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: 2082
      start: 2082
    functionDepth: 0
    functionLinenumber: 2082
    functionLinenumberEnd: 2082
    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:2089,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2091,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2094,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2101,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2103,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2105,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2108,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2108,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2110,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2111,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_ffi.cpp:2111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2112
      start: 2084
    functionDepth: 1
    functionLinenumber: 2084
    functionLinenumberEnd: 2112
    functionName: Botan_Tests::FFI_Base64_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - TEST_FFI_RC
    - std::string
    - strlen
    - reinterpret_cast<const char*>
    - TEST_FFI_OK
    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: 2117
      start: 2117
    functionDepth: 0
    functionLinenumber: 2117
    functionLinenumberEnd: 2117
    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:2123,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2125,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2131,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2132,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2135,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2135,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2137,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2138,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_ffi.cpp:2138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2139
      start: 2119
    functionDepth: 1
    functionLinenumber: 2119
    functionLinenumberEnd: 2139
    functionName: Botan_Tests::FFI_Hex_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - TEST_FFI_RC
    - std::string
    - strlen
    - reinterpret_cast<const char*>
    - TEST_FFI_OK
    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: 2144
      start: 2144
    functionDepth: 0
    functionLinenumber: 2144
    functionLinenumberEnd: 2144
    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:2151,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2152,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2153,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2154,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2155,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2156,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2157,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2159,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2161,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2162,1
    - Dst: botan_mp_set_from_int
      Src: /src/botan/src/tests/test_ffi.cpp:2164,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2165,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2166,1
    - Dst: botan_mp_add_u32
      Src: /src/botan/src/tests/test_ffi.cpp:2168,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2169,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2170,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2173,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2174,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2174,1
    - Dst: botan_mp_sub_u32
      Src: /src/botan/src/tests/test_ffi.cpp:2176,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2177,1
    - Dst: botan_mp_add_u32
      Src: /src/botan/src/tests/test_ffi.cpp:2178,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2179,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2180,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2183,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2184,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2184,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2186,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2187,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2188,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2189,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2190,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2194,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2196,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2197,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2199,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2200,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2202,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2203,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2204,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2205,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2206,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2209,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2210,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2211,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2212,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2213,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2215,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2216,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2218,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2219,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2221,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2222,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2224,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2225,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2227,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2229,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2233,1
    - Dst: test_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_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2237,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2237,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2240,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2241,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2243,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2244,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2245,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2246,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2247,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2248,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2248,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2250,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2251,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2252,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2252,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2255,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2256,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2259,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2261,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2263,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2264,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2264,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2266,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2268,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2269,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2269,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2270,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2273,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2274,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2277,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2278,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2278,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2281,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2282,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2282,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2284,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2285,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2287,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2288,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2288,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2289,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2291,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2293,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2294,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2294,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2296,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2298,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2299,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2299,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2301,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2303,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2304,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2304,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2307,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2310,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2311,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2314,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2315,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2317,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2319,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2320,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2320,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2322,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2324,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2325,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2325,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2327,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2328,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2331,1
    - Dst: botan_mp_to_bin
      Src: /src/botan/src/tests/test_ffi.cpp:2332,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2332,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2333,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2335,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2336,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2338,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2339,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2339,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2342,1
    - Dst: botan_mp_rand_bits
      Src: /src/botan/src/tests/test_ffi.cpp:2345,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2346,1
    - Dst: test_lte
      Src: /src/botan/src/tests/test_ffi.cpp:2347,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2349,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2350,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2351,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_ffi.cpp:2351,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2353,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2354,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2355,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_ffi.cpp:2355,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2357,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2358,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2359,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2360,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 151
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2362
      start: 2146
    functionDepth: 1
    functionLinenumber: 2146
    functionLinenumberEnd: 2362
    functionName: Botan_Tests::FFI_MP_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - botan_mp_set_from_int
    - TEST_FFI_RC
    - test_eq
    - botan_mp_sub_u32
    - botan_mp_destroy
    - static_cast<size_t>
    - botan_mp_to_bin
    - std::string
    - botan_mp_add_u32
    - std::vector::data
    - test_lte
    - std::vector::resize
    - botan_mp_rand_bits
    - TEST_FFI_OK
    - botan_mp_init
    - confirm
    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: 2367
      start: 2367
    functionDepth: 0
    functionLinenumber: 2367
    functionLinenumberEnd: 2367
    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:2373,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:2374,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2377,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2378,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2383,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:2384,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2386,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2389,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2390,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2392,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2393,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2394,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2396,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2397,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2399,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2400,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2402
      start: 2369
    functionDepth: 1
    functionLinenumber: 2369
    functionLinenumberEnd: 2402
    functionName: Botan_Tests::FFI_FPE_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - botan_mp_destroy
    - botan_mp_set_from_str
    - TEST_FFI_OK
    - botan_mp_init
    - 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: 2407
      start: 2407
    functionDepth: 0
    functionLinenumber: 2407
    functionLinenumberEnd: 2407
    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:2410,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2415,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2415,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2415,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2420,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2421,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2423,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2424,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2426,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2427,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2428,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2431
      start: 2409
    functionDepth: 1
    functionLinenumber: 2409
    functionLinenumberEnd: 2431
    functionName: Botan_Tests::FFI_TOTP_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - TEST_FFI_RC
    - std::vector::data
    - TEST_FFI_OK
    - std::vector::size
    - confirm
    - 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: 2436
      start: 2436
    functionDepth: 0
    functionLinenumber: 2436
    functionLinenumberEnd: 2436
    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:2439,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2445,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2445,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2445,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2449,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2450,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2451,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2452,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2453,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2454,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2455,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2456,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2460,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2461,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2462,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2463,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2464,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2465,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2468
      start: 2438
    functionDepth: 1
    functionLinenumber: 2438
    functionLinenumberEnd: 2468
    functionName: Botan_Tests::FFI_HOTP_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - TEST_FFI_RC
    - std::vector::data
    - TEST_FFI_OK
    - std::vector::size
    - confirm
    - 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: 2473
      start: 2473
    functionDepth: 0
    functionLinenumber: 2473
    functionLinenumberEnd: 2473
    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:2482,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2487,1
    - Dst: test_eq
      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_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2496,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2498
      start: 2475
    functionDepth: 1
    functionLinenumber: 2475
    functionLinenumberEnd: 2498
    functionName: Botan_Tests::FFI_Keywrap_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_OK
    - test_eq
    - 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: 2503
      start: 2503
    functionDepth: 0
    functionLinenumber: 2503
    functionLinenumberEnd: 2503
    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:2507,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2508,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2510,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2511,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2514,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2515,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2518,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2519,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2523
      start: 2505
    functionDepth: 1
    functionLinenumber: 2505
    functionLinenumberEnd: 2523
    functionName: Botan_Tests::FFI_XMSS_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_OK
    - TEST_FFI_RC
    - confirm
    - 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: 2528
      start: 2528
    functionDepth: 0
    functionLinenumber: 2528
    functionLinenumberEnd: 2528
    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:2533,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2534,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2537,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2538,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2541,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2544,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2545,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:2547,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2554,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2555,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2556,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2557,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2558,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2560,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2561,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2563,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2564,1
    - Dst: TEST_FFI_OK
      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: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2567,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2573,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2574,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2575,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2576,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2578,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2579,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2580,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2581,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2584,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2585,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2588,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2592,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2593,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2595,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2596,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2600,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2601,1
    - Dst: botan_privkey_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2602,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2604,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2605,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2608,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2609,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2611,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2612,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2613,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2614,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2615,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2618,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2623,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2624,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2627,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2627,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2628,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2631,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2634,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2635,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2636,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2639,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2640,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2640,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2641,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2641,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2644,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2645,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2645,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2646,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2646,1
    - Dst: TEST_FFI_INIT
      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: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2652,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2652,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2655,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2655,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2658,1
    - Dst: std::vector::data
      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: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2659,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2660,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2663,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2665,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2665,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2667,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2668,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2668,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2668,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2669,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2671,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2674,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2677,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2680,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2681,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2682,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2683,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 84
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2685
      start: 2530
    functionDepth: 1
    functionLinenumber: 2530
    functionLinenumberEnd: 2685
    functionName: Botan_Tests::FFI_RSA_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - std::array::data
    - test_eq
    - botan_mp_destroy
    - std::vector::data
    - ffi_test_pubkey_export
    - botan_privkey_destroy
    - std::vector::resize
    - std::array::size
    - TEST_FFI_FAIL
    - std::vector::size
    - TEST_FFI_OK
    - botan_mp_init
    - confirm
    - 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: 2690
      start: 2690
    functionDepth: 0
    functionLinenumber: 2690
    functionLinenumberEnd: 2690
    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:2695,1
    - Dst: Botan_Tests::FFI_DSA_Test::do_dsa_test
      Src: /src/botan/src/tests/test_ffi.cpp:2696,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2699,1
    - Dst: Botan_Tests::FFI_DSA_Test::do_dsa_test
      Src: /src/botan/src/tests/test_ffi.cpp:2700,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2702
      start: 2692
    functionDepth: 2
    functionLinenumber: 2692
    functionLinenumberEnd: 2702
    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:2706,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2709,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2710,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:2712,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2719,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2720,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2721,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2722,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2723,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2725,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2726,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2727,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2728,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2729,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2732,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2733,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2735,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2736,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2738,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2739,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2741,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2742,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2743,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2746,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2747,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2750,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2751,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2753,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2754,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2755,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2756,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2757,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2764,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2766,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2766,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2766,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2769,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2770,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2773,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2773,1
    - Dst: test_lte
      Src: /src/botan/src/tests/test_ffi.cpp:2774,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2775,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2777,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_ffi.cpp:2782,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2782,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2783,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2783,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2783,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2784,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2784,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2784,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2788,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2788,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2788,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2789,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2790,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2790,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2793,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2793,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2793,1
    - Dst: TEST_FFI_RC
      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:2795,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2798,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2798,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2798,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2799,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2800,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2800,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2803,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2803,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2803,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2804,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:2804,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2806,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2809,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2810,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2811,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2812,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: 2813
      start: 2705
    functionDepth: 1
    functionLinenumber: 2705
    functionLinenumberEnd: 2813
    functionName: Botan_Tests::FFI_DSA_Test::do_dsa_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 2
    functionsReached:
    - TEST_FFI_RC
    - botan_mp_destroy
    - std::vector::data
    - test_lte
    - ffi_test_pubkey_export
    - std::vector::empty
    - std::vector::resize
    - std::vector::size
    - TEST_FFI_OK
    - botan_mp_init
    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: 2818
      start: 2818
    functionDepth: 0
    functionLinenumber: 2818
    functionLinenumberEnd: 2818
    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:2825,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2829,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:2830,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2837,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2838,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2839,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2841,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2842,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2844,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2845,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2846,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2847,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:2847,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:2847,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2852,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2853,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2854,1
    - Dst: ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:2854,1
    - Dst: ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:2854,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2855,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2856,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2857,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:2862,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2862,1
    - Dst: test_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:2867,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2867,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2867,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2871,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2873,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2873,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2873,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2876,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2878,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2880,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2881,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2881,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2882,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2884,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_ffi.cpp:2889,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2889,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2890,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2890,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2890,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2891,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2891,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2891,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::size
      Src: /src/botan/src/tests/test_ffi.cpp:2895,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2896,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2898,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2898,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::size
      Src: /src/botan/src/tests/test_ffi.cpp:2901,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2902,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2904,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2904,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2907,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2907,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2907,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2908,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2910,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2910,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2913,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2913,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2913,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2914,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2914,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2914,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2916,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2920,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2921,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2922,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2923,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2924,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2925,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2926,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2927,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 59
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2928
      start: 2820
    functionDepth: 1
    functionLinenumber: 2820
    functionLinenumberEnd: 2928
    functionName: Botan_Tests::FFI_ECDSA_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - std::array::data
    - ViewBytesSink::callback
    - test_eq
    - ViewBytesSink::data
    - ViewBytesSink::size
    - std::vector::data
    - std::vector::empty
    - ffi_test_pubkey_export
    - ViewBytesSink::delegate
    - std::vector::resize
    - std::array::size
    - std::vector::size
    - TEST_FFI_OK
    - botan_mp_init
    - 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: 2933
      start: 2933
    functionDepth: 0
    functionLinenumber: 2933
    functionLinenumberEnd: 2933
    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:2944,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2948,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:2949,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2953,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2960,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2961,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2962,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2964,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2965,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2966,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2967,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:2967,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:2967,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2968,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2969,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2970,1
    - Dst: ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:2970,1
    - Dst: ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:2970,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2971,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2972,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2973,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2976,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2978,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2978,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2979,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2979,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2983,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2983,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2983,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2985,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:2985,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2987,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2987,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2987,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2990,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2992,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2994,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2994,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2995,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2997,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_ffi.cpp:3002,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3002,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:3002,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3003,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3003,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3003,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3004,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3004,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3004,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3008,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3008,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3008,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3009,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3010,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3010,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3013,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3013,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3013,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3014,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3015,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3015,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3018,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3018,1
    - Dst: std::vector::size
      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: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3020,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3020,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3023,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3023,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3023,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3024,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3024,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3024,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3026,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3029,1
    - Dst: TEST_FFI_OK
      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_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3032,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3033,1
    - Dst: TEST_FFI_OK
      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_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3036,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 56
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3037
      start: 2935
    functionDepth: 1
    functionLinenumber: 2935
    functionLinenumberEnd: 3037
    functionName: Botan_Tests::FFI_SM2_Sig_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - std::array::data
    - ViewBytesSink::callback
    - TEST_FFI_RC
    - ViewBytesSink::data
    - REQUIRE_FFI_OK
    - ViewBytesSink::size
    - std::string::c_str
    - std::vector::data
    - std::vector::empty
    - ffi_test_pubkey_export
    - ViewBytesSink::delegate
    - std::vector::resize
    - std::array::size
    - std::vector::size
    - TEST_FFI_OK
    - botan_mp_init
    - 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: 3042
      start: 3042
    functionDepth: 0
    functionLinenumber: 3042
    functionLinenumberEnd: 3042
    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:3052,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3056,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:3057,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3061,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3068,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3069,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3070,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3072,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3073,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3074,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3075,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3075,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3075,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3076,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3077,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3078,1
    - Dst: ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:3078,1
    - Dst: ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:3078,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3079,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3080,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3081,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:3084,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3086,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3086,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3087,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3087,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3092,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3092,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3092,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3095,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3097,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3097,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3099,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3100,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3100,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3100,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3100,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3101,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3104,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3106,1
    - Dst: std::vector::size
      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: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3110,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3110,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3110,1
    - Dst: botan_pk_op_decrypt_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3112,1
    - Dst: botan_pk_op_encrypt_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3114,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3116,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3117,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3118,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3119,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3120,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3121,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3122,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 41
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3124
      start: 3044
    functionDepth: 1
    functionLinenumber: 3044
    functionLinenumberEnd: 3124
    functionName: Botan_Tests::FFI_SM2_Enc_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - std::array::data
    - ViewBytesSink::callback
    - ViewBytesSink::data
    - REQUIRE_FFI_OK
    - ViewBytesSink::size
    - botan_pk_op_decrypt_destroy
    - std::vector::data
    - botan_pk_op_encrypt_destroy
    - ffi_test_pubkey_export
    - ViewBytesSink::delegate
    - std::vector::resize
    - std::array::size
    - std::vector::size
    - TEST_FFI_OK
    - botan_mp_init
    - 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: 3129
      start: 3129
    functionDepth: 0
    functionLinenumber: 3129
    functionLinenumberEnd: 3129
    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:3133,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3138,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3141,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3144,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3151,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3152,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3153,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3155,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3156,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3157,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3158,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3158,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3158,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3163,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3164,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3165,1
    - Dst: ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:3165,1
    - Dst: ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:3165,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3166,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3167,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3168,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:3170,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:3171,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:3172,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3184,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3186,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3189,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3193,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3193,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3195,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3199,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3199,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3202,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3202,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3202,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3207,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3208,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3209,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3209,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3209,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3209,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3209,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3212,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3213,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3214,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3214,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3214,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3214,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3214,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3216,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3218,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3219,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:3222,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3223,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3224,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3225,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3226,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3227,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3228,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3229,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 45
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3230
      start: 3131
    functionDepth: 1
    functionLinenumber: 3131
    functionLinenumberEnd: 3230
    functionName: Botan_Tests::FFI_ECDH_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - test_eq
    - ViewBytesSink::callback
    - botan_mp_init
    - ViewBytesSink::data
    - REQUIRE_FFI_OK
    - ViewBytesSink::size
    - std::vector::data
    - ffi_test_pubkey_export
    - std::vector::size
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - 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: 3235
      start: 3235
    functionDepth: 0
    functionLinenumber: 3235
    functionLinenumberEnd: 3235
    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:3239,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3241,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:3243,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:3246,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3247,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3247,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3248,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3248,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3253,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3254,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3256
      start: 3237
    functionDepth: 1
    functionLinenumber: 3237
    functionLinenumberEnd: 3256
    functionName: Botan_Tests::FFI_McEliece_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - std::array::data
    - ffi_test_pubkey_export
    - std::array::size
    - 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: 3261
      start: 3261
    functionDepth: 0
    functionLinenumber: 3261
    functionLinenumberEnd: 3261
    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:3269,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3271,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3272,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3273,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3277,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3277,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3282,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3284,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3284,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3284,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3286,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3289,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3290,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3290,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3290,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3292,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3293,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3293,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3298,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3299,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3299,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3299,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3302,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3304,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3306,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3306,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3307,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3309,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3312,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3316,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3317,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3317,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3317,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3318,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3318,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3318,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3320,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3323,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3324,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3325
      start: 3263
    functionDepth: 1
    functionLinenumber: 3263
    functionLinenumberEnd: 3325
    functionName: Botan_Tests::FFI_Ed25519_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - std::vector::data
    - std::vector::resize
    - TEST_FFI_OK
    - std::vector::size
    - 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: 3330
      start: 3330
    functionDepth: 0
    functionLinenumber: 3330
    functionLinenumberEnd: 3330
    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:3337,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3339,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3341,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3342,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3345,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:3345,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3350,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3350,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3351,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3353,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3356,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3356,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3357,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3359,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3360,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:3360,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3365,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3366,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:3366,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:3366,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3369,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3371,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3373,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3373,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3374,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3376,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3379,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3383,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3384,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:3384,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:3384,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3385,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3385,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3385,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3387,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3390,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3391,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3392
      start: 3332
    functionDepth: 1
    functionLinenumber: 3332
    functionLinenumberEnd: 3392
    functionName: Botan_Tests::FFI_Ed448_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - Botan::hex_decode
    - test_eq
    - std::vector::data
    - std::vector::resize
    - TEST_FFI_OK
    - std::vector::size
    - auto::size
    - test_is_eq
    - 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: 3397
      start: 3397
    functionDepth: 0
    functionLinenumber: 3397
    functionLinenumberEnd: 3397
    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:3403,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3405,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3407,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3409,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3412,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3412,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3417,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3417,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3418,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3423,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3424,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3424,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3425,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3428,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3428,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3429,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3429,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3430,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3433,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3436,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3437,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3438,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3438,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3438,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3440,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3442,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3443,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3444,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3446
      start: 3399
    functionDepth: 1
    functionLinenumber: 3399
    functionLinenumberEnd: 3446
    functionName: Botan_Tests::FFI_X25519_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - REQUIRE_FFI_OK
    - std::vector::data
    - TEST_FFI_OK
    - std::vector::size
    - 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: 3451
      start: 3451
    functionDepth: 0
    functionLinenumber: 3451
    functionLinenumberEnd: 3451
    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:3455,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3457,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3459,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3461,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3465,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:3465,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3470,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3470,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3471,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3476,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3477,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3477,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3478,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3481,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:3481,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3482,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3482,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3483,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3486,1
    - Dst: std::vector::size
      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: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3491,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:3491,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:3491,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3493,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3495,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3496,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3497,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3499
      start: 3453
    functionDepth: 1
    functionLinenumber: 3453
    functionLinenumberEnd: 3499
    functionName: Botan_Tests::FFI_X448_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - Botan::hex_decode
    - test_eq
    - REQUIRE_FFI_OK
    - std::vector::data
    - TEST_FFI_OK
    - std::vector::size
    - auto::size
    - TEST_FFI_INIT
    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:3518,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3522,1
    - Dst: algo
      Src: /src/botan/src/tests/test_ffi.cpp:3522,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3525,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3530,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3530,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3530,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3531,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3531,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3531,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3536,1
    - Dst: private_key_load_function
      Src: /src/botan/src/tests/test_ffi.cpp:3536,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3537,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3537,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3538,1
    - Dst: public_key_load_function
      Src: /src/botan/src/tests/test_ffi.cpp:3538,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3539,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3539,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3544,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3544,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3544,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3545,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3545,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3545,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3546,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3546,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3546,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3547,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3547,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3547,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3551,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3556,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3557,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3562,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:3575,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3583,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3589,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3591,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3593,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3594,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3595,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3596,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3597,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3601,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3603,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3604,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3608,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3613,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3614,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3618,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3623,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3627,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3628,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3630,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3632,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3633,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3634,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3637,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3639,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3640,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3641,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3642,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 43
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3644
      start: 3517
    functionDepth: 1
    functionLinenumber: 3517
    functionLinenumberEnd: 3644
    functionName: Botan_Tests::FFI_KEM_Roundtrip_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - modes
    - test_eq
    - private_key_load_function
    - ViewBytesSink::callback
    - public_key_load_function
    - TEST_FFI_RC
    - Botan::secure_vector::resize
    - ViewBytesSink::get
    - std::vector::data
    - std::vector::resize
    - Botan::secure_vector::data
    - std::vector::size
    - algo
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - confirm
    - TEST_FFI_INIT
    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:3667,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3671,1
    - Dst: algo
      Src: /src/botan/src/tests/test_ffi.cpp:3671,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3674,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3679,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3679,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3679,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3680,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3680,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3680,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3685,1
    - Dst: private_key_load_function
      Src: /src/botan/src/tests/test_ffi.cpp:3685,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3686,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3686,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3687,1
    - Dst: public_key_load_function
      Src: /src/botan/src/tests/test_ffi.cpp:3687,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3688,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3688,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3693,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3693,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3693,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3694,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3694,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3694,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3695,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3695,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3695,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3696,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3696,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3696,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3700,1
    - Dst: hash_algo_or_padding
      Src: /src/botan/src/tests/test_ffi.cpp:3700,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3704,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3707,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3707,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3707,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3708,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3708,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3708,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3712,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3715,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3718,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3719,1
    - Dst: hash_algo_or_padding
      Src: /src/botan/src/tests/test_ffi.cpp:3719,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3720,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3720,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3720,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3721,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3721,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3721,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3726,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3726,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3727,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3728,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:3733,1
    - Dst: hash_algo_or_padding
      Src: /src/botan/src/tests/test_ffi.cpp:3733,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3734,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3734,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3734,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3735,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3735,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3735,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3738,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3738,1
    - Dst: Botan::secure_vector::size
      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: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3742,1
    - Dst: hash_algo_or_padding
      Src: /src/botan/src/tests/test_ffi.cpp:3742,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3743,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3743,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3743,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3744,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3745,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3745,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3746,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3749,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3750,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3751,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3752,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 42
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3754
      start: 3663
    functionDepth: 1
    functionLinenumber: 3663
    functionLinenumberEnd: 3754
    functionName: Botan_Tests::FFI_Signature_Roundtrip_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - modes
    - test_eq
    - private_key_load_function
    - ViewBytesSink::callback
    - public_key_load_function
    - TEST_FFI_RC
    - Botan::secure_vector::resize
    - ViewBytesSink::get
    - hash_algo_or_padding
    - std::vector::data
    - Botan::secure_vector::data
    - std::vector::size
    - algo
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - Botan::secure_vector::size
    - 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: 3759
      start: 3759
    functionDepth: 0
    functionLinenumber: 3759
    functionLinenumberEnd: 3759
    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:3762,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3764,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3766,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3770,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3770,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3776,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3776,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3776,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3777,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3777,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3777,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3778,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3778,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3779,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3779,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3785,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3786,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3786,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3786,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3787,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3787,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3787,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3788,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3788,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3789,1
    - Dst: ViewBytesSink::get
      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: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3793,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3793,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3793,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3794,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3794,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3796,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3797,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3798,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3799
      start: 3761
    functionDepth: 1
    functionLinenumber: 3761
    functionLinenumberEnd: 3799
    functionName: Botan_Tests::FFI_Kyber512_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - ViewBytesSink::callback
    - ViewBytesSink::get
    - std::vector::data
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - 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: 3804
      start: 3804
    functionDepth: 0
    functionLinenumber: 3804
    functionLinenumberEnd: 3804
    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:3807,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3809,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3811,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3815,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3815,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3821,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3821,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3821,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3822,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3822,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3822,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3823,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3823,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3824,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3824,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3830,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3831,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3831,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3831,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3832,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3832,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3832,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3833,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3833,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3834,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3834,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3837,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3837,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3838,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3838,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3838,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3839,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3839,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3841,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3842,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3843,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3844
      start: 3806
    functionDepth: 1
    functionLinenumber: 3806
    functionLinenumberEnd: 3844
    functionName: Botan_Tests::FFI_Kyber768_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - ViewBytesSink::callback
    - ViewBytesSink::get
    - std::vector::data
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - 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: 3849
      start: 3849
    functionDepth: 0
    functionLinenumber: 3849
    functionLinenumberEnd: 3849
    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:3852,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3854,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3856,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3860,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3860,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3866,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3866,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3866,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3867,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3867,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3867,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3868,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3868,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3869,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3869,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3875,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3876,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3876,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3876,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3877,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3877,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3877,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3878,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3878,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3879,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3879,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3882,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3882,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3883,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3883,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3883,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3884,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3884,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3886,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3887,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3888,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3889
      start: 3851
    functionDepth: 1
    functionLinenumber: 3851
    functionLinenumberEnd: 3889
    functionName: Botan_Tests::FFI_Kyber1024_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - ViewBytesSink::callback
    - ViewBytesSink::get
    - std::vector::data
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - 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: 3894
      start: 3894
    functionDepth: 0
    functionLinenumber: 3894
    functionLinenumberEnd: 3894
    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: 3897
      start: 3897
    functionDepth: 0
    functionLinenumber: 3897
    functionLinenumberEnd: 3897
    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: 3899
      start: 3899
    functionDepth: 0
    functionLinenumber: 3899
    functionLinenumberEnd: 3899
    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: 3901
      start: 3901
    functionDepth: 0
    functionLinenumber: 3901
    functionLinenumberEnd: 3901
    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: 3903
      start: 3903
    functionDepth: 0
    functionLinenumber: 3903
    functionLinenumberEnd: 3903
    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: 3908
      start: 3908
    functionDepth: 0
    functionLinenumber: 3908
    functionLinenumberEnd: 3908
    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: 3911
      start: 3911
    functionDepth: 0
    functionLinenumber: 3911
    functionLinenumberEnd: 3911
    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: 3913
      start: 3913
    functionDepth: 0
    functionLinenumber: 3913
    functionLinenumberEnd: 3913
    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: 3915
      start: 3915
    functionDepth: 0
    functionLinenumber: 3915
    functionLinenumberEnd: 3915
    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: 3932
      start: 3917
    functionDepth: 0
    functionLinenumber: 3917
    functionLinenumberEnd: 3932
    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: 3937
      start: 3937
    functionDepth: 0
    functionLinenumber: 3937
    functionLinenumberEnd: 3937
    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: 3940
      start: 3940
    functionDepth: 0
    functionLinenumber: 3940
    functionLinenumberEnd: 3940
    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: 3942
      start: 3942
    functionDepth: 0
    functionLinenumber: 3942
    functionLinenumberEnd: 3942
    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: 3944
      start: 3944
    functionDepth: 0
    functionLinenumber: 3944
    functionLinenumberEnd: 3944
    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: 3952
      start: 3946
    functionDepth: 0
    functionLinenumber: 3946
    functionLinenumberEnd: 3952
    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: 3954
      start: 3954
    functionDepth: 0
    functionLinenumber: 3954
    functionLinenumberEnd: 3954
    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: 3959
      start: 3959
    functionDepth: 0
    functionLinenumber: 3959
    functionLinenumberEnd: 3959
    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: 3962
      start: 3962
    functionDepth: 0
    functionLinenumber: 3962
    functionLinenumberEnd: 3962
    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: 3964
      start: 3964
    functionDepth: 0
    functionLinenumber: 3964
    functionLinenumberEnd: 3964
    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: 3966
      start: 3966
    functionDepth: 0
    functionLinenumber: 3966
    functionLinenumberEnd: 3966
    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:3978,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_ffi.cpp:3979,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3991
      start: 3968
    functionDepth: 1
    functionLinenumber: 3968
    functionLinenumberEnd: 3991
    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: 3993
      start: 3993
    functionDepth: 0
    functionLinenumber: 3993
    functionLinenumberEnd: 3993
    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: 3998
      start: 3998
    functionDepth: 0
    functionLinenumber: 3998
    functionLinenumberEnd: 3998
    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: 4001
      start: 4001
    functionDepth: 0
    functionLinenumber: 4001
    functionLinenumberEnd: 4001
    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: 4003
      start: 4003
    functionDepth: 0
    functionLinenumber: 4003
    functionLinenumberEnd: 4003
    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: 4005
      start: 4005
    functionDepth: 0
    functionLinenumber: 4005
    functionLinenumberEnd: 4005
    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:4012,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_ffi.cpp:4013,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4032
      start: 4007
    functionDepth: 1
    functionLinenumber: 4007
    functionLinenumberEnd: 4032
    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: 4037
      start: 4037
    functionDepth: 0
    functionLinenumber: 4037
    functionLinenumberEnd: 4037
    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:4042,1
    - Dst: Botan_Tests::FFI_ElGamal_Test::do_elgamal_test
      Src: /src/botan/src/tests/test_ffi.cpp:4043,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4046,1
    - Dst: Botan_Tests::FFI_ElGamal_Test::do_elgamal_test
      Src: /src/botan/src/tests/test_ffi.cpp:4047,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4049
      start: 4039
    functionDepth: 2
    functionLinenumber: 4039
    functionLinenumberEnd: 4049
    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:4053,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4056,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4057,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:4059,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4064,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4065,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4066,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4067,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4069,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4070,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4071,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4072,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4075,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4078,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4081,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4083,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4084,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4085,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4086,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4100,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:4100,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4102,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4102,1
    - Dst: std::vector::resize
      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: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4105,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4105,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4105,1
    - Dst: std::vector::resize
      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:4112,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:4112,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4114,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4114,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4115,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4116,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4117,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4117,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4117,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4118,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4119,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4122,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4124,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4125,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4126,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4127,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: 4128
      start: 4052
    functionDepth: 1
    functionLinenumber: 4052
    functionLinenumberEnd: 4128
    functionName: Botan_Tests::FFI_ElGamal_Test::do_elgamal_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 2
    functionsReached:
    - test_eq
    - botan_mp_destroy
    - std::string::c_str
    - std::vector::data
    - ffi_test_pubkey_export
    - std::vector::resize
    - std::vector::size
    - TEST_FFI_OK
    - botan_mp_init
    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: 4133
      start: 4133
    functionDepth: 0
    functionLinenumber: 4133
    functionLinenumberEnd: 4133
    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:4137,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4142,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4145,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4148,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4156,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4157,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4158,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4159,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4161,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4162,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4163,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4164,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4168,1
    - Dst: TEST_FFI_OK
      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:4172,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4177,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4178,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4179,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4181,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4182,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:4187,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:4188,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4190,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:4191,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4193,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:4194,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4197,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4199,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4202,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4206,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4206,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4208,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4212,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4212,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4217,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4219,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4220,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4220,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4220,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4223,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4225,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4226,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4226,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4226,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4228,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4230,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4231,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4232,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4233,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4235,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4236,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4237,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4239,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4240,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4241,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4242,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4243,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: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 55
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4247
      start: 4135
    functionDepth: 1
    functionLinenumber: 4135
    functionLinenumberEnd: 4247
    functionName: Botan_Tests::FFI_DH_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - test_eq
    - REQUIRE_FFI_OK
    - std::vector::data
    - std::vector::size
    - TEST_FFI_OK
    - botan_mp_init
    - confirm
    - 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: 4252
      start: 4252
    functionDepth: 0
    functionLinenumber: 4252
    functionLinenumberEnd: 4252
    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:4262,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4263,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4265,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4266,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4267,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4270,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4271,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4273,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4274,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4276,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4277,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4278,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4280,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4281,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4285,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:4286,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4288,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:4289,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4291,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:4292,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4294,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4295,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4296,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4297,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4298,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4299,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4302,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4303,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4312,1
    - Dst: TEST_FFI_RC
      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::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:4314,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4315,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4317,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4320,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4322,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4323,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4326,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4326,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4326,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4327,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4327,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4329,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4331,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4332,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4335,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4335,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4335,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4336,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4336,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4337,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4339,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4340,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4341,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4342,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4344,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4345,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 50
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4347
      start: 4254
    functionDepth: 1
    functionLinenumber: 4254
    functionLinenumberEnd: 4347
    functionName: Botan_Tests::FFI_OID_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - test_eq
    - ViewStringSink::callback
    - std::string::c_str
    - ViewStringSink::get
    - TEST_FFI_FAIL
    - TEST_FFI_OK
    - ViewStringSink::delegate
    - confirm
    - 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: 4352
      start: 4352
    functionDepth: 0
    functionLinenumber: 4352
    functionLinenumberEnd: 4352
    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:4357,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4358,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:4359,1
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/test_ffi.cpp:4361,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:4362,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ffi.cpp:4363,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4375,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4377,1
    - Dst: Botan_Tests::FFI_EC_Group_Test::get_group_parameters
      Src: /src/botan/src/tests/test_ffi.cpp:4379,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4399,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4401,1
    - Dst: Botan_Tests::FFI_EC_Group_Test::get_group_parameters
      Src: /src/botan/src/tests/test_ffi.cpp:4403,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4413,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4414,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4434,1
    - Dst: botan_oid_register
      Src: /src/botan/src/tests/test_ffi.cpp:4435,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4436,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4437,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4438,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4439,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4440,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4441,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:4443,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:4444,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:4445,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:4446,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:4448,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:4450,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4453,1
    - Dst: Botan_Tests::FFI_EC_Group_Test::get_group_parameters
      Src: /src/botan/src/tests/test_ffi.cpp:4463,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4475,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4478,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4480,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4481,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4492,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4493,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4496,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4497,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4498,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4499,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4500,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4501,1
    - Dst: botan_oid_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4503,1
    - Dst: botan_oid_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4504,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4506,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4507,1
    - Dst: botan_oid_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4510,1
    - Dst: botan_oid_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4511,1
    - Dst: botan_oid_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4512,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4522,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4523,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4524,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4530,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4531,1
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_ffi.cpp:4532,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4536,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4537,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4538,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4539,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4540,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4542,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4543,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4546,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4546,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4546,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4548,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:4550,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4550,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4550,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4553,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4553,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4553,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4554,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4554,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4557,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:4557,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4559,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4560,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4563,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:4565,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4567,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:4567,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4568,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:4568,1
    - Dst: botan_privkey_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4570,1
    - Dst: TEST_FFI_OK
      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: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4574,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4575,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4576,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4577,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 82
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4579
      start: 4354
    functionDepth: 2
    functionLinenumber: 4354
    functionLinenumberEnd: 4579
    functionName: Botan_Tests::FFI_EC_Group_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - Botan_Tests::FFI_EC_Group_Test::get_group_parameters
    - Botan_Tests::Test::read_data_file
    - test_eq
    - reinterpret_cast<const uint8_t*>
    - botan_privkey_destroy
    - std::array::data
    - Botan::EC_Group::supports_application_specific_group
    - std::array::size
    - botan_mp_destroy
    - botan_mp_init
    - confirm
    - botan_mp_set_from_str
    - ViewBytesSink::callback
    - ViewStringSink::callback
    - ViewBytesSink::get
    - ViewStringSink::get
    - TEST_FFI_OK
    - ViewStringSink::delegate
    - Botan::EC_Group::supports_named_group
    - botan_oid_register
    - std::string::c_str
    - botan_oid_destroy
    - ViewBytesSink::delegate
    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:4591,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4592,1
    - Dst: TEST_FFI_OK
      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: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4595,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4596,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4597,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: 4598
      start: 4582
    functionDepth: 1
    functionLinenumber: 4582
    functionLinenumberEnd: 4598
    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: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    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: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    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: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    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: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: TEST_FFI_OK
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 94
    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: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: TEST_FFI_INIT
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 84
    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: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: TEST_FFI_FAIL
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 20
    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: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: TEST_FFI_RC
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 68
    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: 61
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 61
    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: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    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: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    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: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    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: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_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: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_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:92,1
    - Dst: auto*::m_buf::assign
      Src: /src/botan/src/tests/test_ffi.cpp:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - buf
    - len
    argTypes:
    - void*
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 96
    functionName: Botan_Tests::ViewBytesSink::write_fn
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - auto*::m_buf::assign
    - static_cast<ViewBytesSink*>
    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: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    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: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    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: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: Botan_Tests::ViewStringSink::get
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string_view
    signature: std::string_view get()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ViewStringSink*>
      Src: /src/botan/src/tests/test_ffi.cpp:119,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - str
    - len
    argTypes:
    - void*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 124
    functionName: Botan_Tests::ViewStringSink::write_fn
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - static_cast<ViewStringSink*>
    linkageType: ''
    returnType: int
    signature: int write_fn(void* ctx, const char* str, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::FFI_Test::name
      Src: /src/botan/src/tests/test_ffi.cpp:135,1
    - Dst: botan_rng_init
      Src: /src/botan/src/tests/test_ffi.cpp:138,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ffi.cpp:139,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_ffi.cpp:143,1
    - Dst: ffi_test
      Src: /src/botan/src/tests/test_ffi.cpp:144,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_ffi.cpp:145,1
    - Dst: botan_rng_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 150
    functionName: Botan_Tests::FFI_Test::run
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::end_timer
    - Test::Result::test_failure
    - botan_rng_init
    - ffi_test
    - botan_rng_destroy
    - Botan_Tests::FFI_Test::name
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:160,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:165,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:165,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:168,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:172,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:173,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:173,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:177,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:177,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:178,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:179,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:186,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:190,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:191,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:193,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:193,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:195,1
    - Dst: test_gte
      Src: /src/botan/src/tests/test_ffi.cpp:197,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:197,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:201,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:201,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:201,1
    - Dst: botan_privkey_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:202,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:207,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:211,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:212,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:212,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:222,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:226,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:227,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:229,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:231,1
    - Dst: botan_privkey_load
      Src: /src/botan/src/tests/test_ffi.cpp:234,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:234,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:234,1
    - Dst: botan_privkey_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:235,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:238,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:242,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:243,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:245,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:247,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:248,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:264,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:266,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:272,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:273,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:277,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:280,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:283,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:285,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:285,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:285,1
    - Dst: botan_privkey_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:286,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:291,1
    - Dst: test_gte
      Src: /src/botan/src/tests/test_ffi.cpp:292,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:295,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:299,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:299,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: 300
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 300
    functionName: Botan_Tests::ffi_test_pubkey_export
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - test_eq
    - std::string::c_str
    - std::vector::data
    - botan_privkey_destroy
    - std::vector::resize
    - test_gte
    - botan_privkey_load
    - TEST_FFI_OK
    - 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: 304
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 304
    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_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:307,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:308,1
    - Dst: botan_ffi_api_version
      Src: /src/botan/src/tests/test_ffi.cpp:308,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:309,1
    - Dst: botan_version_major
      Src: /src/botan/src/tests/test_ffi.cpp:309,1
    - Dst: Botan::version_major
      Src: /src/botan/src/tests/test_ffi.cpp:309,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:310,1
    - Dst: botan_version_minor
      Src: /src/botan/src/tests/test_ffi.cpp:310,1
    - Dst: Botan::version_minor
      Src: /src/botan/src/tests/test_ffi.cpp:310,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:311,1
    - Dst: botan_version_patch
      Src: /src/botan/src/tests/test_ffi.cpp:311,1
    - Dst: Botan::version_patch
      Src: /src/botan/src/tests/test_ffi.cpp:311,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:312,1
    - Dst: botan_version_string
      Src: /src/botan/src/tests/test_ffi.cpp:312,1
    - Dst: Botan::version_cstr
      Src: /src/botan/src/tests/test_ffi.cpp:312,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:313,1
    - Dst: botan_version_datestamp
      Src: /src/botan/src/tests/test_ffi.cpp:313,1
    - Dst: Botan::version_datestamp
      Src: /src/botan/src/tests/test_ffi.cpp:313,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:314,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:314,1
    - Dst: botan_ffi_api_version
      Src: /src/botan/src/tests/test_ffi.cpp:314,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:316,1
    - Dst: botan_ffi_api_version
      Src: /src/botan/src/tests/test_ffi.cpp:317,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:320,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:320,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:321,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:321,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:322,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:322,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:323,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:323,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:325,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:325,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:330,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:330,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:330,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:330,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:331,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:331,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:331,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:331,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:334,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:334,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:334,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:335,1
    - Dst: std::string::resize
      Src: /src/botan/src/tests/test_ffi.cpp:342,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:342,1
    - Dst: TEST_FFI_OK
      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: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:343,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:344,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:346,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:346,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:346,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:346,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 348
    functionName: Botan_Tests::FFI_Utils_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - test_eq
    - botan_version_patch
    - Botan::version_major
    - botan_ffi_supports_api
    - std::vector::data
    - Botan::version_datestamp
    - confirm
    - botan_version_datestamp
    - std::string::resize
    - Botan::version_patch
    - botan_version_string
    - botan_ffi_api_version
    - botan_version_minor
    - TEST_FFI_OK
    - std::vector::size
    - Botan::version_cstr
    - botan_version_major
    - Botan::version_minor
    - std::string::data
    - test_is_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: 353
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 353
    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:367,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:369,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:370,1
    - Dst: botan_rng_init
      Src: /src/botan/src/tests/test_ffi.cpp:372,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:373,1
    - Dst: botan_rng_init
      Src: /src/botan/src/tests/test_ffi.cpp:377,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:378,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:381,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:382,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:386,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:386,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:386,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:387,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:389,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:391,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:393,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:393,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:393,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:395,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:398,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:399,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:399,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:399,1
    - Dst: TEST_FFI_OK
      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_OK
      Src: /src/botan/src/tests/test_ffi.cpp:405,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:409,1
    - Dst: static_cast<size_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:417,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_ffi.cpp:422,1
    - Dst: static_cast<size_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:423,1
    - Dst: static_cast<size_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:427,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:429,1
    - Dst: Botan::clear_mem
      Src: /src/botan/src/tests/test_ffi.cpp:432,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:432,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:432,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:433,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:433,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:433,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:434,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:435,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:436,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:438,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:439,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:441,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:442,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:445,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:446,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:448,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:449,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:454,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:456,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:456,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:456,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:457,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_ffi.cpp:461,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_ffi.cpp:462,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_ffi.cpp:463,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:464,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:469,1
    - Dst: Botan::clear_mem
      Src: /src/botan/src/tests/test_ffi.cpp:470,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:470,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:470,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:472,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:472,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:472,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:473,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:475,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:478,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:479,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:483,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:486,1
    - Dst: Botan::clear_mem
      Src: /src/botan/src/tests/test_ffi.cpp:487,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:487,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:487,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:489,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:489,1
    - Dst: std::vector::size
      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_OK
      Src: /src/botan/src/tests/test_ffi.cpp:492,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:495,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:496,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:499,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:503,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:503,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:503,1
    - Dst: botan_tpm2_supports_crypto_backend
      Src: /src/botan/src/tests/test_ffi.cpp:504,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:505,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:506,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:508,1
    - Dst: tpm2_test_rng
      Src: /src/botan/src/tests/test_ffi.cpp:511,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:512,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:519,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:519,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:519,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:520,1
    - Dst: botan_tpm2_supports_crypto_backend
      Src: /src/botan/src/tests/test_ffi.cpp:524,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:525,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:526,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:528,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:532,1
    - Dst: tpm2_test_rng
      Src: /src/botan/src/tests/test_ffi.cpp:533,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:534,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:538,1
    - Dst: Esys_Finalize
      Src: /src/botan/src/tests/test_ffi.cpp:541,1
    - Dst: Tss2_TctiLdr_Finalize
      Src: /src/botan/src/tests/test_ffi.cpp:543,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:548,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:549,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:550,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:551,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 115
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 552
    functionName: Botan_Tests::FFI_RNG_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - test_eq
    - auto::empty
    - botan_rng_init
    - BOTAN_UNUSED
    - auto::c_str
    - REQUIRE_FFI_OK
    - std::vector::data
    - Esys_Finalize
    - TEST_FFI_FAIL
    - confirm
    - test_note
    - static_cast<size_t*>
    - Tss2_TctiLdr_Finalize
    - Botan_Tests::test_encoding_options
    - Botan::clear_mem
    - TEST_FFI_OK
    - std::vector::size
    - botan_tpm2_supports_crypto_backend
    - TEST_FFI_INIT
    - tpm2_test_rng
    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: 557
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 557
    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:561,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:561,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:562,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:563,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:564,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:565,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:566,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:569,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:570,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:572,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:573,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 559
    functionDepth: 1
    functionLinenumber: 559
    functionLinenumberEnd: 575
    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_RC
    - 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: 580
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 580
    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:627,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:627,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:636,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_ffi.cpp:636,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:640,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:641,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:641,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:641,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:646,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:657,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:660,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 663
    functionName: Botan_Tests::FFI_ZFEC_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - REQUIRE_FFI_OK
    - std::vector::data
    - TEST_FFI_FAIL
    - std::to_string
    - 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: 668
      start: 668
    functionDepth: 0
    functionLinenumber: 668
    functionLinenumberEnd: 668
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:691,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:691,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:696,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:696,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:699,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:699,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:700,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:701,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:704,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:704,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:705,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:706,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:707,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:709,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:710,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 711
    functionName: Botan_Tests::FFI_CRL_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - REQUIRE_FFI_OK
    - Botan_Tests::Test::data_file
    - reinterpret_cast<const uint8_t*>
    - TEST_FFI_OK
    - 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: 716
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 716
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:722,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:722,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:728,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:728,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:729,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:729,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:731,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:732,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:733,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:733,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:735,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:736,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:737,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:738,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:742,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:742,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:743,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:743,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:746,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:747,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:748,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:749,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:752,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:753,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:754,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:754,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:756,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:759,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:760,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:761,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:765,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:765,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:766,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:768,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:769,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:769,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:774,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:774,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:775,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:775,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:776,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:776,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:778,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:780,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:781,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:782,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_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:786,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:787,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:788,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:789,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:790,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:791,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:792,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 42
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 718
    functionDepth: 1
    functionLinenumber: 718
    functionLinenumberEnd: 793
    functionName: Botan_Tests::FFI_Cert_Validation_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - test_eq
    - REQUIRE_FFI_OK
    - Botan_Tests::Test::data_file
    - botan_x509_cert_validation_status
    - TEST_FFI_OK
    - confirm
    - 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: 798
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 798
    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:802,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:802,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:804,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:808,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:812,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:812,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:813,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:816,1
    - Dst: std::string::resize
      Src: /src/botan/src/tests/test_ffi.cpp:819,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:820,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:820,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:821,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:824,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:825,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:828,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:829,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:832,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:837,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:837,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:838,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:838,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:839,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_ffi.cpp:839,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:842,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:847,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:847,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:848,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_ffi.cpp:850,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:850,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:854,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:858,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:861,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:866,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:866,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:867,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_ffi.cpp:868,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:868,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:868,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:872,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:877,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:877,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:881,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:882,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:883,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:888,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:893,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:893,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:894,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_ffi.cpp:894,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:894,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:897,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:901,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:902,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:902,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:903,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_ffi.cpp:903,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:903,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:906,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:910,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:910,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:912,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:913,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:914,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:916,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 50
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 800
    functionDepth: 1
    functionLinenumber: 800
    functionLinenumberEnd: 918
    functionName: Botan_Tests::FFI_ECDSA_Certificate_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - test_eq
    - std::string::resize
    - Botan::hex_encode
    - Botan_Tests::Test::data_file
    - std::string::data
    - std::vector::data
    - std::vector::resize
    - reinterpret_cast<const char*>
    - TEST_FFI_OK
    - std::vector::size
    - confirm
    - 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: 923
      start: 923
    functionDepth: 0
    functionLinenumber: 923
    functionLinenumberEnd: 923
    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:927,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:929,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:929,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:930,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:932,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:933,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:936,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:938,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 925
    functionDepth: 1
    functionLinenumber: 925
    functionLinenumberEnd: 940
    functionName: Botan_Tests::FFI_PKCS_Hashid_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - TEST_FFI_RC
    - std::vector::data
    - std::vector::resize
    - std::vector::size
    - 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: 945
      start: 945
    functionDepth: 0
    functionLinenumber: 945
    functionLinenumberEnd: 945
    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:951,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:954,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:955,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:956,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:960,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:961,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:962,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:963,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:972,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:972,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:973,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:973,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:980,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:981,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:982,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:984,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:986,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:988,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:988,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:988,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:989,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:989,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:989,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:990,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:993,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:994,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:996,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:997,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:999,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1001,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1001,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1001,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1002,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1002,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1002,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1003,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1006,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1007,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1009,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1010,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1013,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1014,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1016,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1018,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1018,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1021,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1023,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1024,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1025,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1027,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1030,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1032,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1032,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1032,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1033,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1033,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1033,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1034,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1037,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1038,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1040,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1041,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1044,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1046,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1048,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1052,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 947
    functionDepth: 1
    functionLinenumber: 947
    functionLinenumberEnd: 1054
    functionName: Botan_Tests::FFI_CBC_Cipher_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - TEST_FFI_RC
    - std::vector::data
    - test_int_eq
    - std::vector::resize
    - TEST_FFI_OK
    - std::vector::size
    - 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: 1059
      start: 1059
    functionDepth: 0
    functionLinenumber: 1059
    functionLinenumberEnd: 1059
    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:1065,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:1068,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1068,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1069,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:1071,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1072,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1072,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1073,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1074,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1074,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1084,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1085,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1087,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1090,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1091,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1092,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1094,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1095,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1097,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1098,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1100,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1102,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1104,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1105,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1106,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1109,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1112,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1113,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1114,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1116,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1118,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1125,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1125,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1125,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1128,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1128,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1128,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1129,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1131,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1131,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1131,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1132,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1135,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1136,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1138,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1139,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1141,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1143,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1143,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1143,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: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1144,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1145,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1145,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1145,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1146,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1149,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1150,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1152,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1153,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1156,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1157,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1159,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1160,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1162,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1163,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1165,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: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1169,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1170,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1170,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1170,1
    - Dst: TEST_FFI_OK
      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:1172,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1175,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1176,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1178,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1179,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1182,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1182,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1183,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1183,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1184,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1186,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1190,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 53
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1061
    functionDepth: 1
    functionLinenumber: 1061
    functionLinenumberEnd: 1192
    functionName: Botan_Tests::FFI_GCM_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - std::array::data
    - TEST_FFI_RC
    - Botan::hex_decode
    - std::vector::data
    - test_int_eq
    - std::vector::resize
    - std::array::size
    - TEST_FFI_FAIL
    - TEST_FFI_OK
    - std::vector::size
    - 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: 1197
      start: 1197
    functionDepth: 0
    functionLinenumber: 1197
    functionLinenumberEnd: 1197
    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:1203,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:1206,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1206,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1207,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:1209,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1210,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1210,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1211,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1212,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:1212,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1212,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1222,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1223,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1225,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1228,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1229,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1230,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1232,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1233,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1235,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1236,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1238,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1241,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1244,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1245,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1246,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1248,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1250,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1257,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1257,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1257,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1260,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1260,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1260,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1261,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1263,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1263,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1263,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1264,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1267,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1268,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1270,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1271,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1273,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1275,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1275,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1275,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1276,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1276,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1276,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1277,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1277,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1277,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1278,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1281,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1282,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1284,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1285,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1288,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1289,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1291,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1293,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1295,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1296,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1298,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1302,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1302,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1302,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1303,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1303,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1303,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1304,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1304,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1304,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1305,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1308,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1309,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1311,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1312,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1315,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1315,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1316,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1316,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1317,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1319,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1323,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 49
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1325
      start: 1199
    functionDepth: 1
    functionLinenumber: 1199
    functionLinenumberEnd: 1325
    functionName: Botan_Tests::FFI_ChaCha20Poly1305_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - std::array::data
    - TEST_FFI_RC
    - Botan::hex_decode
    - std::string
    - std::vector::data
    - test_int_eq
    - std::vector::resize
    - std::array::size
    - TEST_FFI_FAIL
    - TEST_FFI_OK
    - std::vector::size
    - 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: 1330
      start: 1330
    functionDepth: 0
    functionLinenumber: 1330
    functionLinenumberEnd: 1330
    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:1336,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1345,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1346,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1348,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1351,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1352,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1353,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1355,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1356,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1357,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1358,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1360,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1361,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1363,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1364,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1366,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1368,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1370,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1373,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1374,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1375,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1376,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1379,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1386,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1386,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1386,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1387,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1387,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1387,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1388,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1391,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1392,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1394,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1395,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1397,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1399,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1399,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1399,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1400,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1400,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1400,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1401,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1404,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1405,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1407,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1408,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1411,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1412,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1414,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1415,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1417,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1418,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1420,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1424,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1424,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1424,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1425,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1425,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1425,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1426,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1429,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1430,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1432,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1433,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1436,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1436,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1437,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1437,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1438,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1440,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1444,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 44
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1446
      start: 1332
    functionDepth: 1
    functionLinenumber: 1332
    functionLinenumberEnd: 1446
    functionName: Botan_Tests::FFI_EAX_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - TEST_FFI_RC
    - Botan::hex_decode
    - std::vector::data
    - test_int_eq
    - std::vector::resize
    - TEST_FFI_OK
    - std::vector::size
    - 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: 1451
      start: 1451
    functionDepth: 0
    functionLinenumber: 1451
    functionLinenumberEnd: 1451
    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:1461,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1463,1
    - Dst: c_str
      Src: /src/botan/src/tests/test_ffi.cpp:1463,1
    - Dst: botan_cipher_is_authenticated
      Src: /src/botan/src/tests/test_ffi.cpp:1467,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ffi.cpp:1468,1
    - Dst: botan_cipher_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:1469,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1480,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1481,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1482,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1483,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1484,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1486,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1490,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1490,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1490,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1491,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1491,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1491,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1494,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1494,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1494,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1495,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1495,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1495,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1499,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1499,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1499,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1502,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1502,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1502,1
    - Dst: botan_cipher_requires_entire_message
      Src: /src/botan/src/tests/test_ffi.cpp:1505,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1506,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:1519,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_ffi.cpp:1525,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1525,1
    - Dst: std::span
      Src: /src/botan/src/tests/test_ffi.cpp:1526,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:1527,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1529,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:1532,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1533,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:1535,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1536,1
    - Dst: Test::Result::test_gt
      Src: /src/botan/src/tests/test_ffi.cpp:1539,1
    - Dst: Test::Result::test_lte
      Src: /src/botan/src/tests/test_ffi.cpp:1540,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1540,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_ffi.cpp:1541,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1544,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1546,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_ffi.cpp:1547,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1556,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1560,1
    - Dst: std::span::data
      Src: /src/botan/src/tests/test_ffi.cpp:1563,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:1564,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1567,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:1567,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1569,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:1569,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1570,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:1572,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1574,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:1577,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1578,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1584,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1585,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1586,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1588,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1592,1
    - Dst: c_str
      Src: /src/botan/src/tests/test_ffi.cpp:1592,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1594,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1595,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1597,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1601,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1601,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1601,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1602,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1602,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1602,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1604,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:1616,1
    - Dst: std::span
      Src: /src/botan/src/tests/test_ffi.cpp:1622,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:1623,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1625,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:1628,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1629,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:1631,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1632,1
    - Dst: Test::Result::test_gt
      Src: /src/botan/src/tests/test_ffi.cpp:1635,1
    - Dst: Test::Result::test_lte
      Src: /src/botan/src/tests/test_ffi.cpp:1636,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1636,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_ffi.cpp:1637,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1640,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1642,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_ffi.cpp:1643,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1647,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:1647,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:1648,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1653,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:1656,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1657,1
    - Dst: std::span::data
      Src: /src/botan/src/tests/test_ffi.cpp:1659,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:1660,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1663,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:1663,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1664,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1665,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1667,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1669,1
    - Dst: merge
      Src: /src/botan/src/tests/test_ffi.cpp:1671,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 69
    argCount: 2
    argNames:
    - ' merged_result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1673
      start: 1453
    functionDepth: 1
    functionLinenumber: 1453
    functionLinenumberEnd: 1673
    functionName: Botan_Tests::FFI_AEAD_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - TEST_FFI_RC
    - std::span::size
    - Test::Result::test_failure
    - Test::Result::test_lte
    - std::span::subspan
    - botan_cipher_is_authenticated
    - auto::size
    - std::span
    - std::span::first
    - c_str
    - botan_cipher_requires_entire_message
    - merge
    - std::vector::data
    - Test::Result::test_gt
    - auto::data
    - std::span::data
    - TEST_FFI_OK
    - std::vector::size
    - TEST_FFI_INIT
    - Botan::fmt
    - botan_cipher_destroy
    - Test::Result::test_eq
    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: 1678
      start: 1678
    functionDepth: 0
    functionLinenumber: 1678
    functionLinenumberEnd: 1678
    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:1683,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1684,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1685,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1686,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1688,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1691,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1696,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1697,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1699,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1702,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1707,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1707,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1707,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1708,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1708,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1708,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1711,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1712,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1712,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1712,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1714,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1715,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1717,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1718,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1718,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1720,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1720,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1721,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1721,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1722,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1724,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1726
      start: 1680
    functionDepth: 1
    functionLinenumber: 1680
    functionLinenumberEnd: 1726
    functionName: Botan_Tests::FFI_StreamCipher_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - TEST_FFI_RC
    - std::vector::data
    - test_int_eq
    - TEST_FFI_OK
    - std::vector::size
    - 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: 1731
      start: 1731
    functionDepth: 0
    functionLinenumber: 1731
    functionLinenumberEnd: 1731
    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:1737,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:1738,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1740,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:1743,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1743,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1744,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:1746,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1747,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1747,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1748,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1749,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1749,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1753,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1754,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1758,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1759,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1765,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:1765,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1766,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1768,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:1769,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:1769,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1770,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1770,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1772,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1779,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1780,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:1780,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1782,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1783,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:1784,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:1784,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1786,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:1787,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:1787,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1788,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1788,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1789,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1791,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:1792,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:1792,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1793,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1793,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1794,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1796,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1800,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1802
      start: 1733
    functionDepth: 1
    functionLinenumber: 1733
    functionLinenumberEnd: 1802
    functionName: Botan_Tests::FFI_HashFunction_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - std::array::data
    - std::strlen
    - reinterpret_cast<const uint8_t*>
    - std::vector::data
    - std::array::size
    - TEST_FFI_FAIL
    - TEST_FFI_OK
    - 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: 1807
      start: 1807
    functionDepth: 0
    functionLinenumber: 1807
    functionLinenumberEnd: 1807
    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:1814,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:1815,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1817,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:1820,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1820,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1821,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:1823,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1824,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1824,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1825,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1826,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1826,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1832,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1833,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1834,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1835,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1837,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1838,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1839,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1842,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1843,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1850,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1851,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:1852,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:1852,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1853,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1855,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1856,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:1857,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:1857,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1858,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1858,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1860,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1865,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1867
      start: 1809
    functionDepth: 1
    functionLinenumber: 1809
    functionLinenumberEnd: 1867
    functionName: Botan_Tests::FFI_MAC_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - std::array::data
    - TEST_FFI_RC
    - std::strlen
    - reinterpret_cast<const uint8_t*>
    - std::vector::data
    - std::array::size
    - TEST_FFI_FAIL
    - TEST_FFI_OK
    - 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: 1872
      start: 1872
    functionDepth: 0
    functionLinenumber: 1872
    functionLinenumberEnd: 1872
    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:1879,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1879,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1879,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1880,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1885,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1886,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1886,1
    - Dst: std::vector::size
      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: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1890,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1890,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1891,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1893
      start: 1874
    functionDepth: 1
    functionLinenumber: 1874
    functionLinenumberEnd: 1893
    functionName: Botan_Tests::FFI_Scrypt_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - std::vector::data
    - TEST_FFI_OK
    - std::vector::size
    - 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: 1898
      start: 1898
    functionDepth: 0
    functionLinenumber: 1898
    functionLinenumberEnd: 1898
    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:1905,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1909,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1911,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1913,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1914,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:1915,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1916,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1917,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1919,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:1926,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1927,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:1928,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1929,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1930,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1933,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1935,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1936,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:1937,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1938,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1939,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:1943,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_ffi.cpp:1943,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_ffi.cpp:1944,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1947,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1948,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1950,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1952,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1954,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1955,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1956,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1957,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1958,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1959,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1962,1
    - Dst: std::string::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1967,1
    - Dst: botan_bcrypt_generate
      Src: /src/botan/src/tests/test_ffi.cpp:1970,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:1970,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:1970,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:1970,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1973,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1975,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:1975,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:1975,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:1976,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:1976,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1978
      start: 1900
    functionDepth: 1
    functionLinenumber: 1900
    functionLinenumberEnd: 1978
    functionName: Botan_Tests::FFI_KDF_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - std::string::resize
    - reinterpret_cast<uint8_t*>
    - botan_bcrypt_generate
    - std::string::data
    - std::string::c_str
    - std::vector::data
    - std::vector::resize
    - TEST_FFI_FAIL
    - std::to_string
    - TEST_FFI_OK
    - std::vector::size
    - TEST_FFI_INIT
    - test_note
    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: 1983
      start: 1983
    functionDepth: 0
    functionLinenumber: 1983
    functionLinenumberEnd: 1983
    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:1988,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:1991,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1991,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1992,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:1994,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1995,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1995,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1996,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1997,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1997,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2003,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2005,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2006,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2006,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2007,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2008,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2008,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2010,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2011,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2013,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2018,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2019,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2020,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2021,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2023,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2024,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2025,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2027,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2027,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2027,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2029,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2029,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2029,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2030,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2032,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2032,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2032,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2033,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2035,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2035,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2035,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2036,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2038,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2038,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2038,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2039,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2041,1
    - Dst: botan_block_cipher_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2042,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 34
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2044
      start: 1985
    functionDepth: 1
    functionLinenumber: 1985
    functionLinenumberEnd: 2044
    functionName: Botan_Tests::FFI_Blockcipher_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - botan_block_cipher_destroy
    - test_eq
    - std::array::data
    - TEST_FFI_RC
    - std::vector::data
    - std::array::size
    - TEST_FFI_FAIL
    - TEST_FFI_OK
    - std::vector::size
    - 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: 2049
      start: 2049
    functionDepth: 0
    functionLinenumber: 2049
    functionLinenumberEnd: 2049
    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:2053,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2058,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2059,1
    - Dst: reinterpret_cast<botan_hash_t>
      Src: /src/botan/src/tests/test_ffi.cpp:2059,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2060,1
    - Dst: botan_error_description
      Src: /src/botan/src/tests/test_ffi.cpp:2065,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2066,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2072,1
    - Dst: std::set::contains
      Src: /src/botan/src/tests/test_ffi.cpp:2072,1
    - Dst: std::set::insert
      Src: /src/botan/src/tests/test_ffi.cpp:2073,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2077
      start: 2051
    functionDepth: 1
    functionLinenumber: 2051
    functionLinenumberEnd: 2077
    functionName: Botan_Tests::FFI_ErrorHandling_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - std::set::contains
    - botan_error_description
    - std::set::insert
    - botan_mp_init
    - confirm
    - 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: 2082
      start: 2082
    functionDepth: 0
    functionLinenumber: 2082
    functionLinenumberEnd: 2082
    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:2089,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2091,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2094,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2101,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2103,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2105,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2108,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2108,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2110,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2111,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_ffi.cpp:2111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2112
      start: 2084
    functionDepth: 1
    functionLinenumber: 2084
    functionLinenumberEnd: 2112
    functionName: Botan_Tests::FFI_Base64_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - TEST_FFI_RC
    - std::string
    - strlen
    - reinterpret_cast<const char*>
    - TEST_FFI_OK
    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: 2117
      start: 2117
    functionDepth: 0
    functionLinenumber: 2117
    functionLinenumberEnd: 2117
    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:2123,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2125,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2131,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2132,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2135,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2135,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2137,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2138,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_ffi.cpp:2138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2139
      start: 2119
    functionDepth: 1
    functionLinenumber: 2119
    functionLinenumberEnd: 2139
    functionName: Botan_Tests::FFI_Hex_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - TEST_FFI_RC
    - std::string
    - strlen
    - reinterpret_cast<const char*>
    - TEST_FFI_OK
    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: 2144
      start: 2144
    functionDepth: 0
    functionLinenumber: 2144
    functionLinenumberEnd: 2144
    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:2151,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2152,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2153,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2154,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2155,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2156,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2157,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2159,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2161,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2162,1
    - Dst: botan_mp_set_from_int
      Src: /src/botan/src/tests/test_ffi.cpp:2164,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2165,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2166,1
    - Dst: botan_mp_add_u32
      Src: /src/botan/src/tests/test_ffi.cpp:2168,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2169,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2170,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2173,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2174,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2174,1
    - Dst: botan_mp_sub_u32
      Src: /src/botan/src/tests/test_ffi.cpp:2176,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2177,1
    - Dst: botan_mp_add_u32
      Src: /src/botan/src/tests/test_ffi.cpp:2178,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2179,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2180,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2183,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2184,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2184,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2186,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2187,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2188,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2189,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2190,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2194,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2196,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2197,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2199,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2200,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2202,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2203,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2204,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2205,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2206,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2209,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2210,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2211,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2212,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2213,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2215,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2216,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2218,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2219,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2221,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2222,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2224,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2225,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2227,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2229,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2233,1
    - Dst: test_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_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2237,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2237,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2240,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2241,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2243,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2244,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2245,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2246,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2247,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2248,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2248,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2250,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2251,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2252,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2252,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2255,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2256,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2259,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2261,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2263,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2264,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2264,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2266,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2268,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2269,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2269,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2270,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2273,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2274,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2277,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2278,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2278,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2281,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2282,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2282,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2284,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2285,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2287,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2288,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2288,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2289,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2291,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2293,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2294,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2294,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2296,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2298,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2299,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2299,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2301,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2303,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2304,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2304,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2307,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2310,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2311,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2314,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2315,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2317,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2319,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2320,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2320,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2322,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2324,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2325,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2325,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2327,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2328,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2331,1
    - Dst: botan_mp_to_bin
      Src: /src/botan/src/tests/test_ffi.cpp:2332,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2332,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2333,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2335,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2336,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2338,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2339,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2339,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2342,1
    - Dst: botan_mp_rand_bits
      Src: /src/botan/src/tests/test_ffi.cpp:2345,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2346,1
    - Dst: test_lte
      Src: /src/botan/src/tests/test_ffi.cpp:2347,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2349,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2350,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2351,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_ffi.cpp:2351,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2353,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2354,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2355,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_ffi.cpp:2355,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2357,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2358,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2359,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2360,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 151
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2362
      start: 2146
    functionDepth: 1
    functionLinenumber: 2146
    functionLinenumberEnd: 2362
    functionName: Botan_Tests::FFI_MP_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - botan_mp_set_from_int
    - TEST_FFI_RC
    - test_eq
    - botan_mp_sub_u32
    - botan_mp_destroy
    - static_cast<size_t>
    - botan_mp_to_bin
    - std::string
    - botan_mp_add_u32
    - std::vector::data
    - test_lte
    - std::vector::resize
    - botan_mp_rand_bits
    - TEST_FFI_OK
    - botan_mp_init
    - confirm
    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: 2367
      start: 2367
    functionDepth: 0
    functionLinenumber: 2367
    functionLinenumberEnd: 2367
    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:2373,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:2374,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2377,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2378,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2383,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:2384,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2386,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2389,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2390,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2392,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2393,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2394,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2396,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2397,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2399,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2400,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2402
      start: 2369
    functionDepth: 1
    functionLinenumber: 2369
    functionLinenumberEnd: 2402
    functionName: Botan_Tests::FFI_FPE_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - botan_mp_destroy
    - botan_mp_set_from_str
    - TEST_FFI_OK
    - botan_mp_init
    - 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: 2407
      start: 2407
    functionDepth: 0
    functionLinenumber: 2407
    functionLinenumberEnd: 2407
    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:2410,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2415,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2415,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2415,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2420,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2421,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2423,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2424,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2426,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2427,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2428,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2431
      start: 2409
    functionDepth: 1
    functionLinenumber: 2409
    functionLinenumberEnd: 2431
    functionName: Botan_Tests::FFI_TOTP_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - TEST_FFI_RC
    - std::vector::data
    - TEST_FFI_OK
    - std::vector::size
    - confirm
    - 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: 2436
      start: 2436
    functionDepth: 0
    functionLinenumber: 2436
    functionLinenumberEnd: 2436
    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:2439,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2445,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2445,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2445,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2449,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2450,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2451,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2452,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2453,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2454,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2455,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2456,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2460,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2461,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2462,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2463,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2464,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2465,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2468
      start: 2438
    functionDepth: 1
    functionLinenumber: 2438
    functionLinenumberEnd: 2468
    functionName: Botan_Tests::FFI_HOTP_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - TEST_FFI_RC
    - std::vector::data
    - TEST_FFI_OK
    - std::vector::size
    - confirm
    - 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: 2473
      start: 2473
    functionDepth: 0
    functionLinenumber: 2473
    functionLinenumberEnd: 2473
    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:2482,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2487,1
    - Dst: test_eq
      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_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2496,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2498
      start: 2475
    functionDepth: 1
    functionLinenumber: 2475
    functionLinenumberEnd: 2498
    functionName: Botan_Tests::FFI_Keywrap_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_OK
    - test_eq
    - 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: 2503
      start: 2503
    functionDepth: 0
    functionLinenumber: 2503
    functionLinenumberEnd: 2503
    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:2507,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2508,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2510,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2511,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2514,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2515,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2518,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2519,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2523
      start: 2505
    functionDepth: 1
    functionLinenumber: 2505
    functionLinenumberEnd: 2523
    functionName: Botan_Tests::FFI_XMSS_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_OK
    - TEST_FFI_RC
    - confirm
    - 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: 2528
      start: 2528
    functionDepth: 0
    functionLinenumber: 2528
    functionLinenumberEnd: 2528
    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:2533,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2534,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2537,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2538,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2541,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2544,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2545,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:2547,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2554,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2555,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2556,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2557,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2558,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2560,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2561,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2563,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2564,1
    - Dst: TEST_FFI_OK
      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: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2567,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2573,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2574,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2575,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2576,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2578,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2579,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2580,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2581,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2584,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2585,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2588,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2592,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2593,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2595,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2596,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2600,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2601,1
    - Dst: botan_privkey_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2602,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2604,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2605,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2608,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2609,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2611,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2612,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2613,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2614,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2615,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2618,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2623,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2624,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2627,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2627,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2628,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2631,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2634,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2635,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2636,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2639,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2640,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2640,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2641,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2641,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2644,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2645,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2645,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2646,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2646,1
    - Dst: TEST_FFI_INIT
      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: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2652,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2652,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2655,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2655,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2658,1
    - Dst: std::vector::data
      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: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2659,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2660,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2663,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2665,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2665,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2667,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2668,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2668,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2668,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2669,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2671,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2674,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2677,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2680,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2681,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2682,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2683,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 84
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2685
      start: 2530
    functionDepth: 1
    functionLinenumber: 2530
    functionLinenumberEnd: 2685
    functionName: Botan_Tests::FFI_RSA_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - std::array::data
    - test_eq
    - botan_mp_destroy
    - std::vector::data
    - ffi_test_pubkey_export
    - botan_privkey_destroy
    - std::vector::resize
    - std::array::size
    - TEST_FFI_FAIL
    - std::vector::size
    - TEST_FFI_OK
    - botan_mp_init
    - confirm
    - 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: 2690
      start: 2690
    functionDepth: 0
    functionLinenumber: 2690
    functionLinenumberEnd: 2690
    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:2695,1
    - Dst: Botan_Tests::FFI_DSA_Test::do_dsa_test
      Src: /src/botan/src/tests/test_ffi.cpp:2696,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2699,1
    - Dst: Botan_Tests::FFI_DSA_Test::do_dsa_test
      Src: /src/botan/src/tests/test_ffi.cpp:2700,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2702
      start: 2692
    functionDepth: 2
    functionLinenumber: 2692
    functionLinenumberEnd: 2702
    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:2706,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2709,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2710,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:2712,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2719,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2720,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2721,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2722,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2723,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2725,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2726,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2727,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2728,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2729,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2732,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2733,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2735,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2736,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2738,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2739,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2741,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2742,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2743,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2746,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2747,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2750,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2751,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2753,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2754,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2755,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2756,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2757,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2764,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2766,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2766,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2766,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2769,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2770,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2773,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2773,1
    - Dst: test_lte
      Src: /src/botan/src/tests/test_ffi.cpp:2774,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2775,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2777,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_ffi.cpp:2782,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2782,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2783,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2783,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2783,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2784,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2784,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2784,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2788,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2788,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2788,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2789,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2790,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2790,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2793,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2793,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2793,1
    - Dst: TEST_FFI_RC
      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:2795,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2798,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2798,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2798,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2799,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2800,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2800,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2803,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2803,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2803,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2804,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:2804,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2806,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2809,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2810,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2811,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2812,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: 2813
      start: 2705
    functionDepth: 1
    functionLinenumber: 2705
    functionLinenumberEnd: 2813
    functionName: Botan_Tests::FFI_DSA_Test::do_dsa_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 3
    functionsReached:
    - TEST_FFI_RC
    - botan_mp_destroy
    - std::vector::data
    - test_lte
    - ffi_test_pubkey_export
    - std::vector::empty
    - std::vector::resize
    - std::vector::size
    - TEST_FFI_OK
    - botan_mp_init
    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: 2818
      start: 2818
    functionDepth: 0
    functionLinenumber: 2818
    functionLinenumberEnd: 2818
    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:2825,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2829,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:2830,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2837,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2838,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2839,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2841,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2842,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2844,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2845,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2846,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2847,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:2847,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:2847,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2852,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2853,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2854,1
    - Dst: ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:2854,1
    - Dst: ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:2854,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2855,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2856,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2857,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:2862,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2862,1
    - Dst: test_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:2867,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2867,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2867,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2871,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2873,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2873,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2873,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2876,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2878,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2880,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2881,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2881,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2882,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2884,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_ffi.cpp:2889,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2889,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2890,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2890,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2890,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2891,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2891,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2891,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::size
      Src: /src/botan/src/tests/test_ffi.cpp:2895,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2896,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2898,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2898,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::size
      Src: /src/botan/src/tests/test_ffi.cpp:2901,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2902,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2904,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2904,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2907,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2907,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2907,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2908,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2910,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2910,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2913,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2913,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2913,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2914,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2914,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2914,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2916,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2920,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2921,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2922,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2923,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2924,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2925,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2926,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2927,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 59
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2928
      start: 2820
    functionDepth: 1
    functionLinenumber: 2820
    functionLinenumberEnd: 2928
    functionName: Botan_Tests::FFI_ECDSA_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - std::array::data
    - ViewBytesSink::callback
    - test_eq
    - ViewBytesSink::data
    - ViewBytesSink::size
    - std::vector::data
    - std::vector::empty
    - ffi_test_pubkey_export
    - ViewBytesSink::delegate
    - std::vector::resize
    - std::array::size
    - std::vector::size
    - TEST_FFI_OK
    - botan_mp_init
    - 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: 2933
      start: 2933
    functionDepth: 0
    functionLinenumber: 2933
    functionLinenumberEnd: 2933
    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:2944,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2948,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:2949,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2953,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2960,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2961,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2962,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2964,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2965,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2966,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2967,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:2967,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:2967,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2968,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2969,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2970,1
    - Dst: ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:2970,1
    - Dst: ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:2970,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2971,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2972,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2973,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2976,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2978,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2978,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2979,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2979,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2983,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2983,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2983,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2985,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:2985,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2987,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2987,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2987,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2990,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2992,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2994,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2994,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2995,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2997,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_ffi.cpp:3002,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3002,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:3002,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3003,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3003,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3003,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3004,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3004,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3004,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3008,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3008,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3008,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3009,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3010,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3010,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3013,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3013,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3013,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3014,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3015,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3015,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3018,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3018,1
    - Dst: std::vector::size
      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: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3020,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3020,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3023,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3023,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3023,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3024,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3024,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3024,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3026,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3029,1
    - Dst: TEST_FFI_OK
      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_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3032,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3033,1
    - Dst: TEST_FFI_OK
      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_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3036,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 56
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3037
      start: 2935
    functionDepth: 1
    functionLinenumber: 2935
    functionLinenumberEnd: 3037
    functionName: Botan_Tests::FFI_SM2_Sig_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - std::array::data
    - ViewBytesSink::callback
    - TEST_FFI_RC
    - ViewBytesSink::data
    - REQUIRE_FFI_OK
    - ViewBytesSink::size
    - std::string::c_str
    - std::vector::data
    - std::vector::empty
    - ffi_test_pubkey_export
    - ViewBytesSink::delegate
    - std::vector::resize
    - std::array::size
    - std::vector::size
    - TEST_FFI_OK
    - botan_mp_init
    - 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: 3042
      start: 3042
    functionDepth: 0
    functionLinenumber: 3042
    functionLinenumberEnd: 3042
    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:3052,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3056,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:3057,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3061,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3068,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3069,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3070,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3072,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3073,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3074,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3075,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3075,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3075,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3076,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3077,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3078,1
    - Dst: ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:3078,1
    - Dst: ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:3078,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3079,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3080,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3081,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:3084,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3086,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3086,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3087,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3087,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3092,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3092,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3092,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3095,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3097,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3097,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3099,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3100,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3100,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3100,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3100,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3101,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3104,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3106,1
    - Dst: std::vector::size
      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: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3110,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3110,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3110,1
    - Dst: botan_pk_op_decrypt_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3112,1
    - Dst: botan_pk_op_encrypt_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3114,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3116,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3117,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3118,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3119,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3120,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3121,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3122,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 41
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3124
      start: 3044
    functionDepth: 1
    functionLinenumber: 3044
    functionLinenumberEnd: 3124
    functionName: Botan_Tests::FFI_SM2_Enc_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - std::array::data
    - ViewBytesSink::callback
    - ViewBytesSink::data
    - REQUIRE_FFI_OK
    - ViewBytesSink::size
    - botan_pk_op_decrypt_destroy
    - std::vector::data
    - botan_pk_op_encrypt_destroy
    - ffi_test_pubkey_export
    - ViewBytesSink::delegate
    - std::vector::resize
    - std::array::size
    - std::vector::size
    - TEST_FFI_OK
    - botan_mp_init
    - 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: 3129
      start: 3129
    functionDepth: 0
    functionLinenumber: 3129
    functionLinenumberEnd: 3129
    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:3133,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3138,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3141,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3144,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3151,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3152,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3153,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3155,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3156,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3157,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3158,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3158,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3158,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3163,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3164,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3165,1
    - Dst: ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:3165,1
    - Dst: ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:3165,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3166,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3167,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3168,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:3170,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:3171,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:3172,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3184,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3186,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3189,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3193,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3193,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3195,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3199,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3199,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3202,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3202,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3202,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3207,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3208,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3209,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3209,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3209,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3209,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3209,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3212,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3213,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3214,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3214,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3214,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3214,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3214,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3216,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3218,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3219,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:3222,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3223,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3224,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3225,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3226,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3227,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3228,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3229,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 45
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3230
      start: 3131
    functionDepth: 1
    functionLinenumber: 3131
    functionLinenumberEnd: 3230
    functionName: Botan_Tests::FFI_ECDH_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - test_eq
    - ViewBytesSink::callback
    - botan_mp_init
    - ViewBytesSink::data
    - REQUIRE_FFI_OK
    - ViewBytesSink::size
    - std::vector::data
    - ffi_test_pubkey_export
    - std::vector::size
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - 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: 3235
      start: 3235
    functionDepth: 0
    functionLinenumber: 3235
    functionLinenumberEnd: 3235
    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:3239,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3241,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:3243,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:3246,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3247,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3247,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3248,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3248,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3253,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3254,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3256
      start: 3237
    functionDepth: 1
    functionLinenumber: 3237
    functionLinenumberEnd: 3256
    functionName: Botan_Tests::FFI_McEliece_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - std::array::data
    - ffi_test_pubkey_export
    - std::array::size
    - 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: 3261
      start: 3261
    functionDepth: 0
    functionLinenumber: 3261
    functionLinenumberEnd: 3261
    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:3269,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3271,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3272,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3273,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3277,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3277,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3282,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3284,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3284,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3284,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3286,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3289,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3290,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3290,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3290,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3292,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3293,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3293,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3298,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3299,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3299,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3299,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3302,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3304,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3306,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3306,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3307,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3309,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3312,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3316,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3317,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3317,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3317,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3318,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3318,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3318,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3320,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3323,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3324,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3325
      start: 3263
    functionDepth: 1
    functionLinenumber: 3263
    functionLinenumberEnd: 3325
    functionName: Botan_Tests::FFI_Ed25519_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - std::vector::data
    - std::vector::resize
    - TEST_FFI_OK
    - std::vector::size
    - 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: 3330
      start: 3330
    functionDepth: 0
    functionLinenumber: 3330
    functionLinenumberEnd: 3330
    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:3337,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3339,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3341,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3342,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3345,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:3345,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3350,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3350,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3351,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3353,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3356,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3356,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3357,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3359,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3360,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:3360,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3365,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3366,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:3366,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:3366,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3369,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3371,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3373,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3373,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3374,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3376,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3379,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3383,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3384,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:3384,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:3384,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3385,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3385,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3385,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3387,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3390,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3391,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3392
      start: 3332
    functionDepth: 1
    functionLinenumber: 3332
    functionLinenumberEnd: 3392
    functionName: Botan_Tests::FFI_Ed448_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - Botan::hex_decode
    - test_eq
    - std::vector::data
    - std::vector::resize
    - TEST_FFI_OK
    - std::vector::size
    - auto::size
    - test_is_eq
    - 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: 3397
      start: 3397
    functionDepth: 0
    functionLinenumber: 3397
    functionLinenumberEnd: 3397
    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:3403,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3405,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3407,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3409,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3412,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3412,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3417,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3417,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3418,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3423,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3424,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3424,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3425,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3428,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3428,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3429,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3429,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3430,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3433,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3436,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3437,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3438,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3438,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3438,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3440,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3442,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3443,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3444,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3446
      start: 3399
    functionDepth: 1
    functionLinenumber: 3399
    functionLinenumberEnd: 3446
    functionName: Botan_Tests::FFI_X25519_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - REQUIRE_FFI_OK
    - std::vector::data
    - TEST_FFI_OK
    - std::vector::size
    - 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: 3451
      start: 3451
    functionDepth: 0
    functionLinenumber: 3451
    functionLinenumberEnd: 3451
    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:3455,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3457,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3459,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3461,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3465,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:3465,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3470,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3470,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3471,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3476,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3477,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3477,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3478,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3481,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:3481,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3482,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3482,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3483,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3486,1
    - Dst: std::vector::size
      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: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3491,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:3491,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:3491,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3493,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3495,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3496,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3497,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3499
      start: 3453
    functionDepth: 1
    functionLinenumber: 3453
    functionLinenumberEnd: 3499
    functionName: Botan_Tests::FFI_X448_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - Botan::hex_decode
    - test_eq
    - REQUIRE_FFI_OK
    - std::vector::data
    - TEST_FFI_OK
    - std::vector::size
    - auto::size
    - TEST_FFI_INIT
    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:3518,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3522,1
    - Dst: algo
      Src: /src/botan/src/tests/test_ffi.cpp:3522,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3525,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3530,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3530,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3530,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3531,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3531,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3531,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3536,1
    - Dst: private_key_load_function
      Src: /src/botan/src/tests/test_ffi.cpp:3536,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3537,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3537,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3538,1
    - Dst: public_key_load_function
      Src: /src/botan/src/tests/test_ffi.cpp:3538,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3539,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3539,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3544,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3544,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3544,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3545,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3545,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3545,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3546,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3546,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3546,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3547,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3547,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3547,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3551,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3556,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3557,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3562,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:3575,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3583,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3589,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3591,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3593,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3594,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3595,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3596,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3597,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3601,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3603,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3604,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3608,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3613,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3614,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3618,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3623,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3627,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3628,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3630,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3632,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3633,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3634,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3637,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3639,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3640,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3641,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3642,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 43
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3644
      start: 3517
    functionDepth: 1
    functionLinenumber: 3517
    functionLinenumberEnd: 3644
    functionName: Botan_Tests::FFI_KEM_Roundtrip_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - modes
    - test_eq
    - private_key_load_function
    - ViewBytesSink::callback
    - public_key_load_function
    - TEST_FFI_RC
    - Botan::secure_vector::resize
    - ViewBytesSink::get
    - std::vector::data
    - std::vector::resize
    - Botan::secure_vector::data
    - std::vector::size
    - algo
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - confirm
    - TEST_FFI_INIT
    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:3667,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3671,1
    - Dst: algo
      Src: /src/botan/src/tests/test_ffi.cpp:3671,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3674,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3679,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3679,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3679,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3680,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3680,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3680,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3685,1
    - Dst: private_key_load_function
      Src: /src/botan/src/tests/test_ffi.cpp:3685,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3686,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3686,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3687,1
    - Dst: public_key_load_function
      Src: /src/botan/src/tests/test_ffi.cpp:3687,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3688,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3688,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3693,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3693,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3693,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3694,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3694,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3694,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3695,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3695,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3695,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3696,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3696,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3696,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3700,1
    - Dst: hash_algo_or_padding
      Src: /src/botan/src/tests/test_ffi.cpp:3700,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3704,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3707,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3707,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3707,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3708,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3708,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3708,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3712,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3715,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3718,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3719,1
    - Dst: hash_algo_or_padding
      Src: /src/botan/src/tests/test_ffi.cpp:3719,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3720,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3720,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3720,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3721,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3721,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3721,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3726,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3726,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3727,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3728,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:3733,1
    - Dst: hash_algo_or_padding
      Src: /src/botan/src/tests/test_ffi.cpp:3733,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3734,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3734,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3734,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3735,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3735,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3735,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3738,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3738,1
    - Dst: Botan::secure_vector::size
      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: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3742,1
    - Dst: hash_algo_or_padding
      Src: /src/botan/src/tests/test_ffi.cpp:3742,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3743,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3743,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3743,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3744,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3745,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3745,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3746,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3749,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3750,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3751,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3752,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 42
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3754
      start: 3663
    functionDepth: 1
    functionLinenumber: 3663
    functionLinenumberEnd: 3754
    functionName: Botan_Tests::FFI_Signature_Roundtrip_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - modes
    - test_eq
    - private_key_load_function
    - ViewBytesSink::callback
    - public_key_load_function
    - TEST_FFI_RC
    - Botan::secure_vector::resize
    - ViewBytesSink::get
    - hash_algo_or_padding
    - std::vector::data
    - Botan::secure_vector::data
    - std::vector::size
    - algo
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - Botan::secure_vector::size
    - 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: 3759
      start: 3759
    functionDepth: 0
    functionLinenumber: 3759
    functionLinenumberEnd: 3759
    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:3762,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3764,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3766,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3770,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3770,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3776,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3776,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3776,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3777,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3777,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3777,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3778,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3778,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3779,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3779,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3785,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3786,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3786,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3786,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3787,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3787,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3787,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3788,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3788,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3789,1
    - Dst: ViewBytesSink::get
      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: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3793,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3793,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3793,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3794,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3794,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3796,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3797,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3798,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3799
      start: 3761
    functionDepth: 1
    functionLinenumber: 3761
    functionLinenumberEnd: 3799
    functionName: Botan_Tests::FFI_Kyber512_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - ViewBytesSink::callback
    - ViewBytesSink::get
    - std::vector::data
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - 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: 3804
      start: 3804
    functionDepth: 0
    functionLinenumber: 3804
    functionLinenumberEnd: 3804
    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:3807,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3809,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3811,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3815,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3815,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3821,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3821,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3821,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3822,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3822,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3822,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3823,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3823,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3824,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3824,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3830,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3831,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3831,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3831,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3832,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3832,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3832,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3833,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3833,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3834,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3834,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3837,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3837,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3838,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3838,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3838,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3839,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3839,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3841,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3842,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3843,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3844
      start: 3806
    functionDepth: 1
    functionLinenumber: 3806
    functionLinenumberEnd: 3844
    functionName: Botan_Tests::FFI_Kyber768_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - ViewBytesSink::callback
    - ViewBytesSink::get
    - std::vector::data
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - 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: 3849
      start: 3849
    functionDepth: 0
    functionLinenumber: 3849
    functionLinenumberEnd: 3849
    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:3852,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3854,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3856,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3860,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3860,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3866,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3866,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3866,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3867,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3867,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3867,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3868,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3868,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3869,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3869,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3875,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3876,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3876,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3876,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3877,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3877,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3877,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3878,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3878,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3879,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3879,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3882,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3882,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3883,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3883,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3883,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3884,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3884,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3886,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3887,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3888,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3889
      start: 3851
    functionDepth: 1
    functionLinenumber: 3851
    functionLinenumberEnd: 3889
    functionName: Botan_Tests::FFI_Kyber1024_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - ViewBytesSink::callback
    - ViewBytesSink::get
    - std::vector::data
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - 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: 3894
      start: 3894
    functionDepth: 0
    functionLinenumber: 3894
    functionLinenumberEnd: 3894
    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: 3897
      start: 3897
    functionDepth: 0
    functionLinenumber: 3897
    functionLinenumberEnd: 3897
    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: 3899
      start: 3899
    functionDepth: 0
    functionLinenumber: 3899
    functionLinenumberEnd: 3899
    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: 3901
      start: 3901
    functionDepth: 0
    functionLinenumber: 3901
    functionLinenumberEnd: 3901
    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: 3903
      start: 3903
    functionDepth: 0
    functionLinenumber: 3903
    functionLinenumberEnd: 3903
    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: 3908
      start: 3908
    functionDepth: 0
    functionLinenumber: 3908
    functionLinenumberEnd: 3908
    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: 3911
      start: 3911
    functionDepth: 0
    functionLinenumber: 3911
    functionLinenumberEnd: 3911
    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: 3913
      start: 3913
    functionDepth: 0
    functionLinenumber: 3913
    functionLinenumberEnd: 3913
    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: 3915
      start: 3915
    functionDepth: 0
    functionLinenumber: 3915
    functionLinenumberEnd: 3915
    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: 3932
      start: 3917
    functionDepth: 0
    functionLinenumber: 3917
    functionLinenumberEnd: 3932
    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: 3937
      start: 3937
    functionDepth: 0
    functionLinenumber: 3937
    functionLinenumberEnd: 3937
    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: 3940
      start: 3940
    functionDepth: 0
    functionLinenumber: 3940
    functionLinenumberEnd: 3940
    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: 3942
      start: 3942
    functionDepth: 0
    functionLinenumber: 3942
    functionLinenumberEnd: 3942
    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: 3944
      start: 3944
    functionDepth: 0
    functionLinenumber: 3944
    functionLinenumberEnd: 3944
    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: 3952
      start: 3946
    functionDepth: 0
    functionLinenumber: 3946
    functionLinenumberEnd: 3952
    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: 3954
      start: 3954
    functionDepth: 0
    functionLinenumber: 3954
    functionLinenumberEnd: 3954
    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: 3959
      start: 3959
    functionDepth: 0
    functionLinenumber: 3959
    functionLinenumberEnd: 3959
    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: 3962
      start: 3962
    functionDepth: 0
    functionLinenumber: 3962
    functionLinenumberEnd: 3962
    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: 3964
      start: 3964
    functionDepth: 0
    functionLinenumber: 3964
    functionLinenumberEnd: 3964
    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: 3966
      start: 3966
    functionDepth: 0
    functionLinenumber: 3966
    functionLinenumberEnd: 3966
    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:3978,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_ffi.cpp:3979,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3991
      start: 3968
    functionDepth: 1
    functionLinenumber: 3968
    functionLinenumberEnd: 3991
    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: 3993
      start: 3993
    functionDepth: 0
    functionLinenumber: 3993
    functionLinenumberEnd: 3993
    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: 3998
      start: 3998
    functionDepth: 0
    functionLinenumber: 3998
    functionLinenumberEnd: 3998
    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: 4001
      start: 4001
    functionDepth: 0
    functionLinenumber: 4001
    functionLinenumberEnd: 4001
    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: 4003
      start: 4003
    functionDepth: 0
    functionLinenumber: 4003
    functionLinenumberEnd: 4003
    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: 4005
      start: 4005
    functionDepth: 0
    functionLinenumber: 4005
    functionLinenumberEnd: 4005
    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:4012,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_ffi.cpp:4013,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4032
      start: 4007
    functionDepth: 1
    functionLinenumber: 4007
    functionLinenumberEnd: 4032
    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: 4037
      start: 4037
    functionDepth: 0
    functionLinenumber: 4037
    functionLinenumberEnd: 4037
    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:4042,1
    - Dst: Botan_Tests::FFI_ElGamal_Test::do_elgamal_test
      Src: /src/botan/src/tests/test_ffi.cpp:4043,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4046,1
    - Dst: Botan_Tests::FFI_ElGamal_Test::do_elgamal_test
      Src: /src/botan/src/tests/test_ffi.cpp:4047,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4049
      start: 4039
    functionDepth: 2
    functionLinenumber: 4039
    functionLinenumberEnd: 4049
    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:4053,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4056,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4057,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:4059,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4064,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4065,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4066,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4067,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4069,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4070,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4071,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4072,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4075,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4078,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4081,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4083,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4084,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4085,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4086,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4100,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:4100,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4102,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4102,1
    - Dst: std::vector::resize
      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: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4105,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4105,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4105,1
    - Dst: std::vector::resize
      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:4112,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:4112,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4114,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4114,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4115,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4116,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4117,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4117,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4117,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4118,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4119,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4122,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4124,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4125,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4126,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4127,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: 4128
      start: 4052
    functionDepth: 1
    functionLinenumber: 4052
    functionLinenumberEnd: 4128
    functionName: Botan_Tests::FFI_ElGamal_Test::do_elgamal_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 3
    functionsReached:
    - test_eq
    - botan_mp_destroy
    - std::string::c_str
    - std::vector::data
    - ffi_test_pubkey_export
    - std::vector::resize
    - std::vector::size
    - TEST_FFI_OK
    - botan_mp_init
    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: 4133
      start: 4133
    functionDepth: 0
    functionLinenumber: 4133
    functionLinenumberEnd: 4133
    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:4137,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4142,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4145,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4148,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4156,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4157,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4158,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4159,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4161,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4162,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4163,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4164,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4168,1
    - Dst: TEST_FFI_OK
      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:4172,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4177,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4178,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4179,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4181,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4182,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:4187,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:4188,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4190,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:4191,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4193,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:4194,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4197,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4199,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4202,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4206,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4206,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4208,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4212,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4212,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4217,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4219,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4220,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4220,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4220,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4223,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4225,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4226,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4226,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4226,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4228,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4230,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4231,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4232,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4233,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4235,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4236,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4237,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4239,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4240,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4241,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4242,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4243,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: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 55
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4247
      start: 4135
    functionDepth: 1
    functionLinenumber: 4135
    functionLinenumberEnd: 4247
    functionName: Botan_Tests::FFI_DH_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - test_eq
    - REQUIRE_FFI_OK
    - std::vector::data
    - std::vector::size
    - TEST_FFI_OK
    - botan_mp_init
    - confirm
    - 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: 4252
      start: 4252
    functionDepth: 0
    functionLinenumber: 4252
    functionLinenumberEnd: 4252
    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:4262,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4263,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4265,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4266,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4267,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4270,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4271,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4273,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4274,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4276,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4277,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4278,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4280,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4281,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4285,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:4286,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4288,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:4289,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4291,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:4292,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4294,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4295,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4296,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4297,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4298,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4299,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4302,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4303,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4312,1
    - Dst: TEST_FFI_RC
      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::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:4314,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4315,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4317,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4320,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4322,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4323,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4326,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4326,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4326,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4327,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4327,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4329,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4331,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4332,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4335,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4335,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4335,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4336,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4336,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4337,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4339,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4340,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4341,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4342,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4344,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4345,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 50
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4347
      start: 4254
    functionDepth: 1
    functionLinenumber: 4254
    functionLinenumberEnd: 4347
    functionName: Botan_Tests::FFI_OID_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - test_eq
    - ViewStringSink::callback
    - std::string::c_str
    - ViewStringSink::get
    - TEST_FFI_FAIL
    - TEST_FFI_OK
    - ViewStringSink::delegate
    - confirm
    - 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: 4352
      start: 4352
    functionDepth: 0
    functionLinenumber: 4352
    functionLinenumberEnd: 4352
    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:4357,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4358,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:4359,1
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/test_ffi.cpp:4361,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:4362,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ffi.cpp:4363,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4375,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4377,1
    - Dst: Botan_Tests::FFI_EC_Group_Test::get_group_parameters
      Src: /src/botan/src/tests/test_ffi.cpp:4379,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4399,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4401,1
    - Dst: Botan_Tests::FFI_EC_Group_Test::get_group_parameters
      Src: /src/botan/src/tests/test_ffi.cpp:4403,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4413,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4414,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4434,1
    - Dst: botan_oid_register
      Src: /src/botan/src/tests/test_ffi.cpp:4435,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4436,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4437,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4438,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4439,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4440,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4441,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:4443,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:4444,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:4445,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:4446,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:4448,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:4450,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4453,1
    - Dst: Botan_Tests::FFI_EC_Group_Test::get_group_parameters
      Src: /src/botan/src/tests/test_ffi.cpp:4463,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4475,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4478,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4480,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4481,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4492,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4493,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4496,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4497,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4498,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4499,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4500,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4501,1
    - Dst: botan_oid_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4503,1
    - Dst: botan_oid_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4504,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4506,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4507,1
    - Dst: botan_oid_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4510,1
    - Dst: botan_oid_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4511,1
    - Dst: botan_oid_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4512,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4522,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4523,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4524,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4530,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4531,1
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_ffi.cpp:4532,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4536,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4537,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4538,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4539,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4540,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4542,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4543,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4546,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4546,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4546,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4548,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:4550,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4550,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4550,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4553,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4553,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4553,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4554,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4554,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4557,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:4557,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4559,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4560,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4563,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:4565,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4567,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:4567,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4568,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:4568,1
    - Dst: botan_privkey_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4570,1
    - Dst: TEST_FFI_OK
      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: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4574,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4575,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4576,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4577,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 82
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4579
      start: 4354
    functionDepth: 2
    functionLinenumber: 4354
    functionLinenumberEnd: 4579
    functionName: Botan_Tests::FFI_EC_Group_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - Botan_Tests::FFI_EC_Group_Test::get_group_parameters
    - Botan_Tests::Test::read_data_file
    - test_eq
    - reinterpret_cast<const uint8_t*>
    - botan_privkey_destroy
    - std::array::data
    - Botan::EC_Group::supports_application_specific_group
    - std::array::size
    - botan_mp_destroy
    - botan_mp_init
    - confirm
    - botan_mp_set_from_str
    - ViewBytesSink::callback
    - ViewStringSink::callback
    - ViewBytesSink::get
    - ViewStringSink::get
    - TEST_FFI_OK
    - ViewStringSink::delegate
    - Botan::EC_Group::supports_named_group
    - botan_oid_register
    - std::string::c_str
    - botan_oid_destroy
    - ViewBytesSink::delegate
    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:4591,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4592,1
    - Dst: TEST_FFI_OK
      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: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4595,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4596,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4597,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: 4598
      start: 4582
    functionDepth: 1
    functionLinenumber: 4582
    functionLinenumberEnd: 4598
    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: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    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: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    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: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    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: 46
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 46
    functionName: TEST_FFI_OK
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 141
    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: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: TEST_FFI_INIT
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 126
    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: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: TEST_FFI_FAIL
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 30
    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: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: TEST_FFI_RC
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 102
    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: 61
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 61
    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: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    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: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    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: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    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: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_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: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_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:92,1
    - Dst: auto*::m_buf::assign
      Src: /src/botan/src/tests/test_ffi.cpp:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - buf
    - len
    argTypes:
    - void*
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 96
    functionName: Botan_Tests::ViewBytesSink::write_fn
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - auto*::m_buf::assign
    - static_cast<ViewBytesSink*>
    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: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    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: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    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: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    functionName: Botan_Tests::ViewStringSink::get
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string_view
    signature: std::string_view get()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<ViewStringSink*>
      Src: /src/botan/src/tests/test_ffi.cpp:119,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - ctx
    - str
    - len
    argTypes:
    - void*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 124
    functionName: Botan_Tests::ViewStringSink::write_fn
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - std::string
    - static_cast<ViewStringSink*>
    linkageType: ''
    returnType: int
    signature: int write_fn(void* ctx, const char* str, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::FFI_Test::name
      Src: /src/botan/src/tests/test_ffi.cpp:135,1
    - Dst: botan_rng_init
      Src: /src/botan/src/tests/test_ffi.cpp:138,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ffi.cpp:139,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_ffi.cpp:143,1
    - Dst: ffi_test
      Src: /src/botan/src/tests/test_ffi.cpp:144,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_ffi.cpp:145,1
    - Dst: botan_rng_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 150
    functionName: Botan_Tests::FFI_Test::run
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - Test::Result::end_timer
    - Test::Result::test_failure
    - botan_rng_init
    - ffi_test
    - botan_rng_destroy
    - Botan_Tests::FFI_Test::name
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:160,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:165,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:165,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:168,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:172,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:173,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:173,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:177,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:177,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:178,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:179,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:186,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:190,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:191,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:193,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:193,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:195,1
    - Dst: test_gte
      Src: /src/botan/src/tests/test_ffi.cpp:197,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:197,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:201,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:201,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:201,1
    - Dst: botan_privkey_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:202,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:207,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:211,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:212,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:212,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:222,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:226,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:227,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:229,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:231,1
    - Dst: botan_privkey_load
      Src: /src/botan/src/tests/test_ffi.cpp:234,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:234,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:234,1
    - Dst: botan_privkey_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:235,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:238,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:242,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:243,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:245,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:247,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:248,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:264,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:266,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:272,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:273,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:277,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:280,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:283,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:285,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:285,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:285,1
    - Dst: botan_privkey_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:286,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:291,1
    - Dst: test_gte
      Src: /src/botan/src/tests/test_ffi.cpp:292,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:295,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:299,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:299,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: 300
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 300
    functionName: Botan_Tests::ffi_test_pubkey_export
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - test_eq
    - std::string::c_str
    - std::vector::data
    - botan_privkey_destroy
    - std::vector::resize
    - test_gte
    - botan_privkey_load
    - TEST_FFI_OK
    - 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: 304
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 304
    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_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:307,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:308,1
    - Dst: botan_ffi_api_version
      Src: /src/botan/src/tests/test_ffi.cpp:308,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:309,1
    - Dst: botan_version_major
      Src: /src/botan/src/tests/test_ffi.cpp:309,1
    - Dst: Botan::version_major
      Src: /src/botan/src/tests/test_ffi.cpp:309,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:310,1
    - Dst: botan_version_minor
      Src: /src/botan/src/tests/test_ffi.cpp:310,1
    - Dst: Botan::version_minor
      Src: /src/botan/src/tests/test_ffi.cpp:310,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:311,1
    - Dst: botan_version_patch
      Src: /src/botan/src/tests/test_ffi.cpp:311,1
    - Dst: Botan::version_patch
      Src: /src/botan/src/tests/test_ffi.cpp:311,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:312,1
    - Dst: botan_version_string
      Src: /src/botan/src/tests/test_ffi.cpp:312,1
    - Dst: Botan::version_cstr
      Src: /src/botan/src/tests/test_ffi.cpp:312,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:313,1
    - Dst: botan_version_datestamp
      Src: /src/botan/src/tests/test_ffi.cpp:313,1
    - Dst: Botan::version_datestamp
      Src: /src/botan/src/tests/test_ffi.cpp:313,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:314,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:314,1
    - Dst: botan_ffi_api_version
      Src: /src/botan/src/tests/test_ffi.cpp:314,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:316,1
    - Dst: botan_ffi_api_version
      Src: /src/botan/src/tests/test_ffi.cpp:317,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:320,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:320,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:321,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:321,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:322,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:322,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:323,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:323,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:325,1
    - Dst: botan_ffi_supports_api
      Src: /src/botan/src/tests/test_ffi.cpp:325,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:330,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:330,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:330,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:330,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:331,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:331,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:331,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:331,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:334,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:334,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:334,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:335,1
    - Dst: std::string::resize
      Src: /src/botan/src/tests/test_ffi.cpp:342,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:342,1
    - Dst: TEST_FFI_OK
      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: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:343,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:344,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:346,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:346,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:346,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:346,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 348
    functionName: Botan_Tests::FFI_Utils_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - test_eq
    - botan_version_patch
    - Botan::version_major
    - botan_ffi_supports_api
    - std::vector::data
    - Botan::version_datestamp
    - confirm
    - botan_version_datestamp
    - std::string::resize
    - Botan::version_patch
    - botan_version_string
    - botan_ffi_api_version
    - botan_version_minor
    - TEST_FFI_OK
    - std::vector::size
    - Botan::version_cstr
    - botan_version_major
    - Botan::version_minor
    - std::string::data
    - test_is_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: 353
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 353
    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:367,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:369,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:370,1
    - Dst: botan_rng_init
      Src: /src/botan/src/tests/test_ffi.cpp:372,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:373,1
    - Dst: botan_rng_init
      Src: /src/botan/src/tests/test_ffi.cpp:377,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:378,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:381,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:382,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:386,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:386,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:386,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:387,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:389,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:391,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:393,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:393,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:393,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:395,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:398,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:399,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:399,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:399,1
    - Dst: TEST_FFI_OK
      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_OK
      Src: /src/botan/src/tests/test_ffi.cpp:405,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:409,1
    - Dst: static_cast<size_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:417,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_ffi.cpp:422,1
    - Dst: static_cast<size_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:423,1
    - Dst: static_cast<size_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:427,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:429,1
    - Dst: Botan::clear_mem
      Src: /src/botan/src/tests/test_ffi.cpp:432,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:432,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:432,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:433,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:433,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:433,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:434,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:435,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:436,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:438,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:439,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:441,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:442,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:445,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:446,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:448,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:449,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:454,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:456,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:456,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:456,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:457,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_ffi.cpp:461,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_ffi.cpp:462,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_ffi.cpp:463,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:464,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:469,1
    - Dst: Botan::clear_mem
      Src: /src/botan/src/tests/test_ffi.cpp:470,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:470,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:470,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:472,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:472,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:472,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:473,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:475,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:478,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:479,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:483,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:486,1
    - Dst: Botan::clear_mem
      Src: /src/botan/src/tests/test_ffi.cpp:487,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:487,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:487,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:489,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:489,1
    - Dst: std::vector::size
      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_OK
      Src: /src/botan/src/tests/test_ffi.cpp:492,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:495,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:496,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:499,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:503,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:503,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:503,1
    - Dst: botan_tpm2_supports_crypto_backend
      Src: /src/botan/src/tests/test_ffi.cpp:504,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:505,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:506,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:508,1
    - Dst: tpm2_test_rng
      Src: /src/botan/src/tests/test_ffi.cpp:511,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:512,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:519,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:519,1
    - Dst: auto::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:519,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:520,1
    - Dst: botan_tpm2_supports_crypto_backend
      Src: /src/botan/src/tests/test_ffi.cpp:524,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:525,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:526,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:528,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:532,1
    - Dst: tpm2_test_rng
      Src: /src/botan/src/tests/test_ffi.cpp:533,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:534,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:538,1
    - Dst: Esys_Finalize
      Src: /src/botan/src/tests/test_ffi.cpp:541,1
    - Dst: Tss2_TctiLdr_Finalize
      Src: /src/botan/src/tests/test_ffi.cpp:543,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:548,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:549,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:550,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:551,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 115
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 355
    functionDepth: 2
    functionLinenumber: 355
    functionLinenumberEnd: 552
    functionName: Botan_Tests::FFI_RNG_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - test_eq
    - auto::empty
    - botan_rng_init
    - BOTAN_UNUSED
    - auto::c_str
    - REQUIRE_FFI_OK
    - std::vector::data
    - Esys_Finalize
    - TEST_FFI_FAIL
    - confirm
    - test_note
    - static_cast<size_t*>
    - Tss2_TctiLdr_Finalize
    - Botan_Tests::test_encoding_options
    - Botan::clear_mem
    - TEST_FFI_OK
    - std::vector::size
    - botan_tpm2_supports_crypto_backend
    - TEST_FFI_INIT
    - tpm2_test_rng
    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: 557
      start: 557
    functionDepth: 0
    functionLinenumber: 557
    functionLinenumberEnd: 557
    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:561,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:561,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:562,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:563,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:564,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:565,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:566,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:569,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:570,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:572,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:573,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 559
    functionDepth: 1
    functionLinenumber: 559
    functionLinenumberEnd: 575
    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_RC
    - 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: 580
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 580
    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:627,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:627,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:636,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_ffi.cpp:636,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:640,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:641,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:641,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:641,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:646,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:657,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:660,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 663
    functionName: Botan_Tests::FFI_ZFEC_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - REQUIRE_FFI_OK
    - std::vector::data
    - TEST_FFI_FAIL
    - std::to_string
    - 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: 668
      start: 668
    functionDepth: 0
    functionLinenumber: 668
    functionLinenumberEnd: 668
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:691,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:691,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:696,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:696,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:699,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:699,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:700,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:701,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:704,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:704,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:705,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:706,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:707,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:709,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:710,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 711
    functionName: Botan_Tests::FFI_CRL_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - REQUIRE_FFI_OK
    - Botan_Tests::Test::data_file
    - reinterpret_cast<const uint8_t*>
    - TEST_FFI_OK
    - 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: 716
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 716
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:722,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:722,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:728,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:728,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:729,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:729,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:731,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:732,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:733,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:733,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:735,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:736,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:737,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:738,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:742,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:742,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:743,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:743,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:746,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:747,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:748,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:749,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:752,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:753,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:754,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:754,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:756,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:759,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:760,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:761,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:765,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:765,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:766,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:768,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:769,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:769,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:774,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:774,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:775,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:775,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:776,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:776,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:778,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:780,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:781,1
    - Dst: botan_x509_cert_validation_status
      Src: /src/botan/src/tests/test_ffi.cpp:782,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_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:786,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:787,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:788,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:789,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:790,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:791,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:792,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 42
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 718
    functionDepth: 1
    functionLinenumber: 718
    functionLinenumberEnd: 793
    functionName: Botan_Tests::FFI_Cert_Validation_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - test_eq
    - REQUIRE_FFI_OK
    - Botan_Tests::Test::data_file
    - botan_x509_cert_validation_status
    - TEST_FFI_OK
    - confirm
    - 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: 798
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 798
    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:802,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_ffi.cpp:802,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:804,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:808,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:812,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:812,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:813,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:816,1
    - Dst: std::string::resize
      Src: /src/botan/src/tests/test_ffi.cpp:819,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:820,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:820,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:821,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:824,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:825,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:828,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:829,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:832,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:837,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:837,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:838,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:838,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:839,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_ffi.cpp:839,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:842,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:847,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:847,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:848,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_ffi.cpp:850,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:850,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:854,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:858,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:861,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:866,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:866,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:867,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_ffi.cpp:868,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:868,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:868,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:872,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:877,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:877,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:881,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:882,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:883,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:888,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:893,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:893,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:894,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_ffi.cpp:894,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:894,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:897,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:901,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:902,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:902,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:903,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_ffi.cpp:903,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:903,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:906,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:910,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:910,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:912,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:913,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:914,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:916,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 50
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 800
    functionDepth: 1
    functionLinenumber: 800
    functionLinenumberEnd: 918
    functionName: Botan_Tests::FFI_ECDSA_Certificate_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - test_eq
    - std::string::resize
    - Botan::hex_encode
    - Botan_Tests::Test::data_file
    - std::string::data
    - std::vector::data
    - std::vector::resize
    - reinterpret_cast<const char*>
    - TEST_FFI_OK
    - std::vector::size
    - confirm
    - 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: 923
      start: 923
    functionDepth: 0
    functionLinenumber: 923
    functionLinenumberEnd: 923
    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:927,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:929,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:929,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:930,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:932,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:933,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:936,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:938,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 925
    functionDepth: 1
    functionLinenumber: 925
    functionLinenumberEnd: 940
    functionName: Botan_Tests::FFI_PKCS_Hashid_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - TEST_FFI_RC
    - std::vector::data
    - std::vector::resize
    - std::vector::size
    - 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: 945
      start: 945
    functionDepth: 0
    functionLinenumber: 945
    functionLinenumberEnd: 945
    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:951,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:954,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:955,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:956,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:960,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:961,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:962,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:963,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:972,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:972,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:973,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:973,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:980,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:981,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:982,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:984,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:986,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:988,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:988,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:988,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:989,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:989,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:989,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:990,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:993,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:994,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:996,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:997,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:999,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1001,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1001,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1001,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1002,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1002,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1002,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1003,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1006,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1007,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1009,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1010,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1013,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1014,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1016,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1018,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1018,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1021,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1023,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1024,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1025,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1027,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1030,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1032,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1032,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1032,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1033,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1033,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1033,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1034,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1037,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1038,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1040,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1041,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1044,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1046,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1048,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1052,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 947
    functionDepth: 1
    functionLinenumber: 947
    functionLinenumberEnd: 1054
    functionName: Botan_Tests::FFI_CBC_Cipher_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - TEST_FFI_RC
    - std::vector::data
    - test_int_eq
    - std::vector::resize
    - TEST_FFI_OK
    - std::vector::size
    - 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: 1059
      start: 1059
    functionDepth: 0
    functionLinenumber: 1059
    functionLinenumberEnd: 1059
    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:1065,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:1068,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1068,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1069,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:1071,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1072,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1072,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1073,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1074,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1074,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1084,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1085,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1087,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1090,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1091,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1092,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1094,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1095,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1097,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1098,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1100,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1102,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1104,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1105,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1106,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1109,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1112,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1113,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1114,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1116,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1118,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1125,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1125,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1125,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1128,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1128,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1128,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1129,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1131,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1131,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1131,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1132,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1135,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1136,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1138,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1139,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1141,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1143,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1143,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1143,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: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1144,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1145,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1145,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1145,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1146,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1149,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1150,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1152,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1153,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1156,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1157,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1159,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1160,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1162,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1163,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1165,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: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1169,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1170,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1170,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1170,1
    - Dst: TEST_FFI_OK
      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:1172,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1175,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1176,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1178,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1179,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1182,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1182,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1183,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1183,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1184,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1186,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1190,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 53
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1061
    functionDepth: 1
    functionLinenumber: 1061
    functionLinenumberEnd: 1192
    functionName: Botan_Tests::FFI_GCM_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - std::array::data
    - TEST_FFI_RC
    - Botan::hex_decode
    - std::vector::data
    - test_int_eq
    - std::vector::resize
    - std::array::size
    - TEST_FFI_FAIL
    - TEST_FFI_OK
    - std::vector::size
    - 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: 1197
      start: 1197
    functionDepth: 0
    functionLinenumber: 1197
    functionLinenumberEnd: 1197
    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:1203,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:1206,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1206,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1207,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:1209,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1210,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1210,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1211,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1212,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:1212,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1212,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1222,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1223,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1225,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1228,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1229,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1230,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1232,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1233,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1235,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1236,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1238,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1241,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1244,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1245,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1246,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1248,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1250,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1257,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1257,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1257,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1260,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1260,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1260,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1261,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1263,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1263,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1263,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1264,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1267,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1268,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1270,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1271,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1273,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1275,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1275,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1275,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1276,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1276,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1276,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1277,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1277,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1277,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1278,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1281,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1282,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1284,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1285,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1288,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1289,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1291,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1293,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1295,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1296,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1298,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1302,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1302,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1302,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1303,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1303,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1303,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1304,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1304,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1304,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1305,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1308,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1309,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1311,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1312,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1315,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1315,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1316,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1316,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1317,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1319,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1323,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 49
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1325
      start: 1199
    functionDepth: 1
    functionLinenumber: 1199
    functionLinenumberEnd: 1325
    functionName: Botan_Tests::FFI_ChaCha20Poly1305_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - std::array::data
    - TEST_FFI_RC
    - Botan::hex_decode
    - std::string
    - std::vector::data
    - test_int_eq
    - std::vector::resize
    - std::array::size
    - TEST_FFI_FAIL
    - TEST_FFI_OK
    - std::vector::size
    - 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: 1330
      start: 1330
    functionDepth: 0
    functionLinenumber: 1330
    functionLinenumberEnd: 1330
    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:1336,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1345,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1346,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1348,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1351,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1352,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1353,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1355,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1356,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1357,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1358,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1360,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1361,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1363,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1364,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1366,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1368,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1370,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1373,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1374,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1375,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1376,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1379,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1386,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1386,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1386,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1387,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1387,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1387,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1388,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1391,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1392,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1394,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1395,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1397,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1399,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1399,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1399,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1400,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1400,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1400,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1401,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1404,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1405,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1407,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1408,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1411,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1412,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1414,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1415,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1417,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1418,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1420,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1424,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1424,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1424,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1425,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1425,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1425,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1426,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1429,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1430,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1432,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1433,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1436,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1436,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1437,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1437,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1438,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1440,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1444,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 44
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1446
      start: 1332
    functionDepth: 1
    functionLinenumber: 1332
    functionLinenumberEnd: 1446
    functionName: Botan_Tests::FFI_EAX_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - TEST_FFI_RC
    - Botan::hex_decode
    - std::vector::data
    - test_int_eq
    - std::vector::resize
    - TEST_FFI_OK
    - std::vector::size
    - 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: 1451
      start: 1451
    functionDepth: 0
    functionLinenumber: 1451
    functionLinenumberEnd: 1451
    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:1461,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1463,1
    - Dst: c_str
      Src: /src/botan/src/tests/test_ffi.cpp:1463,1
    - Dst: botan_cipher_is_authenticated
      Src: /src/botan/src/tests/test_ffi.cpp:1467,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_ffi.cpp:1468,1
    - Dst: botan_cipher_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:1469,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1480,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1481,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1482,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1483,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1484,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1486,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1490,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1490,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1490,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1491,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1491,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1491,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1494,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1494,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1494,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1495,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1495,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1495,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1499,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1499,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1499,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1502,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1502,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1502,1
    - Dst: botan_cipher_requires_entire_message
      Src: /src/botan/src/tests/test_ffi.cpp:1505,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1506,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:1519,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/tests/test_ffi.cpp:1525,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1525,1
    - Dst: std::span
      Src: /src/botan/src/tests/test_ffi.cpp:1526,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:1527,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1529,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:1532,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1533,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:1535,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1536,1
    - Dst: Test::Result::test_gt
      Src: /src/botan/src/tests/test_ffi.cpp:1539,1
    - Dst: Test::Result::test_lte
      Src: /src/botan/src/tests/test_ffi.cpp:1540,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1540,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_ffi.cpp:1541,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1544,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1546,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_ffi.cpp:1547,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1556,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1560,1
    - Dst: std::span::data
      Src: /src/botan/src/tests/test_ffi.cpp:1563,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:1564,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1567,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:1567,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1569,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:1569,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1570,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:1572,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1574,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:1577,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1578,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1584,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1585,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1586,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1588,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1592,1
    - Dst: c_str
      Src: /src/botan/src/tests/test_ffi.cpp:1592,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1594,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1595,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1597,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1601,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1601,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1601,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1602,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1602,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1602,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1604,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:1616,1
    - Dst: std::span
      Src: /src/botan/src/tests/test_ffi.cpp:1622,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:1623,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1625,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:1628,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1629,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:1631,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1632,1
    - Dst: Test::Result::test_gt
      Src: /src/botan/src/tests/test_ffi.cpp:1635,1
    - Dst: Test::Result::test_lte
      Src: /src/botan/src/tests/test_ffi.cpp:1636,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1636,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_ffi.cpp:1637,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1640,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1642,1
    - Dst: std::span::subspan
      Src: /src/botan/src/tests/test_ffi.cpp:1643,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1647,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:1647,1
    - Dst: std::span::first
      Src: /src/botan/src/tests/test_ffi.cpp:1648,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1653,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:1656,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:1657,1
    - Dst: std::span::data
      Src: /src/botan/src/tests/test_ffi.cpp:1659,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:1660,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1663,1
    - Dst: std::span::size
      Src: /src/botan/src/tests/test_ffi.cpp:1663,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1664,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1665,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1667,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1669,1
    - Dst: merge
      Src: /src/botan/src/tests/test_ffi.cpp:1671,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 69
    argCount: 2
    argNames:
    - ' merged_result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1673
      start: 1453
    functionDepth: 1
    functionLinenumber: 1453
    functionLinenumberEnd: 1673
    functionName: Botan_Tests::FFI_AEAD_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - TEST_FFI_RC
    - std::span::size
    - Test::Result::test_failure
    - Test::Result::test_lte
    - std::span::subspan
    - botan_cipher_is_authenticated
    - auto::size
    - std::span
    - std::span::first
    - c_str
    - botan_cipher_requires_entire_message
    - merge
    - std::vector::data
    - Test::Result::test_gt
    - auto::data
    - std::span::data
    - TEST_FFI_OK
    - std::vector::size
    - TEST_FFI_INIT
    - Botan::fmt
    - botan_cipher_destroy
    - Test::Result::test_eq
    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: 1678
      start: 1678
    functionDepth: 0
    functionLinenumber: 1678
    functionLinenumberEnd: 1678
    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:1683,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1684,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1685,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1686,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1688,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1691,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1696,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1697,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1699,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1702,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1707,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1707,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1707,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1708,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1708,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1708,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1711,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1712,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1712,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1712,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1714,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1715,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1717,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1718,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1718,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1720,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1720,1
    - Dst: test_int_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1721,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1721,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1722,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1724,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1726
      start: 1680
    functionDepth: 1
    functionLinenumber: 1680
    functionLinenumberEnd: 1726
    functionName: Botan_Tests::FFI_StreamCipher_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - TEST_FFI_RC
    - std::vector::data
    - test_int_eq
    - TEST_FFI_OK
    - std::vector::size
    - 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: 1731
      start: 1731
    functionDepth: 0
    functionLinenumber: 1731
    functionLinenumberEnd: 1731
    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:1737,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:1738,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1740,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:1743,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1743,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1744,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:1746,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1747,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1747,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1748,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1749,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1749,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1753,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1754,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1758,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1759,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1765,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:1765,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1766,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1768,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:1769,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:1769,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1770,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1770,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1772,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1779,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1780,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:1780,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1782,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1783,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:1784,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:1784,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1786,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:1787,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:1787,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1788,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1788,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1789,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1791,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:1792,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:1792,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1793,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1793,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1794,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1796,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1800,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1802
      start: 1733
    functionDepth: 1
    functionLinenumber: 1733
    functionLinenumberEnd: 1802
    functionName: Botan_Tests::FFI_HashFunction_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - std::array::data
    - std::strlen
    - reinterpret_cast<const uint8_t*>
    - std::vector::data
    - std::array::size
    - TEST_FFI_FAIL
    - TEST_FFI_OK
    - 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: 1807
      start: 1807
    functionDepth: 0
    functionLinenumber: 1807
    functionLinenumberEnd: 1807
    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:1814,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:1815,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1817,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:1820,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1820,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1821,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:1823,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1824,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1824,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1825,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1826,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1826,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1832,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1833,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1834,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:1835,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1837,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1838,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1839,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1842,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1843,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1850,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1851,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:1852,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:1852,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1853,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1855,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1856,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:1857,1
    - Dst: std::strlen
      Src: /src/botan/src/tests/test_ffi.cpp:1857,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1858,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1858,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1860,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1865,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 32
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1867
      start: 1809
    functionDepth: 1
    functionLinenumber: 1809
    functionLinenumberEnd: 1867
    functionName: Botan_Tests::FFI_MAC_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - std::array::data
    - TEST_FFI_RC
    - std::strlen
    - reinterpret_cast<const uint8_t*>
    - std::vector::data
    - std::array::size
    - TEST_FFI_FAIL
    - TEST_FFI_OK
    - 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: 1872
      start: 1872
    functionDepth: 0
    functionLinenumber: 1872
    functionLinenumberEnd: 1872
    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:1879,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1879,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1879,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1880,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1885,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1886,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1886,1
    - Dst: std::vector::size
      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: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1890,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1890,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1891,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1893
      start: 1874
    functionDepth: 1
    functionLinenumber: 1874
    functionLinenumberEnd: 1893
    functionName: Botan_Tests::FFI_Scrypt_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - std::vector::data
    - TEST_FFI_OK
    - std::vector::size
    - 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: 1898
      start: 1898
    functionDepth: 0
    functionLinenumber: 1898
    functionLinenumberEnd: 1898
    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:1905,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1909,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1911,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1913,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1914,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:1915,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1916,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1917,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1919,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:1926,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1927,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:1928,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1929,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1930,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1933,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1935,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1936,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:1937,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1938,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1939,1
    - Dst: test_note
      Src: /src/botan/src/tests/test_ffi.cpp:1943,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_ffi.cpp:1943,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_ffi.cpp:1944,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1947,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:1948,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1950,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:1952,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1954,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1955,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1956,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1957,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:1958,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:1959,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1962,1
    - Dst: std::string::resize
      Src: /src/botan/src/tests/test_ffi.cpp:1967,1
    - Dst: botan_bcrypt_generate
      Src: /src/botan/src/tests/test_ffi.cpp:1970,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:1970,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:1970,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:1970,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1973,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1975,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:1975,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:1975,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:1976,1
    - Dst: std::string::data
      Src: /src/botan/src/tests/test_ffi.cpp:1976,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1978
      start: 1900
    functionDepth: 1
    functionLinenumber: 1900
    functionLinenumberEnd: 1978
    functionName: Botan_Tests::FFI_KDF_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - std::string::resize
    - reinterpret_cast<uint8_t*>
    - botan_bcrypt_generate
    - std::string::data
    - std::string::c_str
    - std::vector::data
    - std::vector::resize
    - TEST_FFI_FAIL
    - std::to_string
    - TEST_FFI_OK
    - std::vector::size
    - TEST_FFI_INIT
    - test_note
    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: 1983
      start: 1983
    functionDepth: 0
    functionLinenumber: 1983
    functionLinenumberEnd: 1983
    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:1988,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:1991,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1991,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1992,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:1994,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:1995,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1995,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1996,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:1997,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:1997,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2003,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2005,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2006,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2006,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2007,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2008,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2008,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2010,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2011,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2013,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2018,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2019,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2020,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2021,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2023,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2024,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2025,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2027,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2027,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2027,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2029,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2029,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2029,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2030,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2032,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2032,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2032,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2033,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2035,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2035,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2035,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2036,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2038,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2038,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2038,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2039,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2041,1
    - Dst: botan_block_cipher_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2042,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 34
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2044
      start: 1985
    functionDepth: 1
    functionLinenumber: 1985
    functionLinenumberEnd: 2044
    functionName: Botan_Tests::FFI_Blockcipher_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - botan_block_cipher_destroy
    - test_eq
    - std::array::data
    - TEST_FFI_RC
    - std::vector::data
    - std::array::size
    - TEST_FFI_FAIL
    - TEST_FFI_OK
    - std::vector::size
    - 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: 2049
      start: 2049
    functionDepth: 0
    functionLinenumber: 2049
    functionLinenumberEnd: 2049
    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:2053,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2058,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2059,1
    - Dst: reinterpret_cast<botan_hash_t>
      Src: /src/botan/src/tests/test_ffi.cpp:2059,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2060,1
    - Dst: botan_error_description
      Src: /src/botan/src/tests/test_ffi.cpp:2065,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2066,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2072,1
    - Dst: std::set::contains
      Src: /src/botan/src/tests/test_ffi.cpp:2072,1
    - Dst: std::set::insert
      Src: /src/botan/src/tests/test_ffi.cpp:2073,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2077
      start: 2051
    functionDepth: 1
    functionLinenumber: 2051
    functionLinenumberEnd: 2077
    functionName: Botan_Tests::FFI_ErrorHandling_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - std::set::contains
    - botan_error_description
    - std::set::insert
    - botan_mp_init
    - confirm
    - 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: 2082
      start: 2082
    functionDepth: 0
    functionLinenumber: 2082
    functionLinenumberEnd: 2082
    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:2089,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2091,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2094,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2101,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2103,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2105,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2108,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2108,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2110,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2111,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_ffi.cpp:2111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2112
      start: 2084
    functionDepth: 1
    functionLinenumber: 2084
    functionLinenumberEnd: 2112
    functionName: Botan_Tests::FFI_Base64_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - TEST_FFI_RC
    - std::string
    - strlen
    - reinterpret_cast<const char*>
    - TEST_FFI_OK
    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: 2117
      start: 2117
    functionDepth: 0
    functionLinenumber: 2117
    functionLinenumberEnd: 2117
    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:2123,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2125,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2131,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2132,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2135,1
    - Dst: strlen
      Src: /src/botan/src/tests/test_ffi.cpp:2135,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2137,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2138,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_ffi.cpp:2138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2139
      start: 2119
    functionDepth: 1
    functionLinenumber: 2119
    functionLinenumberEnd: 2139
    functionName: Botan_Tests::FFI_Hex_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - TEST_FFI_RC
    - std::string
    - strlen
    - reinterpret_cast<const char*>
    - TEST_FFI_OK
    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: 2144
      start: 2144
    functionDepth: 0
    functionLinenumber: 2144
    functionLinenumberEnd: 2144
    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:2151,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2152,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2153,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2154,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2155,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2156,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2157,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2159,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2161,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2162,1
    - Dst: botan_mp_set_from_int
      Src: /src/botan/src/tests/test_ffi.cpp:2164,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2165,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2166,1
    - Dst: botan_mp_add_u32
      Src: /src/botan/src/tests/test_ffi.cpp:2168,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2169,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2170,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2173,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2174,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2174,1
    - Dst: botan_mp_sub_u32
      Src: /src/botan/src/tests/test_ffi.cpp:2176,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2177,1
    - Dst: botan_mp_add_u32
      Src: /src/botan/src/tests/test_ffi.cpp:2178,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2179,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2180,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2183,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2184,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2184,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2186,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2187,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2188,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2189,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2190,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2194,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2196,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2197,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2199,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2200,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2202,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2203,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2204,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2205,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2206,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2209,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2210,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2211,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2212,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2213,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2215,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2216,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2218,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2219,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2221,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2222,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2224,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2225,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2227,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2229,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2233,1
    - Dst: test_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_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2237,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2237,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2240,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2241,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2243,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2244,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2245,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2246,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2247,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2248,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2248,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2250,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2251,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2252,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2252,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2255,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2256,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2259,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2261,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2263,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2264,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2264,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2266,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2268,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2269,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2269,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2270,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2273,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2274,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2277,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2278,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2278,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2281,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2282,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2282,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2284,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2285,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2287,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2288,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2288,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2289,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2291,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2293,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2294,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2294,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2296,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2298,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2299,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2299,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2301,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2303,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2304,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2304,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2307,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2310,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2311,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2314,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2315,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2317,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2319,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2320,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2320,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2322,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2324,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2325,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2325,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2327,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2328,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2331,1
    - Dst: botan_mp_to_bin
      Src: /src/botan/src/tests/test_ffi.cpp:2332,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2332,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2333,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2335,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2336,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2338,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2339,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_ffi.cpp:2339,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2342,1
    - Dst: botan_mp_rand_bits
      Src: /src/botan/src/tests/test_ffi.cpp:2345,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2346,1
    - Dst: test_lte
      Src: /src/botan/src/tests/test_ffi.cpp:2347,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2349,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2350,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2351,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_ffi.cpp:2351,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2353,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2354,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2355,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/tests/test_ffi.cpp:2355,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2357,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2358,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2359,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2360,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 151
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2362
      start: 2146
    functionDepth: 1
    functionLinenumber: 2146
    functionLinenumberEnd: 2362
    functionName: Botan_Tests::FFI_MP_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - botan_mp_set_from_int
    - TEST_FFI_RC
    - test_eq
    - botan_mp_sub_u32
    - botan_mp_destroy
    - static_cast<size_t>
    - botan_mp_to_bin
    - std::string
    - botan_mp_add_u32
    - std::vector::data
    - test_lte
    - std::vector::resize
    - botan_mp_rand_bits
    - TEST_FFI_OK
    - botan_mp_init
    - confirm
    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: 2367
      start: 2367
    functionDepth: 0
    functionLinenumber: 2367
    functionLinenumberEnd: 2367
    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:2373,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:2374,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2377,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2378,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2383,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:2384,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2386,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2389,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2390,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2392,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2393,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2394,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2396,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2397,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2399,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2400,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2401,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2402
      start: 2369
    functionDepth: 1
    functionLinenumber: 2369
    functionLinenumberEnd: 2402
    functionName: Botan_Tests::FFI_FPE_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - botan_mp_destroy
    - botan_mp_set_from_str
    - TEST_FFI_OK
    - botan_mp_init
    - 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: 2407
      start: 2407
    functionDepth: 0
    functionLinenumber: 2407
    functionLinenumberEnd: 2407
    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:2410,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2415,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2415,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2415,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2420,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2421,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2423,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2424,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2426,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2427,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2428,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2431
      start: 2409
    functionDepth: 1
    functionLinenumber: 2409
    functionLinenumberEnd: 2431
    functionName: Botan_Tests::FFI_TOTP_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - TEST_FFI_RC
    - std::vector::data
    - TEST_FFI_OK
    - std::vector::size
    - confirm
    - 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: 2436
      start: 2436
    functionDepth: 0
    functionLinenumber: 2436
    functionLinenumberEnd: 2436
    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:2439,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2445,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2445,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2445,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2449,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2450,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2451,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2452,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2453,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2454,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2455,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2456,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2460,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2461,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2462,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2463,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2464,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2465,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2468
      start: 2438
    functionDepth: 1
    functionLinenumber: 2438
    functionLinenumberEnd: 2468
    functionName: Botan_Tests::FFI_HOTP_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - TEST_FFI_RC
    - std::vector::data
    - TEST_FFI_OK
    - std::vector::size
    - confirm
    - 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: 2473
      start: 2473
    functionDepth: 0
    functionLinenumber: 2473
    functionLinenumberEnd: 2473
    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:2482,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2487,1
    - Dst: test_eq
      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_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2496,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2498
      start: 2475
    functionDepth: 1
    functionLinenumber: 2475
    functionLinenumberEnd: 2498
    functionName: Botan_Tests::FFI_Keywrap_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_OK
    - test_eq
    - 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: 2503
      start: 2503
    functionDepth: 0
    functionLinenumber: 2503
    functionLinenumberEnd: 2503
    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:2507,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2508,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2510,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2511,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2514,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2515,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2518,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2519,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2523
      start: 2505
    functionDepth: 1
    functionLinenumber: 2505
    functionLinenumberEnd: 2523
    functionName: Botan_Tests::FFI_XMSS_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_OK
    - TEST_FFI_RC
    - confirm
    - 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: 2528
      start: 2528
    functionDepth: 0
    functionLinenumber: 2528
    functionLinenumberEnd: 2528
    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:2533,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2534,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2537,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:2538,1
    - Dst: TEST_FFI_FAIL
      Src: /src/botan/src/tests/test_ffi.cpp:2541,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2544,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2545,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:2547,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2554,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2555,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2556,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2557,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2558,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2560,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2561,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2563,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2564,1
    - Dst: TEST_FFI_OK
      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: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2567,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2573,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2574,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2575,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2576,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2578,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2579,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2580,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2581,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2584,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2585,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2588,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2592,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2593,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2595,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2596,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2600,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2601,1
    - Dst: botan_privkey_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2602,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2604,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2605,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2608,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2609,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2611,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2612,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2613,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2614,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2615,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2618,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2623,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2624,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2627,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2627,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2628,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2631,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2634,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2635,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2636,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2639,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2640,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2640,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2641,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2641,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2644,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2645,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2645,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2646,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2646,1
    - Dst: TEST_FFI_INIT
      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: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2652,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2652,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2655,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2655,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2658,1
    - Dst: std::vector::data
      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: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2659,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2660,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2663,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2665,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2665,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2667,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2668,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2668,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2668,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2669,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2671,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2674,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2677,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2680,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2681,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2682,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2683,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 84
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2685
      start: 2530
    functionDepth: 1
    functionLinenumber: 2530
    functionLinenumberEnd: 2685
    functionName: Botan_Tests::FFI_RSA_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - std::array::data
    - test_eq
    - botan_mp_destroy
    - std::vector::data
    - ffi_test_pubkey_export
    - botan_privkey_destroy
    - std::vector::resize
    - std::array::size
    - TEST_FFI_FAIL
    - std::vector::size
    - TEST_FFI_OK
    - botan_mp_init
    - confirm
    - 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: 2690
      start: 2690
    functionDepth: 0
    functionLinenumber: 2690
    functionLinenumberEnd: 2690
    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:2695,1
    - Dst: Botan_Tests::FFI_DSA_Test::do_dsa_test
      Src: /src/botan/src/tests/test_ffi.cpp:2696,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2699,1
    - Dst: Botan_Tests::FFI_DSA_Test::do_dsa_test
      Src: /src/botan/src/tests/test_ffi.cpp:2700,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2702
      start: 2692
    functionDepth: 2
    functionLinenumber: 2692
    functionLinenumberEnd: 2702
    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:2706,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2709,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2710,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:2712,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2719,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2720,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2721,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2722,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2723,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2725,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2726,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2727,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2728,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2729,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2732,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2733,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2735,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2736,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2738,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2739,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2741,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2742,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2743,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2746,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2747,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2750,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2751,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2753,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2754,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2755,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2756,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:2757,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2764,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2766,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2766,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2766,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2769,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2770,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2773,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2773,1
    - Dst: test_lte
      Src: /src/botan/src/tests/test_ffi.cpp:2774,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2775,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2777,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_ffi.cpp:2782,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2782,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2783,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2783,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2783,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2784,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2784,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2784,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2788,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2788,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2788,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2789,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2790,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2790,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2793,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2793,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2793,1
    - Dst: TEST_FFI_RC
      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:2795,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2798,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2798,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2798,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2799,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2800,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2800,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2803,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2803,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2803,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2804,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:2804,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2806,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2809,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2810,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2811,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2812,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: 2813
      start: 2705
    functionDepth: 1
    functionLinenumber: 2705
    functionLinenumberEnd: 2813
    functionName: Botan_Tests::FFI_DSA_Test::do_dsa_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 4
    functionsReached:
    - TEST_FFI_RC
    - botan_mp_destroy
    - std::vector::data
    - test_lte
    - ffi_test_pubkey_export
    - std::vector::empty
    - std::vector::resize
    - std::vector::size
    - TEST_FFI_OK
    - botan_mp_init
    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: 2818
      start: 2818
    functionDepth: 0
    functionLinenumber: 2818
    functionLinenumberEnd: 2818
    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:2825,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2829,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:2830,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2837,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2838,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2839,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2841,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2842,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2844,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2845,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2846,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2847,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:2847,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:2847,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2852,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2853,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2854,1
    - Dst: ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:2854,1
    - Dst: ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:2854,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2855,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2856,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2857,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:2862,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2862,1
    - Dst: test_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:2867,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2867,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2867,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:2871,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2873,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2873,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2873,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2876,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2878,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2880,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2881,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2881,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2882,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2884,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_ffi.cpp:2889,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2889,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2890,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2890,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2890,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2891,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2891,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2891,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::size
      Src: /src/botan/src/tests/test_ffi.cpp:2895,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2896,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2898,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2898,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::size
      Src: /src/botan/src/tests/test_ffi.cpp:2901,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2902,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2904,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2904,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2907,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2907,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2907,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:2908,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2910,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2910,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2913,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2913,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2913,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2914,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2914,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2914,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2916,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2920,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2921,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2922,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2923,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2924,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2925,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2926,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2927,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 59
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2928
      start: 2820
    functionDepth: 1
    functionLinenumber: 2820
    functionLinenumberEnd: 2928
    functionName: Botan_Tests::FFI_ECDSA_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - std::array::data
    - ViewBytesSink::callback
    - test_eq
    - ViewBytesSink::data
    - ViewBytesSink::size
    - std::vector::data
    - std::vector::empty
    - ffi_test_pubkey_export
    - ViewBytesSink::delegate
    - std::vector::resize
    - std::array::size
    - std::vector::size
    - TEST_FFI_OK
    - botan_mp_init
    - 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: 2933
      start: 2933
    functionDepth: 0
    functionLinenumber: 2933
    functionLinenumberEnd: 2933
    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:2944,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2948,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:2949,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2953,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2960,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2961,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:2962,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2964,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2965,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2966,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2967,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:2967,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:2967,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2968,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2969,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2970,1
    - Dst: ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:2970,1
    - Dst: ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:2970,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2971,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2972,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2973,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:2976,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2978,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2978,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:2979,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:2979,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2983,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2983,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2983,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2985,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:2985,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2987,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2987,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:2987,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2990,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2992,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2994,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:2994,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:2995,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:2997,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/test_ffi.cpp:3002,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3002,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:3002,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3003,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3003,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3003,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3004,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3004,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3004,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3008,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3008,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3008,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3009,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3010,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3010,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3013,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3013,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3013,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3014,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3015,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3015,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3018,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3018,1
    - Dst: std::vector::size
      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: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3020,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3020,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3023,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3023,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3023,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3024,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3024,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3024,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3026,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3029,1
    - Dst: TEST_FFI_OK
      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_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3032,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3033,1
    - Dst: TEST_FFI_OK
      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_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3036,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 56
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3037
      start: 2935
    functionDepth: 1
    functionLinenumber: 2935
    functionLinenumberEnd: 3037
    functionName: Botan_Tests::FFI_SM2_Sig_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - std::array::data
    - ViewBytesSink::callback
    - TEST_FFI_RC
    - ViewBytesSink::data
    - REQUIRE_FFI_OK
    - ViewBytesSink::size
    - std::string::c_str
    - std::vector::data
    - std::vector::empty
    - ffi_test_pubkey_export
    - ViewBytesSink::delegate
    - std::vector::resize
    - std::array::size
    - std::vector::size
    - TEST_FFI_OK
    - botan_mp_init
    - 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: 3042
      start: 3042
    functionDepth: 0
    functionLinenumber: 3042
    functionLinenumberEnd: 3042
    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:3052,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3056,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:3057,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3061,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3068,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3069,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3070,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3072,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3073,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3074,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3075,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3075,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3075,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3076,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3077,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3078,1
    - Dst: ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:3078,1
    - Dst: ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:3078,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3079,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3080,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3081,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:3084,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3086,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3086,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3087,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3087,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3092,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3092,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3092,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3095,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3097,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3097,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3099,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3100,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3100,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3100,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3100,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3101,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3104,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3106,1
    - Dst: std::vector::size
      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: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3110,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3110,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3110,1
    - Dst: botan_pk_op_decrypt_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3112,1
    - Dst: botan_pk_op_encrypt_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:3114,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3116,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3117,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3118,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3119,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3120,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3121,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3122,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3123,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 41
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3124
      start: 3044
    functionDepth: 1
    functionLinenumber: 3044
    functionLinenumberEnd: 3124
    functionName: Botan_Tests::FFI_SM2_Enc_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - std::array::data
    - ViewBytesSink::callback
    - ViewBytesSink::data
    - REQUIRE_FFI_OK
    - ViewBytesSink::size
    - botan_pk_op_decrypt_destroy
    - std::vector::data
    - botan_pk_op_encrypt_destroy
    - ffi_test_pubkey_export
    - ViewBytesSink::delegate
    - std::vector::resize
    - std::array::size
    - std::vector::size
    - TEST_FFI_OK
    - botan_mp_init
    - 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: 3129
      start: 3129
    functionDepth: 0
    functionLinenumber: 3129
    functionLinenumberEnd: 3129
    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:3133,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3138,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3141,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3144,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3151,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3152,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:3153,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3155,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3156,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3157,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3158,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3158,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3158,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3163,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3164,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3165,1
    - Dst: ViewBytesSink::data
      Src: /src/botan/src/tests/test_ffi.cpp:3165,1
    - Dst: ViewBytesSink::size
      Src: /src/botan/src/tests/test_ffi.cpp:3165,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3166,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3167,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3168,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:3170,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:3171,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:3172,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3184,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3186,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3189,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3193,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3193,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3195,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3199,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3199,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3202,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3202,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3202,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3207,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3208,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3209,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3209,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3209,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3209,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3209,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3212,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3213,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3214,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3214,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3214,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3214,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3214,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3216,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3218,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3219,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:3222,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3223,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3224,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3225,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3226,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3227,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3228,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3229,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 45
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3230
      start: 3131
    functionDepth: 1
    functionLinenumber: 3131
    functionLinenumberEnd: 3230
    functionName: Botan_Tests::FFI_ECDH_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - test_eq
    - ViewBytesSink::callback
    - botan_mp_init
    - ViewBytesSink::data
    - REQUIRE_FFI_OK
    - ViewBytesSink::size
    - std::vector::data
    - ffi_test_pubkey_export
    - std::vector::size
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - 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: 3235
      start: 3235
    functionDepth: 0
    functionLinenumber: 3235
    functionLinenumberEnd: 3235
    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:3239,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3241,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:3243,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:3246,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3247,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3247,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3248,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:3248,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3253,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3254,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3256
      start: 3237
    functionDepth: 1
    functionLinenumber: 3237
    functionLinenumberEnd: 3256
    functionName: Botan_Tests::FFI_McEliece_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - std::array::data
    - ffi_test_pubkey_export
    - std::array::size
    - 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: 3261
      start: 3261
    functionDepth: 0
    functionLinenumber: 3261
    functionLinenumberEnd: 3261
    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:3269,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3271,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3272,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3273,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3277,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3277,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3282,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3284,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3284,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3284,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3286,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3289,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3290,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3290,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3290,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3292,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3293,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3293,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3298,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3299,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3299,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3299,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3302,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3304,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3306,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3306,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3307,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3309,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3312,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3316,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3317,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3317,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3317,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3318,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3318,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3318,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3320,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3323,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3324,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3325
      start: 3263
    functionDepth: 1
    functionLinenumber: 3263
    functionLinenumberEnd: 3325
    functionName: Botan_Tests::FFI_Ed25519_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - std::vector::data
    - std::vector::resize
    - TEST_FFI_OK
    - std::vector::size
    - 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: 3330
      start: 3330
    functionDepth: 0
    functionLinenumber: 3330
    functionLinenumberEnd: 3330
    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:3337,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3339,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3341,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3342,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3345,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:3345,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3350,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3350,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3351,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3353,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3356,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3356,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3357,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3359,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3360,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:3360,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3365,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3366,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:3366,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:3366,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3369,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3371,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3373,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3373,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3374,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3376,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3379,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3383,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3384,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:3384,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:3384,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3385,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3385,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3385,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3387,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3390,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3391,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3392
      start: 3332
    functionDepth: 1
    functionLinenumber: 3332
    functionLinenumberEnd: 3392
    functionName: Botan_Tests::FFI_Ed448_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - Botan::hex_decode
    - test_eq
    - std::vector::data
    - std::vector::resize
    - TEST_FFI_OK
    - std::vector::size
    - auto::size
    - test_is_eq
    - 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: 3397
      start: 3397
    functionDepth: 0
    functionLinenumber: 3397
    functionLinenumberEnd: 3397
    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:3403,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3405,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3407,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3409,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3412,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3412,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3417,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3417,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3418,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3423,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3424,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3424,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3425,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3428,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3428,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3429,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3429,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3430,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3433,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3436,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3437,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3438,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3438,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3438,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3440,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3442,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3443,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3444,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3446
      start: 3399
    functionDepth: 1
    functionLinenumber: 3399
    functionLinenumberEnd: 3446
    functionName: Botan_Tests::FFI_X25519_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - REQUIRE_FFI_OK
    - std::vector::data
    - TEST_FFI_OK
    - std::vector::size
    - 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: 3451
      start: 3451
    functionDepth: 0
    functionLinenumber: 3451
    functionLinenumberEnd: 3451
    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:3455,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3457,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3459,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3461,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3465,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:3465,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3470,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3470,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3471,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3476,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3477,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3477,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3478,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3481,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:3481,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3482,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3482,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3483,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3486,1
    - Dst: std::vector::size
      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: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3491,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_ffi.cpp:3491,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_ffi.cpp:3491,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3493,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3495,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3496,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3497,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3499
      start: 3453
    functionDepth: 1
    functionLinenumber: 3453
    functionLinenumberEnd: 3499
    functionName: Botan_Tests::FFI_X448_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - Botan::hex_decode
    - test_eq
    - REQUIRE_FFI_OK
    - std::vector::data
    - TEST_FFI_OK
    - std::vector::size
    - auto::size
    - TEST_FFI_INIT
    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:3518,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3522,1
    - Dst: algo
      Src: /src/botan/src/tests/test_ffi.cpp:3522,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3525,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3530,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3530,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3530,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3531,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3531,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3531,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3536,1
    - Dst: private_key_load_function
      Src: /src/botan/src/tests/test_ffi.cpp:3536,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3537,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3537,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3538,1
    - Dst: public_key_load_function
      Src: /src/botan/src/tests/test_ffi.cpp:3538,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3539,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3539,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3544,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3544,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3544,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3545,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3545,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3545,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3546,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3546,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3546,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3547,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3547,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3547,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3551,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3556,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3557,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3562,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:3575,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3583,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3589,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3591,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3593,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3594,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3595,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3596,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3597,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3601,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3603,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3604,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3608,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3613,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3614,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3618,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3623,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3627,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3628,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3630,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3632,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3633,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3634,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3637,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3639,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3640,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3641,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3642,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 43
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3644
      start: 3517
    functionDepth: 1
    functionLinenumber: 3517
    functionLinenumberEnd: 3644
    functionName: Botan_Tests::FFI_KEM_Roundtrip_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - modes
    - test_eq
    - private_key_load_function
    - ViewBytesSink::callback
    - public_key_load_function
    - TEST_FFI_RC
    - Botan::secure_vector::resize
    - ViewBytesSink::get
    - std::vector::data
    - std::vector::resize
    - Botan::secure_vector::data
    - std::vector::size
    - algo
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - confirm
    - TEST_FFI_INIT
    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:3667,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3671,1
    - Dst: algo
      Src: /src/botan/src/tests/test_ffi.cpp:3671,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3674,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3679,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3679,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3679,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3680,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3680,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3680,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3685,1
    - Dst: private_key_load_function
      Src: /src/botan/src/tests/test_ffi.cpp:3685,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3686,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3686,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3687,1
    - Dst: public_key_load_function
      Src: /src/botan/src/tests/test_ffi.cpp:3687,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3688,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3688,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3693,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3693,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3693,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3694,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3694,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3694,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3695,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3695,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3695,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3696,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3696,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3696,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3700,1
    - Dst: hash_algo_or_padding
      Src: /src/botan/src/tests/test_ffi.cpp:3700,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3704,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3707,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3707,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3707,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3708,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3708,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3708,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3712,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3715,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3718,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3719,1
    - Dst: hash_algo_or_padding
      Src: /src/botan/src/tests/test_ffi.cpp:3719,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3720,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3720,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3720,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3721,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3721,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3721,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3726,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3726,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3727,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:3728,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:3733,1
    - Dst: hash_algo_or_padding
      Src: /src/botan/src/tests/test_ffi.cpp:3733,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3734,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3734,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3734,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3735,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3735,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3735,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3738,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3738,1
    - Dst: Botan::secure_vector::size
      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: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3742,1
    - Dst: hash_algo_or_padding
      Src: /src/botan/src/tests/test_ffi.cpp:3742,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3743,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3743,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3743,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:3744,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3745,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:3745,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3746,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3749,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3750,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3751,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3752,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 42
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3754
      start: 3663
    functionDepth: 1
    functionLinenumber: 3663
    functionLinenumberEnd: 3754
    functionName: Botan_Tests::FFI_Signature_Roundtrip_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - modes
    - test_eq
    - private_key_load_function
    - ViewBytesSink::callback
    - public_key_load_function
    - TEST_FFI_RC
    - Botan::secure_vector::resize
    - ViewBytesSink::get
    - hash_algo_or_padding
    - std::vector::data
    - Botan::secure_vector::data
    - std::vector::size
    - algo
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - Botan::secure_vector::size
    - 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: 3759
      start: 3759
    functionDepth: 0
    functionLinenumber: 3759
    functionLinenumberEnd: 3759
    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:3762,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3764,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3766,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3770,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3770,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3776,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3776,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3776,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3777,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3777,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3777,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3778,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3778,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3779,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3779,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3785,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3786,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3786,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3786,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3787,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3787,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3787,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3788,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3788,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3789,1
    - Dst: ViewBytesSink::get
      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: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3793,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3793,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3793,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3794,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3794,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3796,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3797,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3798,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3799
      start: 3761
    functionDepth: 1
    functionLinenumber: 3761
    functionLinenumberEnd: 3799
    functionName: Botan_Tests::FFI_Kyber512_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - ViewBytesSink::callback
    - ViewBytesSink::get
    - std::vector::data
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - 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: 3804
      start: 3804
    functionDepth: 0
    functionLinenumber: 3804
    functionLinenumberEnd: 3804
    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:3807,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3809,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3811,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3815,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3815,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3821,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3821,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3821,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3822,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3822,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3822,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3823,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3823,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3824,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3824,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3830,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3831,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3831,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3831,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3832,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3832,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3832,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3833,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3833,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3834,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3834,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3837,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3837,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3838,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3838,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3838,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3839,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3839,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3841,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3842,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3843,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3844
      start: 3806
    functionDepth: 1
    functionLinenumber: 3806
    functionLinenumberEnd: 3844
    functionName: Botan_Tests::FFI_Kyber768_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - ViewBytesSink::callback
    - ViewBytesSink::get
    - std::vector::data
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - 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: 3849
      start: 3849
    functionDepth: 0
    functionLinenumber: 3849
    functionLinenumberEnd: 3849
    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:3852,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3854,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_ffi.cpp:3856,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:3860,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3860,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3866,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3866,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3866,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3867,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3867,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3867,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3868,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3868,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3869,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3869,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3875,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3876,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3876,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3876,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3877,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3877,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3877,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3878,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3878,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3879,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3879,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3882,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:3882,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3883,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:3883,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:3883,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:3884,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:3884,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3886,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3887,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:3888,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3889
      start: 3851
    functionDepth: 1
    functionLinenumber: 3851
    functionLinenumberEnd: 3889
    functionName: Botan_Tests::FFI_Kyber1024_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - test_eq
    - ViewBytesSink::callback
    - ViewBytesSink::get
    - std::vector::data
    - TEST_FFI_OK
    - ViewBytesSink::delegate
    - 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: 3894
      start: 3894
    functionDepth: 0
    functionLinenumber: 3894
    functionLinenumberEnd: 3894
    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: 3897
      start: 3897
    functionDepth: 0
    functionLinenumber: 3897
    functionLinenumberEnd: 3897
    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: 3899
      start: 3899
    functionDepth: 0
    functionLinenumber: 3899
    functionLinenumberEnd: 3899
    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: 3901
      start: 3901
    functionDepth: 0
    functionLinenumber: 3901
    functionLinenumberEnd: 3901
    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: 3903
      start: 3903
    functionDepth: 0
    functionLinenumber: 3903
    functionLinenumberEnd: 3903
    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: 3908
      start: 3908
    functionDepth: 0
    functionLinenumber: 3908
    functionLinenumberEnd: 3908
    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: 3911
      start: 3911
    functionDepth: 0
    functionLinenumber: 3911
    functionLinenumberEnd: 3911
    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: 3913
      start: 3913
    functionDepth: 0
    functionLinenumber: 3913
    functionLinenumberEnd: 3913
    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: 3915
      start: 3915
    functionDepth: 0
    functionLinenumber: 3915
    functionLinenumberEnd: 3915
    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: 3932
      start: 3917
    functionDepth: 0
    functionLinenumber: 3917
    functionLinenumberEnd: 3932
    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: 3937
      start: 3937
    functionDepth: 0
    functionLinenumber: 3937
    functionLinenumberEnd: 3937
    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: 3940
      start: 3940
    functionDepth: 0
    functionLinenumber: 3940
    functionLinenumberEnd: 3940
    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: 3942
      start: 3942
    functionDepth: 0
    functionLinenumber: 3942
    functionLinenumberEnd: 3942
    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: 3944
      start: 3944
    functionDepth: 0
    functionLinenumber: 3944
    functionLinenumberEnd: 3944
    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: 3952
      start: 3946
    functionDepth: 0
    functionLinenumber: 3946
    functionLinenumberEnd: 3952
    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: 3954
      start: 3954
    functionDepth: 0
    functionLinenumber: 3954
    functionLinenumberEnd: 3954
    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: 3959
      start: 3959
    functionDepth: 0
    functionLinenumber: 3959
    functionLinenumberEnd: 3959
    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: 3962
      start: 3962
    functionDepth: 0
    functionLinenumber: 3962
    functionLinenumberEnd: 3962
    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: 3964
      start: 3964
    functionDepth: 0
    functionLinenumber: 3964
    functionLinenumberEnd: 3964
    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: 3966
      start: 3966
    functionDepth: 0
    functionLinenumber: 3966
    functionLinenumberEnd: 3966
    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:3978,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_ffi.cpp:3979,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3991
      start: 3968
    functionDepth: 1
    functionLinenumber: 3968
    functionLinenumberEnd: 3991
    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: 3993
      start: 3993
    functionDepth: 0
    functionLinenumber: 3993
    functionLinenumberEnd: 3993
    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: 3998
      start: 3998
    functionDepth: 0
    functionLinenumber: 3998
    functionLinenumberEnd: 3998
    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: 4001
      start: 4001
    functionDepth: 0
    functionLinenumber: 4001
    functionLinenumberEnd: 4001
    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: 4003
      start: 4003
    functionDepth: 0
    functionLinenumber: 4003
    functionLinenumberEnd: 4003
    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: 4005
      start: 4005
    functionDepth: 0
    functionLinenumber: 4005
    functionLinenumberEnd: 4005
    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:4012,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_ffi.cpp:4013,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4032
      start: 4007
    functionDepth: 1
    functionLinenumber: 4007
    functionLinenumberEnd: 4032
    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: 4037
      start: 4037
    functionDepth: 0
    functionLinenumber: 4037
    functionLinenumberEnd: 4037
    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:4042,1
    - Dst: Botan_Tests::FFI_ElGamal_Test::do_elgamal_test
      Src: /src/botan/src/tests/test_ffi.cpp:4043,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4046,1
    - Dst: Botan_Tests::FFI_ElGamal_Test::do_elgamal_test
      Src: /src/botan/src/tests/test_ffi.cpp:4047,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4049
      start: 4039
    functionDepth: 2
    functionLinenumber: 4039
    functionLinenumberEnd: 4049
    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:4053,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4056,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4057,1
    - Dst: ffi_test_pubkey_export
      Src: /src/botan/src/tests/test_ffi.cpp:4059,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4064,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4065,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4066,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4067,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4069,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4070,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4071,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4072,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4075,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4078,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4081,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4083,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4084,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4085,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4086,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4100,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:4100,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4102,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4102,1
    - Dst: std::vector::resize
      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: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4105,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4105,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4105,1
    - Dst: std::vector::resize
      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:4112,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:4112,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4114,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4114,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4115,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4116,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4117,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4117,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4117,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/test_ffi.cpp:4118,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4119,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4122,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4124,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4125,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4126,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4127,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: 4128
      start: 4052
    functionDepth: 1
    functionLinenumber: 4052
    functionLinenumberEnd: 4128
    functionName: Botan_Tests::FFI_ElGamal_Test::do_elgamal_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 4
    functionsReached:
    - test_eq
    - botan_mp_destroy
    - std::string::c_str
    - std::vector::data
    - ffi_test_pubkey_export
    - std::vector::resize
    - std::vector::size
    - TEST_FFI_OK
    - botan_mp_init
    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: 4133
      start: 4133
    functionDepth: 0
    functionLinenumber: 4133
    functionLinenumberEnd: 4133
    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:4137,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4142,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4145,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4148,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4156,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4157,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4158,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4159,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4161,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4162,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4163,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4164,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4168,1
    - Dst: TEST_FFI_OK
      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:4172,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4177,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4178,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4179,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4181,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4182,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:4187,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:4188,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4190,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:4191,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4193,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:4194,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4197,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4199,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4202,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4206,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4206,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4208,1
    - Dst: REQUIRE_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4212,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4212,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4217,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4219,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4220,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4220,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4220,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4223,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4225,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4226,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ffi.cpp:4226,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ffi.cpp:4226,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4228,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4230,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4231,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4232,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4233,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4235,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4236,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4237,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4239,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4240,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4241,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4242,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4243,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: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 55
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4247
      start: 4135
    functionDepth: 1
    functionLinenumber: 4135
    functionLinenumberEnd: 4247
    functionName: Botan_Tests::FFI_DH_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - test_eq
    - REQUIRE_FFI_OK
    - std::vector::data
    - std::vector::size
    - TEST_FFI_OK
    - botan_mp_init
    - confirm
    - 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: 4252
      start: 4252
    functionDepth: 0
    functionLinenumber: 4252
    functionLinenumberEnd: 4252
    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:4262,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4263,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4265,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4266,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4267,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4270,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4271,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4273,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4274,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4276,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4277,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4278,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4280,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4281,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4285,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:4286,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4288,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:4289,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4291,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:4292,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4294,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4295,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4296,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4297,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4298,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4299,1
    - Dst: TEST_FFI_INIT
      Src: /src/botan/src/tests/test_ffi.cpp:4302,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4303,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4312,1
    - Dst: TEST_FFI_RC
      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::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:4314,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4315,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4317,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4320,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4322,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4323,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4326,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4326,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4326,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4327,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4327,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4329,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4331,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4332,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4335,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4335,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4335,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4336,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4336,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4337,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4339,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4340,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4341,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4342,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4344,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4345,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 50
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4347
      start: 4254
    functionDepth: 1
    functionLinenumber: 4254
    functionLinenumberEnd: 4347
    functionName: Botan_Tests::FFI_OID_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - test_eq
    - ViewStringSink::callback
    - std::string::c_str
    - ViewStringSink::get
    - TEST_FFI_FAIL
    - TEST_FFI_OK
    - ViewStringSink::delegate
    - confirm
    - 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: 4352
      start: 4352
    functionDepth: 0
    functionLinenumber: 4352
    functionLinenumberEnd: 4352
    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:4357,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4358,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:4359,1
    - Dst: Botan::EC_Group::supports_application_specific_group
      Src: /src/botan/src/tests/test_ffi.cpp:4361,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ffi.cpp:4362,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/tests/test_ffi.cpp:4363,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4375,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4377,1
    - Dst: Botan_Tests::FFI_EC_Group_Test::get_group_parameters
      Src: /src/botan/src/tests/test_ffi.cpp:4379,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4399,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4401,1
    - Dst: Botan_Tests::FFI_EC_Group_Test::get_group_parameters
      Src: /src/botan/src/tests/test_ffi.cpp:4403,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4413,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4414,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4434,1
    - Dst: botan_oid_register
      Src: /src/botan/src/tests/test_ffi.cpp:4435,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4436,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4437,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4438,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4439,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4440,1
    - Dst: botan_mp_init
      Src: /src/botan/src/tests/test_ffi.cpp:4441,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:4443,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:4444,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:4445,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:4446,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:4448,1
    - Dst: botan_mp_set_from_str
      Src: /src/botan/src/tests/test_ffi.cpp:4450,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4453,1
    - Dst: Botan_Tests::FFI_EC_Group_Test::get_group_parameters
      Src: /src/botan/src/tests/test_ffi.cpp:4463,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4475,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4478,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4480,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4481,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4492,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4493,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4496,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4497,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4498,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4499,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4500,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4501,1
    - Dst: botan_oid_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4503,1
    - Dst: botan_oid_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4504,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4506,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4507,1
    - Dst: botan_oid_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4510,1
    - Dst: botan_oid_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4511,1
    - Dst: botan_oid_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4512,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4522,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4523,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4524,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4530,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4531,1
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_ffi.cpp:4532,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4536,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4537,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4538,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4539,1
    - Dst: botan_mp_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4540,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4542,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4543,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4546,1
    - Dst: ViewBytesSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4546,1
    - Dst: ViewBytesSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4546,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4548,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_ffi.cpp:4550,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4550,1
    - Dst: ViewBytesSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4550,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4553,1
    - Dst: ViewStringSink::delegate
      Src: /src/botan/src/tests/test_ffi.cpp:4553,1
    - Dst: ViewStringSink::callback
      Src: /src/botan/src/tests/test_ffi.cpp:4553,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4554,1
    - Dst: ViewStringSink::get
      Src: /src/botan/src/tests/test_ffi.cpp:4554,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4557,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_ffi.cpp:4557,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4559,1
    - Dst: TEST_FFI_RC
      Src: /src/botan/src/tests/test_ffi.cpp:4560,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4563,1
    - Dst: std::array::size
      Src: /src/botan/src/tests/test_ffi.cpp:4565,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4567,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:4567,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ffi.cpp:4568,1
    - Dst: std::array::data
      Src: /src/botan/src/tests/test_ffi.cpp:4568,1
    - Dst: botan_privkey_destroy
      Src: /src/botan/src/tests/test_ffi.cpp:4570,1
    - Dst: TEST_FFI_OK
      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: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4574,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4575,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4576,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4577,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 82
    argCount: 2
    argNames:
    - ' result'
    - rng
    argTypes:
    - Test::Result
    - botan_rng_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4579
      start: 4354
    functionDepth: 2
    functionLinenumber: 4354
    functionLinenumberEnd: 4579
    functionName: Botan_Tests::FFI_EC_Group_Test::ffi_test
    functionSourceFile: /src/botan/src/tests/test_ffi.cpp
    functionUses: 0
    functionsReached:
    - TEST_FFI_RC
    - Botan_Tests::FFI_EC_Group_Test::get_group_parameters
    - Botan_Tests::Test::read_data_file
    - test_eq
    - reinterpret_cast<const uint8_t*>
    - botan_privkey_destroy
    - std::array::data
    - Botan::EC_Group::supports_application_specific_group
    - std::array::size
    - botan_mp_destroy
    - botan_mp_init
    - confirm
    - botan_mp_set_from_str
    - ViewBytesSink::callback
    - ViewStringSink::callback
    - ViewBytesSink::get
    - ViewStringSink::get
    - TEST_FFI_OK
    - ViewStringSink::delegate
    - Botan::EC_Group::supports_named_group
    - botan_oid_register
    - std::string::c_str
    - botan_oid_destroy
    - ViewBytesSink::delegate
    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:4591,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4592,1
    - Dst: TEST_FFI_OK
      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: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4595,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4596,1
    - Dst: TEST_FFI_OK
      Src: /src/botan/src/tests/test_ffi.cpp:4597,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: 4598
      start: 4582
    functionDepth: 1
    functionLinenumber: 4582
    functionLinenumberEnd: 4598
    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:
    - 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_ASSERT_NOMSG
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - Botan::load_be<uint32_t>
    - Botan::Sphincs_Address
    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:
    - auto::is_available
    - Botan::Sphincs_Parameters::create
    - get_req_str
    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_is_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_is_eq
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:85,1
    - Dst: unlock
      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_is_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::hash_type
    - auto::get
    - Botan::HashFunction::create
    - Botan::Sphincs_Hash_Functions::create
    - Botan_Tests::SPHINCS_Plus_FORS_Test::read_address
    - Test::Result::test_is_eq
    - auto::fors_signature_bytes
    - Botan::SphincsHashedMessage
    - get_req_bin
    - auto::process
    - Botan::fors_public_key_from_signature
    - Botan::SphincsSecretSeed
    - get_req_str
    - Test::Result::test_note
    - Botan::ForsSignature
    - Botan::fors_sign_and_pkgen
    - Botan::SphincsTreeNode
    - Botan::Sphincs_Parameters::create
    - unlock
    - Botan::SphincsPublicSeed
    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_ASSERT_NOMSG
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - Botan::load_be<uint32_t>
    - Botan::Sphincs_Address
    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:
    - auto::is_available
    - Botan::Sphincs_Parameters::create
    - get_req_str
    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_is_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_is_eq
      Src: /src/botan/src/tests/test_sphincsplus_fors.cpp:85,1
    - Dst: unlock
      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_is_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::hash_type
    - auto::get
    - Botan::HashFunction::create
    - Botan::Sphincs_Hash_Functions::create
    - Botan_Tests::SPHINCS_Plus_FORS_Test::read_address
    - Test::Result::test_is_eq
    - auto::fors_signature_bytes
    - Botan::SphincsHashedMessage
    - get_req_bin
    - auto::process
    - Botan::fors_public_key_from_signature
    - Botan::SphincsSecretSeed
    - get_req_str
    - Test::Result::test_note
    - Botan::ForsSignature
    - Botan::fors_sign_and_pkgen
    - Botan::SphincsTreeNode
    - Botan::Sphincs_Parameters::create
    - unlock
    - Botan::SphincsPublicSeed
    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:48,1
    - Dst: data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:48,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:48,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: 49
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: Botan_Tests::add_entropy
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 1
    functionsReached:
    - size
    - data
    - Botan_Tests::add_entropy
    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:54,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 56
    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:64,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 66
    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: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: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 73
    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:77,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 79
    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:83,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 85
    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:95,1
    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_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:98,1
    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::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: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    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:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 104
    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) const 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::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:119,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:119,1
    - Dst: std::chrono::system_clock::from_time_t
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:120,1
    - Dst: static_cast<time_t>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:120,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - msecs
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 122
    functionName: Botan_Tests::from_milliseconds_since_epoch
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan_Tests::random_bit_generator::max
    - Botan_CLI::Timer::milliseconds
    - static_cast<time_t>
    - std::chrono::system_clock::from_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:150,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:151,1
    - Dst: from_milliseconds_since_epoch
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:152,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: 152
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 152
    functionName: Botan_Tests::Test_TLS_13_Callbacks::Test_TLS_13_Callbacks
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - from_milliseconds_since_epoch
    - std::move
    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:155,1
    - Dst: insert
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:156,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:156,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:156,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_emit_data
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    - insert
    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:160,1
    - Dst: insert
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:162,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:162,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:162,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:162,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: 163
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 163
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_record_received
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    - insert
    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:166,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 169
    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:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 175
    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:178,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' summary'
    argTypes:
    - Botan::TLS::Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 182
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_session_established
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - external_psk_identity
    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:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 187
    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:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 192
    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&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' cert_chain'
    argTypes:
    - std::vector<Botan::X509_Certificate>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 202
    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>>&,\n
      \                                const std::vector<Botan::Certificate_Store*>&,\n
      \                                Botan::Usage_Type,\n                                 std::string_view,\n
      \                                const Botan::TLS::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:208,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:210,1
    - Dst: subject_public_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' raw_pk'
    argTypes:
    - Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 211
    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_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - Botan::X509::load_key
    - subject_public_key
    linkageType: ''
    returnType: void
    signature: "void tls_verify_raw_public_key(const Public_Key& raw_pk,\n                                     Usage_Type,\n
      \                                    std::string_view,\n                                     const
      TLS::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:214,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 216
    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_CLI::Timer::milliseconds
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    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:220,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::tls_provide_cert_status
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:221,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: 222
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 222
    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:229,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:230,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:232,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:234,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:238,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:238,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:240,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:242,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:246,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:246,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:249,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:249,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:258,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:258,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: 259
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 259
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_sign_message
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - Test_Error
    - Botan::hex_encode
    - std::string
    - algo_name
    - BOTAN_UNUSED
    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:266,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::tls_verify_message
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:267,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: 268
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 268
    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::count_callback_invocation
    - Botan_Tests::Test_TLS_13_Callbacks::tls_verify_message
    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:272,1
    - Dst: Callbacks::tls_generate_ephemeral_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:273,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: 274
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 274
    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:281,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_ephemeral_key_agreement
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:282,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: 283
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 283
    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:286,1
    - Dst: type_string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:286,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:289,1
    - Dst: try_emplace
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:291,1
    - Dst: type_string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:291,1
    - Dst: second::emplace_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:291,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:292,1
    - Dst: PeerCallbacks::tls_inspect_handshake_msg
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - Handshake_Message
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 285
    functionDepth: 2
    functionLinenumber: 285
    functionLinenumberEnd: 300
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_inspect_handshake_msg
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - std::move
    - second::emplace_back
    - try_emplace
    - PeerCallbacks::tls_inspect_handshake_msg
    - type_string
    - serialize
    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:303,1
    - Dst: Fuzzer_TLS_Server_Callbacks::tls_server_choose_app_protocol
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' client_protos'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 305
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_server_choose_app_protocol
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - Fuzzer_TLS_Server_Callbacks::tls_server_choose_app_protocol
    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:310,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:310,1
    - Dst: handshake_type_to_string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:310,1
    - Dst: m_modify_exts
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:311,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_modify_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:312,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: 313
      start: 307
    functionDepth: 2
    functionLinenumber: 307
    functionLinenumberEnd: 313
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_modify_extensions
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - m_modify_exts
    - std::string
    - handshake_type_to_string
    - Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_modify_extensions
    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:318,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:318,1
    - Dst: handshake_type_to_string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:318,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_examine_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:319,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: 320
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 320
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_examine_extensions
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - handshake_type_to_string
    - std::string
    - 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:323,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::tls_peer_network_identity
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 325
    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::count_callback_invocation
    - Botan_Tests::Test_TLS_13_Callbacks::tls_peer_network_identity
    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:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 330
    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:332,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:332,1
    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_Tests::Test_TLS_13_Callbacks::pull_send_buffer
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::exchange
    - std::vector<uint8_t>
    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:334,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:334,1
    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_Tests::Test_TLS_13_Callbacks::pull_receive_buffer
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::exchange
    - std::vector<uint8_t>
    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: 336
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 336
    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: 338
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 338
    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:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 340
    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:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' callback_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 349
    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:374,1
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:375,1
    - Dst: reset
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:376,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:376,1
    - Dst: Botan_Tests::Test::new_rng
      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: create_private_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:383,1
    - Dst: reset
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:385,1
    - Dst: create_private_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:385,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: 386
      start: 372
    functionDepth: 2
    functionLinenumber: 372
    functionLinenumberEnd: 386
    functionName: Botan_Tests::Test_Credentials::Test_Credentials
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::read_data_file
    - std::move
    - Botan::PKCS8::load_key
    - Botan_Tests::Test::new_rng
    - reset
    - create_private_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:392,1
    - Dst: client_certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:394,1
    - Dst: alternative_server_certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:396,1
    - Dst: server_certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:398,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: 400
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 400
    functionName: Botan_Tests::Test_Credentials::cert_chain
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    - client_certificate
    - server_certificate
    - alternative_server_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:405,1
    - Dst: client_raw_public_key_pair
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:406,1
    - Dst: server_raw_public_key_pair
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:407,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: 408
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 408
    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:413,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: 424
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 424
    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:429,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:431,1
    - Dst: client_raw_public_key_pair
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:431,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:432,1
    - Dst: server_raw_public_key_pair
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:432,1
    - Dst: fingerprint_public
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:434,1
    - Dst: fingerprint_public
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:434,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:435,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: 439
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 439
    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
    - server_raw_public_key_pair
    - client_raw_public_key_pair
    - BOTAN_UNUSED
    - fingerprint_public
    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:445,1
    - Dst: value
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:449,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:450,1
    - Dst: begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:450,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:450,1
    - Dst: identity
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:450,1
    - Dst: empty
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:451,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:451,1
    - Dst: prf_algo
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:455,1
    - Dst: extract_master_secret
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:461,1
    - Dst: ExternalPSK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:462,1
    - Dst: identity
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:462,1
    - Dst: prf_algo
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:462,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:464,1
    - Dst: identity
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:464,1
    - Dst: prf_algo
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:464,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: 466
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 466
    functionName: Botan_Tests::Test_Credentials::find_preshared_keys
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - begin
    - ExternalPSK
    - std::vector::emplace_back
    - prf_algo
    - identity
    - empty
    - extract_master_secret
    - end
    - std::find
    - has_value
    - value
    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:479,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:481,1
    - Dst: std::ifstream::good
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:482,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:483,1
    - Dst: Botan_Tests::RFC8448_Text_Policy::RFC8448_Text_Policy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:486,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' policy_file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 487
    functionName: Botan_Tests::RFC8448_Text_Policy::read_policy
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::RFC8448_Text_Policy::RFC8448_Text_Policy
    - Test_Error
    - std::ifstream::good
    - Botan_Tests::Test::data_file
    - std::string::c_str
    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:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' policy_file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 490
    functionDepth: 2
    functionLinenumber: 490
    functionLinenumberEnd: 491
    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:495,1
    - Dst: Botan::TLS::Signature_Scheme::Signature_Scheme
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:514,1
    - Dst: Botan::TLS::Signature_Scheme::Signature_Scheme
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:515,1
    - Dst: Botan::TLS::Signature_Scheme::Signature_Scheme
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:516,1
    - Dst: Botan::TLS::Signature_Scheme::Signature_Scheme
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 519
    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:526,1
    - Dst: key_exchange_groups
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:528,1
    - Dst: std::find_if
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:530,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:530,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:530,1
    - Dst: value_exists
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:531,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:534,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: 535
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 535
    functionName: Botan_Tests::RFC8448_Text_Policy::choose_key_exchange_group
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - auto::end
    - BOTAN_UNUSED
    - key_exchange_groups
    - auto::begin
    - std::find_if
    - value_exists
    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:550,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:550,1
    - Dst: handle::id
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:551,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:551,1
    - Dst: handle::ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:554,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:554,1
    - Dst: handle::ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:555,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:555,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 560
    functionName: Botan_Tests::RFC8448_Session_Manager::find_by_handle
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - ticket
    - handle::ticket
    - id
    - handle::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:563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 563
    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: 565
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 565
    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:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' session'
    - ' handle'
    argTypes:
    - Session
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 569
    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:576,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:577,1
    - Dst: front
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:580,1
    - Dst: master_secret
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:581,1
    - Dst: master_secret
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:581,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:582,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 586
    functionName: Botan_Tests::RFC8448_Session_Manager::establish
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - master_secret
    - size
    - front
    - Test_Error
    linkageType: ''
    returnType: std::optional<Session_Handle>
    signature: std::optional<Session_Handle> establish(const Session& session, const
      std::optional<Session_ID>&, bool) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:589,1
    - Dst: begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:589,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:589,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::find_by_handle
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:589,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:590,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 588
    functionDepth: 2
    functionLinenumber: 588
    functionLinenumberEnd: 595
    functionName: Botan_Tests::RFC8448_Session_Manager::retrieve_one
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 8
    functionsReached:
    - begin
    - std::find_if
    - end
    - Botan_Tests::RFC8448_Session_Manager::find_by_handle
    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:600,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:601,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' info'
    argTypes:
    - Server_Information
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 606
    functionName: Botan_Tests::RFC8448_Session_Manager::find_some
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::vector::emplace_back
    - server_info
    linkageType: ''
    returnType: std::vector<Session_with_Handle>
    signature: std::vector<Session_with_Handle> find_some(const Server_Information&
      info, const size_t) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::erase_if
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:608,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::find_by_handle
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 608
    functionDepth: 2
    functionLinenumber: 608
    functionLinenumberEnd: 608
    functionName: Botan_Tests::RFC8448_Session_Manager::remove
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 8
    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:611,1
    - Dst: clear
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 614
    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:636,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:637,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:637,1
    - Dst: std::make_shared<Test_Credentials>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:638,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:638,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:639,1
    - Dst: std::make_shared<RFC8448_Session_Manager>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:640,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:641,1
    - Dst: std::optional<std::pair<Session, Session_Ticket>>::has_value
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:642,1
    - Dst: store
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:643,1
    - Dst: std::get<Session>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:643,1
    - Dst: std::optional<std::pair<Session, Session_Ticket>>::value
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:643,1
    - Dst: Botan::TLS::Session_Handle
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:644,1
    - Dst: std::get<Session_Ticket>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:644,1
    - Dst: std::optional<std::pair<Session, Session_Ticket>>::value
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:644,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: 646
      start: 628
    functionDepth: 1
    functionLinenumber: 628
    functionLinenumberEnd: 646
    functionName: Botan_Tests::TLS_Context::TLS_Context
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::get<Session>
    - std::make_shared<Test_TLS_13_Callbacks>
    - store
    - Botan::TLS::Session_Handle
    - std::make_shared<RFC8448_Session_Manager>
    - std::get<Session_Ticket>
    - std::optional<std::pair<Session, Session_Ticket>>::value
    - std::optional<std::pair<Session, Session_Ticket>>::has_value
    - std::make_shared<Test_Credentials>
    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: 649
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 649
    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: 651
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 651
    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: 652
      start: 652
    functionDepth: 0
    functionLinenumber: 652
    functionLinenumberEnd: 652
    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: 654
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 654
    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: 655
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 655
    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:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 657
    functionDepth: 1
    functionLinenumber: 657
    functionLinenumberEnd: 657
    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:659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 659
    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:661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 661
    functionDepth: 1
    functionLinenumber: 661
    functionLinenumberEnd: 661
    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:671,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:673,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:673,1
    - Dst: contains
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:674,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:674,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:681,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:683,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:683,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:683,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:683,1
    - Dst: reset_callback_invocation_counters
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:686,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: 687
      start: 668
    functionDepth: 1
    functionLinenumber: 668
    functionLinenumberEnd: 687
    functionName: Botan_Tests::TLS_Context::check_callback_invocations
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - at
    - cend
    - reset_callback_invocation_counters
    - callback_invocations
    - cbegin
    - contains
    - std::find
    - confirm
    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:689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 689
    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: 691
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 691
    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: 693
      start: 693
    functionDepth: 0
    functionLinenumber: 693
    functionLinenumberEnd: 693
    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: 695
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 695
    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:720,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:721,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:722,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:723,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:725,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:726,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:733,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: 734
      start: 713
    functionDepth: 1
    functionLinenumber: 713
    functionLinenumberEnd: 734
    functionName: Botan_Tests::Client_Context::Client_Context
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Server_Information
    - std::move
    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:736,1
    - Dst: data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:736,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 736
    functionDepth: 1
    functionLinenumber: 736
    functionLinenumberEnd: 736
    functionName: Botan_Tests::Client_Context::send
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 1
    functionsReached:
    - size
    - Botan_Tests::Client_Context::send
    - 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:751,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:752,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:753,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:754,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:756,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:757,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: 759
      start: 743
    functionDepth: 0
    functionLinenumber: 743
    functionLinenumberEnd: 759
    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:761,1
    - Dst: data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:761,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 761
    functionDepth: 1
    functionLinenumber: 761
    functionLinenumberEnd: 761
    functionName: Botan_Tests::Server_Context::send
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::Server_Context::send
    - size
    - data
    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:768,1
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:770,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:770,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: 773
      start: 766
    functionDepth: 1
    functionLinenumber: 766
    functionLinenumberEnd: 773
    functionName: Botan_Tests::sort_extensions
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - add
    - take
    - std::move
    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:783,1
    - Dst: Botan_Tests::Padding::static_type
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:796,1
    - Dst: Botan_Tests::sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:800,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: 812
      start: 779
    functionDepth: 2
    functionLinenumber: 779
    functionLinenumberEnd: 812
    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 = Botan::TLS::Handshake_Type::ClientHello)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:817,1
    - Dst: Renegotiation_Extension::Renegotiation_Extension
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:817,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' exts'
    argTypes:
    - Botan::TLS::Extensions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 814
    functionDepth: 1
    functionLinenumber: 814
    functionLinenumberEnd: 818
    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:821,1
    - Dst: Botan::TLS::EarlyDataIndication::EarlyDataIndication
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' exts'
    argTypes:
    - Botan::TLS::Extensions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 820
    functionDepth: 1
    functionLinenumber: 820
    functionLinenumberEnd: 822
    functionName: Botan_Tests::add_early_data_indication
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - add
    - Botan::TLS::EarlyDataIndication::EarlyDataIndication
    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:825,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:825,1
    - Dst: begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:826,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 824
    functionDepth: 1
    functionLinenumber: 824
    functionLinenumberEnd: 827
    functionName: Botan_Tests::strip_message_header
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - begin
    - size
    - end
    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:833,1
    - Dst: has_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:833,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:834,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:834,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:834,1
    - Dst: mock
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:838,1
    - Dst: mock
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:839,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 829
    functionDepth: 0
    functionLinenumber: 829
    functionLinenumberEnd: 842
    functionName: Botan_Tests::make_mock_signatures
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - mock
    - has_key
    - std::vector::push_back
    - get_opt_bin
    linkageType: ''
    returnType: std::vector<MockSignature>
    signature: std::vector<MockSignature> make_mock_signatures(const VarMap& vars)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:48,1
    - Dst: data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:48,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:48,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: 49
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: Botan_Tests::add_entropy
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 2
    functionsReached:
    - size
    - data
    - Botan_Tests::add_entropy
    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:54,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 56
    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:64,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 66
    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: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: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 73
    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:77,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 79
    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:83,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 85
    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:95,1
    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_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:98,1
    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::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: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    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:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 104
    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) const 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::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:119,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:119,1
    - Dst: std::chrono::system_clock::from_time_t
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:120,1
    - Dst: static_cast<time_t>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:120,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - msecs
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 122
    functionName: Botan_Tests::from_milliseconds_since_epoch
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan_Tests::random_bit_generator::max
    - Botan_CLI::Timer::milliseconds
    - static_cast<time_t>
    - std::chrono::system_clock::from_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:150,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:151,1
    - Dst: from_milliseconds_since_epoch
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:152,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: 152
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 152
    functionName: Botan_Tests::Test_TLS_13_Callbacks::Test_TLS_13_Callbacks
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - from_milliseconds_since_epoch
    - std::move
    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:155,1
    - Dst: insert
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:156,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:156,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:156,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_emit_data
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    - insert
    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:160,1
    - Dst: insert
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:162,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:162,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:162,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:162,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: 163
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 163
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_record_received
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    - insert
    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:166,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 169
    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:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 175
    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:178,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' summary'
    argTypes:
    - Botan::TLS::Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 182
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_session_established
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - external_psk_identity
    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:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 187
    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:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 192
    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&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' cert_chain'
    argTypes:
    - std::vector<Botan::X509_Certificate>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 202
    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>>&,\n
      \                                const std::vector<Botan::Certificate_Store*>&,\n
      \                                Botan::Usage_Type,\n                                 std::string_view,\n
      \                                const Botan::TLS::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:208,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:210,1
    - Dst: subject_public_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' raw_pk'
    argTypes:
    - Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 211
    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_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - Botan::X509::load_key
    - subject_public_key
    linkageType: ''
    returnType: void
    signature: "void tls_verify_raw_public_key(const Public_Key& raw_pk,\n                                     Usage_Type,\n
      \                                    std::string_view,\n                                     const
      TLS::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:214,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 216
    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_CLI::Timer::milliseconds
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    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:220,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::tls_provide_cert_status
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:221,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: 222
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 222
    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:229,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:230,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:232,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:234,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:238,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:238,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:240,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:242,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:246,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:246,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:249,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:249,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:258,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:258,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: 259
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 259
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_sign_message
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - Test_Error
    - Botan::hex_encode
    - std::string
    - algo_name
    - BOTAN_UNUSED
    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:266,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::tls_verify_message
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:267,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: 268
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 268
    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::count_callback_invocation
    - Botan_Tests::Test_TLS_13_Callbacks::tls_verify_message
    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:272,1
    - Dst: Callbacks::tls_generate_ephemeral_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:273,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: 274
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 274
    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:281,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_ephemeral_key_agreement
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:282,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: 283
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 283
    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:286,1
    - Dst: type_string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:286,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:289,1
    - Dst: try_emplace
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:291,1
    - Dst: type_string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:291,1
    - Dst: second::emplace_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:291,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:292,1
    - Dst: PeerCallbacks::tls_inspect_handshake_msg
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - Handshake_Message
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 285
    functionDepth: 2
    functionLinenumber: 285
    functionLinenumberEnd: 300
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_inspect_handshake_msg
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - std::move
    - second::emplace_back
    - try_emplace
    - PeerCallbacks::tls_inspect_handshake_msg
    - type_string
    - serialize
    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:303,1
    - Dst: Fuzzer_TLS_Server_Callbacks::tls_server_choose_app_protocol
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' client_protos'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 305
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_server_choose_app_protocol
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - Fuzzer_TLS_Server_Callbacks::tls_server_choose_app_protocol
    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:310,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:310,1
    - Dst: handshake_type_to_string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:310,1
    - Dst: m_modify_exts
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:311,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_modify_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:312,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: 313
      start: 307
    functionDepth: 2
    functionLinenumber: 307
    functionLinenumberEnd: 313
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_modify_extensions
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - m_modify_exts
    - std::string
    - handshake_type_to_string
    - Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_modify_extensions
    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:318,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:318,1
    - Dst: handshake_type_to_string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:318,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_examine_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:319,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: 320
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 320
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_examine_extensions
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - handshake_type_to_string
    - std::string
    - 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:323,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::tls_peer_network_identity
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 325
    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::count_callback_invocation
    - Botan_Tests::Test_TLS_13_Callbacks::tls_peer_network_identity
    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:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 330
    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:332,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:332,1
    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_Tests::Test_TLS_13_Callbacks::pull_send_buffer
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::exchange
    - std::vector<uint8_t>
    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:334,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:334,1
    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_Tests::Test_TLS_13_Callbacks::pull_receive_buffer
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::exchange
    - std::vector<uint8_t>
    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: 336
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 336
    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: 338
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 338
    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:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 340
    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:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' callback_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 349
    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:374,1
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:375,1
    - Dst: reset
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:376,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:376,1
    - Dst: Botan_Tests::Test::new_rng
      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: create_private_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:383,1
    - Dst: reset
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:385,1
    - Dst: create_private_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:385,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: 386
      start: 372
    functionDepth: 2
    functionLinenumber: 372
    functionLinenumberEnd: 386
    functionName: Botan_Tests::Test_Credentials::Test_Credentials
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::read_data_file
    - std::move
    - Botan::PKCS8::load_key
    - Botan_Tests::Test::new_rng
    - reset
    - create_private_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:392,1
    - Dst: client_certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:394,1
    - Dst: alternative_server_certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:396,1
    - Dst: server_certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:398,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: 400
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 400
    functionName: Botan_Tests::Test_Credentials::cert_chain
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    - client_certificate
    - server_certificate
    - alternative_server_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:405,1
    - Dst: client_raw_public_key_pair
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:406,1
    - Dst: server_raw_public_key_pair
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:407,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: 408
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 408
    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:413,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: 424
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 424
    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:429,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:431,1
    - Dst: client_raw_public_key_pair
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:431,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:432,1
    - Dst: server_raw_public_key_pair
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:432,1
    - Dst: fingerprint_public
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:434,1
    - Dst: fingerprint_public
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:434,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:435,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: 439
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 439
    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
    - server_raw_public_key_pair
    - client_raw_public_key_pair
    - BOTAN_UNUSED
    - fingerprint_public
    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:445,1
    - Dst: value
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:449,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:450,1
    - Dst: begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:450,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:450,1
    - Dst: identity
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:450,1
    - Dst: empty
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:451,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:451,1
    - Dst: prf_algo
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:455,1
    - Dst: extract_master_secret
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:461,1
    - Dst: ExternalPSK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:462,1
    - Dst: identity
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:462,1
    - Dst: prf_algo
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:462,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:464,1
    - Dst: identity
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:464,1
    - Dst: prf_algo
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:464,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: 466
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 466
    functionName: Botan_Tests::Test_Credentials::find_preshared_keys
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - begin
    - ExternalPSK
    - std::vector::emplace_back
    - prf_algo
    - identity
    - empty
    - extract_master_secret
    - end
    - std::find
    - has_value
    - value
    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:479,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:481,1
    - Dst: std::ifstream::good
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:482,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:483,1
    - Dst: Botan_Tests::RFC8448_Text_Policy::RFC8448_Text_Policy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:486,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' policy_file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 478
    functionDepth: 3
    functionLinenumber: 478
    functionLinenumberEnd: 487
    functionName: Botan_Tests::RFC8448_Text_Policy::read_policy
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::RFC8448_Text_Policy::RFC8448_Text_Policy
    - Test_Error
    - std::ifstream::good
    - Botan_Tests::Test::data_file
    - std::string::c_str
    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:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' policy_file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 490
    functionDepth: 2
    functionLinenumber: 490
    functionLinenumberEnd: 491
    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:495,1
    - Dst: Botan::TLS::Signature_Scheme::Signature_Scheme
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:514,1
    - Dst: Botan::TLS::Signature_Scheme::Signature_Scheme
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:515,1
    - Dst: Botan::TLS::Signature_Scheme::Signature_Scheme
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:516,1
    - Dst: Botan::TLS::Signature_Scheme::Signature_Scheme
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 519
    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:526,1
    - Dst: key_exchange_groups
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:528,1
    - Dst: std::find_if
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:530,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:530,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:530,1
    - Dst: value_exists
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:531,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:534,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: 535
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 535
    functionName: Botan_Tests::RFC8448_Text_Policy::choose_key_exchange_group
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - auto::end
    - BOTAN_UNUSED
    - key_exchange_groups
    - auto::begin
    - std::find_if
    - value_exists
    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:550,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:550,1
    - Dst: handle::id
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:551,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:551,1
    - Dst: handle::ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:554,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:554,1
    - Dst: handle::ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:555,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:555,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 560
    functionName: Botan_Tests::RFC8448_Session_Manager::find_by_handle
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 2
    functionsReached:
    - ticket
    - handle::ticket
    - id
    - handle::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:563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 563
    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: 565
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 565
    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:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' session'
    - ' handle'
    argTypes:
    - Session
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 569
    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:576,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:577,1
    - Dst: front
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:580,1
    - Dst: master_secret
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:581,1
    - Dst: master_secret
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:581,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:582,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 586
    functionName: Botan_Tests::RFC8448_Session_Manager::establish
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - master_secret
    - size
    - front
    - Test_Error
    linkageType: ''
    returnType: std::optional<Session_Handle>
    signature: std::optional<Session_Handle> establish(const Session& session, const
      std::optional<Session_ID>&, bool) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:589,1
    - Dst: begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:589,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:589,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::find_by_handle
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:589,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:590,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 588
    functionDepth: 2
    functionLinenumber: 588
    functionLinenumberEnd: 595
    functionName: Botan_Tests::RFC8448_Session_Manager::retrieve_one
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 8
    functionsReached:
    - begin
    - std::find_if
    - end
    - Botan_Tests::RFC8448_Session_Manager::find_by_handle
    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:600,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:601,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' info'
    argTypes:
    - Server_Information
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 606
    functionName: Botan_Tests::RFC8448_Session_Manager::find_some
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::vector::emplace_back
    - server_info
    linkageType: ''
    returnType: std::vector<Session_with_Handle>
    signature: std::vector<Session_with_Handle> find_some(const Server_Information&
      info, const size_t) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::erase_if
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:608,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::find_by_handle
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 608
    functionDepth: 2
    functionLinenumber: 608
    functionLinenumberEnd: 608
    functionName: Botan_Tests::RFC8448_Session_Manager::remove
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 8
    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:611,1
    - Dst: clear
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 614
    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:636,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:637,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:637,1
    - Dst: std::make_shared<Test_Credentials>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:638,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:638,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:639,1
    - Dst: std::make_shared<RFC8448_Session_Manager>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:640,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:641,1
    - Dst: std::optional<std::pair<Session, Session_Ticket>>::has_value
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:642,1
    - Dst: store
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:643,1
    - Dst: std::get<Session>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:643,1
    - Dst: std::optional<std::pair<Session, Session_Ticket>>::value
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:643,1
    - Dst: Botan::TLS::Session_Handle
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:644,1
    - Dst: std::get<Session_Ticket>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:644,1
    - Dst: std::optional<std::pair<Session, Session_Ticket>>::value
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:644,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: 646
      start: 628
    functionDepth: 1
    functionLinenumber: 628
    functionLinenumberEnd: 646
    functionName: Botan_Tests::TLS_Context::TLS_Context
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::get<Session>
    - std::make_shared<Test_TLS_13_Callbacks>
    - store
    - Botan::TLS::Session_Handle
    - std::make_shared<RFC8448_Session_Manager>
    - std::get<Session_Ticket>
    - std::optional<std::pair<Session, Session_Ticket>>::value
    - std::optional<std::pair<Session, Session_Ticket>>::has_value
    - std::make_shared<Test_Credentials>
    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: 649
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 649
    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: 651
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 651
    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: 652
      start: 652
    functionDepth: 0
    functionLinenumber: 652
    functionLinenumberEnd: 652
    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: 654
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 654
    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: 655
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 655
    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:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 657
    functionDepth: 1
    functionLinenumber: 657
    functionLinenumberEnd: 657
    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:659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 659
    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:661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 661
    functionDepth: 1
    functionLinenumber: 661
    functionLinenumberEnd: 661
    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:671,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:673,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:673,1
    - Dst: contains
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:674,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:674,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:681,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:683,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:683,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:683,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:683,1
    - Dst: reset_callback_invocation_counters
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:686,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: 687
      start: 668
    functionDepth: 1
    functionLinenumber: 668
    functionLinenumberEnd: 687
    functionName: Botan_Tests::TLS_Context::check_callback_invocations
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - at
    - cend
    - reset_callback_invocation_counters
    - callback_invocations
    - cbegin
    - contains
    - std::find
    - confirm
    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:689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 689
    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: 691
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 691
    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: 693
      start: 693
    functionDepth: 0
    functionLinenumber: 693
    functionLinenumberEnd: 693
    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: 695
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 695
    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:720,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:721,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:722,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:723,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:725,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:726,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:733,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: 734
      start: 713
    functionDepth: 1
    functionLinenumber: 713
    functionLinenumberEnd: 734
    functionName: Botan_Tests::Client_Context::Client_Context
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Server_Information
    - std::move
    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:736,1
    - Dst: data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:736,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 736
    functionDepth: 1
    functionLinenumber: 736
    functionLinenumberEnd: 736
    functionName: Botan_Tests::Client_Context::send
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 2
    functionsReached:
    - size
    - Botan_Tests::Client_Context::send
    - 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:751,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:752,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:753,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:754,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:756,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:757,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: 759
      start: 743
    functionDepth: 0
    functionLinenumber: 743
    functionLinenumberEnd: 759
    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:761,1
    - Dst: data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:761,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 761
    functionDepth: 1
    functionLinenumber: 761
    functionLinenumberEnd: 761
    functionName: Botan_Tests::Server_Context::send
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::Server_Context::send
    - size
    - data
    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:768,1
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:770,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:770,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: 773
      start: 766
    functionDepth: 1
    functionLinenumber: 766
    functionLinenumberEnd: 773
    functionName: Botan_Tests::sort_extensions
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 1
    functionsReached:
    - add
    - take
    - std::move
    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:783,1
    - Dst: Botan_Tests::Padding::static_type
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:796,1
    - Dst: Botan_Tests::sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:800,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: 812
      start: 779
    functionDepth: 2
    functionLinenumber: 779
    functionLinenumberEnd: 812
    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 = Botan::TLS::Handshake_Type::ClientHello)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:817,1
    - Dst: Renegotiation_Extension::Renegotiation_Extension
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:817,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' exts'
    argTypes:
    - Botan::TLS::Extensions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 814
    functionDepth: 1
    functionLinenumber: 814
    functionLinenumberEnd: 818
    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:821,1
    - Dst: Botan::TLS::EarlyDataIndication::EarlyDataIndication
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' exts'
    argTypes:
    - Botan::TLS::Extensions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 820
    functionDepth: 1
    functionLinenumber: 820
    functionLinenumberEnd: 822
    functionName: Botan_Tests::add_early_data_indication
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - add
    - Botan::TLS::EarlyDataIndication::EarlyDataIndication
    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:825,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:825,1
    - Dst: begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:826,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 824
    functionDepth: 1
    functionLinenumber: 824
    functionLinenumberEnd: 827
    functionName: Botan_Tests::strip_message_header
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - begin
    - size
    - end
    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:833,1
    - Dst: has_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:833,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:834,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:834,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:834,1
    - Dst: mock
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:838,1
    - Dst: mock
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:839,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 829
    functionDepth: 0
    functionLinenumber: 829
    functionLinenumberEnd: 842
    functionName: Botan_Tests::make_mock_signatures
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - mock
    - has_key
    - std::vector::push_back
    - get_opt_bin
    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: 935
      start: 898
    functionDepth: 0
    functionLinenumber: 898
    functionLinenumberEnd: 935
    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_Tests::Test::Result::Result
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:939,1
    - Dst: side
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:939,1
    - Dst: simple_1_rtt
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:939,1
    - Dst: Botan_Tests::Test::Result::Result
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:941,1
    - Dst: side
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:941,1
    - Dst: resumed_handshake_with_0_rtt
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:941,1
    - Dst: Botan_Tests::Test::Result::Result
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:943,1
    - Dst: side
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:943,1
    - Dst: hello_retry_request
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:944,1
    - Dst: Botan_Tests::Test::Result::Result
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:946,1
    - Dst: side
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:946,1
    - Dst: client_authentication
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:946,1
    - Dst: Botan_Tests::Test::Result::Result
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:948,1
    - Dst: side
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:948,1
    - Dst: middlebox_compatibility
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:948,1
    - Dst: Botan_Tests::Test::Result::Result
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:950,1
    - Dst: side
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:950,1
    - Dst: externally_provided_psk_with_ephemeral_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:951,1
    - Dst: Botan_Tests::Test::Result::Result
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:953,1
    - Dst: side
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:953,1
    - Dst: raw_public_key_with_client_authentication
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:954,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:956,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 937
    functionDepth: 2
    functionLinenumber: 937
    functionLinenumberEnd: 958
    functionName: Botan_Tests::Test_TLS_RFC8448::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - side
    - raw_public_key_with_client_authentication
    - externally_provided_psk_with_ephemeral_key
    - client_authentication
    - hello_retry_request
    - middlebox_compatibility
    - Botan_Tests::Test::Result::Result
    - Botan_Tests::Test::Result::Failure
    - simple_1_rtt
    - resumed_handshake_with_0_rtt
    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: 963
      start: 963
    functionDepth: 0
    functionLinenumber: 963
    functionLinenumberEnd: 963
    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:966,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:970,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:970,1
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:979,1
    - Dst: Botan::TLS::Session_Ticket_Extension::Session_Ticket_Extension
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:979,1
    - Dst: add_renegotiation_extension
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:981,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:982,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:989,1
    - Dst: std::make_unique<Client_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:991,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:992,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:993,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:996,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:996,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:997,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1007,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1008,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1008,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1011,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1013,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1014,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1016,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1016,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1017,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1017,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1019,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1020,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1022,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1023,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1029,1
    - Dst: std::unique_ptr::client::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1029,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1030,1
    - Dst: std::unique_ptr::client::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1030,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1033,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1035,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1036,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1036,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1038,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1052,1
    - Dst: std::unique_ptr::certs_verified
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1052,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1053,1
    - Dst: std::unique_ptr::certs_verified
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1053,1
    - Dst: server_certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1053,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1054,1
    - Dst: std::unique_ptr::client::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1054,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1055,1
    - Dst: std::unique_ptr::client::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1055,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1057,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1058,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1059,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1062,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1064,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1065,1
    - Dst: std::unique_ptr::stored_sessions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1065,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1066,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1066,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1068,1
    - Dst: test_eq
      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::stored_sessions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1074,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1075,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1075,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1076,1
    - Dst: Botan::unlock
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1077,1
    - Dst: DER_encode
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1077,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1078,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1082,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1084,1
    - Dst: std::unique_ptr::send
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1085,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1085,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1087,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1089,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1090,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1091,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1094,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1096,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1097,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1097,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1099,1
    - Dst: std::unique_ptr::pull_receive_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1101,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1102,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1102,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1103,1
    - Dst: std::unique_ptr::last_received_seq_no
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1103,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1106,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1108,1
    - Dst: std::unique_ptr::client::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1109,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1111,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1112,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1112,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1113,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1115,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1115,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1116,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1119,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 59
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 965
    functionDepth: 1
    functionLinenumber: 965
    functionLinenumberEnd: 1122
    functionName: Botan_Tests::Test_TLS_RFC8448_Client::simple_1_rtt
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Session_Ticket_Extension::Session_Ticket_Extension
    - test_eq
    - sort_rfc8448_extensions
    - Botan::unlock
    - add_renegotiation_extension
    - std::unique_ptr::client::is_closed
    - auto::end
    - std::unique_ptr::send
    - std::unique_ptr::certs_verified
    - std::unique_ptr::client::is_handshake_complete
    - std::make_shared<RFC8448_Text_Policy>
    - std::make_shared<Fixed_Output_RNG>
    - add
    - get_req_u64
    - get_req_bin
    - confirm
    - CHECK
    - std::unique_ptr::client::is_active
    - ticket
    - std::make_unique<Client_Context>
    - std::unique_ptr::last_received_seq_no
    - server_certificate
    - add_entropy
    - require
    - std::unique_ptr::pull_receive_buffer
    - auto::begin
    - std::unique_ptr::client::close
    - std::unique_ptr::check_callback_invocations
    - std::unique_ptr::client::received_data
    - DER_encode
    - std::unique_ptr::pull_send_buffer
    - test_is_eq
    - std::unique_ptr::stored_sessions
    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:1125,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1129,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1129,1
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1135,1
    - Dst: Padding::Padding
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1135,1
    - Dst: add_renegotiation_extension
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1137,1
    - Dst: add_early_data_indication
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1143,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1144,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1151,1
    - Dst: std::make_unique<Client_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1153,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1154,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1155,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1156,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1158,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1158,1
    - Dst: Botan::TLS::Session_Ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1159,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1159,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1161,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1161,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1162,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1172,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1173,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1124
    functionDepth: 2
    functionLinenumber: 1124
    functionLinenumberEnd: 1180
    functionName: Botan_Tests::Test_TLS_RFC8448_Client::resumed_handshake_with_0_rtt
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - sort_rfc8448_extensions
    - TestSession::TestSession
    - add_renegotiation_extension
    - std::unique_ptr::client::is_closed
    - std::make_shared<RFC8448_Text_Policy>
    - add
    - Padding::Padding
    - get_req_u64
    - get_req_bin
    - confirm
    - CHECK
    - std::make_unique<Client_Context>
    - add_entropy
    - add_early_data_indication
    - std::move
    - Botan::TLS::Session_Ticket
    - std::unique_ptr::check_callback_invocations
    - std::make_unique<Fixed_Output_RNG>
    - std::unique_ptr::pull_send_buffer
    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:1190,1
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1196,1
    - Dst: Padding::Padding
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1196,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1199,1
    - Dst: Botan_Tests::Test_TLS_RFC8448_Client::rng
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1204,1
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1205,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1210,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1210,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1215,1
    - Dst: std::make_unique<Client_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1217,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1217,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1218,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1219,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1221,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1221,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1223,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1233,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1234,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1234,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1237,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1239,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1240,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1240,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1242,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1253,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1254,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1254,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1257,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1259,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1260,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1260,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1262,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1271,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1273,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1274,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1274,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1276,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1291,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1292,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1292,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1295,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1297,1
    - Dst: std::unique_ptr::client::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1298,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1299,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1301,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1302,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1302,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1304,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1304,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1305,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1308,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1308,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 41
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1182
    functionDepth: 1
    functionLinenumber: 1182
    functionLinenumberEnd: 1311
    functionName: Botan_Tests::Test_TLS_RFC8448_Client::hello_retry_request
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - sort_rfc8448_extensions
    - add_renegotiation_extension
    - std::unique_ptr::client::is_closed
    - std::make_shared<RFC8448_Text_Policy>
    - add
    - Padding::Padding
    - get_req_u64
    - get_req_bin
    - confirm
    - CHECK
    - std::make_unique<Client_Context>
    - add_entropy
    - require
    - std::unique_ptr::client::close
    - std::move
    - Botan_Tests::Test_TLS_RFC8448_Client::rng
    - std::unique_ptr::check_callback_invocations
    - std::unique_ptr::client::received_data
    - std::make_unique<Fixed_Output_RNG>
    - std::unique_ptr::pull_send_buffer
    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:1314,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1318,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1318,1
    - Dst: add_renegotiation_extension
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1324,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1325,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1332,1
    - Dst: std::make_unique<Client_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1334,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1334,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1335,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1336,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1340,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1342,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1352,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1352,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1352,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1355,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1357,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1358,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1358,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1360,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1369,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1371,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1372,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1372,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1374,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1397,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1398,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1398,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1401,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1403,1
    - Dst: std::unique_ptr::client::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1404,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1405,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1406,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1406,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1408,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1414,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1414,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1415,1
    - Dst: std::unique_ptr::client::is_closed
      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
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1421
      start: 1313
    functionDepth: 1
    functionLinenumber: 1313
    functionLinenumberEnd: 1421
    functionName: Botan_Tests::Test_TLS_RFC8448_Client::client_authentication
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - sort_rfc8448_extensions
    - add_renegotiation_extension
    - std::unique_ptr::client::is_closed
    - std::make_shared<RFC8448_Text_Policy>
    - get_req_u64
    - get_req_bin
    - confirm
    - CHECK
    - std::make_unique<Client_Context>
    - add_entropy
    - require
    - std::unique_ptr::client::close
    - std::move
    - std::unique_ptr::check_callback_invocations
    - std::unique_ptr::client::received_data
    - make_mock_signatures
    - std::make_unique<Fixed_Output_RNG>
    - std::unique_ptr::pull_send_buffer
    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:1424,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1429,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1429,1
    - Dst: add_renegotiation_extension
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1435,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1436,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1443,1
    - Dst: std::make_unique<Client_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1446,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1446,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1447,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1448,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1451,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1451,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1451,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1453,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1464,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1466,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1467,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1468,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1468,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1470,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1472,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1492,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1493,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1495,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1497,1
    - Dst: std::unique_ptr::client::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1497,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1498,1
    - Dst: std::unique_ptr::client::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1498,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1501,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1503,1
    - Dst: std::unique_ptr::client::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1504,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1506,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1507,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1507,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1509,1
    - Dst: std::unique_ptr::client::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1509,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1510,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1510,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1511,1
    - Dst: std::unique_ptr::client::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1511,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1513,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1513,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1515,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1515,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1518
      start: 1423
    functionDepth: 1
    functionLinenumber: 1423
    functionLinenumberEnd: 1518
    functionName: Botan_Tests::Test_TLS_RFC8448_Client::middlebox_compatibility
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - sort_rfc8448_extensions
    - add_renegotiation_extension
    - std::unique_ptr::client::is_closed
    - std::unique_ptr::client::is_handshake_complete
    - std::make_shared<RFC8448_Text_Policy>
    - get_req_u64
    - get_req_bin
    - confirm
    - CHECK
    - std::unique_ptr::client::is_active
    - std::make_unique<Client_Context>
    - add_entropy
    - require
    - std::unique_ptr::client::close
    - std::move
    - std::unique_ptr::check_callback_invocations
    - Botan::concat
    - std::unique_ptr::client::received_data
    - std::make_unique<Fixed_Output_RNG>
    - std::unique_ptr::pull_send_buffer
    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:1521,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1525,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1525,1
    - Dst: sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1533,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1549,1
    - Dst: std::make_unique<Client_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1551,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1552,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1553,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1554,1
    - Dst: ExternalPSK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1557,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1557,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1558,1
    - Dst: lock
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1559,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1559,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1561,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1561,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1562,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1572,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1573,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1573,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1576,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1578,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1579,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1580,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1581,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1587,1
    - Dst: std::unique_ptr::client::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1587,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1588,1
    - Dst: std::unique_ptr::client::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1588,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1591,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1594,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1595,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1595,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1597,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1606,1
    - Dst: std::unique_ptr::psk_identity_negotiated
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1606,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1606,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1607,1
    - Dst: std::unique_ptr::client::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1607,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1608,1
    - Dst: std::unique_ptr::client::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1608,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1610,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1611,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1611,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1614,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1616,1
    - Dst: std::unique_ptr::send
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1617,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1617,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1619,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1621,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1622,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1623,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1626,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1628,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1629,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1629,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1631,1
    - Dst: std::unique_ptr::pull_receive_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1633,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1634,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1634,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1635,1
    - Dst: std::unique_ptr::last_received_seq_no
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1635,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1638,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1640,1
    - Dst: std::unique_ptr::client::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1641,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1643,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1644,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1644,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1645,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1647,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1647,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1648,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1651,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1654
      start: 1520
    functionDepth: 1
    functionLinenumber: 1520
    functionLinenumberEnd: 1654
    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:
    - test_eq
    - std::unique_ptr::client::is_closed
    - std::unique_ptr::send
    - std::unique_ptr::client::is_handshake_complete
    - lock
    - std::make_shared<RFC8448_Text_Policy>
    - get_req_u64
    - get_req_bin
    - confirm
    - CHECK
    - std::unique_ptr::client::is_active
    - std::unique_ptr::last_received_seq_no
    - std::make_unique<Client_Context>
    - ExternalPSK
    - add_entropy
    - require
    - sort_extensions
    - std::unique_ptr::pull_receive_buffer
    - std::unique_ptr::psk_identity_negotiated
    - get_req_str
    - std::unique_ptr::client::close
    - std::move
    - std::unique_ptr::check_callback_invocations
    - std::unique_ptr::client::received_data
    - std::make_unique<Fixed_Output_RNG>
    - std::unique_ptr::pull_send_buffer
    - test_is_eq
    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:1657,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1661,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1661,1
    - Dst: sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1670,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1687,1
    - Dst: std::make_unique<Client_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1689,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1689,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1690,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1691,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1695,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1697,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1707,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1707,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1707,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1710,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1712,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1713,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1713,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1715,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1724,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1726,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1727,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1727,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1729,1
    - Dst: std::unique_ptr::client::peer_raw_public_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1750,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1751,1
    - Dst: auto::fingerprint_public
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1753,1
    - Dst: server_raw_public_key_pair
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1753,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1757,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1758,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1758,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1761,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1763,1
    - Dst: std::unique_ptr::client::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1764,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1765,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1766,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1766,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1768,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1774,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1774,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1775,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1775,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1777,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1781
      start: 1656
    functionDepth: 1
    functionLinenumber: 1656
    functionLinenumberEnd: 1781
    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:
    - test_eq
    - std::unique_ptr::client::is_closed
    - server_raw_public_key_pair
    - std::make_shared<RFC8448_Text_Policy>
    - get_req_u64
    - get_req_bin
    - confirm
    - CHECK
    - std::make_unique<Client_Context>
    - add_entropy
    - require
    - std::unique_ptr::client::peer_raw_public_key
    - sort_extensions
    - std::unique_ptr::client::close
    - std::move
    - std::unique_ptr::check_callback_invocations
    - std::unique_ptr::client::received_data
    - make_mock_signatures
    - auto::fingerprint_public
    - std::make_unique<Fixed_Output_RNG>
    - std::unique_ptr::pull_send_buffer
    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: 1786
      start: 1786
    functionDepth: 0
    functionLinenumber: 1786
    functionLinenumberEnd: 1786
    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:1789,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1794,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1794,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1799,1
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1805,1
    - Dst: EarlyDataIndication::EarlyDataIndication
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1805,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1807,1
    - Dst: std::make_unique<Server_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1810,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1811,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1812,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1813,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1815,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1817,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1817,1
    - Dst: Botan::TLS::Session_Ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1818,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1818,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1819,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1819,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1821,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1821,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1823,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1841,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1843,1
    - Dst: std::unique_ptr::observed_handshake_messages
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1844,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1846,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1847,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1848,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1848,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1849,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1850,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1851,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1851,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1852,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1853,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1854,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1854,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1855,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1856,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1857,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1857,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1859,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1860,1
    - Dst: concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1861,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1861,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1862,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1869,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1869,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1870,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1870,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1873,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1875,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1876,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1876,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1878,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1886,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1888,1
    - Dst: std::unique_ptr::server::send_new_session_tickets
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1889,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1891,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1893,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1902,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1904,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1905,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1906,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1906,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1909,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1911,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1912,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1912,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1913,1
    - Dst: std::unique_ptr::pull_receive_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1915,1
    - Dst: test_eq
      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: test_is_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1917,1
    - Dst: std::unique_ptr::last_received_seq_no
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1917,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1920,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1922,1
    - Dst: std::unique_ptr::send
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1923,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1923,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1925,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1927,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1928,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1929,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1932,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1934,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1935,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1935,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1937,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1940,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1940,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1941,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1941,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1942,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1942,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1945,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1947,1
    - Dst: std::unique_ptr::server::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1948,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1950,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1950,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1951,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1951,1
    - Dst: confirm
      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: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1953,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1954,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1955,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 58
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1958
      start: 1788
    functionDepth: 2
    functionLinenumber: 1788
    functionLinenumberEnd: 1958
    functionName: Botan_Tests::Test_TLS_RFC8448_Server::simple_1_rtt
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - concat
    - sort_rfc8448_extensions
    - TestSession::TestSession
    - std::unique_ptr::server::send_new_session_tickets
    - std::unique_ptr::send
    - std::make_shared<RFC8448_Text_Policy>
    - at
    - std::unique_ptr::server::is_active
    - add
    - std::unique_ptr::server::received_data
    - get_req_u64
    - std::unique_ptr::server::is_closed
    - get_req_bin
    - confirm
    - CHECK
    - std::unique_ptr::last_received_seq_no
    - add_entropy
    - require
    - std::unique_ptr::pull_receive_buffer
    - std::unique_ptr::server::is_handshake_complete
    - std::move
    - get_opt_bin
    - Botan::TLS::Session_Ticket
    - std::unique_ptr::check_callback_invocations
    - std::unique_ptr::observed_handshake_messages
    - make_mock_signatures
    - std::make_unique<Fixed_Output_RNG>
    - std::make_unique<Server_Context>
    - std::unique_ptr::pull_send_buffer
    - test_is_eq
    - EarlyDataIndication::EarlyDataIndication
    - strip_message_header
    - std::unique_ptr::server::close
    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:1961,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1965,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1965,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1970,1
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1976,1
    - Dst: EarlyDataIndication::EarlyDataIndication
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1976,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1978,1
    - Dst: std::make_unique<Server_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1981,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1982,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1983,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1984,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1986,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1988,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1988,1
    - Dst: Botan::TLS::Session_Ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1989,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1989,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1990,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1990,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1992,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1992,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1994,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2011,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2013,1
    - Dst: std::unique_ptr::observed_handshake_messages
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2014,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2016,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2017,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2018,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2018,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2019,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2020,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2021,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2021,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2023,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2024,1
    - Dst: concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2025,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2025,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2026,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2033,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2033,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2034,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2034,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2041
      start: 1960
    functionDepth: 2
    functionLinenumber: 1960
    functionLinenumberEnd: 2041
    functionName: Botan_Tests::Test_TLS_RFC8448_Server::resumed_handshake_with_0_rtt
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - concat
    - sort_rfc8448_extensions
    - TestSession::TestSession
    - std::make_shared<RFC8448_Text_Policy>
    - at
    - std::unique_ptr::server::is_active
    - add
    - std::unique_ptr::server::received_data
    - get_req_u64
    - std::unique_ptr::server::is_closed
    - get_req_bin
    - confirm
    - CHECK
    - add_entropy
    - require
    - std::unique_ptr::server::is_handshake_complete
    - std::move
    - get_opt_bin
    - Botan::TLS::Session_Ticket
    - std::unique_ptr::check_callback_invocations
    - std::unique_ptr::observed_handshake_messages
    - make_mock_signatures
    - std::make_unique<Fixed_Output_RNG>
    - std::make_unique<Server_Context>
    - std::unique_ptr::pull_send_buffer
    - EarlyDataIndication::EarlyDataIndication
    - strip_message_header
    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:2045,1
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2046,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2050,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2050,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2055,1
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2062,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2063,1
    - Dst: Cookie::Cookie
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2063,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2065,1
    - Dst: std::make_unique<Server_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2068,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2068,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2069,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2070,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2072,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2073,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2073,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2075,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2075,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2077,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2086,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2088,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2089,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2090,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2091,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2092,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2092,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2093,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2093,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: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2099,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2099,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2101,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2119,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2121,1
    - Dst: std::unique_ptr::observed_handshake_messages
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2122,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2124,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2125,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2126,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2126,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2127,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2128,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2129,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2129,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2130,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2131,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2132,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2132,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2133,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2134,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2135,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2135,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2136,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2137,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2138,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2138,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2140,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2141,1
    - Dst: concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2142,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2142,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2143,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2144,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2144,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2145,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2146,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2149,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2151,1
    - Dst: std::unique_ptr::server::received_data
      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: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2154,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2161,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2161,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2162,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2162,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2165,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2167,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2168,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2168,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2170,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2173,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2173,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2174,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2174,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2175,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2175,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2178,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2180,1
    - Dst: std::unique_ptr::server::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2181,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2183,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2183,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2184,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2184,1
    - Dst: confirm
      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: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2186,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2187,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 52
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2192
      start: 2043
    functionDepth: 1
    functionLinenumber: 2043
    functionLinenumberEnd: 2192
    functionName: Botan_Tests::Test_TLS_RFC8448_Server::hello_retry_request
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - concat
    - sort_rfc8448_extensions
    - Cookie::Cookie
    - std::make_shared<RFC8448_Text_Policy>
    - std::unique_ptr::server::is_active
    - add
    - std::unique_ptr::server::received_data
    - get_req_u64
    - std::unique_ptr::server::is_closed
    - get_req_bin
    - confirm
    - CHECK
    - Botan_Tests::Test_TLS_RFC8448_Server::rng
    - add_entropy
    - require
    - std::unique_ptr::server::is_handshake_complete
    - std::move
    - get_opt_bin
    - std::unique_ptr::check_callback_invocations
    - std::unique_ptr::observed_handshake_messages
    - make_mock_signatures
    - std::make_unique<Fixed_Output_RNG>
    - std::make_unique<Server_Context>
    - std::unique_ptr::pull_send_buffer
    - at
    - strip_message_header
    - std::unique_ptr::server::close
    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:2195,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2199,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2199,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2204,1
    - Dst: std::make_unique<Server_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2206,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2207,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2208,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2209,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2211,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2213,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2213,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2215,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2215,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2217,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2237,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2239,1
    - Dst: std::unique_ptr::observed_handshake_messages
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2240,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2242,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2243,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2244,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2244,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2245,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2246,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2247,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2247,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2248,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2249,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2250,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2250,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2251,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2252,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2253,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2253,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2254,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2255,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2256,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2256,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2257,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2258,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2259,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2259,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2261,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2262,1
    - Dst: concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2263,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2263,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2264,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2266,1
    - Dst: std::unique_ptr::server::peer_cert_chain
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2266,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2267,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2267,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2268,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2269,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2272,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2274,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2279,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2279,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2281,1
    - Dst: std::unique_ptr::server::peer_cert_chain
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2293,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2294,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2295,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2295,1
    - Dst: client_certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2295,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2297,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2297,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2298,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2298,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2301,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2303,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2304,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2304,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2306,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2309,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2309,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2310,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2310,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2311,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2311,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2314,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2316,1
    - Dst: std::unique_ptr::server::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2317,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2319,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2319,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2320,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2320,1
    - Dst: confirm
      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: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2322,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2323,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 41
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2328
      start: 2194
    functionDepth: 1
    functionLinenumber: 2194
    functionLinenumberEnd: 2328
    functionName: Botan_Tests::Test_TLS_RFC8448_Server::client_authentication
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - concat
    - auto::empty
    - client_certificate
    - std::make_shared<RFC8448_Text_Policy>
    - std::unique_ptr::server::is_active
    - std::unique_ptr::server::received_data
    - get_req_u64
    - std::unique_ptr::server::is_closed
    - get_req_bin
    - confirm
    - CHECK
    - add_entropy
    - require
    - std::unique_ptr::server::is_handshake_complete
    - std::move
    - get_opt_bin
    - auto::front
    - std::unique_ptr::check_callback_invocations
    - std::unique_ptr::observed_handshake_messages
    - std::unique_ptr::server::peer_cert_chain
    - make_mock_signatures
    - std::make_unique<Fixed_Output_RNG>
    - std::make_unique<Server_Context>
    - std::unique_ptr::pull_send_buffer
    - at
    - strip_message_header
    - std::unique_ptr::server::close
    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:2331,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2335,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2335,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2340,1
    - Dst: std::make_unique<Server_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2343,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2343,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2344,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2345,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2347,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2348,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2348,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2350,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2350,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2352,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2370,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2372,1
    - Dst: std::unique_ptr::observed_handshake_messages
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2373,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2375,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2376,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2377,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2377,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2378,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2379,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2380,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2380,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2381,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2382,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2383,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2383,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2384,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2385,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2386,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2386,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2387,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2388,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2389,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2389,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2392,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2393,1
    - Dst: concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2394,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2394,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2395,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2397,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2397,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2398,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2399,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2402,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2404,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2405,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2405,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2407,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2414,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2414,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2415,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2415,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2418,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2420,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2421,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2421,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2423,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2426,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2426,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2427,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2427,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2428,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2428,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2431,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2433,1
    - Dst: std::unique_ptr::server::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2434,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2436,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2436,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2437,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2437,1
    - Dst: confirm
      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: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2439,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2440,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2445
      start: 2330
    functionDepth: 1
    functionLinenumber: 2330
    functionLinenumberEnd: 2445
    functionName: Botan_Tests::Test_TLS_RFC8448_Server::middlebox_compatibility
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - concat
    - std::make_shared<RFC8448_Text_Policy>
    - std::unique_ptr::server::is_active
    - std::unique_ptr::server::received_data
    - get_req_u64
    - std::unique_ptr::server::is_closed
    - get_req_bin
    - confirm
    - CHECK
    - add_entropy
    - require
    - std::unique_ptr::server::is_handshake_complete
    - std::move
    - get_opt_bin
    - std::unique_ptr::check_callback_invocations
    - std::unique_ptr::observed_handshake_messages
    - make_mock_signatures
    - std::make_unique<Fixed_Output_RNG>
    - std::make_unique<Server_Context>
    - std::unique_ptr::pull_send_buffer
    - at
    - strip_message_header
    - std::unique_ptr::server::close
    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:2448,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2452,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2452,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2457,1
    - Dst: sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2466,1
    - Dst: sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2473,1
    - Dst: std::make_unique<Server_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2482,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2483,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2484,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2485,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2487,1
    - Dst: ExternalPSK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2490,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2490,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2491,1
    - Dst: lock
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2492,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2492,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2493,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2493,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2495,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2495,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2497,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2511,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2513,1
    - Dst: std::unique_ptr::observed_handshake_messages
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2514,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2516,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2517,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2518,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2518,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2519,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2520,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2521,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2521,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2522,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2523,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2524,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2524,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2526,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2527,1
    - Dst: concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2528,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2528,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2529,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2531,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2531,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2532,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2533,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2536,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2538,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2539,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2539,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2540,1
    - Dst: std::unique_ptr::psk_identity_negotiated
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2541,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2541,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2543,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2551,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2553,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2554,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2554,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2555,1
    - Dst: std::unique_ptr::pull_receive_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2557,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2558,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2558,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2559,1
    - Dst: std::unique_ptr::last_received_seq_no
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2559,1
    - Dst: std::unique_ptr::send
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2561,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2561,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2562,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2563,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2564,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2565,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2568,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2570,1
    - Dst: std::unique_ptr::server::received_data
      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:2573,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2576,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2576,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2577,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2577,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2578,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2578,1
    - Dst: std::unique_ptr::server::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2580,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2582,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2582,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2583,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2583,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2584,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2584,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2585,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2586,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2587,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 49
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2590
      start: 2447
    functionDepth: 1
    functionLinenumber: 2447
    functionLinenumberEnd: 2590
    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:
    - test_eq
    - concat
    - std::unique_ptr::send
    - lock
    - std::make_shared<RFC8448_Text_Policy>
    - std::unique_ptr::server::is_active
    - std::unique_ptr::server::received_data
    - get_req_u64
    - std::unique_ptr::server::is_closed
    - get_req_bin
    - confirm
    - CHECK
    - std::unique_ptr::last_received_seq_no
    - ExternalPSK
    - add_entropy
    - require
    - sort_extensions
    - std::unique_ptr::pull_receive_buffer
    - std::unique_ptr::server::is_handshake_complete
    - std::unique_ptr::psk_identity_negotiated
    - get_req_str
    - std::move
    - get_opt_bin
    - std::unique_ptr::check_callback_invocations
    - std::unique_ptr::observed_handshake_messages
    - make_mock_signatures
    - std::make_unique<Fixed_Output_RNG>
    - std::make_unique<Server_Context>
    - std::unique_ptr::pull_send_buffer
    - test_is_eq
    - at
    - strip_message_header
    - std::unique_ptr::server::close
    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:2593,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2597,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2597,1
    - Dst: sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2606,1
    - Dst: sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2615,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2626,1
    - Dst: std::make_unique<Server_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2628,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2628,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2629,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2630,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2632,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2633,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2633,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2635,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2635,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2637,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2657,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2659,1
    - Dst: std::unique_ptr::observed_handshake_messages
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2660,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2662,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2663,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2664,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2664,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2665,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2666,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2667,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2667,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2668,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2669,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2670,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2670,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2671,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2672,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2673,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2673,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2674,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2675,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2676,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2676,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2677,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2678,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2679,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2679,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2681,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2682,1
    - Dst: concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2683,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2683,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2684,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2686,1
    - Dst: std::unique_ptr::server::peer_cert_chain
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2686,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2687,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2687,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2688,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2689,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2692,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2694,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2699,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2699,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2701,1
    - Dst: std::unique_ptr::server::peer_raw_public_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2713,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2714,1
    - Dst: auto::fingerprint_public
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2716,1
    - Dst: client_raw_public_key_pair
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2716,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2718,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2718,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2719,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2719,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2722,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2724,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2725,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2725,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2727,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2730,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2730,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2731,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2731,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2732,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2732,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2735,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2737,1
    - Dst: std::unique_ptr::server::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2738,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2740,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2740,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2741,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2741,1
    - Dst: confirm
      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: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2743,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2744,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2745,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 48
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2748
      start: 2592
    functionDepth: 1
    functionLinenumber: 2592
    functionLinenumberEnd: 2748
    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:
    - test_eq
    - concat
    - client_raw_public_key_pair
    - std::make_shared<RFC8448_Text_Policy>
    - std::unique_ptr::server::is_active
    - std::unique_ptr::server::received_data
    - get_req_u64
    - std::unique_ptr::server::is_closed
    - get_req_bin
    - confirm
    - CHECK
    - add_entropy
    - require
    - sort_extensions
    - std::unique_ptr::server::is_handshake_complete
    - std::move
    - get_opt_bin
    - std::unique_ptr::check_callback_invocations
    - std::unique_ptr::observed_handshake_messages
    - std::unique_ptr::server::peer_cert_chain
    - make_mock_signatures
    - auto::fingerprint_public
    - std::make_unique<Fixed_Output_RNG>
    - std::make_unique<Server_Context>
    - std::unique_ptr::server::peer_raw_public_key
    - std::unique_ptr::pull_send_buffer
    - at
    - strip_message_header
    - std::unique_ptr::server::close
    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:48,1
    - Dst: data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:48,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:48,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: 49
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: Botan_Tests::add_entropy
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 3
    functionsReached:
    - size
    - data
    - Botan_Tests::add_entropy
    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:54,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 56
    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:64,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 66
    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: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: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 73
    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:77,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 79
    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:83,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 85
    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:95,1
    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_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:98,1
    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::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: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    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:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 104
    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) const 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::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:119,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:119,1
    - Dst: std::chrono::system_clock::from_time_t
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:120,1
    - Dst: static_cast<time_t>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:120,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - msecs
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 122
    functionName: Botan_Tests::from_milliseconds_since_epoch
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan_Tests::random_bit_generator::max
    - Botan_CLI::Timer::milliseconds
    - static_cast<time_t>
    - std::chrono::system_clock::from_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:150,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:151,1
    - Dst: from_milliseconds_since_epoch
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:152,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: 152
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 152
    functionName: Botan_Tests::Test_TLS_13_Callbacks::Test_TLS_13_Callbacks
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - from_milliseconds_since_epoch
    - std::move
    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:155,1
    - Dst: insert
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:156,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:156,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:156,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_emit_data
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    - insert
    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:160,1
    - Dst: insert
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:162,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:162,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:162,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:162,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: 163
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 163
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_record_received
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    - insert
    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:166,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 169
    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:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 175
    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:178,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' summary'
    argTypes:
    - Botan::TLS::Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 182
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_session_established
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - external_psk_identity
    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:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 187
    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:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 192
    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&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' cert_chain'
    argTypes:
    - std::vector<Botan::X509_Certificate>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 202
    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>>&,\n
      \                                const std::vector<Botan::Certificate_Store*>&,\n
      \                                Botan::Usage_Type,\n                                 std::string_view,\n
      \                                const Botan::TLS::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:208,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:210,1
    - Dst: subject_public_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' raw_pk'
    argTypes:
    - Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 211
    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_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - Botan::X509::load_key
    - subject_public_key
    linkageType: ''
    returnType: void
    signature: "void tls_verify_raw_public_key(const Public_Key& raw_pk,\n                                     Usage_Type,\n
      \                                    std::string_view,\n                                     const
      TLS::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:214,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 216
    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_CLI::Timer::milliseconds
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    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:220,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::tls_provide_cert_status
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:221,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: 222
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 222
    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:229,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:230,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:232,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:234,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:238,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:238,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:240,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:242,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:246,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:246,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:249,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:249,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:258,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:258,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: 259
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 259
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_sign_message
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - Test_Error
    - Botan::hex_encode
    - std::string
    - algo_name
    - BOTAN_UNUSED
    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:266,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::tls_verify_message
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:267,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: 268
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 268
    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::count_callback_invocation
    - Botan_Tests::Test_TLS_13_Callbacks::tls_verify_message
    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:272,1
    - Dst: Callbacks::tls_generate_ephemeral_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:273,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: 274
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 274
    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:281,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_ephemeral_key_agreement
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:282,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: 283
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 283
    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:286,1
    - Dst: type_string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:286,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:289,1
    - Dst: try_emplace
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:291,1
    - Dst: type_string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:291,1
    - Dst: second::emplace_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:291,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:292,1
    - Dst: PeerCallbacks::tls_inspect_handshake_msg
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - Handshake_Message
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 285
    functionDepth: 2
    functionLinenumber: 285
    functionLinenumberEnd: 300
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_inspect_handshake_msg
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - std::move
    - second::emplace_back
    - try_emplace
    - PeerCallbacks::tls_inspect_handshake_msg
    - type_string
    - serialize
    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:303,1
    - Dst: Fuzzer_TLS_Server_Callbacks::tls_server_choose_app_protocol
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' client_protos'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 305
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_server_choose_app_protocol
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - Fuzzer_TLS_Server_Callbacks::tls_server_choose_app_protocol
    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:310,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:310,1
    - Dst: handshake_type_to_string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:310,1
    - Dst: m_modify_exts
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:311,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_modify_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:312,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: 313
      start: 307
    functionDepth: 2
    functionLinenumber: 307
    functionLinenumberEnd: 313
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_modify_extensions
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - m_modify_exts
    - std::string
    - handshake_type_to_string
    - Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_modify_extensions
    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:318,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:318,1
    - Dst: handshake_type_to_string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:318,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_examine_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:319,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: 320
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 320
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_examine_extensions
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - handshake_type_to_string
    - std::string
    - 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:323,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::tls_peer_network_identity
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 325
    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::count_callback_invocation
    - Botan_Tests::Test_TLS_13_Callbacks::tls_peer_network_identity
    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:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 330
    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:332,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:332,1
    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_Tests::Test_TLS_13_Callbacks::pull_send_buffer
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::exchange
    - std::vector<uint8_t>
    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:334,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:334,1
    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_Tests::Test_TLS_13_Callbacks::pull_receive_buffer
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::exchange
    - std::vector<uint8_t>
    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: 336
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 336
    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: 338
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 338
    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:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 340
    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:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' callback_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 349
    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:374,1
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:375,1
    - Dst: reset
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:376,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:376,1
    - Dst: Botan_Tests::Test::new_rng
      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: create_private_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:383,1
    - Dst: reset
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:385,1
    - Dst: create_private_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:385,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: 386
      start: 372
    functionDepth: 2
    functionLinenumber: 372
    functionLinenumberEnd: 386
    functionName: Botan_Tests::Test_Credentials::Test_Credentials
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::read_data_file
    - std::move
    - Botan::PKCS8::load_key
    - Botan_Tests::Test::new_rng
    - reset
    - create_private_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:392,1
    - Dst: client_certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:394,1
    - Dst: alternative_server_certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:396,1
    - Dst: server_certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:398,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: 400
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 400
    functionName: Botan_Tests::Test_Credentials::cert_chain
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    - client_certificate
    - server_certificate
    - alternative_server_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:405,1
    - Dst: client_raw_public_key_pair
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:406,1
    - Dst: server_raw_public_key_pair
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:407,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: 408
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 408
    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:413,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: 424
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 424
    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:429,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:431,1
    - Dst: client_raw_public_key_pair
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:431,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:432,1
    - Dst: server_raw_public_key_pair
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:432,1
    - Dst: fingerprint_public
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:434,1
    - Dst: fingerprint_public
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:434,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:435,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: 439
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 439
    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
    - server_raw_public_key_pair
    - client_raw_public_key_pair
    - BOTAN_UNUSED
    - fingerprint_public
    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:445,1
    - Dst: value
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:449,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:450,1
    - Dst: begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:450,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:450,1
    - Dst: identity
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:450,1
    - Dst: empty
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:451,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:451,1
    - Dst: prf_algo
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:455,1
    - Dst: extract_master_secret
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:461,1
    - Dst: ExternalPSK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:462,1
    - Dst: identity
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:462,1
    - Dst: prf_algo
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:462,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:464,1
    - Dst: identity
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:464,1
    - Dst: prf_algo
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:464,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: 466
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 466
    functionName: Botan_Tests::Test_Credentials::find_preshared_keys
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - begin
    - ExternalPSK
    - std::vector::emplace_back
    - prf_algo
    - identity
    - empty
    - extract_master_secret
    - end
    - std::find
    - has_value
    - value
    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:479,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:481,1
    - Dst: std::ifstream::good
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:482,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:483,1
    - Dst: Botan_Tests::RFC8448_Text_Policy::RFC8448_Text_Policy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:486,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' policy_file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 478
    functionDepth: 3
    functionLinenumber: 478
    functionLinenumberEnd: 487
    functionName: Botan_Tests::RFC8448_Text_Policy::read_policy
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::RFC8448_Text_Policy::RFC8448_Text_Policy
    - Test_Error
    - std::ifstream::good
    - Botan_Tests::Test::data_file
    - std::string::c_str
    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:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' policy_file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 490
    functionDepth: 2
    functionLinenumber: 490
    functionLinenumberEnd: 491
    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:495,1
    - Dst: Botan::TLS::Signature_Scheme::Signature_Scheme
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:514,1
    - Dst: Botan::TLS::Signature_Scheme::Signature_Scheme
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:515,1
    - Dst: Botan::TLS::Signature_Scheme::Signature_Scheme
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:516,1
    - Dst: Botan::TLS::Signature_Scheme::Signature_Scheme
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 519
    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:526,1
    - Dst: key_exchange_groups
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:528,1
    - Dst: std::find_if
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:530,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:530,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:530,1
    - Dst: value_exists
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:531,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:534,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: 535
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 535
    functionName: Botan_Tests::RFC8448_Text_Policy::choose_key_exchange_group
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - auto::end
    - BOTAN_UNUSED
    - key_exchange_groups
    - auto::begin
    - std::find_if
    - value_exists
    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:550,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:550,1
    - Dst: handle::id
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:551,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:551,1
    - Dst: handle::ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:554,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:554,1
    - Dst: handle::ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:555,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:555,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 560
    functionName: Botan_Tests::RFC8448_Session_Manager::find_by_handle
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 4
    functionsReached:
    - ticket
    - handle::ticket
    - id
    - handle::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:563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 563
    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: 565
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 565
    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:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' session'
    - ' handle'
    argTypes:
    - Session
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 569
    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:576,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:577,1
    - Dst: front
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:580,1
    - Dst: master_secret
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:581,1
    - Dst: master_secret
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:581,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:582,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 586
    functionName: Botan_Tests::RFC8448_Session_Manager::establish
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - master_secret
    - size
    - front
    - Test_Error
    linkageType: ''
    returnType: std::optional<Session_Handle>
    signature: std::optional<Session_Handle> establish(const Session& session, const
      std::optional<Session_ID>&, bool) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:589,1
    - Dst: begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:589,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:589,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::find_by_handle
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:589,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:590,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 588
    functionDepth: 2
    functionLinenumber: 588
    functionLinenumberEnd: 595
    functionName: Botan_Tests::RFC8448_Session_Manager::retrieve_one
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 8
    functionsReached:
    - begin
    - std::find_if
    - end
    - Botan_Tests::RFC8448_Session_Manager::find_by_handle
    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:600,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:601,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' info'
    argTypes:
    - Server_Information
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 606
    functionName: Botan_Tests::RFC8448_Session_Manager::find_some
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::vector::emplace_back
    - server_info
    linkageType: ''
    returnType: std::vector<Session_with_Handle>
    signature: std::vector<Session_with_Handle> find_some(const Server_Information&
      info, const size_t) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::erase_if
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:608,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::find_by_handle
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 608
    functionDepth: 2
    functionLinenumber: 608
    functionLinenumberEnd: 608
    functionName: Botan_Tests::RFC8448_Session_Manager::remove
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 8
    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:611,1
    - Dst: clear
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 614
    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:636,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:637,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:637,1
    - Dst: std::make_shared<Test_Credentials>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:638,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:638,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:639,1
    - Dst: std::make_shared<RFC8448_Session_Manager>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:640,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:641,1
    - Dst: std::optional<std::pair<Session, Session_Ticket>>::has_value
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:642,1
    - Dst: store
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:643,1
    - Dst: std::get<Session>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:643,1
    - Dst: std::optional<std::pair<Session, Session_Ticket>>::value
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:643,1
    - Dst: Botan::TLS::Session_Handle
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:644,1
    - Dst: std::get<Session_Ticket>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:644,1
    - Dst: std::optional<std::pair<Session, Session_Ticket>>::value
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:644,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: 646
      start: 628
    functionDepth: 1
    functionLinenumber: 628
    functionLinenumberEnd: 646
    functionName: Botan_Tests::TLS_Context::TLS_Context
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::get<Session>
    - std::make_shared<Test_TLS_13_Callbacks>
    - store
    - Botan::TLS::Session_Handle
    - std::make_shared<RFC8448_Session_Manager>
    - std::get<Session_Ticket>
    - std::optional<std::pair<Session, Session_Ticket>>::value
    - std::optional<std::pair<Session, Session_Ticket>>::has_value
    - std::make_shared<Test_Credentials>
    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: 649
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 649
    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: 651
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 651
    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: 652
      start: 652
    functionDepth: 0
    functionLinenumber: 652
    functionLinenumberEnd: 652
    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: 654
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 654
    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: 655
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 655
    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:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 657
    functionDepth: 1
    functionLinenumber: 657
    functionLinenumberEnd: 657
    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:659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 659
    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:661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 661
    functionDepth: 1
    functionLinenumber: 661
    functionLinenumberEnd: 661
    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:671,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:673,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:673,1
    - Dst: contains
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:674,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:674,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:681,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:683,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:683,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:683,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:683,1
    - Dst: reset_callback_invocation_counters
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:686,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: 687
      start: 668
    functionDepth: 1
    functionLinenumber: 668
    functionLinenumberEnd: 687
    functionName: Botan_Tests::TLS_Context::check_callback_invocations
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - at
    - cend
    - reset_callback_invocation_counters
    - callback_invocations
    - cbegin
    - contains
    - std::find
    - confirm
    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:689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 689
    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: 691
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 691
    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: 693
      start: 693
    functionDepth: 0
    functionLinenumber: 693
    functionLinenumberEnd: 693
    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: 695
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 695
    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:720,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:721,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:722,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:723,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:725,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:726,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:733,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: 734
      start: 713
    functionDepth: 1
    functionLinenumber: 713
    functionLinenumberEnd: 734
    functionName: Botan_Tests::Client_Context::Client_Context
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Server_Information
    - std::move
    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:736,1
    - Dst: data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:736,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 736
    functionDepth: 1
    functionLinenumber: 736
    functionLinenumberEnd: 736
    functionName: Botan_Tests::Client_Context::send
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 3
    functionsReached:
    - size
    - Botan_Tests::Client_Context::send
    - 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:751,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:752,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:753,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:754,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:756,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:757,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: 759
      start: 743
    functionDepth: 0
    functionLinenumber: 743
    functionLinenumberEnd: 759
    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:761,1
    - Dst: data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:761,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 761
    functionDepth: 1
    functionLinenumber: 761
    functionLinenumberEnd: 761
    functionName: Botan_Tests::Server_Context::send
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::Server_Context::send
    - size
    - data
    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:768,1
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:770,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:770,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: 773
      start: 766
    functionDepth: 1
    functionLinenumber: 766
    functionLinenumberEnd: 773
    functionName: Botan_Tests::sort_extensions
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 2
    functionsReached:
    - add
    - take
    - std::move
    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:783,1
    - Dst: Botan_Tests::Padding::static_type
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:796,1
    - Dst: Botan_Tests::sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:800,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: 812
      start: 779
    functionDepth: 2
    functionLinenumber: 779
    functionLinenumberEnd: 812
    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 = Botan::TLS::Handshake_Type::ClientHello)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:817,1
    - Dst: Renegotiation_Extension::Renegotiation_Extension
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:817,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' exts'
    argTypes:
    - Botan::TLS::Extensions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 814
    functionDepth: 1
    functionLinenumber: 814
    functionLinenumberEnd: 818
    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:821,1
    - Dst: Botan::TLS::EarlyDataIndication::EarlyDataIndication
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' exts'
    argTypes:
    - Botan::TLS::Extensions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 820
    functionDepth: 1
    functionLinenumber: 820
    functionLinenumberEnd: 822
    functionName: Botan_Tests::add_early_data_indication
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - add
    - Botan::TLS::EarlyDataIndication::EarlyDataIndication
    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:825,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:825,1
    - Dst: begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:826,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 824
    functionDepth: 1
    functionLinenumber: 824
    functionLinenumberEnd: 827
    functionName: Botan_Tests::strip_message_header
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - begin
    - size
    - end
    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:833,1
    - Dst: has_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:833,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:834,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:834,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:834,1
    - Dst: mock
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:838,1
    - Dst: mock
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:839,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 829
    functionDepth: 0
    functionLinenumber: 829
    functionLinenumberEnd: 842
    functionName: Botan_Tests::make_mock_signatures
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - mock
    - has_key
    - std::vector::push_back
    - get_opt_bin
    linkageType: ''
    returnType: std::vector<MockSignature>
    signature: std::vector<MockSignature> make_mock_signatures(const VarMap& vars)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:48,1
    - Dst: data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:48,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:48,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: 49
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: Botan_Tests::add_entropy
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 4
    functionsReached:
    - size
    - data
    - Botan_Tests::add_entropy
    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:54,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 56
    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:64,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 66
    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: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: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 73
    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:77,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 79
    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:83,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 85
    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:95,1
    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_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:98,1
    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::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: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    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:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 104
    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) const 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::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:119,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:119,1
    - Dst: std::chrono::system_clock::from_time_t
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:120,1
    - Dst: static_cast<time_t>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:120,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - msecs
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 122
    functionName: Botan_Tests::from_milliseconds_since_epoch
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan_Tests::random_bit_generator::max
    - Botan_CLI::Timer::milliseconds
    - static_cast<time_t>
    - std::chrono::system_clock::from_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:150,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:151,1
    - Dst: from_milliseconds_since_epoch
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:152,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: 152
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 152
    functionName: Botan_Tests::Test_TLS_13_Callbacks::Test_TLS_13_Callbacks
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - from_milliseconds_since_epoch
    - std::move
    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:155,1
    - Dst: insert
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:156,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:156,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:156,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_emit_data
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    - insert
    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:160,1
    - Dst: insert
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:162,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:162,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:162,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:162,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: 163
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 163
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_record_received
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    - insert
    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:166,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 169
    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:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 175
    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:178,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' summary'
    argTypes:
    - Botan::TLS::Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 182
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_session_established
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - external_psk_identity
    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:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 187
    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:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 192
    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&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' cert_chain'
    argTypes:
    - std::vector<Botan::X509_Certificate>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 202
    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>>&,\n
      \                                const std::vector<Botan::Certificate_Store*>&,\n
      \                                Botan::Usage_Type,\n                                 std::string_view,\n
      \                                const Botan::TLS::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:208,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:210,1
    - Dst: subject_public_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' raw_pk'
    argTypes:
    - Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 211
    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_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - Botan::X509::load_key
    - subject_public_key
    linkageType: ''
    returnType: void
    signature: "void tls_verify_raw_public_key(const Public_Key& raw_pk,\n                                     Usage_Type,\n
      \                                    std::string_view,\n                                     const
      TLS::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:214,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 216
    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_CLI::Timer::milliseconds
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    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:220,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::tls_provide_cert_status
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:221,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: 222
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 222
    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:229,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:230,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:232,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:234,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:238,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:238,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:240,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:242,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:246,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:246,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:249,1
    - Dst: algo_name
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:249,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:258,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:258,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: 259
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 259
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_sign_message
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - Test_Error
    - Botan::hex_encode
    - std::string
    - algo_name
    - BOTAN_UNUSED
    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:266,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::tls_verify_message
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:267,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: 268
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 268
    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::count_callback_invocation
    - Botan_Tests::Test_TLS_13_Callbacks::tls_verify_message
    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:272,1
    - Dst: Callbacks::tls_generate_ephemeral_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:273,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: 274
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 274
    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:281,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_ephemeral_key_agreement
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:282,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: 283
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 283
    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:286,1
    - Dst: type_string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:286,1
    - Dst: serialize
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:289,1
    - Dst: try_emplace
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:291,1
    - Dst: type_string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:291,1
    - Dst: second::emplace_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:291,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:292,1
    - Dst: PeerCallbacks::tls_inspect_handshake_msg
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - Handshake_Message
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 285
    functionDepth: 2
    functionLinenumber: 285
    functionLinenumberEnd: 300
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_inspect_handshake_msg
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - std::move
    - second::emplace_back
    - try_emplace
    - PeerCallbacks::tls_inspect_handshake_msg
    - type_string
    - serialize
    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:303,1
    - Dst: Fuzzer_TLS_Server_Callbacks::tls_server_choose_app_protocol
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' client_protos'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 305
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_server_choose_app_protocol
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - Fuzzer_TLS_Server_Callbacks::tls_server_choose_app_protocol
    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:310,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:310,1
    - Dst: handshake_type_to_string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:310,1
    - Dst: m_modify_exts
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:311,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_modify_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:312,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: 313
      start: 307
    functionDepth: 2
    functionLinenumber: 307
    functionLinenumberEnd: 313
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_modify_extensions
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - m_modify_exts
    - std::string
    - handshake_type_to_string
    - Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_modify_extensions
    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:318,1
    - Dst: std::string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:318,1
    - Dst: handshake_type_to_string
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:318,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Callbacks::tls_examine_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:319,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: 320
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 320
    functionName: Botan_Tests::Test_TLS_13_Callbacks::tls_examine_extensions
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test_TLS_13_Callbacks::count_callback_invocation
    - handshake_type_to_string
    - std::string
    - 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:323,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::tls_peer_network_identity
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 325
    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::count_callback_invocation
    - Botan_Tests::Test_TLS_13_Callbacks::tls_peer_network_identity
    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:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 330
    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:332,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:332,1
    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_Tests::Test_TLS_13_Callbacks::pull_send_buffer
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::exchange
    - std::vector<uint8_t>
    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:334,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:334,1
    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_Tests::Test_TLS_13_Callbacks::pull_receive_buffer
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::exchange
    - std::vector<uint8_t>
    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: 336
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 336
    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: 338
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 338
    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:340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 340
    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:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' callback_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 349
    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:374,1
    - Dst: Botan_Tests::Test::read_data_file
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:375,1
    - Dst: reset
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:376,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:376,1
    - Dst: Botan_Tests::Test::new_rng
      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: create_private_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:383,1
    - Dst: reset
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:385,1
    - Dst: create_private_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:385,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: 386
      start: 372
    functionDepth: 2
    functionLinenumber: 372
    functionLinenumberEnd: 386
    functionName: Botan_Tests::Test_Credentials::Test_Credentials
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Test::read_data_file
    - std::move
    - Botan::PKCS8::load_key
    - Botan_Tests::Test::new_rng
    - reset
    - create_private_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:392,1
    - Dst: client_certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:394,1
    - Dst: alternative_server_certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:396,1
    - Dst: server_certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:398,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: 400
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 400
    functionName: Botan_Tests::Test_Credentials::cert_chain
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    - client_certificate
    - server_certificate
    - alternative_server_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:405,1
    - Dst: client_raw_public_key_pair
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:406,1
    - Dst: server_raw_public_key_pair
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:407,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: 408
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 408
    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:413,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: 424
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 424
    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:429,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:431,1
    - Dst: client_raw_public_key_pair
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:431,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:432,1
    - Dst: server_raw_public_key_pair
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:432,1
    - Dst: fingerprint_public
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:434,1
    - Dst: fingerprint_public
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:434,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:435,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: 439
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 439
    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
    - server_raw_public_key_pair
    - client_raw_public_key_pair
    - BOTAN_UNUSED
    - fingerprint_public
    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:445,1
    - Dst: value
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:449,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:450,1
    - Dst: begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:450,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:450,1
    - Dst: identity
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:450,1
    - Dst: empty
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:451,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:451,1
    - Dst: prf_algo
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:455,1
    - Dst: extract_master_secret
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:461,1
    - Dst: ExternalPSK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:462,1
    - Dst: identity
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:462,1
    - Dst: prf_algo
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:462,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:464,1
    - Dst: identity
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:464,1
    - Dst: prf_algo
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:464,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: 466
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 466
    functionName: Botan_Tests::Test_Credentials::find_preshared_keys
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - begin
    - ExternalPSK
    - std::vector::emplace_back
    - prf_algo
    - identity
    - empty
    - extract_master_secret
    - end
    - std::find
    - has_value
    - value
    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:479,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:481,1
    - Dst: std::ifstream::good
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:482,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:483,1
    - Dst: Botan_Tests::RFC8448_Text_Policy::RFC8448_Text_Policy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:486,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' policy_file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 478
    functionDepth: 3
    functionLinenumber: 478
    functionLinenumberEnd: 487
    functionName: Botan_Tests::RFC8448_Text_Policy::read_policy
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::RFC8448_Text_Policy::RFC8448_Text_Policy
    - Test_Error
    - std::ifstream::good
    - Botan_Tests::Test::data_file
    - std::string::c_str
    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:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' policy_file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 491
      start: 490
    functionDepth: 2
    functionLinenumber: 490
    functionLinenumberEnd: 491
    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:495,1
    - Dst: Botan::TLS::Signature_Scheme::Signature_Scheme
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:514,1
    - Dst: Botan::TLS::Signature_Scheme::Signature_Scheme
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:515,1
    - Dst: Botan::TLS::Signature_Scheme::Signature_Scheme
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:516,1
    - Dst: Botan::TLS::Signature_Scheme::Signature_Scheme
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 519
    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:526,1
    - Dst: key_exchange_groups
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:528,1
    - Dst: std::find_if
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:530,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:530,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:530,1
    - Dst: value_exists
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:531,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:534,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: 535
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 535
    functionName: Botan_Tests::RFC8448_Text_Policy::choose_key_exchange_group
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - auto::end
    - BOTAN_UNUSED
    - key_exchange_groups
    - auto::begin
    - std::find_if
    - value_exists
    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:550,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:550,1
    - Dst: handle::id
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:551,1
    - Dst: id
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:551,1
    - Dst: handle::ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:554,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:554,1
    - Dst: handle::ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:555,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:555,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 560
    functionName: Botan_Tests::RFC8448_Session_Manager::find_by_handle
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 6
    functionsReached:
    - ticket
    - handle::ticket
    - id
    - handle::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:563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 563
    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: 565
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 565
    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:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' session'
    - ' handle'
    argTypes:
    - Session
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 569
    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:576,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:577,1
    - Dst: front
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:580,1
    - Dst: master_secret
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:581,1
    - Dst: master_secret
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:581,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:582,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 586
    functionName: Botan_Tests::RFC8448_Session_Manager::establish
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - master_secret
    - size
    - front
    - Test_Error
    linkageType: ''
    returnType: std::optional<Session_Handle>
    signature: std::optional<Session_Handle> establish(const Session& session, const
      std::optional<Session_ID>&, bool) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find_if
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:589,1
    - Dst: begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:589,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:589,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::find_by_handle
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:589,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:590,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 588
    functionDepth: 2
    functionLinenumber: 588
    functionLinenumberEnd: 595
    functionName: Botan_Tests::RFC8448_Session_Manager::retrieve_one
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 8
    functionsReached:
    - begin
    - std::find_if
    - end
    - Botan_Tests::RFC8448_Session_Manager::find_by_handle
    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:600,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:601,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' info'
    argTypes:
    - Server_Information
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 597
    functionDepth: 1
    functionLinenumber: 597
    functionLinenumberEnd: 606
    functionName: Botan_Tests::RFC8448_Session_Manager::find_some
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::vector::emplace_back
    - server_info
    linkageType: ''
    returnType: std::vector<Session_with_Handle>
    signature: std::vector<Session_with_Handle> find_some(const Server_Information&
      info, const size_t) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::erase_if
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:608,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::find_by_handle
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 608
    functionDepth: 2
    functionLinenumber: 608
    functionLinenumberEnd: 608
    functionName: Botan_Tests::RFC8448_Session_Manager::remove
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 8
    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:611,1
    - Dst: clear
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 614
    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:636,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:637,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:637,1
    - Dst: std::make_shared<Test_Credentials>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:638,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:638,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:639,1
    - Dst: std::make_shared<RFC8448_Session_Manager>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:640,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:641,1
    - Dst: std::optional<std::pair<Session, Session_Ticket>>::has_value
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:642,1
    - Dst: store
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:643,1
    - Dst: std::get<Session>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:643,1
    - Dst: std::optional<std::pair<Session, Session_Ticket>>::value
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:643,1
    - Dst: Botan::TLS::Session_Handle
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:644,1
    - Dst: std::get<Session_Ticket>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:644,1
    - Dst: std::optional<std::pair<Session, Session_Ticket>>::value
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:644,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: 646
      start: 628
    functionDepth: 1
    functionLinenumber: 628
    functionLinenumberEnd: 646
    functionName: Botan_Tests::TLS_Context::TLS_Context
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::get<Session>
    - std::make_shared<Test_TLS_13_Callbacks>
    - store
    - Botan::TLS::Session_Handle
    - std::make_shared<RFC8448_Session_Manager>
    - std::get<Session_Ticket>
    - std::optional<std::pair<Session, Session_Ticket>>::value
    - std::optional<std::pair<Session, Session_Ticket>>::has_value
    - std::make_shared<Test_Credentials>
    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: 649
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 649
    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: 651
      start: 651
    functionDepth: 0
    functionLinenumber: 651
    functionLinenumberEnd: 651
    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: 652
      start: 652
    functionDepth: 0
    functionLinenumber: 652
    functionLinenumberEnd: 652
    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: 654
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 654
    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: 655
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 655
    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:657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 657
    functionDepth: 1
    functionLinenumber: 657
    functionLinenumberEnd: 657
    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:659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 659
    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:661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 661
    functionDepth: 1
    functionLinenumber: 661
    functionLinenumberEnd: 661
    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:671,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:673,1
    - Dst: Botan::fmt
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:673,1
    - Dst: contains
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:674,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:674,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:681,1
    - Dst: std::find
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:683,1
    - Dst: cbegin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:683,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:683,1
    - Dst: cend
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:683,1
    - Dst: reset_callback_invocation_counters
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:686,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: 687
      start: 668
    functionDepth: 1
    functionLinenumber: 668
    functionLinenumberEnd: 687
    functionName: Botan_Tests::TLS_Context::check_callback_invocations
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - at
    - cend
    - reset_callback_invocation_counters
    - callback_invocations
    - cbegin
    - contains
    - std::find
    - confirm
    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:689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 689
    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: 691
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 691
    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: 693
      start: 693
    functionDepth: 0
    functionLinenumber: 693
    functionLinenumberEnd: 693
    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: 695
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 695
    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:720,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:721,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:722,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:723,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:725,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:726,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:733,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: 734
      start: 713
    functionDepth: 1
    functionLinenumber: 713
    functionLinenumberEnd: 734
    functionName: Botan_Tests::Client_Context::Client_Context
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Server_Information
    - std::move
    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:736,1
    - Dst: data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:736,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 736
    functionDepth: 1
    functionLinenumber: 736
    functionLinenumberEnd: 736
    functionName: Botan_Tests::Client_Context::send
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 4
    functionsReached:
    - size
    - Botan_Tests::Client_Context::send
    - 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:751,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:752,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:753,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:754,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:756,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:757,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: 759
      start: 743
    functionDepth: 0
    functionLinenumber: 743
    functionLinenumberEnd: 759
    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:761,1
    - Dst: data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:761,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 761
    functionDepth: 1
    functionLinenumber: 761
    functionLinenumberEnd: 761
    functionName: Botan_Tests::Server_Context::send
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 4
    functionsReached:
    - Botan_Tests::Server_Context::send
    - size
    - data
    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:768,1
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:770,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:770,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: 773
      start: 766
    functionDepth: 1
    functionLinenumber: 766
    functionLinenumberEnd: 773
    functionName: Botan_Tests::sort_extensions
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 3
    functionsReached:
    - add
    - take
    - std::move
    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:783,1
    - Dst: Botan_Tests::Padding::static_type
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:796,1
    - Dst: Botan_Tests::sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:800,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: 812
      start: 779
    functionDepth: 2
    functionLinenumber: 779
    functionLinenumberEnd: 812
    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 = Botan::TLS::Handshake_Type::ClientHello)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:817,1
    - Dst: Renegotiation_Extension::Renegotiation_Extension
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:817,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' exts'
    argTypes:
    - Botan::TLS::Extensions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 814
    functionDepth: 1
    functionLinenumber: 814
    functionLinenumberEnd: 818
    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:821,1
    - Dst: Botan::TLS::EarlyDataIndication::EarlyDataIndication
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:821,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' exts'
    argTypes:
    - Botan::TLS::Extensions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 820
    functionDepth: 1
    functionLinenumber: 820
    functionLinenumberEnd: 822
    functionName: Botan_Tests::add_early_data_indication
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - add
    - Botan::TLS::EarlyDataIndication::EarlyDataIndication
    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:825,1
    - Dst: size
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:825,1
    - Dst: begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:826,1
    - Dst: end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 824
    functionDepth: 1
    functionLinenumber: 824
    functionLinenumberEnd: 827
    functionName: Botan_Tests::strip_message_header
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - begin
    - size
    - end
    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:833,1
    - Dst: has_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:833,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:834,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:834,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:834,1
    - Dst: mock
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:838,1
    - Dst: mock
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:839,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 842
      start: 829
    functionDepth: 0
    functionLinenumber: 829
    functionLinenumberEnd: 842
    functionName: Botan_Tests::make_mock_signatures
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - mock
    - has_key
    - std::vector::push_back
    - get_opt_bin
    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: 935
      start: 898
    functionDepth: 0
    functionLinenumber: 898
    functionLinenumberEnd: 935
    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_Tests::Test::Result::Result
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:939,1
    - Dst: side
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:939,1
    - Dst: simple_1_rtt
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:939,1
    - Dst: Botan_Tests::Test::Result::Result
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:941,1
    - Dst: side
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:941,1
    - Dst: resumed_handshake_with_0_rtt
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:941,1
    - Dst: Botan_Tests::Test::Result::Result
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:943,1
    - Dst: side
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:943,1
    - Dst: hello_retry_request
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:944,1
    - Dst: Botan_Tests::Test::Result::Result
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:946,1
    - Dst: side
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:946,1
    - Dst: client_authentication
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:946,1
    - Dst: Botan_Tests::Test::Result::Result
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:948,1
    - Dst: side
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:948,1
    - Dst: middlebox_compatibility
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:948,1
    - Dst: Botan_Tests::Test::Result::Result
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:950,1
    - Dst: side
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:950,1
    - Dst: externally_provided_psk_with_ephemeral_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:951,1
    - Dst: Botan_Tests::Test::Result::Result
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:953,1
    - Dst: side
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:953,1
    - Dst: raw_public_key_with_client_authentication
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:954,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:956,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 937
    functionDepth: 2
    functionLinenumber: 937
    functionLinenumberEnd: 958
    functionName: Botan_Tests::Test_TLS_RFC8448::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - side
    - raw_public_key_with_client_authentication
    - externally_provided_psk_with_ephemeral_key
    - client_authentication
    - hello_retry_request
    - middlebox_compatibility
    - Botan_Tests::Test::Result::Result
    - Botan_Tests::Test::Result::Failure
    - simple_1_rtt
    - resumed_handshake_with_0_rtt
    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: 963
      start: 963
    functionDepth: 0
    functionLinenumber: 963
    functionLinenumberEnd: 963
    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:966,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:970,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:970,1
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:979,1
    - Dst: Botan::TLS::Session_Ticket_Extension::Session_Ticket_Extension
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:979,1
    - Dst: add_renegotiation_extension
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:981,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:982,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:989,1
    - Dst: std::make_unique<Client_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:991,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:992,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:993,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:996,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:996,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:997,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1007,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1008,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1008,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1011,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1013,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1014,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1016,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1016,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1017,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1017,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1019,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1020,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1022,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1023,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1029,1
    - Dst: std::unique_ptr::client::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1029,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1030,1
    - Dst: std::unique_ptr::client::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1030,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1033,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1035,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1036,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1036,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1038,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1052,1
    - Dst: std::unique_ptr::certs_verified
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1052,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1053,1
    - Dst: std::unique_ptr::certs_verified
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1053,1
    - Dst: server_certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1053,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1054,1
    - Dst: std::unique_ptr::client::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1054,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1055,1
    - Dst: std::unique_ptr::client::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1055,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1057,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1058,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1059,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1062,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1064,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1065,1
    - Dst: std::unique_ptr::stored_sessions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1065,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1066,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1066,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1068,1
    - Dst: test_eq
      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::stored_sessions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1074,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1075,1
    - Dst: ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1075,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1076,1
    - Dst: Botan::unlock
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1077,1
    - Dst: DER_encode
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1077,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1078,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1082,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1084,1
    - Dst: std::unique_ptr::send
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1085,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1085,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1087,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1089,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1090,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1091,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1094,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1096,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1097,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1097,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1099,1
    - Dst: std::unique_ptr::pull_receive_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1101,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1102,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1102,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1103,1
    - Dst: std::unique_ptr::last_received_seq_no
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1103,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1106,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1108,1
    - Dst: std::unique_ptr::client::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1109,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1111,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1112,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1112,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1113,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1115,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1115,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1116,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1119,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 59
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 965
    functionDepth: 1
    functionLinenumber: 965
    functionLinenumberEnd: 1122
    functionName: Botan_Tests::Test_TLS_RFC8448_Client::simple_1_rtt
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Session_Ticket_Extension::Session_Ticket_Extension
    - test_eq
    - sort_rfc8448_extensions
    - Botan::unlock
    - add_renegotiation_extension
    - std::unique_ptr::client::is_closed
    - auto::end
    - std::unique_ptr::send
    - std::unique_ptr::certs_verified
    - std::unique_ptr::client::is_handshake_complete
    - std::make_shared<RFC8448_Text_Policy>
    - std::make_shared<Fixed_Output_RNG>
    - add
    - get_req_u64
    - get_req_bin
    - confirm
    - CHECK
    - std::unique_ptr::client::is_active
    - ticket
    - std::make_unique<Client_Context>
    - std::unique_ptr::last_received_seq_no
    - server_certificate
    - add_entropy
    - require
    - std::unique_ptr::pull_receive_buffer
    - auto::begin
    - std::unique_ptr::client::close
    - std::unique_ptr::check_callback_invocations
    - std::unique_ptr::client::received_data
    - DER_encode
    - std::unique_ptr::pull_send_buffer
    - test_is_eq
    - std::unique_ptr::stored_sessions
    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:1125,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1129,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1129,1
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1135,1
    - Dst: Padding::Padding
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1135,1
    - Dst: add_renegotiation_extension
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1137,1
    - Dst: add_early_data_indication
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1143,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1144,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1151,1
    - Dst: std::make_unique<Client_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1153,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1154,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1155,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1156,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1158,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1158,1
    - Dst: Botan::TLS::Session_Ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1159,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1159,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1161,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1161,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1162,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1172,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1173,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1124
    functionDepth: 2
    functionLinenumber: 1124
    functionLinenumberEnd: 1180
    functionName: Botan_Tests::Test_TLS_RFC8448_Client::resumed_handshake_with_0_rtt
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - sort_rfc8448_extensions
    - TestSession::TestSession
    - add_renegotiation_extension
    - std::unique_ptr::client::is_closed
    - std::make_shared<RFC8448_Text_Policy>
    - add
    - Padding::Padding
    - get_req_u64
    - get_req_bin
    - confirm
    - CHECK
    - std::make_unique<Client_Context>
    - add_entropy
    - add_early_data_indication
    - std::move
    - Botan::TLS::Session_Ticket
    - std::unique_ptr::check_callback_invocations
    - std::make_unique<Fixed_Output_RNG>
    - std::unique_ptr::pull_send_buffer
    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:1190,1
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1196,1
    - Dst: Padding::Padding
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1196,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1199,1
    - Dst: Botan_Tests::Test_TLS_RFC8448_Client::rng
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1204,1
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1205,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1210,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1210,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1215,1
    - Dst: std::make_unique<Client_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1217,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1217,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1218,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1219,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1221,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1221,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1223,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1233,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1234,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1234,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1237,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1239,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1240,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1240,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1242,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1253,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1254,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1254,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1257,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1259,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1260,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1260,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1262,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1271,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1273,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1274,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1274,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1276,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1291,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1292,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1292,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1295,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1297,1
    - Dst: std::unique_ptr::client::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1298,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1299,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1301,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1302,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1302,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1304,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1304,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1305,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1308,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1308,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 41
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1182
    functionDepth: 1
    functionLinenumber: 1182
    functionLinenumberEnd: 1311
    functionName: Botan_Tests::Test_TLS_RFC8448_Client::hello_retry_request
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - sort_rfc8448_extensions
    - add_renegotiation_extension
    - std::unique_ptr::client::is_closed
    - std::make_shared<RFC8448_Text_Policy>
    - add
    - Padding::Padding
    - get_req_u64
    - get_req_bin
    - confirm
    - CHECK
    - std::make_unique<Client_Context>
    - add_entropy
    - require
    - std::unique_ptr::client::close
    - std::move
    - Botan_Tests::Test_TLS_RFC8448_Client::rng
    - std::unique_ptr::check_callback_invocations
    - std::unique_ptr::client::received_data
    - std::make_unique<Fixed_Output_RNG>
    - std::unique_ptr::pull_send_buffer
    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:1314,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1318,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1318,1
    - Dst: add_renegotiation_extension
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1324,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1325,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1332,1
    - Dst: std::make_unique<Client_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1334,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1334,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1335,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1336,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1340,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1342,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1352,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1352,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1352,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1355,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1357,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1358,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1358,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1360,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1369,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1371,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1372,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1372,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1374,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1397,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1398,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1398,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1401,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1403,1
    - Dst: std::unique_ptr::client::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1404,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1405,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1406,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1406,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1408,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1414,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1414,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1415,1
    - Dst: std::unique_ptr::client::is_closed
      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
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1421
      start: 1313
    functionDepth: 1
    functionLinenumber: 1313
    functionLinenumberEnd: 1421
    functionName: Botan_Tests::Test_TLS_RFC8448_Client::client_authentication
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - sort_rfc8448_extensions
    - add_renegotiation_extension
    - std::unique_ptr::client::is_closed
    - std::make_shared<RFC8448_Text_Policy>
    - get_req_u64
    - get_req_bin
    - confirm
    - CHECK
    - std::make_unique<Client_Context>
    - add_entropy
    - require
    - std::unique_ptr::client::close
    - std::move
    - std::unique_ptr::check_callback_invocations
    - std::unique_ptr::client::received_data
    - make_mock_signatures
    - std::make_unique<Fixed_Output_RNG>
    - std::unique_ptr::pull_send_buffer
    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:1424,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1429,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1429,1
    - Dst: add_renegotiation_extension
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1435,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1436,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1443,1
    - Dst: std::make_unique<Client_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1446,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1446,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1447,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1448,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1451,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1451,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1451,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1453,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1464,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1466,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1467,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1468,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1468,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1470,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1472,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1492,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1493,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1495,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1497,1
    - Dst: std::unique_ptr::client::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1497,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1498,1
    - Dst: std::unique_ptr::client::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1498,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1501,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1503,1
    - Dst: std::unique_ptr::client::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1504,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1506,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1507,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1507,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1509,1
    - Dst: std::unique_ptr::client::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1509,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1510,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1510,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1511,1
    - Dst: std::unique_ptr::client::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1511,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1513,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1513,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1515,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1515,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1518
      start: 1423
    functionDepth: 1
    functionLinenumber: 1423
    functionLinenumberEnd: 1518
    functionName: Botan_Tests::Test_TLS_RFC8448_Client::middlebox_compatibility
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - sort_rfc8448_extensions
    - add_renegotiation_extension
    - std::unique_ptr::client::is_closed
    - std::unique_ptr::client::is_handshake_complete
    - std::make_shared<RFC8448_Text_Policy>
    - get_req_u64
    - get_req_bin
    - confirm
    - CHECK
    - std::unique_ptr::client::is_active
    - std::make_unique<Client_Context>
    - add_entropy
    - require
    - std::unique_ptr::client::close
    - std::move
    - std::unique_ptr::check_callback_invocations
    - Botan::concat
    - std::unique_ptr::client::received_data
    - std::make_unique<Fixed_Output_RNG>
    - std::unique_ptr::pull_send_buffer
    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:1521,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1525,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1525,1
    - Dst: sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1533,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1549,1
    - Dst: std::make_unique<Client_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1551,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1552,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1553,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1554,1
    - Dst: ExternalPSK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1557,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1557,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1558,1
    - Dst: lock
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1559,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1559,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1561,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1561,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1562,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1572,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1573,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1573,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1576,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1578,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1579,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1580,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1581,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1587,1
    - Dst: std::unique_ptr::client::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1587,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1588,1
    - Dst: std::unique_ptr::client::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1588,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1591,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1594,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1595,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1595,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1597,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1606,1
    - Dst: std::unique_ptr::psk_identity_negotiated
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1606,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1606,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1607,1
    - Dst: std::unique_ptr::client::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1607,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1608,1
    - Dst: std::unique_ptr::client::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1608,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1610,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1611,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1611,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1614,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1616,1
    - Dst: std::unique_ptr::send
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1617,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1617,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1619,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1621,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1622,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1623,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1626,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1628,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1629,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1629,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1631,1
    - Dst: std::unique_ptr::pull_receive_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1633,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1634,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1634,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1635,1
    - Dst: std::unique_ptr::last_received_seq_no
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1635,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1638,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1640,1
    - Dst: std::unique_ptr::client::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1641,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1643,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1644,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1644,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1645,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1647,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1647,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1648,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1651,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1654
      start: 1520
    functionDepth: 1
    functionLinenumber: 1520
    functionLinenumberEnd: 1654
    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:
    - test_eq
    - std::unique_ptr::client::is_closed
    - std::unique_ptr::send
    - std::unique_ptr::client::is_handshake_complete
    - lock
    - std::make_shared<RFC8448_Text_Policy>
    - get_req_u64
    - get_req_bin
    - confirm
    - CHECK
    - std::unique_ptr::client::is_active
    - std::unique_ptr::last_received_seq_no
    - std::make_unique<Client_Context>
    - ExternalPSK
    - add_entropy
    - require
    - sort_extensions
    - std::unique_ptr::pull_receive_buffer
    - std::unique_ptr::psk_identity_negotiated
    - get_req_str
    - std::unique_ptr::client::close
    - std::move
    - std::unique_ptr::check_callback_invocations
    - std::unique_ptr::client::received_data
    - std::make_unique<Fixed_Output_RNG>
    - std::unique_ptr::pull_send_buffer
    - test_is_eq
    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:1657,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1661,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1661,1
    - Dst: sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1670,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1687,1
    - Dst: std::make_unique<Client_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1689,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1689,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1690,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1691,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1695,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1697,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1707,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1707,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1707,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1710,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1712,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1713,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1713,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1715,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1724,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1726,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1727,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1727,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1729,1
    - Dst: std::unique_ptr::client::peer_raw_public_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1750,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1751,1
    - Dst: auto::fingerprint_public
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1753,1
    - Dst: server_raw_public_key_pair
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1753,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1757,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1758,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1758,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1761,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1763,1
    - Dst: std::unique_ptr::client::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1764,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1765,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1766,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1766,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1768,1
    - Dst: std::unique_ptr::client::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1774,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1774,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1775,1
    - Dst: std::unique_ptr::client::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1775,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1777,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1781
      start: 1656
    functionDepth: 1
    functionLinenumber: 1656
    functionLinenumberEnd: 1781
    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:
    - test_eq
    - std::unique_ptr::client::is_closed
    - server_raw_public_key_pair
    - std::make_shared<RFC8448_Text_Policy>
    - get_req_u64
    - get_req_bin
    - confirm
    - CHECK
    - std::make_unique<Client_Context>
    - add_entropy
    - require
    - std::unique_ptr::client::peer_raw_public_key
    - sort_extensions
    - std::unique_ptr::client::close
    - std::move
    - std::unique_ptr::check_callback_invocations
    - std::unique_ptr::client::received_data
    - make_mock_signatures
    - auto::fingerprint_public
    - std::make_unique<Fixed_Output_RNG>
    - std::unique_ptr::pull_send_buffer
    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: 1786
      start: 1786
    functionDepth: 0
    functionLinenumber: 1786
    functionLinenumberEnd: 1786
    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:1789,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1794,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1794,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1799,1
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1805,1
    - Dst: EarlyDataIndication::EarlyDataIndication
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1805,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1807,1
    - Dst: std::make_unique<Server_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1810,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1811,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1812,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1813,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1815,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1817,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1817,1
    - Dst: Botan::TLS::Session_Ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1818,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1818,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1819,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1819,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1821,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1821,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1823,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1841,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1843,1
    - Dst: std::unique_ptr::observed_handshake_messages
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1844,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1846,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1847,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1848,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1848,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1849,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1850,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1851,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1851,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1852,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1853,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1854,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1854,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1855,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1856,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1857,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1857,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1859,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1860,1
    - Dst: concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1861,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1861,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1862,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1869,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1869,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1870,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1870,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1873,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1875,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1876,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1876,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1878,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1886,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1888,1
    - Dst: std::unique_ptr::server::send_new_session_tickets
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1889,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1891,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1893,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1902,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1904,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1905,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1906,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1906,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1909,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1911,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1912,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1912,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1913,1
    - Dst: std::unique_ptr::pull_receive_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1915,1
    - Dst: test_eq
      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: test_is_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1917,1
    - Dst: std::unique_ptr::last_received_seq_no
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1917,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1920,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1922,1
    - Dst: std::unique_ptr::send
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1923,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1923,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1925,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1927,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1928,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1929,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1932,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1934,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1935,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1935,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1937,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1940,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1940,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1941,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1941,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1942,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1942,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1945,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1947,1
    - Dst: std::unique_ptr::server::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1948,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1950,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1950,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1951,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1951,1
    - Dst: confirm
      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: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1953,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1954,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1955,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 58
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1958
      start: 1788
    functionDepth: 2
    functionLinenumber: 1788
    functionLinenumberEnd: 1958
    functionName: Botan_Tests::Test_TLS_RFC8448_Server::simple_1_rtt
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - concat
    - sort_rfc8448_extensions
    - TestSession::TestSession
    - std::unique_ptr::server::send_new_session_tickets
    - std::unique_ptr::send
    - std::make_shared<RFC8448_Text_Policy>
    - at
    - std::unique_ptr::server::is_active
    - add
    - std::unique_ptr::server::received_data
    - get_req_u64
    - std::unique_ptr::server::is_closed
    - get_req_bin
    - confirm
    - CHECK
    - std::unique_ptr::last_received_seq_no
    - add_entropy
    - require
    - std::unique_ptr::pull_receive_buffer
    - std::unique_ptr::server::is_handshake_complete
    - std::move
    - get_opt_bin
    - Botan::TLS::Session_Ticket
    - std::unique_ptr::check_callback_invocations
    - std::unique_ptr::observed_handshake_messages
    - make_mock_signatures
    - std::make_unique<Fixed_Output_RNG>
    - std::make_unique<Server_Context>
    - std::unique_ptr::pull_send_buffer
    - test_is_eq
    - EarlyDataIndication::EarlyDataIndication
    - strip_message_header
    - std::unique_ptr::server::close
    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:1961,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1965,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1965,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1970,1
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1976,1
    - Dst: EarlyDataIndication::EarlyDataIndication
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1976,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1978,1
    - Dst: std::make_unique<Server_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1981,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1982,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1983,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1984,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1986,1
    - Dst: TestSession::TestSession
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1988,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1988,1
    - Dst: Botan::TLS::Session_Ticket
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1989,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1989,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1990,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1990,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1992,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1992,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:1994,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2011,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2013,1
    - Dst: std::unique_ptr::observed_handshake_messages
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2014,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2016,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2017,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2018,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2018,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2019,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2020,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2021,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2021,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2023,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2024,1
    - Dst: concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2025,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2025,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2026,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2033,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2033,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2034,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2034,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2041
      start: 1960
    functionDepth: 2
    functionLinenumber: 1960
    functionLinenumberEnd: 2041
    functionName: Botan_Tests::Test_TLS_RFC8448_Server::resumed_handshake_with_0_rtt
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - concat
    - sort_rfc8448_extensions
    - TestSession::TestSession
    - std::make_shared<RFC8448_Text_Policy>
    - at
    - std::unique_ptr::server::is_active
    - add
    - std::unique_ptr::server::received_data
    - get_req_u64
    - std::unique_ptr::server::is_closed
    - get_req_bin
    - confirm
    - CHECK
    - add_entropy
    - require
    - std::unique_ptr::server::is_handshake_complete
    - std::move
    - get_opt_bin
    - Botan::TLS::Session_Ticket
    - std::unique_ptr::check_callback_invocations
    - std::unique_ptr::observed_handshake_messages
    - make_mock_signatures
    - std::make_unique<Fixed_Output_RNG>
    - std::make_unique<Server_Context>
    - std::unique_ptr::pull_send_buffer
    - EarlyDataIndication::EarlyDataIndication
    - strip_message_header
    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:2045,1
    - Dst: std::make_unique<Fixed_Output_RNG>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2046,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2050,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2050,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2055,1
    - Dst: add
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2062,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2063,1
    - Dst: Cookie::Cookie
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2063,1
    - Dst: sort_rfc8448_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2065,1
    - Dst: std::make_unique<Server_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2068,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2068,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2069,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2070,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2072,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2073,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2073,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2075,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2075,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2077,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2086,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2088,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2089,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2090,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2091,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2092,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2092,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2093,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2093,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: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2099,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2099,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2101,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2119,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2121,1
    - Dst: std::unique_ptr::observed_handshake_messages
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2122,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2124,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2125,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2126,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2126,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2127,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2128,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2129,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2129,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2130,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2131,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2132,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2132,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2133,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2134,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2135,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2135,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2136,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2137,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2138,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2138,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2140,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2141,1
    - Dst: concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2142,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2142,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2143,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2144,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2144,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2145,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2146,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2149,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2151,1
    - Dst: std::unique_ptr::server::received_data
      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: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2154,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2161,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2161,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2162,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2162,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2165,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2167,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2168,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2168,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2170,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2173,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2173,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2174,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2174,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2175,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2175,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2178,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2180,1
    - Dst: std::unique_ptr::server::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2181,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2183,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2183,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2184,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2184,1
    - Dst: confirm
      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: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2186,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2187,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 52
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2192
      start: 2043
    functionDepth: 1
    functionLinenumber: 2043
    functionLinenumberEnd: 2192
    functionName: Botan_Tests::Test_TLS_RFC8448_Server::hello_retry_request
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - concat
    - sort_rfc8448_extensions
    - Cookie::Cookie
    - std::make_shared<RFC8448_Text_Policy>
    - std::unique_ptr::server::is_active
    - add
    - std::unique_ptr::server::received_data
    - get_req_u64
    - std::unique_ptr::server::is_closed
    - get_req_bin
    - confirm
    - CHECK
    - Botan_Tests::Test_TLS_RFC8448_Server::rng
    - add_entropy
    - require
    - std::unique_ptr::server::is_handshake_complete
    - std::move
    - get_opt_bin
    - std::unique_ptr::check_callback_invocations
    - std::unique_ptr::observed_handshake_messages
    - make_mock_signatures
    - std::make_unique<Fixed_Output_RNG>
    - std::make_unique<Server_Context>
    - std::unique_ptr::pull_send_buffer
    - at
    - strip_message_header
    - std::unique_ptr::server::close
    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:2195,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2199,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2199,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2204,1
    - Dst: std::make_unique<Server_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2206,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2207,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2208,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2209,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2211,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2213,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2213,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2215,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2215,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2217,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2237,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2239,1
    - Dst: std::unique_ptr::observed_handshake_messages
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2240,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2242,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2243,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2244,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2244,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2245,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2246,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2247,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2247,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2248,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2249,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2250,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2250,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2251,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2252,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2253,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2253,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2254,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2255,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2256,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2256,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2257,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2258,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2259,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2259,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2261,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2262,1
    - Dst: concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2263,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2263,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2264,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2266,1
    - Dst: std::unique_ptr::server::peer_cert_chain
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2266,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2267,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2267,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2268,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2269,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2272,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2274,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2279,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2279,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2281,1
    - Dst: std::unique_ptr::server::peer_cert_chain
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2293,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2294,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2295,1
    - Dst: auto::front
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2295,1
    - Dst: client_certificate
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2295,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2297,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2297,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2298,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2298,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2301,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2303,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2304,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2304,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2306,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2309,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2309,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2310,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2310,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2311,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2311,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2314,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2316,1
    - Dst: std::unique_ptr::server::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2317,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2319,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2319,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2320,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2320,1
    - Dst: confirm
      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: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2322,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2323,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 41
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2328
      start: 2194
    functionDepth: 1
    functionLinenumber: 2194
    functionLinenumberEnd: 2328
    functionName: Botan_Tests::Test_TLS_RFC8448_Server::client_authentication
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - concat
    - auto::empty
    - client_certificate
    - std::make_shared<RFC8448_Text_Policy>
    - std::unique_ptr::server::is_active
    - std::unique_ptr::server::received_data
    - get_req_u64
    - std::unique_ptr::server::is_closed
    - get_req_bin
    - confirm
    - CHECK
    - add_entropy
    - require
    - std::unique_ptr::server::is_handshake_complete
    - std::move
    - get_opt_bin
    - auto::front
    - std::unique_ptr::check_callback_invocations
    - std::unique_ptr::observed_handshake_messages
    - std::unique_ptr::server::peer_cert_chain
    - make_mock_signatures
    - std::make_unique<Fixed_Output_RNG>
    - std::make_unique<Server_Context>
    - std::unique_ptr::pull_send_buffer
    - at
    - strip_message_header
    - std::unique_ptr::server::close
    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:2331,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2335,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2335,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2340,1
    - Dst: std::make_unique<Server_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2343,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2343,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2344,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2345,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2347,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2348,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2348,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2350,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2350,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2352,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2370,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2372,1
    - Dst: std::unique_ptr::observed_handshake_messages
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2373,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2375,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2376,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2377,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2377,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2378,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2379,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2380,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2380,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2381,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2382,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2383,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2383,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2384,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2385,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2386,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2386,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2387,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2388,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2389,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2389,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2392,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2393,1
    - Dst: concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2394,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2394,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2395,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2397,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2397,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2398,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2399,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2402,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2404,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2405,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2405,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2407,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2414,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2414,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2415,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2415,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2418,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2420,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2421,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2421,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2423,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2426,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2426,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2427,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2427,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2428,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2428,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2431,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2433,1
    - Dst: std::unique_ptr::server::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2434,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2436,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2436,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2437,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2437,1
    - Dst: confirm
      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: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2439,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2440,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2445
      start: 2330
    functionDepth: 1
    functionLinenumber: 2330
    functionLinenumberEnd: 2445
    functionName: Botan_Tests::Test_TLS_RFC8448_Server::middlebox_compatibility
    functionSourceFile: /src/botan/src/tests/test_tls_rfc8448.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - concat
    - std::make_shared<RFC8448_Text_Policy>
    - std::unique_ptr::server::is_active
    - std::unique_ptr::server::received_data
    - get_req_u64
    - std::unique_ptr::server::is_closed
    - get_req_bin
    - confirm
    - CHECK
    - add_entropy
    - require
    - std::unique_ptr::server::is_handshake_complete
    - std::move
    - get_opt_bin
    - std::unique_ptr::check_callback_invocations
    - std::unique_ptr::observed_handshake_messages
    - make_mock_signatures
    - std::make_unique<Fixed_Output_RNG>
    - std::make_unique<Server_Context>
    - std::unique_ptr::pull_send_buffer
    - at
    - strip_message_header
    - std::unique_ptr::server::close
    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:2448,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2452,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2452,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2457,1
    - Dst: sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2466,1
    - Dst: sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2473,1
    - Dst: std::make_unique<Server_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2482,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2483,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2484,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2485,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2487,1
    - Dst: ExternalPSK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2490,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2490,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2491,1
    - Dst: lock
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2492,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2492,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2493,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2493,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2495,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2495,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2497,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2511,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2513,1
    - Dst: std::unique_ptr::observed_handshake_messages
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2514,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2516,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2517,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2518,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2518,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2519,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2520,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2521,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2521,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2522,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2523,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2524,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2524,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2526,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2527,1
    - Dst: concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2528,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2528,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2529,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2531,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2531,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2532,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2533,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2536,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2538,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2539,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2539,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2540,1
    - Dst: std::unique_ptr::psk_identity_negotiated
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2541,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2541,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2543,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2551,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2553,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2554,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2554,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2555,1
    - Dst: std::unique_ptr::pull_receive_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2557,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2558,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2558,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2559,1
    - Dst: std::unique_ptr::last_received_seq_no
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2559,1
    - Dst: std::unique_ptr::send
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2561,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2561,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2562,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2563,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2564,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2565,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2568,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2570,1
    - Dst: std::unique_ptr::server::received_data
      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:2573,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2576,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2576,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2577,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2577,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2578,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2578,1
    - Dst: std::unique_ptr::server::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2580,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2582,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2582,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2583,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2583,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2584,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2584,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2585,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2586,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2587,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 49
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2590
      start: 2447
    functionDepth: 1
    functionLinenumber: 2447
    functionLinenumberEnd: 2590
    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:
    - test_eq
    - concat
    - std::unique_ptr::send
    - lock
    - std::make_shared<RFC8448_Text_Policy>
    - std::unique_ptr::server::is_active
    - std::unique_ptr::server::received_data
    - get_req_u64
    - std::unique_ptr::server::is_closed
    - get_req_bin
    - confirm
    - CHECK
    - std::unique_ptr::last_received_seq_no
    - ExternalPSK
    - add_entropy
    - require
    - sort_extensions
    - std::unique_ptr::pull_receive_buffer
    - std::unique_ptr::server::is_handshake_complete
    - std::unique_ptr::psk_identity_negotiated
    - get_req_str
    - std::move
    - get_opt_bin
    - std::unique_ptr::check_callback_invocations
    - std::unique_ptr::observed_handshake_messages
    - make_mock_signatures
    - std::make_unique<Fixed_Output_RNG>
    - std::make_unique<Server_Context>
    - std::unique_ptr::pull_send_buffer
    - test_is_eq
    - at
    - strip_message_header
    - std::unique_ptr::server::close
    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:2593,1
    - Dst: add_entropy
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2597,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2597,1
    - Dst: sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2606,1
    - Dst: sort_extensions
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2615,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2626,1
    - Dst: std::make_unique<Server_Context>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2628,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2628,1
    - Dst: std::make_shared<RFC8448_Text_Policy>
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2629,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2630,1
    - Dst: make_mock_signatures
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2632,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2633,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2633,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2635,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2635,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2637,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2657,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2659,1
    - Dst: std::unique_ptr::observed_handshake_messages
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2660,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2662,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2663,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2664,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2664,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2665,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2666,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2667,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2667,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2668,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2669,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2670,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2670,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2671,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2672,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2673,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2673,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2674,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2675,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2676,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2676,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2677,1
    - Dst: at
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2678,1
    - Dst: strip_message_header
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2679,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2679,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2681,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2682,1
    - Dst: concat
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2683,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2683,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2684,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2686,1
    - Dst: std::unique_ptr::server::peer_cert_chain
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2686,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2687,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2687,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2688,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2689,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2692,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2694,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2699,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2699,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2701,1
    - Dst: std::unique_ptr::server::peer_raw_public_key
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2713,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2714,1
    - Dst: auto::fingerprint_public
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2716,1
    - Dst: client_raw_public_key_pair
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2716,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2718,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2718,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2719,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2719,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2722,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2724,1
    - Dst: std::unique_ptr::server::received_data
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2725,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2725,1
    - Dst: std::unique_ptr::check_callback_invocations
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2727,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2730,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2730,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2731,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2731,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2732,1
    - Dst: std::unique_ptr::server::is_handshake_complete
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2732,1
    - Dst: CHECK
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2735,1
    - Dst: require
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2737,1
    - Dst: std::unique_ptr::server::close
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2738,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2740,1
    - Dst: std::unique_ptr::server::is_active
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2740,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2741,1
    - Dst: std::unique_ptr::server::is_closed
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2741,1
    - Dst: confirm
      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: test_eq
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2743,1
    - Dst: std::unique_ptr::pull_send_buffer
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2744,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_rfc8448.cpp:2745,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 48
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2748
      start: 2592
    functionDepth: 1
    functionLinenumber: 2592
    functionLinenumberEnd: 2748
    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:
    - test_eq
    - concat
    - client_raw_public_key_pair
    - std::make_shared<RFC8448_Text_Policy>
    - std::unique_ptr::server::is_active
    - std::unique_ptr::server::received_data
    - get_req_u64
    - std::unique_ptr::server::is_closed
    - get_req_bin
    - confirm
    - CHECK
    - add_entropy
    - require
    - sort_extensions
    - std::unique_ptr::server::is_handshake_complete
    - std::move
    - get_opt_bin
    - std::unique_ptr::check_callback_invocations
    - std::unique_ptr::observed_handshake_messages
    - std::unique_ptr::server::peer_cert_chain
    - make_mock_signatures
    - auto::fingerprint_public
    - std::make_unique<Fixed_Output_RNG>
    - std::make_unique<Server_Context>
    - std::unique_ptr::server::peer_raw_public_key
    - std::unique_ptr::pull_send_buffer
    - at
    - strip_message_header
    - std::unique_ptr::server::close
    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_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_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_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_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:
    - BigInt::bits
    - Test::Result::test_ne
    - Botan::RFC6979_Nonce_Generator::nonce_for
    - Test::Result::test_eq
    - Botan::generate_rfc6979_nonce
    - Botan::HashFunction::create
    - get_req_bn
    - Test::Result::test_note
    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_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_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_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_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:
    - BigInt::bits
    - Test::Result::test_ne
    - Botan::RFC6979_Nonce_Generator::nonce_for
    - Test::Result::test_eq
    - Botan::generate_rfc6979_nonce
    - Botan::HashFunction::create
    - get_req_bn
    - Test::Result::test_note
    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_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_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_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_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:
    - BigInt::bits
    - Test::Result::test_ne
    - Botan::RFC6979_Nonce_Generator::nonce_for
    - Test::Result::test_eq
    - Botan::generate_rfc6979_nonce
    - Botan::HashFunction::create
    - get_req_bn
    - Test::Result::test_note
    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_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_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_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_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:
    - BigInt::bits
    - Test::Result::test_ne
    - Botan::RFC6979_Nonce_Generator::nonce_for
    - Test::Result::test_eq
    - Botan::generate_rfc6979_nonce
    - Botan::HashFunction::create
    - get_req_bn
    - Test::Result::test_note
    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_eq_sz
      Src: /src/botan/src/tests/test_ct_utils.cpp:18,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_ct_utils.cpp:18,1
    - Dst: Test::Result::test_eq_sz
      Src: /src/botan/src/tests/test_ct_utils.cpp:19,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_ct_utils.cpp:19,1
    - Dst: Test::Result::test_eq_sz
      Src: /src/botan/src/tests/test_ct_utils.cpp:20,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_ct_utils.cpp:20,1
    - Dst: Test::Result::test_eq_sz
      Src: /src/botan/src/tests/test_ct_utils.cpp:22,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_ct_utils.cpp:22,1
    - Dst: Test::Result::test_eq_sz
      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_eq_sz
      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_eq_sz
      Src: /src/botan/src/tests/test_ct_utils.cpp:26,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_ct_utils.cpp:26,1
    - Dst: Test::Result::test_eq_sz
      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_eq_sz
      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_eq_sz
      Src: /src/botan/src/tests/test_ct_utils.cpp:30,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:30,1
    - Dst: Test::Result::test_eq_sz
      Src: /src/botan/src/tests/test_ct_utils.cpp:31,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:31,1
    - Dst: Test::Result::test_eq_sz
      Src: /src/botan/src/tests/test_ct_utils.cpp:32,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:32,1
    - Dst: Test::Result::test_eq_sz
      Src: /src/botan/src/tests/test_ct_utils.cpp:34,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:34,1
    - Dst: Test::Result::test_eq_sz
      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_eq_sz
      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_eq_sz
      Src: /src/botan/src/tests/test_ct_utils.cpp:38,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:38,1
    - Dst: Test::Result::test_eq_sz
      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_eq_sz
      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_eq_sz
      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_eq_sz
      Src: /src/botan/src/tests/test_ct_utils.cpp:42,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:42,1
    - Dst: Botan::CT::Choice::from_int
      Src: /src/botan/src/tests/test_ct_utils.cpp:47,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_ct_utils.cpp:47,1
    - Dst: Botan_Tests::CT_Mask_Tests::rng
      Src: /src/botan/src/tests/test_ct_utils.cpp:50,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ct_utils.cpp:50,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ct_utils.cpp:50,1
    - Dst: Botan::CT::copy_output
      Src: /src/botan/src/tests/test_ct_utils.cpp:54,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:57,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_ct_utils.cpp:57,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:60,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_ct_utils.cpp:60,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_ct_utils.cpp:62,1
    - Dst: Test::Result::test_eq_sz
      Src: /src/botan/src/tests/test_ct_utils.cpp:63,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ct_utils.cpp:63,1
    - Dst: Test::Result::test_eq_sz
      Src: /src/botan/src/tests/test_ct_utils.cpp:66,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 75
    functionName: Botan_Tests::CT_Mask_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - Botan::bigint_ct_is_lt
    - Botan::CT::Choice::from_int
    - auto::has_value
    - std::vector::data
    - auto::value
    - Botan_Tests::CT_Mask_Tests::rng
    - Botan::CT::copy_output
    - Botan::Sodium::sodium_is_zero
    - Test::Result::test_eq_sz
    - Test::Result::confirm
    - std::vector::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:85,1
    - Dst: Botan::CT::Choice::yes
      Src: /src/botan/src/tests/test_ct_utils.cpp:85,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:86,1
    - Dst: Botan::CT::Choice::no
      Src: /src/botan/src/tests/test_ct_utils.cpp:86,1
    - Dst: Botan_Tests::CT_Choice_Tests::test_choice_from_int
      Src: /src/botan/src/tests/test_ct_utils.cpp:88,1
    - Dst: Botan_Tests::CT_Choice_Tests::test_choice_from_int
      Src: /src/botan/src/tests/test_ct_utils.cpp:89,1
    - Dst: Botan_Tests::CT_Choice_Tests::test_choice_from_int
      Src: /src/botan/src/tests/test_ct_utils.cpp:90,1
    - Dst: Botan_Tests::CT_Choice_Tests::test_choice_from_int
      Src: /src/botan/src/tests/test_ct_utils.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 94
    functionName: Botan_Tests::CT_Choice_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::CT_Choice_Tests::test_choice_from_int
    - Test::Result::test_eq
    - Botan::CT::Choice::no
    - Botan::CT::Choice::yes
    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:99,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:102,1
    - Dst: Botan::CT::Choice::from_int<T>
      Src: /src/botan/src/tests/test_ct_utils.cpp:102,1
    - Dst: Botan::CT::Choice::from_int<T>
      Src: /src/botan/src/tests/test_ct_utils.cpp:104,1
    - Dst: static_cast<T>
      Src: /src/botan/src/tests/test_ct_utils.cpp:104,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:105,1
    - Dst: auto::as_bool
      Src: /src/botan/src/tests/test_ct_utils.cpp:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - type_name
    - ' result'
    argTypes:
    - char*
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 107
    functionName: Botan_Tests::CT_Choice_Tests::test_choice_from_int
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 1
    functionsReached:
    - test_eq
    - static_cast<T>
    - Botan::fmt
    - auto::as_bool
    - Botan::CT::Choice::from_int<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:124,1
    - Dst: std::memcmp
      Src: /src/botan/src/tests/test_ct_utils.cpp:127,1
    - Dst: Botan_Tests::CT_Option_Tests::test_ct_option
      Src: /src/botan/src/tests/test_ct_utils.cpp:139,1
    - Dst: Val
      Src: /src/botan/src/tests/test_ct_utils.cpp:139,1
    - Dst: Val
      Src: /src/botan/src/tests/test_ct_utils.cpp:139,1
    - Dst: Botan_Tests::CT_Option_Tests::test_ct_option
      Src: /src/botan/src/tests/test_ct_utils.cpp:140,1
    - Dst: Botan_Tests::CT_Option_Tests::test_ct_option
      Src: /src/botan/src/tests/test_ct_utils.cpp:141,1
    - Dst: Botan_Tests::CT_Option_Tests::test_ct_option
      Src: /src/botan/src/tests/test_ct_utils.cpp:142,1
    - Dst: Botan_Tests::CT_Option_Tests::test_ct_option
      Src: /src/botan/src/tests/test_ct_utils.cpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 146
    functionName: Botan_Tests::CT_Option_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::CT_Option_Tests::test_ct_option
    - std::memcmp
    - Botan::CT::conditional_assign_mem
    - 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: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    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: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    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:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - choice
    - ' other'
    argTypes:
    - Botan::CT::Choice
    - Val
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 125
    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:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Val
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    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: 133
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 133
    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:151,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:152,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_ct_utils.cpp:152,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_ct_utils.cpp:153,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_ct_utils.cpp:153,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:154,1
    - Dst: auto::value_or
      Src: /src/botan/src/tests/test_ct_utils.cpp:154,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:155,1
    - Dst: auto::value_or
      Src: /src/botan/src/tests/test_ct_utils.cpp:155,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:156,1
    - Dst: auto::as_optional_vartime
      Src: /src/botan/src/tests/test_ct_utils.cpp:157,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:165,1
    - Dst: auto::transform
      Src: /src/botan/src/tests/test_ct_utils.cpp:165,1
    - Dst: Botan::CT::Option<T>
      Src: /src/botan/src/tests/test_ct_utils.cpp:167,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:168,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_ct_utils.cpp:168,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:169,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_ct_utils.cpp:169,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:170,1
    - Dst: auto::value_or
      Src: /src/botan/src/tests/test_ct_utils.cpp:170,1
    - Dst: auto::as_optional_vartime
      Src: /src/botan/src/tests/test_ct_utils.cpp:172,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:173,1
    - Dst: auto::has_value
      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: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:176,1
    - Dst: auto::transform
      Src: /src/botan/src/tests/test_ct_utils.cpp:176,1
    - Dst: next
      Src: /src/botan/src/tests/test_ct_utils.cpp:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - ' result'
    - ' value'
    - ' value2'
    argTypes:
    - Test::Result
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 177
    functionName: Botan_Tests::CT_Option_Tests::test_ct_option
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 1
    functionsReached:
    - test_eq
    - Botan::CT::Option<T>
    - test_throws
    - auto::has_value
    - auto::transform
    - next
    - auto::value
    - auto::as_optional_vartime
    - auto::value_or
    - confirm
    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: 188
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 188
    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: 190
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 190
    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:195,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:198,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/tests/test_ct_utils.cpp:199,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:200,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/tests/test_ct_utils.cpp:201,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:202,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_ct_utils.cpp:205,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:213,1
    - Dst: Botan::CT::poison_all
      Src: /src/botan/src/tests/test_ct_utils.cpp:214,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:215,1
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/tests/test_ct_utils.cpp:216,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:217,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_ct_utils.cpp:220,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:228,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/tests/test_ct_utils.cpp:231,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:232,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:235,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_ct_utils.cpp:238,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:243,1
    - Dst: std::none_of
      Src: /src/botan/src/tests/test_ct_utils.cpp:243,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_ct_utils.cpp:243,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_ct_utils.cpp:243,1
    - Dst: Botan::CT::poison_range
      Src: /src/botan/src/tests/test_ct_utils.cpp:245,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:246,1
    - Dst: std::all_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::unpoison_range
      Src: /src/botan/src/tests/test_ct_utils.cpp:248,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:249,1
    - Dst: std::none_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_Tests::CHECK
      Src: /src/botan/src/tests/test_ct_utils.cpp:252,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:255,1
    - Dst: Botan::CT::driveby_poison
      Src: /src/botan/src/tests/test_ct_utils.cpp:257,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_ct_utils.cpp:257,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:258,1
    - Dst: Botan::CT::driveby_unpoison
      Src: /src/botan/src/tests/test_ct_utils.cpp:259,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_ct_utils.cpp:260,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:261,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 193
    functionDepth: 3
    functionLinenumber: 193
    functionLinenumberEnd: 264
    functionName: Botan_Tests::test_higher_level_ct_poison
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::unpoison_range
    - std::vector::begin
    - std::move
    - Botan::CT::driveby_unpoison
    - Botan_Tests::CHECK
    - Botan::CT::poison
    - Botan::CT::poison_range
    - std::all_of
    - std::none_of
    - Botan::CT::scoped_poison
    - Botan::CT::unpoison_all
    - std::vector::end
    - Botan::CT::poison_all
    - Botan::CT::driveby_poison
    - Botan::CT::unpoison
    - confirm
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_higher_level_ct_poison()
  - 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_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: 190
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 190
    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:195,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:198,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/tests/test_ct_utils.cpp:199,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:200,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/tests/test_ct_utils.cpp:201,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:202,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_ct_utils.cpp:205,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:213,1
    - Dst: Botan::CT::poison_all
      Src: /src/botan/src/tests/test_ct_utils.cpp:214,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:215,1
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/tests/test_ct_utils.cpp:216,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:217,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_ct_utils.cpp:220,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:228,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/tests/test_ct_utils.cpp:231,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:232,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:235,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_ct_utils.cpp:238,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:243,1
    - Dst: std::none_of
      Src: /src/botan/src/tests/test_ct_utils.cpp:243,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_ct_utils.cpp:243,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_ct_utils.cpp:243,1
    - Dst: Botan::CT::poison_range
      Src: /src/botan/src/tests/test_ct_utils.cpp:245,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:246,1
    - Dst: std::all_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::unpoison_range
      Src: /src/botan/src/tests/test_ct_utils.cpp:248,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:249,1
    - Dst: std::none_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_Tests::CHECK
      Src: /src/botan/src/tests/test_ct_utils.cpp:252,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:255,1
    - Dst: Botan::CT::driveby_poison
      Src: /src/botan/src/tests/test_ct_utils.cpp:257,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_ct_utils.cpp:257,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:258,1
    - Dst: Botan::CT::driveby_unpoison
      Src: /src/botan/src/tests/test_ct_utils.cpp:259,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_ct_utils.cpp:260,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:261,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 193
    functionDepth: 3
    functionLinenumber: 193
    functionLinenumberEnd: 264
    functionName: Botan_Tests::test_higher_level_ct_poison
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::unpoison_range
    - std::vector::begin
    - std::move
    - Botan::CT::driveby_unpoison
    - Botan_Tests::CHECK
    - Botan::CT::poison
    - Botan::CT::poison_range
    - std::all_of
    - std::none_of
    - Botan::CT::scoped_poison
    - Botan::CT::unpoison_all
    - std::vector::end
    - Botan::CT::poison_all
    - Botan::CT::driveby_poison
    - Botan::CT::unpoison
    - confirm
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_higher_level_ct_poison()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_eq_sz
      Src: /src/botan/src/tests/test_ct_utils.cpp:18,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_ct_utils.cpp:18,1
    - Dst: Test::Result::test_eq_sz
      Src: /src/botan/src/tests/test_ct_utils.cpp:19,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_ct_utils.cpp:19,1
    - Dst: Test::Result::test_eq_sz
      Src: /src/botan/src/tests/test_ct_utils.cpp:20,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_ct_utils.cpp:20,1
    - Dst: Test::Result::test_eq_sz
      Src: /src/botan/src/tests/test_ct_utils.cpp:22,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_ct_utils.cpp:22,1
    - Dst: Test::Result::test_eq_sz
      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_eq_sz
      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_eq_sz
      Src: /src/botan/src/tests/test_ct_utils.cpp:26,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/tests/test_ct_utils.cpp:26,1
    - Dst: Test::Result::test_eq_sz
      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_eq_sz
      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_eq_sz
      Src: /src/botan/src/tests/test_ct_utils.cpp:30,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:30,1
    - Dst: Test::Result::test_eq_sz
      Src: /src/botan/src/tests/test_ct_utils.cpp:31,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:31,1
    - Dst: Test::Result::test_eq_sz
      Src: /src/botan/src/tests/test_ct_utils.cpp:32,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:32,1
    - Dst: Test::Result::test_eq_sz
      Src: /src/botan/src/tests/test_ct_utils.cpp:34,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:34,1
    - Dst: Test::Result::test_eq_sz
      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_eq_sz
      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_eq_sz
      Src: /src/botan/src/tests/test_ct_utils.cpp:38,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:38,1
    - Dst: Test::Result::test_eq_sz
      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_eq_sz
      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_eq_sz
      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_eq_sz
      Src: /src/botan/src/tests/test_ct_utils.cpp:42,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/tests/test_ct_utils.cpp:42,1
    - Dst: Botan::CT::Choice::from_int
      Src: /src/botan/src/tests/test_ct_utils.cpp:47,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/tests/test_ct_utils.cpp:47,1
    - Dst: Botan_Tests::CT_Mask_Tests::rng
      Src: /src/botan/src/tests/test_ct_utils.cpp:50,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_ct_utils.cpp:50,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ct_utils.cpp:50,1
    - Dst: Botan::CT::copy_output
      Src: /src/botan/src/tests/test_ct_utils.cpp:54,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:57,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_ct_utils.cpp:57,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:60,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_ct_utils.cpp:60,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_ct_utils.cpp:62,1
    - Dst: Test::Result::test_eq_sz
      Src: /src/botan/src/tests/test_ct_utils.cpp:63,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_ct_utils.cpp:63,1
    - Dst: Test::Result::test_eq_sz
      Src: /src/botan/src/tests/test_ct_utils.cpp:66,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 75
    functionName: Botan_Tests::CT_Mask_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - Botan::bigint_ct_is_lt
    - Botan::CT::Choice::from_int
    - auto::has_value
    - std::vector::data
    - auto::value
    - Botan_Tests::CT_Mask_Tests::rng
    - Botan::CT::copy_output
    - Botan::Sodium::sodium_is_zero
    - Test::Result::test_eq_sz
    - Test::Result::confirm
    - std::vector::size
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> run() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:85,1
    - Dst: Botan::CT::Choice::yes
      Src: /src/botan/src/tests/test_ct_utils.cpp:85,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:86,1
    - Dst: Botan::CT::Choice::no
      Src: /src/botan/src/tests/test_ct_utils.cpp:86,1
    - Dst: Botan_Tests::CT_Choice_Tests::test_choice_from_int
      Src: /src/botan/src/tests/test_ct_utils.cpp:88,1
    - Dst: Botan_Tests::CT_Choice_Tests::test_choice_from_int
      Src: /src/botan/src/tests/test_ct_utils.cpp:89,1
    - Dst: Botan_Tests::CT_Choice_Tests::test_choice_from_int
      Src: /src/botan/src/tests/test_ct_utils.cpp:90,1
    - Dst: Botan_Tests::CT_Choice_Tests::test_choice_from_int
      Src: /src/botan/src/tests/test_ct_utils.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 94
    functionName: Botan_Tests::CT_Choice_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::CT_Choice_Tests::test_choice_from_int
    - Test::Result::test_eq
    - Botan::CT::Choice::no
    - Botan::CT::Choice::yes
    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:99,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:102,1
    - Dst: Botan::CT::Choice::from_int<T>
      Src: /src/botan/src/tests/test_ct_utils.cpp:102,1
    - Dst: Botan::CT::Choice::from_int<T>
      Src: /src/botan/src/tests/test_ct_utils.cpp:104,1
    - Dst: static_cast<T>
      Src: /src/botan/src/tests/test_ct_utils.cpp:104,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:105,1
    - Dst: auto::as_bool
      Src: /src/botan/src/tests/test_ct_utils.cpp:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - type_name
    - ' result'
    argTypes:
    - char*
    - Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 107
    functionName: Botan_Tests::CT_Choice_Tests::test_choice_from_int
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 2
    functionsReached:
    - test_eq
    - static_cast<T>
    - Botan::fmt
    - auto::as_bool
    - Botan::CT::Choice::from_int<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:124,1
    - Dst: std::memcmp
      Src: /src/botan/src/tests/test_ct_utils.cpp:127,1
    - Dst: Botan_Tests::CT_Option_Tests::test_ct_option
      Src: /src/botan/src/tests/test_ct_utils.cpp:139,1
    - Dst: Val
      Src: /src/botan/src/tests/test_ct_utils.cpp:139,1
    - Dst: Val
      Src: /src/botan/src/tests/test_ct_utils.cpp:139,1
    - Dst: Botan_Tests::CT_Option_Tests::test_ct_option
      Src: /src/botan/src/tests/test_ct_utils.cpp:140,1
    - Dst: Botan_Tests::CT_Option_Tests::test_ct_option
      Src: /src/botan/src/tests/test_ct_utils.cpp:141,1
    - Dst: Botan_Tests::CT_Option_Tests::test_ct_option
      Src: /src/botan/src/tests/test_ct_utils.cpp:142,1
    - Dst: Botan_Tests::CT_Option_Tests::test_ct_option
      Src: /src/botan/src/tests/test_ct_utils.cpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 146
    functionName: Botan_Tests::CT_Option_Tests::run
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::CT_Option_Tests::test_ct_option
    - std::memcmp
    - Botan::CT::conditional_assign_mem
    - 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: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    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: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    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:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - choice
    - ' other'
    argTypes:
    - Botan::CT::Choice
    - Val
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 125
    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:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Val
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    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: 133
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 133
    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:151,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:152,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_ct_utils.cpp:152,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_ct_utils.cpp:153,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_ct_utils.cpp:153,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:154,1
    - Dst: auto::value_or
      Src: /src/botan/src/tests/test_ct_utils.cpp:154,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:155,1
    - Dst: auto::value_or
      Src: /src/botan/src/tests/test_ct_utils.cpp:155,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:156,1
    - Dst: auto::as_optional_vartime
      Src: /src/botan/src/tests/test_ct_utils.cpp:157,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:165,1
    - Dst: auto::transform
      Src: /src/botan/src/tests/test_ct_utils.cpp:165,1
    - Dst: Botan::CT::Option<T>
      Src: /src/botan/src/tests/test_ct_utils.cpp:167,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_ct_utils.cpp:168,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_ct_utils.cpp:168,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:169,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_ct_utils.cpp:169,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:170,1
    - Dst: auto::value_or
      Src: /src/botan/src/tests/test_ct_utils.cpp:170,1
    - Dst: auto::as_optional_vartime
      Src: /src/botan/src/tests/test_ct_utils.cpp:172,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:173,1
    - Dst: auto::has_value
      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: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:176,1
    - Dst: auto::transform
      Src: /src/botan/src/tests/test_ct_utils.cpp:176,1
    - Dst: next
      Src: /src/botan/src/tests/test_ct_utils.cpp:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 3
    argNames:
    - ' result'
    - ' value'
    - ' value2'
    argTypes:
    - Test::Result
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 177
    functionName: Botan_Tests::CT_Option_Tests::test_ct_option
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 2
    functionsReached:
    - test_eq
    - Botan::CT::Option<T>
    - test_throws
    - auto::has_value
    - auto::transform
    - next
    - auto::value
    - auto::as_optional_vartime
    - auto::value_or
    - confirm
    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: 188
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 188
    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: 190
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 190
    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:195,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:198,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/tests/test_ct_utils.cpp:199,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:200,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/tests/test_ct_utils.cpp:201,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:202,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_ct_utils.cpp:205,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:213,1
    - Dst: Botan::CT::poison_all
      Src: /src/botan/src/tests/test_ct_utils.cpp:214,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:215,1
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/tests/test_ct_utils.cpp:216,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:217,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_ct_utils.cpp:220,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:228,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/tests/test_ct_utils.cpp:231,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:232,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:235,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_ct_utils.cpp:238,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:243,1
    - Dst: std::none_of
      Src: /src/botan/src/tests/test_ct_utils.cpp:243,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_ct_utils.cpp:243,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_ct_utils.cpp:243,1
    - Dst: Botan::CT::poison_range
      Src: /src/botan/src/tests/test_ct_utils.cpp:245,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:246,1
    - Dst: std::all_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::unpoison_range
      Src: /src/botan/src/tests/test_ct_utils.cpp:248,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:249,1
    - Dst: std::none_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_Tests::CHECK
      Src: /src/botan/src/tests/test_ct_utils.cpp:252,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:255,1
    - Dst: Botan::CT::driveby_poison
      Src: /src/botan/src/tests/test_ct_utils.cpp:257,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_ct_utils.cpp:257,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:258,1
    - Dst: Botan::CT::driveby_unpoison
      Src: /src/botan/src/tests/test_ct_utils.cpp:259,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_ct_utils.cpp:260,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:261,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 193
    functionDepth: 3
    functionLinenumber: 193
    functionLinenumberEnd: 264
    functionName: Botan_Tests::test_higher_level_ct_poison
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::unpoison_range
    - std::vector::begin
    - std::move
    - Botan::CT::driveby_unpoison
    - Botan_Tests::CHECK
    - Botan::CT::poison
    - Botan::CT::poison_range
    - std::all_of
    - std::none_of
    - Botan::CT::scoped_poison
    - Botan::CT::unpoison_all
    - std::vector::end
    - Botan::CT::poison_all
    - Botan::CT::driveby_poison
    - Botan::CT::unpoison
    - confirm
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_higher_level_ct_poison()
  - 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_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: 190
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 190
    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:195,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:198,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/tests/test_ct_utils.cpp:199,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:200,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/tests/test_ct_utils.cpp:201,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:202,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_ct_utils.cpp:205,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:213,1
    - Dst: Botan::CT::poison_all
      Src: /src/botan/src/tests/test_ct_utils.cpp:214,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:215,1
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/tests/test_ct_utils.cpp:216,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:217,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_ct_utils.cpp:220,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:228,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/tests/test_ct_utils.cpp:231,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:232,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:235,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_ct_utils.cpp:238,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:243,1
    - Dst: std::none_of
      Src: /src/botan/src/tests/test_ct_utils.cpp:243,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_ct_utils.cpp:243,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_ct_utils.cpp:243,1
    - Dst: Botan::CT::poison_range
      Src: /src/botan/src/tests/test_ct_utils.cpp:245,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:246,1
    - Dst: std::all_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::unpoison_range
      Src: /src/botan/src/tests/test_ct_utils.cpp:248,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:249,1
    - Dst: std::none_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_Tests::CHECK
      Src: /src/botan/src/tests/test_ct_utils.cpp:252,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:255,1
    - Dst: Botan::CT::driveby_poison
      Src: /src/botan/src/tests/test_ct_utils.cpp:257,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_ct_utils.cpp:257,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:258,1
    - Dst: Botan::CT::driveby_unpoison
      Src: /src/botan/src/tests/test_ct_utils.cpp:259,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_ct_utils.cpp:260,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_ct_utils.cpp:261,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 193
    functionDepth: 3
    functionLinenumber: 193
    functionLinenumberEnd: 264
    functionName: Botan_Tests::test_higher_level_ct_poison
    functionSourceFile: /src/botan/src/tests/test_ct_utils.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::unpoison_range
    - std::vector::begin
    - std::move
    - Botan::CT::driveby_unpoison
    - Botan_Tests::CHECK
    - Botan::CT::poison
    - Botan::CT::poison_range
    - std::all_of
    - std::none_of
    - Botan::CT::scoped_poison
    - Botan::CT::unpoison_all
    - std::vector::end
    - Botan::CT::poison_all
    - Botan::CT::driveby_poison
    - Botan::CT::unpoison
    - confirm
    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:59,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_compression.cpp:65,1
    - Dst: Botan::Compression_Algorithm::create
      Src: /src/botan/src/tests/test_compression.cpp:67,1
    - Dst: Botan::Decompression_Algorithm::create
      Src: /src/botan/src/tests/test_compression.cpp:68,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_compression.cpp:71,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_compression.cpp:75,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:75,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:75,1
    - Dst: Botan_Tests::Compression_Tests::rng
      Src: /src/botan/src/tests/test_compression.cpp:79,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_compression.cpp:82,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:85,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:86,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: Test::Result::test_gte
      Src: /src/botan/src/tests/test_compression.cpp:96,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_compression.cpp:97,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_compression.cpp:102,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_compression.cpp:103,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_compression.cpp:104,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_compression.cpp:105,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_compression.cpp:106,1
    - Dst: Test::Result::test_lt
      Src: /src/botan/src/tests/test_compression.cpp:108,1
    - Dst: Test::Result::test_lt
      Src: /src/botan/src/tests/test_compression.cpp:109,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_compression.cpp:111,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_compression.cpp:113,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_compression.cpp:115,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_compression.cpp:115,1
    - Dst: what
      Src: /src/botan/src/tests/test_compression.cpp:115,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 120
    functionName: Botan_Tests::Compression_Tests::run
    functionSourceFile: /src/botan/src/tests/test_compression.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - auto::name
    - Test::Result::test_lt
    - Test::Result::note_missing
    - Botan::Decompression_Algorithm::create
    - Botan::Compression_Algorithm::create
    - std::strlen
    - Test::Result::test_ne
    - Test::Result::end_timer
    - std::vector::emplace_back
    - reinterpret_cast<const uint8_t*>
    - Test::Result::test_gte
    - Botan_Tests::Test::Result::Failure
    - what
    - Botan_Tests::Compression_Tests::rng
    - Botan_Tests::Compression_Tests::run_compression
    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:129,1
    - Dst: start
      Src: /src/botan/src/tests/test_compression.cpp:135,1
    - Dst: update
      Src: /src/botan/src/tests/test_compression.cpp:136,1
    - Dst: update
      Src: /src/botan/src/tests/test_compression.cpp:140,1
    - Dst: finish
      Src: /src/botan/src/tests/test_compression.cpp:145,1
    - Dst: start
      Src: /src/botan/src/tests/test_compression.cpp:149,1
    - Dst: update
      Src: /src/botan/src/tests/test_compression.cpp:150,1
    - Dst: finish
      Src: /src/botan/src/tests/test_compression.cpp:153,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_compression.cpp:157,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_compression.cpp:159,1
    - Dst: what
      Src: /src/botan/src/tests/test_compression.cpp:159,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_compression.cpp:163,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: 164
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 164
    functionName: Botan_Tests::Compression_Tests::run_compression
    functionSourceFile: /src/botan/src/tests/test_compression.cpp
    functionUses: 1
    functionsReached:
    - start
    - test_eq
    - update
    - finish
    - size
    - test_failure
    - what
    - Botan::secure_vector::size
    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:178,1
    - Dst: Botan::Decompression_Algorithm::create
      Src: /src/botan/src/tests/test_compression.cpp:179,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_compression.cpp:182,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_compression.cpp:185,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:185,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:185,1
    - Dst: Botan::Compression_Algorithm::create_or_throw
      Src: /src/botan/src/tests/test_compression.cpp:187,1
    - Dst: Botan::Decompression_Algorithm::create_or_throw
      Src: /src/botan/src/tests/test_compression.cpp:188,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_compression.cpp:191,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_compression.cpp:194,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:194,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:194,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_compression.cpp:196,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_compression.cpp:198,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_compression.cpp:198,1
    - Dst: what
      Src: /src/botan/src/tests/test_compression.cpp:198,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_compression.cpp:204,1
    - Dst: Botan::Compression_Algorithm::create_or_throw
      Src: /src/botan/src/tests/test_compression.cpp:205,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_compression.cpp:207,1
    - Dst: Botan::Decompression_Algorithm::create_or_throw
      Src: /src/botan/src/tests/test_compression.cpp:208,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_compression.cpp:210,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 214
    functionName: Botan_Tests::CompressionCreate_Tests::run
    functionSourceFile: /src/botan/src/tests/test_compression.cpp
    functionUses: 0
    functionsReached:
    - auto::name
    - Test::Result::test_throws
    - Test::Result::note_missing
    - Botan::Decompression_Algorithm::create
    - Botan::Compression_Algorithm::create
    - Test::Result::test_ne
    - std::vector::emplace_back
    - Botan::Compression_Algorithm::create_or_throw
    - Botan_Tests::Test::Result::Failure
    - what
    - Botan::Decompression_Algorithm::create_or_throw
    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:59,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_compression.cpp:65,1
    - Dst: Botan::Compression_Algorithm::create
      Src: /src/botan/src/tests/test_compression.cpp:67,1
    - Dst: Botan::Decompression_Algorithm::create
      Src: /src/botan/src/tests/test_compression.cpp:68,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_compression.cpp:71,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_compression.cpp:75,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:75,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:75,1
    - Dst: Botan_Tests::Compression_Tests::rng
      Src: /src/botan/src/tests/test_compression.cpp:79,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_compression.cpp:82,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:85,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:86,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: Test::Result::test_gte
      Src: /src/botan/src/tests/test_compression.cpp:96,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_compression.cpp:97,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_compression.cpp:102,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_compression.cpp:103,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_compression.cpp:104,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_compression.cpp:105,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_compression.cpp:106,1
    - Dst: Test::Result::test_lt
      Src: /src/botan/src/tests/test_compression.cpp:108,1
    - Dst: Test::Result::test_lt
      Src: /src/botan/src/tests/test_compression.cpp:109,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_compression.cpp:111,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_compression.cpp:113,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_compression.cpp:115,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_compression.cpp:115,1
    - Dst: what
      Src: /src/botan/src/tests/test_compression.cpp:115,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 120
    functionName: Botan_Tests::Compression_Tests::run
    functionSourceFile: /src/botan/src/tests/test_compression.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - auto::name
    - Test::Result::test_lt
    - Test::Result::note_missing
    - Botan::Decompression_Algorithm::create
    - Botan::Compression_Algorithm::create
    - std::strlen
    - Test::Result::test_ne
    - Test::Result::end_timer
    - std::vector::emplace_back
    - reinterpret_cast<const uint8_t*>
    - Test::Result::test_gte
    - Botan_Tests::Test::Result::Failure
    - what
    - Botan_Tests::Compression_Tests::rng
    - Botan_Tests::Compression_Tests::run_compression
    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:129,1
    - Dst: start
      Src: /src/botan/src/tests/test_compression.cpp:135,1
    - Dst: update
      Src: /src/botan/src/tests/test_compression.cpp:136,1
    - Dst: update
      Src: /src/botan/src/tests/test_compression.cpp:140,1
    - Dst: finish
      Src: /src/botan/src/tests/test_compression.cpp:145,1
    - Dst: start
      Src: /src/botan/src/tests/test_compression.cpp:149,1
    - Dst: update
      Src: /src/botan/src/tests/test_compression.cpp:150,1
    - Dst: finish
      Src: /src/botan/src/tests/test_compression.cpp:153,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_compression.cpp:157,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_compression.cpp:159,1
    - Dst: what
      Src: /src/botan/src/tests/test_compression.cpp:159,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_compression.cpp:163,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: 164
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 164
    functionName: Botan_Tests::Compression_Tests::run_compression
    functionSourceFile: /src/botan/src/tests/test_compression.cpp
    functionUses: 2
    functionsReached:
    - start
    - test_eq
    - update
    - finish
    - size
    - test_failure
    - what
    - Botan::secure_vector::size
    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:178,1
    - Dst: Botan::Decompression_Algorithm::create
      Src: /src/botan/src/tests/test_compression.cpp:179,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_compression.cpp:182,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_compression.cpp:185,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:185,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:185,1
    - Dst: Botan::Compression_Algorithm::create_or_throw
      Src: /src/botan/src/tests/test_compression.cpp:187,1
    - Dst: Botan::Decompression_Algorithm::create_or_throw
      Src: /src/botan/src/tests/test_compression.cpp:188,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_compression.cpp:191,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_compression.cpp:194,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:194,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:194,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_compression.cpp:196,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_compression.cpp:198,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_compression.cpp:198,1
    - Dst: what
      Src: /src/botan/src/tests/test_compression.cpp:198,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_compression.cpp:204,1
    - Dst: Botan::Compression_Algorithm::create_or_throw
      Src: /src/botan/src/tests/test_compression.cpp:205,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_compression.cpp:207,1
    - Dst: Botan::Decompression_Algorithm::create_or_throw
      Src: /src/botan/src/tests/test_compression.cpp:208,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_compression.cpp:210,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 214
    functionName: Botan_Tests::CompressionCreate_Tests::run
    functionSourceFile: /src/botan/src/tests/test_compression.cpp
    functionUses: 0
    functionsReached:
    - auto::name
    - Test::Result::test_throws
    - Test::Result::note_missing
    - Botan::Decompression_Algorithm::create
    - Botan::Compression_Algorithm::create
    - Test::Result::test_ne
    - std::vector::emplace_back
    - Botan::Compression_Algorithm::create_or_throw
    - Botan_Tests::Test::Result::Failure
    - what
    - Botan::Decompression_Algorithm::create_or_throw
    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:59,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_compression.cpp:65,1
    - Dst: Botan::Compression_Algorithm::create
      Src: /src/botan/src/tests/test_compression.cpp:67,1
    - Dst: Botan::Decompression_Algorithm::create
      Src: /src/botan/src/tests/test_compression.cpp:68,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_compression.cpp:71,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_compression.cpp:75,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:75,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:75,1
    - Dst: Botan_Tests::Compression_Tests::rng
      Src: /src/botan/src/tests/test_compression.cpp:79,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_compression.cpp:82,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:85,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:86,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: Test::Result::test_gte
      Src: /src/botan/src/tests/test_compression.cpp:96,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_compression.cpp:97,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_compression.cpp:102,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_compression.cpp:103,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_compression.cpp:104,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_compression.cpp:105,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_compression.cpp:106,1
    - Dst: Test::Result::test_lt
      Src: /src/botan/src/tests/test_compression.cpp:108,1
    - Dst: Test::Result::test_lt
      Src: /src/botan/src/tests/test_compression.cpp:109,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_compression.cpp:111,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_compression.cpp:113,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_compression.cpp:115,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_compression.cpp:115,1
    - Dst: what
      Src: /src/botan/src/tests/test_compression.cpp:115,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 120
    functionName: Botan_Tests::Compression_Tests::run
    functionSourceFile: /src/botan/src/tests/test_compression.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - auto::name
    - Test::Result::test_lt
    - Test::Result::note_missing
    - Botan::Decompression_Algorithm::create
    - Botan::Compression_Algorithm::create
    - std::strlen
    - Test::Result::test_ne
    - Test::Result::end_timer
    - std::vector::emplace_back
    - reinterpret_cast<const uint8_t*>
    - Test::Result::test_gte
    - Botan_Tests::Test::Result::Failure
    - what
    - Botan_Tests::Compression_Tests::rng
    - Botan_Tests::Compression_Tests::run_compression
    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:129,1
    - Dst: start
      Src: /src/botan/src/tests/test_compression.cpp:135,1
    - Dst: update
      Src: /src/botan/src/tests/test_compression.cpp:136,1
    - Dst: update
      Src: /src/botan/src/tests/test_compression.cpp:140,1
    - Dst: finish
      Src: /src/botan/src/tests/test_compression.cpp:145,1
    - Dst: start
      Src: /src/botan/src/tests/test_compression.cpp:149,1
    - Dst: update
      Src: /src/botan/src/tests/test_compression.cpp:150,1
    - Dst: finish
      Src: /src/botan/src/tests/test_compression.cpp:153,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_compression.cpp:157,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_compression.cpp:159,1
    - Dst: what
      Src: /src/botan/src/tests/test_compression.cpp:159,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_compression.cpp:163,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: 164
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 164
    functionName: Botan_Tests::Compression_Tests::run_compression
    functionSourceFile: /src/botan/src/tests/test_compression.cpp
    functionUses: 3
    functionsReached:
    - start
    - test_eq
    - update
    - finish
    - size
    - test_failure
    - what
    - Botan::secure_vector::size
    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:178,1
    - Dst: Botan::Decompression_Algorithm::create
      Src: /src/botan/src/tests/test_compression.cpp:179,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_compression.cpp:182,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_compression.cpp:185,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:185,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:185,1
    - Dst: Botan::Compression_Algorithm::create_or_throw
      Src: /src/botan/src/tests/test_compression.cpp:187,1
    - Dst: Botan::Decompression_Algorithm::create_or_throw
      Src: /src/botan/src/tests/test_compression.cpp:188,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_compression.cpp:191,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_compression.cpp:194,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:194,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:194,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_compression.cpp:196,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_compression.cpp:198,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_compression.cpp:198,1
    - Dst: what
      Src: /src/botan/src/tests/test_compression.cpp:198,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_compression.cpp:204,1
    - Dst: Botan::Compression_Algorithm::create_or_throw
      Src: /src/botan/src/tests/test_compression.cpp:205,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_compression.cpp:207,1
    - Dst: Botan::Decompression_Algorithm::create_or_throw
      Src: /src/botan/src/tests/test_compression.cpp:208,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_compression.cpp:210,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 214
    functionName: Botan_Tests::CompressionCreate_Tests::run
    functionSourceFile: /src/botan/src/tests/test_compression.cpp
    functionUses: 0
    functionsReached:
    - auto::name
    - Test::Result::test_throws
    - Test::Result::note_missing
    - Botan::Decompression_Algorithm::create
    - Botan::Compression_Algorithm::create
    - Test::Result::test_ne
    - std::vector::emplace_back
    - Botan::Compression_Algorithm::create_or_throw
    - Botan_Tests::Test::Result::Failure
    - what
    - Botan::Decompression_Algorithm::create_or_throw
    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:59,1
    - Dst: Test::Result::start_timer
      Src: /src/botan/src/tests/test_compression.cpp:65,1
    - Dst: Botan::Compression_Algorithm::create
      Src: /src/botan/src/tests/test_compression.cpp:67,1
    - Dst: Botan::Decompression_Algorithm::create
      Src: /src/botan/src/tests/test_compression.cpp:68,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_compression.cpp:71,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_compression.cpp:75,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:75,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:75,1
    - Dst: Botan_Tests::Compression_Tests::rng
      Src: /src/botan/src/tests/test_compression.cpp:79,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/tests/test_compression.cpp:82,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:85,1
    - Dst: Botan_Tests::Compression_Tests::run_compression
      Src: /src/botan/src/tests/test_compression.cpp:86,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: Test::Result::test_gte
      Src: /src/botan/src/tests/test_compression.cpp:96,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_compression.cpp:97,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_compression.cpp:102,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_compression.cpp:103,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_compression.cpp:104,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_compression.cpp:105,1
    - Dst: Test::Result::test_gte
      Src: /src/botan/src/tests/test_compression.cpp:106,1
    - Dst: Test::Result::test_lt
      Src: /src/botan/src/tests/test_compression.cpp:108,1
    - Dst: Test::Result::test_lt
      Src: /src/botan/src/tests/test_compression.cpp:109,1
    - Dst: Test::Result::end_timer
      Src: /src/botan/src/tests/test_compression.cpp:111,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_compression.cpp:113,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_compression.cpp:115,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_compression.cpp:115,1
    - Dst: what
      Src: /src/botan/src/tests/test_compression.cpp:115,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 120
    functionName: Botan_Tests::Compression_Tests::run
    functionSourceFile: /src/botan/src/tests/test_compression.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::start_timer
    - auto::name
    - Test::Result::test_lt
    - Test::Result::note_missing
    - Botan::Decompression_Algorithm::create
    - Botan::Compression_Algorithm::create
    - std::strlen
    - Test::Result::test_ne
    - Test::Result::end_timer
    - std::vector::emplace_back
    - reinterpret_cast<const uint8_t*>
    - Test::Result::test_gte
    - Botan_Tests::Test::Result::Failure
    - what
    - Botan_Tests::Compression_Tests::rng
    - Botan_Tests::Compression_Tests::run_compression
    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:129,1
    - Dst: start
      Src: /src/botan/src/tests/test_compression.cpp:135,1
    - Dst: update
      Src: /src/botan/src/tests/test_compression.cpp:136,1
    - Dst: update
      Src: /src/botan/src/tests/test_compression.cpp:140,1
    - Dst: finish
      Src: /src/botan/src/tests/test_compression.cpp:145,1
    - Dst: start
      Src: /src/botan/src/tests/test_compression.cpp:149,1
    - Dst: update
      Src: /src/botan/src/tests/test_compression.cpp:150,1
    - Dst: finish
      Src: /src/botan/src/tests/test_compression.cpp:153,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_compression.cpp:157,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_compression.cpp:159,1
    - Dst: what
      Src: /src/botan/src/tests/test_compression.cpp:159,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_compression.cpp:163,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: 164
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 164
    functionName: Botan_Tests::Compression_Tests::run_compression
    functionSourceFile: /src/botan/src/tests/test_compression.cpp
    functionUses: 4
    functionsReached:
    - start
    - test_eq
    - update
    - finish
    - size
    - test_failure
    - what
    - Botan::secure_vector::size
    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:178,1
    - Dst: Botan::Decompression_Algorithm::create
      Src: /src/botan/src/tests/test_compression.cpp:179,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_compression.cpp:182,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_compression.cpp:185,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:185,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:185,1
    - Dst: Botan::Compression_Algorithm::create_or_throw
      Src: /src/botan/src/tests/test_compression.cpp:187,1
    - Dst: Botan::Decompression_Algorithm::create_or_throw
      Src: /src/botan/src/tests/test_compression.cpp:188,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_compression.cpp:191,1
    - Dst: Test::Result::test_ne
      Src: /src/botan/src/tests/test_compression.cpp:194,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:194,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_compression.cpp:194,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_compression.cpp:196,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_compression.cpp:198,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_compression.cpp:198,1
    - Dst: what
      Src: /src/botan/src/tests/test_compression.cpp:198,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_compression.cpp:204,1
    - Dst: Botan::Compression_Algorithm::create_or_throw
      Src: /src/botan/src/tests/test_compression.cpp:205,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_compression.cpp:207,1
    - Dst: Botan::Decompression_Algorithm::create_or_throw
      Src: /src/botan/src/tests/test_compression.cpp:208,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/tests/test_compression.cpp:210,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 214
    functionName: Botan_Tests::CompressionCreate_Tests::run
    functionSourceFile: /src/botan/src/tests/test_compression.cpp
    functionUses: 0
    functionsReached:
    - auto::name
    - Test::Result::test_throws
    - Test::Result::note_missing
    - Botan::Decompression_Algorithm::create
    - Botan::Compression_Algorithm::create
    - Test::Result::test_ne
    - std::vector::emplace_back
    - Botan::Compression_Algorithm::create_or_throw
    - Botan_Tests::Test::Result::Failure
    - what
    - Botan::Decompression_Algorithm::create_or_throw
    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: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Roughtime::Nonce
      Src: /src/botan/src/tests/test_roughtime.cpp:33,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_roughtime.cpp:33,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_roughtime.cpp:34,1
    - Dst: Botan::Roughtime::encode_request
      Src: /src/botan/src/tests/test_roughtime.cpp:36,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_roughtime.cpp:37,1
    - Dst: Botan::typecast_copy<std::array<uint8_t, 1024>>
      Src: /src/botan/src/tests/test_roughtime.cpp:38,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_roughtime.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 41
    functionName: Botan_Tests::Roughtime_Request_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 0
    functionsReached:
    - Botan::Roughtime::Nonce
    - auto::data
    - Botan::typecast_copy<std::array<uint8_t, 1024>>
    - Test::Result::test_eq
    - Botan::Roughtime::encode_request
    - 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: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    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:56,1
    - Dst: has_key
      Src: /src/botan/src/tests/test_roughtime.cpp:57,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_roughtime.cpp:57,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_roughtime.cpp:57,1
    - Dst: Botan::Roughtime::Response::from_bits
      Src: /src/botan/src/tests/test_roughtime.cpp:61,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_roughtime.cpp:63,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_roughtime.cpp:64,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_roughtime.cpp:65,1
    - Dst: auto::validate
      Src: /src/botan/src/tests/test_roughtime.cpp:68,1
    - Dst: Botan::Ed25519_PublicKey::Ed25519_PublicKey
      Src: /src/botan/src/tests/test_roughtime.cpp:68,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_roughtime.cpp:69,1
    - Dst: Botan::Roughtime::Response::sys_microseconds64
      Src: /src/botan/src/tests/test_roughtime.cpp:71,1
    - Dst: Botan_CLI::Timer::microseconds
      Src: /src/botan/src/tests/test_roughtime.cpp:72,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_roughtime.cpp:72,1
    - Dst: Botan_CLI::Timer::microseconds
      Src: /src/botan/src/tests/test_roughtime.cpp:73,1
    - Dst: get_req_u32
      Src: /src/botan/src/tests/test_roughtime.cpp:73,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_roughtime.cpp:75,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/tests/test_roughtime.cpp:75,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_roughtime.cpp:76,1
    - Dst: auto::utc_radius
      Src: /src/botan/src/tests/test_roughtime.cpp:76,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_roughtime.cpp:77,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_roughtime.cpp:80,1
    - Dst: what
      Src: /src/botan/src/tests/test_roughtime.cpp:80,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 84
    functionName: Botan_Tests::Roughtime_Response_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 0
    functionsReached:
    - auto::utc_radius
    - Botan_CLI::Timer::microseconds
    - get_opt_bin
    - Test_Error
    - get_req_u32
    - auto::validate
    - has_key
    - Botan::Roughtime::Response::from_bits
    - Botan::Roughtime::Response::sys_microseconds64
    - std::vector<uint8_t>
    - Botan::Ed25519_PublicKey::Ed25519_PublicKey
    - Test::Result::confirm
    - get_req_u64
    - get_req_bin
    - auto::utc_midpoint
    - auto::size
    - 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: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_roughtime.cpp:97,1
    - Dst: Botan::Roughtime::Nonce
      Src: /src/botan/src/tests/test_roughtime.cpp:98,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_roughtime.cpp:98,1
    - Dst: Botan::Roughtime::Nonce
      Src: /src/botan/src/tests/test_roughtime.cpp:99,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_roughtime.cpp:99,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_roughtime.cpp:101,1
    - Dst: Botan::Roughtime::nonce_from_blind
      Src: /src/botan/src/tests/test_roughtime.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 105
    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
    - get_req_bin
    - Test::Result::test_eq
    - Botan::Roughtime::nonce_from_blind
    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:115,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_roughtime.cpp:115,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_roughtime.cpp:117,1
    - Dst: Botan::Roughtime::Nonce::get_nonce
      Src: /src/botan/src/tests/test_roughtime.cpp:118,1
    - Dst: Botan::typecast_copy<std::array<uint8_t, 64>>
      Src: /src/botan/src/tests/test_roughtime.cpp:118,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_roughtime.cpp:118,1
    - Dst: Botan::typecast_copy<std::array<uint8_t, 64>>
      Src: /src/botan/src/tests/test_roughtime.cpp:119,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_roughtime.cpp:119,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_roughtime.cpp:120,1
    - Dst: Botan::Roughtime::Nonce::get_nonce
      Src: /src/botan/src/tests/test_roughtime.cpp:121,1
    - Dst: Botan::typecast_copy<std::array<uint8_t, 64>>
      Src: /src/botan/src/tests/test_roughtime.cpp:121,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_roughtime.cpp:121,1
    - Dst: auto::push_back
      Src: /src/botan/src/tests/test_roughtime.cpp:122,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:123,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_roughtime.cpp:124,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_roughtime.cpp:125,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 129
    functionName: Botan_Tests::Roughtime::test_nonce
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - Test::Result::test_throws
    - Botan::unlock
    - auto::push_back
    - Botan::typecast_copy<std::array<uint8_t, 64>>
    - random_vec
    - Botan::Roughtime::Nonce::get_nonce
    - Test::Result::confirm
    - auto::pop_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:134,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_roughtime.cpp:135,1
    - Dst: Botan::Roughtime::Chain::links
      Src: /src/botan/src/tests/test_roughtime.cpp:135,1
    - Dst: Botan::Roughtime::Chain::responses
      Src: /src/botan/src/tests/test_roughtime.cpp:135,1
    - Dst: Botan::unlock
      Src: /src/botan/src/tests/test_roughtime.cpp:137,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_roughtime.cpp:137,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_roughtime.cpp:139,1
    - Dst: Botan::Roughtime::Chain::next_nonce
      Src: /src/botan/src/tests/test_roughtime.cpp:141,1
    - Dst: Botan::typecast_copy<std::array<uint8_t, 64>>
      Src: /src/botan/src/tests/test_roughtime.cpp:141,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_roughtime.cpp:141,1
    - Dst: Test::Result::confirm
      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: Test::Result::confirm
      Src: /src/botan/src/tests/test_roughtime.cpp:149,1
    - Dst: Botan::Roughtime::Chain::to_string
      Src: /src/botan/src/tests/test_roughtime.cpp:149,1
    - Dst: Botan::Roughtime::Chain::append
      Src: /src/botan/src/tests/test_roughtime.cpp:151,1
    - Dst: Botan::Roughtime::Chain::links
      Src: /src/botan/src/tests/test_roughtime.cpp:151,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_roughtime.cpp:152,1
    - Dst: Botan::Roughtime::Chain::links
      Src: /src/botan/src/tests/test_roughtime.cpp:152,1
    - Dst: Botan::Roughtime::Chain::responses
      Src: /src/botan/src/tests/test_roughtime.cpp:152,1
    - Dst: Botan::Roughtime::Chain::append
      Src: /src/botan/src/tests/test_roughtime.cpp:153,1
    - Dst: Botan::Roughtime::Chain::links
      Src: /src/botan/src/tests/test_roughtime.cpp:153,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_roughtime.cpp:154,1
    - Dst: Botan::Roughtime::Chain::links
      Src: /src/botan/src/tests/test_roughtime.cpp:154,1
    - Dst: Botan::Roughtime::Chain::responses
      Src: /src/botan/src/tests/test_roughtime.cpp:154,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:156,1
    - Dst: Botan::Roughtime::Chain::append
      Src: /src/botan/src/tests/test_roughtime.cpp:156,1
    - Dst: Botan::Roughtime::Chain::links
      Src: /src/botan/src/tests/test_roughtime.cpp:156,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:157,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:158,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:160,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:164,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:168,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:172,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 182
    functionName: Botan_Tests::Roughtime::test_chain
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - Test::Result::test_throws
    - Botan::Roughtime::Chain::responses
    - Botan::unlock
    - Botan::Roughtime::Chain::links
    - Botan::Roughtime::Chain::Chain
    - Botan::typecast_copy<std::array<uint8_t, 64>>
    - random_vec
    - Test::Result::confirm
    - Botan::Roughtime::Chain::next_nonce
    - Botan::Roughtime::Chain::to_string
    - Botan::Roughtime::Chain::append
    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:187,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_roughtime.cpp:194,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_roughtime.cpp:194,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_roughtime.cpp:195,1
    - Dst: name
      Src: /src/botan/src/tests/test_roughtime.cpp:195,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_roughtime.cpp:196,1
    - Dst: name
      Src: /src/botan/src/tests/test_roughtime.cpp:196,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_roughtime.cpp:197,1
    - Dst: public_key
      Src: /src/botan/src/tests/test_roughtime.cpp:199,1
    - Dst: Botan::Ed25519_PublicKey::Ed25519_PublicKey
      Src: /src/botan/src/tests/test_roughtime.cpp:200,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/tests/test_roughtime.cpp:200,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_roughtime.cpp:202,1
    - Dst: addresses
      Src: /src/botan/src/tests/test_roughtime.cpp:202,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_roughtime.cpp:203,1
    - Dst: addresses
      Src: /src/botan/src/tests/test_roughtime.cpp:203,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:205,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:205,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:206,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:206,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:207,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:208,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:210,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:211,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:213,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:214,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:216,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:217,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:221,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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 230
    functionName: Botan_Tests::Roughtime::test_server_information
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 0
    functionsReached:
    - Botan::Roughtime::servers_from_str
    - Test::Result::test_throws
    - name
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::Ed25519_PublicKey::Ed25519_PublicKey
    - addresses
    - Botan::base64_decode
    - auto::size
    - public_key
    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:238,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/tests/test_roughtime.cpp:238,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/test_roughtime.cpp:239,1
    - Dst: Botan::Roughtime::Response::from_bits
      Src: /src/botan/src/tests/test_roughtime.cpp:240,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/tests/test_roughtime.cpp:243,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/tests/test_roughtime.cpp:243,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/tests/test_roughtime.cpp:243,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_roughtime.cpp:244,1
    - Dst: auto::utc_radius
      Src: /src/botan/src/tests/test_roughtime.cpp:244,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_roughtime.cpp:246,1
    - Dst: what
      Src: /src/botan/src/tests/test_roughtime.cpp:246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 249
    functionName: Botan_Tests::Roughtime::test_request_online
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 0
    functionsReached:
    - auto::utc_radius
    - Test::Result::test_failure
    - Botan_CLI::Timer::seconds
    - Botan::Roughtime::online_request
    - Botan::TLS::detail::AsyncBase::complete_now
    - Botan::Roughtime::Response::from_bits
    - auto::utc_midpoint
    - Test::Result::confirm
    - 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:253,1
    - Dst: Botan_Tests::Roughtime::test_nonce
      Src: /src/botan/src/tests/test_roughtime.cpp:255,1
    - Dst: Botan_Tests::Roughtime::test_chain
      Src: /src/botan/src/tests/test_roughtime.cpp:255,1
    - Dst: Botan_Tests::Roughtime::test_server_information
      Src: /src/botan/src/tests/test_roughtime.cpp:255,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_roughtime.cpp:257,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_roughtime.cpp:258,1
    - Dst: Botan_Tests::Roughtime::test_request_online
      Src: /src/botan/src/tests/test_roughtime.cpp:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 262
    functionName: Botan_Tests::Roughtime::run
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Roughtime::test_chain
    - Botan_Tests::Roughtime::rng
    - Botan_Tests::Roughtime::test_nonce
    - std::vector::push_back
    - Botan_Tests::test_encoding_options
    - Botan_Tests::Roughtime::test_request_online
    - Botan_Tests::Roughtime::test_server_information
    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: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Roughtime::Nonce
      Src: /src/botan/src/tests/test_roughtime.cpp:33,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_roughtime.cpp:33,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_roughtime.cpp:34,1
    - Dst: Botan::Roughtime::encode_request
      Src: /src/botan/src/tests/test_roughtime.cpp:36,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_roughtime.cpp:37,1
    - Dst: Botan::typecast_copy<std::array<uint8_t, 1024>>
      Src: /src/botan/src/tests/test_roughtime.cpp:38,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_roughtime.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 41
    functionName: Botan_Tests::Roughtime_Request_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 0
    functionsReached:
    - Botan::Roughtime::Nonce
    - auto::data
    - Botan::typecast_copy<std::array<uint8_t, 1024>>
    - Test::Result::test_eq
    - Botan::Roughtime::encode_request
    - 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: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    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:56,1
    - Dst: has_key
      Src: /src/botan/src/tests/test_roughtime.cpp:57,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_roughtime.cpp:57,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_roughtime.cpp:57,1
    - Dst: Botan::Roughtime::Response::from_bits
      Src: /src/botan/src/tests/test_roughtime.cpp:61,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_roughtime.cpp:63,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_roughtime.cpp:64,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_roughtime.cpp:65,1
    - Dst: auto::validate
      Src: /src/botan/src/tests/test_roughtime.cpp:68,1
    - Dst: Botan::Ed25519_PublicKey::Ed25519_PublicKey
      Src: /src/botan/src/tests/test_roughtime.cpp:68,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_roughtime.cpp:69,1
    - Dst: Botan::Roughtime::Response::sys_microseconds64
      Src: /src/botan/src/tests/test_roughtime.cpp:71,1
    - Dst: Botan_CLI::Timer::microseconds
      Src: /src/botan/src/tests/test_roughtime.cpp:72,1
    - Dst: get_req_u64
      Src: /src/botan/src/tests/test_roughtime.cpp:72,1
    - Dst: Botan_CLI::Timer::microseconds
      Src: /src/botan/src/tests/test_roughtime.cpp:73,1
    - Dst: get_req_u32
      Src: /src/botan/src/tests/test_roughtime.cpp:73,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_roughtime.cpp:75,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/tests/test_roughtime.cpp:75,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_roughtime.cpp:76,1
    - Dst: auto::utc_radius
      Src: /src/botan/src/tests/test_roughtime.cpp:76,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_roughtime.cpp:77,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_roughtime.cpp:80,1
    - Dst: what
      Src: /src/botan/src/tests/test_roughtime.cpp:80,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 84
    functionName: Botan_Tests::Roughtime_Response_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 0
    functionsReached:
    - auto::utc_radius
    - Botan_CLI::Timer::microseconds
    - get_opt_bin
    - Test_Error
    - get_req_u32
    - auto::validate
    - has_key
    - Botan::Roughtime::Response::from_bits
    - Botan::Roughtime::Response::sys_microseconds64
    - std::vector<uint8_t>
    - Botan::Ed25519_PublicKey::Ed25519_PublicKey
    - Test::Result::confirm
    - get_req_u64
    - get_req_bin
    - auto::utc_midpoint
    - auto::size
    - 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: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_roughtime.cpp:97,1
    - Dst: Botan::Roughtime::Nonce
      Src: /src/botan/src/tests/test_roughtime.cpp:98,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_roughtime.cpp:98,1
    - Dst: Botan::Roughtime::Nonce
      Src: /src/botan/src/tests/test_roughtime.cpp:99,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_roughtime.cpp:99,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_roughtime.cpp:101,1
    - Dst: Botan::Roughtime::nonce_from_blind
      Src: /src/botan/src/tests/test_roughtime.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' type'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 105
    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
    - get_req_bin
    - Test::Result::test_eq
    - Botan::Roughtime::nonce_from_blind
    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:115,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_roughtime.cpp:115,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_roughtime.cpp:117,1
    - Dst: Botan::Roughtime::Nonce::get_nonce
      Src: /src/botan/src/tests/test_roughtime.cpp:118,1
    - Dst: Botan::typecast_copy<std::array<uint8_t, 64>>
      Src: /src/botan/src/tests/test_roughtime.cpp:118,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_roughtime.cpp:118,1
    - Dst: Botan::typecast_copy<std::array<uint8_t, 64>>
      Src: /src/botan/src/tests/test_roughtime.cpp:119,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_roughtime.cpp:119,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_roughtime.cpp:120,1
    - Dst: Botan::Roughtime::Nonce::get_nonce
      Src: /src/botan/src/tests/test_roughtime.cpp:121,1
    - Dst: Botan::typecast_copy<std::array<uint8_t, 64>>
      Src: /src/botan/src/tests/test_roughtime.cpp:121,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_roughtime.cpp:121,1
    - Dst: auto::push_back
      Src: /src/botan/src/tests/test_roughtime.cpp:122,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:123,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_roughtime.cpp:124,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_roughtime.cpp:125,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 129
    functionName: Botan_Tests::Roughtime::test_nonce
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 1
    functionsReached:
    - auto::data
    - Test::Result::test_throws
    - Botan::unlock
    - auto::push_back
    - Botan::typecast_copy<std::array<uint8_t, 64>>
    - random_vec
    - Botan::Roughtime::Nonce::get_nonce
    - Test::Result::confirm
    - auto::pop_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:134,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_roughtime.cpp:135,1
    - Dst: Botan::Roughtime::Chain::links
      Src: /src/botan/src/tests/test_roughtime.cpp:135,1
    - Dst: Botan::Roughtime::Chain::responses
      Src: /src/botan/src/tests/test_roughtime.cpp:135,1
    - Dst: Botan::unlock
      Src: /src/botan/src/tests/test_roughtime.cpp:137,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_roughtime.cpp:137,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_roughtime.cpp:139,1
    - Dst: Botan::Roughtime::Chain::next_nonce
      Src: /src/botan/src/tests/test_roughtime.cpp:141,1
    - Dst: Botan::typecast_copy<std::array<uint8_t, 64>>
      Src: /src/botan/src/tests/test_roughtime.cpp:141,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_roughtime.cpp:141,1
    - Dst: Test::Result::confirm
      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: Test::Result::confirm
      Src: /src/botan/src/tests/test_roughtime.cpp:149,1
    - Dst: Botan::Roughtime::Chain::to_string
      Src: /src/botan/src/tests/test_roughtime.cpp:149,1
    - Dst: Botan::Roughtime::Chain::append
      Src: /src/botan/src/tests/test_roughtime.cpp:151,1
    - Dst: Botan::Roughtime::Chain::links
      Src: /src/botan/src/tests/test_roughtime.cpp:151,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_roughtime.cpp:152,1
    - Dst: Botan::Roughtime::Chain::links
      Src: /src/botan/src/tests/test_roughtime.cpp:152,1
    - Dst: Botan::Roughtime::Chain::responses
      Src: /src/botan/src/tests/test_roughtime.cpp:152,1
    - Dst: Botan::Roughtime::Chain::append
      Src: /src/botan/src/tests/test_roughtime.cpp:153,1
    - Dst: Botan::Roughtime::Chain::links
      Src: /src/botan/src/tests/test_roughtime.cpp:153,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_roughtime.cpp:154,1
    - Dst: Botan::Roughtime::Chain::links
      Src: /src/botan/src/tests/test_roughtime.cpp:154,1
    - Dst: Botan::Roughtime::Chain::responses
      Src: /src/botan/src/tests/test_roughtime.cpp:154,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:156,1
    - Dst: Botan::Roughtime::Chain::append
      Src: /src/botan/src/tests/test_roughtime.cpp:156,1
    - Dst: Botan::Roughtime::Chain::links
      Src: /src/botan/src/tests/test_roughtime.cpp:156,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:157,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:158,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:160,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:164,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:168,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:172,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:176,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 182
    functionName: Botan_Tests::Roughtime::test_chain
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 1
    functionsReached:
    - auto::data
    - Test::Result::test_throws
    - Botan::Roughtime::Chain::responses
    - Botan::unlock
    - Botan::Roughtime::Chain::links
    - Botan::Roughtime::Chain::Chain
    - Botan::typecast_copy<std::array<uint8_t, 64>>
    - random_vec
    - Test::Result::confirm
    - Botan::Roughtime::Chain::next_nonce
    - Botan::Roughtime::Chain::to_string
    - Botan::Roughtime::Chain::append
    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:187,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_roughtime.cpp:194,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_roughtime.cpp:194,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_roughtime.cpp:195,1
    - Dst: name
      Src: /src/botan/src/tests/test_roughtime.cpp:195,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_roughtime.cpp:196,1
    - Dst: name
      Src: /src/botan/src/tests/test_roughtime.cpp:196,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_roughtime.cpp:197,1
    - Dst: public_key
      Src: /src/botan/src/tests/test_roughtime.cpp:199,1
    - Dst: Botan::Ed25519_PublicKey::Ed25519_PublicKey
      Src: /src/botan/src/tests/test_roughtime.cpp:200,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/tests/test_roughtime.cpp:200,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_roughtime.cpp:202,1
    - Dst: addresses
      Src: /src/botan/src/tests/test_roughtime.cpp:202,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_roughtime.cpp:203,1
    - Dst: addresses
      Src: /src/botan/src/tests/test_roughtime.cpp:203,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:205,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:205,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:206,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:206,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:207,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:208,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:210,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:211,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:213,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:214,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_roughtime.cpp:216,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/tests/test_roughtime.cpp:217,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:221,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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 230
    functionName: Botan_Tests::Roughtime::test_server_information
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 1
    functionsReached:
    - Botan::Roughtime::servers_from_str
    - Test::Result::test_throws
    - name
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::Ed25519_PublicKey::Ed25519_PublicKey
    - addresses
    - Botan::base64_decode
    - auto::size
    - public_key
    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:238,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/tests/test_roughtime.cpp:238,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/test_roughtime.cpp:239,1
    - Dst: Botan::Roughtime::Response::from_bits
      Src: /src/botan/src/tests/test_roughtime.cpp:240,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/tests/test_roughtime.cpp:243,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/tests/test_roughtime.cpp:243,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/tests/test_roughtime.cpp:243,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_roughtime.cpp:244,1
    - Dst: auto::utc_radius
      Src: /src/botan/src/tests/test_roughtime.cpp:244,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_roughtime.cpp:246,1
    - Dst: what
      Src: /src/botan/src/tests/test_roughtime.cpp:246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 249
    functionName: Botan_Tests::Roughtime::test_request_online
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 1
    functionsReached:
    - auto::utc_radius
    - Test::Result::test_failure
    - Botan_CLI::Timer::seconds
    - Botan::Roughtime::online_request
    - Botan::TLS::detail::AsyncBase::complete_now
    - Botan::Roughtime::Response::from_bits
    - auto::utc_midpoint
    - Test::Result::confirm
    - 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:253,1
    - Dst: Botan_Tests::Roughtime::test_nonce
      Src: /src/botan/src/tests/test_roughtime.cpp:255,1
    - Dst: Botan_Tests::Roughtime::test_chain
      Src: /src/botan/src/tests/test_roughtime.cpp:255,1
    - Dst: Botan_Tests::Roughtime::test_server_information
      Src: /src/botan/src/tests/test_roughtime.cpp:255,1
    - Dst: Botan_Tests::test_encoding_options
      Src: /src/botan/src/tests/test_roughtime.cpp:257,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_roughtime.cpp:258,1
    - Dst: Botan_Tests::Roughtime::test_request_online
      Src: /src/botan/src/tests/test_roughtime.cpp:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 262
    functionName: Botan_Tests::Roughtime::run
    functionSourceFile: /src/botan/src/tests/test_roughtime.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Roughtime::test_chain
    - Botan_Tests::Roughtime::rng
    - Botan_Tests::Roughtime::test_nonce
    - std::vector::push_back
    - Botan_Tests::test_encoding_options
    - Botan_Tests::Roughtime::test_request_online
    - Botan_Tests::Roughtime::test_server_information
    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_eq
      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_eq
      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:
    - Botan::check_bcrypt
    - std::vector::data
    - Botan_Tests::Bcrypt_Tests::rng
    - Test::Result::test_eq
    - reinterpret_cast<const char*>
    - get_req_bin
    - std::vector::size
    - get_req_str
    - Botan::generate_bcrypt
    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_eq
      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::test_throws
    - Botan::check_bcrypt
    - Botan_Tests::Test::run_long_tests
    - Botan_Tests::Bcrypt_Tests::rng
    - Test::Result::set_ns_consumed
    - Test::Result::test_eq
    - Botan_Tests::Test::timestamp
    - Botan::generate_bcrypt
    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_eq
      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_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_eq
      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:
    - Botan::argon2_generate_pwhash
    - std::string::size
    - get_req_bin
    - Test_Error
    - get_req_u8
    - get_req_sz
    - Test::Result::test_eq
    - std::string::data
    - std::vector::size
    - get_req_str
    - Botan::argon2_check_pwhash
    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_eq
      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_eq
      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_eq
      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:
    - Botan::generate_passhash9
    - Botan_Tests::Test::run_long_tests
    - Botan::is_passhash9_alg_supported
    - std::vector::data
    - get_req_sz
    - Test::Result::test_eq
    - Botan::check_passhash9
    - reinterpret_cast<const char*>
    - get_req_bin
    - std::vector::size
    - Botan_Tests::Passhash9_Tests::rng
    - get_req_str
    - Test::Result::test_note
    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::confirm
      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:
    - Test::Result::test_throws
    - Botan::generate_passhash9
    - Botan::is_passhash9_alg_supported
    - Test::Result::confirm
    - Botan::check_passhash9
    - Botan_Tests::Passhash9_Tests::rng
    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_eq
      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_eq
      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:
    - Botan::check_bcrypt
    - std::vector::data
    - Botan_Tests::Bcrypt_Tests::rng
    - Test::Result::test_eq
    - reinterpret_cast<const char*>
    - get_req_bin
    - std::vector::size
    - get_req_str
    - Botan::generate_bcrypt
    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_eq
      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::test_throws
    - Botan::check_bcrypt
    - Botan_Tests::Test::run_long_tests
    - Botan_Tests::Bcrypt_Tests::rng
    - Test::Result::set_ns_consumed
    - Test::Result::test_eq
    - Botan_Tests::Test::timestamp
    - Botan::generate_bcrypt
    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_eq
      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_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_eq
      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:
    - Botan::argon2_generate_pwhash
    - std::string::size
    - get_req_bin
    - Test_Error
    - get_req_u8
    - get_req_sz
    - Test::Result::test_eq
    - std::string::data
    - std::vector::size
    - get_req_str
    - Botan::argon2_check_pwhash
    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_eq
      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_eq
      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_eq
      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:
    - Botan::generate_passhash9
    - Botan_Tests::Test::run_long_tests
    - Botan::is_passhash9_alg_supported
    - std::vector::data
    - get_req_sz
    - Test::Result::test_eq
    - Botan::check_passhash9
    - reinterpret_cast<const char*>
    - get_req_bin
    - std::vector::size
    - Botan_Tests::Passhash9_Tests::rng
    - get_req_str
    - Test::Result::test_note
    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::confirm
      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:
    - Test::Result::test_throws
    - Botan::generate_passhash9
    - Botan::is_passhash9_alg_supported
    - Test::Result::confirm
    - Botan::check_passhash9
    - Botan_Tests::Passhash9_Tests::rng
    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_eq
      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_eq
      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:
    - Botan::check_bcrypt
    - std::vector::data
    - Botan_Tests::Bcrypt_Tests::rng
    - Test::Result::test_eq
    - reinterpret_cast<const char*>
    - get_req_bin
    - std::vector::size
    - get_req_str
    - Botan::generate_bcrypt
    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_eq
      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::test_throws
    - Botan::check_bcrypt
    - Botan_Tests::Test::run_long_tests
    - Botan_Tests::Bcrypt_Tests::rng
    - Test::Result::set_ns_consumed
    - Test::Result::test_eq
    - Botan_Tests::Test::timestamp
    - Botan::generate_bcrypt
    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_eq
      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_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_eq
      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:
    - Botan::argon2_generate_pwhash
    - std::string::size
    - get_req_bin
    - Test_Error
    - get_req_u8
    - get_req_sz
    - Test::Result::test_eq
    - std::string::data
    - std::vector::size
    - get_req_str
    - Botan::argon2_check_pwhash
    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_eq
      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_eq
      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_eq
      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:
    - Botan::generate_passhash9
    - Botan_Tests::Test::run_long_tests
    - Botan::is_passhash9_alg_supported
    - std::vector::data
    - get_req_sz
    - Test::Result::test_eq
    - Botan::check_passhash9
    - reinterpret_cast<const char*>
    - get_req_bin
    - std::vector::size
    - Botan_Tests::Passhash9_Tests::rng
    - get_req_str
    - Test::Result::test_note
    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::confirm
      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:
    - Test::Result::test_throws
    - Botan::generate_passhash9
    - Botan::is_passhash9_alg_supported
    - Test::Result::confirm
    - Botan::check_passhash9
    - Botan_Tests::Passhash9_Tests::rng
    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_eq
      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_eq
      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:
    - Botan::check_bcrypt
    - std::vector::data
    - Botan_Tests::Bcrypt_Tests::rng
    - Test::Result::test_eq
    - reinterpret_cast<const char*>
    - get_req_bin
    - std::vector::size
    - get_req_str
    - Botan::generate_bcrypt
    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_eq
      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::test_throws
    - Botan::check_bcrypt
    - Botan_Tests::Test::run_long_tests
    - Botan_Tests::Bcrypt_Tests::rng
    - Test::Result::set_ns_consumed
    - Test::Result::test_eq
    - Botan_Tests::Test::timestamp
    - Botan::generate_bcrypt
    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_eq
      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_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_eq
      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:
    - Botan::argon2_generate_pwhash
    - std::string::size
    - get_req_bin
    - Test_Error
    - get_req_u8
    - get_req_sz
    - Test::Result::test_eq
    - std::string::data
    - std::vector::size
    - get_req_str
    - Botan::argon2_check_pwhash
    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_eq
      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_eq
      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_eq
      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:
    - Botan::generate_passhash9
    - Botan_Tests::Test::run_long_tests
    - Botan::is_passhash9_alg_supported
    - std::vector::data
    - get_req_sz
    - Test::Result::test_eq
    - Botan::check_passhash9
    - reinterpret_cast<const char*>
    - get_req_bin
    - std::vector::size
    - Botan_Tests::Passhash9_Tests::rng
    - get_req_str
    - Test::Result::test_note
    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::confirm
      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:
    - Test::Result::test_throws
    - Botan::generate_passhash9
    - Botan::is_passhash9_alg_supported
    - Test::Result::confirm
    - Botan::check_passhash9
    - Botan_Tests::Passhash9_Tests::rng
    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: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    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:27,1
    - Dst: get_req_sz
      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_bin_list
      Src: /src/botan/src/tests/test_tss.cpp:30,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_tss.cpp:34,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:34,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tss.cpp:37,1
    - Dst: Botan::RTSS_Share
      Src: /src/botan/src/tests/test_tss.cpp:37,1
    - Dst: data
      Src: /src/botan/src/tests/test_tss.cpp:37,1
    - Dst: size
      Src: /src/botan/src/tests/test_tss.cpp:37,1
    - Dst: Botan::RTSS_Share::reconstruct
      Src: /src/botan/src/tests/test_tss.cpp:40,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tss.cpp:41,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tss.cpp:44,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:48,1
    - Dst: Botan_Tests::TSS_Recovery_Tests::rng
      Src: /src/botan/src/tests/test_tss.cpp:49,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:49,1
    - Dst: std::vector::erase
      Src: /src/botan/src/tests/test_tss.cpp:50,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tss.cpp:50,1
    - Dst: Botan::RTSS_Share::reconstruct
      Src: /src/botan/src/tests/test_tss.cpp:52,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tss.cpp:53,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tss.cpp:55,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_tss.cpp:55,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:55,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tss.cpp:62,1
    - Dst: what
      Src: /src/botan/src/tests/test_tss.cpp:62,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tss.cpp:64,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 69
    functionName: Botan_Tests::TSS_Recovery_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tss.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - std::vector::push_back
    - data
    - Botan::RTSS_Share::reconstruct
    - Test::Result::test_failure
    - size
    - Botan_Tests::TSS_Recovery_Tests::rng
    - get_req_sz
    - std::vector::erase
    - Test::Result::test_eq
    - std::vector::size
    - what
    - std::to_string
    - Botan::RTSS_Share
    - get_req_bin
    - get_req_bin_list
    - Test::Result::test_success
    - std::vector::reserve
    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: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    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:86,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ' hash'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 88
    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:93,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tss.cpp:94,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tss.cpp:95,1
    - Dst: get_req_u8
      Src: /src/botan/src/tests/test_tss.cpp:96,1
    - Dst: get_req_u8
      Src: /src/botan/src/tests/test_tss.cpp:97,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tss.cpp:98,1
    - Dst: get_req_bin_list
      Src: /src/botan/src/tests/test_tss.cpp:99,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:101,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tss.cpp:102,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:105,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:105,1
    - Dst: Botan_Tests::TSS_Generation_Tests::tss_hash_len
      Src: /src/botan/src/tests/test_tss.cpp:105,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tss.cpp:106,1
    - Dst: Botan::RTSS_Share::split
      Src: /src/botan/src/tests/test_tss.cpp:112,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_tss.cpp:112,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tss.cpp:112,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:112,1
    - Dst: Test::Result::test_eq
      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_eq
      Src: /src/botan/src/tests/test_tss.cpp:117,1
    - Dst: data
      Src: /src/botan/src/tests/test_tss.cpp:117,1
    - Dst: Botan::RTSS_Share::reconstruct
      Src: /src/botan/src/tests/test_tss.cpp:120,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tss.cpp:121,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:124,1
    - Dst: Botan_Tests::TSS_Generation_Tests::rng
      Src: /src/botan/src/tests/test_tss.cpp:125,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:125,1
    - Dst: std::vector::erase
      Src: /src/botan/src/tests/test_tss.cpp:126,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tss.cpp:126,1
    - Dst: Botan::RTSS_Share::reconstruct
      Src: /src/botan/src/tests/test_tss.cpp:129,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tss.cpp:130,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tss.cpp:132,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_tss.cpp:132,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:132,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 138
    functionName: Botan_Tests::TSS_Generation_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tss.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - static_cast<uint16_t>
    - Test_Error
    - data
    - Botan::RTSS_Share::reconstruct
    - std::to_string
    - Test::Result::test_failure
    - Botan_Tests::TSS_Generation_Tests::rng
    - get_req_u8
    - std::vector::data
    - std::vector::erase
    - Test::Result::test_eq
    - get_req_bin_list
    - Botan::RTSS_Share::split
    - get_req_bin
    - std::vector::size
    - get_req_str
    - Botan_Tests::TSS_Generation_Tests::tss_hash_len
    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: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    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:27,1
    - Dst: get_req_sz
      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_bin_list
      Src: /src/botan/src/tests/test_tss.cpp:30,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_tss.cpp:34,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:34,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tss.cpp:37,1
    - Dst: Botan::RTSS_Share
      Src: /src/botan/src/tests/test_tss.cpp:37,1
    - Dst: data
      Src: /src/botan/src/tests/test_tss.cpp:37,1
    - Dst: size
      Src: /src/botan/src/tests/test_tss.cpp:37,1
    - Dst: Botan::RTSS_Share::reconstruct
      Src: /src/botan/src/tests/test_tss.cpp:40,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tss.cpp:41,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tss.cpp:44,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:48,1
    - Dst: Botan_Tests::TSS_Recovery_Tests::rng
      Src: /src/botan/src/tests/test_tss.cpp:49,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:49,1
    - Dst: std::vector::erase
      Src: /src/botan/src/tests/test_tss.cpp:50,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tss.cpp:50,1
    - Dst: Botan::RTSS_Share::reconstruct
      Src: /src/botan/src/tests/test_tss.cpp:52,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tss.cpp:53,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tss.cpp:55,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_tss.cpp:55,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:55,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tss.cpp:62,1
    - Dst: what
      Src: /src/botan/src/tests/test_tss.cpp:62,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tss.cpp:64,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 69
    functionName: Botan_Tests::TSS_Recovery_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tss.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - std::vector::push_back
    - data
    - Botan::RTSS_Share::reconstruct
    - Test::Result::test_failure
    - size
    - Botan_Tests::TSS_Recovery_Tests::rng
    - get_req_sz
    - std::vector::erase
    - Test::Result::test_eq
    - std::vector::size
    - what
    - std::to_string
    - Botan::RTSS_Share
    - get_req_bin
    - get_req_bin_list
    - Test::Result::test_success
    - std::vector::reserve
    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: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    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:86,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ' hash'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 88
    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:93,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tss.cpp:94,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tss.cpp:95,1
    - Dst: get_req_u8
      Src: /src/botan/src/tests/test_tss.cpp:96,1
    - Dst: get_req_u8
      Src: /src/botan/src/tests/test_tss.cpp:97,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tss.cpp:98,1
    - Dst: get_req_bin_list
      Src: /src/botan/src/tests/test_tss.cpp:99,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:101,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tss.cpp:102,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:105,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:105,1
    - Dst: Botan_Tests::TSS_Generation_Tests::tss_hash_len
      Src: /src/botan/src/tests/test_tss.cpp:105,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tss.cpp:106,1
    - Dst: Botan::RTSS_Share::split
      Src: /src/botan/src/tests/test_tss.cpp:112,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_tss.cpp:112,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tss.cpp:112,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:112,1
    - Dst: Test::Result::test_eq
      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_eq
      Src: /src/botan/src/tests/test_tss.cpp:117,1
    - Dst: data
      Src: /src/botan/src/tests/test_tss.cpp:117,1
    - Dst: Botan::RTSS_Share::reconstruct
      Src: /src/botan/src/tests/test_tss.cpp:120,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tss.cpp:121,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:124,1
    - Dst: Botan_Tests::TSS_Generation_Tests::rng
      Src: /src/botan/src/tests/test_tss.cpp:125,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:125,1
    - Dst: std::vector::erase
      Src: /src/botan/src/tests/test_tss.cpp:126,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tss.cpp:126,1
    - Dst: Botan::RTSS_Share::reconstruct
      Src: /src/botan/src/tests/test_tss.cpp:129,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tss.cpp:130,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tss.cpp:132,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_tss.cpp:132,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:132,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 138
    functionName: Botan_Tests::TSS_Generation_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tss.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - static_cast<uint16_t>
    - Test_Error
    - data
    - Botan::RTSS_Share::reconstruct
    - std::to_string
    - Test::Result::test_failure
    - Botan_Tests::TSS_Generation_Tests::rng
    - get_req_u8
    - std::vector::data
    - std::vector::erase
    - Test::Result::test_eq
    - get_req_bin_list
    - Botan::RTSS_Share::split
    - get_req_bin
    - std::vector::size
    - get_req_str
    - Botan_Tests::TSS_Generation_Tests::tss_hash_len
    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: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    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:27,1
    - Dst: get_req_sz
      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_bin_list
      Src: /src/botan/src/tests/test_tss.cpp:30,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_tss.cpp:34,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:34,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tss.cpp:37,1
    - Dst: Botan::RTSS_Share
      Src: /src/botan/src/tests/test_tss.cpp:37,1
    - Dst: data
      Src: /src/botan/src/tests/test_tss.cpp:37,1
    - Dst: size
      Src: /src/botan/src/tests/test_tss.cpp:37,1
    - Dst: Botan::RTSS_Share::reconstruct
      Src: /src/botan/src/tests/test_tss.cpp:40,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tss.cpp:41,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tss.cpp:44,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:48,1
    - Dst: Botan_Tests::TSS_Recovery_Tests::rng
      Src: /src/botan/src/tests/test_tss.cpp:49,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:49,1
    - Dst: std::vector::erase
      Src: /src/botan/src/tests/test_tss.cpp:50,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tss.cpp:50,1
    - Dst: Botan::RTSS_Share::reconstruct
      Src: /src/botan/src/tests/test_tss.cpp:52,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tss.cpp:53,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tss.cpp:55,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_tss.cpp:55,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:55,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tss.cpp:62,1
    - Dst: what
      Src: /src/botan/src/tests/test_tss.cpp:62,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tss.cpp:64,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 69
    functionName: Botan_Tests::TSS_Recovery_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tss.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - std::vector::push_back
    - data
    - Botan::RTSS_Share::reconstruct
    - Test::Result::test_failure
    - size
    - Botan_Tests::TSS_Recovery_Tests::rng
    - get_req_sz
    - std::vector::erase
    - Test::Result::test_eq
    - std::vector::size
    - what
    - std::to_string
    - Botan::RTSS_Share
    - get_req_bin
    - get_req_bin_list
    - Test::Result::test_success
    - std::vector::reserve
    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: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    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:86,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ' hash'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 88
    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:93,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tss.cpp:94,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tss.cpp:95,1
    - Dst: get_req_u8
      Src: /src/botan/src/tests/test_tss.cpp:96,1
    - Dst: get_req_u8
      Src: /src/botan/src/tests/test_tss.cpp:97,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tss.cpp:98,1
    - Dst: get_req_bin_list
      Src: /src/botan/src/tests/test_tss.cpp:99,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:101,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tss.cpp:102,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:105,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:105,1
    - Dst: Botan_Tests::TSS_Generation_Tests::tss_hash_len
      Src: /src/botan/src/tests/test_tss.cpp:105,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tss.cpp:106,1
    - Dst: Botan::RTSS_Share::split
      Src: /src/botan/src/tests/test_tss.cpp:112,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_tss.cpp:112,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tss.cpp:112,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:112,1
    - Dst: Test::Result::test_eq
      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_eq
      Src: /src/botan/src/tests/test_tss.cpp:117,1
    - Dst: data
      Src: /src/botan/src/tests/test_tss.cpp:117,1
    - Dst: Botan::RTSS_Share::reconstruct
      Src: /src/botan/src/tests/test_tss.cpp:120,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tss.cpp:121,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:124,1
    - Dst: Botan_Tests::TSS_Generation_Tests::rng
      Src: /src/botan/src/tests/test_tss.cpp:125,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:125,1
    - Dst: std::vector::erase
      Src: /src/botan/src/tests/test_tss.cpp:126,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tss.cpp:126,1
    - Dst: Botan::RTSS_Share::reconstruct
      Src: /src/botan/src/tests/test_tss.cpp:129,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tss.cpp:130,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tss.cpp:132,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_tss.cpp:132,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:132,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 138
    functionName: Botan_Tests::TSS_Generation_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tss.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - static_cast<uint16_t>
    - Test_Error
    - data
    - Botan::RTSS_Share::reconstruct
    - std::to_string
    - Test::Result::test_failure
    - Botan_Tests::TSS_Generation_Tests::rng
    - get_req_u8
    - std::vector::data
    - std::vector::erase
    - Test::Result::test_eq
    - get_req_bin_list
    - Botan::RTSS_Share::split
    - get_req_bin
    - std::vector::size
    - get_req_str
    - Botan_Tests::TSS_Generation_Tests::tss_hash_len
    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: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    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:27,1
    - Dst: get_req_sz
      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_bin_list
      Src: /src/botan/src/tests/test_tss.cpp:30,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/tests/test_tss.cpp:34,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:34,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tss.cpp:37,1
    - Dst: Botan::RTSS_Share
      Src: /src/botan/src/tests/test_tss.cpp:37,1
    - Dst: data
      Src: /src/botan/src/tests/test_tss.cpp:37,1
    - Dst: size
      Src: /src/botan/src/tests/test_tss.cpp:37,1
    - Dst: Botan::RTSS_Share::reconstruct
      Src: /src/botan/src/tests/test_tss.cpp:40,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tss.cpp:41,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tss.cpp:44,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:48,1
    - Dst: Botan_Tests::TSS_Recovery_Tests::rng
      Src: /src/botan/src/tests/test_tss.cpp:49,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:49,1
    - Dst: std::vector::erase
      Src: /src/botan/src/tests/test_tss.cpp:50,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tss.cpp:50,1
    - Dst: Botan::RTSS_Share::reconstruct
      Src: /src/botan/src/tests/test_tss.cpp:52,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tss.cpp:53,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tss.cpp:55,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_tss.cpp:55,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:55,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tss.cpp:62,1
    - Dst: what
      Src: /src/botan/src/tests/test_tss.cpp:62,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tss.cpp:64,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - ' header'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 69
    functionName: Botan_Tests::TSS_Recovery_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tss.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - std::vector::push_back
    - data
    - Botan::RTSS_Share::reconstruct
    - Test::Result::test_failure
    - size
    - Botan_Tests::TSS_Recovery_Tests::rng
    - get_req_sz
    - std::vector::erase
    - Test::Result::test_eq
    - std::vector::size
    - what
    - std::to_string
    - Botan::RTSS_Share
    - get_req_bin
    - get_req_bin_list
    - Test::Result::test_success
    - std::vector::reserve
    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: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    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:86,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ' hash'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 88
    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:93,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tss.cpp:94,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tss.cpp:95,1
    - Dst: get_req_u8
      Src: /src/botan/src/tests/test_tss.cpp:96,1
    - Dst: get_req_u8
      Src: /src/botan/src/tests/test_tss.cpp:97,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tss.cpp:98,1
    - Dst: get_req_bin_list
      Src: /src/botan/src/tests/test_tss.cpp:99,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:101,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tss.cpp:102,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:105,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:105,1
    - Dst: Botan_Tests::TSS_Generation_Tests::tss_hash_len
      Src: /src/botan/src/tests/test_tss.cpp:105,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tss.cpp:106,1
    - Dst: Botan::RTSS_Share::split
      Src: /src/botan/src/tests/test_tss.cpp:112,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_tss.cpp:112,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tss.cpp:112,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:112,1
    - Dst: Test::Result::test_eq
      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_eq
      Src: /src/botan/src/tests/test_tss.cpp:117,1
    - Dst: data
      Src: /src/botan/src/tests/test_tss.cpp:117,1
    - Dst: Botan::RTSS_Share::reconstruct
      Src: /src/botan/src/tests/test_tss.cpp:120,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tss.cpp:121,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:124,1
    - Dst: Botan_Tests::TSS_Generation_Tests::rng
      Src: /src/botan/src/tests/test_tss.cpp:125,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:125,1
    - Dst: std::vector::erase
      Src: /src/botan/src/tests/test_tss.cpp:126,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tss.cpp:126,1
    - Dst: Botan::RTSS_Share::reconstruct
      Src: /src/botan/src/tests/test_tss.cpp:129,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tss.cpp:130,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tss.cpp:132,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_tss.cpp:132,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tss.cpp:132,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 138
    functionName: Botan_Tests::TSS_Generation_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tss.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - static_cast<uint16_t>
    - Test_Error
    - data
    - Botan::RTSS_Share::reconstruct
    - std::to_string
    - Test::Result::test_failure
    - Botan_Tests::TSS_Generation_Tests::rng
    - get_req_u8
    - std::vector::data
    - std::vector::erase
    - Test::Result::test_eq
    - get_req_bin_list
    - Botan::RTSS_Share::split
    - get_req_bin
    - std::vector::size
    - get_req_str
    - Botan_Tests::TSS_Generation_Tests::tss_hash_len
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& /*header*/, const VarMap&
      vars) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/botan/src/tests/test_utils_buffer.cpp:23,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils_buffer.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' container'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: Botan_Tests::v
    functionSourceFile: /src/botan/src/tests/test_utils_buffer.cpp
    functionUses: 4
    functionsReached:
    - begin
    - end
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> v(const T& container)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:30,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:34,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:34,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:35,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:35,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:36,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:36,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:38,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:38,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:39,1
    - Dst: Botan::BufferSlicer::skip
      Src: /src/botan/src/tests/test_utils_buffer.cpp:39,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:40,1
    - Dst: Botan::BufferSlicer::copy_as_vector
      Src: /src/botan/src/tests/test_utils_buffer.cpp:40,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:43,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:48,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:48,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:48,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:49,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:49,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:51,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:52,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:52,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:53,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:54,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:55,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:56,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:57,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:59,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:59,1
    - Dst: Botan::BufferSlicer::skip
      Src: /src/botan/src/tests/test_utils_buffer.cpp:61,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:62,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:62,1
    - Dst: Botan::BufferSlicer::copy_as_vector
      Src: /src/botan/src/tests/test_utils_buffer.cpp:64,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:65,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:65,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:66,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:67,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:68,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:69,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:69,1
    - Dst: Botan::BufferSlicer::copy_into
      Src: /src/botan/src/tests/test_utils_buffer.cpp:72,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:73,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:74,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:75,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:75,1
    - Dst: Botan::BufferSlicer::skip
      Src: /src/botan/src/tests/test_utils_buffer.cpp:77,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:78,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:78,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:80,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:81,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:82,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:83,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:85,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:85,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:86,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:86,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:88,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:88,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:89,1
    - Dst: Botan::BufferSlicer::skip
      Src: /src/botan/src/tests/test_utils_buffer.cpp:89,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:90,1
    - Dst: Botan::BufferSlicer::copy_as_vector
      Src: /src/botan/src/tests/test_utils_buffer.cpp:90,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:93,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:98,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:99,1
    - Dst: Botan::BufferSlicer::copy
      Src: /src/botan/src/tests/test_utils_buffer.cpp:100,1
    - Dst: Botan::BufferSlicer::copy_as_vector
      Src: /src/botan/src/tests/test_utils_buffer.cpp:101,1
    - Dst: Botan::BufferSlicer::copy_as_secure_vector
      Src: /src/botan/src/tests/test_utils_buffer.cpp:102,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:103,1
    - Dst: Botan::BufferSlicer::copy_into
      Src: /src/botan/src/tests/test_utils_buffer.cpp:104,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:106,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 28
    functionDepth: 3
    functionLinenumber: 28
    functionLinenumberEnd: 110
    functionName: Botan_Tests::test_buffer_slicer
    functionSourceFile: /src/botan/src/tests/test_utils_buffer.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan::BufferSlicer::copy_into
    - Botan_Tests::CHECK
    - Botan::BufferSlicer::take
    - test_throws
    - Botan::BufferSlicer::copy_as_vector
    - Botan::BufferSlicer::copy
    - Botan::BufferSlicer::copy_as_secure_vector
    - Botan::BufferSlicer::empty
    - Botan::concat<std::vector<uint8_t>>
    - Botan::BufferSlicer::skip
    - require
    - Botan::BufferSlicer::remaining
    - std::vector::size
    - auto::size
    - test_is_eq
    - confirm
    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:114,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:119,1
    - Dst: Botan::BufferStuffer::remaining_capacity
      Src: /src/botan/src/tests/test_utils_buffer.cpp:119,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:120,1
    - Dst: Botan::BufferStuffer::full
      Src: /src/botan/src/tests/test_utils_buffer.cpp:120,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:121,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:121,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:123,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:123,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:124,1
    - Dst: Botan::BufferStuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:126,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:130,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:135,1
    - Dst: Botan::BufferStuffer::remaining_capacity
      Src: /src/botan/src/tests/test_utils_buffer.cpp:135,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:135,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:136,1
    - Dst: Botan::BufferStuffer::full
      Src: /src/botan/src/tests/test_utils_buffer.cpp:136,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:138,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:139,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:139,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:146,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:147,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:147,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_utils_buffer.cpp:149,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_utils_buffer.cpp:150,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_utils_buffer.cpp:151,1
    - Dst: test_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::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:156,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:158,1
    - Dst: Botan::BufferStuffer::remaining_capacity
      Src: /src/botan/src/tests/test_utils_buffer.cpp:158,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:160,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:161,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:161,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:162,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:163,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:168,1
    - Dst: Botan::BufferStuffer::full
      Src: /src/botan/src/tests/test_utils_buffer.cpp:168,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:170,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:170,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:171,1
    - Dst: Botan::BufferStuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:173,1
    - Dst: Botan::cast_uint8_ptr_to_char
      Src: /src/botan/src/tests/test_utils_buffer.cpp:176,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:176,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:176,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 112
    functionDepth: 3
    functionLinenumber: 112
    functionLinenumberEnd: 180
    functionName: Botan_Tests::test_buffer_stuffer
    functionSourceFile: /src/botan/src/tests/test_utils_buffer.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan::BufferStuffer::full
    - Botan_Tests::CHECK
    - Botan::cast_uint8_ptr_to_char
    - test_throws
    - Botan::BufferStuffer::next
    - std::vector::data
    - auto::get
    - require
    - auto::size
    - std::vector::size
    - Botan::BufferStuffer::remaining_capacity
    - confirm
    - Botan::BufferStuffer::append
    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:189,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:191,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:192,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:192,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:193,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:193,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:194,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:194,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:195,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:195,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:196,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:196,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:199,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:201,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:203,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:205,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:205,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:206,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:206,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:207,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:207,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:208,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:208,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:209,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:209,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:211,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:213,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:213,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:214,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:214,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:215,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:215,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:216,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:216,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:217,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:217,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:220,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:222,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:224,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:226,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:226,1
    - Dst: Botan::AlignmentBuffer::consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:227,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:229,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:229,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:230,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:230,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:231,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:231,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:232,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:232,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:233,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:233,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:235,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:235,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:235,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:238,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:240,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:242,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:242,1
    - Dst: Botan::AlignmentBuffer::consume_partial
      Src: /src/botan/src/tests/test_utils_buffer.cpp:243,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:244,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:244,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:245,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:245,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:247,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:248,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:248,1
    - Dst: Botan::AlignmentBuffer::consume_partial
      Src: /src/botan/src/tests/test_utils_buffer.cpp:249,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:250,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:250,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:251,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:251,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:251,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:253,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:254,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:254,1
    - Dst: Botan::AlignmentBuffer::consume_partial
      Src: /src/botan/src/tests/test_utils_buffer.cpp:255,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:256,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:256,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:257,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:257,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:257,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:260,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:262,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:264,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:266,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:266,1
    - Dst: Botan::AlignmentBuffer::clear
      Src: /src/botan/src/tests/test_utils_buffer.cpp:267,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:269,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:269,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:270,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:270,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:271,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:271,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:272,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:272,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:273,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:273,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:276,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:278,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:280,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:282,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:282,1
    - Dst: Botan::AlignmentBuffer::fill_up_with_zeros
      Src: /src/botan/src/tests/test_utils_buffer.cpp:283,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:285,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:285,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:286,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:286,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:287,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:287,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:288,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:288,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:289,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:289,1
    - Dst: Botan::AlignmentBuffer::consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:291,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:293,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:293,1
    - Dst: auto::first
      Src: /src/botan/src/tests/test_utils_buffer.cpp:293,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:293,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:294,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:294,1
    - Dst: auto::last
      Src: /src/botan/src/tests/test_utils_buffer.cpp:294,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:294,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:298,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:299,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:299,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:300,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:300,1
    - Dst: Botan::AlignmentBuffer::fill_up_with_zeros
      Src: /src/botan/src/tests/test_utils_buffer.cpp:302,1
    - Dst: Botan::AlignmentBuffer::consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:303,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:305,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:305,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:305,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:308,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:310,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:315,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:316,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:316,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:317,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:317,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:319,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:319,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:320,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:320,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:321,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:321,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:322,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:322,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:324,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:325,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:325,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:326,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:326,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:328,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:328,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:329,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:329,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:330,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:330,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:331,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:331,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:333,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:333,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:333,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:333,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:336,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:338,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:341,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:342,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:342,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:343,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:343,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:344,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:344,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:345,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:345,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:349,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:350,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:350,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:351,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:351,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:352,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:352,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:353,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:353,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:355,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:356,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:356,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:357,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:357,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:358,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:358,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:359,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:359,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:362,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:364,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:370,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:371,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:371,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:372,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:372,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:374,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:374,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:375,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:375,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:376,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:376,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:377,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:377,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:379,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:380,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:380,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:381,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:381,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:383,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:383,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:384,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:384,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:385,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:385,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:386,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:386,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:388,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:389,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:389,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:390,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:390,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:392,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:392,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:393,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:393,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:394,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:394,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:395,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:395,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:397,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:397,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:397,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:397,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:400,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:402,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:405,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:406,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:406,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:407,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:407,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:408,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:408,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:409,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:409,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:412,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:413,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:413,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:414,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:414,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:415,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:415,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:419,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:420,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:420,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:421,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:421,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:422,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:422,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:423,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:423,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:425,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:425,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:425,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:425,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:428,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:430,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:431,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:431,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:434,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:435,1
    - Dst: empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:435,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:436,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:437,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:437,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:439,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:441,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:442,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:442,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:443,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:444,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:444,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:444,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:445,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:445,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:447,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:449,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:450,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:450,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:451,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:452,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:452,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:453,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:453,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:456,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:458,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:459,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:459,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:462,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:463,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:463,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:464,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:464,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:466,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:468,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:469,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:469,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:470,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:470,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:471,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:471,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:471,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:471,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:472,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:472,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:474,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:476,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:477,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:477,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:478,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:478,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:479,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:479,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:479,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:479,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:480,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:480,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:482,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:483,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:483,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:484,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:484,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:485,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:485,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:485,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:485,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:486,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:486,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:489,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:491,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:492,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:492,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:495,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:496,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:496,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:497,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:498,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:498,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:500,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:502,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:503,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:503,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:504,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:505,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:505,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:505,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:506,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:506,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:508,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:510,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:511,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:511,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:512,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:513,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:513,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:513,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:514,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:514,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:517,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:519,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:520,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:520,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:523,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:524,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:524,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:525,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:525,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:527,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:529,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:530,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:530,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:531,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:531,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:532,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:532,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:532,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:532,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:533,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:533,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:535,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:537,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:538,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:538,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:539,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:539,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:540,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:540,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:540,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:540,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:541,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:541,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:543,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:544,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:544,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:545,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 183
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 182
    functionDepth: 3
    functionLinenumber: 182
    functionLinenumberEnd: 548
    functionName: Botan_Tests::test_alignment_buffer
    functionSourceFile: /src/botan/src/tests/test_utils_buffer.cpp
    functionUses: 0
    functionsReached:
    - Botan::AlignmentBuffer::elements_in_buffer
    - test_eq
    - auto::empty
    - Botan::AlignmentBuffer::append
    - Botan::AlignmentBuffer::aligned_data_to_process
    - Botan::BufferSlicer::empty
    - Botan::BufferSlicer::remaining
    - Botan::AlignmentBuffer::next_aligned_block_to_process
    - auto::size
    - Botan::AlignmentBuffer::consume
    - Botan_Tests::CHECK
    - auto::has_value
    - auto::first
    - std::vector<uint8_t>
    - confirm
    - Botan_Tests::v
    - Botan::AlignmentBuffer::clear
    - Botan::AlignmentBuffer::AlignmentBuffer
    - auto::value
    - require
    - Botan::AlignmentBuffer::fill_up_with_zeros
    - Botan::AlignmentBuffer::ready_to_consume
    - Botan::AlignmentBuffer::elements_until_alignment
    - Botan::AlignmentBuffer::handle_unaligned_data
    - Botan::AlignmentBuffer::consume_partial
    - Botan::AlignmentBuffer::in_alignment
    - Botan::AlignmentBuffer::size
    - size
    - auto::last
    - Botan::concat<std::vector<uint8_t>>
    - empty
    - test_is_eq
    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:552,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:555,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:556,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:556,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:559,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:559,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:560,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:560,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:563,1
    - Dst: std::vector<uint8_t>
      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: confirm
      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::concat<std::array<uint8_t, 0>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:567,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:568,1
    - Dst: std::array<uint8_t, 0>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:568,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:568,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:569,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:569,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:572,1
    - Dst: Botan::concat<std::array<uint8_t, 0>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:576,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:577,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:580,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:581,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:584,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:584,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:585,1
    - Dst: Botan::concat
      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: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:588,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:589,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:593,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:593,1
    - Dst: std::array<uint8_t, 0>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:593,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:593,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:594,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:598,1
    - Dst: std::array<uint8_t, 1>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:598,1
    - Dst: std::array<uint8_t, 3>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:598,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:599,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:602,1
    - Dst: Botan::concat<Botan::secure_vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:608,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:609,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:612,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:613,1
    - Dst: Botan::concat<std::array<uint8_t, 10>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:616,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:617,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:620,1
    - Dst: std::span<const uint8_t, 5>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:620,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:621,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:622,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:626,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:627,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:628,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:632,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:637,1
    - Dst: Botan::concat<std::array<uint8_t, 4>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:638,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:639,1
    - Dst: Botan::concat<std::array<uint8_t, 20>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:640,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:643,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:656,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:657,1
    - Dst: Botan::concat<StrongV>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:660,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:661,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_utils_buffer.cpp:661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 550
    functionDepth: 3
    functionLinenumber: 550
    functionLinenumberEnd: 664
    functionName: Botan_Tests::test_concat
    functionSourceFile: /src/botan/src/tests/test_utils_buffer.cpp
    functionUses: 0
    functionsReached:
    - Botan::concat<Botan::secure_vector<uint8_t>>
    - auto::empty
    - test_throws
    - auto::get
    - Botan_Tests::CHECK
    - std::array<uint8_t, 0>
    - std::vector<uint8_t>
    - confirm
    - std::span<const uint8_t, 5>
    - Botan::concat<std::array<uint8_t, 0>>
    - Botan::concat<std::array<uint8_t, 10>>
    - std::array<uint8_t, 3>
    - Botan::concat<StrongV>
    - std::array<uint8_t, 1>
    - Botan::concat<std::array<uint8_t, 20>>
    - Botan::concat<std::vector<uint8_t>>
    - Botan::concat
    - Botan::secure_vector<uint8_t>
    - Botan::concat<std::array<uint8_t, 4>>
    - test_is_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_concat()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/botan/src/tests/test_utils_buffer.cpp:23,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils_buffer.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' container'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: Botan_Tests::v
    functionSourceFile: /src/botan/src/tests/test_utils_buffer.cpp
    functionUses: 5
    functionsReached:
    - begin
    - end
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> v(const T& container)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:30,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:34,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:34,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:35,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:35,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:36,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:36,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:38,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:38,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:39,1
    - Dst: Botan::BufferSlicer::skip
      Src: /src/botan/src/tests/test_utils_buffer.cpp:39,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:40,1
    - Dst: Botan::BufferSlicer::copy_as_vector
      Src: /src/botan/src/tests/test_utils_buffer.cpp:40,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:43,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:48,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:48,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:48,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:49,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:49,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:51,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:52,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:52,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:53,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:54,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:55,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:56,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:57,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:59,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:59,1
    - Dst: Botan::BufferSlicer::skip
      Src: /src/botan/src/tests/test_utils_buffer.cpp:61,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:62,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:62,1
    - Dst: Botan::BufferSlicer::copy_as_vector
      Src: /src/botan/src/tests/test_utils_buffer.cpp:64,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:65,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:65,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:66,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:67,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:68,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:69,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:69,1
    - Dst: Botan::BufferSlicer::copy_into
      Src: /src/botan/src/tests/test_utils_buffer.cpp:72,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:73,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:74,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:75,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:75,1
    - Dst: Botan::BufferSlicer::skip
      Src: /src/botan/src/tests/test_utils_buffer.cpp:77,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:78,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:78,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:80,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:81,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:82,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:83,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:85,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:85,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:86,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:86,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:88,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:88,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:89,1
    - Dst: Botan::BufferSlicer::skip
      Src: /src/botan/src/tests/test_utils_buffer.cpp:89,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:90,1
    - Dst: Botan::BufferSlicer::copy_as_vector
      Src: /src/botan/src/tests/test_utils_buffer.cpp:90,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:93,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:98,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:99,1
    - Dst: Botan::BufferSlicer::copy
      Src: /src/botan/src/tests/test_utils_buffer.cpp:100,1
    - Dst: Botan::BufferSlicer::copy_as_vector
      Src: /src/botan/src/tests/test_utils_buffer.cpp:101,1
    - Dst: Botan::BufferSlicer::copy_as_secure_vector
      Src: /src/botan/src/tests/test_utils_buffer.cpp:102,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:103,1
    - Dst: Botan::BufferSlicer::copy_into
      Src: /src/botan/src/tests/test_utils_buffer.cpp:104,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:106,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 28
    functionDepth: 3
    functionLinenumber: 28
    functionLinenumberEnd: 110
    functionName: Botan_Tests::test_buffer_slicer
    functionSourceFile: /src/botan/src/tests/test_utils_buffer.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan::BufferSlicer::copy_into
    - Botan_Tests::CHECK
    - Botan::BufferSlicer::take
    - test_throws
    - Botan::BufferSlicer::copy_as_vector
    - Botan::BufferSlicer::copy
    - Botan::BufferSlicer::copy_as_secure_vector
    - Botan::BufferSlicer::empty
    - Botan::concat<std::vector<uint8_t>>
    - Botan::BufferSlicer::skip
    - require
    - Botan::BufferSlicer::remaining
    - std::vector::size
    - auto::size
    - test_is_eq
    - confirm
    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:114,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:119,1
    - Dst: Botan::BufferStuffer::remaining_capacity
      Src: /src/botan/src/tests/test_utils_buffer.cpp:119,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:120,1
    - Dst: Botan::BufferStuffer::full
      Src: /src/botan/src/tests/test_utils_buffer.cpp:120,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:121,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:121,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:123,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:123,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:124,1
    - Dst: Botan::BufferStuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:126,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:130,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:135,1
    - Dst: Botan::BufferStuffer::remaining_capacity
      Src: /src/botan/src/tests/test_utils_buffer.cpp:135,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:135,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:136,1
    - Dst: Botan::BufferStuffer::full
      Src: /src/botan/src/tests/test_utils_buffer.cpp:136,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:138,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:139,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:139,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:146,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:147,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:147,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_utils_buffer.cpp:149,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_utils_buffer.cpp:150,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_utils_buffer.cpp:151,1
    - Dst: test_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::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:156,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:158,1
    - Dst: Botan::BufferStuffer::remaining_capacity
      Src: /src/botan/src/tests/test_utils_buffer.cpp:158,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:160,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:161,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:161,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:162,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:163,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:168,1
    - Dst: Botan::BufferStuffer::full
      Src: /src/botan/src/tests/test_utils_buffer.cpp:168,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:170,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:170,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:171,1
    - Dst: Botan::BufferStuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:173,1
    - Dst: Botan::cast_uint8_ptr_to_char
      Src: /src/botan/src/tests/test_utils_buffer.cpp:176,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:176,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:176,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 112
    functionDepth: 3
    functionLinenumber: 112
    functionLinenumberEnd: 180
    functionName: Botan_Tests::test_buffer_stuffer
    functionSourceFile: /src/botan/src/tests/test_utils_buffer.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan::BufferStuffer::full
    - Botan_Tests::CHECK
    - Botan::cast_uint8_ptr_to_char
    - test_throws
    - Botan::BufferStuffer::next
    - std::vector::data
    - auto::get
    - require
    - auto::size
    - std::vector::size
    - Botan::BufferStuffer::remaining_capacity
    - confirm
    - Botan::BufferStuffer::append
    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:189,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:191,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:192,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:192,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:193,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:193,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:194,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:194,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:195,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:195,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:196,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:196,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:199,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:201,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:203,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:205,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:205,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:206,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:206,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:207,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:207,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:208,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:208,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:209,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:209,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:211,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:213,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:213,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:214,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:214,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:215,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:215,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:216,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:216,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:217,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:217,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:220,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:222,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:224,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:226,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:226,1
    - Dst: Botan::AlignmentBuffer::consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:227,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:229,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:229,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:230,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:230,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:231,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:231,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:232,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:232,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:233,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:233,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:235,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:235,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:235,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:238,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:240,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:242,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:242,1
    - Dst: Botan::AlignmentBuffer::consume_partial
      Src: /src/botan/src/tests/test_utils_buffer.cpp:243,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:244,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:244,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:245,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:245,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:247,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:248,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:248,1
    - Dst: Botan::AlignmentBuffer::consume_partial
      Src: /src/botan/src/tests/test_utils_buffer.cpp:249,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:250,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:250,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:251,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:251,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:251,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:253,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:254,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:254,1
    - Dst: Botan::AlignmentBuffer::consume_partial
      Src: /src/botan/src/tests/test_utils_buffer.cpp:255,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:256,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:256,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:257,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:257,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:257,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:260,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:262,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:264,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:266,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:266,1
    - Dst: Botan::AlignmentBuffer::clear
      Src: /src/botan/src/tests/test_utils_buffer.cpp:267,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:269,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:269,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:270,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:270,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:271,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:271,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:272,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:272,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:273,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:273,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:276,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:278,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:280,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:282,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:282,1
    - Dst: Botan::AlignmentBuffer::fill_up_with_zeros
      Src: /src/botan/src/tests/test_utils_buffer.cpp:283,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:285,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:285,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:286,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:286,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:287,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:287,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:288,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:288,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:289,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:289,1
    - Dst: Botan::AlignmentBuffer::consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:291,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:293,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:293,1
    - Dst: auto::first
      Src: /src/botan/src/tests/test_utils_buffer.cpp:293,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:293,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:294,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:294,1
    - Dst: auto::last
      Src: /src/botan/src/tests/test_utils_buffer.cpp:294,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:294,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:298,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:299,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:299,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:300,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:300,1
    - Dst: Botan::AlignmentBuffer::fill_up_with_zeros
      Src: /src/botan/src/tests/test_utils_buffer.cpp:302,1
    - Dst: Botan::AlignmentBuffer::consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:303,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:305,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:305,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:305,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:308,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:310,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:315,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:316,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:316,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:317,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:317,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:319,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:319,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:320,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:320,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:321,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:321,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:322,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:322,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:324,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:325,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:325,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:326,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:326,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:328,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:328,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:329,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:329,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:330,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:330,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:331,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:331,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:333,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:333,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:333,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:333,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:336,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:338,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:341,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:342,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:342,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:343,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:343,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:344,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:344,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:345,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:345,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:349,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:350,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:350,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:351,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:351,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:352,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:352,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:353,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:353,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:355,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:356,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:356,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:357,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:357,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:358,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:358,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:359,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:359,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:362,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:364,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:370,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:371,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:371,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:372,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:372,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:374,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:374,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:375,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:375,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:376,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:376,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:377,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:377,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:379,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:380,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:380,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:381,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:381,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:383,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:383,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:384,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:384,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:385,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:385,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:386,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:386,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:388,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:389,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:389,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:390,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:390,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:392,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:392,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:393,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:393,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:394,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:394,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:395,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:395,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:397,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:397,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:397,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:397,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:400,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:402,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:405,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:406,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:406,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:407,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:407,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:408,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:408,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:409,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:409,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:412,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:413,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:413,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:414,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:414,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:415,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:415,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:419,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:420,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:420,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:421,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:421,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:422,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:422,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:423,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:423,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:425,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:425,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:425,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:425,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:428,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:430,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:431,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:431,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:434,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:435,1
    - Dst: empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:435,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:436,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:437,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:437,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:439,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:441,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:442,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:442,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:443,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:444,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:444,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:444,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:445,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:445,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:447,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:449,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:450,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:450,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:451,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:452,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:452,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:453,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:453,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:456,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:458,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:459,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:459,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:462,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:463,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:463,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:464,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:464,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:466,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:468,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:469,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:469,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:470,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:470,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:471,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:471,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:471,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:471,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:472,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:472,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:474,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:476,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:477,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:477,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:478,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:478,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:479,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:479,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:479,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:479,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:480,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:480,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:482,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:483,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:483,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:484,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:484,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:485,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:485,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:485,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:485,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:486,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:486,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:489,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:491,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:492,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:492,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:495,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:496,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:496,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:497,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:498,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:498,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:500,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:502,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:503,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:503,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:504,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:505,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:505,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:505,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:506,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:506,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:508,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:510,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:511,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:511,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:512,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:513,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:513,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:513,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:514,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:514,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:517,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:519,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:520,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:520,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:523,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:524,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:524,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:525,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:525,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:527,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:529,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:530,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:530,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:531,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:531,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:532,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:532,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:532,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:532,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:533,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:533,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:535,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:537,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:538,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:538,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:539,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:539,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:540,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:540,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:540,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:540,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:541,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:541,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:543,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:544,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:544,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:545,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 183
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 182
    functionDepth: 3
    functionLinenumber: 182
    functionLinenumberEnd: 548
    functionName: Botan_Tests::test_alignment_buffer
    functionSourceFile: /src/botan/src/tests/test_utils_buffer.cpp
    functionUses: 0
    functionsReached:
    - Botan::AlignmentBuffer::elements_in_buffer
    - test_eq
    - auto::empty
    - Botan::AlignmentBuffer::append
    - Botan::AlignmentBuffer::aligned_data_to_process
    - Botan::BufferSlicer::empty
    - Botan::BufferSlicer::remaining
    - Botan::AlignmentBuffer::next_aligned_block_to_process
    - auto::size
    - Botan::AlignmentBuffer::consume
    - Botan_Tests::CHECK
    - auto::has_value
    - auto::first
    - std::vector<uint8_t>
    - confirm
    - Botan_Tests::v
    - Botan::AlignmentBuffer::clear
    - Botan::AlignmentBuffer::AlignmentBuffer
    - auto::value
    - require
    - Botan::AlignmentBuffer::fill_up_with_zeros
    - Botan::AlignmentBuffer::ready_to_consume
    - Botan::AlignmentBuffer::elements_until_alignment
    - Botan::AlignmentBuffer::handle_unaligned_data
    - Botan::AlignmentBuffer::consume_partial
    - Botan::AlignmentBuffer::in_alignment
    - Botan::AlignmentBuffer::size
    - size
    - auto::last
    - Botan::concat<std::vector<uint8_t>>
    - empty
    - test_is_eq
    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:552,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:555,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:556,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:556,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:559,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:559,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:560,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:560,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:563,1
    - Dst: std::vector<uint8_t>
      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: confirm
      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::concat<std::array<uint8_t, 0>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:567,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:568,1
    - Dst: std::array<uint8_t, 0>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:568,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:568,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:569,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:569,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:572,1
    - Dst: Botan::concat<std::array<uint8_t, 0>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:576,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:577,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:580,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:581,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:584,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:584,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:585,1
    - Dst: Botan::concat
      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: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:588,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:589,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:593,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:593,1
    - Dst: std::array<uint8_t, 0>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:593,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:593,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:594,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:598,1
    - Dst: std::array<uint8_t, 1>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:598,1
    - Dst: std::array<uint8_t, 3>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:598,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:599,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:602,1
    - Dst: Botan::concat<Botan::secure_vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:608,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:609,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:612,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:613,1
    - Dst: Botan::concat<std::array<uint8_t, 10>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:616,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:617,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:620,1
    - Dst: std::span<const uint8_t, 5>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:620,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:621,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:622,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:626,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:627,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:628,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:632,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:637,1
    - Dst: Botan::concat<std::array<uint8_t, 4>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:638,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:639,1
    - Dst: Botan::concat<std::array<uint8_t, 20>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:640,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:643,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:656,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:657,1
    - Dst: Botan::concat<StrongV>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:660,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:661,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_utils_buffer.cpp:661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 550
    functionDepth: 3
    functionLinenumber: 550
    functionLinenumberEnd: 664
    functionName: Botan_Tests::test_concat
    functionSourceFile: /src/botan/src/tests/test_utils_buffer.cpp
    functionUses: 0
    functionsReached:
    - Botan::concat<Botan::secure_vector<uint8_t>>
    - auto::empty
    - test_throws
    - auto::get
    - Botan_Tests::CHECK
    - std::array<uint8_t, 0>
    - std::vector<uint8_t>
    - confirm
    - std::span<const uint8_t, 5>
    - Botan::concat<std::array<uint8_t, 0>>
    - Botan::concat<std::array<uint8_t, 10>>
    - std::array<uint8_t, 3>
    - Botan::concat<StrongV>
    - std::array<uint8_t, 1>
    - Botan::concat<std::array<uint8_t, 20>>
    - Botan::concat<std::vector<uint8_t>>
    - Botan::concat
    - Botan::secure_vector<uint8_t>
    - Botan::concat<std::array<uint8_t, 4>>
    - test_is_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_concat()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/botan/src/tests/test_utils_buffer.cpp:23,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils_buffer.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' container'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: Botan_Tests::v
    functionSourceFile: /src/botan/src/tests/test_utils_buffer.cpp
    functionUses: 6
    functionsReached:
    - begin
    - end
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> v(const T& container)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:30,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:34,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:34,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:35,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:35,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:36,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:36,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:38,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:38,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:39,1
    - Dst: Botan::BufferSlicer::skip
      Src: /src/botan/src/tests/test_utils_buffer.cpp:39,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:40,1
    - Dst: Botan::BufferSlicer::copy_as_vector
      Src: /src/botan/src/tests/test_utils_buffer.cpp:40,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:43,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:48,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:48,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:48,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:49,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:49,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:51,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:52,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:52,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:53,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:54,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:55,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:56,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:57,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:59,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:59,1
    - Dst: Botan::BufferSlicer::skip
      Src: /src/botan/src/tests/test_utils_buffer.cpp:61,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:62,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:62,1
    - Dst: Botan::BufferSlicer::copy_as_vector
      Src: /src/botan/src/tests/test_utils_buffer.cpp:64,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:65,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:65,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:66,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:67,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:68,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:69,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:69,1
    - Dst: Botan::BufferSlicer::copy_into
      Src: /src/botan/src/tests/test_utils_buffer.cpp:72,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:73,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:74,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:75,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:75,1
    - Dst: Botan::BufferSlicer::skip
      Src: /src/botan/src/tests/test_utils_buffer.cpp:77,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:78,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:78,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:80,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:81,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:82,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:83,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:85,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:85,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:86,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:86,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:88,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:88,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:89,1
    - Dst: Botan::BufferSlicer::skip
      Src: /src/botan/src/tests/test_utils_buffer.cpp:89,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:90,1
    - Dst: Botan::BufferSlicer::copy_as_vector
      Src: /src/botan/src/tests/test_utils_buffer.cpp:90,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:93,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:98,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:99,1
    - Dst: Botan::BufferSlicer::copy
      Src: /src/botan/src/tests/test_utils_buffer.cpp:100,1
    - Dst: Botan::BufferSlicer::copy_as_vector
      Src: /src/botan/src/tests/test_utils_buffer.cpp:101,1
    - Dst: Botan::BufferSlicer::copy_as_secure_vector
      Src: /src/botan/src/tests/test_utils_buffer.cpp:102,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:103,1
    - Dst: Botan::BufferSlicer::copy_into
      Src: /src/botan/src/tests/test_utils_buffer.cpp:104,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:106,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 28
    functionDepth: 3
    functionLinenumber: 28
    functionLinenumberEnd: 110
    functionName: Botan_Tests::test_buffer_slicer
    functionSourceFile: /src/botan/src/tests/test_utils_buffer.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan::BufferSlicer::copy_into
    - Botan_Tests::CHECK
    - Botan::BufferSlicer::take
    - test_throws
    - Botan::BufferSlicer::copy_as_vector
    - Botan::BufferSlicer::copy
    - Botan::BufferSlicer::copy_as_secure_vector
    - Botan::BufferSlicer::empty
    - Botan::concat<std::vector<uint8_t>>
    - Botan::BufferSlicer::skip
    - require
    - Botan::BufferSlicer::remaining
    - std::vector::size
    - auto::size
    - test_is_eq
    - confirm
    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:114,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:119,1
    - Dst: Botan::BufferStuffer::remaining_capacity
      Src: /src/botan/src/tests/test_utils_buffer.cpp:119,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:120,1
    - Dst: Botan::BufferStuffer::full
      Src: /src/botan/src/tests/test_utils_buffer.cpp:120,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:121,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:121,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:123,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:123,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:124,1
    - Dst: Botan::BufferStuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:126,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:130,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:135,1
    - Dst: Botan::BufferStuffer::remaining_capacity
      Src: /src/botan/src/tests/test_utils_buffer.cpp:135,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:135,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:136,1
    - Dst: Botan::BufferStuffer::full
      Src: /src/botan/src/tests/test_utils_buffer.cpp:136,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:138,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:139,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:139,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:146,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:147,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:147,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_utils_buffer.cpp:149,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_utils_buffer.cpp:150,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_utils_buffer.cpp:151,1
    - Dst: test_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::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:156,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:158,1
    - Dst: Botan::BufferStuffer::remaining_capacity
      Src: /src/botan/src/tests/test_utils_buffer.cpp:158,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:160,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:161,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:161,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:162,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:163,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:168,1
    - Dst: Botan::BufferStuffer::full
      Src: /src/botan/src/tests/test_utils_buffer.cpp:168,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:170,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:170,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:171,1
    - Dst: Botan::BufferStuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:173,1
    - Dst: Botan::cast_uint8_ptr_to_char
      Src: /src/botan/src/tests/test_utils_buffer.cpp:176,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:176,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:176,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 112
    functionDepth: 3
    functionLinenumber: 112
    functionLinenumberEnd: 180
    functionName: Botan_Tests::test_buffer_stuffer
    functionSourceFile: /src/botan/src/tests/test_utils_buffer.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan::BufferStuffer::full
    - Botan_Tests::CHECK
    - Botan::cast_uint8_ptr_to_char
    - test_throws
    - Botan::BufferStuffer::next
    - std::vector::data
    - auto::get
    - require
    - auto::size
    - std::vector::size
    - Botan::BufferStuffer::remaining_capacity
    - confirm
    - Botan::BufferStuffer::append
    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:189,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:191,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:192,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:192,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:193,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:193,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:194,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:194,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:195,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:195,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:196,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:196,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:199,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:201,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:203,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:205,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:205,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:206,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:206,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:207,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:207,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:208,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:208,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:209,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:209,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:211,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:213,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:213,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:214,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:214,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:215,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:215,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:216,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:216,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:217,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:217,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:220,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:222,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:224,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:226,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:226,1
    - Dst: Botan::AlignmentBuffer::consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:227,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:229,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:229,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:230,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:230,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:231,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:231,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:232,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:232,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:233,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:233,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:235,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:235,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:235,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:238,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:240,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:242,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:242,1
    - Dst: Botan::AlignmentBuffer::consume_partial
      Src: /src/botan/src/tests/test_utils_buffer.cpp:243,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:244,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:244,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:245,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:245,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:247,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:248,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:248,1
    - Dst: Botan::AlignmentBuffer::consume_partial
      Src: /src/botan/src/tests/test_utils_buffer.cpp:249,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:250,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:250,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:251,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:251,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:251,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:253,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:254,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:254,1
    - Dst: Botan::AlignmentBuffer::consume_partial
      Src: /src/botan/src/tests/test_utils_buffer.cpp:255,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:256,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:256,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:257,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:257,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:257,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:260,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:262,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:264,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:266,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:266,1
    - Dst: Botan::AlignmentBuffer::clear
      Src: /src/botan/src/tests/test_utils_buffer.cpp:267,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:269,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:269,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:270,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:270,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:271,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:271,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:272,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:272,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:273,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:273,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:276,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:278,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:280,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:282,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:282,1
    - Dst: Botan::AlignmentBuffer::fill_up_with_zeros
      Src: /src/botan/src/tests/test_utils_buffer.cpp:283,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:285,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:285,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:286,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:286,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:287,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:287,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:288,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:288,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:289,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:289,1
    - Dst: Botan::AlignmentBuffer::consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:291,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:293,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:293,1
    - Dst: auto::first
      Src: /src/botan/src/tests/test_utils_buffer.cpp:293,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:293,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:294,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:294,1
    - Dst: auto::last
      Src: /src/botan/src/tests/test_utils_buffer.cpp:294,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:294,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:298,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:299,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:299,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:300,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:300,1
    - Dst: Botan::AlignmentBuffer::fill_up_with_zeros
      Src: /src/botan/src/tests/test_utils_buffer.cpp:302,1
    - Dst: Botan::AlignmentBuffer::consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:303,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:305,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:305,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:305,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:308,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:310,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:315,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:316,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:316,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:317,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:317,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:319,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:319,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:320,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:320,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:321,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:321,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:322,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:322,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:324,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:325,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:325,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:326,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:326,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:328,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:328,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:329,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:329,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:330,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:330,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:331,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:331,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:333,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:333,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:333,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:333,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:336,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:338,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:341,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:342,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:342,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:343,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:343,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:344,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:344,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:345,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:345,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:349,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:350,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:350,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:351,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:351,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:352,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:352,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:353,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:353,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:355,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:356,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:356,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:357,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:357,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:358,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:358,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:359,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:359,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:362,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:364,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:370,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:371,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:371,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:372,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:372,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:374,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:374,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:375,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:375,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:376,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:376,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:377,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:377,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:379,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:380,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:380,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:381,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:381,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:383,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:383,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:384,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:384,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:385,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:385,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:386,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:386,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:388,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:389,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:389,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:390,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:390,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:392,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:392,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:393,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:393,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:394,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:394,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:395,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:395,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:397,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:397,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:397,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:397,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:400,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:402,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:405,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:406,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:406,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:407,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:407,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:408,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:408,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:409,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:409,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:412,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:413,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:413,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:414,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:414,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:415,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:415,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:419,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:420,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:420,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:421,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:421,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:422,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:422,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:423,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:423,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:425,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:425,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:425,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:425,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:428,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:430,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:431,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:431,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:434,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:435,1
    - Dst: empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:435,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:436,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:437,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:437,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:439,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:441,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:442,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:442,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:443,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:444,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:444,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:444,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:445,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:445,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:447,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:449,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:450,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:450,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:451,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:452,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:452,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:453,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:453,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:456,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:458,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:459,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:459,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:462,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:463,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:463,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:464,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:464,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:466,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:468,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:469,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:469,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:470,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:470,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:471,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:471,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:471,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:471,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:472,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:472,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:474,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:476,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:477,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:477,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:478,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:478,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:479,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:479,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:479,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:479,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:480,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:480,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:482,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:483,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:483,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:484,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:484,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:485,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:485,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:485,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:485,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:486,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:486,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:489,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:491,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:492,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:492,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:495,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:496,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:496,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:497,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:498,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:498,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:500,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:502,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:503,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:503,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:504,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:505,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:505,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:505,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:506,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:506,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:508,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:510,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:511,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:511,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:512,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:513,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:513,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:513,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:514,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:514,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:517,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:519,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:520,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:520,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:523,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:524,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:524,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:525,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:525,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:527,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:529,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:530,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:530,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:531,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:531,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:532,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:532,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:532,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:532,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:533,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:533,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:535,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:537,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:538,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:538,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:539,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:539,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:540,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:540,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:540,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:540,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:541,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:541,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:543,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:544,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:544,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:545,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 183
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 182
    functionDepth: 3
    functionLinenumber: 182
    functionLinenumberEnd: 548
    functionName: Botan_Tests::test_alignment_buffer
    functionSourceFile: /src/botan/src/tests/test_utils_buffer.cpp
    functionUses: 0
    functionsReached:
    - Botan::AlignmentBuffer::elements_in_buffer
    - test_eq
    - auto::empty
    - Botan::AlignmentBuffer::append
    - Botan::AlignmentBuffer::aligned_data_to_process
    - Botan::BufferSlicer::empty
    - Botan::BufferSlicer::remaining
    - Botan::AlignmentBuffer::next_aligned_block_to_process
    - auto::size
    - Botan::AlignmentBuffer::consume
    - Botan_Tests::CHECK
    - auto::has_value
    - auto::first
    - std::vector<uint8_t>
    - confirm
    - Botan_Tests::v
    - Botan::AlignmentBuffer::clear
    - Botan::AlignmentBuffer::AlignmentBuffer
    - auto::value
    - require
    - Botan::AlignmentBuffer::fill_up_with_zeros
    - Botan::AlignmentBuffer::ready_to_consume
    - Botan::AlignmentBuffer::elements_until_alignment
    - Botan::AlignmentBuffer::handle_unaligned_data
    - Botan::AlignmentBuffer::consume_partial
    - Botan::AlignmentBuffer::in_alignment
    - Botan::AlignmentBuffer::size
    - size
    - auto::last
    - Botan::concat<std::vector<uint8_t>>
    - empty
    - test_is_eq
    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:552,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:555,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:556,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:556,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:559,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:559,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:560,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:560,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:563,1
    - Dst: std::vector<uint8_t>
      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: confirm
      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::concat<std::array<uint8_t, 0>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:567,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:568,1
    - Dst: std::array<uint8_t, 0>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:568,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:568,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:569,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:569,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:572,1
    - Dst: Botan::concat<std::array<uint8_t, 0>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:576,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:577,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:580,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:581,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:584,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:584,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:585,1
    - Dst: Botan::concat
      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: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:588,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:589,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:593,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:593,1
    - Dst: std::array<uint8_t, 0>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:593,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:593,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:594,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:598,1
    - Dst: std::array<uint8_t, 1>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:598,1
    - Dst: std::array<uint8_t, 3>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:598,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:599,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:602,1
    - Dst: Botan::concat<Botan::secure_vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:608,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:609,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:612,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:613,1
    - Dst: Botan::concat<std::array<uint8_t, 10>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:616,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:617,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:620,1
    - Dst: std::span<const uint8_t, 5>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:620,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:621,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:622,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:626,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:627,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:628,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:632,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:637,1
    - Dst: Botan::concat<std::array<uint8_t, 4>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:638,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:639,1
    - Dst: Botan::concat<std::array<uint8_t, 20>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:640,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:643,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:656,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:657,1
    - Dst: Botan::concat<StrongV>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:660,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:661,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_utils_buffer.cpp:661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 550
    functionDepth: 3
    functionLinenumber: 550
    functionLinenumberEnd: 664
    functionName: Botan_Tests::test_concat
    functionSourceFile: /src/botan/src/tests/test_utils_buffer.cpp
    functionUses: 0
    functionsReached:
    - Botan::concat<Botan::secure_vector<uint8_t>>
    - auto::empty
    - test_throws
    - auto::get
    - Botan_Tests::CHECK
    - std::array<uint8_t, 0>
    - std::vector<uint8_t>
    - confirm
    - std::span<const uint8_t, 5>
    - Botan::concat<std::array<uint8_t, 0>>
    - Botan::concat<std::array<uint8_t, 10>>
    - std::array<uint8_t, 3>
    - Botan::concat<StrongV>
    - std::array<uint8_t, 1>
    - Botan::concat<std::array<uint8_t, 20>>
    - Botan::concat<std::vector<uint8_t>>
    - Botan::concat
    - Botan::secure_vector<uint8_t>
    - Botan::concat<std::array<uint8_t, 4>>
    - test_is_eq
    linkageType: ''
    returnType: std::vector<Test::Result>
    signature: std::vector<Test::Result> test_concat()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/botan/src/tests/test_utils_buffer.cpp:23,1
    - Dst: end
      Src: /src/botan/src/tests/test_utils_buffer.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' container'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: Botan_Tests::v
    functionSourceFile: /src/botan/src/tests/test_utils_buffer.cpp
    functionUses: 7
    functionsReached:
    - begin
    - end
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> v(const T& container)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:30,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:34,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:34,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:35,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:35,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:36,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:36,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:38,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:38,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:39,1
    - Dst: Botan::BufferSlicer::skip
      Src: /src/botan/src/tests/test_utils_buffer.cpp:39,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:40,1
    - Dst: Botan::BufferSlicer::copy_as_vector
      Src: /src/botan/src/tests/test_utils_buffer.cpp:40,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:43,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:48,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:48,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:48,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:49,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:49,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:51,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:52,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:52,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:53,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:54,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:55,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:56,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:57,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:59,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:59,1
    - Dst: Botan::BufferSlicer::skip
      Src: /src/botan/src/tests/test_utils_buffer.cpp:61,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:62,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:62,1
    - Dst: Botan::BufferSlicer::copy_as_vector
      Src: /src/botan/src/tests/test_utils_buffer.cpp:64,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:65,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:65,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:66,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:67,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:68,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:69,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:69,1
    - Dst: Botan::BufferSlicer::copy_into
      Src: /src/botan/src/tests/test_utils_buffer.cpp:72,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:73,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:74,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:75,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:75,1
    - Dst: Botan::BufferSlicer::skip
      Src: /src/botan/src/tests/test_utils_buffer.cpp:77,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:78,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:78,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:80,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:81,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:82,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:83,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:85,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:85,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:86,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:86,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:88,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:88,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:89,1
    - Dst: Botan::BufferSlicer::skip
      Src: /src/botan/src/tests/test_utils_buffer.cpp:89,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:90,1
    - Dst: Botan::BufferSlicer::copy_as_vector
      Src: /src/botan/src/tests/test_utils_buffer.cpp:90,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:93,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:98,1
    - Dst: Botan::BufferSlicer::take
      Src: /src/botan/src/tests/test_utils_buffer.cpp:99,1
    - Dst: Botan::BufferSlicer::copy
      Src: /src/botan/src/tests/test_utils_buffer.cpp:100,1
    - Dst: Botan::BufferSlicer::copy_as_vector
      Src: /src/botan/src/tests/test_utils_buffer.cpp:101,1
    - Dst: Botan::BufferSlicer::copy_as_secure_vector
      Src: /src/botan/src/tests/test_utils_buffer.cpp:102,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:103,1
    - Dst: Botan::BufferSlicer::copy_into
      Src: /src/botan/src/tests/test_utils_buffer.cpp:104,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:106,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 28
    functionDepth: 3
    functionLinenumber: 28
    functionLinenumberEnd: 110
    functionName: Botan_Tests::test_buffer_slicer
    functionSourceFile: /src/botan/src/tests/test_utils_buffer.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan::BufferSlicer::copy_into
    - Botan_Tests::CHECK
    - Botan::BufferSlicer::take
    - test_throws
    - Botan::BufferSlicer::copy_as_vector
    - Botan::BufferSlicer::copy
    - Botan::BufferSlicer::copy_as_secure_vector
    - Botan::BufferSlicer::empty
    - Botan::concat<std::vector<uint8_t>>
    - Botan::BufferSlicer::skip
    - require
    - Botan::BufferSlicer::remaining
    - std::vector::size
    - auto::size
    - test_is_eq
    - confirm
    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:114,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:119,1
    - Dst: Botan::BufferStuffer::remaining_capacity
      Src: /src/botan/src/tests/test_utils_buffer.cpp:119,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:120,1
    - Dst: Botan::BufferStuffer::full
      Src: /src/botan/src/tests/test_utils_buffer.cpp:120,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:121,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:121,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:123,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:123,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:124,1
    - Dst: Botan::BufferStuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:126,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:130,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:135,1
    - Dst: Botan::BufferStuffer::remaining_capacity
      Src: /src/botan/src/tests/test_utils_buffer.cpp:135,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:135,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:136,1
    - Dst: Botan::BufferStuffer::full
      Src: /src/botan/src/tests/test_utils_buffer.cpp:136,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:138,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:139,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:139,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:146,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:147,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:147,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_utils_buffer.cpp:149,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_utils_buffer.cpp:150,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_utils_buffer.cpp:151,1
    - Dst: test_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::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:156,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:158,1
    - Dst: Botan::BufferStuffer::remaining_capacity
      Src: /src/botan/src/tests/test_utils_buffer.cpp:158,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:160,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:161,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:161,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:162,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:163,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:168,1
    - Dst: Botan::BufferStuffer::full
      Src: /src/botan/src/tests/test_utils_buffer.cpp:168,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:170,1
    - Dst: Botan::BufferStuffer::next
      Src: /src/botan/src/tests/test_utils_buffer.cpp:170,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:171,1
    - Dst: Botan::BufferStuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:173,1
    - Dst: Botan::cast_uint8_ptr_to_char
      Src: /src/botan/src/tests/test_utils_buffer.cpp:176,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:176,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:176,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 41
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 112
    functionDepth: 3
    functionLinenumber: 112
    functionLinenumberEnd: 180
    functionName: Botan_Tests::test_buffer_stuffer
    functionSourceFile: /src/botan/src/tests/test_utils_buffer.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - Botan::BufferStuffer::full
    - Botan_Tests::CHECK
    - Botan::cast_uint8_ptr_to_char
    - test_throws
    - Botan::BufferStuffer::next
    - std::vector::data
    - auto::get
    - require
    - auto::size
    - std::vector::size
    - Botan::BufferStuffer::remaining_capacity
    - confirm
    - Botan::BufferStuffer::append
    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:189,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:191,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:192,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:192,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:193,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:193,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:194,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:194,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:195,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:195,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:196,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:196,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:199,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:201,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:203,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:205,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:205,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:206,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:206,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:207,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:207,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:208,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:208,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:209,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:209,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:211,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:213,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:213,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:214,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:214,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:215,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:215,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:216,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:216,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:217,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:217,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:220,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:222,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:224,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:226,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:226,1
    - Dst: Botan::AlignmentBuffer::consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:227,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:229,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:229,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:230,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:230,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:231,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:231,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:232,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:232,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:233,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:233,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:235,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:235,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:235,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:238,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:240,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:242,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:242,1
    - Dst: Botan::AlignmentBuffer::consume_partial
      Src: /src/botan/src/tests/test_utils_buffer.cpp:243,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:244,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:244,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:245,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:245,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:247,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:248,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:248,1
    - Dst: Botan::AlignmentBuffer::consume_partial
      Src: /src/botan/src/tests/test_utils_buffer.cpp:249,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:250,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:250,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:251,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:251,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:251,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:253,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:254,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:254,1
    - Dst: Botan::AlignmentBuffer::consume_partial
      Src: /src/botan/src/tests/test_utils_buffer.cpp:255,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:256,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:256,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:257,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:257,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:257,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:260,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:262,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:264,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:266,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:266,1
    - Dst: Botan::AlignmentBuffer::clear
      Src: /src/botan/src/tests/test_utils_buffer.cpp:267,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:269,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:269,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:270,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:270,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:271,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:271,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:272,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:272,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:273,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:273,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:276,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:278,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:280,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:282,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:282,1
    - Dst: Botan::AlignmentBuffer::fill_up_with_zeros
      Src: /src/botan/src/tests/test_utils_buffer.cpp:283,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:285,1
    - Dst: Botan::AlignmentBuffer::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:285,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:286,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:286,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:287,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:287,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:288,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:288,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:289,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:289,1
    - Dst: Botan::AlignmentBuffer::consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:291,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:293,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:293,1
    - Dst: auto::first
      Src: /src/botan/src/tests/test_utils_buffer.cpp:293,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:293,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:294,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:294,1
    - Dst: auto::last
      Src: /src/botan/src/tests/test_utils_buffer.cpp:294,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:294,1
    - Dst: Botan::AlignmentBuffer::append
      Src: /src/botan/src/tests/test_utils_buffer.cpp:298,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:299,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:299,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:300,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:300,1
    - Dst: Botan::AlignmentBuffer::fill_up_with_zeros
      Src: /src/botan/src/tests/test_utils_buffer.cpp:302,1
    - Dst: Botan::AlignmentBuffer::consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:303,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:305,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:305,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:305,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:308,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:310,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:315,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:316,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:316,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:317,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:317,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:319,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:319,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:320,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:320,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:321,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:321,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:322,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:322,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:324,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:325,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:325,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:326,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:326,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:328,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:328,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:329,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:329,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:330,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:330,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:331,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:331,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:333,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:333,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:333,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:333,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:336,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:338,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:341,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:342,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:342,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:343,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:343,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:344,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:344,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:345,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:345,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:349,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:350,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:350,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:351,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:351,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:352,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:352,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:353,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:353,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:355,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:356,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:356,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:357,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:357,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:358,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:358,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:359,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:359,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:362,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:364,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:370,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:371,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:371,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:372,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:372,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:374,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:374,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:375,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:375,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:376,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:376,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:377,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:377,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:379,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:380,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:380,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:381,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:381,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:383,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:383,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:384,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:384,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:385,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:385,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:386,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:386,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:388,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:389,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:389,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:390,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:390,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:392,1
    - Dst: Botan::AlignmentBuffer::elements_in_buffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:392,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:393,1
    - Dst: Botan::AlignmentBuffer::elements_until_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:393,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:394,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:394,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:395,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:395,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:397,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:397,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:397,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:397,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:400,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:402,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:405,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:406,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:406,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:407,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:407,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:408,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:408,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:409,1
    - Dst: Botan::BufferSlicer::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:409,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:412,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:413,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:413,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:414,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:414,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:415,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:415,1
    - Dst: Botan::AlignmentBuffer::handle_unaligned_data
      Src: /src/botan/src/tests/test_utils_buffer.cpp:419,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:420,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:420,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:421,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:421,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:422,1
    - Dst: Botan::AlignmentBuffer::ready_to_consume
      Src: /src/botan/src/tests/test_utils_buffer.cpp:422,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:423,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:423,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:425,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:425,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:425,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:425,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:428,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:430,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:431,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:431,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:434,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:435,1
    - Dst: empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:435,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:436,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:437,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:437,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:439,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:441,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:442,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:442,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:443,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:444,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:444,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:444,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:445,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:445,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:447,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:449,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:450,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:450,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:451,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:452,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:452,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:453,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:453,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:456,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:458,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:459,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:459,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:462,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:463,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:463,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:464,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:464,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:466,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:468,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:469,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:469,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:470,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:470,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:471,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:471,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:471,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:471,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:472,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:472,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:474,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:476,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:477,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:477,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:478,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:478,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:479,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:479,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:479,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:479,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:480,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:480,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:482,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:483,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:483,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:484,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:484,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:485,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:485,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:485,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:485,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:486,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:486,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:489,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:491,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:492,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:492,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:495,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:496,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:496,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:497,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:498,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:498,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:500,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:502,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:503,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:503,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:504,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:505,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:505,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:505,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:506,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:506,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:508,1
    - Dst: Botan::AlignmentBuffer::aligned_data_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:510,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:511,1
    - Dst: size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:511,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:512,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:513,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:513,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:513,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:514,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:514,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:517,1
    - Dst: Botan::AlignmentBuffer::AlignmentBuffer
      Src: /src/botan/src/tests/test_utils_buffer.cpp:519,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:520,1
    - Dst: Botan::AlignmentBuffer::in_alignment
      Src: /src/botan/src/tests/test_utils_buffer.cpp:520,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:523,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:524,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:524,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:525,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:525,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:527,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:529,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:530,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:530,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:531,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:531,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:532,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:532,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:532,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:532,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:533,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:533,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:535,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:537,1
    - Dst: require
      Src: /src/botan/src/tests/test_utils_buffer.cpp:538,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:538,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:539,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_utils_buffer.cpp:539,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:540,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:540,1
    - Dst: auto::value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:540,1
    - Dst: Botan_Tests::v
      Src: /src/botan/src/tests/test_utils_buffer.cpp:540,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:541,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:541,1
    - Dst: Botan::AlignmentBuffer::next_aligned_block_to_process
      Src: /src/botan/src/tests/test_utils_buffer.cpp:543,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:544,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/test_utils_buffer.cpp:544,1
    - Dst: test_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:545,1
    - Dst: Botan::BufferSlicer::remaining
      Src: /src/botan/src/tests/test_utils_buffer.cpp:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 183
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 182
    functionDepth: 3
    functionLinenumber: 182
    functionLinenumberEnd: 548
    functionName: Botan_Tests::test_alignment_buffer
    functionSourceFile: /src/botan/src/tests/test_utils_buffer.cpp
    functionUses: 0
    functionsReached:
    - Botan::AlignmentBuffer::elements_in_buffer
    - test_eq
    - auto::empty
    - Botan::AlignmentBuffer::append
    - Botan::AlignmentBuffer::aligned_data_to_process
    - Botan::BufferSlicer::empty
    - Botan::BufferSlicer::remaining
    - Botan::AlignmentBuffer::next_aligned_block_to_process
    - auto::size
    - Botan::AlignmentBuffer::consume
    - Botan_Tests::CHECK
    - auto::has_value
    - auto::first
    - std::vector<uint8_t>
    - confirm
    - Botan_Tests::v
    - Botan::AlignmentBuffer::clear
    - Botan::AlignmentBuffer::AlignmentBuffer
    - auto::value
    - require
    - Botan::AlignmentBuffer::fill_up_with_zeros
    - Botan::AlignmentBuffer::ready_to_consume
    - Botan::AlignmentBuffer::elements_until_alignment
    - Botan::AlignmentBuffer::handle_unaligned_data
    - Botan::AlignmentBuffer::consume_partial
    - Botan::AlignmentBuffer::in_alignment
    - Botan::AlignmentBuffer::size
    - size
    - auto::last
    - Botan::concat<std::vector<uint8_t>>
    - empty
    - test_is_eq
    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:552,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:555,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:556,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:556,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:559,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:559,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:560,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:560,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:563,1
    - Dst: std::vector<uint8_t>
      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: confirm
      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::concat<std::array<uint8_t, 0>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:567,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:568,1
    - Dst: std::array<uint8_t, 0>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:568,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:568,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:569,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_utils_buffer.cpp:569,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:572,1
    - Dst: Botan::concat<std::array<uint8_t, 0>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:576,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:577,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:580,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:581,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:584,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:584,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:585,1
    - Dst: Botan::concat
      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: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:588,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:589,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:593,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:593,1
    - Dst: std::array<uint8_t, 0>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:593,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:593,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:594,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:598,1
    - Dst: std::array<uint8_t, 1>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:598,1
    - Dst: std::array<uint8_t, 3>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:598,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:599,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:602,1
    - Dst: Botan::concat<Botan::secure_vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:608,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:609,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:612,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:613,1
    - Dst: Botan::concat<std::array<uint8_t, 10>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:616,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:617,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:620,1
    - Dst: std::span<const uint8_t, 5>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:620,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:621,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:622,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_utils_buffer.cpp:626,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:627,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_utils_buffer.cpp:628,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:632,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:637,1
    - Dst: Botan::concat<std::array<uint8_t, 4>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:638,1
    - Dst: test_throws
      Src: /src/botan/src/tests/test_utils_buffer.cpp:639,1
    - Dst: Botan::concat<std::array<uint8_t, 20>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:640,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_utils_buffer.cpp:643,1
    - Dst: Botan::concat<std::vector<uint8_t>>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:656,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:657,1
    - Dst: Botan::concat<StrongV>
      Src: /src/botan/src/tests/test_utils_buffer.cpp:660,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_utils_buffer.cpp:661,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_utils_buffer.cpp:661,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 550
    functionDepth: 3
    functionLinenumber: 550
    functionLinenumberEnd: 664
    functionName: Botan_Tests::test_concat
    functionSourceFile: /src/botan/src/tests/test_utils_buffer.cpp
    functionUses: 0
    functionsReached:
    - Botan::concat<Botan::secure_vector<uint8_t>>
    - auto::empty
    - test_throws
    - auto::get
    - Botan_Tests::CHECK
    - std::array<uint8_t, 0>
    - std::vector<uint8_t>
    - confirm
    - std::span<const uint8_t, 5>
    - Botan::concat<std::array<uint8_t, 0>>
    - Botan::concat<std::array<uint8_t, 10>>
    - std::array<uint8_t, 3>
    - Botan::concat<StrongV>
    - std::array<uint8_t, 1>
    - Botan::concat<std::array<uint8_t, 20>>
    - Botan::concat<std::vector<uint8_t>>
    - Botan::concat
    - Botan::secure_vector<uint8_t>
    - Botan::concat<std::array<uint8_t, 4>>
    - test_is_eq
    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:48,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_tls_messages.cpp:49,1
    - Dst: auto::update_be
      Src: /src/botan/src/tests/test_tls_messages.cpp:50,1
    - Dst: auto::update_be
      Src: /src/botan/src/tests/test_tls_messages.cpp:51,1
    - Dst: unlock
      Src: /src/botan/src/tests/test_tls_messages.cpp:52,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_tls_messages.cpp:52,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:54,1
    - Dst: Botan::TLS::Hello_Verify_Request::cookie
      Src: /src/botan/src/tests/test_tls_messages.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 56
    functionName: Botan_Tests::test_hello_verify_request
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - auto::set_key
    - auto::update_be
    - Test::Result::test_eq
    - Botan::MessageAuthenticationCode::create
    - unlock
    - Botan::TLS::Hello_Verify_Request::cookie
    - auto::final
    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: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    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: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_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>) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/test_tls_messages.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_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, std::span<const uint8_t>) override
  - 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: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    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) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/test_tls_messages.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_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&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    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:87,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:88,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:89,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:90,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:91,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_tls_messages.cpp:92,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:101,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:104,1
    - Dst: Botan::TLS::Client_Hello_12::legacy_version
      Src: /src/botan/src/tests/test_tls_messages.cpp:104,1
    - Dst: Botan::TLS::Protocol_Version::to_string
      Src: /src/botan/src/tests/test_tls_messages.cpp:104,1
    - Dst: Botan::TLS::Client_Hello_12::extension_types
      Src: /src/botan/src/tests/test_tls_messages.cpp:106,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:107,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:108,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_tls_messages.cpp:108,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:109,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_tls_messages.cpp:109,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:111,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:111,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:119,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/tests/test_tls_messages.cpp:122,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_tls_messages.cpp:122,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:124,1
    - Dst: Botan::TLS::Server_Hello_12::legacy_version
      Src: /src/botan/src/tests/test_tls_messages.cpp:124,1
    - Dst: Botan::TLS::Protocol_Version::to_string
      Src: /src/botan/src/tests/test_tls_messages.cpp:124,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:125,1
    - Dst: Botan::TLS::Server_Hello_12::ciphersuite
      Src: /src/botan/src/tests/test_tls_messages.cpp:125,1
    - Dst: Botan::TLS::Ciphersuite::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_messages.cpp:125,1
    - Dst: Botan::TLS::Server_Hello_12::extension_types
      Src: /src/botan/src/tests/test_tls_messages.cpp:127,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:128,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:129,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_tls_messages.cpp:129,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:130,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_tls_messages.cpp:130,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:132,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:132,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tls_messages.cpp:134,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_tls_messages.cpp:134,1
    - Dst: Test::Result::test_lt
      Src: /src/botan/src/tests/test_tls_messages.cpp:136,1
    - Dst: Botan::TLS::Alert::type_string
      Src: /src/botan/src/tests/test_tls_messages.cpp:137,1
    - Dst: Botan::TLS::Certificate_Status::response
      Src: /src/botan/src/tests/test_tls_messages.cpp:142,1
    - Dst: Botan::OCSP::Response::signer_name
      Src: /src/botan/src/tests/test_tls_messages.cpp:144,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:147,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:147,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:148,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_messages.cpp:151,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tls_messages.cpp:153,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tls_messages.cpp:155,1
    - Dst: what
      Src: /src/botan/src/tests/test_tls_messages.cpp:155,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:159,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:163,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:167,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:171,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:174,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:178,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:182,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:186,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tls_messages.cpp:187,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_tls_messages.cpp:187,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_messages.cpp:191,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 77
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 196
    functionName: Botan_Tests::TLS_Message_Parsing_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - static_cast<uint16_t>
    - Botan::get_byte<0>
    - Botan::hex_encode
    - Test::Result::test_failure
    - Botan::TLS::Server_Hello_12::extension_types
    - Botan::get_byte<1>
    - std::string::empty
    - std::vector::end
    - what
    - Botan::TLS::Client_Hello_12::extension_types
    - Botan::TLS::Certificate_Status::response
    - std::vector::begin
    - Test::Result::test_lt
    - Botan::TLS::Server_Hello_12::ciphersuite
    - Test_Error
    - Botan::TLS::Ciphersuite::by_id
    - get_req_bin
    - Test::Result::test_success
    - std::vector::push_back
    - Botan::TLS::Protocol_Version::to_string
    - Botan::TLS::Ciphersuite::ciphersuite_code
    - get_opt_str
    - std::vector::size
    - Botan::make_uint16
    - Botan::TLS::Client_Hello_12::legacy_version
    - get_req_str
    - Botan::OCSP::Response::signer_name
    - get_opt_bin
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::TLS::Alert::type_string
    - Botan::TLS::Server_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:201,1
    - Dst: test_hello_verify_request
      Src: /src/botan/src/tests/test_tls_messages.cpp:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 204
    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: 216
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 216
    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:221,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:222,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:223,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:224,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_tls_messages.cpp:232,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_tls_messages.cpp:232,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:232,1
    - Dst: Botan::TLS::Key_Share::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:235,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' extension'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 240
    functionName: Botan_Tests::TLS_Key_Share_CH_Generation_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - Botan::TLS::Key_Share::serialize
    - Fixed_Output_RNG::add_entropy
    - Test::Result::test_eq
    - get_opt_str
    - get_req_bin
    - auto::size
    - get_req_str
    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: 252
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 252
    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:255,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:256,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:257,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:258,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_tls_messages.cpp:259,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:266,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:269,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:269,1
    - Dst: Botan::TLS::Supported_Versions::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:270,1
    - Dst: get_req_bin_list
      Src: /src/botan/src/tests/test_tls_messages.cpp:272,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:274,1
    - Dst: Botan::TLS::Supported_Versions::supports
      Src: /src/botan/src/tests/test_tls_messages.cpp:275,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/tests/test_tls_messages.cpp:276,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:279,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:279,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:282,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:282,1
    - Dst: Botan::TLS::Supported_Groups::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:284,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:285,1
    - Dst: Botan::TLS::Supported_Groups::dh_groups
      Src: /src/botan/src/tests/test_tls_messages.cpp:287,1
    - Dst: Botan::TLS::Supported_Groups::ec_groups
      Src: /src/botan/src/tests/test_tls_messages.cpp:288,1
    - Dst: std::merge
      Src: /src/botan/src/tests/test_tls_messages.cpp:291,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_messages.cpp:291,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_messages.cpp:292,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_messages.cpp:293,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_messages.cpp:294,1
    - Dst: std::back_inserter
      Src: /src/botan/src/tests/test_tls_messages.cpp:295,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:297,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:298,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:298,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:300,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_tls_messages.cpp:302,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_tls_messages.cpp:302,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_tls_messages.cpp:302,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:304,1
    - Dst: std::any_of
      Src: /src/botan/src/tests/test_tls_messages.cpp:305,1
    - Dst: std::vector::cbegin
      Src: /src/botan/src/tests/test_tls_messages.cpp:305,1
    - Dst: std::vector::cend
      Src: /src/botan/src/tests/test_tls_messages.cpp:306,1
    - Dst: static_cast<Botan::TLS::Named_Group>
      Src: /src/botan/src/tests/test_tls_messages.cpp:308,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:313,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:317,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:317,1
    - Dst: Botan::TLS::Signature_Algorithms_Cert::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:319,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:320,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:322,1
    - Dst: Botan::TLS::Signature_Algorithms_Cert::supported_schemes
      Src: /src/botan/src/tests/test_tls_messages.cpp:323,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:323,1
    - Dst: Botan::TLS::Signature_Algorithms_Cert::supported_schemes
      Src: /src/botan/src/tests/test_tls_messages.cpp:326,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_tls_messages.cpp:328,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_tls_messages.cpp:328,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_tls_messages.cpp:328,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:330,1
    - Dst: Botan::TLS::Signature_Scheme::Signature_Scheme
      Src: /src/botan/src/tests/test_tls_messages.cpp:331,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:336,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:339,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:339,1
    - Dst: Botan::TLS::Cookie::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:341,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:342,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:344,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:345,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:346,1
    - Dst: Botan::TLS::Cookie::get_cookie
      Src: /src/botan/src/tests/test_tls_messages.cpp:346,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:350,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:350,1
    - Dst: Botan::TLS::Key_Share::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:353,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:354,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:356,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:357,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:357,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:361,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:361,1
    - Dst: Botan::TLS::Key_Share::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:363,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:364,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:366,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:367,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:367,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:371,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:371,1
    - Dst: Botan::TLS::Key_Share::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:373,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:374,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:376,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:377,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:377,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_messages.cpp:379,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tls_messages.cpp:381,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tls_messages.cpp:383,1
    - Dst: what
      Src: /src/botan/src/tests/test_tls_messages.cpp:383,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 2
    argNames:
    - ' extension'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 389
    functionName: Botan_Tests::TLS_Extension_Parsing_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - Botan::hex_encode
    - Botan::TLS::Signature_Algorithms_Cert::serialize
    - auto::end
    - Test::Result::test_failure
    - Botan::TLS::Supported_Groups::ec_groups
    - std::string::empty
    - std::vector::cend
    - Botan::TLS::Supported_Versions::serialize
    - what
    - static_cast<Botan::TLS::Named_Group>
    - auto::size
    - Botan::TLS::Cookie::serialize
    - auto::at
    - Test_Error
    - std::merge
    - std::vector::cbegin
    - get_req_bin
    - Botan::TLS::Cookie::get_cookie
    - Test::Result::test_success
    - Botan::TLS::Signature_Scheme::Signature_Scheme
    - std::any_of
    - std::back_inserter
    - Botan::TLS::Supported_Groups::dh_groups
    - Botan::TLS::Supported_Versions::supports
    - std::vector::size
    - Botan::make_uint16
    - auto::begin
    - get_req_str
    - Botan::TLS::Key_Share::serialize
    - Botan::TLS::Supported_Groups::serialize
    - get_opt_bin
    - Botan::TLS::Protocol_Version
    - Botan::TLS::Signature_Algorithms_Cert::supported_schemes
    - Test::Result::test_eq
    - Test::Result::confirm
    - get_req_bin_list
    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:394,1
    - Dst: test_hello_verify_request
      Src: /src/botan/src/tests/test_tls_messages.cpp:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 397
    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: 405
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 405
    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:408,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:409,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:410,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:411,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:412,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_tls_messages.cpp:413,1
    - Dst: std::visit
      Src: /src/botan/src/tests/test_tls_messages.cpp:419,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:422,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:425,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:428,1
    - Dst: extensions
      Src: /src/botan/src/tests/test_tls_messages.cpp:430,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:431,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:432,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_tls_messages.cpp:432,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:433,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_tls_messages.cpp:433,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:435,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:435,1
    - Dst: ciphersuites
      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_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:442,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:444,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_messages.cpp:446,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:448,1
    - Dst: what
      Src: /src/botan/src/tests/test_tls_messages.cpp:448,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:449,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:454,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/tests/test_tls_messages.cpp:456,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_tls_messages.cpp:456,1
    - Dst: std::visit
      Src: /src/botan/src/tests/test_tls_messages.cpp:460,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:463,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:464,1
    - Dst: legacy_version
      Src: /src/botan/src/tests/test_tls_messages.cpp:464,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:466,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:468,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:471,1
    - Dst: ciphersuite
      Src: /src/botan/src/tests/test_tls_messages.cpp:471,1
    - Dst: Botan::TLS::Ciphersuite::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_messages.cpp:471,1
    - Dst: extensions
      Src: /src/botan/src/tests/test_tls_messages.cpp:474,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:475,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:476,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_tls_messages.cpp:476,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:477,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_tls_messages.cpp:477,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:479,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:479,1
    - Dst: Botan::TLS::Server_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_messages.cpp:481,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:483,1
    - Dst: what
      Src: /src/botan/src/tests/test_tls_messages.cpp:483,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:484,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 489
    functionName: Botan_Tests::TLS_13_Message_Parsing_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - Botan::get_byte<0>
    - Botan::hex_encode
    - Botan::get_byte<1>
    - std::string::empty
    - what
    - ciphersuite
    - legacy_version
    - extensions
    - Botan::TLS::Ciphersuite::by_id
    - std::visit
    - get_req_bin
    - std::vector::push_back
    - Botan::TLS::Client_Hello_13::parse
    - Botan::TLS::Server_Hello_13::parse
    - Botan::TLS::Ciphersuite::ciphersuite_code
    - get_opt_str
    - ciphersuites
    - Botan::make_uint16
    - get_req_str
    - get_opt_bin
    - Test::Result::test_eq
    - Test::Result::confirm
    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:48,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_tls_messages.cpp:49,1
    - Dst: auto::update_be
      Src: /src/botan/src/tests/test_tls_messages.cpp:50,1
    - Dst: auto::update_be
      Src: /src/botan/src/tests/test_tls_messages.cpp:51,1
    - Dst: unlock
      Src: /src/botan/src/tests/test_tls_messages.cpp:52,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_tls_messages.cpp:52,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:54,1
    - Dst: Botan::TLS::Hello_Verify_Request::cookie
      Src: /src/botan/src/tests/test_tls_messages.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 56
    functionName: Botan_Tests::test_hello_verify_request
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - auto::set_key
    - auto::update_be
    - Test::Result::test_eq
    - Botan::MessageAuthenticationCode::create
    - unlock
    - Botan::TLS::Hello_Verify_Request::cookie
    - auto::final
    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: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    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: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_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>) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/test_tls_messages.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_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, std::span<const uint8_t>) override
  - 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: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    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) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/test_tls_messages.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_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&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    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:87,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:88,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:89,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:90,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:91,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_tls_messages.cpp:92,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:101,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:104,1
    - Dst: Botan::TLS::Client_Hello_12::legacy_version
      Src: /src/botan/src/tests/test_tls_messages.cpp:104,1
    - Dst: Botan::TLS::Protocol_Version::to_string
      Src: /src/botan/src/tests/test_tls_messages.cpp:104,1
    - Dst: Botan::TLS::Client_Hello_12::extension_types
      Src: /src/botan/src/tests/test_tls_messages.cpp:106,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:107,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:108,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_tls_messages.cpp:108,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:109,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_tls_messages.cpp:109,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:111,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:111,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:119,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/tests/test_tls_messages.cpp:122,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_tls_messages.cpp:122,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:124,1
    - Dst: Botan::TLS::Server_Hello_12::legacy_version
      Src: /src/botan/src/tests/test_tls_messages.cpp:124,1
    - Dst: Botan::TLS::Protocol_Version::to_string
      Src: /src/botan/src/tests/test_tls_messages.cpp:124,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:125,1
    - Dst: Botan::TLS::Server_Hello_12::ciphersuite
      Src: /src/botan/src/tests/test_tls_messages.cpp:125,1
    - Dst: Botan::TLS::Ciphersuite::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_messages.cpp:125,1
    - Dst: Botan::TLS::Server_Hello_12::extension_types
      Src: /src/botan/src/tests/test_tls_messages.cpp:127,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:128,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:129,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_tls_messages.cpp:129,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:130,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_tls_messages.cpp:130,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:132,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:132,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tls_messages.cpp:134,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_tls_messages.cpp:134,1
    - Dst: Test::Result::test_lt
      Src: /src/botan/src/tests/test_tls_messages.cpp:136,1
    - Dst: Botan::TLS::Alert::type_string
      Src: /src/botan/src/tests/test_tls_messages.cpp:137,1
    - Dst: Botan::TLS::Certificate_Status::response
      Src: /src/botan/src/tests/test_tls_messages.cpp:142,1
    - Dst: Botan::OCSP::Response::signer_name
      Src: /src/botan/src/tests/test_tls_messages.cpp:144,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:147,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:147,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:148,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_messages.cpp:151,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tls_messages.cpp:153,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tls_messages.cpp:155,1
    - Dst: what
      Src: /src/botan/src/tests/test_tls_messages.cpp:155,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:159,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:163,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:167,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:171,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:174,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:178,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:182,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:186,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tls_messages.cpp:187,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_tls_messages.cpp:187,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_messages.cpp:191,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 77
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 196
    functionName: Botan_Tests::TLS_Message_Parsing_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - static_cast<uint16_t>
    - Botan::get_byte<0>
    - Botan::hex_encode
    - Test::Result::test_failure
    - Botan::TLS::Server_Hello_12::extension_types
    - Botan::get_byte<1>
    - std::string::empty
    - std::vector::end
    - what
    - Botan::TLS::Client_Hello_12::extension_types
    - Botan::TLS::Certificate_Status::response
    - std::vector::begin
    - Test::Result::test_lt
    - Botan::TLS::Server_Hello_12::ciphersuite
    - Test_Error
    - Botan::TLS::Ciphersuite::by_id
    - get_req_bin
    - Test::Result::test_success
    - std::vector::push_back
    - Botan::TLS::Protocol_Version::to_string
    - Botan::TLS::Ciphersuite::ciphersuite_code
    - get_opt_str
    - std::vector::size
    - Botan::make_uint16
    - Botan::TLS::Client_Hello_12::legacy_version
    - get_req_str
    - Botan::OCSP::Response::signer_name
    - get_opt_bin
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::TLS::Alert::type_string
    - Botan::TLS::Server_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:201,1
    - Dst: test_hello_verify_request
      Src: /src/botan/src/tests/test_tls_messages.cpp:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 204
    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: 216
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 216
    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:221,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:222,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:223,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:224,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_tls_messages.cpp:232,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_tls_messages.cpp:232,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:232,1
    - Dst: Botan::TLS::Key_Share::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:235,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' extension'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 240
    functionName: Botan_Tests::TLS_Key_Share_CH_Generation_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - Botan::TLS::Key_Share::serialize
    - Fixed_Output_RNG::add_entropy
    - Test::Result::test_eq
    - get_opt_str
    - get_req_bin
    - auto::size
    - get_req_str
    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: 252
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 252
    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:255,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:256,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:257,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:258,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_tls_messages.cpp:259,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:266,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:269,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:269,1
    - Dst: Botan::TLS::Supported_Versions::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:270,1
    - Dst: get_req_bin_list
      Src: /src/botan/src/tests/test_tls_messages.cpp:272,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:274,1
    - Dst: Botan::TLS::Supported_Versions::supports
      Src: /src/botan/src/tests/test_tls_messages.cpp:275,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/tests/test_tls_messages.cpp:276,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:279,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:279,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:282,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:282,1
    - Dst: Botan::TLS::Supported_Groups::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:284,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:285,1
    - Dst: Botan::TLS::Supported_Groups::dh_groups
      Src: /src/botan/src/tests/test_tls_messages.cpp:287,1
    - Dst: Botan::TLS::Supported_Groups::ec_groups
      Src: /src/botan/src/tests/test_tls_messages.cpp:288,1
    - Dst: std::merge
      Src: /src/botan/src/tests/test_tls_messages.cpp:291,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_messages.cpp:291,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_messages.cpp:292,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_messages.cpp:293,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_messages.cpp:294,1
    - Dst: std::back_inserter
      Src: /src/botan/src/tests/test_tls_messages.cpp:295,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:297,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:298,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:298,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:300,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_tls_messages.cpp:302,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_tls_messages.cpp:302,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_tls_messages.cpp:302,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:304,1
    - Dst: std::any_of
      Src: /src/botan/src/tests/test_tls_messages.cpp:305,1
    - Dst: std::vector::cbegin
      Src: /src/botan/src/tests/test_tls_messages.cpp:305,1
    - Dst: std::vector::cend
      Src: /src/botan/src/tests/test_tls_messages.cpp:306,1
    - Dst: static_cast<Botan::TLS::Named_Group>
      Src: /src/botan/src/tests/test_tls_messages.cpp:308,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:313,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:317,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:317,1
    - Dst: Botan::TLS::Signature_Algorithms_Cert::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:319,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:320,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:322,1
    - Dst: Botan::TLS::Signature_Algorithms_Cert::supported_schemes
      Src: /src/botan/src/tests/test_tls_messages.cpp:323,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:323,1
    - Dst: Botan::TLS::Signature_Algorithms_Cert::supported_schemes
      Src: /src/botan/src/tests/test_tls_messages.cpp:326,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_tls_messages.cpp:328,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_tls_messages.cpp:328,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_tls_messages.cpp:328,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:330,1
    - Dst: Botan::TLS::Signature_Scheme::Signature_Scheme
      Src: /src/botan/src/tests/test_tls_messages.cpp:331,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:336,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:339,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:339,1
    - Dst: Botan::TLS::Cookie::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:341,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:342,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:344,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:345,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:346,1
    - Dst: Botan::TLS::Cookie::get_cookie
      Src: /src/botan/src/tests/test_tls_messages.cpp:346,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:350,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:350,1
    - Dst: Botan::TLS::Key_Share::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:353,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:354,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:356,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:357,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:357,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:361,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:361,1
    - Dst: Botan::TLS::Key_Share::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:363,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:364,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:366,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:367,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:367,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:371,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:371,1
    - Dst: Botan::TLS::Key_Share::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:373,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:374,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:376,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:377,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:377,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_messages.cpp:379,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tls_messages.cpp:381,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tls_messages.cpp:383,1
    - Dst: what
      Src: /src/botan/src/tests/test_tls_messages.cpp:383,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 2
    argNames:
    - ' extension'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 389
    functionName: Botan_Tests::TLS_Extension_Parsing_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - Botan::hex_encode
    - Botan::TLS::Signature_Algorithms_Cert::serialize
    - auto::end
    - Test::Result::test_failure
    - Botan::TLS::Supported_Groups::ec_groups
    - std::string::empty
    - std::vector::cend
    - Botan::TLS::Supported_Versions::serialize
    - what
    - static_cast<Botan::TLS::Named_Group>
    - auto::size
    - Botan::TLS::Cookie::serialize
    - auto::at
    - Test_Error
    - std::merge
    - std::vector::cbegin
    - get_req_bin
    - Botan::TLS::Cookie::get_cookie
    - Test::Result::test_success
    - Botan::TLS::Signature_Scheme::Signature_Scheme
    - std::any_of
    - std::back_inserter
    - Botan::TLS::Supported_Groups::dh_groups
    - Botan::TLS::Supported_Versions::supports
    - std::vector::size
    - Botan::make_uint16
    - auto::begin
    - get_req_str
    - Botan::TLS::Key_Share::serialize
    - Botan::TLS::Supported_Groups::serialize
    - get_opt_bin
    - Botan::TLS::Protocol_Version
    - Botan::TLS::Signature_Algorithms_Cert::supported_schemes
    - Test::Result::test_eq
    - Test::Result::confirm
    - get_req_bin_list
    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:394,1
    - Dst: test_hello_verify_request
      Src: /src/botan/src/tests/test_tls_messages.cpp:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 397
    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: 405
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 405
    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:408,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:409,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:410,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:411,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:412,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_tls_messages.cpp:413,1
    - Dst: std::visit
      Src: /src/botan/src/tests/test_tls_messages.cpp:419,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:422,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:425,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:428,1
    - Dst: extensions
      Src: /src/botan/src/tests/test_tls_messages.cpp:430,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:431,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:432,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_tls_messages.cpp:432,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:433,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_tls_messages.cpp:433,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:435,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:435,1
    - Dst: ciphersuites
      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_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:442,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:444,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_messages.cpp:446,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:448,1
    - Dst: what
      Src: /src/botan/src/tests/test_tls_messages.cpp:448,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:449,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:454,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/tests/test_tls_messages.cpp:456,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_tls_messages.cpp:456,1
    - Dst: std::visit
      Src: /src/botan/src/tests/test_tls_messages.cpp:460,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:463,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:464,1
    - Dst: legacy_version
      Src: /src/botan/src/tests/test_tls_messages.cpp:464,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:466,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:468,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:471,1
    - Dst: ciphersuite
      Src: /src/botan/src/tests/test_tls_messages.cpp:471,1
    - Dst: Botan::TLS::Ciphersuite::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_messages.cpp:471,1
    - Dst: extensions
      Src: /src/botan/src/tests/test_tls_messages.cpp:474,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:475,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:476,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_tls_messages.cpp:476,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:477,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_tls_messages.cpp:477,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:479,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:479,1
    - Dst: Botan::TLS::Server_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_messages.cpp:481,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:483,1
    - Dst: what
      Src: /src/botan/src/tests/test_tls_messages.cpp:483,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:484,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 489
    functionName: Botan_Tests::TLS_13_Message_Parsing_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - Botan::get_byte<0>
    - Botan::hex_encode
    - Botan::get_byte<1>
    - std::string::empty
    - what
    - ciphersuite
    - legacy_version
    - extensions
    - Botan::TLS::Ciphersuite::by_id
    - std::visit
    - get_req_bin
    - std::vector::push_back
    - Botan::TLS::Client_Hello_13::parse
    - Botan::TLS::Server_Hello_13::parse
    - Botan::TLS::Ciphersuite::ciphersuite_code
    - get_opt_str
    - ciphersuites
    - Botan::make_uint16
    - get_req_str
    - get_opt_bin
    - Test::Result::test_eq
    - Test::Result::confirm
    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:48,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_tls_messages.cpp:49,1
    - Dst: auto::update_be
      Src: /src/botan/src/tests/test_tls_messages.cpp:50,1
    - Dst: auto::update_be
      Src: /src/botan/src/tests/test_tls_messages.cpp:51,1
    - Dst: unlock
      Src: /src/botan/src/tests/test_tls_messages.cpp:52,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_tls_messages.cpp:52,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:54,1
    - Dst: Botan::TLS::Hello_Verify_Request::cookie
      Src: /src/botan/src/tests/test_tls_messages.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 56
    functionName: Botan_Tests::test_hello_verify_request
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - auto::set_key
    - auto::update_be
    - Test::Result::test_eq
    - Botan::MessageAuthenticationCode::create
    - unlock
    - Botan::TLS::Hello_Verify_Request::cookie
    - auto::final
    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: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    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: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_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>) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/test_tls_messages.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_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, std::span<const uint8_t>) override
  - 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: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    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) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/test_tls_messages.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_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&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    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:87,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:88,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:89,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:90,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:91,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_tls_messages.cpp:92,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:101,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:104,1
    - Dst: Botan::TLS::Client_Hello_12::legacy_version
      Src: /src/botan/src/tests/test_tls_messages.cpp:104,1
    - Dst: Botan::TLS::Protocol_Version::to_string
      Src: /src/botan/src/tests/test_tls_messages.cpp:104,1
    - Dst: Botan::TLS::Client_Hello_12::extension_types
      Src: /src/botan/src/tests/test_tls_messages.cpp:106,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:107,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:108,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_tls_messages.cpp:108,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:109,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_tls_messages.cpp:109,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:111,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:111,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:119,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/tests/test_tls_messages.cpp:122,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_tls_messages.cpp:122,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:124,1
    - Dst: Botan::TLS::Server_Hello_12::legacy_version
      Src: /src/botan/src/tests/test_tls_messages.cpp:124,1
    - Dst: Botan::TLS::Protocol_Version::to_string
      Src: /src/botan/src/tests/test_tls_messages.cpp:124,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:125,1
    - Dst: Botan::TLS::Server_Hello_12::ciphersuite
      Src: /src/botan/src/tests/test_tls_messages.cpp:125,1
    - Dst: Botan::TLS::Ciphersuite::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_messages.cpp:125,1
    - Dst: Botan::TLS::Server_Hello_12::extension_types
      Src: /src/botan/src/tests/test_tls_messages.cpp:127,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:128,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:129,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_tls_messages.cpp:129,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:130,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_tls_messages.cpp:130,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:132,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:132,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tls_messages.cpp:134,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_tls_messages.cpp:134,1
    - Dst: Test::Result::test_lt
      Src: /src/botan/src/tests/test_tls_messages.cpp:136,1
    - Dst: Botan::TLS::Alert::type_string
      Src: /src/botan/src/tests/test_tls_messages.cpp:137,1
    - Dst: Botan::TLS::Certificate_Status::response
      Src: /src/botan/src/tests/test_tls_messages.cpp:142,1
    - Dst: Botan::OCSP::Response::signer_name
      Src: /src/botan/src/tests/test_tls_messages.cpp:144,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:147,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:147,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:148,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_messages.cpp:151,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tls_messages.cpp:153,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tls_messages.cpp:155,1
    - Dst: what
      Src: /src/botan/src/tests/test_tls_messages.cpp:155,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:159,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:163,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:167,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:171,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:174,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:178,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:182,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:186,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tls_messages.cpp:187,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_tls_messages.cpp:187,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_messages.cpp:191,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 77
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 196
    functionName: Botan_Tests::TLS_Message_Parsing_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - static_cast<uint16_t>
    - Botan::get_byte<0>
    - Botan::hex_encode
    - Test::Result::test_failure
    - Botan::TLS::Server_Hello_12::extension_types
    - Botan::get_byte<1>
    - std::string::empty
    - std::vector::end
    - what
    - Botan::TLS::Client_Hello_12::extension_types
    - Botan::TLS::Certificate_Status::response
    - std::vector::begin
    - Test::Result::test_lt
    - Botan::TLS::Server_Hello_12::ciphersuite
    - Test_Error
    - Botan::TLS::Ciphersuite::by_id
    - get_req_bin
    - Test::Result::test_success
    - std::vector::push_back
    - Botan::TLS::Protocol_Version::to_string
    - Botan::TLS::Ciphersuite::ciphersuite_code
    - get_opt_str
    - std::vector::size
    - Botan::make_uint16
    - Botan::TLS::Client_Hello_12::legacy_version
    - get_req_str
    - Botan::OCSP::Response::signer_name
    - get_opt_bin
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::TLS::Alert::type_string
    - Botan::TLS::Server_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:201,1
    - Dst: test_hello_verify_request
      Src: /src/botan/src/tests/test_tls_messages.cpp:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 204
    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: 216
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 216
    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:221,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:222,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:223,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:224,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_tls_messages.cpp:232,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_tls_messages.cpp:232,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:232,1
    - Dst: Botan::TLS::Key_Share::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:235,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' extension'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 240
    functionName: Botan_Tests::TLS_Key_Share_CH_Generation_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - Botan::TLS::Key_Share::serialize
    - Fixed_Output_RNG::add_entropy
    - Test::Result::test_eq
    - get_opt_str
    - get_req_bin
    - auto::size
    - get_req_str
    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: 252
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 252
    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:255,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:256,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:257,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:258,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_tls_messages.cpp:259,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:266,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:269,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:269,1
    - Dst: Botan::TLS::Supported_Versions::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:270,1
    - Dst: get_req_bin_list
      Src: /src/botan/src/tests/test_tls_messages.cpp:272,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:274,1
    - Dst: Botan::TLS::Supported_Versions::supports
      Src: /src/botan/src/tests/test_tls_messages.cpp:275,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/tests/test_tls_messages.cpp:276,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:279,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:279,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:282,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:282,1
    - Dst: Botan::TLS::Supported_Groups::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:284,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:285,1
    - Dst: Botan::TLS::Supported_Groups::dh_groups
      Src: /src/botan/src/tests/test_tls_messages.cpp:287,1
    - Dst: Botan::TLS::Supported_Groups::ec_groups
      Src: /src/botan/src/tests/test_tls_messages.cpp:288,1
    - Dst: std::merge
      Src: /src/botan/src/tests/test_tls_messages.cpp:291,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_messages.cpp:291,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_messages.cpp:292,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_messages.cpp:293,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_messages.cpp:294,1
    - Dst: std::back_inserter
      Src: /src/botan/src/tests/test_tls_messages.cpp:295,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:297,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:298,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:298,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:300,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_tls_messages.cpp:302,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_tls_messages.cpp:302,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_tls_messages.cpp:302,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:304,1
    - Dst: std::any_of
      Src: /src/botan/src/tests/test_tls_messages.cpp:305,1
    - Dst: std::vector::cbegin
      Src: /src/botan/src/tests/test_tls_messages.cpp:305,1
    - Dst: std::vector::cend
      Src: /src/botan/src/tests/test_tls_messages.cpp:306,1
    - Dst: static_cast<Botan::TLS::Named_Group>
      Src: /src/botan/src/tests/test_tls_messages.cpp:308,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:313,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:317,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:317,1
    - Dst: Botan::TLS::Signature_Algorithms_Cert::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:319,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:320,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:322,1
    - Dst: Botan::TLS::Signature_Algorithms_Cert::supported_schemes
      Src: /src/botan/src/tests/test_tls_messages.cpp:323,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:323,1
    - Dst: Botan::TLS::Signature_Algorithms_Cert::supported_schemes
      Src: /src/botan/src/tests/test_tls_messages.cpp:326,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_tls_messages.cpp:328,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_tls_messages.cpp:328,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_tls_messages.cpp:328,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:330,1
    - Dst: Botan::TLS::Signature_Scheme::Signature_Scheme
      Src: /src/botan/src/tests/test_tls_messages.cpp:331,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:336,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:339,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:339,1
    - Dst: Botan::TLS::Cookie::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:341,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:342,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:344,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:345,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:346,1
    - Dst: Botan::TLS::Cookie::get_cookie
      Src: /src/botan/src/tests/test_tls_messages.cpp:346,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:350,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:350,1
    - Dst: Botan::TLS::Key_Share::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:353,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:354,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:356,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:357,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:357,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:361,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:361,1
    - Dst: Botan::TLS::Key_Share::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:363,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:364,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:366,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:367,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:367,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:371,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:371,1
    - Dst: Botan::TLS::Key_Share::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:373,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:374,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:376,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:377,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:377,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_messages.cpp:379,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tls_messages.cpp:381,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tls_messages.cpp:383,1
    - Dst: what
      Src: /src/botan/src/tests/test_tls_messages.cpp:383,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 2
    argNames:
    - ' extension'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 389
    functionName: Botan_Tests::TLS_Extension_Parsing_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - Botan::hex_encode
    - Botan::TLS::Signature_Algorithms_Cert::serialize
    - auto::end
    - Test::Result::test_failure
    - Botan::TLS::Supported_Groups::ec_groups
    - std::string::empty
    - std::vector::cend
    - Botan::TLS::Supported_Versions::serialize
    - what
    - static_cast<Botan::TLS::Named_Group>
    - auto::size
    - Botan::TLS::Cookie::serialize
    - auto::at
    - Test_Error
    - std::merge
    - std::vector::cbegin
    - get_req_bin
    - Botan::TLS::Cookie::get_cookie
    - Test::Result::test_success
    - Botan::TLS::Signature_Scheme::Signature_Scheme
    - std::any_of
    - std::back_inserter
    - Botan::TLS::Supported_Groups::dh_groups
    - Botan::TLS::Supported_Versions::supports
    - std::vector::size
    - Botan::make_uint16
    - auto::begin
    - get_req_str
    - Botan::TLS::Key_Share::serialize
    - Botan::TLS::Supported_Groups::serialize
    - get_opt_bin
    - Botan::TLS::Protocol_Version
    - Botan::TLS::Signature_Algorithms_Cert::supported_schemes
    - Test::Result::test_eq
    - Test::Result::confirm
    - get_req_bin_list
    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:394,1
    - Dst: test_hello_verify_request
      Src: /src/botan/src/tests/test_tls_messages.cpp:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 397
    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: 405
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 405
    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:408,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:409,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:410,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:411,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:412,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_tls_messages.cpp:413,1
    - Dst: std::visit
      Src: /src/botan/src/tests/test_tls_messages.cpp:419,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:422,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:425,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:428,1
    - Dst: extensions
      Src: /src/botan/src/tests/test_tls_messages.cpp:430,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:431,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:432,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_tls_messages.cpp:432,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:433,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_tls_messages.cpp:433,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:435,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:435,1
    - Dst: ciphersuites
      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_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:442,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:444,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_messages.cpp:446,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:448,1
    - Dst: what
      Src: /src/botan/src/tests/test_tls_messages.cpp:448,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:449,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:454,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/tests/test_tls_messages.cpp:456,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_tls_messages.cpp:456,1
    - Dst: std::visit
      Src: /src/botan/src/tests/test_tls_messages.cpp:460,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:463,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:464,1
    - Dst: legacy_version
      Src: /src/botan/src/tests/test_tls_messages.cpp:464,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:466,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:468,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:471,1
    - Dst: ciphersuite
      Src: /src/botan/src/tests/test_tls_messages.cpp:471,1
    - Dst: Botan::TLS::Ciphersuite::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_messages.cpp:471,1
    - Dst: extensions
      Src: /src/botan/src/tests/test_tls_messages.cpp:474,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:475,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:476,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_tls_messages.cpp:476,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:477,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_tls_messages.cpp:477,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:479,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:479,1
    - Dst: Botan::TLS::Server_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_messages.cpp:481,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:483,1
    - Dst: what
      Src: /src/botan/src/tests/test_tls_messages.cpp:483,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:484,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 489
    functionName: Botan_Tests::TLS_13_Message_Parsing_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - Botan::get_byte<0>
    - Botan::hex_encode
    - Botan::get_byte<1>
    - std::string::empty
    - what
    - ciphersuite
    - legacy_version
    - extensions
    - Botan::TLS::Ciphersuite::by_id
    - std::visit
    - get_req_bin
    - std::vector::push_back
    - Botan::TLS::Client_Hello_13::parse
    - Botan::TLS::Server_Hello_13::parse
    - Botan::TLS::Ciphersuite::ciphersuite_code
    - get_opt_str
    - ciphersuites
    - Botan::make_uint16
    - get_req_str
    - get_opt_bin
    - Test::Result::test_eq
    - Test::Result::confirm
    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:48,1
    - Dst: auto::set_key
      Src: /src/botan/src/tests/test_tls_messages.cpp:49,1
    - Dst: auto::update_be
      Src: /src/botan/src/tests/test_tls_messages.cpp:50,1
    - Dst: auto::update_be
      Src: /src/botan/src/tests/test_tls_messages.cpp:51,1
    - Dst: unlock
      Src: /src/botan/src/tests/test_tls_messages.cpp:52,1
    - Dst: auto::final
      Src: /src/botan/src/tests/test_tls_messages.cpp:52,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:54,1
    - Dst: Botan::TLS::Hello_Verify_Request::cookie
      Src: /src/botan/src/tests/test_tls_messages.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 56
    functionName: Botan_Tests::test_hello_verify_request
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - auto::set_key
    - auto::update_be
    - Test::Result::test_eq
    - Botan::MessageAuthenticationCode::create
    - unlock
    - Botan::TLS::Hello_Verify_Request::cookie
    - auto::final
    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: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    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: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_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>) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/test_tls_messages.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_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, std::span<const uint8_t>) override
  - 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: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    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) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_failure
      Src: /src/botan/src/tests/test_tls_messages.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_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&) override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    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:87,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:88,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:89,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:90,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:91,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_tls_messages.cpp:92,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:101,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:104,1
    - Dst: Botan::TLS::Client_Hello_12::legacy_version
      Src: /src/botan/src/tests/test_tls_messages.cpp:104,1
    - Dst: Botan::TLS::Protocol_Version::to_string
      Src: /src/botan/src/tests/test_tls_messages.cpp:104,1
    - Dst: Botan::TLS::Client_Hello_12::extension_types
      Src: /src/botan/src/tests/test_tls_messages.cpp:106,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:107,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:108,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_tls_messages.cpp:108,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:109,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_tls_messages.cpp:109,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:111,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:111,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:119,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/tests/test_tls_messages.cpp:122,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_tls_messages.cpp:122,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:124,1
    - Dst: Botan::TLS::Server_Hello_12::legacy_version
      Src: /src/botan/src/tests/test_tls_messages.cpp:124,1
    - Dst: Botan::TLS::Protocol_Version::to_string
      Src: /src/botan/src/tests/test_tls_messages.cpp:124,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:125,1
    - Dst: Botan::TLS::Server_Hello_12::ciphersuite
      Src: /src/botan/src/tests/test_tls_messages.cpp:125,1
    - Dst: Botan::TLS::Ciphersuite::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_messages.cpp:125,1
    - Dst: Botan::TLS::Server_Hello_12::extension_types
      Src: /src/botan/src/tests/test_tls_messages.cpp:127,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:128,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:129,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_tls_messages.cpp:129,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:130,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_tls_messages.cpp:130,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:132,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:132,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tls_messages.cpp:134,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_tls_messages.cpp:134,1
    - Dst: Test::Result::test_lt
      Src: /src/botan/src/tests/test_tls_messages.cpp:136,1
    - Dst: Botan::TLS::Alert::type_string
      Src: /src/botan/src/tests/test_tls_messages.cpp:137,1
    - Dst: Botan::TLS::Certificate_Status::response
      Src: /src/botan/src/tests/test_tls_messages.cpp:142,1
    - Dst: Botan::OCSP::Response::signer_name
      Src: /src/botan/src/tests/test_tls_messages.cpp:144,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:147,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:147,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:148,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_messages.cpp:151,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tls_messages.cpp:153,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tls_messages.cpp:155,1
    - Dst: what
      Src: /src/botan/src/tests/test_tls_messages.cpp:155,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:159,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:163,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:167,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:171,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:174,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:178,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:182,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_tls_messages.cpp:186,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_tls_messages.cpp:187,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_tls_messages.cpp:187,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_messages.cpp:191,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 77
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 196
    functionName: Botan_Tests::TLS_Message_Parsing_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - static_cast<uint16_t>
    - Botan::get_byte<0>
    - Botan::hex_encode
    - Test::Result::test_failure
    - Botan::TLS::Server_Hello_12::extension_types
    - Botan::get_byte<1>
    - std::string::empty
    - std::vector::end
    - what
    - Botan::TLS::Client_Hello_12::extension_types
    - Botan::TLS::Certificate_Status::response
    - std::vector::begin
    - Test::Result::test_lt
    - Botan::TLS::Server_Hello_12::ciphersuite
    - Test_Error
    - Botan::TLS::Ciphersuite::by_id
    - get_req_bin
    - Test::Result::test_success
    - std::vector::push_back
    - Botan::TLS::Protocol_Version::to_string
    - Botan::TLS::Ciphersuite::ciphersuite_code
    - get_opt_str
    - std::vector::size
    - Botan::make_uint16
    - Botan::TLS::Client_Hello_12::legacy_version
    - get_req_str
    - Botan::OCSP::Response::signer_name
    - get_opt_bin
    - Test::Result::test_eq
    - Test::Result::confirm
    - Botan::TLS::Alert::type_string
    - Botan::TLS::Server_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:201,1
    - Dst: test_hello_verify_request
      Src: /src/botan/src/tests/test_tls_messages.cpp:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 204
    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: 216
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 216
    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:221,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:222,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:223,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:224,1
    - Dst: Fixed_Output_RNG::add_entropy
      Src: /src/botan/src/tests/test_tls_messages.cpp:232,1
    - Dst: auto::data
      Src: /src/botan/src/tests/test_tls_messages.cpp:232,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:232,1
    - Dst: Botan::TLS::Key_Share::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:235,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' extension'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 240
    functionName: Botan_Tests::TLS_Key_Share_CH_Generation_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - Botan::TLS::Key_Share::serialize
    - Fixed_Output_RNG::add_entropy
    - Test::Result::test_eq
    - get_opt_str
    - get_req_bin
    - auto::size
    - get_req_str
    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: 252
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 252
    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:255,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:256,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:257,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:258,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_tls_messages.cpp:259,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:266,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:269,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:269,1
    - Dst: Botan::TLS::Supported_Versions::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:270,1
    - Dst: get_req_bin_list
      Src: /src/botan/src/tests/test_tls_messages.cpp:272,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:274,1
    - Dst: Botan::TLS::Supported_Versions::supports
      Src: /src/botan/src/tests/test_tls_messages.cpp:275,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/tests/test_tls_messages.cpp:276,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:279,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:279,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:282,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:282,1
    - Dst: Botan::TLS::Supported_Groups::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:284,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:285,1
    - Dst: Botan::TLS::Supported_Groups::dh_groups
      Src: /src/botan/src/tests/test_tls_messages.cpp:287,1
    - Dst: Botan::TLS::Supported_Groups::ec_groups
      Src: /src/botan/src/tests/test_tls_messages.cpp:288,1
    - Dst: std::merge
      Src: /src/botan/src/tests/test_tls_messages.cpp:291,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_messages.cpp:291,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_messages.cpp:292,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_tls_messages.cpp:293,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_tls_messages.cpp:294,1
    - Dst: std::back_inserter
      Src: /src/botan/src/tests/test_tls_messages.cpp:295,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:297,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:298,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:298,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:300,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_tls_messages.cpp:302,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_tls_messages.cpp:302,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_tls_messages.cpp:302,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:304,1
    - Dst: std::any_of
      Src: /src/botan/src/tests/test_tls_messages.cpp:305,1
    - Dst: std::vector::cbegin
      Src: /src/botan/src/tests/test_tls_messages.cpp:305,1
    - Dst: std::vector::cend
      Src: /src/botan/src/tests/test_tls_messages.cpp:306,1
    - Dst: static_cast<Botan::TLS::Named_Group>
      Src: /src/botan/src/tests/test_tls_messages.cpp:308,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:313,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:317,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:317,1
    - Dst: Botan::TLS::Signature_Algorithms_Cert::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:319,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:320,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:322,1
    - Dst: Botan::TLS::Signature_Algorithms_Cert::supported_schemes
      Src: /src/botan/src/tests/test_tls_messages.cpp:323,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:323,1
    - Dst: Botan::TLS::Signature_Algorithms_Cert::supported_schemes
      Src: /src/botan/src/tests/test_tls_messages.cpp:326,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_tls_messages.cpp:328,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_tls_messages.cpp:328,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_tls_messages.cpp:328,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:330,1
    - Dst: Botan::TLS::Signature_Scheme::Signature_Scheme
      Src: /src/botan/src/tests/test_tls_messages.cpp:331,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:336,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:339,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:339,1
    - Dst: Botan::TLS::Cookie::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:341,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:342,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:344,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:345,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:346,1
    - Dst: Botan::TLS::Cookie::get_cookie
      Src: /src/botan/src/tests/test_tls_messages.cpp:346,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:350,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:350,1
    - Dst: Botan::TLS::Key_Share::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:353,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:354,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:356,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:357,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:357,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:361,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:361,1
    - Dst: Botan::TLS::Key_Share::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:363,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:364,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:366,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:367,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:367,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:371,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_tls_messages.cpp:371,1
    - Dst: Botan::TLS::Key_Share::serialize
      Src: /src/botan/src/tests/test_tls_messages.cpp:373,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:374,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:376,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:377,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:377,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_tls_messages.cpp:379,1
    - Dst: Test::Result::test_success
      Src: /src/botan/src/tests/test_tls_messages.cpp:381,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_tls_messages.cpp:383,1
    - Dst: what
      Src: /src/botan/src/tests/test_tls_messages.cpp:383,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 46
    argCount: 2
    argNames:
    - ' extension'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 389
    functionName: Botan_Tests::TLS_Extension_Parsing_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - Botan::hex_encode
    - Botan::TLS::Signature_Algorithms_Cert::serialize
    - auto::end
    - Test::Result::test_failure
    - Botan::TLS::Supported_Groups::ec_groups
    - std::string::empty
    - std::vector::cend
    - Botan::TLS::Supported_Versions::serialize
    - what
    - static_cast<Botan::TLS::Named_Group>
    - auto::size
    - Botan::TLS::Cookie::serialize
    - auto::at
    - Test_Error
    - std::merge
    - std::vector::cbegin
    - get_req_bin
    - Botan::TLS::Cookie::get_cookie
    - Test::Result::test_success
    - Botan::TLS::Signature_Scheme::Signature_Scheme
    - std::any_of
    - std::back_inserter
    - Botan::TLS::Supported_Groups::dh_groups
    - Botan::TLS::Supported_Versions::supports
    - std::vector::size
    - Botan::make_uint16
    - auto::begin
    - get_req_str
    - Botan::TLS::Key_Share::serialize
    - Botan::TLS::Supported_Groups::serialize
    - get_opt_bin
    - Botan::TLS::Protocol_Version
    - Botan::TLS::Signature_Algorithms_Cert::supported_schemes
    - Test::Result::test_eq
    - Test::Result::confirm
    - get_req_bin_list
    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:394,1
    - Dst: test_hello_verify_request
      Src: /src/botan/src/tests/test_tls_messages.cpp:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 397
    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: 405
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 405
    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:408,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:409,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:410,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_tls_messages.cpp:411,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:412,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_tls_messages.cpp:413,1
    - Dst: std::visit
      Src: /src/botan/src/tests/test_tls_messages.cpp:419,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:422,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:425,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:428,1
    - Dst: extensions
      Src: /src/botan/src/tests/test_tls_messages.cpp:430,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:431,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:432,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_tls_messages.cpp:432,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:433,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_tls_messages.cpp:433,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:435,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:435,1
    - Dst: ciphersuites
      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_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:442,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:444,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_messages.cpp:446,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:448,1
    - Dst: what
      Src: /src/botan/src/tests/test_tls_messages.cpp:448,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:449,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_tls_messages.cpp:454,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/tests/test_tls_messages.cpp:456,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/tests/test_tls_messages.cpp:456,1
    - Dst: std::visit
      Src: /src/botan/src/tests/test_tls_messages.cpp:460,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:463,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:464,1
    - Dst: legacy_version
      Src: /src/botan/src/tests/test_tls_messages.cpp:464,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:466,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:468,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:471,1
    - Dst: ciphersuite
      Src: /src/botan/src/tests/test_tls_messages.cpp:471,1
    - Dst: Botan::TLS::Ciphersuite::ciphersuite_code
      Src: /src/botan/src/tests/test_tls_messages.cpp:471,1
    - Dst: extensions
      Src: /src/botan/src/tests/test_tls_messages.cpp:474,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_tls_messages.cpp:475,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:476,1
    - Dst: Botan::get_byte<0>
      Src: /src/botan/src/tests/test_tls_messages.cpp:476,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_tls_messages.cpp:477,1
    - Dst: Botan::get_byte<1>
      Src: /src/botan/src/tests/test_tls_messages.cpp:477,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:479,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_tls_messages.cpp:479,1
    - Dst: Botan::TLS::Server_Hello_13::parse
      Src: /src/botan/src/tests/test_tls_messages.cpp:481,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_tls_messages.cpp:483,1
    - Dst: what
      Src: /src/botan/src/tests/test_tls_messages.cpp:483,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_tls_messages.cpp:484,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 2
    argNames:
    - ' algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 489
    functionName: Botan_Tests::TLS_13_Message_Parsing_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_tls_messages.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - Botan::get_byte<0>
    - Botan::hex_encode
    - Botan::get_byte<1>
    - std::string::empty
    - what
    - ciphersuite
    - legacy_version
    - extensions
    - Botan::TLS::Ciphersuite::by_id
    - std::visit
    - get_req_bin
    - std::vector::push_back
    - Botan::TLS::Client_Hello_13::parse
    - Botan::TLS::Server_Hello_13::parse
    - Botan::TLS::Ciphersuite::ciphersuite_code
    - get_opt_str
    - ciphersuites
    - Botan::make_uint16
    - get_req_str
    - get_opt_bin
    - Test::Result::test_eq
    - Test::Result::confirm
    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:41,1
    - Dst: Botan_Tests::Filter_Tests::test_secqueue
      Src: /src/botan/src/tests/test_filters.cpp:41,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:42,1
    - Dst: Botan_Tests::Filter_Tests::test_data_src_sink
      Src: /src/botan/src/tests/test_filters.cpp:42,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:43,1
    - Dst: Botan_Tests::Filter_Tests::test_data_src_sink_flush
      Src: /src/botan/src/tests/test_filters.cpp:43,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:44,1
    - Dst: Botan_Tests::Filter_Tests::test_pipe_io
      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_pipe_fd_io
      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_pipe_errors
      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_hash
      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_mac
      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_stream
      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_cbc
      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_cfb
      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_compress
      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_compress_bzip2
      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_codec
      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_fork
      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_chain
      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_threaded_fork
      Src: /src/botan/src/tests/test_filters.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 60
    functionName: Botan_Tests::Filter_Tests::run
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Filter_Tests::test_pipe_errors
    - Botan_Tests::Filter_Tests::test_chain
    - std::vector::push_back
    - Botan_Tests::Filter_Tests::test_pipe_codec
    - Botan_Tests::Filter_Tests::test_pipe_cfb
    - Botan_Tests::Filter_Tests::test_fork
    - Botan_Tests::Filter_Tests::test_data_src_sink
    - Botan_Tests::Filter_Tests::test_pipe_compress
    - Botan_Tests::Filter_Tests::test_secqueue
    - Botan_Tests::Filter_Tests::test_data_src_sink_flush
    - Botan_Tests::Filter_Tests::test_threaded_fork
    - Botan_Tests::Filter_Tests::test_pipe_stream
    - Botan_Tests::Filter_Tests::test_pipe_cbc
    - Botan_Tests::Filter_Tests::test_pipe_io
    - Botan_Tests::Filter_Tests::test_pipe_mac
    - Botan_Tests::Filter_Tests::test_pipe_fd_io
    - Botan_Tests::Filter_Tests::test_pipe_hash
    - Botan_Tests::Filter_Tests::test_pipe_compress_bzip2
    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:67,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:68,1
    - Dst: Botan::SecureQueue::attachable
      Src: /src/botan/src/tests/test_filters.cpp:68,1
    - Dst: Botan::SecureQueue::write
      Src: /src/botan/src/tests/test_filters.cpp:71,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_filters.cpp:71,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_filters.cpp:71,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:73,1
    - Dst: Botan::SecureQueue::size
      Src: /src/botan/src/tests/test_filters.cpp:73,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_filters.cpp:73,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:74,1
    - Dst: Botan::SecureQueue::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:74,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:76,1
    - Dst: Botan::SecureQueue::check_available
      Src: /src/botan/src/tests/test_filters.cpp:76,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:77,1
    - Dst: Botan::SecureQueue::check_available
      Src: /src/botan/src/tests/test_filters.cpp:77,1
    - Dst: Botan::SecureQueue::read_byte
      Src: /src/botan/src/tests/test_filters.cpp:79,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:80,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_filters.cpp:83,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:84,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:86,1
    - Dst: Botan::SecureQueue::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:86,1
    - Dst: Botan::SecureQueue::SecureQueue
      Src: /src/botan/src/tests/test_filters.cpp:88,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:90,1
    - Dst: Botan::SecureQueue::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:90,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_filters.cpp:92,1
    - Dst: what
      Src: /src/botan/src/tests/test_filters.cpp:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 96
    functionName: Botan_Tests::Filter_Tests::test_secqueue
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 1
    functionsReached:
    - Botan::SecureQueue::attachable
    - std::vector::at
    - Botan::SecureQueue::read_byte
    - Test::Result::test_failure
    - Botan::SecureQueue::write
    - std::vector::data
    - Botan::SecureQueue::size
    - Test::Result::test_eq
    - Botan::SecureQueue::get_bytes_read
    - what
    - std::vector::size
    - Botan::SecureQueue::check_available
    - Botan::SecureQueue::SecureQueue
    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:104,1
    - Dst: Botan::DataSink_Stream::DataSink_Stream
      Src: /src/botan/src/tests/test_filters.cpp:104,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:107,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:109,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_filters.cpp:109,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:112,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:114,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_filters.cpp:114,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:118,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:120,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_filters.cpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 123
    functionName: Botan_Tests::Filter_Tests::test_data_src_sink
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 1
    functionsReached:
    - Botan::Hex_Decoder::Hex_Decoder
    - std::ostringstream::str
    - Test::Result::test_eq
    - Botan::Pipe::process_msg
    - 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:130,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_filters.cpp:131,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_filters.cpp:132,1
    - Dst: Botan::Hex_Decoder::Hex_Decoder
      Src: /src/botan/src/tests/test_filters.cpp:138,1
    - Dst: Botan::DataSink_Stream::DataSink_Stream
      Src: /src/botan/src/tests/test_filters.cpp:138,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:141,1
    - Dst: std::ifstream::rdbuf
      Src: /src/botan/src/tests/test_filters.cpp:145,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:147,1
    - Dst: std::stringstream::str
      Src: /src/botan/src/tests/test_filters.cpp:147,1
    - Dst: std::ofstream::close
      Src: /src/botan/src/tests/test_filters.cpp:150,1
    - Dst: std::ifstream::close
      Src: /src/botan/src/tests/test_filters.cpp:151,1
    - Dst: std::remove
      Src: /src/botan/src/tests/test_filters.cpp:153,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_filters.cpp:153,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_filters.cpp:154,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 158
    functionName: Botan_Tests::Filter_Tests::test_data_src_sink_flush
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 1
    functionsReached:
    - Botan::Hex_Decoder::Hex_Decoder
    - std::remove
    - Botan_Tests::Test::temp_file_name
    - std::ifstream::rdbuf
    - Test::Result::test_failure
    - std::stringstream::str
    - std::string::c_str
    - std::ifstream::close
    - std::string::empty
    - Test::Result::test_eq
    - std::ofstream::close
    - Botan::Pipe::process_msg
    - Botan::DataSink_Stream::DataSink_Stream
    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:164,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:166,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:170,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_filters.cpp:170,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:173,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:175,1
    - Dst: Botan::Pipe::set_default_msg
      Src: /src/botan/src/tests/test_filters.cpp:177,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:179,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_filters.cpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 183
    functionName: Botan_Tests::Filter_Tests::test_pipe_io
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 1
    functionsReached:
    - Botan::Pipe::end_msg
    - std::ostringstream::str
    - Botan::Hex_Encoder::Hex_Encoder
    - Test::Result::test_eq
    - Botan::Pipe::start_msg
    - Botan::Pipe::set_default_msg
    - Botan::Pipe::process_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:188,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:190,1
    - Dst: Botan::Pipe::append_filter
      Src: /src/botan/src/tests/test_filters.cpp:191,1
    - Dst: Botan::Pipe::prepend
      Src: /src/botan/src/tests/test_filters.cpp:192,1
    - Dst: Botan::Pipe::prepend_filter
      Src: /src/botan/src/tests/test_filters.cpp:193,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:194,1
    - Dst: std::make_shared<Botan::SecureQueue>
      Src: /src/botan/src/tests/test_filters.cpp:196,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:199,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:200,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_filters.cpp:200,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:202,1
    - Dst: Botan::Pipe::prepend
      Src: /src/botan/src/tests/test_filters.cpp:203,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_filters.cpp:203,1
    - Dst: Botan::Pipe::append_filter
      Src: /src/botan/src/tests/test_filters.cpp:205,1
    - Dst: Botan::BitBucket::BitBucket
      Src: /src/botan/src/tests/test_filters.cpp:205,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:206,1
    - Dst: Botan::Pipe::prepend_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::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:211,1
    - Dst: std::make_unique<Botan::BitBucket>
      Src: /src/botan/src/tests/test_filters.cpp:213,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:217,1
    - Dst: Botan::Pipe::append_filter
      Src: /src/botan/src/tests/test_filters.cpp:218,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_filters.cpp:218,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:221,1
    - Dst: Botan::Pipe::prepend_filter
      Src: /src/botan/src/tests/test_filters.cpp:222,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_filters.cpp:222,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:225,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:226,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_filters.cpp:226,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:228,1
    - Dst: Botan::Pipe::prepend
      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::pop
      Src: /src/botan/src/tests/test_filters.cpp:231,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:233,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:235,1
    - Dst: Botan::Pipe::append_filter
      Src: /src/botan/src/tests/test_filters.cpp:236,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_filters.cpp:236,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:239,1
    - Dst: Botan::Pipe::prepend_filter
      Src: /src/botan/src/tests/test_filters.cpp:240,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_filters.cpp:240,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:243,1
    - Dst: Botan::Pipe::read
      Src: /src/botan/src/tests/test_filters.cpp:245,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_filters.cpp:246,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:249,1
    - Dst: Botan::Pipe::prepend
      Src: /src/botan/src/tests/test_filters.cpp:250,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 254
    functionName: Botan_Tests::Filter_Tests::test_pipe_errors
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 1
    functionsReached:
    - Botan::Pipe::prepend_filter
    - Test::Result::test_throws
    - Botan::BitBucket::BitBucket
    - std::make_shared<Botan::SecureQueue>
    - Botan::Pipe::Pipe
    - Botan::Pipe::end_msg
    - Botan::Pipe::prepend
    - std::make_unique<Botan::BitBucket>
    - Botan::Pipe::read
    - auto::get
    - Botan::Pipe::append
    - Botan::Pipe::pop
    - Botan::Pipe::start_msg
    - BOTAN_UNUSED
    - Botan::Pipe::append_filter
    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:262,1
    - Dst: Botan::Keyed_Filter*::set_iv
      Src: /src/botan/src/tests/test_filters.cpp:264,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_filters.cpp:264,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:266,1
    - Dst: Botan::Keyed_Filter*::set_iv
      Src: /src/botan/src/tests/test_filters.cpp:268,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_filters.cpp:268,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:272,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:273,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:274,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:276,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:276,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:277,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:277,1
    - Dst: Test::Result::test_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
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 281
    functionName: Botan_Tests::Filter_Tests::test_pipe_mac
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 1
    functionsReached:
    - Test::Result::test_throws
    - Botan::MAC_Filter::MAC_Filter
    - Botan::InitializationVector
    - Test::Result::test_eq
    - Botan::Keyed_Filter*::set_iv
    - Botan::Pipe::read_all_as_string
    - Botan::Pipe::process_msg
    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:288,1
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:288,1
    - Dst: Botan::Chain::Chain
      Src: /src/botan/src/tests/test_filters.cpp:288,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:289,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:291,1
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:291,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:293,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:293,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:295,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:297,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:298,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_filters.cpp:298,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:299,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:300,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:302,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:302,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:303,1
    - Dst: Botan::Pipe::remaining
      Src: /src/botan/src/tests/test_filters.cpp:303,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:308,1
    - Dst: Botan::Pipe::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:308,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:309,1
    - Dst: Botan::Pipe::end_of_data
      Src: /src/botan/src/tests/test_filters.cpp:309,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:310,1
    - Dst: Botan::Pipe::read
      Src: /src/botan/src/tests/test_filters.cpp:310,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_filters.cpp:310,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:311,1
    - Dst: Botan::Pipe::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:311,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:312,1
    - Dst: Botan::Pipe::peek
      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_eq
      Src: /src/botan/src/tests/test_filters.cpp:313,1
    - Dst: Botan::Pipe::read
      Src: /src/botan/src/tests/test_filters.cpp:313,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:314,1
    - Dst: Botan::Pipe::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:314,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:315,1
    - Dst: Botan::Pipe::remaining
      Src: /src/botan/src/tests/test_filters.cpp:315,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:316,1
    - Dst: Botan::Pipe::remaining
      Src: /src/botan/src/tests/test_filters.cpp:316,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:317,1
    - Dst: Botan::Pipe::read
      Src: /src/botan/src/tests/test_filters.cpp:317,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:318,1
    - Dst: Botan::Pipe::read
      Src: /src/botan/src/tests/test_filters.cpp:318,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_filters.cpp:318,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:319,1
    - Dst: Botan::Pipe::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:319,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:320,1
    - Dst: Botan::Pipe::end_of_data
      Src: /src/botan/src/tests/test_filters.cpp:320,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:322,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:323,1
    - Dst: Botan::Pipe::reset
      Src: /src/botan/src/tests/test_filters.cpp:325,1
    - Dst: Botan::Pipe::prepend
      Src: /src/botan/src/tests/test_filters.cpp:328,1
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:328,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:329,1
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:329,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:330,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_filters.cpp:330,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:331,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 335
    functionName: Botan_Tests::Filter_Tests::test_pipe_hash
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 1
    functionsReached:
    - Botan::Pipe::end_msg
    - Botan::Chain::Chain
    - Botan::Pipe::read_all
    - Botan::Pipe::message_count
    - Botan::Pipe::prepend
    - std::vector::data
    - Botan::Pipe::start_msg
    - std::vector<uint8_t>
    - Botan::Pipe::remaining
    - Botan::Pipe::reset
    - Botan::Pipe::read
    - Botan::Pipe::write
    - Botan::Pipe::pop
    - Botan::Pipe::peek
    - Botan::Hash_Filter::Hash_Filter
    - Botan::Pipe::get_bytes_read
    - Botan::Pipe::append
    - Test::Result::test_eq
    - Botan::Pipe::end_of_data
    - Botan::Pipe::process_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:367,1
    - Dst: get_cipher
      Src: /src/botan/src/tests/test_filters.cpp:370,1
    - Dst: Botan::Keyed_Filter*::set_iv
      Src: /src/botan/src/tests/test_filters.cpp:371,1
    - Dst: Botan::Hex_Decoder::Hex_Decoder
      Src: /src/botan/src/tests/test_filters.cpp:372,1
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:372,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:375,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:376,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:377,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:379,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:382,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:382,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:383,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:383,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:385,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:386,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:386,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:389,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:390,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:390,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_filters.cpp:390,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 395
    functionName: Botan_Tests::Filter_Tests::test_pipe_cfb
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 1
    functionsReached:
    - Botan::Hex_Decoder::Hex_Decoder
    - Botan::hex_encode
    - Botan::Pipe::end_msg
    - Botan::Pipe::message_count
    - Botan::Hex_Encoder::Hex_Encoder
    - Botan::Pipe::write
    - Test::Result::test_eq
    - Botan::Pipe::start_msg
    - Botan::Keyed_Filter*::set_iv
    - Botan::Pipe::read_all_as_string
    - Botan::Pipe::process_msg
    - get_cipher
    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:402,1
    - Dst: Botan::Cipher_Mode_Filter::Cipher_Mode_Filter
      Src: /src/botan/src/tests/test_filters.cpp:401,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:404,1
    - Dst: Botan::Cipher_Mode_Filter*::name
      Src: /src/botan/src/tests/test_filters.cpp:404,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:406,1
    - Dst: Botan::Cipher_Mode_Filter*::valid_iv_length
      Src: /src/botan/src/tests/test_filters.cpp:406,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:407,1
    - Dst: Botan::Cipher_Mode_Filter*::valid_iv_length
      Src: /src/botan/src/tests/test_filters.cpp:407,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:409,1
    - Dst: Botan::Cipher_Mode_Filter*::key_spec
      Src: /src/botan/src/tests/test_filters.cpp:409,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:410,1
    - Dst: Botan::Cipher_Mode_Filter*::key_spec
      Src: /src/botan/src/tests/test_filters.cpp:410,1
    - Dst: Botan::Cipher_Mode_Filter*::set_key
      Src: /src/botan/src/tests/test_filters.cpp:415,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/test_filters.cpp:415,1
    - Dst: Botan::Cipher_Mode_Filter*::set_iv
      Src: /src/botan/src/tests/test_filters.cpp:416,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_filters.cpp:416,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:418,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:420,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:420,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:421,1
    - Dst: Botan::Pipe::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:421,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:422,1
    - Dst: Test::Result::test_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: auto::size
      Src: /src/botan/src/tests/test_filters.cpp:423,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:425,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:427,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:428,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:429,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:430,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:433,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:434,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_filters.cpp:437,1
    - Dst: Botan::Cipher_Mode_Filter::Cipher_Mode_Filter
      Src: /src/botan/src/tests/test_filters.cpp:436,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:438,1
    - Dst: Botan::Cipher_Mode_Filter*::set_key
      Src: /src/botan/src/tests/test_filters.cpp:439,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/test_filters.cpp:439,1
    - Dst: Botan::Cipher_Mode_Filter*::set_iv
      Src: /src/botan/src/tests/test_filters.cpp:440,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_filters.cpp:440,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::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:447,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:448,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:449,1
    - Dst: Botan::Pipe::set_default_msg
      Src: /src/botan/src/tests/test_filters.cpp:451,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:452,1
    - Dst: Botan::Pipe::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:452,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:453,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:454,1
    - Dst: Botan::Pipe::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:454,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_filters.cpp:454,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:456,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 459
    functionName: Botan_Tests::Filter_Tests::test_pipe_cbc
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 1
    functionsReached:
    - Botan::InitializationVector
    - Botan::Cipher_Mode_Filter*::set_key
    - Botan::SymmetricKey
    - Botan::Pipe::end_msg
    - Botan::Cipher_Mode_Filter::Cipher_Mode_Filter
    - Botan::Cipher_Mode::create
    - Botan::Pipe::read_all
    - auto::size
    - Botan::secure_vector::size
    - Botan::Cipher_Mode_Filter*::valid_iv_length
    - Botan::Pipe::message_count
    - Botan::Pipe::start_msg
    - Botan::Cipher_Mode_Filter*::name
    - Botan::Pipe::write
    - Botan::Pipe::get_bytes_read
    - Botan::Pipe::append
    - Test::Result::test_eq
    - Botan::Pipe::set_default_msg
    - Botan::Pipe::process_msg
    - Botan::Cipher_Mode_Filter*::set_iv
    - Botan::Cipher_Mode_Filter*::key_spec
    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:466,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:468,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_filters.cpp:468,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_filters.cpp:469,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:473,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:474,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:475,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:477,1
    - Dst: Test::Result::test_lt
      Src: /src/botan/src/tests/test_filters.cpp:479,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_filters.cpp:479,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_filters.cpp:479,1
    - Dst: std::make_unique<Botan::Decompression_Filter>
      Src: /src/botan/src/tests/test_filters.cpp:481,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:482,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_filters.cpp:482,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:483,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_filters.cpp:483,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:484,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:486,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:488,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 493
    functionName: Botan_Tests::Filter_Tests::test_pipe_compress
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 1
    functionsReached:
    - auto::name
    - Test::Result::test_lt
    - std::string::size
    - std::make_unique<Botan::Compression_Filter>
    - Botan::Pipe::end_msg
    - Botan::Pipe::write
    - std::make_unique<Botan::Decompression_Filter>
    - Botan::Pipe::append
    - Botan::Pipe::pop
    - Test::Result::test_eq
    - Botan::Pipe::start_msg
    - Botan::Pipe::read_all_as_string
    - auto::release
    - Botan::Pipe::read_all
    - auto::size
    - Botan::Pipe::process_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:500,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:502,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_filters.cpp:502,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_filters.cpp:503,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:507,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:508,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:509,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:511,1
    - Dst: std::make_unique<Botan::Decompression_Filter>
      Src: /src/botan/src/tests/test_filters.cpp:514,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:515,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_filters.cpp:515,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:516,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_filters.cpp:516,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:517,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:519,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:521,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 526
    functionName: Botan_Tests::Filter_Tests::test_pipe_compress_bzip2
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 1
    functionsReached:
    - auto::name
    - std::make_unique<Botan::Compression_Filter>
    - Botan::Pipe::end_msg
    - Botan::Pipe::write
    - std::make_unique<Botan::Decompression_Filter>
    - Botan::Pipe::append
    - Botan::Pipe::pop
    - Test::Result::test_eq
    - Botan::Pipe::start_msg
    - Botan::Pipe::read_all_as_string
    - auto::release
    - Botan::Pipe::read_all
    - Botan::Pipe::process_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:532,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:534,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:534,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:536,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:538,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:538,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:539,1
    - Dst: Botan::Pipe::remaining
      Src: /src/botan/src/tests/test_filters.cpp:539,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:541,1
    - Dst: Test::Result::test_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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:543,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:545,1
    - Dst: Botan::Base64_Decoder::Base64_Decoder
      Src: /src/botan/src/tests/test_filters.cpp:545,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:546,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:548,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:548,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:550,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:551,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:554,1
    - Dst: Botan::Pipe::set_default_msg
      Src: /src/botan/src/tests/test_filters.cpp:556,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:557,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:557,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:559,1
    - Dst: Botan::Hex_Decoder::Hex_Decoder
      Src: /src/botan/src/tests/test_filters.cpp:559,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:561,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:562,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:563,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:565,1
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:565,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:566,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:567,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:567,1
    - Dst: Botan::Pipe::reset
      Src: /src/botan/src/tests/test_filters.cpp:571,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:572,1
    - Dst: Botan::Hex_Decoder::Hex_Decoder
      Src: /src/botan/src/tests/test_filters.cpp:572,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:573,1
    - Dst: Botan::Base64_Encoder::Base64_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:573,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:577,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:578,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:579,1
    - Dst: Botan::Pipe::reset
      Src: /src/botan/src/tests/test_filters.cpp:581,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:582,1
    - Dst: Botan::Hex_Decoder::Hex_Decoder
      Src: /src/botan/src/tests/test_filters.cpp:582,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:583,1
    - Dst: Botan::Base64_Encoder::Base64_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:583,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:584,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:585,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:585,1
    - Dst: Botan::Pipe::reset
      Src: /src/botan/src/tests/test_filters.cpp:587,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:588,1
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:588,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:589,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:590,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:591,1
    - Dst: Botan::Pipe::reset
      Src: /src/botan/src/tests/test_filters.cpp:594,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:595,1
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:595,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:596,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:597,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 603
    functionName: Botan_Tests::Filter_Tests::test_pipe_codec
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 1
    functionsReached:
    - Botan::Hex_Decoder::Hex_Decoder
    - Botan::Pipe::reset
    - Botan::Pipe::message_count
    - Botan::Base64_Decoder::Base64_Decoder
    - Botan::Hex_Encoder::Hex_Encoder
    - Botan::Pipe::append
    - Botan::Pipe::pop
    - Test::Result::test_eq
    - Botan::Base64_Encoder::Base64_Encoder
    - Botan::Pipe::read_all_as_string
    - Botan::Pipe::set_default_msg
    - Botan::Pipe::read_all
    - Botan::Pipe::process_msg
    - Botan::Pipe::remaining
    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:613,1
    - Dst: Botan::Keyed_Filter*::set_key
      Src: /src/botan/src/tests/test_filters.cpp:615,1
    - Dst: Botan::Keyed_Filter*::set_iv
      Src: /src/botan/src/tests/test_filters.cpp:616,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:618,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:620,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:620,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:621,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:621,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:623,1
    - Dst: Test::Result::test_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
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 627
    functionName: Botan_Tests::Filter_Tests::test_pipe_stream
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 1
    functionsReached:
    - Botan::StreamCipher_Filter::StreamCipher_Filter
    - Botan::Pipe::message_count
    - Test::Result::test_eq
    - Botan::Keyed_Filter*::set_iv
    - Botan::Keyed_Filter*::set_key
    - Botan::Pipe::read_all
    - Botan::Pipe::process_msg
    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:633,1
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:633,1
    - Dst: Botan::Fork::Fork
      Src: /src/botan/src/tests/test_filters.cpp:633,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:635,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:635,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:636,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:637,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:637,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:640,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:640,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:641,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:641,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 629
    functionDepth: 1
    functionLinenumber: 629
    functionLinenumberEnd: 644
    functionName: Botan_Tests::Filter_Tests::test_fork
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 5
    functionsReached:
    - Botan::Hash_Filter::Hash_Filter
    - Botan::Pipe::message_count
    - Botan::Fork::Fork
    - Test::Result::test_eq
    - Botan::Pipe::read_all
    - Botan::Pipe::process_msg
    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:651,1
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:651,1
    - Dst: std::make_unique<Botan::Chain>
      Src: /src/botan/src/tests/test_filters.cpp:653,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:655,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_filters.cpp:655,1
    - Dst: std::make_unique<Botan::Fork>
      Src: /src/botan/src/tests/test_filters.cpp:657,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_filters.cpp:658,1
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:658,1
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:658,1
    - Dst: Botan::Chain::Chain
      Src: /src/botan/src/tests/test_filters.cpp:658,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:660,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_filters.cpp:660,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_filters.cpp:661,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:663,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:663,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:664,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:665,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:665,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:667,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:668,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:669,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:669,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 673
    functionName: Botan_Tests::Filter_Tests::test_chain
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 1
    functionsReached:
    - auto::name
    - Botan::Hash_Filter::Hash_Filter
    - Botan::Pipe::message_count
    - Botan::Hex_Encoder::Hex_Encoder
    - Test::Result::test_eq
    - std::make_unique<Botan::Chain>
    - std::make_unique<Botan::Fork>
    - Botan::Chain::Chain
    - auto::release
    - Botan::Pipe::read_all_as_string
    - Botan::Pipe::process_msg
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_chain()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ::pipe
      Src: /src/botan/src/tests/test_filters.cpp:680,1
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:684,1
    - Dst: Botan::Hex_Decoder::Hex_Decoder
      Src: /src/botan/src/tests/test_filters.cpp:685,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:687,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/tests/test_filters.cpp:689,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:691,1
    - Dst: Botan::Pipe::end_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:694,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:696,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:698,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 702
    functionName: Botan_Tests::Filter_Tests::test_pipe_fd_io
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 1
    functionsReached:
    - Botan::Hex_Decoder::Hex_Decoder
    - Botan::Pipe::end_msg
    - Botan::Hex_Encoder::Hex_Encoder
    - Botan::TLS::Channel_Impl::close
    - Test::Result::test_eq
    - Botan::Pipe::start_msg
    - Botan::Pipe::read_all_as_string
    - ::pipe
    - Botan::Pipe::process_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:708,1
    - Dst: Botan::Base64_Encoder::Base64_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:708,1
    - Dst: Botan::Threaded_Fork::Threaded_Fork
      Src: /src/botan/src/tests/test_filters.cpp:708,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:710,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:710,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:711,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:712,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:712,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:715,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:715,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:716,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:716,1
    - Dst: Botan::Pipe::reset
      Src: /src/botan/src/tests/test_filters.cpp:718,1
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:723,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:726,1
    - Dst: Botan::Threaded_Fork::Threaded_Fork
      Src: /src/botan/src/tests/test_filters.cpp:726,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:728,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:728,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:730,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_filters.cpp:732,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:733,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:735,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:737,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:737,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:739,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:740,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 744
    functionName: Botan_Tests::Filter_Tests::test_threaded_fork
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 1
    functionsReached:
    - Botan::Pipe::reset
    - Botan::Threaded_Fork::Threaded_Fork
    - Botan::Hash_Filter::Hash_Filter
    - Botan::Pipe::message_count
    - Botan::Hex_Encoder::Hex_Encoder
    - Botan::Pipe::end_msg
    - static_cast<uint8_t>
    - Botan::Pipe::write
    - Botan::Pipe::append
    - Test::Result::test_eq
    - Botan::Base64_Encoder::Base64_Encoder
    - Botan::Pipe::start_msg
    - Botan::Pipe::read_all_as_string
    - Botan::Pipe::read_all
    - Botan::Pipe::process_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:41,1
    - Dst: Botan_Tests::Filter_Tests::test_secqueue
      Src: /src/botan/src/tests/test_filters.cpp:41,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:42,1
    - Dst: Botan_Tests::Filter_Tests::test_data_src_sink
      Src: /src/botan/src/tests/test_filters.cpp:42,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:43,1
    - Dst: Botan_Tests::Filter_Tests::test_data_src_sink_flush
      Src: /src/botan/src/tests/test_filters.cpp:43,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_filters.cpp:44,1
    - Dst: Botan_Tests::Filter_Tests::test_pipe_io
      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_pipe_fd_io
      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_pipe_errors
      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_hash
      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_mac
      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_stream
      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_cbc
      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_cfb
      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_compress
      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_compress_bzip2
      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_codec
      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_fork
      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_chain
      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_threaded_fork
      Src: /src/botan/src/tests/test_filters.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 60
    functionName: Botan_Tests::Filter_Tests::run
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::Filter_Tests::test_pipe_errors
    - Botan_Tests::Filter_Tests::test_chain
    - std::vector::push_back
    - Botan_Tests::Filter_Tests::test_pipe_codec
    - Botan_Tests::Filter_Tests::test_pipe_cfb
    - Botan_Tests::Filter_Tests::test_fork
    - Botan_Tests::Filter_Tests::test_data_src_sink
    - Botan_Tests::Filter_Tests::test_pipe_compress
    - Botan_Tests::Filter_Tests::test_secqueue
    - Botan_Tests::Filter_Tests::test_data_src_sink_flush
    - Botan_Tests::Filter_Tests::test_threaded_fork
    - Botan_Tests::Filter_Tests::test_pipe_stream
    - Botan_Tests::Filter_Tests::test_pipe_cbc
    - Botan_Tests::Filter_Tests::test_pipe_io
    - Botan_Tests::Filter_Tests::test_pipe_mac
    - Botan_Tests::Filter_Tests::test_pipe_fd_io
    - Botan_Tests::Filter_Tests::test_pipe_hash
    - Botan_Tests::Filter_Tests::test_pipe_compress_bzip2
    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:67,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:68,1
    - Dst: Botan::SecureQueue::attachable
      Src: /src/botan/src/tests/test_filters.cpp:68,1
    - Dst: Botan::SecureQueue::write
      Src: /src/botan/src/tests/test_filters.cpp:71,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_filters.cpp:71,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_filters.cpp:71,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:73,1
    - Dst: Botan::SecureQueue::size
      Src: /src/botan/src/tests/test_filters.cpp:73,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/test_filters.cpp:73,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:74,1
    - Dst: Botan::SecureQueue::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:74,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:76,1
    - Dst: Botan::SecureQueue::check_available
      Src: /src/botan/src/tests/test_filters.cpp:76,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:77,1
    - Dst: Botan::SecureQueue::check_available
      Src: /src/botan/src/tests/test_filters.cpp:77,1
    - Dst: Botan::SecureQueue::read_byte
      Src: /src/botan/src/tests/test_filters.cpp:79,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:80,1
    - Dst: std::vector::at
      Src: /src/botan/src/tests/test_filters.cpp:83,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:84,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:86,1
    - Dst: Botan::SecureQueue::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:86,1
    - Dst: Botan::SecureQueue::SecureQueue
      Src: /src/botan/src/tests/test_filters.cpp:88,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:90,1
    - Dst: Botan::SecureQueue::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:90,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_filters.cpp:92,1
    - Dst: what
      Src: /src/botan/src/tests/test_filters.cpp:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 96
    functionName: Botan_Tests::Filter_Tests::test_secqueue
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 2
    functionsReached:
    - Botan::SecureQueue::attachable
    - std::vector::at
    - Botan::SecureQueue::read_byte
    - Test::Result::test_failure
    - Botan::SecureQueue::write
    - std::vector::data
    - Botan::SecureQueue::size
    - Test::Result::test_eq
    - Botan::SecureQueue::get_bytes_read
    - what
    - std::vector::size
    - Botan::SecureQueue::check_available
    - Botan::SecureQueue::SecureQueue
    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:104,1
    - Dst: Botan::DataSink_Stream::DataSink_Stream
      Src: /src/botan/src/tests/test_filters.cpp:104,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:107,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:109,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_filters.cpp:109,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:112,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:114,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_filters.cpp:114,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:118,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:120,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_filters.cpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 123
    functionName: Botan_Tests::Filter_Tests::test_data_src_sink
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 2
    functionsReached:
    - Botan::Hex_Decoder::Hex_Decoder
    - std::ostringstream::str
    - Test::Result::test_eq
    - Botan::Pipe::process_msg
    - 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:130,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/test_filters.cpp:131,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_filters.cpp:132,1
    - Dst: Botan::Hex_Decoder::Hex_Decoder
      Src: /src/botan/src/tests/test_filters.cpp:138,1
    - Dst: Botan::DataSink_Stream::DataSink_Stream
      Src: /src/botan/src/tests/test_filters.cpp:138,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:141,1
    - Dst: std::ifstream::rdbuf
      Src: /src/botan/src/tests/test_filters.cpp:145,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:147,1
    - Dst: std::stringstream::str
      Src: /src/botan/src/tests/test_filters.cpp:147,1
    - Dst: std::ofstream::close
      Src: /src/botan/src/tests/test_filters.cpp:150,1
    - Dst: std::ifstream::close
      Src: /src/botan/src/tests/test_filters.cpp:151,1
    - Dst: std::remove
      Src: /src/botan/src/tests/test_filters.cpp:153,1
    - Dst: std::string::c_str
      Src: /src/botan/src/tests/test_filters.cpp:153,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_filters.cpp:154,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 125
    functionDepth: 2
    functionLinenumber: 125
    functionLinenumberEnd: 158
    functionName: Botan_Tests::Filter_Tests::test_data_src_sink_flush
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 2
    functionsReached:
    - Botan::Hex_Decoder::Hex_Decoder
    - std::remove
    - Botan_Tests::Test::temp_file_name
    - std::ifstream::rdbuf
    - Test::Result::test_failure
    - std::stringstream::str
    - std::string::c_str
    - std::ifstream::close
    - std::string::empty
    - Test::Result::test_eq
    - std::ofstream::close
    - Botan::Pipe::process_msg
    - Botan::DataSink_Stream::DataSink_Stream
    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:164,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:166,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:170,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_filters.cpp:170,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:173,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:175,1
    - Dst: Botan::Pipe::set_default_msg
      Src: /src/botan/src/tests/test_filters.cpp:177,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:179,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/test_filters.cpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 183
    functionName: Botan_Tests::Filter_Tests::test_pipe_io
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 2
    functionsReached:
    - Botan::Pipe::end_msg
    - std::ostringstream::str
    - Botan::Hex_Encoder::Hex_Encoder
    - Test::Result::test_eq
    - Botan::Pipe::start_msg
    - Botan::Pipe::set_default_msg
    - Botan::Pipe::process_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:188,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:190,1
    - Dst: Botan::Pipe::append_filter
      Src: /src/botan/src/tests/test_filters.cpp:191,1
    - Dst: Botan::Pipe::prepend
      Src: /src/botan/src/tests/test_filters.cpp:192,1
    - Dst: Botan::Pipe::prepend_filter
      Src: /src/botan/src/tests/test_filters.cpp:193,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:194,1
    - Dst: std::make_shared<Botan::SecureQueue>
      Src: /src/botan/src/tests/test_filters.cpp:196,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:199,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:200,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_filters.cpp:200,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:202,1
    - Dst: Botan::Pipe::prepend
      Src: /src/botan/src/tests/test_filters.cpp:203,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_filters.cpp:203,1
    - Dst: Botan::Pipe::append_filter
      Src: /src/botan/src/tests/test_filters.cpp:205,1
    - Dst: Botan::BitBucket::BitBucket
      Src: /src/botan/src/tests/test_filters.cpp:205,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:206,1
    - Dst: Botan::Pipe::prepend_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::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:211,1
    - Dst: std::make_unique<Botan::BitBucket>
      Src: /src/botan/src/tests/test_filters.cpp:213,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:217,1
    - Dst: Botan::Pipe::append_filter
      Src: /src/botan/src/tests/test_filters.cpp:218,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_filters.cpp:218,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:221,1
    - Dst: Botan::Pipe::prepend_filter
      Src: /src/botan/src/tests/test_filters.cpp:222,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_filters.cpp:222,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:225,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:226,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_filters.cpp:226,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:228,1
    - Dst: Botan::Pipe::prepend
      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::pop
      Src: /src/botan/src/tests/test_filters.cpp:231,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:233,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:235,1
    - Dst: Botan::Pipe::append_filter
      Src: /src/botan/src/tests/test_filters.cpp:236,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_filters.cpp:236,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:239,1
    - Dst: Botan::Pipe::prepend_filter
      Src: /src/botan/src/tests/test_filters.cpp:240,1
    - Dst: auto::get
      Src: /src/botan/src/tests/test_filters.cpp:240,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:243,1
    - Dst: Botan::Pipe::read
      Src: /src/botan/src/tests/test_filters.cpp:245,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/tests/test_filters.cpp:246,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:249,1
    - Dst: Botan::Pipe::prepend
      Src: /src/botan/src/tests/test_filters.cpp:250,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 254
    functionName: Botan_Tests::Filter_Tests::test_pipe_errors
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 2
    functionsReached:
    - Botan::Pipe::prepend_filter
    - Test::Result::test_throws
    - Botan::BitBucket::BitBucket
    - std::make_shared<Botan::SecureQueue>
    - Botan::Pipe::Pipe
    - Botan::Pipe::end_msg
    - Botan::Pipe::prepend
    - std::make_unique<Botan::BitBucket>
    - Botan::Pipe::read
    - auto::get
    - Botan::Pipe::append
    - Botan::Pipe::pop
    - Botan::Pipe::start_msg
    - BOTAN_UNUSED
    - Botan::Pipe::append_filter
    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:262,1
    - Dst: Botan::Keyed_Filter*::set_iv
      Src: /src/botan/src/tests/test_filters.cpp:264,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_filters.cpp:264,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_filters.cpp:266,1
    - Dst: Botan::Keyed_Filter*::set_iv
      Src: /src/botan/src/tests/test_filters.cpp:268,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_filters.cpp:268,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:272,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:273,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:274,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:276,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:276,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:277,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:277,1
    - Dst: Test::Result::test_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
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 281
    functionName: Botan_Tests::Filter_Tests::test_pipe_mac
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 2
    functionsReached:
    - Test::Result::test_throws
    - Botan::MAC_Filter::MAC_Filter
    - Botan::InitializationVector
    - Test::Result::test_eq
    - Botan::Keyed_Filter*::set_iv
    - Botan::Pipe::read_all_as_string
    - Botan::Pipe::process_msg
    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:288,1
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:288,1
    - Dst: Botan::Chain::Chain
      Src: /src/botan/src/tests/test_filters.cpp:288,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:289,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:291,1
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:291,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:293,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:293,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:295,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:297,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:298,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_filters.cpp:298,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:299,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:300,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:302,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:302,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:303,1
    - Dst: Botan::Pipe::remaining
      Src: /src/botan/src/tests/test_filters.cpp:303,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:308,1
    - Dst: Botan::Pipe::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:308,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:309,1
    - Dst: Botan::Pipe::end_of_data
      Src: /src/botan/src/tests/test_filters.cpp:309,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:310,1
    - Dst: Botan::Pipe::read
      Src: /src/botan/src/tests/test_filters.cpp:310,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_filters.cpp:310,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:311,1
    - Dst: Botan::Pipe::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:311,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:312,1
    - Dst: Botan::Pipe::peek
      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_eq
      Src: /src/botan/src/tests/test_filters.cpp:313,1
    - Dst: Botan::Pipe::read
      Src: /src/botan/src/tests/test_filters.cpp:313,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:314,1
    - Dst: Botan::Pipe::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:314,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:315,1
    - Dst: Botan::Pipe::remaining
      Src: /src/botan/src/tests/test_filters.cpp:315,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:316,1
    - Dst: Botan::Pipe::remaining
      Src: /src/botan/src/tests/test_filters.cpp:316,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:317,1
    - Dst: Botan::Pipe::read
      Src: /src/botan/src/tests/test_filters.cpp:317,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:318,1
    - Dst: Botan::Pipe::read
      Src: /src/botan/src/tests/test_filters.cpp:318,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/test_filters.cpp:318,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:319,1
    - Dst: Botan::Pipe::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:319,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:320,1
    - Dst: Botan::Pipe::end_of_data
      Src: /src/botan/src/tests/test_filters.cpp:320,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:322,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:323,1
    - Dst: Botan::Pipe::reset
      Src: /src/botan/src/tests/test_filters.cpp:325,1
    - Dst: Botan::Pipe::prepend
      Src: /src/botan/src/tests/test_filters.cpp:328,1
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:328,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:329,1
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:329,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:330,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_filters.cpp:330,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:331,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 335
    functionName: Botan_Tests::Filter_Tests::test_pipe_hash
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 2
    functionsReached:
    - Botan::Pipe::end_msg
    - Botan::Chain::Chain
    - Botan::Pipe::read_all
    - Botan::Pipe::message_count
    - Botan::Pipe::prepend
    - std::vector::data
    - Botan::Pipe::start_msg
    - std::vector<uint8_t>
    - Botan::Pipe::remaining
    - Botan::Pipe::reset
    - Botan::Pipe::read
    - Botan::Pipe::write
    - Botan::Pipe::pop
    - Botan::Pipe::peek
    - Botan::Hash_Filter::Hash_Filter
    - Botan::Pipe::get_bytes_read
    - Botan::Pipe::append
    - Test::Result::test_eq
    - Botan::Pipe::end_of_data
    - Botan::Pipe::process_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:367,1
    - Dst: get_cipher
      Src: /src/botan/src/tests/test_filters.cpp:370,1
    - Dst: Botan::Keyed_Filter*::set_iv
      Src: /src/botan/src/tests/test_filters.cpp:371,1
    - Dst: Botan::Hex_Decoder::Hex_Decoder
      Src: /src/botan/src/tests/test_filters.cpp:372,1
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:372,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:375,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:376,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:377,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:379,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:382,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:382,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:383,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:383,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:385,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:386,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:386,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:389,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:390,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:390,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/test_filters.cpp:390,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 395
    functionName: Botan_Tests::Filter_Tests::test_pipe_cfb
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 2
    functionsReached:
    - Botan::Hex_Decoder::Hex_Decoder
    - Botan::hex_encode
    - Botan::Pipe::end_msg
    - Botan::Pipe::message_count
    - Botan::Hex_Encoder::Hex_Encoder
    - Botan::Pipe::write
    - Test::Result::test_eq
    - Botan::Pipe::start_msg
    - Botan::Keyed_Filter*::set_iv
    - Botan::Pipe::read_all_as_string
    - Botan::Pipe::process_msg
    - get_cipher
    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:402,1
    - Dst: Botan::Cipher_Mode_Filter::Cipher_Mode_Filter
      Src: /src/botan/src/tests/test_filters.cpp:401,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:404,1
    - Dst: Botan::Cipher_Mode_Filter*::name
      Src: /src/botan/src/tests/test_filters.cpp:404,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:406,1
    - Dst: Botan::Cipher_Mode_Filter*::valid_iv_length
      Src: /src/botan/src/tests/test_filters.cpp:406,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:407,1
    - Dst: Botan::Cipher_Mode_Filter*::valid_iv_length
      Src: /src/botan/src/tests/test_filters.cpp:407,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:409,1
    - Dst: Botan::Cipher_Mode_Filter*::key_spec
      Src: /src/botan/src/tests/test_filters.cpp:409,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:410,1
    - Dst: Botan::Cipher_Mode_Filter*::key_spec
      Src: /src/botan/src/tests/test_filters.cpp:410,1
    - Dst: Botan::Cipher_Mode_Filter*::set_key
      Src: /src/botan/src/tests/test_filters.cpp:415,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/test_filters.cpp:415,1
    - Dst: Botan::Cipher_Mode_Filter*::set_iv
      Src: /src/botan/src/tests/test_filters.cpp:416,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_filters.cpp:416,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:418,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:420,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:420,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:421,1
    - Dst: Botan::Pipe::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:421,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:422,1
    - Dst: Test::Result::test_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: auto::size
      Src: /src/botan/src/tests/test_filters.cpp:423,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:425,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:427,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:428,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:429,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:430,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:433,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:434,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_filters.cpp:437,1
    - Dst: Botan::Cipher_Mode_Filter::Cipher_Mode_Filter
      Src: /src/botan/src/tests/test_filters.cpp:436,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:438,1
    - Dst: Botan::Cipher_Mode_Filter*::set_key
      Src: /src/botan/src/tests/test_filters.cpp:439,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/tests/test_filters.cpp:439,1
    - Dst: Botan::Cipher_Mode_Filter*::set_iv
      Src: /src/botan/src/tests/test_filters.cpp:440,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_filters.cpp:440,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::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:447,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:448,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:449,1
    - Dst: Botan::Pipe::set_default_msg
      Src: /src/botan/src/tests/test_filters.cpp:451,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:452,1
    - Dst: Botan::Pipe::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:452,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:453,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:454,1
    - Dst: Botan::Pipe::get_bytes_read
      Src: /src/botan/src/tests/test_filters.cpp:454,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/tests/test_filters.cpp:454,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:456,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 459
    functionName: Botan_Tests::Filter_Tests::test_pipe_cbc
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 2
    functionsReached:
    - Botan::InitializationVector
    - Botan::Cipher_Mode_Filter*::set_key
    - Botan::SymmetricKey
    - Botan::Pipe::end_msg
    - Botan::Cipher_Mode_Filter::Cipher_Mode_Filter
    - Botan::Cipher_Mode::create
    - Botan::Pipe::read_all
    - auto::size
    - Botan::secure_vector::size
    - Botan::Cipher_Mode_Filter*::valid_iv_length
    - Botan::Pipe::message_count
    - Botan::Pipe::start_msg
    - Botan::Cipher_Mode_Filter*::name
    - Botan::Pipe::write
    - Botan::Pipe::get_bytes_read
    - Botan::Pipe::append
    - Test::Result::test_eq
    - Botan::Pipe::set_default_msg
    - Botan::Pipe::process_msg
    - Botan::Cipher_Mode_Filter*::set_iv
    - Botan::Cipher_Mode_Filter*::key_spec
    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:466,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:468,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_filters.cpp:468,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_filters.cpp:469,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:473,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:474,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:475,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:477,1
    - Dst: Test::Result::test_lt
      Src: /src/botan/src/tests/test_filters.cpp:479,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_filters.cpp:479,1
    - Dst: std::string::size
      Src: /src/botan/src/tests/test_filters.cpp:479,1
    - Dst: std::make_unique<Botan::Decompression_Filter>
      Src: /src/botan/src/tests/test_filters.cpp:481,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:482,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_filters.cpp:482,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:483,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_filters.cpp:483,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:484,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:486,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:488,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 493
    functionName: Botan_Tests::Filter_Tests::test_pipe_compress
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 2
    functionsReached:
    - auto::name
    - Test::Result::test_lt
    - std::string::size
    - std::make_unique<Botan::Compression_Filter>
    - Botan::Pipe::end_msg
    - Botan::Pipe::write
    - std::make_unique<Botan::Decompression_Filter>
    - Botan::Pipe::append
    - Botan::Pipe::pop
    - Test::Result::test_eq
    - Botan::Pipe::start_msg
    - Botan::Pipe::read_all_as_string
    - auto::release
    - Botan::Pipe::read_all
    - auto::size
    - Botan::Pipe::process_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:500,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:502,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_filters.cpp:502,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_filters.cpp:503,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:507,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:508,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:509,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:511,1
    - Dst: std::make_unique<Botan::Decompression_Filter>
      Src: /src/botan/src/tests/test_filters.cpp:514,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:515,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_filters.cpp:515,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:516,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_filters.cpp:516,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:517,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:519,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:521,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 495
    functionDepth: 1
    functionLinenumber: 495
    functionLinenumberEnd: 526
    functionName: Botan_Tests::Filter_Tests::test_pipe_compress_bzip2
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 2
    functionsReached:
    - auto::name
    - std::make_unique<Botan::Compression_Filter>
    - Botan::Pipe::end_msg
    - Botan::Pipe::write
    - std::make_unique<Botan::Decompression_Filter>
    - Botan::Pipe::append
    - Botan::Pipe::pop
    - Test::Result::test_eq
    - Botan::Pipe::start_msg
    - Botan::Pipe::read_all_as_string
    - auto::release
    - Botan::Pipe::read_all
    - Botan::Pipe::process_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:532,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:534,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:534,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:536,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:538,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:538,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:539,1
    - Dst: Botan::Pipe::remaining
      Src: /src/botan/src/tests/test_filters.cpp:539,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:541,1
    - Dst: Test::Result::test_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: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:543,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:545,1
    - Dst: Botan::Base64_Decoder::Base64_Decoder
      Src: /src/botan/src/tests/test_filters.cpp:545,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:546,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:548,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:548,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:550,1
    - Dst: Botan::Pipe::pop
      Src: /src/botan/src/tests/test_filters.cpp:551,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:554,1
    - Dst: Botan::Pipe::set_default_msg
      Src: /src/botan/src/tests/test_filters.cpp:556,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:557,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:557,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:559,1
    - Dst: Botan::Hex_Decoder::Hex_Decoder
      Src: /src/botan/src/tests/test_filters.cpp:559,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:561,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:562,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:563,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:565,1
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:565,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:566,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:567,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:567,1
    - Dst: Botan::Pipe::reset
      Src: /src/botan/src/tests/test_filters.cpp:571,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:572,1
    - Dst: Botan::Hex_Decoder::Hex_Decoder
      Src: /src/botan/src/tests/test_filters.cpp:572,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:573,1
    - Dst: Botan::Base64_Encoder::Base64_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:573,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:577,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:578,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:579,1
    - Dst: Botan::Pipe::reset
      Src: /src/botan/src/tests/test_filters.cpp:581,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:582,1
    - Dst: Botan::Hex_Decoder::Hex_Decoder
      Src: /src/botan/src/tests/test_filters.cpp:582,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:583,1
    - Dst: Botan::Base64_Encoder::Base64_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:583,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:584,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:585,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:585,1
    - Dst: Botan::Pipe::reset
      Src: /src/botan/src/tests/test_filters.cpp:587,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:588,1
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:588,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:589,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:590,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:591,1
    - Dst: Botan::Pipe::reset
      Src: /src/botan/src/tests/test_filters.cpp:594,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:595,1
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:595,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:596,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:597,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 603
    functionName: Botan_Tests::Filter_Tests::test_pipe_codec
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 2
    functionsReached:
    - Botan::Hex_Decoder::Hex_Decoder
    - Botan::Pipe::reset
    - Botan::Pipe::message_count
    - Botan::Base64_Decoder::Base64_Decoder
    - Botan::Hex_Encoder::Hex_Encoder
    - Botan::Pipe::append
    - Botan::Pipe::pop
    - Test::Result::test_eq
    - Botan::Base64_Encoder::Base64_Encoder
    - Botan::Pipe::read_all_as_string
    - Botan::Pipe::set_default_msg
    - Botan::Pipe::read_all
    - Botan::Pipe::process_msg
    - Botan::Pipe::remaining
    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:613,1
    - Dst: Botan::Keyed_Filter*::set_key
      Src: /src/botan/src/tests/test_filters.cpp:615,1
    - Dst: Botan::Keyed_Filter*::set_iv
      Src: /src/botan/src/tests/test_filters.cpp:616,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:618,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:620,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:620,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:621,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:621,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:623,1
    - Dst: Test::Result::test_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
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 627
    functionName: Botan_Tests::Filter_Tests::test_pipe_stream
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 2
    functionsReached:
    - Botan::StreamCipher_Filter::StreamCipher_Filter
    - Botan::Pipe::message_count
    - Test::Result::test_eq
    - Botan::Keyed_Filter*::set_iv
    - Botan::Keyed_Filter*::set_key
    - Botan::Pipe::read_all
    - Botan::Pipe::process_msg
    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:633,1
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:633,1
    - Dst: Botan::Fork::Fork
      Src: /src/botan/src/tests/test_filters.cpp:633,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:635,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:635,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:636,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:637,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:637,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:640,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:640,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:641,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:641,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 629
    functionDepth: 1
    functionLinenumber: 629
    functionLinenumberEnd: 644
    functionName: Botan_Tests::Filter_Tests::test_fork
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 6
    functionsReached:
    - Botan::Hash_Filter::Hash_Filter
    - Botan::Pipe::message_count
    - Botan::Fork::Fork
    - Test::Result::test_eq
    - Botan::Pipe::read_all
    - Botan::Pipe::process_msg
    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:651,1
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:651,1
    - Dst: std::make_unique<Botan::Chain>
      Src: /src/botan/src/tests/test_filters.cpp:653,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:655,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_filters.cpp:655,1
    - Dst: std::make_unique<Botan::Fork>
      Src: /src/botan/src/tests/test_filters.cpp:657,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_filters.cpp:658,1
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:658,1
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:658,1
    - Dst: Botan::Chain::Chain
      Src: /src/botan/src/tests/test_filters.cpp:658,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:660,1
    - Dst: auto::name
      Src: /src/botan/src/tests/test_filters.cpp:660,1
    - Dst: auto::release
      Src: /src/botan/src/tests/test_filters.cpp:661,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:663,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:663,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:664,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:665,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:665,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:667,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:668,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:669,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:669,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 673
    functionName: Botan_Tests::Filter_Tests::test_chain
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 2
    functionsReached:
    - auto::name
    - Botan::Hash_Filter::Hash_Filter
    - Botan::Pipe::message_count
    - Botan::Hex_Encoder::Hex_Encoder
    - Test::Result::test_eq
    - std::make_unique<Botan::Chain>
    - std::make_unique<Botan::Fork>
    - Botan::Chain::Chain
    - auto::release
    - Botan::Pipe::read_all_as_string
    - Botan::Pipe::process_msg
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result test_chain()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ::pipe
      Src: /src/botan/src/tests/test_filters.cpp:680,1
    - Dst: Botan::Hex_Encoder::Hex_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:684,1
    - Dst: Botan::Hex_Decoder::Hex_Decoder
      Src: /src/botan/src/tests/test_filters.cpp:685,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:687,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/tests/test_filters.cpp:689,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:691,1
    - Dst: Botan::Pipe::end_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:694,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:696,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:698,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 702
    functionName: Botan_Tests::Filter_Tests::test_pipe_fd_io
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 2
    functionsReached:
    - Botan::Hex_Decoder::Hex_Decoder
    - Botan::Pipe::end_msg
    - Botan::Hex_Encoder::Hex_Encoder
    - Botan::TLS::Channel_Impl::close
    - Test::Result::test_eq
    - Botan::Pipe::start_msg
    - Botan::Pipe::read_all_as_string
    - ::pipe
    - Botan::Pipe::process_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:708,1
    - Dst: Botan::Base64_Encoder::Base64_Encoder
      Src: /src/botan/src/tests/test_filters.cpp:708,1
    - Dst: Botan::Threaded_Fork::Threaded_Fork
      Src: /src/botan/src/tests/test_filters.cpp:708,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:710,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:710,1
    - Dst: Botan::Pipe::process_msg
      Src: /src/botan/src/tests/test_filters.cpp:711,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:712,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:712,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:715,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:715,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:716,1
    - Dst: Botan::Pipe::read_all_as_string
      Src: /src/botan/src/tests/test_filters.cpp:716,1
    - Dst: Botan::Pipe::reset
      Src: /src/botan/src/tests/test_filters.cpp:718,1
    - Dst: Botan::Hash_Filter::Hash_Filter
      Src: /src/botan/src/tests/test_filters.cpp:723,1
    - Dst: Botan::Pipe::append
      Src: /src/botan/src/tests/test_filters.cpp:726,1
    - Dst: Botan::Threaded_Fork::Threaded_Fork
      Src: /src/botan/src/tests/test_filters.cpp:726,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:728,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:728,1
    - Dst: Botan::Pipe::start_msg
      Src: /src/botan/src/tests/test_filters.cpp:730,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/tests/test_filters.cpp:732,1
    - Dst: Botan::Pipe::write
      Src: /src/botan/src/tests/test_filters.cpp:733,1
    - Dst: Botan::Pipe::end_msg
      Src: /src/botan/src/tests/test_filters.cpp:735,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:737,1
    - Dst: Botan::Pipe::message_count
      Src: /src/botan/src/tests/test_filters.cpp:737,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_filters.cpp:739,1
    - Dst: Botan::Pipe::read_all
      Src: /src/botan/src/tests/test_filters.cpp:740,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 744
    functionName: Botan_Tests::Filter_Tests::test_threaded_fork
    functionSourceFile: /src/botan/src/tests/test_filters.cpp
    functionUses: 2
    functionsReached:
    - Botan::Pipe::reset
    - Botan::Threaded_Fork::Threaded_Fork
    - Botan::Hash_Filter::Hash_Filter
    - Botan::Pipe::message_count
    - Botan::Hex_Encoder::Hex_Encoder
    - Botan::Pipe::end_msg
    - static_cast<uint8_t>
    - Botan::Pipe::write
    - Botan::Pipe::append
    - Test::Result::test_eq
    - Botan::Base64_Encoder::Base64_Encoder
    - Botan::Pipe::start_msg
    - Botan::Pipe::read_all_as_string
    - Botan::Pipe::read_all
    - Botan::Pipe::process_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_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_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_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_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::confirm
      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::confirm
      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::confirm
      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::update
    - auto::empty
    - Botan::Dilithium_PrivateKey::private_key_bits
    - auto::sign_message
    - std::make_unique<CTR_DRBG_AES256>
    - auto::check_signature
    - auto::size
    - Botan::Dilithium_PrivateKey::public_key_bits
    - Botan_Tests::Dilithium_KAT_Tests::rng
    - Botan::PK_Verifier::PK_Verifier
    - get_req_bin
    - auto::data
    - auto::process
    - Botan::HashFunction::create_or_throw
    - get_opt_bin
    - Test::Result::test_eq
    - Botan::PK_Signer::PK_Signer
    - Test::Result::confirm
    - Botan_Tests::Test::mutate_vec
    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_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_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_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_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::confirm
      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::confirm
      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::confirm
      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::confirm
      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::confirm
      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::confirm
      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::confirm
      Src: /src/botan/src/tests/test_dilithium.cpp:185,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:185,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_dilithium.cpp:186,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:186,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_dilithium.cpp:187,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:188,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_dilithium.cpp:189,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:190,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_dilithium.cpp:191,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:191,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_dilithium.cpp:192,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:192,1
    - Dst: Botan::load_public_key
      Src: /src/botan/src/tests/test_dilithium.cpp:195,1
    - Dst: algorithm_identifier
      Src: /src/botan/src/tests/test_dilithium.cpp:195,1
    - Dst: Botan::load_private_key
      Src: /src/botan/src/tests/test_dilithium.cpp:197,1
    - Dst: Botan::Dilithium_PrivateKey::algorithm_identifier
      Src: /src/botan/src/tests/test_dilithium.cpp:197,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/test_dilithium.cpp:199,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/test_dilithium.cpp:200,1
    - Dst: sign
      Src: /src/botan/src/tests/test_dilithium.cpp:202,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_dilithium.cpp:204,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:205,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_dilithium.cpp:206,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:207,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_dilithium.cpp:208,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:209,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: 212
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 212
    functionName: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
    functionSourceFile: /src/botan/src/tests/test_dilithium.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - key_length
    - sign
    - Botan::Dilithium_PrivateKey::private_key_bits
    - auto::sign_message
    - auto::check_signature
    - estimated_strength
    - Test::Result::test_not_null
    - Botan::Dilithium_PrivateKey::public_key_bits
    - Botan::DilithiumMode::to_string
    - Botan::PK_Verifier::PK_Verifier
    - Botan_Tests::Test::new_rng
    - Botan::DilithiumMode::is_available
    - Test::Result::note_missing
    - Botan::load_public_key
    - Botan::Dilithium_PrivateKey::algorithm_identifier
    - algorithm_identifier
    - verify
    - Botan::Dilithium_PrivateKey::estimated_strength
    - std::string::size
    - Botan::load_private_key
    - auto::front
    - Test::Result::test_eq
    - Botan::PK_Signer::PK_Signer
    - Test::Result::confirm
    - Botan::Dilithium_PrivateKey::key_length
    - std::string::data
    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:216,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:217,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:218,1
    - 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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 235
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::copy_if
      Src: /src/botan/src/tests/test_dilithium.cpp:255,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_dilithium.cpp:255,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_dilithium.cpp:256,1
    - Dst: std::back_inserter
      Src: /src/botan/src/tests/test_dilithium.cpp:257,1
    - Dst: Botan::DilithiumMode::DilithiumMode
      Src: /src/botan/src/tests/test_dilithium.cpp:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 260
    functionName: Botan_Tests::Dilithium_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_dilithium.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - std::copy_if
    - std::back_inserter
    - Botan::DilithiumMode::DilithiumMode
    - std::vector::end
    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:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - param
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 268
    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:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 270
    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:275,1
    - Dst: Botan::DilithiumMode::DilithiumMode
      Src: /src/botan/src/tests/test_dilithium.cpp:275,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: 276
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 276
    functionName: Botan_Tests::Dilithium_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_dilithium.cpp
    functionUses: 0
    functionsReached:
    - Botan::DilithiumMode::DilithiumMode
    - std::make_unique<Botan::Dilithium_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::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_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_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_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_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::confirm
      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::confirm
      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::confirm
      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::update
    - auto::empty
    - Botan::Dilithium_PrivateKey::private_key_bits
    - auto::sign_message
    - std::make_unique<CTR_DRBG_AES256>
    - auto::check_signature
    - auto::size
    - Botan::Dilithium_PrivateKey::public_key_bits
    - Botan_Tests::Dilithium_KAT_Tests::rng
    - Botan::PK_Verifier::PK_Verifier
    - get_req_bin
    - auto::data
    - auto::process
    - Botan::HashFunction::create_or_throw
    - get_opt_bin
    - Test::Result::test_eq
    - Botan::PK_Signer::PK_Signer
    - Test::Result::confirm
    - Botan_Tests::Test::mutate_vec
    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_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_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_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_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::confirm
      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::confirm
      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::confirm
      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::confirm
      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::confirm
      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::confirm
      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::confirm
      Src: /src/botan/src/tests/test_dilithium.cpp:185,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:185,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_dilithium.cpp:186,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:186,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_dilithium.cpp:187,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:188,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_dilithium.cpp:189,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:190,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_dilithium.cpp:191,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:191,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_dilithium.cpp:192,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:192,1
    - Dst: Botan::load_public_key
      Src: /src/botan/src/tests/test_dilithium.cpp:195,1
    - Dst: algorithm_identifier
      Src: /src/botan/src/tests/test_dilithium.cpp:195,1
    - Dst: Botan::load_private_key
      Src: /src/botan/src/tests/test_dilithium.cpp:197,1
    - Dst: Botan::Dilithium_PrivateKey::algorithm_identifier
      Src: /src/botan/src/tests/test_dilithium.cpp:197,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/test_dilithium.cpp:199,1
    - Dst: Test::Result::test_not_null
      Src: /src/botan/src/tests/test_dilithium.cpp:200,1
    - Dst: sign
      Src: /src/botan/src/tests/test_dilithium.cpp:202,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_dilithium.cpp:204,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:205,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_dilithium.cpp:206,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:207,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_dilithium.cpp:208,1
    - Dst: verify
      Src: /src/botan/src/tests/test_dilithium.cpp:209,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: 212
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 212
    functionName: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
    functionSourceFile: /src/botan/src/tests/test_dilithium.cpp
    functionUses: 1
    functionsReached:
    - auto::update
    - key_length
    - sign
    - Botan::Dilithium_PrivateKey::private_key_bits
    - auto::sign_message
    - auto::check_signature
    - estimated_strength
    - Test::Result::test_not_null
    - Botan::Dilithium_PrivateKey::public_key_bits
    - Botan::DilithiumMode::to_string
    - Botan::PK_Verifier::PK_Verifier
    - Botan_Tests::Test::new_rng
    - Botan::DilithiumMode::is_available
    - Test::Result::note_missing
    - Botan::load_public_key
    - Botan::Dilithium_PrivateKey::algorithm_identifier
    - algorithm_identifier
    - verify
    - Botan::Dilithium_PrivateKey::estimated_strength
    - std::string::size
    - Botan::load_private_key
    - auto::front
    - Test::Result::test_eq
    - Botan::PK_Signer::PK_Signer
    - Test::Result::confirm
    - Botan::Dilithium_PrivateKey::key_length
    - std::string::data
    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:216,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:217,1
    - Dst: Botan_Tests::DilithiumRoundtripTests::run_roundtrip
      Src: /src/botan/src/tests/test_dilithium.cpp:218,1
    - 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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 235
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::copy_if
      Src: /src/botan/src/tests/test_dilithium.cpp:255,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/test_dilithium.cpp:255,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/test_dilithium.cpp:256,1
    - Dst: std::back_inserter
      Src: /src/botan/src/tests/test_dilithium.cpp:257,1
    - Dst: Botan::DilithiumMode::DilithiumMode
      Src: /src/botan/src/tests/test_dilithium.cpp:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 260
    functionName: Botan_Tests::Dilithium_Keygen_Tests::keygen_params
    functionSourceFile: /src/botan/src/tests/test_dilithium.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - std::copy_if
    - std::back_inserter
    - Botan::DilithiumMode::DilithiumMode
    - std::vector::end
    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:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - param
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 268
    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:270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 270
    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:275,1
    - Dst: Botan::DilithiumMode::DilithiumMode
      Src: /src/botan/src/tests/test_dilithium.cpp:275,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: 276
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 276
    functionName: Botan_Tests::Dilithium_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_dilithium.cpp
    functionUses: 0
    functionsReached:
    - Botan::DilithiumMode::DilithiumMode
    - std::make_unique<Botan::Dilithium_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: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    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: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    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:30,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecgdsa.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: Botan_Tests::ECGDSA_Signature_KAT_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - get_req_str
    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:34,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecgdsa.cpp:35,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecgdsa.cpp:36,1
    - Dst: std::make_unique<Botan::ECGDSA_PrivateKey>
      Src: /src/botan/src/tests/test_ecgdsa.cpp:38,1
    - Dst: Botan_Tests::ECGDSA_Signature_KAT_Tests::rng
      Src: /src/botan/src/tests/test_ecgdsa.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 39
    functionName: Botan_Tests::ECGDSA_Signature_KAT_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::ECGDSA_PrivateKey>
    - Botan_Tests::ECGDSA_Signature_KAT_Tests::rng
    - Botan::EC_Group::from_name
    - get_req_bn
    - get_req_str
    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:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    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:46,1
    - Dst: Botan_Tests::ECGDSA_Signature_KAT_Tests::rng
      Src: /src/botan/src/tests/test_ecgdsa.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: Botan_Tests::ECGDSA_Signature_KAT_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Fixed_Output_Position_RNG>
    - Botan_Tests::ECGDSA_Signature_KAT_Tests::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: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    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: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    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:59,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/test_ecgdsa.cpp:60,1
    - Dst: std::make_unique<Botan::ECGDSA_PublicKey>
      Src: /src/botan/src/tests/test_ecgdsa.cpp:61,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: 62
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: Botan_Tests::ECGDSA_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_AffinePoint::EC_AffinePoint
    - Botan::EC_Group
    - 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: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    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: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    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:30,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecgdsa.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: Botan_Tests::ECGDSA_Signature_KAT_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - get_req_str
    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:34,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecgdsa.cpp:35,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecgdsa.cpp:36,1
    - Dst: std::make_unique<Botan::ECGDSA_PrivateKey>
      Src: /src/botan/src/tests/test_ecgdsa.cpp:38,1
    - Dst: Botan_Tests::ECGDSA_Signature_KAT_Tests::rng
      Src: /src/botan/src/tests/test_ecgdsa.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 39
    functionName: Botan_Tests::ECGDSA_Signature_KAT_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::ECGDSA_PrivateKey>
    - Botan_Tests::ECGDSA_Signature_KAT_Tests::rng
    - Botan::EC_Group::from_name
    - get_req_bn
    - get_req_str
    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:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    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:46,1
    - Dst: Botan_Tests::ECGDSA_Signature_KAT_Tests::rng
      Src: /src/botan/src/tests/test_ecgdsa.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: Botan_Tests::ECGDSA_Signature_KAT_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Fixed_Output_Position_RNG>
    - Botan_Tests::ECGDSA_Signature_KAT_Tests::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: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    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: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    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:59,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/test_ecgdsa.cpp:60,1
    - Dst: std::make_unique<Botan::ECGDSA_PublicKey>
      Src: /src/botan/src/tests/test_ecgdsa.cpp:61,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: 62
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: Botan_Tests::ECGDSA_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_AffinePoint::EC_AffinePoint
    - Botan::EC_Group
    - 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: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    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: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    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:30,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecgdsa.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: Botan_Tests::ECGDSA_Signature_KAT_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - get_req_str
    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:34,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecgdsa.cpp:35,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecgdsa.cpp:36,1
    - Dst: std::make_unique<Botan::ECGDSA_PrivateKey>
      Src: /src/botan/src/tests/test_ecgdsa.cpp:38,1
    - Dst: Botan_Tests::ECGDSA_Signature_KAT_Tests::rng
      Src: /src/botan/src/tests/test_ecgdsa.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 39
    functionName: Botan_Tests::ECGDSA_Signature_KAT_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::ECGDSA_PrivateKey>
    - Botan_Tests::ECGDSA_Signature_KAT_Tests::rng
    - Botan::EC_Group::from_name
    - get_req_bn
    - get_req_str
    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:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    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:46,1
    - Dst: Botan_Tests::ECGDSA_Signature_KAT_Tests::rng
      Src: /src/botan/src/tests/test_ecgdsa.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: Botan_Tests::ECGDSA_Signature_KAT_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Fixed_Output_Position_RNG>
    - Botan_Tests::ECGDSA_Signature_KAT_Tests::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: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    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: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    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:59,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/test_ecgdsa.cpp:60,1
    - Dst: std::make_unique<Botan::ECGDSA_PublicKey>
      Src: /src/botan/src/tests/test_ecgdsa.cpp:61,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: 62
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: Botan_Tests::ECGDSA_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_AffinePoint::EC_AffinePoint
    - Botan::EC_Group
    - 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: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    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: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    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:30,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_ecgdsa.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: Botan_Tests::ECGDSA_Signature_KAT_Tests::skip_this_test
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::supports_named_group
    - get_req_str
    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:34,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_ecgdsa.cpp:35,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/tests/test_ecgdsa.cpp:36,1
    - Dst: std::make_unique<Botan::ECGDSA_PrivateKey>
      Src: /src/botan/src/tests/test_ecgdsa.cpp:38,1
    - Dst: Botan_Tests::ECGDSA_Signature_KAT_Tests::rng
      Src: /src/botan/src/tests/test_ecgdsa.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 39
    functionName: Botan_Tests::ECGDSA_Signature_KAT_Tests::load_private_key
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::ECGDSA_PrivateKey>
    - Botan_Tests::ECGDSA_Signature_KAT_Tests::rng
    - Botan::EC_Group::from_name
    - get_req_bn
    - get_req_str
    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:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    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:46,1
    - Dst: Botan_Tests::ECGDSA_Signature_KAT_Tests::rng
      Src: /src/botan/src/tests/test_ecgdsa.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' nonce'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: Botan_Tests::ECGDSA_Signature_KAT_Tests::test_rng
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Fixed_Output_Position_RNG>
    - Botan_Tests::ECGDSA_Signature_KAT_Tests::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: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    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: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    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:59,1
    - Dst: Botan::EC_AffinePoint::EC_AffinePoint
      Src: /src/botan/src/tests/test_ecgdsa.cpp:60,1
    - Dst: std::make_unique<Botan::ECGDSA_PublicKey>
      Src: /src/botan/src/tests/test_ecgdsa.cpp:61,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: 62
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: Botan_Tests::ECGDSA_Keygen_Tests::public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_AffinePoint::EC_AffinePoint
    - Botan::EC_Group
    - 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:43,1
    - Dst: Test::Result::note_missing
      Src: /src/botan/src/tests/test_kyber.cpp:44,1
    - Dst: Botan::KyberMode::to_string
      Src: /src/botan/src/tests/test_kyber.cpp:44,1
    - Dst: Botan_Tests::Test::new_rng
      Src: /src/botan/src/tests/test_kyber.cpp:48,1
    - Dst: Botan::Kyber_PrivateKey::public_key
      Src: /src/botan/src/tests/test_kyber.cpp:54,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_kyber.cpp:56,1
    - Dst: Botan::Kyber_PrivateKey::estimated_strength
      Src: /src/botan/src/tests/test_kyber.cpp:56,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_kyber.cpp:57,1
    - Dst: auto::estimated_strength
      Src: /src/botan/src/tests/test_kyber.cpp:57,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_kyber.cpp:58,1
    - Dst: Botan::Kyber_PrivateKey::key_length
      Src: /src/botan/src/tests/test_kyber.cpp:58,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_kyber.cpp:59,1
    - Dst: auto::key_length
      Src: /src/botan/src/tests/test_kyber.cpp:59,1
    - Dst: Botan::Kyber_PrivateKey::private_key_bits
      Src: /src/botan/src/tests/test_kyber.cpp:62,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_kyber.cpp:63,1
    - Dst: Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
      Src: /src/botan/src/tests/test_kyber.cpp:67,1
    - Dst: auto::encrypt
      Src: /src/botan/src/tests/test_kyber.cpp:68,1
    - Dst: Botan::PK_KEM_Decryptor::PK_KEM_Decryptor
      Src: /src/botan/src/tests/test_kyber.cpp:72,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_kyber.cpp:73,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_kyber.cpp:73,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_kyber.cpp:74,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_kyber.cpp:74,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_kyber.cpp:81,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_kyber.cpp:82,1
    - Dst: auto::pop_back
      Src: /src/botan/src/tests/test_kyber.cpp:83,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_kyber.cpp:84,1
    - Dst: copy
      Src: /src/botan/src/tests/test_kyber.cpp:89,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_kyber.cpp:89,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_kyber.cpp:90,1
    - Dst: std::back_inserter
      Src: /src/botan/src/tests/test_kyber.cpp:91,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_kyber.cpp:92,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_kyber.cpp:93,1
    - Dst: auto::decrypt
      Src: /src/botan/src/tests/test_kyber.cpp:96,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_kyber.cpp:96,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_kyber.cpp:97,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_kyber.cpp:97,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: 100
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 100
    functionName: KYBER_Tests::run_kyber_test
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached:
    - Test::Result::test_throws
    - auto::shared_key
    - copy
    - Botan::Kyber_PrivateKey::private_key_bits
    - Botan::Kyber_PrivateKey::public_key
    - auto::pop_back
    - auto::public_key_bits
    - auto::key_length
    - Botan_Tests::Test::new_rng
    - Botan::Kyber_PrivateKey::key_length
    - Botan::KyberMode::is_available
    - Test::Result::note_missing
    - auto::estimated_strength
    - Botan::KyberMode::to_string
    - std::back_inserter
    - Botan::Kyber_PrivateKey::estimated_strength
    - Test::Result::test_eq
    - auto::decrypt
    - auto::encapsulated_shared_key
    - Test::Result::confirm
    - Botan::PK_KEM_Decryptor::PK_KEM_Decryptor
    - Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
    - auto::encrypt
    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:104,1
    - Dst: KYBER_Tests::run_kyber_test
      Src: /src/botan/src/tests/test_kyber.cpp:105,1
    - 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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 114
    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: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    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:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 129
    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:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 131
    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:137,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_kyber.cpp:137,1
    - Dst: Kyber_KAT_Tests::get_mode
      Src: /src/botan/src/tests/test_kyber.cpp:142,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/tests/test_kyber.cpp:144,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_kyber.cpp:145,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_kyber.cpp:146,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_kyber.cpp:146,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: 147
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 147
    functionName: Kyber_KAT_Tests::map_value
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached:
    - auto::process
    - Botan::HashFunction::create_or_throw
    - std::span<const uint8_t>::begin
    - Kyber_KAT_Tests::get_mode
    - std::span<const uint8_t>::end
    - auto::begin
    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:150,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_kyber.cpp:151,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_kyber.cpp:152,1
    - Dst: Fixed_Output_RNG
      Src: /src/botan/src/tests/test_kyber.cpp:153,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_kyber.cpp:153,1
    - Dst: Kyber_KAT_Tests::get_mode
      Src: /src/botan/src/tests/test_kyber.cpp:154,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_kyber.cpp:155,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_kyber.cpp:156,1
    - Dst: Fixed_Output_RNG
      Src: /src/botan/src/tests/test_kyber.cpp:157,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_kyber.cpp:157,1
    - Dst: Fixed_Output_RNG
      Src: /src/botan/src/tests/test_kyber.cpp:159,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_kyber.cpp:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' mode'
    - ' rng'
    argTypes:
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 161
    functionName: Kyber_KAT_Tests::rng_for_keygen
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached:
    - random_vec
    - Fixed_Output_RNG
    - 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:165,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_kyber.cpp:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 166
    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: 171
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 171
    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: 176
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 176
    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: 182
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 182
    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:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 185
    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:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 187
    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:190,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_kyber.cpp:191,1
    - Dst: Fixed_Output_RNG
      Src: /src/botan/src/tests/test_kyber.cpp:192,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_kyber.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 193
    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: 198
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 198
    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:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 201
    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:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 203
    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:206,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_kyber.cpp:206,1
    - Dst: ML_KEM_PQC_KEM_ACVP_KAT_Encap_Test::get_mode
      Src: /src/botan/src/tests/test_kyber.cpp:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' vars'
    - ' mode'
    argTypes:
    - VarMap
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 207
    functionName: ML_KEM_PQC_KEM_ACVP_KAT_Encap_Test::load_public_key
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - ML_KEM_PQC_KEM_ACVP_KAT_Encap_Test::get_mode
    - std::make_unique<Botan::Kyber_PublicKey>
    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: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    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:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 129
    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:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 2
    functionLinenumber: 131
    functionLinenumberEnd: 131
    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:137,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/tests/test_kyber.cpp:137,1
    - Dst: Kyber_KAT_Tests::get_mode
      Src: /src/botan/src/tests/test_kyber.cpp:142,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/tests/test_kyber.cpp:144,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_kyber.cpp:145,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_kyber.cpp:146,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_kyber.cpp:146,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: 147
      start: 133
    functionDepth: 2
    functionLinenumber: 133
    functionLinenumberEnd: 147
    functionName: Kyber_KAT_Tests::map_value
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached:
    - auto::process
    - Botan::HashFunction::create_or_throw
    - std::span<const uint8_t>::begin
    - Kyber_KAT_Tests::get_mode
    - std::span<const uint8_t>::end
    - auto::begin
    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:150,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_kyber.cpp:151,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_kyber.cpp:152,1
    - Dst: Fixed_Output_RNG
      Src: /src/botan/src/tests/test_kyber.cpp:153,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_kyber.cpp:153,1
    - Dst: Kyber_KAT_Tests::get_mode
      Src: /src/botan/src/tests/test_kyber.cpp:154,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_kyber.cpp:155,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_kyber.cpp:156,1
    - Dst: Fixed_Output_RNG
      Src: /src/botan/src/tests/test_kyber.cpp:157,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_kyber.cpp:157,1
    - Dst: Fixed_Output_RNG
      Src: /src/botan/src/tests/test_kyber.cpp:159,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_kyber.cpp:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' mode'
    - ' rng'
    argTypes:
    - std::string
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 161
    functionName: Kyber_KAT_Tests::rng_for_keygen
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached:
    - random_vec
    - Fixed_Output_RNG
    - 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:165,1
    - Dst: random_vec
      Src: /src/botan/src/tests/test_kyber.cpp:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 166
    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: 171
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 171
    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: 176
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 176
    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: 182
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 182
    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:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 185
    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:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 187
    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:190,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_kyber.cpp:191,1
    - Dst: Fixed_Output_RNG
      Src: /src/botan/src/tests/test_kyber.cpp:192,1
    - Dst: Botan::concat
      Src: /src/botan/src/tests/test_kyber.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 193
    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: 198
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 198
    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:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 201
    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:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 203
    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:206,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_kyber.cpp:206,1
    - Dst: ML_KEM_PQC_KEM_ACVP_KAT_Encap_Test::get_mode
      Src: /src/botan/src/tests/test_kyber.cpp:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' vars'
    - ' mode'
    argTypes:
    - VarMap
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 207
    functionName: ML_KEM_PQC_KEM_ACVP_KAT_Encap_Test::load_public_key
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached:
    - get_req_bin
    - ML_KEM_PQC_KEM_ACVP_KAT_Encap_Test::get_mode
    - std::make_unique<Botan::Kyber_PublicKey>
    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: 223
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 223
    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:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' algo_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 228
    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:233,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_kyber.cpp:234,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_kyber.cpp:234,1
    - Dst: Botan::hex_decode_locked
      Src: /src/botan/src/tests/test_kyber.cpp:235,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_kyber.cpp:235,1
    - Dst: get_opt_str
      Src: /src/botan/src/tests/test_kyber.cpp:236,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_kyber.cpp:238,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_kyber.cpp:241,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_kyber.cpp:242,1
    - Dst: Botan::Kyber_PrivateKey::Kyber_PrivateKey
      Src: /src/botan/src/tests/test_kyber.cpp:243,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_kyber.cpp:245,1
    - Dst: Botan::Kyber_PublicKey::Kyber_PublicKey
      Src: /src/botan/src/tests/test_kyber.cpp:246,1
    - Dst: std::make_unique<Botan::Kyber_PrivateKey>
      Src: /src/botan/src/tests/test_kyber.cpp:252,1
    - Dst: std::make_unique<Botan::Kyber_PublicKey>
      Src: /src/botan/src/tests/test_kyber.cpp:253,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_kyber.cpp:255,1
    - Dst: auto::public_key_bits
      Src: /src/botan/src/tests/test_kyber.cpp:255,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_kyber.cpp:256,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_kyber.cpp:256,1
    - Dst: Test::Result::test_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: auto::private_key_format
      Src: /src/botan/src/tests/test_kyber.cpp:260,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_kyber.cpp:261,1
    - Dst: auto::private_key_bits_with_format
      Src: /src/botan/src/tests/test_kyber.cpp:262,1
    - Dst: std::make_unique<Botan::Kyber_PrivateKey>
      Src: /src/botan/src/tests/test_kyber.cpp:264,1
    - Dst: auto::private_key_bits_with_format
      Src: /src/botan/src/tests/test_kyber.cpp:265,1
    - Dst: Test::Result::test_eq
      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: auto::private_key_bits_with_format
      Src: /src/botan/src/tests/test_kyber.cpp:268,1
    - Dst: Test::Result::test_throws
      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: Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
      Src: /src/botan/src/tests/test_kyber.cpp:273,1
    - Dst: rng
      Src: /src/botan/src/tests/test_kyber.cpp:273,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_kyber.cpp:274,1
    - Dst: Botan::PK_KEM_Decryptor::PK_KEM_Decryptor
      Src: /src/botan/src/tests/test_kyber.cpp:276,1
    - Dst: rng
      Src: /src/botan/src/tests/test_kyber.cpp:276,1
    - Dst: auto::encapsulated_shared_key
      Src: /src/botan/src/tests/test_kyber.cpp:276,1
    - Dst: auto::shared_key
      Src: /src/botan/src/tests/test_kyber.cpp:277,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_kyber.cpp:280,1
    - Dst: auto::private_key_bits_with_format
      Src: /src/botan/src/tests/test_kyber.cpp:281,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 2
    argNames:
    - ' algo_name'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 287
    functionName: Kyber_Encoding_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Test::Result::test_throws
    - auto::empty
    - auto::private_key_bits
    - auto::private_key_format
    - auto::shared_key
    - Botan::Kyber_PublicKey::Kyber_PublicKey
    - rng
    - auto::private_key_bits_with_format
    - auto::public_key_bits
    - Botan::Kyber_PrivateKey::Kyber_PrivateKey
    - std::make_unique<Botan::Kyber_PrivateKey>
    - get_opt_str
    - get_req_str
    - Botan::hex_decode_locked
    - Botan::KyberMode::KyberMode
    - Test::Result::test_eq
    - std::make_unique<Botan::Kyber_PublicKey>
    - auto::encapsulated_shared_key
    - Botan::PK_KEM_Decryptor::PK_KEM_Decryptor
    - Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
    linkageType: ''
    returnType: Test::Result
    signature: Test::Result run_one_test(const std::string& algo_name, const VarMap&
      vars) override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: algo_name
      Src: /src/botan/src/tests/test_kyber.cpp:308,1
    - Dst: starts_with
      Src: /src/botan/src/tests/test_kyber.cpp:309,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_kyber.cpp:316,1
    - Dst: std::make_unique<Botan::Kyber_PublicKey>
      Src: /src/botan/src/tests/test_kyber.cpp:321,1
    - Dst: Botan::KyberMode::KyberMode
      Src: /src/botan/src/tests/test_kyber.cpp:321,1
    - Dst: BOTAN_REGISTER_TEST
      Src: /src/botan/src/tests/test_kyber.cpp:325,1
    - Dst: start_timer
      Src: /src/botan/src/tests/test_kyber.cpp:334,1
    - Dst: Kyber_Algos::compress<d>
      Src: /src/botan/src/tests/test_kyber.cpp:337,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_kyber.cpp:342,1
    - Dst: fmt
      Src: /src/botan/src/tests/test_kyber.cpp:342,1
    - Dst: end_timer
      Src: /src/botan/src/tests/test_kyber.cpp:347,1
    - Dst: test_success
      Src: /src/botan/src/tests/test_kyber.cpp:348,1
    - Dst: start_timer
      Src: /src/botan/src/tests/test_kyber.cpp:356,1
    - Dst: static_cast<from_t>
      Src: /src/botan/src/tests/test_kyber.cpp:359,1
    - Dst: from_t
      Src: /src/botan/src/tests/test_kyber.cpp:359,1
    - Dst: Kyber_Algos::decompress<d>
      Src: /src/botan/src/tests/test_kyber.cpp:362,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_kyber.cpp:366,1
    - Dst: fmt
      Src: /src/botan/src/tests/test_kyber.cpp:366,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_kyber.cpp:366,1
    - Dst: end_timer
      Src: /src/botan/src/tests/test_kyber.cpp:371,1
    - Dst: test_success
      Src: /src/botan/src/tests/test_kyber.cpp:372,1
    - Dst: start_timer
      Src: /src/botan/src/tests/test_kyber.cpp:380,1
    - Dst: Kyber_Algos::compress<d>
      Src: /src/botan/src/tests/test_kyber.cpp:384,1
    - Dst: Kyber_Algos::decompress<d>
      Src: /src/botan/src/tests/test_kyber.cpp:384,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_kyber.cpp:386,1
    - Dst: fmt
      Src: /src/botan/src/tests/test_kyber.cpp:386,1
    - Dst: end_timer
      Src: /src/botan/src/tests/test_kyber.cpp:391,1
    - Dst: test_success
      Src: /src/botan/src/tests/test_kyber.cpp:392,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:397,1
    - Dst: test_compress
      Src: /src/botan/src/tests/test_kyber.cpp:397,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:398,1
    - Dst: test_compress
      Src: /src/botan/src/tests/test_kyber.cpp:398,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:399,1
    - Dst: 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: 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: test_compress
      Src: /src/botan/src/tests/test_kyber.cpp:401,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:403,1
    - Dst: test_decompress
      Src: /src/botan/src/tests/test_kyber.cpp:403,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:404,1
    - Dst: test_decompress
      Src: /src/botan/src/tests/test_kyber.cpp:404,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:405,1
    - Dst: 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: 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: test_decompress
      Src: /src/botan/src/tests/test_kyber.cpp:407,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:409,1
    - Dst: test_compress_roundtrip
      Src: /src/botan/src/tests/test_kyber.cpp:409,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:410,1
    - Dst: test_compress_roundtrip
      Src: /src/botan/src/tests/test_kyber.cpp:410,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:411,1
    - Dst: 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: 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: test_compress_roundtrip
      Src: /src/botan/src/tests/test_kyber.cpp:413,1
    - Dst: BOTAN_REGISTER_TEST_FN
      Src: /src/botan/src/tests/test_kyber.cpp:419,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 77
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 294
    functionDepth: 3
    functionLinenumber: 294
    functionLinenumberEnd: 423
    functionName: keygen_params
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 2
    functionsReached:
    - test_decompress
    - static_cast<uint16_t>
    - test_failure
    - algo_name
    - BOTAN_REGISTER_TEST_FN
    - end_timer
    - test_success
    - Botan_Tests::CHECK
    - Test_Error
    - static_cast<from_t>
    - test_compress
    - BOTAN_REGISTER_TEST
    - starts_with
    - fmt
    - from_t
    - Kyber_Algos::compress<d>
    - test_compress_roundtrip
    - Kyber_Algos::decompress<d>
    - Botan::KyberMode::KyberMode
    - start_timer
    - std::make_unique<Botan::Kyber_PublicKey>
    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:309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 314
    functionName: ''
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 4971
    functionsReached:
    - starts_with
    linkageType: ''
    returnType: override
    signature: 'override '
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Test_Error
      Src: /src/botan/src/tests/test_kyber.cpp:316,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 316
    functionName: algo_name
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 79
    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:321,1
    - Dst: Botan::KyberMode::KyberMode
      Src: /src/botan/src/tests/test_kyber.cpp:321,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: 322
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 322
    functionName: public_key_from_raw
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 2
    functionsReached:
    - Botan::KyberMode::KyberMode
    - std::make_unique<Botan::Kyber_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: start_timer
      Src: /src/botan/src/tests/test_kyber.cpp:334,1
    - Dst: Kyber_Algos::compress<d>
      Src: /src/botan/src/tests/test_kyber.cpp:337,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_kyber.cpp:342,1
    - Dst: fmt
      Src: /src/botan/src/tests/test_kyber.cpp:342,1
    - Dst: end_timer
      Src: /src/botan/src/tests/test_kyber.cpp:347,1
    - Dst: test_success
      Src: /src/botan/src/tests/test_kyber.cpp:348,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' res'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 349
    functionName: test_compress
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 1
    functionsReached:
    - test_success
    - fmt
    - start_timer
    - Kyber_Algos::compress<d>
    - test_failure
    - end_timer
    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:356,1
    - Dst: static_cast<from_t>
      Src: /src/botan/src/tests/test_kyber.cpp:359,1
    - Dst: from_t
      Src: /src/botan/src/tests/test_kyber.cpp:359,1
    - Dst: Kyber_Algos::decompress<d>
      Src: /src/botan/src/tests/test_kyber.cpp:362,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_kyber.cpp:366,1
    - Dst: fmt
      Src: /src/botan/src/tests/test_kyber.cpp:366,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_kyber.cpp:366,1
    - Dst: end_timer
      Src: /src/botan/src/tests/test_kyber.cpp:371,1
    - Dst: test_success
      Src: /src/botan/src/tests/test_kyber.cpp:372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 373
    functionName: test_decompress
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 1
    functionsReached:
    - static_cast<uint16_t>
    - test_success
    - from_t
    - static_cast<from_t>
    - start_timer
    - end_timer
    - test_failure
    - Kyber_Algos::decompress<d>
    - 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:380,1
    - Dst: Kyber_Algos::compress<d>
      Src: /src/botan/src/tests/test_kyber.cpp:384,1
    - Dst: Kyber_Algos::decompress<d>
      Src: /src/botan/src/tests/test_kyber.cpp:384,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_kyber.cpp:386,1
    - Dst: fmt
      Src: /src/botan/src/tests/test_kyber.cpp:386,1
    - Dst: end_timer
      Src: /src/botan/src/tests/test_kyber.cpp:391,1
    - Dst: test_success
      Src: /src/botan/src/tests/test_kyber.cpp:392,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 393
    functionName: test_compress_roundtrip
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 1
    functionsReached:
    - test_success
    - start_timer
    - end_timer
    - Kyber_Algos::compress<d>
    - test_failure
    - Kyber_Algos::decompress<d>
    - 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:397,1
    - Dst: test_compress
      Src: /src/botan/src/tests/test_kyber.cpp:397,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:398,1
    - Dst: test_compress
      Src: /src/botan/src/tests/test_kyber.cpp:398,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:399,1
    - Dst: 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: 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: test_compress
      Src: /src/botan/src/tests/test_kyber.cpp:401,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:403,1
    - Dst: test_decompress
      Src: /src/botan/src/tests/test_kyber.cpp:403,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:404,1
    - Dst: test_decompress
      Src: /src/botan/src/tests/test_kyber.cpp:404,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:405,1
    - Dst: 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: 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: test_decompress
      Src: /src/botan/src/tests/test_kyber.cpp:407,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:409,1
    - Dst: test_compress_roundtrip
      Src: /src/botan/src/tests/test_kyber.cpp:409,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:410,1
    - Dst: test_compress_roundtrip
      Src: /src/botan/src/tests/test_kyber.cpp:410,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:411,1
    - Dst: 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: 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: test_compress_roundtrip
      Src: /src/botan/src/tests/test_kyber.cpp:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 395
    functionDepth: 3
    functionLinenumber: 395
    functionLinenumberEnd: 415
    functionName: test_kyber_helpers
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached:
    - test_decompress
    - test_compress
    - test_compress_roundtrip
    - Botan_Tests::CHECK
    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:334,1
    - Dst: Kyber_Algos::compress<d>
      Src: /src/botan/src/tests/test_kyber.cpp:337,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_kyber.cpp:342,1
    - Dst: fmt
      Src: /src/botan/src/tests/test_kyber.cpp:342,1
    - Dst: end_timer
      Src: /src/botan/src/tests/test_kyber.cpp:347,1
    - Dst: test_success
      Src: /src/botan/src/tests/test_kyber.cpp:348,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' res'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 349
    functionName: test_compress
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 2
    functionsReached:
    - test_success
    - fmt
    - start_timer
    - Kyber_Algos::compress<d>
    - test_failure
    - end_timer
    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:356,1
    - Dst: static_cast<from_t>
      Src: /src/botan/src/tests/test_kyber.cpp:359,1
    - Dst: from_t
      Src: /src/botan/src/tests/test_kyber.cpp:359,1
    - Dst: Kyber_Algos::decompress<d>
      Src: /src/botan/src/tests/test_kyber.cpp:362,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_kyber.cpp:366,1
    - Dst: fmt
      Src: /src/botan/src/tests/test_kyber.cpp:366,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/tests/test_kyber.cpp:366,1
    - Dst: end_timer
      Src: /src/botan/src/tests/test_kyber.cpp:371,1
    - Dst: test_success
      Src: /src/botan/src/tests/test_kyber.cpp:372,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 373
    functionName: test_decompress
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 2
    functionsReached:
    - static_cast<uint16_t>
    - test_success
    - from_t
    - static_cast<from_t>
    - start_timer
    - end_timer
    - test_failure
    - Kyber_Algos::decompress<d>
    - 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:380,1
    - Dst: Kyber_Algos::compress<d>
      Src: /src/botan/src/tests/test_kyber.cpp:384,1
    - Dst: Kyber_Algos::decompress<d>
      Src: /src/botan/src/tests/test_kyber.cpp:384,1
    - Dst: test_failure
      Src: /src/botan/src/tests/test_kyber.cpp:386,1
    - Dst: fmt
      Src: /src/botan/src/tests/test_kyber.cpp:386,1
    - Dst: end_timer
      Src: /src/botan/src/tests/test_kyber.cpp:391,1
    - Dst: test_success
      Src: /src/botan/src/tests/test_kyber.cpp:392,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 393
    functionName: test_compress_roundtrip
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 2
    functionsReached:
    - test_success
    - start_timer
    - end_timer
    - Kyber_Algos::compress<d>
    - test_failure
    - Kyber_Algos::decompress<d>
    - 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:397,1
    - Dst: test_compress
      Src: /src/botan/src/tests/test_kyber.cpp:397,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:398,1
    - Dst: test_compress
      Src: /src/botan/src/tests/test_kyber.cpp:398,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:399,1
    - Dst: 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: 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: test_compress
      Src: /src/botan/src/tests/test_kyber.cpp:401,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:403,1
    - Dst: test_decompress
      Src: /src/botan/src/tests/test_kyber.cpp:403,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:404,1
    - Dst: test_decompress
      Src: /src/botan/src/tests/test_kyber.cpp:404,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:405,1
    - Dst: 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: 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: test_decompress
      Src: /src/botan/src/tests/test_kyber.cpp:407,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:409,1
    - Dst: test_compress_roundtrip
      Src: /src/botan/src/tests/test_kyber.cpp:409,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:410,1
    - Dst: test_compress_roundtrip
      Src: /src/botan/src/tests/test_kyber.cpp:410,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_kyber.cpp:411,1
    - Dst: 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: 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: test_compress_roundtrip
      Src: /src/botan/src/tests/test_kyber.cpp:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 395
    functionDepth: 3
    functionLinenumber: 395
    functionLinenumberEnd: 415
    functionName: test_kyber_helpers
    functionSourceFile: /src/botan/src/tests/test_kyber.cpp
    functionUses: 0
    functionsReached:
    - test_decompress
    - test_compress
    - test_compress_roundtrip
    - Botan_Tests::CHECK
    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_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: confirm
      Src: /src/botan/src/tests/test_bufcomp.cpp:32,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_bufcomp.cpp:33,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_bufcomp.cpp:34,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_bufcomp.cpp:35,1
    - Dst: confirm
      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_eq
    - confirm
    - 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:
    - std::span<uint8_t>::begin
    - copy
    - reinterpret_cast<const uint8_t*>
    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_eq
      Src: /src/botan/src/tests/test_bufcomp.cpp:57,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/test_bufcomp.cpp:57,1
    - Dst: std::span<const uint8_t>::size
      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: 1
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: Botan_Tests::check
    functionSourceFile: /src/botan/src/tests/test_bufcomp.cpp
    functionUses: 0
    functionsReached:
    - test_eq
    - std::span<const uint8_t>::data
    - std::memcpy
    - std::span<const uint8_t>::size
    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_int_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: 2
    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
    - std::vector::clear
    - Test::Result::test_int_eq
    - std::vector::resize
    - Botan_Tests::check
    - Test_Buf_Comp::final
    - std::vector::size
    - Test_Buf_Comp::update
    - Test_Buf_Comp::final_stdvec
    - Test_Buf_Comp::process
    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_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: confirm
      Src: /src/botan/src/tests/test_bufcomp.cpp:32,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_bufcomp.cpp:33,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_bufcomp.cpp:34,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_bufcomp.cpp:35,1
    - Dst: confirm
      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_eq
    - confirm
    - 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:
    - std::span<uint8_t>::begin
    - copy
    - reinterpret_cast<const uint8_t*>
    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_eq
      Src: /src/botan/src/tests/test_bufcomp.cpp:57,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/test_bufcomp.cpp:57,1
    - Dst: std::span<const uint8_t>::size
      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: 1
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: Botan_Tests::check
    functionSourceFile: /src/botan/src/tests/test_bufcomp.cpp
    functionUses: 1
    functionsReached:
    - test_eq
    - std::span<const uint8_t>::data
    - std::memcpy
    - std::span<const uint8_t>::size
    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_int_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: 2
    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
    - std::vector::clear
    - Test::Result::test_int_eq
    - std::vector::resize
    - Botan_Tests::check
    - Test_Buf_Comp::final
    - std::vector::size
    - Test_Buf_Comp::update
    - Test_Buf_Comp::final_stdvec
    - Test_Buf_Comp::process
    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_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: confirm
      Src: /src/botan/src/tests/test_bufcomp.cpp:32,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_bufcomp.cpp:33,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_bufcomp.cpp:34,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_bufcomp.cpp:35,1
    - Dst: confirm
      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_eq
    - confirm
    - 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:
    - std::span<uint8_t>::begin
    - copy
    - reinterpret_cast<const uint8_t*>
    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_eq
      Src: /src/botan/src/tests/test_bufcomp.cpp:57,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/test_bufcomp.cpp:57,1
    - Dst: std::span<const uint8_t>::size
      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: 1
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: Botan_Tests::check
    functionSourceFile: /src/botan/src/tests/test_bufcomp.cpp
    functionUses: 2
    functionsReached:
    - test_eq
    - std::span<const uint8_t>::data
    - std::memcpy
    - std::span<const uint8_t>::size
    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_int_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: 2
    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
    - std::vector::clear
    - Test::Result::test_int_eq
    - std::vector::resize
    - Botan_Tests::check
    - Test_Buf_Comp::final
    - std::vector::size
    - Test_Buf_Comp::update
    - Test_Buf_Comp::final_stdvec
    - Test_Buf_Comp::process
    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_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: confirm
      Src: /src/botan/src/tests/test_bufcomp.cpp:32,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_bufcomp.cpp:33,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_bufcomp.cpp:34,1
    - Dst: confirm
      Src: /src/botan/src/tests/test_bufcomp.cpp:35,1
    - Dst: confirm
      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_eq
    - confirm
    - 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:
    - std::span<uint8_t>::begin
    - copy
    - reinterpret_cast<const uint8_t*>
    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_eq
      Src: /src/botan/src/tests/test_bufcomp.cpp:57,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/tests/test_bufcomp.cpp:57,1
    - Dst: std::span<const uint8_t>::size
      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: 1
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: Botan_Tests::check
    functionSourceFile: /src/botan/src/tests/test_bufcomp.cpp
    functionUses: 3
    functionsReached:
    - test_eq
    - std::span<const uint8_t>::data
    - std::memcpy
    - std::span<const uint8_t>::size
    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_int_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: 2
    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
    - std::vector::clear
    - Test::Result::test_int_eq
    - std::vector::resize
    - Botan_Tests::check
    - Test_Buf_Comp::final
    - std::vector::size
    - Test_Buf_Comp::update
    - Test_Buf_Comp::final_stdvec
    - Test_Buf_Comp::process
    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: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    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:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    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:33,1
    - Dst: Botan::LMS_Seed
      Src: /src/botan/src/tests/test_lmots.cpp:34,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lmots.cpp:34,1
    - Dst: Botan::LMS_Identifier
      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_Tree_Node_Idx
      Src: /src/botan/src/tests/test_lmots.cpp:36,1
    - Dst: get_req_u32
      Src: /src/botan/src/tests/test_lmots.cpp:36,1
    - Dst: Botan::LMS_Message
      Src: /src/botan/src/tests/test_lmots.cpp:37,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lmots.cpp:37,1
    - Dst: Botan::LMOTS_K
      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: get_req_bin
      Src: /src/botan/src/tests/test_lmots.cpp:40,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_lmots.cpp:42,1
    - Dst: static_cast<Botan::LMOTS_Algorithm_Type>
      Src: /src/botan/src/tests/test_lmots.cpp:44,1
    - Dst: Botan::LMOTS_Params::create_or_throw
      Src: /src/botan/src/tests/test_lmots.cpp:45,1
    - Dst: Botan::LMOTS_Private_Key
      Src: /src/botan/src/tests/test_lmots.cpp:48,1
    - Dst: Botan::LMOTS_Public_Key
      Src: /src/botan/src/tests/test_lmots.cpp:49,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_lmots.cpp:50,1
    - Dst: auto::K
      Src: /src/botan/src/tests/test_lmots.cpp:50,1
    - Dst: auto::sign
      Src: /src/botan/src/tests/test_lmots.cpp:54,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_lmots.cpp:55,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_lmots.cpp:55,1
    - Dst: Botan::BufferSlicer::BufferSlicer
      Src: /src/botan/src/tests/test_lmots.cpp:58,1
    - Dst: Botan::LMOTS_Signature::from_bytes_or_throw
      Src: /src/botan/src/tests/test_lmots.cpp:59,1
    - Dst: Botan::lmots_compute_pubkey_from_sig
      Src: /src/botan/src/tests/test_lmots.cpp:60,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_lmots.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 64
    functionName: Botan_Tests::LMOTS_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_lmots.cpp
    functionUses: 0
    functionsReached:
    - Botan::LMS_Message
    - Botan::HashFunction::create
    - Botan::LMOTS_Params::create_or_throw
    - Test::Result::test_is_eq
    - Botan::BufferSlicer::BufferSlicer
    - Botan::LMS_Identifier
    - Botan::LMOTS_Private_Key
    - get_req_bin
    - Botan::LMS_Tree_Node_Idx
    - Botan::LMS_Seed
    - auto::K
    - Botan::lmots_compute_pubkey_from_sig
    - auto::process
    - static_cast<Botan::LMOTS_Algorithm_Type>
    - Botan::LMOTS_Signature::from_bytes_or_throw
    - get_req_u32
    - Botan::LMOTS_Public_Key
    - auto::sign
    - Botan::LMOTS_K
    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: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    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:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    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:33,1
    - Dst: Botan::LMS_Seed
      Src: /src/botan/src/tests/test_lmots.cpp:34,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lmots.cpp:34,1
    - Dst: Botan::LMS_Identifier
      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_Tree_Node_Idx
      Src: /src/botan/src/tests/test_lmots.cpp:36,1
    - Dst: get_req_u32
      Src: /src/botan/src/tests/test_lmots.cpp:36,1
    - Dst: Botan::LMS_Message
      Src: /src/botan/src/tests/test_lmots.cpp:37,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lmots.cpp:37,1
    - Dst: Botan::LMOTS_K
      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: get_req_bin
      Src: /src/botan/src/tests/test_lmots.cpp:40,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_lmots.cpp:42,1
    - Dst: static_cast<Botan::LMOTS_Algorithm_Type>
      Src: /src/botan/src/tests/test_lmots.cpp:44,1
    - Dst: Botan::LMOTS_Params::create_or_throw
      Src: /src/botan/src/tests/test_lmots.cpp:45,1
    - Dst: Botan::LMOTS_Private_Key
      Src: /src/botan/src/tests/test_lmots.cpp:48,1
    - Dst: Botan::LMOTS_Public_Key
      Src: /src/botan/src/tests/test_lmots.cpp:49,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_lmots.cpp:50,1
    - Dst: auto::K
      Src: /src/botan/src/tests/test_lmots.cpp:50,1
    - Dst: auto::sign
      Src: /src/botan/src/tests/test_lmots.cpp:54,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_lmots.cpp:55,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_lmots.cpp:55,1
    - Dst: Botan::BufferSlicer::BufferSlicer
      Src: /src/botan/src/tests/test_lmots.cpp:58,1
    - Dst: Botan::LMOTS_Signature::from_bytes_or_throw
      Src: /src/botan/src/tests/test_lmots.cpp:59,1
    - Dst: Botan::lmots_compute_pubkey_from_sig
      Src: /src/botan/src/tests/test_lmots.cpp:60,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_lmots.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 64
    functionName: Botan_Tests::LMOTS_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_lmots.cpp
    functionUses: 0
    functionsReached:
    - Botan::LMS_Message
    - Botan::HashFunction::create
    - Botan::LMOTS_Params::create_or_throw
    - Test::Result::test_is_eq
    - Botan::BufferSlicer::BufferSlicer
    - Botan::LMS_Identifier
    - Botan::LMOTS_Private_Key
    - get_req_bin
    - Botan::LMS_Tree_Node_Idx
    - Botan::LMS_Seed
    - auto::K
    - Botan::lmots_compute_pubkey_from_sig
    - auto::process
    - static_cast<Botan::LMOTS_Algorithm_Type>
    - Botan::LMOTS_Signature::from_bytes_or_throw
    - get_req_u32
    - Botan::LMOTS_Public_Key
    - auto::sign
    - Botan::LMOTS_K
    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: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    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:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    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:33,1
    - Dst: Botan::LMS_Seed
      Src: /src/botan/src/tests/test_lmots.cpp:34,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lmots.cpp:34,1
    - Dst: Botan::LMS_Identifier
      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_Tree_Node_Idx
      Src: /src/botan/src/tests/test_lmots.cpp:36,1
    - Dst: get_req_u32
      Src: /src/botan/src/tests/test_lmots.cpp:36,1
    - Dst: Botan::LMS_Message
      Src: /src/botan/src/tests/test_lmots.cpp:37,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lmots.cpp:37,1
    - Dst: Botan::LMOTS_K
      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: get_req_bin
      Src: /src/botan/src/tests/test_lmots.cpp:40,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_lmots.cpp:42,1
    - Dst: static_cast<Botan::LMOTS_Algorithm_Type>
      Src: /src/botan/src/tests/test_lmots.cpp:44,1
    - Dst: Botan::LMOTS_Params::create_or_throw
      Src: /src/botan/src/tests/test_lmots.cpp:45,1
    - Dst: Botan::LMOTS_Private_Key
      Src: /src/botan/src/tests/test_lmots.cpp:48,1
    - Dst: Botan::LMOTS_Public_Key
      Src: /src/botan/src/tests/test_lmots.cpp:49,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_lmots.cpp:50,1
    - Dst: auto::K
      Src: /src/botan/src/tests/test_lmots.cpp:50,1
    - Dst: auto::sign
      Src: /src/botan/src/tests/test_lmots.cpp:54,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_lmots.cpp:55,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_lmots.cpp:55,1
    - Dst: Botan::BufferSlicer::BufferSlicer
      Src: /src/botan/src/tests/test_lmots.cpp:58,1
    - Dst: Botan::LMOTS_Signature::from_bytes_or_throw
      Src: /src/botan/src/tests/test_lmots.cpp:59,1
    - Dst: Botan::lmots_compute_pubkey_from_sig
      Src: /src/botan/src/tests/test_lmots.cpp:60,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_lmots.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 64
    functionName: Botan_Tests::LMOTS_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_lmots.cpp
    functionUses: 0
    functionsReached:
    - Botan::LMS_Message
    - Botan::HashFunction::create
    - Botan::LMOTS_Params::create_or_throw
    - Test::Result::test_is_eq
    - Botan::BufferSlicer::BufferSlicer
    - Botan::LMS_Identifier
    - Botan::LMOTS_Private_Key
    - get_req_bin
    - Botan::LMS_Tree_Node_Idx
    - Botan::LMS_Seed
    - auto::K
    - Botan::lmots_compute_pubkey_from_sig
    - auto::process
    - static_cast<Botan::LMOTS_Algorithm_Type>
    - Botan::LMOTS_Signature::from_bytes_or_throw
    - get_req_u32
    - Botan::LMOTS_Public_Key
    - auto::sign
    - Botan::LMOTS_K
    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: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    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:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    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:33,1
    - Dst: Botan::LMS_Seed
      Src: /src/botan/src/tests/test_lmots.cpp:34,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lmots.cpp:34,1
    - Dst: Botan::LMS_Identifier
      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_Tree_Node_Idx
      Src: /src/botan/src/tests/test_lmots.cpp:36,1
    - Dst: get_req_u32
      Src: /src/botan/src/tests/test_lmots.cpp:36,1
    - Dst: Botan::LMS_Message
      Src: /src/botan/src/tests/test_lmots.cpp:37,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_lmots.cpp:37,1
    - Dst: Botan::LMOTS_K
      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: get_req_bin
      Src: /src/botan/src/tests/test_lmots.cpp:40,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/tests/test_lmots.cpp:42,1
    - Dst: static_cast<Botan::LMOTS_Algorithm_Type>
      Src: /src/botan/src/tests/test_lmots.cpp:44,1
    - Dst: Botan::LMOTS_Params::create_or_throw
      Src: /src/botan/src/tests/test_lmots.cpp:45,1
    - Dst: Botan::LMOTS_Private_Key
      Src: /src/botan/src/tests/test_lmots.cpp:48,1
    - Dst: Botan::LMOTS_Public_Key
      Src: /src/botan/src/tests/test_lmots.cpp:49,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_lmots.cpp:50,1
    - Dst: auto::K
      Src: /src/botan/src/tests/test_lmots.cpp:50,1
    - Dst: auto::sign
      Src: /src/botan/src/tests/test_lmots.cpp:54,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_lmots.cpp:55,1
    - Dst: auto::process
      Src: /src/botan/src/tests/test_lmots.cpp:55,1
    - Dst: Botan::BufferSlicer::BufferSlicer
      Src: /src/botan/src/tests/test_lmots.cpp:58,1
    - Dst: Botan::LMOTS_Signature::from_bytes_or_throw
      Src: /src/botan/src/tests/test_lmots.cpp:59,1
    - Dst: Botan::lmots_compute_pubkey_from_sig
      Src: /src/botan/src/tests/test_lmots.cpp:60,1
    - Dst: Test::Result::test_is_eq
      Src: /src/botan/src/tests/test_lmots.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' vars'
    argTypes:
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 64
    functionName: Botan_Tests::LMOTS_Test::run_one_test
    functionSourceFile: /src/botan/src/tests/test_lmots.cpp
    functionUses: 0
    functionsReached:
    - Botan::LMS_Message
    - Botan::HashFunction::create
    - Botan::LMOTS_Params::create_or_throw
    - Test::Result::test_is_eq
    - Botan::BufferSlicer::BufferSlicer
    - Botan::LMS_Identifier
    - Botan::LMOTS_Private_Key
    - get_req_bin
    - Botan::LMS_Tree_Node_Idx
    - Botan::LMS_Seed
    - auto::K
    - Botan::lmots_compute_pubkey_from_sig
    - auto::process
    - static_cast<Botan::LMOTS_Algorithm_Type>
    - Botan::LMOTS_Signature::from_bytes_or_throw
    - get_req_u32
    - Botan::LMOTS_Public_Key
    - auto::sign
    - Botan::LMOTS_K
    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_is_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::hex_decode
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:32,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:35,1
    - Dst: Botan::Sphincs_Address::set_layer_address
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:38,1
    - Dst: Botan::HypertreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:38,1
    - Dst: Botan::XmssTreeIndexInLayer
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:39,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:40,1
    - Dst: Botan::WotsChainIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:41,1
    - Dst: Botan::WotsHashIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:42,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:44,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:45,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:46,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:49,1
    - Dst: Botan::Sphincs_Address::set_layer_address
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:52,1
    - Dst: Botan::HypertreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:52,1
    - Dst: Botan::XmssTreeIndexInLayer
      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: Botan::TreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:55,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:56,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:57,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:58,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:59,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:62,1
    - Dst: Botan::Sphincs_Address::set_layer_address
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:65,1
    - Dst: Botan::HypertreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:65,1
    - Dst: Botan::XmssTreeIndexInLayer
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:66,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:67,1
    - Dst: Botan::TreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:68,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:69,1
    - Dst: Botan::as_subtree_from
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:71,1
    - Dst: Botan::Sphincs_Address::copy_subtree_from
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:73,1
    - Dst: test_is_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::hex_decode
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:77,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:78,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:79,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:80,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:83,1
    - Dst: Botan::Sphincs_Address::set_layer_address
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:86,1
    - Dst: Botan::HypertreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:86,1
    - Dst: Botan::XmssTreeIndexInLayer
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:87,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:88,1
    - Dst: Botan::WotsChainIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:89,1
    - Dst: Botan::WotsHashIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:90,1
    - Dst: Botan::as_keypair_from
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:92,1
    - Dst: Botan::Sphincs_Address::copy_keypair_from
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:94,1
    - Dst: test_is_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
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:98,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:99,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:100,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 19
    functionDepth: 3
    functionLinenumber: 19
    functionLinenumberEnd: 104
    functionName: Botan_Tests::test_sphincsplus_address
    functionSourceFile: /src/botan/src/tests/test_sphincsplus_utils.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - Botan::hex_decode
    - Botan::WotsChainIndex
    - sha256
    - Botan::WotsHashIndex
    - Botan::as_subtree_from
    - Botan_Tests::CHECK
    - Botan::as_keypair_from
    - Botan::Sphincs_Address::copy_keypair_from
    - Botan::HashFunction::create_or_throw
    - Botan::TreeLayerIndex
    - Botan::Sphincs_Address::copy_subtree_from
    - Botan::Sphincs_Address::set_layer_address
    - auto::final_stdvec
    - Botan::HypertreeLayerIndex
    - to_bytes
    - Botan::XmssTreeIndexInLayer
    - Botan::TreeNodeIndex
    - test_is_eq
    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_is_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::hex_decode
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:32,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:35,1
    - Dst: Botan::Sphincs_Address::set_layer_address
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:38,1
    - Dst: Botan::HypertreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:38,1
    - Dst: Botan::XmssTreeIndexInLayer
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:39,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:40,1
    - Dst: Botan::WotsChainIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:41,1
    - Dst: Botan::WotsHashIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:42,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:44,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:45,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:46,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:49,1
    - Dst: Botan::Sphincs_Address::set_layer_address
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:52,1
    - Dst: Botan::HypertreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:52,1
    - Dst: Botan::XmssTreeIndexInLayer
      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: Botan::TreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:55,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:56,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:57,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:58,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:59,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:62,1
    - Dst: Botan::Sphincs_Address::set_layer_address
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:65,1
    - Dst: Botan::HypertreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:65,1
    - Dst: Botan::XmssTreeIndexInLayer
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:66,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:67,1
    - Dst: Botan::TreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:68,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:69,1
    - Dst: Botan::as_subtree_from
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:71,1
    - Dst: Botan::Sphincs_Address::copy_subtree_from
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:73,1
    - Dst: test_is_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::hex_decode
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:77,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:78,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:79,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:80,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:83,1
    - Dst: Botan::Sphincs_Address::set_layer_address
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:86,1
    - Dst: Botan::HypertreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:86,1
    - Dst: Botan::XmssTreeIndexInLayer
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:87,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:88,1
    - Dst: Botan::WotsChainIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:89,1
    - Dst: Botan::WotsHashIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:90,1
    - Dst: Botan::as_keypair_from
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:92,1
    - Dst: Botan::Sphincs_Address::copy_keypair_from
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:94,1
    - Dst: test_is_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
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:98,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:99,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:100,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 19
    functionDepth: 3
    functionLinenumber: 19
    functionLinenumberEnd: 104
    functionName: Botan_Tests::test_sphincsplus_address
    functionSourceFile: /src/botan/src/tests/test_sphincsplus_utils.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - Botan::hex_decode
    - Botan::WotsChainIndex
    - sha256
    - Botan::WotsHashIndex
    - Botan::as_subtree_from
    - Botan_Tests::CHECK
    - Botan::as_keypair_from
    - Botan::Sphincs_Address::copy_keypair_from
    - Botan::HashFunction::create_or_throw
    - Botan::TreeLayerIndex
    - Botan::Sphincs_Address::copy_subtree_from
    - Botan::Sphincs_Address::set_layer_address
    - auto::final_stdvec
    - Botan::HypertreeLayerIndex
    - to_bytes
    - Botan::XmssTreeIndexInLayer
    - Botan::TreeNodeIndex
    - test_is_eq
    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_is_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::hex_decode
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:32,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:35,1
    - Dst: Botan::Sphincs_Address::set_layer_address
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:38,1
    - Dst: Botan::HypertreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:38,1
    - Dst: Botan::XmssTreeIndexInLayer
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:39,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:40,1
    - Dst: Botan::WotsChainIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:41,1
    - Dst: Botan::WotsHashIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:42,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:44,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:45,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:46,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:49,1
    - Dst: Botan::Sphincs_Address::set_layer_address
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:52,1
    - Dst: Botan::HypertreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:52,1
    - Dst: Botan::XmssTreeIndexInLayer
      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: Botan::TreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:55,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:56,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:57,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:58,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:59,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:62,1
    - Dst: Botan::Sphincs_Address::set_layer_address
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:65,1
    - Dst: Botan::HypertreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:65,1
    - Dst: Botan::XmssTreeIndexInLayer
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:66,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:67,1
    - Dst: Botan::TreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:68,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:69,1
    - Dst: Botan::as_subtree_from
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:71,1
    - Dst: Botan::Sphincs_Address::copy_subtree_from
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:73,1
    - Dst: test_is_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::hex_decode
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:77,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:78,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:79,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:80,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:83,1
    - Dst: Botan::Sphincs_Address::set_layer_address
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:86,1
    - Dst: Botan::HypertreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:86,1
    - Dst: Botan::XmssTreeIndexInLayer
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:87,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:88,1
    - Dst: Botan::WotsChainIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:89,1
    - Dst: Botan::WotsHashIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:90,1
    - Dst: Botan::as_keypair_from
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:92,1
    - Dst: Botan::Sphincs_Address::copy_keypair_from
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:94,1
    - Dst: test_is_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
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:98,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:99,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:100,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 19
    functionDepth: 3
    functionLinenumber: 19
    functionLinenumberEnd: 104
    functionName: Botan_Tests::test_sphincsplus_address
    functionSourceFile: /src/botan/src/tests/test_sphincsplus_utils.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - Botan::hex_decode
    - Botan::WotsChainIndex
    - sha256
    - Botan::WotsHashIndex
    - Botan::as_subtree_from
    - Botan_Tests::CHECK
    - Botan::as_keypair_from
    - Botan::Sphincs_Address::copy_keypair_from
    - Botan::HashFunction::create_or_throw
    - Botan::TreeLayerIndex
    - Botan::Sphincs_Address::copy_subtree_from
    - Botan::Sphincs_Address::set_layer_address
    - auto::final_stdvec
    - Botan::HypertreeLayerIndex
    - to_bytes
    - Botan::XmssTreeIndexInLayer
    - Botan::TreeNodeIndex
    - test_is_eq
    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_is_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::hex_decode
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:32,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:35,1
    - Dst: Botan::Sphincs_Address::set_layer_address
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:38,1
    - Dst: Botan::HypertreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:38,1
    - Dst: Botan::XmssTreeIndexInLayer
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:39,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:40,1
    - Dst: Botan::WotsChainIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:41,1
    - Dst: Botan::WotsHashIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:42,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:44,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:45,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:46,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:49,1
    - Dst: Botan::Sphincs_Address::set_layer_address
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:52,1
    - Dst: Botan::HypertreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:52,1
    - Dst: Botan::XmssTreeIndexInLayer
      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: Botan::TreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:55,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:56,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:57,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:58,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:59,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:62,1
    - Dst: Botan::Sphincs_Address::set_layer_address
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:65,1
    - Dst: Botan::HypertreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:65,1
    - Dst: Botan::XmssTreeIndexInLayer
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:66,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:67,1
    - Dst: Botan::TreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:68,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:69,1
    - Dst: Botan::as_subtree_from
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:71,1
    - Dst: Botan::Sphincs_Address::copy_subtree_from
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:73,1
    - Dst: test_is_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::hex_decode
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:77,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:78,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:79,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:80,1
    - Dst: Botan_Tests::CHECK
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:83,1
    - Dst: Botan::Sphincs_Address::set_layer_address
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:86,1
    - Dst: Botan::HypertreeLayerIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:86,1
    - Dst: Botan::XmssTreeIndexInLayer
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:87,1
    - Dst: Botan::TreeNodeIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:88,1
    - Dst: Botan::WotsChainIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:89,1
    - Dst: Botan::WotsHashIndex
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:90,1
    - Dst: Botan::as_keypair_from
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:92,1
    - Dst: Botan::Sphincs_Address::copy_keypair_from
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:94,1
    - Dst: test_is_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
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:98,1
    - Dst: test_is_eq
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:99,1
    - Dst: sha256
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:100,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/test_sphincsplus_utils.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 19
    functionDepth: 3
    functionLinenumber: 19
    functionLinenumberEnd: 104
    functionName: Botan_Tests::test_sphincsplus_address
    functionSourceFile: /src/botan/src/tests/test_sphincsplus_utils.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - Botan::hex_decode
    - Botan::WotsChainIndex
    - sha256
    - Botan::WotsHashIndex
    - Botan::as_subtree_from
    - Botan_Tests::CHECK
    - Botan::as_keypair_from
    - Botan::Sphincs_Address::copy_keypair_from
    - Botan::HashFunction::create_or_throw
    - Botan::TreeLayerIndex
    - Botan::Sphincs_Address::copy_subtree_from
    - Botan::Sphincs_Address::set_layer_address
    - auto::final_stdvec
    - Botan::HypertreeLayerIndex
    - to_bytes
    - Botan::XmssTreeIndexInLayer
    - Botan::TreeNodeIndex
    - test_is_eq
    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: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    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:28,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dlies.cpp:29,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_dlies.cpp:31,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_dlies.cpp:32,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_dlies.cpp:34,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_dlies.cpp:35,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_dlies.cpp:36,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_dlies.cpp:37,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_dlies.cpp:39,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_dlies.cpp:39,1
    - Dst: Botan::KDF::create
      Src: /src/botan/src/tests/test_dlies.cpp:43,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_dlies.cpp:45,1
    - Dst: Botan_CLI::tls_proxy_session::create
      Src: /src/botan/src/tests/test_dlies.cpp:49,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_dlies.cpp:51,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_dlies.cpp:60,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_dlies.cpp:61,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_dlies.cpp:64,1
    - Dst: std::unique_ptr::key_spec
      Src: /src/botan/src/tests/test_dlies.cpp:68,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_dlies.cpp:71,1
    - Dst: Botan_Tests::DLIES_KAT_Tests::rng
      Src: /src/botan/src/tests/test_dlies.cpp:77,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:77,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_dlies.cpp:77,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:77,1
    - Dst: Botan_Tests::DLIES_KAT_Tests::rng
      Src: /src/botan/src/tests/test_dlies.cpp:79,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_dlies.cpp:79,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_dlies.cpp:79,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_dlies.cpp:79,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_dlies.cpp:81,1
    - Dst: Botan::DLIES_Encryptor::set_initialization_vector
      Src: /src/botan/src/tests/test_dlies.cpp:82,1
    - Dst: Botan::DLIES_Decryptor::set_initialization_vector
      Src: /src/botan/src/tests/test_dlies.cpp:83,1
    - Dst: Botan::DLIES_Encryptor::set_other_key
      Src: /src/botan/src/tests/test_dlies.cpp:86,1
    - Dst: Botan::DH_PrivateKey::public_value
      Src: /src/botan/src/tests/test_dlies.cpp:86,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dlies.cpp:88,1
    - Dst: Botan::DLIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_dlies.cpp:88,1
    - Dst: Botan_Tests::DLIES_KAT_Tests::rng
      Src: /src/botan/src/tests/test_dlies.cpp:88,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dlies.cpp:89,1
    - Dst: Botan::DLIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_dlies.cpp:89,1
    - Dst: check_invalid_ciphertexts
      Src: /src/botan/src/tests/test_dlies.cpp:91,1
    - Dst: Botan_Tests::DLIES_KAT_Tests::rng
      Src: /src/botan/src/tests/test_dlies.cpp:91,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - ' cipher_algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 94
    functionName: Botan_Tests::DLIES_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_dlies.cpp
    functionUses: 0
    functionsReached:
    - auto::empty
    - Botan::InitializationVector
    - Botan::DH_PrivateKey::public_value
    - Botan::DLIES_Encryptor::set_initialization_vector
    - Botan::DLIES_Decryptor::decrypt
    - Botan::Cipher_Mode::create
    - check_invalid_ciphertexts
    - Botan_CLI::tls_proxy_session::create
    - Botan::DL_Group::from_name
    - get_req_sz
    - Botan::DLIES_Encryptor::set_other_key
    - get_req_bin
    - Botan_Tests::DLIES_KAT_Tests::rng
    - std::unique_ptr::key_spec
    - Botan::DLIES_Decryptor::set_initialization_vector
    - auto::new_object
    - get_req_str
    - Test::Result::test_note
    - std::move
    - Botan::KDF::create
    - get_opt_bin
    - Test::Result::test_eq
    - Botan::DLIES_Encryptor::encrypt
    - get_req_bn
    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:110,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_dlies.cpp:112,1
    - Dst: Botan::KDF::create
      Src: /src/botan/src/tests/test_dlies.cpp:118,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_dlies.cpp:121,1
    - Dst: Botan_CLI::tls_proxy_session::create
      Src: /src/botan/src/tests/test_dlies.cpp:126,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_dlies.cpp:129,1
    - Dst: std::unique_ptr::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:133,1
    - Dst: std::unique_ptr::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:133,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_dlies.cpp:136,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dlies.cpp:138,1
    - Dst: Botan::DLIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_dlies.cpp:139,1
    - Dst: Botan::DLIES_Encryptor::set_other_key
      Src: /src/botan/src/tests/test_dlies.cpp:141,1
    - Dst: Botan::DH_PrivateKey::public_value
      Src: /src/botan/src/tests/test_dlies.cpp:141,1
    - Dst: Botan::DLIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_dlies.cpp:142,1
    - Dst: std::unique_ptr::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:144,1
    - Dst: std::unique_ptr::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:144,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dlies.cpp:147,1
    - Dst: Botan::DLIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_dlies.cpp:147,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_dlies.cpp:147,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dlies.cpp:149,1
    - Dst: Botan::DLIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_dlies.cpp:149,1
    - Dst: Botan_Tests::check_invalid_ciphertexts
      Src: /src/botan/src/tests/test_dlies.cpp:151,1
    - Dst: unlock
      Src: /src/botan/src/tests/test_dlies.cpp:151,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 156
    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
    - Botan::KDF::create
    - Botan::DH_PrivateKey::public_value
    - Botan_CLI::tls_proxy_session::create
    - auto::random_vec
    - Botan::DL_Group::from_name
    - Botan::DLIES_Encryptor::set_other_key
    - Test::Result::test_eq
    - Botan::DLIES_Decryptor::decrypt
    - Botan_Tests::check_invalid_ciphertexts
    - std::vector<uint8_t>
    - Botan::DLIES_Encryptor::encrypt
    - unlock
    - Botan_Tests::Test::new_rng
    - Test::Result::test_note
    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:165,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_dlies.cpp:167,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_dlies.cpp:169,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_dlies.cpp:169,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_dlies.cpp:169,1
    - Dst: what
      Src: /src/botan/src/tests/test_dlies.cpp:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 174
    functionName: Botan_Tests::DLIES_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/test_dlies.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - std::to_string
    - 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: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    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:28,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dlies.cpp:29,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_dlies.cpp:31,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_dlies.cpp:32,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_dlies.cpp:34,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_dlies.cpp:35,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_dlies.cpp:36,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_dlies.cpp:37,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_dlies.cpp:39,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_dlies.cpp:39,1
    - Dst: Botan::KDF::create
      Src: /src/botan/src/tests/test_dlies.cpp:43,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_dlies.cpp:45,1
    - Dst: Botan_CLI::tls_proxy_session::create
      Src: /src/botan/src/tests/test_dlies.cpp:49,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_dlies.cpp:51,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_dlies.cpp:60,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_dlies.cpp:61,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_dlies.cpp:64,1
    - Dst: std::unique_ptr::key_spec
      Src: /src/botan/src/tests/test_dlies.cpp:68,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_dlies.cpp:71,1
    - Dst: Botan_Tests::DLIES_KAT_Tests::rng
      Src: /src/botan/src/tests/test_dlies.cpp:77,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:77,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_dlies.cpp:77,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:77,1
    - Dst: Botan_Tests::DLIES_KAT_Tests::rng
      Src: /src/botan/src/tests/test_dlies.cpp:79,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_dlies.cpp:79,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_dlies.cpp:79,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_dlies.cpp:79,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_dlies.cpp:81,1
    - Dst: Botan::DLIES_Encryptor::set_initialization_vector
      Src: /src/botan/src/tests/test_dlies.cpp:82,1
    - Dst: Botan::DLIES_Decryptor::set_initialization_vector
      Src: /src/botan/src/tests/test_dlies.cpp:83,1
    - Dst: Botan::DLIES_Encryptor::set_other_key
      Src: /src/botan/src/tests/test_dlies.cpp:86,1
    - Dst: Botan::DH_PrivateKey::public_value
      Src: /src/botan/src/tests/test_dlies.cpp:86,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dlies.cpp:88,1
    - Dst: Botan::DLIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_dlies.cpp:88,1
    - Dst: Botan_Tests::DLIES_KAT_Tests::rng
      Src: /src/botan/src/tests/test_dlies.cpp:88,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dlies.cpp:89,1
    - Dst: Botan::DLIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_dlies.cpp:89,1
    - Dst: check_invalid_ciphertexts
      Src: /src/botan/src/tests/test_dlies.cpp:91,1
    - Dst: Botan_Tests::DLIES_KAT_Tests::rng
      Src: /src/botan/src/tests/test_dlies.cpp:91,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - ' cipher_algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 94
    functionName: Botan_Tests::DLIES_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_dlies.cpp
    functionUses: 0
    functionsReached:
    - auto::empty
    - Botan::InitializationVector
    - Botan::DH_PrivateKey::public_value
    - Botan::DLIES_Encryptor::set_initialization_vector
    - Botan::DLIES_Decryptor::decrypt
    - Botan::Cipher_Mode::create
    - check_invalid_ciphertexts
    - Botan_CLI::tls_proxy_session::create
    - Botan::DL_Group::from_name
    - get_req_sz
    - Botan::DLIES_Encryptor::set_other_key
    - get_req_bin
    - Botan_Tests::DLIES_KAT_Tests::rng
    - std::unique_ptr::key_spec
    - Botan::DLIES_Decryptor::set_initialization_vector
    - auto::new_object
    - get_req_str
    - Test::Result::test_note
    - std::move
    - Botan::KDF::create
    - get_opt_bin
    - Test::Result::test_eq
    - Botan::DLIES_Encryptor::encrypt
    - get_req_bn
    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:110,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_dlies.cpp:112,1
    - Dst: Botan::KDF::create
      Src: /src/botan/src/tests/test_dlies.cpp:118,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_dlies.cpp:121,1
    - Dst: Botan_CLI::tls_proxy_session::create
      Src: /src/botan/src/tests/test_dlies.cpp:126,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_dlies.cpp:129,1
    - Dst: std::unique_ptr::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:133,1
    - Dst: std::unique_ptr::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:133,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_dlies.cpp:136,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dlies.cpp:138,1
    - Dst: Botan::DLIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_dlies.cpp:139,1
    - Dst: Botan::DLIES_Encryptor::set_other_key
      Src: /src/botan/src/tests/test_dlies.cpp:141,1
    - Dst: Botan::DH_PrivateKey::public_value
      Src: /src/botan/src/tests/test_dlies.cpp:141,1
    - Dst: Botan::DLIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_dlies.cpp:142,1
    - Dst: std::unique_ptr::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:144,1
    - Dst: std::unique_ptr::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:144,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dlies.cpp:147,1
    - Dst: Botan::DLIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_dlies.cpp:147,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_dlies.cpp:147,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dlies.cpp:149,1
    - Dst: Botan::DLIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_dlies.cpp:149,1
    - Dst: Botan_Tests::check_invalid_ciphertexts
      Src: /src/botan/src/tests/test_dlies.cpp:151,1
    - Dst: unlock
      Src: /src/botan/src/tests/test_dlies.cpp:151,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 156
    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
    - Botan::KDF::create
    - Botan::DH_PrivateKey::public_value
    - Botan_CLI::tls_proxy_session::create
    - auto::random_vec
    - Botan::DL_Group::from_name
    - Botan::DLIES_Encryptor::set_other_key
    - Test::Result::test_eq
    - Botan::DLIES_Decryptor::decrypt
    - Botan_Tests::check_invalid_ciphertexts
    - std::vector<uint8_t>
    - Botan::DLIES_Encryptor::encrypt
    - unlock
    - Botan_Tests::Test::new_rng
    - Test::Result::test_note
    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:165,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_dlies.cpp:167,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_dlies.cpp:169,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_dlies.cpp:169,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_dlies.cpp:169,1
    - Dst: what
      Src: /src/botan/src/tests/test_dlies.cpp:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 174
    functionName: Botan_Tests::DLIES_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/test_dlies.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - std::to_string
    - 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: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    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:28,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dlies.cpp:29,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_dlies.cpp:31,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_dlies.cpp:32,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_dlies.cpp:34,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_dlies.cpp:35,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_dlies.cpp:36,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_dlies.cpp:37,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_dlies.cpp:39,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_dlies.cpp:39,1
    - Dst: Botan::KDF::create
      Src: /src/botan/src/tests/test_dlies.cpp:43,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_dlies.cpp:45,1
    - Dst: Botan_CLI::tls_proxy_session::create
      Src: /src/botan/src/tests/test_dlies.cpp:49,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_dlies.cpp:51,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_dlies.cpp:60,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_dlies.cpp:61,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_dlies.cpp:64,1
    - Dst: std::unique_ptr::key_spec
      Src: /src/botan/src/tests/test_dlies.cpp:68,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_dlies.cpp:71,1
    - Dst: Botan_Tests::DLIES_KAT_Tests::rng
      Src: /src/botan/src/tests/test_dlies.cpp:77,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:77,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_dlies.cpp:77,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:77,1
    - Dst: Botan_Tests::DLIES_KAT_Tests::rng
      Src: /src/botan/src/tests/test_dlies.cpp:79,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_dlies.cpp:79,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_dlies.cpp:79,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_dlies.cpp:79,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_dlies.cpp:81,1
    - Dst: Botan::DLIES_Encryptor::set_initialization_vector
      Src: /src/botan/src/tests/test_dlies.cpp:82,1
    - Dst: Botan::DLIES_Decryptor::set_initialization_vector
      Src: /src/botan/src/tests/test_dlies.cpp:83,1
    - Dst: Botan::DLIES_Encryptor::set_other_key
      Src: /src/botan/src/tests/test_dlies.cpp:86,1
    - Dst: Botan::DH_PrivateKey::public_value
      Src: /src/botan/src/tests/test_dlies.cpp:86,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dlies.cpp:88,1
    - Dst: Botan::DLIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_dlies.cpp:88,1
    - Dst: Botan_Tests::DLIES_KAT_Tests::rng
      Src: /src/botan/src/tests/test_dlies.cpp:88,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dlies.cpp:89,1
    - Dst: Botan::DLIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_dlies.cpp:89,1
    - Dst: check_invalid_ciphertexts
      Src: /src/botan/src/tests/test_dlies.cpp:91,1
    - Dst: Botan_Tests::DLIES_KAT_Tests::rng
      Src: /src/botan/src/tests/test_dlies.cpp:91,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - ' cipher_algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 94
    functionName: Botan_Tests::DLIES_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_dlies.cpp
    functionUses: 0
    functionsReached:
    - auto::empty
    - Botan::InitializationVector
    - Botan::DH_PrivateKey::public_value
    - Botan::DLIES_Encryptor::set_initialization_vector
    - Botan::DLIES_Decryptor::decrypt
    - Botan::Cipher_Mode::create
    - check_invalid_ciphertexts
    - Botan_CLI::tls_proxy_session::create
    - Botan::DL_Group::from_name
    - get_req_sz
    - Botan::DLIES_Encryptor::set_other_key
    - get_req_bin
    - Botan_Tests::DLIES_KAT_Tests::rng
    - std::unique_ptr::key_spec
    - Botan::DLIES_Decryptor::set_initialization_vector
    - auto::new_object
    - get_req_str
    - Test::Result::test_note
    - std::move
    - Botan::KDF::create
    - get_opt_bin
    - Test::Result::test_eq
    - Botan::DLIES_Encryptor::encrypt
    - get_req_bn
    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:110,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_dlies.cpp:112,1
    - Dst: Botan::KDF::create
      Src: /src/botan/src/tests/test_dlies.cpp:118,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_dlies.cpp:121,1
    - Dst: Botan_CLI::tls_proxy_session::create
      Src: /src/botan/src/tests/test_dlies.cpp:126,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_dlies.cpp:129,1
    - Dst: std::unique_ptr::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:133,1
    - Dst: std::unique_ptr::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:133,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_dlies.cpp:136,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dlies.cpp:138,1
    - Dst: Botan::DLIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_dlies.cpp:139,1
    - Dst: Botan::DLIES_Encryptor::set_other_key
      Src: /src/botan/src/tests/test_dlies.cpp:141,1
    - Dst: Botan::DH_PrivateKey::public_value
      Src: /src/botan/src/tests/test_dlies.cpp:141,1
    - Dst: Botan::DLIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_dlies.cpp:142,1
    - Dst: std::unique_ptr::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:144,1
    - Dst: std::unique_ptr::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:144,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dlies.cpp:147,1
    - Dst: Botan::DLIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_dlies.cpp:147,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_dlies.cpp:147,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dlies.cpp:149,1
    - Dst: Botan::DLIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_dlies.cpp:149,1
    - Dst: Botan_Tests::check_invalid_ciphertexts
      Src: /src/botan/src/tests/test_dlies.cpp:151,1
    - Dst: unlock
      Src: /src/botan/src/tests/test_dlies.cpp:151,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 156
    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
    - Botan::KDF::create
    - Botan::DH_PrivateKey::public_value
    - Botan_CLI::tls_proxy_session::create
    - auto::random_vec
    - Botan::DL_Group::from_name
    - Botan::DLIES_Encryptor::set_other_key
    - Test::Result::test_eq
    - Botan::DLIES_Decryptor::decrypt
    - Botan_Tests::check_invalid_ciphertexts
    - std::vector<uint8_t>
    - Botan::DLIES_Encryptor::encrypt
    - unlock
    - Botan_Tests::Test::new_rng
    - Test::Result::test_note
    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:165,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_dlies.cpp:167,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_dlies.cpp:169,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_dlies.cpp:169,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_dlies.cpp:169,1
    - Dst: what
      Src: /src/botan/src/tests/test_dlies.cpp:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 174
    functionName: Botan_Tests::DLIES_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/test_dlies.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - std::to_string
    - 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: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    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:28,1
    - Dst: get_req_bn
      Src: /src/botan/src/tests/test_dlies.cpp:29,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_dlies.cpp:31,1
    - Dst: get_req_bin
      Src: /src/botan/src/tests/test_dlies.cpp:32,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_dlies.cpp:34,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_dlies.cpp:35,1
    - Dst: get_req_sz
      Src: /src/botan/src/tests/test_dlies.cpp:36,1
    - Dst: get_req_str
      Src: /src/botan/src/tests/test_dlies.cpp:37,1
    - Dst: Botan::InitializationVector
      Src: /src/botan/src/tests/test_dlies.cpp:39,1
    - Dst: get_opt_bin
      Src: /src/botan/src/tests/test_dlies.cpp:39,1
    - Dst: Botan::KDF::create
      Src: /src/botan/src/tests/test_dlies.cpp:43,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_dlies.cpp:45,1
    - Dst: Botan_CLI::tls_proxy_session::create
      Src: /src/botan/src/tests/test_dlies.cpp:49,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_dlies.cpp:51,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_dlies.cpp:60,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/tests/test_dlies.cpp:61,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_dlies.cpp:64,1
    - Dst: std::unique_ptr::key_spec
      Src: /src/botan/src/tests/test_dlies.cpp:68,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_dlies.cpp:71,1
    - Dst: Botan_Tests::DLIES_KAT_Tests::rng
      Src: /src/botan/src/tests/test_dlies.cpp:77,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:77,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_dlies.cpp:77,1
    - Dst: auto::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:77,1
    - Dst: Botan_Tests::DLIES_KAT_Tests::rng
      Src: /src/botan/src/tests/test_dlies.cpp:79,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_dlies.cpp:79,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_dlies.cpp:79,1
    - Dst: std::move
      Src: /src/botan/src/tests/test_dlies.cpp:79,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_dlies.cpp:81,1
    - Dst: Botan::DLIES_Encryptor::set_initialization_vector
      Src: /src/botan/src/tests/test_dlies.cpp:82,1
    - Dst: Botan::DLIES_Decryptor::set_initialization_vector
      Src: /src/botan/src/tests/test_dlies.cpp:83,1
    - Dst: Botan::DLIES_Encryptor::set_other_key
      Src: /src/botan/src/tests/test_dlies.cpp:86,1
    - Dst: Botan::DH_PrivateKey::public_value
      Src: /src/botan/src/tests/test_dlies.cpp:86,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dlies.cpp:88,1
    - Dst: Botan::DLIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_dlies.cpp:88,1
    - Dst: Botan_Tests::DLIES_KAT_Tests::rng
      Src: /src/botan/src/tests/test_dlies.cpp:88,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dlies.cpp:89,1
    - Dst: Botan::DLIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_dlies.cpp:89,1
    - Dst: check_invalid_ciphertexts
      Src: /src/botan/src/tests/test_dlies.cpp:91,1
    - Dst: Botan_Tests::DLIES_KAT_Tests::rng
      Src: /src/botan/src/tests/test_dlies.cpp:91,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - ' cipher_algo'
    - ' vars'
    argTypes:
    - std::string
    - VarMap
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 94
    functionName: Botan_Tests::DLIES_KAT_Tests::run_one_test
    functionSourceFile: /src/botan/src/tests/test_dlies.cpp
    functionUses: 0
    functionsReached:
    - auto::empty
    - Botan::InitializationVector
    - Botan::DH_PrivateKey::public_value
    - Botan::DLIES_Encryptor::set_initialization_vector
    - Botan::DLIES_Decryptor::decrypt
    - Botan::Cipher_Mode::create
    - check_invalid_ciphertexts
    - Botan_CLI::tls_proxy_session::create
    - Botan::DL_Group::from_name
    - get_req_sz
    - Botan::DLIES_Encryptor::set_other_key
    - get_req_bin
    - Botan_Tests::DLIES_KAT_Tests::rng
    - std::unique_ptr::key_spec
    - Botan::DLIES_Decryptor::set_initialization_vector
    - auto::new_object
    - get_req_str
    - Test::Result::test_note
    - std::move
    - Botan::KDF::create
    - get_opt_bin
    - Test::Result::test_eq
    - Botan::DLIES_Encryptor::encrypt
    - get_req_bn
    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:110,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/tests/test_dlies.cpp:112,1
    - Dst: Botan::KDF::create
      Src: /src/botan/src/tests/test_dlies.cpp:118,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_dlies.cpp:121,1
    - Dst: Botan_CLI::tls_proxy_session::create
      Src: /src/botan/src/tests/test_dlies.cpp:126,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_dlies.cpp:129,1
    - Dst: std::unique_ptr::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:133,1
    - Dst: std::unique_ptr::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:133,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_dlies.cpp:136,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dlies.cpp:138,1
    - Dst: Botan::DLIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_dlies.cpp:139,1
    - Dst: Botan::DLIES_Encryptor::set_other_key
      Src: /src/botan/src/tests/test_dlies.cpp:141,1
    - Dst: Botan::DH_PrivateKey::public_value
      Src: /src/botan/src/tests/test_dlies.cpp:141,1
    - Dst: Botan::DLIES_Encryptor::encrypt
      Src: /src/botan/src/tests/test_dlies.cpp:142,1
    - Dst: std::unique_ptr::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:144,1
    - Dst: std::unique_ptr::new_object
      Src: /src/botan/src/tests/test_dlies.cpp:144,1
    - Dst: Test::Result::test_throws
      Src: /src/botan/src/tests/test_dlies.cpp:147,1
    - Dst: Botan::DLIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_dlies.cpp:147,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_dlies.cpp:147,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_dlies.cpp:149,1
    - Dst: Botan::DLIES_Decryptor::decrypt
      Src: /src/botan/src/tests/test_dlies.cpp:149,1
    - Dst: Botan_Tests::check_invalid_ciphertexts
      Src: /src/botan/src/tests/test_dlies.cpp:151,1
    - Dst: unlock
      Src: /src/botan/src/tests/test_dlies.cpp:151,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 99
    functionDepth: 2
    functionLinenumber: 99
    functionLinenumberEnd: 156
    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
    - Botan::KDF::create
    - Botan::DH_PrivateKey::public_value
    - Botan_CLI::tls_proxy_session::create
    - auto::random_vec
    - Botan::DL_Group::from_name
    - Botan::DLIES_Encryptor::set_other_key
    - Test::Result::test_eq
    - Botan::DLIES_Decryptor::decrypt
    - Botan_Tests::check_invalid_ciphertexts
    - std::vector<uint8_t>
    - Botan::DLIES_Encryptor::encrypt
    - unlock
    - Botan_Tests::Test::new_rng
    - Test::Result::test_note
    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:165,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_dlies.cpp:167,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_dlies.cpp:169,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/test_dlies.cpp:169,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_dlies.cpp:169,1
    - Dst: what
      Src: /src/botan/src/tests/test_dlies.cpp:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 174
    functionName: Botan_Tests::DLIES_Unit_Tests::run
    functionSourceFile: /src/botan/src/tests/test_dlies.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - std::to_string
    - 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:31,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: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    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: 42
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 42
    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: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: '& 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: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    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: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    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:60,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_certstor.cpp:61,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_certstor.cpp:61,1
    - Dst: Botan::Certificate_Store_In_SQLite::insert_key
      Src: /src/botan/src/tests/test_certstor.cpp:66,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:66,1
    - Dst: private_key
      Src: /src/botan/src/tests/test_certstor.cpp:66,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:70,1
    - Dst: private_key
      Src: /src/botan/src/tests/test_certstor.cpp:71,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_cert
      Src: /src/botan/src/tests/test_certstor.cpp:72,1
    - Dst: subject_dn
      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: subject_key_id
      Src: /src/botan/src/tests/test_certstor.cpp:73,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:76,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_key
      Src: /src/botan/src/tests/test_certstor.cpp:80,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:82,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:82,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:86,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:86,1
    - Dst: auto::fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:86,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:89,1
    - Dst: private_key_bits
      Src: /src/botan/src/tests/test_certstor.cpp:89,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_certstor.cpp:89,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_certs_for_key
      Src: /src/botan/src/tests/test_certstor.cpp:91,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor.cpp:93,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:94,1
    - Dst: std::any_of
      Src: /src/botan/src/tests/test_certstor.cpp:97,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_certstor.cpp:97,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_certstor.cpp:97,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:98,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:98,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:101,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:106,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:106,1
    - Dst: auto::fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:106,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:109,1
    - Dst: Botan::Certificate_Store_In_SQLite::remove_cert
      Src: /src/botan/src/tests/test_certstor.cpp:109,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:110,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_cert
      Src: /src/botan/src/tests/test_certstor.cpp:110,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:110,1
    - Dst: subject_key_id
      Src: /src/botan/src/tests/test_certstor.cpp:110,1
    - Dst: Botan::Certificate_Store_In_SQLite::remove_key
      Src: /src/botan/src/tests/test_certstor.cpp:113,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:116,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_key
      Src: /src/botan/src/tests/test_certstor.cpp:116,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:121,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:121,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 1
    argNames:
    - ' certsandkeys'
    argTypes:
    - std::vector<CertificateAndKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 124
    functionName: Botan_Tests::test_certstor_sqlite3_insert_find_remove_test
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - auto::private_key_bits
    - auto::empty
    - private_key
    - Test::Result::test_failure
    - auto::end
    - fingerprint
    - what
    - reinterpret_cast<const char*>
    - Botan::Certificate_Store_In_SQLite::insert_key
    - auto::fingerprint
    - certificate
    - Botan::Certificate_Store_In_SQLite::find_cert
    - Botan_Tests::Test::new_rng
    - subject_dn
    - Botan::Certificate_Store_In_SQLite::remove_key
    - std::any_of
    - private_key_bits
    - auto::begin
    - Botan::Certificate_Store_In_SQLite::remove_cert
    - Botan::Certificate_Store_In_SQLite::find_certs_for_key
    - auto::random_vec
    - Test::Result::test_eq
    - subject_key_id
    - Botan::Certificate_Store_In_SQLite::find_key
    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:129,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_certstor.cpp:130,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_certstor.cpp:130,1
    - Dst: Botan::Certificate_Store_In_SQLite::insert_cert
      Src: /src/botan/src/tests/test_certstor.cpp:135,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:135,1
    - Dst: Botan::Certificate_Store_In_SQLite::revoke_cert
      Src: /src/botan/src/tests/test_certstor.cpp:138,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:138,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::generate_crls
      Src: /src/botan/src/tests/test_certstor.cpp:143,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:145,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:145,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:146,1
    - Dst: is_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:148,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:148,1
    - Dst: is_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:148,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:148,1
    - Dst: Test::Result::test_eq
      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:156,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:156,1
    - Dst: Botan::Certificate_Store_In_SQLite::generate_crls
      Src: /src/botan/src/tests/test_certstor.cpp:159,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:161,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:161,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:162,1
    - Dst: is_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:163,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:163,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_crl_for
      Src: /src/botan/src/tests/test_certstor.cpp:166,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:166,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:168,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:169,1
    - Dst: auto::get_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:169,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:170,1
    - Dst: auto::is_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:171,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:171,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_crl_for
      Src: /src/botan/src/tests/test_certstor.cpp:173,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:173,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:175,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:179,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - ' certsandkeys'
    argTypes:
    - std::vector<CertificateAndKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 182
    functionName: Botan_Tests::test_certstor_sqlite3_crl_test
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_SQLite::affirm_cert
    - is_revoked
    - Botan::Certificate_Store_In_SQLite::insert_cert
    - Botan::Certificate_Store_In_SQLite::find_crl_for
    - auto::random_vec
    - auto::get_revoked
    - Test::Result::test_failure
    - auto::is_revoked
    - Test::Result::test_eq
    - certificate
    - Botan::Certificate_Store_In_SQLite::revoke_cert
    - what
    - reinterpret_cast<const char*>
    - Botan_Tests::Test::new_rng
    - auto::size
    - Botan::Certificate_Store_In_SQLite::generate_crls
    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:187,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_certstor.cpp:188,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_certstor.cpp:188,1
    - Dst: Botan::Certificate_Store_In_SQLite::insert_cert
      Src: /src/botan/src/tests/test_certstor.cpp:193,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:193,1
    - Dst: Botan::Certificate_Store_In_SQLite::all_subjects
      Src: /src/botan/src/tests/test_certstor.cpp:196,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:198,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:198,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_certstor.cpp:201,1
    - Dst: Test::Result::test_eq
      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: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:206,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:206,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:211,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:211,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 1
    argNames:
    - ' certsandkeys'
    argTypes:
    - std::vector<CertificateAndKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 214
    functionName: Botan_Tests::test_certstor_sqlite3_all_subjects_test
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_SQLite::insert_cert
    - auto::random_vec
    - Test::Result::test_failure
    - to_string
    - Test::Result::test_eq
    - certificate
    - what
    - reinterpret_cast<const char*>
    - Botan_Tests::Test::new_rng
    - auto::size
    - subject_dn
    - Botan::Certificate_Store_In_SQLite::all_subjects
    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:219,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_certstor.cpp:220,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_certstor.cpp:220,1
    - Dst: Botan::Certificate_Store_In_SQLite::insert_cert
      Src: /src/botan/src/tests/test_certstor.cpp:225,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:225,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_all_certs
      Src: /src/botan/src/tests/test_certstor.cpp:229,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:229,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:229,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:230,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:231,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:234,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_certstor.cpp:235,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:236,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::X509_Certificate
      Src: /src/botan/src/tests/test_certstor.cpp:243,1
    - Dst: Botan_Tests::Test::data_file
      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:245,1
    - Dst: Botan::Certificate_Store_In_SQLite::insert_cert
      Src: /src/botan/src/tests/test_certstor.cpp:246,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_all_certs
      Src: /src/botan/src/tests/test_certstor.cpp:247,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:247,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:249,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:250,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_certstor.cpp:250,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:250,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:253,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_certstor.cpp:254,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:256,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_certstor.cpp:258,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:259,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:262,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:262,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - ' certsandkeys'
    argTypes:
    - std::vector<CertificateAndKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 266
    functionName: Botan_Tests::test_certstor_sqlite3_find_all_certs_test
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_SQLite::insert_cert
    - auto::at
    - auto::random_vec
    - Botan_Tests::Test::data_file
    - Test::Result::test_failure
    - Test::Result::test_eq
    - certificate
    - Botan::Certificate_Store_In_SQLite::find_all_certs
    - Botan::X509_Certificate::subject_dn
    - std::to_string
    - reinterpret_cast<const char*>
    - Botan_Tests::Test::new_rng
    - what
    - auto::size
    - subject_dn
    - Botan::X509_Certificate
    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:274,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_certstor.cpp:277,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:277,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:281,1
    - Dst: raw_subject_dn_sha256
      Src: /src/botan/src/tests/test_certstor.cpp:285,1
    - Dst: Botan::Certificate_Store_In_Memory::find_cert_by_raw_subject_dn_sha256
      Src: /src/botan/src/tests/test_certstor.cpp:287,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:289,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:289,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:293,1
    - Dst: auto::raw_subject_dn_sha256
      Src: /src/botan/src/tests/test_certstor.cpp:293,1
    - Dst: issuer_dn
      Src: /src/botan/src/tests/test_certstor.cpp:298,1
    - Dst: serial_number
      Src: /src/botan/src/tests/test_certstor.cpp:299,1
    - Dst: Botan::Certificate_Store_In_Memory::find_cert_by_issuer_dn_and_serial_number
      Src: /src/botan/src/tests/test_certstor.cpp:301,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:303,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:303,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:307,1
    - Dst: auto::serial_number
      Src: /src/botan/src/tests/test_certstor.cpp:307,1
    - Dst: Botan::Certificate_Store_In_Memory::find_cert_by_raw_subject_dn_sha256
      Src: /src/botan/src/tests/test_certstor.cpp:311,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor.cpp:311,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:313,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:319,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:319,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - ' certsandkeys'
    argTypes:
    - std::vector<CertificateAndKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 322
    functionName: Botan_Tests::test_certstor_all_finders
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - auto::serial_number
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - raw_subject_dn_sha256
    - Test::Result::test_failure
    - Botan::Certificate_Store_In_Memory::find_cert_by_raw_subject_dn_sha256
    - fingerprint
    - Test::Result::test_eq
    - certificate
    - Botan::Certificate_Store_In_Memory::add_certificate
    - serial_number
    - auto::raw_subject_dn_sha256
    - issuer_dn
    - std::vector<uint8_t>
    - what
    - Botan::Certificate_Store_In_Memory::find_cert_by_issuer_dn_and_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:328,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_certstor.cpp:331,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_certstor.cpp:336,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_certstor.cpp:337,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor.cpp:339,1
    - Dst: Botan::Certificate_Store_In_Memory::find_cert
      Src: /src/botan/src/tests/test_certstor.cpp:339,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:339,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor.cpp:340,1
    - Dst: Botan::Certificate_Store_In_Memory::find_cert
      Src: /src/botan/src/tests/test_certstor.cpp:340,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:340,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:343,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 346
    functionName: Botan_Tests::test_certstor_load_allcert
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_Memory::find_cert
    - Botan_Tests::Test::data_file
    - Test::Result::test_failure
    - Test::Result::confirm
    - Botan_Tests::Test::data_dir
    - Botan::X509_Certificate::subject_dn
    - what
    - Test::Result::test_note
    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:366,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_certstor.cpp:369,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_certstor.cpp:371,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:375,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:379,1
    - Dst: CertificateAndKey
      Src: /src/botan/src/tests/test_certstor.cpp:379,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:384,1
    - Dst: test_certstor_all_finders
      Src: /src/botan/src/tests/test_certstor.cpp:384,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:385,1
    - Dst: test_certstor_load_allcert
      Src: /src/botan/src/tests/test_certstor.cpp:385,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:387,1
    - Dst: test_certstor_sqlite3_insert_find_remove_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_crl_test
      Src: /src/botan/src/tests/test_certstor.cpp:388,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:389,1
    - Dst: test_certstor_sqlite3_all_subjects_test
      Src: /src/botan/src/tests/test_certstor.cpp:389,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:390,1
    - Dst: test_certstor_sqlite3_find_all_certs_test
      Src: /src/botan/src/tests/test_certstor.cpp:390,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 393
    functionName: Botan_Tests::Certstor_Tests::run
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - test_certstor_sqlite3_find_all_certs_test
    - CertificateAndKey
    - std::vector::push_back
    - test_certstor_sqlite3_insert_find_remove_test
    - test_certstor_all_finders
    - test_certstor_sqlite3_all_subjects_test
    - test_certstor_load_allcert
    - Botan_Tests::Test::data_file
    - Test::Result::test_failure
    - test_certstor_sqlite3_crl_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:31,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: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    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: 42
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 42
    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: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: '& 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: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    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: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    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:60,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_certstor.cpp:61,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_certstor.cpp:61,1
    - Dst: Botan::Certificate_Store_In_SQLite::insert_key
      Src: /src/botan/src/tests/test_certstor.cpp:66,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:66,1
    - Dst: private_key
      Src: /src/botan/src/tests/test_certstor.cpp:66,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:70,1
    - Dst: private_key
      Src: /src/botan/src/tests/test_certstor.cpp:71,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_cert
      Src: /src/botan/src/tests/test_certstor.cpp:72,1
    - Dst: subject_dn
      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: subject_key_id
      Src: /src/botan/src/tests/test_certstor.cpp:73,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:76,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_key
      Src: /src/botan/src/tests/test_certstor.cpp:80,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:82,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:82,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:86,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:86,1
    - Dst: auto::fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:86,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:89,1
    - Dst: private_key_bits
      Src: /src/botan/src/tests/test_certstor.cpp:89,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_certstor.cpp:89,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_certs_for_key
      Src: /src/botan/src/tests/test_certstor.cpp:91,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor.cpp:93,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:94,1
    - Dst: std::any_of
      Src: /src/botan/src/tests/test_certstor.cpp:97,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_certstor.cpp:97,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_certstor.cpp:97,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:98,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:98,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:101,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:106,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:106,1
    - Dst: auto::fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:106,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:109,1
    - Dst: Botan::Certificate_Store_In_SQLite::remove_cert
      Src: /src/botan/src/tests/test_certstor.cpp:109,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:110,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_cert
      Src: /src/botan/src/tests/test_certstor.cpp:110,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:110,1
    - Dst: subject_key_id
      Src: /src/botan/src/tests/test_certstor.cpp:110,1
    - Dst: Botan::Certificate_Store_In_SQLite::remove_key
      Src: /src/botan/src/tests/test_certstor.cpp:113,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:116,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_key
      Src: /src/botan/src/tests/test_certstor.cpp:116,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:121,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:121,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 1
    argNames:
    - ' certsandkeys'
    argTypes:
    - std::vector<CertificateAndKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 124
    functionName: Botan_Tests::test_certstor_sqlite3_insert_find_remove_test
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - auto::private_key_bits
    - auto::empty
    - private_key
    - Test::Result::test_failure
    - auto::end
    - fingerprint
    - what
    - reinterpret_cast<const char*>
    - Botan::Certificate_Store_In_SQLite::insert_key
    - auto::fingerprint
    - certificate
    - Botan::Certificate_Store_In_SQLite::find_cert
    - Botan_Tests::Test::new_rng
    - subject_dn
    - Botan::Certificate_Store_In_SQLite::remove_key
    - std::any_of
    - private_key_bits
    - auto::begin
    - Botan::Certificate_Store_In_SQLite::remove_cert
    - Botan::Certificate_Store_In_SQLite::find_certs_for_key
    - auto::random_vec
    - Test::Result::test_eq
    - subject_key_id
    - Botan::Certificate_Store_In_SQLite::find_key
    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:129,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_certstor.cpp:130,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_certstor.cpp:130,1
    - Dst: Botan::Certificate_Store_In_SQLite::insert_cert
      Src: /src/botan/src/tests/test_certstor.cpp:135,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:135,1
    - Dst: Botan::Certificate_Store_In_SQLite::revoke_cert
      Src: /src/botan/src/tests/test_certstor.cpp:138,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:138,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::generate_crls
      Src: /src/botan/src/tests/test_certstor.cpp:143,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:145,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:145,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:146,1
    - Dst: is_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:148,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:148,1
    - Dst: is_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:148,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:148,1
    - Dst: Test::Result::test_eq
      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:156,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:156,1
    - Dst: Botan::Certificate_Store_In_SQLite::generate_crls
      Src: /src/botan/src/tests/test_certstor.cpp:159,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:161,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:161,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:162,1
    - Dst: is_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:163,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:163,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_crl_for
      Src: /src/botan/src/tests/test_certstor.cpp:166,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:166,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:168,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:169,1
    - Dst: auto::get_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:169,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:170,1
    - Dst: auto::is_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:171,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:171,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_crl_for
      Src: /src/botan/src/tests/test_certstor.cpp:173,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:173,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:175,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:179,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - ' certsandkeys'
    argTypes:
    - std::vector<CertificateAndKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 182
    functionName: Botan_Tests::test_certstor_sqlite3_crl_test
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_SQLite::affirm_cert
    - is_revoked
    - Botan::Certificate_Store_In_SQLite::insert_cert
    - Botan::Certificate_Store_In_SQLite::find_crl_for
    - auto::random_vec
    - auto::get_revoked
    - Test::Result::test_failure
    - auto::is_revoked
    - Test::Result::test_eq
    - certificate
    - Botan::Certificate_Store_In_SQLite::revoke_cert
    - what
    - reinterpret_cast<const char*>
    - Botan_Tests::Test::new_rng
    - auto::size
    - Botan::Certificate_Store_In_SQLite::generate_crls
    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:187,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_certstor.cpp:188,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_certstor.cpp:188,1
    - Dst: Botan::Certificate_Store_In_SQLite::insert_cert
      Src: /src/botan/src/tests/test_certstor.cpp:193,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:193,1
    - Dst: Botan::Certificate_Store_In_SQLite::all_subjects
      Src: /src/botan/src/tests/test_certstor.cpp:196,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:198,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:198,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_certstor.cpp:201,1
    - Dst: Test::Result::test_eq
      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: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:206,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:206,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:211,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:211,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 1
    argNames:
    - ' certsandkeys'
    argTypes:
    - std::vector<CertificateAndKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 214
    functionName: Botan_Tests::test_certstor_sqlite3_all_subjects_test
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_SQLite::insert_cert
    - auto::random_vec
    - Test::Result::test_failure
    - to_string
    - Test::Result::test_eq
    - certificate
    - what
    - reinterpret_cast<const char*>
    - Botan_Tests::Test::new_rng
    - auto::size
    - subject_dn
    - Botan::Certificate_Store_In_SQLite::all_subjects
    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:219,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_certstor.cpp:220,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_certstor.cpp:220,1
    - Dst: Botan::Certificate_Store_In_SQLite::insert_cert
      Src: /src/botan/src/tests/test_certstor.cpp:225,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:225,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_all_certs
      Src: /src/botan/src/tests/test_certstor.cpp:229,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:229,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:229,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:230,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:231,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:234,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_certstor.cpp:235,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:236,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::X509_Certificate
      Src: /src/botan/src/tests/test_certstor.cpp:243,1
    - Dst: Botan_Tests::Test::data_file
      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:245,1
    - Dst: Botan::Certificate_Store_In_SQLite::insert_cert
      Src: /src/botan/src/tests/test_certstor.cpp:246,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_all_certs
      Src: /src/botan/src/tests/test_certstor.cpp:247,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:247,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:249,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:250,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_certstor.cpp:250,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:250,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:253,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_certstor.cpp:254,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:256,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_certstor.cpp:258,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:259,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:262,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:262,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - ' certsandkeys'
    argTypes:
    - std::vector<CertificateAndKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 266
    functionName: Botan_Tests::test_certstor_sqlite3_find_all_certs_test
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_SQLite::insert_cert
    - auto::at
    - auto::random_vec
    - Botan_Tests::Test::data_file
    - Test::Result::test_failure
    - Test::Result::test_eq
    - certificate
    - Botan::Certificate_Store_In_SQLite::find_all_certs
    - Botan::X509_Certificate::subject_dn
    - std::to_string
    - reinterpret_cast<const char*>
    - Botan_Tests::Test::new_rng
    - what
    - auto::size
    - subject_dn
    - Botan::X509_Certificate
    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:274,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_certstor.cpp:277,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:277,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:281,1
    - Dst: raw_subject_dn_sha256
      Src: /src/botan/src/tests/test_certstor.cpp:285,1
    - Dst: Botan::Certificate_Store_In_Memory::find_cert_by_raw_subject_dn_sha256
      Src: /src/botan/src/tests/test_certstor.cpp:287,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:289,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:289,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:293,1
    - Dst: auto::raw_subject_dn_sha256
      Src: /src/botan/src/tests/test_certstor.cpp:293,1
    - Dst: issuer_dn
      Src: /src/botan/src/tests/test_certstor.cpp:298,1
    - Dst: serial_number
      Src: /src/botan/src/tests/test_certstor.cpp:299,1
    - Dst: Botan::Certificate_Store_In_Memory::find_cert_by_issuer_dn_and_serial_number
      Src: /src/botan/src/tests/test_certstor.cpp:301,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:303,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:303,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:307,1
    - Dst: auto::serial_number
      Src: /src/botan/src/tests/test_certstor.cpp:307,1
    - Dst: Botan::Certificate_Store_In_Memory::find_cert_by_raw_subject_dn_sha256
      Src: /src/botan/src/tests/test_certstor.cpp:311,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor.cpp:311,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:313,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:319,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:319,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - ' certsandkeys'
    argTypes:
    - std::vector<CertificateAndKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 322
    functionName: Botan_Tests::test_certstor_all_finders
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - auto::serial_number
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - raw_subject_dn_sha256
    - Test::Result::test_failure
    - Botan::Certificate_Store_In_Memory::find_cert_by_raw_subject_dn_sha256
    - fingerprint
    - Test::Result::test_eq
    - certificate
    - Botan::Certificate_Store_In_Memory::add_certificate
    - serial_number
    - auto::raw_subject_dn_sha256
    - issuer_dn
    - std::vector<uint8_t>
    - what
    - Botan::Certificate_Store_In_Memory::find_cert_by_issuer_dn_and_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:328,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_certstor.cpp:331,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_certstor.cpp:336,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_certstor.cpp:337,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor.cpp:339,1
    - Dst: Botan::Certificate_Store_In_Memory::find_cert
      Src: /src/botan/src/tests/test_certstor.cpp:339,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:339,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor.cpp:340,1
    - Dst: Botan::Certificate_Store_In_Memory::find_cert
      Src: /src/botan/src/tests/test_certstor.cpp:340,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:340,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:343,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 346
    functionName: Botan_Tests::test_certstor_load_allcert
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_Memory::find_cert
    - Botan_Tests::Test::data_file
    - Test::Result::test_failure
    - Test::Result::confirm
    - Botan_Tests::Test::data_dir
    - Botan::X509_Certificate::subject_dn
    - what
    - Test::Result::test_note
    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:366,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_certstor.cpp:369,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_certstor.cpp:371,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:375,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:379,1
    - Dst: CertificateAndKey
      Src: /src/botan/src/tests/test_certstor.cpp:379,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:384,1
    - Dst: test_certstor_all_finders
      Src: /src/botan/src/tests/test_certstor.cpp:384,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:385,1
    - Dst: test_certstor_load_allcert
      Src: /src/botan/src/tests/test_certstor.cpp:385,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:387,1
    - Dst: test_certstor_sqlite3_insert_find_remove_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_crl_test
      Src: /src/botan/src/tests/test_certstor.cpp:388,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:389,1
    - Dst: test_certstor_sqlite3_all_subjects_test
      Src: /src/botan/src/tests/test_certstor.cpp:389,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:390,1
    - Dst: test_certstor_sqlite3_find_all_certs_test
      Src: /src/botan/src/tests/test_certstor.cpp:390,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 393
    functionName: Botan_Tests::Certstor_Tests::run
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - test_certstor_sqlite3_find_all_certs_test
    - CertificateAndKey
    - std::vector::push_back
    - test_certstor_sqlite3_insert_find_remove_test
    - test_certstor_all_finders
    - test_certstor_sqlite3_all_subjects_test
    - test_certstor_load_allcert
    - Botan_Tests::Test::data_file
    - Test::Result::test_failure
    - test_certstor_sqlite3_crl_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:31,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: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    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: 42
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 42
    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: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: '& 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: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    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: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    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:60,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_certstor.cpp:61,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_certstor.cpp:61,1
    - Dst: Botan::Certificate_Store_In_SQLite::insert_key
      Src: /src/botan/src/tests/test_certstor.cpp:66,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:66,1
    - Dst: private_key
      Src: /src/botan/src/tests/test_certstor.cpp:66,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:70,1
    - Dst: private_key
      Src: /src/botan/src/tests/test_certstor.cpp:71,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_cert
      Src: /src/botan/src/tests/test_certstor.cpp:72,1
    - Dst: subject_dn
      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: subject_key_id
      Src: /src/botan/src/tests/test_certstor.cpp:73,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:76,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_key
      Src: /src/botan/src/tests/test_certstor.cpp:80,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:82,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:82,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:86,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:86,1
    - Dst: auto::fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:86,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:89,1
    - Dst: private_key_bits
      Src: /src/botan/src/tests/test_certstor.cpp:89,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_certstor.cpp:89,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_certs_for_key
      Src: /src/botan/src/tests/test_certstor.cpp:91,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor.cpp:93,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:94,1
    - Dst: std::any_of
      Src: /src/botan/src/tests/test_certstor.cpp:97,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_certstor.cpp:97,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_certstor.cpp:97,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:98,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:98,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:101,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:106,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:106,1
    - Dst: auto::fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:106,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:109,1
    - Dst: Botan::Certificate_Store_In_SQLite::remove_cert
      Src: /src/botan/src/tests/test_certstor.cpp:109,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:110,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_cert
      Src: /src/botan/src/tests/test_certstor.cpp:110,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:110,1
    - Dst: subject_key_id
      Src: /src/botan/src/tests/test_certstor.cpp:110,1
    - Dst: Botan::Certificate_Store_In_SQLite::remove_key
      Src: /src/botan/src/tests/test_certstor.cpp:113,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:116,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_key
      Src: /src/botan/src/tests/test_certstor.cpp:116,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:121,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:121,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 1
    argNames:
    - ' certsandkeys'
    argTypes:
    - std::vector<CertificateAndKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 124
    functionName: Botan_Tests::test_certstor_sqlite3_insert_find_remove_test
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - auto::private_key_bits
    - auto::empty
    - private_key
    - Test::Result::test_failure
    - auto::end
    - fingerprint
    - what
    - reinterpret_cast<const char*>
    - Botan::Certificate_Store_In_SQLite::insert_key
    - auto::fingerprint
    - certificate
    - Botan::Certificate_Store_In_SQLite::find_cert
    - Botan_Tests::Test::new_rng
    - subject_dn
    - Botan::Certificate_Store_In_SQLite::remove_key
    - std::any_of
    - private_key_bits
    - auto::begin
    - Botan::Certificate_Store_In_SQLite::remove_cert
    - Botan::Certificate_Store_In_SQLite::find_certs_for_key
    - auto::random_vec
    - Test::Result::test_eq
    - subject_key_id
    - Botan::Certificate_Store_In_SQLite::find_key
    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:129,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_certstor.cpp:130,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_certstor.cpp:130,1
    - Dst: Botan::Certificate_Store_In_SQLite::insert_cert
      Src: /src/botan/src/tests/test_certstor.cpp:135,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:135,1
    - Dst: Botan::Certificate_Store_In_SQLite::revoke_cert
      Src: /src/botan/src/tests/test_certstor.cpp:138,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:138,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::generate_crls
      Src: /src/botan/src/tests/test_certstor.cpp:143,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:145,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:145,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:146,1
    - Dst: is_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:148,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:148,1
    - Dst: is_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:148,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:148,1
    - Dst: Test::Result::test_eq
      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:156,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:156,1
    - Dst: Botan::Certificate_Store_In_SQLite::generate_crls
      Src: /src/botan/src/tests/test_certstor.cpp:159,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:161,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:161,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:162,1
    - Dst: is_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:163,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:163,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_crl_for
      Src: /src/botan/src/tests/test_certstor.cpp:166,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:166,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:168,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:169,1
    - Dst: auto::get_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:169,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:170,1
    - Dst: auto::is_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:171,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:171,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_crl_for
      Src: /src/botan/src/tests/test_certstor.cpp:173,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:173,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:175,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:179,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - ' certsandkeys'
    argTypes:
    - std::vector<CertificateAndKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 182
    functionName: Botan_Tests::test_certstor_sqlite3_crl_test
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_SQLite::affirm_cert
    - is_revoked
    - Botan::Certificate_Store_In_SQLite::insert_cert
    - Botan::Certificate_Store_In_SQLite::find_crl_for
    - auto::random_vec
    - auto::get_revoked
    - Test::Result::test_failure
    - auto::is_revoked
    - Test::Result::test_eq
    - certificate
    - Botan::Certificate_Store_In_SQLite::revoke_cert
    - what
    - reinterpret_cast<const char*>
    - Botan_Tests::Test::new_rng
    - auto::size
    - Botan::Certificate_Store_In_SQLite::generate_crls
    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:187,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_certstor.cpp:188,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_certstor.cpp:188,1
    - Dst: Botan::Certificate_Store_In_SQLite::insert_cert
      Src: /src/botan/src/tests/test_certstor.cpp:193,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:193,1
    - Dst: Botan::Certificate_Store_In_SQLite::all_subjects
      Src: /src/botan/src/tests/test_certstor.cpp:196,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:198,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:198,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_certstor.cpp:201,1
    - Dst: Test::Result::test_eq
      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: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:206,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:206,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:211,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:211,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 1
    argNames:
    - ' certsandkeys'
    argTypes:
    - std::vector<CertificateAndKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 214
    functionName: Botan_Tests::test_certstor_sqlite3_all_subjects_test
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_SQLite::insert_cert
    - auto::random_vec
    - Test::Result::test_failure
    - to_string
    - Test::Result::test_eq
    - certificate
    - what
    - reinterpret_cast<const char*>
    - Botan_Tests::Test::new_rng
    - auto::size
    - subject_dn
    - Botan::Certificate_Store_In_SQLite::all_subjects
    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:219,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_certstor.cpp:220,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_certstor.cpp:220,1
    - Dst: Botan::Certificate_Store_In_SQLite::insert_cert
      Src: /src/botan/src/tests/test_certstor.cpp:225,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:225,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_all_certs
      Src: /src/botan/src/tests/test_certstor.cpp:229,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:229,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:229,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:230,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:231,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:234,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_certstor.cpp:235,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:236,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::X509_Certificate
      Src: /src/botan/src/tests/test_certstor.cpp:243,1
    - Dst: Botan_Tests::Test::data_file
      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:245,1
    - Dst: Botan::Certificate_Store_In_SQLite::insert_cert
      Src: /src/botan/src/tests/test_certstor.cpp:246,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_all_certs
      Src: /src/botan/src/tests/test_certstor.cpp:247,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:247,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:249,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:250,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_certstor.cpp:250,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:250,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:253,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_certstor.cpp:254,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:256,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_certstor.cpp:258,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:259,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:262,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:262,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - ' certsandkeys'
    argTypes:
    - std::vector<CertificateAndKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 266
    functionName: Botan_Tests::test_certstor_sqlite3_find_all_certs_test
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_SQLite::insert_cert
    - auto::at
    - auto::random_vec
    - Botan_Tests::Test::data_file
    - Test::Result::test_failure
    - Test::Result::test_eq
    - certificate
    - Botan::Certificate_Store_In_SQLite::find_all_certs
    - Botan::X509_Certificate::subject_dn
    - std::to_string
    - reinterpret_cast<const char*>
    - Botan_Tests::Test::new_rng
    - what
    - auto::size
    - subject_dn
    - Botan::X509_Certificate
    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:274,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_certstor.cpp:277,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:277,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:281,1
    - Dst: raw_subject_dn_sha256
      Src: /src/botan/src/tests/test_certstor.cpp:285,1
    - Dst: Botan::Certificate_Store_In_Memory::find_cert_by_raw_subject_dn_sha256
      Src: /src/botan/src/tests/test_certstor.cpp:287,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:289,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:289,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:293,1
    - Dst: auto::raw_subject_dn_sha256
      Src: /src/botan/src/tests/test_certstor.cpp:293,1
    - Dst: issuer_dn
      Src: /src/botan/src/tests/test_certstor.cpp:298,1
    - Dst: serial_number
      Src: /src/botan/src/tests/test_certstor.cpp:299,1
    - Dst: Botan::Certificate_Store_In_Memory::find_cert_by_issuer_dn_and_serial_number
      Src: /src/botan/src/tests/test_certstor.cpp:301,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:303,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:303,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:307,1
    - Dst: auto::serial_number
      Src: /src/botan/src/tests/test_certstor.cpp:307,1
    - Dst: Botan::Certificate_Store_In_Memory::find_cert_by_raw_subject_dn_sha256
      Src: /src/botan/src/tests/test_certstor.cpp:311,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor.cpp:311,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:313,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:319,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:319,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - ' certsandkeys'
    argTypes:
    - std::vector<CertificateAndKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 322
    functionName: Botan_Tests::test_certstor_all_finders
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - auto::serial_number
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - raw_subject_dn_sha256
    - Test::Result::test_failure
    - Botan::Certificate_Store_In_Memory::find_cert_by_raw_subject_dn_sha256
    - fingerprint
    - Test::Result::test_eq
    - certificate
    - Botan::Certificate_Store_In_Memory::add_certificate
    - serial_number
    - auto::raw_subject_dn_sha256
    - issuer_dn
    - std::vector<uint8_t>
    - what
    - Botan::Certificate_Store_In_Memory::find_cert_by_issuer_dn_and_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:328,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_certstor.cpp:331,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_certstor.cpp:336,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_certstor.cpp:337,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor.cpp:339,1
    - Dst: Botan::Certificate_Store_In_Memory::find_cert
      Src: /src/botan/src/tests/test_certstor.cpp:339,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:339,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor.cpp:340,1
    - Dst: Botan::Certificate_Store_In_Memory::find_cert
      Src: /src/botan/src/tests/test_certstor.cpp:340,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:340,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:343,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 346
    functionName: Botan_Tests::test_certstor_load_allcert
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_Memory::find_cert
    - Botan_Tests::Test::data_file
    - Test::Result::test_failure
    - Test::Result::confirm
    - Botan_Tests::Test::data_dir
    - Botan::X509_Certificate::subject_dn
    - what
    - Test::Result::test_note
    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:366,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_certstor.cpp:369,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_certstor.cpp:371,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:375,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:379,1
    - Dst: CertificateAndKey
      Src: /src/botan/src/tests/test_certstor.cpp:379,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:384,1
    - Dst: test_certstor_all_finders
      Src: /src/botan/src/tests/test_certstor.cpp:384,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:385,1
    - Dst: test_certstor_load_allcert
      Src: /src/botan/src/tests/test_certstor.cpp:385,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:387,1
    - Dst: test_certstor_sqlite3_insert_find_remove_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_crl_test
      Src: /src/botan/src/tests/test_certstor.cpp:388,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:389,1
    - Dst: test_certstor_sqlite3_all_subjects_test
      Src: /src/botan/src/tests/test_certstor.cpp:389,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:390,1
    - Dst: test_certstor_sqlite3_find_all_certs_test
      Src: /src/botan/src/tests/test_certstor.cpp:390,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 393
    functionName: Botan_Tests::Certstor_Tests::run
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - test_certstor_sqlite3_find_all_certs_test
    - CertificateAndKey
    - std::vector::push_back
    - test_certstor_sqlite3_insert_find_remove_test
    - test_certstor_all_finders
    - test_certstor_sqlite3_all_subjects_test
    - test_certstor_load_allcert
    - Botan_Tests::Test::data_file
    - Test::Result::test_failure
    - test_certstor_sqlite3_crl_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:31,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: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    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: 42
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 42
    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: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: '& 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: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    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: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    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:60,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_certstor.cpp:61,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_certstor.cpp:61,1
    - Dst: Botan::Certificate_Store_In_SQLite::insert_key
      Src: /src/botan/src/tests/test_certstor.cpp:66,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:66,1
    - Dst: private_key
      Src: /src/botan/src/tests/test_certstor.cpp:66,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:70,1
    - Dst: private_key
      Src: /src/botan/src/tests/test_certstor.cpp:71,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_cert
      Src: /src/botan/src/tests/test_certstor.cpp:72,1
    - Dst: subject_dn
      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: subject_key_id
      Src: /src/botan/src/tests/test_certstor.cpp:73,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:76,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_key
      Src: /src/botan/src/tests/test_certstor.cpp:80,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:82,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:82,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:86,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:86,1
    - Dst: auto::fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:86,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:89,1
    - Dst: private_key_bits
      Src: /src/botan/src/tests/test_certstor.cpp:89,1
    - Dst: auto::private_key_bits
      Src: /src/botan/src/tests/test_certstor.cpp:89,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_certs_for_key
      Src: /src/botan/src/tests/test_certstor.cpp:91,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/test_certstor.cpp:93,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:94,1
    - Dst: std::any_of
      Src: /src/botan/src/tests/test_certstor.cpp:97,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/test_certstor.cpp:97,1
    - Dst: auto::end
      Src: /src/botan/src/tests/test_certstor.cpp:97,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:98,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:98,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:101,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:106,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:106,1
    - Dst: auto::fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:106,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:109,1
    - Dst: Botan::Certificate_Store_In_SQLite::remove_cert
      Src: /src/botan/src/tests/test_certstor.cpp:109,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:110,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_cert
      Src: /src/botan/src/tests/test_certstor.cpp:110,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:110,1
    - Dst: subject_key_id
      Src: /src/botan/src/tests/test_certstor.cpp:110,1
    - Dst: Botan::Certificate_Store_In_SQLite::remove_key
      Src: /src/botan/src/tests/test_certstor.cpp:113,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:116,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_key
      Src: /src/botan/src/tests/test_certstor.cpp:116,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:121,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:121,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 1
    argNames:
    - ' certsandkeys'
    argTypes:
    - std::vector<CertificateAndKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 124
    functionName: Botan_Tests::test_certstor_sqlite3_insert_find_remove_test
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - auto::private_key_bits
    - auto::empty
    - private_key
    - Test::Result::test_failure
    - auto::end
    - fingerprint
    - what
    - reinterpret_cast<const char*>
    - Botan::Certificate_Store_In_SQLite::insert_key
    - auto::fingerprint
    - certificate
    - Botan::Certificate_Store_In_SQLite::find_cert
    - Botan_Tests::Test::new_rng
    - subject_dn
    - Botan::Certificate_Store_In_SQLite::remove_key
    - std::any_of
    - private_key_bits
    - auto::begin
    - Botan::Certificate_Store_In_SQLite::remove_cert
    - Botan::Certificate_Store_In_SQLite::find_certs_for_key
    - auto::random_vec
    - Test::Result::test_eq
    - subject_key_id
    - Botan::Certificate_Store_In_SQLite::find_key
    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:129,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_certstor.cpp:130,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_certstor.cpp:130,1
    - Dst: Botan::Certificate_Store_In_SQLite::insert_cert
      Src: /src/botan/src/tests/test_certstor.cpp:135,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:135,1
    - Dst: Botan::Certificate_Store_In_SQLite::revoke_cert
      Src: /src/botan/src/tests/test_certstor.cpp:138,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:138,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::generate_crls
      Src: /src/botan/src/tests/test_certstor.cpp:143,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:145,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:145,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:146,1
    - Dst: is_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:148,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:148,1
    - Dst: is_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:148,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:148,1
    - Dst: Test::Result::test_eq
      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:156,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:156,1
    - Dst: Botan::Certificate_Store_In_SQLite::generate_crls
      Src: /src/botan/src/tests/test_certstor.cpp:159,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:161,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:161,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:162,1
    - Dst: is_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:163,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:163,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_crl_for
      Src: /src/botan/src/tests/test_certstor.cpp:166,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:166,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:168,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:169,1
    - Dst: auto::get_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:169,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:170,1
    - Dst: auto::is_revoked
      Src: /src/botan/src/tests/test_certstor.cpp:171,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:171,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_crl_for
      Src: /src/botan/src/tests/test_certstor.cpp:173,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:173,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:175,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:179,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - ' certsandkeys'
    argTypes:
    - std::vector<CertificateAndKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 182
    functionName: Botan_Tests::test_certstor_sqlite3_crl_test
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_SQLite::affirm_cert
    - is_revoked
    - Botan::Certificate_Store_In_SQLite::insert_cert
    - Botan::Certificate_Store_In_SQLite::find_crl_for
    - auto::random_vec
    - auto::get_revoked
    - Test::Result::test_failure
    - auto::is_revoked
    - Test::Result::test_eq
    - certificate
    - Botan::Certificate_Store_In_SQLite::revoke_cert
    - what
    - reinterpret_cast<const char*>
    - Botan_Tests::Test::new_rng
    - auto::size
    - Botan::Certificate_Store_In_SQLite::generate_crls
    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:187,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_certstor.cpp:188,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_certstor.cpp:188,1
    - Dst: Botan::Certificate_Store_In_SQLite::insert_cert
      Src: /src/botan/src/tests/test_certstor.cpp:193,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:193,1
    - Dst: Botan::Certificate_Store_In_SQLite::all_subjects
      Src: /src/botan/src/tests/test_certstor.cpp:196,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:198,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:198,1
    - Dst: to_string
      Src: /src/botan/src/tests/test_certstor.cpp:201,1
    - Dst: Test::Result::test_eq
      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: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:206,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:206,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:211,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:211,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 1
    argNames:
    - ' certsandkeys'
    argTypes:
    - std::vector<CertificateAndKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 214
    functionName: Botan_Tests::test_certstor_sqlite3_all_subjects_test
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_SQLite::insert_cert
    - auto::random_vec
    - Test::Result::test_failure
    - to_string
    - Test::Result::test_eq
    - certificate
    - what
    - reinterpret_cast<const char*>
    - Botan_Tests::Test::new_rng
    - auto::size
    - subject_dn
    - Botan::Certificate_Store_In_SQLite::all_subjects
    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:219,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/tests/test_certstor.cpp:220,1
    - Dst: auto::random_vec
      Src: /src/botan/src/tests/test_certstor.cpp:220,1
    - Dst: Botan::Certificate_Store_In_SQLite::insert_cert
      Src: /src/botan/src/tests/test_certstor.cpp:225,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:225,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_all_certs
      Src: /src/botan/src/tests/test_certstor.cpp:229,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:229,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:229,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:230,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:231,1
    - Dst: subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:234,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_certstor.cpp:235,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:236,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::X509_Certificate
      Src: /src/botan/src/tests/test_certstor.cpp:243,1
    - Dst: Botan_Tests::Test::data_file
      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:245,1
    - Dst: Botan::Certificate_Store_In_SQLite::insert_cert
      Src: /src/botan/src/tests/test_certstor.cpp:246,1
    - Dst: Botan::Certificate_Store_In_SQLite::find_all_certs
      Src: /src/botan/src/tests/test_certstor.cpp:247,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:247,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:249,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:250,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/test_certstor.cpp:250,1
    - Dst: auto::size
      Src: /src/botan/src/tests/test_certstor.cpp:250,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:253,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_certstor.cpp:254,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:256,1
    - Dst: auto::at
      Src: /src/botan/src/tests/test_certstor.cpp:258,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:259,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:262,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:262,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 1
    argNames:
    - ' certsandkeys'
    argTypes:
    - std::vector<CertificateAndKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 266
    functionName: Botan_Tests::test_certstor_sqlite3_find_all_certs_test
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_SQLite::insert_cert
    - auto::at
    - auto::random_vec
    - Botan_Tests::Test::data_file
    - Test::Result::test_failure
    - Test::Result::test_eq
    - certificate
    - Botan::Certificate_Store_In_SQLite::find_all_certs
    - Botan::X509_Certificate::subject_dn
    - std::to_string
    - reinterpret_cast<const char*>
    - Botan_Tests::Test::new_rng
    - what
    - auto::size
    - subject_dn
    - Botan::X509_Certificate
    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:274,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/tests/test_certstor.cpp:277,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:277,1
    - Dst: certificate
      Src: /src/botan/src/tests/test_certstor.cpp:281,1
    - Dst: raw_subject_dn_sha256
      Src: /src/botan/src/tests/test_certstor.cpp:285,1
    - Dst: Botan::Certificate_Store_In_Memory::find_cert_by_raw_subject_dn_sha256
      Src: /src/botan/src/tests/test_certstor.cpp:287,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:289,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:289,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:293,1
    - Dst: auto::raw_subject_dn_sha256
      Src: /src/botan/src/tests/test_certstor.cpp:293,1
    - Dst: issuer_dn
      Src: /src/botan/src/tests/test_certstor.cpp:298,1
    - Dst: serial_number
      Src: /src/botan/src/tests/test_certstor.cpp:299,1
    - Dst: Botan::Certificate_Store_In_Memory::find_cert_by_issuer_dn_and_serial_number
      Src: /src/botan/src/tests/test_certstor.cpp:301,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:303,1
    - Dst: fingerprint
      Src: /src/botan/src/tests/test_certstor.cpp:303,1
    - Dst: Test::Result::test_eq
      Src: /src/botan/src/tests/test_certstor.cpp:307,1
    - Dst: auto::serial_number
      Src: /src/botan/src/tests/test_certstor.cpp:307,1
    - Dst: Botan::Certificate_Store_In_Memory::find_cert_by_raw_subject_dn_sha256
      Src: /src/botan/src/tests/test_certstor.cpp:311,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/tests/test_certstor.cpp:311,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:313,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:319,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:319,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - ' certsandkeys'
    argTypes:
    - std::vector<CertificateAndKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 322
    functionName: Botan_Tests::test_certstor_all_finders
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - auto::serial_number
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - raw_subject_dn_sha256
    - Test::Result::test_failure
    - Botan::Certificate_Store_In_Memory::find_cert_by_raw_subject_dn_sha256
    - fingerprint
    - Test::Result::test_eq
    - certificate
    - Botan::Certificate_Store_In_Memory::add_certificate
    - serial_number
    - auto::raw_subject_dn_sha256
    - issuer_dn
    - std::vector<uint8_t>
    - what
    - Botan::Certificate_Store_In_Memory::find_cert_by_issuer_dn_and_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:328,1
    - Dst: Test::Result::test_note
      Src: /src/botan/src/tests/test_certstor.cpp:331,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_certstor.cpp:336,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_certstor.cpp:337,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor.cpp:339,1
    - Dst: Botan::Certificate_Store_In_Memory::find_cert
      Src: /src/botan/src/tests/test_certstor.cpp:339,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:339,1
    - Dst: Test::Result::confirm
      Src: /src/botan/src/tests/test_certstor.cpp:340,1
    - Dst: Botan::Certificate_Store_In_Memory::find_cert
      Src: /src/botan/src/tests/test_certstor.cpp:340,1
    - Dst: Botan::X509_Certificate::subject_dn
      Src: /src/botan/src/tests/test_certstor.cpp:340,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:343,1
    - Dst: what
      Src: /src/botan/src/tests/test_certstor.cpp:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 346
    functionName: Botan_Tests::test_certstor_load_allcert
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - Botan::Certificate_Store_In_Memory::find_cert
    - Botan_Tests::Test::data_file
    - Test::Result::test_failure
    - Test::Result::confirm
    - Botan_Tests::Test::data_dir
    - Botan::X509_Certificate::subject_dn
    - what
    - Test::Result::test_note
    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:366,1
    - Dst: Botan_Tests::Test::data_file
      Src: /src/botan/src/tests/test_certstor.cpp:369,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/tests/test_certstor.cpp:371,1
    - Dst: Test::Result::test_failure
      Src: /src/botan/src/tests/test_certstor.cpp:375,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:379,1
    - Dst: CertificateAndKey
      Src: /src/botan/src/tests/test_certstor.cpp:379,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:384,1
    - Dst: test_certstor_all_finders
      Src: /src/botan/src/tests/test_certstor.cpp:384,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:385,1
    - Dst: test_certstor_load_allcert
      Src: /src/botan/src/tests/test_certstor.cpp:385,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:387,1
    - Dst: test_certstor_sqlite3_insert_find_remove_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_crl_test
      Src: /src/botan/src/tests/test_certstor.cpp:388,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:389,1
    - Dst: test_certstor_sqlite3_all_subjects_test
      Src: /src/botan/src/tests/test_certstor.cpp:389,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/test_certstor.cpp:390,1
    - Dst: test_certstor_sqlite3_find_all_certs_test
      Src: /src/botan/src/tests/test_certstor.cpp:390,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 393
    functionName: Botan_Tests::Certstor_Tests::run
    functionSourceFile: /src/botan/src/tests/test_certstor.cpp
    functionUses: 0
    functionsReached:
    - test_certstor_sqlite3_find_all_certs_test
    - CertificateAndKey
    - std::vector::push_back
    - test_certstor_sqlite3_insert_find_remove_test
    - test_certstor_all_finders
    - test_certstor_sqlite3_all_subjects_test
    - test_certstor_load_allcert
    - Botan_Tests::Test::data_file
    - Test::Result::test_failure
    - test_certstor_sqlite3_crl_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
    - current_test_run
    - Botan_Tests::StdoutReporter::render_preamble
    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:
    - insert
    - tests_failed
    - tests_run
    - 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:
    - properties
    - Botan::version_string
    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
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 91
    functionName: Botan_Tests::StdoutReporter::render_summary
    functionSourceFile: /src/botan/src/tests/runner/test_stdout_reporter.cpp
    functionUses: 1
    functionsReached:
    - elapsed_time
    - total_test_runs
    - current_test_run
    - Botan_Tests::Test::format_time
    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
    - current_test_run
    - Botan_Tests::StdoutReporter::render_preamble
    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:
    - insert
    - tests_failed
    - tests_run
    - 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: 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:
    - properties
    - Botan::version_string
    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
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 91
    functionName: Botan_Tests::StdoutReporter::render_summary
    functionSourceFile: /src/botan/src/tests/runner/test_stdout_reporter.cpp
    functionUses: 2
    functionsReached:
    - elapsed_time
    - total_test_runs
    - current_test_run
    - Botan_Tests::Test::format_time
    linkageType: ''
    returnType: void
    signature: void StdoutReporter::render_summary() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/runner/test_reporter.h:22,1
    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::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: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_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: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    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: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    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: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    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: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    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: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    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: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    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: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    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: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_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: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    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: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    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: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    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: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    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: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    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: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    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: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    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: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    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:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 174
    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: 187
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 187
    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: 189
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 189
    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: 191
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 191
    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: 193
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 193
    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:22,1
    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::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: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_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: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    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: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    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: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    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: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    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: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    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: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    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: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    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: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_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: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    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: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    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: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    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: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    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: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    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: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    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: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    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: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    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:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 174
    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: 187
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 187
    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: 189
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 189
    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: 191
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 191
    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: 193
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 193
    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: timestamp
      Src: /src/botan/src/tests/runner/test_reporter.cpp:34,1
    - Dst: elapsed_time
      Src: /src/botan/src/tests/runner/test_reporter.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 35
    functionName: Botan_Tests::TestSummary::TestSummary
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 0
    functionsReached:
    - elapsed_time
    - notes
    - who
    - timestamp
    - failures
    - code_location
    - tests_run
    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:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    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:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    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:44,1
    - Dst: begin
      Src: /src/botan/src/tests/runner/test_reporter.cpp:44,1
    - Dst: end
      Src: /src/botan/src/tests/runner/test_reporter.cpp:44,1
    - Dst: passed
      Src: /src/botan/src/tests/runner/test_reporter.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: Botan_Tests::Testsuite::tests_passed
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 0
    functionsReached:
    - begin
    - passed
    - 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:48,1
    - Dst: begin
      Src: /src/botan/src/tests/runner/test_reporter.cpp:48,1
    - Dst: end
      Src: /src/botan/src/tests/runner/test_reporter.cpp:48,1
    - Dst: failed
      Src: /src/botan/src/tests/runner/test_reporter.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: Botan_Tests::Testsuite::tests_failed
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 0
    functionsReached:
    - begin
    - failed
    - end
    - std::count_if
    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:52,1
    - Dst: begin
      Src: /src/botan/src/tests/runner/test_reporter.cpp:53,1
    - Dst: end
      Src: /src/botan/src/tests/runner/test_reporter.cpp:54,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/tests/runner/test_reporter.cpp:55,1
    - Dst: min
      Src: /src/botan/src/tests/runner/test_reporter.cpp:56,1
    - Dst: Botan_Tests::Testsuite::timestamp
      Src: /src/botan/src/tests/runner/test_reporter.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 58
    functionName: Botan_Tests::Testsuite::timestamp
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::random_bit_generator::max
    - Botan_Tests::Testsuite::timestamp
    - min
    - end
    - std::transform_reduce
    - begin
    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:61,1
    - Dst: begin
      Src: /src/botan/src/tests/runner/test_reporter.cpp:62,1
    - Dst: end
      Src: /src/botan/src/tests/runner/test_reporter.cpp:63,1
    - Dst: std::make_optional
      Src: /src/botan/src/tests/runner/test_reporter.cpp:64,1
    - Dst: Botan::Sodium::sodium_memzero
      Src: /src/botan/src/tests/runner/test_reporter.cpp:64,1
    - Dst: Botan_Tests::Testsuite::elapsed_time
      Src: /src/botan/src/tests/runner/test_reporter.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 67
    functionName: Botan_Tests::Testsuite::elapsed_time
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 1
    functionsReached:
    - Botan::Sodium::sodium_memzero
    - Botan_Tests::Testsuite::elapsed_time
    - std::make_optional
    - end
    - std::transform_reduce
    - begin
    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:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' opts'
    argTypes:
    - Test_Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    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:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' name'
    - ' value'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    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:76,1
    - Dst: clear
      Src: /src/botan/src/tests/runner/test_reporter.cpp:78,1
    - Dst: next_run
      Src: /src/botan/src/tests/runner/test_reporter.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 81
    functionName: Botan_Tests::Reporter::next_test_run
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 0
    functionsReached:
    - next_run
    - Botan::TLS::detail::AsyncBase::complete_now
    - clear
    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:84,1
    - Dst: Botan_Tests::Reporter::record
      Src: /src/botan/src/tests/runner/test_reporter.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' name'
    - ' result'
    argTypes:
    - std::string
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: Botan_Tests::Reporter::record
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::Reporter::record
    - try_emplace
    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:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' test_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 90
    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:95,1
    - Dst: std::map::find
      Src: /src/botan/src/tests/runner/test_reporter.cpp:96,1
    - Dst: std::map::end
      Src: /src/botan/src/tests/runner/test_reporter.cpp:97,1
    - Dst: std::map::insert
      Src: /src/botan/src/tests/runner/test_reporter.cpp:98,1
    - Dst: std::make_pair
      Src: /src/botan/src/tests/runner/test_reporter.cpp:98,1
    - Dst: Botan_Tests::Test::Result::Result
      Src: /src/botan/src/tests/runner/test_reporter.cpp:98,1
    - Dst: std::map::find
      Src: /src/botan/src/tests/runner/test_reporter.cpp:99,1
    - Dst: auto::second::merge
      Src: /src/botan/src/tests/runner/test_reporter.cpp:102,1
    - Dst: Botan_Tests::Reporter::record
      Src: /src/botan/src/tests/runner/test_reporter.cpp:106,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: 108
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 108
    functionName: Botan_Tests::Reporter::record
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::Reporter::record
    - std::map::end
    - std::make_pair
    - std::map::find
    - std::map::insert
    - Botan_Tests::Test::Result::Result
    - auto::second::merge
    - who
    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:111,1
    - Dst: begin
      Src: /src/botan/src/tests/runner/test_reporter.cpp:112,1
    - Dst: end
      Src: /src/botan/src/tests/runner/test_reporter.cpp:112,1
    - Dst: second::tests_run
      Src: /src/botan/src/tests/runner/test_reporter.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: Botan_Tests::Reporter::tests_run
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 0
    functionsReached:
    - begin
    - second::tests_run
    - end
    - std::transform_reduce
    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:118,1
    - Dst: begin
      Src: /src/botan/src/tests/runner/test_reporter.cpp:119,1
    - Dst: end
      Src: /src/botan/src/tests/runner/test_reporter.cpp:119,1
    - Dst: second::tests_passed
      Src: /src/botan/src/tests/runner/test_reporter.cpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 122
    functionName: Botan_Tests::Reporter::tests_passed
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 0
    functionsReached:
    - begin
    - second::tests_passed
    - end
    - std::transform_reduce
    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:125,1
    - Dst: begin
      Src: /src/botan/src/tests/runner/test_reporter.cpp:126,1
    - Dst: end
      Src: /src/botan/src/tests/runner/test_reporter.cpp:126,1
    - Dst: second::tests_failed
      Src: /src/botan/src/tests/runner/test_reporter.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 129
    functionName: Botan_Tests::Reporter::tests_failed
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 0
    functionsReached:
    - begin
    - second::tests_failed
    - end
    - std::transform_reduce
    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: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: 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: timestamp
      Src: /src/botan/src/tests/runner/test_reporter.cpp:34,1
    - Dst: elapsed_time
      Src: /src/botan/src/tests/runner/test_reporter.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 35
    functionName: Botan_Tests::TestSummary::TestSummary
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 0
    functionsReached:
    - elapsed_time
    - notes
    - who
    - timestamp
    - failures
    - code_location
    - tests_run
    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:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    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:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    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:44,1
    - Dst: begin
      Src: /src/botan/src/tests/runner/test_reporter.cpp:44,1
    - Dst: end
      Src: /src/botan/src/tests/runner/test_reporter.cpp:44,1
    - Dst: passed
      Src: /src/botan/src/tests/runner/test_reporter.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 45
    functionName: Botan_Tests::Testsuite::tests_passed
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 0
    functionsReached:
    - begin
    - passed
    - 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:48,1
    - Dst: begin
      Src: /src/botan/src/tests/runner/test_reporter.cpp:48,1
    - Dst: end
      Src: /src/botan/src/tests/runner/test_reporter.cpp:48,1
    - Dst: failed
      Src: /src/botan/src/tests/runner/test_reporter.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: Botan_Tests::Testsuite::tests_failed
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 0
    functionsReached:
    - begin
    - failed
    - end
    - std::count_if
    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:52,1
    - Dst: begin
      Src: /src/botan/src/tests/runner/test_reporter.cpp:53,1
    - Dst: end
      Src: /src/botan/src/tests/runner/test_reporter.cpp:54,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/tests/runner/test_reporter.cpp:55,1
    - Dst: min
      Src: /src/botan/src/tests/runner/test_reporter.cpp:56,1
    - Dst: Botan_Tests::Testsuite::timestamp
      Src: /src/botan/src/tests/runner/test_reporter.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 58
    functionName: Botan_Tests::Testsuite::timestamp
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::random_bit_generator::max
    - Botan_Tests::Testsuite::timestamp
    - min
    - end
    - std::transform_reduce
    - begin
    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:61,1
    - Dst: begin
      Src: /src/botan/src/tests/runner/test_reporter.cpp:62,1
    - Dst: end
      Src: /src/botan/src/tests/runner/test_reporter.cpp:63,1
    - Dst: std::make_optional
      Src: /src/botan/src/tests/runner/test_reporter.cpp:64,1
    - Dst: Botan::Sodium::sodium_memzero
      Src: /src/botan/src/tests/runner/test_reporter.cpp:64,1
    - Dst: Botan_Tests::Testsuite::elapsed_time
      Src: /src/botan/src/tests/runner/test_reporter.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 67
    functionName: Botan_Tests::Testsuite::elapsed_time
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 2
    functionsReached:
    - Botan::Sodium::sodium_memzero
    - Botan_Tests::Testsuite::elapsed_time
    - std::make_optional
    - end
    - std::transform_reduce
    - begin
    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:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' opts'
    argTypes:
    - Test_Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    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:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' name'
    - ' value'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    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:76,1
    - Dst: clear
      Src: /src/botan/src/tests/runner/test_reporter.cpp:78,1
    - Dst: next_run
      Src: /src/botan/src/tests/runner/test_reporter.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 81
    functionName: Botan_Tests::Reporter::next_test_run
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 0
    functionsReached:
    - next_run
    - Botan::TLS::detail::AsyncBase::complete_now
    - clear
    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:84,1
    - Dst: Botan_Tests::Reporter::record
      Src: /src/botan/src/tests/runner/test_reporter.cpp:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' name'
    - ' result'
    argTypes:
    - std::string
    - Test::Result
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: Botan_Tests::Reporter::record
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::Reporter::record
    - try_emplace
    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:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' test_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 90
    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:95,1
    - Dst: std::map::find
      Src: /src/botan/src/tests/runner/test_reporter.cpp:96,1
    - Dst: std::map::end
      Src: /src/botan/src/tests/runner/test_reporter.cpp:97,1
    - Dst: std::map::insert
      Src: /src/botan/src/tests/runner/test_reporter.cpp:98,1
    - Dst: std::make_pair
      Src: /src/botan/src/tests/runner/test_reporter.cpp:98,1
    - Dst: Botan_Tests::Test::Result::Result
      Src: /src/botan/src/tests/runner/test_reporter.cpp:98,1
    - Dst: std::map::find
      Src: /src/botan/src/tests/runner/test_reporter.cpp:99,1
    - Dst: auto::second::merge
      Src: /src/botan/src/tests/runner/test_reporter.cpp:102,1
    - Dst: Botan_Tests::Reporter::record
      Src: /src/botan/src/tests/runner/test_reporter.cpp:106,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: 108
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 108
    functionName: Botan_Tests::Reporter::record
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 4
    functionsReached:
    - Botan_Tests::Reporter::record
    - std::map::end
    - std::make_pair
    - std::map::find
    - std::map::insert
    - Botan_Tests::Test::Result::Result
    - auto::second::merge
    - who
    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:111,1
    - Dst: begin
      Src: /src/botan/src/tests/runner/test_reporter.cpp:112,1
    - Dst: end
      Src: /src/botan/src/tests/runner/test_reporter.cpp:112,1
    - Dst: second::tests_run
      Src: /src/botan/src/tests/runner/test_reporter.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 115
    functionName: Botan_Tests::Reporter::tests_run
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 0
    functionsReached:
    - begin
    - second::tests_run
    - end
    - std::transform_reduce
    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:118,1
    - Dst: begin
      Src: /src/botan/src/tests/runner/test_reporter.cpp:119,1
    - Dst: end
      Src: /src/botan/src/tests/runner/test_reporter.cpp:119,1
    - Dst: second::tests_passed
      Src: /src/botan/src/tests/runner/test_reporter.cpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 122
    functionName: Botan_Tests::Reporter::tests_passed
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 0
    functionsReached:
    - begin
    - second::tests_passed
    - end
    - std::transform_reduce
    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:125,1
    - Dst: begin
      Src: /src/botan/src/tests/runner/test_reporter.cpp:126,1
    - Dst: end
      Src: /src/botan/src/tests/runner/test_reporter.cpp:126,1
    - Dst: second::tests_failed
      Src: /src/botan/src/tests/runner/test_reporter.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 129
    functionName: Botan_Tests::Reporter::tests_failed
    functionSourceFile: /src/botan/src/tests/runner/test_reporter.cpp
    functionUses: 0
    functionsReached:
    - begin
    - second::tests_failed
    - end
    - std::transform_reduce
    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: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: 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: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    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: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    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:35,1
    - Dst: emplace_back
      Src: /src/botan/src/tests/runner/test_runner.cpp:36,1
    - Dst: std::make_unique<StdoutReporter>
      Src: /src/botan/src/tests/runner/test_runner.cpp:36,1
    - Dst: output
      Src: /src/botan/src/tests/runner/test_runner.cpp:36,1
    - Dst: xml_results_dir
      Src: /src/botan/src/tests/runner/test_runner.cpp:38,1
    - Dst: emplace_back
      Src: /src/botan/src/tests/runner/test_runner.cpp:40,1
    - Dst: std::make_unique<XmlReporter>
      Src: /src/botan/src/tests/runner/test_runner.cpp:40,1
    - Dst: xml_results_dir
      Src: /src/botan/src/tests/runner/test_runner.cpp:40,1
    - Dst: output
      Src: /src/botan/src/tests/runner/test_runner.cpp:42,1
    - Dst: Botan_Tests::Test::filter_registered_tests
      Src: /src/botan/src/tests/runner/test_runner.cpp:46,1
    - Dst: requested_tests
      Src: /src/botan/src/tests/runner/test_runner.cpp:46,1
    - Dst: skip_tests
      Src: /src/botan/src/tests/runner/test_runner.cpp:46,1
    - Dst: pkcs11_lib
      Src: /src/botan/src/tests/runner/test_runner.cpp:49,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/runner/test_runner.cpp:51,1
    - Dst: auto::end
      Src: /src/botan/src/tests/runner/test_runner.cpp:51,1
    - Dst: find
      Src: /src/botan/src/tests/runner/test_runner.cpp:52,1
    - Dst: auto::erase
      Src: /src/botan/src/tests/runner/test_runner.cpp:53,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/runner/test_runner.cpp:60,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/runner/test_runner.cpp:61,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/runner/test_runner.cpp:64,1
    - Dst: drbg_seed
      Src: /src/botan/src/tests/runner/test_runner.cpp:64,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/runner/test_runner.cpp:65,1
    - Dst: Botan_Tests::Test::timestamp
      Src: /src/botan/src/tests/runner/test_runner.cpp:66,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/runner/test_runner.cpp:67,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/runner/test_runner.cpp:68,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/runner/test_runner.cpp:68,1
    - Dst: Botan::CPUID::to_string
      Src: /src/botan/src/tests/runner/test_runner.cpp:73,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/runner/test_runner.cpp:74,1
    - Dst: set_property
      Src: /src/botan/src/tests/runner/test_runner.cpp:75,1
    - Dst: pkcs11_lib
      Src: /src/botan/src/tests/runner/test_runner.cpp:79,1
    - Dst: set_property
      Src: /src/botan/src/tests/runner/test_runner.cpp:80,1
    - Dst: pkcs11_lib
      Src: /src/botan/src/tests/runner/test_runner.cpp:80,1
    - Dst: provider
      Src: /src/botan/src/tests/runner/test_runner.cpp:83,1
    - Dst: set_property
      Src: /src/botan/src/tests/runner/test_runner.cpp:84,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:87,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/runner/test_runner.cpp:87,1
    - Dst: Botan_Tests::Test::set_test_options
      Src: /src/botan/src/tests/runner/test_runner.cpp:90,1
    - Dst: test_runs
      Src: /src/botan/src/tests/runner/test_runner.cpp:92,1
    - Dst: Botan_Tests::Test::set_test_rng_seed
      Src: /src/botan/src/tests/runner/test_runner.cpp:93,1
    - Dst: next_test_run
      Src: /src/botan/src/tests/runner/test_runner.cpp:96,1
    - Dst: test_threads
      Src: /src/botan/src/tests/runner/test_runner.cpp:100,1
    - Dst: Botan_Tests::Test_Runner::run_tests
      Src: /src/botan/src/tests/runner/test_runner.cpp:100,1
    - Dst: Botan_Tests::Test_Runner::run_tests_multithreaded
      Src: /src/botan/src/tests/runner/test_runner.cpp:100,1
    - Dst: test_threads
      Src: /src/botan/src/tests/runner/test_runner.cpp:100,1
    - Dst: render
      Src: /src/botan/src/tests/runner/test_runner.cpp:103,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 1
    argNames:
    - ' options'
    argTypes:
    - Test_Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 34
    functionDepth: 2
    functionLinenumber: 34
    functionLinenumberEnd: 112
    functionName: Botan_Tests::Test_Runner::run
    functionSourceFile: /src/botan/src/tests/runner/test_runner.cpp
    functionUses: 1
    functionsReached:
    - Botan::hex_decode
    - auto::empty
    - Botan::hex_encode
    - auto::end
    - set_property
    - std::string::empty
    - test_threads
    - Botan_Tests::Test::filter_registered_tests
    - Botan_Tests::Test::set_test_rng_seed
    - render
    - xml_results_dir
    - drbg_seed
    - Test_Error
    - std::vector::data
    - Botan::CPUID::to_string
    - Botan_Tests::Test::set_test_options
    - output
    - find
    - Botan_Tests::Test_Runner::run_tests_multithreaded
    - test_runs
    - auto::erase
    - emplace_back
    - std::vector::empty
    - std::make_unique<StdoutReporter>
    - std::vector::resize
    - provider
    - requested_tests
    - std::make_unique<XmlReporter>
    - skip_tests
    - auto::begin
    - pkcs11_lib
    - Botan_Tests::Test_Runner::run_tests
    - Botan::store_be
    - next_test_run
    - no_stdout
    - Botan_Tests::Test::timestamp
    linkageType: ''
    returnType: bool
    signature: bool Test_Runner::run(const Test_Options& options)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: has
      Src: /src/botan/src/tests/runner/test_runner.cpp:121,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/runner/test_runner.cpp:122,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/runner/test_runner.cpp:122,1
    - Dst: Botan_Tests::Test::get_test
      Src: /src/botan/src/tests/runner/test_runner.cpp:127,1
    - Dst: std::unique_ptr::run
      Src: /src/botan/src/tests/runner/test_runner.cpp:128,1
    - Dst: code_location
      Src: /src/botan/src/tests/runner/test_runner.cpp:130,1
    - Dst: std::unique_ptr::registration_location
      Src: /src/botan/src/tests/runner/test_runner.cpp:130,1
    - Dst: set_code_location
      Src: /src/botan/src/tests/runner/test_runner.cpp:133,1
    - Dst: std::unique_ptr::registration_location
      Src: /src/botan/src/tests/runner/test_runner.cpp:133,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/runner/test_runner.cpp:136,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/runner/test_runner.cpp:136,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/runner/test_runner.cpp:136,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/runner/test_runner.cpp:136,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/runner/test_runner.cpp:138,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/runner/test_runner.cpp:138,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/runner/test_runner.cpp:141,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/runner/test_runner.cpp:141,1
    - Dst: what
      Src: /src/botan/src/tests/runner/test_runner.cpp:141,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/runner/test_runner.cpp:143,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/runner/test_runner.cpp:143,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - ' test_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 116
    functionDepth: 3
    functionLinenumber: 116
    functionLinenumberEnd: 147
    functionName: Botan_Tests::run_a_test
    functionSourceFile: /src/botan/src/tests/runner/test_runner.cpp
    functionUses: 0
    functionsReached:
    - has
    - std::vector::begin
    - Botan_Tests::Test::get_test
    - std::vector::push_back
    - std::unique_ptr::registration_location
    - Botan_Tests::Test::Result::Note
    - set_code_location
    - std::vector::end
    - Botan_Tests::Test::Result::Failure
    - what
    - code_location
    - std::unique_ptr::run
    - std::vector::insert
    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:150,1
    - Dst: begin
      Src: /src/botan/src/tests/runner/test_runner.cpp:150,1
    - Dst: end
      Src: /src/botan/src/tests/runner/test_runner.cpp:150,1
    - Dst: tests_failed
      Src: /src/botan/src/tests/runner/test_runner.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: Botan_Tests::all_passed
    functionSourceFile: /src/botan/src/tests/runner/test_runner.cpp
    functionUses: 0
    functionsReached:
    - begin
    - std::all_of
    - end
    - tests_failed
    linkageType: ''
    returnType: bool
    signature: bool all_passed(const std::vector<Test::Result>& results)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: has
      Src: /src/botan/src/tests/runner/test_runner.cpp:121,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/runner/test_runner.cpp:122,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/runner/test_runner.cpp:122,1
    - Dst: Botan_Tests::Test::get_test
      Src: /src/botan/src/tests/runner/test_runner.cpp:127,1
    - Dst: std::unique_ptr::run
      Src: /src/botan/src/tests/runner/test_runner.cpp:128,1
    - Dst: code_location
      Src: /src/botan/src/tests/runner/test_runner.cpp:130,1
    - Dst: std::unique_ptr::registration_location
      Src: /src/botan/src/tests/runner/test_runner.cpp:130,1
    - Dst: set_code_location
      Src: /src/botan/src/tests/runner/test_runner.cpp:133,1
    - Dst: std::unique_ptr::registration_location
      Src: /src/botan/src/tests/runner/test_runner.cpp:133,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/runner/test_runner.cpp:136,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/runner/test_runner.cpp:136,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/runner/test_runner.cpp:136,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/runner/test_runner.cpp:136,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/runner/test_runner.cpp:138,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/runner/test_runner.cpp:138,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/runner/test_runner.cpp:141,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/runner/test_runner.cpp:141,1
    - Dst: what
      Src: /src/botan/src/tests/runner/test_runner.cpp:141,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/runner/test_runner.cpp:143,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/runner/test_runner.cpp:143,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - ' test_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 116
    functionDepth: 3
    functionLinenumber: 116
    functionLinenumberEnd: 147
    functionName: Botan_Tests::run_a_test
    functionSourceFile: /src/botan/src/tests/runner/test_runner.cpp
    functionUses: 0
    functionsReached:
    - has
    - std::vector::begin
    - Botan_Tests::Test::get_test
    - std::vector::push_back
    - std::unique_ptr::registration_location
    - Botan_Tests::Test::Result::Note
    - set_code_location
    - std::vector::end
    - Botan_Tests::Test::Result::Failure
    - what
    - code_location
    - std::unique_ptr::run
    - std::vector::insert
    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:150,1
    - Dst: begin
      Src: /src/botan/src/tests/runner/test_runner.cpp:150,1
    - Dst: end
      Src: /src/botan/src/tests/runner/test_runner.cpp:150,1
    - Dst: tests_failed
      Src: /src/botan/src/tests/runner/test_runner.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: Botan_Tests::all_passed
    functionSourceFile: /src/botan/src/tests/runner/test_runner.cpp
    functionUses: 0
    functionsReached:
    - begin
    - std::all_of
    - end
    - tests_failed
    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:157,1
    - Dst: output
      Src: /src/botan/src/tests/runner/test_runner.cpp:160,1
    - Dst: Botan_Tests::Test_Runner::run_tests
      Src: /src/botan/src/tests/runner/test_runner.cpp:161,1
    - Dst: Botan::RWLock::RWLock
      Src: /src/botan/src/tests/runner/test_runner.cpp:165,1
    - Dst: run_a_test
      Src: /src/botan/src/tests/runner/test_runner.cpp:171,1
    - Dst: run_a_test
      Src: /src/botan/src/tests/runner/test_runner.cpp:176,1
    - Dst: Botan_Tests::Test::test_needs_serialization
      Src: /src/botan/src/tests/runner/test_runner.cpp:180,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/runner/test_runner.cpp:181,1
    - Dst: Botan::Thread_Pool::run
      Src: /src/botan/src/tests/runner/test_runner.cpp:181,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/runner/test_runner.cpp:183,1
    - Dst: Botan::Thread_Pool::run
      Src: /src/botan/src/tests/runner/test_runner.cpp:183,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/runner/test_runner.cpp:188,1
    - Dst: waiting_for_next_results
      Src: /src/botan/src/tests/runner/test_runner.cpp:190,1
    - Dst: get
      Src: /src/botan/src/tests/runner/test_runner.cpp:192,1
    - Dst: record
      Src: /src/botan/src/tests/runner/test_runner.cpp:194,1
    - Dst: all_passed
      Src: /src/botan/src/tests/runner/test_runner.cpp:196,1
    - Dst: Botan::Thread_Pool::shutdown
      Src: /src/botan/src/tests/runner/test_runner.cpp:199,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: 203
      start: 155
    functionDepth: 3
    functionLinenumber: 155
    functionLinenumberEnd: 203
    functionName: Botan_Tests::Test_Runner::run_tests_multithreaded
    functionSourceFile: /src/botan/src/tests/runner/test_runner.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::Thread_Pool::run
    - waiting_for_next_results
    - std::vector::push_back
    - all_passed
    - record
    - run_a_test
    - Botan_Tests::Test_Runner::run_tests
    - Botan::RWLock::RWLock
    - Botan::Thread_Pool::shutdown
    - std::vector::size
    - get
    - output
    - Botan_Tests::Test::test_needs_serialization
    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:209,1
    - Dst: run_a_test
      Src: /src/botan/src/tests/runner/test_runner.cpp:211,1
    - Dst: record
      Src: /src/botan/src/tests/runner/test_runner.cpp:214,1
    - Dst: all_passed
      Src: /src/botan/src/tests/runner/test_runner.cpp:216,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' tests_to_run'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 220
    functionName: Botan_Tests::Test_Runner::run_tests
    functionSourceFile: /src/botan/src/tests/runner/test_runner.cpp
    functionUses: 2
    functionsReached:
    - record
    - run_a_test
    - waiting_for_next_results
    - 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: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    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: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    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:35,1
    - Dst: emplace_back
      Src: /src/botan/src/tests/runner/test_runner.cpp:36,1
    - Dst: std::make_unique<StdoutReporter>
      Src: /src/botan/src/tests/runner/test_runner.cpp:36,1
    - Dst: output
      Src: /src/botan/src/tests/runner/test_runner.cpp:36,1
    - Dst: xml_results_dir
      Src: /src/botan/src/tests/runner/test_runner.cpp:38,1
    - Dst: emplace_back
      Src: /src/botan/src/tests/runner/test_runner.cpp:40,1
    - Dst: std::make_unique<XmlReporter>
      Src: /src/botan/src/tests/runner/test_runner.cpp:40,1
    - Dst: xml_results_dir
      Src: /src/botan/src/tests/runner/test_runner.cpp:40,1
    - Dst: output
      Src: /src/botan/src/tests/runner/test_runner.cpp:42,1
    - Dst: Botan_Tests::Test::filter_registered_tests
      Src: /src/botan/src/tests/runner/test_runner.cpp:46,1
    - Dst: requested_tests
      Src: /src/botan/src/tests/runner/test_runner.cpp:46,1
    - Dst: skip_tests
      Src: /src/botan/src/tests/runner/test_runner.cpp:46,1
    - Dst: pkcs11_lib
      Src: /src/botan/src/tests/runner/test_runner.cpp:49,1
    - Dst: auto::begin
      Src: /src/botan/src/tests/runner/test_runner.cpp:51,1
    - Dst: auto::end
      Src: /src/botan/src/tests/runner/test_runner.cpp:51,1
    - Dst: find
      Src: /src/botan/src/tests/runner/test_runner.cpp:52,1
    - Dst: auto::erase
      Src: /src/botan/src/tests/runner/test_runner.cpp:53,1
    - Dst: auto::empty
      Src: /src/botan/src/tests/runner/test_runner.cpp:60,1
    - Dst: Test_Error
      Src: /src/botan/src/tests/runner/test_runner.cpp:61,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/tests/runner/test_runner.cpp:64,1
    - Dst: drbg_seed
      Src: /src/botan/src/tests/runner/test_runner.cpp:64,1
    - Dst: std::vector::empty
      Src: /src/botan/src/tests/runner/test_runner.cpp:65,1
    - Dst: Botan_Tests::Test::timestamp
      Src: /src/botan/src/tests/runner/test_runner.cpp:66,1
    - Dst: std::vector::resize
      Src: /src/botan/src/tests/runner/test_runner.cpp:67,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/runner/test_runner.cpp:68,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/runner/test_runner.cpp:68,1
    - Dst: Botan::CPUID::to_string
      Src: /src/botan/src/tests/runner/test_runner.cpp:73,1
    - Dst: std::string::empty
      Src: /src/botan/src/tests/runner/test_runner.cpp:74,1
    - Dst: set_property
      Src: /src/botan/src/tests/runner/test_runner.cpp:75,1
    - Dst: pkcs11_lib
      Src: /src/botan/src/tests/runner/test_runner.cpp:79,1
    - Dst: set_property
      Src: /src/botan/src/tests/runner/test_runner.cpp:80,1
    - Dst: pkcs11_lib
      Src: /src/botan/src/tests/runner/test_runner.cpp:80,1
    - Dst: provider
      Src: /src/botan/src/tests/runner/test_runner.cpp:83,1
    - Dst: set_property
      Src: /src/botan/src/tests/runner/test_runner.cpp:84,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:87,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/runner/test_runner.cpp:87,1
    - Dst: Botan_Tests::Test::set_test_options
      Src: /src/botan/src/tests/runner/test_runner.cpp:90,1
    - Dst: test_runs
      Src: /src/botan/src/tests/runner/test_runner.cpp:92,1
    - Dst: Botan_Tests::Test::set_test_rng_seed
      Src: /src/botan/src/tests/runner/test_runner.cpp:93,1
    - Dst: next_test_run
      Src: /src/botan/src/tests/runner/test_runner.cpp:96,1
    - Dst: test_threads
      Src: /src/botan/src/tests/runner/test_runner.cpp:100,1
    - Dst: Botan_Tests::Test_Runner::run_tests
      Src: /src/botan/src/tests/runner/test_runner.cpp:100,1
    - Dst: Botan_Tests::Test_Runner::run_tests_multithreaded
      Src: /src/botan/src/tests/runner/test_runner.cpp:100,1
    - Dst: test_threads
      Src: /src/botan/src/tests/runner/test_runner.cpp:100,1
    - Dst: render
      Src: /src/botan/src/tests/runner/test_runner.cpp:103,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 47
    argCount: 1
    argNames:
    - ' options'
    argTypes:
    - Test_Options
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 34
    functionDepth: 4
    functionLinenumber: 34
    functionLinenumberEnd: 112
    functionName: Botan_Tests::Test_Runner::run
    functionSourceFile: /src/botan/src/tests/runner/test_runner.cpp
    functionUses: 1
    functionsReached:
    - Botan::hex_decode
    - auto::empty
    - Botan::hex_encode
    - auto::end
    - set_property
    - std::string::empty
    - test_threads
    - Botan_Tests::Test::filter_registered_tests
    - Botan_Tests::Test::set_test_rng_seed
    - render
    - xml_results_dir
    - drbg_seed
    - Test_Error
    - std::vector::data
    - Botan::CPUID::to_string
    - Botan_Tests::Test::set_test_options
    - output
    - find
    - Botan_Tests::Test_Runner::run_tests_multithreaded
    - test_runs
    - auto::erase
    - emplace_back
    - std::vector::empty
    - std::make_unique<StdoutReporter>
    - std::vector::resize
    - provider
    - requested_tests
    - std::make_unique<XmlReporter>
    - skip_tests
    - auto::begin
    - pkcs11_lib
    - Botan_Tests::Test_Runner::run_tests
    - Botan::store_be
    - next_test_run
    - no_stdout
    - Botan_Tests::Test::timestamp
    linkageType: ''
    returnType: bool
    signature: bool Test_Runner::run(const Test_Options& options)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: has
      Src: /src/botan/src/tests/runner/test_runner.cpp:121,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/runner/test_runner.cpp:122,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/runner/test_runner.cpp:122,1
    - Dst: Botan_Tests::Test::get_test
      Src: /src/botan/src/tests/runner/test_runner.cpp:127,1
    - Dst: std::unique_ptr::run
      Src: /src/botan/src/tests/runner/test_runner.cpp:128,1
    - Dst: code_location
      Src: /src/botan/src/tests/runner/test_runner.cpp:130,1
    - Dst: std::unique_ptr::registration_location
      Src: /src/botan/src/tests/runner/test_runner.cpp:130,1
    - Dst: set_code_location
      Src: /src/botan/src/tests/runner/test_runner.cpp:133,1
    - Dst: std::unique_ptr::registration_location
      Src: /src/botan/src/tests/runner/test_runner.cpp:133,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/runner/test_runner.cpp:136,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/runner/test_runner.cpp:136,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/runner/test_runner.cpp:136,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/runner/test_runner.cpp:136,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/runner/test_runner.cpp:138,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/runner/test_runner.cpp:138,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/runner/test_runner.cpp:141,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/runner/test_runner.cpp:141,1
    - Dst: what
      Src: /src/botan/src/tests/runner/test_runner.cpp:141,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/runner/test_runner.cpp:143,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/runner/test_runner.cpp:143,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - ' test_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 116
    functionDepth: 3
    functionLinenumber: 116
    functionLinenumberEnd: 147
    functionName: Botan_Tests::run_a_test
    functionSourceFile: /src/botan/src/tests/runner/test_runner.cpp
    functionUses: 0
    functionsReached:
    - has
    - std::vector::begin
    - Botan_Tests::Test::get_test
    - std::vector::push_back
    - std::unique_ptr::registration_location
    - Botan_Tests::Test::Result::Note
    - set_code_location
    - std::vector::end
    - Botan_Tests::Test::Result::Failure
    - what
    - code_location
    - std::unique_ptr::run
    - std::vector::insert
    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:150,1
    - Dst: begin
      Src: /src/botan/src/tests/runner/test_runner.cpp:150,1
    - Dst: end
      Src: /src/botan/src/tests/runner/test_runner.cpp:150,1
    - Dst: tests_failed
      Src: /src/botan/src/tests/runner/test_runner.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: Botan_Tests::all_passed
    functionSourceFile: /src/botan/src/tests/runner/test_runner.cpp
    functionUses: 0
    functionsReached:
    - begin
    - std::all_of
    - end
    - tests_failed
    linkageType: ''
    returnType: bool
    signature: bool all_passed(const std::vector<Test::Result>& results)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: has
      Src: /src/botan/src/tests/runner/test_runner.cpp:121,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/runner/test_runner.cpp:122,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/runner/test_runner.cpp:122,1
    - Dst: Botan_Tests::Test::get_test
      Src: /src/botan/src/tests/runner/test_runner.cpp:127,1
    - Dst: std::unique_ptr::run
      Src: /src/botan/src/tests/runner/test_runner.cpp:128,1
    - Dst: code_location
      Src: /src/botan/src/tests/runner/test_runner.cpp:130,1
    - Dst: std::unique_ptr::registration_location
      Src: /src/botan/src/tests/runner/test_runner.cpp:130,1
    - Dst: set_code_location
      Src: /src/botan/src/tests/runner/test_runner.cpp:133,1
    - Dst: std::unique_ptr::registration_location
      Src: /src/botan/src/tests/runner/test_runner.cpp:133,1
    - Dst: std::vector::insert
      Src: /src/botan/src/tests/runner/test_runner.cpp:136,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/runner/test_runner.cpp:136,1
    - Dst: std::vector::begin
      Src: /src/botan/src/tests/runner/test_runner.cpp:136,1
    - Dst: std::vector::end
      Src: /src/botan/src/tests/runner/test_runner.cpp:136,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/runner/test_runner.cpp:138,1
    - Dst: Botan_Tests::Test::Result::Note
      Src: /src/botan/src/tests/runner/test_runner.cpp:138,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/runner/test_runner.cpp:141,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/runner/test_runner.cpp:141,1
    - Dst: what
      Src: /src/botan/src/tests/runner/test_runner.cpp:141,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/runner/test_runner.cpp:143,1
    - Dst: Botan_Tests::Test::Result::Failure
      Src: /src/botan/src/tests/runner/test_runner.cpp:143,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - ' test_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 116
    functionDepth: 3
    functionLinenumber: 116
    functionLinenumberEnd: 147
    functionName: Botan_Tests::run_a_test
    functionSourceFile: /src/botan/src/tests/runner/test_runner.cpp
    functionUses: 0
    functionsReached:
    - has
    - std::vector::begin
    - Botan_Tests::Test::get_test
    - std::vector::push_back
    - std::unique_ptr::registration_location
    - Botan_Tests::Test::Result::Note
    - set_code_location
    - std::vector::end
    - Botan_Tests::Test::Result::Failure
    - what
    - code_location
    - std::unique_ptr::run
    - std::vector::insert
    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:150,1
    - Dst: begin
      Src: /src/botan/src/tests/runner/test_runner.cpp:150,1
    - Dst: end
      Src: /src/botan/src/tests/runner/test_runner.cpp:150,1
    - Dst: tests_failed
      Src: /src/botan/src/tests/runner/test_runner.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' results'
    argTypes:
    - std::vector<Test::Result>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: Botan_Tests::all_passed
    functionSourceFile: /src/botan/src/tests/runner/test_runner.cpp
    functionUses: 0
    functionsReached:
    - begin
    - std::all_of
    - end
    - tests_failed
    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:157,1
    - Dst: output
      Src: /src/botan/src/tests/runner/test_runner.cpp:160,1
    - Dst: Botan_Tests::Test_Runner::run_tests
      Src: /src/botan/src/tests/runner/test_runner.cpp:161,1
    - Dst: Botan::RWLock::RWLock
      Src: /src/botan/src/tests/runner/test_runner.cpp:165,1
    - Dst: run_a_test
      Src: /src/botan/src/tests/runner/test_runner.cpp:171,1
    - Dst: run_a_test
      Src: /src/botan/src/tests/runner/test_runner.cpp:176,1
    - Dst: Botan_Tests::Test::test_needs_serialization
      Src: /src/botan/src/tests/runner/test_runner.cpp:180,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/runner/test_runner.cpp:181,1
    - Dst: Botan::Thread_Pool::run
      Src: /src/botan/src/tests/runner/test_runner.cpp:181,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/tests/runner/test_runner.cpp:183,1
    - Dst: Botan::Thread_Pool::run
      Src: /src/botan/src/tests/runner/test_runner.cpp:183,1
    - Dst: std::vector::size
      Src: /src/botan/src/tests/runner/test_runner.cpp:188,1
    - Dst: waiting_for_next_results
      Src: /src/botan/src/tests/runner/test_runner.cpp:190,1
    - Dst: get
      Src: /src/botan/src/tests/runner/test_runner.cpp:192,1
    - Dst: record
      Src: /src/botan/src/tests/runner/test_runner.cpp:194,1
    - Dst: all_passed
      Src: /src/botan/src/tests/runner/test_runner.cpp:196,1
    - Dst: Botan::Thread_Pool::shutdown
      Src: /src/botan/src/tests/runner/test_runner.cpp:199,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: 203
      start: 155
    functionDepth: 3
    functionLinenumber: 155
    functionLinenumberEnd: 203
    functionName: Botan_Tests::Test_Runner::run_tests_multithreaded
    functionSourceFile: /src/botan/src/tests/runner/test_runner.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::Thread_Pool::run
    - waiting_for_next_results
    - std::vector::push_back
    - all_passed
    - record
    - run_a_test
    - Botan_Tests::Test_Runner::run_tests
    - Botan::RWLock::RWLock
    - Botan::Thread_Pool::shutdown
    - std::vector::size
    - get
    - output
    - Botan_Tests::Test::test_needs_serialization
    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:209,1
    - Dst: run_a_test
      Src: /src/botan/src/tests/runner/test_runner.cpp:211,1
    - Dst: record
      Src: /src/botan/src/tests/runner/test_runner.cpp:214,1
    - Dst: all_passed
      Src: /src/botan/src/tests/runner/test_runner.cpp:216,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' tests_to_run'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 220
    functionName: Botan_Tests::Test_Runner::run_tests
    functionSourceFile: /src/botan/src/tests/runner/test_runner.cpp
    functionUses: 4
    functionsReached:
    - record
    - run_a_test
    - waiting_for_next_results
    - 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::setw
    - std::ostringstream::str
    - 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:
    - std::ostringstream::str
    - count
    - std::ostringstream::precision
    - static_cast<double>
    linkageType: ''
    returnType: std::string
    signature: std::string format(const std::chrono::nanoseconds& dur)
  - 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::setw
    - std::ostringstream::str
    - 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:
    - std::ostringstream::str
    - count
    - std::ostringstream::precision
    - static_cast<double>
    linkageType: ''
    returnType: std::string
    signature: std::string format(const std::chrono::nanoseconds& dur)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:91,1
    - Dst: set_property
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:92,1
    - Dst: set_property
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:93,1
    - Dst: full_compiler_name_string
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:93,1
    - Dst: set_property
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:94,1
    - Dst: full_compiler_version_string
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:94,1
    - Dst: set_property
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:95,1
    - Dst: format
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:95,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:95,1
    - Dst: report_properties
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:96,1
    - Dst: set_property
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' opts'
    - output_dir
    argTypes:
    - Test_Options
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 100
    functionName: Botan_Tests::XmlReporter::XmlReporter
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 0
    functionsReached:
    - format
    - std::move
    - full_compiler_name_string
    - full_compiler_version_string
    - set_property
    - Botan::TLS::detail::AsyncBase::complete_now
    - 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:103,1
    - Dst: has_value
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:103,1
    - Dst: good
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:103,1
    - Dst: Botan_Tests::XmlReporter::render_preamble
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:105,1
    - Dst: value
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:105,1
    - Dst: Botan_Tests::XmlReporter::render_testsuites
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:106,1
    - Dst: value
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 107
    functionName: Botan_Tests::XmlReporter::render
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 0
    functionsReached:
    - good
    - Botan_Tests::XmlReporter::render_testsuites
    - BOTAN_STATE_CHECK
    - has_value
    - value
    - Botan_Tests::XmlReporter::render_preamble
    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:110,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:112,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:112,1
    - Dst: Botan::short_version_string
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:116,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:116,1
    - Dst: std::stringstream::str
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 119
    functionName: Botan_Tests::XmlReporter::get_unique_output_filename
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - std::stringstream::str
    - std::vector::data
    - Botan::store_be
    - Botan_Tests::Test::timestamp
    - Botan::short_version_string
    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:122,1
    - Dst: reset
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:123,1
    - Dst: set_property
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:126,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:126,1
    - Dst: current_test_run
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:126,1
    - Dst: set_property
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:127,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:127,1
    - Dst: total_test_runs
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:127,1
    - Dst: Botan_Tests::XmlReporter::get_unique_output_filename
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:128,1
    - Dst: std::ofstream
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:129,1
    - Dst: good
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:131,1
    - Dst: Botan::System_Error::System_Error
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:134,1
    - Dst: std::stringstream::str
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 136
    functionName: Botan_Tests::XmlReporter::next_run
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 0
    functionsReached:
    - good
    - current_test_run
    - std::stringstream::str
    - Botan::System_Error::System_Error
    - set_property
    - Botan_Tests::XmlReporter::get_unique_output_filename
    - std::ofstream
    - std::to_string
    - has_value
    - total_test_runs
    - reset
    linkageType: ''
    returnType: void
    signature: void XmlReporter::next_run()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:145,1
    - Dst: find
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:149,1
    - Dst: size
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:149,1
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:150,1
    - Dst: size
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:150,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: 152
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 152
    functionName: Botan_Tests::replace
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::replace
    - empty
    - find
    - size
    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:155,1
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:156,1
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:157,1
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:158,1
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 161
    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:172,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 179
    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:145,1
    - Dst: find
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:149,1
    - Dst: size
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:149,1
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:150,1
    - Dst: size
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:150,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: 152
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 152
    functionName: Botan_Tests::replace
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 4
    functionsReached:
    - Botan_Tests::replace
    - empty
    - find
    - size
    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:155,1
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:156,1
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:157,1
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:158,1
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 161
    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:172,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 179
    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: 185
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 185
    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:188,1
    - Dst: properties
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:193,1
    - Dst: escape
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:195,1
    - Dst: escape
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:196,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' out'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 200
    functionName: Botan_Tests::XmlReporter::render_properties
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 0
    functionsReached:
    - properties
    - escape
    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:205,1
    - Dst: tests_failed
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:206,1
    - Dst: format
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:207,1
    - Dst: elapsed_time
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:207,1
    - Dst: Botan_Tests::XmlReporter::render_properties
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:212,1
    - Dst: testsuites
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:214,1
    - Dst: Botan_Tests::XmlReporter::render_testsuite
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' out'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 219
    functionName: Botan_Tests::XmlReporter::render_testsuites
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 1
    functionsReached:
    - format
    - Botan_Tests::XmlReporter::render_properties
    - tests_failed
    - elapsed_time
    - testsuites
    - Botan_Tests::XmlReporter::render_testsuite
    - tests_run
    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:223,1
    - Dst: name
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:223,1
    - Dst: tests_run
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:224,1
    - Dst: tests_failed
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:225,1
    - Dst: format
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:226,1
    - Dst: timestamp
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:226,1
    - Dst: elapsed_time
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:228,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:229,1
    - Dst: format
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:230,1
    - Dst: auto::value
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:230,1
    - Dst: results
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:233,1
    - Dst: results
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:238,1
    - Dst: Botan_Tests::XmlReporter::render_testcase
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:239,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - ' out'
    - ' suite'
    argTypes:
    - std::ostream
    - Testsuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 244
    functionName: Botan_Tests::XmlReporter::render_testsuite
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 1
    functionsReached:
    - format
    - results
    - tests_failed
    - elapsed_time
    - auto::has_value
    - name
    - timestamp
    - auto::value
    - escape
    - Botan_Tests::XmlReporter::render_testcase
    - tests_run
    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:248,1
    - Dst: name
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:248,1
    - Dst: assertions
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:249,1
    - Dst: format
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:250,1
    - Dst: timestamp
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:250,1
    - Dst: elapsed_time
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:252,1
    - Dst: format
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:253,1
    - Dst: elapsed_time
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:253,1
    - Dst: code_location
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:256,1
    - Dst: escape
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:257,1
    - Dst: code_location
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:257,1
    - Dst: code_location
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:258,1
    - Dst: passed
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:261,1
    - Dst: notes
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:261,1
    - Dst: Botan_Tests::XmlReporter::render_failures_and_stdout
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:265,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - ' out'
    - ' test'
    argTypes:
    - std::ostream
    - TestSummary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 268
    functionName: Botan_Tests::XmlReporter::render_testcase
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 1
    functionsReached:
    - format
    - passed
    - elapsed_time
    - notes
    - name
    - timestamp
    - assertions
    - escape
    - code_location
    - Botan_Tests::XmlReporter::render_failures_and_stdout
    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:271,1
    - Dst: format_cdata
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:273,1
    - Dst: notes
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:279,1
    - Dst: notes
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:281,1
    - Dst: format_cdata
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:282,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' out'
    - ' test'
    argTypes:
    - std::ostream
    - TestSummary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 286
    functionName: Botan_Tests::XmlReporter::render_failures_and_stdout
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 1
    functionsReached:
    - notes
    - failures
    - format_cdata
    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::setw
    - std::ostringstream::str
    - 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:
    - std::ostringstream::str
    - count
    - std::ostringstream::precision
    - static_cast<double>
    linkageType: ''
    returnType: std::string
    signature: std::string format(const std::chrono::nanoseconds& dur)
  - 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::setw
    - std::ostringstream::str
    - 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:
    - std::ostringstream::str
    - count
    - std::ostringstream::precision
    - static_cast<double>
    linkageType: ''
    returnType: std::string
    signature: std::string format(const std::chrono::nanoseconds& dur)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:91,1
    - Dst: set_property
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:92,1
    - Dst: set_property
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:93,1
    - Dst: full_compiler_name_string
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:93,1
    - Dst: set_property
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:94,1
    - Dst: full_compiler_version_string
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:94,1
    - Dst: set_property
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:95,1
    - Dst: format
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:95,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:95,1
    - Dst: report_properties
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:96,1
    - Dst: set_property
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' opts'
    - output_dir
    argTypes:
    - Test_Options
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 100
    functionName: Botan_Tests::XmlReporter::XmlReporter
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 0
    functionsReached:
    - format
    - std::move
    - full_compiler_name_string
    - full_compiler_version_string
    - set_property
    - Botan::TLS::detail::AsyncBase::complete_now
    - 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:103,1
    - Dst: has_value
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:103,1
    - Dst: good
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:103,1
    - Dst: Botan_Tests::XmlReporter::render_preamble
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:105,1
    - Dst: value
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:105,1
    - Dst: Botan_Tests::XmlReporter::render_testsuites
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:106,1
    - Dst: value
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 107
    functionName: Botan_Tests::XmlReporter::render
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 0
    functionsReached:
    - good
    - Botan_Tests::XmlReporter::render_testsuites
    - BOTAN_STATE_CHECK
    - has_value
    - value
    - Botan_Tests::XmlReporter::render_preamble
    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:110,1
    - Dst: Botan::store_be
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:112,1
    - Dst: std::vector::data
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:112,1
    - Dst: Botan::short_version_string
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:116,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:116,1
    - Dst: std::stringstream::str
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 119
    functionName: Botan_Tests::XmlReporter::get_unique_output_filename
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 1
    functionsReached:
    - Botan::hex_encode
    - std::stringstream::str
    - std::vector::data
    - Botan::store_be
    - Botan_Tests::Test::timestamp
    - Botan::short_version_string
    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:122,1
    - Dst: reset
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:123,1
    - Dst: set_property
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:126,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:126,1
    - Dst: current_test_run
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:126,1
    - Dst: set_property
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:127,1
    - Dst: std::to_string
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:127,1
    - Dst: total_test_runs
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:127,1
    - Dst: Botan_Tests::XmlReporter::get_unique_output_filename
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:128,1
    - Dst: std::ofstream
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:129,1
    - Dst: good
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:131,1
    - Dst: Botan::System_Error::System_Error
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:134,1
    - Dst: std::stringstream::str
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:134,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 136
    functionName: Botan_Tests::XmlReporter::next_run
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 0
    functionsReached:
    - good
    - current_test_run
    - std::stringstream::str
    - Botan::System_Error::System_Error
    - set_property
    - Botan_Tests::XmlReporter::get_unique_output_filename
    - std::ofstream
    - std::to_string
    - has_value
    - total_test_runs
    - reset
    linkageType: ''
    returnType: void
    signature: void XmlReporter::next_run()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:145,1
    - Dst: find
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:149,1
    - Dst: size
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:149,1
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:150,1
    - Dst: size
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:150,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: 152
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 152
    functionName: Botan_Tests::replace
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 7
    functionsReached:
    - Botan_Tests::replace
    - empty
    - find
    - size
    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:155,1
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:156,1
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:157,1
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:158,1
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 161
    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:172,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 179
    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:145,1
    - Dst: find
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:149,1
    - Dst: size
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:149,1
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:150,1
    - Dst: size
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:150,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: 152
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 152
    functionName: Botan_Tests::replace
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 10
    functionsReached:
    - Botan_Tests::replace
    - empty
    - find
    - size
    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:155,1
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:156,1
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:157,1
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:158,1
    - Dst: Botan_Tests::replace
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 161
    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:172,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 179
    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: 185
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 185
    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:188,1
    - Dst: properties
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:193,1
    - Dst: escape
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:195,1
    - Dst: escape
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:196,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' out'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 200
    functionName: Botan_Tests::XmlReporter::render_properties
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 1
    functionsReached:
    - properties
    - escape
    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:205,1
    - Dst: tests_failed
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:206,1
    - Dst: format
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:207,1
    - Dst: elapsed_time
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:207,1
    - Dst: Botan_Tests::XmlReporter::render_properties
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:212,1
    - Dst: testsuites
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:214,1
    - Dst: Botan_Tests::XmlReporter::render_testsuite
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' out'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 219
    functionName: Botan_Tests::XmlReporter::render_testsuites
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 2
    functionsReached:
    - format
    - Botan_Tests::XmlReporter::render_properties
    - tests_failed
    - elapsed_time
    - testsuites
    - Botan_Tests::XmlReporter::render_testsuite
    - tests_run
    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:223,1
    - Dst: name
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:223,1
    - Dst: tests_run
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:224,1
    - Dst: tests_failed
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:225,1
    - Dst: format
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:226,1
    - Dst: timestamp
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:226,1
    - Dst: elapsed_time
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:228,1
    - Dst: auto::has_value
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:229,1
    - Dst: format
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:230,1
    - Dst: auto::value
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:230,1
    - Dst: results
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:233,1
    - Dst: results
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:238,1
    - Dst: Botan_Tests::XmlReporter::render_testcase
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:239,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - ' out'
    - ' suite'
    argTypes:
    - std::ostream
    - Testsuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 244
    functionName: Botan_Tests::XmlReporter::render_testsuite
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 2
    functionsReached:
    - format
    - results
    - tests_failed
    - elapsed_time
    - auto::has_value
    - name
    - timestamp
    - auto::value
    - escape
    - Botan_Tests::XmlReporter::render_testcase
    - tests_run
    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:248,1
    - Dst: name
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:248,1
    - Dst: assertions
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:249,1
    - Dst: format
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:250,1
    - Dst: timestamp
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:250,1
    - Dst: elapsed_time
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:252,1
    - Dst: format
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:253,1
    - Dst: elapsed_time
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:253,1
    - Dst: code_location
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:256,1
    - Dst: escape
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:257,1
    - Dst: code_location
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:257,1
    - Dst: code_location
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:258,1
    - Dst: passed
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:261,1
    - Dst: notes
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:261,1
    - Dst: Botan_Tests::XmlReporter::render_failures_and_stdout
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:265,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - ' out'
    - ' test'
    argTypes:
    - std::ostream
    - TestSummary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 268
    functionName: Botan_Tests::XmlReporter::render_testcase
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 2
    functionsReached:
    - format
    - passed
    - elapsed_time
    - notes
    - name
    - timestamp
    - assertions
    - escape
    - code_location
    - Botan_Tests::XmlReporter::render_failures_and_stdout
    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:271,1
    - Dst: format_cdata
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:273,1
    - Dst: notes
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:279,1
    - Dst: notes
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:281,1
    - Dst: format_cdata
      Src: /src/botan/src/tests/runner/test_xml_reporter.cpp:282,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - ' out'
    - ' test'
    argTypes:
    - std::ostream
    - TestSummary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 286
    functionName: Botan_Tests::XmlReporter::render_failures_and_stdout
    functionSourceFile: /src/botan/src/tests/runner/test_xml_reporter.cpp
    functionUses: 2
    functionsReached:
    - notes
    - failures
    - format_cdata
    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: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    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: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    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:27,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 35
    functionName: test_conditional_jump_on_poisoned_data
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::poison
    - next_byte
    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:38,1
    - Dst: random_array
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:39,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: test_array_access_on_poisoned_data
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::poison
    - random_array
    - next_byte
    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:47,1
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:48,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 58
    functionName: test_conditional_jump_on_transitively_poisoned_data
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::poison
    - next_byte
    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:61,1
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:62,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:63,1
    - Dst: random_array
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 71
    functionName: test_array_access_on_transitively_poisoned_data
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - random_array
    - Botan::CT::poison
    - next_byte
    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:74,1
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:75,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:76,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 85
    functionName: test_unpoisen_transitively_poisoned_data
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::unpoison
    - Botan::CT::poison
    - next_byte
    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:88,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:89,1
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 98
    functionName: test_poisoned_and_cleared_data
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::poison
    - next_byte
    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:101,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:102,1
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 114
    functionName: test_conditional_branch_on_unpoisoned_bit
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::poison
    - next_byte
    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:117,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:118,1
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 130
    functionName: test_conditional_branch_on_poisoned_bit
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::poison
    - next_byte
    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:133,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:134,1
    - Dst: std::memset
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:137,1
    - Dst: std::array::data
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:137,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:149,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:156,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 158
    functionName: test_clang_conditional_jump_on_bare_metal_ct_mask
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - std::memset
    - std::array::data
    - Botan::CT::poison
    - next_byte
    - Botan::hex_encode
    - static_cast<uint8_t>
    - Botan::CT::unpoison
    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:161,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:162,1
    - Dst: auto::back
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 168
    functionName: test_poison_range
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - auto::back
    - Botan::CT::poison
    - random_array
    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:171,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:172,1
    - Dst: copy
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:176,1
    - Dst: auto::begin
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:176,1
    - Dst: auto::end
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:176,1
    - Dst: std::back_inserter
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:176,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:179,1
    - Dst: std::vector::back
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 185
    functionName: test_unpoison_range
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - std::vector::back
    - Botan::CT::poison
    - auto::end
    - copy
    - std::back_inserter
    - random_array
    - Botan::CT::unpoison
    - auto::begin
    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:188,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 196
    functionName: test_scoped_poison_inner
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::scoped_poison
    - next_byte
    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:199,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:202,1
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 211
    functionName: test_scoped_poison_outer
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::scoped_poison
    - next_byte
    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:216,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:217,1
    - Dst: std::memset
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:220,1
    - Dst: std::array::data
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:220,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:225,1
    - Dst: auto::select
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:227,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:230,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 232
    functionName: regression_test_conditional_jump_in_ct_mask
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - std::memset
    - std::array::data
    - auto::select
    - Botan::CT::poison
    - next_byte
    - Botan::hex_encode
    - Botan::CT::unpoison
    - Botan::sha512_msg_expand
    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:235,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:236,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 253
    functionName: cond_jump_on_shifted_out_secret_data
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::poison
    - random_array
    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: 278
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 278
    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:286,1
    - Dst: str
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:287,1
    - Dst: str
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' tests'
    argTypes:
    - std::map<std::string, Test>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 289
    functionName: list_tests
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - str
    - Botan::fmt
    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:27,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 35
    functionName: test_conditional_jump_on_poisoned_data
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::poison
    - next_byte
    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:38,1
    - Dst: random_array
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:39,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: test_array_access_on_poisoned_data
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::poison
    - random_array
    - next_byte
    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:47,1
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:48,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 58
    functionName: test_conditional_jump_on_transitively_poisoned_data
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::poison
    - next_byte
    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:61,1
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:62,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:63,1
    - Dst: random_array
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 71
    functionName: test_array_access_on_transitively_poisoned_data
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - random_array
    - Botan::CT::poison
    - next_byte
    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:74,1
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:75,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:76,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 85
    functionName: test_unpoisen_transitively_poisoned_data
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::unpoison
    - Botan::CT::poison
    - next_byte
    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:88,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:89,1
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 98
    functionName: test_poisoned_and_cleared_data
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::poison
    - next_byte
    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:101,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:102,1
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 114
    functionName: test_conditional_branch_on_unpoisoned_bit
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::poison
    - next_byte
    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:117,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:118,1
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 130
    functionName: test_conditional_branch_on_poisoned_bit
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::poison
    - next_byte
    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:133,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:134,1
    - Dst: std::memset
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:137,1
    - Dst: std::array::data
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:137,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:149,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:156,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 158
    functionName: test_clang_conditional_jump_on_bare_metal_ct_mask
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - std::memset
    - std::array::data
    - Botan::CT::poison
    - next_byte
    - Botan::hex_encode
    - static_cast<uint8_t>
    - Botan::CT::unpoison
    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:161,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:162,1
    - Dst: auto::back
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 168
    functionName: test_poison_range
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - auto::back
    - Botan::CT::poison
    - random_array
    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:171,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:172,1
    - Dst: copy
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:176,1
    - Dst: auto::begin
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:176,1
    - Dst: auto::end
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:176,1
    - Dst: std::back_inserter
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:176,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:179,1
    - Dst: std::vector::back
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 185
    functionName: test_unpoison_range
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - std::vector::back
    - Botan::CT::poison
    - auto::end
    - copy
    - std::back_inserter
    - random_array
    - Botan::CT::unpoison
    - auto::begin
    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:188,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 196
    functionName: test_scoped_poison_inner
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::scoped_poison
    - next_byte
    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:199,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:202,1
    - Dst: next_byte
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 211
    functionName: test_scoped_poison_outer
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::scoped_poison
    - next_byte
    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:216,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:217,1
    - Dst: std::memset
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:220,1
    - Dst: std::array::data
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:220,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:225,1
    - Dst: auto::select
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:227,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:230,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 232
    functionName: regression_test_conditional_jump_in_ct_mask
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - std::memset
    - std::array::data
    - auto::select
    - Botan::CT::poison
    - next_byte
    - Botan::hex_encode
    - Botan::CT::unpoison
    - Botan::sha512_msg_expand
    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:235,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:236,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 253
    functionName: cond_jump_on_shifted_out_secret_data
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::poison
    - random_array
    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: 278
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 278
    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:286,1
    - Dst: str
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:287,1
    - Dst: str
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' tests'
    argTypes:
    - std::map<std::string, Test>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 289
    functionName: list_tests
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 0
    functionsReached:
    - str
    - Botan::fmt
    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:315,1
    - Dst: print_help
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:321,1
    - Dst: list_tests
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:326,1
    - Dst: std::map::find
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:330,1
    - Dst: std::map::end
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:331,1
    - Dst: Botan::CT::poison_has_effect
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:341,1
    - Dst: auto::second::test
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:347,1
    - Dst: Botan::system_rng
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:347,1
    - Dst: what
      Src: /src/botan/src/ct_selftest/ct_selftest.cpp:349,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 293
    functionDepth: 2
    functionLinenumber: 293
    functionLinenumberEnd: 355
    functionName: main
    functionSourceFile: /src/botan/src/ct_selftest/ct_selftest.cpp
    functionUses: 47
    functionsReached:
    - print_help
    - list_tests
    - std::map::end
    - std::map::find
    - Botan::system_rng
    - what
    - auto::second::test
    - Botan::CT::poison_has_effect
    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: 47
    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: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    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: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    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: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    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:29,1
    - Dst: get_arg
      Src: /src/botan/src/cli/hmac.cpp:30,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/cli/hmac.cpp:32,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/hmac.cpp:35,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/cli/hmac.cpp:38,1
    - Dst: slurp_file
      Src: /src/botan/src/cli/hmac.cpp:38,1
    - Dst: get_arg
      Src: /src/botan/src/cli/hmac.cpp:38,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/hmac.cpp:40,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/hmac.cpp:42,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/hmac.cpp:43,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/hmac.cpp:44,1
    - Dst: std::unique_ptr::update
      Src: /src/botan/src/cli/hmac.cpp:49,1
    - Dst: read_file
      Src: /src/botan/src/cli/hmac.cpp:50,1
    - Dst: output
      Src: /src/botan/src/cli/hmac.cpp:51,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/hmac.cpp:51,1
    - Dst: std::unique_ptr::final
      Src: /src/botan/src/cli/hmac.cpp:51,1
    - Dst: output
      Src: /src/botan/src/cli/hmac.cpp:54,1
    - Dst: output
      Src: /src/botan/src/cli/hmac.cpp:57,1
    - Dst: error_output
      Src: /src/botan/src/cli/hmac.cpp:59,1
    - Dst: what
      Src: /src/botan/src/cli/hmac.cpp:59,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 62
    functionName: Botan_CLI::HMAC::go
    functionSourceFile: /src/botan/src/cli/hmac.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - CLI_Error_Unsupported
    - get_arg_sz
    - slurp_file
    - std::vector::push_back
    - Botan::hex_encode
    - std::unique_ptr::final
    - get_arg_list
    - error_output
    - std::vector::empty
    - std::unique_ptr::set_key
    - Botan::MessageAuthenticationCode::create
    - what
    - read_file
    - output
    - std::unique_ptr::update
    - flag_set
    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::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: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    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: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    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:29,1
    - Dst: get_arg
      Src: /src/botan/src/cli/hmac.cpp:30,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/cli/hmac.cpp:32,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/hmac.cpp:35,1
    - Dst: std::unique_ptr::set_key
      Src: /src/botan/src/cli/hmac.cpp:38,1
    - Dst: slurp_file
      Src: /src/botan/src/cli/hmac.cpp:38,1
    - Dst: get_arg
      Src: /src/botan/src/cli/hmac.cpp:38,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/hmac.cpp:40,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/hmac.cpp:42,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/hmac.cpp:43,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/hmac.cpp:44,1
    - Dst: std::unique_ptr::update
      Src: /src/botan/src/cli/hmac.cpp:49,1
    - Dst: read_file
      Src: /src/botan/src/cli/hmac.cpp:50,1
    - Dst: output
      Src: /src/botan/src/cli/hmac.cpp:51,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/hmac.cpp:51,1
    - Dst: std::unique_ptr::final
      Src: /src/botan/src/cli/hmac.cpp:51,1
    - Dst: output
      Src: /src/botan/src/cli/hmac.cpp:54,1
    - Dst: output
      Src: /src/botan/src/cli/hmac.cpp:57,1
    - Dst: error_output
      Src: /src/botan/src/cli/hmac.cpp:59,1
    - Dst: what
      Src: /src/botan/src/cli/hmac.cpp:59,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 62
    functionName: Botan_CLI::HMAC::go
    functionSourceFile: /src/botan/src/cli/hmac.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - CLI_Error_Unsupported
    - get_arg_sz
    - slurp_file
    - std::vector::push_back
    - Botan::hex_encode
    - std::unique_ptr::final
    - get_arg_list
    - error_output
    - std::vector::empty
    - std::unique_ptr::set_key
    - Botan::MessageAuthenticationCode::create
    - what
    - read_file
    - output
    - std::unique_ptr::update
    - flag_set
    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: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    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:25,1
    - Dst: Botan_CLI::PerfTest_PKEnc::keygen_params
      Src: /src/botan/src/cli/perf_pk_enc.cpp:27,1
    - Dst: Botan_CLI::PerfTest_PKEnc::format_name
      Src: /src/botan/src/cli/perf_pk_enc.cpp:30,1
    - Dst: Botan_CLI::PerfTest_PKEnc::bench_pk_ka
      Src: /src/botan/src/cli/perf_pk_enc.cpp:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 33
    functionName: Botan_CLI::PerfTest_PKEnc::go
    functionSourceFile: /src/botan/src/cli/perf_pk_enc.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::PerfTest_PKEnc::format_name
    - Botan_CLI::PerfTest_PKEnc::algo
    - Botan_CLI::PerfTest_PKEnc::keygen_params
    - Botan_CLI::PerfTest_PKEnc::bench_pk_ka
    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:40,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pk_enc.cpp:41,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_enc.cpp:46,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_enc.cpp:48,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_enc.cpp:48,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_enc.cpp:51,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::public_key
      Src: /src/botan/src/cli/perf_pk_enc.cpp:55,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_enc.cpp:63,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_enc.cpp:64,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_enc.cpp:66,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_enc.cpp:66,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/perf_pk_enc.cpp:68,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_enc.cpp:68,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_pk_enc.cpp:69,1
    - Dst: Botan::PK_Encryptor_EME::maximum_input_size
      Src: /src/botan/src/cli/perf_pk_enc.cpp:69,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_enc.cpp:70,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/cli/perf_pk_enc.cpp:70,1
    - Dst: auto::under
      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_Decryptor_EME::decrypt
      Src: /src/botan/src/cli/perf_pk_enc.cpp:74,1
    - Dst: Botan::unlock
      Src: /src/botan/src/cli/perf_pk_enc.cpp:77,1
    - Dst: error_output
      Src: /src/botan/src/cli/perf_pk_enc.cpp:78,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_enc.cpp:83,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_enc.cpp:84,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_enc.cpp:85,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: 87
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 87
    functionName: Botan_CLI::PerfTest_PKEnc::bench_pk_ka
    functionSourceFile: /src/botan/src/cli/perf_pk_enc.cpp
    functionUses: 1
    functionsReached:
    - auto::public_key
    - rng
    - Botan::unlock
    - auto::run
    - Botan::PK_Decryptor_EME::decrypt
    - Botan::create_private_key
    - auto::under
    - std::vector::empty
    - Botan::PK_Encryptor_EME::maximum_input_size
    - random_vec
    - runtime
    - record_result
    - make_timer
    - error_output
    - Botan::PK_Encryptor_EME::encrypt
    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: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    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: 105
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 105
    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:108,1
    - Dst: substr
      Src: /src/botan/src/cli/perf_pk_enc.cpp:108,1
    - Dst: find_last_of
      Src: /src/botan/src/cli/perf_pk_enc.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' alg'
    - ' param'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: Botan_CLI::PerfTest_ElGamal::format_name
    functionSourceFile: /src/botan/src/cli/perf_pk_enc.cpp
    functionUses: 0
    functionsReached:
    - substr
    - Botan::fmt
    - find_last_of
    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: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    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:25,1
    - Dst: Botan_CLI::PerfTest_PKEnc::keygen_params
      Src: /src/botan/src/cli/perf_pk_enc.cpp:27,1
    - Dst: Botan_CLI::PerfTest_PKEnc::format_name
      Src: /src/botan/src/cli/perf_pk_enc.cpp:30,1
    - Dst: Botan_CLI::PerfTest_PKEnc::bench_pk_ka
      Src: /src/botan/src/cli/perf_pk_enc.cpp:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 24
    functionDepth: 4
    functionLinenumber: 24
    functionLinenumberEnd: 33
    functionName: Botan_CLI::PerfTest_PKEnc::go
    functionSourceFile: /src/botan/src/cli/perf_pk_enc.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::PerfTest_PKEnc::format_name
    - Botan_CLI::PerfTest_PKEnc::algo
    - Botan_CLI::PerfTest_PKEnc::keygen_params
    - Botan_CLI::PerfTest_PKEnc::bench_pk_ka
    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:40,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pk_enc.cpp:41,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_enc.cpp:46,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_enc.cpp:48,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_enc.cpp:48,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_enc.cpp:51,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::public_key
      Src: /src/botan/src/cli/perf_pk_enc.cpp:55,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_enc.cpp:63,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_enc.cpp:64,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_enc.cpp:66,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_enc.cpp:66,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/perf_pk_enc.cpp:68,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_enc.cpp:68,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_pk_enc.cpp:69,1
    - Dst: Botan::PK_Encryptor_EME::maximum_input_size
      Src: /src/botan/src/cli/perf_pk_enc.cpp:69,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_enc.cpp:70,1
    - Dst: Botan::PK_Encryptor_EME::encrypt
      Src: /src/botan/src/cli/perf_pk_enc.cpp:70,1
    - Dst: auto::under
      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_Decryptor_EME::decrypt
      Src: /src/botan/src/cli/perf_pk_enc.cpp:74,1
    - Dst: Botan::unlock
      Src: /src/botan/src/cli/perf_pk_enc.cpp:77,1
    - Dst: error_output
      Src: /src/botan/src/cli/perf_pk_enc.cpp:78,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_enc.cpp:83,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_enc.cpp:84,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_enc.cpp:85,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: 87
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 87
    functionName: Botan_CLI::PerfTest_PKEnc::bench_pk_ka
    functionSourceFile: /src/botan/src/cli/perf_pk_enc.cpp
    functionUses: 2
    functionsReached:
    - auto::public_key
    - rng
    - Botan::unlock
    - auto::run
    - Botan::PK_Decryptor_EME::decrypt
    - Botan::create_private_key
    - auto::under
    - std::vector::empty
    - Botan::PK_Encryptor_EME::maximum_input_size
    - random_vec
    - runtime
    - record_result
    - make_timer
    - error_output
    - Botan::PK_Encryptor_EME::encrypt
    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: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    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: 105
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 105
    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:108,1
    - Dst: substr
      Src: /src/botan/src/cli/perf_pk_enc.cpp:108,1
    - Dst: find_last_of
      Src: /src/botan/src/cli/perf_pk_enc.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' alg'
    - ' param'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: Botan_CLI::PerfTest_ElGamal::format_name
    functionSourceFile: /src/botan/src/cli/perf_pk_enc.cpp
    functionUses: 0
    functionsReached:
    - substr
    - Botan::fmt
    - find_last_of
    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: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    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:41,1
    - Dst: Botan_CLI::Command::get_cmd
      Src: /src/botan/src/cli/utils.cpp:43,1
    - Dst: auto::group
      Src: /src/botan/src/cli/utils.cpp:45,1
    - Dst: push_back
      Src: /src/botan/src/cli/utils.cpp:45,1
    - Dst: std::move
      Src: /src/botan/src/cli/utils.cpp:45,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/utils.cpp:77,1
    - Dst: std::map::find
      Src: /src/botan/src/cli/utils.cpp:82,1
    - Dst: std::map::end
      Src: /src/botan/src/cli/utils.cpp:83,1
    - Dst: std::setw
      Src: /src/botan/src/cli/utils.cpp:90,1
    - Dst: auto::cmd_name
      Src: /src/botan/src/cli/utils.cpp:90,1
    - Dst: auto::description
      Src: /src/botan/src/cli/utils.cpp:90,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/utils.cpp:95,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 96
    functionName: Botan_CLI::Print_Help::help_text
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - auto::group
    - std::map::end
    - std::ostringstream::str
    - Botan_CLI::Command::registered_cmds
    - std::map::find
    - auto::description
    - std::string::empty
    - std::setw
    - push_back
    - auto::cmd_name
    - Botan_CLI::Command::get_cmd
    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: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    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: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    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:103,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:104,1
    - Dst: Botan_CLI::Print_Help::help_text
      Src: /src/botan/src/cli/utils.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: Botan_CLI::Print_Help::go
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Print_Help::set_return_code
    - output
    - Botan_CLI::Print_Help::help_text
    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: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    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: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    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: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    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:119,1
    - Dst: Botan_CLI::Command::registered_cmds
      Src: /src/botan/src/cli/utils.cpp:122,1
    - Dst: verbose
      Src: /src/botan/src/cli/utils.cpp:129,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:130,1
    - Dst: Botan_CLI::Has_Command::set_return_code
      Src: /src/botan/src/cli/utils.cpp:134,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 136
    functionName: Botan_CLI::Has_Command::go
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - Botan_CLI::Has_Command::set_return_code
    - Botan_CLI::Command::registered_cmds
    - verbose
    - 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: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    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: 151
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 151
    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: 153
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 153
    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: 155
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 155
    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:158,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:161,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:163,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:166,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:168,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:170,1
    - Dst: Botan::version_major
      Src: /src/botan/src/cli/utils.cpp:170,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/utils.cpp:172,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 174
    functionName: Botan_CLI::Config_Info::go
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - output
    - Botan::version_major
    - 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: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    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: 183
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 183
    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: 185
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 185
    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:188,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:189,1
    - Dst: Botan::version_string
      Src: /src/botan/src/cli/utils.cpp:189,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:191,1
    - Dst: Botan::short_version_string
      Src: /src/botan/src/cli/utils.cpp:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 193
    functionName: Botan_CLI::Version_Info::go
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - output
    - Botan::version_string
    - Botan::short_version_string
    - flag_set
    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: 202
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 202
    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: 204
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 204
    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: 208
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 208
    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:210,1
    - Dst: Botan::CPUID::to_string
      Src: /src/botan/src/cli/utils.cpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 210
    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: 221
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 221
    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: 223
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 223
    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: 225
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 225
    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:228,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:229,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/utils.cpp:233,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:236,1
    - Dst: Botan::OS::get_cpu_cycle_counter
      Src: /src/botan/src/cli/utils.cpp:240,1
    - Dst: Botan::OS::get_system_timestamp_ns
      Src: /src/botan/src/cli/utils.cpp:241,1
    - Dst: Botan::OS::get_system_timestamp_ns
      Src: /src/botan/src/cli/utils.cpp:247,1
    - Dst: Botan::OS::get_cpu_cycle_counter
      Src: /src/botan/src/cli/utils.cpp:248,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:252,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:257,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/utils.cpp:264,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:268,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/utils.cpp:268,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:271,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/cli/utils.cpp:271,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 273
    functionName: Botan_CLI::Cycle_Counter::go
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - static_cast<double>
    - static_cast<size_t>
    - Botan::OS::get_cpu_cycle_counter
    - std::setprecision
    - output
    - Botan::OS::get_system_timestamp_ns
    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: 284
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 284
    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: 286
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 286
    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: 288
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 288
    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:292,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/cli/utils.cpp:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 293
    functionName: Botan_CLI::Print_UUID::go
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - output
    - Botan::UUID::to_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: 304
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 304
    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: 306
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 306
    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: 308
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 308
    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:311,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/utils.cpp:312,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/utils.cpp:313,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:315,1
    - Dst: Botan::HTTP::GET_sync
      Src: /src/botan/src/cli/utils.cpp:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 316
    functionName: Botan_CLI::HTTP_Get::go
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - output
    - get_arg_sz
    - Botan::HTTP::GET_sync
    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: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    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:41,1
    - Dst: Botan_CLI::Command::get_cmd
      Src: /src/botan/src/cli/utils.cpp:43,1
    - Dst: auto::group
      Src: /src/botan/src/cli/utils.cpp:45,1
    - Dst: push_back
      Src: /src/botan/src/cli/utils.cpp:45,1
    - Dst: std::move
      Src: /src/botan/src/cli/utils.cpp:45,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/utils.cpp:77,1
    - Dst: std::map::find
      Src: /src/botan/src/cli/utils.cpp:82,1
    - Dst: std::map::end
      Src: /src/botan/src/cli/utils.cpp:83,1
    - Dst: std::setw
      Src: /src/botan/src/cli/utils.cpp:90,1
    - Dst: auto::cmd_name
      Src: /src/botan/src/cli/utils.cpp:90,1
    - Dst: auto::description
      Src: /src/botan/src/cli/utils.cpp:90,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/utils.cpp:95,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 96
    functionName: Botan_CLI::Print_Help::help_text
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 1
    functionsReached:
    - std::move
    - auto::group
    - std::map::end
    - std::ostringstream::str
    - Botan_CLI::Command::registered_cmds
    - std::map::find
    - auto::description
    - std::string::empty
    - std::setw
    - push_back
    - auto::cmd_name
    - Botan_CLI::Command::get_cmd
    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: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    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: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    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:103,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:104,1
    - Dst: Botan_CLI::Print_Help::help_text
      Src: /src/botan/src/cli/utils.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: Botan_CLI::Print_Help::go
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Print_Help::set_return_code
    - output
    - Botan_CLI::Print_Help::help_text
    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: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    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: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    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: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    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:119,1
    - Dst: Botan_CLI::Command::registered_cmds
      Src: /src/botan/src/cli/utils.cpp:122,1
    - Dst: verbose
      Src: /src/botan/src/cli/utils.cpp:129,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:130,1
    - Dst: Botan_CLI::Has_Command::set_return_code
      Src: /src/botan/src/cli/utils.cpp:134,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 136
    functionName: Botan_CLI::Has_Command::go
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - Botan_CLI::Has_Command::set_return_code
    - Botan_CLI::Command::registered_cmds
    - verbose
    - 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: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    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: 151
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 151
    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: 153
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 153
    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: 155
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 155
    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:158,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:161,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:163,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:166,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:168,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:170,1
    - Dst: Botan::version_major
      Src: /src/botan/src/cli/utils.cpp:170,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/utils.cpp:172,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 174
    functionName: Botan_CLI::Config_Info::go
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - output
    - Botan::version_major
    - 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: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    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: 183
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 183
    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: 185
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 185
    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:188,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:189,1
    - Dst: Botan::version_string
      Src: /src/botan/src/cli/utils.cpp:189,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:191,1
    - Dst: Botan::short_version_string
      Src: /src/botan/src/cli/utils.cpp:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 193
    functionName: Botan_CLI::Version_Info::go
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - output
    - Botan::version_string
    - Botan::short_version_string
    - flag_set
    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: 202
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 202
    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: 204
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 204
    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: 208
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 208
    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:210,1
    - Dst: Botan::CPUID::to_string
      Src: /src/botan/src/cli/utils.cpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 210
    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: 221
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 221
    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: 223
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 223
    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: 225
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 225
    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:228,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:229,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/utils.cpp:233,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:236,1
    - Dst: Botan::OS::get_cpu_cycle_counter
      Src: /src/botan/src/cli/utils.cpp:240,1
    - Dst: Botan::OS::get_system_timestamp_ns
      Src: /src/botan/src/cli/utils.cpp:241,1
    - Dst: Botan::OS::get_system_timestamp_ns
      Src: /src/botan/src/cli/utils.cpp:247,1
    - Dst: Botan::OS::get_cpu_cycle_counter
      Src: /src/botan/src/cli/utils.cpp:248,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:252,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:257,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/utils.cpp:264,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:268,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/utils.cpp:268,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:271,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/cli/utils.cpp:271,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 273
    functionName: Botan_CLI::Cycle_Counter::go
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - get_arg_sz
    - static_cast<double>
    - static_cast<size_t>
    - Botan::OS::get_cpu_cycle_counter
    - std::setprecision
    - output
    - Botan::OS::get_system_timestamp_ns
    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: 284
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 284
    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: 286
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 286
    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: 288
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 288
    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:292,1
    - Dst: Botan::UUID::to_string
      Src: /src/botan/src/cli/utils.cpp:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 293
    functionName: Botan_CLI::Print_UUID::go
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - output
    - Botan::UUID::to_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: 304
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 304
    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: 306
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 306
    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: 308
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 308
    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:311,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/utils.cpp:312,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/utils.cpp:313,1
    - Dst: output
      Src: /src/botan/src/cli/utils.cpp:315,1
    - Dst: Botan::HTTP::GET_sync
      Src: /src/botan/src/cli/utils.cpp:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 316
    functionName: Botan_CLI::HTTP_Get::go
    functionSourceFile: /src/botan/src/cli/utils.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - output
    - get_arg_sz
    - Botan::HTTP::GET_sync
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/cli/cli_rng.cpp:46,1
    - Dst: std::make_shared<Botan::System_RNG>
      Src: /src/botan/src/cli/cli_rng.cpp:47,1
    - Dst: std::make_shared<Botan::ESDM_RNG>
      Src: /src/botan/src/cli/cli_rng.cpp:53,1
    - Dst: std::make_shared<Botan::ESDM_RNG>
      Src: /src/botan/src/cli/cli_rng.cpp:56,1
    - Dst: std::make_shared<Botan::Jitter_RNG>
      Src: /src/botan/src/cli/cli_rng.cpp:62,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/cli_rng.cpp:66,1
    - Dst: empty
      Src: /src/botan/src/cli/cli_rng.cpp:69,1
    - Dst: std::make_shared<Botan::AutoSeeded_RNG>
      Src: /src/botan/src/cli/cli_rng.cpp:74,1
    - Dst: Botan::Entropy_Sources::global_sources
      Src: /src/botan/src/cli/cli_rng.cpp:74,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/cli_rng.cpp:76,1
    - Dst: std::make_shared<Botan::AutoSeeded_RNG>
      Src: /src/botan/src/cli/cli_rng.cpp:79,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/cli_rng.cpp:82,1
    - Dst: std::shared_ptr::add_entropy
      Src: /src/botan/src/cli/cli_rng.cpp:83,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/cli_rng.cpp:83,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/cli_rng.cpp:83,1
    - Dst: empty
      Src: /src/botan/src/cli/cli_rng.cpp:90,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/cli_rng.cpp:90,1
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/cli/cli_rng.cpp:91,1
    - Dst: std::make_shared<Botan::HMAC_DRBG>
      Src: /src/botan/src/cli/cli_rng.cpp:92,1
    - Dst: std::move
      Src: /src/botan/src/cli/cli_rng.cpp:92,1
    - Dst: auto::add_entropy
      Src: /src/botan/src/cli/cli_rng.cpp:93,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/cli_rng.cpp:93,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/cli_rng.cpp:93,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/cli/cli_rng.cpp:95,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/cli_rng.cpp:96,1
    - Dst: auto::name
      Src: /src/botan/src/cli/cli_rng.cpp:96,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/cli_rng.cpp:96,1
    - Dst: auto::security_level
      Src: /src/botan/src/cli/cli_rng.cpp:96,1
    - Dst: empty
      Src: /src/botan/src/cli/cli_rng.cpp:105,1
    - Dst: Botan::Processor_RNG::available
      Src: /src/botan/src/cli/cli_rng.cpp:106,1
    - Dst: std::make_shared<Botan::Processor_RNG>
      Src: /src/botan/src/cli/cli_rng.cpp:107,1
    - Dst: empty
      Src: /src/botan/src/cli/cli_rng.cpp:108,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/cli_rng.cpp:109,1
    - Dst: empty
      Src: /src/botan/src/cli/cli_rng.cpp:114,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/cli_rng.cpp:115,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/cli_rng.cpp:117,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: 119
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 119
    functionName: Botan_CLI::cli_make_rng
    functionSourceFile: /src/botan/src/cli/cli_rng.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Botan::Processor_RNG::available
    - auto::security_level
    - std::make_shared<Botan::Jitter_RNG>
    - CLI_Error_Unsupported
    - auto::name
    - std::shared_ptr::add_entropy
    - std::make_shared<Botan::System_RNG>
    - std::vector::data
    - auto::add_entropy
    - Botan::MessageAuthenticationCode::create_or_throw
    - std::make_shared<Botan::Processor_RNG>
    - Botan::Entropy_Sources::global_sources
    - CLI_Error
    - std::make_shared<Botan::HMAC_DRBG>
    - std::vector::empty
    - auto::is_seeded
    - std::vector::size
    - std::move
    - std::make_shared<Botan::AutoSeeded_RNG>
    - empty
    - std::to_string
    - std::make_shared<Botan::ESDM_RNG>
    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: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    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: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    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: 130
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 130
    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:133,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cli_rng.cpp:134,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/cli_rng.cpp:136,1
    - Dst: flag_set
      Src: /src/botan/src/cli/cli_rng.cpp:138,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cli_rng.cpp:145,1
    - Dst: cli_make_rng
      Src: /src/botan/src/cli/cli_rng.cpp:146,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/cli_rng.cpp:148,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/cli/cli_rng.cpp:149,1
    - Dst: auto::random_vec
      Src: /src/botan/src/cli/cli_rng.cpp:150,1
    - Dst: write_output
      Src: /src/botan/src/cli/cli_rng.cpp:153,1
    - Dst: output
      Src: /src/botan/src/cli/cli_rng.cpp:155,1
    - Dst: format_blob
      Src: /src/botan/src/cli/cli_rng.cpp:155,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 158
    functionName: Botan_CLI::RNG::go
    functionSourceFile: /src/botan/src/cli/cli_rng.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - auto::random_vec
    - get_arg_list
    - write_output
    - std::string::empty
    - Botan::to_u32bit
    - format_blob
    - cli_make_rng
    - output
    - flag_set
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/cli/cli_rng.cpp:46,1
    - Dst: std::make_shared<Botan::System_RNG>
      Src: /src/botan/src/cli/cli_rng.cpp:47,1
    - Dst: std::make_shared<Botan::ESDM_RNG>
      Src: /src/botan/src/cli/cli_rng.cpp:53,1
    - Dst: std::make_shared<Botan::ESDM_RNG>
      Src: /src/botan/src/cli/cli_rng.cpp:56,1
    - Dst: std::make_shared<Botan::Jitter_RNG>
      Src: /src/botan/src/cli/cli_rng.cpp:62,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/cli_rng.cpp:66,1
    - Dst: empty
      Src: /src/botan/src/cli/cli_rng.cpp:69,1
    - Dst: std::make_shared<Botan::AutoSeeded_RNG>
      Src: /src/botan/src/cli/cli_rng.cpp:74,1
    - Dst: Botan::Entropy_Sources::global_sources
      Src: /src/botan/src/cli/cli_rng.cpp:74,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/cli_rng.cpp:76,1
    - Dst: std::make_shared<Botan::AutoSeeded_RNG>
      Src: /src/botan/src/cli/cli_rng.cpp:79,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/cli_rng.cpp:82,1
    - Dst: std::shared_ptr::add_entropy
      Src: /src/botan/src/cli/cli_rng.cpp:83,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/cli_rng.cpp:83,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/cli_rng.cpp:83,1
    - Dst: empty
      Src: /src/botan/src/cli/cli_rng.cpp:90,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/cli_rng.cpp:90,1
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/cli/cli_rng.cpp:91,1
    - Dst: std::make_shared<Botan::HMAC_DRBG>
      Src: /src/botan/src/cli/cli_rng.cpp:92,1
    - Dst: std::move
      Src: /src/botan/src/cli/cli_rng.cpp:92,1
    - Dst: auto::add_entropy
      Src: /src/botan/src/cli/cli_rng.cpp:93,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/cli_rng.cpp:93,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/cli_rng.cpp:93,1
    - Dst: auto::is_seeded
      Src: /src/botan/src/cli/cli_rng.cpp:95,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/cli_rng.cpp:96,1
    - Dst: auto::name
      Src: /src/botan/src/cli/cli_rng.cpp:96,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/cli_rng.cpp:96,1
    - Dst: auto::security_level
      Src: /src/botan/src/cli/cli_rng.cpp:96,1
    - Dst: empty
      Src: /src/botan/src/cli/cli_rng.cpp:105,1
    - Dst: Botan::Processor_RNG::available
      Src: /src/botan/src/cli/cli_rng.cpp:106,1
    - Dst: std::make_shared<Botan::Processor_RNG>
      Src: /src/botan/src/cli/cli_rng.cpp:107,1
    - Dst: empty
      Src: /src/botan/src/cli/cli_rng.cpp:108,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/cli_rng.cpp:109,1
    - Dst: empty
      Src: /src/botan/src/cli/cli_rng.cpp:114,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/cli_rng.cpp:115,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/cli_rng.cpp:117,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: 119
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 119
    functionName: Botan_CLI::cli_make_rng
    functionSourceFile: /src/botan/src/cli/cli_rng.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - Botan::Processor_RNG::available
    - auto::security_level
    - std::make_shared<Botan::Jitter_RNG>
    - CLI_Error_Unsupported
    - auto::name
    - std::shared_ptr::add_entropy
    - std::make_shared<Botan::System_RNG>
    - std::vector::data
    - auto::add_entropy
    - Botan::MessageAuthenticationCode::create_or_throw
    - std::make_shared<Botan::Processor_RNG>
    - Botan::Entropy_Sources::global_sources
    - CLI_Error
    - std::make_shared<Botan::HMAC_DRBG>
    - std::vector::empty
    - auto::is_seeded
    - std::vector::size
    - std::move
    - std::make_shared<Botan::AutoSeeded_RNG>
    - empty
    - std::to_string
    - std::make_shared<Botan::ESDM_RNG>
    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: 126
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 126
    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: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    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: 130
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 130
    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:133,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cli_rng.cpp:134,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/cli_rng.cpp:136,1
    - Dst: flag_set
      Src: /src/botan/src/cli/cli_rng.cpp:138,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cli_rng.cpp:145,1
    - Dst: cli_make_rng
      Src: /src/botan/src/cli/cli_rng.cpp:146,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/cli_rng.cpp:148,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/cli/cli_rng.cpp:149,1
    - Dst: auto::random_vec
      Src: /src/botan/src/cli/cli_rng.cpp:150,1
    - Dst: write_output
      Src: /src/botan/src/cli/cli_rng.cpp:153,1
    - Dst: output
      Src: /src/botan/src/cli/cli_rng.cpp:155,1
    - Dst: format_blob
      Src: /src/botan/src/cli/cli_rng.cpp:155,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 158
    functionName: Botan_CLI::RNG::go
    functionSourceFile: /src/botan/src/cli/cli_rng.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - auto::random_vec
    - get_arg_list
    - write_output
    - std::string::empty
    - Botan::to_u32bit
    - format_blob
    - cli_make_rng
    - output
    - flag_set
    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
    - ::WSACleanup
    - LOBYTE
    - WSAGetLastError
    - std::to_string
    - HIBYTE
    - MAKEWORD
    - ::WSAStartup
    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: std::to_string
      Src: /src/botan/src/cli/socket_utils.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: err_to_string
    functionSourceFile: /src/botan/src/cli/socket_utils.h
    functionUses: 0
    functionsReached:
    - std::to_string
    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:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fd
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: close
    functionSourceFile: /src/botan/src/cli/socket_utils.h
    functionUses: 38
    functionsReached:
    - ::closesocket
    linkageType: ''
    returnType: int
    signature: int close(int fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ::recv
      Src: /src/botan/src/cli/socket_utils.h:64,1
    - Dst: reinterpret_cast<char*>
      Src: /src/botan/src/cli/socket_utils.h:64,1
    - Dst: static_cast<int>
      Src: /src/botan/src/cli/socket_utils.h:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - s
    - buf
    - len
    argTypes:
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: read
    functionSourceFile: /src/botan/src/cli/socket_utils.h
    functionUses: 44
    functionsReached:
    - static_cast<int>
    - ::recv
    - 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:68,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/socket_utils.h:68,1
    - Dst: static_cast<int>
      Src: /src/botan/src/cli/socket_utils.h:68,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: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    functionName: send
    functionSourceFile: /src/botan/src/cli/socket_utils.h
    functionUses: 27
    functionsReached:
    - reinterpret_cast<const char*>
    - static_cast<int>
    - Botan_Tests::MockChannel::send
    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: 88
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 88
    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:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - socket_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    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: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    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: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    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:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    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:44,1
    - Dst: Botan::HMAC_DRBG::name
      Src: /src/botan/src/cli/perf_rng.cpp:44,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/cli/perf_rng.cpp:50,1
    - Dst: Botan_CLI::PerfTest_Rng::bench_rng
      Src: /src/botan/src/cli/perf_rng.cpp:51,1
    - Dst: Botan::AutoSeeded_RNG::AutoSeeded_RNG
      Src: /src/botan/src/cli/perf_rng.cpp:55,1
    - Dst: Botan_CLI::PerfTest_Rng::bench_rng
      Src: /src/botan/src/cli/perf_rng.cpp:56,1
    - Dst: Botan_CLI::PerfTest_Rng::bench_rng
      Src: /src/botan/src/cli/perf_rng.cpp:60,1
    - Dst: Botan::system_rng
      Src: /src/botan/src/cli/perf_rng.cpp:60,1
    - Dst: Botan::Processor_RNG::available
      Src: /src/botan/src/cli/perf_rng.cpp:64,1
    - Dst: Botan::Processor_RNG::Processor_RNG
      Src: /src/botan/src/cli/perf_rng.cpp:65,1
    - Dst: Botan_CLI::PerfTest_Rng::bench_rng
      Src: /src/botan/src/cli/perf_rng.cpp:66,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/cli/perf_rng.cpp:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 70
    functionName: Botan_CLI::PerfTest_Rng::go
    functionSourceFile: /src/botan/src/cli/perf_rng.cpp
    functionUses: 0
    functionsReached:
    - Botan::Processor_RNG::available
    - Botan_CLI::PerfTest_Rng::bench_rng
    - Botan::AutoSeeded_RNG::AutoSeeded_RNG
    - Botan::secure_vector<uint8_t>
    - Botan::system_rng
    - Botan::Processor_RNG::Processor_RNG
    - BOTAN_UNUSED
    - Botan::HMAC_DRBG::name
    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:74,1
    - Dst: std::max<size_t>
      Src: /src/botan/src/cli/perf_rng.cpp:76,1
    - Dst: reseed_from_rng
      Src: /src/botan/src/cli/perf_rng.cpp:79,1
    - Dst: Botan::system_rng
      Src: /src/botan/src/cli/perf_rng.cpp:79,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_rng.cpp:82,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/perf_rng.cpp:82,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_rng.cpp:84,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_rng.cpp:86,1
    - Dst: randomize
      Src: /src/botan/src/cli/perf_rng.cpp:88,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/cli/perf_rng.cpp:88,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/perf_rng.cpp:88,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_rng.cpp:92,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: 94
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 94
    functionName: Botan_CLI::PerfTest_Rng::bench_rng
    functionSourceFile: /src/botan/src/cli/perf_rng.cpp
    functionUses: 1
    functionsReached:
    - std::max<size_t>
    - buffer_sizes
    - auto::run_until_elapsed
    - randomize
    - Botan::secure_vector::size
    - Botan::secure_vector::data
    - Botan::system_rng
    - runtime
    - record_result
    - make_timer
    - reseed_from_rng
    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:44,1
    - Dst: Botan::HMAC_DRBG::name
      Src: /src/botan/src/cli/perf_rng.cpp:44,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/cli/perf_rng.cpp:50,1
    - Dst: Botan_CLI::PerfTest_Rng::bench_rng
      Src: /src/botan/src/cli/perf_rng.cpp:51,1
    - Dst: Botan::AutoSeeded_RNG::AutoSeeded_RNG
      Src: /src/botan/src/cli/perf_rng.cpp:55,1
    - Dst: Botan_CLI::PerfTest_Rng::bench_rng
      Src: /src/botan/src/cli/perf_rng.cpp:56,1
    - Dst: Botan_CLI::PerfTest_Rng::bench_rng
      Src: /src/botan/src/cli/perf_rng.cpp:60,1
    - Dst: Botan::system_rng
      Src: /src/botan/src/cli/perf_rng.cpp:60,1
    - Dst: Botan::Processor_RNG::available
      Src: /src/botan/src/cli/perf_rng.cpp:64,1
    - Dst: Botan::Processor_RNG::Processor_RNG
      Src: /src/botan/src/cli/perf_rng.cpp:65,1
    - Dst: Botan_CLI::PerfTest_Rng::bench_rng
      Src: /src/botan/src/cli/perf_rng.cpp:66,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/cli/perf_rng.cpp:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 70
    functionName: Botan_CLI::PerfTest_Rng::go
    functionSourceFile: /src/botan/src/cli/perf_rng.cpp
    functionUses: 0
    functionsReached:
    - Botan::Processor_RNG::available
    - Botan_CLI::PerfTest_Rng::bench_rng
    - Botan::AutoSeeded_RNG::AutoSeeded_RNG
    - Botan::secure_vector<uint8_t>
    - Botan::system_rng
    - Botan::Processor_RNG::Processor_RNG
    - BOTAN_UNUSED
    - Botan::HMAC_DRBG::name
    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:74,1
    - Dst: std::max<size_t>
      Src: /src/botan/src/cli/perf_rng.cpp:76,1
    - Dst: reseed_from_rng
      Src: /src/botan/src/cli/perf_rng.cpp:79,1
    - Dst: Botan::system_rng
      Src: /src/botan/src/cli/perf_rng.cpp:79,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_rng.cpp:82,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/perf_rng.cpp:82,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_rng.cpp:84,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_rng.cpp:86,1
    - Dst: randomize
      Src: /src/botan/src/cli/perf_rng.cpp:88,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/cli/perf_rng.cpp:88,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/perf_rng.cpp:88,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_rng.cpp:92,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: 94
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 94
    functionName: Botan_CLI::PerfTest_Rng::bench_rng
    functionSourceFile: /src/botan/src/cli/perf_rng.cpp
    functionUses: 2
    functionsReached:
    - std::max<size_t>
    - buffer_sizes
    - auto::run_until_elapsed
    - randomize
    - Botan::secure_vector::size
    - Botan::secure_vector::data
    - Botan::system_rng
    - runtime
    - record_result
    - make_timer
    - reseed_from_rng
    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:53,1
    - Dst: get_executor
      Src: /src/botan/src/cli/tls_proxy.cpp:53,1
    - Dst: Botan_CLI::get_io_service
      Src: /src/botan/src/cli/tls_proxy.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 57
    functionName: Botan_CLI::get_io_service
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 1
    functionsReached:
    - get_executor
    - Botan_CLI::get_io_service
    - static_cast<boost::asio::io_context&>
    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: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    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:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - where
    - ' e'
    argTypes:
    - char*
    - std::exception
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    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:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - where
    - ' error'
    argTypes:
    - char*
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    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: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    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:76,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: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    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:81,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: 84
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 84
    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: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    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:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 96
    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: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    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:100,1
    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::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:119,1
    - Dst: auto::setup
      Src: /src/botan/src/cli/tls_proxy.cpp:123,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: 126
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 126
    functionName: Botan_CLI::tls_proxy_session::create
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 8
    functionsReached:
    - std::make_shared<tls_proxy_session>
    - auto::setup
    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: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    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:131,1
    - Dst: Botan_CLI::tls_proxy_session::client_read
      Src: /src/botan/src/cli/tls_proxy.cpp:132,1
    - Dst: Botan::TLS::error_code
      Src: /src/botan/src/cli/tls_proxy.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: Botan_CLI::tls_proxy_session::start
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::tls_proxy_session::client_read
    - resize
    - Botan::TLS::error_code
    linkageType: ''
    returnType: void
    signature: void start()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/botan/src/cli/tls_proxy.cpp:141,1
    - Dst: close
      Src: /src/botan/src/cli/tls_proxy.cpp:142,1
    - Dst: reset
      Src: /src/botan/src/cli/tls_proxy.cpp:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 150
    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:154,1
    - Dst: cli_make_rng
      Src: /src/botan/src/cli/tls_proxy.cpp:157,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: 157
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 157
    functionName: Botan_CLI::tls_proxy_session::tls_proxy_session
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - cli_make_rng
    - std::move
    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:163,1
    - Dst: shared_from_this
      Src: /src/botan/src/cli/tls_proxy.cpp:163,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: 164
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: Botan_CLI::tls_proxy_session::setup
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::TLS::Server>
    - shared_from_this
    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:168,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:169,1
    - Dst: log_error
      Src: /src/botan/src/cli/tls_proxy.cpp:174,1
    - Dst: is_active
      Src: /src/botan/src/cli/tls_proxy.cpp:179,1
    - Dst: log_binary_message
      Src: /src/botan/src/cli/tls_proxy.cpp:180,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:180,1
    - Dst: received_data
      Src: /src/botan/src/cli/tls_proxy.cpp:182,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:182,1
    - Dst: log_exception
      Src: /src/botan/src/cli/tls_proxy.cpp:184,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:185,1
    - Dst: async_read_some
      Src: /src/botan/src/cli/tls_proxy.cpp:189,1
    - Dst: Peer::buffer
      Src: /src/botan/src/cli/tls_proxy.cpp:189,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:189,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:189,1
    - Dst: wrap
      Src: /src/botan/src/cli/tls_proxy.cpp:190,1
    - Dst: boost::bind
      Src: /src/botan/src/cli/tls_proxy.cpp:190,1
    - Dst: shared_from_this
      Src: /src/botan/src/cli/tls_proxy.cpp:191,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - ' error'
    - bytes_transferred
    argTypes:
    - boost::system::error_code
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 194
    functionName: Botan_CLI::tls_proxy_session::client_read
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 1
    functionsReached:
    - log_error
    - Peer::buffer
    - data
    - size
    - log_exception
    - wrap
    - received_data
    - async_read_some
    - boost::bind
    - shared_from_this
    - is_active
    - Botan_CLI::tls_proxy_session::stop
    - log_binary_message
    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:198,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:199,1
    - Dst: clear
      Src: /src/botan/src/cli/tls_proxy.cpp:203,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_proxy.cpp:205,1
    - Dst: is_closed
      Src: /src/botan/src/cli/tls_proxy.cpp:205,1
    - Dst: close
      Src: /src/botan/src/cli/tls_proxy.cpp:206,1
    - Dst: Botan_CLI::tls_proxy_session::tls_emit_data
      Src: /src/botan/src/cli/tls_proxy.cpp:208,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' error'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 209
    functionName: Botan_CLI::tls_proxy_session::handle_client_write_completion
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - log_error
    - is_closed
    - clear
    - empty
    - close
    - Botan_CLI::tls_proxy_session::tls_emit_data
    - Botan_CLI::tls_proxy_session::stop
    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:213,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:214,1
    - Dst: clear
      Src: /src/botan/src/cli/tls_proxy.cpp:218,1
    - Dst: Botan_CLI::tls_proxy_session::proxy_write_to_server
      Src: /src/botan/src/cli/tls_proxy.cpp:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' error'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 220
    functionName: Botan_CLI::tls_proxy_session::handle_server_write_completion
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::tls_proxy_session::stop
    - Botan_CLI::tls_proxy_session::proxy_write_to_server
    - log_error
    - clear
    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:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 225
    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:228,1
    - Dst: insert
      Src: /src/botan/src/cli/tls_proxy.cpp:229,1
    - Dst: end
      Src: /src/botan/src/cli/tls_proxy.cpp:229,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/cli/tls_proxy.cpp:229,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/cli/tls_proxy.cpp:229,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_proxy.cpp:233,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_proxy.cpp:233,1
    - Dst: std::swap
      Src: /src/botan/src/cli/tls_proxy.cpp:234,1
    - Dst: log_binary_message
      Src: /src/botan/src/cli/tls_proxy.cpp:236,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:236,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:236,1
    - Dst: boost::asio::async_write
      Src: /src/botan/src/cli/tls_proxy.cpp:238,1
    - Dst: Peer::buffer
      Src: /src/botan/src/cli/tls_proxy.cpp:239,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:239,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:239,1
    - Dst: wrap
      Src: /src/botan/src/cli/tls_proxy.cpp:240,1
    - Dst: boost::bind
      Src: /src/botan/src/cli/tls_proxy.cpp:240,1
    - Dst: shared_from_this
      Src: /src/botan/src/cli/tls_proxy.cpp:241,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - buf
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 244
    functionName: Botan_CLI::tls_proxy_session::tls_emit_data
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 1
    functionsReached:
    - std::span<const uint8_t>::empty
    - Peer::buffer
    - data
    - std::swap
    - size
    - wrap
    - boost::asio::async_write
    - empty
    - std::span<const uint8_t>::begin
    - end
    - boost::bind
    - std::span<const uint8_t>::end
    - shared_from_this
    - log_binary_message
    - insert
    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:247,1
    - Dst: insert
      Src: /src/botan/src/cli/tls_proxy.cpp:248,1
    - Dst: end
      Src: /src/botan/src/cli/tls_proxy.cpp:248,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/cli/tls_proxy.cpp:248,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/cli/tls_proxy.cpp:248,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_proxy.cpp:252,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_proxy.cpp:252,1
    - Dst: std::swap
      Src: /src/botan/src/cli/tls_proxy.cpp:253,1
    - Dst: log_text_message
      Src: /src/botan/src/cli/tls_proxy.cpp:255,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:255,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:255,1
    - Dst: boost::asio::async_write
      Src: /src/botan/src/cli/tls_proxy.cpp:257,1
    - Dst: Peer::buffer
      Src: /src/botan/src/cli/tls_proxy.cpp:258,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:258,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:258,1
    - Dst: wrap
      Src: /src/botan/src/cli/tls_proxy.cpp:259,1
    - Dst: boost::bind
      Src: /src/botan/src/cli/tls_proxy.cpp:259,1
    - Dst: shared_from_this
      Src: /src/botan/src/cli/tls_proxy.cpp:260,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - buf
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 263
    functionName: Botan_CLI::tls_proxy_session::proxy_write_to_server
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 2
    functionsReached:
    - std::span<const uint8_t>::empty
    - log_text_message
    - Peer::buffer
    - data
    - std::swap
    - size
    - wrap
    - boost::asio::async_write
    - empty
    - std::span<const uint8_t>::begin
    - end
    - boost::bind
    - std::span<const uint8_t>::end
    - shared_from_this
    - insert
    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:267,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:268,1
    - Dst: log_text_message
      Src: /src/botan/src/cli/tls_proxy.cpp:274,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:274,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:274,1
    - Dst: log_binary_message
      Src: /src/botan/src/cli/tls_proxy.cpp:275,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:275,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:275,1
    - Dst: send
      Src: /src/botan/src/cli/tls_proxy.cpp:276,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:276,1
    - Dst: log_exception
      Src: /src/botan/src/cli/tls_proxy.cpp:279,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:280,1
    - Dst: resize
      Src: /src/botan/src/cli/tls_proxy.cpp:284,1
    - Dst: async_read_some
      Src: /src/botan/src/cli/tls_proxy.cpp:286,1
    - Dst: Peer::buffer
      Src: /src/botan/src/cli/tls_proxy.cpp:286,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:286,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:286,1
    - Dst: wrap
      Src: /src/botan/src/cli/tls_proxy.cpp:287,1
    - Dst: boost::bind
      Src: /src/botan/src/cli/tls_proxy.cpp:287,1
    - Dst: shared_from_this
      Src: /src/botan/src/cli/tls_proxy.cpp:288,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - ' error'
    - bytes_transferred
    argTypes:
    - boost::system::error_code
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 291
    functionName: Botan_CLI::tls_proxy_session::server_read
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - log_text_message
    - log_error
    - resize
    - Peer::buffer
    - data
    - send
    - size
    - log_exception
    - wrap
    - async_read_some
    - boost::bind
    - shared_from_this
    - log_binary_message
    - Botan_CLI::tls_proxy_session::stop
    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:294,1
    - Dst: log_error
      Src: /src/botan/src/cli/tls_proxy.cpp:297,1
    - Dst: lock
      Src: /src/botan/src/cli/tls_proxy.cpp:301,1
    - Dst: auto::server_read
      Src: /src/botan/src/cli/tls_proxy.cpp:302,1
    - Dst: Botan::TLS::error_code
      Src: /src/botan/src/cli/tls_proxy.cpp:302,1
    - Dst: auto::proxy_write_to_server
      Src: /src/botan/src/cli/tls_proxy.cpp:303,1
    - Dst: log_error
      Src: /src/botan/src/cli/tls_proxy.cpp:305,1
    - Dst: async_connect
      Src: /src/botan/src/cli/tls_proxy.cpp:309,1
    - Dst: begin
      Src: /src/botan/src/cli/tls_proxy.cpp:309,1
    - Dst: end
      Src: /src/botan/src/cli/tls_proxy.cpp:309,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 310
    functionName: Botan_CLI::tls_proxy_session::tls_session_activated
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - log_error
    - auto::proxy_write_to_server
    - async_connect
    - end
    - begin
    - Botan::TLS::error_code
    - auto::server_read
    - lock
    - weak_from_this
    linkageType: ''
    returnType: void
    signature: void tls_session_activated() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: server_info
      Src: /src/botan/src/cli/tls_proxy.cpp:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Botan::TLS::Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 314
    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:317,1
    - Dst: close
      Src: /src/botan/src/cli/tls_proxy.cpp:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 321
    functionName: Botan_CLI::tls_proxy_session::tls_alert
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Alert::type
    - close
    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:356,1
    - Dst: Botan::GeneralName::matches_ipv4
      Src: /src/botan/src/cli/tls_proxy.cpp:356,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_proxy.cpp:357,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_proxy.cpp:358,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_proxy.cpp:359,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_proxy.cpp:360,1
    - Dst: log_info
      Src: /src/botan/src/cli/tls_proxy.cpp:362,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/tls_proxy.cpp:362,1
    - Dst: Botan_CLI::tls_proxy_server::serve_one_session
      Src: /src/botan/src/cli/tls_proxy.cpp:363,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: 364
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 364
    functionName: Botan_CLI::tls_proxy_server::tls_proxy_server
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - tcp::endpoint
    - std::move
    - Botan::GeneralName::matches_ipv4
    - Botan_CLI::tls_proxy_server::serve_one_session
    - std::to_string
    - log_info
    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:368,1
    - Dst: get_io_service
      Src: /src/botan/src/cli/tls_proxy.cpp:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 369
    functionName: Botan_CLI::tls_proxy_server::make_session
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - get_io_service
    - Botan_CLI::tls_proxy_session::create
    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:372,1
    - Dst: async_accept
      Src: /src/botan/src/cli/tls_proxy.cpp:374,1
    - Dst: session::pointer::client_socket
      Src: /src/botan/src/cli/tls_proxy.cpp:375,1
    - Dst: boost::bind
      Src: /src/botan/src/cli/tls_proxy.cpp:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 371
    functionDepth: 2
    functionLinenumber: 371
    functionLinenumberEnd: 377
    functionName: Botan_CLI::tls_proxy_server::serve_one_session
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 1
    functionsReached:
    - async_accept
    - Botan_CLI::tls_proxy_server::make_session
    - session::pointer::client_socket
    - boost::bind
    linkageType: ''
    returnType: void
    signature: void serve_one_session()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: start
      Src: /src/botan/src/cli/tls_proxy.cpp:381,1
    - Dst: client_serviced
      Src: /src/botan/src/cli/tls_proxy.cpp:382,1
    - Dst: should_exit
      Src: /src/botan/src/cli/tls_proxy.cpp:384,1
    - Dst: Botan_CLI::tls_proxy_server::serve_one_session
      Src: /src/botan/src/cli/tls_proxy.cpp:385,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: 388
      start: 379
    functionDepth: 3
    functionLinenumber: 379
    functionLinenumberEnd: 388
    functionName: Botan_CLI::tls_proxy_server::handle_accept
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - start
    - Botan_CLI::tls_proxy_server::serve_one_session
    - should_exit
    - 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:53,1
    - Dst: get_executor
      Src: /src/botan/src/cli/tls_proxy.cpp:53,1
    - Dst: Botan_CLI::get_io_service
      Src: /src/botan/src/cli/tls_proxy.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 57
    functionName: Botan_CLI::get_io_service
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 2
    functionsReached:
    - get_executor
    - Botan_CLI::get_io_service
    - static_cast<boost::asio::io_context&>
    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: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    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:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - where
    - ' e'
    argTypes:
    - char*
    - std::exception
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    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:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - where
    - ' error'
    argTypes:
    - char*
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    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: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    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:76,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: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    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:81,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: 84
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 84
    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: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    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:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 96
    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: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    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:100,1
    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::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:119,1
    - Dst: auto::setup
      Src: /src/botan/src/cli/tls_proxy.cpp:123,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: 126
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 126
    functionName: Botan_CLI::tls_proxy_session::create
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 9
    functionsReached:
    - std::make_shared<tls_proxy_session>
    - auto::setup
    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: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    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:131,1
    - Dst: Botan_CLI::tls_proxy_session::client_read
      Src: /src/botan/src/cli/tls_proxy.cpp:132,1
    - Dst: Botan::TLS::error_code
      Src: /src/botan/src/cli/tls_proxy.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: Botan_CLI::tls_proxy_session::start
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::tls_proxy_session::client_read
    - resize
    - Botan::TLS::error_code
    linkageType: ''
    returnType: void
    signature: void start()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/botan/src/cli/tls_proxy.cpp:141,1
    - Dst: close
      Src: /src/botan/src/cli/tls_proxy.cpp:142,1
    - Dst: reset
      Src: /src/botan/src/cli/tls_proxy.cpp:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 150
    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:154,1
    - Dst: cli_make_rng
      Src: /src/botan/src/cli/tls_proxy.cpp:157,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: 157
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 157
    functionName: Botan_CLI::tls_proxy_session::tls_proxy_session
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - cli_make_rng
    - std::move
    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:163,1
    - Dst: shared_from_this
      Src: /src/botan/src/cli/tls_proxy.cpp:163,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: 164
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: Botan_CLI::tls_proxy_session::setup
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::TLS::Server>
    - shared_from_this
    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:168,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:169,1
    - Dst: log_error
      Src: /src/botan/src/cli/tls_proxy.cpp:174,1
    - Dst: is_active
      Src: /src/botan/src/cli/tls_proxy.cpp:179,1
    - Dst: log_binary_message
      Src: /src/botan/src/cli/tls_proxy.cpp:180,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:180,1
    - Dst: received_data
      Src: /src/botan/src/cli/tls_proxy.cpp:182,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:182,1
    - Dst: log_exception
      Src: /src/botan/src/cli/tls_proxy.cpp:184,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:185,1
    - Dst: async_read_some
      Src: /src/botan/src/cli/tls_proxy.cpp:189,1
    - Dst: Peer::buffer
      Src: /src/botan/src/cli/tls_proxy.cpp:189,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:189,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:189,1
    - Dst: wrap
      Src: /src/botan/src/cli/tls_proxy.cpp:190,1
    - Dst: boost::bind
      Src: /src/botan/src/cli/tls_proxy.cpp:190,1
    - Dst: shared_from_this
      Src: /src/botan/src/cli/tls_proxy.cpp:191,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - ' error'
    - bytes_transferred
    argTypes:
    - boost::system::error_code
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 194
    functionName: Botan_CLI::tls_proxy_session::client_read
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 2
    functionsReached:
    - log_error
    - Peer::buffer
    - data
    - size
    - log_exception
    - wrap
    - received_data
    - async_read_some
    - boost::bind
    - shared_from_this
    - is_active
    - Botan_CLI::tls_proxy_session::stop
    - log_binary_message
    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:198,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:199,1
    - Dst: clear
      Src: /src/botan/src/cli/tls_proxy.cpp:203,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_proxy.cpp:205,1
    - Dst: is_closed
      Src: /src/botan/src/cli/tls_proxy.cpp:205,1
    - Dst: close
      Src: /src/botan/src/cli/tls_proxy.cpp:206,1
    - Dst: Botan_CLI::tls_proxy_session::tls_emit_data
      Src: /src/botan/src/cli/tls_proxy.cpp:208,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' error'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 196
    functionDepth: 3
    functionLinenumber: 196
    functionLinenumberEnd: 209
    functionName: Botan_CLI::tls_proxy_session::handle_client_write_completion
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - log_error
    - is_closed
    - clear
    - empty
    - close
    - Botan_CLI::tls_proxy_session::tls_emit_data
    - Botan_CLI::tls_proxy_session::stop
    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:213,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:214,1
    - Dst: clear
      Src: /src/botan/src/cli/tls_proxy.cpp:218,1
    - Dst: Botan_CLI::tls_proxy_session::proxy_write_to_server
      Src: /src/botan/src/cli/tls_proxy.cpp:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' error'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 211
    functionDepth: 3
    functionLinenumber: 211
    functionLinenumberEnd: 220
    functionName: Botan_CLI::tls_proxy_session::handle_server_write_completion
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::tls_proxy_session::stop
    - Botan_CLI::tls_proxy_session::proxy_write_to_server
    - log_error
    - clear
    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:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 3
    functionLinenumber: 222
    functionLinenumberEnd: 225
    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:228,1
    - Dst: insert
      Src: /src/botan/src/cli/tls_proxy.cpp:229,1
    - Dst: end
      Src: /src/botan/src/cli/tls_proxy.cpp:229,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/cli/tls_proxy.cpp:229,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/cli/tls_proxy.cpp:229,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_proxy.cpp:233,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_proxy.cpp:233,1
    - Dst: std::swap
      Src: /src/botan/src/cli/tls_proxy.cpp:234,1
    - Dst: log_binary_message
      Src: /src/botan/src/cli/tls_proxy.cpp:236,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:236,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:236,1
    - Dst: boost::asio::async_write
      Src: /src/botan/src/cli/tls_proxy.cpp:238,1
    - Dst: Peer::buffer
      Src: /src/botan/src/cli/tls_proxy.cpp:239,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:239,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:239,1
    - Dst: wrap
      Src: /src/botan/src/cli/tls_proxy.cpp:240,1
    - Dst: boost::bind
      Src: /src/botan/src/cli/tls_proxy.cpp:240,1
    - Dst: shared_from_this
      Src: /src/botan/src/cli/tls_proxy.cpp:241,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - buf
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 244
    functionName: Botan_CLI::tls_proxy_session::tls_emit_data
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 2
    functionsReached:
    - std::span<const uint8_t>::empty
    - Peer::buffer
    - data
    - std::swap
    - size
    - wrap
    - boost::asio::async_write
    - empty
    - std::span<const uint8_t>::begin
    - end
    - boost::bind
    - std::span<const uint8_t>::end
    - shared_from_this
    - log_binary_message
    - insert
    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:247,1
    - Dst: insert
      Src: /src/botan/src/cli/tls_proxy.cpp:248,1
    - Dst: end
      Src: /src/botan/src/cli/tls_proxy.cpp:248,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/cli/tls_proxy.cpp:248,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/cli/tls_proxy.cpp:248,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_proxy.cpp:252,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_proxy.cpp:252,1
    - Dst: std::swap
      Src: /src/botan/src/cli/tls_proxy.cpp:253,1
    - Dst: log_text_message
      Src: /src/botan/src/cli/tls_proxy.cpp:255,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:255,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:255,1
    - Dst: boost::asio::async_write
      Src: /src/botan/src/cli/tls_proxy.cpp:257,1
    - Dst: Peer::buffer
      Src: /src/botan/src/cli/tls_proxy.cpp:258,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:258,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:258,1
    - Dst: wrap
      Src: /src/botan/src/cli/tls_proxy.cpp:259,1
    - Dst: boost::bind
      Src: /src/botan/src/cli/tls_proxy.cpp:259,1
    - Dst: shared_from_this
      Src: /src/botan/src/cli/tls_proxy.cpp:260,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - buf
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 263
    functionName: Botan_CLI::tls_proxy_session::proxy_write_to_server
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 4
    functionsReached:
    - std::span<const uint8_t>::empty
    - log_text_message
    - Peer::buffer
    - data
    - std::swap
    - size
    - wrap
    - boost::asio::async_write
    - empty
    - std::span<const uint8_t>::begin
    - end
    - boost::bind
    - std::span<const uint8_t>::end
    - shared_from_this
    - insert
    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:267,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:268,1
    - Dst: log_text_message
      Src: /src/botan/src/cli/tls_proxy.cpp:274,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:274,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:274,1
    - Dst: log_binary_message
      Src: /src/botan/src/cli/tls_proxy.cpp:275,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:275,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:275,1
    - Dst: send
      Src: /src/botan/src/cli/tls_proxy.cpp:276,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:276,1
    - Dst: log_exception
      Src: /src/botan/src/cli/tls_proxy.cpp:279,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:280,1
    - Dst: resize
      Src: /src/botan/src/cli/tls_proxy.cpp:284,1
    - Dst: async_read_some
      Src: /src/botan/src/cli/tls_proxy.cpp:286,1
    - Dst: Peer::buffer
      Src: /src/botan/src/cli/tls_proxy.cpp:286,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:286,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:286,1
    - Dst: wrap
      Src: /src/botan/src/cli/tls_proxy.cpp:287,1
    - Dst: boost::bind
      Src: /src/botan/src/cli/tls_proxy.cpp:287,1
    - Dst: shared_from_this
      Src: /src/botan/src/cli/tls_proxy.cpp:288,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - ' error'
    - bytes_transferred
    argTypes:
    - boost::system::error_code
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 291
    functionName: Botan_CLI::tls_proxy_session::server_read
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - log_text_message
    - log_error
    - resize
    - Peer::buffer
    - data
    - send
    - size
    - log_exception
    - wrap
    - async_read_some
    - boost::bind
    - shared_from_this
    - log_binary_message
    - Botan_CLI::tls_proxy_session::stop
    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:294,1
    - Dst: log_error
      Src: /src/botan/src/cli/tls_proxy.cpp:297,1
    - Dst: lock
      Src: /src/botan/src/cli/tls_proxy.cpp:301,1
    - Dst: auto::server_read
      Src: /src/botan/src/cli/tls_proxy.cpp:302,1
    - Dst: Botan::TLS::error_code
      Src: /src/botan/src/cli/tls_proxy.cpp:302,1
    - Dst: auto::proxy_write_to_server
      Src: /src/botan/src/cli/tls_proxy.cpp:303,1
    - Dst: log_error
      Src: /src/botan/src/cli/tls_proxy.cpp:305,1
    - Dst: async_connect
      Src: /src/botan/src/cli/tls_proxy.cpp:309,1
    - Dst: begin
      Src: /src/botan/src/cli/tls_proxy.cpp:309,1
    - Dst: end
      Src: /src/botan/src/cli/tls_proxy.cpp:309,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 310
    functionName: Botan_CLI::tls_proxy_session::tls_session_activated
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - log_error
    - auto::proxy_write_to_server
    - async_connect
    - end
    - begin
    - Botan::TLS::error_code
    - auto::server_read
    - lock
    - weak_from_this
    linkageType: ''
    returnType: void
    signature: void tls_session_activated() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: server_info
      Src: /src/botan/src/cli/tls_proxy.cpp:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Botan::TLS::Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 314
    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:317,1
    - Dst: close
      Src: /src/botan/src/cli/tls_proxy.cpp:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 321
    functionName: Botan_CLI::tls_proxy_session::tls_alert
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Alert::type
    - close
    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:356,1
    - Dst: Botan::GeneralName::matches_ipv4
      Src: /src/botan/src/cli/tls_proxy.cpp:356,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_proxy.cpp:357,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_proxy.cpp:358,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_proxy.cpp:359,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_proxy.cpp:360,1
    - Dst: log_info
      Src: /src/botan/src/cli/tls_proxy.cpp:362,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/tls_proxy.cpp:362,1
    - Dst: Botan_CLI::tls_proxy_server::serve_one_session
      Src: /src/botan/src/cli/tls_proxy.cpp:363,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: 364
      start: 349
    functionDepth: 3
    functionLinenumber: 349
    functionLinenumberEnd: 364
    functionName: Botan_CLI::tls_proxy_server::tls_proxy_server
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - tcp::endpoint
    - std::move
    - Botan::GeneralName::matches_ipv4
    - Botan_CLI::tls_proxy_server::serve_one_session
    - std::to_string
    - log_info
    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:368,1
    - Dst: get_io_service
      Src: /src/botan/src/cli/tls_proxy.cpp:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 369
    functionName: Botan_CLI::tls_proxy_server::make_session
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 1
    functionsReached:
    - get_io_service
    - Botan_CLI::tls_proxy_session::create
    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:372,1
    - Dst: async_accept
      Src: /src/botan/src/cli/tls_proxy.cpp:374,1
    - Dst: session::pointer::client_socket
      Src: /src/botan/src/cli/tls_proxy.cpp:375,1
    - Dst: boost::bind
      Src: /src/botan/src/cli/tls_proxy.cpp:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 371
    functionDepth: 2
    functionLinenumber: 371
    functionLinenumberEnd: 377
    functionName: Botan_CLI::tls_proxy_server::serve_one_session
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 3
    functionsReached:
    - async_accept
    - Botan_CLI::tls_proxy_server::make_session
    - session::pointer::client_socket
    - boost::bind
    linkageType: ''
    returnType: void
    signature: void serve_one_session()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: start
      Src: /src/botan/src/cli/tls_proxy.cpp:381,1
    - Dst: client_serviced
      Src: /src/botan/src/cli/tls_proxy.cpp:382,1
    - Dst: should_exit
      Src: /src/botan/src/cli/tls_proxy.cpp:384,1
    - Dst: Botan_CLI::tls_proxy_server::serve_one_session
      Src: /src/botan/src/cli/tls_proxy.cpp:385,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: 388
      start: 379
    functionDepth: 3
    functionLinenumber: 379
    functionLinenumberEnd: 388
    functionName: Botan_CLI::tls_proxy_server::handle_accept
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - start
    - Botan_CLI::tls_proxy_server::serve_one_session
    - should_exit
    - 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: 406
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 406
    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: 408
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 408
    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: 410
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 410
    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:413,1
    - Dst: Botan::OS::get_cpu_available
      Src: /src/botan/src/cli/tls_proxy.cpp:417,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 422
    functionName: Botan_CLI::TLS_Proxy::thread_count
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - Botan::OS::get_cpu_available
    - get_arg_sz
    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:425,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_proxy.cpp:426,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_proxy.cpp:427,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_proxy.cpp:429,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_proxy.cpp:430,1
    - Dst: Botan_CLI::TLS_Proxy::thread_count
      Src: /src/botan/src/cli/tls_proxy.cpp:432,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/tls_proxy.cpp:433,1
    - Dst: std::make_shared<Basic_Credentials_Manager>
      Src: /src/botan/src/cli/tls_proxy.cpp:435,1
    - Dst: load_tls_policy
      Src: /src/botan/src/cli/tls_proxy.cpp:437,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_proxy.cpp:437,1
    - Dst: tcp::resolver::resolve
      Src: /src/botan/src/cli/tls_proxy.cpp:442,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/tls_proxy.cpp:447,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_proxy.cpp:448,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/tls_proxy.cpp:450,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_SQLite>
      Src: /src/botan/src/cli/tls_proxy.cpp:452,1
    - Dst: rng_as_shared
      Src: /src/botan/src/cli/tls_proxy.cpp:452,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/cli/tls_proxy.cpp:456,1
    - Dst: rng_as_shared
      Src: /src/botan/src/cli/tls_proxy.cpp:456,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/tls_proxy.cpp:465,1
    - Dst: std::make_shared<std::thread>
      Src: /src/botan/src/cli/tls_proxy.cpp:465,1
    - Dst: boost::asio::io_context::run
      Src: /src/botan/src/cli/tls_proxy.cpp:465,1
    - Dst: boost::asio::io_context::run
      Src: /src/botan/src/cli/tls_proxy.cpp:468,1
    - Dst: join
      Src: /src/botan/src/cli/tls_proxy.cpp:471,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 424
    functionDepth: 3
    functionLinenumber: 424
    functionLinenumberEnd: 473
    functionName: Botan_CLI::TLS_Proxy::go
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - boost::asio::io_context::run
    - get_arg_sz
    - std::vector::push_back
    - std::make_shared<Basic_Credentials_Manager>
    - rng_as_shared
    - std::string::empty
    - join
    - Botan_CLI::TLS_Proxy::thread_count
    - std::make_shared<Botan::TLS::Session_Manager_In_Memory>
    - load_tls_policy
    - get_arg_u16
    - std::make_shared<Botan::TLS::Session_Manager_SQLite>
    - get_passphrase_arg
    - tcp::resolver::resolve
    - std::make_shared<std::thread>
    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:53,1
    - Dst: get_executor
      Src: /src/botan/src/cli/tls_proxy.cpp:53,1
    - Dst: Botan_CLI::get_io_service
      Src: /src/botan/src/cli/tls_proxy.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 57
    functionName: Botan_CLI::get_io_service
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 3
    functionsReached:
    - get_executor
    - Botan_CLI::get_io_service
    - static_cast<boost::asio::io_context&>
    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: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    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:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - where
    - ' e'
    argTypes:
    - char*
    - std::exception
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    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:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - where
    - ' error'
    argTypes:
    - char*
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    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: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    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:76,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: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    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:81,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: 84
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 84
    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: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    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:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 96
    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: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    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:100,1
    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::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:119,1
    - Dst: auto::setup
      Src: /src/botan/src/cli/tls_proxy.cpp:123,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: 126
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 126
    functionName: Botan_CLI::tls_proxy_session::create
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 10
    functionsReached:
    - std::make_shared<tls_proxy_session>
    - auto::setup
    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: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    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:131,1
    - Dst: Botan_CLI::tls_proxy_session::client_read
      Src: /src/botan/src/cli/tls_proxy.cpp:132,1
    - Dst: Botan::TLS::error_code
      Src: /src/botan/src/cli/tls_proxy.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: Botan_CLI::tls_proxy_session::start
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::tls_proxy_session::client_read
    - resize
    - Botan::TLS::error_code
    linkageType: ''
    returnType: void
    signature: void start()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/botan/src/cli/tls_proxy.cpp:141,1
    - Dst: close
      Src: /src/botan/src/cli/tls_proxy.cpp:142,1
    - Dst: reset
      Src: /src/botan/src/cli/tls_proxy.cpp:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 150
    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:154,1
    - Dst: cli_make_rng
      Src: /src/botan/src/cli/tls_proxy.cpp:157,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: 157
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 157
    functionName: Botan_CLI::tls_proxy_session::tls_proxy_session
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - cli_make_rng
    - std::move
    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:163,1
    - Dst: shared_from_this
      Src: /src/botan/src/cli/tls_proxy.cpp:163,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: 164
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: Botan_CLI::tls_proxy_session::setup
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::TLS::Server>
    - shared_from_this
    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:168,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:169,1
    - Dst: log_error
      Src: /src/botan/src/cli/tls_proxy.cpp:174,1
    - Dst: is_active
      Src: /src/botan/src/cli/tls_proxy.cpp:179,1
    - Dst: log_binary_message
      Src: /src/botan/src/cli/tls_proxy.cpp:180,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:180,1
    - Dst: received_data
      Src: /src/botan/src/cli/tls_proxy.cpp:182,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:182,1
    - Dst: log_exception
      Src: /src/botan/src/cli/tls_proxy.cpp:184,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:185,1
    - Dst: async_read_some
      Src: /src/botan/src/cli/tls_proxy.cpp:189,1
    - Dst: Peer::buffer
      Src: /src/botan/src/cli/tls_proxy.cpp:189,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:189,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:189,1
    - Dst: wrap
      Src: /src/botan/src/cli/tls_proxy.cpp:190,1
    - Dst: boost::bind
      Src: /src/botan/src/cli/tls_proxy.cpp:190,1
    - Dst: shared_from_this
      Src: /src/botan/src/cli/tls_proxy.cpp:191,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - ' error'
    - bytes_transferred
    argTypes:
    - boost::system::error_code
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 194
    functionName: Botan_CLI::tls_proxy_session::client_read
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 3
    functionsReached:
    - log_error
    - Peer::buffer
    - data
    - size
    - log_exception
    - wrap
    - received_data
    - async_read_some
    - boost::bind
    - shared_from_this
    - is_active
    - Botan_CLI::tls_proxy_session::stop
    - log_binary_message
    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:198,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:199,1
    - Dst: clear
      Src: /src/botan/src/cli/tls_proxy.cpp:203,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_proxy.cpp:205,1
    - Dst: is_closed
      Src: /src/botan/src/cli/tls_proxy.cpp:205,1
    - Dst: close
      Src: /src/botan/src/cli/tls_proxy.cpp:206,1
    - Dst: Botan_CLI::tls_proxy_session::tls_emit_data
      Src: /src/botan/src/cli/tls_proxy.cpp:208,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' error'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 196
    functionDepth: 3
    functionLinenumber: 196
    functionLinenumberEnd: 209
    functionName: Botan_CLI::tls_proxy_session::handle_client_write_completion
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - log_error
    - is_closed
    - clear
    - empty
    - close
    - Botan_CLI::tls_proxy_session::tls_emit_data
    - Botan_CLI::tls_proxy_session::stop
    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:213,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:214,1
    - Dst: clear
      Src: /src/botan/src/cli/tls_proxy.cpp:218,1
    - Dst: Botan_CLI::tls_proxy_session::proxy_write_to_server
      Src: /src/botan/src/cli/tls_proxy.cpp:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' error'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 211
    functionDepth: 3
    functionLinenumber: 211
    functionLinenumberEnd: 220
    functionName: Botan_CLI::tls_proxy_session::handle_server_write_completion
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::tls_proxy_session::stop
    - Botan_CLI::tls_proxy_session::proxy_write_to_server
    - log_error
    - clear
    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:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 3
    functionLinenumber: 222
    functionLinenumberEnd: 225
    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:228,1
    - Dst: insert
      Src: /src/botan/src/cli/tls_proxy.cpp:229,1
    - Dst: end
      Src: /src/botan/src/cli/tls_proxy.cpp:229,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/cli/tls_proxy.cpp:229,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/cli/tls_proxy.cpp:229,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_proxy.cpp:233,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_proxy.cpp:233,1
    - Dst: std::swap
      Src: /src/botan/src/cli/tls_proxy.cpp:234,1
    - Dst: log_binary_message
      Src: /src/botan/src/cli/tls_proxy.cpp:236,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:236,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:236,1
    - Dst: boost::asio::async_write
      Src: /src/botan/src/cli/tls_proxy.cpp:238,1
    - Dst: Peer::buffer
      Src: /src/botan/src/cli/tls_proxy.cpp:239,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:239,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:239,1
    - Dst: wrap
      Src: /src/botan/src/cli/tls_proxy.cpp:240,1
    - Dst: boost::bind
      Src: /src/botan/src/cli/tls_proxy.cpp:240,1
    - Dst: shared_from_this
      Src: /src/botan/src/cli/tls_proxy.cpp:241,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - buf
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 244
    functionName: Botan_CLI::tls_proxy_session::tls_emit_data
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 3
    functionsReached:
    - std::span<const uint8_t>::empty
    - Peer::buffer
    - data
    - std::swap
    - size
    - wrap
    - boost::asio::async_write
    - empty
    - std::span<const uint8_t>::begin
    - end
    - boost::bind
    - std::span<const uint8_t>::end
    - shared_from_this
    - log_binary_message
    - insert
    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:247,1
    - Dst: insert
      Src: /src/botan/src/cli/tls_proxy.cpp:248,1
    - Dst: end
      Src: /src/botan/src/cli/tls_proxy.cpp:248,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/cli/tls_proxy.cpp:248,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/cli/tls_proxy.cpp:248,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_proxy.cpp:252,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_proxy.cpp:252,1
    - Dst: std::swap
      Src: /src/botan/src/cli/tls_proxy.cpp:253,1
    - Dst: log_text_message
      Src: /src/botan/src/cli/tls_proxy.cpp:255,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:255,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:255,1
    - Dst: boost::asio::async_write
      Src: /src/botan/src/cli/tls_proxy.cpp:257,1
    - Dst: Peer::buffer
      Src: /src/botan/src/cli/tls_proxy.cpp:258,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:258,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:258,1
    - Dst: wrap
      Src: /src/botan/src/cli/tls_proxy.cpp:259,1
    - Dst: boost::bind
      Src: /src/botan/src/cli/tls_proxy.cpp:259,1
    - Dst: shared_from_this
      Src: /src/botan/src/cli/tls_proxy.cpp:260,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - buf
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 263
    functionName: Botan_CLI::tls_proxy_session::proxy_write_to_server
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 6
    functionsReached:
    - std::span<const uint8_t>::empty
    - log_text_message
    - Peer::buffer
    - data
    - std::swap
    - size
    - wrap
    - boost::asio::async_write
    - empty
    - std::span<const uint8_t>::begin
    - end
    - boost::bind
    - std::span<const uint8_t>::end
    - shared_from_this
    - insert
    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:267,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:268,1
    - Dst: log_text_message
      Src: /src/botan/src/cli/tls_proxy.cpp:274,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:274,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:274,1
    - Dst: log_binary_message
      Src: /src/botan/src/cli/tls_proxy.cpp:275,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:275,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:275,1
    - Dst: send
      Src: /src/botan/src/cli/tls_proxy.cpp:276,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:276,1
    - Dst: log_exception
      Src: /src/botan/src/cli/tls_proxy.cpp:279,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:280,1
    - Dst: resize
      Src: /src/botan/src/cli/tls_proxy.cpp:284,1
    - Dst: async_read_some
      Src: /src/botan/src/cli/tls_proxy.cpp:286,1
    - Dst: Peer::buffer
      Src: /src/botan/src/cli/tls_proxy.cpp:286,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:286,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:286,1
    - Dst: wrap
      Src: /src/botan/src/cli/tls_proxy.cpp:287,1
    - Dst: boost::bind
      Src: /src/botan/src/cli/tls_proxy.cpp:287,1
    - Dst: shared_from_this
      Src: /src/botan/src/cli/tls_proxy.cpp:288,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - ' error'
    - bytes_transferred
    argTypes:
    - boost::system::error_code
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 291
    functionName: Botan_CLI::tls_proxy_session::server_read
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - log_text_message
    - log_error
    - resize
    - Peer::buffer
    - data
    - send
    - size
    - log_exception
    - wrap
    - async_read_some
    - boost::bind
    - shared_from_this
    - log_binary_message
    - Botan_CLI::tls_proxy_session::stop
    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:294,1
    - Dst: log_error
      Src: /src/botan/src/cli/tls_proxy.cpp:297,1
    - Dst: lock
      Src: /src/botan/src/cli/tls_proxy.cpp:301,1
    - Dst: auto::server_read
      Src: /src/botan/src/cli/tls_proxy.cpp:302,1
    - Dst: Botan::TLS::error_code
      Src: /src/botan/src/cli/tls_proxy.cpp:302,1
    - Dst: auto::proxy_write_to_server
      Src: /src/botan/src/cli/tls_proxy.cpp:303,1
    - Dst: log_error
      Src: /src/botan/src/cli/tls_proxy.cpp:305,1
    - Dst: async_connect
      Src: /src/botan/src/cli/tls_proxy.cpp:309,1
    - Dst: begin
      Src: /src/botan/src/cli/tls_proxy.cpp:309,1
    - Dst: end
      Src: /src/botan/src/cli/tls_proxy.cpp:309,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 310
    functionName: Botan_CLI::tls_proxy_session::tls_session_activated
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - log_error
    - auto::proxy_write_to_server
    - async_connect
    - end
    - begin
    - Botan::TLS::error_code
    - auto::server_read
    - lock
    - weak_from_this
    linkageType: ''
    returnType: void
    signature: void tls_session_activated() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: server_info
      Src: /src/botan/src/cli/tls_proxy.cpp:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Botan::TLS::Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 314
    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:317,1
    - Dst: close
      Src: /src/botan/src/cli/tls_proxy.cpp:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 321
    functionName: Botan_CLI::tls_proxy_session::tls_alert
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Alert::type
    - close
    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:356,1
    - Dst: Botan::GeneralName::matches_ipv4
      Src: /src/botan/src/cli/tls_proxy.cpp:356,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_proxy.cpp:357,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_proxy.cpp:358,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_proxy.cpp:359,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_proxy.cpp:360,1
    - Dst: log_info
      Src: /src/botan/src/cli/tls_proxy.cpp:362,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/tls_proxy.cpp:362,1
    - Dst: Botan_CLI::tls_proxy_server::serve_one_session
      Src: /src/botan/src/cli/tls_proxy.cpp:363,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: 364
      start: 349
    functionDepth: 3
    functionLinenumber: 349
    functionLinenumberEnd: 364
    functionName: Botan_CLI::tls_proxy_server::tls_proxy_server
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - tcp::endpoint
    - std::move
    - Botan::GeneralName::matches_ipv4
    - Botan_CLI::tls_proxy_server::serve_one_session
    - std::to_string
    - log_info
    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:368,1
    - Dst: get_io_service
      Src: /src/botan/src/cli/tls_proxy.cpp:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 369
    functionName: Botan_CLI::tls_proxy_server::make_session
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 2
    functionsReached:
    - get_io_service
    - Botan_CLI::tls_proxy_session::create
    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:372,1
    - Dst: async_accept
      Src: /src/botan/src/cli/tls_proxy.cpp:374,1
    - Dst: session::pointer::client_socket
      Src: /src/botan/src/cli/tls_proxy.cpp:375,1
    - Dst: boost::bind
      Src: /src/botan/src/cli/tls_proxy.cpp:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 371
    functionDepth: 2
    functionLinenumber: 371
    functionLinenumberEnd: 377
    functionName: Botan_CLI::tls_proxy_server::serve_one_session
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 5
    functionsReached:
    - async_accept
    - Botan_CLI::tls_proxy_server::make_session
    - session::pointer::client_socket
    - boost::bind
    linkageType: ''
    returnType: void
    signature: void serve_one_session()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: start
      Src: /src/botan/src/cli/tls_proxy.cpp:381,1
    - Dst: client_serviced
      Src: /src/botan/src/cli/tls_proxy.cpp:382,1
    - Dst: should_exit
      Src: /src/botan/src/cli/tls_proxy.cpp:384,1
    - Dst: Botan_CLI::tls_proxy_server::serve_one_session
      Src: /src/botan/src/cli/tls_proxy.cpp:385,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: 388
      start: 379
    functionDepth: 3
    functionLinenumber: 379
    functionLinenumberEnd: 388
    functionName: Botan_CLI::tls_proxy_server::handle_accept
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - start
    - Botan_CLI::tls_proxy_server::serve_one_session
    - should_exit
    - 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:53,1
    - Dst: get_executor
      Src: /src/botan/src/cli/tls_proxy.cpp:53,1
    - Dst: Botan_CLI::get_io_service
      Src: /src/botan/src/cli/tls_proxy.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 57
    functionName: Botan_CLI::get_io_service
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 4
    functionsReached:
    - get_executor
    - Botan_CLI::get_io_service
    - static_cast<boost::asio::io_context&>
    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: 61
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    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:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - where
    - ' e'
    argTypes:
    - char*
    - std::exception
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    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:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - where
    - ' error'
    argTypes:
    - char*
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    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: 73
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 73
    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:76,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: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    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:81,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: 84
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 84
    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: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    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:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 96
    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: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    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:100,1
    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::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:119,1
    - Dst: auto::setup
      Src: /src/botan/src/cli/tls_proxy.cpp:123,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: 126
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 126
    functionName: Botan_CLI::tls_proxy_session::create
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 11
    functionsReached:
    - std::make_shared<tls_proxy_session>
    - auto::setup
    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: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    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:131,1
    - Dst: Botan_CLI::tls_proxy_session::client_read
      Src: /src/botan/src/cli/tls_proxy.cpp:132,1
    - Dst: Botan::TLS::error_code
      Src: /src/botan/src/cli/tls_proxy.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 3
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: Botan_CLI::tls_proxy_session::start
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::tls_proxy_session::client_read
    - resize
    - Botan::TLS::error_code
    linkageType: ''
    returnType: void
    signature: void start()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/botan/src/cli/tls_proxy.cpp:141,1
    - Dst: close
      Src: /src/botan/src/cli/tls_proxy.cpp:142,1
    - Dst: reset
      Src: /src/botan/src/cli/tls_proxy.cpp:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 150
    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:154,1
    - Dst: cli_make_rng
      Src: /src/botan/src/cli/tls_proxy.cpp:157,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: 157
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 157
    functionName: Botan_CLI::tls_proxy_session::tls_proxy_session
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - cli_make_rng
    - std::move
    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:163,1
    - Dst: shared_from_this
      Src: /src/botan/src/cli/tls_proxy.cpp:163,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: 164
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 164
    functionName: Botan_CLI::tls_proxy_session::setup
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Botan::TLS::Server>
    - shared_from_this
    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:168,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:169,1
    - Dst: log_error
      Src: /src/botan/src/cli/tls_proxy.cpp:174,1
    - Dst: is_active
      Src: /src/botan/src/cli/tls_proxy.cpp:179,1
    - Dst: log_binary_message
      Src: /src/botan/src/cli/tls_proxy.cpp:180,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:180,1
    - Dst: received_data
      Src: /src/botan/src/cli/tls_proxy.cpp:182,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:182,1
    - Dst: log_exception
      Src: /src/botan/src/cli/tls_proxy.cpp:184,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:185,1
    - Dst: async_read_some
      Src: /src/botan/src/cli/tls_proxy.cpp:189,1
    - Dst: Peer::buffer
      Src: /src/botan/src/cli/tls_proxy.cpp:189,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:189,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:189,1
    - Dst: wrap
      Src: /src/botan/src/cli/tls_proxy.cpp:190,1
    - Dst: boost::bind
      Src: /src/botan/src/cli/tls_proxy.cpp:190,1
    - Dst: shared_from_this
      Src: /src/botan/src/cli/tls_proxy.cpp:191,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - ' error'
    - bytes_transferred
    argTypes:
    - boost::system::error_code
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 194
    functionName: Botan_CLI::tls_proxy_session::client_read
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 4
    functionsReached:
    - log_error
    - Peer::buffer
    - data
    - size
    - log_exception
    - wrap
    - received_data
    - async_read_some
    - boost::bind
    - shared_from_this
    - is_active
    - Botan_CLI::tls_proxy_session::stop
    - log_binary_message
    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:198,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:199,1
    - Dst: clear
      Src: /src/botan/src/cli/tls_proxy.cpp:203,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_proxy.cpp:205,1
    - Dst: is_closed
      Src: /src/botan/src/cli/tls_proxy.cpp:205,1
    - Dst: close
      Src: /src/botan/src/cli/tls_proxy.cpp:206,1
    - Dst: Botan_CLI::tls_proxy_session::tls_emit_data
      Src: /src/botan/src/cli/tls_proxy.cpp:208,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' error'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 196
    functionDepth: 3
    functionLinenumber: 196
    functionLinenumberEnd: 209
    functionName: Botan_CLI::tls_proxy_session::handle_client_write_completion
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - log_error
    - is_closed
    - clear
    - empty
    - close
    - Botan_CLI::tls_proxy_session::tls_emit_data
    - Botan_CLI::tls_proxy_session::stop
    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:213,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:214,1
    - Dst: clear
      Src: /src/botan/src/cli/tls_proxy.cpp:218,1
    - Dst: Botan_CLI::tls_proxy_session::proxy_write_to_server
      Src: /src/botan/src/cli/tls_proxy.cpp:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' error'
    argTypes:
    - boost::system::error_code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 211
    functionDepth: 3
    functionLinenumber: 211
    functionLinenumberEnd: 220
    functionName: Botan_CLI::tls_proxy_session::handle_server_write_completion
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::tls_proxy_session::stop
    - Botan_CLI::tls_proxy_session::proxy_write_to_server
    - log_error
    - clear
    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:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 3
    functionLinenumber: 222
    functionLinenumberEnd: 225
    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:228,1
    - Dst: insert
      Src: /src/botan/src/cli/tls_proxy.cpp:229,1
    - Dst: end
      Src: /src/botan/src/cli/tls_proxy.cpp:229,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/cli/tls_proxy.cpp:229,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/cli/tls_proxy.cpp:229,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_proxy.cpp:233,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_proxy.cpp:233,1
    - Dst: std::swap
      Src: /src/botan/src/cli/tls_proxy.cpp:234,1
    - Dst: log_binary_message
      Src: /src/botan/src/cli/tls_proxy.cpp:236,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:236,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:236,1
    - Dst: boost::asio::async_write
      Src: /src/botan/src/cli/tls_proxy.cpp:238,1
    - Dst: Peer::buffer
      Src: /src/botan/src/cli/tls_proxy.cpp:239,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:239,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:239,1
    - Dst: wrap
      Src: /src/botan/src/cli/tls_proxy.cpp:240,1
    - Dst: boost::bind
      Src: /src/botan/src/cli/tls_proxy.cpp:240,1
    - Dst: shared_from_this
      Src: /src/botan/src/cli/tls_proxy.cpp:241,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - buf
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 244
    functionName: Botan_CLI::tls_proxy_session::tls_emit_data
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 4
    functionsReached:
    - std::span<const uint8_t>::empty
    - Peer::buffer
    - data
    - std::swap
    - size
    - wrap
    - boost::asio::async_write
    - empty
    - std::span<const uint8_t>::begin
    - end
    - boost::bind
    - std::span<const uint8_t>::end
    - shared_from_this
    - log_binary_message
    - insert
    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:247,1
    - Dst: insert
      Src: /src/botan/src/cli/tls_proxy.cpp:248,1
    - Dst: end
      Src: /src/botan/src/cli/tls_proxy.cpp:248,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/cli/tls_proxy.cpp:248,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/cli/tls_proxy.cpp:248,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_proxy.cpp:252,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_proxy.cpp:252,1
    - Dst: std::swap
      Src: /src/botan/src/cli/tls_proxy.cpp:253,1
    - Dst: log_text_message
      Src: /src/botan/src/cli/tls_proxy.cpp:255,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:255,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:255,1
    - Dst: boost::asio::async_write
      Src: /src/botan/src/cli/tls_proxy.cpp:257,1
    - Dst: Peer::buffer
      Src: /src/botan/src/cli/tls_proxy.cpp:258,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:258,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:258,1
    - Dst: wrap
      Src: /src/botan/src/cli/tls_proxy.cpp:259,1
    - Dst: boost::bind
      Src: /src/botan/src/cli/tls_proxy.cpp:259,1
    - Dst: shared_from_this
      Src: /src/botan/src/cli/tls_proxy.cpp:260,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - buf
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 263
    functionName: Botan_CLI::tls_proxy_session::proxy_write_to_server
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 8
    functionsReached:
    - std::span<const uint8_t>::empty
    - log_text_message
    - Peer::buffer
    - data
    - std::swap
    - size
    - wrap
    - boost::asio::async_write
    - empty
    - std::span<const uint8_t>::begin
    - end
    - boost::bind
    - std::span<const uint8_t>::end
    - shared_from_this
    - insert
    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:267,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:268,1
    - Dst: log_text_message
      Src: /src/botan/src/cli/tls_proxy.cpp:274,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:274,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:274,1
    - Dst: log_binary_message
      Src: /src/botan/src/cli/tls_proxy.cpp:275,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:275,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:275,1
    - Dst: send
      Src: /src/botan/src/cli/tls_proxy.cpp:276,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:276,1
    - Dst: log_exception
      Src: /src/botan/src/cli/tls_proxy.cpp:279,1
    - Dst: Botan_CLI::tls_proxy_session::stop
      Src: /src/botan/src/cli/tls_proxy.cpp:280,1
    - Dst: resize
      Src: /src/botan/src/cli/tls_proxy.cpp:284,1
    - Dst: async_read_some
      Src: /src/botan/src/cli/tls_proxy.cpp:286,1
    - Dst: Peer::buffer
      Src: /src/botan/src/cli/tls_proxy.cpp:286,1
    - Dst: data
      Src: /src/botan/src/cli/tls_proxy.cpp:286,1
    - Dst: size
      Src: /src/botan/src/cli/tls_proxy.cpp:286,1
    - Dst: wrap
      Src: /src/botan/src/cli/tls_proxy.cpp:287,1
    - Dst: boost::bind
      Src: /src/botan/src/cli/tls_proxy.cpp:287,1
    - Dst: shared_from_this
      Src: /src/botan/src/cli/tls_proxy.cpp:288,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - ' error'
    - bytes_transferred
    argTypes:
    - boost::system::error_code
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 291
    functionName: Botan_CLI::tls_proxy_session::server_read
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - log_text_message
    - log_error
    - resize
    - Peer::buffer
    - data
    - send
    - size
    - log_exception
    - wrap
    - async_read_some
    - boost::bind
    - shared_from_this
    - log_binary_message
    - Botan_CLI::tls_proxy_session::stop
    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:294,1
    - Dst: log_error
      Src: /src/botan/src/cli/tls_proxy.cpp:297,1
    - Dst: lock
      Src: /src/botan/src/cli/tls_proxy.cpp:301,1
    - Dst: auto::server_read
      Src: /src/botan/src/cli/tls_proxy.cpp:302,1
    - Dst: Botan::TLS::error_code
      Src: /src/botan/src/cli/tls_proxy.cpp:302,1
    - Dst: auto::proxy_write_to_server
      Src: /src/botan/src/cli/tls_proxy.cpp:303,1
    - Dst: log_error
      Src: /src/botan/src/cli/tls_proxy.cpp:305,1
    - Dst: async_connect
      Src: /src/botan/src/cli/tls_proxy.cpp:309,1
    - Dst: begin
      Src: /src/botan/src/cli/tls_proxy.cpp:309,1
    - Dst: end
      Src: /src/botan/src/cli/tls_proxy.cpp:309,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 310
    functionName: Botan_CLI::tls_proxy_session::tls_session_activated
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - log_error
    - auto::proxy_write_to_server
    - async_connect
    - end
    - begin
    - Botan::TLS::error_code
    - auto::server_read
    - lock
    - weak_from_this
    linkageType: ''
    returnType: void
    signature: void tls_session_activated() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: server_info
      Src: /src/botan/src/cli/tls_proxy.cpp:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Botan::TLS::Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 314
    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:317,1
    - Dst: close
      Src: /src/botan/src/cli/tls_proxy.cpp:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 321
    functionName: Botan_CLI::tls_proxy_session::tls_alert
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Alert::type
    - close
    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:356,1
    - Dst: Botan::GeneralName::matches_ipv4
      Src: /src/botan/src/cli/tls_proxy.cpp:356,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_proxy.cpp:357,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_proxy.cpp:358,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_proxy.cpp:359,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_proxy.cpp:360,1
    - Dst: log_info
      Src: /src/botan/src/cli/tls_proxy.cpp:362,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/tls_proxy.cpp:362,1
    - Dst: Botan_CLI::tls_proxy_server::serve_one_session
      Src: /src/botan/src/cli/tls_proxy.cpp:363,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: 364
      start: 349
    functionDepth: 3
    functionLinenumber: 349
    functionLinenumberEnd: 364
    functionName: Botan_CLI::tls_proxy_server::tls_proxy_server
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - tcp::endpoint
    - std::move
    - Botan::GeneralName::matches_ipv4
    - Botan_CLI::tls_proxy_server::serve_one_session
    - std::to_string
    - log_info
    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:368,1
    - Dst: get_io_service
      Src: /src/botan/src/cli/tls_proxy.cpp:368,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 369
    functionName: Botan_CLI::tls_proxy_server::make_session
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 3
    functionsReached:
    - get_io_service
    - Botan_CLI::tls_proxy_session::create
    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:372,1
    - Dst: async_accept
      Src: /src/botan/src/cli/tls_proxy.cpp:374,1
    - Dst: session::pointer::client_socket
      Src: /src/botan/src/cli/tls_proxy.cpp:375,1
    - Dst: boost::bind
      Src: /src/botan/src/cli/tls_proxy.cpp:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 371
    functionDepth: 2
    functionLinenumber: 371
    functionLinenumberEnd: 377
    functionName: Botan_CLI::tls_proxy_server::serve_one_session
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 7
    functionsReached:
    - async_accept
    - Botan_CLI::tls_proxy_server::make_session
    - session::pointer::client_socket
    - boost::bind
    linkageType: ''
    returnType: void
    signature: void serve_one_session()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: start
      Src: /src/botan/src/cli/tls_proxy.cpp:381,1
    - Dst: client_serviced
      Src: /src/botan/src/cli/tls_proxy.cpp:382,1
    - Dst: should_exit
      Src: /src/botan/src/cli/tls_proxy.cpp:384,1
    - Dst: Botan_CLI::tls_proxy_server::serve_one_session
      Src: /src/botan/src/cli/tls_proxy.cpp:385,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: 388
      start: 379
    functionDepth: 3
    functionLinenumber: 379
    functionLinenumberEnd: 388
    functionName: Botan_CLI::tls_proxy_server::handle_accept
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - start
    - Botan_CLI::tls_proxy_server::serve_one_session
    - should_exit
    - 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: 406
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 406
    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: 408
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 408
    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: 410
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 410
    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:413,1
    - Dst: Botan::OS::get_cpu_available
      Src: /src/botan/src/cli/tls_proxy.cpp:417,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 422
    functionName: Botan_CLI::TLS_Proxy::thread_count
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 1
    functionsReached:
    - Botan::OS::get_cpu_available
    - get_arg_sz
    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:425,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_proxy.cpp:426,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_proxy.cpp:427,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_proxy.cpp:429,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_proxy.cpp:430,1
    - Dst: Botan_CLI::TLS_Proxy::thread_count
      Src: /src/botan/src/cli/tls_proxy.cpp:432,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/tls_proxy.cpp:433,1
    - Dst: std::make_shared<Basic_Credentials_Manager>
      Src: /src/botan/src/cli/tls_proxy.cpp:435,1
    - Dst: load_tls_policy
      Src: /src/botan/src/cli/tls_proxy.cpp:437,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_proxy.cpp:437,1
    - Dst: tcp::resolver::resolve
      Src: /src/botan/src/cli/tls_proxy.cpp:442,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/tls_proxy.cpp:447,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_proxy.cpp:448,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/tls_proxy.cpp:450,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_SQLite>
      Src: /src/botan/src/cli/tls_proxy.cpp:452,1
    - Dst: rng_as_shared
      Src: /src/botan/src/cli/tls_proxy.cpp:452,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/cli/tls_proxy.cpp:456,1
    - Dst: rng_as_shared
      Src: /src/botan/src/cli/tls_proxy.cpp:456,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/tls_proxy.cpp:465,1
    - Dst: std::make_shared<std::thread>
      Src: /src/botan/src/cli/tls_proxy.cpp:465,1
    - Dst: boost::asio::io_context::run
      Src: /src/botan/src/cli/tls_proxy.cpp:465,1
    - Dst: boost::asio::io_context::run
      Src: /src/botan/src/cli/tls_proxy.cpp:468,1
    - Dst: join
      Src: /src/botan/src/cli/tls_proxy.cpp:471,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 424
    functionDepth: 3
    functionLinenumber: 424
    functionLinenumberEnd: 473
    functionName: Botan_CLI::TLS_Proxy::go
    functionSourceFile: /src/botan/src/cli/tls_proxy.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - boost::asio::io_context::run
    - get_arg_sz
    - std::vector::push_back
    - std::make_shared<Basic_Credentials_Manager>
    - rng_as_shared
    - std::string::empty
    - join
    - Botan_CLI::TLS_Proxy::thread_count
    - std::make_shared<Botan::TLS::Session_Manager_In_Memory>
    - load_tls_policy
    - get_arg_u16
    - std::make_shared<Botan::TLS::Session_Manager_SQLite>
    - get_passphrase_arg
    - tcp::resolver::resolve
    - std::make_shared<std::thread>
    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:71,1
    - Dst: std::time
      Src: /src/botan/src/cli/tls_http_server.cpp:71,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/tls_http_server.cpp:73,1
    - Dst: std::time
      Src: /src/botan/src/cli/tls_http_server.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 75
    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: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    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:82,1
    - Dst: Botan_CLI::Logger::timestamp
      Src: /src/botan/src/cli/tls_http_server.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 83
    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:87,1
    - Dst: Botan_CLI::Logger::timestamp
      Src: /src/botan/src/cli/tls_http_server.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 88
    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:92,1
    - Dst: Botan_CLI::Logger::flush
      Src: /src/botan/src/cli/tls_http_server.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 94
    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:107,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/tls_http_server.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 110
    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:115,1
    - Dst: ciphersuite
      Src: /src/botan/src/cli/tls_http_server.cpp:116,1
    - Dst: session_id
      Src: /src/botan/src/cli/tls_http_server.cpp:117,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_http_server.cpp:117,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_http_server.cpp:118,1
    - Dst: get
      Src: /src/botan/src/cli/tls_http_server.cpp:118,1
    - Dst: server_info
      Src: /src/botan/src/cli/tls_http_server.cpp:120,1
    - Dst: server_info
      Src: /src/botan/src/cli/tls_http_server.cpp:121,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/tls_http_server.cpp:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Botan::TLS::Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 125
    functionName: Botan_CLI::TlsHttpCallbacks::tls_session_established
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - std::ostringstream::str
    - session_id
    - empty
    - server_info
    - version
    - ciphersuite
    - get
    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:128,1
    - Dst: dynamic_cast<const Botan::TLS::Client_Hello&>
      Src: /src/botan/src/cli/tls_http_server.cpp:129,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_http_server.cpp:133,1
    - Dst: random
      Src: /src/botan/src/cli/tls_http_server.cpp:133,1
    - Dst: ciphersuites
      Src: /src/botan/src/cli/tls_http_server.cpp:136,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/cli/tls_http_server.cpp:137,1
    - Dst: std::setfill
      Src: /src/botan/src/cli/tls_http_server.cpp:139,1
    - Dst: std::setw
      Src: /src/botan/src/cli/tls_http_server.cpp:139,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: auto::valid
      Src: /src/botan/src/cli/tls_http_server.cpp:142,1
    - Dst: auto::to_string
      Src: /src/botan/src/cli/tls_http_server.cpp:143,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/tls_http_server.cpp:151,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - Botan::TLS::Handshake_Message
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 153
    functionName: Botan_CLI::TlsHttpCallbacks::tls_inspect_handshake_msg
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - dynamic_cast<const Botan::TLS::Client_Hello&>
    - std::ostringstream::str
    - random
    - auto::valid
    - Botan::TLS::Ciphersuite::by_id
    - std::setw
    - std::setfill
    - auto::to_string
    - ciphersuites
    - type
    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:156,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_http_server.cpp:156,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_http_server.cpp:156,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_http_server.cpp:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: Botan_CLI::TlsHttpCallbacks::summary
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - empty
    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:170,1
    - Dst: address
      Src: /src/botan/src/cli/tls_http_server.cpp:172,1
    - Dst: method_string
      Src: /src/botan/src/cli/tls_http_server.cpp:172,1
    - Dst: target
      Src: /src/botan/src/cli/tls_http_server.cpp:172,1
    - Dst: std::distance
      Src: /src/botan/src/cli/tls_http_server.cpp:175,1
    - Dst: begin
      Src: /src/botan/src/cli/tls_http_server.cpp:175,1
    - Dst: end
      Src: /src/botan/src/cli/tls_http_server.cpp:175,1
    - Dst: name_string
      Src: /src/botan/src/cli/tls_http_server.cpp:178,1
    - Dst: value
      Src: /src/botan/src/cli/tls_http_server.cpp:178,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/tls_http_server.cpp:182,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: 183
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 183
    functionName: Botan_CLI::summarize_request
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - std::distance
    - std::ostringstream::str
    - address
    - method_string
    - end
    - begin
    - value
    - name_string
    - next_layer
    - 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:189,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_http_server.cpp:189,1
    - Dst: error
      Src: /src/botan/src/cli/tls_http_server.cpp:191,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tls_http_server.cpp:191,1
    - Dst: what
      Src: /src/botan/src/cli/tls_http_server.cpp:191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ' logger'
    - ' context'
    argTypes:
    - std::shared_ptr<Logger>
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 195
    functionName: Botan_CLI::make_final_completion_handler
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::fmt
    - error
    - what
    - std::rethrow_exception
    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:201,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tls_http_server.cpp:201,1
    - Dst: method_string
      Src: /src/botan/src/cli/tls_http_server.cpp:201,1
    - Dst: target
      Src: /src/botan/src/cli/tls_http_server.cpp:201,1
    - Dst: method
      Src: /src/botan/src/cli/tls_http_server.cpp:204,1
    - Dst: target
      Src: /src/botan/src/cli/tls_http_server.cpp:206,1
    - Dst: target
      Src: /src/botan/src/cli/tls_http_server.cpp:206,1
    - Dst: summary
      Src: /src/botan/src/cli/tls_http_server.cpp:207,1
    - Dst: Botan_CLI::summarize_request
      Src: /src/botan/src/cli/tls_http_server.cpp:207,1
    - Dst: std::make_shared<http::response<http::string_body>>
      Src: /src/botan/src/cli/tls_http_server.cpp:213,1
    - Dst: version
      Src: /src/botan/src/cli/tls_http_server.cpp:213,1
    - Dst: auto::body
      Src: /src/botan/src/cli/tls_http_server.cpp:214,1
    - Dst: auto::set
      Src: /src/botan/src/cli/tls_http_server.cpp:215,1
    - Dst: auto::keep_alive
      Src: /src/botan/src/cli/tls_http_server.cpp:216,1
    - Dst: keep_alive
      Src: /src/botan/src/cli/tls_http_server.cpp:216,1
    - Dst: auto::prepare_payload
      Src: /src/botan/src/cli/tls_http_server.cpp:217,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: 220
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 220
    functionName: Botan_CLI::handle_response
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - auto::keep_alive
    - Botan::fmt
    - keep_alive
    - method
    - summary
    - auto::body
    - auto::set
    - Botan_CLI::summarize_request
    - std::make_shared<http::response<http::string_body>>
    - method_string
    - log
    - version
    - auto::prepare_payload
    - target
    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:229,1
    - Dst: Botan::TLS::Stream<tcp_stream>::async_handshake
      Src: /src/botan/src/cli/tls_http_server.cpp:236,1
    - Dst: Botan::TLS::Stream<tcp_stream>::next_layer
      Src: /src/botan/src/cli/tls_http_server.cpp:240,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/cli/tls_http_server.cpp:240,1
    - Dst: http::async_read
      Src: /src/botan/src/cli/tls_http_server.cpp:244,1
    - Dst: Botan_CLI::handle_response
      Src: /src/botan/src/cli/tls_http_server.cpp:247,1
    - Dst: http::async_write
      Src: /src/botan/src/cli/tls_http_server.cpp:250,1
    - Dst: auto::keep_alive
      Src: /src/botan/src/cli/tls_http_server.cpp:253,1
    - Dst: code
      Src: /src/botan/src/cli/tls_http_server.cpp:260,1
    - Dst: std::current_exception
      Src: /src/botan/src/cli/tls_http_server.cpp:264,1
    - Dst: Botan::TLS::Stream<tcp_stream>::async_shutdown
      Src: /src/botan/src/cli/tls_http_server.cpp:272,1
    - Dst: Botan::TLS::Stream<tcp_stream>::next_layer
      Src: /src/botan/src/cli/tls_http_server.cpp:273,1
    - Dst: std::rethrow_exception
      Src: /src/botan/src/cli/tls_http_server.cpp:284,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: 290
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 290
    functionName: Botan_CLI::do_session
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::handle_response
    - Botan::TLS::Stream<tcp_stream>::async_handshake
    - auto::keep_alive
    - std::make_shared<TlsHttpCallbacks>
    - std::current_exception
    - Botan_CLI::Timer::seconds
    - Botan::TLS::Stream<tcp_stream>::next_layer
    - http::async_read
    - Botan::TLS::Stream<tcp_stream>::async_shutdown
    - http::async_write
    - code
    - std::rethrow_exception
    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:296,1
    - Dst: tcp::acceptor
      Src: /src/botan/src/cli/tls_http_server.cpp:296,1
    - Dst: auto::open
      Src: /src/botan/src/cli/tls_http_server.cpp:297,1
    - Dst: tcp::endpoint::protocol
      Src: /src/botan/src/cli/tls_http_server.cpp:297,1
    - Dst: auto::set_option
      Src: /src/botan/src/cli/tls_http_server.cpp:298,1
    - Dst: net::socket_base::reuse_address
      Src: /src/botan/src/cli/tls_http_server.cpp:298,1
    - Dst: auto::bind
      Src: /src/botan/src/cli/tls_http_server.cpp:299,1
    - Dst: auto::listen
      Src: /src/botan/src/cli/tls_http_server.cpp:300,1
    - Dst: std::shared_ptr<Logger>::log
      Src: /src/botan/src/cli/tls_http_server.cpp:307,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tls_http_server.cpp:307,1
    - Dst: tcp::endpoint::address
      Src: /src/botan/src/cli/tls_http_server.cpp:307,1
    - Dst: tcp::endpoint::port
      Src: /src/botan/src/cli/tls_http_server.cpp:307,1
    - Dst: std::shared_ptr<Logger>::flush
      Src: /src/botan/src/cli/tls_http_server.cpp:308,1
    - Dst: done
      Src: /src/botan/src/cli/tls_http_server.cpp:318,1
    - Dst: boost::asio::co_spawn
      Src: /src/botan/src/cli/tls_http_server.cpp:319,1
    - Dst: auto::get_executor
      Src: /src/botan/src/cli/tls_http_server.cpp:319,1
    - Dst: Botan_CLI::do_session
      Src: /src/botan/src/cli/tls_http_server.cpp:320,1
    - Dst: tcp_stream
      Src: /src/botan/src/cli/tls_http_server.cpp:320,1
    - Dst: auto::async_accept
      Src: /src/botan/src/cli/tls_http_server.cpp:320,1
    - Dst: Botan_CLI::make_final_completion_handler
      Src: /src/botan/src/cli/tls_http_server.cpp:321,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: 323
      start: 292
    functionDepth: 3
    functionLinenumber: 292
    functionLinenumberEnd: 323
    functionName: Botan_CLI::do_listen
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr<Logger>::log
    - net::socket_base::reuse_address
    - as_default_on
    - std::shared_ptr<Logger>::flush
    - auto::set_option
    - auto::get_executor
    - tcp_stream
    - tcp::endpoint::port
    - tcp::endpoint::address
    - auto::bind
    - auto::listen
    - boost::asio::co_spawn
    - auto::open
    - Botan_CLI::do_session
    - auto::async_accept
    - Botan::fmt
    - done
    - Botan_CLI::make_final_completion_handler
    - tcp::acceptor
    - tcp::endpoint::protocol
    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:71,1
    - Dst: std::time
      Src: /src/botan/src/cli/tls_http_server.cpp:71,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/tls_http_server.cpp:73,1
    - Dst: std::time
      Src: /src/botan/src/cli/tls_http_server.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 75
    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: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    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:82,1
    - Dst: Botan_CLI::Logger::timestamp
      Src: /src/botan/src/cli/tls_http_server.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 83
    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:87,1
    - Dst: Botan_CLI::Logger::timestamp
      Src: /src/botan/src/cli/tls_http_server.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 88
    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:92,1
    - Dst: Botan_CLI::Logger::flush
      Src: /src/botan/src/cli/tls_http_server.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 94
    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:107,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/tls_http_server.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 110
    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:115,1
    - Dst: ciphersuite
      Src: /src/botan/src/cli/tls_http_server.cpp:116,1
    - Dst: session_id
      Src: /src/botan/src/cli/tls_http_server.cpp:117,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_http_server.cpp:117,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_http_server.cpp:118,1
    - Dst: get
      Src: /src/botan/src/cli/tls_http_server.cpp:118,1
    - Dst: server_info
      Src: /src/botan/src/cli/tls_http_server.cpp:120,1
    - Dst: server_info
      Src: /src/botan/src/cli/tls_http_server.cpp:121,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/tls_http_server.cpp:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Botan::TLS::Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 125
    functionName: Botan_CLI::TlsHttpCallbacks::tls_session_established
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - std::ostringstream::str
    - session_id
    - empty
    - server_info
    - version
    - ciphersuite
    - get
    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:128,1
    - Dst: dynamic_cast<const Botan::TLS::Client_Hello&>
      Src: /src/botan/src/cli/tls_http_server.cpp:129,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_http_server.cpp:133,1
    - Dst: random
      Src: /src/botan/src/cli/tls_http_server.cpp:133,1
    - Dst: ciphersuites
      Src: /src/botan/src/cli/tls_http_server.cpp:136,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/cli/tls_http_server.cpp:137,1
    - Dst: std::setfill
      Src: /src/botan/src/cli/tls_http_server.cpp:139,1
    - Dst: std::setw
      Src: /src/botan/src/cli/tls_http_server.cpp:139,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: auto::valid
      Src: /src/botan/src/cli/tls_http_server.cpp:142,1
    - Dst: auto::to_string
      Src: /src/botan/src/cli/tls_http_server.cpp:143,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/tls_http_server.cpp:151,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - Botan::TLS::Handshake_Message
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 153
    functionName: Botan_CLI::TlsHttpCallbacks::tls_inspect_handshake_msg
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - dynamic_cast<const Botan::TLS::Client_Hello&>
    - std::ostringstream::str
    - random
    - auto::valid
    - Botan::TLS::Ciphersuite::by_id
    - std::setw
    - std::setfill
    - auto::to_string
    - ciphersuites
    - type
    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:156,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_http_server.cpp:156,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_http_server.cpp:156,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_http_server.cpp:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: Botan_CLI::TlsHttpCallbacks::summary
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - empty
    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:170,1
    - Dst: address
      Src: /src/botan/src/cli/tls_http_server.cpp:172,1
    - Dst: method_string
      Src: /src/botan/src/cli/tls_http_server.cpp:172,1
    - Dst: target
      Src: /src/botan/src/cli/tls_http_server.cpp:172,1
    - Dst: std::distance
      Src: /src/botan/src/cli/tls_http_server.cpp:175,1
    - Dst: begin
      Src: /src/botan/src/cli/tls_http_server.cpp:175,1
    - Dst: end
      Src: /src/botan/src/cli/tls_http_server.cpp:175,1
    - Dst: name_string
      Src: /src/botan/src/cli/tls_http_server.cpp:178,1
    - Dst: value
      Src: /src/botan/src/cli/tls_http_server.cpp:178,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/tls_http_server.cpp:182,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: 183
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 183
    functionName: Botan_CLI::summarize_request
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 1
    functionsReached:
    - std::distance
    - std::ostringstream::str
    - address
    - method_string
    - end
    - begin
    - value
    - name_string
    - next_layer
    - 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:189,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_http_server.cpp:189,1
    - Dst: error
      Src: /src/botan/src/cli/tls_http_server.cpp:191,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tls_http_server.cpp:191,1
    - Dst: what
      Src: /src/botan/src/cli/tls_http_server.cpp:191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ' logger'
    - ' context'
    argTypes:
    - std::shared_ptr<Logger>
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 195
    functionName: Botan_CLI::make_final_completion_handler
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 1
    functionsReached:
    - std::move
    - Botan::fmt
    - error
    - what
    - std::rethrow_exception
    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:201,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tls_http_server.cpp:201,1
    - Dst: method_string
      Src: /src/botan/src/cli/tls_http_server.cpp:201,1
    - Dst: target
      Src: /src/botan/src/cli/tls_http_server.cpp:201,1
    - Dst: method
      Src: /src/botan/src/cli/tls_http_server.cpp:204,1
    - Dst: target
      Src: /src/botan/src/cli/tls_http_server.cpp:206,1
    - Dst: target
      Src: /src/botan/src/cli/tls_http_server.cpp:206,1
    - Dst: summary
      Src: /src/botan/src/cli/tls_http_server.cpp:207,1
    - Dst: Botan_CLI::summarize_request
      Src: /src/botan/src/cli/tls_http_server.cpp:207,1
    - Dst: std::make_shared<http::response<http::string_body>>
      Src: /src/botan/src/cli/tls_http_server.cpp:213,1
    - Dst: version
      Src: /src/botan/src/cli/tls_http_server.cpp:213,1
    - Dst: auto::body
      Src: /src/botan/src/cli/tls_http_server.cpp:214,1
    - Dst: auto::set
      Src: /src/botan/src/cli/tls_http_server.cpp:215,1
    - Dst: auto::keep_alive
      Src: /src/botan/src/cli/tls_http_server.cpp:216,1
    - Dst: keep_alive
      Src: /src/botan/src/cli/tls_http_server.cpp:216,1
    - Dst: auto::prepare_payload
      Src: /src/botan/src/cli/tls_http_server.cpp:217,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: 220
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 220
    functionName: Botan_CLI::handle_response
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 1
    functionsReached:
    - auto::keep_alive
    - Botan::fmt
    - keep_alive
    - method
    - summary
    - auto::body
    - auto::set
    - Botan_CLI::summarize_request
    - std::make_shared<http::response<http::string_body>>
    - method_string
    - log
    - version
    - auto::prepare_payload
    - target
    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:229,1
    - Dst: Botan::TLS::Stream<tcp_stream>::async_handshake
      Src: /src/botan/src/cli/tls_http_server.cpp:236,1
    - Dst: Botan::TLS::Stream<tcp_stream>::next_layer
      Src: /src/botan/src/cli/tls_http_server.cpp:240,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/cli/tls_http_server.cpp:240,1
    - Dst: http::async_read
      Src: /src/botan/src/cli/tls_http_server.cpp:244,1
    - Dst: Botan_CLI::handle_response
      Src: /src/botan/src/cli/tls_http_server.cpp:247,1
    - Dst: http::async_write
      Src: /src/botan/src/cli/tls_http_server.cpp:250,1
    - Dst: auto::keep_alive
      Src: /src/botan/src/cli/tls_http_server.cpp:253,1
    - Dst: code
      Src: /src/botan/src/cli/tls_http_server.cpp:260,1
    - Dst: std::current_exception
      Src: /src/botan/src/cli/tls_http_server.cpp:264,1
    - Dst: Botan::TLS::Stream<tcp_stream>::async_shutdown
      Src: /src/botan/src/cli/tls_http_server.cpp:272,1
    - Dst: Botan::TLS::Stream<tcp_stream>::next_layer
      Src: /src/botan/src/cli/tls_http_server.cpp:273,1
    - Dst: std::rethrow_exception
      Src: /src/botan/src/cli/tls_http_server.cpp:284,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: 290
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 290
    functionName: Botan_CLI::do_session
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 1
    functionsReached:
    - Botan_CLI::handle_response
    - Botan::TLS::Stream<tcp_stream>::async_handshake
    - auto::keep_alive
    - std::make_shared<TlsHttpCallbacks>
    - std::current_exception
    - Botan_CLI::Timer::seconds
    - Botan::TLS::Stream<tcp_stream>::next_layer
    - http::async_read
    - Botan::TLS::Stream<tcp_stream>::async_shutdown
    - http::async_write
    - code
    - std::rethrow_exception
    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:296,1
    - Dst: tcp::acceptor
      Src: /src/botan/src/cli/tls_http_server.cpp:296,1
    - Dst: auto::open
      Src: /src/botan/src/cli/tls_http_server.cpp:297,1
    - Dst: tcp::endpoint::protocol
      Src: /src/botan/src/cli/tls_http_server.cpp:297,1
    - Dst: auto::set_option
      Src: /src/botan/src/cli/tls_http_server.cpp:298,1
    - Dst: net::socket_base::reuse_address
      Src: /src/botan/src/cli/tls_http_server.cpp:298,1
    - Dst: auto::bind
      Src: /src/botan/src/cli/tls_http_server.cpp:299,1
    - Dst: auto::listen
      Src: /src/botan/src/cli/tls_http_server.cpp:300,1
    - Dst: std::shared_ptr<Logger>::log
      Src: /src/botan/src/cli/tls_http_server.cpp:307,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tls_http_server.cpp:307,1
    - Dst: tcp::endpoint::address
      Src: /src/botan/src/cli/tls_http_server.cpp:307,1
    - Dst: tcp::endpoint::port
      Src: /src/botan/src/cli/tls_http_server.cpp:307,1
    - Dst: std::shared_ptr<Logger>::flush
      Src: /src/botan/src/cli/tls_http_server.cpp:308,1
    - Dst: done
      Src: /src/botan/src/cli/tls_http_server.cpp:318,1
    - Dst: boost::asio::co_spawn
      Src: /src/botan/src/cli/tls_http_server.cpp:319,1
    - Dst: auto::get_executor
      Src: /src/botan/src/cli/tls_http_server.cpp:319,1
    - Dst: Botan_CLI::do_session
      Src: /src/botan/src/cli/tls_http_server.cpp:320,1
    - Dst: tcp_stream
      Src: /src/botan/src/cli/tls_http_server.cpp:320,1
    - Dst: auto::async_accept
      Src: /src/botan/src/cli/tls_http_server.cpp:320,1
    - Dst: Botan_CLI::make_final_completion_handler
      Src: /src/botan/src/cli/tls_http_server.cpp:321,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: 323
      start: 292
    functionDepth: 3
    functionLinenumber: 292
    functionLinenumberEnd: 323
    functionName: Botan_CLI::do_listen
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr<Logger>::log
    - net::socket_base::reuse_address
    - as_default_on
    - std::shared_ptr<Logger>::flush
    - auto::set_option
    - auto::get_executor
    - tcp_stream
    - tcp::endpoint::port
    - tcp::endpoint::address
    - auto::bind
    - auto::listen
    - boost::asio::co_spawn
    - auto::open
    - Botan_CLI::do_session
    - auto::async_accept
    - Botan::fmt
    - done
    - Botan_CLI::make_final_completion_handler
    - tcp::acceptor
    - tcp::endpoint::protocol
    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: 333
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 333
    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: 335
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 335
    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: 337
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 337
    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:340,1
    - Dst: Botan::OS::get_cpu_available
      Src: /src/botan/src/cli/tls_http_server.cpp:344,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 349
    functionName: Botan_CLI::TLS_HTTP_Server::thread_count
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - Botan::OS::get_cpu_available
    - get_arg_sz
    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:352,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_http_server.cpp:354,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_http_server.cpp:355,1
    - Dst: Botan_CLI::TLS_HTTP_Server::thread_count
      Src: /src/botan/src/cli/tls_http_server.cpp:357,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/tls_http_server.cpp:358,1
    - Dst: std::make_shared<Basic_Credentials_Manager>
      Src: /src/botan/src/cli/tls_http_server.cpp:360,1
    - Dst: load_tls_policy
      Src: /src/botan/src/cli/tls_http_server.cpp:362,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_http_server.cpp:362,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_http_server.cpp:366,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/tls_http_server.cpp:368,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/tls_http_server.cpp:370,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_SQLite>
      Src: /src/botan/src/cli/tls_http_server.cpp:372,1
    - Dst: rng_as_shared
      Src: /src/botan/src/cli/tls_http_server.cpp:372,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/tls_http_server.cpp:374,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/cli/tls_http_server.cpp:379,1
    - Dst: rng_as_shared
      Src: /src/botan/src/cli/tls_http_server.cpp:379,1
    - Dst: std::make_shared<Logger>
      Src: /src/botan/src/cli/tls_http_server.cpp:382,1
    - Dst: output
      Src: /src/botan/src/cli/tls_http_server.cpp:382,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_http_server.cpp:382,1
    - Dst: static_cast<int>
      Src: /src/botan/src/cli/tls_http_server.cpp:384,1
    - Dst: net::ip::make_address
      Src: /src/botan/src/cli/tls_http_server.cpp:385,1
    - Dst: boost::asio::co_spawn
      Src: /src/botan/src/cli/tls_http_server.cpp:386,1
    - Dst: do_listen
      Src: /src/botan/src/cli/tls_http_server.cpp:388,1
    - Dst: std::enable_shared_from_this<Context>
      Src: /src/botan/src/cli/tls_http_server.cpp:389,1
    - Dst: rng_as_shared
      Src: /src/botan/src/cli/tls_http_server.cpp:389,1
    - Dst: make_final_completion_handler
      Src: /src/botan/src/cli/tls_http_server.cpp:392,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/tls_http_server.cpp:398,1
    - Dst: std::make_shared<std::thread>
      Src: /src/botan/src/cli/tls_http_server.cpp:398,1
    - Dst: net::io_context::run
      Src: /src/botan/src/cli/tls_http_server.cpp:398,1
    - Dst: net::io_context::run
      Src: /src/botan/src/cli/tls_http_server.cpp:401,1
    - Dst: join
      Src: /src/botan/src/cli/tls_http_server.cpp:404,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 351
    functionDepth: 3
    functionLinenumber: 351
    functionLinenumberEnd: 406
    functionName: Botan_CLI::TLS_HTTP_Server::go
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - std::make_shared<Basic_Credentials_Manager>
    - std::string::empty
    - std::enable_shared_from_this<Context>
    - do_listen
    - load_tls_policy
    - Botan_CLI::TLS_HTTP_Server::thread_count
    - get_arg_u16
    - std::make_shared<std::thread>
    - CLI_Error_Unsupported
    - rng_as_shared
    - make_final_completion_handler
    - output
    - get_passphrase_arg
    - std::make_shared<Logger>
    - get_arg
    - get_arg_sz
    - std::vector::push_back
    - std::make_shared<Botan::TLS::Session_Manager_In_Memory>
    - boost::asio::co_spawn
    - std::make_shared<Botan::TLS::Session_Manager_SQLite>
    - net::ip::make_address
    - net::io_context::run
    - error_output
    - join
    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:71,1
    - Dst: std::time
      Src: /src/botan/src/cli/tls_http_server.cpp:71,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/tls_http_server.cpp:73,1
    - Dst: std::time
      Src: /src/botan/src/cli/tls_http_server.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 75
    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: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    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:82,1
    - Dst: Botan_CLI::Logger::timestamp
      Src: /src/botan/src/cli/tls_http_server.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 83
    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:87,1
    - Dst: Botan_CLI::Logger::timestamp
      Src: /src/botan/src/cli/tls_http_server.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 88
    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:92,1
    - Dst: Botan_CLI::Logger::flush
      Src: /src/botan/src/cli/tls_http_server.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 94
    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:107,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/tls_http_server.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 110
    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:115,1
    - Dst: ciphersuite
      Src: /src/botan/src/cli/tls_http_server.cpp:116,1
    - Dst: session_id
      Src: /src/botan/src/cli/tls_http_server.cpp:117,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_http_server.cpp:117,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_http_server.cpp:118,1
    - Dst: get
      Src: /src/botan/src/cli/tls_http_server.cpp:118,1
    - Dst: server_info
      Src: /src/botan/src/cli/tls_http_server.cpp:120,1
    - Dst: server_info
      Src: /src/botan/src/cli/tls_http_server.cpp:121,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/tls_http_server.cpp:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Botan::TLS::Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 125
    functionName: Botan_CLI::TlsHttpCallbacks::tls_session_established
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - std::ostringstream::str
    - session_id
    - empty
    - server_info
    - version
    - ciphersuite
    - get
    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:128,1
    - Dst: dynamic_cast<const Botan::TLS::Client_Hello&>
      Src: /src/botan/src/cli/tls_http_server.cpp:129,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_http_server.cpp:133,1
    - Dst: random
      Src: /src/botan/src/cli/tls_http_server.cpp:133,1
    - Dst: ciphersuites
      Src: /src/botan/src/cli/tls_http_server.cpp:136,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/cli/tls_http_server.cpp:137,1
    - Dst: std::setfill
      Src: /src/botan/src/cli/tls_http_server.cpp:139,1
    - Dst: std::setw
      Src: /src/botan/src/cli/tls_http_server.cpp:139,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: auto::valid
      Src: /src/botan/src/cli/tls_http_server.cpp:142,1
    - Dst: auto::to_string
      Src: /src/botan/src/cli/tls_http_server.cpp:143,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/tls_http_server.cpp:151,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - Botan::TLS::Handshake_Message
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 153
    functionName: Botan_CLI::TlsHttpCallbacks::tls_inspect_handshake_msg
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - dynamic_cast<const Botan::TLS::Client_Hello&>
    - std::ostringstream::str
    - random
    - auto::valid
    - Botan::TLS::Ciphersuite::by_id
    - std::setw
    - std::setfill
    - auto::to_string
    - ciphersuites
    - type
    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:156,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_http_server.cpp:156,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_http_server.cpp:156,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_http_server.cpp:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: Botan_CLI::TlsHttpCallbacks::summary
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - empty
    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:170,1
    - Dst: address
      Src: /src/botan/src/cli/tls_http_server.cpp:172,1
    - Dst: method_string
      Src: /src/botan/src/cli/tls_http_server.cpp:172,1
    - Dst: target
      Src: /src/botan/src/cli/tls_http_server.cpp:172,1
    - Dst: std::distance
      Src: /src/botan/src/cli/tls_http_server.cpp:175,1
    - Dst: begin
      Src: /src/botan/src/cli/tls_http_server.cpp:175,1
    - Dst: end
      Src: /src/botan/src/cli/tls_http_server.cpp:175,1
    - Dst: name_string
      Src: /src/botan/src/cli/tls_http_server.cpp:178,1
    - Dst: value
      Src: /src/botan/src/cli/tls_http_server.cpp:178,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/tls_http_server.cpp:182,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: 183
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 183
    functionName: Botan_CLI::summarize_request
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 2
    functionsReached:
    - std::distance
    - std::ostringstream::str
    - address
    - method_string
    - end
    - begin
    - value
    - name_string
    - next_layer
    - 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:189,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_http_server.cpp:189,1
    - Dst: error
      Src: /src/botan/src/cli/tls_http_server.cpp:191,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tls_http_server.cpp:191,1
    - Dst: what
      Src: /src/botan/src/cli/tls_http_server.cpp:191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ' logger'
    - ' context'
    argTypes:
    - std::shared_ptr<Logger>
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 195
    functionName: Botan_CLI::make_final_completion_handler
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 2
    functionsReached:
    - std::move
    - Botan::fmt
    - error
    - what
    - std::rethrow_exception
    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:201,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tls_http_server.cpp:201,1
    - Dst: method_string
      Src: /src/botan/src/cli/tls_http_server.cpp:201,1
    - Dst: target
      Src: /src/botan/src/cli/tls_http_server.cpp:201,1
    - Dst: method
      Src: /src/botan/src/cli/tls_http_server.cpp:204,1
    - Dst: target
      Src: /src/botan/src/cli/tls_http_server.cpp:206,1
    - Dst: target
      Src: /src/botan/src/cli/tls_http_server.cpp:206,1
    - Dst: summary
      Src: /src/botan/src/cli/tls_http_server.cpp:207,1
    - Dst: Botan_CLI::summarize_request
      Src: /src/botan/src/cli/tls_http_server.cpp:207,1
    - Dst: std::make_shared<http::response<http::string_body>>
      Src: /src/botan/src/cli/tls_http_server.cpp:213,1
    - Dst: version
      Src: /src/botan/src/cli/tls_http_server.cpp:213,1
    - Dst: auto::body
      Src: /src/botan/src/cli/tls_http_server.cpp:214,1
    - Dst: auto::set
      Src: /src/botan/src/cli/tls_http_server.cpp:215,1
    - Dst: auto::keep_alive
      Src: /src/botan/src/cli/tls_http_server.cpp:216,1
    - Dst: keep_alive
      Src: /src/botan/src/cli/tls_http_server.cpp:216,1
    - Dst: auto::prepare_payload
      Src: /src/botan/src/cli/tls_http_server.cpp:217,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: 220
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 220
    functionName: Botan_CLI::handle_response
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 2
    functionsReached:
    - auto::keep_alive
    - Botan::fmt
    - keep_alive
    - method
    - summary
    - auto::body
    - auto::set
    - Botan_CLI::summarize_request
    - std::make_shared<http::response<http::string_body>>
    - method_string
    - log
    - version
    - auto::prepare_payload
    - target
    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:229,1
    - Dst: Botan::TLS::Stream<tcp_stream>::async_handshake
      Src: /src/botan/src/cli/tls_http_server.cpp:236,1
    - Dst: Botan::TLS::Stream<tcp_stream>::next_layer
      Src: /src/botan/src/cli/tls_http_server.cpp:240,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/cli/tls_http_server.cpp:240,1
    - Dst: http::async_read
      Src: /src/botan/src/cli/tls_http_server.cpp:244,1
    - Dst: Botan_CLI::handle_response
      Src: /src/botan/src/cli/tls_http_server.cpp:247,1
    - Dst: http::async_write
      Src: /src/botan/src/cli/tls_http_server.cpp:250,1
    - Dst: auto::keep_alive
      Src: /src/botan/src/cli/tls_http_server.cpp:253,1
    - Dst: code
      Src: /src/botan/src/cli/tls_http_server.cpp:260,1
    - Dst: std::current_exception
      Src: /src/botan/src/cli/tls_http_server.cpp:264,1
    - Dst: Botan::TLS::Stream<tcp_stream>::async_shutdown
      Src: /src/botan/src/cli/tls_http_server.cpp:272,1
    - Dst: Botan::TLS::Stream<tcp_stream>::next_layer
      Src: /src/botan/src/cli/tls_http_server.cpp:273,1
    - Dst: std::rethrow_exception
      Src: /src/botan/src/cli/tls_http_server.cpp:284,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: 290
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 290
    functionName: Botan_CLI::do_session
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 2
    functionsReached:
    - Botan_CLI::handle_response
    - Botan::TLS::Stream<tcp_stream>::async_handshake
    - auto::keep_alive
    - std::make_shared<TlsHttpCallbacks>
    - std::current_exception
    - Botan_CLI::Timer::seconds
    - Botan::TLS::Stream<tcp_stream>::next_layer
    - http::async_read
    - Botan::TLS::Stream<tcp_stream>::async_shutdown
    - http::async_write
    - code
    - std::rethrow_exception
    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:296,1
    - Dst: tcp::acceptor
      Src: /src/botan/src/cli/tls_http_server.cpp:296,1
    - Dst: auto::open
      Src: /src/botan/src/cli/tls_http_server.cpp:297,1
    - Dst: tcp::endpoint::protocol
      Src: /src/botan/src/cli/tls_http_server.cpp:297,1
    - Dst: auto::set_option
      Src: /src/botan/src/cli/tls_http_server.cpp:298,1
    - Dst: net::socket_base::reuse_address
      Src: /src/botan/src/cli/tls_http_server.cpp:298,1
    - Dst: auto::bind
      Src: /src/botan/src/cli/tls_http_server.cpp:299,1
    - Dst: auto::listen
      Src: /src/botan/src/cli/tls_http_server.cpp:300,1
    - Dst: std::shared_ptr<Logger>::log
      Src: /src/botan/src/cli/tls_http_server.cpp:307,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tls_http_server.cpp:307,1
    - Dst: tcp::endpoint::address
      Src: /src/botan/src/cli/tls_http_server.cpp:307,1
    - Dst: tcp::endpoint::port
      Src: /src/botan/src/cli/tls_http_server.cpp:307,1
    - Dst: std::shared_ptr<Logger>::flush
      Src: /src/botan/src/cli/tls_http_server.cpp:308,1
    - Dst: done
      Src: /src/botan/src/cli/tls_http_server.cpp:318,1
    - Dst: boost::asio::co_spawn
      Src: /src/botan/src/cli/tls_http_server.cpp:319,1
    - Dst: auto::get_executor
      Src: /src/botan/src/cli/tls_http_server.cpp:319,1
    - Dst: Botan_CLI::do_session
      Src: /src/botan/src/cli/tls_http_server.cpp:320,1
    - Dst: tcp_stream
      Src: /src/botan/src/cli/tls_http_server.cpp:320,1
    - Dst: auto::async_accept
      Src: /src/botan/src/cli/tls_http_server.cpp:320,1
    - Dst: Botan_CLI::make_final_completion_handler
      Src: /src/botan/src/cli/tls_http_server.cpp:321,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: 323
      start: 292
    functionDepth: 3
    functionLinenumber: 292
    functionLinenumberEnd: 323
    functionName: Botan_CLI::do_listen
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr<Logger>::log
    - net::socket_base::reuse_address
    - as_default_on
    - std::shared_ptr<Logger>::flush
    - auto::set_option
    - auto::get_executor
    - tcp_stream
    - tcp::endpoint::port
    - tcp::endpoint::address
    - auto::bind
    - auto::listen
    - boost::asio::co_spawn
    - auto::open
    - Botan_CLI::do_session
    - auto::async_accept
    - Botan::fmt
    - done
    - Botan_CLI::make_final_completion_handler
    - tcp::acceptor
    - tcp::endpoint::protocol
    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:71,1
    - Dst: std::time
      Src: /src/botan/src/cli/tls_http_server.cpp:71,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/tls_http_server.cpp:73,1
    - Dst: std::time
      Src: /src/botan/src/cli/tls_http_server.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 75
    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: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    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:82,1
    - Dst: Botan_CLI::Logger::timestamp
      Src: /src/botan/src/cli/tls_http_server.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 83
    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:87,1
    - Dst: Botan_CLI::Logger::timestamp
      Src: /src/botan/src/cli/tls_http_server.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 88
    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:92,1
    - Dst: Botan_CLI::Logger::flush
      Src: /src/botan/src/cli/tls_http_server.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 94
    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:107,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/tls_http_server.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 110
    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:115,1
    - Dst: ciphersuite
      Src: /src/botan/src/cli/tls_http_server.cpp:116,1
    - Dst: session_id
      Src: /src/botan/src/cli/tls_http_server.cpp:117,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_http_server.cpp:117,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_http_server.cpp:118,1
    - Dst: get
      Src: /src/botan/src/cli/tls_http_server.cpp:118,1
    - Dst: server_info
      Src: /src/botan/src/cli/tls_http_server.cpp:120,1
    - Dst: server_info
      Src: /src/botan/src/cli/tls_http_server.cpp:121,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/tls_http_server.cpp:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Botan::TLS::Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 125
    functionName: Botan_CLI::TlsHttpCallbacks::tls_session_established
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - std::ostringstream::str
    - session_id
    - empty
    - server_info
    - version
    - ciphersuite
    - get
    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:128,1
    - Dst: dynamic_cast<const Botan::TLS::Client_Hello&>
      Src: /src/botan/src/cli/tls_http_server.cpp:129,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_http_server.cpp:133,1
    - Dst: random
      Src: /src/botan/src/cli/tls_http_server.cpp:133,1
    - Dst: ciphersuites
      Src: /src/botan/src/cli/tls_http_server.cpp:136,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/cli/tls_http_server.cpp:137,1
    - Dst: std::setfill
      Src: /src/botan/src/cli/tls_http_server.cpp:139,1
    - Dst: std::setw
      Src: /src/botan/src/cli/tls_http_server.cpp:139,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: auto::valid
      Src: /src/botan/src/cli/tls_http_server.cpp:142,1
    - Dst: auto::to_string
      Src: /src/botan/src/cli/tls_http_server.cpp:143,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/tls_http_server.cpp:151,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - Botan::TLS::Handshake_Message
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 153
    functionName: Botan_CLI::TlsHttpCallbacks::tls_inspect_handshake_msg
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_encode
    - dynamic_cast<const Botan::TLS::Client_Hello&>
    - std::ostringstream::str
    - random
    - auto::valid
    - Botan::TLS::Ciphersuite::by_id
    - std::setw
    - std::setfill
    - auto::to_string
    - ciphersuites
    - type
    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:156,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_http_server.cpp:156,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_http_server.cpp:156,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_http_server.cpp:156,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: Botan_CLI::TlsHttpCallbacks::summary
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - empty
    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:170,1
    - Dst: address
      Src: /src/botan/src/cli/tls_http_server.cpp:172,1
    - Dst: method_string
      Src: /src/botan/src/cli/tls_http_server.cpp:172,1
    - Dst: target
      Src: /src/botan/src/cli/tls_http_server.cpp:172,1
    - Dst: std::distance
      Src: /src/botan/src/cli/tls_http_server.cpp:175,1
    - Dst: begin
      Src: /src/botan/src/cli/tls_http_server.cpp:175,1
    - Dst: end
      Src: /src/botan/src/cli/tls_http_server.cpp:175,1
    - Dst: name_string
      Src: /src/botan/src/cli/tls_http_server.cpp:178,1
    - Dst: value
      Src: /src/botan/src/cli/tls_http_server.cpp:178,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/tls_http_server.cpp:182,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: 183
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 183
    functionName: Botan_CLI::summarize_request
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 3
    functionsReached:
    - std::distance
    - std::ostringstream::str
    - address
    - method_string
    - end
    - begin
    - value
    - name_string
    - next_layer
    - 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:189,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_http_server.cpp:189,1
    - Dst: error
      Src: /src/botan/src/cli/tls_http_server.cpp:191,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tls_http_server.cpp:191,1
    - Dst: what
      Src: /src/botan/src/cli/tls_http_server.cpp:191,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ' logger'
    - ' context'
    argTypes:
    - std::shared_ptr<Logger>
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 195
    functionName: Botan_CLI::make_final_completion_handler
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 3
    functionsReached:
    - std::move
    - Botan::fmt
    - error
    - what
    - std::rethrow_exception
    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:201,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tls_http_server.cpp:201,1
    - Dst: method_string
      Src: /src/botan/src/cli/tls_http_server.cpp:201,1
    - Dst: target
      Src: /src/botan/src/cli/tls_http_server.cpp:201,1
    - Dst: method
      Src: /src/botan/src/cli/tls_http_server.cpp:204,1
    - Dst: target
      Src: /src/botan/src/cli/tls_http_server.cpp:206,1
    - Dst: target
      Src: /src/botan/src/cli/tls_http_server.cpp:206,1
    - Dst: summary
      Src: /src/botan/src/cli/tls_http_server.cpp:207,1
    - Dst: Botan_CLI::summarize_request
      Src: /src/botan/src/cli/tls_http_server.cpp:207,1
    - Dst: std::make_shared<http::response<http::string_body>>
      Src: /src/botan/src/cli/tls_http_server.cpp:213,1
    - Dst: version
      Src: /src/botan/src/cli/tls_http_server.cpp:213,1
    - Dst: auto::body
      Src: /src/botan/src/cli/tls_http_server.cpp:214,1
    - Dst: auto::set
      Src: /src/botan/src/cli/tls_http_server.cpp:215,1
    - Dst: auto::keep_alive
      Src: /src/botan/src/cli/tls_http_server.cpp:216,1
    - Dst: keep_alive
      Src: /src/botan/src/cli/tls_http_server.cpp:216,1
    - Dst: auto::prepare_payload
      Src: /src/botan/src/cli/tls_http_server.cpp:217,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: 220
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 220
    functionName: Botan_CLI::handle_response
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 3
    functionsReached:
    - auto::keep_alive
    - Botan::fmt
    - keep_alive
    - method
    - summary
    - auto::body
    - auto::set
    - Botan_CLI::summarize_request
    - std::make_shared<http::response<http::string_body>>
    - method_string
    - log
    - version
    - auto::prepare_payload
    - target
    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:229,1
    - Dst: Botan::TLS::Stream<tcp_stream>::async_handshake
      Src: /src/botan/src/cli/tls_http_server.cpp:236,1
    - Dst: Botan::TLS::Stream<tcp_stream>::next_layer
      Src: /src/botan/src/cli/tls_http_server.cpp:240,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/cli/tls_http_server.cpp:240,1
    - Dst: http::async_read
      Src: /src/botan/src/cli/tls_http_server.cpp:244,1
    - Dst: Botan_CLI::handle_response
      Src: /src/botan/src/cli/tls_http_server.cpp:247,1
    - Dst: http::async_write
      Src: /src/botan/src/cli/tls_http_server.cpp:250,1
    - Dst: auto::keep_alive
      Src: /src/botan/src/cli/tls_http_server.cpp:253,1
    - Dst: code
      Src: /src/botan/src/cli/tls_http_server.cpp:260,1
    - Dst: std::current_exception
      Src: /src/botan/src/cli/tls_http_server.cpp:264,1
    - Dst: Botan::TLS::Stream<tcp_stream>::async_shutdown
      Src: /src/botan/src/cli/tls_http_server.cpp:272,1
    - Dst: Botan::TLS::Stream<tcp_stream>::next_layer
      Src: /src/botan/src/cli/tls_http_server.cpp:273,1
    - Dst: std::rethrow_exception
      Src: /src/botan/src/cli/tls_http_server.cpp:284,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: 290
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 290
    functionName: Botan_CLI::do_session
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 3
    functionsReached:
    - Botan_CLI::handle_response
    - Botan::TLS::Stream<tcp_stream>::async_handshake
    - auto::keep_alive
    - std::make_shared<TlsHttpCallbacks>
    - std::current_exception
    - Botan_CLI::Timer::seconds
    - Botan::TLS::Stream<tcp_stream>::next_layer
    - http::async_read
    - Botan::TLS::Stream<tcp_stream>::async_shutdown
    - http::async_write
    - code
    - std::rethrow_exception
    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:296,1
    - Dst: tcp::acceptor
      Src: /src/botan/src/cli/tls_http_server.cpp:296,1
    - Dst: auto::open
      Src: /src/botan/src/cli/tls_http_server.cpp:297,1
    - Dst: tcp::endpoint::protocol
      Src: /src/botan/src/cli/tls_http_server.cpp:297,1
    - Dst: auto::set_option
      Src: /src/botan/src/cli/tls_http_server.cpp:298,1
    - Dst: net::socket_base::reuse_address
      Src: /src/botan/src/cli/tls_http_server.cpp:298,1
    - Dst: auto::bind
      Src: /src/botan/src/cli/tls_http_server.cpp:299,1
    - Dst: auto::listen
      Src: /src/botan/src/cli/tls_http_server.cpp:300,1
    - Dst: std::shared_ptr<Logger>::log
      Src: /src/botan/src/cli/tls_http_server.cpp:307,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tls_http_server.cpp:307,1
    - Dst: tcp::endpoint::address
      Src: /src/botan/src/cli/tls_http_server.cpp:307,1
    - Dst: tcp::endpoint::port
      Src: /src/botan/src/cli/tls_http_server.cpp:307,1
    - Dst: std::shared_ptr<Logger>::flush
      Src: /src/botan/src/cli/tls_http_server.cpp:308,1
    - Dst: done
      Src: /src/botan/src/cli/tls_http_server.cpp:318,1
    - Dst: boost::asio::co_spawn
      Src: /src/botan/src/cli/tls_http_server.cpp:319,1
    - Dst: auto::get_executor
      Src: /src/botan/src/cli/tls_http_server.cpp:319,1
    - Dst: Botan_CLI::do_session
      Src: /src/botan/src/cli/tls_http_server.cpp:320,1
    - Dst: tcp_stream
      Src: /src/botan/src/cli/tls_http_server.cpp:320,1
    - Dst: auto::async_accept
      Src: /src/botan/src/cli/tls_http_server.cpp:320,1
    - Dst: Botan_CLI::make_final_completion_handler
      Src: /src/botan/src/cli/tls_http_server.cpp:321,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: 323
      start: 292
    functionDepth: 3
    functionLinenumber: 292
    functionLinenumberEnd: 323
    functionName: Botan_CLI::do_listen
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr<Logger>::log
    - net::socket_base::reuse_address
    - as_default_on
    - std::shared_ptr<Logger>::flush
    - auto::set_option
    - auto::get_executor
    - tcp_stream
    - tcp::endpoint::port
    - tcp::endpoint::address
    - auto::bind
    - auto::listen
    - boost::asio::co_spawn
    - auto::open
    - Botan_CLI::do_session
    - auto::async_accept
    - Botan::fmt
    - done
    - Botan_CLI::make_final_completion_handler
    - tcp::acceptor
    - tcp::endpoint::protocol
    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: 333
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 333
    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: 335
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 335
    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: 337
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 337
    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:340,1
    - Dst: Botan::OS::get_cpu_available
      Src: /src/botan/src/cli/tls_http_server.cpp:344,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 349
    functionName: Botan_CLI::TLS_HTTP_Server::thread_count
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 1
    functionsReached:
    - Botan::OS::get_cpu_available
    - get_arg_sz
    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:352,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_http_server.cpp:354,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_http_server.cpp:355,1
    - Dst: Botan_CLI::TLS_HTTP_Server::thread_count
      Src: /src/botan/src/cli/tls_http_server.cpp:357,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/tls_http_server.cpp:358,1
    - Dst: std::make_shared<Basic_Credentials_Manager>
      Src: /src/botan/src/cli/tls_http_server.cpp:360,1
    - Dst: load_tls_policy
      Src: /src/botan/src/cli/tls_http_server.cpp:362,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_http_server.cpp:362,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_http_server.cpp:366,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/tls_http_server.cpp:368,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/tls_http_server.cpp:370,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_SQLite>
      Src: /src/botan/src/cli/tls_http_server.cpp:372,1
    - Dst: rng_as_shared
      Src: /src/botan/src/cli/tls_http_server.cpp:372,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/tls_http_server.cpp:374,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/cli/tls_http_server.cpp:379,1
    - Dst: rng_as_shared
      Src: /src/botan/src/cli/tls_http_server.cpp:379,1
    - Dst: std::make_shared<Logger>
      Src: /src/botan/src/cli/tls_http_server.cpp:382,1
    - Dst: output
      Src: /src/botan/src/cli/tls_http_server.cpp:382,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_http_server.cpp:382,1
    - Dst: static_cast<int>
      Src: /src/botan/src/cli/tls_http_server.cpp:384,1
    - Dst: net::ip::make_address
      Src: /src/botan/src/cli/tls_http_server.cpp:385,1
    - Dst: boost::asio::co_spawn
      Src: /src/botan/src/cli/tls_http_server.cpp:386,1
    - Dst: do_listen
      Src: /src/botan/src/cli/tls_http_server.cpp:388,1
    - Dst: std::enable_shared_from_this<Context>
      Src: /src/botan/src/cli/tls_http_server.cpp:389,1
    - Dst: rng_as_shared
      Src: /src/botan/src/cli/tls_http_server.cpp:389,1
    - Dst: make_final_completion_handler
      Src: /src/botan/src/cli/tls_http_server.cpp:392,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/tls_http_server.cpp:398,1
    - Dst: std::make_shared<std::thread>
      Src: /src/botan/src/cli/tls_http_server.cpp:398,1
    - Dst: net::io_context::run
      Src: /src/botan/src/cli/tls_http_server.cpp:398,1
    - Dst: net::io_context::run
      Src: /src/botan/src/cli/tls_http_server.cpp:401,1
    - Dst: join
      Src: /src/botan/src/cli/tls_http_server.cpp:404,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 351
    functionDepth: 3
    functionLinenumber: 351
    functionLinenumberEnd: 406
    functionName: Botan_CLI::TLS_HTTP_Server::go
    functionSourceFile: /src/botan/src/cli/tls_http_server.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - std::make_shared<Basic_Credentials_Manager>
    - std::string::empty
    - std::enable_shared_from_this<Context>
    - do_listen
    - load_tls_policy
    - Botan_CLI::TLS_HTTP_Server::thread_count
    - get_arg_u16
    - std::make_shared<std::thread>
    - CLI_Error_Unsupported
    - rng_as_shared
    - make_final_completion_handler
    - output
    - get_passphrase_arg
    - std::make_shared<Logger>
    - get_arg
    - get_arg_sz
    - std::vector::push_back
    - std::make_shared<Botan::TLS::Session_Manager_In_Memory>
    - boost::asio::co_spawn
    - std::make_shared<Botan::TLS::Session_Manager_SQLite>
    - net::ip::make_address
    - net::io_context::run
    - error_output
    - join
    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: 19
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 19
    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: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    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: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    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:26,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/bcrypt.cpp:27,1
    - Dst: error_output
      Src: /src/botan/src/cli/bcrypt.cpp:30,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/cli/bcrypt.cpp:32,1
    - Dst: output
      Src: /src/botan/src/cli/bcrypt.cpp:33,1
    - Dst: Botan::generate_bcrypt
      Src: /src/botan/src/cli/bcrypt.cpp:33,1
    - Dst: rng
      Src: /src/botan/src/cli/bcrypt.cpp:33,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 35
    functionName: Botan_CLI::Generate_Bcrypt::go
    functionSourceFile: /src/botan/src/cli/bcrypt.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - rng
    - get_arg_sz
    - error_output
    - output
    - get_passphrase_arg
    - Botan::generate_bcrypt
    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: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    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: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    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: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    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:49,1
    - Dst: get_arg
      Src: /src/botan/src/cli/bcrypt.cpp:50,1
    - Dst: std::string::length
      Src: /src/botan/src/cli/bcrypt.cpp:52,1
    - Dst: error_output
      Src: /src/botan/src/cli/bcrypt.cpp:53,1
    - Dst: Botan::check_bcrypt
      Src: /src/botan/src/cli/bcrypt.cpp:56,1
    - Dst: output
      Src: /src/botan/src/cli/bcrypt.cpp:58,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/bcrypt.cpp:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 63
    functionName: Botan_CLI::Check_Bcrypt::go
    functionSourceFile: /src/botan/src/cli/bcrypt.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - output
    - Botan::check_bcrypt
    - error_output
    - get_passphrase_arg
    - set_return_code
    - 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: 19
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 19
    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: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    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: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    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:26,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/bcrypt.cpp:27,1
    - Dst: error_output
      Src: /src/botan/src/cli/bcrypt.cpp:30,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/cli/bcrypt.cpp:32,1
    - Dst: output
      Src: /src/botan/src/cli/bcrypt.cpp:33,1
    - Dst: Botan::generate_bcrypt
      Src: /src/botan/src/cli/bcrypt.cpp:33,1
    - Dst: rng
      Src: /src/botan/src/cli/bcrypt.cpp:33,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 35
    functionName: Botan_CLI::Generate_Bcrypt::go
    functionSourceFile: /src/botan/src/cli/bcrypt.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - rng
    - get_arg_sz
    - error_output
    - output
    - get_passphrase_arg
    - Botan::generate_bcrypt
    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: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    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: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    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: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    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:49,1
    - Dst: get_arg
      Src: /src/botan/src/cli/bcrypt.cpp:50,1
    - Dst: std::string::length
      Src: /src/botan/src/cli/bcrypt.cpp:52,1
    - Dst: error_output
      Src: /src/botan/src/cli/bcrypt.cpp:53,1
    - Dst: Botan::check_bcrypt
      Src: /src/botan/src/cli/bcrypt.cpp:56,1
    - Dst: output
      Src: /src/botan/src/cli/bcrypt.cpp:58,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/bcrypt.cpp:61,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 63
    functionName: Botan_CLI::Check_Bcrypt::go
    functionSourceFile: /src/botan/src/cli/bcrypt.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - output
    - Botan::check_bcrypt
    - error_output
    - get_passphrase_arg
    - set_return_code
    - 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:31,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pwdhash.cpp:31,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pwdhash.cpp:33,1
    - Dst: Botan::generate_bcrypt
      Src: /src/botan/src/cli/perf_pwdhash.cpp:33,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pwdhash.cpp:33,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/cli/perf_pwdhash.cpp:33,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pwdhash.cpp:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 27
    functionDepth: 3
    functionLinenumber: 27
    functionLinenumberEnd: 37
    functionName: Botan_CLI::PerfTest_Bcrypt::go
    functionSourceFile: /src/botan/src/cli/perf_pwdhash.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - rng
    - Botan::fmt
    - auto::run
    - record_result
    - make_timer
    - Botan::generate_bcrypt
    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:52,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pwdhash.cpp:57,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pwdhash.cpp:57,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pwdhash.cpp:59,1
    - Dst: Botan::generate_passhash9
      Src: /src/botan/src/cli/perf_pwdhash.cpp:60,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pwdhash.cpp:60,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/cli/perf_pwdhash.cpp:60,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pwdhash.cpp:62,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 65
    functionName: Botan_CLI::PerfTest_Passhash9::go
    functionSourceFile: /src/botan/src/cli/perf_pwdhash.cpp
    functionUses: 0
    functionsReached:
    - rng
    - Botan::generate_passhash9
    - Botan::fmt
    - auto::run
    - Botan::is_passhash9_alg_supported
    - static_cast<uint8_t>
    - record_result
    - make_timer
    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:77,1
    - Dst: auto::from_params
      Src: /src/botan/src/cli/perf_pwdhash.cpp:82,1
    - Dst: auto::total_memory_usage
      Src: /src/botan/src/cli/perf_pwdhash.cpp:84,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pwdhash.cpp:85,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pwdhash.cpp:85,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pwdhash.cpp:89,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pwdhash.cpp:91,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pwdhash.cpp:93,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pwdhash.cpp:94,1
    - Dst: auto::derive_key
      Src: /src/botan/src/cli/perf_pwdhash.cpp:95,1
    - Dst: std::memcpy
      Src: /src/botan/src/cli/perf_pwdhash.cpp:96,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pwdhash.cpp:100,1
    - Dst: auto::events
      Src: /src/botan/src/cli/perf_pwdhash.cpp:102,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 76
    functionDepth: 3
    functionLinenumber: 76
    functionLinenumberEnd: 108
    functionName: Botan_CLI::PerfTest_Scrypt::go
    functionSourceFile: /src/botan/src/cli/perf_pwdhash.cpp
    functionUses: 0
    functionsReached:
    - Botan::PasswordHashFamily::create_or_throw
    - auto::from_params
    - rng
    - Botan::fmt
    - auto::run
    - auto::derive_key
    - auto::events
    - auto::under
    - auto::total_memory_usage
    - record_result
    - runtime
    - make_timer
    - std::memcpy
    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:120,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pwdhash.cpp:122,1
    - Dst: auto::from_params
      Src: /src/botan/src/cli/perf_pwdhash.cpp:127,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pwdhash.cpp:128,1
    - Dst: auto::to_string
      Src: /src/botan/src/cli/perf_pwdhash.cpp:128,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pwdhash.cpp:132,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pwdhash.cpp:134,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pwdhash.cpp:135,1
    - Dst: auto::derive_key
      Src: /src/botan/src/cli/perf_pwdhash.cpp:135,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pwdhash.cpp:138,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 119
    functionDepth: 3
    functionLinenumber: 119
    functionLinenumberEnd: 142
    functionName: Botan_CLI::PerfTest_Argon2::go
    functionSourceFile: /src/botan/src/cli/perf_pwdhash.cpp
    functionUses: 0
    functionsReached:
    - Botan::PasswordHashFamily::create_or_throw
    - auto::from_params
    - rng
    - auto::run
    - auto::derive_key
    - auto::under
    - auto::to_string
    - runtime
    - record_result
    - make_timer
    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:31,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pwdhash.cpp:31,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pwdhash.cpp:33,1
    - Dst: Botan::generate_bcrypt
      Src: /src/botan/src/cli/perf_pwdhash.cpp:33,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pwdhash.cpp:33,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/cli/perf_pwdhash.cpp:33,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pwdhash.cpp:35,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 27
    functionDepth: 3
    functionLinenumber: 27
    functionLinenumberEnd: 37
    functionName: Botan_CLI::PerfTest_Bcrypt::go
    functionSourceFile: /src/botan/src/cli/perf_pwdhash.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - rng
    - Botan::fmt
    - auto::run
    - record_result
    - make_timer
    - Botan::generate_bcrypt
    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:52,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pwdhash.cpp:57,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pwdhash.cpp:57,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pwdhash.cpp:59,1
    - Dst: Botan::generate_passhash9
      Src: /src/botan/src/cli/perf_pwdhash.cpp:60,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pwdhash.cpp:60,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/cli/perf_pwdhash.cpp:60,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pwdhash.cpp:62,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 65
    functionName: Botan_CLI::PerfTest_Passhash9::go
    functionSourceFile: /src/botan/src/cli/perf_pwdhash.cpp
    functionUses: 0
    functionsReached:
    - rng
    - Botan::generate_passhash9
    - Botan::fmt
    - auto::run
    - Botan::is_passhash9_alg_supported
    - static_cast<uint8_t>
    - record_result
    - make_timer
    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:77,1
    - Dst: auto::from_params
      Src: /src/botan/src/cli/perf_pwdhash.cpp:82,1
    - Dst: auto::total_memory_usage
      Src: /src/botan/src/cli/perf_pwdhash.cpp:84,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pwdhash.cpp:85,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pwdhash.cpp:85,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pwdhash.cpp:89,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pwdhash.cpp:91,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pwdhash.cpp:93,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pwdhash.cpp:94,1
    - Dst: auto::derive_key
      Src: /src/botan/src/cli/perf_pwdhash.cpp:95,1
    - Dst: std::memcpy
      Src: /src/botan/src/cli/perf_pwdhash.cpp:96,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pwdhash.cpp:100,1
    - Dst: auto::events
      Src: /src/botan/src/cli/perf_pwdhash.cpp:102,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 76
    functionDepth: 3
    functionLinenumber: 76
    functionLinenumberEnd: 108
    functionName: Botan_CLI::PerfTest_Scrypt::go
    functionSourceFile: /src/botan/src/cli/perf_pwdhash.cpp
    functionUses: 0
    functionsReached:
    - Botan::PasswordHashFamily::create_or_throw
    - auto::from_params
    - rng
    - Botan::fmt
    - auto::run
    - auto::derive_key
    - auto::events
    - auto::under
    - auto::total_memory_usage
    - record_result
    - runtime
    - make_timer
    - std::memcpy
    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:120,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pwdhash.cpp:122,1
    - Dst: auto::from_params
      Src: /src/botan/src/cli/perf_pwdhash.cpp:127,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pwdhash.cpp:128,1
    - Dst: auto::to_string
      Src: /src/botan/src/cli/perf_pwdhash.cpp:128,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pwdhash.cpp:132,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pwdhash.cpp:134,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pwdhash.cpp:135,1
    - Dst: auto::derive_key
      Src: /src/botan/src/cli/perf_pwdhash.cpp:135,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pwdhash.cpp:138,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 119
    functionDepth: 3
    functionLinenumber: 119
    functionLinenumberEnd: 142
    functionName: Botan_CLI::PerfTest_Argon2::go
    functionSourceFile: /src/botan/src/cli/perf_pwdhash.cpp
    functionUses: 0
    functionsReached:
    - Botan::PasswordHashFamily::create_or_throw
    - auto::from_params
    - rng
    - auto::run
    - auto::derive_key
    - auto::under
    - auto::to_string
    - runtime
    - record_result
    - make_timer
    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:
    - empty
    - Botan::PKCS8::PEM_encode
    - stateful_operation
    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: 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:
    - empty
    - Botan::PKCS8::PEM_encode
    - stateful_operation
    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: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    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: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    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: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    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:75,1
    - Dst: Botan::System_Certificate_Store::all_subjects
      Src: /src/botan/src/cli/x509.cpp:77,1
    - Dst: flag_set
      Src: /src/botan/src/cli/x509.cpp:79,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:81,1
    - Dst: Botan::System_Certificate_Store::find_all_certs
      Src: /src/botan/src/cli/x509.cpp:86,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/cli/x509.cpp:86,1
    - Dst: flag_set
      Src: /src/botan/src/cli/x509.cpp:87,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:88,1
    - Dst: flag_set
      Src: /src/botan/src/cli/x509.cpp:91,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:92,1
    - Dst: to_string
      Src: /src/botan/src/cli/x509.cpp:92,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:95,1
    - Dst: PEM_encode
      Src: /src/botan/src/cli/x509.cpp:95,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 99
    functionName: Botan_CLI::Trust_Root_Info::go
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::System_Certificate_Store::find_all_certs
    - Botan::System_Certificate_Store::System_Certificate_Store
    - PEM_encode
    - to_string
    - std::vector<uint8_t>
    - output
    - Botan::System_Certificate_Store::all_subjects
    - flag_set
    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: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    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: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    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: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    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:116,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:118,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/x509.cpp:119,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:123,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:124,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/x509.cpp:125,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/x509.cpp:127,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/x509.cpp:130,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:134,1
    - Dst: load_private_key
      Src: /src/botan/src/cli/x509.cpp:136,1
    - Dst: rng
      Src: /src/botan/src/cli/x509.cpp:138,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:140,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/cli/x509.cpp:142,1
    - Dst: days
      Src: /src/botan/src/cli/x509.cpp:148,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/x509.cpp:148,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/cli/x509.cpp:150,1
    - Dst: rng
      Src: /src/botan/src/cli/x509.cpp:150,1
    - Dst: update_stateful_private_key
      Src: /src/botan/src/cli/x509.cpp:151,1
    - Dst: rng
      Src: /src/botan/src/cli/x509.cpp:151,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:153,1
    - Dst: Botan::X509_Certificate::PEM_encode
      Src: /src/botan/src/cli/x509.cpp:153,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 154
    functionName: Botan_CLI::Sign_Cert::go
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - update_stateful_private_key
    - auto::empty
    - rng
    - get_arg_sz
    - Botan::X509_Certificate::PEM_encode
    - load_private_key
    - Botan::TLS::detail::AsyncBase::complete_now
    - days
    - CLI_Usage_Error
    - output
    - get_passphrase_arg
    - Botan::X509_CA::sign_request
    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::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: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    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: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    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:168,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:168,1
    - Dst: Botan::DataSource_Memory::end_of_data
      Src: /src/botan/src/cli/x509.cpp:172,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:177,1
    - Dst: Botan::X509_Certificate::to_string
      Src: /src/botan/src/cli/x509.cpp:177,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:180,1
    - Dst: what
      Src: /src/botan/src/cli/x509.cpp:180,1
    - Dst: flag_set
      Src: /src/botan/src/cli/x509.cpp:183,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:184,1
    - Dst: Botan::X509_Certificate::fingerprint
      Src: /src/botan/src/cli/x509.cpp:184,1
    - Dst: Botan::DataSource_Memory::end_of_data
      Src: /src/botan/src/cli/x509.cpp:187,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:188,1
    - Dst: what
      Src: /src/botan/src/cli/x509.cpp:188,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 192
    functionName: Botan_CLI::Cert_Info::go
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - Botan::X509_Certificate::to_string
    - slurp_file
    - flag_set
    - what
    - output
    - Botan::X509_Certificate::fingerprint
    - Botan::DataSource_Memory::end_of_data
    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: 201
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 201
    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: 203
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 203
    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: 207
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 207
    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:210,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:211,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/x509.cpp:212,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/cli/x509.cpp:214,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/cli/x509.cpp:215,1
    - Dst: Botan::OCSP::online_check
      Src: /src/botan/src/cli/x509.cpp:216,1
    - Dst: Botan::OCSP::Response::status_for
      Src: /src/botan/src/cli/x509.cpp:218,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/cli/x509.cpp:218,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:221,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:223,1
    - Dst: Botan::Path_Validation_Result::status_string
      Src: /src/botan/src/cli/x509.cpp:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 225
    functionName: Botan_CLI::OCSP_Check::go
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - get_arg_sz
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan::Path_Validation_Result::status_string
    - Botan::OCSP::Response::status_for
    - Botan::TLS::detail::AsyncBase::complete_now
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::OCSP::online_check
    - 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: 234
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 234
    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: 236
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 236
    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: 240
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 240
    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:243,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/cli/x509.cpp:244,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/x509.cpp:246,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/cli/x509.cpp:247,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/cli/x509.cpp:247,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/cli/x509.cpp:250,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/cli/x509.cpp:252,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/cli/x509.cpp:254,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:255,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:257,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/cli/x509.cpp:257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 259
    functionName: Botan_CLI::Cert_Verify::go
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - output
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan::Path_Validation_Result::successful_validation
    - get_arg_list
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::Path_Validation_Result::result_string
    - Botan::x509_path_validate
    - Botan::X509_Certificate
    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: 270
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 270
    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: 272
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 272
    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: 274
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 274
    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:277,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/x509.cpp:278,1
    - Dst: load_private_key
      Src: /src/botan/src/cli/x509.cpp:279,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/cli/x509.cpp:281,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/x509.cpp:281,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: get_arg
      Src: /src/botan/src/cli/x509.cpp:287,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:288,1
    - Dst: Botan_CLI::Command::split_on
      Src: /src/botan/src/cli/x509.cpp:289,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:289,1
    - Dst: flag_set
      Src: /src/botan/src/cli/x509.cpp:290,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:294,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:295,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/x509.cpp:296,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/x509.cpp:298,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/x509.cpp:301,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/x509.cpp:305,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/cli/x509.cpp:306,1
    - Dst: flag_set
      Src: /src/botan/src/cli/x509.cpp:309,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/cli/x509.cpp:310,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/x509.cpp:310,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/cli/x509.cpp:313,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:313,1
    - Dst: rng
      Src: /src/botan/src/cli/x509.cpp:313,1
    - Dst: update_stateful_private_key
      Src: /src/botan/src/cli/x509.cpp:314,1
    - Dst: rng
      Src: /src/botan/src/cli/x509.cpp:314,1
    - Dst: Botan::X509_Certificate::BER_encode
      Src: /src/botan/src/cli/x509.cpp:317,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:318,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/x509.cpp:318,1
    - Dst: auto::data
      Src: /src/botan/src/cli/x509.cpp:318,1
    - Dst: auto::size
      Src: /src/botan/src/cli/x509.cpp:318,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:320,1
    - Dst: Botan::X509_Certificate::PEM_encode
      Src: /src/botan/src/cli/x509.cpp:320,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 322
    functionName: Botan_CLI::Gen_Self_Signed::go
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - auto::empty
    - std::string::empty
    - Botan::X509_Cert_Options::set_padding_scheme
    - reinterpret_cast<const char*>
    - auto::size
    - flag_set
    - update_stateful_private_key
    - rng
    - Botan_CLI::Command::split_on
    - load_private_key
    - CLI_Usage_Error
    - output
    - get_passphrase_arg
    - get_arg
    - Botan::X509_Cert_Options::CA_key
    - auto::data
    - get_arg_sz
    - static_cast<uint32_t>
    - Botan::X509_Certificate::BER_encode
    - Botan::X509_Certificate::PEM_encode
    - Botan::X509::create_self_signed_cert
    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: 332
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 332
    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: 334
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 334
    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: 336
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 336
    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:339,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/x509.cpp:340,1
    - Dst: load_private_key
      Src: /src/botan/src/cli/x509.cpp:342,1
    - Dst: Botan::X509_Cert_Options::X509_Cert_Options
      Src: /src/botan/src/cli/x509.cpp:344,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: get_arg
      Src: /src/botan/src/cli/x509.cpp:348,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:349,1
    - Dst: Botan_CLI::Command::split_on
      Src: /src/botan/src/cli/x509.cpp:350,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:350,1
    - Dst: flag_set
      Src: /src/botan/src/cli/x509.cpp:352,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/cli/x509.cpp:353,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/x509.cpp:353,1
    - Dst: Botan_CLI::Command::split_on
      Src: /src/botan/src/cli/x509.cpp:356,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:356,1
    - Dst: Botan::X509_Cert_Options::add_ex_constraint
      Src: /src/botan/src/cli/x509.cpp:357,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:362,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:363,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/x509.cpp:364,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/x509.cpp:366,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/x509.cpp:369,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/x509.cpp:373,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/cli/x509.cpp:374,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/cli/x509.cpp:377,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:377,1
    - Dst: rng
      Src: /src/botan/src/cli/x509.cpp:377,1
    - Dst: update_stateful_private_key
      Src: /src/botan/src/cli/x509.cpp:378,1
    - Dst: rng
      Src: /src/botan/src/cli/x509.cpp:378,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:380,1
    - Dst: Botan::PKCS10_Request::PEM_encode
      Src: /src/botan/src/cli/x509.cpp:380,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 381
    functionName: Botan_CLI::Generate_PKCS10::go
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - Botan::X509_Cert_Options::CA_key
    - update_stateful_private_key
    - auto::empty
    - get_arg_sz
    - rng
    - Botan_CLI::Command::split_on
    - load_private_key
    - Botan::X509_Cert_Options::add_ex_constraint
    - std::string::empty
    - Botan::PKCS10_Request::PEM_encode
    - Botan::X509::create_cert_req
    - Botan::X509_Cert_Options::X509_Cert_Options
    - Botan::X509_Cert_Options::set_padding_scheme
    - CLI_Usage_Error
    - output
    - get_passphrase_arg
    - flag_set
    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:
    - empty
    - Botan::PKCS8::PEM_encode
    - stateful_operation
    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: 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:
    - empty
    - Botan::PKCS8::PEM_encode
    - stateful_operation
    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: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    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: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    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: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    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:75,1
    - Dst: Botan::System_Certificate_Store::all_subjects
      Src: /src/botan/src/cli/x509.cpp:77,1
    - Dst: flag_set
      Src: /src/botan/src/cli/x509.cpp:79,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:81,1
    - Dst: Botan::System_Certificate_Store::find_all_certs
      Src: /src/botan/src/cli/x509.cpp:86,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/cli/x509.cpp:86,1
    - Dst: flag_set
      Src: /src/botan/src/cli/x509.cpp:87,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:88,1
    - Dst: flag_set
      Src: /src/botan/src/cli/x509.cpp:91,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:92,1
    - Dst: to_string
      Src: /src/botan/src/cli/x509.cpp:92,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:95,1
    - Dst: PEM_encode
      Src: /src/botan/src/cli/x509.cpp:95,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 99
    functionName: Botan_CLI::Trust_Root_Info::go
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::System_Certificate_Store::find_all_certs
    - Botan::System_Certificate_Store::System_Certificate_Store
    - PEM_encode
    - to_string
    - std::vector<uint8_t>
    - output
    - Botan::System_Certificate_Store::all_subjects
    - flag_set
    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: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    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: 111
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 111
    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: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    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:116,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:118,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/x509.cpp:119,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:123,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:124,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/x509.cpp:125,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/x509.cpp:127,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/x509.cpp:130,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:134,1
    - Dst: load_private_key
      Src: /src/botan/src/cli/x509.cpp:136,1
    - Dst: rng
      Src: /src/botan/src/cli/x509.cpp:138,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:140,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/cli/x509.cpp:142,1
    - Dst: days
      Src: /src/botan/src/cli/x509.cpp:148,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/x509.cpp:148,1
    - Dst: Botan::X509_CA::sign_request
      Src: /src/botan/src/cli/x509.cpp:150,1
    - Dst: rng
      Src: /src/botan/src/cli/x509.cpp:150,1
    - Dst: update_stateful_private_key
      Src: /src/botan/src/cli/x509.cpp:151,1
    - Dst: rng
      Src: /src/botan/src/cli/x509.cpp:151,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:153,1
    - Dst: Botan::X509_Certificate::PEM_encode
      Src: /src/botan/src/cli/x509.cpp:153,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 154
    functionName: Botan_CLI::Sign_Cert::go
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - update_stateful_private_key
    - auto::empty
    - rng
    - get_arg_sz
    - Botan::X509_Certificate::PEM_encode
    - load_private_key
    - Botan::TLS::detail::AsyncBase::complete_now
    - days
    - CLI_Usage_Error
    - output
    - get_passphrase_arg
    - Botan::X509_CA::sign_request
    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::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: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    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: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    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:168,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:168,1
    - Dst: Botan::DataSource_Memory::end_of_data
      Src: /src/botan/src/cli/x509.cpp:172,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:177,1
    - Dst: Botan::X509_Certificate::to_string
      Src: /src/botan/src/cli/x509.cpp:177,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:180,1
    - Dst: what
      Src: /src/botan/src/cli/x509.cpp:180,1
    - Dst: flag_set
      Src: /src/botan/src/cli/x509.cpp:183,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:184,1
    - Dst: Botan::X509_Certificate::fingerprint
      Src: /src/botan/src/cli/x509.cpp:184,1
    - Dst: Botan::DataSource_Memory::end_of_data
      Src: /src/botan/src/cli/x509.cpp:187,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:188,1
    - Dst: what
      Src: /src/botan/src/cli/x509.cpp:188,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 192
    functionName: Botan_CLI::Cert_Info::go
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - Botan::X509_Certificate::to_string
    - slurp_file
    - flag_set
    - what
    - output
    - Botan::X509_Certificate::fingerprint
    - Botan::DataSource_Memory::end_of_data
    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: 201
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 201
    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: 203
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 203
    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: 207
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 207
    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:210,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:211,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/x509.cpp:212,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/cli/x509.cpp:214,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/cli/x509.cpp:215,1
    - Dst: Botan::OCSP::online_check
      Src: /src/botan/src/cli/x509.cpp:216,1
    - Dst: Botan::OCSP::Response::status_for
      Src: /src/botan/src/cli/x509.cpp:218,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/cli/x509.cpp:218,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:221,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:223,1
    - Dst: Botan::Path_Validation_Result::status_string
      Src: /src/botan/src/cli/x509.cpp:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 225
    functionName: Botan_CLI::OCSP_Check::go
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - get_arg_sz
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan::Path_Validation_Result::status_string
    - Botan::OCSP::Response::status_for
    - Botan::TLS::detail::AsyncBase::complete_now
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::OCSP::online_check
    - 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: 234
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 234
    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: 236
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 236
    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: 240
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 240
    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:243,1
    - Dst: Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
      Src: /src/botan/src/cli/x509.cpp:244,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/x509.cpp:246,1
    - Dst: Botan::Certificate_Store_In_Memory::add_certificate
      Src: /src/botan/src/cli/x509.cpp:247,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/cli/x509.cpp:247,1
    - Dst: Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
      Src: /src/botan/src/cli/x509.cpp:250,1
    - Dst: Botan::x509_path_validate
      Src: /src/botan/src/cli/x509.cpp:252,1
    - Dst: Botan::Path_Validation_Result::successful_validation
      Src: /src/botan/src/cli/x509.cpp:254,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:255,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:257,1
    - Dst: Botan::Path_Validation_Result::result_string
      Src: /src/botan/src/cli/x509.cpp:257,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 259
    functionName: Botan_CLI::Cert_Verify::go
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - output
    - Botan::Certificate_Store_In_Memory::Certificate_Store_In_Memory
    - Botan::Path_Validation_Result::successful_validation
    - get_arg_list
    - Botan::Path_Validation_Restrictions::Path_Validation_Restrictions
    - Botan::Certificate_Store_In_Memory::add_certificate
    - Botan::Path_Validation_Result::result_string
    - Botan::x509_path_validate
    - Botan::X509_Certificate
    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: 270
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 270
    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: 272
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 272
    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: 274
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 274
    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:277,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/x509.cpp:278,1
    - Dst: load_private_key
      Src: /src/botan/src/cli/x509.cpp:279,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/cli/x509.cpp:281,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/x509.cpp:281,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: get_arg
      Src: /src/botan/src/cli/x509.cpp:287,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:288,1
    - Dst: Botan_CLI::Command::split_on
      Src: /src/botan/src/cli/x509.cpp:289,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:289,1
    - Dst: flag_set
      Src: /src/botan/src/cli/x509.cpp:290,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:294,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:295,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/x509.cpp:296,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/x509.cpp:298,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/x509.cpp:301,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/x509.cpp:305,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/cli/x509.cpp:306,1
    - Dst: flag_set
      Src: /src/botan/src/cli/x509.cpp:309,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/cli/x509.cpp:310,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/x509.cpp:310,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/cli/x509.cpp:313,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:313,1
    - Dst: rng
      Src: /src/botan/src/cli/x509.cpp:313,1
    - Dst: update_stateful_private_key
      Src: /src/botan/src/cli/x509.cpp:314,1
    - Dst: rng
      Src: /src/botan/src/cli/x509.cpp:314,1
    - Dst: Botan::X509_Certificate::BER_encode
      Src: /src/botan/src/cli/x509.cpp:317,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:318,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/x509.cpp:318,1
    - Dst: auto::data
      Src: /src/botan/src/cli/x509.cpp:318,1
    - Dst: auto::size
      Src: /src/botan/src/cli/x509.cpp:318,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:320,1
    - Dst: Botan::X509_Certificate::PEM_encode
      Src: /src/botan/src/cli/x509.cpp:320,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 322
    functionName: Botan_CLI::Gen_Self_Signed::go
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - auto::empty
    - std::string::empty
    - Botan::X509_Cert_Options::set_padding_scheme
    - reinterpret_cast<const char*>
    - auto::size
    - flag_set
    - update_stateful_private_key
    - rng
    - Botan_CLI::Command::split_on
    - load_private_key
    - CLI_Usage_Error
    - output
    - get_passphrase_arg
    - get_arg
    - Botan::X509_Cert_Options::CA_key
    - auto::data
    - get_arg_sz
    - static_cast<uint32_t>
    - Botan::X509_Certificate::BER_encode
    - Botan::X509_Certificate::PEM_encode
    - Botan::X509::create_self_signed_cert
    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: 332
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 332
    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: 334
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 334
    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: 336
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 336
    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:339,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/x509.cpp:340,1
    - Dst: load_private_key
      Src: /src/botan/src/cli/x509.cpp:342,1
    - Dst: Botan::X509_Cert_Options::X509_Cert_Options
      Src: /src/botan/src/cli/x509.cpp:344,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: get_arg
      Src: /src/botan/src/cli/x509.cpp:348,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:349,1
    - Dst: Botan_CLI::Command::split_on
      Src: /src/botan/src/cli/x509.cpp:350,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:350,1
    - Dst: flag_set
      Src: /src/botan/src/cli/x509.cpp:352,1
    - Dst: Botan::X509_Cert_Options::CA_key
      Src: /src/botan/src/cli/x509.cpp:353,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/x509.cpp:353,1
    - Dst: Botan_CLI::Command::split_on
      Src: /src/botan/src/cli/x509.cpp:356,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:356,1
    - Dst: Botan::X509_Cert_Options::add_ex_constraint
      Src: /src/botan/src/cli/x509.cpp:357,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:362,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:363,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/x509.cpp:364,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/x509.cpp:366,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/x509.cpp:369,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/x509.cpp:373,1
    - Dst: Botan::X509_Cert_Options::set_padding_scheme
      Src: /src/botan/src/cli/x509.cpp:374,1
    - Dst: Botan::X509::create_cert_req
      Src: /src/botan/src/cli/x509.cpp:377,1
    - Dst: get_arg
      Src: /src/botan/src/cli/x509.cpp:377,1
    - Dst: rng
      Src: /src/botan/src/cli/x509.cpp:377,1
    - Dst: update_stateful_private_key
      Src: /src/botan/src/cli/x509.cpp:378,1
    - Dst: rng
      Src: /src/botan/src/cli/x509.cpp:378,1
    - Dst: output
      Src: /src/botan/src/cli/x509.cpp:380,1
    - Dst: Botan::PKCS10_Request::PEM_encode
      Src: /src/botan/src/cli/x509.cpp:380,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 381
    functionName: Botan_CLI::Generate_PKCS10::go
    functionSourceFile: /src/botan/src/cli/x509.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - Botan::X509_Cert_Options::CA_key
    - update_stateful_private_key
    - auto::empty
    - get_arg_sz
    - rng
    - Botan_CLI::Command::split_on
    - load_private_key
    - Botan::X509_Cert_Options::add_ex_constraint
    - std::string::empty
    - Botan::PKCS10_Request::PEM_encode
    - Botan::X509::create_cert_req
    - Botan::X509_Cert_Options::X509_Cert_Options
    - Botan::X509_Cert_Options::set_padding_scheme
    - CLI_Usage_Error
    - output
    - get_passphrase_arg
    - flag_set
    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::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: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    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: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    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:31,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/entropy.cpp:32,1
    - Dst: Botan::Entropy_Sources::global_sources
      Src: /src/botan/src/cli/entropy.cpp:34,1
    - Dst: enabled_sources
      Src: /src/botan/src/cli/entropy.cpp:38,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/entropy.cpp:40,1
    - Dst: poll_just
      Src: /src/botan/src/cli/entropy.cpp:45,1
    - Dst: Botan_Tests::SeedCapturing_RNG::samples
      Src: /src/botan/src/cli/entropy.cpp:47,1
    - Dst: output
      Src: /src/botan/src/cli/entropy.cpp:48,1
    - Dst: Botan_Tests::SeedCapturing_RNG::seed_material
      Src: /src/botan/src/cli/entropy.cpp:52,1
    - Dst: output
      Src: /src/botan/src/cli/entropy.cpp:54,1
    - Dst: size
      Src: /src/botan/src/cli/entropy.cpp:54,1
    - Dst: Botan_Tests::SeedCapturing_RNG::samples
      Src: /src/botan/src/cli/entropy.cpp:54,1
    - Dst: empty
      Src: /src/botan/src/cli/entropy.cpp:58,1
    - Dst: Botan::Compression_Algorithm::create
      Src: /src/botan/src/cli/entropy.cpp:59,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/cli/entropy.cpp:63,1
    - Dst: begin
      Src: /src/botan/src/cli/entropy.cpp:63,1
    - Dst: end
      Src: /src/botan/src/cli/entropy.cpp:63,1
    - Dst: auto::start
      Src: /src/botan/src/cli/entropy.cpp:64,1
    - Dst: auto::finish
      Src: /src/botan/src/cli/entropy.cpp:65,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/entropy.cpp:67,1
    - Dst: size
      Src: /src/botan/src/cli/entropy.cpp:67,1
    - Dst: output
      Src: /src/botan/src/cli/entropy.cpp:68,1
    - Dst: size
      Src: /src/botan/src/cli/entropy.cpp:68,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/entropy.cpp:69,1
    - Dst: error_output
      Src: /src/botan/src/cli/entropy.cpp:72,1
    - Dst: what
      Src: /src/botan/src/cli/entropy.cpp:72,1
    - Dst: size
      Src: /src/botan/src/cli/entropy.cpp:78,1
    - Dst: output
      Src: /src/botan/src/cli/entropy.cpp:79,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/entropy.cpp:79,1
    - Dst: output
      Src: /src/botan/src/cli/entropy.cpp:81,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/entropy.cpp:81,1
    - Dst: data
      Src: /src/botan/src/cli/entropy.cpp:81,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 84
    functionName: Botan_CLI::Entropy::go
    functionSourceFile: /src/botan/src/cli/entropy.cpp
    functionUses: 0
    functionsReached:
    - Botan::Compression_Algorithm::create
    - Botan::hex_encode
    - poll_just
    - what
    - begin
    - Botan::secure_vector::size
    - data
    - output
    - get_arg
    - Botan_Tests::SeedCapturing_RNG::seed_material
    - std::vector::push_back
    - Botan::Entropy_Sources::global_sources
    - get_arg_sz
    - Botan::secure_vector::assign
    - enabled_sources
    - auto::finish
    - size
    - Botan_Tests::SeedCapturing_RNG::samples
    - empty
    - auto::start
    - end
    - 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: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    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: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    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: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    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:31,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/entropy.cpp:32,1
    - Dst: Botan::Entropy_Sources::global_sources
      Src: /src/botan/src/cli/entropy.cpp:34,1
    - Dst: enabled_sources
      Src: /src/botan/src/cli/entropy.cpp:38,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/entropy.cpp:40,1
    - Dst: poll_just
      Src: /src/botan/src/cli/entropy.cpp:45,1
    - Dst: Botan_Tests::SeedCapturing_RNG::samples
      Src: /src/botan/src/cli/entropy.cpp:47,1
    - Dst: output
      Src: /src/botan/src/cli/entropy.cpp:48,1
    - Dst: Botan_Tests::SeedCapturing_RNG::seed_material
      Src: /src/botan/src/cli/entropy.cpp:52,1
    - Dst: output
      Src: /src/botan/src/cli/entropy.cpp:54,1
    - Dst: size
      Src: /src/botan/src/cli/entropy.cpp:54,1
    - Dst: Botan_Tests::SeedCapturing_RNG::samples
      Src: /src/botan/src/cli/entropy.cpp:54,1
    - Dst: empty
      Src: /src/botan/src/cli/entropy.cpp:58,1
    - Dst: Botan::Compression_Algorithm::create
      Src: /src/botan/src/cli/entropy.cpp:59,1
    - Dst: Botan::secure_vector::assign
      Src: /src/botan/src/cli/entropy.cpp:63,1
    - Dst: begin
      Src: /src/botan/src/cli/entropy.cpp:63,1
    - Dst: end
      Src: /src/botan/src/cli/entropy.cpp:63,1
    - Dst: auto::start
      Src: /src/botan/src/cli/entropy.cpp:64,1
    - Dst: auto::finish
      Src: /src/botan/src/cli/entropy.cpp:65,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/entropy.cpp:67,1
    - Dst: size
      Src: /src/botan/src/cli/entropy.cpp:67,1
    - Dst: output
      Src: /src/botan/src/cli/entropy.cpp:68,1
    - Dst: size
      Src: /src/botan/src/cli/entropy.cpp:68,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/entropy.cpp:69,1
    - Dst: error_output
      Src: /src/botan/src/cli/entropy.cpp:72,1
    - Dst: what
      Src: /src/botan/src/cli/entropy.cpp:72,1
    - Dst: size
      Src: /src/botan/src/cli/entropy.cpp:78,1
    - Dst: output
      Src: /src/botan/src/cli/entropy.cpp:79,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/entropy.cpp:79,1
    - Dst: output
      Src: /src/botan/src/cli/entropy.cpp:81,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/entropy.cpp:81,1
    - Dst: data
      Src: /src/botan/src/cli/entropy.cpp:81,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 84
    functionName: Botan_CLI::Entropy::go
    functionSourceFile: /src/botan/src/cli/entropy.cpp
    functionUses: 0
    functionsReached:
    - Botan::Compression_Algorithm::create
    - Botan::hex_encode
    - poll_just
    - what
    - begin
    - Botan::secure_vector::size
    - data
    - output
    - get_arg
    - Botan_Tests::SeedCapturing_RNG::seed_material
    - std::vector::push_back
    - Botan::Entropy_Sources::global_sources
    - get_arg_sz
    - Botan::secure_vector::assign
    - enabled_sources
    - auto::finish
    - size
    - Botan_Tests::SeedCapturing_RNG::samples
    - empty
    - auto::start
    - end
    - error_output
    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:
    - reinterpret_cast<const char*>
    - size
    - output_binary
    - data
    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:
    - reinterpret_cast<const char*>
    - size
    - output_binary
    - data
    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: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    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: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    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: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    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:34,1
    - Dst: slurp_file_as_str
      Src: /src/botan/src/cli/roughtime.cpp:34,1
    - Dst: get_arg
      Src: /src/botan/src/cli/roughtime.cpp:34,1
    - Dst: auto::responses
      Src: /src/botan/src/cli/roughtime.cpp:36,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:37,1
    - Dst: std::setw
      Src: /src/botan/src/cli/roughtime.cpp:37,1
    - Dst: flag_set
      Src: /src/botan/src/cli/roughtime.cpp:38,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:39,1
    - Dst: Botan::Roughtime::Response::sys_microseconds64
      Src: /src/botan/src/cli/roughtime.cpp:40,1
    - Dst: utc_midpoint
      Src: /src/botan/src/cli/roughtime.cpp:40,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:42,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/cli/roughtime.cpp:42,1
    - Dst: utc_midpoint
      Src: /src/botan/src/cli/roughtime.cpp:42,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:44,1
    - Dst: Botan::Roughtime::Response::microseconds32
      Src: /src/botan/src/cli/roughtime.cpp:44,1
    - Dst: utc_radius
      Src: /src/botan/src/cli/roughtime.cpp:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 46
    functionName: Botan_CLI::RoughtimeCheck::go
    functionSourceFile: /src/botan/src/cli/roughtime.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - auto::responses
    - utc_midpoint
    - utc_radius
    - Botan::Roughtime::Chain::Chain
    - slurp_file_as_str
    - std::setw
    - Botan::Roughtime::Response::sys_microseconds64
    - Botan::calendar_point
    - Botan::Roughtime::Response::microseconds32
    - output
    - flag_set
    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: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    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:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 79
    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: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    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: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    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:92,1
    - Dst: rng
      Src: /src/botan/src/cli/roughtime.cpp:92,1
    - Dst: next_nonce
      Src: /src/botan/src/cli/roughtime.cpp:93,1
    - Dst: Botan::Roughtime::Nonce
      Src: /src/botan/src/cli/roughtime.cpp:95,1
    - Dst: rng
      Src: /src/botan/src/cli/roughtime.cpp:95,1
    - Dst: Botan::Roughtime::online_request
      Src: /src/botan/src/cli/roughtime.cpp:97,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/cli/roughtime.cpp:97,1
    - Dst: Botan::Roughtime::Response::from_bits
      Src: /src/botan/src/cli/roughtime.cpp:98,1
    - Dst: flag_set
      Src: /src/botan/src/cli/roughtime.cpp:99,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:100,1
    - Dst: Botan::Roughtime::Response::sys_microseconds64
      Src: /src/botan/src/cli/roughtime.cpp:102,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/cli/roughtime.cpp:102,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:104,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/cli/roughtime.cpp:104,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/cli/roughtime.cpp:104,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:106,1
    - Dst: Botan::Roughtime::Response::microseconds32
      Src: /src/botan/src/cli/roughtime.cpp:106,1
    - Dst: auto::utc_radius
      Src: /src/botan/src/cli/roughtime.cpp:106,1
    - Dst: auto::validate
      Src: /src/botan/src/cli/roughtime.cpp:107,1
    - Dst: error_output
      Src: /src/botan/src/cli/roughtime.cpp:108,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/roughtime.cpp:109,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/roughtime.cpp:112,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/cli/roughtime.cpp:114,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/cli/roughtime.cpp:116,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/cli/roughtime.cpp:116,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/cli/roughtime.cpp:116,1
    - Dst: auto::utc_radius
      Src: /src/botan/src/cli/roughtime.cpp:117,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/cli/roughtime.cpp:117,1
    - Dst: error_output
      Src: /src/botan/src/cli/roughtime.cpp:118,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/roughtime.cpp:119,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:122,1
    - Dst: append
      Src: /src/botan/src/cli/roughtime.cpp:125,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:127,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: 128
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 128
    functionName: Botan_CLI::Roughtime::query
    functionSourceFile: /src/botan/src/cli/roughtime.cpp
    functionUses: 0
    functionsReached:
    - Botan::Roughtime::Nonce
    - auto::utc_radius
    - Botan_CLI::Timer::seconds
    - auto::validate
    - Botan::Roughtime::Response::from_bits
    - Botan::calendar_point
    - Botan::Roughtime::Response::microseconds32
    - next_nonce
    - flag_set
    - rng
    - output
    - get_arg_sz
    - append
    - Botan::Roughtime::Response::sys_microseconds64
    - Botan::Roughtime::online_request
    - Botan::TLS::detail::AsyncBase::complete_now
    - auto::utc_midpoint
    - error_output
    - set_return_code
    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:131,1
    - Dst: get_arg
      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: get_arg_or
      Src: /src/botan/src/cli/roughtime.cpp:135,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/roughtime.cpp:138,1
    - Dst: std::make_unique<Botan::Roughtime::Chain>
      Src: /src/botan/src/cli/roughtime.cpp:140,1
    - Dst: slurp_file_as_str
      Src: /src/botan/src/cli/roughtime.cpp:140,1
    - Dst: std::make_unique<Botan::Roughtime::Chain>
      Src: /src/botan/src/cli/roughtime.cpp:143,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/roughtime.cpp:147,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/roughtime.cpp:148,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/roughtime.cpp:148,1
    - Dst: error_output
      Src: /src/botan/src/cli/roughtime.cpp:150,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/roughtime.cpp:151,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/roughtime.cpp:155,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/cli/roughtime.cpp:156,1
    - Dst: slurp_file_as_str
      Src: /src/botan/src/cli/roughtime.cpp:156,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:159,1
    - Dst: std::setw
      Src: /src/botan/src/cli/roughtime.cpp:159,1
    - Dst: name
      Src: /src/botan/src/cli/roughtime.cpp:159,1
    - Dst: addresses
      Src: /src/botan/src/cli/roughtime.cpp:160,1
    - Dst: Botan_CLI::Roughtime::query
      Src: /src/botan/src/cli/roughtime.cpp:162,1
    - Dst: public_key
      Src: /src/botan/src/cli/roughtime.cpp:162,1
    - Dst: error_output
      Src: /src/botan/src/cli/roughtime.cpp:166,1
    - Dst: what
      Src: /src/botan/src/cli/roughtime.cpp:166,1
    - Dst: Botan_CLI::Roughtime::query
      Src: /src/botan/src/cli/roughtime.cpp:172,1
    - Dst: Botan::Ed25519_PublicKey::Ed25519_PublicKey
      Src: /src/botan/src/cli/roughtime.cpp:172,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/cli/roughtime.cpp:172,1
    - Dst: std::unique_ptr::to_string
      Src: /src/botan/src/cli/roughtime.cpp:177,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 179
    functionName: Botan_CLI::Roughtime::go
    functionSourceFile: /src/botan/src/cli/roughtime.cpp
    functionUses: 0
    functionsReached:
    - auto::empty
    - std::setw
    - what
    - Botan::base64_decode
    - public_key
    - name
    - output
    - get_arg
    - get_arg_sz
    - slurp_file_as_str
    - get_arg_or
    - std::unique_ptr::to_string
    - Botan::Roughtime::servers_from_str
    - std::make_unique<Botan::Roughtime::Chain>
    - addresses
    - Botan_CLI::Roughtime::query
    - Botan::Ed25519_PublicKey::Ed25519_PublicKey
    - error_output
    - set_return_code
    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::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: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    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: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    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:34,1
    - Dst: slurp_file_as_str
      Src: /src/botan/src/cli/roughtime.cpp:34,1
    - Dst: get_arg
      Src: /src/botan/src/cli/roughtime.cpp:34,1
    - Dst: auto::responses
      Src: /src/botan/src/cli/roughtime.cpp:36,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:37,1
    - Dst: std::setw
      Src: /src/botan/src/cli/roughtime.cpp:37,1
    - Dst: flag_set
      Src: /src/botan/src/cli/roughtime.cpp:38,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:39,1
    - Dst: Botan::Roughtime::Response::sys_microseconds64
      Src: /src/botan/src/cli/roughtime.cpp:40,1
    - Dst: utc_midpoint
      Src: /src/botan/src/cli/roughtime.cpp:40,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:42,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/cli/roughtime.cpp:42,1
    - Dst: utc_midpoint
      Src: /src/botan/src/cli/roughtime.cpp:42,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:44,1
    - Dst: Botan::Roughtime::Response::microseconds32
      Src: /src/botan/src/cli/roughtime.cpp:44,1
    - Dst: utc_radius
      Src: /src/botan/src/cli/roughtime.cpp:44,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 46
    functionName: Botan_CLI::RoughtimeCheck::go
    functionSourceFile: /src/botan/src/cli/roughtime.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - auto::responses
    - utc_midpoint
    - utc_radius
    - Botan::Roughtime::Chain::Chain
    - slurp_file_as_str
    - std::setw
    - Botan::Roughtime::Response::sys_microseconds64
    - Botan::calendar_point
    - Botan::Roughtime::Response::microseconds32
    - output
    - flag_set
    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: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    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:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 79
    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: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    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: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    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:92,1
    - Dst: rng
      Src: /src/botan/src/cli/roughtime.cpp:92,1
    - Dst: next_nonce
      Src: /src/botan/src/cli/roughtime.cpp:93,1
    - Dst: Botan::Roughtime::Nonce
      Src: /src/botan/src/cli/roughtime.cpp:95,1
    - Dst: rng
      Src: /src/botan/src/cli/roughtime.cpp:95,1
    - Dst: Botan::Roughtime::online_request
      Src: /src/botan/src/cli/roughtime.cpp:97,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/cli/roughtime.cpp:97,1
    - Dst: Botan::Roughtime::Response::from_bits
      Src: /src/botan/src/cli/roughtime.cpp:98,1
    - Dst: flag_set
      Src: /src/botan/src/cli/roughtime.cpp:99,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:100,1
    - Dst: Botan::Roughtime::Response::sys_microseconds64
      Src: /src/botan/src/cli/roughtime.cpp:102,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/cli/roughtime.cpp:102,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:104,1
    - Dst: Botan::calendar_point
      Src: /src/botan/src/cli/roughtime.cpp:104,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/cli/roughtime.cpp:104,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:106,1
    - Dst: Botan::Roughtime::Response::microseconds32
      Src: /src/botan/src/cli/roughtime.cpp:106,1
    - Dst: auto::utc_radius
      Src: /src/botan/src/cli/roughtime.cpp:106,1
    - Dst: auto::validate
      Src: /src/botan/src/cli/roughtime.cpp:107,1
    - Dst: error_output
      Src: /src/botan/src/cli/roughtime.cpp:108,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/roughtime.cpp:109,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/roughtime.cpp:112,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/cli/roughtime.cpp:114,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/cli/roughtime.cpp:116,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/cli/roughtime.cpp:116,1
    - Dst: auto::utc_midpoint
      Src: /src/botan/src/cli/roughtime.cpp:116,1
    - Dst: auto::utc_radius
      Src: /src/botan/src/cli/roughtime.cpp:117,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/cli/roughtime.cpp:117,1
    - Dst: error_output
      Src: /src/botan/src/cli/roughtime.cpp:118,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/roughtime.cpp:119,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:122,1
    - Dst: append
      Src: /src/botan/src/cli/roughtime.cpp:125,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:127,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: 128
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 128
    functionName: Botan_CLI::Roughtime::query
    functionSourceFile: /src/botan/src/cli/roughtime.cpp
    functionUses: 1
    functionsReached:
    - Botan::Roughtime::Nonce
    - auto::utc_radius
    - Botan_CLI::Timer::seconds
    - auto::validate
    - Botan::Roughtime::Response::from_bits
    - Botan::calendar_point
    - Botan::Roughtime::Response::microseconds32
    - next_nonce
    - flag_set
    - rng
    - output
    - get_arg_sz
    - append
    - Botan::Roughtime::Response::sys_microseconds64
    - Botan::Roughtime::online_request
    - Botan::TLS::detail::AsyncBase::complete_now
    - auto::utc_midpoint
    - error_output
    - set_return_code
    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:131,1
    - Dst: get_arg
      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: get_arg_or
      Src: /src/botan/src/cli/roughtime.cpp:135,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/roughtime.cpp:138,1
    - Dst: std::make_unique<Botan::Roughtime::Chain>
      Src: /src/botan/src/cli/roughtime.cpp:140,1
    - Dst: slurp_file_as_str
      Src: /src/botan/src/cli/roughtime.cpp:140,1
    - Dst: std::make_unique<Botan::Roughtime::Chain>
      Src: /src/botan/src/cli/roughtime.cpp:143,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/roughtime.cpp:147,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/roughtime.cpp:148,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/roughtime.cpp:148,1
    - Dst: error_output
      Src: /src/botan/src/cli/roughtime.cpp:150,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/roughtime.cpp:151,1
    - Dst: auto::empty
      Src: /src/botan/src/cli/roughtime.cpp:155,1
    - Dst: Botan::Roughtime::servers_from_str
      Src: /src/botan/src/cli/roughtime.cpp:156,1
    - Dst: slurp_file_as_str
      Src: /src/botan/src/cli/roughtime.cpp:156,1
    - Dst: output
      Src: /src/botan/src/cli/roughtime.cpp:159,1
    - Dst: std::setw
      Src: /src/botan/src/cli/roughtime.cpp:159,1
    - Dst: name
      Src: /src/botan/src/cli/roughtime.cpp:159,1
    - Dst: addresses
      Src: /src/botan/src/cli/roughtime.cpp:160,1
    - Dst: Botan_CLI::Roughtime::query
      Src: /src/botan/src/cli/roughtime.cpp:162,1
    - Dst: public_key
      Src: /src/botan/src/cli/roughtime.cpp:162,1
    - Dst: error_output
      Src: /src/botan/src/cli/roughtime.cpp:166,1
    - Dst: what
      Src: /src/botan/src/cli/roughtime.cpp:166,1
    - Dst: Botan_CLI::Roughtime::query
      Src: /src/botan/src/cli/roughtime.cpp:172,1
    - Dst: Botan::Ed25519_PublicKey::Ed25519_PublicKey
      Src: /src/botan/src/cli/roughtime.cpp:172,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/cli/roughtime.cpp:172,1
    - Dst: std::unique_ptr::to_string
      Src: /src/botan/src/cli/roughtime.cpp:177,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 179
    functionName: Botan_CLI::Roughtime::go
    functionSourceFile: /src/botan/src/cli/roughtime.cpp
    functionUses: 0
    functionsReached:
    - auto::empty
    - std::setw
    - what
    - Botan::base64_decode
    - public_key
    - name
    - output
    - get_arg
    - get_arg_sz
    - slurp_file_as_str
    - get_arg_or
    - std::unique_ptr::to_string
    - Botan::Roughtime::servers_from_str
    - std::make_unique<Botan::Roughtime::Chain>
    - addresses
    - Botan_CLI::Roughtime::query
    - Botan::Ed25519_PublicKey::Ed25519_PublicKey
    - error_output
    - set_return_code
    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: 19
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 19
    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: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    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: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    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:26,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/argon2.cpp:27,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/argon2.cpp:28,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/argon2.cpp:29,1
    - Dst: output
      Src: /src/botan/src/cli/argon2.cpp:31,1
    - Dst: Botan::argon2_generate_pwhash
      Src: /src/botan/src/cli/argon2.cpp:31,1
    - Dst: std::string::data
      Src: /src/botan/src/cli/argon2.cpp:31,1
    - Dst: std::string::size
      Src: /src/botan/src/cli/argon2.cpp:31,1
    - Dst: rng
      Src: /src/botan/src/cli/argon2.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 32
    functionName: Botan_CLI::Generate_Argon2::go
    functionSourceFile: /src/botan/src/cli/argon2.cpp
    functionUses: 0
    functionsReached:
    - Botan::argon2_generate_pwhash
    - std::string::size
    - rng
    - get_arg_sz
    - std::string::data
    - output
    - get_passphrase_arg
    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: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    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: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    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: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    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:46,1
    - Dst: get_arg
      Src: /src/botan/src/cli/argon2.cpp:47,1
    - Dst: Botan::argon2_check_pwhash
      Src: /src/botan/src/cli/argon2.cpp:49,1
    - Dst: std::string::data
      Src: /src/botan/src/cli/argon2.cpp:49,1
    - Dst: std::string::size
      Src: /src/botan/src/cli/argon2.cpp:49,1
    - Dst: output
      Src: /src/botan/src/cli/argon2.cpp:51,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/argon2.cpp:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 56
    functionName: Botan_CLI::Check_Argon2::go
    functionSourceFile: /src/botan/src/cli/argon2.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - std::string::size
    - std::string::data
    - output
    - get_passphrase_arg
    - set_return_code
    - Botan::argon2_check_pwhash
    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: 19
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 19
    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: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    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: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    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:26,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/argon2.cpp:27,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/argon2.cpp:28,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/argon2.cpp:29,1
    - Dst: output
      Src: /src/botan/src/cli/argon2.cpp:31,1
    - Dst: Botan::argon2_generate_pwhash
      Src: /src/botan/src/cli/argon2.cpp:31,1
    - Dst: std::string::data
      Src: /src/botan/src/cli/argon2.cpp:31,1
    - Dst: std::string::size
      Src: /src/botan/src/cli/argon2.cpp:31,1
    - Dst: rng
      Src: /src/botan/src/cli/argon2.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 32
    functionName: Botan_CLI::Generate_Argon2::go
    functionSourceFile: /src/botan/src/cli/argon2.cpp
    functionUses: 0
    functionsReached:
    - Botan::argon2_generate_pwhash
    - std::string::size
    - rng
    - get_arg_sz
    - std::string::data
    - output
    - get_passphrase_arg
    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: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    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: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    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: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    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:46,1
    - Dst: get_arg
      Src: /src/botan/src/cli/argon2.cpp:47,1
    - Dst: Botan::argon2_check_pwhash
      Src: /src/botan/src/cli/argon2.cpp:49,1
    - Dst: std::string::data
      Src: /src/botan/src/cli/argon2.cpp:49,1
    - Dst: std::string::size
      Src: /src/botan/src/cli/argon2.cpp:49,1
    - Dst: output
      Src: /src/botan/src/cli/argon2.cpp:51,1
    - Dst: set_return_code
      Src: /src/botan/src/cli/argon2.cpp:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 56
    functionName: Botan_CLI::Check_Argon2::go
    functionSourceFile: /src/botan/src/cli/argon2.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - std::string::size
    - std::string::data
    - output
    - get_passphrase_arg
    - set_return_code
    - Botan::argon2_check_pwhash
    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: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    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: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    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: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    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:51,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:52,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:53,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/pubkey.cpp:55,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:55,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/pubkey.cpp:58,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/pubkey.cpp:61,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:62,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:64,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:67,1
    - Dst: write_output
      Src: /src/botan/src/cli/pubkey.cpp:68,1
    - Dst: Botan::PKCS8::BER_encode
      Src: /src/botan/src/cli/pubkey.cpp:68,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:70,1
    - Dst: write_output
      Src: /src/botan/src/cli/pubkey.cpp:71,1
    - Dst: Botan::PKCS8::BER_encode_encrypted_pbkdf_msec
      Src: /src/botan/src/cli/pubkey.cpp:71,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:72,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:72,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:72,1
    - Dst: write_output
      Src: /src/botan/src/cli/pubkey.cpp:74,1
    - Dst: Botan::PKCS8::BER_encode_encrypted_pbkdf_iter
      Src: /src/botan/src/cli/pubkey.cpp:74,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:75,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:75,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:75,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:75,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:79,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:80,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:80,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:82,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:83,1
    - Dst: Botan::PKCS8::PEM_encode_encrypted_pbkdf_msec
      Src: /src/botan/src/cli/pubkey.cpp:83,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:84,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:84,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:84,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:86,1
    - Dst: Botan::PKCS8::PEM_encode_encrypted_pbkdf_iter
      Src: /src/botan/src/cli/pubkey.cpp:86,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:87,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:87,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:87,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:87,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 91
    functionName: Botan_CLI::PK_Keygen::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - CLI_Error_Unsupported
    - Botan::PKCS8::PEM_encode_encrypted_pbkdf_iter
    - rng
    - get_arg_sz
    - Botan::PKCS8::BER_encode
    - Botan::create_private_key
    - write_output
    - Botan::PKCS8::BER_encode_encrypted_pbkdf_iter
    - std::string::empty
    - Botan::PKCS8::BER_encode_encrypted_pbkdf_msec
    - Botan::PKCS8::PEM_encode_encrypted_pbkdf_msec
    - output
    - get_passphrase_arg
    - Botan::PKCS8::PEM_encode
    - flag_set
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/cli/pubkey.cpp:103,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/pubkey.cpp:110,1
    - Dst: empty
      Src: /src/botan/src/cli/pubkey.cpp:111,1
    - Dst: empty
      Src: /src/botan/src/cli/pubkey.cpp:113,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/pubkey.cpp:118,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: 120
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 120
    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:103,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/pubkey.cpp:110,1
    - Dst: empty
      Src: /src/botan/src/cli/pubkey.cpp:111,1
    - Dst: empty
      Src: /src/botan/src/cli/pubkey.cpp:113,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/pubkey.cpp:118,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: 120
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 120
    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: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    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: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    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: 130
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 130
    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:133,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:134,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/pubkey.cpp:136,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/cli/pubkey.cpp:137,1
    - Dst: Botan_CLI::PK_Fingerprint::slurp_file
      Src: /src/botan/src/cli/pubkey.cpp:137,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/cli/pubkey.cpp:138,1
    - Dst: std::unique_ptr::fingerprint_public
      Src: /src/botan/src/cli/pubkey.cpp:140,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:143,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 148
    functionName: Botan_CLI::PK_Fingerprint::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - Botan_CLI::PK_Fingerprint::slurp_file
    - get_arg_list
    - output
    - std::unique_ptr::fingerprint_public
    - Botan::X509::load_key
    - flag_set
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/pubkey.cpp:160,1
    - Dst: what
      Src: /src/botan/src/cli/pubkey.cpp:162,1
    - Dst: empty
      Src: /src/botan/src/cli/pubkey.cpp:165,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/pubkey.cpp:168,1
    - Dst: what
      Src: /src/botan/src/cli/pubkey.cpp:170,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/pubkey.cpp:174,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ' key_filename'
    - ' passphrase'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 175
    functionName: Botan_CLI::load_private_key
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - CLI_Error
    - empty
    - 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:160,1
    - Dst: what
      Src: /src/botan/src/cli/pubkey.cpp:162,1
    - Dst: empty
      Src: /src/botan/src/cli/pubkey.cpp:165,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/pubkey.cpp:168,1
    - Dst: what
      Src: /src/botan/src/cli/pubkey.cpp:170,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/pubkey.cpp:174,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ' key_filename'
    - ' passphrase'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 175
    functionName: Botan_CLI::load_private_key
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - CLI_Error
    - empty
    - 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: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    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: 183
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 183
    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: 185
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 185
    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:188,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/pubkey.cpp:189,1
    - Dst: load_private_key
      Src: /src/botan/src/cli/pubkey.cpp:191,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:193,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:195,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/cli/pubkey.cpp:195,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/pubkey.cpp:196,1
    - Dst: choose_sig_padding
      Src: /src/botan/src/cli/pubkey.cpp:199,1
    - Dst: auto::algo_name
      Src: /src/botan/src/cli/pubkey.cpp:199,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:199,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:203,1
    - Dst: auto::_signature_element_size_for_DER_encoding
      Src: /src/botan/src/cli/pubkey.cpp:204,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pubkey.cpp:205,1
    - Dst: auto::algo_name
      Src: /src/botan/src/cli/pubkey.cpp:205,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:211,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:213,1
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/cli/pubkey.cpp:215,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/pubkey.cpp:216,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:216,1
    - Dst: Botan::PK_Signer::signature
      Src: /src/botan/src/cli/pubkey.cpp:218,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:218,1
    - Dst: auto::stateful_operation
      Src: /src/botan/src/cli/pubkey.cpp:220,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:222,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:223,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:225,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:225,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:229,1
    - Dst: Botan::base64_encode
      Src: /src/botan/src/cli/pubkey.cpp:229,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 230
    functionName: Botan_CLI::PK_Sign::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Command::read_file
    - Botan::PK_Signer::update
    - Botan::PK_Signer::signature
    - std::string::empty
    - auto::algo_name
    - Botan::HashFunction::create
    - flag_set
    - CLI_Error_Unsupported
    - rng
    - Botan::base64_encode
    - load_private_key
    - CLI_Usage_Error
    - choose_sig_padding
    - output
    - get_passphrase_arg
    - get_arg
    - auto::stateful_operation
    - auto::_signature_element_size_for_DER_encoding
    - Botan::PKCS8::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: 237
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 237
    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: 239
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 239
    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: 243
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 243
    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:246,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:246,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/pubkey.cpp:248,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:251,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:253,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/cli/pubkey.cpp:253,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/pubkey.cpp:254,1
    - Dst: choose_sig_padding
      Src: /src/botan/src/cli/pubkey.cpp:257,1
    - Dst: auto::algo_name
      Src: /src/botan/src/cli/pubkey.cpp:257,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:257,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:260,1
    - Dst: auto::message_parts
      Src: /src/botan/src/cli/pubkey.cpp:261,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pubkey.cpp:262,1
    - Dst: auto::algo_name
      Src: /src/botan/src/cli/pubkey.cpp:262,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/cli/pubkey.cpp:269,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/pubkey.cpp:270,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:270,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/cli/pubkey.cpp:273,1
    - Dst: Botan_CLI::PK_Verify::slurp_file_as_str
      Src: /src/botan/src/cli/pubkey.cpp:273,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:273,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/cli/pubkey.cpp:275,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:277,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 278
    functionName: Botan_CLI::PK_Verify::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - CLI_Error_Unsupported
    - choose_sig_padding
    - Botan_CLI::Command::read_file
    - CLI_Error
    - Botan::PK_Verifier::check_signature
    - Botan::PK_Verifier::update
    - std::string::empty
    - auto::algo_name
    - Botan_CLI::PK_Verify::slurp_file_as_str
    - CLI_Usage_Error
    - Botan::HashFunction::create
    - Botan::base64_decode
    - output
    - Botan::X509::load_key
    - auto::message_parts
    - flag_set
    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: 288
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 288
    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: 290
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 290
    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: 292
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 292
    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:295,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/pubkey.cpp:296,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:301,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/pubkey.cpp:302,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/pubkey.cpp:304,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:307,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:308,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:310,1
    - Dst: std::unique_ptr::public_key
      Src: /src/botan/src/cli/pubkey.cpp:311,1
    - Dst: write_output
      Src: /src/botan/src/cli/pubkey.cpp:313,1
    - Dst: Botan::X509::BER_encode
      Src: /src/botan/src/cli/pubkey.cpp:313,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:315,1
    - Dst: Botan::X509::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:315,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/pubkey.cpp:318,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:321,1
    - Dst: write_output
      Src: /src/botan/src/cli/pubkey.cpp:322,1
    - Dst: Botan::PKCS8::BER_encode
      Src: /src/botan/src/cli/pubkey.cpp:322,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:324,1
    - Dst: write_output
      Src: /src/botan/src/cli/pubkey.cpp:325,1
    - Dst: Botan::PKCS8::BER_encode_encrypted_pbkdf_msec
      Src: /src/botan/src/cli/pubkey.cpp:325,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:326,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:326,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:326,1
    - Dst: write_output
      Src: /src/botan/src/cli/pubkey.cpp:328,1
    - Dst: Botan::PKCS8::BER_encode_encrypted_pbkdf_iter
      Src: /src/botan/src/cli/pubkey.cpp:328,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:329,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:329,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:329,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:329,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:333,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:334,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:334,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:336,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:337,1
    - Dst: Botan::PKCS8::PEM_encode_encrypted_pbkdf_msec
      Src: /src/botan/src/cli/pubkey.cpp:337,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:338,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:338,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:338,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:340,1
    - Dst: Botan::PKCS8::PEM_encode_encrypted_pbkdf_iter
      Src: /src/botan/src/cli/pubkey.cpp:340,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:341,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:341,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:341,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:341,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 346
    functionName: Botan_CLI::PKCS8_Tool::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - Botan::X509::BER_encode
    - rng
    - get_arg_sz
    - Botan::PKCS8::PEM_encode_encrypted_pbkdf_iter
    - Botan::PKCS8::BER_encode
    - write_output
    - Botan::PKCS8::load_key
    - Botan::PKCS8::BER_encode_encrypted_pbkdf_iter
    - std::string::empty
    - std::unique_ptr::public_key
    - Botan::PKCS8::BER_encode_encrypted_pbkdf_msec
    - Botan::PKCS8::PEM_encode_encrypted_pbkdf_msec
    - output
    - get_passphrase_arg
    - Botan::PKCS8::PEM_encode
    - Botan::X509::PEM_encode
    - flag_set
    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: 357
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 357
    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: 359
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 359
    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: 363
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 363
    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:366,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:366,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:368,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:369,1
    - Dst: auto::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:369,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:371,1
    - Dst: auto::get_p
      Src: /src/botan/src/cli/pubkey.cpp:371,1
    - Dst: auto::get_a
      Src: /src/botan/src/cli/pubkey.cpp:372,1
    - Dst: auto::get_b
      Src: /src/botan/src/cli/pubkey.cpp:373,1
    - Dst: auto::get_order
      Src: /src/botan/src/cli/pubkey.cpp:374,1
    - Dst: auto::get_g_x
      Src: /src/botan/src/cli/pubkey.cpp:375,1
    - Dst: auto::get_g_y
      Src: /src/botan/src/cli/pubkey.cpp:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 377
    functionName: Botan_CLI::EC_Group_Info::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - auto::get_order
    - auto::get_p
    - Botan::EC_Group::from_name
    - auto::PEM_encode
    - auto::get_g_x
    - auto::get_a
    - auto::get_g_y
    - output
    - auto::get_b
    - flag_set
    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: 388
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 388
    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: 390
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 390
    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: 394
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 394
    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:397,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:397,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:399,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:400,1
    - Dst: auto::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:400,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:402,1
    - Dst: auto::get_p
      Src: /src/botan/src/cli/pubkey.cpp:402,1
    - Dst: auto::get_g
      Src: /src/botan/src/cli/pubkey.cpp:403,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 405
    functionName: Botan_CLI::DL_Group_Info::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - auto::get_p
    - Botan::DL_Group::from_name
    - auto::PEM_encode
    - auto::get_g
    - output
    - flag_set
    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: 412
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 412
    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: 414
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 414
    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: 416
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 416
    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:419,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:420,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:423,1
    - Dst: Botan::if_work_factor
      Src: /src/botan/src/cli/pubkey.cpp:423,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:425,1
    - Dst: Botan::dl_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_exponent_size
      Src: /src/botan/src/cli/pubkey.cpp:427,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pubkey.cpp:429,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 431
    functionName: Botan_CLI::PK_Workfactor::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - get_arg_sz
    - Botan::if_work_factor
    - Botan::dl_work_factor
    - CLI_Usage_Error
    - output
    - Botan::dl_exponent_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: 438
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 438
    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: 440
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 440
    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: 442
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 442
    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:445,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:446,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:448,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:449,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:452,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pubkey.cpp:453,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:456,1
    - Dst: Botan::DL_Group::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:456,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:458,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pubkey.cpp:459,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:462,1
    - Dst: Botan::DL_Group::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:462,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pubkey.cpp:471,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:475,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:477,1
    - Dst: Botan::DL_Group::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:477,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/pubkey.cpp:479,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:481,1
    - Dst: Botan::DL_Group::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:481,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pubkey.cpp:485,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 487
    functionName: Botan_CLI::Gen_DL_Group::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - Botan::hex_decode
    - get_arg_sz
    - Botan::DL_Group::PEM_encode
    - std::string::empty
    - 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: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    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: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    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: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    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:51,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:52,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:53,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/pubkey.cpp:55,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:55,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/pubkey.cpp:58,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/pubkey.cpp:61,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:62,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:64,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:67,1
    - Dst: write_output
      Src: /src/botan/src/cli/pubkey.cpp:68,1
    - Dst: Botan::PKCS8::BER_encode
      Src: /src/botan/src/cli/pubkey.cpp:68,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:70,1
    - Dst: write_output
      Src: /src/botan/src/cli/pubkey.cpp:71,1
    - Dst: Botan::PKCS8::BER_encode_encrypted_pbkdf_msec
      Src: /src/botan/src/cli/pubkey.cpp:71,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:72,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:72,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:72,1
    - Dst: write_output
      Src: /src/botan/src/cli/pubkey.cpp:74,1
    - Dst: Botan::PKCS8::BER_encode_encrypted_pbkdf_iter
      Src: /src/botan/src/cli/pubkey.cpp:74,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:75,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:75,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:75,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:75,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:79,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:80,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:80,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:82,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:83,1
    - Dst: Botan::PKCS8::PEM_encode_encrypted_pbkdf_msec
      Src: /src/botan/src/cli/pubkey.cpp:83,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:84,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:84,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:84,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:86,1
    - Dst: Botan::PKCS8::PEM_encode_encrypted_pbkdf_iter
      Src: /src/botan/src/cli/pubkey.cpp:86,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:87,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:87,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:87,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:87,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 91
    functionName: Botan_CLI::PK_Keygen::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - CLI_Error_Unsupported
    - Botan::PKCS8::PEM_encode_encrypted_pbkdf_iter
    - rng
    - get_arg_sz
    - Botan::PKCS8::BER_encode
    - Botan::create_private_key
    - write_output
    - Botan::PKCS8::BER_encode_encrypted_pbkdf_iter
    - std::string::empty
    - Botan::PKCS8::BER_encode_encrypted_pbkdf_msec
    - Botan::PKCS8::PEM_encode_encrypted_pbkdf_msec
    - output
    - get_passphrase_arg
    - Botan::PKCS8::PEM_encode
    - flag_set
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/cli/pubkey.cpp:103,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/pubkey.cpp:110,1
    - Dst: empty
      Src: /src/botan/src/cli/pubkey.cpp:111,1
    - Dst: empty
      Src: /src/botan/src/cli/pubkey.cpp:113,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/pubkey.cpp:118,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: 120
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 120
    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:103,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/pubkey.cpp:110,1
    - Dst: empty
      Src: /src/botan/src/cli/pubkey.cpp:111,1
    - Dst: empty
      Src: /src/botan/src/cli/pubkey.cpp:113,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/pubkey.cpp:118,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: 120
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 120
    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: 126
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 126
    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: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    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: 130
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 130
    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:133,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:134,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/pubkey.cpp:136,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/cli/pubkey.cpp:137,1
    - Dst: Botan_CLI::PK_Fingerprint::slurp_file
      Src: /src/botan/src/cli/pubkey.cpp:137,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/cli/pubkey.cpp:138,1
    - Dst: std::unique_ptr::fingerprint_public
      Src: /src/botan/src/cli/pubkey.cpp:140,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:143,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 148
    functionName: Botan_CLI::PK_Fingerprint::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - Botan_CLI::PK_Fingerprint::slurp_file
    - get_arg_list
    - output
    - std::unique_ptr::fingerprint_public
    - Botan::X509::load_key
    - flag_set
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/pubkey.cpp:160,1
    - Dst: what
      Src: /src/botan/src/cli/pubkey.cpp:162,1
    - Dst: empty
      Src: /src/botan/src/cli/pubkey.cpp:165,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/pubkey.cpp:168,1
    - Dst: what
      Src: /src/botan/src/cli/pubkey.cpp:170,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/pubkey.cpp:174,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ' key_filename'
    - ' passphrase'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 175
    functionName: Botan_CLI::load_private_key
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - CLI_Error
    - empty
    - 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:160,1
    - Dst: what
      Src: /src/botan/src/cli/pubkey.cpp:162,1
    - Dst: empty
      Src: /src/botan/src/cli/pubkey.cpp:165,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/pubkey.cpp:168,1
    - Dst: what
      Src: /src/botan/src/cli/pubkey.cpp:170,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/pubkey.cpp:174,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - ' key_filename'
    - ' passphrase'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 175
    functionName: Botan_CLI::load_private_key
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - CLI_Error
    - empty
    - 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: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    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: 183
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 183
    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: 185
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 185
    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:188,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/pubkey.cpp:189,1
    - Dst: load_private_key
      Src: /src/botan/src/cli/pubkey.cpp:191,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:193,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:195,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/cli/pubkey.cpp:195,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/pubkey.cpp:196,1
    - Dst: choose_sig_padding
      Src: /src/botan/src/cli/pubkey.cpp:199,1
    - Dst: auto::algo_name
      Src: /src/botan/src/cli/pubkey.cpp:199,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:199,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:203,1
    - Dst: auto::_signature_element_size_for_DER_encoding
      Src: /src/botan/src/cli/pubkey.cpp:204,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pubkey.cpp:205,1
    - Dst: auto::algo_name
      Src: /src/botan/src/cli/pubkey.cpp:205,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:211,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:213,1
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/cli/pubkey.cpp:215,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/pubkey.cpp:216,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:216,1
    - Dst: Botan::PK_Signer::signature
      Src: /src/botan/src/cli/pubkey.cpp:218,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:218,1
    - Dst: auto::stateful_operation
      Src: /src/botan/src/cli/pubkey.cpp:220,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:222,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:223,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:225,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:225,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:229,1
    - Dst: Botan::base64_encode
      Src: /src/botan/src/cli/pubkey.cpp:229,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 230
    functionName: Botan_CLI::PK_Sign::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Command::read_file
    - Botan::PK_Signer::update
    - Botan::PK_Signer::signature
    - std::string::empty
    - auto::algo_name
    - Botan::HashFunction::create
    - flag_set
    - CLI_Error_Unsupported
    - rng
    - Botan::base64_encode
    - load_private_key
    - CLI_Usage_Error
    - choose_sig_padding
    - output
    - get_passphrase_arg
    - get_arg
    - auto::stateful_operation
    - auto::_signature_element_size_for_DER_encoding
    - Botan::PKCS8::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: 237
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 237
    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: 239
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 239
    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: 243
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 243
    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:246,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:246,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/pubkey.cpp:248,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:251,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:253,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/cli/pubkey.cpp:253,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/pubkey.cpp:254,1
    - Dst: choose_sig_padding
      Src: /src/botan/src/cli/pubkey.cpp:257,1
    - Dst: auto::algo_name
      Src: /src/botan/src/cli/pubkey.cpp:257,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:257,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:260,1
    - Dst: auto::message_parts
      Src: /src/botan/src/cli/pubkey.cpp:261,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pubkey.cpp:262,1
    - Dst: auto::algo_name
      Src: /src/botan/src/cli/pubkey.cpp:262,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/cli/pubkey.cpp:269,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/pubkey.cpp:270,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:270,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/cli/pubkey.cpp:273,1
    - Dst: Botan_CLI::PK_Verify::slurp_file_as_str
      Src: /src/botan/src/cli/pubkey.cpp:273,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:273,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/cli/pubkey.cpp:275,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:277,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 278
    functionName: Botan_CLI::PK_Verify::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - CLI_Error_Unsupported
    - choose_sig_padding
    - Botan_CLI::Command::read_file
    - CLI_Error
    - Botan::PK_Verifier::check_signature
    - Botan::PK_Verifier::update
    - std::string::empty
    - auto::algo_name
    - Botan_CLI::PK_Verify::slurp_file_as_str
    - CLI_Usage_Error
    - Botan::HashFunction::create
    - Botan::base64_decode
    - output
    - Botan::X509::load_key
    - auto::message_parts
    - flag_set
    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: 288
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 288
    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: 290
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 290
    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: 292
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 292
    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:295,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/pubkey.cpp:296,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:301,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/pubkey.cpp:302,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/pubkey.cpp:304,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:307,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:308,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:310,1
    - Dst: std::unique_ptr::public_key
      Src: /src/botan/src/cli/pubkey.cpp:311,1
    - Dst: write_output
      Src: /src/botan/src/cli/pubkey.cpp:313,1
    - Dst: Botan::X509::BER_encode
      Src: /src/botan/src/cli/pubkey.cpp:313,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:315,1
    - Dst: Botan::X509::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:315,1
    - Dst: get_passphrase_arg
      Src: /src/botan/src/cli/pubkey.cpp:318,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:321,1
    - Dst: write_output
      Src: /src/botan/src/cli/pubkey.cpp:322,1
    - Dst: Botan::PKCS8::BER_encode
      Src: /src/botan/src/cli/pubkey.cpp:322,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:324,1
    - Dst: write_output
      Src: /src/botan/src/cli/pubkey.cpp:325,1
    - Dst: Botan::PKCS8::BER_encode_encrypted_pbkdf_msec
      Src: /src/botan/src/cli/pubkey.cpp:325,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:326,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:326,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:326,1
    - Dst: write_output
      Src: /src/botan/src/cli/pubkey.cpp:328,1
    - Dst: Botan::PKCS8::BER_encode_encrypted_pbkdf_iter
      Src: /src/botan/src/cli/pubkey.cpp:328,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:329,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:329,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:329,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:329,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:333,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:334,1
    - Dst: Botan::PKCS8::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:334,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:336,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:337,1
    - Dst: Botan::PKCS8::PEM_encode_encrypted_pbkdf_msec
      Src: /src/botan/src/cli/pubkey.cpp:337,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:338,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:338,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:338,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:340,1
    - Dst: Botan::PKCS8::PEM_encode_encrypted_pbkdf_iter
      Src: /src/botan/src/cli/pubkey.cpp:340,1
    - Dst: rng
      Src: /src/botan/src/cli/pubkey.cpp:341,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:341,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:341,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:341,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 346
    functionName: Botan_CLI::PKCS8_Tool::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - Botan::X509::BER_encode
    - rng
    - get_arg_sz
    - Botan::PKCS8::PEM_encode_encrypted_pbkdf_iter
    - Botan::PKCS8::BER_encode
    - write_output
    - Botan::PKCS8::load_key
    - Botan::PKCS8::BER_encode_encrypted_pbkdf_iter
    - std::string::empty
    - std::unique_ptr::public_key
    - Botan::PKCS8::BER_encode_encrypted_pbkdf_msec
    - Botan::PKCS8::PEM_encode_encrypted_pbkdf_msec
    - output
    - get_passphrase_arg
    - Botan::PKCS8::PEM_encode
    - Botan::X509::PEM_encode
    - flag_set
    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: 357
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 357
    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: 359
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 359
    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: 363
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 363
    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:366,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:366,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:368,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:369,1
    - Dst: auto::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:369,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:371,1
    - Dst: auto::get_p
      Src: /src/botan/src/cli/pubkey.cpp:371,1
    - Dst: auto::get_a
      Src: /src/botan/src/cli/pubkey.cpp:372,1
    - Dst: auto::get_b
      Src: /src/botan/src/cli/pubkey.cpp:373,1
    - Dst: auto::get_order
      Src: /src/botan/src/cli/pubkey.cpp:374,1
    - Dst: auto::get_g_x
      Src: /src/botan/src/cli/pubkey.cpp:375,1
    - Dst: auto::get_g_y
      Src: /src/botan/src/cli/pubkey.cpp:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 377
    functionName: Botan_CLI::EC_Group_Info::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - auto::get_order
    - auto::get_p
    - Botan::EC_Group::from_name
    - auto::PEM_encode
    - auto::get_g_x
    - auto::get_a
    - auto::get_g_y
    - output
    - auto::get_b
    - flag_set
    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: 388
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 388
    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: 390
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 390
    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: 394
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 394
    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:397,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:397,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pubkey.cpp:399,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:400,1
    - Dst: auto::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:400,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:402,1
    - Dst: auto::get_p
      Src: /src/botan/src/cli/pubkey.cpp:402,1
    - Dst: auto::get_g
      Src: /src/botan/src/cli/pubkey.cpp:403,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 405
    functionName: Botan_CLI::DL_Group_Info::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - auto::get_p
    - Botan::DL_Group::from_name
    - auto::PEM_encode
    - auto::get_g
    - output
    - flag_set
    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: 412
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 412
    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: 414
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 414
    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: 416
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 416
    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:419,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:420,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:423,1
    - Dst: Botan::if_work_factor
      Src: /src/botan/src/cli/pubkey.cpp:423,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:425,1
    - Dst: Botan::dl_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_exponent_size
      Src: /src/botan/src/cli/pubkey.cpp:427,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pubkey.cpp:429,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 431
    functionName: Botan_CLI::PK_Workfactor::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - get_arg_sz
    - Botan::if_work_factor
    - Botan::dl_work_factor
    - CLI_Usage_Error
    - output
    - Botan::dl_exponent_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: 438
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 438
    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: 440
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 440
    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: 442
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 442
    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:445,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pubkey.cpp:446,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:448,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pubkey.cpp:449,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:452,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pubkey.cpp:453,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:456,1
    - Dst: Botan::DL_Group::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:456,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:458,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pubkey.cpp:459,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:462,1
    - Dst: Botan::DL_Group::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:462,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pubkey.cpp:471,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/pubkey.cpp:475,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:477,1
    - Dst: Botan::DL_Group::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:477,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/pubkey.cpp:479,1
    - Dst: output
      Src: /src/botan/src/cli/pubkey.cpp:481,1
    - Dst: Botan::DL_Group::PEM_encode
      Src: /src/botan/src/cli/pubkey.cpp:481,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pubkey.cpp:485,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 487
    functionName: Botan_CLI::Gen_DL_Group::go
    functionSourceFile: /src/botan/src/cli/pubkey.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - Botan::hex_decode
    - get_arg_sz
    - Botan::DL_Group::PEM_encode
    - std::string::empty
    - 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: 20
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 20
    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: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    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: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    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:27,1
    - Dst: get_arg
      Src: /src/botan/src/cli/math.cpp:28,1
    - Dst: Botan::inverse_mod_general
      Src: /src/botan/src/cli/math.cpp:30,1
    - Dst: output
      Src: /src/botan/src/cli/math.cpp:31,1
    - Dst: output
      Src: /src/botan/src/cli/math.cpp:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 35
    functionName: Botan_CLI::Modular_Inverse::go
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - output
    - Botan::inverse_mod_general
    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: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    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: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    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: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    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:49,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/math.cpp:50,1
    - Dst: flag_set
      Src: /src/botan/src/cli/math.cpp:51,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/cli/math.cpp:54,1
    - Dst: rng
      Src: /src/botan/src/cli/math.cpp:54,1
    - Dst: output
      Src: /src/botan/src/cli/math.cpp:57,1
    - Dst: output
      Src: /src/botan/src/cli/math.cpp:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 62
    functionName: Botan_CLI::Gen_Prime::go
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached:
    - rng
    - get_arg_sz
    - Botan::random_prime
    - output
    - flag_set
    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: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    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: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    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: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    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:76,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/math.cpp:77,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/cli/math.cpp:78,1
    - Dst: rng
      Src: /src/botan/src/cli/math.cpp:78,1
    - Dst: output
      Src: /src/botan/src/cli/math.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 81
    functionName: Botan_CLI::Is_Prime::go
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - rng
    - get_arg_sz
    - output
    - 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: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    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: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    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: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    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:99,1
    - Dst: Botan_CLI::Factor::factorize
      Src: /src/botan/src/cli/math.cpp:101,1
    - Dst: rng
      Src: /src/botan/src/cli/math.cpp:101,1
    - Dst: std::sort
      Src: /src/botan/src/cli/math.cpp:102,1
    - Dst: std::vector::begin
      Src: /src/botan/src/cli/math.cpp:102,1
    - Dst: std::vector::end
      Src: /src/botan/src/cli/math.cpp:102,1
    - Dst: output
      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
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 109
    functionName: Botan_CLI::Factor::go
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - std::vector::begin
    - rng
    - std::sort
    - std::vector::end
    - Botan_CLI::Factor::factorize
    - output
    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:114,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/cli/math.cpp:117,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/math.cpp:118,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/math.cpp:122,1
    - Dst: Botan_CLI::Factor::rho
      Src: /src/botan/src/cli/math.cpp:124,1
    - Dst: Botan_CLI::Factor::factorize
      Src: /src/botan/src/cli/math.cpp:127,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/math.cpp:129,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - ' n_in'
    - ' rng'
    argTypes:
    - Botan::BigInt
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 136
    functionName: Botan_CLI::Factor::factorize
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 2
    functionsReached:
    - std::vector::push_back
    - Botan::is_prime
    - Botan_CLI::Factor::remove_small_factors
    - Botan_CLI::Factor::rho
    - Botan_CLI::Factor::factorize
    - 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:145,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/cli/math.cpp:147,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/cli/math.cpp:148,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/cli/math.cpp:149,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/math.cpp:153,1
    - Dst: Botan::Montgomery_Int::square_this_n_times
      Src: /src/botan/src/cli/math.cpp:168,1
    - Dst: Botan::Montgomery_Int::mul_by
      Src: /src/botan/src/cli/math.cpp:173,1
    - Dst: Botan::gcd
      Src: /src/botan/src/cli/math.cpp:176,1
    - Dst: Botan::Montgomery_Int::value
      Src: /src/botan/src/cli/math.cpp:176,1
    - Dst: Botan::Sodium::sodium_memzero
      Src: /src/botan/src/cli/math.cpp:196,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - ' n'
    - ' rng'
    argTypes:
    - Botan::BigInt
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 197
    functionName: Botan_CLI::Factor::rho
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 1
    functionsReached:
    - Botan::Montgomery_Int::one
    - Botan::Montgomery_Int::mul_by
    - Botan::Montgomery_Int::value
    - Botan::Sodium::sodium_memzero
    - Botan::BigInt::random_integer
    - Botan::BigInt::from_s32
    - Botan::gcd
    - Botan::Montgomery_Int::square_this_n_times
    - Botan::BigInt::BigInt
    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:203,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/math.cpp:204,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/cli/math.cpp:204,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/cli/math.cpp:209,1
    - Dst: Botan::gcd
      Src: /src/botan/src/cli/math.cpp:214,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/math.cpp:221,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - Botan::BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 227
    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: 20
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 20
    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: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    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: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    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:27,1
    - Dst: get_arg
      Src: /src/botan/src/cli/math.cpp:28,1
    - Dst: Botan::inverse_mod_general
      Src: /src/botan/src/cli/math.cpp:30,1
    - Dst: output
      Src: /src/botan/src/cli/math.cpp:31,1
    - Dst: output
      Src: /src/botan/src/cli/math.cpp:33,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 35
    functionName: Botan_CLI::Modular_Inverse::go
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - output
    - Botan::inverse_mod_general
    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: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    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: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    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: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    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:49,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/math.cpp:50,1
    - Dst: flag_set
      Src: /src/botan/src/cli/math.cpp:51,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/cli/math.cpp:54,1
    - Dst: rng
      Src: /src/botan/src/cli/math.cpp:54,1
    - Dst: output
      Src: /src/botan/src/cli/math.cpp:57,1
    - Dst: output
      Src: /src/botan/src/cli/math.cpp:59,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 62
    functionName: Botan_CLI::Gen_Prime::go
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached:
    - rng
    - get_arg_sz
    - Botan::random_prime
    - output
    - flag_set
    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: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    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: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    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: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    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:76,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/math.cpp:77,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/cli/math.cpp:78,1
    - Dst: rng
      Src: /src/botan/src/cli/math.cpp:78,1
    - Dst: output
      Src: /src/botan/src/cli/math.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 81
    functionName: Botan_CLI::Is_Prime::go
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - rng
    - get_arg_sz
    - output
    - 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: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    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: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    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: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    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:99,1
    - Dst: Botan_CLI::Factor::factorize
      Src: /src/botan/src/cli/math.cpp:101,1
    - Dst: rng
      Src: /src/botan/src/cli/math.cpp:101,1
    - Dst: std::sort
      Src: /src/botan/src/cli/math.cpp:102,1
    - Dst: std::vector::begin
      Src: /src/botan/src/cli/math.cpp:102,1
    - Dst: std::vector::end
      Src: /src/botan/src/cli/math.cpp:102,1
    - Dst: output
      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
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 109
    functionName: Botan_CLI::Factor::go
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - std::vector::begin
    - rng
    - std::sort
    - std::vector::end
    - Botan_CLI::Factor::factorize
    - output
    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:114,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/cli/math.cpp:117,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/math.cpp:118,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/math.cpp:122,1
    - Dst: Botan_CLI::Factor::rho
      Src: /src/botan/src/cli/math.cpp:124,1
    - Dst: Botan_CLI::Factor::factorize
      Src: /src/botan/src/cli/math.cpp:127,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/math.cpp:129,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - ' n_in'
    - ' rng'
    argTypes:
    - Botan::BigInt
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 136
    functionName: Botan_CLI::Factor::factorize
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 4
    functionsReached:
    - std::vector::push_back
    - Botan::is_prime
    - Botan_CLI::Factor::remove_small_factors
    - Botan_CLI::Factor::rho
    - Botan_CLI::Factor::factorize
    - 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:145,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/cli/math.cpp:147,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/cli/math.cpp:148,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/cli/math.cpp:149,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/math.cpp:153,1
    - Dst: Botan::Montgomery_Int::square_this_n_times
      Src: /src/botan/src/cli/math.cpp:168,1
    - Dst: Botan::Montgomery_Int::mul_by
      Src: /src/botan/src/cli/math.cpp:173,1
    - Dst: Botan::gcd
      Src: /src/botan/src/cli/math.cpp:176,1
    - Dst: Botan::Montgomery_Int::value
      Src: /src/botan/src/cli/math.cpp:176,1
    - Dst: Botan::Sodium::sodium_memzero
      Src: /src/botan/src/cli/math.cpp:196,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 2
    argNames:
    - ' n'
    - ' rng'
    argTypes:
    - Botan::BigInt
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 197
    functionName: Botan_CLI::Factor::rho
    functionSourceFile: /src/botan/src/cli/math.cpp
    functionUses: 2
    functionsReached:
    - Botan::Montgomery_Int::one
    - Botan::Montgomery_Int::mul_by
    - Botan::Montgomery_Int::value
    - Botan::Sodium::sodium_memzero
    - Botan::BigInt::random_integer
    - Botan::BigInt::from_s32
    - Botan::gcd
    - Botan::Montgomery_Int::square_this_n_times
    - Botan::BigInt::BigInt
    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:203,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/math.cpp:204,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/cli/math.cpp:204,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/cli/math.cpp:209,1
    - Dst: Botan::gcd
      Src: /src/botan/src/cli/math.cpp:214,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/math.cpp:221,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - ' n'
    argTypes:
    - Botan::BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 227
    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:
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_misc.cpp:43,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:48,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:48,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:48,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:50,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_misc.cpp:52,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:54,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:54,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_misc.cpp:55,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:57,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/perf_misc.cpp:57,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:59,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/perf_misc.cpp:59,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_misc.cpp:59,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_misc.cpp:60,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:63,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 42
    functionDepth: 3
    functionLinenumber: 42
    functionLinenumberEnd: 66
    functionName: Botan_CLI::PerfTest_Hex::go
    functionSourceFile: /src/botan/src/cli/perf_misc.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - rng
    - buffer_sizes
    - auto::run
    - Botan::hex_encode
    - auto::under
    - std::vector::data
    - record_result
    - runtime
    - make_timer
    - std::vector::size
    - BOTAN_ASSERT
    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:75,1
    - Dst: Botan::base32_encode_max_output
      Src: /src/botan/src/cli/perf_misc.cpp:78,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:78,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:80,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:80,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:80,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:82,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_misc.cpp:84,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:86,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:86,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_misc.cpp:87,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:89,1
    - Dst: Botan::base32_encode
      Src: /src/botan/src/cli/perf_misc.cpp:89,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:91,1
    - Dst: Botan::base32_decode
      Src: /src/botan/src/cli/perf_misc.cpp:91,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_misc.cpp:91,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_misc.cpp:92,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:95,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:96,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 98
    functionName: Botan_CLI::PerfTest_Base32::go
    functionSourceFile: /src/botan/src/cli/perf_misc.cpp
    functionUses: 0
    functionsReached:
    - rng
    - Botan::base32_encode
    - buffer_sizes
    - auto::run
    - auto::under
    - std::vector::data
    - Botan::base32_decode
    - runtime
    - record_result
    - make_timer
    - std::vector::size
    - BOTAN_ASSERT
    - Botan::base32_encode_max_output
    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:109,1
    - Dst: Botan::base64_encode_max_output
      Src: /src/botan/src/cli/perf_misc.cpp:112,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:112,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:114,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:114,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:114,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:116,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_misc.cpp:118,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:120,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:120,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_misc.cpp:121,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:123,1
    - Dst: Botan::base64_encode
      Src: /src/botan/src/cli/perf_misc.cpp:123,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:125,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/cli/perf_misc.cpp:125,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_misc.cpp:125,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_misc.cpp:126,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:129,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 108
    functionDepth: 3
    functionLinenumber: 108
    functionLinenumberEnd: 132
    functionName: Botan_CLI::PerfTest_Base64::go
    functionSourceFile: /src/botan/src/cli/perf_misc.cpp
    functionUses: 0
    functionsReached:
    - rng
    - buffer_sizes
    - Botan::base64_encode
    - auto::run
    - auto::under
    - std::vector::data
    - record_result
    - runtime
    - make_timer
    - std::vector::size
    - BOTAN_ASSERT
    - Botan::base64_encode_max_output
    - Botan::base64_decode
    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:143,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:146,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:146,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:146,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:147,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:147,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:147,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_misc.cpp:149,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:151,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:151,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_misc.cpp:152,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:154,1
    - Dst: Botan::base58_encode
      Src: /src/botan/src/cli/perf_misc.cpp:154,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:155,1
    - Dst: Botan::base58_decode
      Src: /src/botan/src/cli/perf_misc.cpp:155,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_misc.cpp:156,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:159,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:160,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 142
    functionDepth: 3
    functionLinenumber: 142
    functionLinenumberEnd: 162
    functionName: Botan_CLI::PerfTest_Base58::go
    functionSourceFile: /src/botan/src/cli/perf_misc.cpp
    functionUses: 0
    functionsReached:
    - rng
    - buffer_sizes
    - auto::run
    - Botan::base58_encode
    - auto::under
    - record_result
    - runtime
    - Botan::base58_decode
    - make_timer
    - std::vector::size
    - BOTAN_ASSERT
    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:174,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:176,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:177,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_misc.cpp:179,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::retrieve_one
      Src: /src/botan/src/cli/perf_misc.cpp:182,1
    - Dst: Botan::FPE_FE1::set_key
      Src: /src/botan/src/cli/perf_misc.cpp:185,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_misc.cpp:187,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:189,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_misc.cpp:190,1
    - Dst: Botan::FPE_FE1::encrypt
      Src: /src/botan/src/cli/perf_misc.cpp:191,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_misc.cpp:191,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:191,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_misc.cpp:192,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:194,1
    - Dst: auto::events
      Src: /src/botan/src/cli/perf_misc.cpp:196,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_misc.cpp:197,1
    - Dst: Botan::FPE_FE1::decrypt
      Src: /src/botan/src/cli/perf_misc.cpp:198,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_misc.cpp:198,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:198,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_misc.cpp:199,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:201,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_misc.cpp:203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 173
    functionDepth: 3
    functionLinenumber: 173
    functionLinenumberEnd: 204
    functionName: Botan_CLI::PerfTest_FpeFe1::go
    functionSourceFile: /src/botan/src/cli/perf_misc.cpp
    functionUses: 0
    functionsReached:
    - rng
    - auto::events
    - Botan_Tests::RFC8448_Session_Manager::retrieve_one
    - auto::under
    - std::vector::data
    - auto::stop
    - Botan::BigInt::from_u64
    - Botan::FPE_FE1::set_key
    - Botan::FPE_FE1::decrypt
    - auto::start
    - runtime
    - record_result
    - Botan::FPE_FE1::encrypt
    - make_timer
    - std::vector::size
    - BOTAN_ASSERT
    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:214,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:215,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_misc.cpp:217,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_misc.cpp:220,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:222,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_misc.cpp:223,1
    - Dst: Botan::rfc3394_keywrap
      Src: /src/botan/src/cli/perf_misc.cpp:224,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_misc.cpp:225,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_misc.cpp:227,1
    - Dst: Botan::rfc3394_keyunwrap
      Src: /src/botan/src/cli/perf_misc.cpp:228,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_misc.cpp:229,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:234,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 236
    functionName: Botan_CLI::PerfTest_Rfc3394::go
    functionSourceFile: /src/botan/src/cli/perf_misc.cpp
    functionUses: 0
    functionsReached:
    - rng
    - auto::under
    - Botan::rfc3394_keyunwrap
    - auto::stop
    - auto::start
    - runtime
    - Botan::rfc3394_keywrap
    - record_result
    - make_timer
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rng
      Src: /src/botan/src/cli/perf_misc.cpp:256,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_misc.cpp:256,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:256,1
    - Dst: std::memcpy
      Src: /src/botan/src/cli/perf_misc.cpp:261,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_misc.cpp:264,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_misc.cpp:266,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:268,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:268,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:268,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_misc.cpp:270,1
    - Dst: Botan::ZFEC::encode
      Src: /src/botan/src/cli/perf_misc.cpp:270,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_misc.cpp:270,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:270,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:272,1
    - Dst: make_timer
      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: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:274,1
    - Dst: std::map::size
      Src: /src/botan/src/cli/perf_misc.cpp:282,1
    - Dst: std::map::erase
      Src: /src/botan/src/cli/perf_misc.cpp:283,1
    - Dst: std::map::begin
      Src: /src/botan/src/cli/perf_misc.cpp:283,1
    - Dst: std::memcpy
      Src: /src/botan/src/cli/perf_misc.cpp:289,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_misc.cpp:292,1
    - Dst: Botan::ZFEC::decode_shares
      Src: /src/botan/src/cli/perf_misc.cpp:292,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:294,1
    - Dst: error_output
      Src: /src/botan/src/cli/perf_misc.cpp:297,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 299
    functionName: Botan_CLI::PerfTest_Zfec::go
    functionSourceFile: /src/botan/src/cli/perf_misc.cpp
    functionUses: 0
    functionsReached:
    - rng
    - std::map::size
    - Botan::fmt
    - auto::run_until_elapsed
    - std::map::begin
    - std::vector::data
    - Botan::ZFEC::encode
    - Botan::ZFEC::decode_shares
    - error_output
    - record_result
    - runtime
    - std::map::erase
    - make_timer
    - std::vector::size
    - std::memcpy
    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:43,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:48,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:48,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:48,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:50,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_misc.cpp:52,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:54,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:54,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_misc.cpp:55,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:57,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/perf_misc.cpp:57,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:59,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/perf_misc.cpp:59,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_misc.cpp:59,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_misc.cpp:60,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:63,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 42
    functionDepth: 3
    functionLinenumber: 42
    functionLinenumberEnd: 66
    functionName: Botan_CLI::PerfTest_Hex::go
    functionSourceFile: /src/botan/src/cli/perf_misc.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - rng
    - buffer_sizes
    - auto::run
    - Botan::hex_encode
    - auto::under
    - std::vector::data
    - record_result
    - runtime
    - make_timer
    - std::vector::size
    - BOTAN_ASSERT
    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:75,1
    - Dst: Botan::base32_encode_max_output
      Src: /src/botan/src/cli/perf_misc.cpp:78,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:78,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:80,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:80,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:80,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:82,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_misc.cpp:84,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:86,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:86,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_misc.cpp:87,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:89,1
    - Dst: Botan::base32_encode
      Src: /src/botan/src/cli/perf_misc.cpp:89,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:91,1
    - Dst: Botan::base32_decode
      Src: /src/botan/src/cli/perf_misc.cpp:91,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_misc.cpp:91,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_misc.cpp:92,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:95,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:96,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 98
    functionName: Botan_CLI::PerfTest_Base32::go
    functionSourceFile: /src/botan/src/cli/perf_misc.cpp
    functionUses: 0
    functionsReached:
    - rng
    - Botan::base32_encode
    - buffer_sizes
    - auto::run
    - auto::under
    - std::vector::data
    - Botan::base32_decode
    - runtime
    - record_result
    - make_timer
    - std::vector::size
    - BOTAN_ASSERT
    - Botan::base32_encode_max_output
    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:109,1
    - Dst: Botan::base64_encode_max_output
      Src: /src/botan/src/cli/perf_misc.cpp:112,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:112,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:114,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:114,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:114,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:116,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_misc.cpp:118,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:120,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:120,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_misc.cpp:121,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:123,1
    - Dst: Botan::base64_encode
      Src: /src/botan/src/cli/perf_misc.cpp:123,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:125,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/cli/perf_misc.cpp:125,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_misc.cpp:125,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_misc.cpp:126,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:129,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:130,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 108
    functionDepth: 3
    functionLinenumber: 108
    functionLinenumberEnd: 132
    functionName: Botan_CLI::PerfTest_Base64::go
    functionSourceFile: /src/botan/src/cli/perf_misc.cpp
    functionUses: 0
    functionsReached:
    - rng
    - buffer_sizes
    - Botan::base64_encode
    - auto::run
    - auto::under
    - std::vector::data
    - record_result
    - runtime
    - make_timer
    - std::vector::size
    - BOTAN_ASSERT
    - Botan::base64_encode_max_output
    - Botan::base64_decode
    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:143,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:146,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:146,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:146,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:147,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:147,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:147,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_misc.cpp:149,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:151,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:151,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_misc.cpp:152,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:154,1
    - Dst: Botan::base58_encode
      Src: /src/botan/src/cli/perf_misc.cpp:154,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_misc.cpp:155,1
    - Dst: Botan::base58_decode
      Src: /src/botan/src/cli/perf_misc.cpp:155,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_misc.cpp:156,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:159,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:160,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 142
    functionDepth: 3
    functionLinenumber: 142
    functionLinenumberEnd: 162
    functionName: Botan_CLI::PerfTest_Base58::go
    functionSourceFile: /src/botan/src/cli/perf_misc.cpp
    functionUses: 0
    functionsReached:
    - rng
    - buffer_sizes
    - auto::run
    - Botan::base58_encode
    - auto::under
    - record_result
    - runtime
    - Botan::base58_decode
    - make_timer
    - std::vector::size
    - BOTAN_ASSERT
    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:174,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:176,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:177,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_misc.cpp:179,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::retrieve_one
      Src: /src/botan/src/cli/perf_misc.cpp:182,1
    - Dst: Botan::FPE_FE1::set_key
      Src: /src/botan/src/cli/perf_misc.cpp:185,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_misc.cpp:187,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:189,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_misc.cpp:190,1
    - Dst: Botan::FPE_FE1::encrypt
      Src: /src/botan/src/cli/perf_misc.cpp:191,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_misc.cpp:191,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:191,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_misc.cpp:192,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:194,1
    - Dst: auto::events
      Src: /src/botan/src/cli/perf_misc.cpp:196,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_misc.cpp:197,1
    - Dst: Botan::FPE_FE1::decrypt
      Src: /src/botan/src/cli/perf_misc.cpp:198,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_misc.cpp:198,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:198,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_misc.cpp:199,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:201,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_misc.cpp:203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 173
    functionDepth: 3
    functionLinenumber: 173
    functionLinenumberEnd: 204
    functionName: Botan_CLI::PerfTest_FpeFe1::go
    functionSourceFile: /src/botan/src/cli/perf_misc.cpp
    functionUses: 0
    functionsReached:
    - rng
    - auto::events
    - Botan_Tests::RFC8448_Session_Manager::retrieve_one
    - auto::under
    - std::vector::data
    - auto::stop
    - Botan::BigInt::from_u64
    - Botan::FPE_FE1::set_key
    - Botan::FPE_FE1::decrypt
    - auto::start
    - runtime
    - record_result
    - Botan::FPE_FE1::encrypt
    - make_timer
    - std::vector::size
    - BOTAN_ASSERT
    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:214,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:215,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_misc.cpp:217,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_misc.cpp:220,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_misc.cpp:222,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_misc.cpp:223,1
    - Dst: Botan::rfc3394_keywrap
      Src: /src/botan/src/cli/perf_misc.cpp:224,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_misc.cpp:225,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_misc.cpp:227,1
    - Dst: Botan::rfc3394_keyunwrap
      Src: /src/botan/src/cli/perf_misc.cpp:228,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_misc.cpp:229,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:234,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 236
    functionName: Botan_CLI::PerfTest_Rfc3394::go
    functionSourceFile: /src/botan/src/cli/perf_misc.cpp
    functionUses: 0
    functionsReached:
    - rng
    - auto::under
    - Botan::rfc3394_keyunwrap
    - auto::stop
    - auto::start
    - runtime
    - Botan::rfc3394_keywrap
    - record_result
    - make_timer
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rng
      Src: /src/botan/src/cli/perf_misc.cpp:256,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_misc.cpp:256,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:256,1
    - Dst: std::memcpy
      Src: /src/botan/src/cli/perf_misc.cpp:261,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_misc.cpp:264,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_misc.cpp:266,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_misc.cpp:268,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:268,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:268,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_misc.cpp:270,1
    - Dst: Botan::ZFEC::encode
      Src: /src/botan/src/cli/perf_misc.cpp:270,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_misc.cpp:270,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:270,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:272,1
    - Dst: make_timer
      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: std::vector::size
      Src: /src/botan/src/cli/perf_misc.cpp:274,1
    - Dst: std::map::size
      Src: /src/botan/src/cli/perf_misc.cpp:282,1
    - Dst: std::map::erase
      Src: /src/botan/src/cli/perf_misc.cpp:283,1
    - Dst: std::map::begin
      Src: /src/botan/src/cli/perf_misc.cpp:283,1
    - Dst: std::memcpy
      Src: /src/botan/src/cli/perf_misc.cpp:289,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_misc.cpp:292,1
    - Dst: Botan::ZFEC::decode_shares
      Src: /src/botan/src/cli/perf_misc.cpp:292,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_misc.cpp:294,1
    - Dst: error_output
      Src: /src/botan/src/cli/perf_misc.cpp:297,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 299
    functionName: Botan_CLI::PerfTest_Zfec::go
    functionSourceFile: /src/botan/src/cli/perf_misc.cpp
    functionUses: 0
    functionsReached:
    - rng
    - std::map::size
    - Botan::fmt
    - auto::run_until_elapsed
    - std::map::begin
    - std::vector::data
    - Botan::ZFEC::encode
    - Botan::ZFEC::decode_shares
    - error_output
    - record_result
    - runtime
    - std::map::erase
    - make_timer
    - std::vector::size
    - std::memcpy
    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: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    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: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    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: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    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: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    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: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    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: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    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: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_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:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 42
    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:45,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/zfec.cpp:48,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/cli/zfec.cpp:51,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/zfec.cpp:52,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/zfec.cpp:58,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/zfec.cpp:68,1
    - Dst: update
      Src: /src/botan/src/cli/zfec.cpp:71,1
    - Dst: final
      Src: /src/botan/src/cli/zfec.cpp:72,1
    - Dst: Botan::constant_time_compare
      Src: /src/botan/src/cli/zfec.cpp:74,1
    - Dst: auto::data
      Src: /src/botan/src/cli/zfec.cpp:74,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/zfec.cpp:77,1
    - Dst: Botan_CLI::FEC_Share::FEC_Share
      Src: /src/botan/src/cli/zfec.cpp:80,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: 82
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 82
    functionName: Botan_CLI::FEC_Share::deserialize
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached:
    - Botan::constant_time_compare
    - final
    - update
    - auto::data
    - CLI_Error
    - Botan_CLI::FEC_Share::FEC_Share
    - Botan::load_be<uint32_t>
    - output_length
    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:87,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/cli/zfec.cpp:88,1
    - Dst: static_cast<uint8_t>
      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: write
      Src: /src/botan/src/cli/zfec.cpp:94,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/zfec.cpp:94,1
    - Dst: write
      Src: /src/botan/src/cli/zfec.cpp:95,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/zfec.cpp:95,1
    - Dst: data
      Src: /src/botan/src/cli/zfec.cpp:95,1
    - Dst: size
      Src: /src/botan/src/cli/zfec.cpp:95,1
    - Dst: update
      Src: /src/botan/src/cli/zfec.cpp:97,1
    - Dst: update
      Src: /src/botan/src/cli/zfec.cpp:98,1
    - Dst: final
      Src: /src/botan/src/cli/zfec.cpp:99,1
    - Dst: write
      Src: /src/botan/src/cli/zfec.cpp:101,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/zfec.cpp:101,1
    - Dst: auto::data
      Src: /src/botan/src/cli/zfec.cpp:101,1
    - Dst: auto::size
      Src: /src/botan/src/cli/zfec.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - ' hash'
    - ' out'
    argTypes:
    - Botan::HashFunction
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 102
    functionName: Botan_CLI::FEC_Share::serialize_to
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - final
    - update
    - data
    - size
    - static_cast<uint8_t>
    - Botan::store_be
    - write
    - reinterpret_cast<const char*>
    - auto::size
    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: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    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: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    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: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    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:123,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/zfec.cpp:124,1
    - Dst: get_arg
      Src: /src/botan/src/cli/zfec.cpp:126,1
    - Dst: get_arg
      Src: /src/botan/src/cli/zfec.cpp:127,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: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/cli/zfec.cpp:133,1
    - Dst: slurp_file
      Src: /src/botan/src/cli/zfec.cpp:135,1
    - Dst: get_arg
      Src: /src/botan/src/cli/zfec.cpp:135,1
    - Dst: auto::update
      Src: /src/botan/src/cli/zfec.cpp:138,1
    - Dst: auto::final
      Src: /src/botan/src/cli/zfec.cpp:139,1
    - Dst: auto::insert
      Src: /src/botan/src/cli/zfec.cpp:140,1
    - Dst: auto::end
      Src: /src/botan/src/cli/zfec.cpp:140,1
    - Dst: auto::begin
      Src: /src/botan/src/cli/zfec.cpp:140,1
    - Dst: auto::end
      Src: /src/botan/src/cli/zfec.cpp:140,1
    - Dst: auto::size
      Src: /src/botan/src/cli/zfec.cpp:144,1
    - Dst: auto::push_back
      Src: /src/botan/src/cli/zfec.cpp:146,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/zfec.cpp:152,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/zfec.cpp:156,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/zfec.cpp:164,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/zfec.cpp:168,1
    - Dst: FEC_Share::serialize_to
      Src: /src/botan/src/cli/zfec.cpp:171,1
    - Dst: Botan::ZFEC::encode
      Src: /src/botan/src/cli/zfec.cpp:174,1
    - Dst: auto::data
      Src: /src/botan/src/cli/zfec.cpp:174,1
    - Dst: auto::size
      Src: /src/botan/src/cli/zfec.cpp:174,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 175
    functionName: Botan_CLI::FEC_Encode::go
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - auto::update
    - auto::data
    - get_arg_sz
    - slurp_file
    - FEC_Share::serialize_to
    - auto::end
    - std::ostringstream::str
    - Botan::ZFEC::encode
    - Botan::HashFunction::create_or_throw
    - auto::push_back
    - std::string::empty
    - auto::insert
    - auto::size
    - auto::begin
    - auto::final
    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::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: 184
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 184
    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: 186
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 186
    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:189,1
    - Dst: auto::output_length
      Src: /src/botan/src/cli/zfec.cpp:190,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/zfec.cpp:194,1
    - Dst: slurp_file
      Src: /src/botan/src/cli/zfec.cpp:195,1
    - Dst: Botan_CLI::FEC_Share::deserialize
      Src: /src/botan/src/cli/zfec.cpp:198,1
    - Dst: auto::data
      Src: /src/botan/src/cli/zfec.cpp:198,1
    - Dst: auto::size
      Src: /src/botan/src/cli/zfec.cpp:198,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/zfec.cpp:199,1
    - Dst: error_output
      Src: /src/botan/src/cli/zfec.cpp:201,1
    - Dst: what
      Src: /src/botan/src/cli/zfec.cpp:201,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/zfec.cpp:205,1
    - Dst: error_output
      Src: /src/botan/src/cli/zfec.cpp:206,1
    - Dst: Botan_CLI::FEC_Decode::set_return_code
      Src: /src/botan/src/cli/zfec.cpp:207,1
    - Dst: auto::k
      Src: /src/botan/src/cli/zfec.cpp:218,1
    - Dst: auto::n
      Src: /src/botan/src/cli/zfec.cpp:219,1
    - Dst: auto::padding
      Src: /src/botan/src/cli/zfec.cpp:220,1
    - Dst: auto::share_size
      Src: /src/botan/src/cli/zfec.cpp:221,1
    - Dst: auto::k
      Src: /src/botan/src/cli/zfec.cpp:223,1
    - Dst: auto::n
      Src: /src/botan/src/cli/zfec.cpp:223,1
    - Dst: auto::padding
      Src: /src/botan/src/cli/zfec.cpp:223,1
    - Dst: auto::share_size
      Src: /src/botan/src/cli/zfec.cpp:223,1
    - Dst: error_output
      Src: /src/botan/src/cli/zfec.cpp:224,1
    - Dst: Botan_CLI::FEC_Decode::set_return_code
      Src: /src/botan/src/cli/zfec.cpp:225,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/zfec.cpp:231,1
    - Dst: error_output
      Src: /src/botan/src/cli/zfec.cpp:232,1
    - Dst: Botan_CLI::FEC_Decode::set_return_code
      Src: /src/botan/src/cli/zfec.cpp:233,1
    - Dst: std::memcpy
      Src: /src/botan/src/cli/zfec.cpp:242,1
    - Dst: auto::share_id
      Src: /src/botan/src/cli/zfec.cpp:248,1
    - Dst: auto::share_data
      Src: /src/botan/src/cli/zfec.cpp:248,1
    - Dst: Botan::ZFEC::decode_shares
      Src: /src/botan/src/cli/zfec.cpp:251,1
    - Dst: auto::process
      Src: /src/botan/src/cli/zfec.cpp:253,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/zfec.cpp:253,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/zfec.cpp:253,1
    - Dst: Botan::constant_time_compare
      Src: /src/botan/src/cli/zfec.cpp:255,1
    - Dst: auto::data
      Src: /src/botan/src/cli/zfec.cpp:256,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/zfec.cpp:256,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/zfec.cpp:257,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/zfec.cpp:261,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/zfec.cpp:262,1
    - Dst: output_binary
      Src: /src/botan/src/cli/zfec.cpp:266,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/zfec.cpp:266,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/zfec.cpp:266,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/zfec.cpp:266,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 267
    functionName: Botan_CLI::FEC_Decode::go
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached:
    - what
    - reinterpret_cast<const char*>
    - auto::size
    - slurp_file
    - auto::share_id
    - std::vector::data
    - auto::share_size
    - Botan_CLI::FEC_Share::deserialize
    - auto::data
    - std::vector::push_back
    - output_binary
    - auto::n
    - auto::share_data
    - auto::padding
    - auto::process
    - CLI_Error
    - std::vector::empty
    - Botan::HashFunction::create_or_throw
    - auto::k
    - std::vector::size
    - Botan::constant_time_compare
    - Botan_CLI::FEC_Decode::set_return_code
    - get_arg_list
    - auto::output_length
    - Botan::ZFEC::decode_shares
    - error_output
    - std::memcpy
    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: 274
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 274
    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: 276
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 276
    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: 278
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 278
    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:281,1
    - Dst: get_arg
      Src: /src/botan/src/cli/zfec.cpp:283,1
    - Dst: slurp_file
      Src: /src/botan/src/cli/zfec.cpp:284,1
    - Dst: Botan_CLI::FEC_Share::deserialize
      Src: /src/botan/src/cli/zfec.cpp:287,1
    - Dst: auto::data
      Src: /src/botan/src/cli/zfec.cpp:287,1
    - Dst: auto::size
      Src: /src/botan/src/cli/zfec.cpp:287,1
    - Dst: output
      Src: /src/botan/src/cli/zfec.cpp:288,1
    - Dst: auto::share_id
      Src: /src/botan/src/cli/zfec.cpp:288,1
    - Dst: auto::n
      Src: /src/botan/src/cli/zfec.cpp:288,1
    - Dst: auto::k
      Src: /src/botan/src/cli/zfec.cpp:288,1
    - Dst: error_output
      Src: /src/botan/src/cli/zfec.cpp:291,1
    - Dst: what
      Src: /src/botan/src/cli/zfec.cpp:291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 293
    functionName: Botan_CLI::FEC_Info::go
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - auto::data
    - slurp_file
    - auto::n
    - auto::share_id
    - error_output
    - Botan::HashFunction::create_or_throw
    - auto::k
    - what
    - output
    - auto::size
    - Botan_CLI::FEC_Share::deserialize
    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::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: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    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: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    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: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    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: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    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: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    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: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_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:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 42
    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:45,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/zfec.cpp:48,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/cli/zfec.cpp:51,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/zfec.cpp:52,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/zfec.cpp:58,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/zfec.cpp:68,1
    - Dst: update
      Src: /src/botan/src/cli/zfec.cpp:71,1
    - Dst: final
      Src: /src/botan/src/cli/zfec.cpp:72,1
    - Dst: Botan::constant_time_compare
      Src: /src/botan/src/cli/zfec.cpp:74,1
    - Dst: auto::data
      Src: /src/botan/src/cli/zfec.cpp:74,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/zfec.cpp:77,1
    - Dst: Botan_CLI::FEC_Share::FEC_Share
      Src: /src/botan/src/cli/zfec.cpp:80,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: 82
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 82
    functionName: Botan_CLI::FEC_Share::deserialize
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 2
    functionsReached:
    - Botan::constant_time_compare
    - final
    - update
    - auto::data
    - CLI_Error
    - Botan_CLI::FEC_Share::FEC_Share
    - Botan::load_be<uint32_t>
    - output_length
    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:87,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/cli/zfec.cpp:88,1
    - Dst: static_cast<uint8_t>
      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: write
      Src: /src/botan/src/cli/zfec.cpp:94,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/zfec.cpp:94,1
    - Dst: write
      Src: /src/botan/src/cli/zfec.cpp:95,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/zfec.cpp:95,1
    - Dst: data
      Src: /src/botan/src/cli/zfec.cpp:95,1
    - Dst: size
      Src: /src/botan/src/cli/zfec.cpp:95,1
    - Dst: update
      Src: /src/botan/src/cli/zfec.cpp:97,1
    - Dst: update
      Src: /src/botan/src/cli/zfec.cpp:98,1
    - Dst: final
      Src: /src/botan/src/cli/zfec.cpp:99,1
    - Dst: write
      Src: /src/botan/src/cli/zfec.cpp:101,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/zfec.cpp:101,1
    - Dst: auto::data
      Src: /src/botan/src/cli/zfec.cpp:101,1
    - Dst: auto::size
      Src: /src/botan/src/cli/zfec.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - ' hash'
    - ' out'
    argTypes:
    - Botan::HashFunction
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 102
    functionName: Botan_CLI::FEC_Share::serialize_to
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - final
    - update
    - data
    - size
    - static_cast<uint8_t>
    - Botan::store_be
    - write
    - reinterpret_cast<const char*>
    - auto::size
    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: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    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: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    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: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    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:123,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/zfec.cpp:124,1
    - Dst: get_arg
      Src: /src/botan/src/cli/zfec.cpp:126,1
    - Dst: get_arg
      Src: /src/botan/src/cli/zfec.cpp:127,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: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/cli/zfec.cpp:133,1
    - Dst: slurp_file
      Src: /src/botan/src/cli/zfec.cpp:135,1
    - Dst: get_arg
      Src: /src/botan/src/cli/zfec.cpp:135,1
    - Dst: auto::update
      Src: /src/botan/src/cli/zfec.cpp:138,1
    - Dst: auto::final
      Src: /src/botan/src/cli/zfec.cpp:139,1
    - Dst: auto::insert
      Src: /src/botan/src/cli/zfec.cpp:140,1
    - Dst: auto::end
      Src: /src/botan/src/cli/zfec.cpp:140,1
    - Dst: auto::begin
      Src: /src/botan/src/cli/zfec.cpp:140,1
    - Dst: auto::end
      Src: /src/botan/src/cli/zfec.cpp:140,1
    - Dst: auto::size
      Src: /src/botan/src/cli/zfec.cpp:144,1
    - Dst: auto::push_back
      Src: /src/botan/src/cli/zfec.cpp:146,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/zfec.cpp:152,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/zfec.cpp:156,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/zfec.cpp:164,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/zfec.cpp:168,1
    - Dst: FEC_Share::serialize_to
      Src: /src/botan/src/cli/zfec.cpp:171,1
    - Dst: Botan::ZFEC::encode
      Src: /src/botan/src/cli/zfec.cpp:174,1
    - Dst: auto::data
      Src: /src/botan/src/cli/zfec.cpp:174,1
    - Dst: auto::size
      Src: /src/botan/src/cli/zfec.cpp:174,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 175
    functionName: Botan_CLI::FEC_Encode::go
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - auto::update
    - auto::data
    - get_arg_sz
    - slurp_file
    - FEC_Share::serialize_to
    - auto::end
    - std::ostringstream::str
    - Botan::ZFEC::encode
    - Botan::HashFunction::create_or_throw
    - auto::push_back
    - std::string::empty
    - auto::insert
    - auto::size
    - auto::begin
    - auto::final
    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::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: 184
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 184
    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: 186
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 186
    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:189,1
    - Dst: auto::output_length
      Src: /src/botan/src/cli/zfec.cpp:190,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/zfec.cpp:194,1
    - Dst: slurp_file
      Src: /src/botan/src/cli/zfec.cpp:195,1
    - Dst: Botan_CLI::FEC_Share::deserialize
      Src: /src/botan/src/cli/zfec.cpp:198,1
    - Dst: auto::data
      Src: /src/botan/src/cli/zfec.cpp:198,1
    - Dst: auto::size
      Src: /src/botan/src/cli/zfec.cpp:198,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/zfec.cpp:199,1
    - Dst: error_output
      Src: /src/botan/src/cli/zfec.cpp:201,1
    - Dst: what
      Src: /src/botan/src/cli/zfec.cpp:201,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/zfec.cpp:205,1
    - Dst: error_output
      Src: /src/botan/src/cli/zfec.cpp:206,1
    - Dst: Botan_CLI::FEC_Decode::set_return_code
      Src: /src/botan/src/cli/zfec.cpp:207,1
    - Dst: auto::k
      Src: /src/botan/src/cli/zfec.cpp:218,1
    - Dst: auto::n
      Src: /src/botan/src/cli/zfec.cpp:219,1
    - Dst: auto::padding
      Src: /src/botan/src/cli/zfec.cpp:220,1
    - Dst: auto::share_size
      Src: /src/botan/src/cli/zfec.cpp:221,1
    - Dst: auto::k
      Src: /src/botan/src/cli/zfec.cpp:223,1
    - Dst: auto::n
      Src: /src/botan/src/cli/zfec.cpp:223,1
    - Dst: auto::padding
      Src: /src/botan/src/cli/zfec.cpp:223,1
    - Dst: auto::share_size
      Src: /src/botan/src/cli/zfec.cpp:223,1
    - Dst: error_output
      Src: /src/botan/src/cli/zfec.cpp:224,1
    - Dst: Botan_CLI::FEC_Decode::set_return_code
      Src: /src/botan/src/cli/zfec.cpp:225,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/zfec.cpp:231,1
    - Dst: error_output
      Src: /src/botan/src/cli/zfec.cpp:232,1
    - Dst: Botan_CLI::FEC_Decode::set_return_code
      Src: /src/botan/src/cli/zfec.cpp:233,1
    - Dst: std::memcpy
      Src: /src/botan/src/cli/zfec.cpp:242,1
    - Dst: auto::share_id
      Src: /src/botan/src/cli/zfec.cpp:248,1
    - Dst: auto::share_data
      Src: /src/botan/src/cli/zfec.cpp:248,1
    - Dst: Botan::ZFEC::decode_shares
      Src: /src/botan/src/cli/zfec.cpp:251,1
    - Dst: auto::process
      Src: /src/botan/src/cli/zfec.cpp:253,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/zfec.cpp:253,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/zfec.cpp:253,1
    - Dst: Botan::constant_time_compare
      Src: /src/botan/src/cli/zfec.cpp:255,1
    - Dst: auto::data
      Src: /src/botan/src/cli/zfec.cpp:256,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/zfec.cpp:256,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/zfec.cpp:257,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/zfec.cpp:261,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/zfec.cpp:262,1
    - Dst: output_binary
      Src: /src/botan/src/cli/zfec.cpp:266,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/zfec.cpp:266,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/zfec.cpp:266,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/zfec.cpp:266,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 267
    functionName: Botan_CLI::FEC_Decode::go
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached:
    - what
    - reinterpret_cast<const char*>
    - auto::size
    - slurp_file
    - auto::share_id
    - std::vector::data
    - auto::share_size
    - Botan_CLI::FEC_Share::deserialize
    - auto::data
    - std::vector::push_back
    - output_binary
    - auto::n
    - auto::share_data
    - auto::padding
    - auto::process
    - CLI_Error
    - std::vector::empty
    - Botan::HashFunction::create_or_throw
    - auto::k
    - std::vector::size
    - Botan::constant_time_compare
    - Botan_CLI::FEC_Decode::set_return_code
    - get_arg_list
    - auto::output_length
    - Botan::ZFEC::decode_shares
    - error_output
    - std::memcpy
    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: 274
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 274
    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: 276
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 276
    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: 278
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 278
    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:281,1
    - Dst: get_arg
      Src: /src/botan/src/cli/zfec.cpp:283,1
    - Dst: slurp_file
      Src: /src/botan/src/cli/zfec.cpp:284,1
    - Dst: Botan_CLI::FEC_Share::deserialize
      Src: /src/botan/src/cli/zfec.cpp:287,1
    - Dst: auto::data
      Src: /src/botan/src/cli/zfec.cpp:287,1
    - Dst: auto::size
      Src: /src/botan/src/cli/zfec.cpp:287,1
    - Dst: output
      Src: /src/botan/src/cli/zfec.cpp:288,1
    - Dst: auto::share_id
      Src: /src/botan/src/cli/zfec.cpp:288,1
    - Dst: auto::n
      Src: /src/botan/src/cli/zfec.cpp:288,1
    - Dst: auto::k
      Src: /src/botan/src/cli/zfec.cpp:288,1
    - Dst: error_output
      Src: /src/botan/src/cli/zfec.cpp:291,1
    - Dst: what
      Src: /src/botan/src/cli/zfec.cpp:291,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 293
    functionName: Botan_CLI::FEC_Info::go
    functionSourceFile: /src/botan/src/cli/zfec.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - auto::data
    - slurp_file
    - auto::n
    - auto::share_id
    - error_output
    - Botan::HashFunction::create_or_throw
    - auto::k
    - what
    - output
    - auto::size
    - Botan_CLI::FEC_Share::deserialize
    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: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    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:46,1
    - Dst: Botan::BlockCipher::create
      Src: /src/botan/src/cli/perf_sym.cpp:47,1
    - Dst: Botan_CLI::PerfTest_BlockCipher::bench_stream_cipher
      Src: /src/botan/src/cli/perf_sym.cpp:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 51
    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_stream_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:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 53
    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:57,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_sym.cpp:58,1
    - Dst: provider
      Src: /src/botan/src/cli/perf_sym.cpp:59,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:61,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:61,1
    - Dst: maximum_keylength
      Src: /src/botan/src/cli/perf_sym.cpp:63,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_sym.cpp:64,1
    - Dst: set_key
      Src: /src/botan/src/cli/perf_sym.cpp:64,1
    - Dst: block_size
      Src: /src/botan/src/cli/perf_sym.cpp:66,1
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_sym.cpp:68,1
    - Dst: std::set::insert
      Src: /src/botan/src/cli/perf_sym.cpp:70,1
    - Dst: std::set::insert
      Src: /src/botan/src/cli/perf_sym.cpp:72,1
    - Dst: std::max<size_t>
      Src: /src/botan/src/cli/perf_sym.cpp:78,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:81,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:81,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_sym.cpp:81,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:82,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:82,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_sym.cpp:82,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:84,1
    - Dst: encrypt_n
      Src: /src/botan/src/cli/perf_sym.cpp:86,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_sym.cpp:86,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_sym.cpp:86,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:89,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:91,1
    - Dst: decrypt_n
      Src: /src/botan/src/cli/perf_sym.cpp:93,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_sym.cpp:93,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_sym.cpp:93,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:96,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - ' config'
    - ' cipher'
    argTypes:
    - PerfConfig
    - Botan::BlockCipher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 56
    functionDepth: 3
    functionLinenumber: 56
    functionLinenumberEnd: 98
    functionName: Botan_CLI::PerfTest_BlockCipher::bench_stream_cipher
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 1
    functionsReached:
    - std::max<size_t>
    - rng
    - decrypt_n
    - buffer_sizes
    - auto::run_until_elapsed
    - auto::run
    - name
    - std::vector::data
    - set_key
    - encrypt_n
    - provider
    - block_size
    - runtime
    - std::set::insert
    - record_result
    - make_timer
    - std::vector::size
    - maximum_keylength
    linkageType: ''
    returnType: void
    signature: void bench_stream_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: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    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:110,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/cli/perf_sym.cpp:111,1
    - Dst: Botan::Cipher_Mode::create_or_throw
      Src: /src/botan/src/cli/perf_sym.cpp:112,1
    - Dst: Botan_CLI::PerfTest_CipherMode::bench_cipher_mode
      Src: /src/botan/src/cli/perf_sym.cpp:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 116
    functionName: Botan_CLI::PerfTest_CipherMode::go
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan::Cipher_Mode::create_or_throw
    - Botan::Cipher_Mode::providers
    - Botan_CLI::PerfTest_CipherMode::bench_cipher_mode
    - 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:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 118
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: rng
      Src: /src/botan/src/cli/perf_sym.cpp:122,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_sym.cpp:123,1
    - Dst: provider
      Src: /src/botan/src/cli/perf_sym.cpp:124,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:126,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:126,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_sym.cpp:128,1
    - Dst: key_spec
      Src: /src/botan/src/cli/perf_sym.cpp:128,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_sym.cpp:130,1
    - Dst: set_key
      Src: /src/botan/src/cli/perf_sym.cpp:130,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_sym.cpp:131,1
    - Dst: set_key
      Src: /src/botan/src/cli/perf_sym.cpp:131,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:133,1
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_sym.cpp:135,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_sym.cpp:136,1
    - Dst: std::max<size_t>
      Src: /src/botan/src/cli/perf_sym.cpp:137,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:139,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:139,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/perf_sym.cpp:139,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:140,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:140,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/perf_sym.cpp:140,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_sym.cpp:142,1
    - Dst: default_nonce_length
      Src: /src/botan/src/cli/perf_sym.cpp:142,1
    - Dst: minimum_final_size
      Src: /src/botan/src/cli/perf_sym.cpp:144,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:145,1
    - Dst: start
      Src: /src/botan/src/cli/perf_sym.cpp:147,1
    - Dst: finish
      Src: /src/botan/src/cli/perf_sym.cpp:148,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/cli/perf_sym.cpp:149,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_sym.cpp:153,1
    - Dst: Botan::secure_vector::empty
      Src: /src/botan/src/cli/perf_sym.cpp:154,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/perf_sym.cpp:155,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/cli/perf_sym.cpp:159,1
    - Dst: start
      Src: /src/botan/src/cli/perf_sym.cpp:160,1
    - Dst: finish
      Src: /src/botan/src/cli/perf_sym.cpp:161,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_sym.cpp:165,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: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:175,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:176,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 3
    argNames:
    - ' config'
    - ' enc'
    - ' dec'
    argTypes:
    - PerfConfig
    - Botan::Cipher_Mode
    - Botan::Cipher_Mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 178
    functionName: Botan_CLI::PerfTest_CipherMode::bench_cipher_mode
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 1
    functionsReached:
    - std::max<size_t>
    - Botan::secure_vector::empty
    - Botan::secure_vector::resize
    - set_key
    - minimum_final_size
    - Botan::secure_vector::size
    - rng
    - key_spec
    - name
    - buffer_sizes
    - finish
    - auto::run
    - provider
    - record_result
    - runtime
    - make_timer
    - start
    - auto::run_until_elapsed
    - default_nonce_length
    - auto::under
    - random_vec
    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: 187
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 187
    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:190,1
    - Dst: Botan::StreamCipher::create
      Src: /src/botan/src/cli/perf_sym.cpp:191,1
    - Dst: Botan_CLI::PerfTest_StreamCipher::bench_stream_cipher
      Src: /src/botan/src/cli/perf_sym.cpp:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 195
    functionName: Botan_CLI::PerfTest_StreamCipher::go
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::PerfTest_StreamCipher::bench_stream_cipher
    - Botan::StreamCipher::providers
    - Botan::StreamCipher::create
    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:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 197
    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:201,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_sym.cpp:202,1
    - Dst: provider
      Src: /src/botan/src/cli/perf_sym.cpp:203,1
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_sym.cpp:205,1
    - Dst: maximum_keylength
      Src: /src/botan/src/cli/perf_sym.cpp:206,1
    - Dst: set_key
      Src: /src/botan/src/cli/perf_sym.cpp:207,1
    - Dst: valid_iv_length
      Src: /src/botan/src/cli/perf_sym.cpp:209,1
    - Dst: set_iv
      Src: /src/botan/src/cli/perf_sym.cpp:211,1
    - Dst: Botan::InitializationVector::begin
      Src: /src/botan/src/cli/perf_sym.cpp:211,1
    - Dst: Botan::InitializationVector::size
      Src: /src/botan/src/cli/perf_sym.cpp:211,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_sym.cpp:214,1
    - Dst: std::max<size_t>
      Src: /src/botan/src/cli/perf_sym.cpp:216,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:218,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:218,1
    - Dst: auto::size
      Src: /src/botan/src/cli/perf_sym.cpp:218,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:220,1
    - Dst: encipher
      Src: /src/botan/src/cli/perf_sym.cpp:222,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:226,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:229,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:229,1
    - Dst: auto::size
      Src: /src/botan/src/cli/perf_sym.cpp:229,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_sym.cpp:231,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_sym.cpp:232,1
    - Dst: write_keystream
      Src: /src/botan/src/cli/perf_sym.cpp:234,1
    - Dst: auto::data
      Src: /src/botan/src/cli/perf_sym.cpp:234,1
    - Dst: auto::size
      Src: /src/botan/src/cli/perf_sym.cpp:234,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:239,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - ' config'
    - ' cipher'
    argTypes:
    - PerfConfig
    - Botan::StreamCipher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 200
    functionDepth: 3
    functionLinenumber: 200
    functionLinenumberEnd: 241
    functionName: Botan_CLI::PerfTest_StreamCipher::bench_stream_cipher
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 1
    functionsReached:
    - std::max<size_t>
    - encipher
    - Botan::InitializationVector::begin
    - set_key
    - auto::size
    - write_keystream
    - rng
    - name
    - valid_iv_length
    - auto::data
    - buffer_sizes
    - auto::run
    - provider
    - record_result
    - runtime
    - make_timer
    - auto::run_until_elapsed
    - set_iv
    - auto::under
    - random_vec
    - Botan::InitializationVector::size
    - maximum_keylength
    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: 250
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 250
    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:253,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/cli/perf_sym.cpp:254,1
    - Dst: Botan_CLI::PerfTest_HashFunction::bench_hash_fn
      Src: /src/botan/src/cli/perf_sym.cpp:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 258
    functionName: Botan_CLI::PerfTest_HashFunction::go
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create
    - Botan::HashFunction::providers
    - Botan_CLI::PerfTest_HashFunction::bench_hash_fn
    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:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 260
    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:264,1
    - Dst: provider
      Src: /src/botan/src/cli/perf_sym.cpp:265,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_sym.cpp:266,1
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_sym.cpp:268,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_sym.cpp:269,1
    - Dst: std::max<size_t>
      Src: /src/botan/src/cli/perf_sym.cpp:271,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:273,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:273,1
    - Dst: auto::size
      Src: /src/botan/src/cli/perf_sym.cpp:273,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:274,1
    - Dst: update
      Src: /src/botan/src/cli/perf_sym.cpp:276,1
    - Dst: final
      Src: /src/botan/src/cli/perf_sym.cpp:277,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_sym.cpp:277,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:280,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' config'
    - ' hash'
    argTypes:
    - PerfConfig
    - Botan::HashFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 282
    functionName: Botan_CLI::PerfTest_HashFunction::bench_hash_fn
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 1
    functionsReached:
    - std::max<size_t>
    - update
    - rng
    - final
    - buffer_sizes
    - auto::run_until_elapsed
    - name
    - std::vector::data
    - provider
    - record_result
    - runtime
    - auto::size
    - make_timer
    - output_length
    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: 291
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 291
    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:294,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/cli/perf_sym.cpp:295,1
    - Dst: Botan_CLI::PerfTest_MessageAuthenticationCode::bench_mac_fn
      Src: /src/botan/src/cli/perf_sym.cpp:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 299
    functionName: Botan_CLI::PerfTest_MessageAuthenticationCode::go
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::PerfTest_MessageAuthenticationCode::bench_mac_fn
    - Botan::MessageAuthenticationCode::providers
    - 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:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 303
    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:307,1
    - Dst: provider
      Src: /src/botan/src/cli/perf_sym.cpp:308,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_sym.cpp:309,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_sym.cpp:310,1
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_sym.cpp:312,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_sym.cpp:313,1
    - Dst: std::max<size_t>
      Src: /src/botan/src/cli/perf_sym.cpp:314,1
    - Dst: maximum_keylength
      Src: /src/botan/src/cli/perf_sym.cpp:316,1
    - Dst: set_key
      Src: /src/botan/src/cli/perf_sym.cpp:317,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:319,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:319,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/perf_sym.cpp:319,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:320,1
    - Dst: fresh_key_required_per_message
      Src: /src/botan/src/cli/perf_sym.cpp:322,1
    - Dst: set_key
      Src: /src/botan/src/cli/perf_sym.cpp:323,1
    - Dst: start
      Src: /src/botan/src/cli/perf_sym.cpp:325,1
    - Dst: update
      Src: /src/botan/src/cli/perf_sym.cpp:326,1
    - Dst: final
      Src: /src/botan/src/cli/perf_sym.cpp:327,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_sym.cpp:327,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:331,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ' config'
    - ' mac'
    argTypes:
    - PerfConfig
    - Botan::MessageAuthenticationCode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 333
    functionName: Botan_CLI::PerfTest_MessageAuthenticationCode::bench_mac_fn
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 1
    functionsReached:
    - std::max<size_t>
    - set_key
    - Botan::secure_vector::size
    - output_length
    - final
    - rng
    - name
    - std::vector::data
    - fresh_key_required_per_message
    - buffer_sizes
    - provider
    - record_result
    - runtime
    - make_timer
    - start
    - update
    - auto::run_until_elapsed
    - random_vec
    - maximum_keylength
    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: 342
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 342
    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:345,1
    - Dst: Botan::XOF::create
      Src: /src/botan/src/cli/perf_sym.cpp:346,1
    - Dst: Botan_CLI::PerfTest_XOF::bench_xof_fn
      Src: /src/botan/src/cli/perf_sym.cpp:347,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 350
    functionName: Botan_CLI::PerfTest_XOF::go
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan::XOF::providers
    - Botan::XOF::create
    - Botan_CLI::PerfTest_XOF::bench_xof_fn
    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:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 352
    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:356,1
    - Dst: provider
      Src: /src/botan/src/cli/perf_sym.cpp:357,1
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_sym.cpp:359,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_sym.cpp:360,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:363,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:363,1
    - Dst: auto::size
      Src: /src/botan/src/cli/perf_sym.cpp:363,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:364,1
    - Dst: update
      Src: /src/botan/src/cli/perf_sym.cpp:364,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:366,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:366,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/perf_sym.cpp:366,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:367,1
    - Dst: output
      Src: /src/botan/src/cli/perf_sym.cpp:367,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:369,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ' config'
    - ' xof'
    argTypes:
    - PerfConfig
    - Botan::XOF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 372
    functionName: Botan_CLI::PerfTest_XOF::bench_xof_fn
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 1
    functionsReached:
    - update
    - rng
    - buffer_sizes
    - auto::run_until_elapsed
    - name
    - Botan::secure_vector::size
    - provider
    - record_result
    - runtime
    - make_timer
    - output
    - auto::size
    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:381,1
    - Dst: std::make_unique<PerfTest_XOF>
      Src: /src/botan/src/cli/perf_sym.cpp:382,1
    - Dst: Botan_CLI::PerfTest_StreamCipher::has_impl_for
      Src: /src/botan/src/cli/perf_sym.cpp:387,1
    - Dst: std::make_unique<PerfTest_StreamCipher>
      Src: /src/botan/src/cli/perf_sym.cpp:388,1
    - Dst: Botan_CLI::PerfTest_BlockCipher::has_impl_for
      Src: /src/botan/src/cli/perf_sym.cpp:393,1
    - Dst: std::make_unique<PerfTest_BlockCipher>
      Src: /src/botan/src/cli/perf_sym.cpp:394,1
    - Dst: Botan_CLI::PerfTest_CipherMode::has_impl_for
      Src: /src/botan/src/cli/perf_sym.cpp:399,1
    - Dst: std::make_unique<PerfTest_CipherMode>
      Src: /src/botan/src/cli/perf_sym.cpp:400,1
    - Dst: Botan_CLI::PerfTest_HashFunction::has_impl_for
      Src: /src/botan/src/cli/perf_sym.cpp:405,1
    - Dst: std::make_unique<PerfTest_HashFunction>
      Src: /src/botan/src/cli/perf_sym.cpp:406,1
    - Dst: Botan_CLI::PerfTest_MessageAuthenticationCode::has_impl_for
      Src: /src/botan/src/cli/perf_sym.cpp:411,1
    - Dst: std::make_unique<PerfTest_MessageAuthenticationCode>
      Src: /src/botan/src/cli/perf_sym.cpp:412,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/cli/perf_sym.cpp:416,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - ' alg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 379
    functionDepth: 2
    functionLinenumber: 379
    functionLinenumberEnd: 418
    functionName: Botan_CLI::PerfTest::get_sym
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<PerfTest_StreamCipher>
    - std::make_unique<PerfTest_XOF>
    - Botan_CLI::PerfTest_StreamCipher::has_impl_for
    - std::make_unique<PerfTest_CipherMode>
    - Botan_CLI::PerfTest_XOF::has_impl_for
    - Botan_CLI::PerfTest_HashFunction::has_impl_for
    - Botan_CLI::PerfTest_MessageAuthenticationCode::has_impl_for
    - Botan_CLI::PerfTest_CipherMode::has_impl_for
    - Botan_CLI::PerfTest_BlockCipher::has_impl_for
    - BOTAN_UNUSED
    - std::make_unique<PerfTest_MessageAuthenticationCode>
    - std::make_unique<PerfTest_HashFunction>
    - std::make_unique<PerfTest_BlockCipher>
    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: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    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:46,1
    - Dst: Botan::BlockCipher::create
      Src: /src/botan/src/cli/perf_sym.cpp:47,1
    - Dst: Botan_CLI::PerfTest_BlockCipher::bench_stream_cipher
      Src: /src/botan/src/cli/perf_sym.cpp:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 45
    functionDepth: 4
    functionLinenumber: 45
    functionLinenumberEnd: 51
    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_stream_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:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 53
    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:57,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_sym.cpp:58,1
    - Dst: provider
      Src: /src/botan/src/cli/perf_sym.cpp:59,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:61,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:61,1
    - Dst: maximum_keylength
      Src: /src/botan/src/cli/perf_sym.cpp:63,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_sym.cpp:64,1
    - Dst: set_key
      Src: /src/botan/src/cli/perf_sym.cpp:64,1
    - Dst: block_size
      Src: /src/botan/src/cli/perf_sym.cpp:66,1
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_sym.cpp:68,1
    - Dst: std::set::insert
      Src: /src/botan/src/cli/perf_sym.cpp:70,1
    - Dst: std::set::insert
      Src: /src/botan/src/cli/perf_sym.cpp:72,1
    - Dst: std::max<size_t>
      Src: /src/botan/src/cli/perf_sym.cpp:78,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:81,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:81,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_sym.cpp:81,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:82,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:82,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_sym.cpp:82,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:84,1
    - Dst: encrypt_n
      Src: /src/botan/src/cli/perf_sym.cpp:86,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_sym.cpp:86,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_sym.cpp:86,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:89,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:91,1
    - Dst: decrypt_n
      Src: /src/botan/src/cli/perf_sym.cpp:93,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_sym.cpp:93,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_sym.cpp:93,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:96,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 2
    argNames:
    - ' config'
    - ' cipher'
    argTypes:
    - PerfConfig
    - Botan::BlockCipher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 56
    functionDepth: 3
    functionLinenumber: 56
    functionLinenumberEnd: 98
    functionName: Botan_CLI::PerfTest_BlockCipher::bench_stream_cipher
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 2
    functionsReached:
    - std::max<size_t>
    - rng
    - decrypt_n
    - buffer_sizes
    - auto::run_until_elapsed
    - auto::run
    - name
    - std::vector::data
    - set_key
    - encrypt_n
    - provider
    - block_size
    - runtime
    - std::set::insert
    - record_result
    - make_timer
    - std::vector::size
    - maximum_keylength
    linkageType: ''
    returnType: void
    signature: void bench_stream_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: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    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:110,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/cli/perf_sym.cpp:111,1
    - Dst: Botan::Cipher_Mode::create_or_throw
      Src: /src/botan/src/cli/perf_sym.cpp:112,1
    - Dst: Botan_CLI::PerfTest_CipherMode::bench_cipher_mode
      Src: /src/botan/src/cli/perf_sym.cpp:113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 109
    functionDepth: 4
    functionLinenumber: 109
    functionLinenumberEnd: 116
    functionName: Botan_CLI::PerfTest_CipherMode::go
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan::Cipher_Mode::create_or_throw
    - Botan::Cipher_Mode::providers
    - Botan_CLI::PerfTest_CipherMode::bench_cipher_mode
    - 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:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 118
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: rng
      Src: /src/botan/src/cli/perf_sym.cpp:122,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_sym.cpp:123,1
    - Dst: provider
      Src: /src/botan/src/cli/perf_sym.cpp:124,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:126,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:126,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_sym.cpp:128,1
    - Dst: key_spec
      Src: /src/botan/src/cli/perf_sym.cpp:128,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_sym.cpp:130,1
    - Dst: set_key
      Src: /src/botan/src/cli/perf_sym.cpp:130,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_sym.cpp:131,1
    - Dst: set_key
      Src: /src/botan/src/cli/perf_sym.cpp:131,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:133,1
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_sym.cpp:135,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_sym.cpp:136,1
    - Dst: std::max<size_t>
      Src: /src/botan/src/cli/perf_sym.cpp:137,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:139,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:139,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/perf_sym.cpp:139,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:140,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:140,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/perf_sym.cpp:140,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_sym.cpp:142,1
    - Dst: default_nonce_length
      Src: /src/botan/src/cli/perf_sym.cpp:142,1
    - Dst: minimum_final_size
      Src: /src/botan/src/cli/perf_sym.cpp:144,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:145,1
    - Dst: start
      Src: /src/botan/src/cli/perf_sym.cpp:147,1
    - Dst: finish
      Src: /src/botan/src/cli/perf_sym.cpp:148,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/cli/perf_sym.cpp:149,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_sym.cpp:153,1
    - Dst: Botan::secure_vector::empty
      Src: /src/botan/src/cli/perf_sym.cpp:154,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/perf_sym.cpp:155,1
    - Dst: Botan::secure_vector::resize
      Src: /src/botan/src/cli/perf_sym.cpp:159,1
    - Dst: start
      Src: /src/botan/src/cli/perf_sym.cpp:160,1
    - Dst: finish
      Src: /src/botan/src/cli/perf_sym.cpp:161,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_sym.cpp:165,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: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:175,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:176,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 35
    argCount: 3
    argNames:
    - ' config'
    - ' enc'
    - ' dec'
    argTypes:
    - PerfConfig
    - Botan::Cipher_Mode
    - Botan::Cipher_Mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 178
    functionName: Botan_CLI::PerfTest_CipherMode::bench_cipher_mode
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 2
    functionsReached:
    - std::max<size_t>
    - Botan::secure_vector::empty
    - Botan::secure_vector::resize
    - set_key
    - minimum_final_size
    - Botan::secure_vector::size
    - rng
    - key_spec
    - name
    - buffer_sizes
    - finish
    - auto::run
    - provider
    - record_result
    - runtime
    - make_timer
    - start
    - auto::run_until_elapsed
    - default_nonce_length
    - auto::under
    - random_vec
    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: 187
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 187
    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:190,1
    - Dst: Botan::StreamCipher::create
      Src: /src/botan/src/cli/perf_sym.cpp:191,1
    - Dst: Botan_CLI::PerfTest_StreamCipher::bench_stream_cipher
      Src: /src/botan/src/cli/perf_sym.cpp:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 189
    functionDepth: 4
    functionLinenumber: 189
    functionLinenumberEnd: 195
    functionName: Botan_CLI::PerfTest_StreamCipher::go
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::PerfTest_StreamCipher::bench_stream_cipher
    - Botan::StreamCipher::providers
    - Botan::StreamCipher::create
    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:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 197
    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:201,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_sym.cpp:202,1
    - Dst: provider
      Src: /src/botan/src/cli/perf_sym.cpp:203,1
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_sym.cpp:205,1
    - Dst: maximum_keylength
      Src: /src/botan/src/cli/perf_sym.cpp:206,1
    - Dst: set_key
      Src: /src/botan/src/cli/perf_sym.cpp:207,1
    - Dst: valid_iv_length
      Src: /src/botan/src/cli/perf_sym.cpp:209,1
    - Dst: set_iv
      Src: /src/botan/src/cli/perf_sym.cpp:211,1
    - Dst: Botan::InitializationVector::begin
      Src: /src/botan/src/cli/perf_sym.cpp:211,1
    - Dst: Botan::InitializationVector::size
      Src: /src/botan/src/cli/perf_sym.cpp:211,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_sym.cpp:214,1
    - Dst: std::max<size_t>
      Src: /src/botan/src/cli/perf_sym.cpp:216,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:218,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:218,1
    - Dst: auto::size
      Src: /src/botan/src/cli/perf_sym.cpp:218,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:220,1
    - Dst: encipher
      Src: /src/botan/src/cli/perf_sym.cpp:222,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:226,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:229,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:229,1
    - Dst: auto::size
      Src: /src/botan/src/cli/perf_sym.cpp:229,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_sym.cpp:231,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_sym.cpp:232,1
    - Dst: write_keystream
      Src: /src/botan/src/cli/perf_sym.cpp:234,1
    - Dst: auto::data
      Src: /src/botan/src/cli/perf_sym.cpp:234,1
    - Dst: auto::size
      Src: /src/botan/src/cli/perf_sym.cpp:234,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:239,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - ' config'
    - ' cipher'
    argTypes:
    - PerfConfig
    - Botan::StreamCipher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 200
    functionDepth: 3
    functionLinenumber: 200
    functionLinenumberEnd: 241
    functionName: Botan_CLI::PerfTest_StreamCipher::bench_stream_cipher
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 2
    functionsReached:
    - std::max<size_t>
    - encipher
    - Botan::InitializationVector::begin
    - set_key
    - auto::size
    - write_keystream
    - rng
    - name
    - valid_iv_length
    - auto::data
    - buffer_sizes
    - auto::run
    - provider
    - record_result
    - runtime
    - make_timer
    - auto::run_until_elapsed
    - set_iv
    - auto::under
    - random_vec
    - Botan::InitializationVector::size
    - maximum_keylength
    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: 250
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 250
    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:253,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/cli/perf_sym.cpp:254,1
    - Dst: Botan_CLI::PerfTest_HashFunction::bench_hash_fn
      Src: /src/botan/src/cli/perf_sym.cpp:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 258
    functionName: Botan_CLI::PerfTest_HashFunction::go
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create
    - Botan::HashFunction::providers
    - Botan_CLI::PerfTest_HashFunction::bench_hash_fn
    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:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 260
    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:264,1
    - Dst: provider
      Src: /src/botan/src/cli/perf_sym.cpp:265,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_sym.cpp:266,1
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_sym.cpp:268,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_sym.cpp:269,1
    - Dst: std::max<size_t>
      Src: /src/botan/src/cli/perf_sym.cpp:271,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:273,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:273,1
    - Dst: auto::size
      Src: /src/botan/src/cli/perf_sym.cpp:273,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:274,1
    - Dst: update
      Src: /src/botan/src/cli/perf_sym.cpp:276,1
    - Dst: final
      Src: /src/botan/src/cli/perf_sym.cpp:277,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_sym.cpp:277,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:280,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' config'
    - ' hash'
    argTypes:
    - PerfConfig
    - Botan::HashFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 282
    functionName: Botan_CLI::PerfTest_HashFunction::bench_hash_fn
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 2
    functionsReached:
    - std::max<size_t>
    - update
    - rng
    - final
    - buffer_sizes
    - auto::run_until_elapsed
    - name
    - std::vector::data
    - provider
    - record_result
    - runtime
    - auto::size
    - make_timer
    - output_length
    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: 291
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 291
    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:294,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/cli/perf_sym.cpp:295,1
    - Dst: Botan_CLI::PerfTest_MessageAuthenticationCode::bench_mac_fn
      Src: /src/botan/src/cli/perf_sym.cpp:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 293
    functionDepth: 2
    functionLinenumber: 293
    functionLinenumberEnd: 299
    functionName: Botan_CLI::PerfTest_MessageAuthenticationCode::go
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::PerfTest_MessageAuthenticationCode::bench_mac_fn
    - Botan::MessageAuthenticationCode::providers
    - 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:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 303
    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:307,1
    - Dst: provider
      Src: /src/botan/src/cli/perf_sym.cpp:308,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_sym.cpp:309,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_sym.cpp:310,1
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_sym.cpp:312,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_sym.cpp:313,1
    - Dst: std::max<size_t>
      Src: /src/botan/src/cli/perf_sym.cpp:314,1
    - Dst: maximum_keylength
      Src: /src/botan/src/cli/perf_sym.cpp:316,1
    - Dst: set_key
      Src: /src/botan/src/cli/perf_sym.cpp:317,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:319,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:319,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/perf_sym.cpp:319,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:320,1
    - Dst: fresh_key_required_per_message
      Src: /src/botan/src/cli/perf_sym.cpp:322,1
    - Dst: set_key
      Src: /src/botan/src/cli/perf_sym.cpp:323,1
    - Dst: start
      Src: /src/botan/src/cli/perf_sym.cpp:325,1
    - Dst: update
      Src: /src/botan/src/cli/perf_sym.cpp:326,1
    - Dst: final
      Src: /src/botan/src/cli/perf_sym.cpp:327,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_sym.cpp:327,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:331,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ' config'
    - ' mac'
    argTypes:
    - PerfConfig
    - Botan::MessageAuthenticationCode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 306
    functionDepth: 1
    functionLinenumber: 306
    functionLinenumberEnd: 333
    functionName: Botan_CLI::PerfTest_MessageAuthenticationCode::bench_mac_fn
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 2
    functionsReached:
    - std::max<size_t>
    - set_key
    - Botan::secure_vector::size
    - output_length
    - final
    - rng
    - name
    - std::vector::data
    - fresh_key_required_per_message
    - buffer_sizes
    - provider
    - record_result
    - runtime
    - make_timer
    - start
    - update
    - auto::run_until_elapsed
    - random_vec
    - maximum_keylength
    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: 342
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 342
    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:345,1
    - Dst: Botan::XOF::create
      Src: /src/botan/src/cli/perf_sym.cpp:346,1
    - Dst: Botan_CLI::PerfTest_XOF::bench_xof_fn
      Src: /src/botan/src/cli/perf_sym.cpp:347,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 344
    functionDepth: 2
    functionLinenumber: 344
    functionLinenumberEnd: 350
    functionName: Botan_CLI::PerfTest_XOF::go
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - Botan::XOF::providers
    - Botan::XOF::create
    - Botan_CLI::PerfTest_XOF::bench_xof_fn
    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:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 352
    functionDepth: 1
    functionLinenumber: 352
    functionLinenumberEnd: 352
    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:356,1
    - Dst: provider
      Src: /src/botan/src/cli/perf_sym.cpp:357,1
    - Dst: buffer_sizes
      Src: /src/botan/src/cli/perf_sym.cpp:359,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_sym.cpp:360,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:363,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:363,1
    - Dst: auto::size
      Src: /src/botan/src/cli/perf_sym.cpp:363,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:364,1
    - Dst: update
      Src: /src/botan/src/cli/perf_sym.cpp:364,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_sym.cpp:366,1
    - Dst: name
      Src: /src/botan/src/cli/perf_sym.cpp:366,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/perf_sym.cpp:366,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_sym.cpp:367,1
    - Dst: output
      Src: /src/botan/src/cli/perf_sym.cpp:367,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:369,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_sym.cpp:370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ' config'
    - ' xof'
    argTypes:
    - PerfConfig
    - Botan::XOF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 372
    functionName: Botan_CLI::PerfTest_XOF::bench_xof_fn
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 2
    functionsReached:
    - update
    - rng
    - buffer_sizes
    - auto::run_until_elapsed
    - name
    - Botan::secure_vector::size
    - provider
    - record_result
    - runtime
    - make_timer
    - output
    - auto::size
    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:381,1
    - Dst: std::make_unique<PerfTest_XOF>
      Src: /src/botan/src/cli/perf_sym.cpp:382,1
    - Dst: Botan_CLI::PerfTest_StreamCipher::has_impl_for
      Src: /src/botan/src/cli/perf_sym.cpp:387,1
    - Dst: std::make_unique<PerfTest_StreamCipher>
      Src: /src/botan/src/cli/perf_sym.cpp:388,1
    - Dst: Botan_CLI::PerfTest_BlockCipher::has_impl_for
      Src: /src/botan/src/cli/perf_sym.cpp:393,1
    - Dst: std::make_unique<PerfTest_BlockCipher>
      Src: /src/botan/src/cli/perf_sym.cpp:394,1
    - Dst: Botan_CLI::PerfTest_CipherMode::has_impl_for
      Src: /src/botan/src/cli/perf_sym.cpp:399,1
    - Dst: std::make_unique<PerfTest_CipherMode>
      Src: /src/botan/src/cli/perf_sym.cpp:400,1
    - Dst: Botan_CLI::PerfTest_HashFunction::has_impl_for
      Src: /src/botan/src/cli/perf_sym.cpp:405,1
    - Dst: std::make_unique<PerfTest_HashFunction>
      Src: /src/botan/src/cli/perf_sym.cpp:406,1
    - Dst: Botan_CLI::PerfTest_MessageAuthenticationCode::has_impl_for
      Src: /src/botan/src/cli/perf_sym.cpp:411,1
    - Dst: std::make_unique<PerfTest_MessageAuthenticationCode>
      Src: /src/botan/src/cli/perf_sym.cpp:412,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/cli/perf_sym.cpp:416,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - ' alg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 379
    functionDepth: 2
    functionLinenumber: 379
    functionLinenumberEnd: 418
    functionName: Botan_CLI::PerfTest::get_sym
    functionSourceFile: /src/botan/src/cli/perf_sym.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<PerfTest_StreamCipher>
    - std::make_unique<PerfTest_XOF>
    - Botan_CLI::PerfTest_StreamCipher::has_impl_for
    - std::make_unique<PerfTest_CipherMode>
    - Botan_CLI::PerfTest_XOF::has_impl_for
    - Botan_CLI::PerfTest_HashFunction::has_impl_for
    - Botan_CLI::PerfTest_MessageAuthenticationCode::has_impl_for
    - Botan_CLI::PerfTest_CipherMode::has_impl_for
    - Botan_CLI::PerfTest_BlockCipher::has_impl_for
    - BOTAN_UNUSED
    - std::make_unique<PerfTest_MessageAuthenticationCode>
    - std::make_unique<PerfTest_HashFunction>
    - std::make_unique<PerfTest_BlockCipher>
    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: 40
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 40
    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:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cc_number
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 44
    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: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    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:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - cc_number
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 59
    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:64,1
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/cli/cc_enc.cpp:64,1
    - Dst: Botan_CLI::cc_rank
      Src: /src/botan/src/cli/cc_enc.cpp:64,1
    - Dst: Botan::BigInt::bits
      Src: /src/botan/src/cli/cc_enc.cpp:66,1
    - Dst: Botan::Internal_Error::Internal_Error
      Src: /src/botan/src/cli/cc_enc.cpp:67,1
    - Dst: Botan::BigInt::byte_at
      Src: /src/botan/src/cli/cc_enc.cpp:72,1
    - Dst: Botan_CLI::cc_derank
      Src: /src/botan/src/cli/cc_enc.cpp:74,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: 75
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 75
    functionName: Botan_CLI::encrypt_cc_number
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::bits
    - Botan_CLI::cc_derank
    - Botan::FPE::fe1_encrypt
    - Botan::BigInt::from_u64
    - Botan::BigInt::byte_at
    - Botan::Internal_Error::Internal_Error
    - Botan_CLI::cc_rank
    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:80,1
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/cli/cc_enc.cpp:80,1
    - Dst: Botan_CLI::cc_rank
      Src: /src/botan/src/cli/cc_enc.cpp:80,1
    - Dst: Botan::BigInt::bits
      Src: /src/botan/src/cli/cc_enc.cpp:82,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/cc_enc.cpp:83,1
    - Dst: Botan::BigInt::byte_at
      Src: /src/botan/src/cli/cc_enc.cpp:88,1
    - Dst: Botan_CLI::cc_derank
      Src: /src/botan/src/cli/cc_enc.cpp:90,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: 91
      start: 77
    functionDepth: 3
    functionLinenumber: 77
    functionLinenumberEnd: 91
    functionName: Botan_CLI::decrypt_cc_number
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::bits
    - CLI_Error
    - Botan_CLI::cc_derank
    - Botan::BigInt::from_u64
    - Botan::BigInt::byte_at
    - Botan::FPE::fe1_decrypt
    - Botan_CLI::cc_rank
    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: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - cc_number
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 40
    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:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cc_number
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 44
    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: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    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:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - cc_number
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 59
    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:64,1
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/cli/cc_enc.cpp:64,1
    - Dst: Botan_CLI::cc_rank
      Src: /src/botan/src/cli/cc_enc.cpp:64,1
    - Dst: Botan::BigInt::bits
      Src: /src/botan/src/cli/cc_enc.cpp:66,1
    - Dst: Botan::Internal_Error::Internal_Error
      Src: /src/botan/src/cli/cc_enc.cpp:67,1
    - Dst: Botan::BigInt::byte_at
      Src: /src/botan/src/cli/cc_enc.cpp:72,1
    - Dst: Botan_CLI::cc_derank
      Src: /src/botan/src/cli/cc_enc.cpp:74,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: 75
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 75
    functionName: Botan_CLI::encrypt_cc_number
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::bits
    - Botan_CLI::cc_derank
    - Botan::FPE::fe1_encrypt
    - Botan::BigInt::from_u64
    - Botan::BigInt::byte_at
    - Botan::Internal_Error::Internal_Error
    - Botan_CLI::cc_rank
    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:80,1
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/cli/cc_enc.cpp:80,1
    - Dst: Botan_CLI::cc_rank
      Src: /src/botan/src/cli/cc_enc.cpp:80,1
    - Dst: Botan::BigInt::bits
      Src: /src/botan/src/cli/cc_enc.cpp:82,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/cc_enc.cpp:83,1
    - Dst: Botan::BigInt::byte_at
      Src: /src/botan/src/cli/cc_enc.cpp:88,1
    - Dst: Botan_CLI::cc_derank
      Src: /src/botan/src/cli/cc_enc.cpp:90,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: 91
      start: 77
    functionDepth: 3
    functionLinenumber: 77
    functionLinenumberEnd: 91
    functionName: Botan_CLI::decrypt_cc_number
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::bits
    - CLI_Error
    - Botan_CLI::cc_derank
    - Botan::BigInt::from_u64
    - Botan::BigInt::byte_at
    - Botan::FPE::fe1_decrypt
    - Botan_CLI::cc_rank
    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: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    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: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    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: 103
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 103
    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:106,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cc_enc.cpp:106,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/cc_enc.cpp:107,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cc_enc.cpp:107,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cc_enc.cpp:108,1
    - Dst: Botan::PBKDF::create
      Src: /src/botan/src/cli/cc_enc.cpp:110,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/cc_enc.cpp:112,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/cli/cc_enc.cpp:115,1
    - Dst: auto::pbkdf_iterations
      Src: /src/botan/src/cli/cc_enc.cpp:115,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/cc_enc.cpp:115,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/cc_enc.cpp:115,1
    - Dst: output
      Src: /src/botan/src/cli/cc_enc.cpp:117,1
    - Dst: encrypt_cc_number
      Src: /src/botan/src/cli/cc_enc.cpp:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 118
    functionName: Botan_CLI::CC_Encrypt::go
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - Botan::hex_decode
    - CLI_Error_Unsupported
    - auto::pbkdf_iterations
    - output
    - Botan::SymmetricKey
    - std::stoull
    - Botan::PBKDF::create
    - std::vector::data
    - std::vector::size
    - encrypt_cc_number
    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: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    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: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    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: 131
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 131
    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:134,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cc_enc.cpp:134,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/cc_enc.cpp:135,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cc_enc.cpp:135,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cc_enc.cpp:136,1
    - Dst: Botan::PBKDF::create
      Src: /src/botan/src/cli/cc_enc.cpp:138,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/cc_enc.cpp:140,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/cli/cc_enc.cpp:143,1
    - Dst: auto::pbkdf_iterations
      Src: /src/botan/src/cli/cc_enc.cpp:143,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/cc_enc.cpp:143,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/cc_enc.cpp:143,1
    - Dst: output
      Src: /src/botan/src/cli/cc_enc.cpp:145,1
    - Dst: decrypt_cc_number
      Src: /src/botan/src/cli/cc_enc.cpp:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 146
    functionName: Botan_CLI::CC_Decrypt::go
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - Botan::hex_decode
    - CLI_Error_Unsupported
    - auto::pbkdf_iterations
    - output
    - Botan::SymmetricKey
    - std::stoull
    - Botan::PBKDF::create
    - std::vector::data
    - std::vector::size
    - decrypt_cc_number
    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: 40
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 40
    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:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cc_number
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 44
    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: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    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:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - cc_number
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 59
    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:64,1
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/cli/cc_enc.cpp:64,1
    - Dst: Botan_CLI::cc_rank
      Src: /src/botan/src/cli/cc_enc.cpp:64,1
    - Dst: Botan::BigInt::bits
      Src: /src/botan/src/cli/cc_enc.cpp:66,1
    - Dst: Botan::Internal_Error::Internal_Error
      Src: /src/botan/src/cli/cc_enc.cpp:67,1
    - Dst: Botan::BigInt::byte_at
      Src: /src/botan/src/cli/cc_enc.cpp:72,1
    - Dst: Botan_CLI::cc_derank
      Src: /src/botan/src/cli/cc_enc.cpp:74,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: 75
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 75
    functionName: Botan_CLI::encrypt_cc_number
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::bits
    - Botan_CLI::cc_derank
    - Botan::FPE::fe1_encrypt
    - Botan::BigInt::from_u64
    - Botan::BigInt::byte_at
    - Botan::Internal_Error::Internal_Error
    - Botan_CLI::cc_rank
    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:80,1
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/cli/cc_enc.cpp:80,1
    - Dst: Botan_CLI::cc_rank
      Src: /src/botan/src/cli/cc_enc.cpp:80,1
    - Dst: Botan::BigInt::bits
      Src: /src/botan/src/cli/cc_enc.cpp:82,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/cc_enc.cpp:83,1
    - Dst: Botan::BigInt::byte_at
      Src: /src/botan/src/cli/cc_enc.cpp:88,1
    - Dst: Botan_CLI::cc_derank
      Src: /src/botan/src/cli/cc_enc.cpp:90,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: 91
      start: 77
    functionDepth: 3
    functionLinenumber: 77
    functionLinenumberEnd: 91
    functionName: Botan_CLI::decrypt_cc_number
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::bits
    - CLI_Error
    - Botan_CLI::cc_derank
    - Botan::BigInt::from_u64
    - Botan::BigInt::byte_at
    - Botan::FPE::fe1_decrypt
    - Botan_CLI::cc_rank
    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: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - cc_number
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 40
    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:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cc_number
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 44
    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: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    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:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - cc_number
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 59
    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:64,1
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/cli/cc_enc.cpp:64,1
    - Dst: Botan_CLI::cc_rank
      Src: /src/botan/src/cli/cc_enc.cpp:64,1
    - Dst: Botan::BigInt::bits
      Src: /src/botan/src/cli/cc_enc.cpp:66,1
    - Dst: Botan::Internal_Error::Internal_Error
      Src: /src/botan/src/cli/cc_enc.cpp:67,1
    - Dst: Botan::BigInt::byte_at
      Src: /src/botan/src/cli/cc_enc.cpp:72,1
    - Dst: Botan_CLI::cc_derank
      Src: /src/botan/src/cli/cc_enc.cpp:74,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: 75
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 75
    functionName: Botan_CLI::encrypt_cc_number
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::bits
    - Botan_CLI::cc_derank
    - Botan::FPE::fe1_encrypt
    - Botan::BigInt::from_u64
    - Botan::BigInt::byte_at
    - Botan::Internal_Error::Internal_Error
    - Botan_CLI::cc_rank
    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:80,1
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/cli/cc_enc.cpp:80,1
    - Dst: Botan_CLI::cc_rank
      Src: /src/botan/src/cli/cc_enc.cpp:80,1
    - Dst: Botan::BigInt::bits
      Src: /src/botan/src/cli/cc_enc.cpp:82,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/cc_enc.cpp:83,1
    - Dst: Botan::BigInt::byte_at
      Src: /src/botan/src/cli/cc_enc.cpp:88,1
    - Dst: Botan_CLI::cc_derank
      Src: /src/botan/src/cli/cc_enc.cpp:90,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: 91
      start: 77
    functionDepth: 3
    functionLinenumber: 77
    functionLinenumberEnd: 91
    functionName: Botan_CLI::decrypt_cc_number
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::bits
    - CLI_Error
    - Botan_CLI::cc_derank
    - Botan::BigInt::from_u64
    - Botan::BigInt::byte_at
    - Botan::FPE::fe1_decrypt
    - Botan_CLI::cc_rank
    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: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    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: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    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: 103
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 103
    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:106,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cc_enc.cpp:106,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/cc_enc.cpp:107,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cc_enc.cpp:107,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cc_enc.cpp:108,1
    - Dst: Botan::PBKDF::create
      Src: /src/botan/src/cli/cc_enc.cpp:110,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/cc_enc.cpp:112,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/cli/cc_enc.cpp:115,1
    - Dst: auto::pbkdf_iterations
      Src: /src/botan/src/cli/cc_enc.cpp:115,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/cc_enc.cpp:115,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/cc_enc.cpp:115,1
    - Dst: output
      Src: /src/botan/src/cli/cc_enc.cpp:117,1
    - Dst: encrypt_cc_number
      Src: /src/botan/src/cli/cc_enc.cpp:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 118
    functionName: Botan_CLI::CC_Encrypt::go
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - Botan::hex_decode
    - CLI_Error_Unsupported
    - auto::pbkdf_iterations
    - output
    - Botan::SymmetricKey
    - std::stoull
    - Botan::PBKDF::create
    - std::vector::data
    - std::vector::size
    - encrypt_cc_number
    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: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    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: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    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: 131
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 131
    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:134,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cc_enc.cpp:134,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/cc_enc.cpp:135,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cc_enc.cpp:135,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cc_enc.cpp:136,1
    - Dst: Botan::PBKDF::create
      Src: /src/botan/src/cli/cc_enc.cpp:138,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/cc_enc.cpp:140,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/cli/cc_enc.cpp:143,1
    - Dst: auto::pbkdf_iterations
      Src: /src/botan/src/cli/cc_enc.cpp:143,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/cc_enc.cpp:143,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/cc_enc.cpp:143,1
    - Dst: output
      Src: /src/botan/src/cli/cc_enc.cpp:145,1
    - Dst: decrypt_cc_number
      Src: /src/botan/src/cli/cc_enc.cpp:145,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 146
    functionName: Botan_CLI::CC_Decrypt::go
    functionSourceFile: /src/botan/src/cli/cc_enc.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - Botan::hex_decode
    - CLI_Error_Unsupported
    - auto::pbkdf_iterations
    - output
    - Botan::SymmetricKey
    - std::stoull
    - Botan::PBKDF::create
    - std::vector::data
    - std::vector::size
    - decrypt_cc_number
    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: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    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:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 40
    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:43,1
    - Dst: Botan_CLI::PerfTest_ASN1_Parsing::create_private_key
      Src: /src/botan/src/cli/perf_x509.cpp:48,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/cli/perf_x509.cpp:49,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/cli/perf_x509.cpp:50,1
    - Dst: Botan_CLI::PerfTest_ASN1_Parsing::get_hash_function
      Src: /src/botan/src/cli/perf_x509.cpp:50,1
    - Dst: Botan::X509_CA
      Src: /src/botan/src/cli/perf_x509.cpp:51,1
    - Dst: Botan_CLI::PerfTest_ASN1_Parsing::get_hash_function
      Src: /src/botan/src/cli/perf_x509.cpp:51,1
    - Dst: std::move
      Src: /src/botan/src/cli/perf_x509.cpp:54,1
    - Dst: std::move
      Src: /src/botan/src/cli/perf_x509.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 57
    functionName: Botan_CLI::PerfTest_ASN1_Parsing::create_ca
    functionSourceFile: /src/botan/src/cli/perf_x509.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    - Botan::X509_Cert_Options::X509_Cert_Options
    - Botan_CLI::PerfTest_ASN1_Parsing::create_private_key
    - Botan_CLI::PerfTest_ASN1_Parsing::get_hash_function
    - Botan::X509_CA
    - Botan::X509::create_self_signed_cert
    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:63,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/cli/perf_x509.cpp:64,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/cli/perf_x509.cpp:65,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/cli/perf_x509.cpp:66,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/cli/perf_x509.cpp:67,1
    - Dst: Botan::AlternativeName::AlternativeName
      Src: /src/botan/src/cli/perf_x509.cpp:69,1
    - Dst: Botan::AlternativeName::add_dns
      Src: /src/botan/src/cli/perf_x509.cpp:70,1
    - Dst: Botan::AlternativeName::add_email
      Src: /src/botan/src/cli/perf_x509.cpp:71,1
    - Dst: Botan::Extensions::add
      Src: /src/botan/src/cli/perf_x509.cpp:74,1
    - Dst: std::make_unique<Botan::Cert_Extension::Subject_Alternative_Name>
      Src: /src/botan/src/cli/perf_x509.cpp:74,1
    - Dst: Botan_CLI::PerfTest_ASN1_Parsing::create_private_key
      Src: /src/botan/src/cli/perf_x509.cpp:76,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/cli/perf_x509.cpp:77,1
    - Dst: Botan::PKCS10_Request::create
      Src: /src/botan/src/cli/perf_x509.cpp:78,1
    - Dst: Botan_CLI::PerfTest_ASN1_Parsing::get_hash_function
      Src: /src/botan/src/cli/perf_x509.cpp:78,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/cli/perf_x509.cpp:80,1
    - Dst: ca::sign_request
      Src: /src/botan/src/cli/perf_x509.cpp:82,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/cli/perf_x509.cpp:82,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/cli/perf_x509.cpp:82,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: 83
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 83
    functionName: Botan_CLI::PerfTest_ASN1_Parsing::make_certificate
    functionSourceFile: /src/botan/src/cli/perf_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::AlternativeName::add_dns
    - Botan::PKCS10_Request::create
    - Botan::AlternativeName::AlternativeName
    - std::make_unique<Botan::Cert_Extension::Subject_Alternative_Name>
    - BOTAN_ASSERT_NONNULL
    - ca::sign_request
    - Botan::X509_DN::add_attribute
    - Botan::TLS::detail::AsyncBase::complete_now
    - Botan::X509_Time
    - Botan_CLI::PerfTest_ASN1_Parsing::get_hash_function
    - Botan::Extensions::add
    - Botan::AlternativeName::add_email
    - Botan_CLI::PerfTest_ASN1_Parsing::create_private_key
    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:86,1
    - Dst: std::generate
      Src: /src/botan/src/cli/perf_x509.cpp:89,1
    - Dst: std::vector::begin
      Src: /src/botan/src/cli/perf_x509.cpp:89,1
    - Dst: std::vector::end
      Src: /src/botan/src/cli/perf_x509.cpp:89,1
    - Dst: Botan::Extensions::add
      Src: /src/botan/src/cli/perf_x509.cpp:96,1
    - Dst: std::make_unique<Botan::Cert_Extension::CRL_ReasonCode>
      Src: /src/botan/src/cli/perf_x509.cpp:96,1
    - Dst: Botan::DER_Encoder
      Src: /src/botan/src/cli/perf_x509.cpp:97,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/cli/perf_x509.cpp:99,1
    - Dst: random_array
      Src: /src/botan/src/cli/perf_x509.cpp:99,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/cli/perf_x509.cpp:100,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/cli/perf_x509.cpp:100,1
    - Dst: Botan::CRL_Entry::CRL_Entry
      Src: /src/botan/src/cli/perf_x509.cpp:108,1
    - Dst: Botan::CRL_Entry::decode_from
      Src: /src/botan/src/cli/perf_x509.cpp:109,1
    - Dst: ca::update_crl
      Src: /src/botan/src/cli/perf_x509.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - entries
    - ' ca'
    - ' rng'
    argTypes:
    - size_t
    - CA
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 114
    functionName: Botan_CLI::PerfTest_ASN1_Parsing::make_revocation_list
    functionSourceFile: /src/botan/src/cli/perf_x509.cpp
    functionUses: 0
    functionsReached:
    - Botan::CRL_Entry::CRL_Entry
    - std::vector::begin
    - Botan::DER_Encoder
    - std::generate
    - ca::new_crl
    - Botan::CRL_Entry::decode_from
    - Botan::BigInt::from_bytes
    - std::vector::end
    - Botan::X509_Time
    - Botan::TLS::detail::AsyncBase::complete_now
    - random_array
    - Botan::Extensions::add
    - std::make_unique<Botan::Cert_Extension::CRL_ReasonCode>
    - 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:118,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_x509.cpp:118,1
    - Dst: Botan_CLI::PerfTest_ASN1_Parsing::make_certificate
      Src: /src/botan/src/cli/perf_x509.cpp:119,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_x509.cpp:119,1
    - Dst: Botan_CLI::PerfTest_ASN1_Parsing::make_revocation_list
      Src: /src/botan/src/cli/perf_x509.cpp:120,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_x509.cpp:120,1
    - Dst: auto::BER_encode
      Src: /src/botan/src/cli/perf_x509.cpp:122,1
    - Dst: auto::BER_encode
      Src: /src/botan/src/cli/perf_x509.cpp:123,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_x509.cpp:125,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_x509.cpp:126,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_x509.cpp:128,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_x509.cpp:130,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_x509.cpp:131,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/cli/perf_x509.cpp:132,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_x509.cpp:133,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_x509.cpp:136,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_x509.cpp:137,1
    - Dst: Botan::X509_CRL
      Src: /src/botan/src/cli/perf_x509.cpp:138,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_x509.cpp:139,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_x509.cpp:142,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_x509.cpp:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 117
    functionDepth: 3
    functionLinenumber: 117
    functionLinenumberEnd: 144
    functionName: Botan_CLI::PerfTest_ASN1_Parsing::go
    functionSourceFile: /src/botan/src/cli/perf_x509.cpp
    functionUses: 0
    functionsReached:
    - rng
    - auto::under
    - Botan_CLI::PerfTest_ASN1_Parsing::make_revocation_list
    - auto::BER_encode
    - auto::stop
    - Botan::X509_CRL
    - auto::start
    - Botan_CLI::PerfTest_ASN1_Parsing::make_certificate
    - Botan_CLI::PerfTest_ASN1_Parsing::create_ca
    - runtime
    - record_result
    - make_timer
    - Botan::X509_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: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    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:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 40
    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:43,1
    - Dst: Botan_CLI::PerfTest_ASN1_Parsing::create_private_key
      Src: /src/botan/src/cli/perf_x509.cpp:48,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/cli/perf_x509.cpp:49,1
    - Dst: Botan::X509::create_self_signed_cert
      Src: /src/botan/src/cli/perf_x509.cpp:50,1
    - Dst: Botan_CLI::PerfTest_ASN1_Parsing::get_hash_function
      Src: /src/botan/src/cli/perf_x509.cpp:50,1
    - Dst: Botan::X509_CA
      Src: /src/botan/src/cli/perf_x509.cpp:51,1
    - Dst: Botan_CLI::PerfTest_ASN1_Parsing::get_hash_function
      Src: /src/botan/src/cli/perf_x509.cpp:51,1
    - Dst: std::move
      Src: /src/botan/src/cli/perf_x509.cpp:54,1
    - Dst: std::move
      Src: /src/botan/src/cli/perf_x509.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 57
    functionName: Botan_CLI::PerfTest_ASN1_Parsing::create_ca
    functionSourceFile: /src/botan/src/cli/perf_x509.cpp
    functionUses: 1
    functionsReached:
    - std::move
    - BOTAN_ASSERT_NONNULL
    - Botan::X509_Cert_Options::X509_Cert_Options
    - Botan_CLI::PerfTest_ASN1_Parsing::create_private_key
    - Botan_CLI::PerfTest_ASN1_Parsing::get_hash_function
    - Botan::X509_CA
    - Botan::X509::create_self_signed_cert
    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:63,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/cli/perf_x509.cpp:64,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/cli/perf_x509.cpp:65,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/cli/perf_x509.cpp:66,1
    - Dst: Botan::X509_DN::add_attribute
      Src: /src/botan/src/cli/perf_x509.cpp:67,1
    - Dst: Botan::AlternativeName::AlternativeName
      Src: /src/botan/src/cli/perf_x509.cpp:69,1
    - Dst: Botan::AlternativeName::add_dns
      Src: /src/botan/src/cli/perf_x509.cpp:70,1
    - Dst: Botan::AlternativeName::add_email
      Src: /src/botan/src/cli/perf_x509.cpp:71,1
    - Dst: Botan::Extensions::add
      Src: /src/botan/src/cli/perf_x509.cpp:74,1
    - Dst: std::make_unique<Botan::Cert_Extension::Subject_Alternative_Name>
      Src: /src/botan/src/cli/perf_x509.cpp:74,1
    - Dst: Botan_CLI::PerfTest_ASN1_Parsing::create_private_key
      Src: /src/botan/src/cli/perf_x509.cpp:76,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/cli/perf_x509.cpp:77,1
    - Dst: Botan::PKCS10_Request::create
      Src: /src/botan/src/cli/perf_x509.cpp:78,1
    - Dst: Botan_CLI::PerfTest_ASN1_Parsing::get_hash_function
      Src: /src/botan/src/cli/perf_x509.cpp:78,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/cli/perf_x509.cpp:80,1
    - Dst: ca::sign_request
      Src: /src/botan/src/cli/perf_x509.cpp:82,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/cli/perf_x509.cpp:82,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/cli/perf_x509.cpp:82,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: 83
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 83
    functionName: Botan_CLI::PerfTest_ASN1_Parsing::make_certificate
    functionSourceFile: /src/botan/src/cli/perf_x509.cpp
    functionUses: 1
    functionsReached:
    - Botan::AlternativeName::add_dns
    - Botan::PKCS10_Request::create
    - Botan::AlternativeName::AlternativeName
    - std::make_unique<Botan::Cert_Extension::Subject_Alternative_Name>
    - BOTAN_ASSERT_NONNULL
    - ca::sign_request
    - Botan::X509_DN::add_attribute
    - Botan::TLS::detail::AsyncBase::complete_now
    - Botan::X509_Time
    - Botan_CLI::PerfTest_ASN1_Parsing::get_hash_function
    - Botan::Extensions::add
    - Botan::AlternativeName::add_email
    - Botan_CLI::PerfTest_ASN1_Parsing::create_private_key
    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:86,1
    - Dst: std::generate
      Src: /src/botan/src/cli/perf_x509.cpp:89,1
    - Dst: std::vector::begin
      Src: /src/botan/src/cli/perf_x509.cpp:89,1
    - Dst: std::vector::end
      Src: /src/botan/src/cli/perf_x509.cpp:89,1
    - Dst: Botan::Extensions::add
      Src: /src/botan/src/cli/perf_x509.cpp:96,1
    - Dst: std::make_unique<Botan::Cert_Extension::CRL_ReasonCode>
      Src: /src/botan/src/cli/perf_x509.cpp:96,1
    - Dst: Botan::DER_Encoder
      Src: /src/botan/src/cli/perf_x509.cpp:97,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/cli/perf_x509.cpp:99,1
    - Dst: random_array
      Src: /src/botan/src/cli/perf_x509.cpp:99,1
    - Dst: Botan::X509_Time
      Src: /src/botan/src/cli/perf_x509.cpp:100,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/cli/perf_x509.cpp:100,1
    - Dst: Botan::CRL_Entry::CRL_Entry
      Src: /src/botan/src/cli/perf_x509.cpp:108,1
    - Dst: Botan::CRL_Entry::decode_from
      Src: /src/botan/src/cli/perf_x509.cpp:109,1
    - Dst: ca::update_crl
      Src: /src/botan/src/cli/perf_x509.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - entries
    - ' ca'
    - ' rng'
    argTypes:
    - size_t
    - CA
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 114
    functionName: Botan_CLI::PerfTest_ASN1_Parsing::make_revocation_list
    functionSourceFile: /src/botan/src/cli/perf_x509.cpp
    functionUses: 1
    functionsReached:
    - Botan::CRL_Entry::CRL_Entry
    - std::vector::begin
    - Botan::DER_Encoder
    - std::generate
    - ca::new_crl
    - Botan::CRL_Entry::decode_from
    - Botan::BigInt::from_bytes
    - std::vector::end
    - Botan::X509_Time
    - Botan::TLS::detail::AsyncBase::complete_now
    - random_array
    - Botan::Extensions::add
    - std::make_unique<Botan::Cert_Extension::CRL_ReasonCode>
    - 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:118,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_x509.cpp:118,1
    - Dst: Botan_CLI::PerfTest_ASN1_Parsing::make_certificate
      Src: /src/botan/src/cli/perf_x509.cpp:119,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_x509.cpp:119,1
    - Dst: Botan_CLI::PerfTest_ASN1_Parsing::make_revocation_list
      Src: /src/botan/src/cli/perf_x509.cpp:120,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_x509.cpp:120,1
    - Dst: auto::BER_encode
      Src: /src/botan/src/cli/perf_x509.cpp:122,1
    - Dst: auto::BER_encode
      Src: /src/botan/src/cli/perf_x509.cpp:123,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_x509.cpp:125,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_x509.cpp:126,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_x509.cpp:128,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_x509.cpp:130,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_x509.cpp:131,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/cli/perf_x509.cpp:132,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_x509.cpp:133,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_x509.cpp:136,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_x509.cpp:137,1
    - Dst: Botan::X509_CRL
      Src: /src/botan/src/cli/perf_x509.cpp:138,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_x509.cpp:139,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_x509.cpp:142,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_x509.cpp:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 117
    functionDepth: 3
    functionLinenumber: 117
    functionLinenumberEnd: 144
    functionName: Botan_CLI::PerfTest_ASN1_Parsing::go
    functionSourceFile: /src/botan/src/cli/perf_x509.cpp
    functionUses: 0
    functionsReached:
    - rng
    - auto::under
    - Botan_CLI::PerfTest_ASN1_Parsing::make_revocation_list
    - auto::BER_encode
    - auto::stop
    - Botan::X509_CRL
    - auto::start
    - Botan_CLI::PerfTest_ASN1_Parsing::make_certificate
    - Botan_CLI::PerfTest_ASN1_Parsing::create_ca
    - runtime
    - record_result
    - make_timer
    - Botan::X509_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: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    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: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    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: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    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:31,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: 42
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 42
    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:45,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/asn1.cpp:46,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/asn1.cpp:47,1
    - Dst: flag_set
      Src: /src/botan/src/cli/asn1.cpp:48,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/asn1.cpp:49,1
    - Dst: slurp_file
      Src: /src/botan/src/cli/asn1.cpp:54,1
    - Dst: flag_set
      Src: /src/botan/src/cli/asn1.cpp:57,1
    - Dst: std::string::size
      Src: /src/botan/src/cli/asn1.cpp:57,1
    - Dst: std::string::substr
      Src: /src/botan/src/cli/asn1.cpp:57,1
    - Dst: std::string::size
      Src: /src/botan/src/cli/asn1.cpp:57,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/asn1.cpp:58,1
    - Dst: Botan_CLI::ASN1_Printer::first_n
      Src: /src/botan/src/cli/asn1.cpp:58,1
    - Dst: unlock
      Src: /src/botan/src/cli/asn1.cpp:62,1
    - Dst: Botan::PEM_Code::decode
      Src: /src/botan/src/cli/asn1.cpp:62,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/asn1.cpp:64,1
    - Dst: std::vector::swap
      Src: /src/botan/src/cli/asn1.cpp:67,1
    - Dst: Botan::ASN1_Pretty_Printer::print_to_stream
      Src: /src/botan/src/cli/asn1.cpp:73,1
    - Dst: output
      Src: /src/botan/src/cli/asn1.cpp:73,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/asn1.cpp:73,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/asn1.cpp:73,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 74
    functionName: Botan_CLI::ASN1_Printer::go
    functionSourceFile: /src/botan/src/cli/asn1.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - std::string::size
    - CLI_Error_Unsupported
    - get_arg_sz
    - slurp_file
    - output
    - Botan_CLI::ASN1_Printer::first_n
    - Botan::ASN1_Pretty_Printer::print_to_stream
    - std::vector::data
    - std::vector::swap
    - unlock
    - std::string::substr
    - std::vector::size
    - Botan::PEM_Code::decode
    - flag_set
    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: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    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: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    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: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    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:88,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/asn1.cpp:90,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/asn1.cpp:91,1
    - Dst: Botan::OID::human_name_or_empty
      Src: /src/botan/src/cli/asn1.cpp:97,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/asn1.cpp:98,1
    - Dst: output
      Src: /src/botan/src/cli/asn1.cpp:99,1
    - Dst: output
      Src: /src/botan/src/cli/asn1.cpp:101,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/cli/asn1.cpp:108,1
    - Dst: output
      Src: /src/botan/src/cli/asn1.cpp:109,1
    - Dst: Botan::OID::to_string
      Src: /src/botan/src/cli/asn1.cpp:109,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 110
    functionName: Botan_CLI::OID_Info::go
    functionSourceFile: /src/botan/src/cli/asn1.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - Botan::OID::human_name_or_empty
    - std::string::empty
    - CLI_Usage_Error
    - Botan::OID::to_string
    - Botan::OID::from_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: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    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: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    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: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    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:31,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: 42
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 42
    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:45,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/asn1.cpp:46,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/asn1.cpp:47,1
    - Dst: flag_set
      Src: /src/botan/src/cli/asn1.cpp:48,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/asn1.cpp:49,1
    - Dst: slurp_file
      Src: /src/botan/src/cli/asn1.cpp:54,1
    - Dst: flag_set
      Src: /src/botan/src/cli/asn1.cpp:57,1
    - Dst: std::string::size
      Src: /src/botan/src/cli/asn1.cpp:57,1
    - Dst: std::string::substr
      Src: /src/botan/src/cli/asn1.cpp:57,1
    - Dst: std::string::size
      Src: /src/botan/src/cli/asn1.cpp:57,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/asn1.cpp:58,1
    - Dst: Botan_CLI::ASN1_Printer::first_n
      Src: /src/botan/src/cli/asn1.cpp:58,1
    - Dst: unlock
      Src: /src/botan/src/cli/asn1.cpp:62,1
    - Dst: Botan::PEM_Code::decode
      Src: /src/botan/src/cli/asn1.cpp:62,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/asn1.cpp:64,1
    - Dst: std::vector::swap
      Src: /src/botan/src/cli/asn1.cpp:67,1
    - Dst: Botan::ASN1_Pretty_Printer::print_to_stream
      Src: /src/botan/src/cli/asn1.cpp:73,1
    - Dst: output
      Src: /src/botan/src/cli/asn1.cpp:73,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/asn1.cpp:73,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/asn1.cpp:73,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 74
    functionName: Botan_CLI::ASN1_Printer::go
    functionSourceFile: /src/botan/src/cli/asn1.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - std::string::size
    - CLI_Error_Unsupported
    - get_arg_sz
    - slurp_file
    - output
    - Botan_CLI::ASN1_Printer::first_n
    - Botan::ASN1_Pretty_Printer::print_to_stream
    - std::vector::data
    - std::vector::swap
    - unlock
    - std::string::substr
    - std::vector::size
    - Botan::PEM_Code::decode
    - flag_set
    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: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    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: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    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: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    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:88,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/asn1.cpp:90,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/asn1.cpp:91,1
    - Dst: Botan::OID::human_name_or_empty
      Src: /src/botan/src/cli/asn1.cpp:97,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/asn1.cpp:98,1
    - Dst: output
      Src: /src/botan/src/cli/asn1.cpp:99,1
    - Dst: output
      Src: /src/botan/src/cli/asn1.cpp:101,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/cli/asn1.cpp:108,1
    - Dst: output
      Src: /src/botan/src/cli/asn1.cpp:109,1
    - Dst: Botan::OID::to_string
      Src: /src/botan/src/cli/asn1.cpp:109,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 110
    functionName: Botan_CLI::OID_Info::go
    functionSourceFile: /src/botan/src/cli/asn1.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - Botan::OID::human_name_or_empty
    - std::string::empty
    - CLI_Usage_Error
    - Botan::OID::to_string
    - Botan::OID::from_string
    - output
    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_CLI::Timer::milliseconds
    - Botan_CLI::Callbacks::flag_set
    - output
    - TLS_Exception
    - Botan::Invalid_Argument
    - require_cert_revocation_info
    - Botan::Path_Validation_Result::successful_validation
    - std::string
    - minimum_signature_strength
    - empty
    - Botan::Path_Validation_Result::result_string
    - contains
    - tls_current_timestamp
    - Botan::x509_path_validate
    - Botan::Path_Validation_Result::all_statuses
    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
    - output
    - Botan_CLI::Callbacks::get_arg
    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_CLI::Callbacks::flag_set
    - output
    - peer_certs
    - Botan::hex_encode
    - session_ticket
    - PEM_encode
    - size
    - session_id
    - to_string
    - maybe_hex_encode
    - empty
    - version
    - ciphersuite
    - kex_parameters
    - get
    - value
    - external_psk_identity
    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:
    - output
    - Botan_CLI::Callbacks::flag_set
    - Botan_CLI::Callbacks::send
    - Botan::hex_encode
    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:
    - output
    - Botan::TLS::Alert::type_string
    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:
    - output
    - Botan_Tests::Test_TLS_13_Callbacks::tls_sign_message
    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_CLI::Timer::milliseconds
    - Botan_CLI::Callbacks::flag_set
    - output
    - TLS_Exception
    - Botan::Invalid_Argument
    - require_cert_revocation_info
    - Botan::Path_Validation_Result::successful_validation
    - std::string
    - minimum_signature_strength
    - empty
    - Botan::Path_Validation_Result::result_string
    - contains
    - tls_current_timestamp
    - Botan::x509_path_validate
    - Botan::Path_Validation_Result::all_statuses
    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
    - output
    - Botan_CLI::Callbacks::get_arg
    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_CLI::Callbacks::flag_set
    - output
    - peer_certs
    - Botan::hex_encode
    - session_ticket
    - PEM_encode
    - size
    - session_id
    - to_string
    - maybe_hex_encode
    - empty
    - version
    - ciphersuite
    - kex_parameters
    - get
    - value
    - external_psk_identity
    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:
    - output
    - Botan_CLI::Callbacks::flag_set
    - Botan_CLI::Callbacks::send
    - Botan::hex_encode
    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:
    - output
    - Botan::TLS::Alert::type_string
    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:
    - output
    - Botan_Tests::Test_TLS_13_Callbacks::tls_sign_message
    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: 1
    functionLinenumber: 198
    functionLinenumberEnd: 365
    functionName: Botan_CLI::TLS_Client::go
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Client::received_data
    - Botan::TLS::Client::application_protocol
    - Botan::hex_encode
    - static_cast<int>
    - std::make_shared<Basic_Credentials_Manager>
    - Botan::TLS::Channel_Impl::close
    - std::string::empty
    - err_to_string
    - Botan::TLS::Client::timeout_check
    - load_tls_policy
    - get_arg_u16
    - flag_set
    - FD_ZERO
    - Botan_CLI::Command::split_on
    - rng_as_shared
    - CLI_Usage_Error
    - read
    - output
    - get_passphrase_arg
    - get_arg_maybe
    - get_arg
    - auto::latest_supported_version
    - Botan::TLS::Client::is_active
    - Botan::TLS::Client::send
    - std::make_shared<Botan::TLS::Policy>
    - auto::value
    - std::vector::empty
    - Shim_Socket::read
    - std::make_shared<Botan::TLS::Session_Manager_In_Memory>
    - std::make_shared<Botan::TLS::Session_Manager_SQLite>
    - FD_ISSET
    - auto::peer_closed
    - Botan::hex_decode_locked
    - std::move
    - Botan::TLS::Client::is_closed
    - Botan::TLS::Client::renegotiate
    - Botan::TLS::Client::close
    - Botan::select
    - std::make_shared<Callbacks>
    - FD_SET
    - error_output
    - set_return_code
    - Botan_CLI::TLS_Client::connect_to_host
    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>::empty
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - CLI_Error
    - Botan_Tests::MockChannel::send
    - std::span<const uint8_t>::subspan
    - std::to_string
    linkageType: ''
    returnType: void
    signature: void send(std::span<const uint8_t> buf) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::memset
      Src: /src/botan/src/cli/tls_client.cpp:391,1
    - 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: CLI_Error
      Src: /src/botan/src/cli/tls_client.cpp:397,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: ::freeaddrinfo
      Src: /src/botan/src/cli/tls_client.cpp:419,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/tls_client.cpp:423,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 3
    argNames:
    - ' host'
    - port
    - tcp
    argTypes:
    - std::string
    - uint16_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 427
    functionName: Botan_CLI::TLS_Client::connect_to_host
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 1
    functionsReached:
    - std::memset
    - client::handle_connect
    - ::getaddrinfo
    - CLI_Error
    - Botan::TLS::Channel_Impl::close
    - invalid_socket
    - Client::close_socket
    - ::freeaddrinfo
    - std::to_string
    - c_str
    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:430,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/tls_client.cpp:433,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/tls_client.cpp:433,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - sockfd
    - buf
    - length
    argTypes:
    - int
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 435
    functionName: Botan_CLI::TLS_Client::dgram_socket_write
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - CLI_Error
    - Botan_Tests::MockChannel::send
    - std::to_string
    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:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 444
    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:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' flag_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 448
    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:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' arg_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 452
    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:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 456
    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:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 444
    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:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' flag_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 448
    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:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' arg_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 452
    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:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 456
    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_CLI::Timer::milliseconds
    - Botan_CLI::Callbacks::flag_set
    - output
    - TLS_Exception
    - Botan::Invalid_Argument
    - require_cert_revocation_info
    - Botan::Path_Validation_Result::successful_validation
    - std::string
    - minimum_signature_strength
    - empty
    - Botan::Path_Validation_Result::result_string
    - contains
    - tls_current_timestamp
    - Botan::x509_path_validate
    - Botan::Path_Validation_Result::all_statuses
    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
    - output
    - Botan_CLI::Callbacks::get_arg
    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_CLI::Callbacks::flag_set
    - output
    - peer_certs
    - Botan::hex_encode
    - session_ticket
    - PEM_encode
    - size
    - session_id
    - to_string
    - maybe_hex_encode
    - empty
    - version
    - ciphersuite
    - kex_parameters
    - get
    - value
    - external_psk_identity
    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:
    - output
    - Botan_CLI::Callbacks::flag_set
    - Botan_CLI::Callbacks::send
    - Botan::hex_encode
    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:
    - output
    - Botan::TLS::Alert::type_string
    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:
    - output
    - Botan_Tests::Test_TLS_13_Callbacks::tls_sign_message
    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_CLI::Timer::milliseconds
    - Botan_CLI::Callbacks::flag_set
    - output
    - TLS_Exception
    - Botan::Invalid_Argument
    - require_cert_revocation_info
    - Botan::Path_Validation_Result::successful_validation
    - std::string
    - minimum_signature_strength
    - empty
    - Botan::Path_Validation_Result::result_string
    - contains
    - tls_current_timestamp
    - Botan::x509_path_validate
    - Botan::Path_Validation_Result::all_statuses
    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
    - output
    - Botan_CLI::Callbacks::get_arg
    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_CLI::Callbacks::flag_set
    - output
    - peer_certs
    - Botan::hex_encode
    - session_ticket
    - PEM_encode
    - size
    - session_id
    - to_string
    - maybe_hex_encode
    - empty
    - version
    - ciphersuite
    - kex_parameters
    - get
    - value
    - external_psk_identity
    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:
    - output
    - Botan_CLI::Callbacks::flag_set
    - Botan_CLI::Callbacks::send
    - Botan::hex_encode
    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:
    - output
    - Botan::TLS::Alert::type_string
    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:
    - output
    - Botan_Tests::Test_TLS_13_Callbacks::tls_sign_message
    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::TLS::Client::received_data
    - Botan::TLS::Client::application_protocol
    - Botan::hex_encode
    - static_cast<int>
    - std::make_shared<Basic_Credentials_Manager>
    - Botan::TLS::Channel_Impl::close
    - std::string::empty
    - err_to_string
    - Botan::TLS::Client::timeout_check
    - load_tls_policy
    - get_arg_u16
    - flag_set
    - FD_ZERO
    - Botan_CLI::Command::split_on
    - rng_as_shared
    - CLI_Usage_Error
    - read
    - output
    - get_passphrase_arg
    - get_arg_maybe
    - get_arg
    - auto::latest_supported_version
    - Botan::TLS::Client::is_active
    - Botan::TLS::Client::send
    - std::make_shared<Botan::TLS::Policy>
    - auto::value
    - std::vector::empty
    - Shim_Socket::read
    - std::make_shared<Botan::TLS::Session_Manager_In_Memory>
    - std::make_shared<Botan::TLS::Session_Manager_SQLite>
    - FD_ISSET
    - auto::peer_closed
    - Botan::hex_decode_locked
    - std::move
    - Botan::TLS::Client::is_closed
    - Botan::TLS::Client::renegotiate
    - Botan::TLS::Client::close
    - Botan::select
    - std::make_shared<Callbacks>
    - FD_SET
    - error_output
    - set_return_code
    - Botan_CLI::TLS_Client::connect_to_host
    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>::empty
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - CLI_Error
    - Botan_Tests::MockChannel::send
    - std::span<const uint8_t>::subspan
    - std::to_string
    linkageType: ''
    returnType: void
    signature: void send(std::span<const uint8_t> buf) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::memset
      Src: /src/botan/src/cli/tls_client.cpp:391,1
    - 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: CLI_Error
      Src: /src/botan/src/cli/tls_client.cpp:397,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: ::freeaddrinfo
      Src: /src/botan/src/cli/tls_client.cpp:419,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/tls_client.cpp:423,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 3
    argNames:
    - ' host'
    - port
    - tcp
    argTypes:
    - std::string
    - uint16_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 427
    functionName: Botan_CLI::TLS_Client::connect_to_host
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 2
    functionsReached:
    - std::memset
    - client::handle_connect
    - ::getaddrinfo
    - CLI_Error
    - Botan::TLS::Channel_Impl::close
    - invalid_socket
    - Client::close_socket
    - ::freeaddrinfo
    - std::to_string
    - c_str
    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:430,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/tls_client.cpp:433,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/tls_client.cpp:433,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - sockfd
    - buf
    - length
    argTypes:
    - int
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 435
    functionName: Botan_CLI::TLS_Client::dgram_socket_write
    functionSourceFile: /src/botan/src/cli/tls_client.cpp
    functionUses: 0
    functionsReached:
    - CLI_Error
    - Botan_Tests::MockChannel::send
    - std::to_string
    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:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 444
    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:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' flag_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 448
    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:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' arg_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 452
    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:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 456
    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:443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 444
    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:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' flag_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 448
    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:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' arg_name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 452
    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:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 456
    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:33,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
    - std::chrono::milliseconds
    - std::vector<std::string>
    - std::vector<size_t>
    - std::ostream
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 40
    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
      \                std::chrono::milliseconds 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: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    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: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    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: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: Botan_CLI::PerfConfig::runtime
    functionSourceFile: /src/botan/src/cli/perf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::chrono::milliseconds
    signature: std::chrono::milliseconds runtime() 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: '& 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: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    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:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' timer'
    argTypes:
    - Timer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    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:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' alg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 60
    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: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    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: 102
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 102
    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:33,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
    - std::chrono::milliseconds
    - std::vector<std::string>
    - std::vector<size_t>
    - std::ostream
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 40
    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
      \                std::chrono::milliseconds 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: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    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: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    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: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: Botan_CLI::PerfConfig::runtime
    functionSourceFile: /src/botan/src/cli/perf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::chrono::milliseconds
    signature: std::chrono::milliseconds runtime() 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: '& 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: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    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:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' timer'
    argTypes:
    - Timer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    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:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' alg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 60
    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: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    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: 102
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 102
    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: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    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: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    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: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    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:30,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pbkdf.cpp:31,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/cli/pbkdf.cpp:32,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pbkdf.cpp:32,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pbkdf.cpp:33,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pbkdf.cpp:34,1
    - Dst: Botan::PasswordHashFamily::create
      Src: /src/botan/src/cli/pbkdf.cpp:36,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/pbkdf.cpp:39,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/pbkdf.cpp:42,1
    - Dst: auto::default_params
      Src: /src/botan/src/cli/pbkdf.cpp:46,1
    - Dst: std::stoul
      Src: /src/botan/src/cli/pbkdf.cpp:50,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pbkdf.cpp:52,1
    - Dst: auto::tune
      Src: /src/botan/src/cli/pbkdf.cpp:55,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/cli/pbkdf.cpp:55,1
    - Dst: output
      Src: /src/botan/src/cli/pbkdf.cpp:58,1
    - Dst: std::unique_ptr::to_string
      Src: /src/botan/src/cli/pbkdf.cpp:58,1
    - Dst: std::unique_ptr::total_memory_usage
      Src: /src/botan/src/cli/pbkdf.cpp:60,1
    - Dst: output
      Src: /src/botan/src/cli/pbkdf.cpp:61,1
    - Dst: std::unique_ptr::total_memory_usage
      Src: /src/botan/src/cli/pbkdf.cpp:61,1
    - Dst: Botan::OS::get_system_timestamp_ns
      Src: /src/botan/src/cli/pbkdf.cpp:69,1
    - Dst: std::unique_ptr::derive_key
      Src: /src/botan/src/cli/pbkdf.cpp:70,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/pbkdf.cpp:70,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/pbkdf.cpp:70,1
    - Dst: Botan::OS::get_system_timestamp_ns
      Src: /src/botan/src/cli/pbkdf.cpp:71,1
    - Dst: output
      Src: /src/botan/src/cli/pbkdf.cpp:74,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/pbkdf.cpp:74,1
    - Dst: output
      Src: /src/botan/src/cli/pbkdf.cpp:76,1
    - Dst: output
      Src: /src/botan/src/cli/pbkdf.cpp:80,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 82
    functionName: Botan_CLI::PBKDF_Tune::go
    functionSourceFile: /src/botan/src/cli/pbkdf.cpp
    functionUses: 0
    functionsReached:
    - Botan::OS::get_system_timestamp_ns
    - flag_set
    - Botan_CLI::Timer::milliseconds
    - CLI_Error_Unsupported
    - std::unique_ptr::derive_key
    - std::vector::data
    - auto::tune
    - CLI_Usage_Error
    - output
    - get_arg
    - get_arg_sz
    - static_cast<double>
    - std::vector::size
    - std::unique_ptr::to_string
    - auto::default_params
    - std::stoul
    - get_arg_list
    - std::unique_ptr::total_memory_usage
    - Botan::PasswordHashFamily::create
    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: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    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: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    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: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    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:30,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pbkdf.cpp:31,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/cli/pbkdf.cpp:32,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/pbkdf.cpp:32,1
    - Dst: get_arg
      Src: /src/botan/src/cli/pbkdf.cpp:33,1
    - Dst: flag_set
      Src: /src/botan/src/cli/pbkdf.cpp:34,1
    - Dst: Botan::PasswordHashFamily::create
      Src: /src/botan/src/cli/pbkdf.cpp:36,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/pbkdf.cpp:39,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/pbkdf.cpp:42,1
    - Dst: auto::default_params
      Src: /src/botan/src/cli/pbkdf.cpp:46,1
    - Dst: std::stoul
      Src: /src/botan/src/cli/pbkdf.cpp:50,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/pbkdf.cpp:52,1
    - Dst: auto::tune
      Src: /src/botan/src/cli/pbkdf.cpp:55,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/cli/pbkdf.cpp:55,1
    - Dst: output
      Src: /src/botan/src/cli/pbkdf.cpp:58,1
    - Dst: std::unique_ptr::to_string
      Src: /src/botan/src/cli/pbkdf.cpp:58,1
    - Dst: std::unique_ptr::total_memory_usage
      Src: /src/botan/src/cli/pbkdf.cpp:60,1
    - Dst: output
      Src: /src/botan/src/cli/pbkdf.cpp:61,1
    - Dst: std::unique_ptr::total_memory_usage
      Src: /src/botan/src/cli/pbkdf.cpp:61,1
    - Dst: Botan::OS::get_system_timestamp_ns
      Src: /src/botan/src/cli/pbkdf.cpp:69,1
    - Dst: std::unique_ptr::derive_key
      Src: /src/botan/src/cli/pbkdf.cpp:70,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/pbkdf.cpp:70,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/pbkdf.cpp:70,1
    - Dst: Botan::OS::get_system_timestamp_ns
      Src: /src/botan/src/cli/pbkdf.cpp:71,1
    - Dst: output
      Src: /src/botan/src/cli/pbkdf.cpp:74,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/pbkdf.cpp:74,1
    - Dst: output
      Src: /src/botan/src/cli/pbkdf.cpp:76,1
    - Dst: output
      Src: /src/botan/src/cli/pbkdf.cpp:80,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 82
    functionName: Botan_CLI::PBKDF_Tune::go
    functionSourceFile: /src/botan/src/cli/pbkdf.cpp
    functionUses: 0
    functionsReached:
    - Botan::OS::get_system_timestamp_ns
    - flag_set
    - Botan_CLI::Timer::milliseconds
    - CLI_Error_Unsupported
    - std::unique_ptr::derive_key
    - std::vector::data
    - auto::tune
    - CLI_Usage_Error
    - output
    - get_arg
    - get_arg_sz
    - static_cast<double>
    - std::vector::size
    - std::unique_ptr::to_string
    - auto::default_params
    - std::stoul
    - get_arg_list
    - std::unique_ptr::total_memory_usage
    - Botan::PasswordHashFamily::create
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_ec.cpp:21,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_ec.cpp:22,1
    - Dst: ecc_groups
      Src: /src/botan/src/cli/perf_ec.cpp:24,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:25,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_ec.cpp:27,1
    - Dst: Botan::EC_Group::clear_registered_curve_data
      Src: /src/botan/src/cli/perf_ec.cpp:28,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:29,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/cli/perf_ec.cpp:29,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:32,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/cli/perf_ec.cpp:34,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:36,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:37,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:38,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:39,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:40,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:41,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:42,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:43,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:44,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:45,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:46,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:47,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/cli/perf_ec.cpp:49,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_nu
      Src: /src/botan/src/cli/perf_ec.cpp:53,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_ec.cpp:60,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_ec.cpp:60,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/cli/perf_ec.cpp:61,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/cli/perf_ec.cpp:62,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:63,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/cli/perf_ec.cpp:63,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:64,1
    - Dst: auto::mul
      Src: /src/botan/src/cli/perf_ec.cpp:64,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/cli/perf_ec.cpp:66,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/cli/perf_ec.cpp:67,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/cli/perf_ec.cpp:68,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:70,1
    - Dst: auto::add
      Src: /src/botan/src/cli/perf_ec.cpp:70,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:72,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/cli/perf_ec.cpp:72,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/cli/perf_ec.cpp:74,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:75,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/cli/perf_ec.cpp:75,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:77,1
    - Dst: Botan::Mul2Table
      Src: /src/botan/src/cli/perf_ec.cpp:77,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:79,1
    - Dst: auto::mul2_vartime
      Src: /src/botan/src/cli/perf_ec.cpp:79,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:81,1
    - Dst: Botan::EC_AffinePoint::mul_px_qy
      Src: /src/botan/src/cli/perf_ec.cpp:81,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:84,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_nu
      Src: /src/botan/src/cli/perf_ec.cpp:84,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:85,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_ro
      Src: /src/botan/src/cli/perf_ec.cpp:85,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_ec.cpp:89,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_ec.cpp:89,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/cli/perf_ec.cpp:90,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:91,1
    - Dst: auto::invert_vartime
      Src: /src/botan/src/cli/perf_ec.cpp:91,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:92,1
    - Dst: auto::invert
      Src: /src/botan/src/cli/perf_ec.cpp:92,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/cli/perf_ec.cpp:93,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:96,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:97,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:98,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:99,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
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:104,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:105,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:108,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:109,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 67
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 20
    functionDepth: 3
    functionLinenumber: 20
    functionLinenumberEnd: 112
    functionName: Botan_CLI::PerfTest_EllipticCurve::go
    functionSourceFile: /src/botan/src/cli/perf_ec.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_AffinePoint::g_mul
    - Botan::EC_Group::clear_registered_curve_data
    - auto::serialize_compressed
    - Botan::EC_AffinePoint::generator
    - rng
    - Botan::Mul2Table
    - Botan::EC_Scalar::random
    - Botan::EC_AffinePoint::deserialize
    - Botan::EC_AffinePoint::hash_to_curve_nu
    - auto::invert
    - auto::run
    - record_result
    - runtime
    - BOTAN_ASSERT_EQUAL
    - auto::mul
    - make_timer
    - auto::add
    - Botan::EC_AffinePoint::mul_px_qy
    - auto::serialize_uncompressed
    - auto::invert_vartime
    - auto::mul2_vartime
    - ecc_groups
    - auto::under
    - Botan::EC_Group::from_name
    - Botan::EC_AffinePoint::hash_to_curve_ro
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_ec.cpp:21,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_ec.cpp:22,1
    - Dst: ecc_groups
      Src: /src/botan/src/cli/perf_ec.cpp:24,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:25,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_ec.cpp:27,1
    - Dst: Botan::EC_Group::clear_registered_curve_data
      Src: /src/botan/src/cli/perf_ec.cpp:28,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:29,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/cli/perf_ec.cpp:29,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:32,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/cli/perf_ec.cpp:34,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:36,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:37,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:38,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:39,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:40,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:41,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:42,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:43,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:44,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:45,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:46,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_ec.cpp:47,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/cli/perf_ec.cpp:49,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_nu
      Src: /src/botan/src/cli/perf_ec.cpp:53,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_ec.cpp:60,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_ec.cpp:60,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/cli/perf_ec.cpp:61,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/cli/perf_ec.cpp:62,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:63,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/cli/perf_ec.cpp:63,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:64,1
    - Dst: auto::mul
      Src: /src/botan/src/cli/perf_ec.cpp:64,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/cli/perf_ec.cpp:66,1
    - Dst: auto::serialize_uncompressed
      Src: /src/botan/src/cli/perf_ec.cpp:67,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/cli/perf_ec.cpp:68,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:70,1
    - Dst: auto::add
      Src: /src/botan/src/cli/perf_ec.cpp:70,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:72,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/cli/perf_ec.cpp:72,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/cli/perf_ec.cpp:74,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:75,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/cli/perf_ec.cpp:75,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:77,1
    - Dst: Botan::Mul2Table
      Src: /src/botan/src/cli/perf_ec.cpp:77,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:79,1
    - Dst: auto::mul2_vartime
      Src: /src/botan/src/cli/perf_ec.cpp:79,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:81,1
    - Dst: Botan::EC_AffinePoint::mul_px_qy
      Src: /src/botan/src/cli/perf_ec.cpp:81,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:84,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_nu
      Src: /src/botan/src/cli/perf_ec.cpp:84,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:85,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_ro
      Src: /src/botan/src/cli/perf_ec.cpp:85,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_ec.cpp:89,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_ec.cpp:89,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/cli/perf_ec.cpp:90,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:91,1
    - Dst: auto::invert_vartime
      Src: /src/botan/src/cli/perf_ec.cpp:91,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_ec.cpp:92,1
    - Dst: auto::invert
      Src: /src/botan/src/cli/perf_ec.cpp:92,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/cli/perf_ec.cpp:93,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:96,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:97,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:98,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:99,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
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:104,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:105,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:108,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_ec.cpp:109,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 67
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 20
    functionDepth: 3
    functionLinenumber: 20
    functionLinenumberEnd: 112
    functionName: Botan_CLI::PerfTest_EllipticCurve::go
    functionSourceFile: /src/botan/src/cli/perf_ec.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_AffinePoint::g_mul
    - Botan::EC_Group::clear_registered_curve_data
    - auto::serialize_compressed
    - Botan::EC_AffinePoint::generator
    - rng
    - Botan::Mul2Table
    - Botan::EC_Scalar::random
    - Botan::EC_AffinePoint::deserialize
    - Botan::EC_AffinePoint::hash_to_curve_nu
    - auto::invert
    - auto::run
    - record_result
    - runtime
    - BOTAN_ASSERT_EQUAL
    - auto::mul
    - make_timer
    - auto::add
    - Botan::EC_AffinePoint::mul_px_qy
    - auto::serialize_uncompressed
    - auto::invert_vartime
    - auto::mul2_vartime
    - ecc_groups
    - auto::under
    - Botan::EC_Group::from_name
    - Botan::EC_AffinePoint::hash_to_curve_ro
    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: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    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:35,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 37
    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: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    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: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    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:44,1
    - Dst: Botan_CLI::TLS_Ciphersuites::tls_version_from_str
      Src: /src/botan/src/cli/tls_utils.cpp:45,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_utils.cpp:45,1
    - Dst: load_tls_policy
      Src: /src/botan/src/cli/tls_utils.cpp:47,1
    - Dst: auto::acceptable_protocol_version
      Src: /src/botan/src/cli/tls_utils.cpp:49,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_utils.cpp:50,1
    - Dst: auto::ciphersuite_list
      Src: /src/botan/src/cli/tls_utils.cpp:54,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/cli/tls_utils.cpp:55,1
    - Dst: output
      Src: /src/botan/src/cli/tls_utils.cpp:56,1
    - Dst: auto::to_string
      Src: /src/botan/src/cli/tls_utils.cpp:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 58
    functionName: Botan_CLI::TLS_Ciphersuites::go
    functionSourceFile: /src/botan/src/cli/tls_utils.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - output
    - auto::acceptable_protocol_version
    - Botan_CLI::TLS_Ciphersuites::tls_version_from_str
    - auto::ciphersuite_list
    - Botan::TLS::Ciphersuite::by_id
    - auto::to_string
    - load_tls_policy
    - 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: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    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: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    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: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_utils.cpp:74,1
    - Dst: flag_set
      Src: /src/botan/src/cli/tls_utils.cpp:77,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/tls_utils.cpp:78,1
    - Dst: slurp_file_as_str
      Src: /src/botan/src/cli/tls_utils.cpp:78,1
    - Dst: slurp_file
      Src: /src/botan/src/cli/tls_utils.cpp:80,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/tls_utils.cpp:83,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_utils.cpp:84,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/cli/tls_utils.cpp:90,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/tls_utils.cpp:92,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_utils.cpp:93,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/cli/tls_utils.cpp:97,1
    - Dst: std::vector::begin
      Src: /src/botan/src/cli/tls_utils.cpp:97,1
    - Dst: std::vector::end
      Src: /src/botan/src/cli/tls_utils.cpp:97,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/cli/tls_utils.cpp:102,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/tls_utils.cpp:104,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_utils.cpp:105,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/cli/tls_utils.cpp:109,1
    - Dst: std::vector::begin
      Src: /src/botan/src/cli/tls_utils.cpp:109,1
    - Dst: std::vector::end
      Src: /src/botan/src/cli/tls_utils.cpp:109,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/cli/tls_utils.cpp:113,1
    - Dst: output
      Src: /src/botan/src/cli/tls_utils.cpp:115,1
    - Dst: Botan_CLI::TLS_Client_Hello_Reader::format_hello
      Src: /src/botan/src/cli/tls_utils.cpp:115,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_utils.cpp:117,1
    - Dst: what
      Src: /src/botan/src/cli/tls_utils.cpp:117,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 119
    functionName: Botan_CLI::TLS_Client_Hello_Reader::go
    functionSourceFile: /src/botan/src/cli/tls_utils.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - Botan::hex_decode
    - std::vector::begin
    - Botan::make_uint32
    - Botan::TLS::Client_Hello_13::parse
    - slurp_file
    - output
    - Botan_CLI::TLS_Client_Hello_Reader::format_hello
    - slurp_file_as_str
    - error_output
    - std::vector::end
    - std::vector<uint8_t>
    - what
    - std::vector::size
    - Botan::make_uint16
    - flag_set
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/botan/src/cli/tls_utils.cpp:127,1
    - Dst: std::visit
      Src: /src/botan/src/cli/tls_utils.cpp:129,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_utils.cpp:136,1
    - Dst: auto*::random
      Src: /src/botan/src/cli/tls_utils.cpp:136,1
    - Dst: auto*::session_id
      Src: /src/botan/src/cli/tls_utils.cpp:138,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_utils.cpp:139,1
    - Dst: auto*::session_id
      Src: /src/botan/src/cli/tls_utils.cpp:139,1
    - Dst: auto*::ciphersuites
      Src: /src/botan/src/cli/tls_utils.cpp:141,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/cli/tls_utils.cpp:142,1
    - Dst: auto::valid
      Src: /src/botan/src/cli/tls_utils.cpp:143,1
    - Dst: auto::to_string
      Src: /src/botan/src/cli/tls_utils.cpp:144,1
    - Dst: auto*::signature_schemes
      Src: /src/botan/src/cli/tls_utils.cpp:154,1
    - Dst: auto*::signature_schemes
      Src: /src/botan/src/cli/tls_utils.cpp:157,1
    - Dst: to_string
      Src: /src/botan/src/cli/tls_utils.cpp:159,1
    - Dst: static_cast<unsigned int>
      Src: /src/botan/src/cli/tls_utils.cpp:162,1
    - Dst: wire_code
      Src: /src/botan/src/cli/tls_utils.cpp:162,1
    - Dst: auto*::extensions
      Src: /src/botan/src/cli/tls_utils.cpp:168,1
    - Dst: auto*::groups
      Src: /src/botan/src/cli/tls_utils.cpp:170,1
    - Dst: to_string
      Src: /src/botan/src/cli/tls_utils.cpp:171,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tls_utils.cpp:171,1
    - Dst: wire_code
      Src: /src/botan/src/cli/tls_utils.cpp:171,1
    - Dst: auto*::supports_alpn
      Src: /src/botan/src/cli/tls_utils.cpp:177,1
    - Dst: std::visit
      Src: /src/botan/src/cli/tls_utils.cpp:179,1
    - Dst: supports_encrypt_then_mac
      Src: /src/botan/src/cli/tls_utils.cpp:181,1
    - Dst: supports_extended_master_secret
      Src: /src/botan/src/cli/tls_utils.cpp:182,1
    - Dst: supports_session_ticket
      Src: /src/botan/src/cli/tls_utils.cpp:183,1
    - Dst: extensions
      Src: /src/botan/src/cli/tls_utils.cpp:186,1
    - Dst: auto*::offered_groups
      Src: /src/botan/src/cli/tls_utils.cpp:188,1
    - Dst: to_string
      Src: /src/botan/src/cli/tls_utils.cpp:189,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tls_utils.cpp:189,1
    - Dst: wire_code
      Src: /src/botan/src/cli/tls_utils.cpp:189,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/tls_utils.cpp:202,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: 203
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 203
    functionName: Botan_CLI::TLS_Client_Hello_Reader::format_hello
    functionSourceFile: /src/botan/src/cli/tls_utils.cpp
    functionUses: 1
    functionsReached:
    - auto*::random
    - supports_session_ticket
    - Botan::hex_encode
    - std::ostringstream::str
    - auto::to_string
    - extensions
    - supports_extended_master_secret
    - Botan::TLS::Ciphersuite::by_id
    - auto*::supports_alpn
    - std::visit
    - static_cast<unsigned int>
    - auto::valid
    - supports_encrypt_then_mac
    - auto*::ciphersuites
    - auto*::offered_groups
    - Botan::fmt
    - auto*::session_id
    - to_string
    - auto*::extensions
    - auto*::groups
    - wire_code
    - auto*::signature_schemes
    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: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    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:35,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 9
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 37
    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: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    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: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    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:44,1
    - Dst: Botan_CLI::TLS_Ciphersuites::tls_version_from_str
      Src: /src/botan/src/cli/tls_utils.cpp:45,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_utils.cpp:45,1
    - Dst: load_tls_policy
      Src: /src/botan/src/cli/tls_utils.cpp:47,1
    - Dst: auto::acceptable_protocol_version
      Src: /src/botan/src/cli/tls_utils.cpp:49,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_utils.cpp:50,1
    - Dst: auto::ciphersuite_list
      Src: /src/botan/src/cli/tls_utils.cpp:54,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/cli/tls_utils.cpp:55,1
    - Dst: output
      Src: /src/botan/src/cli/tls_utils.cpp:56,1
    - Dst: auto::to_string
      Src: /src/botan/src/cli/tls_utils.cpp:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 58
    functionName: Botan_CLI::TLS_Ciphersuites::go
    functionSourceFile: /src/botan/src/cli/tls_utils.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - output
    - auto::acceptable_protocol_version
    - Botan_CLI::TLS_Ciphersuites::tls_version_from_str
    - auto::ciphersuite_list
    - Botan::TLS::Ciphersuite::by_id
    - auto::to_string
    - load_tls_policy
    - 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: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    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: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    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: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    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: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_arg
      Src: /src/botan/src/cli/tls_utils.cpp:74,1
    - Dst: flag_set
      Src: /src/botan/src/cli/tls_utils.cpp:77,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/tls_utils.cpp:78,1
    - Dst: slurp_file_as_str
      Src: /src/botan/src/cli/tls_utils.cpp:78,1
    - Dst: slurp_file
      Src: /src/botan/src/cli/tls_utils.cpp:80,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/tls_utils.cpp:83,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_utils.cpp:84,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/cli/tls_utils.cpp:90,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/tls_utils.cpp:92,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_utils.cpp:93,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/cli/tls_utils.cpp:97,1
    - Dst: std::vector::begin
      Src: /src/botan/src/cli/tls_utils.cpp:97,1
    - Dst: std::vector::end
      Src: /src/botan/src/cli/tls_utils.cpp:97,1
    - Dst: Botan::make_uint32
      Src: /src/botan/src/cli/tls_utils.cpp:102,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/tls_utils.cpp:104,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_utils.cpp:105,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/cli/tls_utils.cpp:109,1
    - Dst: std::vector::begin
      Src: /src/botan/src/cli/tls_utils.cpp:109,1
    - Dst: std::vector::end
      Src: /src/botan/src/cli/tls_utils.cpp:109,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/cli/tls_utils.cpp:113,1
    - Dst: output
      Src: /src/botan/src/cli/tls_utils.cpp:115,1
    - Dst: Botan_CLI::TLS_Client_Hello_Reader::format_hello
      Src: /src/botan/src/cli/tls_utils.cpp:115,1
    - Dst: error_output
      Src: /src/botan/src/cli/tls_utils.cpp:117,1
    - Dst: what
      Src: /src/botan/src/cli/tls_utils.cpp:117,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 119
    functionName: Botan_CLI::TLS_Client_Hello_Reader::go
    functionSourceFile: /src/botan/src/cli/tls_utils.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - Botan::hex_decode
    - std::vector::begin
    - Botan::make_uint32
    - Botan::TLS::Client_Hello_13::parse
    - slurp_file
    - output
    - Botan_CLI::TLS_Client_Hello_Reader::format_hello
    - slurp_file_as_str
    - error_output
    - std::vector::end
    - std::vector<uint8_t>
    - what
    - std::vector::size
    - Botan::make_uint16
    - flag_set
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::visit
      Src: /src/botan/src/cli/tls_utils.cpp:127,1
    - Dst: std::visit
      Src: /src/botan/src/cli/tls_utils.cpp:129,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_utils.cpp:136,1
    - Dst: auto*::random
      Src: /src/botan/src/cli/tls_utils.cpp:136,1
    - Dst: auto*::session_id
      Src: /src/botan/src/cli/tls_utils.cpp:138,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_utils.cpp:139,1
    - Dst: auto*::session_id
      Src: /src/botan/src/cli/tls_utils.cpp:139,1
    - Dst: auto*::ciphersuites
      Src: /src/botan/src/cli/tls_utils.cpp:141,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/cli/tls_utils.cpp:142,1
    - Dst: auto::valid
      Src: /src/botan/src/cli/tls_utils.cpp:143,1
    - Dst: auto::to_string
      Src: /src/botan/src/cli/tls_utils.cpp:144,1
    - Dst: auto*::signature_schemes
      Src: /src/botan/src/cli/tls_utils.cpp:154,1
    - Dst: auto*::signature_schemes
      Src: /src/botan/src/cli/tls_utils.cpp:157,1
    - Dst: to_string
      Src: /src/botan/src/cli/tls_utils.cpp:159,1
    - Dst: static_cast<unsigned int>
      Src: /src/botan/src/cli/tls_utils.cpp:162,1
    - Dst: wire_code
      Src: /src/botan/src/cli/tls_utils.cpp:162,1
    - Dst: auto*::extensions
      Src: /src/botan/src/cli/tls_utils.cpp:168,1
    - Dst: auto*::groups
      Src: /src/botan/src/cli/tls_utils.cpp:170,1
    - Dst: to_string
      Src: /src/botan/src/cli/tls_utils.cpp:171,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tls_utils.cpp:171,1
    - Dst: wire_code
      Src: /src/botan/src/cli/tls_utils.cpp:171,1
    - Dst: auto*::supports_alpn
      Src: /src/botan/src/cli/tls_utils.cpp:177,1
    - Dst: std::visit
      Src: /src/botan/src/cli/tls_utils.cpp:179,1
    - Dst: supports_encrypt_then_mac
      Src: /src/botan/src/cli/tls_utils.cpp:181,1
    - Dst: supports_extended_master_secret
      Src: /src/botan/src/cli/tls_utils.cpp:182,1
    - Dst: supports_session_ticket
      Src: /src/botan/src/cli/tls_utils.cpp:183,1
    - Dst: extensions
      Src: /src/botan/src/cli/tls_utils.cpp:186,1
    - Dst: auto*::offered_groups
      Src: /src/botan/src/cli/tls_utils.cpp:188,1
    - Dst: to_string
      Src: /src/botan/src/cli/tls_utils.cpp:189,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tls_utils.cpp:189,1
    - Dst: wire_code
      Src: /src/botan/src/cli/tls_utils.cpp:189,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/tls_utils.cpp:202,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: 203
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 203
    functionName: Botan_CLI::TLS_Client_Hello_Reader::format_hello
    functionSourceFile: /src/botan/src/cli/tls_utils.cpp
    functionUses: 2
    functionsReached:
    - auto*::random
    - supports_session_ticket
    - Botan::hex_encode
    - std::ostringstream::str
    - auto::to_string
    - extensions
    - supports_extended_master_secret
    - Botan::TLS::Ciphersuite::by_id
    - auto*::supports_alpn
    - std::visit
    - static_cast<unsigned int>
    - auto::valid
    - supports_encrypt_then_mac
    - auto*::ciphersuites
    - auto*::offered_groups
    - Botan::fmt
    - auto*::session_id
    - to_string
    - auto*::extensions
    - auto*::groups
    - wire_code
    - auto*::signature_schemes
    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:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 89
    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:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 91
    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:96,1
    - Dst: std::chrono::duration_cast<std::chrono::nanoseconds>
      Src: /src/botan/src/cli/timing_tests.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: Botan_CLI::TimingTestTimer::get_high_resolution_clock
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::detail::AsyncBase::complete_now
    - std::chrono::duration_cast<std::chrono::nanoseconds>
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_high_resolution_clock()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::TimingTestTimer::get_high_resolution_clock
      Src: /src/botan/src/cli/timing_tests.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 89
    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:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 91
    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:96,1
    - Dst: std::chrono::duration_cast<std::chrono::nanoseconds>
      Src: /src/botan/src/cli/timing_tests.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: Botan_CLI::TimingTestTimer::get_high_resolution_clock
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 4
    functionsReached:
    - Botan::TLS::detail::AsyncBase::complete_now
    - std::chrono::duration_cast<std::chrono::nanoseconds>
    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:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 114
    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: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    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: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    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: 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(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: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    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: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    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:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 127
    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: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    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:143,1
    - Dst: public_key
      Src: /src/botan/src/cli/timing_tests.cpp:144,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:145,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - keysize
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 146
    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:149,1
    - Dst: encrypt
      Src: /src/botan/src/cli/timing_tests.cpp:150,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 151
    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:155,1
    - Dst: data
      Src: /src/botan/src/cli/timing_tests.cpp:155,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:155,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: Botan_CLI::Bleichenbacker_Timing_Test::measure_critical_function
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - data
    - timing_test_rng
    - TimingTestTimer::complete
    - 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:182,1
    - Dst: public_key
      Src: /src/botan/src/cli/timing_tests.cpp:183,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:184,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - keysize
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 185
    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:188,1
    - Dst: encrypt
      Src: /src/botan/src/cli/timing_tests.cpp:189,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 190
    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:195,1
    - Dst: data
      Src: /src/botan/src/cli/timing_tests.cpp:195,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 198
    functionName: Botan_CLI::Manger_Timing_Test::measure_critical_function
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - decrypt
    - TimingTestTimer::complete
    - data
    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:222,1
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/cli/timing_tests.cpp:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' mac_name'
    - mac_keylen
    argTypes:
    - std::string
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 227
    functionName: Botan_CLI::Lucky13_Timing_Test::Lucky13_Timing_Test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::BlockCipher::create_or_throw
    - Botan::MessageAuthenticationCode::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:239,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/cli/timing_tests.cpp:243,1
    - Dst: auto::set_key
      Src: /src/botan/src/cli/timing_tests.cpp:244,1
    - Dst: auto::start
      Src: /src/botan/src/cli/timing_tests.cpp:245,1
    - Dst: std::vector::begin
      Src: /src/botan/src/cli/timing_tests.cpp:246,1
    - Dst: std::vector::end
      Src: /src/botan/src/cli/timing_tests.cpp:246,1
    - Dst: auto::finish
      Src: /src/botan/src/cli/timing_tests.cpp:247,1
    - Dst: unlock
      Src: /src/botan/src/cli/timing_tests.cpp:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 250
    functionName: Botan_CLI::Lucky13_Timing_Test::prepare_input
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - std::vector::begin
    - auto::set_key
    - std::vector::end
    - auto::start
    - Botan::Cipher_Mode::create
    - unlock
    - auto::finish
    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:253,1
    - Dst: end
      Src: /src/botan/src/cli/timing_tests.cpp:253,1
    - Dst: set_key
      Src: /src/botan/src/cli/timing_tests.cpp:258,1
    - Dst: unlock
      Src: /src/botan/src/cli/timing_tests.cpp:258,1
    - Dst: set_associated_data
      Src: /src/botan/src/cli/timing_tests.cpp:259,1
    - Dst: start
      Src: /src/botan/src/cli/timing_tests.cpp:260,1
    - Dst: unlock
      Src: /src/botan/src/cli/timing_tests.cpp:260,1
    - Dst: finish
      Src: /src/botan/src/cli/timing_tests.cpp:264,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 267
    functionName: Botan_CLI::Lucky13_Timing_Test::measure_critical_function
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - unlock
    - start
    - finish
    - TimingTestTimer::complete
    - set_key
    - end
    - begin
    - set_associated_data
    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:288,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:289,1
    - Dst: _private_key
      Src: /src/botan/src/cli/timing_tests.cpp:290,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/cli/timing_tests.cpp:291,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:291,1
    - Dst: invert
      Src: /src/botan/src/cli/timing_tests.cpp:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ecgroup'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 292
    functionName: Botan_CLI::ECDSA_Timing_Test::ECDSA_Timing_Test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - timing_test_rng
    - invert
    - _private_key
    - Botan::EC_Group::from_name
    - Botan::EC_Scalar::random
    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:295,1
    - Dst: Botan::EC_Scalar::from_bytes_with_trunc
      Src: /src/botan/src/cli/timing_tests.cpp:297,1
    - Dst: Botan::EC_Scalar::gk_x_mod_order
      Src: /src/botan/src/cli/timing_tests.cpp:302,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:302,1
    - Dst: auto::invert
      Src: /src/botan/src/cli/timing_tests.cpp:303,1
    - Dst: square_self
      Src: /src/botan/src/cli/timing_tests.cpp:304,1
    - Dst: square_self
      Src: /src/botan/src/cli/timing_tests.cpp:305,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/cli/timing_tests.cpp:308,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 311
    functionName: Botan_CLI::ECDSA_Timing_Test::measure_critical_function
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - timing_test_rng
    - square_self
    - TimingTestTimer::complete
    - BOTAN_UNUSED
    - auto::invert
    - Botan::EC_Scalar::from_bytes_with_trunc
    - Botan::EC_Scalar::gk_x_mod_order
    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:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ecgroup
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 319
    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:328,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/cli/timing_tests.cpp:331,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:331,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 333
    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
    - timing_test_rng
    - Botan::EC_AffinePoint::g_mul
    - 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:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - dl_group
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 341
    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:350,1
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:350,1
    - Dst: p_bits
      Src: /src/botan/src/cli/timing_tests.cpp:351,1
    - Dst: power_g_p
      Src: /src/botan/src/cli/timing_tests.cpp:355,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 358
    functionName: Botan_CLI::Powmod_Timing_Test::measure_critical_function
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - data
    - power_g_p
    - size
    - TimingTestTimer::complete
    - p_bits
    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:366,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p_bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 366
    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:375,1
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:375,1
    - Dst: Botan::inverse_mod_secret_prime
      Src: /src/botan/src/cli/timing_tests.cpp:378,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 380
    functionName: Botan_CLI::Invmod_Timing_Test::measure_critical_function
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - TimingTestTimer::complete
    - size
    - Botan::inverse_mod_secret_prime
    - data
    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:387,1
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:388,1
    - Dst: reserve
      Src: /src/botan/src/cli/timing_tests.cpp:391,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/timing_tests.cpp:394,1
    - Dst: Botan_CLI::Timing_Test::prepare_input
      Src: /src/botan/src/cli/timing_tests.cpp:395,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/timing_tests.cpp:400,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/timing_tests.cpp:404,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/timing_tests.cpp:407,1
    - Dst: measure_critical_function
      Src: /src/botan/src/cli/timing_tests.cpp:408,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/timing_tests.cpp:414,1
    - Dst: push_back
      Src: /src/botan/src/cli/timing_tests.cpp:415,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: 421
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 421
    functionName: Botan_CLI::Timing_Test::execute_evaluation
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - reserve
    - CLI_Error
    - size
    - measure_critical_function
    - push_back
    - std::vector::size
    - Botan_CLI::Timing_Test::prepare_input
    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: 428
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 428
    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: 430
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 430
    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: 432
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 432
    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:435,1
    - Dst: get_arg_sz
      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: Botan_CLI::Timing_Test_Command::lookup_timing_test
      Src: /src/botan/src/cli/timing_tests.cpp:439,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/timing_tests.cpp:442,1
    - Dst: get_arg_or
      Src: /src/botan/src/cli/timing_tests.cpp:445,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/timing_tests.cpp:447,1
    - Dst: get_arg
      Src: /src/botan/src/cli/timing_tests.cpp:448,1
    - Dst: Botan_CLI::Timing_Test_Command::read_testdata
      Src: /src/botan/src/cli/timing_tests.cpp:452,1
    - Dst: std::unique_ptr::execute_evaluation
      Src: /src/botan/src/cli/timing_tests.cpp:454,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/timing_tests.cpp:458,1
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:459,1
    - Dst: output
      Src: /src/botan/src/cli/timing_tests.cpp:464,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/timing_tests.cpp:464,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 465
    functionName: Botan_CLI::Timing_Test_Command::go
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - std::unique_ptr::execute_evaluation
    - get_arg_sz
    - output
    - Botan_CLI::Timing_Test_Command::lookup_timing_test
    - CLI_Error
    - size
    - std::ostringstream::str
    - std::string::empty
    - get_arg_or
    - 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:471,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/timing_tests.cpp:472,1
    - Dst: std::getline
      Src: /src/botan/src/cli/timing_tests.cpp:475,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/timing_tests.cpp:476,1
    - Dst: std::string::at
      Src: /src/botan/src/cli/timing_tests.cpp:476,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/timing_tests.cpp:477,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - ' filename'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 481
    functionName: Botan_CLI::Timing_Test_Command::read_testdata
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 1
    functionsReached:
    - std::vector::push_back
    - std::ifstream::good
    - CLI_Error
    - std::string::at
    - std::string::empty
    - 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:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 499
    functionName: Botan_CLI::Timing_Test_Command::help_text
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 3
    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:505,1
    - Dst: std::make_unique<Manger_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:511,1
    - Dst: std::make_unique<ECDSA_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:517,1
    - Dst: std::make_unique<ECC_Mul_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:523,1
    - Dst: std::make_unique<Invmod_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:529,1
    - Dst: std::make_unique<Powmod_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:535,1
    - Dst: std::make_unique<Lucky13_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:541,1
    - Dst: std::make_unique<Lucky13_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:544,1
    - Dst: std::make_unique<Lucky13_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:547,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/cli/timing_tests.cpp:551,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 1
    argNames:
    - test_type
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 554
    functionName: Botan_CLI::Timing_Test_Command::lookup_timing_test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 1
    functionsReached:
    - std::make_unique<ECC_Mul_Timing_Test>
    - std::make_unique<Invmod_Timing_Test>
    - std::make_unique<Powmod_Timing_Test>
    - std::make_unique<ECDSA_Timing_Test>
    - std::make_unique<Lucky13_Timing_Test>
    - std::make_unique<Bleichenbacker_Timing_Test>
    - BOTAN_UNUSED
    - std::make_unique<Manger_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: 564
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 564
    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: 566
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 566
    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: 568
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 568
    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: 573
      start: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 573
    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:577,1
    - Dst: get_arg
      Src: /src/botan/src/cli/timing_tests.cpp:578,1
    - Dst: Botan_CLI::MARVIN_Test_Command::parse_runs_arg
      Src: /src/botan/src/cli/timing_tests.cpp:579,1
    - Dst: get_arg
      Src: /src/botan/src/cli/timing_tests.cpp:579,1
    - Dst: get_arg_sz
      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: flag_set
      Src: /src/botan/src/cli/timing_tests.cpp:582,1
    - Dst: ::setenv
      Src: /src/botan/src/cli/timing_tests.cpp:585,1
    - Dst: sigemptyset
      Src: /src/botan/src/cli/timing_tests.cpp:590,1
    - Dst: ::sigaction
      Src: /src/botan/src/cli/timing_tests.cpp:593,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/timing_tests.cpp:595,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/timing_tests.cpp:600,1
    - Dst: auto::algo_name
      Src: /src/botan/src/cli/timing_tests.cpp:602,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/timing_tests.cpp:603,1
    - Dst: auto::key_length
      Src: /src/botan/src/cli/timing_tests.cpp:606,1
    - Dst: Botan::get_files_recursive
      Src: /src/botan/src/cli/timing_tests.cpp:611,1
    - Dst: Botan_CLI::MARVIN_Test_Command::slurp_file
      Src: /src/botan/src/cli/timing_tests.cpp:612,1
    - Dst: auto::size
      Src: /src/botan/src/cli/timing_tests.cpp:614,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/timing_tests.cpp:615,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/timing_tests.cpp:616,1
    - Dst: auto::size
      Src: /src/botan/src/cli/timing_tests.cpp:618,1
    - Dst: Botan::split_on
      Src: /src/botan/src/cli/timing_tests.cpp:622,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/timing_tests.cpp:624,1
    - Dst: auto::size
      Src: /src/botan/src/cli/timing_tests.cpp:624,1
    - Dst: std::vector::insert
      Src: /src/botan/src/cli/timing_tests.cpp:625,1
    - Dst: std::vector::end
      Src: /src/botan/src/cli/timing_tests.cpp:625,1
    - Dst: auto::begin
      Src: /src/botan/src/cli/timing_tests.cpp:625,1
    - Dst: auto::end
      Src: /src/botan/src/cli/timing_tests.cpp:625,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/timing_tests.cpp:628,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/timing_tests.cpp:629,1
    - Dst: output
      Src: /src/botan/src/cli/timing_tests.cpp:632,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/timing_tests.cpp:634,1
    - Dst: Botan::ChaCha_RNG::ChaCha_RNG
      Src: /src/botan/src/cli/timing_tests.cpp:637,1
    - Dst: Botan::system_rng
      Src: /src/botan/src/cli/timing_tests.cpp:637,1
    - Dst: Botan::system_rng
      Src: /src/botan/src/cli/timing_tests.cpp:639,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/timing_tests.cpp:646,1
    - Dst: reserve
      Src: /src/botan/src/cli/timing_tests.cpp:651,1
    - Dst: Botan_CLI::MARVIN_Test_Command::shuffle
      Src: /src/botan/src/cli/timing_tests.cpp:664,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/cli/timing_tests.cpp:669,1
    - Dst: Botan::CT::conditional_assign_mem
      Src: /src/botan/src/cli/timing_tests.cpp:671,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/timing_tests.cpp:671,1
    - Dst: Botan::PK_Decryptor_EME::decrypt_or_random
      Src: /src/botan/src/cli/timing_tests.cpp:675,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/timing_tests.cpp:675,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:676,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/timing_tests.cpp:677,1
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:677,1
    - Dst: push_back
      Src: /src/botan/src/cli/timing_tests.cpp:678,1
    - Dst: Botan_CLI::MARVIN_Test_Command::report_results
      Src: /src/botan/src/cli/timing_tests.cpp:691,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 576
    functionDepth: 1
    functionLinenumber: 576
    functionLinenumberEnd: 692
    functionName: Botan_CLI::MARVIN_Test_Command::go
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - auto::end
    - std::vector::end
    - push_back
    - Botan::system_rng
    - Botan::CT::conditional_assign_mem
    - auto::size
    - std::vector::insert
    - flag_set
    - Botan_CLI::MARVIN_Test_Command::report_results
    - Botan_CLI::MARVIN_Test_Command::shuffle
    - Botan_CLI::MARVIN_Test_Command::parse_runs_arg
    - std::vector::data
    - auto::key_length
    - ::setenv
    - CLI_Usage_Error
    - output
    - get_arg
    - get_arg_sz
    - std::vector::push_back
    - reserve
    - CLI_Error
    - Botan::PKCS8::load_key
    - Botan::get_files_recursive
    - Botan::split_on
    - std::vector::empty
    - sigemptyset
    - std::vector::size
    - Botan::PK_Decryptor_EME::decrypt_or_random
    - auto::begin
    - Botan::fmt
    - Botan::ChaCha_RNG::ChaCha_RNG
    - ::sigaction
    - size
    - TimingTestTimer::complete
    - Botan::ct_is_equal
    - Botan_CLI::MARVIN_Test_Command::slurp_file
    - auto::algo_name
    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:700,1
    - Dst: std::span<const std::string>::size
      Src: /src/botan/src/cli/timing_tests.cpp:709,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/timing_tests.cpp:718,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: 724
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 724
    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:727,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/timing_tests.cpp:728,1
    - Dst: ends_with
      Src: /src/botan/src/cli/timing_tests.cpp:731,1
    - Dst: ends_with
      Src: /src/botan/src/cli/timing_tests.cpp:731,1
    - Dst: Botan_CLI::MARVIN_Test_Command::parse_runs_arg
      Src: /src/botan/src/cli/timing_tests.cpp:732,1
    - Dst: substr
      Src: /src/botan/src/cli/timing_tests.cpp:732,1
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:732,1
    - Dst: ends_with
      Src: /src/botan/src/cli/timing_tests.cpp:733,1
    - Dst: ends_with
      Src: /src/botan/src/cli/timing_tests.cpp:733,1
    - Dst: Botan_CLI::MARVIN_Test_Command::parse_runs_arg
      Src: /src/botan/src/cli/timing_tests.cpp:734,1
    - Dst: substr
      Src: /src/botan/src/cli/timing_tests.cpp:734,1
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:734,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/cli/timing_tests.cpp:737,1
    - Dst: std::stoul
      Src: /src/botan/src/cli/timing_tests.cpp:737,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/timing_tests.cpp:739,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - ' param'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 726
    functionDepth: 1
    functionLinenumber: 726
    functionLinenumberEnd: 742
    functionName: Botan_CLI::MARVIN_Test_Command::parse_runs_arg
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 2
    functionsReached:
    - substr
    - static_cast<size_t>
    - Botan_CLI::MARVIN_Test_Command::parse_runs_arg
    - size
    - std::stoul
    - ends_with
    - CLI_Usage_Error
    - starts_with
    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:746,1
    - Dst: randomize
      Src: /src/botan/src/cli/timing_tests.cpp:749,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/cli/timing_tests.cpp:750,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/cli/timing_tests.cpp:751,1
    - Dst: std::swap
      Src: /src/botan/src/cli/timing_tests.cpp:752,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' vec'
    - ' rng'
    argTypes:
    - std::vector<T>
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 745
    functionDepth: 0
    functionLinenumber: 745
    functionLinenumberEnd: 754
    functionName: Botan_CLI::MARVIN_Test_Command::shuffle
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 1
    functionsReached:
    - Botan::load_le<uint64_t>
    - static_cast<size_t>
    - randomize
    - std::swap
    - size
    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:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 89
    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:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 91
    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:96,1
    - Dst: std::chrono::duration_cast<std::chrono::nanoseconds>
      Src: /src/botan/src/cli/timing_tests.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: Botan_CLI::TimingTestTimer::get_high_resolution_clock
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 6
    functionsReached:
    - Botan::TLS::detail::AsyncBase::complete_now
    - std::chrono::duration_cast<std::chrono::nanoseconds>
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_high_resolution_clock()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::TimingTestTimer::get_high_resolution_clock
      Src: /src/botan/src/cli/timing_tests.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 89
    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:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 91
    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:96,1
    - Dst: std::chrono::duration_cast<std::chrono::nanoseconds>
      Src: /src/botan/src/cli/timing_tests.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: Botan_CLI::TimingTestTimer::get_high_resolution_clock
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 8
    functionsReached:
    - Botan::TLS::detail::AsyncBase::complete_now
    - std::chrono::duration_cast<std::chrono::nanoseconds>
    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:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 114
    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: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    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: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    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: 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(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: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    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: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    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:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 127
    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: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    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:143,1
    - Dst: public_key
      Src: /src/botan/src/cli/timing_tests.cpp:144,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:145,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - keysize
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 146
    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:149,1
    - Dst: encrypt
      Src: /src/botan/src/cli/timing_tests.cpp:150,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 151
    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:155,1
    - Dst: data
      Src: /src/botan/src/cli/timing_tests.cpp:155,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:155,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: Botan_CLI::Bleichenbacker_Timing_Test::measure_critical_function
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - data
    - timing_test_rng
    - TimingTestTimer::complete
    - 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:182,1
    - Dst: public_key
      Src: /src/botan/src/cli/timing_tests.cpp:183,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:184,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - keysize
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 185
    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:188,1
    - Dst: encrypt
      Src: /src/botan/src/cli/timing_tests.cpp:189,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 190
    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:195,1
    - Dst: data
      Src: /src/botan/src/cli/timing_tests.cpp:195,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 198
    functionName: Botan_CLI::Manger_Timing_Test::measure_critical_function
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - decrypt
    - TimingTestTimer::complete
    - data
    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:222,1
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/cli/timing_tests.cpp:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' mac_name'
    - mac_keylen
    argTypes:
    - std::string
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 227
    functionName: Botan_CLI::Lucky13_Timing_Test::Lucky13_Timing_Test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::BlockCipher::create_or_throw
    - Botan::MessageAuthenticationCode::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:239,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/cli/timing_tests.cpp:243,1
    - Dst: auto::set_key
      Src: /src/botan/src/cli/timing_tests.cpp:244,1
    - Dst: auto::start
      Src: /src/botan/src/cli/timing_tests.cpp:245,1
    - Dst: std::vector::begin
      Src: /src/botan/src/cli/timing_tests.cpp:246,1
    - Dst: std::vector::end
      Src: /src/botan/src/cli/timing_tests.cpp:246,1
    - Dst: auto::finish
      Src: /src/botan/src/cli/timing_tests.cpp:247,1
    - Dst: unlock
      Src: /src/botan/src/cli/timing_tests.cpp:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 250
    functionName: Botan_CLI::Lucky13_Timing_Test::prepare_input
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - std::vector::begin
    - auto::set_key
    - std::vector::end
    - auto::start
    - Botan::Cipher_Mode::create
    - unlock
    - auto::finish
    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:253,1
    - Dst: end
      Src: /src/botan/src/cli/timing_tests.cpp:253,1
    - Dst: set_key
      Src: /src/botan/src/cli/timing_tests.cpp:258,1
    - Dst: unlock
      Src: /src/botan/src/cli/timing_tests.cpp:258,1
    - Dst: set_associated_data
      Src: /src/botan/src/cli/timing_tests.cpp:259,1
    - Dst: start
      Src: /src/botan/src/cli/timing_tests.cpp:260,1
    - Dst: unlock
      Src: /src/botan/src/cli/timing_tests.cpp:260,1
    - Dst: finish
      Src: /src/botan/src/cli/timing_tests.cpp:264,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 267
    functionName: Botan_CLI::Lucky13_Timing_Test::measure_critical_function
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - unlock
    - start
    - finish
    - TimingTestTimer::complete
    - set_key
    - end
    - begin
    - set_associated_data
    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:288,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:289,1
    - Dst: _private_key
      Src: /src/botan/src/cli/timing_tests.cpp:290,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/cli/timing_tests.cpp:291,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:291,1
    - Dst: invert
      Src: /src/botan/src/cli/timing_tests.cpp:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ecgroup'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 287
    functionDepth: 1
    functionLinenumber: 287
    functionLinenumberEnd: 292
    functionName: Botan_CLI::ECDSA_Timing_Test::ECDSA_Timing_Test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - timing_test_rng
    - invert
    - _private_key
    - Botan::EC_Group::from_name
    - Botan::EC_Scalar::random
    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:295,1
    - Dst: Botan::EC_Scalar::from_bytes_with_trunc
      Src: /src/botan/src/cli/timing_tests.cpp:297,1
    - Dst: Botan::EC_Scalar::gk_x_mod_order
      Src: /src/botan/src/cli/timing_tests.cpp:302,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:302,1
    - Dst: auto::invert
      Src: /src/botan/src/cli/timing_tests.cpp:303,1
    - Dst: square_self
      Src: /src/botan/src/cli/timing_tests.cpp:304,1
    - Dst: square_self
      Src: /src/botan/src/cli/timing_tests.cpp:305,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/cli/timing_tests.cpp:308,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 311
    functionName: Botan_CLI::ECDSA_Timing_Test::measure_critical_function
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - timing_test_rng
    - square_self
    - TimingTestTimer::complete
    - BOTAN_UNUSED
    - auto::invert
    - Botan::EC_Scalar::from_bytes_with_trunc
    - Botan::EC_Scalar::gk_x_mod_order
    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:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ecgroup
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 319
    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:328,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/cli/timing_tests.cpp:331,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:331,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 333
    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
    - timing_test_rng
    - Botan::EC_AffinePoint::g_mul
    - 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:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - dl_group
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 341
    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:350,1
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:350,1
    - Dst: p_bits
      Src: /src/botan/src/cli/timing_tests.cpp:351,1
    - Dst: power_g_p
      Src: /src/botan/src/cli/timing_tests.cpp:355,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 358
    functionName: Botan_CLI::Powmod_Timing_Test::measure_critical_function
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - data
    - power_g_p
    - size
    - TimingTestTimer::complete
    - p_bits
    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:366,1
    - Dst: timing_test_rng
      Src: /src/botan/src/cli/timing_tests.cpp:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p_bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 366
    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:375,1
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:375,1
    - Dst: Botan::inverse_mod_secret_prime
      Src: /src/botan/src/cli/timing_tests.cpp:378,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' input'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 380
    functionName: Botan_CLI::Invmod_Timing_Test::measure_critical_function
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - TimingTestTimer::complete
    - size
    - Botan::inverse_mod_secret_prime
    - data
    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:387,1
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:388,1
    - Dst: reserve
      Src: /src/botan/src/cli/timing_tests.cpp:391,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/timing_tests.cpp:394,1
    - Dst: Botan_CLI::Timing_Test::prepare_input
      Src: /src/botan/src/cli/timing_tests.cpp:395,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/timing_tests.cpp:400,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/timing_tests.cpp:404,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/timing_tests.cpp:407,1
    - Dst: measure_critical_function
      Src: /src/botan/src/cli/timing_tests.cpp:408,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/timing_tests.cpp:414,1
    - Dst: push_back
      Src: /src/botan/src/cli/timing_tests.cpp:415,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: 421
      start: 384
    functionDepth: 2
    functionLinenumber: 384
    functionLinenumberEnd: 421
    functionName: Botan_CLI::Timing_Test::execute_evaluation
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - reserve
    - CLI_Error
    - size
    - measure_critical_function
    - push_back
    - std::vector::size
    - Botan_CLI::Timing_Test::prepare_input
    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: 428
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 428
    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: 430
      start: 430
    functionDepth: 0
    functionLinenumber: 430
    functionLinenumberEnd: 430
    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: 432
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 432
    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:435,1
    - Dst: get_arg_sz
      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: Botan_CLI::Timing_Test_Command::lookup_timing_test
      Src: /src/botan/src/cli/timing_tests.cpp:439,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/timing_tests.cpp:442,1
    - Dst: get_arg_or
      Src: /src/botan/src/cli/timing_tests.cpp:445,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/timing_tests.cpp:447,1
    - Dst: get_arg
      Src: /src/botan/src/cli/timing_tests.cpp:448,1
    - Dst: Botan_CLI::Timing_Test_Command::read_testdata
      Src: /src/botan/src/cli/timing_tests.cpp:452,1
    - Dst: std::unique_ptr::execute_evaluation
      Src: /src/botan/src/cli/timing_tests.cpp:454,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/timing_tests.cpp:458,1
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:459,1
    - Dst: output
      Src: /src/botan/src/cli/timing_tests.cpp:464,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/timing_tests.cpp:464,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 465
    functionName: Botan_CLI::Timing_Test_Command::go
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - std::unique_ptr::execute_evaluation
    - get_arg_sz
    - output
    - Botan_CLI::Timing_Test_Command::lookup_timing_test
    - CLI_Error
    - size
    - std::ostringstream::str
    - std::string::empty
    - get_arg_or
    - 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:471,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/timing_tests.cpp:472,1
    - Dst: std::getline
      Src: /src/botan/src/cli/timing_tests.cpp:475,1
    - Dst: std::string::empty
      Src: /src/botan/src/cli/timing_tests.cpp:476,1
    - Dst: std::string::at
      Src: /src/botan/src/cli/timing_tests.cpp:476,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/timing_tests.cpp:477,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - ' filename'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 481
    functionName: Botan_CLI::Timing_Test_Command::read_testdata
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 2
    functionsReached:
    - std::vector::push_back
    - std::ifstream::good
    - CLI_Error
    - std::string::at
    - std::string::empty
    - 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:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 499
    functionName: Botan_CLI::Timing_Test_Command::help_text
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 4
    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:505,1
    - Dst: std::make_unique<Manger_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:511,1
    - Dst: std::make_unique<ECDSA_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:517,1
    - Dst: std::make_unique<ECC_Mul_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:523,1
    - Dst: std::make_unique<Invmod_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:529,1
    - Dst: std::make_unique<Powmod_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:535,1
    - Dst: std::make_unique<Lucky13_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:541,1
    - Dst: std::make_unique<Lucky13_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:544,1
    - Dst: std::make_unique<Lucky13_Timing_Test>
      Src: /src/botan/src/cli/timing_tests.cpp:547,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/cli/timing_tests.cpp:551,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 1
    argNames:
    - test_type
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 502
    functionDepth: 0
    functionLinenumber: 502
    functionLinenumberEnd: 554
    functionName: Botan_CLI::Timing_Test_Command::lookup_timing_test
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 2
    functionsReached:
    - std::make_unique<ECC_Mul_Timing_Test>
    - std::make_unique<Invmod_Timing_Test>
    - std::make_unique<Powmod_Timing_Test>
    - std::make_unique<ECDSA_Timing_Test>
    - std::make_unique<Lucky13_Timing_Test>
    - std::make_unique<Bleichenbacker_Timing_Test>
    - BOTAN_UNUSED
    - std::make_unique<Manger_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: 564
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 564
    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: 566
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 566
    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: 568
      start: 568
    functionDepth: 0
    functionLinenumber: 568
    functionLinenumberEnd: 568
    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: 573
      start: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 573
    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:577,1
    - Dst: get_arg
      Src: /src/botan/src/cli/timing_tests.cpp:578,1
    - Dst: Botan_CLI::MARVIN_Test_Command::parse_runs_arg
      Src: /src/botan/src/cli/timing_tests.cpp:579,1
    - Dst: get_arg
      Src: /src/botan/src/cli/timing_tests.cpp:579,1
    - Dst: get_arg_sz
      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: flag_set
      Src: /src/botan/src/cli/timing_tests.cpp:582,1
    - Dst: ::setenv
      Src: /src/botan/src/cli/timing_tests.cpp:585,1
    - Dst: sigemptyset
      Src: /src/botan/src/cli/timing_tests.cpp:590,1
    - Dst: ::sigaction
      Src: /src/botan/src/cli/timing_tests.cpp:593,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/timing_tests.cpp:595,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/timing_tests.cpp:600,1
    - Dst: auto::algo_name
      Src: /src/botan/src/cli/timing_tests.cpp:602,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/timing_tests.cpp:603,1
    - Dst: auto::key_length
      Src: /src/botan/src/cli/timing_tests.cpp:606,1
    - Dst: Botan::get_files_recursive
      Src: /src/botan/src/cli/timing_tests.cpp:611,1
    - Dst: Botan_CLI::MARVIN_Test_Command::slurp_file
      Src: /src/botan/src/cli/timing_tests.cpp:612,1
    - Dst: auto::size
      Src: /src/botan/src/cli/timing_tests.cpp:614,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/timing_tests.cpp:615,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/timing_tests.cpp:616,1
    - Dst: auto::size
      Src: /src/botan/src/cli/timing_tests.cpp:618,1
    - Dst: Botan::split_on
      Src: /src/botan/src/cli/timing_tests.cpp:622,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/timing_tests.cpp:624,1
    - Dst: auto::size
      Src: /src/botan/src/cli/timing_tests.cpp:624,1
    - Dst: std::vector::insert
      Src: /src/botan/src/cli/timing_tests.cpp:625,1
    - Dst: std::vector::end
      Src: /src/botan/src/cli/timing_tests.cpp:625,1
    - Dst: auto::begin
      Src: /src/botan/src/cli/timing_tests.cpp:625,1
    - Dst: auto::end
      Src: /src/botan/src/cli/timing_tests.cpp:625,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/timing_tests.cpp:628,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/timing_tests.cpp:629,1
    - Dst: output
      Src: /src/botan/src/cli/timing_tests.cpp:632,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/timing_tests.cpp:634,1
    - Dst: Botan::ChaCha_RNG::ChaCha_RNG
      Src: /src/botan/src/cli/timing_tests.cpp:637,1
    - Dst: Botan::system_rng
      Src: /src/botan/src/cli/timing_tests.cpp:637,1
    - Dst: Botan::system_rng
      Src: /src/botan/src/cli/timing_tests.cpp:639,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/timing_tests.cpp:646,1
    - Dst: reserve
      Src: /src/botan/src/cli/timing_tests.cpp:651,1
    - Dst: Botan_CLI::MARVIN_Test_Command::shuffle
      Src: /src/botan/src/cli/timing_tests.cpp:664,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/cli/timing_tests.cpp:669,1
    - Dst: Botan::CT::conditional_assign_mem
      Src: /src/botan/src/cli/timing_tests.cpp:671,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/timing_tests.cpp:671,1
    - Dst: Botan::PK_Decryptor_EME::decrypt_or_random
      Src: /src/botan/src/cli/timing_tests.cpp:675,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/timing_tests.cpp:675,1
    - Dst: TimingTestTimer::complete
      Src: /src/botan/src/cli/timing_tests.cpp:676,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/cli/timing_tests.cpp:677,1
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:677,1
    - Dst: push_back
      Src: /src/botan/src/cli/timing_tests.cpp:678,1
    - Dst: Botan_CLI::MARVIN_Test_Command::report_results
      Src: /src/botan/src/cli/timing_tests.cpp:691,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 576
    functionDepth: 2
    functionLinenumber: 576
    functionLinenumberEnd: 692
    functionName: Botan_CLI::MARVIN_Test_Command::go
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - auto::end
    - std::vector::end
    - push_back
    - Botan::system_rng
    - Botan::CT::conditional_assign_mem
    - auto::size
    - std::vector::insert
    - flag_set
    - Botan_CLI::MARVIN_Test_Command::report_results
    - Botan_CLI::MARVIN_Test_Command::shuffle
    - Botan_CLI::MARVIN_Test_Command::parse_runs_arg
    - std::vector::data
    - auto::key_length
    - ::setenv
    - CLI_Usage_Error
    - output
    - get_arg
    - get_arg_sz
    - std::vector::push_back
    - reserve
    - CLI_Error
    - Botan::PKCS8::load_key
    - Botan::get_files_recursive
    - Botan::split_on
    - std::vector::empty
    - sigemptyset
    - std::vector::size
    - Botan::PK_Decryptor_EME::decrypt_or_random
    - auto::begin
    - Botan::fmt
    - Botan::ChaCha_RNG::ChaCha_RNG
    - ::sigaction
    - size
    - TimingTestTimer::complete
    - Botan::ct_is_equal
    - Botan_CLI::MARVIN_Test_Command::slurp_file
    - auto::algo_name
    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:700,1
    - Dst: std::span<const std::string>::size
      Src: /src/botan/src/cli/timing_tests.cpp:709,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/timing_tests.cpp:718,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: 724
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 724
    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:727,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/timing_tests.cpp:728,1
    - Dst: ends_with
      Src: /src/botan/src/cli/timing_tests.cpp:731,1
    - Dst: ends_with
      Src: /src/botan/src/cli/timing_tests.cpp:731,1
    - Dst: Botan_CLI::MARVIN_Test_Command::parse_runs_arg
      Src: /src/botan/src/cli/timing_tests.cpp:732,1
    - Dst: substr
      Src: /src/botan/src/cli/timing_tests.cpp:732,1
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:732,1
    - Dst: ends_with
      Src: /src/botan/src/cli/timing_tests.cpp:733,1
    - Dst: ends_with
      Src: /src/botan/src/cli/timing_tests.cpp:733,1
    - Dst: Botan_CLI::MARVIN_Test_Command::parse_runs_arg
      Src: /src/botan/src/cli/timing_tests.cpp:734,1
    - Dst: substr
      Src: /src/botan/src/cli/timing_tests.cpp:734,1
    - Dst: size
      Src: /src/botan/src/cli/timing_tests.cpp:734,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/cli/timing_tests.cpp:737,1
    - Dst: std::stoul
      Src: /src/botan/src/cli/timing_tests.cpp:737,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/timing_tests.cpp:739,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - ' param'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 726
    functionDepth: 1
    functionLinenumber: 726
    functionLinenumberEnd: 742
    functionName: Botan_CLI::MARVIN_Test_Command::parse_runs_arg
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 4
    functionsReached:
    - substr
    - static_cast<size_t>
    - Botan_CLI::MARVIN_Test_Command::parse_runs_arg
    - size
    - std::stoul
    - ends_with
    - CLI_Usage_Error
    - starts_with
    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:746,1
    - Dst: randomize
      Src: /src/botan/src/cli/timing_tests.cpp:749,1
    - Dst: Botan::load_le<uint64_t>
      Src: /src/botan/src/cli/timing_tests.cpp:750,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/cli/timing_tests.cpp:751,1
    - Dst: std::swap
      Src: /src/botan/src/cli/timing_tests.cpp:752,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' vec'
    - ' rng'
    argTypes:
    - std::vector<T>
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 745
    functionDepth: 0
    functionLinenumber: 745
    functionLinenumberEnd: 754
    functionName: Botan_CLI::MARVIN_Test_Command::shuffle
    functionSourceFile: /src/botan/src/cli/timing_tests.cpp
    functionUses: 2
    functionsReached:
    - Botan::load_le<uint64_t>
    - static_cast<size_t>
    - randomize
    - std::swap
    - size
    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: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    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: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    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: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    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:31,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tss.cpp:32,1
    - 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_sz
      Src: /src/botan/src/cli/tss.cpp:36,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/tss.cpp:37,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/tss.cpp:40,1
    - Dst: Botan_CLI::TSS_Split::slurp_file_lvec
      Src: /src/botan/src/cli/tss.cpp:43,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/tss.cpp:45,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/tss.cpp:46,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/tss.cpp:49,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/tss.cpp:51,1
    - Dst: std::vector::resize
      Src: /src/botan/src/cli/tss.cpp:52,1
    - Dst: rng
      Src: /src/botan/src/cli/tss.cpp:53,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/tss.cpp:53,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/tss.cpp:53,1
    - Dst: Botan::RTSS_Share::split
      Src: /src/botan/src/cli/tss.cpp:56,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/cli/tss.cpp:56,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/cli/tss.cpp:57,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/cli/tss.cpp:58,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/cli/tss.cpp:59,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/tss.cpp:59,1
    - Dst: rng
      Src: /src/botan/src/cli/tss.cpp:62,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/tss.cpp:64,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tss.cpp:65,1
    - Dst: std::string::c_str
      Src: /src/botan/src/cli/tss.cpp:66,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/tss.cpp:68,1
    - Dst: std::ofstream::write
      Src: /src/botan/src/cli/tss.cpp:71,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/tss.cpp:71,1
    - Dst: data
      Src: /src/botan/src/cli/tss.cpp:71,1
    - Dst: data
      Src: /src/botan/src/cli/tss.cpp:71,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 73
    functionName: Botan_CLI::TSS_Split::go
    functionSourceFile: /src/botan/src/cli/tss.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - static_cast<uint16_t>
    - Botan::secure_vector::data
    - reinterpret_cast<const char*>
    - Botan::secure_vector::size
    - std::ofstream::write
    - rng
    - data
    - std::vector::data
    - CLI_Usage_Error
    - Botan_CLI::TSS_Split::slurp_file_lvec
    - get_arg
    - get_arg_sz
    - CLI_Error
    - static_cast<uint8_t>
    - std::vector::empty
    - std::vector::resize
    - std::vector::size
    - Botan::fmt
    - std::string::c_str
    - Botan::RTSS_Share::split
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/cli/tss.cpp:78,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/cli/tss.cpp:78,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/tss.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' input_file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: Botan_CLI::TSS_Split::slurp_file_lvec
    functionSourceFile: /src/botan/src/cli/tss.cpp
    functionUses: 1
    functionsReached:
    - Botan::secure_vector::end
    - Botan::secure_vector::insert
    - 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: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    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: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    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: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    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:95,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/tss.cpp:97,1
    - Dst: output
      Src: /src/botan/src/cli/tss.cpp:98,1
    - Dst: help_text
      Src: /src/botan/src/cli/tss.cpp:98,1
    - Dst: Botan_CLI::TSS_Recover::set_return_code
      Src: /src/botan/src/cli/tss.cpp:99,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/tss.cpp:105,1
    - Dst: slurp_file
      Src: /src/botan/src/cli/tss.cpp:106,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/tss.cpp:107,1
    - Dst: Botan::RTSS_Share
      Src: /src/botan/src/cli/tss.cpp:107,1
    - Dst: auto::data
      Src: /src/botan/src/cli/tss.cpp:107,1
    - Dst: auto::size
      Src: /src/botan/src/cli/tss.cpp:107,1
    - Dst: Botan::RTSS_Share::reconstruct
      Src: /src/botan/src/cli/tss.cpp:110,1
    - Dst: output
      Src: /src/botan/src/cli/tss.cpp:112,1
    - Dst: Botan::cast_uint8_ptr_to_char
      Src: /src/botan/src/cli/tss.cpp:112,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/cli/tss.cpp:112,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/tss.cpp:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 94
    functionDepth: 3
    functionLinenumber: 94
    functionLinenumberEnd: 113
    functionName: Botan_CLI::TSS_Recover::go
    functionSourceFile: /src/botan/src/cli/tss.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - std::vector::push_back
    - slurp_file
    - Botan::cast_uint8_ptr_to_char
    - Botan::RTSS_Share::reconstruct
    - get_arg_list
    - Botan::secure_vector::size
    - help_text
    - std::vector::empty
    - Botan::secure_vector::data
    - Botan::RTSS_Share
    - Botan_CLI::TSS_Recover::set_return_code
    - output
    - auto::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: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    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: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    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: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    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:31,1
    - Dst: get_arg
      Src: /src/botan/src/cli/tss.cpp:32,1
    - 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_sz
      Src: /src/botan/src/cli/tss.cpp:36,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/tss.cpp:37,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/tss.cpp:40,1
    - Dst: Botan_CLI::TSS_Split::slurp_file_lvec
      Src: /src/botan/src/cli/tss.cpp:43,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/tss.cpp:45,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/tss.cpp:46,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/tss.cpp:49,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/tss.cpp:51,1
    - Dst: std::vector::resize
      Src: /src/botan/src/cli/tss.cpp:52,1
    - Dst: rng
      Src: /src/botan/src/cli/tss.cpp:53,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/tss.cpp:53,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/tss.cpp:53,1
    - Dst: Botan::RTSS_Share::split
      Src: /src/botan/src/cli/tss.cpp:56,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/cli/tss.cpp:56,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/cli/tss.cpp:57,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/cli/tss.cpp:58,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/cli/tss.cpp:59,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/tss.cpp:59,1
    - Dst: rng
      Src: /src/botan/src/cli/tss.cpp:62,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/tss.cpp:64,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/tss.cpp:65,1
    - Dst: std::string::c_str
      Src: /src/botan/src/cli/tss.cpp:66,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/tss.cpp:68,1
    - Dst: std::ofstream::write
      Src: /src/botan/src/cli/tss.cpp:71,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/tss.cpp:71,1
    - Dst: data
      Src: /src/botan/src/cli/tss.cpp:71,1
    - Dst: data
      Src: /src/botan/src/cli/tss.cpp:71,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 73
    functionName: Botan_CLI::TSS_Split::go
    functionSourceFile: /src/botan/src/cli/tss.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - static_cast<uint16_t>
    - Botan::secure_vector::data
    - reinterpret_cast<const char*>
    - Botan::secure_vector::size
    - std::ofstream::write
    - rng
    - data
    - std::vector::data
    - CLI_Usage_Error
    - Botan_CLI::TSS_Split::slurp_file_lvec
    - get_arg
    - get_arg_sz
    - CLI_Error
    - static_cast<uint8_t>
    - std::vector::empty
    - std::vector::resize
    - std::vector::size
    - Botan::fmt
    - std::string::c_str
    - Botan::RTSS_Share::split
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::secure_vector::insert
      Src: /src/botan/src/cli/tss.cpp:78,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/cli/tss.cpp:78,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/tss.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' input_file'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: Botan_CLI::TSS_Split::slurp_file_lvec
    functionSourceFile: /src/botan/src/cli/tss.cpp
    functionUses: 2
    functionsReached:
    - Botan::secure_vector::end
    - Botan::secure_vector::insert
    - 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: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    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: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    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: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    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:95,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/tss.cpp:97,1
    - Dst: output
      Src: /src/botan/src/cli/tss.cpp:98,1
    - Dst: help_text
      Src: /src/botan/src/cli/tss.cpp:98,1
    - Dst: Botan_CLI::TSS_Recover::set_return_code
      Src: /src/botan/src/cli/tss.cpp:99,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/tss.cpp:105,1
    - Dst: slurp_file
      Src: /src/botan/src/cli/tss.cpp:106,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/tss.cpp:107,1
    - Dst: Botan::RTSS_Share
      Src: /src/botan/src/cli/tss.cpp:107,1
    - Dst: auto::data
      Src: /src/botan/src/cli/tss.cpp:107,1
    - Dst: auto::size
      Src: /src/botan/src/cli/tss.cpp:107,1
    - Dst: Botan::RTSS_Share::reconstruct
      Src: /src/botan/src/cli/tss.cpp:110,1
    - Dst: output
      Src: /src/botan/src/cli/tss.cpp:112,1
    - Dst: Botan::cast_uint8_ptr_to_char
      Src: /src/botan/src/cli/tss.cpp:112,1
    - Dst: Botan::secure_vector::data
      Src: /src/botan/src/cli/tss.cpp:112,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/cli/tss.cpp:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 94
    functionDepth: 3
    functionLinenumber: 94
    functionLinenumberEnd: 113
    functionName: Botan_CLI::TSS_Recover::go
    functionSourceFile: /src/botan/src/cli/tss.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - std::vector::push_back
    - slurp_file
    - Botan::cast_uint8_ptr_to_char
    - Botan::RTSS_Share::reconstruct
    - get_arg_list
    - Botan::secure_vector::size
    - help_text
    - std::vector::empty
    - Botan::secure_vector::data
    - Botan::RTSS_Share
    - Botan_CLI::TSS_Recover::set_return_code
    - output
    - auto::size
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/cli/timer.cpp:22,1
    - Dst: std::string
      Src: /src/botan/src/cli/timer.cpp:23,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/timer.cpp:28,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - name
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 29
    functionName: Botan_CLI::format_timer_name
    functionSourceFile: /src/botan/src/cli/timer.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - std::string
    - std::string_view::empty
    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:22,1
    - Dst: std::string
      Src: /src/botan/src/cli/timer.cpp:23,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/timer.cpp:28,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - name
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 29
    functionName: Botan_CLI::format_timer_name
    functionSourceFile: /src/botan/src/cli/timer.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - std::string
    - std::string_view::empty
    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:40,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: 45
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 45
    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:48,1
    - Dst: Botan_CLI::Timer::timestamp_ns
      Src: /src/botan/src/cli/timer.cpp:49,1
    - Dst: Botan_CLI::Timer::cycle_counter
      Src: /src/botan/src/cli/timer.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: Botan_CLI::Timer::start
    functionSourceFile: /src/botan/src/cli/timer.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timer::timestamp_ns
    - Botan_CLI::Timer::cycle_counter
    - Botan_CLI::Timer::stop
    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:54,1
    - Dst: std::chrono::duration_cast<std::chrono::nanoseconds>
      Src: /src/botan/src/cli/timer.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_CLI::Timer::timestamp_ns
    functionSourceFile: /src/botan/src/cli/timer.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::detail::AsyncBase::complete_now
    - std::chrono::duration_cast<std::chrono::nanoseconds>
    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:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 64
    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:68,1
    - Dst: Botan_CLI::Timer::cycle_counter
      Src: /src/botan/src/cli/timer.cpp:75,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/cli/timer.cpp:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 84
    functionName: Botan_CLI::Timer::stop
    functionSourceFile: /src/botan/src/cli/timer.cpp
    functionUses: 1
    functionsReached:
    - Botan_CLI::Timer::timestamp_ns
    - Botan_CLI::Timer::cycle_counter
    - static_cast<size_t>
    linkageType: ''
    returnType: void
    signature: void Timer::stop()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - 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::doing
      Src: /src/botan/src/cli/timer.cpp:88,1
    - Dst: doing
      Src: /src/botan/src/cli/timer.cpp:88,1
    - Dst: Timer::get_name
      Src: /src/botan/src/cli/timer.cpp:91,1
    - Dst: get_name
      Src: /src/botan/src/cli/timer.cpp:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Timer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: Timer::operator<(const Timer& other) const
    functionSourceFile: /src/botan/src/cli/timer.cpp
    functionUses: 0
    functionsReached:
    - Timer::doing
    - get_name
    - Timer::get_name
    - doing
    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:22,1
    - Dst: std::string
      Src: /src/botan/src/cli/timer.cpp:23,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/timer.cpp:28,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - name
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 29
    functionName: Botan_CLI::format_timer_name
    functionSourceFile: /src/botan/src/cli/timer.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - std::string
    - std::string_view::empty
    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:22,1
    - Dst: std::string
      Src: /src/botan/src/cli/timer.cpp:23,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/timer.cpp:28,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - name
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 29
    functionName: Botan_CLI::format_timer_name
    functionSourceFile: /src/botan/src/cli/timer.cpp
    functionUses: 0
    functionsReached:
    - std::ostringstream::str
    - std::string
    - std::string_view::empty
    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:40,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: 45
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 45
    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:48,1
    - Dst: Botan_CLI::Timer::timestamp_ns
      Src: /src/botan/src/cli/timer.cpp:49,1
    - Dst: Botan_CLI::Timer::cycle_counter
      Src: /src/botan/src/cli/timer.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 3
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: Botan_CLI::Timer::start
    functionSourceFile: /src/botan/src/cli/timer.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timer::timestamp_ns
    - Botan_CLI::Timer::cycle_counter
    - Botan_CLI::Timer::stop
    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:54,1
    - Dst: std::chrono::duration_cast<std::chrono::nanoseconds>
      Src: /src/botan/src/cli/timer.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_CLI::Timer::timestamp_ns
    functionSourceFile: /src/botan/src/cli/timer.cpp
    functionUses: 3
    functionsReached:
    - Botan::TLS::detail::AsyncBase::complete_now
    - std::chrono::duration_cast<std::chrono::nanoseconds>
    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:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 64
    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:68,1
    - Dst: Botan_CLI::Timer::cycle_counter
      Src: /src/botan/src/cli/timer.cpp:75,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/cli/timer.cpp:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 84
    functionName: Botan_CLI::Timer::stop
    functionSourceFile: /src/botan/src/cli/timer.cpp
    functionUses: 2
    functionsReached:
    - Botan_CLI::Timer::timestamp_ns
    - Botan_CLI::Timer::cycle_counter
    - static_cast<size_t>
    linkageType: ''
    returnType: void
    signature: void Timer::stop()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - 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::doing
      Src: /src/botan/src/cli/timer.cpp:88,1
    - Dst: doing
      Src: /src/botan/src/cli/timer.cpp:88,1
    - Dst: Timer::get_name
      Src: /src/botan/src/cli/timer.cpp:91,1
    - Dst: get_name
      Src: /src/botan/src/cli/timer.cpp:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Timer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: Timer::operator<(const Timer& other) const
    functionSourceFile: /src/botan/src/cli/timer.cpp
    functionUses: 0
    functionsReached:
    - Timer::doing
    - get_name
    - Timer::get_name
    - doing
    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:29,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pk_misc.cpp:30,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_misc.cpp:44,1
    - Dst: auto::public_key
      Src: /src/botan/src/cli/perf_pk_misc.cpp:50,1
    - Dst: empty
      Src: /src/botan/src/cli/perf_pk_misc.cpp:52,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pk_misc.cpp:52,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_misc.cpp:54,1
    - Dst: auto::subject_public_key
      Src: /src/botan/src/cli/perf_pk_misc.cpp:55,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_pk_misc.cpp:56,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/cli/perf_pk_misc.cpp:56,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_misc.cpp:57,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_misc.cpp:59,1
    - Dst: auto::private_key_info
      Src: /src/botan/src/cli/perf_pk_misc.cpp:60,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_pk_misc.cpp:61,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/perf_pk_misc.cpp:61,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_misc.cpp:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 64
    functionName: Botan_CLI::PerfTest_PKKeyParsing::go
    functionSourceFile: /src/botan/src/cli/perf_pk_misc.cpp
    functionUses: 0
    functionsReached:
    - auto::public_key
    - rng
    - Botan::fmt
    - auto::run_until_elapsed
    - Botan::create_private_key
    - auto::private_key_info
    - Botan::PKCS8::load_key
    - empty
    - record_result
    - runtime
    - make_timer
    - auto::subject_public_key
    - Botan::X509::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:76,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pk_misc.cpp:77,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pk_misc.cpp:80,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_misc.cpp:81,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_misc.cpp:83,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_misc.cpp:85,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_misc.cpp:85,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_pk_misc.cpp:85,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_pk_misc.cpp:87,1
    - Dst: auto::check_key
      Src: /src/botan/src/cli/perf_pk_misc.cpp:87,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_misc.cpp:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 92
    functionName: Botan_CLI::PerfTest_RSAKeyGen::go
    functionSourceFile: /src/botan/src/cli/perf_pk_misc.cpp
    functionUses: 0
    functionsReached:
    - rng
    - Botan::fmt
    - auto::run
    - Botan::create_private_key
    - auto::under
    - record_result
    - runtime
    - std::to_string
    - make_timer
    - auto::check_key
    - BOTAN_ASSERT
    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:104,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pk_misc.cpp:105,1
    - Dst: ecc_groups
      Src: /src/botan/src/cli/perf_pk_misc.cpp:107,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/cli/perf_pk_misc.cpp:108,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_misc.cpp:109,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_misc.cpp:111,1
    - Dst: auto::get_order_bits
      Src: /src/botan/src/cli/perf_pk_misc.cpp:114,1
    - Dst: randomize
      Src: /src/botan/src/cli/perf_pk_misc.cpp:115,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_pk_misc.cpp:115,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_pk_misc.cpp:115,1
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/cli/perf_pk_misc.cpp:118,1
    - Dst: Botan::PK_Signer::signature
      Src: /src/botan/src/cli/perf_pk_misc.cpp:119,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/cli/perf_pk_misc.cpp:122,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_pk_misc.cpp:123,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/cli/perf_pk_misc.cpp:123,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_pk_misc.cpp:125,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_pk_misc.cpp:125,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_pk_misc.cpp:126,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_pk_misc.cpp:126,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_pk_misc.cpp:126,1
    - Dst: Botan::ECDSA_PrivateKey::recovery_param
      Src: /src/botan/src/cli/perf_pk_misc.cpp:128,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_misc.cpp:130,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_pk_misc.cpp:132,1
    - Dst: Botan::ECDSA_PublicKey::public_key_bits
      Src: /src/botan/src/cli/perf_pk_misc.cpp:132,1
    - Dst: Botan::ECDSA_PrivateKey::public_key_bits
      Src: /src/botan/src/cli/perf_pk_misc.cpp:132,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_misc.cpp:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 103
    functionDepth: 3
    functionLinenumber: 103
    functionLinenumberEnd: 139
    functionName: Botan_CLI::PerfTest_ECDSAKeyRec::go
    functionSourceFile: /src/botan/src/cli/perf_pk_misc.cpp
    functionUses: 0
    functionsReached:
    - Botan::PK_Signer::update
    - auto::get_order_bits
    - randomize
    - Botan::PK_Signer::signature
    - Botan::ECDSA_PrivateKey::public_key_bits
    - rng
    - Botan::ECDSA_PrivateKey::recovery_param
    - std::vector::data
    - Botan::PK_Verifier::update
    - auto::run
    - record_result
    - runtime
    - make_timer
    - std::vector::size
    - BOTAN_ASSERT
    - ecc_groups
    - Botan::PK_Verifier::check_signature
    - Botan::EC_Group::from_name
    - auto::under
    - Botan::ECDSA_PublicKey::public_key_bits
    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:29,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pk_misc.cpp:30,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_misc.cpp:44,1
    - Dst: auto::public_key
      Src: /src/botan/src/cli/perf_pk_misc.cpp:50,1
    - Dst: empty
      Src: /src/botan/src/cli/perf_pk_misc.cpp:52,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pk_misc.cpp:52,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_misc.cpp:54,1
    - Dst: auto::subject_public_key
      Src: /src/botan/src/cli/perf_pk_misc.cpp:55,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_pk_misc.cpp:56,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/cli/perf_pk_misc.cpp:56,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_misc.cpp:57,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_misc.cpp:59,1
    - Dst: auto::private_key_info
      Src: /src/botan/src/cli/perf_pk_misc.cpp:60,1
    - Dst: auto::run_until_elapsed
      Src: /src/botan/src/cli/perf_pk_misc.cpp:61,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/cli/perf_pk_misc.cpp:61,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_misc.cpp:62,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 64
    functionName: Botan_CLI::PerfTest_PKKeyParsing::go
    functionSourceFile: /src/botan/src/cli/perf_pk_misc.cpp
    functionUses: 0
    functionsReached:
    - auto::public_key
    - rng
    - Botan::fmt
    - auto::run_until_elapsed
    - Botan::create_private_key
    - auto::private_key_info
    - Botan::PKCS8::load_key
    - empty
    - record_result
    - runtime
    - make_timer
    - auto::subject_public_key
    - Botan::X509::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:76,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pk_misc.cpp:77,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf_pk_misc.cpp:80,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_misc.cpp:81,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_misc.cpp:83,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_misc.cpp:85,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_misc.cpp:85,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_pk_misc.cpp:85,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_pk_misc.cpp:87,1
    - Dst: auto::check_key
      Src: /src/botan/src/cli/perf_pk_misc.cpp:87,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_misc.cpp:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 75
    functionDepth: 3
    functionLinenumber: 75
    functionLinenumberEnd: 92
    functionName: Botan_CLI::PerfTest_RSAKeyGen::go
    functionSourceFile: /src/botan/src/cli/perf_pk_misc.cpp
    functionUses: 0
    functionsReached:
    - rng
    - Botan::fmt
    - auto::run
    - Botan::create_private_key
    - auto::under
    - record_result
    - runtime
    - std::to_string
    - make_timer
    - auto::check_key
    - BOTAN_ASSERT
    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:104,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pk_misc.cpp:105,1
    - Dst: ecc_groups
      Src: /src/botan/src/cli/perf_pk_misc.cpp:107,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/cli/perf_pk_misc.cpp:108,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_misc.cpp:109,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_misc.cpp:111,1
    - Dst: auto::get_order_bits
      Src: /src/botan/src/cli/perf_pk_misc.cpp:114,1
    - Dst: randomize
      Src: /src/botan/src/cli/perf_pk_misc.cpp:115,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_pk_misc.cpp:115,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_pk_misc.cpp:115,1
    - Dst: Botan::PK_Signer::update
      Src: /src/botan/src/cli/perf_pk_misc.cpp:118,1
    - Dst: Botan::PK_Signer::signature
      Src: /src/botan/src/cli/perf_pk_misc.cpp:119,1
    - Dst: Botan::PK_Verifier::update
      Src: /src/botan/src/cli/perf_pk_misc.cpp:122,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_pk_misc.cpp:123,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/cli/perf_pk_misc.cpp:123,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_pk_misc.cpp:125,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_pk_misc.cpp:125,1
    - Dst: std::vector::data
      Src: /src/botan/src/cli/perf_pk_misc.cpp:126,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_pk_misc.cpp:126,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_pk_misc.cpp:126,1
    - Dst: Botan::ECDSA_PrivateKey::recovery_param
      Src: /src/botan/src/cli/perf_pk_misc.cpp:128,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_misc.cpp:130,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_pk_misc.cpp:132,1
    - Dst: Botan::ECDSA_PublicKey::public_key_bits
      Src: /src/botan/src/cli/perf_pk_misc.cpp:132,1
    - Dst: Botan::ECDSA_PrivateKey::public_key_bits
      Src: /src/botan/src/cli/perf_pk_misc.cpp:132,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_misc.cpp:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 103
    functionDepth: 3
    functionLinenumber: 103
    functionLinenumberEnd: 139
    functionName: Botan_CLI::PerfTest_ECDSAKeyRec::go
    functionSourceFile: /src/botan/src/cli/perf_pk_misc.cpp
    functionUses: 0
    functionsReached:
    - Botan::PK_Signer::update
    - auto::get_order_bits
    - randomize
    - Botan::PK_Signer::signature
    - Botan::ECDSA_PrivateKey::public_key_bits
    - rng
    - Botan::ECDSA_PrivateKey::recovery_param
    - std::vector::data
    - Botan::PK_Verifier::update
    - auto::run
    - record_result
    - runtime
    - make_timer
    - std::vector::size
    - BOTAN_ASSERT
    - ecc_groups
    - Botan::PK_Verifier::check_signature
    - Botan::EC_Group::from_name
    - auto::under
    - Botan::ECDSA_PublicKey::public_key_bits
    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: 6
    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:
    - output
    - Botan_CLI::Command::get_arg
    - has_arg
    - good
    - Botan_CLI::Command::flag_set
    - Botan_CLI::Command::go
    - std::make_unique<std::ofstream>
    - std::make_unique<Argument_Parser>
    - Botan_CLI::Command::help_text
    - std::string::empty
    - CLI_IO_Error
    - error_output
    - what
    - parse_args
    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:
    - static_cast<uint16_t>
    - CLI_Usage_Error
    - Botan_CLI::Command::get_arg_sz
    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:
    - CLI_Usage_Error
    - static_cast<uint32_t>
    - Botan_CLI::Command::get_arg_sz
    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:
    - _fileno
    - _setmode
    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: 8
    functionsReached:
    - CLI_IO_Error
    - _fileno
    - Botan_CLI::Command::do_read_file
    - _setmode
    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
    - good
    - static_cast<size_t>
    - std::vector::data
    - read
    - std::vector::size
    - consumer_fn
    - reinterpret_cast<char*>
    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
    - std::getline
    - error_output
    - Botan::OS::suppress_echo_on_terminal
    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::base58_check_encode
    - Botan::base64_encode
    - Botan::hex_encode
    - Botan::base58_encode
    - CLI_Usage_Error
    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:
    - Command::global_registry
    - CLI_Error
    - std::make_pair
    - contains
    - insert
    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: 4
    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: 2
    functionsReached:
    - Command::global_registry
    - auto::second
    - find
    - end
    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: 6
    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:
    - output
    - Botan_CLI::Command::get_arg
    - has_arg
    - good
    - Botan_CLI::Command::flag_set
    - Botan_CLI::Command::go
    - std::make_unique<std::ofstream>
    - std::make_unique<Argument_Parser>
    - Botan_CLI::Command::help_text
    - std::string::empty
    - CLI_IO_Error
    - error_output
    - what
    - parse_args
    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:
    - static_cast<uint16_t>
    - CLI_Usage_Error
    - Botan_CLI::Command::get_arg_sz
    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:
    - CLI_Usage_Error
    - static_cast<uint32_t>
    - Botan_CLI::Command::get_arg_sz
    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:
    - _fileno
    - _setmode
    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: 10
    functionsReached:
    - CLI_IO_Error
    - _fileno
    - Botan_CLI::Command::do_read_file
    - _setmode
    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
    - good
    - static_cast<size_t>
    - std::vector::data
    - read
    - std::vector::size
    - consumer_fn
    - reinterpret_cast<char*>
    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
    - std::getline
    - error_output
    - Botan::OS::suppress_echo_on_terminal
    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::base58_check_encode
    - Botan::base64_encode
    - Botan::hex_encode
    - Botan::base58_encode
    - CLI_Usage_Error
    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:
    - Command::global_registry
    - CLI_Error
    - std::make_pair
    - contains
    - insert
    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: 4
    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: 2
    functionsReached:
    - Command::global_registry
    - auto::second
    - find
    - end
    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: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    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:25,1
    - Dst: Botan_CLI::PerfTest_PK_KEM::keygen_params
      Src: /src/botan/src/cli/perf_pk_kem.cpp:27,1
    - Dst: Botan_CLI::PerfTest_PK_KEM::format_name
      Src: /src/botan/src/cli/perf_pk_kem.cpp:30,1
    - Dst: Botan_CLI::PerfTest_PK_KEM::bench_pk_kem
      Src: /src/botan/src/cli/perf_pk_kem.cpp:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 33
    functionName: Botan_CLI::PerfTest_PK_KEM::go
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::PerfTest_PK_KEM::algo
    - Botan_CLI::PerfTest_PK_KEM::bench_pk_kem
    - Botan_CLI::PerfTest_PK_KEM::keygen_params
    - Botan_CLI::PerfTest_PK_KEM::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_kem.cpp:40,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pk_kem.cpp:41,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_kem.cpp:45,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_kem.cpp:47,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_kem.cpp:47,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_kem.cpp:50,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_kem.cpp:51,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_kem.cpp:51,1
    - Dst: auto::public_key
      Src: /src/botan/src/cli/perf_pk_kem.cpp:54,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_kem.cpp:59,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_kem.cpp:60,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_kem.cpp:62,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_kem.cpp:62,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_pk_kem.cpp:63,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_pk_kem.cpp:65,1
    - Dst: Botan::PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/cli/perf_pk_kem.cpp:66,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_pk_kem.cpp:67,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_pk_kem.cpp:69,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/cli/perf_pk_kem.cpp:71,1
    - Dst: auto::encapsulated_shared_key
      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::shared_key
      Src: /src/botan/src/cli/perf_pk_kem.cpp:74,1
    - Dst: error_output
      Src: /src/botan/src/cli/perf_pk_kem.cpp:75,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_kem.cpp:78,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_kem.cpp:79,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_kem.cpp:80,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: 82
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 82
    functionName: Botan_CLI::PerfTest_PK_KEM::bench_pk_kem
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 1
    functionsReached:
    - auto::public_key
    - Botan::PK_KEM_Decryptor::decrypt
    - rng
    - auto::run
    - Botan::create_private_key
    - auto::shared_key
    - auto::under
    - auto::stop
    - Botan::PK_KEM_Encryptor::encrypt
    - random_vec
    - runtime
    - auto::start
    - auto::encapsulated_shared_key
    - record_result
    - make_timer
    - error_output
    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: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    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: 102
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 102
    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: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    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: 121
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 121
    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: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    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: 149
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 149
    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: 160
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 160
    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: 181
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 181
    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: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    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:25,1
    - Dst: Botan_CLI::PerfTest_PK_KEM::keygen_params
      Src: /src/botan/src/cli/perf_pk_kem.cpp:27,1
    - Dst: Botan_CLI::PerfTest_PK_KEM::format_name
      Src: /src/botan/src/cli/perf_pk_kem.cpp:30,1
    - Dst: Botan_CLI::PerfTest_PK_KEM::bench_pk_kem
      Src: /src/botan/src/cli/perf_pk_kem.cpp:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 24
    functionDepth: 4
    functionLinenumber: 24
    functionLinenumberEnd: 33
    functionName: Botan_CLI::PerfTest_PK_KEM::go
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::PerfTest_PK_KEM::algo
    - Botan_CLI::PerfTest_PK_KEM::bench_pk_kem
    - Botan_CLI::PerfTest_PK_KEM::keygen_params
    - Botan_CLI::PerfTest_PK_KEM::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_kem.cpp:40,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pk_kem.cpp:41,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_kem.cpp:45,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_kem.cpp:47,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_kem.cpp:47,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_kem.cpp:50,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_kem.cpp:51,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_kem.cpp:51,1
    - Dst: auto::public_key
      Src: /src/botan/src/cli/perf_pk_kem.cpp:54,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_kem.cpp:59,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_kem.cpp:60,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_kem.cpp:62,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_kem.cpp:62,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_pk_kem.cpp:63,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_pk_kem.cpp:65,1
    - Dst: Botan::PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/cli/perf_pk_kem.cpp:66,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_pk_kem.cpp:67,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_pk_kem.cpp:69,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/cli/perf_pk_kem.cpp:71,1
    - Dst: auto::encapsulated_shared_key
      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::shared_key
      Src: /src/botan/src/cli/perf_pk_kem.cpp:74,1
    - Dst: error_output
      Src: /src/botan/src/cli/perf_pk_kem.cpp:75,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_kem.cpp:78,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_kem.cpp:79,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_kem.cpp:80,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: 82
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 82
    functionName: Botan_CLI::PerfTest_PK_KEM::bench_pk_kem
    functionSourceFile: /src/botan/src/cli/perf_pk_kem.cpp
    functionUses: 2
    functionsReached:
    - auto::public_key
    - Botan::PK_KEM_Decryptor::decrypt
    - rng
    - auto::run
    - Botan::create_private_key
    - auto::shared_key
    - auto::under
    - auto::stop
    - Botan::PK_KEM_Encryptor::encrypt
    - random_vec
    - runtime
    - auto::start
    - auto::encapsulated_shared_key
    - record_result
    - make_timer
    - error_output
    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: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    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: 102
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 102
    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: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    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: 121
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 121
    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: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    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: 149
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 149
    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: 160
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 160
    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: 181
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 181
    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: 47
    functionsReached:
    - min
    - Botan::runtime_version_check
    - std::unique_ptr::run
    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::vector::push_back
    - CLI_Error
    - std::string::empty
    - empty
    - std::string::clear
    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
    - find
    - end
    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:
    - find
    - auto::second::empty
    - end
    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:
    - Botan_CLI::Argument_Parser::get_arg
    - std::stoul
    - CLI_Usage_Error
    - static_cast<size_t>
    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:
    - static_cast<size_t>
    - std::stoul
    - CLI_Usage_Error
    - Botan_CLI::Argument_Parser::get_arg_or
    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::split_on
    - Botan_CLI::Argument_Parser::get_arg
    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:
    - std::vector::begin
    - substr
    - std::vector::push_back
    - assign
    - Botan_CLI::Argument_Parser::flag_set
    - size
    - std::make_pair
    - find
    - std::vector::end
    - empty
    - CLI_Usage_Error
    - contains
    - std::to_string
    - std::vector::size
    - starts_with
    - insert
    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
    - Botan_CLI::Argument_Parser::split_on
    - CLI_Error_Invalid_Spec
    - size
    - std::make_pair
    - std::vector::empty
    - empty
    - push_back
    - std::vector::size
    - find
    - insert
    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::vector::push_back
    - CLI_Error
    - std::string::empty
    - empty
    - std::string::clear
    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
    - find
    - end
    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:
    - find
    - auto::second::empty
    - end
    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:
    - Botan_CLI::Argument_Parser::get_arg
    - std::stoul
    - CLI_Usage_Error
    - static_cast<size_t>
    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:
    - static_cast<size_t>
    - std::stoul
    - CLI_Usage_Error
    - Botan_CLI::Argument_Parser::get_arg_or
    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::split_on
    - Botan_CLI::Argument_Parser::get_arg
    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:
    - std::vector::begin
    - substr
    - std::vector::push_back
    - assign
    - Botan_CLI::Argument_Parser::flag_set
    - size
    - std::make_pair
    - find
    - std::vector::end
    - empty
    - CLI_Usage_Error
    - contains
    - std::to_string
    - std::vector::size
    - starts_with
    - insert
    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
    - Botan_CLI::Argument_Parser::split_on
    - CLI_Error_Invalid_Spec
    - size
    - std::make_pair
    - std::vector::empty
    - empty
    - push_back
    - std::vector::size
    - find
    - insert
    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: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    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: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    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:27,1
    - Dst: Botan_CLI::PerfTest_PKSig::hash
      Src: /src/botan/src/cli/perf_pk_sig.cpp:28,1
    - Dst: Botan_CLI::PerfTest_PKSig::keygen_params
      Src: /src/botan/src/cli/perf_pk_sig.cpp:30,1
    - Dst: Botan_CLI::PerfTest_PKSig::format_name
      Src: /src/botan/src/cli/perf_pk_sig.cpp:33,1
    - Dst: Botan_CLI::PerfTest_PKSig::bench_pk_sig
      Src: /src/botan/src/cli/perf_pk_sig.cpp:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 36
    functionName: Botan_CLI::PerfTest_PKSig::go
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::PerfTest_PKSig::algo
    - Botan_CLI::PerfTest_PKSig::keygen_params
    - Botan_CLI::PerfTest_PKSig::hash
    - Botan_CLI::PerfTest_PKSig::format_name
    - Botan_CLI::PerfTest_PKSig::bench_pk_sig
    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:44,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pk_sig.cpp:45,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_sig.cpp:47,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_sig.cpp:49,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_sig.cpp:49,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_sig.cpp:52,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: record_result
      Src: /src/botan/src/cli/perf_pk_sig.cpp:56,1
    - Dst: auto::public_key
      Src: /src/botan/src/cli/perf_pk_sig.cpp:58,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_sig.cpp:67,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_sig.cpp:68,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_sig.cpp:72,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_sig.cpp:72,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/perf_pk_sig.cpp:73,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_sig.cpp:73,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_pk_sig.cpp:78,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_sig.cpp:80,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/cli/perf_pk_sig.cpp:80,1
    - Dst: next_byte
      Src: /src/botan/src/cli/perf_pk_sig.cpp:83,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_pk_sig.cpp:83,1
    - Dst: next_nonzero_byte
      Src: /src/botan/src/cli/perf_pk_sig.cpp:83,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_sig.cpp:86,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_sig.cpp:87,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/cli/perf_pk_sig.cpp:87,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_sig.cpp:93,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/cli/perf_pk_sig.cpp:93,1
    - Dst: error_output
      Src: /src/botan/src/cli/perf_pk_sig.cpp:96,1
    - Dst: error_output
      Src: /src/botan/src/cli/perf_pk_sig.cpp:102,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_sig.cpp:105,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_sig.cpp:106,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: 108
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 108
    functionName: Botan_CLI::PerfTest_PKSig::bench_pk_sig
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 1
    functionsReached:
    - auto::public_key
    - rng
    - auto::run
    - next_byte
    - next_nonzero_byte
    - Botan::create_private_key
    - auto::under
    - Botan::PK_Verifier::verify_message
    - std::vector::empty
    - error_output
    - Botan::PK_Signer::sign_message
    - record_result
    - runtime
    - random_vec
    - make_timer
    - std::vector::size
    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: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    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: 121
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 121
    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:124,1
    - Dst: substr
      Src: /src/botan/src/cli/perf_pk_sig.cpp:124,1
    - Dst: find_last_of
      Src: /src/botan/src/cli/perf_pk_sig.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' alg'
    - ' param'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: Botan_CLI::PerfTest_DSA::format_name
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached:
    - substr
    - Botan::fmt
    - find_last_of
    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: 136
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 136
    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: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    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: 142
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 142
    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: 153
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 153
    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:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 155
    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: 166
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 166
    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:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 168
    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: 179
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 179
    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:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    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: 192
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 192
    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: 194
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 194
    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: 196
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 196
    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: 207
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 207
    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: 209
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 209
    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: 211
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 211
    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: 222
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 222
    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: 224
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 224
    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: 235
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 235
    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: 237
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 237
    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: 248
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 248
    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: 250
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 250
    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: 264
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 264
    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: 275
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 275
    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: 277
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 277
    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: 290
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 290
    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: 301
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 301
    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: 303
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 303
    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:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' alg'
    - ' param'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 307
    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: 322
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 322
    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: 333
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 333
    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: 335
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 335
    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: 350
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 350
    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: 361
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 361
    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: 363
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 363
    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: 374
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 374
    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: 385
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 385
    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: 387
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 387
    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: 395
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 395
    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: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    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: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    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:27,1
    - Dst: Botan_CLI::PerfTest_PKSig::hash
      Src: /src/botan/src/cli/perf_pk_sig.cpp:28,1
    - Dst: Botan_CLI::PerfTest_PKSig::keygen_params
      Src: /src/botan/src/cli/perf_pk_sig.cpp:30,1
    - Dst: Botan_CLI::PerfTest_PKSig::format_name
      Src: /src/botan/src/cli/perf_pk_sig.cpp:33,1
    - Dst: Botan_CLI::PerfTest_PKSig::bench_pk_sig
      Src: /src/botan/src/cli/perf_pk_sig.cpp:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 26
    functionDepth: 4
    functionLinenumber: 26
    functionLinenumberEnd: 36
    functionName: Botan_CLI::PerfTest_PKSig::go
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::PerfTest_PKSig::algo
    - Botan_CLI::PerfTest_PKSig::keygen_params
    - Botan_CLI::PerfTest_PKSig::hash
    - Botan_CLI::PerfTest_PKSig::format_name
    - Botan_CLI::PerfTest_PKSig::bench_pk_sig
    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:44,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_pk_sig.cpp:45,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_sig.cpp:47,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_sig.cpp:49,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_sig.cpp:49,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_sig.cpp:52,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: record_result
      Src: /src/botan/src/cli/perf_pk_sig.cpp:56,1
    - Dst: auto::public_key
      Src: /src/botan/src/cli/perf_pk_sig.cpp:58,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_sig.cpp:67,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_sig.cpp:68,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_sig.cpp:72,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_sig.cpp:72,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/perf_pk_sig.cpp:73,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_sig.cpp:73,1
    - Dst: random_vec
      Src: /src/botan/src/cli/perf_pk_sig.cpp:78,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_sig.cpp:80,1
    - Dst: Botan::PK_Signer::sign_message
      Src: /src/botan/src/cli/perf_pk_sig.cpp:80,1
    - Dst: next_byte
      Src: /src/botan/src/cli/perf_pk_sig.cpp:83,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/perf_pk_sig.cpp:83,1
    - Dst: next_nonzero_byte
      Src: /src/botan/src/cli/perf_pk_sig.cpp:83,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_sig.cpp:86,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_sig.cpp:87,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/cli/perf_pk_sig.cpp:87,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_sig.cpp:93,1
    - Dst: Botan::PK_Verifier::verify_message
      Src: /src/botan/src/cli/perf_pk_sig.cpp:93,1
    - Dst: error_output
      Src: /src/botan/src/cli/perf_pk_sig.cpp:96,1
    - Dst: error_output
      Src: /src/botan/src/cli/perf_pk_sig.cpp:102,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_sig.cpp:105,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_sig.cpp:106,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: 108
      start: 38
    functionDepth: 3
    functionLinenumber: 38
    functionLinenumberEnd: 108
    functionName: Botan_CLI::PerfTest_PKSig::bench_pk_sig
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 2
    functionsReached:
    - auto::public_key
    - rng
    - auto::run
    - next_byte
    - next_nonzero_byte
    - Botan::create_private_key
    - auto::under
    - Botan::PK_Verifier::verify_message
    - std::vector::empty
    - error_output
    - Botan::PK_Signer::sign_message
    - record_result
    - runtime
    - random_vec
    - make_timer
    - std::vector::size
    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: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    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: 121
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 121
    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:124,1
    - Dst: substr
      Src: /src/botan/src/cli/perf_pk_sig.cpp:124,1
    - Dst: find_last_of
      Src: /src/botan/src/cli/perf_pk_sig.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' alg'
    - ' param'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: Botan_CLI::PerfTest_DSA::format_name
    functionSourceFile: /src/botan/src/cli/perf_pk_sig.cpp
    functionUses: 0
    functionsReached:
    - substr
    - Botan::fmt
    - find_last_of
    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: 136
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 136
    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: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    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: 142
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 142
    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: 153
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 153
    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:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 155
    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: 166
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 166
    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:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 168
    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: 179
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 179
    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:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    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: 192
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 192
    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: 194
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 194
    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: 196
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 196
    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: 207
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 207
    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: 209
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 209
    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: 211
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 211
    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: 222
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 222
    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: 224
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 224
    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: 235
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 235
    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: 237
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 237
    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: 248
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 248
    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: 250
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 250
    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: 264
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 264
    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: 275
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 275
    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: 277
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 277
    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: 290
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 290
    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: 301
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 301
    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: 303
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 303
    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:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' alg'
    - ' param'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 307
    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: 322
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 322
    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: 333
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 333
    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: 335
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 335
    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: 350
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 350
    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: 361
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 361
    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: 363
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 363
    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: 374
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 374
    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: 385
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 385
    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: 387
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 387
    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: 395
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 395
    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:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' timer'
    argTypes:
    - Timer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    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:51,1
    - Dst: Botan::version_vc_revision
      Src: /src/botan/src/cli/speed.cpp:53,1
    - Dst: size
      Src: /src/botan/src/cli/speed.cpp:60,1
    - Dst: get_name
      Src: /src/botan/src/cli/speed.cpp:64,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:65,1
    - Dst: events
      Src: /src/botan/src/cli/speed.cpp:66,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:68,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:69,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:72,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/cli/speed.cpp:73,1
    - Dst: events
      Src: /src/botan/src/cli/speed.cpp:73,1
    - Dst: nanoseconds
      Src: /src/botan/src/cli/speed.cpp:73,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:74,1
    - Dst: value
      Src: /src/botan/src/cli/speed.cpp:77,1
    - Dst: size
      Src: /src/botan/src/cli/speed.cpp:79,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/speed.cpp:87,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 88
    functionName: Botan_CLI::JSON_Output::print
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - value
    - cycles_consumed
    - doing
    - nanoseconds
    - std::ostringstream::str
    - size
    - events
    - Botan::short_version_cstr
    - buf_size
    - static_cast<uint64_t>
    - 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: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    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:99,1
    - Dst: push_back
      Src: /src/botan/src/cli/speed.cpp:100,1
    - Dst: std::make_pair
      Src: /src/botan/src/cli/speed.cpp:102,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:102,1
    - Dst: get_name
      Src: /src/botan/src/cli/speed.cpp:102,1
    - Dst: push_back
      Src: /src/botan/src/cli/speed.cpp:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - Timer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 104
    functionName: Botan_CLI::Summary::add
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - doing
    - std::make_pair
    - push_back
    - buf_size
    - get_name
    linkageType: ''
    returnType: void
    signature: void add(const Timer& t)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/cli/speed.cpp:114,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:118,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:118,1
    - Dst: begin
      Src: /src/botan/src/cli/speed.cpp:121,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:122,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/speed.cpp:122,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:122,1
    - Dst: second::empty
      Src: /src/botan/src/cli/speed.cpp:128,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:132,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:132,1
    - Dst: events
      Src: /src/botan/src/cli/speed.cpp:136,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:137,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:139,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:139,1
    - Dst: bytes_per_second
      Src: /src/botan/src/cli/speed.cpp:140,1
    - Dst: empty
      Src: /src/botan/src/cli/speed.cpp:150,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:151,1
    - Dst: std::sort
      Src: /src/botan/src/cli/speed.cpp:154,1
    - Dst: begin
      Src: /src/botan/src/cli/speed.cpp:154,1
    - Dst: end
      Src: /src/botan/src/cli/speed.cpp:154,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:157,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:157,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:158,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:158,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:164,1
    - Dst: get_name
      Src: /src/botan/src/cli/speed.cpp:164,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:164,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:165,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:165,1
    - Dst: seconds_per_event
      Src: /src/botan/src/cli/speed.cpp:166,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:166,1
    - Dst: events_per_second
      Src: /src/botan/src/cli/speed.cpp:167,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/speed.cpp:171,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 172
    functionName: Botan_CLI::Summary::print
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - doing
    - bytes_per_second
    - std::ostringstream::str
    - std::setprecision
    - std::sort
    - std::setw
    - seconds_per_event
    - empty
    - events
    - buf_size
    - end
    - std::to_string
    - begin
    - second::empty
    - get_name
    - events_per_second
    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:183,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/cli/speed.cpp:187,1
    - Dst: std::stoul
      Src: /src/botan/src/cli/speed.cpp:187,1
    - Dst: size
      Src: /src/botan/src/cli/speed.cpp:189,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:193,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/speed.cpp:197,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/speed.cpp:201,1
    - Dst: std::set::insert
      Src: /src/botan/src/cli/speed.cpp:204,1
    - Dst: std::vector<size_t>
      Src: /src/botan/src/cli/speed.cpp:207,1
    - Dst: std::set::begin
      Src: /src/botan/src/cli/speed.cpp:207,1
    - Dst: std::set::end
      Src: /src/botan/src/cli/speed.cpp:207,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - ' cmdline_arg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 208
    functionName: Botan_CLI::unique_buffer_sizes
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - std::set::end
    - Botan_CLI::Command::split_on
    - size
    - std::stoul
    - CLI_Usage_Error
    - std::set::insert
    - std::set::begin
    - std::vector<size_t>
    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:215,1
    - Dst: events
      Src: /src/botan/src/cli/speed.cpp:217,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:219,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/cli/speed.cpp:225,1
    - Dst: events_per_second
      Src: /src/botan/src/cli/speed.cpp:225,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:225,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:228,1
    - Dst: milliseconds
      Src: /src/botan/src/cli/speed.cpp:228,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:230,1
    - Dst: microseconds
      Src: /src/botan/src/cli/speed.cpp:230,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:232,1
    - Dst: nanoseconds
      Src: /src/botan/src/cli/speed.cpp:232,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:235,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/speed.cpp:236,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:236,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:238,1
    - Dst: milliseconds
      Src: /src/botan/src/cli/speed.cpp:241,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/speed.cpp:246,1
    - Dst: seconds
      Src: /src/botan/src/cli/speed.cpp:247,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:249,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:250,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:253,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:254,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:260,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:263,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/speed.cpp:264,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:264,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:265,1
    - Dst: milliseconds
      Src: /src/botan/src/cli/speed.cpp:268,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/speed.cpp:271,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 2
    argNames:
    - ' t'
    - time_unit
    argTypes:
    - Timer
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 272
    functionName: Botan_CLI::format_timer
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - cycles_consumed
    - doing
    - nanoseconds
    - static_cast<double>
    - std::ostringstream::str
    - milliseconds
    - microseconds
    - events
    - buf_size
    - std::setprecision
    - static_cast<uint64_t>
    - seconds
    - get_name
    - events_per_second
    linkageType: ''
    returnType: std::string
    signature: std::string format_timer(const Timer& t, size_t time_unit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/botan/src/cli/speed.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' timer'
    argTypes:
    - Timer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    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:51,1
    - Dst: Botan::version_vc_revision
      Src: /src/botan/src/cli/speed.cpp:53,1
    - Dst: size
      Src: /src/botan/src/cli/speed.cpp:60,1
    - Dst: get_name
      Src: /src/botan/src/cli/speed.cpp:64,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:65,1
    - Dst: events
      Src: /src/botan/src/cli/speed.cpp:66,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:68,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:69,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:72,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/cli/speed.cpp:73,1
    - Dst: events
      Src: /src/botan/src/cli/speed.cpp:73,1
    - Dst: nanoseconds
      Src: /src/botan/src/cli/speed.cpp:73,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:74,1
    - Dst: value
      Src: /src/botan/src/cli/speed.cpp:77,1
    - Dst: size
      Src: /src/botan/src/cli/speed.cpp:79,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/speed.cpp:87,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 88
    functionName: Botan_CLI::JSON_Output::print
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - value
    - cycles_consumed
    - doing
    - nanoseconds
    - std::ostringstream::str
    - size
    - events
    - Botan::short_version_cstr
    - buf_size
    - static_cast<uint64_t>
    - 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: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    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:99,1
    - Dst: push_back
      Src: /src/botan/src/cli/speed.cpp:100,1
    - Dst: std::make_pair
      Src: /src/botan/src/cli/speed.cpp:102,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:102,1
    - Dst: get_name
      Src: /src/botan/src/cli/speed.cpp:102,1
    - Dst: push_back
      Src: /src/botan/src/cli/speed.cpp:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - Timer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 104
    functionName: Botan_CLI::Summary::add
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - doing
    - std::make_pair
    - push_back
    - buf_size
    - get_name
    linkageType: ''
    returnType: void
    signature: void add(const Timer& t)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/cli/speed.cpp:114,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:118,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:118,1
    - Dst: begin
      Src: /src/botan/src/cli/speed.cpp:121,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:122,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/speed.cpp:122,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:122,1
    - Dst: second::empty
      Src: /src/botan/src/cli/speed.cpp:128,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:132,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:132,1
    - Dst: events
      Src: /src/botan/src/cli/speed.cpp:136,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:137,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:139,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:139,1
    - Dst: bytes_per_second
      Src: /src/botan/src/cli/speed.cpp:140,1
    - Dst: empty
      Src: /src/botan/src/cli/speed.cpp:150,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:151,1
    - Dst: std::sort
      Src: /src/botan/src/cli/speed.cpp:154,1
    - Dst: begin
      Src: /src/botan/src/cli/speed.cpp:154,1
    - Dst: end
      Src: /src/botan/src/cli/speed.cpp:154,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:157,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:157,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:158,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:158,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:164,1
    - Dst: get_name
      Src: /src/botan/src/cli/speed.cpp:164,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:164,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:165,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:165,1
    - Dst: seconds_per_event
      Src: /src/botan/src/cli/speed.cpp:166,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:166,1
    - Dst: events_per_second
      Src: /src/botan/src/cli/speed.cpp:167,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/speed.cpp:171,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 172
    functionName: Botan_CLI::Summary::print
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - doing
    - bytes_per_second
    - std::ostringstream::str
    - std::setprecision
    - std::sort
    - std::setw
    - seconds_per_event
    - empty
    - events
    - buf_size
    - end
    - std::to_string
    - begin
    - second::empty
    - get_name
    - events_per_second
    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:183,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/cli/speed.cpp:187,1
    - Dst: std::stoul
      Src: /src/botan/src/cli/speed.cpp:187,1
    - Dst: size
      Src: /src/botan/src/cli/speed.cpp:189,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:193,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/speed.cpp:197,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/speed.cpp:201,1
    - Dst: std::set::insert
      Src: /src/botan/src/cli/speed.cpp:204,1
    - Dst: std::vector<size_t>
      Src: /src/botan/src/cli/speed.cpp:207,1
    - Dst: std::set::begin
      Src: /src/botan/src/cli/speed.cpp:207,1
    - Dst: std::set::end
      Src: /src/botan/src/cli/speed.cpp:207,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - ' cmdline_arg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 208
    functionName: Botan_CLI::unique_buffer_sizes
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - std::set::end
    - Botan_CLI::Command::split_on
    - size
    - std::stoul
    - CLI_Usage_Error
    - std::set::insert
    - std::set::begin
    - std::vector<size_t>
    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:215,1
    - Dst: events
      Src: /src/botan/src/cli/speed.cpp:217,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:219,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/cli/speed.cpp:225,1
    - Dst: events_per_second
      Src: /src/botan/src/cli/speed.cpp:225,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:225,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:228,1
    - Dst: milliseconds
      Src: /src/botan/src/cli/speed.cpp:228,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:230,1
    - Dst: microseconds
      Src: /src/botan/src/cli/speed.cpp:230,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:232,1
    - Dst: nanoseconds
      Src: /src/botan/src/cli/speed.cpp:232,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:235,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/speed.cpp:236,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:236,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:238,1
    - Dst: milliseconds
      Src: /src/botan/src/cli/speed.cpp:241,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/speed.cpp:246,1
    - Dst: seconds
      Src: /src/botan/src/cli/speed.cpp:247,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:249,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:250,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:253,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:254,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:260,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:263,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/speed.cpp:264,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:264,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:265,1
    - Dst: milliseconds
      Src: /src/botan/src/cli/speed.cpp:268,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/speed.cpp:271,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 2
    argNames:
    - ' t'
    - time_unit
    argTypes:
    - Timer
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 272
    functionName: Botan_CLI::format_timer
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - cycles_consumed
    - doing
    - nanoseconds
    - static_cast<double>
    - std::ostringstream::str
    - milliseconds
    - microseconds
    - events
    - buf_size
    - std::setprecision
    - static_cast<uint64_t>
    - seconds
    - get_name
    - events_per_second
    linkageType: ''
    returnType: std::string
    signature: std::string format_timer(const Timer& t, size_t time_unit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 281
    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: 374
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 374
    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: 376
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 376
    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: 378
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 378
    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: 21
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/speed.cpp:381,1
    - Dst: Botan_CLI::Command::split_on
      Src: /src/botan/src/cli/speed.cpp:382,1
    - Dst: get_arg
      Src: /src/botan/src/cli/speed.cpp:382,1
    - Dst: get_arg
      Src: /src/botan/src/cli/speed.cpp:383,1
    - Dst: get_arg
      Src: /src/botan/src/cli/speed.cpp:384,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/speed.cpp:386,1
    - Dst: std::strtod
      Src: /src/botan/src/cli/speed.cpp:388,1
    - Dst: std::string::c_str
      Src: /src/botan/src/cli/speed.cpp:388,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/speed.cpp:398,1
    - Dst: get_arg
      Src: /src/botan/src/cli/speed.cpp:400,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/speed.cpp:409,1
    - Dst: Botan::OS::get_cpu_cycle_counter
      Src: /src/botan/src/cli/speed.cpp:415,1
    - Dst: error_output
      Src: /src/botan/src/cli/speed.cpp:416,1
    - Dst: std::make_unique<Summary>
      Src: /src/botan/src/cli/speed.cpp:423,1
    - Dst: std::make_unique<JSON_Output>
      Src: /src/botan/src/cli/speed.cpp:425,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/speed.cpp:427,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/speed.cpp:431,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/speed.cpp:433,1
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/cli/speed.cpp:434,1
    - Dst: std::vector::assign
      Src: /src/botan/src/cli/speed.cpp:435,1
    - Dst: begin
      Src: /src/botan/src/cli/speed.cpp:435,1
    - Dst: end
      Src: /src/botan/src/cli/speed.cpp:435,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/speed.cpp:436,1
    - Dst: std::vector::clear
      Src: /src/botan/src/cli/speed.cpp:437,1
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/cli/speed.cpp:438,1
    - Dst: Botan::EC_Group::engine
      Src: /src/botan/src/cli/speed.cpp:440,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/speed.cpp:441,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/speed.cpp:447,1
    - Dst: unique_buffer_sizes
      Src: /src/botan/src/cli/speed.cpp:449,1
    - Dst: get_arg
      Src: /src/botan/src/cli/speed.cpp:449,1
    - Dst: Botan_CLI::Command::split_on
      Src: /src/botan/src/cli/speed.cpp:452,1
    - Dst: get_arg
      Src: /src/botan/src/cli/speed.cpp:452,1
    - Dst: Botan::CPUID::bit_from_string
      Src: /src/botan/src/cli/speed.cpp:453,1
    - Dst: Botan::clear_cpuid_bit
      Src: /src/botan/src/cli/speed.cpp:454,1
    - Dst: error_output
      Src: /src/botan/src/cli/speed.cpp:456,1
    - Dst: verbose
      Src: /src/botan/src/cli/speed.cpp:461,1
    - Dst: output
      Src: /src/botan/src/cli/speed.cpp:463,1
    - Dst: Botan::version_string
      Src: /src/botan/src/cli/speed.cpp:463,1
    - Dst: Botan::CPUID::to_string
      Src: /src/botan/src/cli/speed.cpp:464,1
    - Dst: output
      Src: /src/botan/src/cli/speed.cpp:466,1
    - Dst: Botan::version_string
      Src: /src/botan/src/cli/speed.cpp:466,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/speed.cpp:470,1
    - Dst: Botan_CLI::Speed::default_benchmark_list
      Src: /src/botan/src/cli/speed.cpp:472,1
    - Dst: Botan_CLI::Speed::record_result
      Src: /src/botan/src/cli/speed.cpp:475,1
    - Dst: Botan_CLI::Speed::error_output
      Src: /src/botan/src/cli/speed.cpp:481,1
    - Dst: Botan_CLI::Speed::rng
      Src: /src/botan/src/cli/speed.cpp:482,1
    - Dst: Botan_CLI::PerfTest::get
      Src: /src/botan/src/cli/speed.cpp:485,1
    - Dst: auto::go
      Src: /src/botan/src/cli/speed.cpp:486,1
    - Dst: verbose
      Src: /src/botan/src/cli/speed.cpp:487,1
    - Dst: error_output
      Src: /src/botan/src/cli/speed.cpp:488,1
    - Dst: output
      Src: /src/botan/src/cli/speed.cpp:493,1
    - Dst: print
      Src: /src/botan/src/cli/speed.cpp:493,1
    - Dst: output
      Src: /src/botan/src/cli/speed.cpp:496,1
    - Dst: print
      Src: /src/botan/src/cli/speed.cpp:496,1
    - Dst: verbose
      Src: /src/botan/src/cli/speed.cpp:499,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/speed.cpp:500,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/speed.cpp:501,1
    - Dst: output
      Src: /src/botan/src/cli/speed.cpp:503,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 74
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 380
    functionDepth: 2
    functionLinenumber: 380
    functionLinenumberEnd: 505
    functionName: Botan_CLI::Speed::go
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - std::strtod
    - print
    - Botan::clear_cpuid_bit
    - begin
    - Botan_CLI::Speed::rng
    - std::make_unique<JSON_Output>
    - Botan_CLI::Command::split_on
    - unique_buffer_sizes
    - Botan_CLI::PerfTest::get
    - auto::go
    - std::vector::assign
    - Botan::CPUID::to_string
    - Botan_CLI::Speed::error_output
    - CLI_Usage_Error
    - Botan_CLI::Speed::default_benchmark_list
    - output
    - get_arg
    - get_arg_sz
    - std::vector::push_back
    - static_cast<double>
    - std::vector::clear
    - Botan::version_string
    - Botan::OS::get_cpu_cycle_counter
    - std::vector::empty
    - std::make_unique<Summary>
    - Botan::EC_Group::engine
    - std::vector::size
    - Botan::EC_Group::known_named_groups
    - std::string::c_str
    - get_arg_list
    - verbose
    - Botan_CLI::Speed::record_result
    - end
    - error_output
    - Botan::CPUID::bit_from_string
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: value
      Src: /src/botan/src/cli/speed.cpp:515,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:516,1
    - Dst: add
      Src: /src/botan/src/cli/speed.cpp:518,1
    - Dst: output
      Src: /src/botan/src/cli/speed.cpp:520,1
    - Dst: format_timer
      Src: /src/botan/src/cli/speed.cpp:520,1
    - Dst: add
      Src: /src/botan/src/cli/speed.cpp:523,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - Timer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 514
    functionDepth: 1
    functionLinenumber: 514
    functionLinenumberEnd: 526
    functionName: Botan_CLI::Speed::record_result
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 1
    functionsReached:
    - output
    - cycles_consumed
    - format_timer
    - add
    - 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:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' timer'
    argTypes:
    - Timer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    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:51,1
    - Dst: Botan::version_vc_revision
      Src: /src/botan/src/cli/speed.cpp:53,1
    - Dst: size
      Src: /src/botan/src/cli/speed.cpp:60,1
    - Dst: get_name
      Src: /src/botan/src/cli/speed.cpp:64,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:65,1
    - Dst: events
      Src: /src/botan/src/cli/speed.cpp:66,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:68,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:69,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:72,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/cli/speed.cpp:73,1
    - Dst: events
      Src: /src/botan/src/cli/speed.cpp:73,1
    - Dst: nanoseconds
      Src: /src/botan/src/cli/speed.cpp:73,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:74,1
    - Dst: value
      Src: /src/botan/src/cli/speed.cpp:77,1
    - Dst: size
      Src: /src/botan/src/cli/speed.cpp:79,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/speed.cpp:87,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 88
    functionName: Botan_CLI::JSON_Output::print
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - value
    - cycles_consumed
    - doing
    - nanoseconds
    - std::ostringstream::str
    - size
    - events
    - Botan::short_version_cstr
    - buf_size
    - static_cast<uint64_t>
    - 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: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    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:99,1
    - Dst: push_back
      Src: /src/botan/src/cli/speed.cpp:100,1
    - Dst: std::make_pair
      Src: /src/botan/src/cli/speed.cpp:102,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:102,1
    - Dst: get_name
      Src: /src/botan/src/cli/speed.cpp:102,1
    - Dst: push_back
      Src: /src/botan/src/cli/speed.cpp:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - Timer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 104
    functionName: Botan_CLI::Summary::add
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - doing
    - std::make_pair
    - push_back
    - buf_size
    - get_name
    linkageType: ''
    returnType: void
    signature: void add(const Timer& t)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/cli/speed.cpp:114,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:118,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:118,1
    - Dst: begin
      Src: /src/botan/src/cli/speed.cpp:121,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:122,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/speed.cpp:122,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:122,1
    - Dst: second::empty
      Src: /src/botan/src/cli/speed.cpp:128,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:132,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:132,1
    - Dst: events
      Src: /src/botan/src/cli/speed.cpp:136,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:137,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:139,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:139,1
    - Dst: bytes_per_second
      Src: /src/botan/src/cli/speed.cpp:140,1
    - Dst: empty
      Src: /src/botan/src/cli/speed.cpp:150,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:151,1
    - Dst: std::sort
      Src: /src/botan/src/cli/speed.cpp:154,1
    - Dst: begin
      Src: /src/botan/src/cli/speed.cpp:154,1
    - Dst: end
      Src: /src/botan/src/cli/speed.cpp:154,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:157,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:157,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:158,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:158,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:164,1
    - Dst: get_name
      Src: /src/botan/src/cli/speed.cpp:164,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:164,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:165,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:165,1
    - Dst: seconds_per_event
      Src: /src/botan/src/cli/speed.cpp:166,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:166,1
    - Dst: events_per_second
      Src: /src/botan/src/cli/speed.cpp:167,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/speed.cpp:171,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 172
    functionName: Botan_CLI::Summary::print
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - doing
    - bytes_per_second
    - std::ostringstream::str
    - std::setprecision
    - std::sort
    - std::setw
    - seconds_per_event
    - empty
    - events
    - buf_size
    - end
    - std::to_string
    - begin
    - second::empty
    - get_name
    - events_per_second
    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:183,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/cli/speed.cpp:187,1
    - Dst: std::stoul
      Src: /src/botan/src/cli/speed.cpp:187,1
    - Dst: size
      Src: /src/botan/src/cli/speed.cpp:189,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:193,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/speed.cpp:197,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/speed.cpp:201,1
    - Dst: std::set::insert
      Src: /src/botan/src/cli/speed.cpp:204,1
    - Dst: std::vector<size_t>
      Src: /src/botan/src/cli/speed.cpp:207,1
    - Dst: std::set::begin
      Src: /src/botan/src/cli/speed.cpp:207,1
    - Dst: std::set::end
      Src: /src/botan/src/cli/speed.cpp:207,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - ' cmdline_arg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 208
    functionName: Botan_CLI::unique_buffer_sizes
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - std::set::end
    - Botan_CLI::Command::split_on
    - size
    - std::stoul
    - CLI_Usage_Error
    - std::set::insert
    - std::set::begin
    - std::vector<size_t>
    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:215,1
    - Dst: events
      Src: /src/botan/src/cli/speed.cpp:217,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:219,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/cli/speed.cpp:225,1
    - Dst: events_per_second
      Src: /src/botan/src/cli/speed.cpp:225,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:225,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:228,1
    - Dst: milliseconds
      Src: /src/botan/src/cli/speed.cpp:228,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:230,1
    - Dst: microseconds
      Src: /src/botan/src/cli/speed.cpp:230,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:232,1
    - Dst: nanoseconds
      Src: /src/botan/src/cli/speed.cpp:232,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:235,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/speed.cpp:236,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:236,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:238,1
    - Dst: milliseconds
      Src: /src/botan/src/cli/speed.cpp:241,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/speed.cpp:246,1
    - Dst: seconds
      Src: /src/botan/src/cli/speed.cpp:247,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:249,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:250,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:253,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:254,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:260,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:263,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/speed.cpp:264,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:264,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:265,1
    - Dst: milliseconds
      Src: /src/botan/src/cli/speed.cpp:268,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/speed.cpp:271,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 2
    argNames:
    - ' t'
    - time_unit
    argTypes:
    - Timer
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 272
    functionName: Botan_CLI::format_timer
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - cycles_consumed
    - doing
    - nanoseconds
    - static_cast<double>
    - std::ostringstream::str
    - milliseconds
    - microseconds
    - events
    - buf_size
    - std::setprecision
    - static_cast<uint64_t>
    - seconds
    - get_name
    - events_per_second
    linkageType: ''
    returnType: std::string
    signature: std::string format_timer(const Timer& t, size_t time_unit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/botan/src/cli/speed.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' timer'
    argTypes:
    - Timer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    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:51,1
    - Dst: Botan::version_vc_revision
      Src: /src/botan/src/cli/speed.cpp:53,1
    - Dst: size
      Src: /src/botan/src/cli/speed.cpp:60,1
    - Dst: get_name
      Src: /src/botan/src/cli/speed.cpp:64,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:65,1
    - Dst: events
      Src: /src/botan/src/cli/speed.cpp:66,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:68,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:69,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:72,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/cli/speed.cpp:73,1
    - Dst: events
      Src: /src/botan/src/cli/speed.cpp:73,1
    - Dst: nanoseconds
      Src: /src/botan/src/cli/speed.cpp:73,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:74,1
    - Dst: value
      Src: /src/botan/src/cli/speed.cpp:77,1
    - Dst: size
      Src: /src/botan/src/cli/speed.cpp:79,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/speed.cpp:87,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 88
    functionName: Botan_CLI::JSON_Output::print
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - value
    - cycles_consumed
    - doing
    - nanoseconds
    - std::ostringstream::str
    - size
    - events
    - Botan::short_version_cstr
    - buf_size
    - static_cast<uint64_t>
    - 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: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    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:99,1
    - Dst: push_back
      Src: /src/botan/src/cli/speed.cpp:100,1
    - Dst: std::make_pair
      Src: /src/botan/src/cli/speed.cpp:102,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:102,1
    - Dst: get_name
      Src: /src/botan/src/cli/speed.cpp:102,1
    - Dst: push_back
      Src: /src/botan/src/cli/speed.cpp:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - Timer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 104
    functionName: Botan_CLI::Summary::add
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - doing
    - std::make_pair
    - push_back
    - buf_size
    - get_name
    linkageType: ''
    returnType: void
    signature: void add(const Timer& t)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/cli/speed.cpp:114,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:118,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:118,1
    - Dst: begin
      Src: /src/botan/src/cli/speed.cpp:121,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:122,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/speed.cpp:122,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:122,1
    - Dst: second::empty
      Src: /src/botan/src/cli/speed.cpp:128,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:132,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:132,1
    - Dst: events
      Src: /src/botan/src/cli/speed.cpp:136,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:137,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:139,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:139,1
    - Dst: bytes_per_second
      Src: /src/botan/src/cli/speed.cpp:140,1
    - Dst: empty
      Src: /src/botan/src/cli/speed.cpp:150,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:151,1
    - Dst: std::sort
      Src: /src/botan/src/cli/speed.cpp:154,1
    - Dst: begin
      Src: /src/botan/src/cli/speed.cpp:154,1
    - Dst: end
      Src: /src/botan/src/cli/speed.cpp:154,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:157,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:157,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:158,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:158,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:164,1
    - Dst: get_name
      Src: /src/botan/src/cli/speed.cpp:164,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:164,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:165,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:165,1
    - Dst: seconds_per_event
      Src: /src/botan/src/cli/speed.cpp:166,1
    - Dst: std::setw
      Src: /src/botan/src/cli/speed.cpp:166,1
    - Dst: events_per_second
      Src: /src/botan/src/cli/speed.cpp:167,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/speed.cpp:171,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 172
    functionName: Botan_CLI::Summary::print
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - doing
    - bytes_per_second
    - std::ostringstream::str
    - std::setprecision
    - std::sort
    - std::setw
    - seconds_per_event
    - empty
    - events
    - buf_size
    - end
    - std::to_string
    - begin
    - second::empty
    - get_name
    - events_per_second
    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:183,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/cli/speed.cpp:187,1
    - Dst: std::stoul
      Src: /src/botan/src/cli/speed.cpp:187,1
    - Dst: size
      Src: /src/botan/src/cli/speed.cpp:189,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:193,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/speed.cpp:197,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/speed.cpp:201,1
    - Dst: std::set::insert
      Src: /src/botan/src/cli/speed.cpp:204,1
    - Dst: std::vector<size_t>
      Src: /src/botan/src/cli/speed.cpp:207,1
    - Dst: std::set::begin
      Src: /src/botan/src/cli/speed.cpp:207,1
    - Dst: std::set::end
      Src: /src/botan/src/cli/speed.cpp:207,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - ' cmdline_arg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 208
    functionName: Botan_CLI::unique_buffer_sizes
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - std::set::end
    - Botan_CLI::Command::split_on
    - size
    - std::stoul
    - CLI_Usage_Error
    - std::set::insert
    - std::set::begin
    - std::vector<size_t>
    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:215,1
    - Dst: events
      Src: /src/botan/src/cli/speed.cpp:217,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:219,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/cli/speed.cpp:225,1
    - Dst: events_per_second
      Src: /src/botan/src/cli/speed.cpp:225,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:225,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:228,1
    - Dst: milliseconds
      Src: /src/botan/src/cli/speed.cpp:228,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:230,1
    - Dst: microseconds
      Src: /src/botan/src/cli/speed.cpp:230,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:232,1
    - Dst: nanoseconds
      Src: /src/botan/src/cli/speed.cpp:232,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:235,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/speed.cpp:236,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:236,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:238,1
    - Dst: milliseconds
      Src: /src/botan/src/cli/speed.cpp:241,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/speed.cpp:246,1
    - Dst: seconds
      Src: /src/botan/src/cli/speed.cpp:247,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:249,1
    - Dst: doing
      Src: /src/botan/src/cli/speed.cpp:250,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:253,1
    - Dst: buf_size
      Src: /src/botan/src/cli/speed.cpp:254,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:260,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:263,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/speed.cpp:264,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:264,1
    - Dst: std::setprecision
      Src: /src/botan/src/cli/speed.cpp:265,1
    - Dst: milliseconds
      Src: /src/botan/src/cli/speed.cpp:268,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/cli/speed.cpp:271,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 2
    argNames:
    - ' t'
    - time_unit
    argTypes:
    - Timer
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 272
    functionName: Botan_CLI::format_timer
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - cycles_consumed
    - doing
    - nanoseconds
    - static_cast<double>
    - std::ostringstream::str
    - milliseconds
    - microseconds
    - events
    - buf_size
    - std::setprecision
    - static_cast<uint64_t>
    - seconds
    - get_name
    - events_per_second
    linkageType: ''
    returnType: std::string
    signature: std::string format_timer(const Timer& t, size_t time_unit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 281
    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: 374
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 374
    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: 376
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 376
    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: 378
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 378
    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: 21
    BranchProfiles: []
    Callsites:
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/speed.cpp:381,1
    - Dst: Botan_CLI::Command::split_on
      Src: /src/botan/src/cli/speed.cpp:382,1
    - Dst: get_arg
      Src: /src/botan/src/cli/speed.cpp:382,1
    - Dst: get_arg
      Src: /src/botan/src/cli/speed.cpp:383,1
    - Dst: get_arg
      Src: /src/botan/src/cli/speed.cpp:384,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/speed.cpp:386,1
    - Dst: std::strtod
      Src: /src/botan/src/cli/speed.cpp:388,1
    - Dst: std::string::c_str
      Src: /src/botan/src/cli/speed.cpp:388,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/speed.cpp:398,1
    - Dst: get_arg
      Src: /src/botan/src/cli/speed.cpp:400,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/speed.cpp:409,1
    - Dst: Botan::OS::get_cpu_cycle_counter
      Src: /src/botan/src/cli/speed.cpp:415,1
    - Dst: error_output
      Src: /src/botan/src/cli/speed.cpp:416,1
    - Dst: std::make_unique<Summary>
      Src: /src/botan/src/cli/speed.cpp:423,1
    - Dst: std::make_unique<JSON_Output>
      Src: /src/botan/src/cli/speed.cpp:425,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/speed.cpp:427,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/speed.cpp:431,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/speed.cpp:433,1
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/cli/speed.cpp:434,1
    - Dst: std::vector::assign
      Src: /src/botan/src/cli/speed.cpp:435,1
    - Dst: begin
      Src: /src/botan/src/cli/speed.cpp:435,1
    - Dst: end
      Src: /src/botan/src/cli/speed.cpp:435,1
    - Dst: std::vector::size
      Src: /src/botan/src/cli/speed.cpp:436,1
    - Dst: std::vector::clear
      Src: /src/botan/src/cli/speed.cpp:437,1
    - Dst: Botan::EC_Group::known_named_groups
      Src: /src/botan/src/cli/speed.cpp:438,1
    - Dst: Botan::EC_Group::engine
      Src: /src/botan/src/cli/speed.cpp:440,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/speed.cpp:441,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/speed.cpp:447,1
    - Dst: unique_buffer_sizes
      Src: /src/botan/src/cli/speed.cpp:449,1
    - Dst: get_arg
      Src: /src/botan/src/cli/speed.cpp:449,1
    - Dst: Botan_CLI::Command::split_on
      Src: /src/botan/src/cli/speed.cpp:452,1
    - Dst: get_arg
      Src: /src/botan/src/cli/speed.cpp:452,1
    - Dst: Botan::CPUID::bit_from_string
      Src: /src/botan/src/cli/speed.cpp:453,1
    - Dst: Botan::clear_cpuid_bit
      Src: /src/botan/src/cli/speed.cpp:454,1
    - Dst: error_output
      Src: /src/botan/src/cli/speed.cpp:456,1
    - Dst: verbose
      Src: /src/botan/src/cli/speed.cpp:461,1
    - Dst: output
      Src: /src/botan/src/cli/speed.cpp:463,1
    - Dst: Botan::version_string
      Src: /src/botan/src/cli/speed.cpp:463,1
    - Dst: Botan::CPUID::to_string
      Src: /src/botan/src/cli/speed.cpp:464,1
    - Dst: output
      Src: /src/botan/src/cli/speed.cpp:466,1
    - Dst: Botan::version_string
      Src: /src/botan/src/cli/speed.cpp:466,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/speed.cpp:470,1
    - Dst: Botan_CLI::Speed::default_benchmark_list
      Src: /src/botan/src/cli/speed.cpp:472,1
    - Dst: Botan_CLI::Speed::record_result
      Src: /src/botan/src/cli/speed.cpp:475,1
    - Dst: Botan_CLI::Speed::error_output
      Src: /src/botan/src/cli/speed.cpp:481,1
    - Dst: Botan_CLI::Speed::rng
      Src: /src/botan/src/cli/speed.cpp:482,1
    - Dst: Botan_CLI::PerfTest::get
      Src: /src/botan/src/cli/speed.cpp:485,1
    - Dst: auto::go
      Src: /src/botan/src/cli/speed.cpp:486,1
    - Dst: verbose
      Src: /src/botan/src/cli/speed.cpp:487,1
    - Dst: error_output
      Src: /src/botan/src/cli/speed.cpp:488,1
    - Dst: output
      Src: /src/botan/src/cli/speed.cpp:493,1
    - Dst: print
      Src: /src/botan/src/cli/speed.cpp:493,1
    - Dst: output
      Src: /src/botan/src/cli/speed.cpp:496,1
    - Dst: print
      Src: /src/botan/src/cli/speed.cpp:496,1
    - Dst: verbose
      Src: /src/botan/src/cli/speed.cpp:499,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/speed.cpp:500,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/speed.cpp:501,1
    - Dst: output
      Src: /src/botan/src/cli/speed.cpp:503,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 74
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 380
    functionDepth: 2
    functionLinenumber: 380
    functionLinenumberEnd: 505
    functionName: Botan_CLI::Speed::go
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 0
    functionsReached:
    - std::strtod
    - print
    - Botan::clear_cpuid_bit
    - begin
    - Botan_CLI::Speed::rng
    - std::make_unique<JSON_Output>
    - Botan_CLI::Command::split_on
    - unique_buffer_sizes
    - Botan_CLI::PerfTest::get
    - auto::go
    - std::vector::assign
    - Botan::CPUID::to_string
    - Botan_CLI::Speed::error_output
    - CLI_Usage_Error
    - Botan_CLI::Speed::default_benchmark_list
    - output
    - get_arg
    - get_arg_sz
    - std::vector::push_back
    - static_cast<double>
    - std::vector::clear
    - Botan::version_string
    - Botan::OS::get_cpu_cycle_counter
    - std::vector::empty
    - std::make_unique<Summary>
    - Botan::EC_Group::engine
    - std::vector::size
    - Botan::EC_Group::known_named_groups
    - std::string::c_str
    - get_arg_list
    - verbose
    - Botan_CLI::Speed::record_result
    - end
    - error_output
    - Botan::CPUID::bit_from_string
    linkageType: ''
    returnType: void
    signature: void go() override
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: value
      Src: /src/botan/src/cli/speed.cpp:515,1
    - Dst: cycles_consumed
      Src: /src/botan/src/cli/speed.cpp:516,1
    - Dst: add
      Src: /src/botan/src/cli/speed.cpp:518,1
    - Dst: output
      Src: /src/botan/src/cli/speed.cpp:520,1
    - Dst: format_timer
      Src: /src/botan/src/cli/speed.cpp:520,1
    - Dst: add
      Src: /src/botan/src/cli/speed.cpp:523,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ' t'
    argTypes:
    - Timer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 514
    functionDepth: 1
    functionLinenumber: 514
    functionLinenumberEnd: 526
    functionName: Botan_CLI::Speed::record_result
    functionSourceFile: /src/botan/src/cli/speed.cpp
    functionUses: 2
    functionsReached:
    - output
    - cycles_consumed
    - format_timer
    - add
    - 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:32,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:35,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:35,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:36,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:36,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:38,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:41,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:42,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_math.cpp:44,1
    - Dst: Botan::BigInt::square
      Src: /src/botan/src/cli/perf_math.cpp:45,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_math.cpp:46,1
    - Dst: Botan::BigInt::mask_bits
      Src: /src/botan/src/cli/perf_math.cpp:48,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_math.cpp:50,1
    - Dst: Botan::BigInt::mul
      Src: /src/botan/src/cli/perf_math.cpp:51,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_math.cpp:52,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:55,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 58
    functionName: Botan_CLI::PerfTest_MpMul::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - rng
    - Botan::BigInt::mul
    - auto::under
    - Botan::BigInt::mask_bits
    - auto::stop
    - auto::start
    - runtime
    - Botan::BigInt::square
    - std::to_string
    - record_result
    - make_timer
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_math.cpp:66,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:70,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:70,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:72,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:73,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:75,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:76,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:81,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:82,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:84,1
    - Dst: Botan::BigInt::randomize
      Src: /src/botan/src/cli/perf_math.cpp:85,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:85,1
    - Dst: Botan::BigInt::randomize
      Src: /src/botan/src/cli/perf_math.cpp:86,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:86,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_math.cpp:88,1
    - Dst: Botan::vartime_divide
      Src: /src/botan/src/cli/perf_math.cpp:89,1
    - Dst: auto::stop
      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::ct_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: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/cli/perf_math.cpp:96,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/cli/perf_math.cpp:97,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:100,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 103
    functionName: Botan_CLI::PerfTest_MpDiv::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - rng
    - auto::under
    - auto::stop
    - Botan::BigInt::randomize
    - auto::start
    - runtime
    - BOTAN_ASSERT_EQUAL
    - std::to_string
    - Botan::vartime_divide
    - make_timer
    - record_result
    - Botan::BigInt::BigInt
    - Botan::ct_divide
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_math.cpp:111,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:114,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:116,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:117,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:119,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/cli/perf_math.cpp:122,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:123,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:124,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:125,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:128,1
    - Dst: Botan::BigInt::randomize
      Src: /src/botan/src/cli/perf_math.cpp:129,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:129,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_math.cpp:131,1
    - Dst: Botan::vartime_divide
      Src: /src/botan/src/cli/perf_math.cpp:132,1
    - Dst: auto::stop
      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::ct_divide_word
      Src: /src/botan/src/cli/perf_math.cpp:136,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_math.cpp:137,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/cli/perf_math.cpp:139,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/cli/perf_math.cpp:140,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:143,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 146
    functionName: Botan_CLI::PerfTest_MpDiv10::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - rng
    - Botan::BigInt::from_word
    - auto::under
    - auto::stop
    - Botan::BigInt::randomize
    - auto::start
    - runtime
    - BOTAN_ASSERT_EQUAL
    - std::to_string
    - Botan::vartime_divide
    - make_timer
    - Botan::ct_divide_word
    - record_result
    - 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:158,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:161,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:163,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:164,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:165,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:167,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:168,1
    - Dst: Botan::Barrett_Reduction::for_secret_modulus
      Src: /src/botan/src/cli/perf_math.cpp:168,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:169,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/cli/perf_math.cpp:169,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:172,1
    - Dst: record_result
      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:175,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:177,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:178,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:179,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:181,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:182,1
    - Dst: Botan::BigInt::bits
      Src: /src/botan/src/cli/perf_math.cpp:182,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:184,1
    - Dst: auto::reduce
      Src: /src/botan/src/cli/perf_math.cpp:184,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:185,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:186,1
    - Dst: Botan::ct_modulo
      Src: /src/botan/src/cli/perf_math.cpp:186,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_math.cpp:188,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_math.cpp:189,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:192,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:193,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:194,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 157
    functionDepth: 3
    functionLinenumber: 157
    functionLinenumberEnd: 196
    functionName: Botan_CLI::PerfTest_BnRedc::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - rng
    - Botan::BigInt::bits
    - auto::run
    - Botan::Barrett_Reduction::for_secret_modulus
    - Botan::ct_modulo
    - auto::under
    - Botan::Barrett_Reduction::for_public_modulus
    - auto::reduce
    - record_result
    - runtime
    - std::to_string
    - make_timer
    - BOTAN_ASSERT
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_math.cpp:204,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:207,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:209,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:210,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:212,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:212,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:213,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:214,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:216,1
    - Dst: Botan::inverse_mod
      Src: /src/botan/src/cli/perf_math.cpp:216,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:218,1
    - Dst: gcd
      Src: /src/botan/src/cli/perf_math.cpp:218,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_math.cpp:221,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_math.cpp:223,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/cli/perf_math.cpp:225,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:229,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:230,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 203
    functionDepth: 3
    functionLinenumber: 203
    functionLinenumberEnd: 232
    functionName: Botan_CLI::PerfTest_InvMod::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - rng
    - gcd
    - auto::run
    - Botan::inverse_mod
    - auto::under
    - record_result
    - runtime
    - BOTAN_ASSERT_EQUAL
    - std::to_string
    - make_timer
    - BOTAN_ASSERT
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_math.cpp:240,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:243,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:243,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:244,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:244,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:245,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:245,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/cli/perf_math.cpp:247,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:247,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:249,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/cli/perf_math.cpp:250,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:252,1
    - Dst: Botan::is_miller_rabin_probable_prime
      Src: /src/botan/src/cli/perf_math.cpp:252,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:252,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:254,1
    - Dst: Botan::is_bailie_psw_probable_prime
      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_lucas_probable_prime
      Src: /src/botan/src/cli/perf_math.cpp:256,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:261,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:262,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:263,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 239
    functionDepth: 3
    functionLinenumber: 239
    functionLinenumberEnd: 265
    functionName: Botan_CLI::PerfTest_IsPrime::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - Botan::is_miller_rabin_probable_prime
    - rng
    - Botan::is_lucas_probable_prime
    - auto::run
    - auto::under
    - Botan::is_bailie_psw_probable_prime
    - Botan::random_prime
    - Botan::Barrett_Reduction::for_public_modulus
    - record_result
    - runtime
    - std::to_string
    - make_timer
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/cli/perf_math.cpp:273,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_math.cpp:274,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:276,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:279,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:279,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:280,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:280,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:281,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:281,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:283,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:284,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/cli/perf_math.cpp:284,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:286,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/cli/perf_math.cpp:286,1
    - Dst: error_output
      Src: /src/botan/src/cli/perf_math.cpp:287,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:290,1
    - Dst: Botan::random_safe_prime
      Src: /src/botan/src/cli/perf_math.cpp:290,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:292,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/cli/perf_math.cpp:292,1
    - Dst: error_output
      Src: /src/botan/src/cli/perf_math.cpp:293,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:296,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/cli/perf_math.cpp:296,1
    - Dst: error_output
      Src: /src/botan/src/cli/perf_math.cpp:297,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:302,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/cli/perf_math.cpp:302,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:306,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:307,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:308,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 272
    functionDepth: 3
    functionLinenumber: 272
    functionLinenumberEnd: 310
    functionName: Botan_CLI::PerfTest_RandomPrime::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - rng
    - Botan::random_safe_prime
    - auto::run
    - Botan::BigInt::from_word
    - auto::under
    - Botan::random_prime
    - record_result
    - runtime
    - std::to_string
    - make_timer
    - error_output
    - Botan::is_prime
    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:323,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/cli/perf_math.cpp:324,1
    - Dst: auto::exponent_bits
      Src: /src/botan/src/cli/perf_math.cpp:326,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:329,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:330,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:332,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:333,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:335,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_math.cpp:335,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:336,1
    - Dst: auto::power_g_p
      Src: /src/botan/src/cli/perf_math.cpp:336,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:337,1
    - Dst: auto::power_g_p
      Src: /src/botan/src/cli/perf_math.cpp:337,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:340,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:341,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 321
    functionDepth: 3
    functionLinenumber: 321
    functionLinenumberEnd: 343
    functionName: Botan_CLI::PerfTest_ModExp::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - rng
    - auto::run
    - Botan::DL_Group::from_name
    - auto::exponent_bits
    - auto::under
    - record_result
    - runtime
    - std::to_string
    - make_timer
    - auto::power_g_p
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_math.cpp:32,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:35,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:35,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:36,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:36,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:38,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:41,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:42,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_math.cpp:44,1
    - Dst: Botan::BigInt::square
      Src: /src/botan/src/cli/perf_math.cpp:45,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_math.cpp:46,1
    - Dst: Botan::BigInt::mask_bits
      Src: /src/botan/src/cli/perf_math.cpp:48,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_math.cpp:50,1
    - Dst: Botan::BigInt::mul
      Src: /src/botan/src/cli/perf_math.cpp:51,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_math.cpp:52,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:55,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:56,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 58
    functionName: Botan_CLI::PerfTest_MpMul::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - rng
    - Botan::BigInt::mul
    - auto::under
    - Botan::BigInt::mask_bits
    - auto::stop
    - auto::start
    - runtime
    - Botan::BigInt::square
    - std::to_string
    - record_result
    - make_timer
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_math.cpp:66,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:70,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:70,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:72,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:73,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:75,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:76,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:81,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:82,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:84,1
    - Dst: Botan::BigInt::randomize
      Src: /src/botan/src/cli/perf_math.cpp:85,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:85,1
    - Dst: Botan::BigInt::randomize
      Src: /src/botan/src/cli/perf_math.cpp:86,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:86,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_math.cpp:88,1
    - Dst: Botan::vartime_divide
      Src: /src/botan/src/cli/perf_math.cpp:89,1
    - Dst: auto::stop
      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::ct_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: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/cli/perf_math.cpp:96,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/cli/perf_math.cpp:97,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:100,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 103
    functionName: Botan_CLI::PerfTest_MpDiv::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - rng
    - auto::under
    - auto::stop
    - Botan::BigInt::randomize
    - auto::start
    - runtime
    - BOTAN_ASSERT_EQUAL
    - std::to_string
    - Botan::vartime_divide
    - make_timer
    - record_result
    - Botan::BigInt::BigInt
    - Botan::ct_divide
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_math.cpp:111,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:114,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:116,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:117,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:119,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/cli/perf_math.cpp:122,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:123,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:124,1
    - Dst: Botan::BigInt::BigInt
      Src: /src/botan/src/cli/perf_math.cpp:125,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:128,1
    - Dst: Botan::BigInt::randomize
      Src: /src/botan/src/cli/perf_math.cpp:129,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:129,1
    - Dst: auto::start
      Src: /src/botan/src/cli/perf_math.cpp:131,1
    - Dst: Botan::vartime_divide
      Src: /src/botan/src/cli/perf_math.cpp:132,1
    - Dst: auto::stop
      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::ct_divide_word
      Src: /src/botan/src/cli/perf_math.cpp:136,1
    - Dst: auto::stop
      Src: /src/botan/src/cli/perf_math.cpp:137,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/cli/perf_math.cpp:139,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/cli/perf_math.cpp:140,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:143,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 146
    functionName: Botan_CLI::PerfTest_MpDiv10::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - rng
    - Botan::BigInt::from_word
    - auto::under
    - auto::stop
    - Botan::BigInt::randomize
    - auto::start
    - runtime
    - BOTAN_ASSERT_EQUAL
    - std::to_string
    - Botan::vartime_divide
    - make_timer
    - Botan::ct_divide_word
    - record_result
    - 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:158,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:161,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:163,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:164,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:165,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:167,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:168,1
    - Dst: Botan::Barrett_Reduction::for_secret_modulus
      Src: /src/botan/src/cli/perf_math.cpp:168,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:169,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/cli/perf_math.cpp:169,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:172,1
    - Dst: record_result
      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:175,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:177,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:178,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:179,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:181,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:182,1
    - Dst: Botan::BigInt::bits
      Src: /src/botan/src/cli/perf_math.cpp:182,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:184,1
    - Dst: auto::reduce
      Src: /src/botan/src/cli/perf_math.cpp:184,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:185,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:186,1
    - Dst: Botan::ct_modulo
      Src: /src/botan/src/cli/perf_math.cpp:186,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_math.cpp:188,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_math.cpp:189,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:192,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:193,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:194,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 157
    functionDepth: 3
    functionLinenumber: 157
    functionLinenumberEnd: 196
    functionName: Botan_CLI::PerfTest_BnRedc::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - rng
    - Botan::BigInt::bits
    - auto::run
    - Botan::Barrett_Reduction::for_secret_modulus
    - Botan::ct_modulo
    - auto::under
    - Botan::Barrett_Reduction::for_public_modulus
    - auto::reduce
    - record_result
    - runtime
    - std::to_string
    - make_timer
    - BOTAN_ASSERT
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_math.cpp:204,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:207,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:209,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:210,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:212,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:212,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:213,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:214,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:216,1
    - Dst: Botan::inverse_mod
      Src: /src/botan/src/cli/perf_math.cpp:216,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:218,1
    - Dst: gcd
      Src: /src/botan/src/cli/perf_math.cpp:218,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_math.cpp:221,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/cli/perf_math.cpp:223,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/cli/perf_math.cpp:225,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:229,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:230,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 203
    functionDepth: 3
    functionLinenumber: 203
    functionLinenumberEnd: 232
    functionName: Botan_CLI::PerfTest_InvMod::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - rng
    - gcd
    - auto::run
    - Botan::inverse_mod
    - auto::under
    - record_result
    - runtime
    - BOTAN_ASSERT_EQUAL
    - std::to_string
    - make_timer
    - BOTAN_ASSERT
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runtime
      Src: /src/botan/src/cli/perf_math.cpp:240,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:243,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:243,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:244,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:244,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:245,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:245,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/cli/perf_math.cpp:247,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:247,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:249,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/cli/perf_math.cpp:250,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:252,1
    - Dst: Botan::is_miller_rabin_probable_prime
      Src: /src/botan/src/cli/perf_math.cpp:252,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:252,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:254,1
    - Dst: Botan::is_bailie_psw_probable_prime
      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_lucas_probable_prime
      Src: /src/botan/src/cli/perf_math.cpp:256,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:261,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:262,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:263,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 239
    functionDepth: 3
    functionLinenumber: 239
    functionLinenumberEnd: 265
    functionName: Botan_CLI::PerfTest_IsPrime::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - Botan::is_miller_rabin_probable_prime
    - rng
    - Botan::is_lucas_probable_prime
    - auto::run
    - auto::under
    - Botan::is_bailie_psw_probable_prime
    - Botan::random_prime
    - Botan::Barrett_Reduction::for_public_modulus
    - record_result
    - runtime
    - std::to_string
    - make_timer
    linkageType: ''
    returnType: void
    signature: void go(const PerfConfig& config) override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/cli/perf_math.cpp:273,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_math.cpp:274,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:276,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:279,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:279,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:280,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:280,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:281,1
    - Dst: std::to_string
      Src: /src/botan/src/cli/perf_math.cpp:281,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:283,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:284,1
    - Dst: Botan::random_prime
      Src: /src/botan/src/cli/perf_math.cpp:284,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:286,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/cli/perf_math.cpp:286,1
    - Dst: error_output
      Src: /src/botan/src/cli/perf_math.cpp:287,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:290,1
    - Dst: Botan::random_safe_prime
      Src: /src/botan/src/cli/perf_math.cpp:290,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:292,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/cli/perf_math.cpp:292,1
    - Dst: error_output
      Src: /src/botan/src/cli/perf_math.cpp:293,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:296,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/cli/perf_math.cpp:296,1
    - Dst: error_output
      Src: /src/botan/src/cli/perf_math.cpp:297,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:302,1
    - Dst: Botan::is_prime
      Src: /src/botan/src/cli/perf_math.cpp:302,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:306,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:307,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:308,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 272
    functionDepth: 3
    functionLinenumber: 272
    functionLinenumberEnd: 310
    functionName: Botan_CLI::PerfTest_RandomPrime::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - rng
    - Botan::random_safe_prime
    - auto::run
    - Botan::BigInt::from_word
    - auto::under
    - Botan::random_prime
    - record_result
    - runtime
    - std::to_string
    - make_timer
    - error_output
    - Botan::is_prime
    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:323,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/cli/perf_math.cpp:324,1
    - Dst: auto::exponent_bits
      Src: /src/botan/src/cli/perf_math.cpp:326,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:329,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_math.cpp:330,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:332,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_math.cpp:333,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_math.cpp:335,1
    - Dst: runtime
      Src: /src/botan/src/cli/perf_math.cpp:335,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:336,1
    - Dst: auto::power_g_p
      Src: /src/botan/src/cli/perf_math.cpp:336,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_math.cpp:337,1
    - Dst: auto::power_g_p
      Src: /src/botan/src/cli/perf_math.cpp:337,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:340,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_math.cpp:341,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 321
    functionDepth: 3
    functionLinenumber: 321
    functionLinenumberEnd: 343
    functionName: Botan_CLI::PerfTest_ModExp::go
    functionSourceFile: /src/botan/src/cli/perf_math.cpp
    functionUses: 0
    functionsReached:
    - rng
    - auto::run
    - Botan::DL_Group::from_name
    - auto::exponent_bits
    - auto::under
    - record_result
    - runtime
    - std::to_string
    - make_timer
    - auto::power_g_p
    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:14,1
    - Dst: contains
      Src: /src/botan/src/cli/perf.cpp:16,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/perf.cpp:17,1
    - Dst: insert
      Src: /src/botan/src/cli/perf.cpp:20,1
    - Dst: std::make_pair
      Src: /src/botan/src/cli/perf.cpp:20,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: 21
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 21
    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
    - std::make_pair
    - PerfTest::global_registry
    - contains
    - 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: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    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:31,1
    - Dst: find
      Src: /src/botan/src/cli/perf.cpp:33,1
    - Dst: end
      Src: /src/botan/src/cli/perf.cpp:34,1
    - Dst: auto::second
      Src: /src/botan/src/cli/perf.cpp:35,1
    - Dst: Botan_CLI::PerfTest::get_sym
      Src: /src/botan/src/cli/perf.cpp:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 30
    functionDepth: 3
    functionLinenumber: 30
    functionLinenumberEnd: 39
    functionName: Botan_CLI::PerfTest::get
    functionSourceFile: /src/botan/src/cli/perf.cpp
    functionUses: 2
    functionsReached:
    - auto::second
    - PerfTest::global_registry
    - end
    - Botan_CLI::PerfTest::get_sym
    - find
    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:42,1
    - Dst: starts_with
      Src: /src/botan/src/cli/perf.cpp:45,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf.cpp:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' alg'
    - ' param'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 49
    functionName: Botan_CLI::PerfTest::format_name
    functionSourceFile: /src/botan/src/cli/perf.cpp
    functionUses: 0
    functionsReached:
    - empty
    - starts_with
    - Botan::fmt
    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:14,1
    - Dst: contains
      Src: /src/botan/src/cli/perf.cpp:16,1
    - Dst: CLI_Error
      Src: /src/botan/src/cli/perf.cpp:17,1
    - Dst: insert
      Src: /src/botan/src/cli/perf.cpp:20,1
    - Dst: std::make_pair
      Src: /src/botan/src/cli/perf.cpp:20,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: 21
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 21
    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
    - std::make_pair
    - PerfTest::global_registry
    - contains
    - 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: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    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:31,1
    - Dst: find
      Src: /src/botan/src/cli/perf.cpp:33,1
    - Dst: end
      Src: /src/botan/src/cli/perf.cpp:34,1
    - Dst: auto::second
      Src: /src/botan/src/cli/perf.cpp:35,1
    - Dst: Botan_CLI::PerfTest::get_sym
      Src: /src/botan/src/cli/perf.cpp:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 30
    functionDepth: 3
    functionLinenumber: 30
    functionLinenumberEnd: 39
    functionName: Botan_CLI::PerfTest::get
    functionSourceFile: /src/botan/src/cli/perf.cpp
    functionUses: 2
    functionsReached:
    - auto::second
    - PerfTest::global_registry
    - end
    - Botan_CLI::PerfTest::get_sym
    - find
    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:42,1
    - Dst: starts_with
      Src: /src/botan/src/cli/perf.cpp:45,1
    - Dst: Botan::fmt
      Src: /src/botan/src/cli/perf.cpp:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' alg'
    - ' param'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 49
    functionName: Botan_CLI::PerfTest::format_name
    functionSourceFile: /src/botan/src/cli/perf.cpp
    functionUses: 0
    functionsReached:
    - empty
    - starts_with
    - Botan::fmt
    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: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    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: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    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: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    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:31,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cipher.cpp:32,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cipher.cpp:33,1
    - Dst: get_arg_or
      Src: /src/botan/src/cli/cipher.cpp:34,1
    - Dst: get_arg_or
      Src: /src/botan/src/cli/cipher.cpp:35,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/cipher.cpp:36,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/cipher.cpp:40,1
    - Dst: flag_set
      Src: /src/botan/src/cli/cipher.cpp:42,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/cli/cipher.cpp:44,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/cipher.cpp:46,1
    - Dst: auto::set_key
      Src: /src/botan/src/cli/cipher.cpp:50,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/cipher.cpp:53,1
    - Dst: dynamic_cast<Botan::AEAD_Mode*>
      Src: /src/botan/src/cli/cipher.cpp:55,1
    - Dst: auto::get
      Src: /src/botan/src/cli/cipher.cpp:55,1
    - Dst: Botan::AEAD_Mode*::set_associated_data
      Src: /src/botan/src/cli/cipher.cpp:56,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/cipher.cpp:60,1
    - Dst: auto::start
      Src: /src/botan/src/cli/cipher.cpp:65,1
    - Dst: Botan::InitializationVector::bits_of
      Src: /src/botan/src/cli/cipher.cpp:65,1
    - Dst: Botan_CLI::Cipher::slurp_file
      Src: /src/botan/src/cli/cipher.cpp:67,1
    - Dst: std::vector::begin
      Src: /src/botan/src/cli/cipher.cpp:69,1
    - Dst: std::vector::end
      Src: /src/botan/src/cli/cipher.cpp:69,1
    - Dst: auto::finish
      Src: /src/botan/src/cli/cipher.cpp:70,1
    - Dst: write_output
      Src: /src/botan/src/cli/cipher.cpp:72,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 73
    functionName: Botan_CLI::Cipher::go
    functionSourceFile: /src/botan/src/cli/cipher.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - auto::set_key
    - dynamic_cast<Botan::AEAD_Mode*>
    - write_output
    - auto::get
    - std::vector::end
    - Botan::Cipher_Mode::create
    - flag_set
    - CLI_Error_Unsupported
    - std::vector::begin
    - Botan_CLI::Cipher::slurp_file
    - CLI_Usage_Error
    - Botan::InitializationVector::bits_of
    - get_arg
    - Botan::AEAD_Mode*::set_associated_data
    - get_arg_sz
    - std::vector::empty
    - get_arg_or
    - auto::finish
    - auto::start
    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::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: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    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: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    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:31,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cipher.cpp:32,1
    - Dst: get_arg
      Src: /src/botan/src/cli/cipher.cpp:33,1
    - Dst: get_arg_or
      Src: /src/botan/src/cli/cipher.cpp:34,1
    - Dst: get_arg_or
      Src: /src/botan/src/cli/cipher.cpp:35,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/cipher.cpp:36,1
    - Dst: Botan::hex_decode
      Src: /src/botan/src/cli/cipher.cpp:40,1
    - Dst: flag_set
      Src: /src/botan/src/cli/cipher.cpp:42,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/cli/cipher.cpp:44,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/cipher.cpp:46,1
    - Dst: auto::set_key
      Src: /src/botan/src/cli/cipher.cpp:50,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/cipher.cpp:53,1
    - Dst: dynamic_cast<Botan::AEAD_Mode*>
      Src: /src/botan/src/cli/cipher.cpp:55,1
    - Dst: auto::get
      Src: /src/botan/src/cli/cipher.cpp:55,1
    - Dst: Botan::AEAD_Mode*::set_associated_data
      Src: /src/botan/src/cli/cipher.cpp:56,1
    - Dst: CLI_Usage_Error
      Src: /src/botan/src/cli/cipher.cpp:60,1
    - Dst: auto::start
      Src: /src/botan/src/cli/cipher.cpp:65,1
    - Dst: Botan::InitializationVector::bits_of
      Src: /src/botan/src/cli/cipher.cpp:65,1
    - Dst: Botan_CLI::Cipher::slurp_file
      Src: /src/botan/src/cli/cipher.cpp:67,1
    - Dst: std::vector::begin
      Src: /src/botan/src/cli/cipher.cpp:69,1
    - Dst: std::vector::end
      Src: /src/botan/src/cli/cipher.cpp:69,1
    - Dst: auto::finish
      Src: /src/botan/src/cli/cipher.cpp:70,1
    - Dst: write_output
      Src: /src/botan/src/cli/cipher.cpp:72,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 73
    functionName: Botan_CLI::Cipher::go
    functionSourceFile: /src/botan/src/cli/cipher.cpp
    functionUses: 0
    functionsReached:
    - Botan::hex_decode
    - auto::set_key
    - dynamic_cast<Botan::AEAD_Mode*>
    - write_output
    - auto::get
    - std::vector::end
    - Botan::Cipher_Mode::create
    - flag_set
    - CLI_Error_Unsupported
    - std::vector::begin
    - Botan_CLI::Cipher::slurp_file
    - CLI_Usage_Error
    - Botan::InitializationVector::bits_of
    - get_arg
    - Botan::AEAD_Mode*::set_associated_data
    - get_arg_sz
    - std::vector::empty
    - get_arg_or
    - auto::finish
    - auto::start
    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: 19
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 19
    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: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    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: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    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:26,1
    - Dst: get_arg
      Src: /src/botan/src/cli/hash.cpp:27,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/hash.cpp:28,1
    - Dst: flag_set
      Src: /src/botan/src/cli/hash.cpp:29,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/cli/hash.cpp:31,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/hash.cpp:34,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/hash.cpp:37,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/hash.cpp:38,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/hash.cpp:39,1
    - Dst: auto::update
      Src: /src/botan/src/cli/hash.cpp:44,1
    - Dst: read_file
      Src: /src/botan/src/cli/hash.cpp:45,1
    - Dst: format_blob
      Src: /src/botan/src/cli/hash.cpp:47,1
    - Dst: auto::final
      Src: /src/botan/src/cli/hash.cpp:47,1
    - Dst: output
      Src: /src/botan/src/cli/hash.cpp:50,1
    - Dst: output
      Src: /src/botan/src/cli/hash.cpp:52,1
    - Dst: error_output
      Src: /src/botan/src/cli/hash.cpp:55,1
    - Dst: what
      Src: /src/botan/src/cli/hash.cpp:55,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 58
    functionName: Botan_CLI::Hash::go
    functionSourceFile: /src/botan/src/cli/hash.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - CLI_Error_Unsupported
    - auto::update
    - get_arg_sz
    - std::vector::push_back
    - get_arg_list
    - auto::final
    - std::vector::empty
    - error_output
    - what
    - format_blob
    - Botan::HashFunction::create
    - read_file
    - output
    - flag_set
    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: 19
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 19
    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: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    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: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    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:26,1
    - Dst: get_arg
      Src: /src/botan/src/cli/hash.cpp:27,1
    - Dst: get_arg_sz
      Src: /src/botan/src/cli/hash.cpp:28,1
    - Dst: flag_set
      Src: /src/botan/src/cli/hash.cpp:29,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/cli/hash.cpp:31,1
    - Dst: CLI_Error_Unsupported
      Src: /src/botan/src/cli/hash.cpp:34,1
    - Dst: get_arg_list
      Src: /src/botan/src/cli/hash.cpp:37,1
    - Dst: std::vector::empty
      Src: /src/botan/src/cli/hash.cpp:38,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/cli/hash.cpp:39,1
    - Dst: auto::update
      Src: /src/botan/src/cli/hash.cpp:44,1
    - Dst: read_file
      Src: /src/botan/src/cli/hash.cpp:45,1
    - Dst: format_blob
      Src: /src/botan/src/cli/hash.cpp:47,1
    - Dst: auto::final
      Src: /src/botan/src/cli/hash.cpp:47,1
    - Dst: output
      Src: /src/botan/src/cli/hash.cpp:50,1
    - Dst: output
      Src: /src/botan/src/cli/hash.cpp:52,1
    - Dst: error_output
      Src: /src/botan/src/cli/hash.cpp:55,1
    - Dst: what
      Src: /src/botan/src/cli/hash.cpp:55,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 58
    functionName: Botan_CLI::Hash::go
    functionSourceFile: /src/botan/src/cli/hash.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - CLI_Error_Unsupported
    - auto::update
    - get_arg_sz
    - std::vector::push_back
    - get_arg_list
    - auto::final
    - std::vector::empty
    - error_output
    - what
    - format_blob
    - Botan::HashFunction::create
    - read_file
    - output
    - flag_set
    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: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    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: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    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: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    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:38,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/codec.cpp:38,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/codec.cpp:39,1
    - Dst: get_arg
      Src: /src/botan/src/cli/codec.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: Botan_CLI::Hex_Encode::go
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - output
    - Botan_CLI::Command::read_file
    - Botan::hex_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: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    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: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    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: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    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: Botan::hex_decode
      Src: /src/botan/src/cli/codec.cpp:55,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/codec.cpp:55,1
    - Dst: write_output
      Src: /src/botan/src/cli/codec.cpp:56,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/codec.cpp:59,1
    - Dst: get_arg
      Src: /src/botan/src/cli/codec.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 60
    functionName: Botan_CLI::Hex_Decode::go
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - Botan::hex_decode
    - Botan_CLI::Command::read_file
    - write_output
    - 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: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    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: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    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: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    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:78,1
    - Dst: get_arg
      Src: /src/botan/src/cli/codec.cpp:78,1
    - Dst: flag_set
      Src: /src/botan/src/cli/codec.cpp:80,1
    - Dst: output
      Src: /src/botan/src/cli/codec.cpp:81,1
    - Dst: Botan::base58_check_encode
      Src: /src/botan/src/cli/codec.cpp:81,1
    - Dst: output
      Src: /src/botan/src/cli/codec.cpp:83,1
    - Dst: Botan::base58_encode
      Src: /src/botan/src/cli/codec.cpp:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 85
    functionName: Botan_CLI::Base58_Encode::go
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - Botan::base58_check_encode
    - slurp_file
    - Botan::base58_encode
    - output
    - flag_set
    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: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    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: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    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: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    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:99,1
    - Dst: get_arg
      Src: /src/botan/src/cli/codec.cpp:99,1
    - Dst: flag_set
      Src: /src/botan/src/cli/codec.cpp:103,1
    - Dst: Botan::base58_check_decode
      Src: /src/botan/src/cli/codec.cpp:104,1
    - Dst: Botan::base58_decode
      Src: /src/botan/src/cli/codec.cpp:106,1
    - Dst: write_output
      Src: /src/botan/src/cli/codec.cpp:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 110
    functionName: Botan_CLI::Base58_Decode::go
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - Botan::base58_check_decode
    - write_output
    - slurp_file_as_str
    - Botan::base58_decode
    - flag_set
    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: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    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: 123
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 123
    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: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    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:128,1
    - Dst: Botan::base32_encode
      Src: /src/botan/src/cli/codec.cpp:128,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/codec.cpp:129,1
    - Dst: get_arg
      Src: /src/botan/src/cli/codec.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: Botan_CLI::Base32_Encode::go
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - output
    - Botan::base32_encode
    - Botan_CLI::Command::read_file
    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: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    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: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    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: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    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: Botan::base32_decode
      Src: /src/botan/src/cli/codec.cpp:145,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/codec.cpp:145,1
    - Dst: write_output
      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: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 150
    functionName: Botan_CLI::Base32_Decode::go
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - Botan_CLI::Command::read_file
    - write_output
    - Botan::base32_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: 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
    - output
    - Botan_CLI::Command::read_file
    - Botan::base64_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: 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: 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: write_output
      Src: /src/botan/src/cli/codec.cpp:186,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/codec.cpp:189,1
    - Dst: get_arg
      Src: /src/botan/src/cli/codec.cpp:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 190
    functionName: Botan_CLI::Base64_Decode::go
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - Botan_CLI::Command::read_file
    - write_output
    - reinterpret_cast<const char*>
    - Botan::base64_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: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    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: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    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: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    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:38,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/codec.cpp:38,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/codec.cpp:39,1
    - Dst: get_arg
      Src: /src/botan/src/cli/codec.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 40
    functionName: Botan_CLI::Hex_Encode::go
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - output
    - Botan_CLI::Command::read_file
    - Botan::hex_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: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    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: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    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: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    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: Botan::hex_decode
      Src: /src/botan/src/cli/codec.cpp:55,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/codec.cpp:55,1
    - Dst: write_output
      Src: /src/botan/src/cli/codec.cpp:56,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/codec.cpp:59,1
    - Dst: get_arg
      Src: /src/botan/src/cli/codec.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 60
    functionName: Botan_CLI::Hex_Decode::go
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - Botan::hex_decode
    - Botan_CLI::Command::read_file
    - write_output
    - 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: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    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: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    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: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    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:78,1
    - Dst: get_arg
      Src: /src/botan/src/cli/codec.cpp:78,1
    - Dst: flag_set
      Src: /src/botan/src/cli/codec.cpp:80,1
    - Dst: output
      Src: /src/botan/src/cli/codec.cpp:81,1
    - Dst: Botan::base58_check_encode
      Src: /src/botan/src/cli/codec.cpp:81,1
    - Dst: output
      Src: /src/botan/src/cli/codec.cpp:83,1
    - Dst: Botan::base58_encode
      Src: /src/botan/src/cli/codec.cpp:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 85
    functionName: Botan_CLI::Base58_Encode::go
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - Botan::base58_check_encode
    - slurp_file
    - Botan::base58_encode
    - output
    - flag_set
    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: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    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: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    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: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    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:99,1
    - Dst: get_arg
      Src: /src/botan/src/cli/codec.cpp:99,1
    - Dst: flag_set
      Src: /src/botan/src/cli/codec.cpp:103,1
    - Dst: Botan::base58_check_decode
      Src: /src/botan/src/cli/codec.cpp:104,1
    - Dst: Botan::base58_decode
      Src: /src/botan/src/cli/codec.cpp:106,1
    - Dst: write_output
      Src: /src/botan/src/cli/codec.cpp:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 110
    functionName: Botan_CLI::Base58_Decode::go
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - Botan::base58_check_decode
    - write_output
    - slurp_file_as_str
    - Botan::base58_decode
    - flag_set
    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: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    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: 123
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 123
    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: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    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:128,1
    - Dst: Botan::base32_encode
      Src: /src/botan/src/cli/codec.cpp:128,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/codec.cpp:129,1
    - Dst: get_arg
      Src: /src/botan/src/cli/codec.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 130
    functionName: Botan_CLI::Base32_Encode::go
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - output
    - Botan::base32_encode
    - Botan_CLI::Command::read_file
    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: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    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: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    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: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    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: Botan::base32_decode
      Src: /src/botan/src/cli/codec.cpp:145,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/cli/codec.cpp:145,1
    - Dst: write_output
      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: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 150
    functionName: Botan_CLI::Base32_Decode::go
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - Botan_CLI::Command::read_file
    - write_output
    - Botan::base32_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: 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
    - output
    - Botan_CLI::Command::read_file
    - Botan::base64_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: 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: 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: write_output
      Src: /src/botan/src/cli/codec.cpp:186,1
    - Dst: Botan_CLI::Command::read_file
      Src: /src/botan/src/cli/codec.cpp:189,1
    - Dst: get_arg
      Src: /src/botan/src/cli/codec.cpp:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 190
    functionName: Botan_CLI::Base64_Decode::go
    functionSourceFile: /src/botan/src/cli/codec.cpp
    functionUses: 0
    functionsReached:
    - get_arg
    - Botan_CLI::Command::read_file
    - write_output
    - reinterpret_cast<const char*>
    - Botan::base64_decode
    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:
    - get_arg
    - Botan::hex_decode_locked
    - psk_operation
    - std::make_shared<Botan::Sqlite3_Database>
    - get_passphrase_arg
    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:
    - get_arg
    - Botan::hex_decode_locked
    - 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:
    - get_arg
    - output
    - get
    - Botan::hex_encode
    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:
    - get_arg
    - Botan::hex_decode_locked
    - psk_operation
    - std::make_shared<Botan::Sqlite3_Database>
    - get_passphrase_arg
    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:
    - get_arg
    - Botan::hex_decode_locked
    - 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:
    - get_arg
    - output
    - get
    - Botan::hex_encode
    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:
    - value
    - Botan::hex_encode
    - session_id
    - maybe_hex_encode
    - empty
    - version
    - ciphersuite
    - get
    - session_ticket
    - output
    - external_psk_identity
    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:
    - static_cast<char>
    - std::exchange
    - 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:
    - output
    - Botan::TLS::Alert::type_string
    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:
    - value
    - Botan::hex_encode
    - session_id
    - maybe_hex_encode
    - empty
    - version
    - ciphersuite
    - get
    - session_ticket
    - output
    - external_psk_identity
    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:
    - static_cast<char>
    - std::exchange
    - 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:
    - output
    - Botan::TLS::Alert::type_string
    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: 1
    functionLinenumber: 139
    functionLinenumberEnd: 285
    functionName: Botan_CLI::TLS_Server::go
    functionSourceFile: /src/botan/src/cli/tls_server.cpp
    functionUses: 0
    functionsReached:
    - std::chrono::duration_cast<std::chrono::nanoseconds>
    - Botan::TLS::Server::is_active
    - std::make_shared<Basic_Credentials_Manager>
    - Botan::TLS::Server::is_closed
    - std::string::empty
    - err_to_string
    - init
    - what
    - load_tls_policy
    - get_arg_u16
    - Server::move_before_accept
    - reinterpret_cast<const char*>
    - front
    - Botan::TLS::Server::received_data
    - Botan_CLI::TLS_Server::make_server_socket
    - ::recvfrom
    - rng_as_shared
    - pop_front
    - invalid_socket
    - CLI_Usage_Error
    - reinterpret_cast<struct sockaddr*>
    - close_socket
    - output
    - ::recv
    - Botan::TLS::Server::close
    - get_arg_maybe
    - get_arg
    - get_arg_sz
    - static_cast<uint32_t>
    - Botan::cast_uint8_ptr_to_char
    - CLI_Error
    - std::make_unique<std::ofstream>
    - auto::value
    - std::make_shared<Botan::TLS::Session_Manager_In_Memory>
    - Botan::TLS::Server::send
    - Botan::hex_decode_locked
    - std::move
    - std::unique_ptr::write
    - client::handle_connect
    - std::string::c_str
    - Botan::TLS::detail::AsyncBase::complete_now
    - empty
    - std::make_shared<Callbacks>
    - std::to_string
    - static_cast<char*>
    - error_output
    - static_cast<sendrecv_len_type>
    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: 1
    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>::empty
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - static_cast<size_t>
    - CLI_Error
    - Botan_Tests::MockChannel::send
    - std::span<const uint8_t>::subspan
    - err_to_string
    - error_output
    - static_cast<sendrecv_len_type>
    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:
    - Server::listen
    - reinterpret_cast<const void*>
    - min
    - CLI_Error
    - ::setsockopt
    - invalid_socket
    - Client::close_socket
    - htons
    - ::bind
    - Botan::clear_mem
    - reinterpret_cast<struct sockaddr*>
    - close_socket
    - output
    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:
    - value
    - Botan::hex_encode
    - session_id
    - maybe_hex_encode
    - empty
    - version
    - ciphersuite
    - get
    - session_ticket
    - output
    - external_psk_identity
    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:
    - static_cast<char>
    - std::exchange
    - 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:
    - output
    - Botan::TLS::Alert::type_string
    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:
    - value
    - Botan::hex_encode
    - session_id
    - maybe_hex_encode
    - empty
    - version
    - ciphersuite
    - get
    - session_ticket
    - output
    - external_psk_identity
    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:
    - static_cast<char>
    - std::exchange
    - 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:
    - output
    - Botan::TLS::Alert::type_string
    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:
    - std::chrono::duration_cast<std::chrono::nanoseconds>
    - Botan::TLS::Server::is_active
    - std::make_shared<Basic_Credentials_Manager>
    - Botan::TLS::Server::is_closed
    - std::string::empty
    - err_to_string
    - init
    - what
    - load_tls_policy
    - get_arg_u16
    - Server::move_before_accept
    - reinterpret_cast<const char*>
    - front
    - Botan::TLS::Server::received_data
    - Botan_CLI::TLS_Server::make_server_socket
    - ::recvfrom
    - rng_as_shared
    - pop_front
    - invalid_socket
    - CLI_Usage_Error
    - reinterpret_cast<struct sockaddr*>
    - close_socket
    - output
    - ::recv
    - Botan::TLS::Server::close
    - get_arg_maybe
    - get_arg
    - get_arg_sz
    - static_cast<uint32_t>
    - Botan::cast_uint8_ptr_to_char
    - CLI_Error
    - std::make_unique<std::ofstream>
    - auto::value
    - std::make_shared<Botan::TLS::Session_Manager_In_Memory>
    - Botan::TLS::Server::send
    - Botan::hex_decode_locked
    - std::move
    - std::unique_ptr::write
    - client::handle_connect
    - std::string::c_str
    - Botan::TLS::detail::AsyncBase::complete_now
    - empty
    - std::make_shared<Callbacks>
    - std::to_string
    - static_cast<char*>
    - error_output
    - static_cast<sendrecv_len_type>
    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: 1
    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>::empty
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - static_cast<size_t>
    - CLI_Error
    - Botan_Tests::MockChannel::send
    - std::span<const uint8_t>::subspan
    - err_to_string
    - error_output
    - static_cast<sendrecv_len_type>
    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:
    - Server::listen
    - reinterpret_cast<const void*>
    - min
    - CLI_Error
    - ::setsockopt
    - invalid_socket
    - Client::close_socket
    - htons
    - ::bind
    - Botan::clear_mem
    - reinterpret_cast<struct sockaddr*>
    - close_socket
    - output
    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: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    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: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    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: std::chrono::duration_cast<std::chrono::nanoseconds>
      Src: /src/botan/src/cli/timer.h:35,1
    - Dst: auto::count
      Src: /src/botan/src/cli/timer.h:36,1
    - Dst: Botan_CLI::Timer::value
      Src: /src/botan/src/cli/timer.h:36,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/cli/timer.h:36,1
    - Dst: auto::count
      Src: /src/botan/src/cli/timer.h:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msec
    argTypes:
    - std::chrono::milliseconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: Botan_CLI::Timer::under
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timer::value
    - auto::count
    - std::chrono::duration_cast<std::chrono::nanoseconds>
    - static_cast<size_t>
    linkageType: ''
    returnType: bool
    signature: bool under(std::chrono::milliseconds msec) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: start
      Src: /src/botan/src/cli/timer.h:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' timer'
    argTypes:
    - Timer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 41
    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:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    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: 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(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: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    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: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    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: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    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:59,1
    - Dst: f
      Src: /src/botan/src/cli/timer.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    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:66,1
    - Dst: Botan_CLI::Timer::run
      Src: /src/botan/src/cli/timer.h:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - msec
    - f
    argTypes:
    - std::chrono::milliseconds
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: Botan_CLI::Timer::run_until_elapsed
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timer::under
    - Botan_CLI::Timer::run
    linkageType: ''
    returnType: void
    signature: void run_until_elapsed(std::chrono::milliseconds msec, F f)
  - 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::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:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: Botan_CLI::Timer::seconds
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 22
    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:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: Botan_CLI::Timer::milliseconds
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 79
    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:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: Botan_CLI::Timer::microseconds
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 2
    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:79,1
    - Dst: Botan_CLI::Timer::value
      Src: /src/botan/src/cli/timer.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_CLI::Timer::nanoseconds
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 5
    functionsReached:
    - Botan_CLI::Timer::value
    - static_cast<double>
    linkageType: ''
    returnType: double
    signature: double nanoseconds() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Timer::value
      Src: /src/botan/src/cli/timer.h:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 86
    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: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    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: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    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: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    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: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    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: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_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:99,1
    - Dst: Botan_CLI::Timer::events
      Src: /src/botan/src/cli/timer.h:99,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/timer.h:100,1
    - Dst: Botan_CLI::Timer::events
      Src: /src/botan/src/cli/timer.h:100,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/cli/timer.h:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 104
    functionName: Botan_CLI::Timer::events_per_second
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 1
    functionsReached:
    - Botan_CLI::Timer::events
    - Botan_CLI::Timer::seconds
    - 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:107,1
    - Dst: Botan_CLI::Timer::events
      Src: /src/botan/src/cli/timer.h:107,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/cli/timer.h:108,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/timer.h:108,1
    - Dst: Botan_CLI::Timer::events
      Src: /src/botan/src/cli/timer.h:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 112
    functionName: Botan_CLI::Timer::seconds_per_event
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timer::events
    - Botan_CLI::Timer::seconds
    - 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: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    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: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    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: std::chrono::duration_cast<std::chrono::nanoseconds>
      Src: /src/botan/src/cli/timer.h:35,1
    - Dst: auto::count
      Src: /src/botan/src/cli/timer.h:36,1
    - Dst: Botan_CLI::Timer::value
      Src: /src/botan/src/cli/timer.h:36,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/cli/timer.h:36,1
    - Dst: auto::count
      Src: /src/botan/src/cli/timer.h:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msec
    argTypes:
    - std::chrono::milliseconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: Botan_CLI::Timer::under
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 1
    functionsReached:
    - Botan_CLI::Timer::value
    - auto::count
    - std::chrono::duration_cast<std::chrono::nanoseconds>
    - static_cast<size_t>
    linkageType: ''
    returnType: bool
    signature: bool under(std::chrono::milliseconds msec) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: start
      Src: /src/botan/src/cli/timer.h:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' timer'
    argTypes:
    - Timer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 41
    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:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    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: 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(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: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    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: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    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: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    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:59,1
    - Dst: f
      Src: /src/botan/src/cli/timer.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 62
    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:66,1
    - Dst: Botan_CLI::Timer::run
      Src: /src/botan/src/cli/timer.h:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - msec
    - f
    argTypes:
    - std::chrono::milliseconds
    - F
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: Botan_CLI::Timer::run_until_elapsed
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timer::under
    - Botan_CLI::Timer::run
    linkageType: ''
    returnType: void
    signature: void run_until_elapsed(std::chrono::milliseconds msec, F f)
  - 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::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:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 73
    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:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: Botan_CLI::Timer::milliseconds
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 79
    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:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: Botan_CLI::Timer::microseconds
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 2
    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:79,1
    - Dst: Botan_CLI::Timer::value
      Src: /src/botan/src/cli/timer.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_CLI::Timer::nanoseconds
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 8
    functionsReached:
    - Botan_CLI::Timer::value
    - static_cast<double>
    linkageType: ''
    returnType: double
    signature: double nanoseconds() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::Timer::value
      Src: /src/botan/src/cli/timer.h:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 86
    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: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    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: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    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: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    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: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    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:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 96
    functionDepth: 3
    functionLinenumber: 96
    functionLinenumberEnd: 96
    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:99,1
    - Dst: Botan_CLI::Timer::events
      Src: /src/botan/src/cli/timer.h:99,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/timer.h:100,1
    - Dst: Botan_CLI::Timer::events
      Src: /src/botan/src/cli/timer.h:100,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/cli/timer.h:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 104
    functionName: Botan_CLI::Timer::events_per_second
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 2
    functionsReached:
    - Botan_CLI::Timer::events
    - Botan_CLI::Timer::seconds
    - 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:107,1
    - Dst: Botan_CLI::Timer::events
      Src: /src/botan/src/cli/timer.h:107,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/cli/timer.h:108,1
    - Dst: static_cast<double>
      Src: /src/botan/src/cli/timer.h:108,1
    - Dst: Botan_CLI::Timer::events
      Src: /src/botan/src/cli/timer.h:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 112
    functionName: Botan_CLI::Timer::seconds_per_event
    functionSourceFile: /src/botan/src/cli/timer.h
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timer::events
    - Botan_CLI::Timer::seconds
    - 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_emptyset
    - ::priv_freeset
    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:
    - ::sandbox_init
    - std::unique_ptr<priv_set_t, SandboxPrivDelete>
    - Botan::initialize_allocator
    - ::cap_rights_limit
    - ::priv_allocset
    - ::priv_basicset
    - std::unique_ptr::get
    - ::priv_delset
    - ::cap_enter
    - ::cap_rights_init
    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_emptyset
    - ::priv_freeset
    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:
    - ::sandbox_init
    - std::unique_ptr<priv_set_t, SandboxPrivDelete>
    - Botan::initialize_allocator
    - ::cap_rights_limit
    - ::priv_allocset
    - ::priv_basicset
    - std::unique_ptr::get
    - ::priv_delset
    - ::cap_enter
    - ::cap_rights_init
    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: 36
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 36
    functionName: value_exists
    functionSourceFile: /src/botan/src/cli/tls_helpers.h
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool value_exists(const std::vector<std::string>& vec, const std::string&
      val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::all_of
      Src: /src/botan/src/cli/tls_helpers.h:40,1
    - Dst: std::string_view::begin
      Src: /src/botan/src/cli/tls_helpers.h:40,1
    - Dst: std::string_view::end
      Src: /src/botan/src/cli/tls_helpers.h:40,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/cli/tls_helpers.h:41,1
    - Dst: std::span<const uint8_t>
      Src: /src/botan/src/cli/tls_helpers.h:41,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/cli/tls_helpers.h:41,1
    - Dst: std::string_view::data
      Src: /src/botan/src/cli/tls_helpers.h:41,1
    - Dst: std::string_view::size
      Src: /src/botan/src/cli/tls_helpers.h:41,1
    - Dst: std::string
      Src: /src/botan/src/cli/tls_helpers.h:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - v
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 44
    functionName: maybe_hex_encode
    functionSourceFile: /src/botan/src/cli/tls_helpers.h
    functionUses: 8
    functionsReached:
    - std::string_view::begin
    - std::span<const uint8_t>
    - Botan::hex_encode
    - std::all_of
    - std::string
    - reinterpret_cast<const uint8_t*>
    - std::string_view::size
    - std::string_view::end
    - std::string_view::data
    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:50,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/cli/tls_helpers.h:54,1
    - Dst: std::exchange
      Src: /src/botan/src/cli/tls_helpers.h:55,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_helpers.h:55,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/cli/tls_helpers.h:60,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_helpers.h:62,1
    - Dst: Botan::DataSource_Stream::end_of_data
      Src: /src/botan/src/cli/tls_helpers.h:65,1
    - Dst: Certificate_Info::certs::push_back
      Src: /src/botan/src/cli/tls_helpers.h:67,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/cli/tls_helpers.h:67,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/cli/tls_helpers.h:71,1
    - Dst: Certificate_Info::certs::empty
      Src: /src/botan/src/cli/tls_helpers.h:71,1
    - Dst: push_back
      Src: /src/botan/src/cli/tls_helpers.h:75,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - ' cred'
    - ' key'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 76
    functionName: Basic_Credentials_Manager::load_credentials
    functionSourceFile: /src/botan/src/cli/tls_helpers.h
    functionUses: 0
    functionsReached:
    - std::move
    - Certificate_Info::certs::empty
    - std::exchange
    - BOTAN_ASSERT_NONNULL
    - Botan::PKCS8::load_key
    - BOTAN_ARG_CHECK
    - Certificate_Info::certs::push_back
    - push_back
    - Botan::DataSource_Stream::end_of_data
    - Botan::X509::load_key
    - Botan::X509_Certificate
    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:86,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_helpers.h:87,1
    - Dst: value_or
      Src: /src/botan/src/cli/tls_helpers.h:92,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_helpers.h:93,1
    - Dst: push_back
      Src: /src/botan/src/cli/tls_helpers.h:94,1
    - Dst: std::make_shared<Botan::Certificate_Store_In_Memory>
      Src: /src/botan/src/cli/tls_helpers.h:94,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/cli/tls_helpers.h:97,1
    - Dst: has_value
      Src: /src/botan/src/cli/tls_helpers.h:97,1
    - Dst: has_value
      Src: /src/botan/src/cli/tls_helpers.h:97,1
    - Dst: has_value
      Src: /src/botan/src/cli/tls_helpers.h:100,1
    - Dst: has_value
      Src: /src/botan/src/cli/tls_helpers.h:100,1
    - Dst: Basic_Credentials_Manager::load_credentials
      Src: /src/botan/src/cli/tls_helpers.h:101,1
    - Dst: value
      Src: /src/botan/src/cli/tls_helpers.h:101,1
    - Dst: value
      Src: /src/botan/src/cli/tls_helpers.h:101,1
    - Dst: push_back
      Src: /src/botan/src/cli/tls_helpers.h:106,1
    - Dst: std::make_shared<Botan::System_Certificate_Store>
      Src: /src/botan/src/cli/tls_helpers.h:106,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/cli/tls_helpers.h:109,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - use_system_store
    - ' ca_path'
    argTypes:
    - bool
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 111
    functionName: Basic_Credentials_Manager::Basic_Credentials_Manager
    functionSourceFile: /src/botan/src/cli/tls_helpers.h
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_shared<Botan::System_Certificate_Store>
    - value_or
    - has_value
    - BOTAN_ARG_CHECK
    - push_back
    - empty
    - Basic_Credentials_Manager::load_credentials
    - BOTAN_UNUSED
    - std::make_shared<Botan::Certificate_Store_In_Memory>
    - value
    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:118,1
    - Dst: std::move
      Src: /src/botan/src/cli/tls_helpers.h:119,1
    - Dst: value_or
      Src: /src/botan/src/cli/tls_helpers.h:124,1
    - Dst: Basic_Credentials_Manager::load_credentials
      Src: /src/botan/src/cli/tls_helpers.h:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' server_cred'
    - ' server_key'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 126
    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:138,1
    - Dst: get
      Src: /src/botan/src/cli/tls_helpers.h:138,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' type'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 142
    functionName: Basic_Credentials_Manager::trusted_certificate_authorities
    functionSourceFile: /src/botan/src/cli/tls_helpers.h
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - get
    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:150,1
    - Dst: issuer_dn
      Src: /src/botan/src/cli/tls_helpers.h:155,1
    - Dst: std::find
      Src: /src/botan/src/cli/tls_helpers.h:162,1
    - Dst: begin
      Src: /src/botan/src/cli/tls_helpers.h:162,1
    - Dst: end
      Src: /src/botan/src/cli/tls_helpers.h:162,1
    - Dst: key::algo_name
      Src: /src/botan/src/cli/tls_helpers.h:162,1
    - Dst: end
      Src: /src/botan/src/cli/tls_helpers.h:162,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_helpers.h:166,1
    - Dst: matches_dns_name
      Src: /src/botan/src/cli/tls_helpers.h:166,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: 175
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 175
    functionName: Basic_Credentials_Manager::find_cert_chain
    functionSourceFile: /src/botan/src/cli/tls_helpers.h
    functionUses: 0
    functionsReached:
    - begin
    - matches_dns_name
    - std::find
    - empty
    - key::algo_name
    - end
    - issuer_dn
    - BOTAN_UNUSED
    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:180,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_helpers.h:181,1
    - Dst: value_exists
      Src: /src/botan/src/cli/tls_helpers.h:181,1
    - Dst: public_key::algo_name
      Src: /src/botan/src/cli/tls_helpers.h:181,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: 183
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 183
    functionName: Basic_Credentials_Manager::find_raw_public_key
    functionSourceFile: /src/botan/src/cli/tls_helpers.h
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    - empty
    - public_key::algo_name
    - value_exists
    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: 195
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 195
    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:200,1
    - Dst: fingerprint_public
      Src: /src/botan/src/cli/tls_helpers.h:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' raw_public_key'
    argTypes:
    - Botan::Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 203
    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:209,1
    - Dst: Botan::Credentials_Manager::psk_identity
      Src: /src/botan/src/cli/tls_helpers.h:210,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: 211
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 211
    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:218,1
    - Dst: has_value
      Src: /src/botan/src/cli/tls_helpers.h:218,1
    - Dst: Botan::Credentials_Manager::find_preshared_keys
      Src: /src/botan/src/cli/tls_helpers.h:219,1
    - Dst: has_value
      Src: /src/botan/src/cli/tls_helpers.h:224,1
    - Dst: value
      Src: /src/botan/src/cli/tls_helpers.h:224,1
    - Dst: empty
      Src: /src/botan/src/cli/tls_helpers.h:225,1
    - Dst: std::find
      Src: /src/botan/src/cli/tls_helpers.h:225,1
    - Dst: begin
      Src: /src/botan/src/cli/tls_helpers.h:225,1
    - Dst: end
      Src: /src/botan/src/cli/tls_helpers.h:225,1
    - Dst: value
      Src: /src/botan/src/cli/tls_helpers.h:225,1
    - Dst: end
      Src: /src/botan/src/cli/tls_helpers.h:225,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/cli/tls_helpers.h:228,1
    - Dst: value
      Src: /src/botan/src/cli/tls_helpers.h:228,1
    - Dst: value
      Src: /src/botan/src/cli/tls_helpers.h:228,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: 232
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 232
    functionName: Basic_Credentials_Manager::find_preshared_keys
    functionSourceFile: /src/botan/src/cli/tls_helpers.h
    functionUses: 0
    functionsReached:
    - begin
    - std::vector::emplace_back
    - Botan::Credentials_Manager::find_preshared_keys
    - empty
    - end
    - std::find
    - has_value
    - 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 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: 276
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 276
    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: 280
      start: 278
    functionDepth: 0
    functionLinenumber: 278
    functionLinenumberEnd: 280
    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: 284
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 284
    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: 286
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 286
    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:290,1
    - Dst: std::make_shared<Botan::TLS::Policy>
      Src: /src/botan/src/cli/tls_helpers.h:291,1
    - Dst: std::make_shared<Botan::TLS::NSA_Suite_B_128>
      Src: /src/botan/src/cli/tls_helpers.h:293,1
    - Dst: std::make_shared<Botan::TLS::NSA_Suite_B_192>
      Src: /src/botan/src/cli/tls_helpers.h:295,1
    - Dst: std::make_shared<Botan::TLS::Strict_Policy>
      Src: /src/botan/src/cli/tls_helpers.h:297,1
    - Dst: std::make_shared<Botan::TLS::BSI_TR_02102_2>
      Src: /src/botan/src/cli/tls_helpers.h:299,1
    - Dst: std::make_shared<Botan::TLS::Datagram_Policy>
      Src: /src/botan/src/cli/tls_helpers.h:301,1
    - Dst: std::make_shared<TLS_All_Policy>
      Src: /src/botan/src/cli/tls_helpers.h:303,1
    - Dst: std::ifstream::good
      Src: /src/botan/src/cli/tls_helpers.h:308,1
    - Dst: Botan_CLI::CLI_Usage_Error::CLI_Usage_Error
      Src: /src/botan/src/cli/tls_helpers.h:309,1
    - Dst: std::make_shared<Botan::TLS::Text_Policy>
      Src: /src/botan/src/cli/tls_helpers.h:311,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 1
    argNames:
    - ' policy_type'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 312
    functionName: load_tls_policy
    functionSourceFile: /src/botan/src/cli/tls_helpers.h
    functionUses: 10
    functionsReached:
    - std::make_shared<Botan::TLS::Datagram_Policy>
    - std::ifstream::good
    - std::make_shared<Botan::TLS::Policy>
    - std::make_shared<Botan::TLS::Text_Policy>
    - std::make_shared<Botan::TLS::BSI_TR_02102_2>
    - empty
    - std::make_shared<Botan::TLS::NSA_Suite_B_128>
    - std::make_shared<Botan::TLS::NSA_Suite_B_192>
    - std::make_shared<TLS_All_Policy>
    - Botan_CLI::CLI_Usage_Error::CLI_Usage_Error
    - std::make_shared<Botan::TLS::Strict_Policy>
    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::find
    - std::map::contains
    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:
    - auto::update
    - Botan::Compression_Algorithm::create
    - Botan::secure_vector::resize
    - Botan::secure_vector::data
    - Botan::secure_vector::clear
    - reinterpret_cast<const char*>
    - Botan::secure_vector::size
    - CLI_Error_Unsupported
    - std::ofstream::write
    - CLI_IO_Error
    - get_arg
    - get_arg_sz
    - std::ifstream::gcount
    - std::ifstream::good
    - std::ifstream::read
    - std::ofstream::close
    - auto::finish
    - reinterpret_cast<char*>
    - Botan_CLI::Compress::output_filename
    - std::ofstream::good
    - auto::start
    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:
    - CLI_Error
    - substr
    - find_last_of
    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:
    - auto::update
    - Botan::Decompression_Algorithm::create
    - Botan::secure_vector::resize
    - Botan::secure_vector::data
    - Botan::secure_vector::clear
    - reinterpret_cast<const char*>
    - Botan::secure_vector::size
    - CLI_Error_Unsupported
    - std::ofstream::write
    - Botan_CLI::Decompress::parse_extension
    - CLI_IO_Error
    - get_arg
    - get_arg_sz
    - std::ifstream::gcount
    - std::ifstream::good
    - std::ifstream::read
    - std::ofstream::close
    - auto::finish
    - reinterpret_cast<char*>
    - std::ofstream::good
    - auto::start
    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::find
    - std::map::contains
    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:
    - auto::update
    - Botan::Compression_Algorithm::create
    - Botan::secure_vector::resize
    - Botan::secure_vector::data
    - Botan::secure_vector::clear
    - reinterpret_cast<const char*>
    - Botan::secure_vector::size
    - CLI_Error_Unsupported
    - std::ofstream::write
    - CLI_IO_Error
    - get_arg
    - get_arg_sz
    - std::ifstream::gcount
    - std::ifstream::good
    - std::ifstream::read
    - std::ofstream::close
    - auto::finish
    - reinterpret_cast<char*>
    - Botan_CLI::Compress::output_filename
    - std::ofstream::good
    - auto::start
    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:
    - CLI_Error
    - substr
    - find_last_of
    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:
    - auto::update
    - Botan::Decompression_Algorithm::create
    - Botan::secure_vector::resize
    - Botan::secure_vector::data
    - Botan::secure_vector::clear
    - reinterpret_cast<const char*>
    - Botan::secure_vector::size
    - CLI_Error_Unsupported
    - std::ofstream::write
    - Botan_CLI::Decompress::parse_extension
    - CLI_IO_Error
    - get_arg
    - get_arg_sz
    - std::ifstream::gcount
    - std::ifstream::good
    - std::ifstream::read
    - std::ofstream::close
    - auto::finish
    - reinterpret_cast<char*>
    - std::ofstream::good
    - auto::start
    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: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    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:25,1
    - Dst: Botan_CLI::PerfTest_PKKa::keygen_params
      Src: /src/botan/src/cli/perf_pk_ka.cpp:27,1
    - Dst: Botan_CLI::PerfTest_PKKa::format_name
      Src: /src/botan/src/cli/perf_pk_ka.cpp:30,1
    - Dst: Botan_CLI::PerfTest_PKKa::bench_pk_ka
      Src: /src/botan/src/cli/perf_pk_ka.cpp:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 33
    functionName: Botan_CLI::PerfTest_PKKa::go
    functionSourceFile: /src/botan/src/cli/perf_pk_ka.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::PerfTest_PKKa::keygen_params
    - Botan_CLI::PerfTest_PKKa::algo
    - Botan_CLI::PerfTest_PKKa::format_name
    - Botan_CLI::PerfTest_PKKa::bench_pk_ka
    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:40,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_ka.cpp:44,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pk_ka.cpp:46,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_ka.cpp:48,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_ka.cpp:48,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_ka.cpp:49,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_ka.cpp:49,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_ka.cpp:52,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_ka.cpp:53,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_ka.cpp:53,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_ka.cpp:56,1
    - Dst: dynamic_cast<const Botan::PK_Key_Agreement_Key&>
      Src: /src/botan/src/cli/perf_pk_ka.cpp:58,1
    - Dst: dynamic_cast<const Botan::PK_Key_Agreement_Key&>
      Src: /src/botan/src/cli/perf_pk_ka.cpp:59,1
    - Dst: public_value
      Src: /src/botan/src/cli/perf_pk_ka.cpp:64,1
    - Dst: public_value
      Src: /src/botan/src/cli/perf_pk_ka.cpp:65,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_ka.cpp:67,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_ka.cpp:69,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_ka.cpp:70,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/cli/perf_pk_ka.cpp:70,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_ka.cpp:71,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/cli/perf_pk_ka.cpp:71,1
    - Dst: error_output
      Src: /src/botan/src/cli/perf_pk_ka.cpp:74,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_ka.cpp:78,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: 80
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 80
    functionName: Botan_CLI::PerfTest_PKKa::bench_pk_ka
    functionSourceFile: /src/botan/src/cli/perf_pk_ka.cpp
    functionUses: 1
    functionsReached:
    - rng
    - auto::run
    - Botan::PK_Key_Agreement::derive_key
    - Botan::create_private_key
    - public_value
    - auto::under
    - dynamic_cast<const Botan::PK_Key_Agreement_Key&>
    - record_result
    - runtime
    - make_timer
    - error_output
    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: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    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: 99
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 99
    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:102,1
    - Dst: substr
      Src: /src/botan/src/cli/perf_pk_ka.cpp:102,1
    - Dst: find_last_of
      Src: /src/botan/src/cli/perf_pk_ka.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' alg'
    - ' param'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: Botan_CLI::PerfTest_DH::format_name
    functionSourceFile: /src/botan/src/cli/perf_pk_ka.cpp
    functionUses: 0
    functionsReached:
    - substr
    - Botan::fmt
    - find_last_of
    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: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    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:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    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: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    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: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    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: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    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:25,1
    - Dst: Botan_CLI::PerfTest_PKKa::keygen_params
      Src: /src/botan/src/cli/perf_pk_ka.cpp:27,1
    - Dst: Botan_CLI::PerfTest_PKKa::format_name
      Src: /src/botan/src/cli/perf_pk_ka.cpp:30,1
    - Dst: Botan_CLI::PerfTest_PKKa::bench_pk_ka
      Src: /src/botan/src/cli/perf_pk_ka.cpp:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 24
    functionDepth: 4
    functionLinenumber: 24
    functionLinenumberEnd: 33
    functionName: Botan_CLI::PerfTest_PKKa::go
    functionSourceFile: /src/botan/src/cli/perf_pk_ka.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::PerfTest_PKKa::keygen_params
    - Botan_CLI::PerfTest_PKKa::algo
    - Botan_CLI::PerfTest_PKKa::format_name
    - Botan_CLI::PerfTest_PKKa::bench_pk_ka
    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:40,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_ka.cpp:44,1
    - Dst: rng
      Src: /src/botan/src/cli/perf_pk_ka.cpp:46,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_ka.cpp:48,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_ka.cpp:48,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_ka.cpp:49,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_ka.cpp:49,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_ka.cpp:52,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_ka.cpp:53,1
    - Dst: Botan::create_private_key
      Src: /src/botan/src/cli/perf_pk_ka.cpp:53,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_ka.cpp:56,1
    - Dst: dynamic_cast<const Botan::PK_Key_Agreement_Key&>
      Src: /src/botan/src/cli/perf_pk_ka.cpp:58,1
    - Dst: dynamic_cast<const Botan::PK_Key_Agreement_Key&>
      Src: /src/botan/src/cli/perf_pk_ka.cpp:59,1
    - Dst: public_value
      Src: /src/botan/src/cli/perf_pk_ka.cpp:64,1
    - Dst: public_value
      Src: /src/botan/src/cli/perf_pk_ka.cpp:65,1
    - Dst: make_timer
      Src: /src/botan/src/cli/perf_pk_ka.cpp:67,1
    - Dst: auto::under
      Src: /src/botan/src/cli/perf_pk_ka.cpp:69,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_ka.cpp:70,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/cli/perf_pk_ka.cpp:70,1
    - Dst: auto::run
      Src: /src/botan/src/cli/perf_pk_ka.cpp:71,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/botan/src/cli/perf_pk_ka.cpp:71,1
    - Dst: error_output
      Src: /src/botan/src/cli/perf_pk_ka.cpp:74,1
    - Dst: record_result
      Src: /src/botan/src/cli/perf_pk_ka.cpp:78,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: 80
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 80
    functionName: Botan_CLI::PerfTest_PKKa::bench_pk_ka
    functionSourceFile: /src/botan/src/cli/perf_pk_ka.cpp
    functionUses: 2
    functionsReached:
    - rng
    - auto::run
    - Botan::PK_Key_Agreement::derive_key
    - Botan::create_private_key
    - public_value
    - auto::under
    - dynamic_cast<const Botan::PK_Key_Agreement_Key&>
    - record_result
    - runtime
    - make_timer
    - error_output
    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: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    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: 99
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 99
    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:102,1
    - Dst: substr
      Src: /src/botan/src/cli/perf_pk_ka.cpp:102,1
    - Dst: find_last_of
      Src: /src/botan/src/cli/perf_pk_ka.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' alg'
    - ' param'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: Botan_CLI::PerfTest_DH::format_name
    functionSourceFile: /src/botan/src/cli/perf_pk_ka.cpp
    functionUses: 0
    functionsReached:
    - substr
    - Botan::fmt
    - find_last_of
    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: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    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:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' config'
    argTypes:
    - PerfConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    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: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    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: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    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::secure_vector::end
    - Botan_CLI::Command::read_file
    - Botan::DER_Encoder::start_sequence
    - Botan::PEM_Code::encode
    - Botan::X509::load_key
    - std::unique_ptr::set_key
    - std::unique_ptr::finish
    - rng
    - Botan::secure_vector::insert
    - CLI_Usage_Error
    - Botan::OID::from_string
    - output
    - std::unique_ptr::key_spec
    - std::unique_ptr::default_nonce_length
    - get_arg
    - Botan::OID::empty
    - CLI_Error
    - std::unique_ptr::set_associated_data
    - Botan::AEAD_Mode::create
    - Botan::PK_Encryptor_EME::encrypt
    - Botan::AlgorithmIdentifier::BER_encode
    - std::unique_ptr::start
    - auto::algo_name
    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:
    - std::unique_ptr::algo_name
    - write_output
    - std::string::empty
    - std::unique_ptr::set_key
    - Botan::PEM_Code::decode_check_label
    - Botan::OID::human_name_or_empty
    - std::unique_ptr::finish
    - rng
    - std::vector::data
    - CLI_Usage_Error
    - Botan::AEAD_Mode::create_or_throw
    - Botan::OID::from_string
    - Botan::BER_Decoder
    - Botan::AlgorithmIdentifier::parameters
    - std::unique_ptr::key_spec
    - get_arg
    - Botan::AlgorithmIdentifier::oid
    - CLI_Error
    - Botan::AlgorithmIdentifier::AlgorithmIdentifier
    - std::unique_ptr::set_associated_data
    - Botan::PKCS8::load_key
    - Botan::OID::OID
    - Botan::PK_Decryptor_EME::decrypt_or_random
    - std::vector::size
    - get_passphrase
    - std::unique_ptr::start
    - error_output
    - set_return_code
    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::secure_vector::end
    - Botan_CLI::Command::read_file
    - Botan::DER_Encoder::start_sequence
    - Botan::PEM_Code::encode
    - Botan::X509::load_key
    - std::unique_ptr::set_key
    - std::unique_ptr::finish
    - rng
    - Botan::secure_vector::insert
    - CLI_Usage_Error
    - Botan::OID::from_string
    - output
    - std::unique_ptr::key_spec
    - std::unique_ptr::default_nonce_length
    - get_arg
    - Botan::OID::empty
    - CLI_Error
    - std::unique_ptr::set_associated_data
    - Botan::AEAD_Mode::create
    - Botan::PK_Encryptor_EME::encrypt
    - Botan::AlgorithmIdentifier::BER_encode
    - std::unique_ptr::start
    - auto::algo_name
    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:
    - std::unique_ptr::algo_name
    - write_output
    - std::string::empty
    - std::unique_ptr::set_key
    - Botan::PEM_Code::decode_check_label
    - Botan::OID::human_name_or_empty
    - std::unique_ptr::finish
    - rng
    - std::vector::data
    - CLI_Usage_Error
    - Botan::AEAD_Mode::create_or_throw
    - Botan::OID::from_string
    - Botan::BER_Decoder
    - Botan::AlgorithmIdentifier::parameters
    - std::unique_ptr::key_spec
    - get_arg
    - Botan::AlgorithmIdentifier::oid
    - CLI_Error
    - Botan::AlgorithmIdentifier::AlgorithmIdentifier
    - std::unique_ptr::set_associated_data
    - Botan::PKCS8::load_key
    - Botan::OID::OID
    - Botan::PK_Decryptor_EME::decrypt_or_random
    - std::vector::size
    - get_passphrase
    - std::unique_ptr::start
    - error_output
    - set_return_code
    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::secure_vector::end
    - Botan_CLI::Command::read_file
    - Botan::DER_Encoder::start_sequence
    - Botan::PEM_Code::encode
    - Botan::X509::load_key
    - std::unique_ptr::set_key
    - std::unique_ptr::finish
    - rng
    - Botan::secure_vector::insert
    - CLI_Usage_Error
    - Botan::OID::from_string
    - output
    - std::unique_ptr::key_spec
    - std::unique_ptr::default_nonce_length
    - get_arg
    - Botan::OID::empty
    - CLI_Error
    - std::unique_ptr::set_associated_data
    - Botan::AEAD_Mode::create
    - Botan::PK_Encryptor_EME::encrypt
    - Botan::AlgorithmIdentifier::BER_encode
    - std::unique_ptr::start
    - auto::algo_name
    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:
    - std::unique_ptr::algo_name
    - write_output
    - std::string::empty
    - std::unique_ptr::set_key
    - Botan::PEM_Code::decode_check_label
    - Botan::OID::human_name_or_empty
    - std::unique_ptr::finish
    - rng
    - std::vector::data
    - CLI_Usage_Error
    - Botan::AEAD_Mode::create_or_throw
    - Botan::OID::from_string
    - Botan::BER_Decoder
    - Botan::AlgorithmIdentifier::parameters
    - std::unique_ptr::key_spec
    - get_arg
    - Botan::AlgorithmIdentifier::oid
    - CLI_Error
    - Botan::AlgorithmIdentifier::AlgorithmIdentifier
    - std::unique_ptr::set_associated_data
    - Botan::PKCS8::load_key
    - Botan::OID::OID
    - Botan::PK_Decryptor_EME::decrypt_or_random
    - std::vector::size
    - get_passphrase
    - std::unique_ptr::start
    - error_output
    - set_return_code
    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::secure_vector::end
    - Botan_CLI::Command::read_file
    - Botan::DER_Encoder::start_sequence
    - Botan::PEM_Code::encode
    - Botan::X509::load_key
    - std::unique_ptr::set_key
    - std::unique_ptr::finish
    - rng
    - Botan::secure_vector::insert
    - CLI_Usage_Error
    - Botan::OID::from_string
    - output
    - std::unique_ptr::key_spec
    - std::unique_ptr::default_nonce_length
    - get_arg
    - Botan::OID::empty
    - CLI_Error
    - std::unique_ptr::set_associated_data
    - Botan::AEAD_Mode::create
    - Botan::PK_Encryptor_EME::encrypt
    - Botan::AlgorithmIdentifier::BER_encode
    - std::unique_ptr::start
    - auto::algo_name
    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:
    - std::unique_ptr::algo_name
    - write_output
    - std::string::empty
    - std::unique_ptr::set_key
    - Botan::PEM_Code::decode_check_label
    - Botan::OID::human_name_or_empty
    - std::unique_ptr::finish
    - rng
    - std::vector::data
    - CLI_Usage_Error
    - Botan::AEAD_Mode::create_or_throw
    - Botan::OID::from_string
    - Botan::BER_Decoder
    - Botan::AlgorithmIdentifier::parameters
    - std::unique_ptr::key_spec
    - get_arg
    - Botan::AlgorithmIdentifier::oid
    - CLI_Error
    - Botan::AlgorithmIdentifier::AlgorithmIdentifier
    - std::unique_ptr::set_associated_data
    - Botan::PKCS8::load_key
    - Botan::OID::OID
    - Botan::PK_Decryptor_EME::decrypt_or_random
    - std::vector::size
    - get_passphrase
    - std::unique_ptr::start
    - error_output
    - set_return_code
    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: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    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:65,1
    - Dst: std::string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:70,1
    - Dst: auto::empty
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:71,1
    - Dst: auto::empty
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:77,1
    - Dst: std::ofstream::is_open
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:79,1
    - Dst: std::ofstream::good
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:79,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:80,1
    - Dst: std::chrono::duration_cast<std::chrono::duration<double>>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:81,1
    - Dst: std::setprecision
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:83,1
    - Dst: auto::count
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:83,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 86
    functionName: shim_log
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - auto::empty
    - std::chrono::duration_cast<std::chrono::duration<double>>
    - std::string
    - ::getenv
    - std::ofstream::good
    - Botan::TLS::detail::AsyncBase::complete_now
    - std::setprecision
    - auto::count
    - std::ofstream::is_open
    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:89,1
    - Dst: std::exit
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 92
    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:95,1
    - Dst: std::unordered_map::find
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:343,1
    - Dst: std::unordered_map::end
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 349
    functionName: map_to_bogo_error
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - shim_log
    - std::unordered_map::find
    - 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: 353
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 353
    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:355,1
    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: 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: 357
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 357
    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:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - socket_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 371
    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:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 373
    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::memset
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:380,1
    - Dst: std::to_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:385,1
    - Dst: ::getaddrinfo
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:391,1
    - Dst: c_str
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:391,1
    - Dst: std::string::c_str
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:391,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:394,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:397,1
    - Dst: unique_addrinfo_t::get
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:400,1
    - Dst: Client::close_socket
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:405,1
    - Dst: client::handle_connect
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:412,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:415,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:421,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 25
    argCount: 3
    argNames:
    - ' hostname'
    - port
    - ipv6
    argTypes:
    - std::string
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 378
    functionDepth: 2
    functionLinenumber: 378
    functionLinenumberEnd: 423
    functionName: Shim_Socket::Shim_Socket
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - unique_addrinfo_t::get
    - std::memset
    - client::handle_connect
    - ::getaddrinfo
    - std::string::c_str
    - Shim_Exception
    - Botan::TLS::Channel_Impl::close
    - Client::close_socket
    - std::to_string
    - shim_log
    - c_str
    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: 425
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 425
    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: 426
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 426
    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: 428
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 428
    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: 429
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 429
    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:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 434
    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:438,1
    - Dst: Botan_Tests::MockChannel::send
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:444,1
    - Dst: Botan::cast_uint8_ptr_to_char
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:444,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:449,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:452,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 455
    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:459,1
    - Dst: Shim_Socket::read
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:461,1
    - Dst: Botan::cast_uint8_ptr_to_char
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:461,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:467,1
    - Dst: std::string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:467,1
    - Dst: strerror
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:467,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:470,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 471
    functionName: Shim_Socket::read
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 7
    functionsReached:
    - Botan::cast_uint8_ptr_to_char
    - strerror
    - static_cast<size_t>
    - std::string
    - Shim_Exception
    - Shim_Socket::read
    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:475,1
    - Dst: Shim_Socket::read
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:479,1
    - Dst: Botan::cast_uint8_ptr_to_char
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:479,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:482,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:484,1
    - Dst: std::string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:484,1
    - Dst: strerror
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:484,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:487,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:488,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 490
    functionName: Shim_Socket::read_exactly
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Botan::cast_uint8_ptr_to_char
    - strerror
    - static_cast<size_t>
    - std::string
    - Shim_Exception
    - Shim_Socket::read
    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:505,1
    - Dst: std::set::insert
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:508,1
    - Dst: std::set::insert
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:511,1
    - Dst: std::set::insert
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:514,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: 518
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 518
    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:532,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: 532
      start: 522
    functionDepth: 1
    functionLinenumber: 522
    functionLinenumberEnd: 532
    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:537,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:538,1
    - Dst: contains
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:541,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' flag'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 542
    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:544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 544
    functionDepth: 1
    functionLinenumber: 544
    functionLinenumberEnd: 544
    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:547,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:548,1
    - Dst: Shim_Arguments::get_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:550,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 546
    functionDepth: 1
    functionLinenumber: 546
    functionLinenumberEnd: 551
    functionName: Shim_Arguments::get_string_opt
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 1
    functionsReached:
    - Shim_Arguments::get_opt
    - Shim_Exception
    - 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:554,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:555,1
    - Dst: Shim_Arguments::option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:557,1
    - Dst: Shim_Arguments::get_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:560,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ' key'
    - ' def'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 561
    functionName: Shim_Arguments::get_string_opt_or_else
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Shim_Arguments::get_opt
    - Shim_Exception
    - contains
    - Shim_Arguments::option_used
    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:564,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:565,1
    - Dst: Botan::unlock
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:567,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:567,1
    - Dst: Shim_Arguments::get_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:567,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 568
    functionName: Shim_Arguments::get_b64_opt
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Botan::unlock
    - Shim_Exception
    - Shim_Arguments::get_opt
    - contains
    - Botan::base64_decode
    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:571,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:572,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:574,1
    - Dst: Shim_Arguments::get_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:574,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 575
    functionName: Shim_Arguments::get_int_opt
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Botan::to_u32bit
    - Shim_Arguments::get_opt
    - Shim_Exception
    - 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:578,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:579,1
    - Dst: Shim_Arguments::option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:581,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:585,1
    - Dst: Shim_Arguments::get_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:585,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ' key'
    - def
    argTypes:
    - std::string
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 586
    functionName: Shim_Arguments::get_int_opt_or_else
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Shim_Arguments::option_used
    - Shim_Exception
    - Botan::to_u32bit
    - Shim_Arguments::get_opt
    - contains
    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:589,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:590,1
    - Dst: find
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:593,1
    - Dst: end
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:594,1
    - Dst: std::vector<size_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:595,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 599
    functionName: Shim_Arguments::get_int_vec_opt
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Shim_Exception
    - end
    - contains
    - std::vector<size_t>
    - find
    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:605,1
    - Dst: Botan::split_on
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:606,1
    - Dst: Shim_Arguments::get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:606,1
    - Dst: std::vector<std::string>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:608,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' option'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 601
    functionDepth: 2
    functionLinenumber: 601
    functionLinenumberEnd: 610
    functionName: Shim_Arguments::get_alpn_string_vec_opt
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Shim_Arguments::get_string_opt
    - std::vector<std::string>
    - Botan::split_on
    - Shim_Arguments::option_used
    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:613,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:614,1
    - Dst: contains
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:616,1
    - Dst: contains
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:619,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 612
    functionDepth: 0
    functionLinenumber: 612
    functionLinenumberEnd: 623
    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:627,1
    - Dst: end
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:628,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:629,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 626
    functionDepth: 0
    functionLinenumber: 626
    functionLinenumberEnd: 632
    functionName: Shim_Arguments::get_opt
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 5
    functionsReached:
    - find
    - Shim_Exception
    - end
    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:652,1
    - Dst: std::string::substr
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:653,1
    - Dst: contains
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:655,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:656,1
    - Dst: insert
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:657,1
    - Dst: contains
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:659,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:661,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:664,1
    - Dst: Botan::fmt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:664,1
    - Dst: contains
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:666,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:667,1
    - Dst: push_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:668,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:674,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:675,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:678,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:679,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 646
    functionDepth: 2
    functionLinenumber: 646
    functionLinenumberEnd: 682
    functionName: Shim_Arguments::parse_args
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Shim_Exception
    - std::string::starts_with
    - Botan::to_u32bit
    - push_back
    - contains
    - shim_log
    - std::string::substr
    - insert
    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:861,1
    - Dst: std::unique_ptr::parse_args
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 684
    functionDepth: 2
    functionLinenumber: 684
    functionLinenumberEnd: 868
    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: 872
      start: 872
    functionDepth: 0
    functionLinenumber: 872
    functionLinenumberEnd: 872
    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: 874
      start: 874
    functionDepth: 0
    functionLinenumber: 874
    functionLinenumberEnd: 874
    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:903,1
    - Dst: std::string::empty
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:910,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:913,1
    - Dst: Botan::concat
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:917,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 876
    functionDepth: 3
    functionLinenumber: 876
    functionLinenumberEnd: 918
    functionName: Shim_Policy::allowed_ciphers
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - get_string_opt_or_else
    - shim_exit_with_error
    - Botan::concat
    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:921,1
    - Dst: get_int_vec_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:923,1
    - Dst: Botan::TLS::Signature_Scheme::is_available
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:925,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:926,1
    - Dst: std::to_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:926,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:929,1
    - Dst: Botan::TLS::Signature_Scheme::hash_function_name
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:929,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:932,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:933,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 920
    functionDepth: 2
    functionLinenumber: 920
    functionLinenumberEnd: 939
    functionName: Shim_Policy::allowed_signature_hashes
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - option_used
    - Botan::TLS::Signature_Scheme::hash_function_name
    - get_int_vec_opt
    - std::to_string
    - shim_log
    - Botan::TLS::Signature_Scheme::is_available
    - flag_set
    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: 949
      start: 943
    functionDepth: 0
    functionLinenumber: 943
    functionLinenumberEnd: 949
    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:952,1
    - Dst: get_int_vec_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:954,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:955,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:955,1
    - Dst: Shim_Policy::acceptable_signature_schemes
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:961,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 951
    functionDepth: 1
    functionLinenumber: 951
    functionLinenumberEnd: 962
    functionName: Shim_Policy::acceptable_signature_schemes
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 1
    functionsReached:
    - static_cast<uint16_t>
    - option_used
    - std::vector::emplace_back
    - 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:965,1
    - Dst: get_int_vec_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:967,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:968,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:968,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:978,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:979,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:980,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:981,1
    - Dst: Botan_Tests::RFC8448_Text_Policy::allowed_signature_schemes
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:987,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 964
    functionDepth: 2
    functionLinenumber: 964
    functionLinenumberEnd: 988
    functionName: Shim_Policy::allowed_signature_schemes
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - option_used
    - std::vector::emplace_back
    - get_int_vec_opt
    - Botan_Tests::RFC8448_Text_Policy::allowed_signature_schemes
    - flag_set
    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: 992
      start: 992
    functionDepth: 0
    functionLinenumber: 992
    functionLinenumberEnd: 992
    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:995,1
    - Dst: Shim_Policy::key_exchange_groups
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1000,1
    - Dst: get_int_vec_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1002,1
    - Dst: static_cast<Botan::TLS::Group_Params>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1003,1
    - Dst: std::find
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1004,1
    - Dst: auto::cbegin
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1004,1
    - Dst: auto::cend
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1004,1
    - Dst: auto::end
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1004,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1005,1
    - Dst: Shim_Policy::key_exchange_groups
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1012,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 994
    functionDepth: 1
    functionLinenumber: 994
    functionLinenumberEnd: 1013
    functionName: Shim_Policy::key_exchange_groups
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 1
    functionsReached:
    - static_cast<Botan::TLS::Group_Params>
    - Shim_Policy::key_exchange_groups
    - std::vector::push_back
    - option_used
    - auto::end
    - auto::cbegin
    - get_int_vec_opt
    - std::find
    - auto::cend
    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: 1015
      start: 1015
    functionDepth: 0
    functionLinenumber: 1015
    functionLinenumberEnd: 1015
    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:1020,1
    - Dst: Shim_Policy::key_exchange_groups
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1024,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1026,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: 1032
      start: 1017
    functionDepth: 2
    functionLinenumber: 1017
    functionLinenumberEnd: 1032
    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:1035,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 1034
    functionDepth: 0
    functionLinenumber: 1034
    functionLinenumberEnd: 1036
    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:1039,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1039,1
    - Dst: Shim_Policy::require_client_certificate_authentication
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1040,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1038
    functionDepth: 1
    functionLinenumber: 1038
    functionLinenumberEnd: 1041
    functionName: Shim_Policy::request_client_certificate_authentication
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Shim_Policy::require_client_certificate_authentication
    - flag_set
    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:1043,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 1043
    functionDepth: 0
    functionLinenumber: 1043
    functionLinenumberEnd: 1043
    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:1048,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1052,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1047
    functionDepth: 0
    functionLinenumber: 1047
    functionLinenumberEnd: 1057
    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:1060,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1059
    functionDepth: 1
    functionLinenumber: 1059
    functionLinenumberEnd: 1061
    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:1064,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1065,1
    - Dst: get_int_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1065,1
    - 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: Botan::TLS::Protocol_Version::known_version
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1080,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - version
    argTypes:
    - Botan::TLS::Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1063
    functionDepth: 1
    functionLinenumber: 1063
    functionLinenumberEnd: 1081
    functionName: Shim_Policy::allow_version
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - get_int_opt
    - option_used
    - Botan::TLS::Protocol_Version::known_version
    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:1084,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1084,1
    - Dst: Shim_Policy::allow_version
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1085,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1083
    functionDepth: 2
    functionLinenumber: 1083
    functionLinenumberEnd: 1086
    functionName: Shim_Policy::allow_tls12
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Shim_Policy::allow_version
    - flag_set
    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:1089,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1089,1
    - Dst: Shim_Policy::allow_version
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1090,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1088
    functionDepth: 2
    functionLinenumber: 1088
    functionLinenumberEnd: 1091
    functionName: Shim_Policy::allow_tls13
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Shim_Policy::allow_version
    - flag_set
    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:1094,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1094,1
    - Dst: Shim_Policy::allow_version
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1095,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1093
    functionDepth: 2
    functionLinenumber: 1093
    functionLinenumberEnd: 1096
    functionName: Shim_Policy::allow_dtls12
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Shim_Policy::allow_version
    - flag_set
    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: 1102
      start: 1102
    functionDepth: 0
    functionLinenumber: 1102
    functionLinenumberEnd: 1102
    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: 1104
      start: 1104
    functionDepth: 0
    functionLinenumber: 1104
    functionLinenumberEnd: 1104
    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:1117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1116
    functionDepth: 0
    functionLinenumber: 1116
    functionLinenumberEnd: 1118
    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:1121,1
    - Dst: get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1122,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 1120
    functionDepth: 3
    functionLinenumber: 1120
    functionLinenumberEnd: 1134
    functionName: Shim_Policy::srtp_profiles
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - get_string_opt
    - option_used
    - 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: 1136
      start: 1136
    functionDepth: 0
    functionLinenumber: 1136
    functionLinenumberEnd: 1136
    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:1143,1
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1144,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1147,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1150,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1155
      start: 1142
    functionDepth: 0
    functionLinenumber: 1142
    functionLinenumberEnd: 1155
    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:1159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1159
    functionDepth: 0
    functionLinenumber: 1159
    functionLinenumberEnd: 1159
    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:1166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1167
      start: 1165
    functionDepth: 0
    functionLinenumber: 1165
    functionLinenumberEnd: 1167
    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:1169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1169
    functionDepth: 0
    functionLinenumber: 1169
    functionLinenumberEnd: 1169
    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:1185,1
    - Dst: test_name
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1171
    functionDepth: 0
    functionLinenumber: 1171
    functionLinenumberEnd: 1186
    functionName: Shim_Policy::tls_13_middlebox_compatibility_mode
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - test_name
    - Botan::value_exists
    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:1196,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1209,1
    - Dst: auto::valid
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1210,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1211,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1213,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1213,1
    - Dst: Botan::TLS::Ciphersuite::all_known_ciphersuites
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1217,1
    - Dst: auto::rbegin
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1220,1
    - Dst: auto::rend
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1220,1
    - Dst: auto::valid
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1223,1
    - Dst: auto::usable_in_version
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1223,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1224,1
    - Dst: Shim_Policy::allowed_ciphers
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1224,1
    - Dst: auto::cipher_algo
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1224,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1227,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1227,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 1
    argNames:
    - version
    argTypes:
    - Botan::TLS::Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1193
    functionDepth: 4
    functionLinenumber: 1193
    functionLinenumberEnd: 1233
    functionName: Shim_Policy::ciphersuite_list
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - auto::rend
    - Botan::TLS::Ciphersuite::from_name
    - std::vector::push_back
    - auto::usable_in_version
    - get_string_opt_or_else
    - auto::valid
    - shim_exit_with_error
    - Botan::TLS::Ciphersuite::all_known_ciphersuites
    - Botan::value_exists
    - Shim_Policy::allowed_ciphers
    - auto::ciphersuite_code
    - auto::cipher_algo
    - auto::rbegin
    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:1238,1
    - Dst: get_string_opt_or_else
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1239,1
    - Dst: auto::empty
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1241,1
    - Dst: auto::empty
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1241,1
    - Dst: auto::empty
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1247,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1248,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1248,1
    - Dst: auto::data
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1248,1
    - Dst: auto::size
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1248,1
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1251,1
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1251,1
    - Dst: get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1252,1
    - Dst: reset
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1253,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1253,1
    - Dst: get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1255,1
    - Dst: Botan::DataSource_Stream::end_of_data
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1257,1
    - Dst: push_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1259,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1259,1
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1264,1
    - Dst: get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1264,1
    - Dst: get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1265,1
    - Dst: add_certificate
      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: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1269,1
    - Dst: std::string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1269,1
    - Dst: what
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1269,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 1
    argNames:
    - ' args'
    argTypes:
    - Shim_Arguments
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1237
    functionDepth: 1
    functionLinenumber: 1237
    functionLinenumberEnd: 1272
    functionName: Shim_Credentials::Shim_Credentials
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - auto::empty
    - option_used
    - Botan::SymmetricKey
    - get_string_opt_or_else
    - reinterpret_cast<const uint8_t*>
    - Botan::PKCS8::load_key
    - add_certificate
    - Shim_Exception
    - std::string
    - push_back
    - what
    - Botan::DataSource_Stream::end_of_data
    - get_string_opt
    - auto::size
    - Botan::X509_Certificate
    - reset
    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:1276,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1277,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1279,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1280,1
    - Dst: get_string_opt_or_else
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1283,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1285,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 2
    argNames:
    - ' type'
    - ' context'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1289
      start: 1274
    functionDepth: 0
    functionLinenumber: 1274
    functionLinenumberEnd: 1289
    functionName: Shim_Credentials::trusted_certificate_authorities
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - get_string_opt_or_else
    - Shim_Exception
    - flag_set
    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:1294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1295
      start: 1291
    functionDepth: 0
    functionLinenumber: 1291
    functionLinenumberEnd: 1295
    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:1298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1299
      start: 1297
    functionDepth: 0
    functionLinenumber: 1297
    functionLinenumberEnd: 1299
    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:1302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1303
      start: 1301
    functionDepth: 1
    functionLinenumber: 1301
    functionLinenumberEnd: 1303
    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:1306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1307
      start: 1305
    functionDepth: 1
    functionLinenumber: 1305
    functionLinenumberEnd: 1307
    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:1314,1
    - Dst: Botan::Credentials_Manager::find_preshared_keys
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1315,1
    - Dst: empty
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1319,1
    - Dst: std::find
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1319,1
    - Dst: begin
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1319,1
    - Dst: end
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1319,1
    - Dst: end
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1319,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1322,1
    - Dst: has_value
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1325,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1326,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1337,1
    - Dst: value
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1337,1
    - Dst: bits_of
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1337,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: 1339
      start: 1309
    functionDepth: 1
    functionLinenumber: 1309
    functionLinenumberEnd: 1339
    functionName: Shim_Credentials::find_preshared_keys
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - begin
    - std::vector::emplace_back
    - Botan::Credentials_Manager::find_preshared_keys
    - Shim_Exception
    - bits_of
    - empty
    - end
    - std::find
    - has_value
    - 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:1346,1
    - Dst: std::runtime_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1347,1
    - Dst: empty
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1350,1
    - Dst: algo_name
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1352,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - ' cert_key_types'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1359
      start: 1341
    functionDepth: 0
    functionLinenumber: 1341
    functionLinenumberEnd: 1359
    functionName: Shim_Credentials::cert_chain
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - empty
    - std::runtime_error
    - algo_name
    - flag_set
    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: 1366
      start: 1361
    functionDepth: 0
    functionLinenumber: 1361
    functionLinenumberEnd: 1366
    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:1384,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: 1390
      start: 1379
    functionDepth: 0
    functionLinenumber: 1379
    functionLinenumberEnd: 1390
    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: 1392
      start: 1392
    functionDepth: 0
    functionLinenumber: 1392
    functionLinenumberEnd: 1392
    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: 1394
      start: 1394
    functionDepth: 0
    functionLinenumber: 1394
    functionLinenumberEnd: 1394
    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: 1396
      start: 1396
    functionDepth: 0
    functionLinenumber: 1396
    functionLinenumberEnd: 1396
    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: 1398
      start: 1398
    functionDepth: 0
    functionLinenumber: 1398
    functionLinenumberEnd: 1398
    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:1401,1
    - Dst: std::to_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1401,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1401,1
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1403,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1405,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1409,1
    - Dst: static_cast<uint8_t>
      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:1413,1
    - Dst: std::memcpy
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1415,1
    - Dst: std::vector::data
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1415,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1415,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1415,1
    - Dst: write
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1417,1
    - Dst: std::vector::data
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1417,1
    - Dst: std::vector::size
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1417,1
    - Dst: write
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1419,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1419,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1419,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1421
      start: 1400
    functionDepth: 2
    functionLinenumber: 1400
    functionLinenumberEnd: 1421
    functionName: Shim_Callbacks::tls_emit_data
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - option_used
    - std::span<const uint8_t>::data
    - Botan::hex_encode
    - std::span<const uint8_t>::size
    - static_cast<uint8_t>
    - std::vector::data
    - write
    - std::to_string
    - shim_log
    - std::vector::size
    - std::memcpy
    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:1425,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1425,1
    - Dst: std::runtime_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1426,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1429,1
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1433,1
    - Dst: get_b64_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1434,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1438
      start: 1423
    functionDepth: 0
    functionLinenumber: 1423
    functionLinenumberEnd: 1438
    functionName: Shim_Callbacks::tls_provide_cert_status
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - get_b64_opt
    - std::runtime_error
    - option_used
    - flag_set
    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:1441,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1444,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1450,1
    - Dst: std::to_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1450,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1450,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1452,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1452,1
    - Dst: send
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1457,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1458
      start: 1440
    functionDepth: 3
    functionLinenumber: 1440
    functionLinenumberEnd: 1458
    functionName: Shim_Callbacks::tls_record_received
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::empty
    - std::span<const uint8_t>::size
    - send
    - shim_exit_with_error
    - std::span<const uint8_t>::begin
    - std::to_string
    - std::span<const uint8_t>::end
    - shim_log
    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:1465,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1467,1
    - Dst: get_int_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1467,1
    - Dst: Botan::TLS::Signature_Scheme::is_available
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1469,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1470,1
    - Dst: std::string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1470,1
    - Dst: Botan::TLS::Signature_Scheme::to_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1471,1
    - Dst: Botan::TLS::Signature_Scheme::padding_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1474,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1476,1
    - Dst: Botan::fmt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1476,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::tls_verify_message
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1480,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: 1481
      start: 1460
    functionDepth: 3
    functionLinenumber: 1460
    functionLinenumberEnd: 1481
    functionName: Shim_Callbacks::tls_verify_message
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Signature_Scheme::to_string
    - static_cast<uint16_t>
    - option_used
    - Botan::fmt
    - std::string
    - shim_exit_with_error
    - Botan_Tests::Test_TLS_13_Callbacks::tls_verify_message
    - get_int_opt
    - Botan::TLS::Signature_Scheme::is_available
    - Botan::TLS::Signature_Scheme::padding_string
    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:1489,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1489,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1490,1
    - Dst: TLS_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1491,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1495,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1497,1
    - Dst: TLS_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1501,1
    - Dst: empty
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1504,1
    - Dst: front
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1504,1
    - Dst: certificate_known
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1506,1
    - Dst: front
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1506,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1507,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1513,1
    - Dst: Fuzzer_TLS_Client_Callbacks::tls_verify_cert_chain
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1515,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: 1517
      start: 1483
    functionDepth: 2
    functionLinenumber: 1483
    functionLinenumberEnd: 1517
    functionName: Shim_Callbacks::tls_verify_cert_chain
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - Fuzzer_TLS_Client_Callbacks::tls_verify_cert_chain
    - empty
    - certificate_known
    - shim_log
    - front
    - flag_set
    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:1520,1
    - Dst: get_b64_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1520,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1521,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' raw_response'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1527
      start: 1519
    functionDepth: 3
    functionLinenumber: 1519
    functionLinenumberEnd: 1527
    functionName: Shim_Callbacks::tls_parse_ocsp_response
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - get_b64_opt
    - option_used
    - 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:1533,1
    - Dst: get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1541,1
    - Dst: get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1542,1
    - Dst: remove_extension
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1543,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: 1550
      start: 1529
    functionDepth: 1
    functionLinenumber: 1529
    functionLinenumberEnd: 1550
    functionName: Shim_Callbacks::tls_modify_extensions
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - get_string_opt
    - option_used
    - 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:1553,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1557,1
    - Dst: TLS_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1558,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1562,1
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1566,1
    - Dst: get_alpn_string_vec_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1567,1
    - Dst: shim_exit_with_error
      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_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1575,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - ' client_protos'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1552
    functionDepth: 3
    functionLinenumber: 1552
    functionLinenumberEnd: 1579
    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
    - TLS_Exception
    - shim_exit_with_error
    - empty
    - get_string_opt
    - flag_set
    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:1582,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1583,1
    - Dst: Botan::TLS::Alert::type_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1583,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1585,1
    - Dst: Botan::TLS::Alert::type_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1585,1
    - Dst: Botan::TLS::Alert::type
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1588,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1589,1
    - Dst: Botan::TLS::Alert::type
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1592,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1593,1
    - Dst: Botan::TLS::Alert::is_fatal
      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:1599,1
    - Dst: Botan::TLS::Alert::type
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1603,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1604,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1605,1
    - Dst: send_alert
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1606,1
    - Dst: Botan::TLS::Alert::is_fatal
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1609,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1610,1
    - Dst: Botan::TLS::Alert::type_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1610,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1612
      start: 1581
    functionDepth: 3
    functionLinenumber: 1581
    functionLinenumberEnd: 1612
    functionName: Shim_Callbacks::tls_alert
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Alert::is_fatal
    - Botan::TLS::Alert::type
    - shim_exit_with_error
    - Botan::TLS::Alert::type_string
    - shim_log
    - send_alert
    - flag_set
    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:1615,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1615,1
    - Dst: session_id
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1615,1
    - Dst: version
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1616,1
    - Dst: ciphersuite
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1616,1
    - Dst: std::string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1617,1
    - Dst: supports_extended_master_secret
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1617,1
    - Dst: incr_session_established
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1620,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1623,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1625,1
    - Dst: session_id
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1625,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1626,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1628,1
    - Dst: session_id
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1628,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1629,1
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1632,1
    - Dst: version
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1633,1
    - Dst: get_int_opt
      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:1638,1
    - Dst: secure_renegotiation_supported
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1639,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1640,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1642,1
    - Dst: secure_renegotiation_supported
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1643,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1644,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1648,1
    - Dst: supports_extended_master_secret
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1649,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1650,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Botan::TLS::Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1653
      start: 1614
    functionDepth: 3
    functionLinenumber: 1614
    functionLinenumberEnd: 1653
    functionName: Shim_Callbacks::tls_session_established
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - option_used
    - supports_extended_master_secret
    - Botan::hex_encode
    - session_id
    - std::string
    - shim_exit_with_error
    - flag_set
    - secure_renegotiation_supported
    - get_int_opt
    - version
    - ciphersuite
    - shim_log
    - 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:1656,1
    - Dst: send_fatal_alert
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1657,1
    - Dst: get_int_opt_or_else
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1661,1
    - Dst: get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1662,1
    - Dst: get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1663,1
    - Dst: key_material_export
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1664,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1665,1
    - Dst: std::to_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1665,1
    - Dst: send
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1666,1
    - Dst: auto::bits_of
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1666,1
    - Dst: application_protocol
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1669,1
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1671,1
    - Dst: get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1672,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1673,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1677,1
    - Dst: TLS_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1678,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1681,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1682,1
    - Dst: close
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1683,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1686,1
    - Dst: send
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1692,1
    - Dst: std::vector::data
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1692,1
    - Dst: close
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1695,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1698,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1699,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1702,1
    - Dst: Shim_Exception
      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_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1707,1
    - Dst: update_traffic_keys
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1708,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1710
      start: 1655
    functionDepth: 3
    functionLinenumber: 1655
    functionLinenumberEnd: 1710
    functionName: Shim_Callbacks::tls_session_activated
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - send_fatal_alert
    - auto::bits_of
    - option_used
    - application_protocol
    - TLS_Exception
    - send
    - std::vector::data
    - key_material_export
    - shim_exit_with_error
    - Shim_Exception
    - update_traffic_keys
    - close
    - std::to_string
    - shim_log
    - get_string_opt
    - get_int_opt_or_else
    - flag_set
    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:1717,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1719
      start: 1712
    functionDepth: 1
    functionLinenumber: 1712
    functionLinenumberEnd: 1719
    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:1722,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - Botan::TLS::Handshake_Message
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1725
      start: 1721
    functionDepth: 0
    functionLinenumber: 1721
    functionLinenumberEnd: 1725
    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: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    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:65,1
    - Dst: std::string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:70,1
    - Dst: auto::empty
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:71,1
    - Dst: auto::empty
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:77,1
    - Dst: std::ofstream::is_open
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:79,1
    - Dst: std::ofstream::good
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:79,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:80,1
    - Dst: std::chrono::duration_cast<std::chrono::duration<double>>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:81,1
    - Dst: std::setprecision
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:83,1
    - Dst: auto::count
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:83,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 86
    functionName: shim_log
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 11
    functionsReached:
    - auto::empty
    - std::chrono::duration_cast<std::chrono::duration<double>>
    - std::string
    - ::getenv
    - std::ofstream::good
    - Botan::TLS::detail::AsyncBase::complete_now
    - std::setprecision
    - auto::count
    - std::ofstream::is_open
    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:89,1
    - Dst: std::exit
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 2
    functionLinenumber: 88
    functionLinenumberEnd: 92
    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:95,1
    - Dst: std::unordered_map::find
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:343,1
    - Dst: std::unordered_map::end
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' e'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 94
    functionDepth: 2
    functionLinenumber: 94
    functionLinenumberEnd: 349
    functionName: map_to_bogo_error
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - shim_log
    - std::unordered_map::find
    - 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: 353
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 353
    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:355,1
    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: 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: 357
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 357
    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:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - socket_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 371
    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:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 373
    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::memset
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:380,1
    - Dst: std::to_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:385,1
    - Dst: ::getaddrinfo
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:391,1
    - Dst: c_str
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:391,1
    - Dst: std::string::c_str
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:391,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:394,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:397,1
    - Dst: unique_addrinfo_t::get
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:400,1
    - Dst: Client::close_socket
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:405,1
    - Dst: client::handle_connect
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:412,1
    - Dst: Botan::TLS::Channel_Impl::close
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:415,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:421,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 25
    argCount: 3
    argNames:
    - ' hostname'
    - port
    - ipv6
    argTypes:
    - std::string
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 378
    functionDepth: 2
    functionLinenumber: 378
    functionLinenumberEnd: 423
    functionName: Shim_Socket::Shim_Socket
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - unique_addrinfo_t::get
    - std::memset
    - client::handle_connect
    - ::getaddrinfo
    - std::string::c_str
    - Shim_Exception
    - Botan::TLS::Channel_Impl::close
    - Client::close_socket
    - std::to_string
    - shim_log
    - c_str
    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: 425
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 425
    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: 426
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 426
    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: 428
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 428
    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: 429
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 429
    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:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 434
    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:438,1
    - Dst: Botan_Tests::MockChannel::send
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:444,1
    - Dst: Botan::cast_uint8_ptr_to_char
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:444,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:449,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:452,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 455
    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:459,1
    - Dst: Shim_Socket::read
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:461,1
    - Dst: Botan::cast_uint8_ptr_to_char
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:461,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:467,1
    - Dst: std::string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:467,1
    - Dst: strerror
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:467,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:470,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 471
    functionName: Shim_Socket::read
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 9
    functionsReached:
    - Botan::cast_uint8_ptr_to_char
    - strerror
    - static_cast<size_t>
    - std::string
    - Shim_Exception
    - Shim_Socket::read
    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:475,1
    - Dst: Shim_Socket::read
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:479,1
    - Dst: Botan::cast_uint8_ptr_to_char
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:479,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:482,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:484,1
    - Dst: std::string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:484,1
    - Dst: strerror
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:484,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:487,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:488,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 490
    functionName: Shim_Socket::read_exactly
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Botan::cast_uint8_ptr_to_char
    - strerror
    - static_cast<size_t>
    - std::string
    - Shim_Exception
    - Shim_Socket::read
    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:505,1
    - Dst: std::set::insert
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:508,1
    - Dst: std::set::insert
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:511,1
    - Dst: std::set::insert
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:514,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: 518
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 518
    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:532,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: 532
      start: 522
    functionDepth: 1
    functionLinenumber: 522
    functionLinenumberEnd: 532
    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:537,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:538,1
    - Dst: contains
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:541,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' flag'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 542
    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:544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 544
    functionDepth: 2
    functionLinenumber: 544
    functionLinenumberEnd: 544
    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:547,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:548,1
    - Dst: Shim_Arguments::get_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:550,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 546
    functionDepth: 1
    functionLinenumber: 546
    functionLinenumberEnd: 551
    functionName: Shim_Arguments::get_string_opt
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 3
    functionsReached:
    - Shim_Arguments::get_opt
    - Shim_Exception
    - 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:554,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:555,1
    - Dst: Shim_Arguments::option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:557,1
    - Dst: Shim_Arguments::get_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:560,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ' key'
    - ' def'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 553
    functionDepth: 1
    functionLinenumber: 553
    functionLinenumberEnd: 561
    functionName: Shim_Arguments::get_string_opt_or_else
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Shim_Arguments::get_opt
    - Shim_Exception
    - contains
    - Shim_Arguments::option_used
    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:564,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:565,1
    - Dst: Botan::unlock
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:567,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:567,1
    - Dst: Shim_Arguments::get_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:567,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 568
    functionName: Shim_Arguments::get_b64_opt
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Botan::unlock
    - Shim_Exception
    - Shim_Arguments::get_opt
    - contains
    - Botan::base64_decode
    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:571,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:572,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:574,1
    - Dst: Shim_Arguments::get_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:574,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 575
    functionName: Shim_Arguments::get_int_opt
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Botan::to_u32bit
    - Shim_Arguments::get_opt
    - Shim_Exception
    - 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:578,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:579,1
    - Dst: Shim_Arguments::option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:581,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:585,1
    - Dst: Shim_Arguments::get_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:585,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ' key'
    - def
    argTypes:
    - std::string
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 586
    functionName: Shim_Arguments::get_int_opt_or_else
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Shim_Arguments::option_used
    - Shim_Exception
    - Botan::to_u32bit
    - Shim_Arguments::get_opt
    - contains
    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:589,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:590,1
    - Dst: find
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:593,1
    - Dst: end
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:594,1
    - Dst: std::vector<size_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:595,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 588
    functionDepth: 0
    functionLinenumber: 588
    functionLinenumberEnd: 599
    functionName: Shim_Arguments::get_int_vec_opt
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Shim_Exception
    - end
    - contains
    - std::vector<size_t>
    - find
    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:605,1
    - Dst: Botan::split_on
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:606,1
    - Dst: Shim_Arguments::get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:606,1
    - Dst: std::vector<std::string>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:608,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' option'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 601
    functionDepth: 2
    functionLinenumber: 601
    functionLinenumberEnd: 610
    functionName: Shim_Arguments::get_alpn_string_vec_opt
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Shim_Arguments::get_string_opt
    - std::vector<std::string>
    - Botan::split_on
    - Shim_Arguments::option_used
    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:613,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:614,1
    - Dst: contains
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:616,1
    - Dst: contains
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:619,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 612
    functionDepth: 0
    functionLinenumber: 612
    functionLinenumberEnd: 623
    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:627,1
    - Dst: end
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:628,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:629,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 626
    functionDepth: 0
    functionLinenumber: 626
    functionLinenumberEnd: 632
    functionName: Shim_Arguments::get_opt
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 10
    functionsReached:
    - find
    - Shim_Exception
    - end
    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:652,1
    - Dst: std::string::substr
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:653,1
    - Dst: contains
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:655,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:656,1
    - Dst: insert
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:657,1
    - Dst: contains
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:659,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:661,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:664,1
    - Dst: Botan::fmt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:664,1
    - Dst: contains
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:666,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:667,1
    - Dst: push_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:668,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:674,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:675,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:678,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:679,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 646
    functionDepth: 2
    functionLinenumber: 646
    functionLinenumberEnd: 682
    functionName: Shim_Arguments::parse_args
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Shim_Exception
    - std::string::starts_with
    - Botan::to_u32bit
    - push_back
    - contains
    - shim_log
    - std::string::substr
    - insert
    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:861,1
    - Dst: std::unique_ptr::parse_args
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:865,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 684
    functionDepth: 2
    functionLinenumber: 684
    functionLinenumberEnd: 868
    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: 872
      start: 872
    functionDepth: 0
    functionLinenumber: 872
    functionLinenumberEnd: 872
    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: 874
      start: 874
    functionDepth: 0
    functionLinenumber: 874
    functionLinenumberEnd: 874
    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:903,1
    - Dst: std::string::empty
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:910,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:913,1
    - Dst: Botan::concat
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:917,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 876
    functionDepth: 3
    functionLinenumber: 876
    functionLinenumberEnd: 918
    functionName: Shim_Policy::allowed_ciphers
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 1
    functionsReached:
    - std::string::empty
    - get_string_opt_or_else
    - shim_exit_with_error
    - Botan::concat
    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:921,1
    - Dst: get_int_vec_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:923,1
    - Dst: Botan::TLS::Signature_Scheme::is_available
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:925,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:926,1
    - Dst: std::to_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:926,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:929,1
    - Dst: Botan::TLS::Signature_Scheme::hash_function_name
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:929,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:932,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:933,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 920
    functionDepth: 2
    functionLinenumber: 920
    functionLinenumberEnd: 939
    functionName: Shim_Policy::allowed_signature_hashes
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - option_used
    - Botan::TLS::Signature_Scheme::hash_function_name
    - get_int_vec_opt
    - std::to_string
    - shim_log
    - Botan::TLS::Signature_Scheme::is_available
    - flag_set
    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: 949
      start: 943
    functionDepth: 0
    functionLinenumber: 943
    functionLinenumberEnd: 949
    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:952,1
    - Dst: get_int_vec_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:954,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:955,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:955,1
    - Dst: Shim_Policy::acceptable_signature_schemes
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:961,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 951
    functionDepth: 1
    functionLinenumber: 951
    functionLinenumberEnd: 962
    functionName: Shim_Policy::acceptable_signature_schemes
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 2
    functionsReached:
    - static_cast<uint16_t>
    - option_used
    - std::vector::emplace_back
    - 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:965,1
    - Dst: get_int_vec_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:967,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:968,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:968,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:978,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:979,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:980,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:981,1
    - Dst: Botan_Tests::RFC8448_Text_Policy::allowed_signature_schemes
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:987,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 964
    functionDepth: 2
    functionLinenumber: 964
    functionLinenumberEnd: 988
    functionName: Shim_Policy::allowed_signature_schemes
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - option_used
    - std::vector::emplace_back
    - get_int_vec_opt
    - Botan_Tests::RFC8448_Text_Policy::allowed_signature_schemes
    - flag_set
    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: 992
      start: 992
    functionDepth: 0
    functionLinenumber: 992
    functionLinenumberEnd: 992
    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:995,1
    - Dst: Shim_Policy::key_exchange_groups
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1000,1
    - Dst: get_int_vec_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1002,1
    - Dst: static_cast<Botan::TLS::Group_Params>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1003,1
    - Dst: std::find
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1004,1
    - Dst: auto::cbegin
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1004,1
    - Dst: auto::cend
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1004,1
    - Dst: auto::end
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1004,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1005,1
    - Dst: Shim_Policy::key_exchange_groups
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1012,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1013
      start: 994
    functionDepth: 1
    functionLinenumber: 994
    functionLinenumberEnd: 1013
    functionName: Shim_Policy::key_exchange_groups
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 3
    functionsReached:
    - static_cast<Botan::TLS::Group_Params>
    - Shim_Policy::key_exchange_groups
    - std::vector::push_back
    - option_used
    - auto::end
    - auto::cbegin
    - get_int_vec_opt
    - std::find
    - auto::cend
    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: 1015
      start: 1015
    functionDepth: 0
    functionLinenumber: 1015
    functionLinenumberEnd: 1015
    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:1020,1
    - Dst: Shim_Policy::key_exchange_groups
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1024,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1026,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: 1032
      start: 1017
    functionDepth: 2
    functionLinenumber: 1017
    functionLinenumberEnd: 1032
    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:1035,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 1034
    functionDepth: 0
    functionLinenumber: 1034
    functionLinenumberEnd: 1036
    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:1039,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1039,1
    - Dst: Shim_Policy::require_client_certificate_authentication
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1040,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1041
      start: 1038
    functionDepth: 1
    functionLinenumber: 1038
    functionLinenumberEnd: 1041
    functionName: Shim_Policy::request_client_certificate_authentication
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Shim_Policy::require_client_certificate_authentication
    - flag_set
    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:1043,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 1043
    functionDepth: 0
    functionLinenumber: 1043
    functionLinenumberEnd: 1043
    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:1048,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1052,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1047
    functionDepth: 0
    functionLinenumber: 1047
    functionLinenumberEnd: 1057
    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:1060,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1059
    functionDepth: 1
    functionLinenumber: 1059
    functionLinenumberEnd: 1061
    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:1064,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1065,1
    - Dst: get_int_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1065,1
    - 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: Botan::TLS::Protocol_Version::known_version
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1080,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - version
    argTypes:
    - Botan::TLS::Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1081
      start: 1063
    functionDepth: 1
    functionLinenumber: 1063
    functionLinenumberEnd: 1081
    functionName: Shim_Policy::allow_version
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 3
    functionsReached:
    - static_cast<uint16_t>
    - get_int_opt
    - option_used
    - Botan::TLS::Protocol_Version::known_version
    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:1084,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1084,1
    - Dst: Shim_Policy::allow_version
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1085,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1083
    functionDepth: 2
    functionLinenumber: 1083
    functionLinenumberEnd: 1086
    functionName: Shim_Policy::allow_tls12
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Shim_Policy::allow_version
    - flag_set
    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:1089,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1089,1
    - Dst: Shim_Policy::allow_version
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1090,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1088
    functionDepth: 2
    functionLinenumber: 1088
    functionLinenumberEnd: 1091
    functionName: Shim_Policy::allow_tls13
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Shim_Policy::allow_version
    - flag_set
    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:1094,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1094,1
    - Dst: Shim_Policy::allow_version
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1095,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1093
    functionDepth: 2
    functionLinenumber: 1093
    functionLinenumberEnd: 1096
    functionName: Shim_Policy::allow_dtls12
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Shim_Policy::allow_version
    - flag_set
    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: 1102
      start: 1102
    functionDepth: 0
    functionLinenumber: 1102
    functionLinenumberEnd: 1102
    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: 1104
      start: 1104
    functionDepth: 0
    functionLinenumber: 1104
    functionLinenumberEnd: 1104
    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:1117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1118
      start: 1116
    functionDepth: 0
    functionLinenumber: 1116
    functionLinenumberEnd: 1118
    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:1121,1
    - Dst: get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1122,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 1120
    functionDepth: 3
    functionLinenumber: 1120
    functionLinenumberEnd: 1134
    functionName: Shim_Policy::srtp_profiles
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - get_string_opt
    - option_used
    - 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: 1136
      start: 1136
    functionDepth: 0
    functionLinenumber: 1136
    functionLinenumberEnd: 1136
    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:1143,1
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1144,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1147,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1150,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1155
      start: 1142
    functionDepth: 0
    functionLinenumber: 1142
    functionLinenumberEnd: 1155
    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:1159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1159
    functionDepth: 0
    functionLinenumber: 1159
    functionLinenumberEnd: 1159
    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:1166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1167
      start: 1165
    functionDepth: 0
    functionLinenumber: 1165
    functionLinenumberEnd: 1167
    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:1169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1169
    functionDepth: 0
    functionLinenumber: 1169
    functionLinenumberEnd: 1169
    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:1185,1
    - Dst: test_name
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1171
    functionDepth: 0
    functionLinenumber: 1171
    functionLinenumberEnd: 1186
    functionName: Shim_Policy::tls_13_middlebox_compatibility_mode
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - test_name
    - Botan::value_exists
    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:1196,1
    - Dst: Botan::TLS::Ciphersuite::from_name
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1209,1
    - Dst: auto::valid
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1210,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1211,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1213,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1213,1
    - Dst: Botan::TLS::Ciphersuite::all_known_ciphersuites
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1217,1
    - Dst: auto::rbegin
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1220,1
    - Dst: auto::rend
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1220,1
    - Dst: auto::valid
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1223,1
    - Dst: auto::usable_in_version
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1223,1
    - Dst: Botan::value_exists
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1224,1
    - Dst: Shim_Policy::allowed_ciphers
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1224,1
    - Dst: auto::cipher_algo
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1224,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1227,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1227,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 1
    argNames:
    - version
    argTypes:
    - Botan::TLS::Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1193
    functionDepth: 4
    functionLinenumber: 1193
    functionLinenumberEnd: 1233
    functionName: Shim_Policy::ciphersuite_list
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - auto::rend
    - Botan::TLS::Ciphersuite::from_name
    - std::vector::push_back
    - auto::usable_in_version
    - get_string_opt_or_else
    - auto::valid
    - shim_exit_with_error
    - Botan::TLS::Ciphersuite::all_known_ciphersuites
    - Botan::value_exists
    - Shim_Policy::allowed_ciphers
    - auto::ciphersuite_code
    - auto::cipher_algo
    - auto::rbegin
    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:1238,1
    - Dst: get_string_opt_or_else
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1239,1
    - Dst: auto::empty
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1241,1
    - Dst: auto::empty
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1241,1
    - Dst: auto::empty
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1247,1
    - Dst: Botan::SymmetricKey
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1248,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1248,1
    - Dst: auto::data
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1248,1
    - Dst: auto::size
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1248,1
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1251,1
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1251,1
    - Dst: get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1252,1
    - Dst: reset
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1253,1
    - Dst: Botan::PKCS8::load_key
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1253,1
    - Dst: get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1255,1
    - Dst: Botan::DataSource_Stream::end_of_data
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1257,1
    - Dst: push_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1259,1
    - Dst: Botan::X509_Certificate
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1259,1
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1264,1
    - Dst: get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1264,1
    - Dst: get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1265,1
    - Dst: add_certificate
      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: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1269,1
    - Dst: std::string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1269,1
    - Dst: what
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1269,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 1
    argNames:
    - ' args'
    argTypes:
    - Shim_Arguments
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1237
    functionDepth: 1
    functionLinenumber: 1237
    functionLinenumberEnd: 1272
    functionName: Shim_Credentials::Shim_Credentials
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - auto::empty
    - option_used
    - Botan::SymmetricKey
    - get_string_opt_or_else
    - reinterpret_cast<const uint8_t*>
    - Botan::PKCS8::load_key
    - add_certificate
    - Shim_Exception
    - std::string
    - push_back
    - what
    - Botan::DataSource_Stream::end_of_data
    - get_string_opt
    - auto::size
    - Botan::X509_Certificate
    - reset
    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:1276,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1277,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1279,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1280,1
    - Dst: get_string_opt_or_else
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1283,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1285,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 2
    argNames:
    - ' type'
    - ' context'
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1289
      start: 1274
    functionDepth: 0
    functionLinenumber: 1274
    functionLinenumberEnd: 1289
    functionName: Shim_Credentials::trusted_certificate_authorities
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - get_string_opt_or_else
    - Shim_Exception
    - flag_set
    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:1294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1295
      start: 1291
    functionDepth: 0
    functionLinenumber: 1291
    functionLinenumberEnd: 1295
    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:1298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1299
      start: 1297
    functionDepth: 0
    functionLinenumber: 1297
    functionLinenumberEnd: 1299
    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:1302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1303
      start: 1301
    functionDepth: 1
    functionLinenumber: 1301
    functionLinenumberEnd: 1303
    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:1306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1307
      start: 1305
    functionDepth: 1
    functionLinenumber: 1305
    functionLinenumberEnd: 1307
    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:1314,1
    - Dst: Botan::Credentials_Manager::find_preshared_keys
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1315,1
    - Dst: empty
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1319,1
    - Dst: std::find
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1319,1
    - Dst: begin
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1319,1
    - Dst: end
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1319,1
    - Dst: end
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1319,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1322,1
    - Dst: has_value
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1325,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1326,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1337,1
    - Dst: value
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1337,1
    - Dst: bits_of
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1337,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: 1339
      start: 1309
    functionDepth: 1
    functionLinenumber: 1309
    functionLinenumberEnd: 1339
    functionName: Shim_Credentials::find_preshared_keys
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - begin
    - std::vector::emplace_back
    - Botan::Credentials_Manager::find_preshared_keys
    - Shim_Exception
    - bits_of
    - empty
    - end
    - std::find
    - has_value
    - 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:1346,1
    - Dst: std::runtime_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1347,1
    - Dst: empty
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1350,1
    - Dst: algo_name
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1352,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - ' cert_key_types'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1359
      start: 1341
    functionDepth: 0
    functionLinenumber: 1341
    functionLinenumberEnd: 1359
    functionName: Shim_Credentials::cert_chain
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - empty
    - std::runtime_error
    - algo_name
    - flag_set
    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: 1366
      start: 1361
    functionDepth: 0
    functionLinenumber: 1361
    functionLinenumberEnd: 1366
    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:1384,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: 1390
      start: 1379
    functionDepth: 0
    functionLinenumber: 1379
    functionLinenumberEnd: 1390
    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: 1392
      start: 1392
    functionDepth: 0
    functionLinenumber: 1392
    functionLinenumberEnd: 1392
    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: 1394
      start: 1394
    functionDepth: 0
    functionLinenumber: 1394
    functionLinenumberEnd: 1394
    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: 1396
      start: 1396
    functionDepth: 0
    functionLinenumber: 1396
    functionLinenumberEnd: 1396
    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: 1398
      start: 1398
    functionDepth: 0
    functionLinenumber: 1398
    functionLinenumberEnd: 1398
    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:1401,1
    - Dst: std::to_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1401,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1401,1
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1403,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1405,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1409,1
    - Dst: static_cast<uint8_t>
      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:1413,1
    - Dst: std::memcpy
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1415,1
    - Dst: std::vector::data
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1415,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1415,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1415,1
    - Dst: write
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1417,1
    - Dst: std::vector::data
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1417,1
    - Dst: std::vector::size
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1417,1
    - Dst: write
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1419,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1419,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1419,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1421
      start: 1400
    functionDepth: 2
    functionLinenumber: 1400
    functionLinenumberEnd: 1421
    functionName: Shim_Callbacks::tls_emit_data
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - option_used
    - std::span<const uint8_t>::data
    - Botan::hex_encode
    - std::span<const uint8_t>::size
    - static_cast<uint8_t>
    - std::vector::data
    - write
    - std::to_string
    - shim_log
    - std::vector::size
    - std::memcpy
    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:1425,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1425,1
    - Dst: std::runtime_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1426,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1429,1
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1433,1
    - Dst: get_b64_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1434,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1438
      start: 1423
    functionDepth: 0
    functionLinenumber: 1423
    functionLinenumberEnd: 1438
    functionName: Shim_Callbacks::tls_provide_cert_status
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - get_b64_opt
    - std::runtime_error
    - option_used
    - flag_set
    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:1441,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1444,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1450,1
    - Dst: std::to_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1450,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1450,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1452,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1452,1
    - Dst: send
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1457,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1458
      start: 1440
    functionDepth: 3
    functionLinenumber: 1440
    functionLinenumberEnd: 1458
    functionName: Shim_Callbacks::tls_record_received
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::empty
    - std::span<const uint8_t>::size
    - send
    - shim_exit_with_error
    - std::span<const uint8_t>::begin
    - std::to_string
    - std::span<const uint8_t>::end
    - shim_log
    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:1465,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1467,1
    - Dst: get_int_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1467,1
    - Dst: Botan::TLS::Signature_Scheme::is_available
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1469,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1470,1
    - Dst: std::string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1470,1
    - Dst: Botan::TLS::Signature_Scheme::to_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1471,1
    - Dst: Botan::TLS::Signature_Scheme::padding_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1474,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1476,1
    - Dst: Botan::fmt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1476,1
    - Dst: Botan_Tests::Test_TLS_13_Callbacks::tls_verify_message
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1480,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: 1481
      start: 1460
    functionDepth: 3
    functionLinenumber: 1460
    functionLinenumberEnd: 1481
    functionName: Shim_Callbacks::tls_verify_message
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Signature_Scheme::to_string
    - static_cast<uint16_t>
    - option_used
    - Botan::fmt
    - std::string
    - shim_exit_with_error
    - Botan_Tests::Test_TLS_13_Callbacks::tls_verify_message
    - get_int_opt
    - Botan::TLS::Signature_Scheme::is_available
    - Botan::TLS::Signature_Scheme::padding_string
    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:1489,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1489,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1490,1
    - Dst: TLS_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1491,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1495,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1497,1
    - Dst: TLS_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1501,1
    - Dst: empty
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1504,1
    - Dst: front
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1504,1
    - Dst: certificate_known
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1506,1
    - Dst: front
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1506,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1507,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1513,1
    - Dst: Fuzzer_TLS_Client_Callbacks::tls_verify_cert_chain
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1515,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: 1517
      start: 1483
    functionDepth: 2
    functionLinenumber: 1483
    functionLinenumberEnd: 1517
    functionName: Shim_Callbacks::tls_verify_cert_chain
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - Fuzzer_TLS_Client_Callbacks::tls_verify_cert_chain
    - empty
    - certificate_known
    - shim_log
    - front
    - flag_set
    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:1520,1
    - Dst: get_b64_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1520,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1521,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' raw_response'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1527
      start: 1519
    functionDepth: 3
    functionLinenumber: 1519
    functionLinenumberEnd: 1527
    functionName: Shim_Callbacks::tls_parse_ocsp_response
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - get_b64_opt
    - option_used
    - 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:1533,1
    - Dst: get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1541,1
    - Dst: get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1542,1
    - Dst: remove_extension
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1543,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: 1550
      start: 1529
    functionDepth: 1
    functionLinenumber: 1529
    functionLinenumberEnd: 1550
    functionName: Shim_Callbacks::tls_modify_extensions
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - get_string_opt
    - option_used
    - 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:1553,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1557,1
    - Dst: TLS_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1558,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1562,1
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1566,1
    - Dst: get_alpn_string_vec_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1567,1
    - Dst: shim_exit_with_error
      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_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1575,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - ' client_protos'
    argTypes:
    - std::vector<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1552
    functionDepth: 3
    functionLinenumber: 1552
    functionLinenumberEnd: 1579
    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
    - TLS_Exception
    - shim_exit_with_error
    - empty
    - get_string_opt
    - flag_set
    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:1582,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1583,1
    - Dst: Botan::TLS::Alert::type_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1583,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1585,1
    - Dst: Botan::TLS::Alert::type_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1585,1
    - Dst: Botan::TLS::Alert::type
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1588,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1589,1
    - Dst: Botan::TLS::Alert::type
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1592,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1593,1
    - Dst: Botan::TLS::Alert::is_fatal
      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:1599,1
    - Dst: Botan::TLS::Alert::type
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1603,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1604,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1605,1
    - Dst: send_alert
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1606,1
    - Dst: Botan::TLS::Alert::is_fatal
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1609,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1610,1
    - Dst: Botan::TLS::Alert::type_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1610,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 28
    argCount: 1
    argNames:
    - alert
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1612
      start: 1581
    functionDepth: 3
    functionLinenumber: 1581
    functionLinenumberEnd: 1612
    functionName: Shim_Callbacks::tls_alert
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Alert::is_fatal
    - Botan::TLS::Alert::type
    - shim_exit_with_error
    - Botan::TLS::Alert::type_string
    - shim_log
    - send_alert
    - flag_set
    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:1615,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1615,1
    - Dst: session_id
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1615,1
    - Dst: version
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1616,1
    - Dst: ciphersuite
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1616,1
    - Dst: std::string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1617,1
    - Dst: supports_extended_master_secret
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1617,1
    - Dst: incr_session_established
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1620,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1623,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1625,1
    - Dst: session_id
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1625,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1626,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1628,1
    - Dst: session_id
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1628,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1629,1
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1632,1
    - Dst: version
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1633,1
    - Dst: get_int_opt
      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:1638,1
    - Dst: secure_renegotiation_supported
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1639,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1640,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1642,1
    - Dst: secure_renegotiation_supported
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1643,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1644,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1648,1
    - Dst: supports_extended_master_secret
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1649,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1650,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Botan::TLS::Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1653
      start: 1614
    functionDepth: 3
    functionLinenumber: 1614
    functionLinenumberEnd: 1653
    functionName: Shim_Callbacks::tls_session_established
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - option_used
    - supports_extended_master_secret
    - Botan::hex_encode
    - session_id
    - std::string
    - shim_exit_with_error
    - flag_set
    - secure_renegotiation_supported
    - get_int_opt
    - version
    - ciphersuite
    - shim_log
    - 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:1656,1
    - Dst: send_fatal_alert
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1657,1
    - Dst: get_int_opt_or_else
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1661,1
    - Dst: get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1662,1
    - Dst: get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1663,1
    - Dst: key_material_export
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1664,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1665,1
    - Dst: std::to_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1665,1
    - Dst: send
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1666,1
    - Dst: auto::bits_of
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1666,1
    - Dst: application_protocol
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1669,1
    - Dst: option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1671,1
    - Dst: get_string_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1672,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1673,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1677,1
    - Dst: TLS_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1678,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1681,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1682,1
    - Dst: close
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1683,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1686,1
    - Dst: send
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1692,1
    - Dst: std::vector::data
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1692,1
    - Dst: close
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1695,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1698,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1699,1
    - Dst: flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1702,1
    - Dst: Shim_Exception
      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_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1707,1
    - Dst: update_traffic_keys
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1708,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1710
      start: 1655
    functionDepth: 3
    functionLinenumber: 1655
    functionLinenumberEnd: 1710
    functionName: Shim_Callbacks::tls_session_activated
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 0
    functionsReached:
    - send_fatal_alert
    - auto::bits_of
    - option_used
    - application_protocol
    - TLS_Exception
    - send
    - std::vector::data
    - key_material_export
    - shim_exit_with_error
    - Shim_Exception
    - update_traffic_keys
    - close
    - std::to_string
    - shim_log
    - get_string_opt
    - get_int_opt_or_else
    - flag_set
    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:1717,1
    - Dst: Botan::TLS::detail::AsyncBase::complete_now
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1719
      start: 1712
    functionDepth: 1
    functionLinenumber: 1712
    functionLinenumberEnd: 1719
    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:1722,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - Botan::TLS::Handshake_Message
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1725
      start: 1721
    functionDepth: 0
    functionLinenumber: 1721
    functionLinenumberEnd: 1725
    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:1745,1
    - Dst: std::unique_ptr::flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1747,1
    - Dst: shim_output
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1748,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1751,1
    - Dst: std::unique_ptr::get_int_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1751,1
    - Dst: std::unique_ptr::get_int_opt_or_else
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1752,1
    - Dst: std::unique_ptr::flag_set
      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:1754,1
    - Dst: std::unique_ptr::get_int_opt_or_else
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1755,1
    - Dst: std::make_shared<Botan::ChaCha_RNG>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1757,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1757,1
    - Dst: std::make_shared<Shim_Credentials>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1758,1
    - Dst: std::unique_ptr::flag_set
      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:1760,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1763,1
    - Dst: std::make_shared<Botan::TLS::Session_Manager_Hybrid>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1768,1
    - Dst: std::make_unique<Botan::TLS::Session_Manager_In_Memory>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1769,1
    - Dst: std::unique_ptr::flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1773,1
    - Dst: sleep
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1774,1
    - Dst: std::unique_ptr::flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1779,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1781,1
    - Dst: std::to_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1781,1
    - Dst: std::to_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1781,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1786,1
    - Dst: std::to_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1786,1
    - Dst: std::unique_ptr::get_int_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1786,1
    - Dst: Botan::store_le
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1788,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1788,1
    - Dst: std::unique_ptr::get_int_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1788,1
    - Dst: std::array::data
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1788,1
    - Dst: Shim_Socket::write
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1789,1
    - Dst: std::array::data
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1789,1
    - Dst: std::array::size
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1789,1
    - Dst: std::make_shared<Shim_Policy>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1791,1
    - Dst: std::make_shared<Shim_Callbacks>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1792,1
    - Dst: std::unique_ptr::option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1794,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1795,1
    - Dst: std::to_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1795,1
    - Dst: std::unique_ptr::get_int_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1795,1
    - Dst: auto::set_clock_skew
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1796,1
    - Dst: Botan_CLI::Timer::seconds
      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::make_unique<Botan::TLS::Server>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1802,1
    - Dst: auto::latest_supported_version
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1804,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1805,1
    - Dst: Botan::TLS::Protocol_Version::to_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1805,1
    - Dst: std::unique_ptr::get_string_opt_or_else
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1807,1
    - Dst: std::unique_ptr::test_name
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1808,1
    - Dst: std::unique_ptr::get_alpn_string_vec_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1813,1
    - Dst: std::make_unique<Botan::TLS::Client>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1814,1
    - Dst: auto::set_channel
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1818,1
    - Dst: std::unique_ptr::get
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1818,1
    - Dst: Shim_Socket::read
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1825,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1827,1
    - Dst: Shim_Socket::read_exactly
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1833,1
    - Dst: Botan::load_be<uint32_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1835,1
    - Dst: std::vector::size
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1837,1
    - Dst: std::vector::resize
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1838,1
    - Dst: Shim_Socket::read_exactly
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1840,1
    - Dst: std::vector::data
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1840,1
    - Dst: std::unique_ptr::received_data
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1842,1
    - Dst: std::vector::data
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1842,1
    - Dst: Shim_Socket::read_exactly
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1847,1
    - Dst: Botan::load_be<uint64_t>
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1849,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1851,1
    - Dst: std::to_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1851,1
    - Dst: Shim_Socket::write
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1855,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1857,1
    - Dst: std::to_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1857,1
    - Dst: Shim_Socket::read
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1860,1
    - Dst: std::vector::data
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1860,1
    - Dst: std::vector::size
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1860,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1862,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1866,1
    - Dst: std::to_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1866,1
    - Dst: std::unique_ptr::option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1868,1
    - Dst: Botan::hex_encode
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1871,1
    - Dst: std::vector::data
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1871,1
    - Dst: std::unique_ptr::flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1875,1
    - Dst: std::unique_ptr::is_active
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1875,1
    - Dst: std::unique_ptr::key_material_export
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1876,1
    - Dst: std::unique_ptr::received_data
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1878,1
    - Dst: std::vector::data
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1878,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1881,1
    - Dst: std::to_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1881,1
    - Dst: std::unique_ptr::flag_set
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1886,1
    - Dst: auto::saw_close_notify
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1887,1
    - Dst: Shim_Exception
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1888,1
    - Dst: std::unique_ptr::option_used
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1892,1
    - Dst: std::unique_ptr::get_int_opt
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1893,1
    - Dst: auto::sessions_established
      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::to_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1897,1
    - Dst: auto::sessions_established
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1897,1
    - Dst: std::to_string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1898,1
    - Dst: shim_log
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1901,1
    - Dst: execute_test
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1904,1
    - Dst: std::string
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1906,1
    - Dst: what
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1906,1
    - Dst: execute_test
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1907,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1915,1
    - Dst: what
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1915,1
    - Dst: rc
      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:1917,1
    - Dst: map_to_bogo_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1917,1
    - Dst: what
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1917,1
    - Dst: shim_exit_with_error
      Src: /src/botan/src/bogo_shim/bogo_shim.cpp:1919,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 101
    argCount: 1
    argNames:
    - argv
    argTypes:
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1922
      start: 1743
    functionDepth: 3
    functionLinenumber: 1743
    functionLinenumberEnd: 1922
    functionName: main
    functionSourceFile: /src/botan/src/bogo_shim/bogo_shim.cpp
    functionUses: 47
    functionsReached:
    - static_cast<uint16_t>
    - Shim_Socket::write
    - auto::set_clock_skew
    - Botan::hex_encode
    - std::make_unique<Botan::TLS::Server>
    - Botan_CLI::Timer::seconds
    - std::unique_ptr::get
    - auto::saw_close_notify
    - what
    - Botan::store_le
    - std::unique_ptr::test_name
    - std::unique_ptr::received_data
    - map_to_bogo_error
    - std::array::data
    - parse_options
    - std::unique_ptr::option_used
    - std::unique_ptr::get_int_opt
    - std::vector::data
    - shim_exit_with_error
    - Shim_Exception
    - std::unique_ptr::get_int_opt_or_else
    - std::unique_ptr::get_string_opt_or_else
    - std::array::size
    - shim_log
    - std::unique_ptr::key_material_export
    - auto::latest_supported_version
    - Shim_Socket::read_exactly
    - sleep
    - Botan::load_be<uint64_t>
    - Shim_Socket::read
    - Botan::TLS::Protocol_Version::to_string
    - std::make_shared<Botan::TLS::Session_Manager_Hybrid>
    - shim_output
    - std::vector::resize
    - std::make_shared<Botan::TLS::Session_Manager_In_Memory>
    - std::unique_ptr::get_alpn_string_vec_opt
    - std::make_shared<Botan::ChaCha_RNG>
    - static_cast<uint64_t>
    - std::make_shared<Shim_Callbacks>
    - std::vector::size
    - auto::sessions_established
    - std::unique_ptr::flag_set
    - std::make_shared<Shim_Credentials>
    - std::make_shared<Shim_Policy>
    - std::unique_ptr::is_active
    - execute_test
    - Botan::load_be<uint32_t>
    - std::string
    - rc
    - Botan::secure_vector<uint8_t>
    - std::make_unique<Botan::TLS::Client>
    - std::to_string
    - std::make_unique<Botan::TLS::Session_Manager_In_Memory>
    - auto::set_channel
    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:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: start
    functionSourceFile: /src/botan/src/lib/modes/cipher_mode.h
    functionUses: 96
    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: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: start
    functionSourceFile: /src/botan/src/lib/modes/cipher_mode.h
    functionUses: 96
    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:132,1
    - Dst: std::span<uint8_t>::data
      Src: /src/botan/src/lib/modes/cipher_mode.h:132,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/modes/cipher_mode.h:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: process
    functionSourceFile: /src/botan/src/lib/modes/cipher_mode.h
    functionUses: 50
    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:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msg
    - msg_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    functionName: process
    functionSourceFile: /src/botan/src/lib/modes/cipher_mode.h
    functionUses: 50
    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:150,1
    - Dst: std::span
      Src: /src/botan/src/lib/modes/cipher_mode.h:150,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/cipher_mode.h:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' buffer'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 152
    functionName: update
    functionSourceFile: /src/botan/src/lib/modes/cipher_mode.h
    functionUses: 128
    functionsReached:
    - resize
    - process
    - std::span
    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:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' final_block'
    argTypes:
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 179
    functionName: finish
    functionSourceFile: /src/botan/src/lib/modes/cipher_mode.h
    functionUses: 75
    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:193,1
    - Dst: end
      Src: /src/botan/src/lib/modes/cipher_mode.h:193,1
    - Dst: finish_msg
      Src: /src/botan/src/lib/modes/cipher_mode.h:194,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/cipher_mode.h:195,1
    - Dst: Botan::secure_vector::size
      Src: /src/botan/src/lib/modes/cipher_mode.h:195,1
    - Dst: copy
      Src: /src/botan/src/lib/modes/cipher_mode.h:196,1
    - Dst: Botan::secure_vector::begin
      Src: /src/botan/src/lib/modes/cipher_mode.h:196,1
    - Dst: Botan::secure_vector::end
      Src: /src/botan/src/lib/modes/cipher_mode.h:196,1
    - Dst: begin
      Src: /src/botan/src/lib/modes/cipher_mode.h:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' final_block'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 197
    functionName: finish
    functionSourceFile: /src/botan/src/lib/modes/cipher_mode.h
    functionUses: 75
    functionsReached:
    - Botan::secure_vector::end
    - resize
    - copy
    - finish_msg
    - Botan::secure_vector::begin
    - end
    - begin
    - Botan::secure_vector::size
    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: 233
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 233
    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:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 263
    functionName: authenticated
    functionSourceFile: /src/botan/src/lib/modes/cipher_mode.h
    functionUses: 10
    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: 268
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 268
    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: 274
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 274
    functionName: provider
    functionSourceFile: /src/botan/src/lib/modes/cipher_mode.h
    functionUses: 41
    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:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - algo_spec
    - direction
    argTypes:
    - std::string_view
    - Cipher_Dir
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 286
    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:44,1
    - Dst: Lookup_Error
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:48,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: 49
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 49
    functionName: Botan::Cipher_Mode::create_or_throw
    functionSourceFile: /src/botan/src/lib/modes/cipher_mode.cpp
    functionUses: 2
    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:55,1
    - Dst: make_commoncrypto_cipher_mode
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:56,1
    - Dst: std::string_view::empty
      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:64,1
    - Dst: Botan::StreamCipher::create
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:69,1
    - Dst: std::make_unique<Stream_Cipher_Mode>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:70,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:70,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:75,1
    - Dst: std::string_view::find
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:80,1
    - Dst: split_on
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:81,1
    - Dst: parse_algorithm_name
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:83,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:85,1
    - Dst: std::unique_ptr<Cipher_Mode>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:86,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:92,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:95,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:100,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:100,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:107,1
    - Dst: std::unique_ptr<Cipher_Mode>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:108,1
    - Dst: Botan::BlockCipher::create
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:111,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:111,1
    - Dst: std::unique_ptr<Cipher_Mode>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:114,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:118,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:119,1
    - Dst: std::make_unique<CTS_Encryption>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:123,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:123,1
    - Dst: std::make_unique<CTS_Decryption>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:125,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:125,1
    - Dst: Botan::BlockCipherModePaddingMethod::create
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:128,1
    - Dst: std::make_unique<CBC_Encryption>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:132,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:132,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:132,1
    - Dst: std::make_unique<CBC_Decryption>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:134,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:134,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:134,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:142,1
    - Dst: std::make_unique<XTS_Encryption>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:144,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:144,1
    - Dst: std::make_unique<XTS_Decryption>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:146,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:146,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:152,1
    - Dst: SCAN_Name::arg_as_integer
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:153,1
    - Dst: auto::block_size
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:153,1
    - Dst: std::make_unique<CFB_Encryption>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:155,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:155,1
    - Dst: std::make_unique<CFB_Decryption>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:157,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:157,1
    - Dst: std::unique_ptr<Cipher_Mode>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:164,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: 165
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 165
    functionName: Botan::Cipher_Mode::create
    functionSourceFile: /src/botan/src/lib/modes/cipher_mode.cpp
    functionUses: 23
    functionsReached:
    - std::make_unique<CTS_Decryption>
    - Botan::StreamCipher::create
    - std::make_unique<XTS_Decryption>
    - SCAN_Name::arg_count
    - std::ostringstream::str
    - Botan::Cipher_Mode::create
    - split_on
    - std::string_view::find
    - auto::block_size
    - std::make_unique<CFB_Encryption>
    - std::make_unique<XTS_Encryption>
    - Botan::BlockCipherModePaddingMethod::create
    - parse_algorithm_name
    - SCAN_Name::arg
    - SCAN_Name::algo_name
    - std::make_unique<CBC_Decryption>
    - std::unique_ptr<Cipher_Mode>
    - std::make_unique<CBC_Encryption>
    - std::vector::empty
    - Botan::AEAD_Mode::create
    - std::vector::size
    - make_commoncrypto_cipher_mode
    - std::move
    - std::string_view::empty
    - std::make_unique<CTS_Encryption>
    - Botan::BlockCipher::create
    - std::make_unique<Stream_Cipher_Mode>
    - SCAN_Name::arg_as_integer
    - std::make_unique<CFB_Decryption>
    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:172,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:174,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - algo_spec
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 178
    functionName: Botan::Cipher_Mode::providers
    functionSourceFile: /src/botan/src/lib/modes/cipher_mode.cpp
    functionUses: 6
    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:44,1
    - Dst: Lookup_Error
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:48,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: 49
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 49
    functionName: Botan::Cipher_Mode::create_or_throw
    functionSourceFile: /src/botan/src/lib/modes/cipher_mode.cpp
    functionUses: 2
    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:55,1
    - Dst: make_commoncrypto_cipher_mode
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:56,1
    - Dst: std::string_view::empty
      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:64,1
    - Dst: Botan::StreamCipher::create
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:69,1
    - Dst: std::make_unique<Stream_Cipher_Mode>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:70,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:70,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:75,1
    - Dst: std::string_view::find
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:80,1
    - Dst: split_on
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:81,1
    - Dst: parse_algorithm_name
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:83,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:85,1
    - Dst: std::unique_ptr<Cipher_Mode>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:86,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:92,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:95,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:100,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:100,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:107,1
    - Dst: std::unique_ptr<Cipher_Mode>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:108,1
    - Dst: Botan::BlockCipher::create
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:111,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:111,1
    - Dst: std::unique_ptr<Cipher_Mode>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:114,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:118,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:119,1
    - Dst: std::make_unique<CTS_Encryption>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:123,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:123,1
    - Dst: std::make_unique<CTS_Decryption>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:125,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:125,1
    - Dst: Botan::BlockCipherModePaddingMethod::create
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:128,1
    - Dst: std::make_unique<CBC_Encryption>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:132,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:132,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:132,1
    - Dst: std::make_unique<CBC_Decryption>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:134,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:134,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:134,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:142,1
    - Dst: std::make_unique<XTS_Encryption>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:144,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:144,1
    - Dst: std::make_unique<XTS_Decryption>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:146,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:146,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:152,1
    - Dst: SCAN_Name::arg_as_integer
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:153,1
    - Dst: auto::block_size
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:153,1
    - Dst: std::make_unique<CFB_Encryption>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:155,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:155,1
    - Dst: std::make_unique<CFB_Decryption>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:157,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:157,1
    - Dst: std::unique_ptr<Cipher_Mode>
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:164,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: 165
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 165
    functionName: Botan::Cipher_Mode::create
    functionSourceFile: /src/botan/src/lib/modes/cipher_mode.cpp
    functionUses: 26
    functionsReached:
    - std::make_unique<CTS_Decryption>
    - Botan::StreamCipher::create
    - std::make_unique<XTS_Decryption>
    - SCAN_Name::arg_count
    - std::ostringstream::str
    - Botan::Cipher_Mode::create
    - split_on
    - std::string_view::find
    - auto::block_size
    - std::make_unique<CFB_Encryption>
    - std::make_unique<XTS_Encryption>
    - Botan::BlockCipherModePaddingMethod::create
    - parse_algorithm_name
    - SCAN_Name::arg
    - SCAN_Name::algo_name
    - std::make_unique<CBC_Decryption>
    - std::unique_ptr<Cipher_Mode>
    - std::make_unique<CBC_Encryption>
    - std::vector::empty
    - Botan::AEAD_Mode::create
    - std::vector::size
    - make_commoncrypto_cipher_mode
    - std::move
    - std::string_view::empty
    - std::make_unique<CTS_Encryption>
    - Botan::BlockCipher::create
    - std::make_unique<Stream_Cipher_Mode>
    - SCAN_Name::arg_as_integer
    - std::make_unique<CFB_Decryption>
    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:172,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/modes/cipher_mode.cpp:174,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - algo_spec
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 178
    functionName: Botan::Cipher_Mode::providers
    functionSourceFile: /src/botan/src/lib/modes/cipher_mode.cpp
    functionUses: 6
    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:17,1
    - Dst: Botan::CFB_Mode::block_size
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:18,1
    - Dst: Botan::CFB_Mode::feedback
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:20,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:21,1
    - Dst: fmt
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:21,1
    - Dst: Botan::CFB_Mode::name
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:21,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: 23
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 23
    functionName: Botan::CFB_Mode::CFB_Mode
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Invalid_Argument
    - Botan::CFB_Mode::block_size
    - Botan::CFB_Mode::feedback
    - Botan::CFB_Mode::name
    - 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:26,1
    - Dst: Botan::CFB_Mode::clear
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:27,1
    - Dst: Botan::CFB_Mode::reset
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 29
    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:32,1
    - Dst: zeroise
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: Botan::CFB_Mode::reset
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 1
    functionsReached:
    - Botan::CFB_Mode::clear
    - zeroise
    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:37,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:37,1
    - Dst: fmt
      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:40,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:40,1
    - Dst: Botan::CFB_Mode::feedback
      Src: /src/botan/src/lib/modes/cfb/cfb.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::CFB_Mode::name
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 1
    functionsReached:
    - Botan::CFB_Mode::feedback
    - cipher
    - fmt
    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: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    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: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::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: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::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: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    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: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::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:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 67
    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:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 71
    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: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::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:78,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:79,1
    - Dst: Botan::CFB_Mode::block_size
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: Botan::CFB_Mode::key_schedule
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 0
    functionsReached:
    - set_key
    - resize
    - Botan::CFB_Mode::block_size
    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:83,1
    - Dst: Invalid_IV_Length
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:84,1
    - Dst: Botan::CFB_Mode::name
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:84,1
    - Dst: assert_key_material_set
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:87,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:90,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:91,1
    - Dst: assign
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:95,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:96,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 99
    functionName: Botan::CFB_Mode::start_msg
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 0
    functionsReached:
    - Invalid_IV_Length
    - assign
    - Invalid_State
    - Botan::CFB_Mode::valid_nonce_length
    - empty
    - cipher
    - Botan::CFB_Mode::name
    - assert_key_material_set
    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:102,1
    - Dst: Botan::CFB_Mode::block_size
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:103,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:106,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:106,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:108,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:108,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 111
    functionName: Botan::CFB_Mode::shift_register
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 0
    functionsReached:
    - data
    - copy_mem
    - Botan::CFB_Mode::block_size
    - cipher
    - Botan::CFB_Mode::feedback
    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:114,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:115,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:115,1
    - Dst: feedback
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:117,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:122,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:124,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:124,1
    - Dst: copy_mem
      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: shift_register
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:132,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:137,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:137,1
    - Dst: copy_mem
      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: shift_register
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:142,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:146,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:146,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:147,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:147,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 152
    functionName: Botan::CFB_Encryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 0
    functionsReached:
    - std::min<size_t>
    - feedback
    - data
    - copy_mem
    - empty
    - xor_buf
    - BOTAN_STATE_CHECK
    - shift_register
    - assert_key_material_set
    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:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 156
    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: 166
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 166
    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: 166
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 166
    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:171,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:172,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:172,1
    - Dst: feedback
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:174,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:179,1
    - Dst: xor_copy
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:181,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:181,1
    - Dst: shift_register
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:188,1
    - Dst: xor_copy
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:193,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:193,1
    - Dst: shift_register
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:196,1
    - Dst: xor_copy
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:200,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:200,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 205
    functionName: Botan::CFB_Decryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 0
    functionsReached:
    - std::min<size_t>
    - feedback
    - data
    - xor_copy
    - empty
    - BOTAN_STATE_CHECK
    - shift_register
    - assert_key_material_set
    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:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 209
    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:17,1
    - Dst: Botan::CFB_Mode::block_size
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:18,1
    - Dst: Botan::CFB_Mode::feedback
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:20,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:21,1
    - Dst: fmt
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:21,1
    - Dst: Botan::CFB_Mode::name
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:21,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: 23
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 23
    functionName: Botan::CFB_Mode::CFB_Mode
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Invalid_Argument
    - Botan::CFB_Mode::block_size
    - Botan::CFB_Mode::feedback
    - Botan::CFB_Mode::name
    - 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:26,1
    - Dst: Botan::CFB_Mode::clear
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:27,1
    - Dst: Botan::CFB_Mode::reset
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 29
    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:32,1
    - Dst: zeroise
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: Botan::CFB_Mode::reset
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 2
    functionsReached:
    - Botan::CFB_Mode::clear
    - zeroise
    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:37,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:37,1
    - Dst: fmt
      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:40,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:40,1
    - Dst: Botan::CFB_Mode::feedback
      Src: /src/botan/src/lib/modes/cfb/cfb.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::CFB_Mode::name
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 3
    functionsReached:
    - Botan::CFB_Mode::feedback
    - cipher
    - fmt
    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: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    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: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::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: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::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: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    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: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::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:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 67
    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:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 71
    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: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::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:78,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:79,1
    - Dst: Botan::CFB_Mode::block_size
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: Botan::CFB_Mode::key_schedule
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 0
    functionsReached:
    - set_key
    - resize
    - Botan::CFB_Mode::block_size
    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:83,1
    - Dst: Invalid_IV_Length
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:84,1
    - Dst: Botan::CFB_Mode::name
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:84,1
    - Dst: assert_key_material_set
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:87,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:90,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:91,1
    - Dst: assign
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:95,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:96,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 99
    functionName: Botan::CFB_Mode::start_msg
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 0
    functionsReached:
    - Invalid_IV_Length
    - assign
    - Invalid_State
    - Botan::CFB_Mode::valid_nonce_length
    - empty
    - cipher
    - Botan::CFB_Mode::name
    - assert_key_material_set
    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:102,1
    - Dst: Botan::CFB_Mode::block_size
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:103,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:106,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:106,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:108,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:108,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 111
    functionName: Botan::CFB_Mode::shift_register
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 0
    functionsReached:
    - data
    - copy_mem
    - Botan::CFB_Mode::block_size
    - cipher
    - Botan::CFB_Mode::feedback
    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:114,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:115,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:115,1
    - Dst: feedback
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:117,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:122,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:124,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:124,1
    - Dst: copy_mem
      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: shift_register
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:132,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:137,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:137,1
    - Dst: copy_mem
      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: shift_register
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:142,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:146,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:146,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:147,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:147,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 152
    functionName: Botan::CFB_Encryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 0
    functionsReached:
    - std::min<size_t>
    - feedback
    - data
    - copy_mem
    - empty
    - xor_buf
    - BOTAN_STATE_CHECK
    - shift_register
    - assert_key_material_set
    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:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 156
    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: 166
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 166
    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: 166
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 166
    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:171,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:172,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:172,1
    - Dst: feedback
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:174,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:179,1
    - Dst: xor_copy
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:181,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:181,1
    - Dst: shift_register
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:188,1
    - Dst: xor_copy
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:193,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:193,1
    - Dst: shift_register
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:196,1
    - Dst: xor_copy
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:200,1
    - Dst: data
      Src: /src/botan/src/lib/modes/cfb/cfb.cpp:200,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 205
    functionName: Botan::CFB_Decryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/cfb/cfb.cpp
    functionUses: 0
    functionsReached:
    - std::min<size_t>
    - feedback
    - data
    - xor_copy
    - empty
    - BOTAN_STATE_CHECK
    - shift_register
    - assert_key_material_set
    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:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 209
    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:
    - Botan::set_associated_data
    - std::span
    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:
    - Botan::set_associated_data
    - std::span
    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:47,1
    - Dst: Lookup_Error
      Src: /src/botan/src/lib/modes/aead/aead.cpp:51,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: 52
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 52
    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: 17
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/modes/aead/aead.cpp:55,1
    - Dst: std::make_unique<ChaCha20Poly1305_Encryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:59,1
    - Dst: std::make_unique<ChaCha20Poly1305_Decryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:61,1
    - Dst: std::string_view::find
      Src: /src/botan/src/lib/modes/aead/aead.cpp:66,1
    - Dst: split_on
      Src: /src/botan/src/lib/modes/aead/aead.cpp:67,1
    - Dst: parse_algorithm_name
      Src: /src/botan/src/lib/modes/aead/aead.cpp:69,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/modes/aead/aead.cpp:71,1
    - Dst: std::unique_ptr<AEAD_Mode>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:72,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/modes/aead/aead.cpp:78,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/modes/aead/aead.cpp:81,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/lib/modes/aead/aead.cpp:86,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/lib/modes/aead/aead.cpp:86,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/modes/aead/aead.cpp:93,1
    - Dst: std::unique_ptr<AEAD_Mode>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:94,1
    - Dst: Botan::BlockCipher::create
      Src: /src/botan/src/lib/modes/aead/aead.cpp:97,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/modes/aead/aead.cpp:97,1
    - Dst: std::unique_ptr<AEAD_Mode>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:100,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/modes/aead/aead.cpp:104,1
    - Dst: SCAN_Name::arg_as_integer
      Src: /src/botan/src/lib/modes/aead/aead.cpp:105,1
    - Dst: SCAN_Name::arg_as_integer
      Src: /src/botan/src/lib/modes/aead/aead.cpp:106,1
    - Dst: std::make_unique<CCM_Encryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:108,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/aead.cpp:108,1
    - Dst: std::make_unique<CCM_Decryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:110,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/aead.cpp:110,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/modes/aead/aead.cpp:116,1
    - Dst: SCAN_Name::arg_as_integer
      Src: /src/botan/src/lib/modes/aead/aead.cpp:117,1
    - Dst: std::make_unique<GCM_Encryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:119,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/aead.cpp:119,1
    - Dst: std::make_unique<GCM_Decryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:121,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/aead.cpp:121,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/modes/aead/aead.cpp:127,1
    - Dst: SCAN_Name::arg_as_integer
      Src: /src/botan/src/lib/modes/aead/aead.cpp:128,1
    - Dst: std::make_unique<OCB_Encryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:130,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/aead.cpp:130,1
    - Dst: std::make_unique<OCB_Decryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:132,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/aead.cpp:132,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/modes/aead/aead.cpp:138,1
    - Dst: SCAN_Name::arg_as_integer
      Src: /src/botan/src/lib/modes/aead/aead.cpp:139,1
    - Dst: auto::block_size
      Src: /src/botan/src/lib/modes/aead/aead.cpp:139,1
    - Dst: std::make_unique<EAX_Encryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:141,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/aead.cpp:141,1
    - Dst: std::make_unique<EAX_Decryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:143,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/aead.cpp:143,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/modes/aead/aead.cpp:149,1
    - Dst: std::make_unique<SIV_Encryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:151,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/aead.cpp:151,1
    - Dst: std::make_unique<SIV_Decryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:153,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/aead.cpp:153,1
    - Dst: std::unique_ptr<AEAD_Mode>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:160,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 65
    argCount: 3
    argNames:
    - algo
    - dir
    - provider
    argTypes:
    - std::string_view
    - Cipher_Dir
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 161
    functionName: Botan::AEAD_Mode::create
    functionSourceFile: /src/botan/src/lib/modes/aead/aead.cpp
    functionUses: 25
    functionsReached:
    - std::make_unique<GCM_Decryption>
    - SCAN_Name::arg_count
    - std::ostringstream::str
    - std::make_unique<CCM_Decryption>
    - split_on
    - std::string_view::find
    - BOTAN_UNUSED
    - auto::block_size
    - parse_algorithm_name
    - SCAN_Name::arg
    - SCAN_Name::algo_name
    - std::make_unique<ChaCha20Poly1305_Decryption>
    - std::make_unique<EAX_Encryption>
    - std::make_unique<ChaCha20Poly1305_Encryption>
    - std::make_unique<SIV_Decryption>
    - std::make_unique<GCM_Encryption>
    - std::make_unique<SIV_Encryption>
    - std::vector::empty
    - Botan::AEAD_Mode::create
    - std::vector::size
    - std::unique_ptr<AEAD_Mode>
    - std::move
    - std::make_unique<EAX_Decryption>
    - std::make_unique<CCM_Encryption>
    - Botan::BlockCipher::create
    - std::make_unique<OCB_Decryption>
    - SCAN_Name::arg_as_integer
    - std::make_unique<OCB_Encryption>
    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:47,1
    - Dst: Lookup_Error
      Src: /src/botan/src/lib/modes/aead/aead.cpp:51,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: 52
      start: 44
    functionDepth: 2
    functionLinenumber: 44
    functionLinenumberEnd: 52
    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: 17
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/modes/aead/aead.cpp:55,1
    - Dst: std::make_unique<ChaCha20Poly1305_Encryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:59,1
    - Dst: std::make_unique<ChaCha20Poly1305_Decryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:61,1
    - Dst: std::string_view::find
      Src: /src/botan/src/lib/modes/aead/aead.cpp:66,1
    - Dst: split_on
      Src: /src/botan/src/lib/modes/aead/aead.cpp:67,1
    - Dst: parse_algorithm_name
      Src: /src/botan/src/lib/modes/aead/aead.cpp:69,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/modes/aead/aead.cpp:71,1
    - Dst: std::unique_ptr<AEAD_Mode>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:72,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/modes/aead/aead.cpp:78,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/modes/aead/aead.cpp:81,1
    - Dst: Botan::AEAD_Mode::create
      Src: /src/botan/src/lib/modes/aead/aead.cpp:86,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/lib/modes/aead/aead.cpp:86,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/modes/aead/aead.cpp:93,1
    - Dst: std::unique_ptr<AEAD_Mode>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:94,1
    - Dst: Botan::BlockCipher::create
      Src: /src/botan/src/lib/modes/aead/aead.cpp:97,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/modes/aead/aead.cpp:97,1
    - Dst: std::unique_ptr<AEAD_Mode>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:100,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/modes/aead/aead.cpp:104,1
    - Dst: SCAN_Name::arg_as_integer
      Src: /src/botan/src/lib/modes/aead/aead.cpp:105,1
    - Dst: SCAN_Name::arg_as_integer
      Src: /src/botan/src/lib/modes/aead/aead.cpp:106,1
    - Dst: std::make_unique<CCM_Encryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:108,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/aead.cpp:108,1
    - Dst: std::make_unique<CCM_Decryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:110,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/aead.cpp:110,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/modes/aead/aead.cpp:116,1
    - Dst: SCAN_Name::arg_as_integer
      Src: /src/botan/src/lib/modes/aead/aead.cpp:117,1
    - Dst: std::make_unique<GCM_Encryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:119,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/aead.cpp:119,1
    - Dst: std::make_unique<GCM_Decryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:121,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/aead.cpp:121,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/modes/aead/aead.cpp:127,1
    - Dst: SCAN_Name::arg_as_integer
      Src: /src/botan/src/lib/modes/aead/aead.cpp:128,1
    - Dst: std::make_unique<OCB_Encryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:130,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/aead.cpp:130,1
    - Dst: std::make_unique<OCB_Decryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:132,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/aead.cpp:132,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/modes/aead/aead.cpp:138,1
    - Dst: SCAN_Name::arg_as_integer
      Src: /src/botan/src/lib/modes/aead/aead.cpp:139,1
    - Dst: auto::block_size
      Src: /src/botan/src/lib/modes/aead/aead.cpp:139,1
    - Dst: std::make_unique<EAX_Encryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:141,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/aead.cpp:141,1
    - Dst: std::make_unique<EAX_Decryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:143,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/aead.cpp:143,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/modes/aead/aead.cpp:149,1
    - Dst: std::make_unique<SIV_Encryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:151,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/aead.cpp:151,1
    - Dst: std::make_unique<SIV_Decryption>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:153,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/aead.cpp:153,1
    - Dst: std::unique_ptr<AEAD_Mode>
      Src: /src/botan/src/lib/modes/aead/aead.cpp:160,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 65
    argCount: 3
    argNames:
    - algo
    - dir
    - provider
    argTypes:
    - std::string_view
    - Cipher_Dir
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 161
    functionName: Botan::AEAD_Mode::create
    functionSourceFile: /src/botan/src/lib/modes/aead/aead.cpp
    functionUses: 27
    functionsReached:
    - std::make_unique<GCM_Decryption>
    - SCAN_Name::arg_count
    - std::ostringstream::str
    - std::make_unique<CCM_Decryption>
    - split_on
    - std::string_view::find
    - BOTAN_UNUSED
    - auto::block_size
    - parse_algorithm_name
    - SCAN_Name::arg
    - SCAN_Name::algo_name
    - std::make_unique<ChaCha20Poly1305_Decryption>
    - std::make_unique<EAX_Encryption>
    - std::make_unique<ChaCha20Poly1305_Encryption>
    - std::make_unique<SIV_Decryption>
    - std::make_unique<GCM_Encryption>
    - std::make_unique<SIV_Encryption>
    - std::vector::empty
    - Botan::AEAD_Mode::create
    - std::vector::size
    - std::unique_ptr<AEAD_Mode>
    - std::move
    - std::make_unique<EAX_Decryption>
    - std::make_unique<CCM_Encryption>
    - Botan::BlockCipher::create
    - std::make_unique<OCB_Decryption>
    - SCAN_Name::arg_as_integer
    - std::make_unique<OCB_Encryption>
    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:27,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:29,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:30,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:31,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: 32
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 32
    functionName: Botan::eax_prf
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 0
    functionsReached:
    - Botan::final
    - Botan::update
    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:27,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:29,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:30,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:31,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: 32
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 32
    functionName: Botan::eax_prf
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 0
    functionsReached:
    - Botan::final
    - Botan::update
    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:41,1
    - Dst: std::make_unique<CTR_BE>
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:42,1
    - Dst: new_object
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:42,1
    - Dst: std::make_unique<CMAC>
      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: output_length
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:44,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:45,1
    - Dst: fmt
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:45,1
    - Dst: Botan::EAX_Mode::name
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:45,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: 47
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 47
    functionName: Botan::EAX_Mode::EAX_Mode
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - fmt
    - Botan::EAX_Mode::name
    - std::make_unique<CTR_BE>
    - new_object
    - Invalid_Argument
    - output_length
    - std::make_unique<CMAC>
    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:50,1
    - 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::reset
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: Botan::EAX_Mode::clear
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 1
    functionsReached:
    - Botan::EAX_Mode::clear
    - Botan::EAX_Mode::reset
    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:57,1
    - Dst: Botan::EAX_Mode::clear
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:58,1
    - Dst: final
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 64
    functionName: Botan::EAX_Mode::reset
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 1
    functionsReached:
    - final
    - Botan::EAX_Mode::clear
    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: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::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: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    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: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::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:79,1
    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::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:83,1
    - Dst: Botan::EAX_Mode::has_keying_material
      Src: /src/botan/src/lib/modes/aead/eax/eax.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::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:94,1
    - Dst: set_key
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 96
    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:102,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:103,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:104,1
    - Dst: eax_prf
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:106,1
    - Dst: Botan::EAX_Mode::block_size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:106,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:106,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:106,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: 107
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 107
    functionName: Botan::EAX_Mode::set_associated_data_n
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - Botan::EAX_Mode::block_size
    - Invalid_State
    - eax_prf
    - BOTAN_ARG_CHECK
    - empty
    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:110,1
    - Dst: Invalid_IV_Length
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:111,1
    - Dst: Botan::EAX_Mode::name
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:111,1
    - Dst: eax_prf
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:114,1
    - Dst: Botan::EAX_Mode::block_size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:114,1
    - Dst: set_iv
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:116,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:116,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:116,1
    - Dst: Botan::EAX_Mode::block_size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:118,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:119,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 122
    functionName: Botan::EAX_Mode::start_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 0
    functionsReached:
    - Invalid_IV_Length
    - update
    - data
    - Botan::EAX_Mode::block_size
    - set_iv
    - eax_prf
    - size
    - Botan::EAX_Mode::name
    - Botan::EAX_Mode::valid_nonce_length
    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:125,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:125,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:126,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 129
    functionName: Botan::EAX_Encryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - empty
    - cipher
    - update
    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:132,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:132,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:133,1
    - Dst: final
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:135,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:136,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:136,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:138,1
    - Dst: eax_prf
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:139,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:139,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:142,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:142,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:144,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:144,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:144,1
    - Dst: clear
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 147
    functionName: Botan::EAX_Encryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 0
    functionsReached:
    - final
    - update
    - tag_size
    - eax_prf
    - clear
    - std::make_pair
    - secure_vector::size
    - empty
    - block_size
    - secure_vector::data
    - xor_buf
    - 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:150,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:150,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:151,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 154
    functionName: Botan::EAX_Decryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - cipher
    - empty
    - update
    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:157,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:157,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:158,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:158,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:159,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:160,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:162,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:162,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:164,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:167,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:168,1
    - Dst: final
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:173,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:176,1
    - Dst: eax_prf
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:177,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:177,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:182,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:182,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:182,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:184,1
    - Dst: clear
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:186,1
    - Dst: Invalid_Authentication_Tag
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:189,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 191
    functionName: Botan::EAX_Decryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 0
    functionsReached:
    - final
    - tag_size
    - update
    - Botan::CT::is_equal
    - resize
    - data
    - Invalid_Authentication_Tag
    - eax_prf
    - size
    - clear
    - BOTAN_ARG_CHECK
    - empty
    - block_size
    - secure_vector::data
    - cipher
    - 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:27,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:29,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:30,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:31,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: 32
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 32
    functionName: Botan::eax_prf
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 0
    functionsReached:
    - Botan::final
    - Botan::update
    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:27,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:29,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:30,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:31,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: 32
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 32
    functionName: Botan::eax_prf
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 0
    functionsReached:
    - Botan::final
    - Botan::update
    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:41,1
    - Dst: std::make_unique<CTR_BE>
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:42,1
    - Dst: new_object
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:42,1
    - Dst: std::make_unique<CMAC>
      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: output_length
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:44,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:45,1
    - Dst: fmt
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:45,1
    - Dst: Botan::EAX_Mode::name
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:45,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: 47
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 47
    functionName: Botan::EAX_Mode::EAX_Mode
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - fmt
    - Botan::EAX_Mode::name
    - std::make_unique<CTR_BE>
    - new_object
    - Invalid_Argument
    - output_length
    - std::make_unique<CMAC>
    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:50,1
    - 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::reset
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: Botan::EAX_Mode::clear
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 3
    functionsReached:
    - Botan::EAX_Mode::clear
    - Botan::EAX_Mode::reset
    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:57,1
    - Dst: Botan::EAX_Mode::clear
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:58,1
    - Dst: final
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 64
    functionName: Botan::EAX_Mode::reset
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 2
    functionsReached:
    - final
    - Botan::EAX_Mode::clear
    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: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::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: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    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: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::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:79,1
    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::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:83,1
    - Dst: Botan::EAX_Mode::has_keying_material
      Src: /src/botan/src/lib/modes/aead/eax/eax.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::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:94,1
    - Dst: set_key
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 96
    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:102,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:103,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:104,1
    - Dst: eax_prf
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:106,1
    - Dst: Botan::EAX_Mode::block_size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:106,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:106,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:106,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: 107
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 107
    functionName: Botan::EAX_Mode::set_associated_data_n
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - Botan::EAX_Mode::block_size
    - Invalid_State
    - eax_prf
    - BOTAN_ARG_CHECK
    - empty
    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:110,1
    - Dst: Invalid_IV_Length
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:111,1
    - Dst: Botan::EAX_Mode::name
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:111,1
    - Dst: eax_prf
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:114,1
    - Dst: Botan::EAX_Mode::block_size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:114,1
    - Dst: set_iv
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:116,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:116,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:116,1
    - Dst: Botan::EAX_Mode::block_size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:118,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:119,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 122
    functionName: Botan::EAX_Mode::start_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 0
    functionsReached:
    - Invalid_IV_Length
    - update
    - data
    - Botan::EAX_Mode::block_size
    - set_iv
    - eax_prf
    - size
    - Botan::EAX_Mode::name
    - Botan::EAX_Mode::valid_nonce_length
    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:125,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:125,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:126,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 129
    functionName: Botan::EAX_Encryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - empty
    - cipher
    - update
    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:132,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:132,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:133,1
    - Dst: final
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:135,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:136,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:136,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:138,1
    - Dst: eax_prf
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:139,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:139,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:142,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:142,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:144,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:144,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:144,1
    - Dst: clear
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 147
    functionName: Botan::EAX_Encryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 0
    functionsReached:
    - final
    - update
    - tag_size
    - eax_prf
    - clear
    - std::make_pair
    - secure_vector::size
    - empty
    - block_size
    - secure_vector::data
    - xor_buf
    - 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:150,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:150,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:151,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 154
    functionName: Botan::EAX_Decryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - cipher
    - empty
    - update
    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:157,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:157,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:158,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:158,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:159,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:160,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:162,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:162,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:164,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:167,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:168,1
    - Dst: final
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:173,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:176,1
    - Dst: eax_prf
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:177,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:177,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:182,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:182,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:182,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:184,1
    - Dst: clear
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:186,1
    - Dst: Invalid_Authentication_Tag
      Src: /src/botan/src/lib/modes/aead/eax/eax.cpp:189,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 191
    functionName: Botan::EAX_Decryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/eax/eax.cpp
    functionUses: 0
    functionsReached:
    - final
    - tag_size
    - update
    - Botan::CT::is_equal
    - resize
    - data
    - Invalid_Authentication_Tag
    - eax_prf
    - size
    - clear
    - BOTAN_ARG_CHECK
    - empty
    - block_size
    - secure_vector::data
    - cipher
    - 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:21,1
    - Dst: std::unique_ptr<BlockCipher>::block_size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:22,1
    - Dst: std::make_unique<CTR_BE>
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:23,1
    - Dst: std::unique_ptr<BlockCipher>::new_object
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:23,1
    - Dst: std::make_unique<CMAC>
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:24,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:24,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:27,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - std::unique_ptr<BlockCipher>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 29
    functionName: Botan::SIV_Mode::SIV_Mode
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<BlockCipher>::name
    - std::unique_ptr<BlockCipher>::block_size
    - std::move
    - std::make_unique<CTR_BE>
    - Invalid_Argument
    - std::unique_ptr<BlockCipher>::new_object
    - std::make_unique<CMAC>
    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: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    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:34,1
    - Dst: Botan::SIV_Mode::clear
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:35,1
    - Dst: Botan::SIV_Mode::reset
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:36,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::SIV_Mode::clear
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 1
    functionsReached:
    - Botan::SIV_Mode::reset
    - Botan::SIV_Mode::clear
    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:40,1
    - 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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    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: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    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: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    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: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    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: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    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: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    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: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::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:71,1
    - Dst: Botan::SIV_Mode::has_keying_material
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 72
    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:75,1
    - Dst: set_key
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:76,1
    - Dst: std::span<const uint8_t>::first
      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>::last
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:77,1
    - Dst: Botan::SIV_Mode::clear
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: Botan::SIV_Mode::key_schedule
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 0
    functionsReached:
    - Botan::SIV_Mode::clear
    - std::span<const uint8_t>::size
    - set_key
    - std::span<const uint8_t>::last
    - std::span<const uint8_t>::first
    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: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::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:86,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:88,1
    - Dst: Botan::SIV_Mode::name
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:88,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:88,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:91,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:92,1
    - Dst: process
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:95,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: 96
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 96
    functionName: Botan::SIV_Mode::set_associated_data_n
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 0
    functionsReached:
    - resize
    - Botan::SIV_Mode::name
    - process
    - size
    - Invalid_Argument
    - std::to_string
    - Botan::SIV_Mode::maximum_associated_data_inputs
    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:99,1
    - Dst: Invalid_IV_Length
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:100,1
    - Dst: Botan::SIV_Mode::name
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:100,1
    - Dst: process
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:104,1
    - Dst: Botan::SIV_Mode::clear
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:106,1
    - Dst: Botan::SIV_Mode::clear
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:109,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 110
    functionName: Botan::SIV_Mode::start_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 0
    functionsReached:
    - Invalid_IV_Length
    - Botan::SIV_Mode::clear
    - process
    - Botan::SIV_Mode::name
    - Botan::SIV_Mode::valid_nonce_length
    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:114,1
    - Dst: end
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: Botan::SIV_Mode::process_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 0
    functionsReached:
    - end
    - insert
    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:121,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:121,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:121,1
    - Dst: poly_double_n
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:124,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:124,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:124,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:128,1
    - Dst: poly_double_n
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:129,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:129,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:129,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:133,1
    - Dst: poly_double_n
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:134,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:134,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:134,1
    - Dst: xor_buf
      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: process
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:137,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:140,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:140,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:141,1
    - Dst: secure_vector::data
      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: block_size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:141,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:142,1
    - Dst: final
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - text
    - text_len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 145
    functionName: Botan::SIV_Mode::S2V
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 0
    functionsReached:
    - final
    - update
    - process
    - std::vector::data
    - secure_vector::size
    - empty
    - block_size
    - poly_double_n
    - xor_buf
    - secure_vector::data
    - 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:151,1
    - Dst: secure_vector<uint8_t>::data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:151,1
    - Dst: secure_vector<uint8_t>::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - V
    argTypes:
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 152
    functionName: Botan::SIV_Mode::set_ctr_iv
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 0
    functionsReached:
    - secure_vector<uint8_t>::data
    - secure_vector<uint8_t>::size
    - 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:155,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:155,1
    - Dst: insert
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:157,1
    - Dst: begin
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:157,1
    - Dst: msg_buf
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:157,1
    - Dst: msg_buf
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:157,1
    - Dst: msg_buf
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:158,1
    - Dst: S2V
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:160,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:160,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:160,1
    - Dst: insert
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:162,1
    - Dst: begin
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:162,1
    - Dst: secure_vector::begin
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:162,1
    - Dst: secure_vector::end
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:162,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:164,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:164,1
    - Dst: set_ctr_iv
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:165,1
    - Dst: ctr
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:166,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:166,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:166,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 168
    functionName: Botan::SIV_Encryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 0
    functionsReached:
    - S2V
    - data
    - ctr
    - size
    - BOTAN_ARG_CHECK
    - msg_buf
    - secure_vector::begin
    - secure_vector::size
    - secure_vector::end
    - set_ctr_iv
    - begin
    - insert
    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:171,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:171,1
    - Dst: msg_buf
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:173,1
    - Dst: insert
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:174,1
    - Dst: begin
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:174,1
    - Dst: msg_buf
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:174,1
    - Dst: msg_buf
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:174,1
    - Dst: msg_buf
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:175,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:178,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:180,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:180,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:182,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:182,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:182,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:184,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:184,1
    - Dst: set_ctr_iv
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:185,1
    - Dst: ctr
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:187,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:187,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:187,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:187,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:187,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:187,1
    - Dst: S2V
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:190,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:190,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:190,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:190,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:192,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:192,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:192,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:192,1
    - Dst: Invalid_Authentication_Tag
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:193,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:196,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:196,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:196,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 197
    functionName: Botan::SIV_Decryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::is_equal
    - tag_size
    - S2V
    - Invalid_Authentication_Tag
    - resize
    - data
    - ctr
    - size
    - BOTAN_ARG_CHECK
    - msg_buf
    - secure_vector::size
    - block_size
    - secure_vector::data
    - set_ctr_iv
    - begin
    - insert
    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:21,1
    - Dst: std::unique_ptr<BlockCipher>::block_size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:22,1
    - Dst: std::make_unique<CTR_BE>
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:23,1
    - Dst: std::unique_ptr<BlockCipher>::new_object
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:23,1
    - Dst: std::make_unique<CMAC>
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:24,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:24,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:27,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - std::unique_ptr<BlockCipher>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 29
    functionName: Botan::SIV_Mode::SIV_Mode
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<BlockCipher>::name
    - std::unique_ptr<BlockCipher>::block_size
    - std::move
    - std::make_unique<CTR_BE>
    - Invalid_Argument
    - std::unique_ptr<BlockCipher>::new_object
    - std::make_unique<CMAC>
    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: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    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:34,1
    - Dst: Botan::SIV_Mode::clear
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:35,1
    - Dst: Botan::SIV_Mode::reset
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:36,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::SIV_Mode::clear
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 5
    functionsReached:
    - Botan::SIV_Mode::reset
    - Botan::SIV_Mode::clear
    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:40,1
    - 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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    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: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    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: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    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: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    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: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    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: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    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: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::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:71,1
    - Dst: Botan::SIV_Mode::has_keying_material
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 72
    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:75,1
    - Dst: set_key
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:76,1
    - Dst: std::span<const uint8_t>::first
      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>::last
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:77,1
    - Dst: Botan::SIV_Mode::clear
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: Botan::SIV_Mode::key_schedule
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 0
    functionsReached:
    - Botan::SIV_Mode::clear
    - std::span<const uint8_t>::size
    - set_key
    - std::span<const uint8_t>::last
    - std::span<const uint8_t>::first
    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: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::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:86,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:88,1
    - Dst: Botan::SIV_Mode::name
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:88,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:88,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:91,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:92,1
    - Dst: process
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:95,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: 96
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 96
    functionName: Botan::SIV_Mode::set_associated_data_n
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 0
    functionsReached:
    - resize
    - Botan::SIV_Mode::name
    - process
    - size
    - Invalid_Argument
    - std::to_string
    - Botan::SIV_Mode::maximum_associated_data_inputs
    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:99,1
    - Dst: Invalid_IV_Length
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:100,1
    - Dst: Botan::SIV_Mode::name
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:100,1
    - Dst: process
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:104,1
    - Dst: Botan::SIV_Mode::clear
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:106,1
    - Dst: Botan::SIV_Mode::clear
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:109,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 110
    functionName: Botan::SIV_Mode::start_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 0
    functionsReached:
    - Invalid_IV_Length
    - Botan::SIV_Mode::clear
    - process
    - Botan::SIV_Mode::name
    - Botan::SIV_Mode::valid_nonce_length
    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:114,1
    - Dst: end
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: Botan::SIV_Mode::process_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 0
    functionsReached:
    - end
    - insert
    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:121,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:121,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:121,1
    - Dst: poly_double_n
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:124,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:124,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:124,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:128,1
    - Dst: poly_double_n
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:129,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:129,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:129,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:133,1
    - Dst: poly_double_n
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:134,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:134,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:134,1
    - Dst: xor_buf
      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: process
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:137,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:140,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:140,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:141,1
    - Dst: secure_vector::data
      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: block_size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:141,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:142,1
    - Dst: final
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 2
    argNames:
    - text
    - text_len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 145
    functionName: Botan::SIV_Mode::S2V
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 0
    functionsReached:
    - final
    - update
    - process
    - std::vector::data
    - secure_vector::size
    - empty
    - block_size
    - poly_double_n
    - xor_buf
    - secure_vector::data
    - 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:151,1
    - Dst: secure_vector<uint8_t>::data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:151,1
    - Dst: secure_vector<uint8_t>::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - V
    argTypes:
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 152
    functionName: Botan::SIV_Mode::set_ctr_iv
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 0
    functionsReached:
    - secure_vector<uint8_t>::data
    - secure_vector<uint8_t>::size
    - 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:155,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:155,1
    - Dst: insert
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:157,1
    - Dst: begin
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:157,1
    - Dst: msg_buf
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:157,1
    - Dst: msg_buf
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:157,1
    - Dst: msg_buf
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:158,1
    - Dst: S2V
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:160,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:160,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:160,1
    - Dst: insert
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:162,1
    - Dst: begin
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:162,1
    - Dst: secure_vector::begin
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:162,1
    - Dst: secure_vector::end
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:162,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:164,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:164,1
    - Dst: set_ctr_iv
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:165,1
    - Dst: ctr
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:166,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:166,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:166,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 168
    functionName: Botan::SIV_Encryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 0
    functionsReached:
    - S2V
    - data
    - ctr
    - size
    - BOTAN_ARG_CHECK
    - msg_buf
    - secure_vector::begin
    - secure_vector::size
    - secure_vector::end
    - set_ctr_iv
    - begin
    - insert
    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:171,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:171,1
    - Dst: msg_buf
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:173,1
    - Dst: insert
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:174,1
    - Dst: begin
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:174,1
    - Dst: msg_buf
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:174,1
    - Dst: msg_buf
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:174,1
    - Dst: msg_buf
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:175,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:178,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:180,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:180,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:182,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:182,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:182,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:184,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:184,1
    - Dst: set_ctr_iv
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:185,1
    - Dst: ctr
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:187,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:187,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:187,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:187,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:187,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:187,1
    - Dst: S2V
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:190,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:190,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:190,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:190,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:192,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:192,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:192,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:192,1
    - Dst: Invalid_Authentication_Tag
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:193,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:196,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:196,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/siv/siv.cpp:196,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 197
    functionName: Botan::SIV_Decryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/siv/siv.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::is_equal
    - tag_size
    - S2V
    - Invalid_Authentication_Tag
    - resize
    - data
    - ctr
    - size
    - BOTAN_ARG_CHECK
    - msg_buf
    - secure_vector::size
    - block_size
    - secure_vector::data
    - set_ctr_iv
    - begin
    - insert
    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:
    - tag_size
    - BOTAN_ASSERT
    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: 18
    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:25,1
    - Dst: std::unique_ptr<BlockCipher>::block_size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:26,1
    - Dst: Invalid_Argument
      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:33,1
    - Dst: fmt
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:33,1
    - Dst: Botan::GCM_Mode::name
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:33,1
    - Dst: std::make_unique<CTR_BE>
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:36,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:36,1
    - Dst: std::make_unique<GHASH>
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:37,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: 38
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 38
    functionName: Botan::GCM_Mode::GCM_Mode
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<BlockCipher>::name
    - std::unique_ptr<BlockCipher>::block_size
    - std::move
    - std::make_unique<GHASH>
    - std::make_unique<CTR_BE>
    - Invalid_Argument
    - Botan::GCM_Mode::name
    - fmt
    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: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    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:43,1
    - Dst: Botan::GCM_Mode::clear
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:44,1
    - Dst: Botan::GCM_Mode::reset
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: Botan::GCM_Mode::clear
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 1
    functionsReached:
    - Botan::GCM_Mode::reset
    - Botan::GCM_Mode::clear
    linkageType: ''
    returnType: void
    signature: void GCM_Mode::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::GCM_Mode::reset
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.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::GCM_Mode::reset
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 2
    functionsReached:
    - Botan::GCM_Mode::reset
    linkageType: ''
    returnType: void
    signature: void GCM_Mode::reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:53,1
    - Dst: Botan::GCM_Mode::tag_size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.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::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:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    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: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    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: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: 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: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    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: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::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:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 79
    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:82,1
    - Dst: set_iv
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:85,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:85,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:85,1
    - Dst: encipher
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:88,1
    - Dst: set_key
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 90
    functionName: Botan::GCM_Mode::key_schedule
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 0
    functionsReached:
    - set_iv
    - encipher
    - std::vector::data
    - set_key
    - std::vector::size
    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:93,1
    - Dst: set_associated_data
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:94,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: 95
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 95
    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:98,1
    - Dst: Invalid_IV_Length
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:99,1
    - Dst: Botan::GCM_Mode::name
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:99,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:102,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:103,1
    - Dst: clear_mem
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:106,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:106,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:106,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:109,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:109,1
    - Dst: nonce_hash
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:112,1
    - Dst: std::span<uint8_t, GCM_BS>
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:112,1
    - Dst: set_iv
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:115,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:115,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:115,1
    - Dst: clear_mem
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:117,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:117,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:117,1
    - Dst: encipher
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:118,1
    - Dst: start
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:120,1
    - Dst: clear_mem
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:121,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:121,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 122
    functionName: Botan::GCM_Mode::start_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 0
    functionsReached:
    - start
    - Invalid_IV_Length
    - resize
    - data
    - clear_mem
    - std::span<uint8_t, GCM_BS>
    - copy_mem
    - size
    - nonce_hash
    - set_iv
    - encipher
    - Botan::GCM_Mode::valid_nonce_length
    - 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:125,1
    - Dst: update_granularity
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:125,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:126,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 129
    functionName: Botan::GCM_Encryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 0
    functionsReached:
    - update
    - update_granularity
    - BOTAN_ARG_CHECK
    - 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:132,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:132,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:133,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:134,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:136,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:137,1
    - Dst: final
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:140,1
    - Dst: std::span
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:140,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:140,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:141,1
    - Dst: std::array::data
      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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 142
    functionName: Botan::GCM_Encryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 0
    functionsReached:
    - final
    - update
    - tag_size
    - std::array::data
    - data
    - size
    - std::make_pair
    - BOTAN_ARG_CHECK
    - cipher
    - std::span
    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:145,1
    - Dst: update_granularity
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:145,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:146,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 149
    functionName: Botan::GCM_Decryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 0
    functionsReached:
    - update
    - update_granularity
    - BOTAN_ARG_CHECK
    - 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:152,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:152,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:153,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:154,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:156,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:156,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:158,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:162,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:163,1
    - Dst: final
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:167,1
    - Dst: std::span
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:167,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:167,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:171,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:171,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:171,1
    - Dst: Invalid_Authentication_Tag
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:172,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:175,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 176
    functionName: Botan::GCM_Decryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 0
    functionsReached:
    - final
    - tag_size
    - update
    - Botan::CT::is_equal
    - std::array::data
    - data
    - Invalid_Authentication_Tag
    - resize
    - size
    - BOTAN_ARG_CHECK
    - cipher
    - std::span
    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:25,1
    - Dst: std::unique_ptr<BlockCipher>::block_size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:26,1
    - Dst: Invalid_Argument
      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:33,1
    - Dst: fmt
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:33,1
    - Dst: Botan::GCM_Mode::name
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:33,1
    - Dst: std::make_unique<CTR_BE>
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:36,1
    - Dst: std::move
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:36,1
    - Dst: std::make_unique<GHASH>
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:37,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: 38
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 38
    functionName: Botan::GCM_Mode::GCM_Mode
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<BlockCipher>::name
    - std::unique_ptr<BlockCipher>::block_size
    - std::move
    - std::make_unique<GHASH>
    - std::make_unique<CTR_BE>
    - Invalid_Argument
    - Botan::GCM_Mode::name
    - fmt
    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: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    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:43,1
    - Dst: Botan::GCM_Mode::clear
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:44,1
    - Dst: Botan::GCM_Mode::reset
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: Botan::GCM_Mode::clear
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 2
    functionsReached:
    - Botan::GCM_Mode::reset
    - Botan::GCM_Mode::clear
    linkageType: ''
    returnType: void
    signature: void GCM_Mode::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::GCM_Mode::reset
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.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::GCM_Mode::reset
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 4
    functionsReached:
    - Botan::GCM_Mode::reset
    linkageType: ''
    returnType: void
    signature: void GCM_Mode::reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:53,1
    - Dst: Botan::GCM_Mode::tag_size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.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::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:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    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: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    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: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: 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: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    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: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::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:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 79
    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:82,1
    - Dst: set_iv
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:85,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:85,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:85,1
    - Dst: encipher
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:88,1
    - Dst: set_key
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 90
    functionName: Botan::GCM_Mode::key_schedule
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 0
    functionsReached:
    - set_iv
    - encipher
    - std::vector::data
    - set_key
    - std::vector::size
    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:93,1
    - Dst: set_associated_data
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:94,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: 95
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 95
    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:98,1
    - Dst: Invalid_IV_Length
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:99,1
    - Dst: Botan::GCM_Mode::name
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:99,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:102,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:103,1
    - Dst: clear_mem
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:106,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:106,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:106,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:109,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:109,1
    - Dst: nonce_hash
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:112,1
    - Dst: std::span<uint8_t, GCM_BS>
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:112,1
    - Dst: set_iv
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:115,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:115,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:115,1
    - Dst: clear_mem
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:117,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:117,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:117,1
    - Dst: encipher
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:118,1
    - Dst: start
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:120,1
    - Dst: clear_mem
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:121,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:121,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 122
    functionName: Botan::GCM_Mode::start_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 0
    functionsReached:
    - start
    - Invalid_IV_Length
    - resize
    - data
    - clear_mem
    - std::span<uint8_t, GCM_BS>
    - copy_mem
    - size
    - nonce_hash
    - set_iv
    - encipher
    - Botan::GCM_Mode::valid_nonce_length
    - 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:125,1
    - Dst: update_granularity
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:125,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:126,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 129
    functionName: Botan::GCM_Encryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 0
    functionsReached:
    - update
    - update_granularity
    - BOTAN_ARG_CHECK
    - 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:132,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:132,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:133,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:134,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:136,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:137,1
    - Dst: final
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:140,1
    - Dst: std::span
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:140,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:140,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:141,1
    - Dst: std::array::data
      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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 142
    functionName: Botan::GCM_Encryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 0
    functionsReached:
    - final
    - update
    - tag_size
    - std::array::data
    - data
    - size
    - std::make_pair
    - BOTAN_ARG_CHECK
    - cipher
    - std::span
    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:145,1
    - Dst: update_granularity
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:145,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:146,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 149
    functionName: Botan::GCM_Decryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 0
    functionsReached:
    - update
    - update_granularity
    - BOTAN_ARG_CHECK
    - 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:152,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:152,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:153,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:154,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:156,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:156,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:158,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:162,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:163,1
    - Dst: final
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:167,1
    - Dst: std::span
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:167,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:167,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:171,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:171,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:171,1
    - Dst: Invalid_Authentication_Tag
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:172,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/gcm/gcm.cpp:175,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 176
    functionName: Botan::GCM_Decryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/gcm/gcm.cpp
    functionUses: 0
    functionsReached:
    - final
    - tag_size
    - update
    - Botan::CT::is_equal
    - std::array::data
    - data
    - Invalid_Authentication_Tag
    - resize
    - size
    - BOTAN_ARG_CHECK
    - cipher
    - std::span
    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:17,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:17,1
    - Dst: Algorithm_Not_Found
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:19,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 21
    functionName: Botan::ChaCha20Poly1305_Mode::ChaCha20Poly1305_Mode
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 0
    functionsReached:
    - Botan::StreamCipher::create
    - Botan::MessageAuthenticationCode::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: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    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: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    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: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    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:36,1
    - Dst: Botan::ChaCha20Poly1305_Mode::clear
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:37,1
    - Dst: Botan::ChaCha20Poly1305_Mode::reset
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: Botan::ChaCha20Poly1305_Mode::clear
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 1
    functionsReached:
    - Botan::ChaCha20Poly1305_Mode::clear
    - Botan::ChaCha20Poly1305_Mode::reset
    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:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 45
    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: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::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:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 53
    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:56,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:58,1
    - Dst: assign
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:60,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:60,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:60,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: 61
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: Botan::ChaCha20Poly1305_Mode::set_associated_data_n
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 0
    functionsReached:
    - assign
    - Invalid_State
    - BOTAN_ARG_CHECK
    - std::span<const uint8_t>::begin
    - 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:65,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:65,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: Botan::ChaCha20Poly1305_Mode::update_len
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint64_t>
    - update
    - store_le
    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:70,1
    - Dst: Invalid_IV_Length
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:71,1
    - Dst: Botan::ChaCha20Poly1305_Mode::name
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:71,1
    - Dst: set_iv
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:77,1
    - Dst: write_keystream
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:80,1
    - Dst: set_key
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:82,1
    - Dst: secure_scrub_memory
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:84,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:86,1
    - Dst: Botan::ChaCha20Poly1305_Mode::cfrg_version
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:88,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:89,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:91,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:91,1
    - Dst: Botan::ChaCha20Poly1305_Mode::update_len
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:94,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:94,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 96
    functionName: Botan::ChaCha20Poly1305_Mode::start_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 0
    functionsReached:
    - Invalid_IV_Length
    - update
    - set_iv
    - Botan::ChaCha20Poly1305_Mode::valid_nonce_length
    - size
    - set_key
    - write_keystream
    - secure_scrub_memory
    - Botan::ChaCha20Poly1305_Mode::cfrg_version
    - Botan::ChaCha20Poly1305_Mode::name
    - Botan::ChaCha20Poly1305_Mode::update_len
    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:99,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: Botan::ChaCha20Poly1305_Encryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 0
    functionsReached:
    - update
    - cipher1
    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:106,1
    - Dst: cfrg_version
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:107,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:110,1
    - Dst: update_len
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:112,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:112,1
    - Dst: update_len
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:114,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:116,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:116,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:116,1
    - Dst: final
      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
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 120
    functionName: Botan::ChaCha20Poly1305_Encryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 0
    functionsReached:
    - final
    - update
    - resize
    - tag_size
    - cfrg_version
    - size
    - update_len
    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:123,1
    - Dst: cipher1
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 127
    functionName: Botan::ChaCha20Poly1305_Decryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 0
    functionsReached:
    - update
    - cipher1
    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:130,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:130,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:131,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:132,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:134,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:134,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:136,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:139,1
    - Dst: cipher1
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:140,1
    - Dst: cfrg_version
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:144,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:147,1
    - Dst: update_len
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:149,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:149,1
    - Dst: update_len
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:152,1
    - Dst: final
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:155,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:162,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:162,1
    - Dst: Invalid_Authentication_Tag
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:163,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:165,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 166
    functionName: Botan::ChaCha20Poly1305_Decryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 0
    functionsReached:
    - final
    - tag_size
    - update
    - cipher1
    - Botan::CT::is_equal
    - data
    - Invalid_Authentication_Tag
    - resize
    - cfrg_version
    - size
    - BOTAN_ARG_CHECK
    - 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:17,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:17,1
    - Dst: Algorithm_Not_Found
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:19,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 21
    functionName: Botan::ChaCha20Poly1305_Mode::ChaCha20Poly1305_Mode
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 0
    functionsReached:
    - Botan::StreamCipher::create
    - Botan::MessageAuthenticationCode::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: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    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: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    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: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    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:36,1
    - Dst: Botan::ChaCha20Poly1305_Mode::clear
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:37,1
    - Dst: Botan::ChaCha20Poly1305_Mode::reset
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: Botan::ChaCha20Poly1305_Mode::clear
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 3
    functionsReached:
    - Botan::ChaCha20Poly1305_Mode::clear
    - Botan::ChaCha20Poly1305_Mode::reset
    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:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 45
    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: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::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:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 53
    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:56,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:58,1
    - Dst: assign
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:60,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:60,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:60,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: 61
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 61
    functionName: Botan::ChaCha20Poly1305_Mode::set_associated_data_n
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 0
    functionsReached:
    - assign
    - Invalid_State
    - BOTAN_ARG_CHECK
    - std::span<const uint8_t>::begin
    - 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:65,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:65,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 67
    functionName: Botan::ChaCha20Poly1305_Mode::update_len
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 1
    functionsReached:
    - static_cast<uint64_t>
    - update
    - store_le
    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:70,1
    - Dst: Invalid_IV_Length
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:71,1
    - Dst: Botan::ChaCha20Poly1305_Mode::name
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:71,1
    - Dst: set_iv
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:77,1
    - Dst: write_keystream
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:80,1
    - Dst: set_key
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:82,1
    - Dst: secure_scrub_memory
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:84,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:86,1
    - Dst: Botan::ChaCha20Poly1305_Mode::cfrg_version
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:88,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:89,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:91,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:91,1
    - Dst: Botan::ChaCha20Poly1305_Mode::update_len
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:94,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:94,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 96
    functionName: Botan::ChaCha20Poly1305_Mode::start_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 0
    functionsReached:
    - Invalid_IV_Length
    - update
    - set_iv
    - Botan::ChaCha20Poly1305_Mode::valid_nonce_length
    - size
    - set_key
    - write_keystream
    - secure_scrub_memory
    - Botan::ChaCha20Poly1305_Mode::cfrg_version
    - Botan::ChaCha20Poly1305_Mode::name
    - Botan::ChaCha20Poly1305_Mode::update_len
    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:99,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: Botan::ChaCha20Poly1305_Encryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 0
    functionsReached:
    - update
    - cipher1
    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:106,1
    - Dst: cfrg_version
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:107,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:110,1
    - Dst: update_len
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:112,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:112,1
    - Dst: update_len
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:114,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:116,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:116,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:116,1
    - Dst: final
      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
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 120
    functionName: Botan::ChaCha20Poly1305_Encryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 0
    functionsReached:
    - final
    - update
    - resize
    - tag_size
    - cfrg_version
    - size
    - update_len
    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:123,1
    - Dst: cipher1
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 127
    functionName: Botan::ChaCha20Poly1305_Decryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 0
    functionsReached:
    - update
    - cipher1
    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:130,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:130,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:131,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:132,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:134,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:134,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:136,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:139,1
    - Dst: cipher1
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:140,1
    - Dst: cfrg_version
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:144,1
    - Dst: update
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:147,1
    - Dst: update_len
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:149,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:149,1
    - Dst: update_len
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:152,1
    - Dst: final
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:155,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:162,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:162,1
    - Dst: Invalid_Authentication_Tag
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:163,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp:165,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 166
    functionName: Botan::ChaCha20Poly1305_Decryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/chacha20poly1305/chacha20poly1305.cpp
    functionUses: 0
    functionsReached:
    - final
    - tag_size
    - update
    - cipher1
    - Botan::CT::is_equal
    - data
    - Invalid_Authentication_Tag
    - resize
    - cfrg_version
    - size
    - BOTAN_ARG_CHECK
    - update_len
    linkageType: ''
    returnType: void
    signature: void ChaCha20Poly1305_Decryption::finish_msg(secure_vector<uint8_t>&
      buffer, size_t offset)
  - 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:
    - tag_size
    - BOTAN_ASSERT
    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: 18
    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:23,1
    - Dst: parallel_bytes
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:23,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:24,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:25,1
    - Dst: Botan::L_computer::poly_double
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:26,1
    - Dst: star
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:26,1
    - Dst: reserve
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:37,1
    - Dst: push_back
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:38,1
    - Dst: Botan::L_computer::poly_double
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:38,1
    - Dst: dollar
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:38,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:40,1
    - Dst: push_back
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:41,1
    - Dst: Botan::L_computer::poly_double
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:41,1
    - Dst: back
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:41,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' cipher'
    argTypes:
    - BlockCipher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 45
    functionName: Botan::L_computer::L_computer
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - Botan::L_computer::poly_double
    - resize
    - reserve
    - dollar
    - parallel_bytes
    - size
    - encrypt
    - push_back
    - block_size
    - star
    - back
    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: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    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: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::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: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    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: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    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: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    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:58,1
    - Dst: push_back
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:59,1
    - Dst: Botan::poly_double
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:59,1
    - Dst: back
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: '& get(size_t i) const'
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - Botan::poly_double
    - push_back
    - Botan::size
    - 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:66,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:68,1
    - Dst: get
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:71,1
    - Dst: get
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:72,1
    - Dst: var_ctz32
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:79,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:79,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:81,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:81,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:81,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:84,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:84,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:87,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:87,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:87,1
    - Dst: copy_mem
      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: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:91,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:91,1
    - Dst: get
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:91,1
    - Dst: copy_mem
      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: var_ctz32
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:100,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:100,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:101,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:101,1
    - Dst: get
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:101,1
    - Dst: copy_mem
      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: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 2
    argNames:
    - block_index
    - blocks
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 107
    functionName: Botan::L_computer::compute_offsets
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - data
    - copy_mem
    - var_ctz32
    - get
    - xor_buf
    - BOTAN_ASSERT
    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:111,1
    - Dst: poly_double_n
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:112,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:112,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:112,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: Botan::L_computer::poly_double
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 1
    functionsReached:
    - data
    - size
    - secure_vector::size
    - poly_double_n
    - 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:129,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:140,1
    - Dst: Botan::var_ctz32
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:140,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:140,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:142,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:142,1
    - Dst: Botan::encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:143,1
    - Dst: star
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:148,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:150,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:150,1
    - Dst: Botan::encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:152,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: 157
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 157
    functionName: Botan::ocb_hash
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - Botan::block_size
    - Botan::xor_buf
    - Botan::var_ctz32
    - secure_vector::data
    - Botan::get
    - Botan::encrypt
    - star
    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:129,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:140,1
    - Dst: Botan::var_ctz32
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:140,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:140,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:142,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:142,1
    - Dst: Botan::encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:143,1
    - Dst: star
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:148,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:150,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:150,1
    - Dst: Botan::encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:152,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: 157
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 157
    functionName: Botan::ocb_hash
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - Botan::block_size
    - Botan::xor_buf
    - Botan::var_ctz32
    - secure_vector::data
    - Botan::get
    - Botan::encrypt
    - star
    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:162,1
    - Dst: parallel_bytes
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:163,1
    - Dst: block_size
      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:166,1
    - Dst: parallel_bytes
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:167,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:168,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:175,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:177,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: 179
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 179
    functionName: Botan::OCB_Mode::OCB_Mode
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - block_size
    - BOTAN_ARG_CHECK
    - parallel_bytes
    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: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    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:184,1
    - Dst: Botan::OCB_Mode::reset
      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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: Botan::OCB_Mode::clear
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 1
    functionsReached:
    - Botan::OCB_Mode::reset
    - Botan::OCB_Mode::clear
    linkageType: ''
    returnType: void
    signature: void OCB_Mode::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zeroise
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:191,1
    - Dst: zeroise
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:192,1
    - Dst: Botan::OCB_Mode::clear
      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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 195
    functionName: Botan::OCB_Mode::reset
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 1
    functionsReached:
    - zeroise
    - Botan::OCB_Mode::clear
    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:201,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 206
    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:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 210
    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:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 214
    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:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 218
    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:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 222
    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:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 226
    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:229,1
    - Dst: std::make_unique<L_computer>
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 231
    functionName: Botan::OCB_Mode::key_schedule
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - set_key
    - std::make_unique<L_computer>
    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:234,1
    - Dst: assert_key_material_set
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:235,1
    - Dst: ocb_hash
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:236,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:236,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:236,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: 237
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 237
    functionName: Botan::OCB_Mode::set_associated_data_n
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - ocb_hash
    - BOTAN_ARG_CHECK
    - assert_key_material_set
    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:240,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:242,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:247,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:247,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:249,1
    - Dst: clear_mem
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:250,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:250,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:250,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:252,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:253,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:253,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:265,1
    - Dst: push_back
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:289,1
    - Dst: push_back
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:293,1
    - Dst: push_back
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:297,1
    - Dst: push_back
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:301,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:312,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:312,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:314,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 321
    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
    - static_cast<uint16_t>
    - tag_size
    - data
    - clear_mem
    - copy_mem
    - size
    - static_cast<uint8_t>
    - encrypt
    - push_back
    - block_size
    - BOTAN_ASSERT
    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:324,1
    - Dst: Invalid_IV_Length
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:325,1
    - Dst: Botan::OCB_Mode::name
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:325,1
    - Dst: assert_key_material_set
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:328,1
    - Dst: init
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:330,1
    - Dst: update_nonce
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:330,1
    - Dst: zeroise
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:331,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 333
    functionName: Botan::OCB_Mode::start_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - Invalid_IV_Length
    - Botan::OCB_Mode::valid_nonce_length
    - Botan::OCB_Mode::name
    - update_nonce
    - init
    - zeroise
    - assert_key_material_set
    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:336,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:337,1
    - Dst: initialized
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:337,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:339,1
    - Dst: min
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:342,1
    - Dst: par_blocks
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:342,1
    - Dst: compute_offsets
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:345,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:347,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:347,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:349,1
    - Dst: encrypt_n
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:350,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - buffer
    - blocks
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 357
    functionName: Botan::OCB_Encryption::encrypt
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - data
    - min
    - par_blocks
    - compute_offsets
    - initialized
    - encrypt_n
    - block_size
    - xor_buf
    - BOTAN_STATE_CHECK
    - assert_key_material_set
    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:360,1
    - Dst: update_granularity
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:360,1
    - Dst: Botan::OCB_Encryption::encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:361,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 363
    functionName: Botan::OCB_Encryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - block_size
    - Botan::OCB_Encryption::encrypt
    - update_granularity
    - BOTAN_ARG_CHECK
    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:366,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:367,1
    - Dst: initialized
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:367,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:369,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:371,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:371,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:372,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:373,1
    - Dst: Botan::OCB_Encryption::encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:381,1
    - Dst: offset
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:382,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:385,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:388,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:388,1
    - Dst: star
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:392,1
    - Dst: Botan::OCB_Encryption::encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:395,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:396,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:396,1
    - Dst: offset
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:399,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:405,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:406,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:406,1
    - Dst: data
      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:409,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:409,1
    - Dst: dollar
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:409,1
    - Dst: Botan::OCB_Encryption::encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:410,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:411,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:411,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:411,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:413,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:413,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:413,1
    - Dst: zeroise
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:415,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 417
    functionName: Botan::OCB_Encryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - offset
    - tag_size
    - data
    - dollar
    - size
    - std::make_pair
    - BOTAN_ARG_CHECK
    - initialized
    - block_size
    - Botan::OCB_Encryption::encrypt
    - secure_vector::data
    - xor_buf
    - zeroise
    - BOTAN_STATE_CHECK
    - BOTAN_ASSERT
    - star
    - assert_key_material_set
    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:420,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:421,1
    - Dst: initialized
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:421,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:423,1
    - Dst: min
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:426,1
    - Dst: par_blocks
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:426,1
    - Dst: compute_offsets
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:429,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:431,1
    - Dst: decrypt_n
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:432,1
    - Dst: xor_buf
      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:435,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - buffer
    - blocks
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 441
    functionName: Botan::OCB_Decryption::decrypt
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - decrypt_n
    - data
    - min
    - par_blocks
    - compute_offsets
    - initialized
    - block_size
    - xor_buf
    - BOTAN_STATE_CHECK
    - assert_key_material_set
    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:444,1
    - Dst: update_granularity
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:444,1
    - Dst: Botan::OCB_Decryption::decrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:445,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 447
    functionName: Botan::OCB_Decryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - Botan::OCB_Decryption::decrypt
    - block_size
    - update_granularity
    - BOTAN_ARG_CHECK
    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:450,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:451,1
    - Dst: initialized
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:451,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:453,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:455,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:455,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:456,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:457,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:459,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:459,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:461,1
    - Dst: Botan::OCB_Decryption::decrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:469,1
    - Dst: offset
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:470,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:473,1
    - Dst: star
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:477,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:479,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:480,1
    - Dst: secure_vector::data
      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:482,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:482,1
    - Dst: offset
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:486,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:492,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:493,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:493,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:493,1
    - Dst: dollar
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:496,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:497,1
    - Dst: zeroise
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:501,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:507,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:507,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:507,1
    - Dst: Invalid_Authentication_Tag
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:508,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:512,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 513
    functionName: Botan::OCB_Decryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - offset
    - Botan::CT::is_equal
    - resize
    - BOTAN_ARG_CHECK
    - initialized
    - block_size
    - assert_key_material_set
    - Invalid_Authentication_Tag
    - data
    - encrypt
    - zeroise
    - BOTAN_STATE_CHECK
    - star
    - xor_buf
    - BOTAN_ASSERT
    - tag_size
    - dollar
    - size
    - Botan::OCB_Decryption::decrypt
    - secure_vector::data
    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:23,1
    - Dst: parallel_bytes
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:23,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:24,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:25,1
    - Dst: Botan::L_computer::poly_double
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:26,1
    - Dst: star
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:26,1
    - Dst: reserve
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:37,1
    - Dst: push_back
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:38,1
    - Dst: Botan::L_computer::poly_double
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:38,1
    - Dst: dollar
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:38,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:40,1
    - Dst: push_back
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:41,1
    - Dst: Botan::L_computer::poly_double
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:41,1
    - Dst: back
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:41,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' cipher'
    argTypes:
    - BlockCipher
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 45
    functionName: Botan::L_computer::L_computer
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - Botan::L_computer::poly_double
    - resize
    - reserve
    - dollar
    - parallel_bytes
    - size
    - encrypt
    - push_back
    - block_size
    - star
    - back
    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: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    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: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::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: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    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: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    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: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    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:58,1
    - Dst: push_back
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:59,1
    - Dst: poly_double
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:59,1
    - Dst: back
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: '& get(size_t i) const'
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - size
    - back
    - poly_double
    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:66,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:68,1
    - Dst: get
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:71,1
    - Dst: get
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:72,1
    - Dst: var_ctz32
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:79,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:79,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:81,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:81,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:81,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:84,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:84,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:87,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:87,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:87,1
    - Dst: copy_mem
      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: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:91,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:91,1
    - Dst: get
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:91,1
    - Dst: copy_mem
      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: var_ctz32
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:100,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:100,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:101,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:101,1
    - Dst: get
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:101,1
    - Dst: copy_mem
      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: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:106,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 2
    argNames:
    - block_index
    - blocks
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 107
    functionName: Botan::L_computer::compute_offsets
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - data
    - copy_mem
    - var_ctz32
    - get
    - xor_buf
    - BOTAN_ASSERT
    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:111,1
    - Dst: poly_double_n
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:112,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:112,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:112,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' in'
    argTypes:
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: Botan::L_computer::poly_double
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 2
    functionsReached:
    - data
    - size
    - secure_vector::size
    - poly_double_n
    - 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:129,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:140,1
    - Dst: Botan::var_ctz32
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:140,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:140,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:142,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:142,1
    - Dst: Botan::encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:143,1
    - Dst: star
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:148,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:150,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:150,1
    - Dst: Botan::encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:152,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: 157
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 157
    functionName: Botan::ocb_hash
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - Botan::block_size
    - Botan::xor_buf
    - Botan::var_ctz32
    - secure_vector::data
    - Botan::get
    - Botan::encrypt
    - star
    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:129,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:140,1
    - Dst: Botan::var_ctz32
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:140,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:140,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:142,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:142,1
    - Dst: Botan::encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:143,1
    - Dst: star
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:148,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:150,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:150,1
    - Dst: Botan::encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:152,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: 157
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 157
    functionName: Botan::ocb_hash
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - Botan::block_size
    - Botan::xor_buf
    - Botan::var_ctz32
    - secure_vector::data
    - Botan::get
    - Botan::encrypt
    - star
    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:162,1
    - Dst: parallel_bytes
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:163,1
    - Dst: block_size
      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:166,1
    - Dst: parallel_bytes
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:167,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:168,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:175,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:177,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: 179
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 179
    functionName: Botan::OCB_Mode::OCB_Mode
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - block_size
    - BOTAN_ARG_CHECK
    - parallel_bytes
    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: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    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:184,1
    - Dst: Botan::OCB_Mode::reset
      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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: Botan::OCB_Mode::clear
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 3
    functionsReached:
    - Botan::OCB_Mode::reset
    - Botan::OCB_Mode::clear
    linkageType: ''
    returnType: void
    signature: void OCB_Mode::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: zeroise
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:191,1
    - Dst: zeroise
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:192,1
    - Dst: Botan::OCB_Mode::clear
      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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 195
    functionName: Botan::OCB_Mode::reset
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 2
    functionsReached:
    - zeroise
    - Botan::OCB_Mode::clear
    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:201,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 206
    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:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 210
    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:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 214
    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:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 218
    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:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 222
    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:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 226
    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:229,1
    - Dst: std::make_unique<L_computer>
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 231
    functionName: Botan::OCB_Mode::key_schedule
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - set_key
    - std::make_unique<L_computer>
    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:234,1
    - Dst: assert_key_material_set
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:235,1
    - Dst: ocb_hash
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:236,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:236,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:236,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: 237
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 237
    functionName: Botan::OCB_Mode::set_associated_data_n
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - ocb_hash
    - BOTAN_ARG_CHECK
    - assert_key_material_set
    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:240,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:242,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:247,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:247,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:249,1
    - Dst: clear_mem
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:250,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:250,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:250,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:252,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:253,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:253,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:265,1
    - Dst: push_back
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:289,1
    - Dst: push_back
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:293,1
    - Dst: push_back
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:297,1
    - Dst: push_back
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:301,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:312,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:312,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:314,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 321
    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
    - static_cast<uint16_t>
    - tag_size
    - data
    - clear_mem
    - copy_mem
    - size
    - static_cast<uint8_t>
    - encrypt
    - push_back
    - block_size
    - BOTAN_ASSERT
    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:324,1
    - Dst: Invalid_IV_Length
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:325,1
    - Dst: Botan::OCB_Mode::name
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:325,1
    - Dst: assert_key_material_set
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:328,1
    - Dst: init
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:330,1
    - Dst: update_nonce
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:330,1
    - Dst: zeroise
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:331,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 333
    functionName: Botan::OCB_Mode::start_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - Invalid_IV_Length
    - Botan::OCB_Mode::valid_nonce_length
    - Botan::OCB_Mode::name
    - update_nonce
    - init
    - zeroise
    - assert_key_material_set
    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:336,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:337,1
    - Dst: initialized
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:337,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:339,1
    - Dst: min
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:342,1
    - Dst: par_blocks
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:342,1
    - Dst: compute_offsets
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:345,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:347,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:347,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:349,1
    - Dst: encrypt_n
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:350,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:351,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - buffer
    - blocks
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 357
    functionName: Botan::OCB_Encryption::encrypt
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 2
    functionsReached:
    - data
    - min
    - par_blocks
    - compute_offsets
    - initialized
    - encrypt_n
    - block_size
    - xor_buf
    - BOTAN_STATE_CHECK
    - assert_key_material_set
    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:360,1
    - Dst: update_granularity
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:360,1
    - Dst: Botan::OCB_Encryption::encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:361,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 363
    functionName: Botan::OCB_Encryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - block_size
    - Botan::OCB_Encryption::encrypt
    - update_granularity
    - BOTAN_ARG_CHECK
    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:366,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:367,1
    - Dst: initialized
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:367,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:369,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:371,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:371,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:372,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:373,1
    - Dst: Botan::OCB_Encryption::encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:381,1
    - Dst: offset
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:382,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:385,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:388,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:388,1
    - Dst: star
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:392,1
    - Dst: Botan::OCB_Encryption::encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:395,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:396,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:396,1
    - Dst: offset
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:399,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:405,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:406,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:406,1
    - Dst: data
      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:409,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:409,1
    - Dst: dollar
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:409,1
    - Dst: Botan::OCB_Encryption::encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:410,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:411,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:411,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:411,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:413,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:413,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:413,1
    - Dst: zeroise
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:415,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 417
    functionName: Botan::OCB_Encryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - offset
    - tag_size
    - data
    - dollar
    - size
    - std::make_pair
    - BOTAN_ARG_CHECK
    - initialized
    - block_size
    - Botan::OCB_Encryption::encrypt
    - secure_vector::data
    - xor_buf
    - zeroise
    - BOTAN_STATE_CHECK
    - BOTAN_ASSERT
    - star
    - assert_key_material_set
    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:420,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:421,1
    - Dst: initialized
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:421,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:423,1
    - Dst: min
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:426,1
    - Dst: par_blocks
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:426,1
    - Dst: compute_offsets
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:429,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:431,1
    - Dst: decrypt_n
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:432,1
    - Dst: xor_buf
      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:435,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:435,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - buffer
    - blocks
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 441
    functionName: Botan::OCB_Decryption::decrypt
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 2
    functionsReached:
    - decrypt_n
    - data
    - min
    - par_blocks
    - compute_offsets
    - initialized
    - block_size
    - xor_buf
    - BOTAN_STATE_CHECK
    - assert_key_material_set
    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:444,1
    - Dst: update_granularity
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:444,1
    - Dst: Botan::OCB_Decryption::decrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:445,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:445,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 443
    functionDepth: 1
    functionLinenumber: 443
    functionLinenumberEnd: 447
    functionName: Botan::OCB_Decryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - Botan::OCB_Decryption::decrypt
    - block_size
    - update_granularity
    - BOTAN_ARG_CHECK
    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:450,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:451,1
    - Dst: initialized
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:451,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:453,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:455,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:455,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:456,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:457,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:459,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:459,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:461,1
    - Dst: Botan::OCB_Decryption::decrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:469,1
    - Dst: offset
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:470,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:473,1
    - Dst: star
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:477,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:479,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:480,1
    - Dst: secure_vector::data
      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:482,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:482,1
    - Dst: offset
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:486,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:492,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:493,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:493,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:493,1
    - Dst: dollar
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:496,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:497,1
    - Dst: zeroise
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:501,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:507,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:507,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:507,1
    - Dst: Invalid_Authentication_Tag
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:508,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/ocb/ocb.cpp:512,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 513
    functionName: Botan::OCB_Decryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/ocb/ocb.cpp
    functionUses: 0
    functionsReached:
    - offset
    - Botan::CT::is_equal
    - resize
    - BOTAN_ARG_CHECK
    - initialized
    - block_size
    - assert_key_material_set
    - Invalid_Authentication_Tag
    - data
    - encrypt
    - zeroise
    - BOTAN_STATE_CHECK
    - star
    - xor_buf
    - BOTAN_ASSERT
    - tag_size
    - dollar
    - size
    - Botan::OCB_Decryption::decrypt
    - secure_vector::data
    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:24,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:25,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:26,1
    - Dst: Botan::CCM_Mode::name
      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:30,1
    - Dst: fmt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:30,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:34,1
    - Dst: fmt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:34,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: 36
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 36
    functionName: Botan::CCM_Mode::CCM_Mode
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - block_size
    - Invalid_Argument
    - 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:39,1
    - Dst: Botan::CCM_Mode::reset
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 41
    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:44,1
    - 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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    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:50,1
    - Dst: Botan::CCM_Mode::name
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:50,1
    - Dst: Botan::CCM_Mode::tag_size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:50,1
    - Dst: Botan::CCM_Mode::L
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.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::CCM_Mode::name
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 2
    functionsReached:
    - Botan::CCM_Mode::tag_size
    - Botan::CCM_Mode::name
    - 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:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 55
    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:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 59
    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: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    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:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    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: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    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: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::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: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::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:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 84
    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:87,1
    - Dst: Botan::CCM_Mode::clear
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:89,1
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:91,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:93,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:93,1
    - Dst: push_back
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:95,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:95,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:95,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:95,1
    - Dst: push_back
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:96,1
    - Dst: get_byte<1>
      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: insert
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:97,1
    - Dst: end
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:97,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:97,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:97,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:98,1
    - Dst: push_back
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:99,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: 102
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 102
    functionName: Botan::CCM_Mode::set_associated_data_n
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::empty
    - static_cast<uint16_t>
    - insert
    - std::span<const uint8_t>::size
    - Botan::CCM_Mode::clear
    - size
    - BOTAN_ARG_CHECK
    - get_byte<0>
    - push_back
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    - get_byte<1>
    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:105,1
    - Dst: Invalid_IV_Length
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:106,1
    - Dst: Botan::CCM_Mode::name
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:106,1
    - Dst: assign
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:109,1
    - Dst: Botan::CCM_Mode::clear
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 111
    functionName: Botan::CCM_Mode::start_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 0
    functionsReached:
    - Invalid_IV_Length
    - Botan::CCM_Mode::valid_nonce_length
    - assign
    - Botan::CCM_Mode::clear
    - Botan::CCM_Mode::name
    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:114,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:114,1
    - Dst: insert
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:115,1
    - Dst: end
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: Botan::CCM_Mode::process_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - empty
    - end
    - insert
    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:120,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:122,1
    - Dst: get_byte_var
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:125,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:129,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - len
    - out
    argTypes:
    - uint64_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 131
    functionName: Botan::CCM_Mode::encode_length
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::CCM_Mode::L
    - get_byte_var
    - Encoding_Error
    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:134,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:135,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' C'
    argTypes:
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 141
    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:144,1
    - Dst: Botan::CCM_Mode::L
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:144,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:145,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:150,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:150,1
    - Dst: Botan::CCM_Mode::tag_size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:150,1
    - Dst: Botan::CCM_Mode::L
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:150,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:153,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:153,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:153,1
    - Dst: Botan::CCM_Mode::encode_length
      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
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - sz
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 157
    functionName: Botan::CCM_Mode::format_b0
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 0
    functionsReached:
    - data
    - Botan::CCM_Mode::tag_size
    - Invalid_State
    - size
    - static_cast<uint8_t>
    - copy_mem
    - Botan::CCM_Mode::encode_length
    - empty
    - Botan::CCM_Mode::L
    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:160,1
    - Dst: Botan::CCM_Mode::L
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:160,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:161,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:165,1
    - Dst: Botan::CCM_Mode::L
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:165,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:168,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:168,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 171
    functionName: Botan::CCM_Mode::format_c0
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 0
    functionsReached:
    - data
    - copy_mem
    - Invalid_State
    - size
    - static_cast<uint8_t>
    - Botan::CCM_Mode::L
    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:174,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:174,1
    - Dst: insert
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:176,1
    - Dst: begin
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:176,1
    - Dst: msg_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:176,1
    - Dst: msg_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:176,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:178,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:179,1
    - Dst: ad_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:181,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:182,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:182,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:184,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:187,1
    - Dst: format_b0
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:187,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:189,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:190,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:190,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:191,1
    - Dst: format_c0
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:194,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:196,1
    - Dst: inc
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:197,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:204,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:206,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:206,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:207,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:209,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:210,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:210,1
    - Dst: inc
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:211,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:218,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:218,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:218,1
    - Dst: reset
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:220,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 221
    functionName: Botan::CCM_Encryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 0
    functionsReached:
    - tag_size
    - format_c0
    - std::min<size_t>
    - data
    - ad_buf
    - format_b0
    - size
    - inc
    - BOTAN_ARG_CHECK
    - msg_buf
    - std::make_pair
    - encrypt
    - secure_vector::data
    - cipher
    - xor_buf
    - begin
    - reset
    - insert
    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:224,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:224,1
    - Dst: insert
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:226,1
    - Dst: begin
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:226,1
    - Dst: msg_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:226,1
    - Dst: msg_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:226,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:228,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:229,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:231,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:231,1
    - Dst: ad_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:233,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:234,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:234,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:236,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:239,1
    - Dst: format_b0
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:239,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:239,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:241,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:242,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:242,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:243,1
    - Dst: format_c0
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:246,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:249,1
    - Dst: inc
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:250,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:254,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:257,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:259,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:260,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:260,1
    - Dst: inc
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:261,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:263,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:263,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:264,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:271,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:271,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:271,1
    - Dst: Invalid_Authentication_Tag
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:272,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:275,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:275,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:275,1
    - Dst: reset
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:277,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 278
    functionName: Botan::CCM_Decryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::is_equal
    - resize
    - std::min<size_t>
    - ad_buf
    - BOTAN_ARG_CHECK
    - begin
    - reset
    - Invalid_Authentication_Tag
    - data
    - format_b0
    - encrypt
    - format_c0
    - msg_buf
    - cipher
    - xor_buf
    - tag_size
    - inc
    - size
    - secure_vector::data
    - insert
    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:24,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:25,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:26,1
    - Dst: Botan::CCM_Mode::name
      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:30,1
    - Dst: fmt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:30,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:34,1
    - Dst: fmt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:34,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: 36
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 36
    functionName: Botan::CCM_Mode::CCM_Mode
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - block_size
    - Invalid_Argument
    - 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:39,1
    - Dst: Botan::CCM_Mode::reset
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 41
    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:44,1
    - 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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    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:50,1
    - Dst: Botan::CCM_Mode::name
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:50,1
    - Dst: Botan::CCM_Mode::tag_size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:50,1
    - Dst: Botan::CCM_Mode::L
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.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::CCM_Mode::name
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 5
    functionsReached:
    - Botan::CCM_Mode::tag_size
    - Botan::CCM_Mode::name
    - 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:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 55
    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:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 59
    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: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    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:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    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: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    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: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::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: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::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:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 84
    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:87,1
    - Dst: Botan::CCM_Mode::clear
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:89,1
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:91,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:93,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:93,1
    - Dst: push_back
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:95,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:95,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:95,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:95,1
    - Dst: push_back
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:96,1
    - Dst: get_byte<1>
      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: insert
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:97,1
    - Dst: end
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:97,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:97,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:97,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:98,1
    - Dst: push_back
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:99,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: 102
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 102
    functionName: Botan::CCM_Mode::set_associated_data_n
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::empty
    - static_cast<uint16_t>
    - insert
    - std::span<const uint8_t>::size
    - Botan::CCM_Mode::clear
    - size
    - BOTAN_ARG_CHECK
    - get_byte<0>
    - push_back
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    - get_byte<1>
    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:105,1
    - Dst: Invalid_IV_Length
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:106,1
    - Dst: Botan::CCM_Mode::name
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:106,1
    - Dst: assign
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:109,1
    - Dst: Botan::CCM_Mode::clear
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:110,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 111
    functionName: Botan::CCM_Mode::start_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 0
    functionsReached:
    - Invalid_IV_Length
    - Botan::CCM_Mode::valid_nonce_length
    - assign
    - Botan::CCM_Mode::clear
    - Botan::CCM_Mode::name
    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:114,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:114,1
    - Dst: insert
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:115,1
    - Dst: end
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: Botan::CCM_Mode::process_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - empty
    - end
    - insert
    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:120,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:122,1
    - Dst: get_byte_var
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:125,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:129,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - len
    - out
    argTypes:
    - uint64_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 131
    functionName: Botan::CCM_Mode::encode_length
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::CCM_Mode::L
    - get_byte_var
    - Encoding_Error
    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:134,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:135,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' C'
    argTypes:
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 141
    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:144,1
    - Dst: Botan::CCM_Mode::L
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:144,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:145,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:150,1
    - Dst: empty
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:150,1
    - Dst: Botan::CCM_Mode::tag_size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:150,1
    - Dst: Botan::CCM_Mode::L
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:150,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:153,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:153,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:153,1
    - Dst: Botan::CCM_Mode::encode_length
      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
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - sz
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 143
    functionDepth: 2
    functionLinenumber: 143
    functionLinenumberEnd: 157
    functionName: Botan::CCM_Mode::format_b0
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 0
    functionsReached:
    - data
    - Botan::CCM_Mode::tag_size
    - Invalid_State
    - size
    - static_cast<uint8_t>
    - copy_mem
    - Botan::CCM_Mode::encode_length
    - empty
    - Botan::CCM_Mode::L
    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:160,1
    - Dst: Botan::CCM_Mode::L
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:160,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:161,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:165,1
    - Dst: Botan::CCM_Mode::L
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:165,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:168,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:168,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 171
    functionName: Botan::CCM_Mode::format_c0
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 0
    functionsReached:
    - data
    - copy_mem
    - Invalid_State
    - size
    - static_cast<uint8_t>
    - Botan::CCM_Mode::L
    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:174,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:174,1
    - Dst: insert
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:176,1
    - Dst: begin
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:176,1
    - Dst: msg_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:176,1
    - Dst: msg_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:176,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:178,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:179,1
    - Dst: ad_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:181,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:182,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:182,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:184,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:187,1
    - Dst: format_b0
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:187,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:189,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:190,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:190,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:191,1
    - Dst: format_c0
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:194,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:196,1
    - Dst: inc
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:197,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:204,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:206,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:206,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:207,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:209,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:210,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:210,1
    - Dst: inc
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:211,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:218,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:218,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:218,1
    - Dst: reset
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:220,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 221
    functionName: Botan::CCM_Encryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 0
    functionsReached:
    - tag_size
    - format_c0
    - std::min<size_t>
    - data
    - ad_buf
    - format_b0
    - size
    - inc
    - BOTAN_ARG_CHECK
    - msg_buf
    - std::make_pair
    - encrypt
    - secure_vector::data
    - cipher
    - xor_buf
    - begin
    - reset
    - insert
    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:224,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:224,1
    - Dst: insert
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:226,1
    - Dst: begin
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:226,1
    - Dst: msg_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:226,1
    - Dst: msg_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:226,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:228,1
    - Dst: data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:229,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:231,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:231,1
    - Dst: ad_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:233,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:234,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:234,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:236,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:239,1
    - Dst: format_b0
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:239,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:239,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:241,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:242,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:242,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:243,1
    - Dst: format_c0
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:246,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:249,1
    - Dst: inc
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:250,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:254,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:257,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:259,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:260,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:260,1
    - Dst: inc
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:261,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:263,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:263,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:264,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:271,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:271,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:271,1
    - Dst: Invalid_Authentication_Tag
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:272,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:275,1
    - Dst: size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:275,1
    - Dst: tag_size
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:275,1
    - Dst: reset
      Src: /src/botan/src/lib/modes/aead/ccm/ccm.cpp:277,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 278
    functionName: Botan::CCM_Decryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/aead/ccm/ccm.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::is_equal
    - resize
    - std::min<size_t>
    - ad_buf
    - BOTAN_ARG_CHECK
    - begin
    - reset
    - Invalid_Authentication_Tag
    - data
    - format_b0
    - encrypt
    - format_c0
    - msg_buf
    - cipher
    - xor_buf
    - tag_size
    - inc
    - size
    - secure_vector::data
    - insert
    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:22,1
    - Dst: std::make_unique<PKCS7_Padding>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:26,1
    - Dst: std::make_unique<OneAndZeros_Padding>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:30,1
    - Dst: std::make_unique<ANSI_X923_Padding>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:34,1
    - Dst: std::make_unique<ESP_Padding>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:38,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - algo_spec
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 42
    functionName: Botan::BlockCipherModePaddingMethod::create
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp
    functionUses: 4
    functionsReached:
    - std::make_unique<Null_Padding>
    - std::make_unique<ANSI_X923_Padding>
    - std::make_unique<PKCS7_Padding>
    - std::make_unique<ESP_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:45,1
    - Dst: valid_blocksize
      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: 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_ASSERT_NOMSG
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:48,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:48,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:50,1
    - Dst: apply_padding
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:51,1
    - Dst: std::span<uint8_t>::last
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:51,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: 52
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 52
    functionName: Botan::BlockCipherModePaddingMethod::add_padding
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - valid_blocksize
    - apply_padding
    - std::span<uint8_t>::last
    - Botan::CT::scoped_poison
    - std::span<uint8_t>::size
    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:55,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:55,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:56,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:59,1
    - Dst: Botan::CT::driveby_unpoison
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:60,1
    - Dst: remove_padding
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - last_block
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 61
    functionName: Botan::BlockCipherModePaddingMethod::unpad
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp
    functionUses: 0
    functionsReached:
    - valid_blocksize
    - Botan::CT::driveby_unpoison
    - std::span<const uint8_t>::size
    - remove_padding
    - 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:74,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:74,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:75,1
    - Dst: Botan::CT::Mask::is_gte
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:78,1
    - Dst: auto::select
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:79,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: 81
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 81
    functionName: Botan::PKCS7_Padding::apply_padding
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::Mask::is_gte
    - static_cast<uint8_t>
    - std::span<uint8_t>::size
    - auto::select
    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:87,1
    - Dst: std::span<const uint8_t>::back
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:88,1
    - Dst: Botan::CT::Mask::is_gt
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:94,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:100,1
    - Dst: Botan::CT::Mask::is_gte
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:103,1
    - Dst: auto::select
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 108
    functionName: Botan::PKCS7_Padding::remove_padding
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp
    functionUses: 0
    functionsReached:
    - auto::select
    - std::span<const uint8_t>::size
    - Botan::ct_is_equal
    - std::span<const uint8_t>::back
    - Botan::CT::Mask::is_gt
    - Botan::CT::Mask::is_gte
    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:121,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:121,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:122,1
    - Dst: Botan::CT::Mask::is_gte
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:125,1
    - Dst: auto::select
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:126,1
    - Dst: std::span<uint8_t>::back
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:129,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: 130
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 130
    functionName: Botan::ANSI_X923_Padding::apply_padding
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp
    functionUses: 0
    functionsReached:
    - auto::select
    - std::span<uint8_t>::back
    - static_cast<uint8_t>
    - Botan::CT::Mask::is_gte
    - std::span<uint8_t>::size
    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:136,1
    - Dst: std::span<const uint8_t>::back
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:137,1
    - Dst: Botan::CT::Mask::is_gt
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:139,1
    - Dst: Botan::CT::Mask::is_gte
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:145,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:146,1
    - Dst: auto::select
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 151
    functionName: Botan::ANSI_X923_Padding::remove_padding
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp
    functionUses: 0
    functionsReached:
    - auto::select
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::back
    - Botan::CT::Mask::is_gt
    - Botan::CT::Mask::is_gte
    - Botan::sha512_msg_expand
    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:164,1
    - Dst: CT::Mask<uint8_t>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:165,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:165,1
    - Dst: CT::Mask<uint8_t>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:166,1
    - Dst: Botan::CT::Mask::is_gt
      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:167,1
    - Dst: auto::select
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:167,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: 169
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 169
    functionName: Botan::OneAndZeros_Padding::apply_padding
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp
    functionUses: 0
    functionsReached:
    - auto::select
    - Botan::ct_is_equal
    - Botan::CT::Mask::is_gt
    - CT::Mask<uint8_t>
    - std::span<uint8_t>::size
    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:175,1
    - Dst: Botan::CT::Mask::cleared
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:176,1
    - Dst: Botan::CT::Mask::cleared
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:177,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:182,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:183,1
    - Dst: auto::if_not_set_return
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:186,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 192
    functionName: Botan::OneAndZeros_Padding::remove_padding
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp
    functionUses: 0
    functionsReached:
    - auto::if_not_set_return
    - std::span<const uint8_t>::size
    - Botan::ct_is_equal
    - Botan::sha512_msg_expand
    - Botan::Sodium::sodium_is_zero
    - Botan::CT::Mask::cleared
    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:205,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:205,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:206,1
    - Dst: Botan::CT::Mask::is_gte
      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
    - Dst: auto::select
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:212,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: 214
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 214
    functionName: Botan::ESP_Padding::apply_padding
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::Mask::is_gte
    - static_cast<uint8_t>
    - std::span<uint8_t>::size
    - auto::select
    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:220,1
    - Dst: std::span<const uint8_t>::back
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:221,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:223,1
    - Dst: Botan::CT::Mask::is_gt
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:223,1
    - Dst: Botan::CT::Mask::is_gt
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:227,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:228,1
    - Dst: CT::Mask<size_t>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:230,1
    - Dst: auto::select
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 234
    functionName: Botan::ESP_Padding::remove_padding
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp
    functionUses: 0
    functionsReached:
    - auto::select
    - std::span<const uint8_t>::size
    - Botan::ct_is_equal
    - std::span<const uint8_t>::back
    - Botan::CT::Mask::is_gt
    - Botan::Sodium::sodium_is_zero
    - CT::Mask<size_t>
    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:22,1
    - Dst: std::make_unique<PKCS7_Padding>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:26,1
    - Dst: std::make_unique<OneAndZeros_Padding>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:30,1
    - Dst: std::make_unique<ANSI_X923_Padding>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:34,1
    - Dst: std::make_unique<ESP_Padding>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:38,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - algo_spec
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 42
    functionName: Botan::BlockCipherModePaddingMethod::create
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp
    functionUses: 4
    functionsReached:
    - std::make_unique<Null_Padding>
    - std::make_unique<ANSI_X923_Padding>
    - std::make_unique<PKCS7_Padding>
    - std::make_unique<ESP_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:45,1
    - Dst: valid_blocksize
      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: 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_ASSERT_NOMSG
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:48,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:48,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:50,1
    - Dst: apply_padding
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:51,1
    - Dst: std::span<uint8_t>::last
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:51,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: 52
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 52
    functionName: Botan::BlockCipherModePaddingMethod::add_padding
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - valid_blocksize
    - apply_padding
    - std::span<uint8_t>::last
    - Botan::CT::scoped_poison
    - std::span<uint8_t>::size
    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:55,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:55,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:56,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:59,1
    - Dst: Botan::CT::driveby_unpoison
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:60,1
    - Dst: remove_padding
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - last_block
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 61
    functionName: Botan::BlockCipherModePaddingMethod::unpad
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp
    functionUses: 0
    functionsReached:
    - valid_blocksize
    - Botan::CT::driveby_unpoison
    - std::span<const uint8_t>::size
    - remove_padding
    - 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:74,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:74,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:75,1
    - Dst: Botan::CT::Mask::is_gte
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:78,1
    - Dst: auto::select
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:79,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: 81
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 81
    functionName: Botan::PKCS7_Padding::apply_padding
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::Mask::is_gte
    - static_cast<uint8_t>
    - std::span<uint8_t>::size
    - auto::select
    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:87,1
    - Dst: std::span<const uint8_t>::back
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:88,1
    - Dst: Botan::CT::Mask::is_gt
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:94,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:100,1
    - Dst: Botan::CT::Mask::is_gte
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:103,1
    - Dst: auto::select
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 108
    functionName: Botan::PKCS7_Padding::remove_padding
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp
    functionUses: 0
    functionsReached:
    - auto::select
    - std::span<const uint8_t>::size
    - Botan::ct_is_equal
    - std::span<const uint8_t>::back
    - Botan::CT::Mask::is_gt
    - Botan::CT::Mask::is_gte
    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:121,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:121,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:122,1
    - Dst: Botan::CT::Mask::is_gte
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:125,1
    - Dst: auto::select
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:126,1
    - Dst: std::span<uint8_t>::back
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:129,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: 130
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 130
    functionName: Botan::ANSI_X923_Padding::apply_padding
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp
    functionUses: 0
    functionsReached:
    - auto::select
    - std::span<uint8_t>::back
    - static_cast<uint8_t>
    - Botan::CT::Mask::is_gte
    - std::span<uint8_t>::size
    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:136,1
    - Dst: std::span<const uint8_t>::back
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:137,1
    - Dst: Botan::CT::Mask::is_gt
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:139,1
    - Dst: Botan::CT::Mask::is_gte
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:145,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:146,1
    - Dst: auto::select
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 151
    functionName: Botan::ANSI_X923_Padding::remove_padding
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp
    functionUses: 0
    functionsReached:
    - auto::select
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::back
    - Botan::CT::Mask::is_gt
    - Botan::CT::Mask::is_gte
    - Botan::sha512_msg_expand
    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:164,1
    - Dst: CT::Mask<uint8_t>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:165,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:165,1
    - Dst: CT::Mask<uint8_t>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:166,1
    - Dst: Botan::CT::Mask::is_gt
      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:167,1
    - Dst: auto::select
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:167,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: 169
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 169
    functionName: Botan::OneAndZeros_Padding::apply_padding
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp
    functionUses: 0
    functionsReached:
    - auto::select
    - Botan::ct_is_equal
    - Botan::CT::Mask::is_gt
    - CT::Mask<uint8_t>
    - std::span<uint8_t>::size
    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:175,1
    - Dst: Botan::CT::Mask::cleared
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:176,1
    - Dst: Botan::CT::Mask::cleared
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:177,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:182,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:183,1
    - Dst: auto::if_not_set_return
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:186,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 192
    functionName: Botan::OneAndZeros_Padding::remove_padding
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp
    functionUses: 0
    functionsReached:
    - auto::if_not_set_return
    - std::span<const uint8_t>::size
    - Botan::ct_is_equal
    - Botan::sha512_msg_expand
    - Botan::Sodium::sodium_is_zero
    - Botan::CT::Mask::cleared
    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:205,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:205,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:206,1
    - Dst: Botan::CT::Mask::is_gte
      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
    - Dst: auto::select
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:212,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: 214
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 214
    functionName: Botan::ESP_Padding::apply_padding
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::Mask::is_gte
    - static_cast<uint8_t>
    - std::span<uint8_t>::size
    - auto::select
    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:220,1
    - Dst: std::span<const uint8_t>::back
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:221,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:223,1
    - Dst: Botan::CT::Mask::is_gt
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:223,1
    - Dst: Botan::CT::Mask::is_gt
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:227,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:228,1
    - Dst: CT::Mask<size_t>
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:230,1
    - Dst: auto::select
      Src: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp:233,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 234
    functionName: Botan::ESP_Padding::remove_padding
    functionSourceFile: /src/botan/src/lib/modes/mode_pad/mode_pad.cpp
    functionUses: 0
    functionsReached:
    - auto::select
    - std::span<const uint8_t>::size
    - Botan::ct_is_equal
    - std::span<const uint8_t>::back
    - Botan::CT::Mask::is_gt
    - Botan::Sodium::sodium_is_zero
    - CT::Mask<size_t>
    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:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - std::unique_ptr<BlockCipher>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    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:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - std::unique_ptr<BlockCipher>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    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:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - std::unique_ptr<BlockCipher>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    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:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - std::unique_ptr<BlockCipher>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    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:18,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:19,1
    - Dst: parallel_bytes
      Src: /src/botan/src/lib/modes/xts/xts.cpp:20,1
    - Dst: poly_double_supported_size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:22,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/modes/xts/xts.cpp:23,1
    - Dst: fmt
      Src: /src/botan/src/lib/modes/xts/xts.cpp:23,1
    - Dst: Botan::XTS_Mode::name
      Src: /src/botan/src/lib/modes/xts/xts.cpp:23,1
    - Dst: new_object
      Src: /src/botan/src/lib/modes/xts/xts.cpp:26,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - std::unique_ptr<BlockCipher>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 27
    functionName: Botan::XTS_Mode::XTS_Mode
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - poly_double_supported_size
    - parallel_bytes
    - block_size
    - Invalid_Argument
    - new_object
    - Botan::XTS_Mode::name
    - 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:30,1
    - Dst: Botan::XTS_Mode::clear
      Src: /src/botan/src/lib/modes/xts/xts.cpp:31,1
    - Dst: Botan::XTS_Mode::reset
      Src: /src/botan/src/lib/modes/xts/xts.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: Botan::XTS_Mode::clear
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 1
    functionsReached:
    - Botan::XTS_Mode::clear
    - Botan::XTS_Mode::reset
    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: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    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: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    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: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::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: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::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: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::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: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::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: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::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:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 65
    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:68,1
    - Dst: Botan::XTS_Mode::has_keying_material
      Src: /src/botan/src/lib/modes/xts/xts.cpp:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 69
    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:72,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:74,1
    - Dst: valid_keylength
      Src: /src/botan/src/lib/modes/xts/xts.cpp:74,1
    - Dst: Invalid_Key_Length
      Src: /src/botan/src/lib/modes/xts/xts.cpp:75,1
    - Dst: Botan::XTS_Mode::name
      Src: /src/botan/src/lib/modes/xts/xts.cpp:75,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:75,1
    - Dst: set_key
      Src: /src/botan/src/lib/modes/xts/xts.cpp:78,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/modes/xts/xts.cpp:78,1
    - Dst: set_key
      Src: /src/botan/src/lib/modes/xts/xts.cpp:79,1
    - Dst: std::span<const uint8_t>::last
      Src: /src/botan/src/lib/modes/xts/xts.cpp:79,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 80
    functionName: Botan::XTS_Mode::key_schedule
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::size
    - set_key
    - Invalid_Key_Length
    - Botan::XTS_Mode::name
    - std::span<const uint8_t>::last
    - valid_keylength
    - std::span<const uint8_t>::first
    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:83,1
    - Dst: Invalid_IV_Length
      Src: /src/botan/src/lib/modes/xts/xts.cpp:84,1
    - Dst: Botan::XTS_Mode::name
      Src: /src/botan/src/lib/modes/xts/xts.cpp:84,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/xts/xts.cpp:87,1
    - Dst: clear_mem
      Src: /src/botan/src/lib/modes/xts/xts.cpp:88,1
    - Dst: data
      Src: /src/botan/src/lib/modes/xts/xts.cpp:88,1
    - Dst: size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:88,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/xts/xts.cpp:89,1
    - Dst: data
      Src: /src/botan/src/lib/modes/xts/xts.cpp:89,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/xts/xts.cpp:90,1
    - Dst: data
      Src: /src/botan/src/lib/modes/xts/xts.cpp:90,1
    - Dst: Botan::XTS_Mode::update_tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 93
    functionName: Botan::XTS_Mode::start_msg
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 0
    functionsReached:
    - Invalid_IV_Length
    - resize
    - data
    - clear_mem
    - Botan::XTS_Mode::update_tweak
    - copy_mem
    - size
    - encrypt
    - Botan::XTS_Mode::valid_nonce_length
    - Botan::XTS_Mode::name
    linkageType: ''
    returnType: void
    signature: void XTS_Mode::start_msg(const uint8_t nonce[], size_t nonce_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: block_size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:96,1
    - Dst: poly_double_n_le
      Src: /src/botan/src/lib/modes/xts/xts.cpp:99,1
    - Dst: data
      Src: /src/botan/src/lib/modes/xts/xts.cpp:99,1
    - Dst: Botan::XTS_Mode::tweak_blocks
      Src: /src/botan/src/lib/modes/xts/xts.cpp:102,1
    - Dst: xts_update_tweak_block
      Src: /src/botan/src/lib/modes/xts/xts.cpp:104,1
    - Dst: data
      Src: /src/botan/src/lib/modes/xts/xts.cpp:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - which
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 105
    functionName: Botan::XTS_Mode::update_tweak
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 1
    functionsReached:
    - xts_update_tweak_block
    - data
    - poly_double_n_le
    - block_size
    - Botan::XTS_Mode::tweak_blocks
    linkageType: ''
    returnType: void
    signature: void XTS_Mode::update_tweak(size_t which)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 109
    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:112,1
    - Dst: tweak_set
      Src: /src/botan/src/lib/modes/xts/xts.cpp:112,1
    - Dst: cipher_block_size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:113,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/xts/xts.cpp:115,1
    - Dst: tweak_blocks
      Src: /src/botan/src/lib/modes/xts/xts.cpp:118,1
    - Dst: min
      Src: /src/botan/src/lib/modes/xts/xts.cpp:121,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/xts/xts.cpp:124,1
    - Dst: tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:124,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/xts/xts.cpp:125,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/xts/xts.cpp:126,1
    - Dst: tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:126,1
    - Dst: update_tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 135
    functionName: Botan::XTS_Encryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 0
    functionsReached:
    - min
    - tweak_set
    - BOTAN_ARG_CHECK
    - tweak_blocks
    - cipher_block_size
    - update_tweak
    - xor_buf
    - tweak
    - BOTAN_STATE_CHECK
    - cipher
    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:138,1
    - Dst: size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:138,1
    - Dst: size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:139,1
    - Dst: data
      Src: /src/botan/src/lib/modes/xts/xts.cpp:140,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/xts/xts.cpp:142,1
    - Dst: minimum_final_size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:142,1
    - Dst: cipher_block_size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:144,1
    - Dst: update
      Src: /src/botan/src/lib/modes/xts/xts.cpp:147,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/modes/xts/xts.cpp:152,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/xts/xts.cpp:155,1
    - Dst: update
      Src: /src/botan/src/lib/modes/xts/xts.cpp:156,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: cipher
      Src: /src/botan/src/lib/modes/xts/xts.cpp:159,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/xts/xts.cpp:160,1
    - Dst: tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:160,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/xts/xts.cpp:168,1
    - Dst: tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:168,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/xts/xts.cpp:169,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/xts/xts.cpp:170,1
    - Dst: tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:170,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 174
    functionName: Botan::XTS_Encryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 0
    functionsReached:
    - update
    - resize
    - data
    - size
    - BOTAN_ARG_CHECK
    - cipher_block_size
    - BOTAN_ASSERT
    - xor_buf
    - tweak
    - cipher
    - minimum_final_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: 178
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 178
    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:181,1
    - Dst: tweak_set
      Src: /src/botan/src/lib/modes/xts/xts.cpp:181,1
    - Dst: cipher_block_size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:182,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/xts/xts.cpp:184,1
    - Dst: tweak_blocks
      Src: /src/botan/src/lib/modes/xts/xts.cpp:187,1
    - Dst: min
      Src: /src/botan/src/lib/modes/xts/xts.cpp:190,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/xts/xts.cpp:193,1
    - Dst: tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:193,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/xts/xts.cpp:194,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/xts/xts.cpp:195,1
    - Dst: tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:195,1
    - Dst: update_tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 204
    functionName: Botan::XTS_Decryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 0
    functionsReached:
    - min
    - tweak_set
    - BOTAN_ARG_CHECK
    - tweak_blocks
    - cipher_block_size
    - update_tweak
    - xor_buf
    - tweak
    - BOTAN_STATE_CHECK
    - cipher
    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:207,1
    - Dst: size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:207,1
    - Dst: size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:208,1
    - Dst: data
      Src: /src/botan/src/lib/modes/xts/xts.cpp:209,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/xts/xts.cpp:211,1
    - Dst: minimum_final_size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:211,1
    - Dst: cipher_block_size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:213,1
    - Dst: update
      Src: /src/botan/src/lib/modes/xts/xts.cpp:216,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/modes/xts/xts.cpp:221,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/xts/xts.cpp:224,1
    - Dst: update
      Src: /src/botan/src/lib/modes/xts/xts.cpp:225,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: cipher
      Src: /src/botan/src/lib/modes/xts/xts.cpp:228,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/xts/xts.cpp:229,1
    - Dst: tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:229,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/xts/xts.cpp:237,1
    - Dst: tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:237,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/xts/xts.cpp:238,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/xts/xts.cpp:239,1
    - Dst: tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:239,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 243
    functionName: Botan::XTS_Decryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 0
    functionsReached:
    - update
    - resize
    - data
    - size
    - BOTAN_ARG_CHECK
    - cipher_block_size
    - BOTAN_ASSERT
    - xor_buf
    - tweak
    - cipher
    - minimum_final_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:18,1
    - Dst: block_size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:19,1
    - Dst: parallel_bytes
      Src: /src/botan/src/lib/modes/xts/xts.cpp:20,1
    - Dst: poly_double_supported_size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:22,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/modes/xts/xts.cpp:23,1
    - Dst: fmt
      Src: /src/botan/src/lib/modes/xts/xts.cpp:23,1
    - Dst: Botan::XTS_Mode::name
      Src: /src/botan/src/lib/modes/xts/xts.cpp:23,1
    - Dst: new_object
      Src: /src/botan/src/lib/modes/xts/xts.cpp:26,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - std::unique_ptr<BlockCipher>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 27
    functionName: Botan::XTS_Mode::XTS_Mode
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - poly_double_supported_size
    - parallel_bytes
    - block_size
    - Invalid_Argument
    - new_object
    - Botan::XTS_Mode::name
    - 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:30,1
    - Dst: Botan::XTS_Mode::clear
      Src: /src/botan/src/lib/modes/xts/xts.cpp:31,1
    - Dst: Botan::XTS_Mode::reset
      Src: /src/botan/src/lib/modes/xts/xts.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 33
    functionName: Botan::XTS_Mode::clear
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 3
    functionsReached:
    - Botan::XTS_Mode::clear
    - Botan::XTS_Mode::reset
    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: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    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: 41
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 41
    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: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::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: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::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: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::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: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::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: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::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:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 65
    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:68,1
    - Dst: Botan::XTS_Mode::has_keying_material
      Src: /src/botan/src/lib/modes/xts/xts.cpp:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 69
    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:72,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:74,1
    - Dst: valid_keylength
      Src: /src/botan/src/lib/modes/xts/xts.cpp:74,1
    - Dst: Invalid_Key_Length
      Src: /src/botan/src/lib/modes/xts/xts.cpp:75,1
    - Dst: Botan::XTS_Mode::name
      Src: /src/botan/src/lib/modes/xts/xts.cpp:75,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:75,1
    - Dst: set_key
      Src: /src/botan/src/lib/modes/xts/xts.cpp:78,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/modes/xts/xts.cpp:78,1
    - Dst: set_key
      Src: /src/botan/src/lib/modes/xts/xts.cpp:79,1
    - Dst: std::span<const uint8_t>::last
      Src: /src/botan/src/lib/modes/xts/xts.cpp:79,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 80
    functionName: Botan::XTS_Mode::key_schedule
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::size
    - set_key
    - Invalid_Key_Length
    - Botan::XTS_Mode::name
    - std::span<const uint8_t>::last
    - valid_keylength
    - std::span<const uint8_t>::first
    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:83,1
    - Dst: Invalid_IV_Length
      Src: /src/botan/src/lib/modes/xts/xts.cpp:84,1
    - Dst: Botan::XTS_Mode::name
      Src: /src/botan/src/lib/modes/xts/xts.cpp:84,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/xts/xts.cpp:87,1
    - Dst: clear_mem
      Src: /src/botan/src/lib/modes/xts/xts.cpp:88,1
    - Dst: data
      Src: /src/botan/src/lib/modes/xts/xts.cpp:88,1
    - Dst: size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:88,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/modes/xts/xts.cpp:89,1
    - Dst: data
      Src: /src/botan/src/lib/modes/xts/xts.cpp:89,1
    - Dst: encrypt
      Src: /src/botan/src/lib/modes/xts/xts.cpp:90,1
    - Dst: data
      Src: /src/botan/src/lib/modes/xts/xts.cpp:90,1
    - Dst: Botan::XTS_Mode::update_tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 93
    functionName: Botan::XTS_Mode::start_msg
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 0
    functionsReached:
    - Invalid_IV_Length
    - resize
    - data
    - clear_mem
    - Botan::XTS_Mode::update_tweak
    - copy_mem
    - size
    - encrypt
    - Botan::XTS_Mode::valid_nonce_length
    - Botan::XTS_Mode::name
    linkageType: ''
    returnType: void
    signature: void XTS_Mode::start_msg(const uint8_t nonce[], size_t nonce_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: block_size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:96,1
    - Dst: poly_double_n_le
      Src: /src/botan/src/lib/modes/xts/xts.cpp:99,1
    - Dst: data
      Src: /src/botan/src/lib/modes/xts/xts.cpp:99,1
    - Dst: Botan::XTS_Mode::tweak_blocks
      Src: /src/botan/src/lib/modes/xts/xts.cpp:102,1
    - Dst: xts_update_tweak_block
      Src: /src/botan/src/lib/modes/xts/xts.cpp:104,1
    - Dst: data
      Src: /src/botan/src/lib/modes/xts/xts.cpp:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - which
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 105
    functionName: Botan::XTS_Mode::update_tweak
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 2
    functionsReached:
    - xts_update_tweak_block
    - data
    - poly_double_n_le
    - block_size
    - Botan::XTS_Mode::tweak_blocks
    linkageType: ''
    returnType: void
    signature: void XTS_Mode::update_tweak(size_t which)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 109
    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:112,1
    - Dst: tweak_set
      Src: /src/botan/src/lib/modes/xts/xts.cpp:112,1
    - Dst: cipher_block_size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:113,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/xts/xts.cpp:115,1
    - Dst: tweak_blocks
      Src: /src/botan/src/lib/modes/xts/xts.cpp:118,1
    - Dst: min
      Src: /src/botan/src/lib/modes/xts/xts.cpp:121,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/xts/xts.cpp:124,1
    - Dst: tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:124,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/xts/xts.cpp:125,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/xts/xts.cpp:126,1
    - Dst: tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:126,1
    - Dst: update_tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 135
    functionName: Botan::XTS_Encryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 0
    functionsReached:
    - min
    - tweak_set
    - BOTAN_ARG_CHECK
    - tweak_blocks
    - cipher_block_size
    - update_tweak
    - xor_buf
    - tweak
    - BOTAN_STATE_CHECK
    - cipher
    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:138,1
    - Dst: size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:138,1
    - Dst: size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:139,1
    - Dst: data
      Src: /src/botan/src/lib/modes/xts/xts.cpp:140,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/xts/xts.cpp:142,1
    - Dst: minimum_final_size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:142,1
    - Dst: cipher_block_size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:144,1
    - Dst: update
      Src: /src/botan/src/lib/modes/xts/xts.cpp:147,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/modes/xts/xts.cpp:152,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/xts/xts.cpp:155,1
    - Dst: update
      Src: /src/botan/src/lib/modes/xts/xts.cpp:156,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: cipher
      Src: /src/botan/src/lib/modes/xts/xts.cpp:159,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/xts/xts.cpp:160,1
    - Dst: tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:160,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/xts/xts.cpp:168,1
    - Dst: tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:168,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/xts/xts.cpp:169,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/xts/xts.cpp:170,1
    - Dst: tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:170,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 174
    functionName: Botan::XTS_Encryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 0
    functionsReached:
    - update
    - resize
    - data
    - size
    - BOTAN_ARG_CHECK
    - cipher_block_size
    - BOTAN_ASSERT
    - xor_buf
    - tweak
    - cipher
    - minimum_final_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: 178
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 178
    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:181,1
    - Dst: tweak_set
      Src: /src/botan/src/lib/modes/xts/xts.cpp:181,1
    - Dst: cipher_block_size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:182,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/xts/xts.cpp:184,1
    - Dst: tweak_blocks
      Src: /src/botan/src/lib/modes/xts/xts.cpp:187,1
    - Dst: min
      Src: /src/botan/src/lib/modes/xts/xts.cpp:190,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/xts/xts.cpp:193,1
    - Dst: tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:193,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/xts/xts.cpp:194,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/xts/xts.cpp:195,1
    - Dst: tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:195,1
    - Dst: update_tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 204
    functionName: Botan::XTS_Decryption::process_msg
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 0
    functionsReached:
    - min
    - tweak_set
    - BOTAN_ARG_CHECK
    - tweak_blocks
    - cipher_block_size
    - update_tweak
    - xor_buf
    - tweak
    - BOTAN_STATE_CHECK
    - cipher
    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:207,1
    - Dst: size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:207,1
    - Dst: size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:208,1
    - Dst: data
      Src: /src/botan/src/lib/modes/xts/xts.cpp:209,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/modes/xts/xts.cpp:211,1
    - Dst: minimum_final_size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:211,1
    - Dst: cipher_block_size
      Src: /src/botan/src/lib/modes/xts/xts.cpp:213,1
    - Dst: update
      Src: /src/botan/src/lib/modes/xts/xts.cpp:216,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/modes/xts/xts.cpp:221,1
    - Dst: resize
      Src: /src/botan/src/lib/modes/xts/xts.cpp:224,1
    - Dst: update
      Src: /src/botan/src/lib/modes/xts/xts.cpp:225,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: cipher
      Src: /src/botan/src/lib/modes/xts/xts.cpp:228,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/xts/xts.cpp:229,1
    - Dst: tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:229,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/xts/xts.cpp:237,1
    - Dst: tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:237,1
    - Dst: cipher
      Src: /src/botan/src/lib/modes/xts/xts.cpp:238,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/modes/xts/xts.cpp:239,1
    - Dst: tweak
      Src: /src/botan/src/lib/modes/xts/xts.cpp:239,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 243
    functionName: Botan::XTS_Decryption::finish_msg
    functionSourceFile: /src/botan/src/lib/modes/xts/xts.cpp
    functionUses: 0
    functionsReached:
    - update
    - resize
    - data
    - size
    - BOTAN_ARG_CHECK
    - cipher_block_size
    - BOTAN_ASSERT
    - xor_buf
    - tweak
    - cipher
    - minimum_final_size
    linkageType: ''
    returnType: void
    signature: void XTS_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: 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:
    - valid_blocksize
    - std::move
    - Botan::CBC_Mode::name
    - Botan::CBC_Mode::block_size
    - Invalid_Argument
    - 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:
    - set_key
    - Botan::CBC_Mode::clear
    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:
    - Invalid_IV_Length
    - resize
    - assign
    - Botan::CBC_Mode::name
    - Botan::CBC_Mode::valid_nonce_length
    - Botan::CBC_Mode::block_size
    - 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:
    - block_size
    - padding
    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:
    - state
    - BOTAN_ARG_CHECK
    - state_ptr
    - block_size
    - xor_buf
    - 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:
    - resize
    - state
    - update
    - size
    - BOTAN_ARG_CHECK
    - block_size
    - BOTAN_ASSERT_EQUAL
    - BOTAN_STATE_CHECK
    - padding
    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:
    - update
    - state
    - resize
    - data
    - Encoding_Error
    - name
    - size
    - std::swap
    - BOTAN_ARG_CHECK
    - state_ptr
    - block_size
    - secure_vector::data
    - xor_buf
    - cipher
    - BOTAN_STATE_CHECK
    - BOTAN_ASSERT
    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:
    - state
    - data
    - min
    - copy_mem
    - size
    - BOTAN_ARG_CHECK
    - state_ptr
    - block_size
    - cipher
    - xor_buf
    - 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:
    - Decoding_Error
    - state
    - update
    - last
    - resize
    - name
    - size
    - BOTAN_ARG_CHECK
    - block_size
    - BOTAN_STATE_CHECK
    - padding
    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:
    - update
    - state
    - resize
    - data
    - Encoding_Error
    - name
    - size
    - std::swap
    - BOTAN_ARG_CHECK
    - state_ptr
    - block_size
    - secure_vector::data
    - cipher
    - xor_buf
    - BOTAN_STATE_CHECK
    - BOTAN_ASSERT
    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:
    - valid_blocksize
    - std::move
    - Botan::CBC_Mode::name
    - Botan::CBC_Mode::block_size
    - Invalid_Argument
    - 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:
    - set_key
    - Botan::CBC_Mode::clear
    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:
    - Invalid_IV_Length
    - resize
    - assign
    - Botan::CBC_Mode::name
    - Botan::CBC_Mode::valid_nonce_length
    - Botan::CBC_Mode::block_size
    - 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:
    - block_size
    - padding
    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:
    - state
    - BOTAN_ARG_CHECK
    - state_ptr
    - block_size
    - xor_buf
    - 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:
    - resize
    - state
    - update
    - size
    - BOTAN_ARG_CHECK
    - block_size
    - BOTAN_ASSERT_EQUAL
    - BOTAN_STATE_CHECK
    - padding
    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:
    - update
    - state
    - resize
    - data
    - Encoding_Error
    - name
    - size
    - std::swap
    - BOTAN_ARG_CHECK
    - state_ptr
    - block_size
    - secure_vector::data
    - xor_buf
    - cipher
    - BOTAN_STATE_CHECK
    - BOTAN_ASSERT
    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:
    - state
    - data
    - min
    - copy_mem
    - size
    - BOTAN_ARG_CHECK
    - state_ptr
    - block_size
    - cipher
    - xor_buf
    - 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:
    - Decoding_Error
    - state
    - update
    - last
    - resize
    - name
    - size
    - BOTAN_ARG_CHECK
    - block_size
    - BOTAN_STATE_CHECK
    - padding
    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:
    - update
    - state
    - resize
    - data
    - Encoding_Error
    - name
    - size
    - std::swap
    - BOTAN_ARG_CHECK
    - state_ptr
    - block_size
    - secure_vector::data
    - cipher
    - xor_buf
    - BOTAN_STATE_CHECK
    - BOTAN_ASSERT
    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:
    - pbkdf_iterations
    - Botan::OctetString
    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
    - pbkdf_iterations
    - 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                             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:
    - pbkdf_timed
    - Botan::data
    - Botan::size
    - 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:
    - pbkdf_iterations
    - Botan::OctetString
    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
    - pbkdf_iterations
    - 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                             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:
    - pbkdf_timed
    - Botan::data
    - Botan::size
    - 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: 8
    functionsReached:
    - std::move
    - std::make_unique<OpenPGP_S2K>
    - std::string_view::empty
    - SCAN_Name::arg_count
    - std::make_unique<PKCS5_PBKDF2>
    - SCAN_Name::arg
    - SCAN_Name::algo_name
    - Botan::MessageAuthenticationCode::create
    - BOTAN_UNUSED
    - Botan::HashFunction::create
    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:
    - Lookup_Error
    - Botan::PBKDF::create
    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:
    - Botan_CLI::Timer::milliseconds
    - name
    - Invalid_Argument
    - BOTAN_ASSERT_EQUAL
    - pbkdf
    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:
    - secure_vector::data
    - Botan::PBKDF::pbkdf_timed
    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: 9
    functionsReached:
    - std::move
    - std::make_unique<OpenPGP_S2K>
    - std::string_view::empty
    - SCAN_Name::arg_count
    - std::make_unique<PKCS5_PBKDF2>
    - SCAN_Name::arg
    - SCAN_Name::algo_name
    - Botan::MessageAuthenticationCode::create
    - BOTAN_UNUSED
    - Botan::HashFunction::create
    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:
    - Lookup_Error
    - Botan::PBKDF::create
    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:
    - Botan_CLI::Timer::milliseconds
    - name
    - Invalid_Argument
    - BOTAN_ASSERT_EQUAL
    - pbkdf
    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:
    - secure_vector::data
    - Botan::PBKDF::pbkdf_timed
    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: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    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: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    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: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    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: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    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: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    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:85,1
    - Dst: std::span<uint8_t>::data
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:85,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:85,1
    - Dst: std::string_view::data
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:85,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:85,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:85,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:85,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: 86
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 86
    functionName: Botan::hash
    functionSourceFile: /src/botan/src/lib/pbkdf/pwdhash.h
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - std::string_view::size
    - Botan::derive_key
    - std::string_view::data
    - std::span<uint8_t>::size
    - std::span<uint8_t>::data
    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:110,1
    - Dst: std::span<uint8_t>::data
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:110,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:111,1
    - Dst: std::string_view::data
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:112,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:113,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:114,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:115,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:116,1
    - Dst: std::span<const uint8_t>::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
    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: 120
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 120
    functionName: Botan::hash
    functionSourceFile: /src/botan/src/lib/pbkdf/pwdhash.h
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - std::string_view::size
    - Botan::derive_key
    - std::string_view::data
    - std::span<uint8_t>::size
    - std::span<uint8_t>::data
    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: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    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: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    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: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    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: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    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: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    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:85,1
    - Dst: std::span<uint8_t>::data
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:85,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:85,1
    - Dst: std::string_view::data
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:85,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:85,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:85,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:85,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: 86
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 86
    functionName: Botan::hash
    functionSourceFile: /src/botan/src/lib/pbkdf/pwdhash.h
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - std::string_view::size
    - Botan::derive_key
    - std::string_view::data
    - std::span<uint8_t>::size
    - std::span<uint8_t>::data
    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:110,1
    - Dst: std::span<uint8_t>::data
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:110,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:111,1
    - Dst: std::string_view::data
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:112,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:113,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:114,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:115,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pbkdf/pwdhash.h:116,1
    - Dst: std::span<const uint8_t>::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
    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: 120
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 120
    functionName: Botan::hash
    functionSourceFile: /src/botan/src/lib/pbkdf/pwdhash.h
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - std::string_view::size
    - Botan::derive_key
    - std::string_view::data
    - std::span<uint8_t>::size
    - std::span<uint8_t>::data
    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: 198
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 198
    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_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_UNUSED
    - Botan::PasswordHash::to_string
    - Botan::PasswordHash::derive_key
    - Not_Implemented
    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: 22
    functionsReached:
    - std::move
    - std::string_view::empty
    - SCAN_Name::arg_count
    - std::make_unique<Bcrypt_PBKDF_Family>
    - static_cast<uint8_t>
    - std::make_unique<Argon2_Family>
    - SCAN_Name::arg
    - std::make_unique<PBKDF2_Family>
    - SCAN_Name::algo_name
    - Botan::MessageAuthenticationCode::create
    - BOTAN_UNUSED
    - Botan::HashFunction::create
    - std::make_unique<Scrypt_Family>
    - 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: 4
    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_UNUSED
    - Botan::PasswordHash::to_string
    - Botan::PasswordHash::derive_key
    - Not_Implemented
    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: 23
    functionsReached:
    - std::move
    - std::string_view::empty
    - SCAN_Name::arg_count
    - std::make_unique<Bcrypt_PBKDF_Family>
    - static_cast<uint8_t>
    - std::make_unique<Argon2_Family>
    - SCAN_Name::arg
    - std::make_unique<PBKDF2_Family>
    - SCAN_Name::algo_name
    - Botan::MessageAuthenticationCode::create
    - BOTAN_UNUSED
    - Botan::HashFunction::create
    - std::make_unique<Scrypt_Family>
    - 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: 4
    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: 18
    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:
    - Botan::output_length
    - secure_vector::empty
    - min
    - Botan::Invalid_Argument
    - Botan::as_span_of_bytes
    - secure_vector::size
    - max
    - Botan::copy_mem
    - secure_vector::data
    - std::span
    - Botan::final
    - Botan::update
    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:
    - Botan::output_length
    - secure_vector::empty
    - min
    - Botan::Invalid_Argument
    - Botan::as_span_of_bytes
    - secure_vector::size
    - max
    - Botan::copy_mem
    - secure_vector::data
    - std::span
    - Botan::final
    - Botan::update
    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:83,1
    - Dst: RFC4880_S2K_Family::tune
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:84,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:84,1
    - Dst: pgp_s2k
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:87,1
    - Dst: std::string_view::data
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:87,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 7
    argNames:
    - output_buf
    - output_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: 90
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 90
    functionName: Botan::OpenPGP_S2K::pbkdf
    functionSourceFile: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timer::milliseconds
    - std::string_view::size
    - new_object
    - RFC4880_S2K_Family::tune
    - pgp_s2k
    - std::string_view::data
    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 msec) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:93,1
    - Dst: Botan::RFC4880_S2K_Family::name
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 94
    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:103,1
    - Dst: update
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:103,1
    - Dst: std::chrono::milliseconds::count
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:106,1
    - Dst: output_length
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:108,1
    - Dst: RFC4880_round_iterations
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:112,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:112,1
    - Dst: std::make_unique<RFC4880_S2K>
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:114,1
    - Dst: new_object
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - output_len
    - msec
    - tune_time
    argTypes:
    - size_t
    - std::chrono::milliseconds
    - std::chrono::milliseconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 115
    functionName: Botan::RFC4880_S2K_Family::tune
    functionSourceFile: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp
    functionUses: 0
    functionsReached:
    - std::chrono::milliseconds::count
    - std::make_unique<RFC4880_S2K>
    - update
    - static_cast<size_t>
    - new_object
    - measure_cost
    - RFC4880_round_iterations
    - output_length
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: "std::unique_ptr<PasswordHash> RFC4880_S2K_Family::tune(size_t output_len,\n
      \                                                      std::chrono::milliseconds
      msec,\n                                                       size_t /*max_memory_usage_mb*/,\n
      \                                                      std::chrono::milliseconds
      tune_time) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<RFC4880_S2K>
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:120,1
    - Dst: new_object
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iterations
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 121
    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:124,1
    - Dst: new_object
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.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::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:128,1
    - Dst: new_object
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iterations
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    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:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - hash
    - iterations
    argTypes:
    - std::unique_ptr<HashFunction>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    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:135,1
    - Dst: name
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.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: 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:144,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: 145
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 145
    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:
    - Botan::output_length
    - secure_vector::empty
    - min
    - Botan::Invalid_Argument
    - Botan::as_span_of_bytes
    - secure_vector::size
    - max
    - Botan::copy_mem
    - secure_vector::data
    - std::span
    - Botan::final
    - Botan::update
    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:
    - Botan::output_length
    - secure_vector::empty
    - min
    - Botan::Invalid_Argument
    - Botan::as_span_of_bytes
    - secure_vector::size
    - max
    - Botan::copy_mem
    - secure_vector::data
    - std::span
    - Botan::final
    - Botan::update
    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:83,1
    - Dst: RFC4880_S2K_Family::tune
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:84,1
    - Dst: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:84,1
    - Dst: pgp_s2k
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:87,1
    - Dst: std::string_view::data
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:87,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 7
    argNames:
    - output_buf
    - output_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: 90
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 90
    functionName: Botan::OpenPGP_S2K::pbkdf
    functionSourceFile: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timer::milliseconds
    - std::string_view::size
    - new_object
    - RFC4880_S2K_Family::tune
    - pgp_s2k
    - std::string_view::data
    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 msec) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:93,1
    - Dst: Botan::RFC4880_S2K_Family::name
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 94
    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:103,1
    - Dst: update
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:103,1
    - Dst: std::chrono::milliseconds::count
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:106,1
    - Dst: output_length
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:108,1
    - Dst: RFC4880_round_iterations
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:112,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:112,1
    - Dst: std::make_unique<RFC4880_S2K>
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:114,1
    - Dst: new_object
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - output_len
    - msec
    - tune_time
    argTypes:
    - size_t
    - std::chrono::milliseconds
    - std::chrono::milliseconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 115
    functionName: Botan::RFC4880_S2K_Family::tune
    functionSourceFile: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp
    functionUses: 0
    functionsReached:
    - std::chrono::milliseconds::count
    - std::make_unique<RFC4880_S2K>
    - update
    - static_cast<size_t>
    - new_object
    - measure_cost
    - RFC4880_round_iterations
    - output_length
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: "std::unique_ptr<PasswordHash> RFC4880_S2K_Family::tune(size_t output_len,\n
      \                                                      std::chrono::milliseconds
      msec,\n                                                       size_t /*max_memory_usage_mb*/,\n
      \                                                      std::chrono::milliseconds
      tune_time) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<RFC4880_S2K>
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:120,1
    - Dst: new_object
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iterations
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 121
    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:124,1
    - Dst: new_object
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.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::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:128,1
    - Dst: new_object
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iterations
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    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:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - hash
    - iterations
    argTypes:
    - std::unique_ptr<HashFunction>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    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:135,1
    - Dst: name
      Src: /src/botan/src/lib/pbkdf/pgp_s2k/pgp_s2k.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: 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:144,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: 145
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 145
    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:28,1
    - Dst: Botan::t
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.h:63,1
    - Dst: Botan::p
      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
    - Dst: Botan::M
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 98
    functionName: Botan::PasswordHash
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.h
    functionUses: 0
    functionsReached:
    - Argon2
    - Botan::M
    - Botan::t
    - Botan::p
    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: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    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: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    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: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    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: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    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: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    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: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::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: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::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: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::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:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 69
    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: 119
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 119
    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:155,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.h:164,1
    - Dst: auto::from_params
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.h:167,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.h:168,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: 169
      start: 141
    functionDepth: 3
    functionLinenumber: 141
    functionLinenumberEnd: 169
    functionName: Botan::argon2
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.h
    functionUses: 0
    functionsReached:
    - Botan::PasswordHashFamily::create_or_throw
    - auto::from_params
    - auto::derive_key
    - Not_Implemented
    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:28,1
    - Dst: Botan::t
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.h:63,1
    - Dst: Botan::p
      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
    - Dst: Botan::M
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 98
    functionName: Botan::PasswordHash
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.h
    functionUses: 0
    functionsReached:
    - Argon2
    - Botan::M
    - Botan::t
    - Botan::p
    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: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    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: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    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: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    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: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    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: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    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: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::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: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::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: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::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:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 69
    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: 119
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 119
    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:155,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.h:164,1
    - Dst: auto::from_params
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.h:167,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.h:168,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: 169
      start: 141
    functionDepth: 3
    functionLinenumber: 141
    functionLinenumberEnd: 169
    functionName: Botan::argon2
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.h
    functionUses: 0
    functionsReached:
    - Botan::PasswordHashFamily::create_or_throw
    - auto::from_params
    - auto::derive_key
    - Not_Implemented
    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: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:54,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:54,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:56,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:56,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:57,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:57,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:59,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:59,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:60,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:62,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:62,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:63,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:65,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:65,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:66,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:68,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: 69
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 69
    functionName: Botan::argon2_H0
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - update_le
    - Botan::as_span_of_bytes
    - Botan::update
    - Botan::final
    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:86,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:86,1
    - Dst: auto::update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:87,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:87,1
    - Dst: auto::update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:89,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:91,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:95,1
    - Dst: auto::update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:96,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:96,1
    - Dst: auto::update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:98,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:100,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:103,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:103,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:108,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:109,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:114,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:115,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:117,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:117,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:118,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:119,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: 122
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 122
    functionName: Botan::extract_key
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - Botan::fmt
    - static_cast<uint32_t>
    - Botan::HashFunction::create_or_throw
    - Botan::copy_mem
    - secure_vector::data
    - auto::update_le
    - auto::final
    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:126,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:126,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:131,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:131,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:136,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:136,1
    - Dst: Botan::update
      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: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:139,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:139,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:140,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:143,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:144,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:145,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:148,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: 151
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 151
    functionName: Botan::init_blocks
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - static_cast<uint32_t>
    - update_le
    - Botan::size
    - Botan::load_le
    - Botan::final
    - Botan::update
    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:154,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:154,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:154,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:155,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:157,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:157,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:157,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:158,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:160,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:160,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:160,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:161,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:163,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:163,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:163,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:164,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: 165
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 165
    functionName: Botan::blamka_G
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint64_t>
    - Botan::rotr
    - static_cast<uint32_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: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:54,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:54,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:56,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:56,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:57,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:57,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:59,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:59,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:60,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:62,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:62,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:63,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:65,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:65,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:66,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:68,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: 69
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 69
    functionName: Botan::argon2_H0
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - update_le
    - Botan::as_span_of_bytes
    - Botan::update
    - Botan::final
    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:86,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:86,1
    - Dst: auto::update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:87,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:87,1
    - Dst: auto::update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:89,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:91,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:95,1
    - Dst: auto::update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:96,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:96,1
    - Dst: auto::update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:98,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:100,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:103,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:103,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:108,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:109,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:114,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:115,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:117,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:117,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:118,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:119,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: 122
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 122
    functionName: Botan::extract_key
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - Botan::fmt
    - static_cast<uint32_t>
    - Botan::HashFunction::create_or_throw
    - Botan::copy_mem
    - secure_vector::data
    - auto::update_le
    - auto::final
    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:126,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:126,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:131,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:131,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:136,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:136,1
    - Dst: Botan::update
      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: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:139,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:139,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:140,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:143,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:144,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:145,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:148,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: 151
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 151
    functionName: Botan::init_blocks
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - static_cast<uint32_t>
    - update_le
    - Botan::size
    - Botan::load_le
    - Botan::final
    - Botan::update
    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:154,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:154,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:154,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:155,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:157,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:157,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:157,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:158,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:160,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:160,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:160,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:161,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:163,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:163,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:163,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:164,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: 165
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 165
    functionName: Botan::blamka_G
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint64_t>
    - Botan::rotr
    - static_cast<uint32_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:171,1
    - Dst: Botan::Argon2::blamka_avx2
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:172,1
    - Dst: has
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:177,1
    - Dst: Botan::Argon2::blamka_ssse3
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:178,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:182,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:188,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:193,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:200,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
    - Dst: blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:205,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 2
    argNames:
    - N
    - T
    argTypes:
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 211
    functionName: Botan::Argon2::blamka
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - has
    - blamka_G
    - copy_mem
    - Botan::Argon2::blamka_ssse3
    - Botan::Argon2::blamka_avx2
    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:224,1
    - Dst: Botan::Argon2::blamka
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:235,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: 237
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 237
    functionName: Botan::gen_2i_addresses
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - Botan::clear_mem
    - Botan::Argon2::blamka
    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:241,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:266,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:270,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: 271
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 271
    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:295,1
    - Dst: Botan::gen_2i_addresses
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:308,1
    - Dst: at
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:311,1
    - Dst: Botan::index_alpha
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:312,1
    - Dst: Botan::Argon2::blamka
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:319,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: 327
      start: 273
    functionDepth: 3
    functionLinenumber: 273
    functionLinenumberEnd: 327
    functionName: Botan::process_block
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - Botan::gen_2i_addresses
    - at
    - Botan::index_alpha
    - Botan::Argon2::blamka
    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:335,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:340,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:343,1
    - Dst: Botan::run
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:343,1
    - Dst: std::ref
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:344,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:348,1
    - Dst: Botan::process_block
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:360,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: 364
      start: 329
    functionDepth: 4
    functionLinenumber: 329
    functionLinenumberEnd: 364
    functionName: Botan::process_blocks
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - Botan::get
    - std::vector::push_back
    - Thread_Pool::global_instance
    - std::ref
    - Botan::run
    - Botan::process_block
    - std::vector::reserve
    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:224,1
    - Dst: Botan::Argon2::blamka
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:235,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: 237
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 237
    functionName: Botan::gen_2i_addresses
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 1
    functionsReached:
    - Botan::clear_mem
    - Botan::Argon2::blamka
    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:241,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:266,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:270,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: 271
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 271
    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:295,1
    - Dst: Botan::gen_2i_addresses
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:308,1
    - Dst: at
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:311,1
    - Dst: Botan::index_alpha
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:312,1
    - Dst: Botan::Argon2::blamka
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:319,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: 327
      start: 273
    functionDepth: 3
    functionLinenumber: 273
    functionLinenumberEnd: 327
    functionName: Botan::process_block
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 1
    functionsReached:
    - Botan::gen_2i_addresses
    - at
    - Botan::index_alpha
    - Botan::Argon2::blamka
    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:335,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:340,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:343,1
    - Dst: Botan::run
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:343,1
    - Dst: std::ref
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:344,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:348,1
    - Dst: Botan::process_block
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:360,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: 364
      start: 329
    functionDepth: 4
    functionLinenumber: 329
    functionLinenumberEnd: 364
    functionName: Botan::process_blocks
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - Botan::get
    - std::vector::push_back
    - Thread_Pool::global_instance
    - std::ref
    - Botan::run
    - Botan::process_block
    - std::vector::reserve
    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:378,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:378,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_ARG_CHECK
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:383,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:383,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:385,1
    - Dst: argon2_H0
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:388,1
    - Dst: init_blocks
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:408,1
    - Dst: process_blocks
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:409,1
    - Dst: clear_mem
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:411,1
    - Dst: extract_key
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:412,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: 413
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 413
    functionName: Botan::Argon2::argon2
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - process_blocks
    - Botan_Tests::random_bit_generator::max
    - init_blocks
    - clear_mem
    - BOTAN_ARG_CHECK
    - Botan::HashFunction::create_or_throw
    - extract_key
    - argon2_H0
    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: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:54,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:54,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:56,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:56,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:57,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:57,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:59,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:59,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:60,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:62,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:62,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:63,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:65,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:65,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:66,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:68,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: 69
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 69
    functionName: Botan::argon2_H0
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - update_le
    - Botan::as_span_of_bytes
    - Botan::update
    - Botan::final
    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:86,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:86,1
    - Dst: auto::update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:87,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:87,1
    - Dst: auto::update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:89,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:91,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:95,1
    - Dst: auto::update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:96,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:96,1
    - Dst: auto::update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:98,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:100,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:103,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:103,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:108,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:109,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:114,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:115,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:117,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:117,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:118,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:119,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: 122
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 122
    functionName: Botan::extract_key
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - Botan::fmt
    - static_cast<uint32_t>
    - Botan::HashFunction::create_or_throw
    - Botan::copy_mem
    - secure_vector::data
    - auto::update_le
    - auto::final
    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:126,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:126,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:131,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:131,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:136,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:136,1
    - Dst: Botan::update
      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: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:139,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:139,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:140,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:143,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:144,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:145,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:148,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: 151
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 151
    functionName: Botan::init_blocks
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - static_cast<uint32_t>
    - update_le
    - Botan::size
    - Botan::load_le
    - Botan::final
    - Botan::update
    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:154,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:154,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:154,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:155,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:157,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:157,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:157,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:158,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:160,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:160,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:160,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:161,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:163,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:163,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:163,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:164,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: 165
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 165
    functionName: Botan::blamka_G
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint64_t>
    - Botan::rotr
    - static_cast<uint32_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: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:54,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:54,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:56,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:56,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:57,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:57,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:59,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:59,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:60,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:62,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:62,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:63,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:65,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:65,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:66,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:68,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: 69
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 69
    functionName: Botan::argon2_H0
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - update_le
    - Botan::as_span_of_bytes
    - Botan::update
    - Botan::final
    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:86,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:86,1
    - Dst: auto::update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:87,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:87,1
    - Dst: auto::update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:89,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:91,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:95,1
    - Dst: auto::update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:96,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:96,1
    - Dst: auto::update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:98,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:100,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:103,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:103,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:108,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:109,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:114,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:115,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:117,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:117,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:118,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:119,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: 122
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 122
    functionName: Botan::extract_key
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - Botan::fmt
    - static_cast<uint32_t>
    - Botan::HashFunction::create_or_throw
    - Botan::copy_mem
    - secure_vector::data
    - auto::update_le
    - auto::final
    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:126,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:126,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:131,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:131,1
    - Dst: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:136,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:136,1
    - Dst: Botan::update
      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: update_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:139,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:139,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:140,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:143,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:144,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:145,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:148,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: 151
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 151
    functionName: Botan::init_blocks
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - static_cast<uint32_t>
    - update_le
    - Botan::size
    - Botan::load_le
    - Botan::final
    - Botan::update
    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:154,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:154,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:154,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:155,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:157,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:157,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:157,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:158,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:160,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:160,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:160,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:161,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:163,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:163,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:163,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:164,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: 165
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 165
    functionName: Botan::blamka_G
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint64_t>
    - Botan::rotr
    - static_cast<uint32_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:171,1
    - Dst: Botan::Argon2::blamka_avx2
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:172,1
    - Dst: has
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:177,1
    - Dst: Botan::Argon2::blamka_ssse3
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:178,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:182,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:188,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:193,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:200,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
    - Dst: blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:205,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 2
    argNames:
    - N
    - T
    argTypes:
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 211
    functionName: Botan::Argon2::blamka
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 4
    functionsReached:
    - has
    - blamka_G
    - copy_mem
    - Botan::Argon2::blamka_ssse3
    - Botan::Argon2::blamka_avx2
    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:224,1
    - Dst: Botan::Argon2::blamka
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:235,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: 237
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 237
    functionName: Botan::gen_2i_addresses
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 2
    functionsReached:
    - Botan::clear_mem
    - Botan::Argon2::blamka
    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:241,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:266,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:270,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: 271
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 271
    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:295,1
    - Dst: Botan::gen_2i_addresses
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:308,1
    - Dst: at
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:311,1
    - Dst: Botan::index_alpha
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:312,1
    - Dst: Botan::Argon2::blamka
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:319,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: 327
      start: 273
    functionDepth: 3
    functionLinenumber: 273
    functionLinenumberEnd: 327
    functionName: Botan::process_block
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 2
    functionsReached:
    - Botan::gen_2i_addresses
    - at
    - Botan::index_alpha
    - Botan::Argon2::blamka
    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:335,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:340,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:343,1
    - Dst: Botan::run
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:343,1
    - Dst: std::ref
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:344,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:348,1
    - Dst: Botan::process_block
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:360,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: 364
      start: 329
    functionDepth: 4
    functionLinenumber: 329
    functionLinenumberEnd: 364
    functionName: Botan::process_blocks
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - Botan::get
    - std::vector::push_back
    - Thread_Pool::global_instance
    - std::ref
    - Botan::run
    - Botan::process_block
    - std::vector::reserve
    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:224,1
    - Dst: Botan::Argon2::blamka
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:235,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: 237
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 237
    functionName: Botan::gen_2i_addresses
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 3
    functionsReached:
    - Botan::clear_mem
    - Botan::Argon2::blamka
    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:241,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:266,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:270,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: 271
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 271
    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:295,1
    - Dst: Botan::gen_2i_addresses
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:308,1
    - Dst: at
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:311,1
    - Dst: Botan::index_alpha
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:312,1
    - Dst: Botan::Argon2::blamka
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:319,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: 327
      start: 273
    functionDepth: 3
    functionLinenumber: 273
    functionLinenumberEnd: 327
    functionName: Botan::process_block
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 3
    functionsReached:
    - Botan::gen_2i_addresses
    - at
    - Botan::index_alpha
    - Botan::Argon2::blamka
    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:335,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:340,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:343,1
    - Dst: Botan::run
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:343,1
    - Dst: std::ref
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:344,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:348,1
    - Dst: Botan::process_block
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:360,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: 364
      start: 329
    functionDepth: 4
    functionLinenumber: 329
    functionLinenumberEnd: 364
    functionName: Botan::process_blocks
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - Botan::get
    - std::vector::push_back
    - Thread_Pool::global_instance
    - std::ref
    - Botan::run
    - Botan::process_block
    - std::vector::reserve
    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:378,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:378,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_ARG_CHECK
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:383,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:383,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:385,1
    - Dst: argon2_H0
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:388,1
    - Dst: init_blocks
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:408,1
    - Dst: process_blocks
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:409,1
    - Dst: clear_mem
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:411,1
    - Dst: extract_key
      Src: /src/botan/src/lib/pbkdf/argon2/argon2.cpp:412,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: 413
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 413
    functionName: Botan::Argon2::argon2
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2.cpp
    functionUses: 0
    functionsReached:
    - process_blocks
    - Botan_Tests::random_bit_generator::max
    - init_blocks
    - clear_mem
    - BOTAN_ARG_CHECK
    - Botan::HashFunction::create_or_throw
    - extract_key
    - argon2_H0
    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_Tests::random_bit_generator::max
    - BOTAN_ARG_CHECK
    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: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:85,1
    - Dst: Botan::Argon2_Family::from_params
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:91,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:95,1
    - Dst: measure_cost
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:98,1
    - Dst: std::chrono::milliseconds::count
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:100,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:100,1
    - Dst: min
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:116,1
    - Dst: static_cast<size_t>
      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:123,1
    - Dst: Botan::Argon2_Family::from_params
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - msec
    - max_memory
    - tune_time
    argTypes:
    - std::chrono::milliseconds
    - size_t
    - std::chrono::milliseconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 127
    functionName: Botan::Argon2_Family::tune
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timer::milliseconds
    - std::chrono::milliseconds::count
    - static_cast<size_t>
    - min
    - auto::derive_key
    - Botan::Argon2_Family::from_params
    - measure_cost
    - static_cast<uint64_t>
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: "std::unique_ptr<PasswordHash> Argon2_Family::tune(size_t /*output_length*/,\n
      \                                                 std::chrono::milliseconds
      msec,\n                                                  size_t max_memory,\n
      \                                                 std::chrono::milliseconds
      tune_time) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Argon2_Family::from_params
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.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::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:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iter
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 143
    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:146,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: 147
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 147
    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_Tests::random_bit_generator::max
    - BOTAN_ARG_CHECK
    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: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:85,1
    - Dst: Botan::Argon2_Family::from_params
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:91,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:95,1
    - Dst: measure_cost
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:98,1
    - Dst: std::chrono::milliseconds::count
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:100,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:100,1
    - Dst: min
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:116,1
    - Dst: static_cast<size_t>
      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:123,1
    - Dst: Botan::Argon2_Family::from_params
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp:126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - msec
    - max_memory
    - tune_time
    argTypes:
    - std::chrono::milliseconds
    - size_t
    - std::chrono::milliseconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 127
    functionName: Botan::Argon2_Family::tune
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timer::milliseconds
    - std::chrono::milliseconds::count
    - static_cast<size_t>
    - min
    - auto::derive_key
    - Botan::Argon2_Family::from_params
    - measure_cost
    - static_cast<uint64_t>
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: "std::unique_ptr<PasswordHash> Argon2_Family::tune(size_t /*output_length*/,\n
      \                                                 std::chrono::milliseconds
      msec,\n                                                  size_t max_memory,\n
      \                                                 std::chrono::milliseconds
      tune_time) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Argon2_Family::from_params
      Src: /src/botan/src/lib/pbkdf/argon2/argon2pwhash.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::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:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iter
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 143
    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:146,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: 147
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 147
    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_2x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:24,1
    - Dst: Botan::SIMD_2x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:25,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:28,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:29,1
    - Dst: Botan::SIMD_2x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:31,1
    - Dst: Botan::SIMD_2x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:32,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:35,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:36,1
    - Dst: Botan::SIMD_2x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:38,1
    - Dst: Botan::SIMD_2x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:39,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:42,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:43,1
    - Dst: Botan::SIMD_2x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:45,1
    - Dst: Botan::SIMD_2x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:46,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:49,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.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: 1
    functionLinenumber: 16
    functionLinenumberEnd: 51
    functionName: Botan::blamka_G
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp
    functionUses: 0
    functionsReached:
    - Botan::SIMD_2x64::mul2_32
    - Botan::rotr
    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_ssse3/argon2_ssse3.cpp:61,1
    - Dst: Botan::SIMD_2x64::twist
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:63,1
    - Dst: Botan::blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:64,1
    - Dst: Botan::SIMD_2x64::untwist
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.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: 1
    functionLinenumber: 53
    functionLinenumberEnd: 66
    functionName: Botan::blamka_R
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp
    functionUses: 0
    functionsReached:
    - Botan::blamka_G
    - Botan::SIMD_2x64::twist
    - Botan::SIMD_2x64::untwist
    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_2x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:24,1
    - Dst: Botan::SIMD_2x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:25,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:28,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:29,1
    - Dst: Botan::SIMD_2x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:31,1
    - Dst: Botan::SIMD_2x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:32,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:35,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:36,1
    - Dst: Botan::SIMD_2x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:38,1
    - Dst: Botan::SIMD_2x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:39,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:42,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:43,1
    - Dst: Botan::SIMD_2x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:45,1
    - Dst: Botan::SIMD_2x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:46,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:49,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.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: 1
    functionLinenumber: 16
    functionLinenumberEnd: 51
    functionName: Botan::blamka_G
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp
    functionUses: 1
    functionsReached:
    - Botan::SIMD_2x64::mul2_32
    - Botan::rotr
    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_ssse3/argon2_ssse3.cpp:61,1
    - Dst: Botan::SIMD_2x64::twist
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:63,1
    - Dst: Botan::blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:64,1
    - Dst: Botan::SIMD_2x64::untwist
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.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: 1
    functionLinenumber: 53
    functionLinenumberEnd: 66
    functionName: Botan::blamka_R
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp
    functionUses: 0
    functionsReached:
    - Botan::blamka_G
    - Botan::SIMD_2x64::twist
    - Botan::SIMD_2x64::untwist
    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_2x64::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:74,1
    - Dst: Botan::SIMD_2x64::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:75,1
    - Dst: blamka_R
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:78,1
    - Dst: store_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:81,1
    - Dst: store_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:82,1
    - Dst: Botan::SIMD_2x64::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:89,1
    - Dst: Botan::SIMD_2x64::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:90,1
    - Dst: blamka_R
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:93,1
    - Dst: store_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:96,1
    - Dst: store_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:97,1
    - Dst: Botan::SIMD_2x64::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:102,1
    - Dst: Botan::SIMD_2x64::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:103,1
    - Dst: Botan::SIMD_2x64::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:104,1
    - Dst: Botan::SIMD_2x64::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:105,1
    - Dst: SIMD_2x64::store_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:109,1
    - Dst: SIMD_2x64::store_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.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::Argon2::blamka_ssse3
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp
    functionUses: 2
    functionsReached:
    - blamka_R
    - SIMD_2x64::store_le
    - store_le
    - Botan::SIMD_2x64::load_le
    linkageType: ''
    returnType: void
    signature: void Argon2::blamka_ssse3(uint64_t N[128], uint64_t T[128])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIMD_2x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:24,1
    - Dst: Botan::SIMD_2x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:25,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:28,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:29,1
    - Dst: Botan::SIMD_2x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:31,1
    - Dst: Botan::SIMD_2x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:32,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:35,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:36,1
    - Dst: Botan::SIMD_2x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:38,1
    - Dst: Botan::SIMD_2x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:39,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:42,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:43,1
    - Dst: Botan::SIMD_2x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:45,1
    - Dst: Botan::SIMD_2x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:46,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:49,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.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: 1
    functionLinenumber: 16
    functionLinenumberEnd: 51
    functionName: Botan::blamka_G
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp
    functionUses: 2
    functionsReached:
    - Botan::SIMD_2x64::mul2_32
    - Botan::rotr
    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_ssse3/argon2_ssse3.cpp:61,1
    - Dst: Botan::SIMD_2x64::twist
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:63,1
    - Dst: Botan::blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:64,1
    - Dst: Botan::SIMD_2x64::untwist
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.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: 1
    functionLinenumber: 53
    functionLinenumberEnd: 66
    functionName: Botan::blamka_R
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp
    functionUses: 0
    functionsReached:
    - Botan::blamka_G
    - Botan::SIMD_2x64::twist
    - Botan::SIMD_2x64::untwist
    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_2x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:24,1
    - Dst: Botan::SIMD_2x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:25,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:28,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:29,1
    - Dst: Botan::SIMD_2x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:31,1
    - Dst: Botan::SIMD_2x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:32,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:35,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:36,1
    - Dst: Botan::SIMD_2x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:38,1
    - Dst: Botan::SIMD_2x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:39,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:42,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:43,1
    - Dst: Botan::SIMD_2x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:45,1
    - Dst: Botan::SIMD_2x64::mul2_32
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:46,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:49,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.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: 1
    functionLinenumber: 16
    functionLinenumberEnd: 51
    functionName: Botan::blamka_G
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp
    functionUses: 3
    functionsReached:
    - Botan::SIMD_2x64::mul2_32
    - Botan::rotr
    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_ssse3/argon2_ssse3.cpp:61,1
    - Dst: Botan::SIMD_2x64::twist
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:63,1
    - Dst: Botan::blamka_G
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:64,1
    - Dst: Botan::SIMD_2x64::untwist
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.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: 1
    functionLinenumber: 53
    functionLinenumberEnd: 66
    functionName: Botan::blamka_R
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp
    functionUses: 0
    functionsReached:
    - Botan::blamka_G
    - Botan::SIMD_2x64::twist
    - Botan::SIMD_2x64::untwist
    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_2x64::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:74,1
    - Dst: Botan::SIMD_2x64::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:75,1
    - Dst: blamka_R
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:78,1
    - Dst: store_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:81,1
    - Dst: store_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:82,1
    - Dst: Botan::SIMD_2x64::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:89,1
    - Dst: Botan::SIMD_2x64::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:90,1
    - Dst: blamka_R
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:93,1
    - Dst: store_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:96,1
    - Dst: store_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:97,1
    - Dst: Botan::SIMD_2x64::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:102,1
    - Dst: Botan::SIMD_2x64::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:103,1
    - Dst: Botan::SIMD_2x64::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:104,1
    - Dst: Botan::SIMD_2x64::load_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:105,1
    - Dst: SIMD_2x64::store_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp:109,1
    - Dst: SIMD_2x64::store_le
      Src: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.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::Argon2::blamka_ssse3
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2_ssse3/argon2_ssse3.cpp
    functionUses: 2
    functionsReached:
    - blamka_R
    - SIMD_2x64::store_le
    - store_le
    - Botan::SIMD_2x64::load_le
    linkageType: ''
    returnType: void
    signature: void Argon2::blamka_ssse3(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: 1
    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: 1
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: Botan::blamka_R
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp
    functionUses: 0
    functionsReached:
    - Botan::blamka_G
    - Botan::SIMD_4x64::untwist
    - Botan::SIMD_4x64::twist
    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: 1
    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: 1
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: Botan::blamka_R
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp
    functionUses: 0
    functionsReached:
    - Botan::blamka_G
    - Botan::SIMD_4x64::untwist
    - Botan::SIMD_4x64::twist
    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:
    - blamka_R
    - SIMD_4x64::store_le
    - Botan::SIMD_4x64::load_le2
    - Botan::SIMD_4x64::load_le
    - SIMD_4x64::store_le2
    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: 1
    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: 1
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: Botan::blamka_R
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp
    functionUses: 0
    functionsReached:
    - Botan::blamka_G
    - Botan::SIMD_4x64::untwist
    - Botan::SIMD_4x64::twist
    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: 1
    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: 1
    functionLinenumber: 35
    functionLinenumberEnd: 41
    functionName: Botan::blamka_R
    functionSourceFile: /src/botan/src/lib/pbkdf/argon2/argon2_avx2/argon2_avx2.cpp
    functionUses: 0
    functionsReached:
    - Botan::blamka_G
    - Botan::SIMD_4x64::untwist
    - Botan::SIMD_4x64::twist
    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:
    - blamka_R
    - SIMD_4x64::store_le
    - Botan::SIMD_4x64::load_le2
    - Botan::SIMD_4x64::load_le
    - SIMD_4x64::store_le2
    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: BOTAN_UNUSED
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:41,1
    - Dst: Botan::Scrypt_Family::from_params
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:63,1
    - Dst: measure_cost
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:65,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:67,1
    - Dst: std::chrono::milliseconds::count
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:70,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:70,1
    - Dst: scrypt_memory_usage
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:79,1
    - Dst: scrypt_memory_usage
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:87,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:98,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:98,1
    - Dst: std::make_unique<Scrypt>
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:101,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 4
    argNames:
    - output_length
    - msec
    - max_memory_usage_mb
    - tune_time
    argTypes:
    - size_t
    - std::chrono::milliseconds
    - size_t
    - std::chrono::milliseconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 102
    functionName: Botan::Scrypt_Family::tune
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp
    functionUses: 0
    functionsReached:
    - std::chrono::milliseconds::count
    - Botan::Scrypt_Family::from_params
    - std::min<size_t>
    - static_cast<size_t>
    - auto::derive_key
    - scrypt_memory_usage
    - measure_cost
    - BOTAN_UNUSED
    - std::make_unique<Scrypt>
    - static_cast<uint64_t>
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: "std::unique_ptr<PasswordHash> Scrypt_Family::tune(size_t output_length,\n
      \                                                 std::chrono::milliseconds
      msec,\n                                                  size_t max_memory_usage_mb,\n
      \                                                 std::chrono::milliseconds
      tune_time) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Scrypt>
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:105,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: 106
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 106
    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:124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - iter
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 125
    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:128,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:129,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:133,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:136,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:139,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: 141
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 141
    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:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 145
    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:148,1
    - Dst: parallelism
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:149,1
    - Dst: iterations
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:150,1
    - Dst: scrypt_memory_usage
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 153
    functionName: Botan::Scrypt::total_memory_usage
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp
    functionUses: 0
    functionsReached:
    - memory_param
    - iterations
    - scrypt_memory_usage
    - parallelism
    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:160,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:160,1
    - Dst: Botan::xor_buf
      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::load_le
      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::Salsa20::salsa_core
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:165,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:165,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:166,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:166,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:170,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:174,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: 176
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 176
    functionName: Botan::scryptBlockMix
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp
    functionUses: 0
    functionsReached:
    - Botan::Salsa20::salsa_core
    - Botan::xor_buf
    - Botan::copy_mem
    - secure_vector::data
    - Botan::load_le
    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:182,1
    - Dst: Botan::scryptBlockMix
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:183,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:188,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:189,1
    - Dst: Botan::scryptBlockMix
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:190,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: 192
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 192
    functionName: Botan::scryptROMmix
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp
    functionUses: 0
    functionsReached:
    - Botan::xor_buf
    - Botan::load_le
    - Botan::copy_mem
    - Botan::scryptBlockMix
    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:160,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:160,1
    - Dst: Botan::xor_buf
      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::load_le
      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::Salsa20::salsa_core
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:165,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:165,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:166,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:166,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:170,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:174,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: 176
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 176
    functionName: Botan::scryptBlockMix
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp
    functionUses: 1
    functionsReached:
    - Botan::Salsa20::salsa_core
    - Botan::xor_buf
    - Botan::copy_mem
    - secure_vector::data
    - Botan::load_le
    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:182,1
    - Dst: Botan::scryptBlockMix
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:183,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:188,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:189,1
    - Dst: Botan::scryptBlockMix
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:190,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: 192
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 192
    functionName: Botan::scryptROMmix
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp
    functionUses: 0
    functionsReached:
    - Botan::xor_buf
    - Botan::load_le
    - Botan::copy_mem
    - Botan::scryptBlockMix
    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:202,1
    - Dst: parallelism
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:203,1
    - Dst: iterations
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:204,1
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:211,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:214,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:214,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:216,1
    - Dst: pbkdf2
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:219,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:219,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:219,1
    - Dst: scryptROMmix
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:223,1
    - Dst: pbkdf2
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:226,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:226,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:226,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: 227
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 227
    functionName: Botan::Scrypt::derive_key
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp
    functionUses: 0
    functionsReached:
    - iterations
    - auto::set_key
    - secure_vector::size
    - as_span_of_bytes
    - Invalid_Argument
    - secure_vector::data
    - Botan::MessageAuthenticationCode::create_or_throw
    - scryptROMmix
    - memory_param
    - pbkdf2
    - 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: BOTAN_UNUSED
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:41,1
    - Dst: Botan::Scrypt_Family::from_params
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:63,1
    - Dst: measure_cost
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:65,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:67,1
    - Dst: std::chrono::milliseconds::count
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:70,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:70,1
    - Dst: scrypt_memory_usage
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:79,1
    - Dst: scrypt_memory_usage
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:87,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:98,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:98,1
    - Dst: std::make_unique<Scrypt>
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:101,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 4
    argNames:
    - output_length
    - msec
    - max_memory_usage_mb
    - tune_time
    argTypes:
    - size_t
    - std::chrono::milliseconds
    - size_t
    - std::chrono::milliseconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 102
    functionName: Botan::Scrypt_Family::tune
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp
    functionUses: 0
    functionsReached:
    - std::chrono::milliseconds::count
    - Botan::Scrypt_Family::from_params
    - std::min<size_t>
    - static_cast<size_t>
    - auto::derive_key
    - scrypt_memory_usage
    - measure_cost
    - BOTAN_UNUSED
    - std::make_unique<Scrypt>
    - static_cast<uint64_t>
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: "std::unique_ptr<PasswordHash> Scrypt_Family::tune(size_t output_length,\n
      \                                                 std::chrono::milliseconds
      msec,\n                                                  size_t max_memory_usage_mb,\n
      \                                                 std::chrono::milliseconds
      tune_time) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Scrypt>
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:105,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: 106
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 106
    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:124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - iter
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 125
    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:128,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:129,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:133,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:136,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:139,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: 141
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 141
    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:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 145
    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:148,1
    - Dst: parallelism
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:149,1
    - Dst: iterations
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:150,1
    - Dst: scrypt_memory_usage
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 153
    functionName: Botan::Scrypt::total_memory_usage
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp
    functionUses: 0
    functionsReached:
    - memory_param
    - iterations
    - scrypt_memory_usage
    - parallelism
    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:160,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:160,1
    - Dst: Botan::xor_buf
      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::load_le
      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::Salsa20::salsa_core
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:165,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:165,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:166,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:166,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:170,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:174,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: 176
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 176
    functionName: Botan::scryptBlockMix
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp
    functionUses: 2
    functionsReached:
    - Botan::Salsa20::salsa_core
    - Botan::xor_buf
    - Botan::copy_mem
    - secure_vector::data
    - Botan::load_le
    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:182,1
    - Dst: Botan::scryptBlockMix
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:183,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:188,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:189,1
    - Dst: Botan::scryptBlockMix
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:190,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: 192
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 192
    functionName: Botan::scryptROMmix
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp
    functionUses: 0
    functionsReached:
    - Botan::xor_buf
    - Botan::load_le
    - Botan::copy_mem
    - Botan::scryptBlockMix
    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:160,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:160,1
    - Dst: Botan::xor_buf
      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::load_le
      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::Salsa20::salsa_core
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:165,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:165,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:166,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:166,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:170,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:174,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: 176
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 176
    functionName: Botan::scryptBlockMix
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp
    functionUses: 3
    functionsReached:
    - Botan::Salsa20::salsa_core
    - Botan::xor_buf
    - Botan::copy_mem
    - secure_vector::data
    - Botan::load_le
    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:182,1
    - Dst: Botan::scryptBlockMix
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:183,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:188,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:189,1
    - Dst: Botan::scryptBlockMix
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:190,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: 192
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 192
    functionName: Botan::scryptROMmix
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp
    functionUses: 0
    functionsReached:
    - Botan::xor_buf
    - Botan::load_le
    - Botan::copy_mem
    - Botan::scryptBlockMix
    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:202,1
    - Dst: parallelism
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:203,1
    - Dst: iterations
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:204,1
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:211,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:214,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:214,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:216,1
    - Dst: pbkdf2
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:219,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:219,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:219,1
    - Dst: scryptROMmix
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:223,1
    - Dst: pbkdf2
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:226,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:226,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp:226,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: 227
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 227
    functionName: Botan::Scrypt::derive_key
    functionSourceFile: /src/botan/src/lib/pbkdf/scrypt/scrypt.cpp
    functionUses: 0
    functionsReached:
    - iterations
    - auto::set_key
    - secure_vector::size
    - as_span_of_bytes
    - Invalid_Argument
    - secure_vector::data
    - Botan::MessageAuthenticationCode::create_or_throw
    - scryptROMmix
    - memory_param
    - pbkdf2
    - 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:
    - Botan::PasswordHashFamily::create_or_throw
    - auto::from_params
    - auto::derive_key
    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:
    - Botan::PasswordHashFamily::create_or_throw
    - auto::from_params
    - auto::derive_key
    - std::string_view::size
    - std::string_view::data
    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:
    - Botan::PasswordHashFamily::create_or_throw
    - auto::from_params
    - auto::derive_key
    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:
    - Botan::PasswordHashFamily::create_or_throw
    - auto::from_params
    - auto::derive_key
    - std::string_view::size
    - std::string_view::data
    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:
    - Botan::PasswordHashFamily::create_or_throw
    - auto::from_params
    - auto::derive_key
    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:
    - Botan::PasswordHashFamily::create_or_throw
    - auto::from_params
    - auto::derive_key
    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: std::chrono::milliseconds::count
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:51,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
    - msec
    - tune_time
    argTypes:
    - size_t
    - std::chrono::milliseconds
    - std::chrono::milliseconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 60
    functionName: Botan::Bcrypt_PBKDF_Family::tune
    functionSourceFile: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp
    functionUses: 0
    functionsReached:
    - std::chrono::milliseconds::count
    - static_cast<size_t>
    - auto::derive_key
    - Botan::Bcrypt_PBKDF_Family::default_params
    - Botan::Bcrypt_PBKDF_Family::from_iterations
    - measure_cost
    - static_cast<uint64_t>
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: "std::unique_ptr<PasswordHash> Bcrypt_PBKDF_Family::tune(size_t output_length,\n
      \                                                       std::chrono::milliseconds
      msec,\n                                                        size_t /*max_memory*/,\n
      \                                                       std::chrono::milliseconds
      tune_time) 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:
    - salted_set_key
    - Botan::encrypt
    - Botan::data
    - Botan::xor_buf
    - Botan::store_be
    - Botan::copy_mem
    - Botan::size
    - Botan::load_le
    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:
    - salted_set_key
    - Botan::encrypt
    - Botan::data
    - Botan::xor_buf
    - Botan::store_be
    - Botan::copy_mem
    - Botan::size
    - Botan::load_le
    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:
    - auto::update
    - static_cast<uint32_t>
    - clear_mem
    - auto::process
    - auto::update_be
    - bcrypt_round
    - auto::output_length
    - BOTAN_ARG_CHECK
    - secure_vector::size
    - Botan::HashFunction::create_or_throw
    - as_span_of_bytes
    - secure_vector::data
    - auto::final
    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: std::chrono::milliseconds::count
      Src: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp:51,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
    - msec
    - tune_time
    argTypes:
    - size_t
    - std::chrono::milliseconds
    - std::chrono::milliseconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 60
    functionName: Botan::Bcrypt_PBKDF_Family::tune
    functionSourceFile: /src/botan/src/lib/pbkdf/bcrypt_pbkdf/bcrypt_pbkdf.cpp
    functionUses: 0
    functionsReached:
    - std::chrono::milliseconds::count
    - static_cast<size_t>
    - auto::derive_key
    - Botan::Bcrypt_PBKDF_Family::default_params
    - Botan::Bcrypt_PBKDF_Family::from_iterations
    - measure_cost
    - static_cast<uint64_t>
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: "std::unique_ptr<PasswordHash> Bcrypt_PBKDF_Family::tune(size_t output_length,\n
      \                                                       std::chrono::milliseconds
      msec,\n                                                        size_t /*max_memory*/,\n
      \                                                       std::chrono::milliseconds
      tune_time) 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:
    - salted_set_key
    - Botan::encrypt
    - Botan::data
    - Botan::xor_buf
    - Botan::store_be
    - Botan::copy_mem
    - Botan::size
    - Botan::load_le
    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:
    - salted_set_key
    - Botan::encrypt
    - Botan::data
    - Botan::xor_buf
    - Botan::store_be
    - Botan::copy_mem
    - Botan::size
    - Botan::load_le
    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:
    - auto::update
    - static_cast<uint32_t>
    - clear_mem
    - auto::process
    - auto::update_be
    - bcrypt_round
    - auto::output_length
    - BOTAN_ARG_CHECK
    - secure_vector::size
    - Botan::HashFunction::create_or_throw
    - as_span_of_bytes
    - secure_vector::data
    - auto::final
    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_CLI::Timer::milliseconds
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:32,1
    - 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<uint64_t>
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:53,1
    - Dst: std::chrono::milliseconds::count
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:53,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
    - msec
    argTypes:
    - MessageAuthenticationCode
    - size_t
    - std::chrono::milliseconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 68
    functionName: Botan::tune_pbkdf2
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timer::milliseconds
    - BOTAN_ASSERT_NOMSG
    - Botan::output_length
    - std::chrono::milliseconds::count
    - static_cast<size_t>
    - Botan::measure_cost
    - Botan::set_key
    - static_cast<uint64_t>
    - Botan::pbkdf2
    linkageType: ''
    returnType: size_t
    signature: "size_t tune_pbkdf2(MessageAuthenticationCode& prf,\n                   size_t
      output_length,\n                   std::chrono::milliseconds msec,\n                   std::chrono::milliseconds
      tune_time = std::chrono::milliseconds(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_CLI::Timer::milliseconds
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:32,1
    - 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<uint64_t>
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:53,1
    - Dst: std::chrono::milliseconds::count
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:53,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
    - msec
    argTypes:
    - MessageAuthenticationCode
    - size_t
    - std::chrono::milliseconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 68
    functionName: Botan::tune_pbkdf2
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp
    functionUses: 0
    functionsReached:
    - Botan_CLI::Timer::milliseconds
    - BOTAN_ASSERT_NOMSG
    - Botan::output_length
    - std::chrono::milliseconds::count
    - static_cast<size_t>
    - Botan::measure_cost
    - Botan::set_key
    - static_cast<uint64_t>
    - Botan::pbkdf2
    linkageType: ''
    returnType: size_t
    signature: "size_t tune_pbkdf2(MessageAuthenticationCode& prf,\n                   size_t
      output_length,\n                   std::chrono::milliseconds msec,\n                   std::chrono::milliseconds
      tune_time = std::chrono::milliseconds(10))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::tune_pbkdf2
      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: 3
    functionLinenumber: 72
    functionLinenumberEnd: 89
    functionName: Botan::pbkdf2
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp
    functionUses: 2
    functionsReached:
    - std::string_view::data
    - PBKDF2::derive_key
    - Botan::tune_pbkdf2
    - 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:
    - Botan::output_length
    - BOTAN_ASSERT_NOMSG
    - std::min<size_t>
    - update_be
    - Botan::Invalid_Argument
    - Botan::xor_buf
    - Botan::clear_mem
    - secure_vector::data
    - Botan::final
    - Botan::update
    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: 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
    - PBKDF2::derive_key
    - std::string_view::size
    - tune_pbkdf2
    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:
    - Botan::PKCS5_PBKDF2::new_object
    - std::make_unique<PKCS5_PBKDF2>
    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
    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:
    - new_object
    - tune_pbkdf2
    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
    - msec
    - tune_time
    argTypes:
    - size_t
    - std::chrono::milliseconds
    - std::chrono::milliseconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 189
    functionName: Botan::PBKDF2_Family::tune
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<PBKDF2>
    - tune_pbkdf2
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: "std::unique_ptr<PasswordHash> PBKDF2_Family::tune(size_t output_len,\n
      \                                                 std::chrono::milliseconds
      msec,\n                                                  size_t /*max_memory_usage_mb*/,\n
      \                                                 std::chrono::milliseconds
      tune_time) 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_CLI::Timer::milliseconds
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:32,1
    - 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<uint64_t>
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:53,1
    - Dst: std::chrono::milliseconds::count
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:53,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
    - msec
    argTypes:
    - MessageAuthenticationCode
    - size_t
    - std::chrono::milliseconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 29
    functionDepth: 4
    functionLinenumber: 29
    functionLinenumberEnd: 68
    functionName: Botan::tune_pbkdf2
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp
    functionUses: 1
    functionsReached:
    - Botan_CLI::Timer::milliseconds
    - BOTAN_ASSERT_NOMSG
    - Botan::output_length
    - std::chrono::milliseconds::count
    - static_cast<size_t>
    - Botan::measure_cost
    - Botan::set_key
    - static_cast<uint64_t>
    - Botan::pbkdf2
    linkageType: ''
    returnType: size_t
    signature: "size_t tune_pbkdf2(MessageAuthenticationCode& prf,\n                   size_t
      output_length,\n                   std::chrono::milliseconds msec,\n                   std::chrono::milliseconds
      tune_time = std::chrono::milliseconds(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_CLI::Timer::milliseconds
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:32,1
    - 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<uint64_t>
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:53,1
    - Dst: std::chrono::milliseconds::count
      Src: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp:53,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
    - msec
    argTypes:
    - MessageAuthenticationCode
    - size_t
    - std::chrono::milliseconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 29
    functionDepth: 4
    functionLinenumber: 29
    functionLinenumberEnd: 68
    functionName: Botan::tune_pbkdf2
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp
    functionUses: 1
    functionsReached:
    - Botan_CLI::Timer::milliseconds
    - BOTAN_ASSERT_NOMSG
    - Botan::output_length
    - std::chrono::milliseconds::count
    - static_cast<size_t>
    - Botan::measure_cost
    - Botan::set_key
    - static_cast<uint64_t>
    - Botan::pbkdf2
    linkageType: ''
    returnType: size_t
    signature: "size_t tune_pbkdf2(MessageAuthenticationCode& prf,\n                   size_t
      output_length,\n                   std::chrono::milliseconds msec,\n                   std::chrono::milliseconds
      tune_time = std::chrono::milliseconds(10))"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::tune_pbkdf2
      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: 3
    functionLinenumber: 72
    functionLinenumberEnd: 89
    functionName: Botan::pbkdf2
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp
    functionUses: 4
    functionsReached:
    - std::string_view::data
    - PBKDF2::derive_key
    - Botan::tune_pbkdf2
    - 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:
    - Botan::output_length
    - BOTAN_ASSERT_NOMSG
    - std::min<size_t>
    - update_be
    - Botan::Invalid_Argument
    - Botan::xor_buf
    - Botan::clear_mem
    - secure_vector::data
    - Botan::final
    - Botan::update
    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: 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
    - PBKDF2::derive_key
    - std::string_view::size
    - tune_pbkdf2
    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:
    - Botan::PKCS5_PBKDF2::new_object
    - std::make_unique<PKCS5_PBKDF2>
    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
    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:
    - new_object
    - tune_pbkdf2
    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
    - msec
    - tune_time
    argTypes:
    - size_t
    - std::chrono::milliseconds
    - std::chrono::milliseconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 189
    functionName: Botan::PBKDF2_Family::tune
    functionSourceFile: /src/botan/src/lib/pbkdf/pbkdf2/pbkdf2.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<PBKDF2>
    - tune_pbkdf2
    linkageType: ''
    returnType: std::unique_ptr<PasswordHash>
    signature: "std::unique_ptr<PasswordHash> PBKDF2_Family::tune(size_t output_len,\n
      \                                                 std::chrono::milliseconds
      msec,\n                                                  size_t /*max_memory_usage_mb*/,\n
      \                                                 std::chrono::milliseconds
      tune_time) 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:
    - PBKDF2
    - Botan::new_object
    - m_prf
    - m_iterations
    - BOTAN_DEPRECATED
    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:
    - PBKDF2
    - Botan::new_object
    - m_prf
    - m_iterations
    - BOTAN_DEPRECATED
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.h:42,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.h:46,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.h:50,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 1
    argNames:
    - config
    argTypes:
    - AsconConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 52
    functionName: Botan::Ascon_p::Ascon_p
    functionSourceFile: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.h
    functionUses: 0
    functionsReached:
    - Botan::Invalid_Argument
    linkageType: ''
    returnType: void
    signature: void Ascon_p(AsconConfig config)
  - 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::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: []
    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: Botan::Ascon_p::capacity
    functionSourceFile: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.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: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: Botan::Ascon_p::bit_rate
    functionSourceFile: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.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: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: Botan::Ascon_p::byte_rate
    functionSourceFile: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t byte_rate() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.h:42,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.h:46,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.h:50,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 1
    argNames:
    - config
    argTypes:
    - AsconConfig
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 52
    functionName: Botan::Ascon_p::Ascon_p
    functionSourceFile: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.h
    functionUses: 0
    functionsReached:
    - Botan::Invalid_Argument
    linkageType: ''
    returnType: void
    signature: void Ascon_p(AsconConfig config)
  - 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::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: []
    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: Botan::Ascon_p::capacity
    functionSourceFile: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.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: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: Botan::Ascon_p::bit_rate
    functionSourceFile: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.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: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: Botan::Ascon_p::byte_rate
    functionSourceFile: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t byte_rate() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:22,1
    - Dst: min
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:23,1
    - Dst: BufferSlicer::remaining
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:23,1
    - Dst: Botan::Ascon_p::byte_rate
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:23,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:24,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:27,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:28,1
    - Dst: BufferSlicer::take_byte
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:28,1
    - Dst: BufferSlicer::remaining
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:32,1
    - Dst: load_le
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:33,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:33,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:37,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:38,1
    - Dst: BufferSlicer::take_byte
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:38,1
    - Dst: Botan::Ascon_p::byte_rate
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:42,1
    - Dst: Botan::Ascon_p::permute
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:43,1
    - Dst: std::optional<uint8_t>::value_or
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:43,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - input
    - permutation_rounds
    argTypes:
    - std::span<const uint8_t>
    - std::optional<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 47
    functionName: Botan::Ascon_p::absorb
    functionSourceFile: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp
    functionUses: 0
    functionsReached:
    - BufferSlicer::empty
    - std::optional<uint8_t>::value_or
    - min
    - BufferSlicer::remaining
    - Botan::Ascon_p::byte_rate
    - load_le
    - Botan::Ascon_p::permute
    - BufferSlicer::take
    - static_cast<uint64_t>
    - BufferSlicer::take_byte
    linkageType: ''
    returnType: void
    signature: void Ascon_p::absorb(std::span<const uint8_t> input, std::optional<uint8_t>
      permutation_rounds)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:54,1
    - Dst: min
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:55,1
    - Dst: BufferStuffer::remaining_capacity
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:55,1
    - Dst: Botan::Ascon_p::byte_rate
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:55,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:56,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:59,1
    - Dst: BufferStuffer::next_byte
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:60,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:60,1
    - Dst: BufferStuffer::remaining_capacity
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:64,1
    - Dst: store_le
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:65,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:65,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:69,1
    - Dst: BufferStuffer::next_byte
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:70,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:70,1
    - Dst: Botan::Ascon_p::byte_rate
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:77,1
    - Dst: Botan::Ascon_p::permute
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:78,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 82
    functionName: Botan::Ascon_p::squeeze
    functionSourceFile: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp
    functionUses: 0
    functionsReached:
    - BufferStuffer::full
    - min
    - store_le
    - BufferStuffer::remaining_capacity
    - static_cast<uint8_t>
    - Botan::Ascon_p::byte_rate
    - BufferStuffer::next
    - BufferStuffer::next_byte
    - Botan::Ascon_p::permute
    linkageType: ''
    returnType: void
    signature: void Ascon_p::squeeze(std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ascon_p::absorb
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:96,1
    - Dst: first
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:96,1
    - Dst: Botan::Ascon_p::byte_rate
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:96,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 98
    functionName: Botan::Ascon_p::finish
    functionSourceFile: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::Ascon_p::absorb
    - first
    - Botan::Ascon_p::byte_rate
    linkageType: ''
    returnType: void
    signature: void Ascon_p::finish()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:101,1
    - Dst: rotr<19>
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:135,1
    - Dst: rotr<28>
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:135,1
    - Dst: rotr<61>
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:136,1
    - Dst: rotr<39>
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:136,1
    - Dst: rotr<1>
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:137,1
    - Dst: rotr<6>
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:137,1
    - Dst: rotr<10>
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:138,1
    - Dst: rotr<17>
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:138,1
    - Dst: rotr<7>
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:139,1
    - Dst: rotr<41>
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 1
    argNames:
    - rounds
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 141
    functionName: Botan::Ascon_p::permute
    functionSourceFile: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp
    functionUses: 2
    functionsReached:
    - rotr<28>
    - rotr<7>
    - rotr<10>
    - rotr<1>
    - rotr<41>
    - rotr<61>
    - BOTAN_DEBUG_ASSERT
    - rotr<6>
    - rotr<17>
    - rotr<19>
    - rotr<39>
    linkageType: ''
    returnType: void
    signature: void Ascon_p::permute(uint8_t rounds)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:22,1
    - Dst: min
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:23,1
    - Dst: BufferSlicer::remaining
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:23,1
    - Dst: Botan::Ascon_p::byte_rate
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:23,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:24,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:27,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:28,1
    - Dst: BufferSlicer::take_byte
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:28,1
    - Dst: BufferSlicer::remaining
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:32,1
    - Dst: load_le
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:33,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:33,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:37,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:38,1
    - Dst: BufferSlicer::take_byte
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:38,1
    - Dst: Botan::Ascon_p::byte_rate
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:42,1
    - Dst: Botan::Ascon_p::permute
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:43,1
    - Dst: std::optional<uint8_t>::value_or
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:43,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - input
    - permutation_rounds
    argTypes:
    - std::span<const uint8_t>
    - std::optional<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 47
    functionName: Botan::Ascon_p::absorb
    functionSourceFile: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp
    functionUses: 1
    functionsReached:
    - BufferSlicer::empty
    - std::optional<uint8_t>::value_or
    - min
    - BufferSlicer::remaining
    - Botan::Ascon_p::byte_rate
    - load_le
    - Botan::Ascon_p::permute
    - BufferSlicer::take
    - static_cast<uint64_t>
    - BufferSlicer::take_byte
    linkageType: ''
    returnType: void
    signature: void Ascon_p::absorb(std::span<const uint8_t> input, std::optional<uint8_t>
      permutation_rounds)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:54,1
    - Dst: min
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:55,1
    - Dst: BufferStuffer::remaining_capacity
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:55,1
    - Dst: Botan::Ascon_p::byte_rate
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:55,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:56,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:59,1
    - Dst: BufferStuffer::next_byte
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:60,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:60,1
    - Dst: BufferStuffer::remaining_capacity
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:64,1
    - Dst: store_le
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:65,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:65,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:69,1
    - Dst: BufferStuffer::next_byte
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:70,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:70,1
    - Dst: Botan::Ascon_p::byte_rate
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:77,1
    - Dst: Botan::Ascon_p::permute
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:78,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 82
    functionName: Botan::Ascon_p::squeeze
    functionSourceFile: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp
    functionUses: 0
    functionsReached:
    - BufferStuffer::full
    - min
    - store_le
    - BufferStuffer::remaining_capacity
    - static_cast<uint8_t>
    - Botan::Ascon_p::byte_rate
    - BufferStuffer::next
    - BufferStuffer::next_byte
    - Botan::Ascon_p::permute
    linkageType: ''
    returnType: void
    signature: void Ascon_p::squeeze(std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ascon_p::absorb
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:96,1
    - Dst: first
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:96,1
    - Dst: Botan::Ascon_p::byte_rate
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:96,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 98
    functionName: Botan::Ascon_p::finish
    functionSourceFile: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::Ascon_p::absorb
    - first
    - Botan::Ascon_p::byte_rate
    linkageType: ''
    returnType: void
    signature: void Ascon_p::finish()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:101,1
    - Dst: rotr<19>
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:135,1
    - Dst: rotr<28>
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:135,1
    - Dst: rotr<61>
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:136,1
    - Dst: rotr<39>
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:136,1
    - Dst: rotr<1>
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:137,1
    - Dst: rotr<6>
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:137,1
    - Dst: rotr<10>
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:138,1
    - Dst: rotr<17>
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:138,1
    - Dst: rotr<7>
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:139,1
    - Dst: rotr<41>
      Src: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 1
    argNames:
    - rounds
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 141
    functionName: Botan::Ascon_p::permute
    functionSourceFile: /src/botan/src/lib/permutations/ascon_perm/ascon_perm.cpp
    functionUses: 4
    functionsReached:
    - rotr<28>
    - rotr<7>
    - rotr<10>
    - rotr<1>
    - rotr<41>
    - rotr<61>
    - BOTAN_DEBUG_ASSERT
    - rotr<6>
    - rotr<17>
    - rotr<19>
    - rotr<39>
    linkageType: ''
    returnType: void
    signature: void Ascon_p::permute(uint8_t rounds)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 32
    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: zeroise
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: Botan::Keccak_Permutation::clear
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp
    functionUses: 0
    functionsReached:
    - zeroise
    linkageType: ''
    returnType: void
    signature: void Keccak_Permutation::clear()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:45,1
    - Dst: min
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:46,1
    - Dst: BufferSlicer::remaining
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:46,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:47,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:50,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:51,1
    - Dst: BufferSlicer::take_byte
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:51,1
    - Dst: BufferSlicer::remaining
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:55,1
    - Dst: load_le<uint64_t>
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:56,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:56,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:60,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:61,1
    - Dst: BufferSlicer::take_byte
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:61,1
    - Dst: Botan::Keccak_Permutation::permute
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:66,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 70
    functionName: Botan::Keccak_Permutation::absorb
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp
    functionUses: 0
    functionsReached:
    - BufferSlicer::empty
    - min
    - load_le<uint64_t>
    - BufferSlicer::remaining
    - Botan::Keccak_Permutation::permute
    - BufferSlicer::take
    - static_cast<uint64_t>
    - BufferSlicer::take_byte
    linkageType: ''
    returnType: void
    signature: void Keccak_Permutation::absorb(std::span<const uint8_t> input)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:77,1
    - Dst: min
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:78,1
    - Dst: BufferStuffer::remaining_capacity
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:78,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:79,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:82,1
    - Dst: BufferStuffer::next_byte
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:83,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:83,1
    - Dst: BufferStuffer::remaining_capacity
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:87,1
    - Dst: store_le
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:88,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:88,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:92,1
    - Dst: BufferStuffer::next_byte
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:93,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:93,1
    - Dst: Botan::Keccak_Permutation::permute
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:98,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 102
    functionName: Botan::Keccak_Permutation::squeeze
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp
    functionUses: 0
    functionsReached:
    - BufferStuffer::full
    - min
    - store_le
    - BufferStuffer::remaining_capacity
    - static_cast<uint8_t>
    - BufferStuffer::next
    - BufferStuffer::next_byte
    - Botan::Keccak_Permutation::permute
    linkageType: ''
    returnType: void
    signature: void Keccak_Permutation::squeeze(std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:123,1
    - Dst: Botan::Keccak_Permutation::permute
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 130
    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
    linkageType: ''
    returnType: void
    signature: void Keccak_Permutation::finish()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:134,1
    - Dst: Botan::Keccak_Permutation::permute_bmi2
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:135,1
    - Dst: Keccak_Permutation_round
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:149,1
    - Dst: data
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:149,1
    - Dst: Keccak_Permutation_round
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:150,1
    - Dst: data
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 152
    functionName: Botan::Keccak_Permutation::permute
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp
    functionUses: 3
    functionsReached:
    - has
    - Botan::Keccak_Permutation::permute_bmi2
    - Keccak_Permutation_round
    - data
    linkageType: ''
    returnType: void
    signature: void Keccak_Permutation::permute()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 32
    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: zeroise
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: Botan::Keccak_Permutation::clear
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp
    functionUses: 0
    functionsReached:
    - zeroise
    linkageType: ''
    returnType: void
    signature: void Keccak_Permutation::clear()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:45,1
    - Dst: min
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:46,1
    - Dst: BufferSlicer::remaining
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:46,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:47,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:50,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:51,1
    - Dst: BufferSlicer::take_byte
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:51,1
    - Dst: BufferSlicer::remaining
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:55,1
    - Dst: load_le<uint64_t>
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:56,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:56,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:60,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:61,1
    - Dst: BufferSlicer::take_byte
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:61,1
    - Dst: Botan::Keccak_Permutation::permute
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:66,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 70
    functionName: Botan::Keccak_Permutation::absorb
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp
    functionUses: 0
    functionsReached:
    - BufferSlicer::empty
    - min
    - load_le<uint64_t>
    - BufferSlicer::remaining
    - Botan::Keccak_Permutation::permute
    - BufferSlicer::take
    - static_cast<uint64_t>
    - BufferSlicer::take_byte
    linkageType: ''
    returnType: void
    signature: void Keccak_Permutation::absorb(std::span<const uint8_t> input)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:77,1
    - Dst: min
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:78,1
    - Dst: BufferStuffer::remaining_capacity
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:78,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:79,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:82,1
    - Dst: BufferStuffer::next_byte
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:83,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:83,1
    - Dst: BufferStuffer::remaining_capacity
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:87,1
    - Dst: store_le
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:88,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:88,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:92,1
    - Dst: BufferStuffer::next_byte
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:93,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:93,1
    - Dst: Botan::Keccak_Permutation::permute
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:98,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 72
    functionDepth: 2
    functionLinenumber: 72
    functionLinenumberEnd: 102
    functionName: Botan::Keccak_Permutation::squeeze
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp
    functionUses: 0
    functionsReached:
    - BufferStuffer::full
    - min
    - store_le
    - BufferStuffer::remaining_capacity
    - static_cast<uint8_t>
    - BufferStuffer::next
    - BufferStuffer::next_byte
    - Botan::Keccak_Permutation::permute
    linkageType: ''
    returnType: void
    signature: void Keccak_Permutation::squeeze(std::span<uint8_t> output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:123,1
    - Dst: Botan::Keccak_Permutation::permute
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 130
    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
    linkageType: ''
    returnType: void
    signature: void Keccak_Permutation::finish()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:134,1
    - Dst: Botan::Keccak_Permutation::permute_bmi2
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:135,1
    - Dst: Keccak_Permutation_round
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:149,1
    - Dst: data
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:149,1
    - Dst: Keccak_Permutation_round
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:150,1
    - Dst: data
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 152
    functionName: Botan::Keccak_Permutation::permute
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.cpp
    functionUses: 6
    functionsReached:
    - has
    - Botan::Keccak_Permutation::permute_bmi2
    - Keccak_Permutation_round
    - data
    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_ASSERT_NOMSG
    - Botan::keccak_int_left_encode
    - Botan::end
    - Botan::begin
    - absorb
    - Botan::update
    - absorb_padding
    - Botan::size
    - encode_string_and_absorb
    - insert
    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_ASSERT_NOMSG
    - Botan::keccak_int_left_encode
    - Botan::end
    - Botan::begin
    - absorb
    - Botan::update
    - absorb_padding
    - Botan::size
    - encode_string_and_absorb
    - insert
    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: 0
    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: void
    signature: void 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: 0
    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: void
    signature: void 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_ASSERT_NOMSG
    - Botan_Tests::random_bit_generator::max
    - Botan::ceil_log2
    - Botan::ceil_tobytes
    - max
    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_ASSERT_NOMSG
    - std::array::data
    - Botan::copy
    - std::array::begin
    - std::array::end
    - static_cast<uint8_t>
    - Botan::store_be
    - std::span<uint8_t>::begin
    - Botan::int_encoding_size
    - std::span<uint8_t>::size
    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_ASSERT_NOMSG
    - Botan_Tests::random_bit_generator::max
    - Botan::ceil_log2
    - Botan::ceil_tobytes
    - max
    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_ASSERT_NOMSG
    - std::array::data
    - Botan::copy
    - std::array::begin
    - std::array::end
    - static_cast<uint8_t>
    - Botan::store_be
    - std::span<uint8_t>::begin
    - Botan::int_encoding_size
    - std::span<uint8_t>::size
    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:
    - BOTAN_ASSERT_NOMSG
    - std::span<uint8_t>::empty
    - std::span<uint8_t>::first
    - std::span<uint8_t>::last
    - Botan::encode
    - std::span<uint8_t>::size
    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:
    - BOTAN_ASSERT_NOMSG
    - std::span<uint8_t>::size
    - Botan::encode
    - std::span<uint8_t>::first
    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_ASSERT_NOMSG
    - Botan_Tests::random_bit_generator::max
    - Botan::ceil_log2
    - Botan::ceil_tobytes
    - max
    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_ASSERT_NOMSG
    - std::array::data
    - Botan::copy
    - std::array::begin
    - std::array::end
    - static_cast<uint8_t>
    - Botan::store_be
    - std::span<uint8_t>::begin
    - Botan::int_encoding_size
    - std::span<uint8_t>::size
    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_ASSERT_NOMSG
    - Botan_Tests::random_bit_generator::max
    - Botan::ceil_log2
    - Botan::ceil_tobytes
    - max
    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_ASSERT_NOMSG
    - std::array::data
    - Botan::copy
    - std::array::begin
    - std::array::end
    - static_cast<uint8_t>
    - Botan::store_be
    - std::span<uint8_t>::begin
    - Botan::int_encoding_size
    - std::span<uint8_t>::size
    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:
    - BOTAN_ASSERT_NOMSG
    - std::span<uint8_t>::empty
    - std::span<uint8_t>::first
    - std::span<uint8_t>::last
    - Botan::encode
    - std::span<uint8_t>::size
    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:
    - BOTAN_ASSERT_NOMSG
    - std::span<uint8_t>::size
    - Botan::encode
    - std::span<uint8_t>::first
    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: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    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: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    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: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    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: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan::keccak1600
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KeccakPadding
    signature: KeccakPadding keccak1600()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.h:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - config
    argTypes:
    - Config
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 79
    functionName: Botan::Keccak_Permutation::Keccak_Permutation
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.h
    functionUses: 0
    functionsReached:
    - Botan::Invalid_Argument
    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: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: Botan::Keccak_Permutation::capacity
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.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: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: Botan::Keccak_Permutation::bit_rate
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.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: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: Botan::Keccak_Permutation::byte_rate
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t byte_rate() 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: 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: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    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: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    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: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan::keccak1600
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KeccakPadding
    signature: KeccakPadding keccak1600()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.h:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - config
    argTypes:
    - Config
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 79
    functionName: Botan::Keccak_Permutation::Keccak_Permutation
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.h
    functionUses: 0
    functionsReached:
    - Botan::Invalid_Argument
    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: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: Botan::Keccak_Permutation::capacity
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.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: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: Botan::Keccak_Permutation::bit_rate
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.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: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: Botan::Keccak_Permutation::byte_rate
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t byte_rate() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Keccak_Permutation_round
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_bmi2/keccak_perm_bmi2.cpp:25,1
    - Dst: data
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_bmi2/keccak_perm_bmi2.cpp:25,1
    - Dst: Keccak_Permutation_round
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_bmi2/keccak_perm_bmi2.cpp:26,1
    - Dst: data
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_bmi2/keccak_perm_bmi2.cpp:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 28
    functionName: Botan::Keccak_Permutation::permute_bmi2
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_bmi2/keccak_perm_bmi2.cpp
    functionUses: 2
    functionsReached:
    - Keccak_Permutation_round
    - data
    linkageType: ''
    returnType: void
    signature: void 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:25,1
    - Dst: data
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_bmi2/keccak_perm_bmi2.cpp:25,1
    - Dst: Keccak_Permutation_round
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_bmi2/keccak_perm_bmi2.cpp:26,1
    - Dst: data
      Src: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_bmi2/keccak_perm_bmi2.cpp:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 14
    functionDepth: 1
    functionLinenumber: 14
    functionLinenumberEnd: 28
    functionName: Botan::Keccak_Permutation::permute_bmi2
    functionSourceFile: /src/botan/src/lib/permutations/keccak_perm/keccak_perm_bmi2/keccak_perm_bmi2.cpp
    functionUses: 2
    functionsReached:
    - Keccak_Permutation_round
    - data
    linkageType: ''
    returnType: void
    signature: void Keccak_Permutation::permute_bmi2()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 132
    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: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    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: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    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: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    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: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    functionName: Botan::TLS::Alert
    functionSourceFile: /src/botan/src/lib/tls/tls_alert.h
    functionUses: 2
    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: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    functionName: Botan::TLS::Alert
    functionSourceFile: /src/botan/src/lib/tls/tls_alert.h
    functionUses: 2
    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: 132
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 132
    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: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    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: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    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: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    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: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    functionName: Botan::TLS::Alert
    functionSourceFile: /src/botan/src/lib/tls/tls_alert.h
    functionUses: 2
    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: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    functionName: Botan::TLS::Alert
    functionSourceFile: /src/botan/src/lib/tls/tls_alert.h
    functionUses: 2
    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: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 40
    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: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 31
    functionName: Botan::TLS::establish
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_noop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<Session_Handle>
    signature: "std::optional<Session_Handle> establish(const Session& /*session*/,\n
      \                                             const std::optional<Session_ID>&
      /*session_id*/ = std::nullopt,\n                                              bool
      /*tls12_no_ticket*/ = false) 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::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: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    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: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    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: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: Botan::TLS::find_some
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_noop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Session_with_Handle>
    signature: "std::vector<Session_with_Handle> find_some(const Server_Information&
      /*info*/,\n                                                 size_t /*max_sessions_hint*/)
      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: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 40
    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: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 31
    functionName: Botan::TLS::establish
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_noop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<Session_Handle>
    signature: "std::optional<Session_Handle> establish(const Session& /*session*/,\n
      \                                             const std::optional<Session_ID>&
      /*session_id*/ = std::nullopt,\n                                              bool
      /*tls12_no_ticket*/ = false) 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::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: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    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: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    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: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: Botan::TLS::find_some
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_noop.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Session_with_Handle>
    signature: "std::vector<Session_with_Handle> find_some(const Server_Information&
      /*info*/,\n                                                 size_t /*max_sessions_hint*/)
      override"
  - 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: ~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: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    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: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    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: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    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: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    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:76,1
    - Dst: Alert
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Alert::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    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:81,1
    - Dst: Alert
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Alert::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    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:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: Botan::TLS::Channel_Impl::close
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 19
    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: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    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: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    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: 195
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 195
    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:235,1
    - Dst: peer_transcript::insert
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:236,1
    - Dst: peer_transcript::end
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:236,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:236,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 237
    functionName: Botan::TLS::Channel_Impl::preserve_peer_transcript
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached:
    - peer_transcript::insert
    - peer_transcript::end
    - std::span<const uint8_t>::begin
    - BOTAN_STATE_CHECK
    - 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:240,1
    - Dst: client_hello_message::assign
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:241,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:241,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 242
    functionName: Botan::TLS::Channel_Impl::preserve_client_hello
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - client_hello_message::assign
    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:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - io_buf_sz
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 250
    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:261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 263
    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:266,1
    - Dst: client_hello_message::empty
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:266,1
    - Dst: peer_transcript::empty
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:267,1
    - Dst: tls12_session::has_value
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:267,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:268,1
    - Dst: Session_with_Handle::session::version
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:268,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:269,1
    - Dst: Botan::TLS::Channel_Impl::request_downgrade
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:270,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - session
    argTypes:
    - Session_with_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 271
    functionName: Botan::TLS::Channel_Impl::request_downgrade_for_resumption
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - peer_transcript::empty
    - std::move
    - tls12_session::has_value
    - client_hello_message::empty
    - Session_with_Handle::session::version
    - Botan::TLS::Channel_Impl::request_downgrade
    - 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: 279
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 279
    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:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 284
    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: 286
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 286
    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: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    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: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    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: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    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: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    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: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    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:76,1
    - Dst: Alert
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Alert::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    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:81,1
    - Dst: Alert
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Alert::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    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:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: Botan::TLS::Channel_Impl::close
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 19
    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: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    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: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    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: 195
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 195
    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:235,1
    - Dst: peer_transcript::insert
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:236,1
    - Dst: peer_transcript::end
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:236,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:236,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 237
    functionName: Botan::TLS::Channel_Impl::preserve_peer_transcript
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached:
    - peer_transcript::insert
    - peer_transcript::end
    - std::span<const uint8_t>::begin
    - BOTAN_STATE_CHECK
    - 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:240,1
    - Dst: client_hello_message::assign
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:241,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:241,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 242
    functionName: Botan::TLS::Channel_Impl::preserve_client_hello
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - client_hello_message::assign
    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:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - io_buf_sz
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 250
    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:261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 263
    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:266,1
    - Dst: client_hello_message::empty
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:266,1
    - Dst: peer_transcript::empty
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:267,1
    - Dst: tls12_session::has_value
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:267,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:268,1
    - Dst: Session_with_Handle::session::version
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:268,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:269,1
    - Dst: Botan::TLS::Channel_Impl::request_downgrade
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:270,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - session
    argTypes:
    - Session_with_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 271
    functionName: Botan::TLS::Channel_Impl::request_downgrade_for_resumption
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - peer_transcript::empty
    - std::move
    - tls12_session::has_value
    - client_hello_message::empty
    - Session_with_Handle::session::version
    - Botan::TLS::Channel_Impl::request_downgrade
    - 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: 279
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 279
    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:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 284
    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: 286
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 286
    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: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    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: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    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: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    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: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    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: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    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:76,1
    - Dst: Alert
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Alert::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    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:81,1
    - Dst: Alert
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Alert::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    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:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: Botan::TLS::Channel_Impl::close
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 19
    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: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    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: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    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: 195
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 195
    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:235,1
    - Dst: peer_transcript::insert
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:236,1
    - Dst: peer_transcript::end
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:236,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:236,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 237
    functionName: Botan::TLS::Channel_Impl::preserve_peer_transcript
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached:
    - peer_transcript::insert
    - peer_transcript::end
    - std::span<const uint8_t>::begin
    - BOTAN_STATE_CHECK
    - 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:240,1
    - Dst: client_hello_message::assign
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:241,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:241,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 242
    functionName: Botan::TLS::Channel_Impl::preserve_client_hello
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - client_hello_message::assign
    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:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - io_buf_sz
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 250
    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:261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 263
    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:266,1
    - Dst: client_hello_message::empty
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:266,1
    - Dst: peer_transcript::empty
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:267,1
    - Dst: tls12_session::has_value
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:267,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:268,1
    - Dst: Session_with_Handle::session::version
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:268,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:269,1
    - Dst: Botan::TLS::Channel_Impl::request_downgrade
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:270,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - session
    argTypes:
    - Session_with_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 271
    functionName: Botan::TLS::Channel_Impl::request_downgrade_for_resumption
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - peer_transcript::empty
    - std::move
    - tls12_session::has_value
    - client_hello_message::empty
    - Session_with_Handle::session::version
    - Botan::TLS::Channel_Impl::request_downgrade
    - 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: 279
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 279
    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:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 284
    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: 286
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 286
    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: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    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: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    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: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    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: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    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: 51
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 51
    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:76,1
    - Dst: Alert
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Alert::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    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:81,1
    - Dst: Alert
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Alert::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    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:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: Botan::TLS::Channel_Impl::close
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 19
    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: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    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: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    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: 195
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 195
    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:235,1
    - Dst: peer_transcript::insert
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:236,1
    - Dst: peer_transcript::end
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:236,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:236,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 237
    functionName: Botan::TLS::Channel_Impl::preserve_peer_transcript
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached:
    - peer_transcript::insert
    - peer_transcript::end
    - std::span<const uint8_t>::begin
    - BOTAN_STATE_CHECK
    - 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:240,1
    - Dst: client_hello_message::assign
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:241,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:241,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 242
    functionName: Botan::TLS::Channel_Impl::preserve_client_hello
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - client_hello_message::assign
    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:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - io_buf_sz
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 250
    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:261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 263
    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:266,1
    - Dst: client_hello_message::empty
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:266,1
    - Dst: peer_transcript::empty
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:267,1
    - Dst: tls12_session::has_value
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:267,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:268,1
    - Dst: Session_with_Handle::session::version
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:268,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:269,1
    - Dst: Botan::TLS::Channel_Impl::request_downgrade
      Src: /src/botan/src/lib/tls/tls_channel_impl.h:270,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - session
    argTypes:
    - Session_with_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 271
    functionName: Botan::TLS::Channel_Impl::request_downgrade_for_resumption
    functionSourceFile: /src/botan/src/lib/tls/tls_channel_impl.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - peer_transcript::empty
    - std::move
    - tls12_session::has_value
    - client_hello_message::empty
    - Session_with_Handle::session::version
    - Botan::TLS::Channel_Impl::request_downgrade
    - 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: 279
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 279
    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:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 284
    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: 286
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 286
    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: 19
    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::port
    - Botan::TLS::hostname
    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::port
    - Botan::TLS::hostname
    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: 20
    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:
    - hostname
    - service
    - 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: 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:
    - hostname
    - service
    - port
    linkageType: ''
    returnType: bool
    signature: bool operator<(const Server_Information& a, const Server_Information&
      b)
  - 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: 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:
    - Botan::TLS::Text_Policy::get_bool
    - Policy::allow_ssl_key_log_file
    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:
    - Policy::allowed_key_exchange_methods
    - Botan::TLS::Text_Policy::get_list
    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:
    - Botan::TLS::Text_Policy::get_bool
    - Policy::allow_tls12
    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:
    - Botan::TLS::Text_Policy::get_bool
    - Policy::allow_tls13
    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:
    - Policy::allow_dtls12
    - Botan::TLS::Text_Policy::get_bool
    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:
    - Botan::TLS::Text_Policy::get_bool
    - Policy::include_time_in_hello_random
    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
    - Policy::accepted_server_certificate_types
    - Botan::TLS::Text_Policy::get_str
    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:
    - Botan::TLS::Text_Policy::get_bool
    - Policy::server_uses_own_ciphersuite_preferences
    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:
    - std::make_optional
    - Botan::TLS::Text_Policy::get_len
    - BOTAN_ARG_CHECK
    - 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:
    - std::string::empty
    - Shim_Policy::key_exchange_groups
    - Botan::TLS::Text_Policy::get_str
    - 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:
    - std::string::empty
    - Botan::TLS::Text_Policy::key_exchange_groups_to_offer
    - Botan::TLS::Text_Policy::get_str
    - 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:
    - Policy::minimum_signature_strength
    - Botan::TLS::Text_Policy::get_len
    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:
    - Policy::dtls_default_mtu
    - Botan::TLS::Text_Policy::get_len
    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:
    - Botan::TLS::Text_Policy::get_len
    - Policy::dtls_maximum_timeout
    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:
    - Botan::TLS::Text_Policy::get_len
    - Policy::maximum_session_tickets_per_client_hello
    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:
    - Policy::new_session_tickets_upon_handshake_success
    - Botan::TLS::Text_Policy::get_len
    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
    - std::vector::push_back
    - std::vector<std::string>
    - Botan::TLS::Text_Policy::get_list
    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:
    - Botan::TLS::Text_Policy::get_bool
    - Policy::hash_hello_random
    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:
    - read_cfg
    - std::string
    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:
    - std::string::empty
    - Botan::TLS::Text_Policy::get_str
    - split_on
    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:
    - static_cast<uint16_t>
    - std::vector::push_back
    - Group_Params::is_available
    - std::stoul
    - size
    - static_cast<Group_Params>
    - split_on
    - Botan::TLS::Group_Params::from_string
    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:
    - certificate_type_from_string
    - std::vector::push_back
    - split_on
    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:
    - std::string::empty
    - to_u32bit
    - Botan::TLS::Text_Policy::get_str
    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_Tests::random_bit_generator::max
    - Botan::TLS::Text_Policy::get_len
    - static_cast<size_t>
    - rep_t
    - std::min<ull>
    - std::chrono::seconds::count
    - Botan_CLI::Timer::seconds
    - max
    - static_cast<rep_t>
    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:
    - std::string::empty
    - Decoding_Error
    - Botan::TLS::Text_Policy::get_str
    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:
    - find
    - end
    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:
    - find
    - std::make_pair
    - end
    - insert
    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:
    - Botan::TLS::Text_Policy::get_bool
    - Policy::allow_ssl_key_log_file
    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:
    - Policy::allowed_key_exchange_methods
    - Botan::TLS::Text_Policy::get_list
    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:
    - Botan::TLS::Text_Policy::get_bool
    - Policy::allow_tls12
    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:
    - Botan::TLS::Text_Policy::get_bool
    - Policy::allow_tls13
    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:
    - Policy::allow_dtls12
    - Botan::TLS::Text_Policy::get_bool
    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:
    - Botan::TLS::Text_Policy::get_bool
    - Policy::include_time_in_hello_random
    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
    - Policy::accepted_server_certificate_types
    - Botan::TLS::Text_Policy::get_str
    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:
    - Botan::TLS::Text_Policy::get_bool
    - Policy::server_uses_own_ciphersuite_preferences
    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:
    - std::make_optional
    - Botan::TLS::Text_Policy::get_len
    - BOTAN_ARG_CHECK
    - 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:
    - std::string::empty
    - Shim_Policy::key_exchange_groups
    - Botan::TLS::Text_Policy::get_str
    - 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:
    - std::string::empty
    - Botan::TLS::Text_Policy::key_exchange_groups_to_offer
    - Botan::TLS::Text_Policy::get_str
    - 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:
    - Policy::minimum_signature_strength
    - Botan::TLS::Text_Policy::get_len
    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:
    - Policy::dtls_default_mtu
    - Botan::TLS::Text_Policy::get_len
    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:
    - Botan::TLS::Text_Policy::get_len
    - Policy::dtls_maximum_timeout
    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:
    - Botan::TLS::Text_Policy::get_len
    - Policy::maximum_session_tickets_per_client_hello
    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:
    - Policy::new_session_tickets_upon_handshake_success
    - Botan::TLS::Text_Policy::get_len
    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
    - std::vector::push_back
    - std::vector<std::string>
    - Botan::TLS::Text_Policy::get_list
    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:
    - Botan::TLS::Text_Policy::get_bool
    - Policy::hash_hello_random
    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:
    - read_cfg
    - std::string
    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:
    - std::string::empty
    - Botan::TLS::Text_Policy::get_str
    - split_on
    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:
    - static_cast<uint16_t>
    - std::vector::push_back
    - Group_Params::is_available
    - std::stoul
    - size
    - static_cast<Group_Params>
    - split_on
    - Botan::TLS::Group_Params::from_string
    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:
    - certificate_type_from_string
    - std::vector::push_back
    - split_on
    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:
    - std::string::empty
    - to_u32bit
    - Botan::TLS::Text_Policy::get_str
    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_Tests::random_bit_generator::max
    - Botan::TLS::Text_Policy::get_len
    - static_cast<size_t>
    - rep_t
    - std::min<ull>
    - std::chrono::seconds::count
    - Botan_CLI::Timer::seconds
    - max
    - static_cast<rep_t>
    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:
    - std::string::empty
    - Decoding_Error
    - Botan::TLS::Text_Policy::get_str
    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:
    - find
    - end
    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:
    - find
    - std::make_pair
    - end
    - insert
    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: 17
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 17
    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: 23
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 23
    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:34,1
    - Dst: fmt
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:34,1
    - Dst: Botan::Credentials_Manager::session_ticket_key
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:44,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:44,1
    - Dst: SymmetricKey
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:45,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:45,1
    - Dst: Botan::Credentials_Manager::dtls_cookie_secret
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:48,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:48,1
    - Dst: SymmetricKey
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:49,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:49,1
    - Dst: Botan::Credentials_Manager::find_preshared_keys
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:54,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:54,1
    - Dst: SymmetricKey
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:55,1
    - Dst: auto::front
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:55,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:59,1
    - Dst: fmt
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:59,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: 60
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 60
    functionName: Botan::Credentials_Manager::psk
    functionSourceFile: /src/botan/src/lib/tls/credentials_manager.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - auto::empty
    - auto::front
    - Botan::Credentials_Manager::find_preshared_keys
    - Botan::Credentials_Manager::session_ticket_key
    - Internal_Error
    - SymmetricKey
    - auto::size
    - Botan::Credentials_Manager::dtls_cookie_secret
    - 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: 67
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 67
    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:73,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:74,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:77,1
    - Dst: auto::front
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:77,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: 79
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 79
    functionName: Botan::Credentials_Manager::choose_preshared_key
    functionSourceFile: /src/botan/src/lib/tls/credentials_manager.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - auto::empty
    - Botan::Credentials_Manager::find_preshared_keys
    - 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:87,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: 88
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 88
    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: 94
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 94
    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:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 101
    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:108,1
    - Dst: std::vector<X509_DN>
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:108,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: 109
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 109
    functionName: Botan::Credentials_Manager::cert_chain_single_type
    functionSourceFile: /src/botan/src/lib/tls/credentials_manager.cpp
    functionUses: 0
    functionsReached:
    - std::vector<X509_DN>
    - Botan::Credentials_Manager::find_cert_chain
    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: 115
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 115
    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: 121
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 121
    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: 125
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 125
    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: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    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:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    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: 17
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 17
    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: 23
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 23
    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:34,1
    - Dst: fmt
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:34,1
    - Dst: Botan::Credentials_Manager::session_ticket_key
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:44,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:44,1
    - Dst: SymmetricKey
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:45,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:45,1
    - Dst: Botan::Credentials_Manager::dtls_cookie_secret
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:48,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:48,1
    - Dst: SymmetricKey
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:49,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:49,1
    - Dst: Botan::Credentials_Manager::find_preshared_keys
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:54,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:54,1
    - Dst: SymmetricKey
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:55,1
    - Dst: auto::front
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:55,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:59,1
    - Dst: fmt
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:59,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: 60
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 60
    functionName: Botan::Credentials_Manager::psk
    functionSourceFile: /src/botan/src/lib/tls/credentials_manager.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - auto::empty
    - auto::front
    - Botan::Credentials_Manager::find_preshared_keys
    - Botan::Credentials_Manager::session_ticket_key
    - Internal_Error
    - SymmetricKey
    - auto::size
    - Botan::Credentials_Manager::dtls_cookie_secret
    - 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: 67
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 67
    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:73,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:74,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:77,1
    - Dst: auto::front
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:77,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: 79
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 79
    functionName: Botan::Credentials_Manager::choose_preshared_key
    functionSourceFile: /src/botan/src/lib/tls/credentials_manager.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - auto::empty
    - Botan::Credentials_Manager::find_preshared_keys
    - 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:87,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: 88
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 88
    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: 94
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 94
    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:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 101
    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:108,1
    - Dst: std::vector<X509_DN>
      Src: /src/botan/src/lib/tls/credentials_manager.cpp:108,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: 109
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 109
    functionName: Botan::Credentials_Manager::cert_chain_single_type
    functionSourceFile: /src/botan/src/lib/tls/credentials_manager.cpp
    functionUses: 0
    functionsReached:
    - std::vector<X509_DN>
    - Botan::Credentials_Manager::find_cert_chain
    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: 115
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 115
    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: 121
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 121
    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: 125
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 125
    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: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    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:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 134
    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:29,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_session.cpp:33,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls_session.cpp:33,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_session.cpp:34,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_session.cpp:34,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_session.cpp:37,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls_session.cpp:37,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_session.cpp:38,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_session.cpp:38,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/tls/tls_session.cpp:38,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_session.cpp:44,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls_session.cpp:44,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_session.cpp:45,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_session.cpp:45,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/tls/tls_session.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 50
    functionName: Botan::TLS::Session_Handle::validate_constraints
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::random_bit_generator::max
    - size
    - BOTAN_ARG_CHECK
    - std::visit
    - 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:54,1
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls_session.cpp:54,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls_session.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: Botan::TLS::Session_Handle::opaque_handle
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - Opaque_Session_Handle
    - std::visit
    - 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:58,1
    - Dst: std::get<Session_ID>
      Src: /src/botan/src/lib/tls/tls_session.cpp:59,1
    - Dst: is_opaque_handle
      Src: /src/botan/src/lib/tls/tls_session.cpp:63,1
    - Dst: std::get<Opaque_Session_Handle>
      Src: /src/botan/src/lib/tls/tls_session.cpp:64,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_session.cpp:65,1
    - Dst: Session_ID
      Src: /src/botan/src/lib/tls/tls_session.cpp:66,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls_session.cpp:66,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 71
    functionName: Botan::TLS::Session_Handle::id
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - Session_ID
    - size
    - std::get<Session_ID>
    - get
    - is_id
    - is_opaque_handle
    - 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:74,1
    - Dst: std::get<Session_Ticket>
      Src: /src/botan/src/lib/tls/tls_session.cpp:75,1
    - Dst: is_opaque_handle
      Src: /src/botan/src/lib/tls/tls_session.cpp:79,1
    - Dst: Session_Ticket
      Src: /src/botan/src/lib/tls/tls_session.cpp:80,1
    - Dst: std::get<Opaque_Session_Handle>
      Src: /src/botan/src/lib/tls/tls_session.cpp:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 84
    functionName: Botan::TLS::Session_Handle::ticket
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - Session_Ticket
    - is_ticket
    - std::get<Session_Ticket>
    - is_opaque_handle
    - std::get<Opaque_Session_Handle>
    linkageType: ''
    returnType: std::optional<Session_Ticket>
    signature: std::optional<Session_Ticket> Session_Handle::ticket() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/tls_session.cpp:87,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls_session.cpp:88,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_session.cpp:89,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:89,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls_session.cpp:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: Botan::TLS::Session_Base::ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - auto::has_value
    - auto::value
    - Botan::TLS::Ciphersuite::by_id
    - std::to_string
    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:97,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_session.cpp:98,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls_session.cpp:98,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls_session.cpp:100,1
    - Dst: auto::kex_algo
      Src: /src/botan/src/lib/tls/tls_session.cpp:101,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: 102
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 102
    functionName: Botan::TLS::Session_Summary::Session_Summary
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - auto::kex_algo
    - BOTAN_ARG_CHECK
    - version
    - ciphersuite
    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:110,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:111,1
    - Dst: std::optional<Named_Group>::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls_session.cpp:112,1
    - Dst: std::optional<Named_Group>::is_x25519
      Src: /src/botan/src/lib/tls/tls_session.cpp:112,1
    - Dst: std::optional<Named_Group>::is_x448
      Src: /src/botan/src/lib/tls/tls_session.cpp:112,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:113,1
    - Dst: std::optional<Named_Group>::is_pure_ml_kem
      Src: /src/botan/src/lib/tls/tls_session.cpp:114,1
    - Dst: std::optional<Named_Group>::is_pure_frodokem
      Src: /src/botan/src/lib/tls/tls_session.cpp:114,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:115,1
    - Dst: std::optional<Named_Group>::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls_session.cpp:116,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:117,1
    - Dst: std::optional<Named_Group>::to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:118,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:122,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_session.cpp:124,1
    - Dst: std::optional<Named_Group>::has_value
      Src: /src/botan/src/lib/tls/tls_session.cpp:124,1
    - Dst: std::optional<Named_Group>::is_dh_named_group
      Src: /src/botan/src/lib/tls/tls_session.cpp:125,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:126,1
    - Dst: std::optional<Named_Group>::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls_session.cpp:127,1
    - Dst: std::optional<Named_Group>::is_x25519
      Src: /src/botan/src/lib/tls/tls_session.cpp:127,1
    - Dst: std::optional<Named_Group>::is_x448
      Src: /src/botan/src/lib/tls/tls_session.cpp:127,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:128,1
    - Dst: std::optional<Named_Group>::is_pure_ml_kem
      Src: /src/botan/src/lib/tls/tls_session.cpp:129,1
    - Dst: std::optional<Named_Group>::is_pure_frodokem
      Src: /src/botan/src/lib/tls/tls_session.cpp:129,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:130,1
    - Dst: std::optional<Named_Group>::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls_session.cpp:131,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:132,1
    - Dst: std::optional<Named_Group>::to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:133,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:138,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 39
    argCount: 2
    argNames:
    - psk
    - group
    argTypes:
    - bool
    - std::optional<Named_Group>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 139
    functionName: Botan::TLS::tls13_kex_to_string
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::optional<Named_Group>::is_dh_named_group
    - std::optional<Named_Group>::is_x25519
    - std::optional<Named_Group>::is_pqc_hybrid
    - std::optional<Named_Group>::is_pure_frodokem
    - std::optional<Named_Group>::to_string
    - std::optional<Named_Group>::is_pure_ml_kem
    - std::optional<Named_Group>::is_x448
    - Botan::TLS::kex_method_to_string
    - std::optional<Named_Group>::has_value
    - std::optional<Named_Group>::is_ecdh_named_curve
    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:110,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:111,1
    - Dst: std::optional<Named_Group>::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls_session.cpp:112,1
    - Dst: std::optional<Named_Group>::is_x25519
      Src: /src/botan/src/lib/tls/tls_session.cpp:112,1
    - Dst: std::optional<Named_Group>::is_x448
      Src: /src/botan/src/lib/tls/tls_session.cpp:112,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:113,1
    - Dst: std::optional<Named_Group>::is_pure_ml_kem
      Src: /src/botan/src/lib/tls/tls_session.cpp:114,1
    - Dst: std::optional<Named_Group>::is_pure_frodokem
      Src: /src/botan/src/lib/tls/tls_session.cpp:114,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:115,1
    - Dst: std::optional<Named_Group>::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls_session.cpp:116,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:117,1
    - Dst: std::optional<Named_Group>::to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:118,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:122,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_session.cpp:124,1
    - Dst: std::optional<Named_Group>::has_value
      Src: /src/botan/src/lib/tls/tls_session.cpp:124,1
    - Dst: std::optional<Named_Group>::is_dh_named_group
      Src: /src/botan/src/lib/tls/tls_session.cpp:125,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:126,1
    - Dst: std::optional<Named_Group>::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls_session.cpp:127,1
    - Dst: std::optional<Named_Group>::is_x25519
      Src: /src/botan/src/lib/tls/tls_session.cpp:127,1
    - Dst: std::optional<Named_Group>::is_x448
      Src: /src/botan/src/lib/tls/tls_session.cpp:127,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:128,1
    - Dst: std::optional<Named_Group>::is_pure_ml_kem
      Src: /src/botan/src/lib/tls/tls_session.cpp:129,1
    - Dst: std::optional<Named_Group>::is_pure_frodokem
      Src: /src/botan/src/lib/tls/tls_session.cpp:129,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:130,1
    - Dst: std::optional<Named_Group>::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls_session.cpp:131,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:132,1
    - Dst: std::optional<Named_Group>::to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:133,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:138,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 39
    argCount: 2
    argNames:
    - psk
    - group
    argTypes:
    - bool
    - std::optional<Named_Group>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 139
    functionName: Botan::TLS::tls13_kex_to_string
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::optional<Named_Group>::is_dh_named_group
    - std::optional<Named_Group>::is_x25519
    - std::optional<Named_Group>::is_pqc_hybrid
    - std::optional<Named_Group>::is_pure_frodokem
    - std::optional<Named_Group>::to_string
    - std::optional<Named_Group>::is_pure_ml_kem
    - std::optional<Named_Group>::is_x448
    - Botan::TLS::kex_method_to_string
    - std::optional<Named_Group>::has_value
    - std::optional<Named_Group>::is_ecdh_named_curve
    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:152,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls_session.cpp:153,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_session.cpp:168,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_session.cpp:169,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_session.cpp:170,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_session.cpp:171,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_session.cpp:173,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls_session.cpp:173,1
    - Dst: set_session_id
      Src: /src/botan/src/lib/tls/tls_session.cpp:174,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls_session.cpp:174,1
    - Dst: psk_used
      Src: /src/botan/src/lib/tls/tls_session.cpp:180,1
    - Dst: was_resumption
      Src: /src/botan/src/lib/tls/tls_session.cpp:180,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls_session.cpp:181,1
    - Dst: auto*::selected_group
      Src: /src/botan/src/lib/tls/tls_session.cpp:182,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls_session.cpp:187,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls_session.cpp:188,1
    - Dst: auto*::selected_group
      Src: /src/botan/src/lib/tls/tls_session.cpp:189,1
    - Dst: std::optional::has_value
      Src: /src/botan/src/lib/tls/tls_session.cpp:193,1
    - Dst: std::optional::to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:194,1
    - Dst: tls13_kex_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:197,1
    - Dst: psk_used
      Src: /src/botan/src/lib/tls/tls_session.cpp:197,1
    - Dst: was_resumption
      Src: /src/botan/src/lib/tls/tls_session.cpp:197,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: 198
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 198
    functionName: Botan::TLS::Session_Summary::Session_Summary
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - was_resumption
    - std::optional::to_string
    - extensions
    - auto*::selected_group
    - tls13_kex_to_string
    - session_id
    - BOTAN_ARG_CHECK
    - set_session_id
    - BOTAN_ASSERT_NONNULL
    - selected_version
    - std::optional::has_value
    - psk_used
    - version
    - ciphersuite
    linkageType: ''
    returnType: void
    signature: "void Session_Summary::Session_Summary(const Server_Hello_13& server_hello,\n
      \                                Connection_Side side,\n                                 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:228,1
    - Dst: Protocol_Version::is_pre_tls_13
      Src: /src/botan/src/lib/tls/tls_session.cpp:228,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: 229
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 229
    functionName: Botan::TLS::Session::Session
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    - Protocol_Version::is_pre_tls_13
    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:262,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls_session.cpp:265,1
    - Dst: value_or
      Src: /src/botan/src/lib/tls/tls_session.cpp:266,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_session.cpp:269,1
    - Dst: Protocol_Version::is_pre_tls_13
      Src: /src/botan/src/lib/tls/tls_session.cpp:269,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: 270
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 270
    functionName: Botan::TLS::Session::Session
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - value_or
    - 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:281,1
    - Dst: selected_version
      Src: /src/botan/src/lib/tls/tls_session.cpp:282,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls_session.cpp:283,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_session.cpp:289,1
    - Dst: Server_Information
      Src: /src/botan/src/lib/tls/tls_session.cpp:290,1
    - Dst: sni_hostname
      Src: /src/botan/src/lib/tls/tls_session.cpp:290,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_session.cpp:291,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls_session.cpp:292,1
    - Dst: value_or
      Src: /src/botan/src/lib/tls/tls_session.cpp:293,1
    - Dst: load_be<uint32_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:294,1
    - Dst: random_vec
      Src: /src/botan/src/lib/tls/tls_session.cpp:294,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_session.cpp:296,1
    - Dst: is_pre_tls_13
      Src: /src/botan/src/lib/tls/tls_session.cpp:296,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: 298
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 298
    functionName: Botan::TLS::Session::Session
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - value_or
    - load_be<uint32_t>
    - Server_Information
    - BOTAN_ARG_CHECK
    - selected_version
    - is_pre_tls_13
    - random_vec
    - ciphersuite
    - tls_current_timestamp
    - has_value
    - sni_hostname
    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:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pem
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 302
    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:321,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/tls/tls_session.cpp:321,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/tls_session.cpp:321,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:323,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/tls_session.cpp:346,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_session.cpp:347,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:350,1
    - Dst: Protocol_Version
      Src: /src/botan/src/lib/tls/tls_session.cpp:354,1
    - Dst: std::chrono::system_clock::from_time_t
      Src: /src/botan/src/lib/tls/tls_session.cpp:355,1
    - Dst: static_cast<Connection_Side>
      Src: /src/botan/src/lib/tls/tls_session.cpp:356,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:357,1
    - Dst: Server_Information
      Src: /src/botan/src/lib/tls/tls_session.cpp:360,1
    - Dst: ASN1_String::value
      Src: /src/botan/src/lib/tls/tls_session.cpp:360,1
    - Dst: ASN1_String::value
      Src: /src/botan/src/lib/tls/tls_session.cpp:360,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:360,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls_session.cpp:362,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/lib/tls/tls_session.cpp:363,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/lib/tls/tls_session.cpp:366,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - ber_data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 304
    functionDepth: 2
    functionLinenumber: 304
    functionLinenumberEnd: 367
    functionName: Botan::TLS::Session::Session
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - BER_Decoder
    - Decoding_Error
    - static_cast<uint16_t>
    - std::span<const uint8_t>::data
    - static_cast<size_t>
    - std::span<const uint8_t>::size
    - std::chrono::system_clock::from_time_t
    - Server_Information
    - Botan_CLI::Timer::seconds
    - ASN1_String::value
    - std::vector::empty
    - Botan::TLS::Ciphersuite::by_id
    - static_cast<Connection_Side>
    - Protocol_Version
    - std::to_string
    - Botan::X509::load_key
    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:371,1
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/tls/tls_session.cpp:373,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:375,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:376,1
    - Dst: std::chrono::system_clock::to_time_t
      Src: /src/botan/src/lib/tls/tls_session.cpp:376,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:377,1
    - Dst: major_version
      Src: /src/botan/src/lib/tls/tls_session.cpp:377,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:378,1
    - Dst: minor_version
      Src: /src/botan/src/lib/tls/tls_session.cpp:378,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:379,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:380,1
    - Dst: ASN1_String
      Src: /src/botan/src/lib/tls/tls_session.cpp:388,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls_session.cpp:388,1
    - Dst: ASN1_String
      Src: /src/botan/src/lib/tls/tls_session.cpp:389,1
    - Dst: service
      Src: /src/botan/src/lib/tls/tls_session.cpp:389,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:390,1
    - Dst: port
      Src: /src/botan/src/lib/tls/tls_session.cpp:390,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:391,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:395,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:396,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:397,1
    - Dst: count
      Src: /src/botan/src/lib/tls/tls_session.cpp:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 400
    functionName: Botan::TLS::Session::DER_encode
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 2
    functionsReached:
    - std::chrono::system_clock::to_time_t
    - static_cast<size_t>
    - count
    - minor_version
    - ASN1_String
    - service
    - subject_public_key
    - DER_Encoder
    - hostname
    - major_version
    - port
    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:403,1
    - Dst: Botan::TLS::Session::DER_encode
      Src: /src/botan/src/lib/tls/tls_session.cpp:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 404
    functionName: Botan::TLS::Session::PEM_encode
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 2
    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:407,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls_session.cpp:407,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/tls/tls_session.cpp:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 409
    functionName: Botan::TLS::Session::extract_master_secret
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - empty
    - std::exchange
    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:433,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/tls/tls_session.cpp:434,1
    - Dst: auto::output_length
      Src: /src/botan/src/lib/tls/tls_session.cpp:437,1
    - Dst: auto::update
      Src: /src/botan/src/lib/tls/tls_session.cpp:438,1
    - Dst: auto::final
      Src: /src/botan/src/lib/tls/tls_session.cpp:439,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls_session.cpp:439,1
    - Dst: std::vector::resize
      Src: /src/botan/src/lib/tls/tls_session.cpp:440,1
    - Dst: random_vec
      Src: /src/botan/src/lib/tls/tls_session.cpp:445,1
    - Dst: random_vec
      Src: /src/botan/src/lib/tls/tls_session.cpp:446,1
    - Dst: auto::update
      Src: /src/botan/src/lib/tls/tls_session.cpp:448,1
    - Dst: auto::final
      Src: /src/botan/src/lib/tls/tls_session.cpp:449,1
    - Dst: Botan::TLS::Session::DER_encode
      Src: /src/botan/src/lib/tls/tls_session.cpp:451,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls_session.cpp:455,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/tls/tls_session.cpp:455,1
    - Dst: std::vector::resize
      Src: /src/botan/src/lib/tls/tls_session.cpp:456,1
    - Dst: store_be
      Src: /src/botan/src/lib/tls/tls_session.cpp:457,1
    - Dst: Botan::AEAD_Mode::create_or_throw
      Src: /src/botan/src/lib/tls/tls_session.cpp:462,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_session.cpp:463,1
    - Dst: auto::valid_nonce_length
      Src: /src/botan/src/lib/tls/tls_session.cpp:463,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_session.cpp:464,1
    - Dst: auto::tag_size
      Src: /src/botan/src/lib/tls/tls_session.cpp:464,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/tls/tls_session.cpp:465,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/lib/tls/tls_session.cpp:466,1
    - Dst: auto::start
      Src: /src/botan/src/lib/tls/tls_session.cpp:467,1
    - Dst: auto::finish
      Src: /src/botan/src/lib/tls/tls_session.cpp:468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 2
    argNames:
    - ' key'
    - ' rng'
    argTypes:
    - SymmetricKey
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 432
    functionDepth: 2
    functionLinenumber: 432
    functionLinenumberEnd: 473
    functionName: Botan::TLS::Session::encrypt
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 2
    functionsReached:
    - auto::update
    - BOTAN_ASSERT_NOMSG
    - auto::tag_size
    - auto::set_key
    - auto::valid_nonce_length
    - std::vector::reserve
    - std::vector::data
    - Botan::MessageAuthenticationCode::create_or_throw
    - Botan::AEAD_Mode::create_or_throw
    - Botan::TLS::Session::DER_encode
    - store_be
    - std::vector::resize
    - auto::finish
    - auto::final
    - auto::output_length
    - secure_vector::size
    - auto::set_associated_data
    - random_vec
    - auto::start
    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:478,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_session.cpp:479,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/tls/tls_session.cpp:483,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/tls/tls_session.cpp:484,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/tls/tls_session.cpp:485,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/tls/tls_session.cpp:486,1
    - Dst: BufferSlicer::copy_as_secure_vector
      Src: /src/botan/src/lib/tls/tls_session.cpp:487,1
    - Dst: BufferSlicer::remaining
      Src: /src/botan/src/lib/tls/tls_session.cpp:487,1
    - Dst: load_be<uint64_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:489,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_session.cpp:490,1
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/lib/tls/tls_session.cpp:493,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/tls/tls_session.cpp:494,1
    - Dst: auto::output_length
      Src: /src/botan/src/lib/tls/tls_session.cpp:497,1
    - Dst: auto::update
      Src: /src/botan/src/lib/tls/tls_session.cpp:498,1
    - Dst: auto::final
      Src: /src/botan/src/lib/tls/tls_session.cpp:499,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls_session.cpp:499,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/tls/tls_session.cpp:501,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls_session.cpp:501,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_session.cpp:502,1
    - Dst: auto::update
      Src: /src/botan/src/lib/tls/tls_session.cpp:505,1
    - Dst: auto::final
      Src: /src/botan/src/lib/tls/tls_session.cpp:506,1
    - Dst: Botan::AEAD_Mode::create_or_throw
      Src: /src/botan/src/lib/tls/tls_session.cpp:508,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/tls/tls_session.cpp:509,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/lib/tls/tls_session.cpp:510,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/tls/tls_session.cpp:510,1
    - Dst: auto::start
      Src: /src/botan/src/lib/tls/tls_session.cpp:511,1
    - Dst: auto::finish
      Src: /src/botan/src/lib/tls/tls_session.cpp:512,1
    - Dst: Botan::TLS::Session::Session
      Src: /src/botan/src/lib/tls/tls_session.cpp:513,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_session.cpp:515,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls_session.cpp:515,1
    - Dst: what
      Src: /src/botan/src/lib/tls/tls_session.cpp:515,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - in
    - ' key'
    argTypes:
    - std::span<const uint8_t>
    - SymmetricKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 475
    functionDepth: 2
    functionLinenumber: 475
    functionLinenumberEnd: 517
    functionName: Botan::TLS::Session::decrypt
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 2
    functionsReached:
    - auto::update
    - Botan::CT::is_equal
    - auto::set_key
    - BufferSlicer::copy_as_secure_vector
    - what
    - BufferSlicer::take
    - std::vector::data
    - BufferSlicer::remaining
    - Botan::MessageAuthenticationCode::create_or_throw
    - Botan::AEAD_Mode::create_or_throw
    - load_be<uint64_t>
    - Decoding_Error
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - auto::finish
    - Botan::TLS::Session::Session
    - auto::final
    - std::string
    - auto::output_length
    - auto::set_associated_data
    - auto::start
    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:29,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_session.cpp:33,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls_session.cpp:33,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_session.cpp:34,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_session.cpp:34,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_session.cpp:37,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls_session.cpp:37,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_session.cpp:38,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_session.cpp:38,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/tls/tls_session.cpp:38,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_session.cpp:44,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls_session.cpp:44,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_session.cpp:45,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_session.cpp:45,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/tls/tls_session.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 50
    functionName: Botan::TLS::Session_Handle::validate_constraints
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::random_bit_generator::max
    - size
    - BOTAN_ARG_CHECK
    - std::visit
    - 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:54,1
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls_session.cpp:54,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls_session.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: Botan::TLS::Session_Handle::opaque_handle
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - Opaque_Session_Handle
    - std::visit
    - 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:58,1
    - Dst: std::get<Session_ID>
      Src: /src/botan/src/lib/tls/tls_session.cpp:59,1
    - Dst: is_opaque_handle
      Src: /src/botan/src/lib/tls/tls_session.cpp:63,1
    - Dst: std::get<Opaque_Session_Handle>
      Src: /src/botan/src/lib/tls/tls_session.cpp:64,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_session.cpp:65,1
    - Dst: Session_ID
      Src: /src/botan/src/lib/tls/tls_session.cpp:66,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls_session.cpp:66,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 71
    functionName: Botan::TLS::Session_Handle::id
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - Session_ID
    - size
    - std::get<Session_ID>
    - get
    - is_id
    - is_opaque_handle
    - 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:74,1
    - Dst: std::get<Session_Ticket>
      Src: /src/botan/src/lib/tls/tls_session.cpp:75,1
    - Dst: is_opaque_handle
      Src: /src/botan/src/lib/tls/tls_session.cpp:79,1
    - Dst: Session_Ticket
      Src: /src/botan/src/lib/tls/tls_session.cpp:80,1
    - Dst: std::get<Opaque_Session_Handle>
      Src: /src/botan/src/lib/tls/tls_session.cpp:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 84
    functionName: Botan::TLS::Session_Handle::ticket
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - Session_Ticket
    - is_ticket
    - std::get<Session_Ticket>
    - is_opaque_handle
    - std::get<Opaque_Session_Handle>
    linkageType: ''
    returnType: std::optional<Session_Ticket>
    signature: std::optional<Session_Ticket> Session_Handle::ticket() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/tls_session.cpp:87,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls_session.cpp:88,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_session.cpp:89,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:89,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls_session.cpp:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: Botan::TLS::Session_Base::ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - auto::has_value
    - auto::value
    - Botan::TLS::Ciphersuite::by_id
    - std::to_string
    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:97,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_session.cpp:98,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls_session.cpp:98,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls_session.cpp:100,1
    - Dst: auto::kex_algo
      Src: /src/botan/src/lib/tls/tls_session.cpp:101,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: 102
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 102
    functionName: Botan::TLS::Session_Summary::Session_Summary
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - auto::kex_algo
    - BOTAN_ARG_CHECK
    - version
    - ciphersuite
    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:110,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:111,1
    - Dst: std::optional<Named_Group>::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls_session.cpp:112,1
    - Dst: std::optional<Named_Group>::is_x25519
      Src: /src/botan/src/lib/tls/tls_session.cpp:112,1
    - Dst: std::optional<Named_Group>::is_x448
      Src: /src/botan/src/lib/tls/tls_session.cpp:112,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:113,1
    - Dst: std::optional<Named_Group>::is_pure_ml_kem
      Src: /src/botan/src/lib/tls/tls_session.cpp:114,1
    - Dst: std::optional<Named_Group>::is_pure_frodokem
      Src: /src/botan/src/lib/tls/tls_session.cpp:114,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:115,1
    - Dst: std::optional<Named_Group>::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls_session.cpp:116,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:117,1
    - Dst: std::optional<Named_Group>::to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:118,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:122,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_session.cpp:124,1
    - Dst: std::optional<Named_Group>::has_value
      Src: /src/botan/src/lib/tls/tls_session.cpp:124,1
    - Dst: std::optional<Named_Group>::is_dh_named_group
      Src: /src/botan/src/lib/tls/tls_session.cpp:125,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:126,1
    - Dst: std::optional<Named_Group>::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls_session.cpp:127,1
    - Dst: std::optional<Named_Group>::is_x25519
      Src: /src/botan/src/lib/tls/tls_session.cpp:127,1
    - Dst: std::optional<Named_Group>::is_x448
      Src: /src/botan/src/lib/tls/tls_session.cpp:127,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:128,1
    - Dst: std::optional<Named_Group>::is_pure_ml_kem
      Src: /src/botan/src/lib/tls/tls_session.cpp:129,1
    - Dst: std::optional<Named_Group>::is_pure_frodokem
      Src: /src/botan/src/lib/tls/tls_session.cpp:129,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:130,1
    - Dst: std::optional<Named_Group>::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls_session.cpp:131,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:132,1
    - Dst: std::optional<Named_Group>::to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:133,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:138,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 39
    argCount: 2
    argNames:
    - psk
    - group
    argTypes:
    - bool
    - std::optional<Named_Group>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 139
    functionName: Botan::TLS::tls13_kex_to_string
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::optional<Named_Group>::is_dh_named_group
    - std::optional<Named_Group>::is_x25519
    - std::optional<Named_Group>::is_pqc_hybrid
    - std::optional<Named_Group>::is_pure_frodokem
    - std::optional<Named_Group>::to_string
    - std::optional<Named_Group>::is_pure_ml_kem
    - std::optional<Named_Group>::is_x448
    - Botan::TLS::kex_method_to_string
    - std::optional<Named_Group>::has_value
    - std::optional<Named_Group>::is_ecdh_named_curve
    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:110,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:111,1
    - Dst: std::optional<Named_Group>::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls_session.cpp:112,1
    - Dst: std::optional<Named_Group>::is_x25519
      Src: /src/botan/src/lib/tls/tls_session.cpp:112,1
    - Dst: std::optional<Named_Group>::is_x448
      Src: /src/botan/src/lib/tls/tls_session.cpp:112,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:113,1
    - Dst: std::optional<Named_Group>::is_pure_ml_kem
      Src: /src/botan/src/lib/tls/tls_session.cpp:114,1
    - Dst: std::optional<Named_Group>::is_pure_frodokem
      Src: /src/botan/src/lib/tls/tls_session.cpp:114,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:115,1
    - Dst: std::optional<Named_Group>::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls_session.cpp:116,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:117,1
    - Dst: std::optional<Named_Group>::to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:118,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:122,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_session.cpp:124,1
    - Dst: std::optional<Named_Group>::has_value
      Src: /src/botan/src/lib/tls/tls_session.cpp:124,1
    - Dst: std::optional<Named_Group>::is_dh_named_group
      Src: /src/botan/src/lib/tls/tls_session.cpp:125,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:126,1
    - Dst: std::optional<Named_Group>::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls_session.cpp:127,1
    - Dst: std::optional<Named_Group>::is_x25519
      Src: /src/botan/src/lib/tls/tls_session.cpp:127,1
    - Dst: std::optional<Named_Group>::is_x448
      Src: /src/botan/src/lib/tls/tls_session.cpp:127,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:128,1
    - Dst: std::optional<Named_Group>::is_pure_ml_kem
      Src: /src/botan/src/lib/tls/tls_session.cpp:129,1
    - Dst: std::optional<Named_Group>::is_pure_frodokem
      Src: /src/botan/src/lib/tls/tls_session.cpp:129,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:130,1
    - Dst: std::optional<Named_Group>::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls_session.cpp:131,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:132,1
    - Dst: std::optional<Named_Group>::to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:133,1
    - Dst: Botan::TLS::kex_method_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:138,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 39
    argCount: 2
    argNames:
    - psk
    - group
    argTypes:
    - bool
    - std::optional<Named_Group>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 139
    functionName: Botan::TLS::tls13_kex_to_string
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::optional<Named_Group>::is_dh_named_group
    - std::optional<Named_Group>::is_x25519
    - std::optional<Named_Group>::is_pqc_hybrid
    - std::optional<Named_Group>::is_pure_frodokem
    - std::optional<Named_Group>::to_string
    - std::optional<Named_Group>::is_pure_ml_kem
    - std::optional<Named_Group>::is_x448
    - Botan::TLS::kex_method_to_string
    - std::optional<Named_Group>::has_value
    - std::optional<Named_Group>::is_ecdh_named_curve
    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:152,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls_session.cpp:153,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_session.cpp:168,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_session.cpp:169,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_session.cpp:170,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_session.cpp:171,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_session.cpp:173,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls_session.cpp:173,1
    - Dst: set_session_id
      Src: /src/botan/src/lib/tls/tls_session.cpp:174,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls_session.cpp:174,1
    - Dst: psk_used
      Src: /src/botan/src/lib/tls/tls_session.cpp:180,1
    - Dst: was_resumption
      Src: /src/botan/src/lib/tls/tls_session.cpp:180,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls_session.cpp:181,1
    - Dst: auto*::selected_group
      Src: /src/botan/src/lib/tls/tls_session.cpp:182,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls_session.cpp:187,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls_session.cpp:188,1
    - Dst: auto*::selected_group
      Src: /src/botan/src/lib/tls/tls_session.cpp:189,1
    - Dst: std::optional::has_value
      Src: /src/botan/src/lib/tls/tls_session.cpp:193,1
    - Dst: std::optional::to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:194,1
    - Dst: tls13_kex_to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:197,1
    - Dst: psk_used
      Src: /src/botan/src/lib/tls/tls_session.cpp:197,1
    - Dst: was_resumption
      Src: /src/botan/src/lib/tls/tls_session.cpp:197,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: 198
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 198
    functionName: Botan::TLS::Session_Summary::Session_Summary
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - was_resumption
    - std::optional::to_string
    - extensions
    - auto*::selected_group
    - tls13_kex_to_string
    - session_id
    - BOTAN_ARG_CHECK
    - set_session_id
    - BOTAN_ASSERT_NONNULL
    - selected_version
    - std::optional::has_value
    - psk_used
    - version
    - ciphersuite
    linkageType: ''
    returnType: void
    signature: "void Session_Summary::Session_Summary(const Server_Hello_13& server_hello,\n
      \                                Connection_Side side,\n                                 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:228,1
    - Dst: Protocol_Version::is_pre_tls_13
      Src: /src/botan/src/lib/tls/tls_session.cpp:228,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: 229
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 229
    functionName: Botan::TLS::Session::Session
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ARG_CHECK
    - Protocol_Version::is_pre_tls_13
    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:262,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls_session.cpp:265,1
    - Dst: value_or
      Src: /src/botan/src/lib/tls/tls_session.cpp:266,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_session.cpp:269,1
    - Dst: Protocol_Version::is_pre_tls_13
      Src: /src/botan/src/lib/tls/tls_session.cpp:269,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: 270
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 270
    functionName: Botan::TLS::Session::Session
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 1
    functionsReached:
    - std::move
    - value_or
    - 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:281,1
    - Dst: selected_version
      Src: /src/botan/src/lib/tls/tls_session.cpp:282,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls_session.cpp:283,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_session.cpp:289,1
    - Dst: Server_Information
      Src: /src/botan/src/lib/tls/tls_session.cpp:290,1
    - Dst: sni_hostname
      Src: /src/botan/src/lib/tls/tls_session.cpp:290,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_session.cpp:291,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls_session.cpp:292,1
    - Dst: value_or
      Src: /src/botan/src/lib/tls/tls_session.cpp:293,1
    - Dst: load_be<uint32_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:294,1
    - Dst: random_vec
      Src: /src/botan/src/lib/tls/tls_session.cpp:294,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_session.cpp:296,1
    - Dst: is_pre_tls_13
      Src: /src/botan/src/lib/tls/tls_session.cpp:296,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: 298
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 298
    functionName: Botan::TLS::Session::Session
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 1
    functionsReached:
    - std::move
    - value_or
    - load_be<uint32_t>
    - Server_Information
    - BOTAN_ARG_CHECK
    - selected_version
    - is_pre_tls_13
    - random_vec
    - ciphersuite
    - tls_current_timestamp
    - has_value
    - sni_hostname
    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:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pem
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 302
    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:321,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/tls/tls_session.cpp:321,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/tls_session.cpp:321,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:323,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/tls_session.cpp:346,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_session.cpp:347,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls_session.cpp:350,1
    - Dst: Protocol_Version
      Src: /src/botan/src/lib/tls/tls_session.cpp:354,1
    - Dst: std::chrono::system_clock::from_time_t
      Src: /src/botan/src/lib/tls/tls_session.cpp:355,1
    - Dst: static_cast<Connection_Side>
      Src: /src/botan/src/lib/tls/tls_session.cpp:356,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:357,1
    - Dst: Server_Information
      Src: /src/botan/src/lib/tls/tls_session.cpp:360,1
    - Dst: ASN1_String::value
      Src: /src/botan/src/lib/tls/tls_session.cpp:360,1
    - Dst: ASN1_String::value
      Src: /src/botan/src/lib/tls/tls_session.cpp:360,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:360,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls_session.cpp:362,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/lib/tls/tls_session.cpp:363,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/lib/tls/tls_session.cpp:366,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - ber_data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 304
    functionDepth: 2
    functionLinenumber: 304
    functionLinenumberEnd: 367
    functionName: Botan::TLS::Session::Session
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 1
    functionsReached:
    - BER_Decoder
    - Decoding_Error
    - static_cast<uint16_t>
    - std::span<const uint8_t>::data
    - static_cast<size_t>
    - std::span<const uint8_t>::size
    - std::chrono::system_clock::from_time_t
    - Server_Information
    - Botan_CLI::Timer::seconds
    - ASN1_String::value
    - std::vector::empty
    - Botan::TLS::Ciphersuite::by_id
    - static_cast<Connection_Side>
    - Protocol_Version
    - std::to_string
    - Botan::X509::load_key
    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:371,1
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/tls/tls_session.cpp:373,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:375,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:376,1
    - Dst: std::chrono::system_clock::to_time_t
      Src: /src/botan/src/lib/tls/tls_session.cpp:376,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:377,1
    - Dst: major_version
      Src: /src/botan/src/lib/tls/tls_session.cpp:377,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:378,1
    - Dst: minor_version
      Src: /src/botan/src/lib/tls/tls_session.cpp:378,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:379,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:380,1
    - Dst: ASN1_String
      Src: /src/botan/src/lib/tls/tls_session.cpp:388,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls_session.cpp:388,1
    - Dst: ASN1_String
      Src: /src/botan/src/lib/tls/tls_session.cpp:389,1
    - Dst: service
      Src: /src/botan/src/lib/tls/tls_session.cpp:389,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:390,1
    - Dst: port
      Src: /src/botan/src/lib/tls/tls_session.cpp:390,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:391,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:395,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:396,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:397,1
    - Dst: count
      Src: /src/botan/src/lib/tls/tls_session.cpp:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 400
    functionName: Botan::TLS::Session::DER_encode
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 4
    functionsReached:
    - std::chrono::system_clock::to_time_t
    - static_cast<size_t>
    - count
    - minor_version
    - ASN1_String
    - service
    - subject_public_key
    - DER_Encoder
    - hostname
    - major_version
    - port
    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:403,1
    - Dst: Botan::TLS::Session::DER_encode
      Src: /src/botan/src/lib/tls/tls_session.cpp:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 404
    functionName: Botan::TLS::Session::PEM_encode
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 2
    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:407,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls_session.cpp:407,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/tls/tls_session.cpp:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 409
    functionName: Botan::TLS::Session::extract_master_secret
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - empty
    - std::exchange
    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:433,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/tls/tls_session.cpp:434,1
    - Dst: auto::output_length
      Src: /src/botan/src/lib/tls/tls_session.cpp:437,1
    - Dst: auto::update
      Src: /src/botan/src/lib/tls/tls_session.cpp:438,1
    - Dst: auto::final
      Src: /src/botan/src/lib/tls/tls_session.cpp:439,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls_session.cpp:439,1
    - Dst: std::vector::resize
      Src: /src/botan/src/lib/tls/tls_session.cpp:440,1
    - Dst: random_vec
      Src: /src/botan/src/lib/tls/tls_session.cpp:445,1
    - Dst: random_vec
      Src: /src/botan/src/lib/tls/tls_session.cpp:446,1
    - Dst: auto::update
      Src: /src/botan/src/lib/tls/tls_session.cpp:448,1
    - Dst: auto::final
      Src: /src/botan/src/lib/tls/tls_session.cpp:449,1
    - Dst: Botan::TLS::Session::DER_encode
      Src: /src/botan/src/lib/tls/tls_session.cpp:451,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls_session.cpp:455,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/tls/tls_session.cpp:455,1
    - Dst: std::vector::resize
      Src: /src/botan/src/lib/tls/tls_session.cpp:456,1
    - Dst: store_be
      Src: /src/botan/src/lib/tls/tls_session.cpp:457,1
    - Dst: Botan::AEAD_Mode::create_or_throw
      Src: /src/botan/src/lib/tls/tls_session.cpp:462,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_session.cpp:463,1
    - Dst: auto::valid_nonce_length
      Src: /src/botan/src/lib/tls/tls_session.cpp:463,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_session.cpp:464,1
    - Dst: auto::tag_size
      Src: /src/botan/src/lib/tls/tls_session.cpp:464,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/tls/tls_session.cpp:465,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/lib/tls/tls_session.cpp:466,1
    - Dst: auto::start
      Src: /src/botan/src/lib/tls/tls_session.cpp:467,1
    - Dst: auto::finish
      Src: /src/botan/src/lib/tls/tls_session.cpp:468,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 2
    argNames:
    - ' key'
    - ' rng'
    argTypes:
    - SymmetricKey
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 432
    functionDepth: 2
    functionLinenumber: 432
    functionLinenumberEnd: 473
    functionName: Botan::TLS::Session::encrypt
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 2
    functionsReached:
    - auto::update
    - BOTAN_ASSERT_NOMSG
    - auto::tag_size
    - auto::set_key
    - auto::valid_nonce_length
    - std::vector::reserve
    - std::vector::data
    - Botan::MessageAuthenticationCode::create_or_throw
    - Botan::AEAD_Mode::create_or_throw
    - Botan::TLS::Session::DER_encode
    - store_be
    - std::vector::resize
    - auto::finish
    - auto::final
    - auto::output_length
    - secure_vector::size
    - auto::set_associated_data
    - random_vec
    - auto::start
    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:478,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_session.cpp:479,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/tls/tls_session.cpp:483,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/tls/tls_session.cpp:484,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/tls/tls_session.cpp:485,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/tls/tls_session.cpp:486,1
    - Dst: BufferSlicer::copy_as_secure_vector
      Src: /src/botan/src/lib/tls/tls_session.cpp:487,1
    - Dst: BufferSlicer::remaining
      Src: /src/botan/src/lib/tls/tls_session.cpp:487,1
    - Dst: load_be<uint64_t>
      Src: /src/botan/src/lib/tls/tls_session.cpp:489,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_session.cpp:490,1
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/lib/tls/tls_session.cpp:493,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/tls/tls_session.cpp:494,1
    - Dst: auto::output_length
      Src: /src/botan/src/lib/tls/tls_session.cpp:497,1
    - Dst: auto::update
      Src: /src/botan/src/lib/tls/tls_session.cpp:498,1
    - Dst: auto::final
      Src: /src/botan/src/lib/tls/tls_session.cpp:499,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls_session.cpp:499,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/tls/tls_session.cpp:501,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls_session.cpp:501,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_session.cpp:502,1
    - Dst: auto::update
      Src: /src/botan/src/lib/tls/tls_session.cpp:505,1
    - Dst: auto::final
      Src: /src/botan/src/lib/tls/tls_session.cpp:506,1
    - Dst: Botan::AEAD_Mode::create_or_throw
      Src: /src/botan/src/lib/tls/tls_session.cpp:508,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/tls/tls_session.cpp:509,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/lib/tls/tls_session.cpp:510,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/tls/tls_session.cpp:510,1
    - Dst: auto::start
      Src: /src/botan/src/lib/tls/tls_session.cpp:511,1
    - Dst: auto::finish
      Src: /src/botan/src/lib/tls/tls_session.cpp:512,1
    - Dst: Botan::TLS::Session::Session
      Src: /src/botan/src/lib/tls/tls_session.cpp:513,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_session.cpp:515,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls_session.cpp:515,1
    - Dst: what
      Src: /src/botan/src/lib/tls/tls_session.cpp:515,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 2
    argNames:
    - in
    - ' key'
    argTypes:
    - std::span<const uint8_t>
    - SymmetricKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 475
    functionDepth: 2
    functionLinenumber: 475
    functionLinenumberEnd: 517
    functionName: Botan::TLS::Session::decrypt
    functionSourceFile: /src/botan/src/lib/tls/tls_session.cpp
    functionUses: 2
    functionsReached:
    - auto::update
    - Botan::CT::is_equal
    - auto::set_key
    - BufferSlicer::copy_as_secure_vector
    - what
    - BufferSlicer::take
    - std::vector::data
    - BufferSlicer::remaining
    - Botan::MessageAuthenticationCode::create_or_throw
    - Botan::AEAD_Mode::create_or_throw
    - load_be<uint64_t>
    - Decoding_Error
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - auto::finish
    - Botan::TLS::Session::Session
    - auto::final
    - std::string
    - auto::output_length
    - auto::set_associated_data
    - auto::start
    linkageType: ''
    returnType: Session
    signature: Session Session::decrypt(std::span<const uint8_t> in, const SymmetricKey&
      key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:33,1
    - Dst: choose_sig_format
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:35,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:38,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:38,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:40,1
    - Dst: send
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:40,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: 41
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 41
    functionName: Botan::TLS::Certificate_Verify_12::Certificate_Verify_12
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_verify.cpp
    functionUses: 0
    functionsReached:
    - callbacks
    - send
    - BOTAN_ASSERT_NONNULL
    - hash
    - choose_sig_format
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: Signature_Scheme
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:49,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:49,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:50,1
    - Dst: TLS_Data_Reader::assert_done
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:51,1
    - Dst: is_set
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:53,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 56
    functionName: Botan::TLS::Certificate_Verify::Certificate_Verify
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_verify.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - TLS_Data_Reader::assert_done
    - TLS_Data_Reader::get_uint16_t
    - is_set
    - TLS_Data_Reader::get_range
    - Signature_Scheme
    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:62,1
    - Dst: is_set
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:62,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:64,1
    - Dst: size
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:64,1
    - Dst: wire_code
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:66,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:67,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:67,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:68,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:68,1
    - Dst: size
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:70,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:71,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:74,1
    - Dst: size
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:74,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:75,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:75,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:76,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 80
    functionName: Botan::TLS::Certificate_Verify::serialize
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_verify.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - static_cast<uint16_t>
    - std::vector::push_back
    - Encoding_Error
    - get_byte<1>
    - is_set
    - size
    - get_byte<0>
    - wire_code
    - std::vector::reserve
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Certificate_Verify::serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subject_public_key
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:85,1
    - Dst: check_peer_key_acceptable
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:87,1
    - Dst: parse_sig_format
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:90,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:90,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:93,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:93,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' cert'
    - ' state'
    - ' policy'
    argTypes:
    - X509_Certificate
    - Handshake_State
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 103
    functionName: Botan::TLS::Certificate_Verify_12::verify
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_verify.cpp
    functionUses: 0
    functionsReached:
    - callbacks
    - check_peer_key_acceptable
    - parse_sig_format
    - hash
    - client_hello
    - subject_public_key
    - BOTAN_UNUSED
    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: std::vector::reserve
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:111,1
    - Dst: size
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:111,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:116,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:116,1
    - Dst: std::string::cbegin
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:116,1
    - Dst: std::string::cend
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:116,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:117,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:119,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:119,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:119,1
    - Dst: cend
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - side
    - ' hash'
    argTypes:
    - Connection_Side
    - Transcript_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 121
    functionName: Botan::TLS::message
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_verify.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - size
    - cend
    - std::string::cbegin
    - std::vector::end
    - cbegin
    - std::string::cend
    - std::vector::insert
    - std::vector::reserve
    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/msg_cert_verify.cpp:127,1
    - Dst: is_suitable_for
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:127,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:127,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:132,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: 133
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 133
    functionName: Botan::TLS::choose_signature_scheme
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_verify.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - value_exists
    - is_suitable_for
    - is_available
    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/msg_cert_verify.cpp:111,1
    - Dst: size
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:111,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:116,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:116,1
    - Dst: std::string::cbegin
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:116,1
    - Dst: std::string::cend
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:116,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:117,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:119,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:119,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:119,1
    - Dst: cend
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - side
    - ' hash'
    argTypes:
    - Connection_Side
    - Transcript_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 121
    functionName: Botan::TLS::message
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_verify.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - size
    - cend
    - std::string::cbegin
    - std::vector::end
    - cbegin
    - std::string::cend
    - std::vector::insert
    - std::vector::reserve
    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/msg_cert_verify.cpp:127,1
    - Dst: is_suitable_for
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:127,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:127,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:132,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: 133
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 133
    functionName: Botan::TLS::choose_signature_scheme
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_verify.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - value_exists
    - is_suitable_for
    - is_available
    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/msg_cert_verify.cpp:150,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:150,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:153,1
    - Dst: has_certificate_chain
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:155,1
    - Dst: private_key_for
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:156,1
    - Dst: leaf
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:156,1
    - Dst: private_key_for
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:157,1
    - Dst: public_key
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:157,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:159,1
    - Dst: choose_signature_scheme
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:162,1
    - Dst: allowed_signature_schemes
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:162,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:163,1
    - Dst: is_available
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:163,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:164,1
    - Dst: is_compatible_with
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:164,1
    - Dst: tls_sign_message
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:166,1
    - Dst: padding_string
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:167,1
    - Dst: format
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:167,1
    - Dst: message
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:167,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: 168
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 168
    functionName: Botan::TLS::Certificate_Verify_13::Certificate_Verify_13
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_verify.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - is_compatible_with
    - leaf
    - format
    - TLS_Exception
    - choose_signature_scheme
    - padding_string
    - std::string
    - allowed_signature_schemes
    - empty
    - message
    - has_certificate_chain
    - tls_sign_message
    - private_key_for
    - public_key
    - is_available
    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/msg_cert_verify.cpp:172,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:173,1
    - Dst: is_compatible_with
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:176,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:177,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - ' buf'
    - side
    argTypes:
    - std::vector<uint8_t>
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 179
    functionName: Botan::TLS::Certificate_Verify_13::Certificate_Verify_13
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_verify.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - is_compatible_with
    - is_available
    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/msg_cert_verify.cpp:187,1
    - Dst: is_available
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:187,1
    - Dst: key_algorithm_identifier
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:192,1
    - Dst: algorithm_identifier
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:192,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:193,1
    - Dst: tls_verify_message
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:196,1
    - Dst: padding_string
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:197,1
    - Dst: format
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:197,1
    - Dst: message
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:197,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:200,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: 205
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 205
    functionName: Botan::TLS::Certificate_Verify_13::verify
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_verify.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - format
    - tls_verify_message
    - TLS_Exception
    - padding_string
    - message
    - BOTAN_UNUSED
    - algorithm_identifier
    - key_algorithm_identifier
    - is_available
    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: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:33,1
    - Dst: choose_sig_format
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:35,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:38,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:38,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:40,1
    - Dst: send
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:40,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: 41
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 41
    functionName: Botan::TLS::Certificate_Verify_12::Certificate_Verify_12
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_verify.cpp
    functionUses: 0
    functionsReached:
    - callbacks
    - send
    - BOTAN_ASSERT_NONNULL
    - hash
    - choose_sig_format
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: Signature_Scheme
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:49,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:49,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:50,1
    - Dst: TLS_Data_Reader::assert_done
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:51,1
    - Dst: is_set
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:53,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 56
    functionName: Botan::TLS::Certificate_Verify::Certificate_Verify
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_verify.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - TLS_Data_Reader::assert_done
    - TLS_Data_Reader::get_uint16_t
    - is_set
    - TLS_Data_Reader::get_range
    - Signature_Scheme
    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:62,1
    - Dst: is_set
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:62,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:64,1
    - Dst: size
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:64,1
    - Dst: wire_code
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:66,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:67,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:67,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:68,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:68,1
    - Dst: size
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:70,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:71,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:74,1
    - Dst: size
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:74,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:75,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:75,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:76,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 80
    functionName: Botan::TLS::Certificate_Verify::serialize
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_verify.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - static_cast<uint16_t>
    - std::vector::push_back
    - Encoding_Error
    - get_byte<1>
    - is_set
    - size
    - get_byte<0>
    - wire_code
    - std::vector::reserve
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Certificate_Verify::serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subject_public_key
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:85,1
    - Dst: check_peer_key_acceptable
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:87,1
    - Dst: parse_sig_format
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:90,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:90,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:93,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:93,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' cert'
    - ' state'
    - ' policy'
    argTypes:
    - X509_Certificate
    - Handshake_State
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 103
    functionName: Botan::TLS::Certificate_Verify_12::verify
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_verify.cpp
    functionUses: 0
    functionsReached:
    - callbacks
    - check_peer_key_acceptable
    - parse_sig_format
    - hash
    - client_hello
    - subject_public_key
    - BOTAN_UNUSED
    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: std::vector::reserve
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:111,1
    - Dst: size
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:111,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:116,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:116,1
    - Dst: std::string::cbegin
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:116,1
    - Dst: std::string::cend
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:116,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:117,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:119,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:119,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:119,1
    - Dst: cend
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - side
    - ' hash'
    argTypes:
    - Connection_Side
    - Transcript_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 121
    functionName: Botan::TLS::message
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_verify.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - size
    - cend
    - std::string::cbegin
    - std::vector::end
    - cbegin
    - std::string::cend
    - std::vector::insert
    - std::vector::reserve
    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/msg_cert_verify.cpp:127,1
    - Dst: is_suitable_for
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:127,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:127,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:132,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: 133
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 133
    functionName: Botan::TLS::choose_signature_scheme
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_verify.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - value_exists
    - is_suitable_for
    - is_available
    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/msg_cert_verify.cpp:111,1
    - Dst: size
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:111,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:116,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:116,1
    - Dst: std::string::cbegin
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:116,1
    - Dst: std::string::cend
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:116,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:117,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:119,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:119,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:119,1
    - Dst: cend
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - side
    - ' hash'
    argTypes:
    - Connection_Side
    - Transcript_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 121
    functionName: Botan::TLS::message
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_verify.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - size
    - cend
    - std::string::cbegin
    - std::vector::end
    - cbegin
    - std::string::cend
    - std::vector::insert
    - std::vector::reserve
    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/msg_cert_verify.cpp:127,1
    - Dst: is_suitable_for
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:127,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:127,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:132,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: 133
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 133
    functionName: Botan::TLS::choose_signature_scheme
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_verify.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - value_exists
    - is_suitable_for
    - is_available
    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/msg_cert_verify.cpp:150,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:150,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:153,1
    - Dst: has_certificate_chain
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:155,1
    - Dst: private_key_for
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:156,1
    - Dst: leaf
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:156,1
    - Dst: private_key_for
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:157,1
    - Dst: public_key
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:157,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:159,1
    - Dst: choose_signature_scheme
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:162,1
    - Dst: allowed_signature_schemes
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:162,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:163,1
    - Dst: is_available
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:163,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:164,1
    - Dst: is_compatible_with
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:164,1
    - Dst: tls_sign_message
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:166,1
    - Dst: padding_string
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:167,1
    - Dst: format
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:167,1
    - Dst: message
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:167,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: 168
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 168
    functionName: Botan::TLS::Certificate_Verify_13::Certificate_Verify_13
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_verify.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - is_compatible_with
    - leaf
    - format
    - TLS_Exception
    - choose_signature_scheme
    - padding_string
    - std::string
    - allowed_signature_schemes
    - empty
    - message
    - has_certificate_chain
    - tls_sign_message
    - private_key_for
    - public_key
    - is_available
    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/msg_cert_verify.cpp:172,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:173,1
    - Dst: is_compatible_with
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:176,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:177,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - ' buf'
    - side
    argTypes:
    - std::vector<uint8_t>
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 179
    functionName: Botan::TLS::Certificate_Verify_13::Certificate_Verify_13
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_verify.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - is_compatible_with
    - is_available
    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/msg_cert_verify.cpp:187,1
    - Dst: is_available
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:187,1
    - Dst: key_algorithm_identifier
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:192,1
    - Dst: algorithm_identifier
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:192,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:193,1
    - Dst: tls_verify_message
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:196,1
    - Dst: padding_string
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:197,1
    - Dst: format
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:197,1
    - Dst: message
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:197,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/msg_cert_verify.cpp:200,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: 205
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 205
    functionName: Botan::TLS::Certificate_Verify_13::verify
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_verify.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - format
    - tls_verify_message
    - TLS_Exception
    - padding_string
    - message
    - BOTAN_UNUSED
    - algorithm_identifier
    - key_algorithm_identifier
    - is_available
    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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - type
    - buf_in
    argTypes:
    - char*
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: Botan::TLS::TLS_Data_Reader::TLS_Data_Reader
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_Data_Reader(const char* type, std::span<const uint8_t> buf_in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::TLS_Data_Reader::has_remaining
      Src: /src/botan/src/lib/tls/tls_reader.h:31,1
    - Dst: Botan::TLS::TLS_Data_Reader::throw_decode_error
      Src: /src/botan/src/lib/tls/tls_reader.h:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: Botan::TLS::TLS_Data_Reader::assert_done
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::TLS_Data_Reader::throw_decode_error
    - Botan::TLS::TLS_Data_Reader::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: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan::TLS::TLS_Data_Reader::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:38,1
    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::TLS::TLS_Data_Reader::remaining_bytes
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t remaining_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::TLS_Data_Reader::remaining_bytes
      Src: /src/botan/src/lib/tls/tls_reader.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Botan::TLS::TLS_Data_Reader::has_remaining
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 5
    functionsReached:
    - Botan::TLS::TLS_Data_Reader::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:43,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls_reader.h:44,1
    - Dst: std::span::begin
      Src: /src/botan/src/lib/tls/tls_reader.h:44,1
    - Dst: std::span::end
      Src: /src/botan/src/lib/tls/tls_reader.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: Botan::TLS::TLS_Data_Reader::get_remaining
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 0
    functionsReached:
    - std::span::begin
    - subspan
    - std::vector<uint8_t>
    - std::span::end
    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:48,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls_reader.h:49,1
    - Dst: std::span::begin
      Src: /src/botan/src/lib/tls/tls_reader.h:49,1
    - Dst: std::span::end
      Src: /src/botan/src/lib/tls/tls_reader.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: Botan::TLS::TLS_Data_Reader::get_data_read_so_far
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 0
    functionsReached:
    - std::span::begin
    - std::span::end
    - 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: Botan::TLS::TLS_Data_Reader::assert_at_least
      Src: /src/botan/src/lib/tls/tls_reader.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: Botan::TLS::TLS_Data_Reader::discard_next
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 4
    functionsReached:
    - Botan::TLS::TLS_Data_Reader::assert_at_least
    linkageType: ''
    returnType: void
    signature: void discard_next(size_t bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::TLS_Data_Reader::assert_at_least
      Src: /src/botan/src/lib/tls/tls_reader.h:58,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: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: Botan::TLS::TLS_Data_Reader::get_uint32_t
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 0
    functionsReached:
    - make_uint32
    - Botan::TLS::TLS_Data_Reader::assert_at_least
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_uint32_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::TLS_Data_Reader::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: 1
    functionLinenumber: 64
    functionLinenumberEnd: 69
    functionName: Botan::TLS::TLS_Data_Reader::get_uint24_t
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 0
    functionsReached:
    - make_uint32
    - Botan::TLS::TLS_Data_Reader::assert_at_least
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_uint24_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::TLS_Data_Reader::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: 1
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: Botan::TLS::TLS_Data_Reader::get_uint16_t
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 4
    functionsReached:
    - make_uint16
    - Botan::TLS::TLS_Data_Reader::assert_at_least
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t get_uint16_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::TLS_Data_Reader::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: 1
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: Botan::TLS::TLS_Data_Reader::peek_uint16_t
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 0
    functionsReached:
    - make_uint16
    - Botan::TLS::TLS_Data_Reader::assert_at_least
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t peek_uint16_t() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::TLS_Data_Reader::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: 1
    functionLinenumber: 83
    functionLinenumberEnd: 88
    functionName: Botan::TLS::TLS_Data_Reader::get_byte
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::TLS_Data_Reader::assert_at_least
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t get_byte()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::TLS_Data_Reader::assert_at_least
      Src: /src/botan/src/lib/tls/tls_reader.h:92,1
    - Dst: load_be<T>
      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::TLS_Data_Reader::get_elem
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::TLS_Data_Reader::assert_at_least
    - load_be<T>
    linkageType: ''
    returnType: Container
    signature: Container get_elem(size_t num_elems)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::TLS_Data_Reader::get_fixed
      Src: /src/botan/src/lib/tls/tls_reader.h:106,1
    - Dst: Botan::TLS::TLS_Data_Reader::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::TLS_Data_Reader::get_tls_length_value
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 4
    functionsReached:
    - Botan::TLS::TLS_Data_Reader::get_length_field
    - Botan::TLS::TLS_Data_Reader::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::TLS_Data_Reader::get_num_elems
      Src: /src/botan/src/lib/tls/tls_reader.h:111,1
    - Dst: Botan::TLS::TLS_Data_Reader::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::TLS_Data_Reader::get_range
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::TLS_Data_Reader::get_elem
    - Botan::TLS::TLS_Data_Reader::get_num_elems
    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::TLS_Data_Reader::get_num_elems
      Src: /src/botan/src/lib/tls/tls_reader.h:118,1
    - Dst: Botan::TLS::TLS_Data_Reader::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::TLS_Data_Reader::get_range_vector
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::TLS_Data_Reader::get_elem
    - Botan::TLS::TLS_Data_Reader::get_num_elems
    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::TLS_Data_Reader::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::TLS_Data_Reader::get_string
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::TLS_Data_Reader::get_range_vector
    - bytes_to_string
    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::TLS_Data_Reader::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::TLS_Data_Reader::get_fixed
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 1
    functionsReached:
    - Botan::TLS::TLS_Data_Reader::get_elem
    linkageType: ''
    returnType: std::vector<T>
    signature: std::vector<T> get_fixed(size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::TLS_Data_Reader::assert_at_least
      Src: /src/botan/src/lib/tls/tls_reader.h:135,1
    - Dst: Botan::TLS::TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/tls_reader.h:138,1
    - Dst: Botan::TLS::TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls_reader.h:140,1
    - Dst: Botan::TLS::TLS_Data_Reader::get_uint24_t
      Src: /src/botan/src/lib/tls/tls_reader.h:142,1
    - Dst: Botan::TLS::TLS_Data_Reader::throw_decode_error
      Src: /src/botan/src/lib/tls/tls_reader.h:145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - len_bytes
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 146
    functionName: Botan::TLS::TLS_Data_Reader::get_length_field
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 1
    functionsReached:
    - Botan::TLS::TLS_Data_Reader::get_byte
    - Botan::TLS::TLS_Data_Reader::get_uint24_t
    - Botan::TLS::TLS_Data_Reader::assert_at_least
    - Botan::TLS::TLS_Data_Reader::throw_decode_error
    - Botan::TLS::TLS_Data_Reader::get_uint16_t
    linkageType: ''
    returnType: size_t
    signature: size_t get_length_field(size_t len_bytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::TLS_Data_Reader::get_length_field
      Src: /src/botan/src/lib/tls/tls_reader.h:149,1
    - Dst: Botan::TLS::TLS_Data_Reader::throw_decode_error
      Src: /src/botan/src/lib/tls/tls_reader.h:152,1
    - Dst: Botan::TLS::TLS_Data_Reader::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: 3
    functionLinenumber: 148
    functionLinenumberEnd: 162
    functionName: Botan::TLS::TLS_Data_Reader::get_num_elems
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 2
    functionsReached:
    - Botan::TLS::TLS_Data_Reader::get_length_field
    - Botan::TLS::TLS_Data_Reader::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: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_reader.h:165,1
    - Dst: Botan::TLS::TLS_Data_Reader::throw_decode_error
      Src: /src/botan/src/lib/tls/tls_reader.h:166,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls_reader.h:166,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls_reader.h:167,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_reader.h:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 169
    functionName: Botan::TLS::TLS_Data_Reader::assert_at_least
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 8
    functionsReached:
    - std::to_string
    - size
    - Botan::TLS::TLS_Data_Reader::throw_decode_error
    linkageType: ''
    returnType: void
    signature: void assert_at_least(size_t n) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_reader.h:172,1
    - Dst: fmt
      Src: /src/botan/src/lib/tls/tls_reader.h:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - why
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 173
    functionName: Botan::TLS::TLS_Data_Reader::throw_decode_error
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 4
    functionsReached:
    - Decoding_Error
    - fmt
    linkageType: ''
    returnType: void
    signature: void throw_decode_error(std::string_view why) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls_reader.h:192,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls_reader.h:197,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls_reader.h:201,1
    - Dst: get_byte_var
      Src: /src/botan/src/lib/tls/tls_reader.h:201,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls_reader.h:206,1
    - Dst: get_byte_var
      Src: /src/botan/src/lib/tls/tls_reader.h:206,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 15
    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: 209
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 209
    functionName: Botan::TLS::append_tls_length_value
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 4
    functionsReached:
    - get_byte_var
    - push_back
    - Invalid_Argument
    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: Botan::TLS::append_tls_length_value
      Src: /src/botan/src/lib/tls/tls_reader.h:213,1
    - Dst: std::span<const T>::data
      Src: /src/botan/src/lib/tls/tls_reader.h:213,1
    - Dst: std::span<const T>::size
      Src: /src/botan/src/lib/tls/tls_reader.h:213,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: 214
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 214
    functionName: Botan::TLS::append_tls_length_value
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 5
    functionsReached:
    - Botan::TLS::append_tls_length_value
    - std::span<const T>::size
    - 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: Botan::TLS::append_tls_length_value
      Src: /src/botan/src/lib/tls/tls_reader.h:220,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: 221
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 221
    functionName: Botan::TLS::append_tls_length_value
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 6
    functionsReached:
    - Botan::TLS::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: Botan::TLS::append_tls_length_value
      Src: /src/botan/src/lib/tls/tls_reader.h:225,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/tls/tls_reader.h:225,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: 226
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 226
    functionName: Botan::TLS::append_tls_length_value
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 7
    functionsReached:
    - as_span_of_bytes
    - Botan::TLS::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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - type
    - buf_in
    argTypes:
    - char*
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: Botan::TLS::TLS_Data_Reader::TLS_Data_Reader
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void TLS_Data_Reader(const char* type, std::span<const uint8_t> buf_in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::TLS_Data_Reader::has_remaining
      Src: /src/botan/src/lib/tls/tls_reader.h:31,1
    - Dst: Botan::TLS::TLS_Data_Reader::throw_decode_error
      Src: /src/botan/src/lib/tls/tls_reader.h:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: Botan::TLS::TLS_Data_Reader::assert_done
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::TLS_Data_Reader::throw_decode_error
    - Botan::TLS::TLS_Data_Reader::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: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan::TLS::TLS_Data_Reader::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:38,1
    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::TLS::TLS_Data_Reader::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::TLS_Data_Reader::remaining_bytes
      Src: /src/botan/src/lib/tls/tls_reader.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Botan::TLS::TLS_Data_Reader::has_remaining
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 6
    functionsReached:
    - Botan::TLS::TLS_Data_Reader::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:43,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls_reader.h:44,1
    - Dst: std::span::begin
      Src: /src/botan/src/lib/tls/tls_reader.h:44,1
    - Dst: std::span::end
      Src: /src/botan/src/lib/tls/tls_reader.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: Botan::TLS::TLS_Data_Reader::get_remaining
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 0
    functionsReached:
    - std::span::begin
    - subspan
    - std::vector<uint8_t>
    - std::span::end
    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:48,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls_reader.h:49,1
    - Dst: std::span::begin
      Src: /src/botan/src/lib/tls/tls_reader.h:49,1
    - Dst: std::span::end
      Src: /src/botan/src/lib/tls/tls_reader.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: Botan::TLS::TLS_Data_Reader::get_data_read_so_far
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 0
    functionsReached:
    - std::span::begin
    - std::span::end
    - 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: Botan::TLS::TLS_Data_Reader::assert_at_least
      Src: /src/botan/src/lib/tls/tls_reader.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: Botan::TLS::TLS_Data_Reader::discard_next
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 4
    functionsReached:
    - Botan::TLS::TLS_Data_Reader::assert_at_least
    linkageType: ''
    returnType: void
    signature: void discard_next(size_t bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::TLS_Data_Reader::assert_at_least
      Src: /src/botan/src/lib/tls/tls_reader.h:58,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: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 62
    functionName: Botan::TLS::TLS_Data_Reader::get_uint32_t
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 0
    functionsReached:
    - make_uint32
    - Botan::TLS::TLS_Data_Reader::assert_at_least
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_uint32_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::TLS_Data_Reader::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: 2
    functionLinenumber: 64
    functionLinenumberEnd: 69
    functionName: Botan::TLS::TLS_Data_Reader::get_uint24_t
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 1
    functionsReached:
    - make_uint32
    - Botan::TLS::TLS_Data_Reader::assert_at_least
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_uint24_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::TLS_Data_Reader::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: 2
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: Botan::TLS::TLS_Data_Reader::get_uint16_t
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 5
    functionsReached:
    - make_uint16
    - Botan::TLS::TLS_Data_Reader::assert_at_least
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t get_uint16_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::TLS_Data_Reader::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: 2
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: Botan::TLS::TLS_Data_Reader::peek_uint16_t
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 0
    functionsReached:
    - make_uint16
    - Botan::TLS::TLS_Data_Reader::assert_at_least
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t peek_uint16_t() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::TLS_Data_Reader::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: 2
    functionLinenumber: 83
    functionLinenumberEnd: 88
    functionName: Botan::TLS::TLS_Data_Reader::get_byte
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 1
    functionsReached:
    - Botan::TLS::TLS_Data_Reader::assert_at_least
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t get_byte()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::TLS_Data_Reader::assert_at_least
      Src: /src/botan/src/lib/tls/tls_reader.h:92,1
    - Dst: load_be<T>
      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: 2
    functionLinenumber: 91
    functionLinenumberEnd: 103
    functionName: Botan::TLS::TLS_Data_Reader::get_elem
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 3
    functionsReached:
    - Botan::TLS::TLS_Data_Reader::assert_at_least
    - load_be<T>
    linkageType: ''
    returnType: Container
    signature: Container get_elem(size_t num_elems)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::TLS_Data_Reader::get_fixed
      Src: /src/botan/src/lib/tls/tls_reader.h:106,1
    - Dst: Botan::TLS::TLS_Data_Reader::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::TLS_Data_Reader::get_tls_length_value
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 4
    functionsReached:
    - Botan::TLS::TLS_Data_Reader::get_length_field
    - Botan::TLS::TLS_Data_Reader::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::TLS_Data_Reader::get_num_elems
      Src: /src/botan/src/lib/tls/tls_reader.h:111,1
    - Dst: Botan::TLS::TLS_Data_Reader::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: 4
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: Botan::TLS::TLS_Data_Reader::get_range
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::TLS_Data_Reader::get_elem
    - Botan::TLS::TLS_Data_Reader::get_num_elems
    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::TLS_Data_Reader::get_num_elems
      Src: /src/botan/src/lib/tls/tls_reader.h:118,1
    - Dst: Botan::TLS::TLS_Data_Reader::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: 4
    functionLinenumber: 117
    functionLinenumberEnd: 121
    functionName: Botan::TLS::TLS_Data_Reader::get_range_vector
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 1
    functionsReached:
    - Botan::TLS::TLS_Data_Reader::get_elem
    - Botan::TLS::TLS_Data_Reader::get_num_elems
    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::TLS_Data_Reader::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::TLS_Data_Reader::get_string
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::TLS_Data_Reader::get_range_vector
    - bytes_to_string
    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::TLS_Data_Reader::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::TLS_Data_Reader::get_fixed
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 2
    functionsReached:
    - Botan::TLS::TLS_Data_Reader::get_elem
    linkageType: ''
    returnType: std::vector<T>
    signature: std::vector<T> get_fixed(size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::TLS_Data_Reader::assert_at_least
      Src: /src/botan/src/lib/tls/tls_reader.h:135,1
    - Dst: Botan::TLS::TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/tls_reader.h:138,1
    - Dst: Botan::TLS::TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls_reader.h:140,1
    - Dst: Botan::TLS::TLS_Data_Reader::get_uint24_t
      Src: /src/botan/src/lib/tls/tls_reader.h:142,1
    - Dst: Botan::TLS::TLS_Data_Reader::throw_decode_error
      Src: /src/botan/src/lib/tls/tls_reader.h:145,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - len_bytes
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 134
    functionDepth: 2
    functionLinenumber: 134
    functionLinenumberEnd: 146
    functionName: Botan::TLS::TLS_Data_Reader::get_length_field
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 3
    functionsReached:
    - Botan::TLS::TLS_Data_Reader::get_byte
    - Botan::TLS::TLS_Data_Reader::get_uint24_t
    - Botan::TLS::TLS_Data_Reader::assert_at_least
    - Botan::TLS::TLS_Data_Reader::throw_decode_error
    - Botan::TLS::TLS_Data_Reader::get_uint16_t
    linkageType: ''
    returnType: size_t
    signature: size_t get_length_field(size_t len_bytes)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::TLS_Data_Reader::get_length_field
      Src: /src/botan/src/lib/tls/tls_reader.h:149,1
    - Dst: Botan::TLS::TLS_Data_Reader::throw_decode_error
      Src: /src/botan/src/lib/tls/tls_reader.h:152,1
    - Dst: Botan::TLS::TLS_Data_Reader::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: 3
    functionLinenumber: 148
    functionLinenumberEnd: 162
    functionName: Botan::TLS::TLS_Data_Reader::get_num_elems
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 4
    functionsReached:
    - Botan::TLS::TLS_Data_Reader::get_length_field
    - Botan::TLS::TLS_Data_Reader::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: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_reader.h:165,1
    - Dst: Botan::TLS::TLS_Data_Reader::throw_decode_error
      Src: /src/botan/src/lib/tls/tls_reader.h:166,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls_reader.h:166,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls_reader.h:167,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_reader.h:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 169
    functionName: Botan::TLS::TLS_Data_Reader::assert_at_least
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 16
    functionsReached:
    - std::to_string
    - size
    - Botan::TLS::TLS_Data_Reader::throw_decode_error
    linkageType: ''
    returnType: void
    signature: void assert_at_least(size_t n) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_reader.h:172,1
    - Dst: fmt
      Src: /src/botan/src/lib/tls/tls_reader.h:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - why
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 173
    functionName: Botan::TLS::TLS_Data_Reader::throw_decode_error
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 8
    functionsReached:
    - Decoding_Error
    - fmt
    linkageType: ''
    returnType: void
    signature: void throw_decode_error(std::string_view why) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls_reader.h:192,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls_reader.h:197,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls_reader.h:201,1
    - Dst: get_byte_var
      Src: /src/botan/src/lib/tls/tls_reader.h:201,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls_reader.h:206,1
    - Dst: get_byte_var
      Src: /src/botan/src/lib/tls/tls_reader.h:206,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 15
    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: 209
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 209
    functionName: Botan::TLS::append_tls_length_value
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 7
    functionsReached:
    - get_byte_var
    - push_back
    - Invalid_Argument
    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: Botan::TLS::append_tls_length_value
      Src: /src/botan/src/lib/tls/tls_reader.h:213,1
    - Dst: std::span<const T>::data
      Src: /src/botan/src/lib/tls/tls_reader.h:213,1
    - Dst: std::span<const T>::size
      Src: /src/botan/src/lib/tls/tls_reader.h:213,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: 214
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 214
    functionName: Botan::TLS::append_tls_length_value
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 8
    functionsReached:
    - Botan::TLS::append_tls_length_value
    - std::span<const T>::size
    - 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: Botan::TLS::append_tls_length_value
      Src: /src/botan/src/lib/tls/tls_reader.h:220,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: 221
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 221
    functionName: Botan::TLS::append_tls_length_value
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 9
    functionsReached:
    - Botan::TLS::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: Botan::TLS::append_tls_length_value
      Src: /src/botan/src/lib/tls/tls_reader.h:225,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/tls/tls_reader.h:225,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: 226
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 226
    functionName: Botan::TLS::append_tls_length_value
    functionSourceFile: /src/botan/src/lib/tls/tls_reader.h
    functionUses: 10
    functionsReached:
    - as_span_of_bytes
    - Botan::TLS::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:
    - Invalid_State
    - cipher_algo
    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:
    - BOTAN_UNUSED
    - Invalid_State
    - cipher_algo
    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: 2
    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: 1
    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:
    - mac_algo
    - cipher_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: 1
    functionLinenumber: 98
    functionLinenumberEnd: 107
    functionName: Botan::TLS::Ciphersuite::by_id
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.cpp
    functionUses: 22
    functionsReached:
    - all_known_ciphersuites
    - end
    - std::lower_bound
    - begin
    - auto::ciphersuite_code
    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::BlockCipher::providers
    - Botan::StreamCipher::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::BlockCipher::providers
    - Botan::StreamCipher::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:
    - mac_algo
    - cipher_algo
    - have_hash
    - prf_algo
    - Botan::TLS::Ciphersuite::cbc_ciphersuite
    - kex_method
    - auth_method
    - Botan::TLS::Ciphersuite::null_ciphersuite
    - have_cipher
    - BOTAN_UNUSED
    - split_on
    - auto::size
    - BOTAN_ASSERT
    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:
    - Invalid_State
    - cipher_algo
    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:
    - BOTAN_UNUSED
    - Invalid_State
    - cipher_algo
    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: 2
    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: 1
    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:
    - mac_algo
    - cipher_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: 1
    functionLinenumber: 98
    functionLinenumberEnd: 107
    functionName: Botan::TLS::Ciphersuite::by_id
    functionSourceFile: /src/botan/src/lib/tls/tls_ciphersuite.cpp
    functionUses: 22
    functionsReached:
    - all_known_ciphersuites
    - end
    - std::lower_bound
    - begin
    - auto::ciphersuite_code
    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::BlockCipher::providers
    - Botan::StreamCipher::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::BlockCipher::providers
    - Botan::StreamCipher::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:
    - mac_algo
    - cipher_algo
    - have_hash
    - prf_algo
    - Botan::TLS::Ciphersuite::cbc_ciphersuite
    - kex_method
    - auth_method
    - Botan::TLS::Ciphersuite::null_ciphersuite
    - have_cipher
    - BOTAN_UNUSED
    - split_on
    - auto::size
    - BOTAN_ASSERT
    linkageType: ''
    returnType: bool
    signature: bool Ciphersuite::is_usable() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: major_version
      Src: /src/botan/src/lib/tls/tls_version.cpp:17,1
    - Dst: minor_version
      Src: /src/botan/src/lib/tls/tls_version.cpp:18,1
    - Dst: Botan::TLS::Protocol_Version::to_string
      Src: /src/botan/src/lib/tls/tls_version.cpp:25,1
    - Dst: Botan::TLS::Protocol_Version::to_string
      Src: /src/botan/src/lib/tls/tls_version.cpp:29,1
    - Dst: Botan::TLS::Protocol_Version::to_string
      Src: /src/botan/src/lib/tls/tls_version.cpp:33,1
    - Dst: Botan::TLS::Protocol_Version::to_string
      Src: /src/botan/src/lib/tls/tls_version.cpp:33,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 34
    functionName: Botan::TLS::Protocol_Version::to_string
    functionSourceFile: /src/botan/src/lib/tls/tls_version.cpp
    functionUses: 6
    functionsReached:
    - Botan::TLS::Protocol_Version::to_string
    - minor_version
    - major_version
    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: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::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:41,1
    - Dst: Botan::TLS::Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls_version.cpp:42,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 43
    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:46,1
    - Dst: Botan::TLS::Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls_version.cpp:47,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 48
    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:51,1
    - Dst: is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls_version.cpp:51,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_version.cpp:52,1
    - Dst: to_string
      Src: /src/botan/src/lib/tls/tls_version.cpp:52,1
    - Dst: to_string
      Src: /src/botan/src/lib/tls/tls_version.cpp:52,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls_version.cpp:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 60
    functionName: Protocol_Version::operator>(const Protocol_Version& other) const
    functionSourceFile: /src/botan/src/lib/tls/tls_version.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - is_datagram_protocol
    - 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:63,1
    - Dst: minor_version
      Src: /src/botan/src/lib/tls/tls_version.cpp:64,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 82
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_version.cpp:85,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_version.cpp:87,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_version.cpp:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 90
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: major_version
      Src: /src/botan/src/lib/tls/tls_version.cpp:17,1
    - Dst: minor_version
      Src: /src/botan/src/lib/tls/tls_version.cpp:18,1
    - Dst: Botan::TLS::Protocol_Version::to_string
      Src: /src/botan/src/lib/tls/tls_version.cpp:25,1
    - Dst: Botan::TLS::Protocol_Version::to_string
      Src: /src/botan/src/lib/tls/tls_version.cpp:29,1
    - Dst: Botan::TLS::Protocol_Version::to_string
      Src: /src/botan/src/lib/tls/tls_version.cpp:33,1
    - Dst: Botan::TLS::Protocol_Version::to_string
      Src: /src/botan/src/lib/tls/tls_version.cpp:33,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 34
    functionName: Botan::TLS::Protocol_Version::to_string
    functionSourceFile: /src/botan/src/lib/tls/tls_version.cpp
    functionUses: 7
    functionsReached:
    - Botan::TLS::Protocol_Version::to_string
    - minor_version
    - major_version
    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: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::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:41,1
    - Dst: Botan::TLS::Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls_version.cpp:42,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 43
    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:46,1
    - Dst: Botan::TLS::Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls_version.cpp:47,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 48
    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:51,1
    - Dst: is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls_version.cpp:51,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_version.cpp:52,1
    - Dst: to_string
      Src: /src/botan/src/lib/tls/tls_version.cpp:52,1
    - Dst: to_string
      Src: /src/botan/src/lib/tls/tls_version.cpp:52,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls_version.cpp:55,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 60
    functionName: Protocol_Version::operator>(const Protocol_Version& other) const
    functionSourceFile: /src/botan/src/lib/tls/tls_version.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - is_datagram_protocol
    - 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:63,1
    - Dst: minor_version
      Src: /src/botan/src/lib/tls/tls_version.cpp:64,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 82
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_version.cpp:85,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_version.cpp:87,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_version.cpp:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 90
    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: 564
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 564
    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: 564
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 564
    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: 677
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 677
    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: 679
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 679
    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: 681
      start: 681
    functionDepth: 0
    functionLinenumber: 681
    functionLinenumberEnd: 681
    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: 683
      start: 683
    functionDepth: 0
    functionLinenumber: 683
    functionLinenumberEnd: 683
    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: 685
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 685
    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: 687
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 687
    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: 689
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 689
    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: 691
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 691
    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: 693
      start: 693
    functionDepth: 0
    functionLinenumber: 693
    functionLinenumberEnd: 693
    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: 695
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 695
    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: 697
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 697
    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: 564
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 564
    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: 564
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 564
    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: 677
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 677
    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: 679
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 679
    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: 681
      start: 681
    functionDepth: 0
    functionLinenumber: 681
    functionLinenumberEnd: 681
    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: 683
      start: 683
    functionDepth: 0
    functionLinenumber: 683
    functionLinenumberEnd: 683
    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: 685
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 685
    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: 687
      start: 687
    functionDepth: 0
    functionLinenumber: 687
    functionLinenumberEnd: 687
    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: 689
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 689
    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: 691
      start: 691
    functionDepth: 0
    functionLinenumber: 691
    functionLinenumberEnd: 691
    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: 693
      start: 693
    functionDepth: 0
    functionLinenumber: 693
    functionLinenumberEnd: 693
    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: 695
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 695
    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: 697
      start: 697
    functionDepth: 0
    functionLinenumber: 697
    functionLinenumberEnd: 697
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:28,1
    - Dst: side
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:28,1
    - Dst: Botan::TLS::Session_Manager_Stateless::get_ticket_key
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:33,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:34,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:38,1
    - Dst: encrypt
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:38,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' session'
    - tls12_no_ticket
    argTypes:
    - Session
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 39
    functionName: Botan::TLS::Session_Manager_Stateless::establish
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp
    functionUses: 8
    functionsReached:
    - side
    - auto::has_value
    - Session_Handle
    - auto::value
    - encrypt
    - BOTAN_ASSERT
    - Botan::TLS::Session_Manager_Stateless::get_ticket_key
    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:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 43
    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:46,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:47,1
    - Dst: Botan::TLS::Session_Manager_Stateless::get_ticket_key
      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::decrypt
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:57,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:57,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 64
    functionName: Botan::TLS::Session_Manager_Stateless::retrieve_one
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp
    functionUses: 0
    functionsReached:
    - ticket
    - auto::has_value
    - auto::value
    - Botan::TLS::Session::decrypt
    - Botan::TLS::Session_Manager_Stateless::get_ticket_key
    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: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::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:72,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 80
    functionName: Botan::TLS::Session_Manager_Stateless::get_ticket_key
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp
    functionUses: 3
    functionsReached:
    - psk
    - auto::empty
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:28,1
    - Dst: side
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:28,1
    - Dst: Botan::TLS::Session_Manager_Stateless::get_ticket_key
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:33,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:34,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:38,1
    - Dst: encrypt
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:38,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' session'
    - tls12_no_ticket
    argTypes:
    - Session
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 39
    functionName: Botan::TLS::Session_Manager_Stateless::establish
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp
    functionUses: 8
    functionsReached:
    - side
    - auto::has_value
    - Session_Handle
    - auto::value
    - encrypt
    - BOTAN_ASSERT
    - Botan::TLS::Session_Manager_Stateless::get_ticket_key
    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:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 43
    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:46,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:47,1
    - Dst: Botan::TLS::Session_Manager_Stateless::get_ticket_key
      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::decrypt
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:57,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:57,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:57,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 64
    functionName: Botan::TLS::Session_Manager_Stateless::retrieve_one
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp
    functionUses: 0
    functionsReached:
    - ticket
    - auto::has_value
    - auto::value
    - Botan::TLS::Session::decrypt
    - Botan::TLS::Session_Manager_Stateless::get_ticket_key
    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: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::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:72,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 80
    functionName: Botan::TLS::Session_Manager_Stateless::get_ticket_key
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_stateless.cpp
    functionUses: 6
    functionsReached:
    - psk
    - auto::empty
    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: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    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: 164
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 164
    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:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 263
    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: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    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: 164
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 164
    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:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 263
    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: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    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: 164
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 164
    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:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 263
    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: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    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: 164
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 164
    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:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 263
    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: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    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: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    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: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    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: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: 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: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    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: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    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:83,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 84
    functionName: TLS::Callbacks::tls_should_persist_resumption_information(const
      Session& session)
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - lifetime_hint
    - version
    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:92,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:93,1
    - Dst: require_cert_revocation_info
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:96,1
    - Dst: minimum_signature_strength
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:97,1
    - Dst: x509_path_validate
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:99,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:104,1
    - Dst: tls_verify_cert_chain_ocsp_timeout
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:105,1
    - Dst: Path_Validation_Result::successful_validation
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:108,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:109,1
    - Dst: Path_Validation_Result::result_string
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:109,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: 111
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 111
    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:
    - Path_Validation_Result::successful_validation
    - TLS_Exception
    - require_cert_revocation_info
    - tls_verify_cert_chain_ocsp_timeout
    - Path_Validation_Result::result_string
    - minimum_signature_strength
    - empty
    - Invalid_Argument
    - tls_current_timestamp
    - x509_path_validate
    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:117,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:120,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: 121
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 121
    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:
    - BOTAN_UNUSED
    - TLS_Exception
    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:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' raw_response'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 130
    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:134,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:135,1
    - Dst: tls_provide_cert_status
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:136,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: 139
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 139
    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
    - empty
    - size
    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:148,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: 149
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 149
    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:158,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: 159
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 159
    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:164,1
    - Dst: std::get<TLS::Group_Params>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' group'
    argTypes:
    - std::variant<TLS::Group_Params, DL_Group>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 165
    functionName: Botan::is_dh_group
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - std::get<TLS::Group_Params>
    - std::holds_alternative<DL_Group>
    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:168,1
    - Dst: Botan::is_dh_group
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:168,1
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:173,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:175,1
    - Dst: Botan::to_string
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' group'
    argTypes:
    - std::variant<TLS::Group_Params, DL_Group>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 177
    functionName: Botan::get_dl_group
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::DL_Group::from_name
    - Botan::is_dh_group
    - std::visit
    - Botan::to_string
    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:164,1
    - Dst: std::get<TLS::Group_Params>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' group'
    argTypes:
    - std::variant<TLS::Group_Params, DL_Group>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 165
    functionName: Botan::is_dh_group
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 1
    functionsReached:
    - std::get<TLS::Group_Params>
    - std::holds_alternative<DL_Group>
    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:168,1
    - Dst: Botan::is_dh_group
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:168,1
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:173,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:175,1
    - Dst: Botan::to_string
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' group'
    argTypes:
    - std::variant<TLS::Group_Params, DL_Group>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 177
    functionName: Botan::get_dl_group
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::DL_Group::from_name
    - Botan::is_dh_group
    - std::visit
    - Botan::to_string
    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:183,1
    - Dst: get_dl_group
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:186,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:188,1
    - Dst: auto::get_p
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:196,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:197,1
    - Dst: std::make_unique<DH_PublicKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:200,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:205,1
    - Dst: std::holds_alternative<TLS::Group_Params>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:205,1
    - Dst: std::get<TLS::Group_Params>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:206,1
    - Dst: auto::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:208,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:209,1
    - Dst: auto::to_string
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:209,1
    - Dst: std::make_unique<ECDH_PublicKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:210,1
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:210,1
    - Dst: auto::is_x25519
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:214,1
    - Dst: std::make_unique<X25519_PublicKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:215,1
    - Dst: auto::is_x448
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:220,1
    - Dst: std::make_unique<X448_PublicKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:221,1
    - Dst: auto::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:226,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey::load_for_group
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:227,1
    - Dst: auto::is_pure_ml_kem
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:232,1
    - Dst: std::make_unique<ML_KEM_PublicKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:233,1
    - Dst: ML_KEM_Mode
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:233,1
    - Dst: auto::to_string
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:233,1
    - Dst: auto::is_pure_frodokem
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:238,1
    - Dst: std::make_unique<FrodoKEM_PublicKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:239,1
    - Dst: FrodoKEMMode
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:239,1
    - Dst: auto::to_string
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:239,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:243,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: 244
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 244
    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:
    - BOTAN_ASSERT_NOMSG
    - is_dh_group
    - std::get<TLS::Group_Params>
    - auto::to_string
    - Botan::BigInt::from_bytes
    - Botan::TLS::Hybrid_KEM_PublicKey::load_for_group
    - ML_KEM_Mode
    - auto::is_x25519
    - auto::is_pure_frodokem
    - std::make_unique<X25519_PublicKey>
    - std::make_unique<X448_PublicKey>
    - Decoding_Error
    - EC_AffinePoint
    - std::make_unique<DH_PublicKey>
    - auto::is_pqc_hybrid
    - auto::is_x448
    - get_dl_group
    - std::holds_alternative<TLS::Group_Params>
    - std::make_unique<ML_KEM_PublicKey>
    - auto::is_pure_ml_kem
    - auto::is_ecdh_named_curve
    - auto::get_p
    - std::make_unique<ECDH_PublicKey>
    - FrodoKEMMode
    - Botan::EC_Group::from_name
    - std::make_unique<FrodoKEM_PublicKey>
    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:248,1
    - Dst: std::make_unique<ML_KEM_PrivateKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:249,1
    - Dst: ML_KEM_Mode
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:249,1
    - Dst: TLS::Group_Params::to_string
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:249,1
    - Dst: TLS::Group_Params::is_pure_frodokem
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:254,1
    - Dst: std::make_unique<FrodoKEM_PrivateKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:255,1
    - Dst: FrodoKEMMode
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:255,1
    - Dst: TLS::Group_Params::to_string
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:255,1
    - Dst: TLS::Group_Params::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:260,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::generate_from_group
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:261,1
    - Dst: tls_generate_ephemeral_key
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:265,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - group
    - ' rng'
    argTypes:
    - TLS::Group_Params
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 266
    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_generate_ephemeral_key
    - ML_KEM_Mode
    - std::make_unique<FrodoKEM_PrivateKey>
    - FrodoKEMMode
    - TLS::Group_Params::is_pure_ml_kem
    - TLS::Group_Params::is_pure_frodokem
    - TLS::Group_Params::is_pqc_hybrid
    - TLS::Group_Params::to_string
    - Botan::TLS::Hybrid_KEM_PrivateKey::generate_from_group
    - std::make_unique<ML_KEM_PrivateKey>
    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:272,1
    - Dst: tls_deserialize_peer_public_key
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:275,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:279,1
    - Dst: what
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:279,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:283,1
    - Dst: check_peer_key_acceptable
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:284,1
    - Dst: PK_KEM_Encryptor
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:287,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:289,1
    - Dst: what
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:289,1
    - Dst: tls_generate_ephemeral_key
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:295,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:296,1
    - Dst: auto::public_value
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:297,1
    - Dst: tls_ephemeral_key_agreement
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:298,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: 300
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 300
    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:
    - tls_generate_ephemeral_key
    - tls_deserialize_peer_public_key
    - PK_KEM_Encryptor
    - TLS_Exception
    - auto::public_value
    - BOTAN_ASSERT_NONNULL
    - check_peer_key_acceptable
    - tls_ephemeral_key_agreement
    - TLS::Group_Params::is_kem
    - 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:307,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:309,1
    - Dst: PK_KEM_Decryptor::encapsulated_key_length
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:309,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:310,1
    - Dst: PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:312,1
    - Dst: dynamic_cast<const PK_Key_Agreement_Key&>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:316,1
    - Dst: tls_ephemeral_key_agreement
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:317,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:319,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: 321
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 321
    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:
    - PK_KEM_Decryptor::decrypt
    - TLS_Exception
    - size
    - tls_ephemeral_key_agreement
    - dynamic_cast<const PK_Key_Agreement_Key&>
    - TLS::Group_Params::is_kem
    - Invalid_Argument
    - PK_KEM_Decryptor::encapsulated_key_length
    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:325,1
    - Dst: get_dl_group
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:326,1
    - Dst: std::make_unique<DH_PrivateKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:327,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:330,1
    - Dst: std::holds_alternative<TLS::Group_Params>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:330,1
    - Dst: std::get<TLS::Group_Params>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:331,1
    - Dst: auto::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:333,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:334,1
    - Dst: auto::to_string
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:334,1
    - Dst: std::make_unique<ECDH_PrivateKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:335,1
    - Dst: auto::is_x25519
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:339,1
    - Dst: std::make_unique<X25519_PrivateKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:340,1
    - Dst: auto::is_x448
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:345,1
    - Dst: std::make_unique<X448_PrivateKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:346,1
    - Dst: auto::is_kem
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:350,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:351,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:354,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: 355
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 355
    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:
    - BOTAN_ASSERT_NOMSG
    - auto::is_ecdh_named_curve
    - std::make_unique<X25519_PrivateKey>
    - auto::is_kem
    - auto::is_x448
    - TLS_Exception
    - auto::is_x25519
    - std::make_unique<X448_PrivateKey>
    - std::make_unique<ECDH_PrivateKey>
    - Botan::EC_Group::from_name
    - get_dl_group
    - std::holds_alternative<TLS::Group_Params>
    - is_dh_group
    - std::get<TLS::Group_Params>
    - auto::to_string
    - std::make_unique<DH_PrivateKey>
    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:360,1
    - Dst: dynamic_cast<ECDH_PublicKey*>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:369,1
    - Dst: auto::get
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:369,1
    - Dst: auto*::set_point_encoding
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:370,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: 374
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 374
    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:
    - dynamic_cast<ECDH_PublicKey*>
    - tls_generate_ephemeral_key
    - auto*::set_point_encoding
    - auto::get
    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:384,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:388,1
    - Dst: what
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:388,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:392,1
    - Dst: check_peer_key_acceptable
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:393,1
    - Dst: PK_Key_Agreement::derive_key
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:404,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:404,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:406,1
    - Dst: what
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:406,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: 408
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 408
    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:
    - PK_Key_Agreement::derive_key
    - tls_deserialize_peer_public_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:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 412
    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:416,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:417,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: 418
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 418
    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:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 422
    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:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - what
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 426
    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:429,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: 430
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 430
    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:435,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: 436
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 436
    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: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    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: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    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: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    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: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: 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: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    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: 69
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 69
    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:83,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 84
    functionName: TLS::Callbacks::tls_should_persist_resumption_information(const
      Session& session)
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - lifetime_hint
    - version
    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:92,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:93,1
    - Dst: require_cert_revocation_info
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:96,1
    - Dst: minimum_signature_strength
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:97,1
    - Dst: x509_path_validate
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:99,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:104,1
    - Dst: tls_verify_cert_chain_ocsp_timeout
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:105,1
    - Dst: Path_Validation_Result::successful_validation
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:108,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:109,1
    - Dst: Path_Validation_Result::result_string
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:109,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: 111
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 111
    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:
    - Path_Validation_Result::successful_validation
    - TLS_Exception
    - require_cert_revocation_info
    - tls_verify_cert_chain_ocsp_timeout
    - Path_Validation_Result::result_string
    - minimum_signature_strength
    - empty
    - Invalid_Argument
    - tls_current_timestamp
    - x509_path_validate
    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:117,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:120,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: 121
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 121
    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:
    - BOTAN_UNUSED
    - TLS_Exception
    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:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' raw_response'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 130
    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:134,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:135,1
    - Dst: tls_provide_cert_status
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:136,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: 139
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 139
    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
    - empty
    - size
    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:148,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: 149
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 149
    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:158,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: 159
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 159
    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:164,1
    - Dst: std::get<TLS::Group_Params>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' group'
    argTypes:
    - std::variant<TLS::Group_Params, DL_Group>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 165
    functionName: Botan::is_dh_group
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 2
    functionsReached:
    - std::get<TLS::Group_Params>
    - std::holds_alternative<DL_Group>
    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:168,1
    - Dst: Botan::is_dh_group
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:168,1
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:173,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:175,1
    - Dst: Botan::to_string
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' group'
    argTypes:
    - std::variant<TLS::Group_Params, DL_Group>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 177
    functionName: Botan::get_dl_group
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::DL_Group::from_name
    - Botan::is_dh_group
    - std::visit
    - Botan::to_string
    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:164,1
    - Dst: std::get<TLS::Group_Params>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' group'
    argTypes:
    - std::variant<TLS::Group_Params, DL_Group>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 165
    functionName: Botan::is_dh_group
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 3
    functionsReached:
    - std::get<TLS::Group_Params>
    - std::holds_alternative<DL_Group>
    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:168,1
    - Dst: Botan::is_dh_group
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:168,1
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:173,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:175,1
    - Dst: Botan::to_string
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ' group'
    argTypes:
    - std::variant<TLS::Group_Params, DL_Group>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 177
    functionName: Botan::get_dl_group
    functionSourceFile: /src/botan/src/lib/tls/tls_callbacks.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::DL_Group::from_name
    - Botan::is_dh_group
    - std::visit
    - Botan::to_string
    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:183,1
    - Dst: get_dl_group
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:186,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:188,1
    - Dst: auto::get_p
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:196,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:197,1
    - Dst: std::make_unique<DH_PublicKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:200,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:205,1
    - Dst: std::holds_alternative<TLS::Group_Params>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:205,1
    - Dst: std::get<TLS::Group_Params>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:206,1
    - Dst: auto::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:208,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:209,1
    - Dst: auto::to_string
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:209,1
    - Dst: std::make_unique<ECDH_PublicKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:210,1
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:210,1
    - Dst: auto::is_x25519
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:214,1
    - Dst: std::make_unique<X25519_PublicKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:215,1
    - Dst: auto::is_x448
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:220,1
    - Dst: std::make_unique<X448_PublicKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:221,1
    - Dst: auto::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:226,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey::load_for_group
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:227,1
    - Dst: auto::is_pure_ml_kem
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:232,1
    - Dst: std::make_unique<ML_KEM_PublicKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:233,1
    - Dst: ML_KEM_Mode
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:233,1
    - Dst: auto::to_string
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:233,1
    - Dst: auto::is_pure_frodokem
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:238,1
    - Dst: std::make_unique<FrodoKEM_PublicKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:239,1
    - Dst: FrodoKEMMode
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:239,1
    - Dst: auto::to_string
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:239,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:243,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: 244
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 244
    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:
    - BOTAN_ASSERT_NOMSG
    - is_dh_group
    - std::get<TLS::Group_Params>
    - auto::to_string
    - Botan::BigInt::from_bytes
    - Botan::TLS::Hybrid_KEM_PublicKey::load_for_group
    - ML_KEM_Mode
    - auto::is_x25519
    - auto::is_pure_frodokem
    - std::make_unique<X25519_PublicKey>
    - std::make_unique<X448_PublicKey>
    - Decoding_Error
    - EC_AffinePoint
    - std::make_unique<DH_PublicKey>
    - auto::is_pqc_hybrid
    - auto::is_x448
    - get_dl_group
    - std::holds_alternative<TLS::Group_Params>
    - std::make_unique<ML_KEM_PublicKey>
    - auto::is_pure_ml_kem
    - auto::is_ecdh_named_curve
    - auto::get_p
    - std::make_unique<ECDH_PublicKey>
    - FrodoKEMMode
    - Botan::EC_Group::from_name
    - std::make_unique<FrodoKEM_PublicKey>
    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:248,1
    - Dst: std::make_unique<ML_KEM_PrivateKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:249,1
    - Dst: ML_KEM_Mode
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:249,1
    - Dst: TLS::Group_Params::to_string
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:249,1
    - Dst: TLS::Group_Params::is_pure_frodokem
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:254,1
    - Dst: std::make_unique<FrodoKEM_PrivateKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:255,1
    - Dst: FrodoKEMMode
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:255,1
    - Dst: TLS::Group_Params::to_string
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:255,1
    - Dst: TLS::Group_Params::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:260,1
    - Dst: Botan::TLS::Hybrid_KEM_PrivateKey::generate_from_group
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:261,1
    - Dst: tls_generate_ephemeral_key
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:265,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - group
    - ' rng'
    argTypes:
    - TLS::Group_Params
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 266
    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_generate_ephemeral_key
    - ML_KEM_Mode
    - std::make_unique<FrodoKEM_PrivateKey>
    - FrodoKEMMode
    - TLS::Group_Params::is_pure_ml_kem
    - TLS::Group_Params::is_pure_frodokem
    - TLS::Group_Params::is_pqc_hybrid
    - TLS::Group_Params::to_string
    - Botan::TLS::Hybrid_KEM_PrivateKey::generate_from_group
    - std::make_unique<ML_KEM_PrivateKey>
    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:272,1
    - Dst: tls_deserialize_peer_public_key
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:275,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:279,1
    - Dst: what
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:279,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:283,1
    - Dst: check_peer_key_acceptable
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:284,1
    - Dst: PK_KEM_Encryptor
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:287,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:289,1
    - Dst: what
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:289,1
    - Dst: tls_generate_ephemeral_key
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:295,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:296,1
    - Dst: auto::public_value
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:297,1
    - Dst: tls_ephemeral_key_agreement
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:298,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: 300
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 300
    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:
    - tls_generate_ephemeral_key
    - tls_deserialize_peer_public_key
    - PK_KEM_Encryptor
    - TLS_Exception
    - auto::public_value
    - BOTAN_ASSERT_NONNULL
    - check_peer_key_acceptable
    - tls_ephemeral_key_agreement
    - TLS::Group_Params::is_kem
    - 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:307,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:309,1
    - Dst: PK_KEM_Decryptor::encapsulated_key_length
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:309,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:310,1
    - Dst: PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:312,1
    - Dst: dynamic_cast<const PK_Key_Agreement_Key&>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:316,1
    - Dst: tls_ephemeral_key_agreement
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:317,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:319,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: 321
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 321
    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:
    - PK_KEM_Decryptor::decrypt
    - TLS_Exception
    - size
    - tls_ephemeral_key_agreement
    - dynamic_cast<const PK_Key_Agreement_Key&>
    - TLS::Group_Params::is_kem
    - Invalid_Argument
    - PK_KEM_Decryptor::encapsulated_key_length
    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:325,1
    - Dst: get_dl_group
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:326,1
    - Dst: std::make_unique<DH_PrivateKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:327,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:330,1
    - Dst: std::holds_alternative<TLS::Group_Params>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:330,1
    - Dst: std::get<TLS::Group_Params>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:331,1
    - Dst: auto::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:333,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:334,1
    - Dst: auto::to_string
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:334,1
    - Dst: std::make_unique<ECDH_PrivateKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:335,1
    - Dst: auto::is_x25519
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:339,1
    - Dst: std::make_unique<X25519_PrivateKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:340,1
    - Dst: auto::is_x448
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:345,1
    - Dst: std::make_unique<X448_PrivateKey>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:346,1
    - Dst: auto::is_kem
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:350,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:351,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:354,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: 355
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 355
    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:
    - BOTAN_ASSERT_NOMSG
    - auto::is_ecdh_named_curve
    - std::make_unique<X25519_PrivateKey>
    - auto::is_kem
    - auto::is_x448
    - TLS_Exception
    - auto::is_x25519
    - std::make_unique<X448_PrivateKey>
    - std::make_unique<ECDH_PrivateKey>
    - Botan::EC_Group::from_name
    - get_dl_group
    - std::holds_alternative<TLS::Group_Params>
    - is_dh_group
    - std::get<TLS::Group_Params>
    - auto::to_string
    - std::make_unique<DH_PrivateKey>
    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:360,1
    - Dst: dynamic_cast<ECDH_PublicKey*>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:369,1
    - Dst: auto::get
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:369,1
    - Dst: auto*::set_point_encoding
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:370,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: 374
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 374
    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:
    - dynamic_cast<ECDH_PublicKey*>
    - tls_generate_ephemeral_key
    - auto*::set_point_encoding
    - auto::get
    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:384,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:388,1
    - Dst: what
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:388,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:392,1
    - Dst: check_peer_key_acceptable
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:393,1
    - Dst: PK_Key_Agreement::derive_key
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:404,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:404,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:406,1
    - Dst: what
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:406,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: 408
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 408
    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:
    - PK_Key_Agreement::derive_key
    - tls_deserialize_peer_public_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:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' session'
    argTypes:
    - Session_Summary
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 412
    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:416,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls_callbacks.cpp:417,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: 418
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 418
    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:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 422
    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:425,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - what
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 424
    functionDepth: 0
    functionLinenumber: 424
    functionLinenumberEnd: 426
    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:429,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: 430
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 430
    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:435,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: 436
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 436
    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: 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::auth_method
    - Botan::TLS::kdf_algo_to_string
    - Botan::TLS::kex_method
    - Botan::TLS::ciphersuite_code
    - is_usable
    - Botan::TLS::auth_method_to_string
    - Botan::TLS::kex_method_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_to_string
    - Botan::TLS::auth_method
    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::auth_method
    - Botan::TLS::kdf_algo_to_string
    - Botan::TLS::kex_method
    - Botan::TLS::ciphersuite_code
    - is_usable
    - Botan::TLS::auth_method_to_string
    - Botan::TLS::kex_method_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_to_string
    - Botan::TLS::auth_method
    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: 1
    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: 1
    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: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    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: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    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: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: Botan::TLS::find_some
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_stateless.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Session_with_Handle>
    signature: "std::vector<Session_with_Handle> find_some(const Server_Information&
      /*info*/,\n                                                 size_t /*max_sessions_hint*/)
      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::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: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    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: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: Botan::TLS::find_some
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_stateless.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Session_with_Handle>
    signature: "std::vector<Session_with_Handle> find_some(const Server_Information&
      /*info*/,\n                                                 size_t /*max_sessions_hint*/)
      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::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: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    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: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: Botan::TLS::find_some
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_stateless.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Session_with_Handle>
    signature: "std::vector<Session_with_Handle> find_some(const Server_Information&
      /*info*/,\n                                                 size_t /*max_sessions_hint*/)
      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::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: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    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: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: Botan::TLS::find_some
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_stateless.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Session_with_Handle>
    signature: "std::vector<Session_with_Handle> find_some(const Server_Information&
      /*info*/,\n                                                 size_t /*max_sessions_hint*/)
      override"
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:36,1
    - Dst: remaining_bytes
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:36,1
    - Dst: std::make_unique<Server_Name_Indicator>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:39,1
    - Dst: std::make_unique<Supported_Groups>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:42,1
    - Dst: std::make_unique<Certificate_Status_Request>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:45,1
    - Dst: std::make_unique<Supported_Point_Formats>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:48,1
    - Dst: std::make_unique<Renegotiation_Extension>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:51,1
    - Dst: std::make_unique<Signature_Algorithms>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:54,1
    - Dst: std::make_unique<Signature_Algorithms_Cert>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:57,1
    - Dst: std::make_unique<SRTP_Protection_Profiles>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:60,1
    - Dst: std::make_unique<Application_Layer_Protocol_Notification>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:63,1
    - Dst: std::make_unique<Client_Certificate_Type>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:66,1
    - Dst: std::make_unique<Server_Certificate_Type>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:69,1
    - Dst: std::make_unique<Extended_Master_Secret>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:72,1
    - Dst: std::make_unique<Record_Size_Limit>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:75,1
    - Dst: std::make_unique<Encrypt_then_MAC>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:78,1
    - Dst: std::make_unique<Session_Ticket_Extension>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:81,1
    - Dst: std::make_unique<Supported_Versions>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:84,1
    - Dst: std::make_unique<PSK>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:88,1
    - Dst: std::make_unique<EarlyDataIndication>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:91,1
    - Dst: std::make_unique<Cookie>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:94,1
    - Dst: std::make_unique<PSK_Key_Exchange_Modes>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:97,1
    - Dst: std::make_unique<Certificate_Authorities>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:100,1
    - Dst: std::make_unique<Key_Share>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:103,1
    - Dst: std::make_unique<Unknown_Extension>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 48
    argCount: 4
    argNames:
    - ' reader'
    - code
    - from
    - message_type
    argTypes:
    - TLS_Data_Reader
    - Extension_Code
    - Connection_Side
    - Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 108
    functionName: Botan::TLS::make_extension
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - std::make_unique<Certificate_Authorities>
    - std::make_unique<Client_Certificate_Type>
    - std::make_unique<Supported_Versions>
    - std::make_unique<Unknown_Extension>
    - std::make_unique<Application_Layer_Protocol_Notification>
    - std::make_unique<EarlyDataIndication>
    - std::make_unique<Cookie>
    - std::make_unique<Extended_Master_Secret>
    - std::make_unique<Record_Size_Limit>
    - std::make_unique<Signature_Algorithms>
    - std::make_unique<Signature_Algorithms_Cert>
    - std::make_unique<Encrypt_then_MAC>
    - std::make_unique<Session_Ticket_Extension>
    - std::make_unique<PSK_Key_Exchange_Modes>
    - std::make_unique<Supported_Groups>
    - std::make_unique<SRTP_Protection_Profiles>
    - std::make_unique<Server_Name_Indicator>
    - std::make_unique<Certificate_Status_Request>
    - std::make_unique<Key_Share>
    - std::make_unique<Supported_Point_Formats>
    - std::make_unique<Server_Certificate_Type>
    - std::make_unique<Renegotiation_Extension>
    - std::make_unique<PSK>
    - remaining_bytes
    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: 23
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:36,1
    - Dst: remaining_bytes
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:36,1
    - Dst: std::make_unique<Server_Name_Indicator>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:39,1
    - Dst: std::make_unique<Supported_Groups>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:42,1
    - Dst: std::make_unique<Certificate_Status_Request>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:45,1
    - Dst: std::make_unique<Supported_Point_Formats>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:48,1
    - Dst: std::make_unique<Renegotiation_Extension>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:51,1
    - Dst: std::make_unique<Signature_Algorithms>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:54,1
    - Dst: std::make_unique<Signature_Algorithms_Cert>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:57,1
    - Dst: std::make_unique<SRTP_Protection_Profiles>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:60,1
    - Dst: std::make_unique<Application_Layer_Protocol_Notification>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:63,1
    - Dst: std::make_unique<Client_Certificate_Type>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:66,1
    - Dst: std::make_unique<Server_Certificate_Type>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:69,1
    - Dst: std::make_unique<Extended_Master_Secret>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:72,1
    - Dst: std::make_unique<Record_Size_Limit>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:75,1
    - Dst: std::make_unique<Encrypt_then_MAC>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:78,1
    - Dst: std::make_unique<Session_Ticket_Extension>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:81,1
    - Dst: std::make_unique<Supported_Versions>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:84,1
    - Dst: std::make_unique<PSK>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:88,1
    - Dst: std::make_unique<EarlyDataIndication>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:91,1
    - Dst: std::make_unique<Cookie>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:94,1
    - Dst: std::make_unique<PSK_Key_Exchange_Modes>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:97,1
    - Dst: std::make_unique<Certificate_Authorities>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:100,1
    - Dst: std::make_unique<Key_Share>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:103,1
    - Dst: std::make_unique<Unknown_Extension>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 48
    argCount: 4
    argNames:
    - ' reader'
    - code
    - from
    - message_type
    argTypes:
    - TLS_Data_Reader
    - Extension_Code
    - Connection_Side
    - Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 108
    functionName: Botan::TLS::make_extension
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - std::make_unique<Certificate_Authorities>
    - std::make_unique<Client_Certificate_Type>
    - std::make_unique<Supported_Versions>
    - std::make_unique<Unknown_Extension>
    - std::make_unique<Application_Layer_Protocol_Notification>
    - std::make_unique<EarlyDataIndication>
    - std::make_unique<Cookie>
    - std::make_unique<Extended_Master_Secret>
    - std::make_unique<Record_Size_Limit>
    - std::make_unique<Signature_Algorithms>
    - std::make_unique<Signature_Algorithms_Cert>
    - std::make_unique<Encrypt_then_MAC>
    - std::make_unique<Session_Ticket_Extension>
    - std::make_unique<PSK_Key_Exchange_Modes>
    - std::make_unique<Supported_Groups>
    - std::make_unique<SRTP_Protection_Profiles>
    - std::make_unique<Server_Name_Indicator>
    - std::make_unique<Certificate_Status_Request>
    - std::make_unique<Key_Share>
    - std::make_unique<Supported_Point_Formats>
    - std::make_unique<Server_Certificate_Type>
    - std::make_unique<Renegotiation_Extension>
    - std::make_unique<PSK>
    - remaining_bytes
    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: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    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:116,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:116,1
    - Dst: cend
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:116,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:116,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:118,1
    - Dst: auto::get
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - type
    argTypes:
    - Extension_Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 119
    functionName: Botan::TLS::Extensions::get
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - cend
    - auto::get
    - cbegin
    - end
    - type
    - std::find_if
    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:122,1
    - Dst: std::unique_ptr<Extension>::type
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:122,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:123,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:124,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:124,1
    - Dst: std::unique_ptr<Extension>::type
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:124,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:127,1
    - Dst: std::unique_ptr<Extension>::release
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - extn
    argTypes:
    - std::unique_ptr<Extension>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 128
    functionName: Botan::TLS::Extensions::add
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - has
    - static_cast<uint16_t>
    - emplace_back
    - std::unique_ptr<Extension>::type
    - Invalid_Argument
    - std::to_string
    - std::unique_ptr<Extension>::release
    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:131,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:132,1
    - Dst: remaining_bytes
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:134,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:135,1
    - Dst: has_remaining
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:138,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:139,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:140,1
    - Dst: static_cast<Extension_Code>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:142,1
    - Dst: Botan::TLS::Extensions::has
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:144,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:145,1
    - Dst: get_fixed
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:150,1
    - Dst: Botan::TLS::Extensions::add
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:152,1
    - Dst: make_extension
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:152,1
    - Dst: TLS_Data_Reader::assert_done
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:153,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: 156
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 156
    functionName: Botan::TLS::Extensions::deserialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - TLS_Data_Reader::assert_done
    - TLS_Exception
    - Botan::TLS::Extensions::add
    - make_extension
    - has_remaining
    - get_uint16_t
    - static_cast<Extension_Code>
    - remaining_bytes
    - get_fixed
    - Botan::TLS::Extensions::has
    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:160,1
    - Dst: std::set_difference
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:163,1
    - Dst: auto::cbegin
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:164,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:164,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:164,1
    - Dst: cend
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:164,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:164,1
    - Dst: std::find_if
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:169,1
    - Dst: std::vector::cbegin
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:169,1
    - Dst: std::vector::cend
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:169,1
    - Dst: Botan::TLS::Extensions::get
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:170,1
    - Dst: auto::is_implemented
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:171,1
    - Dst: std::vector::cend
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:175,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:178,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: 179
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 179
    functionName: Botan::TLS::Extensions::contains_other_than
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - std::set_difference
    - Botan::TLS::Extensions::extension_types
    - auto::end
    - Botan::TLS::Extensions::get
    - cend
    - std::vector::cbegin
    - auto::is_implemented
    - auto::cbegin
    - std::back_inserter
    - std::vector::cend
    - std::vector::empty
    - cbegin
    - std::find_if
    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:183,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:183,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:183,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:183,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:186,1
    - Dst: std::swap
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:187,1
    - Dst: erase
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - type
    argTypes:
    - Extension_Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 192
    functionName: Botan::TLS::Extensions::take
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - std::swap
    - erase
    - end
    - type
    - begin
    - std::find_if
    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:198,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:202,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:202,1
    - Dst: Botan::TLS::Extensions::serialize
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:204,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:206,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:206,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:207,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:207,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:209,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:209,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:209,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:209,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:210,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:210,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:210,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:210,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:215,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:215,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:217,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:218,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:221,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:222,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - whoami
    argTypes:
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 226
    functionName: Botan::TLS::Extensions::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 1
    functionsReached:
    - static_cast<uint16_t>
    - std::vector::push_back
    - Botan::TLS::Extensions::serialize
    - get_byte<0>
    - empty
    - std::vector<uint8_t>
    - type
    - std::vector::size
    - get_byte<1>
    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:230,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:231,1
    - Dst: cend
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:231,1
    - Dst: std::inserter
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:231,1
    - Dst: std::set::begin
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:231,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 235
    functionName: Botan::TLS::Extensions::extension_types
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 1
    functionsReached:
    - std::inserter
    - cend
    - transform
    - cbegin
    - std::set::begin
    - 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:238,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: 238
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 238
    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: 242
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 242
    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:252,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:255,1
    - Dst: get_byte
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:259,1
    - Dst: get_string
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:264,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:265,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:265,1
    - Dst: discard_next
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:268,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 272
    functionName: Botan::TLS::Server_Name_Indicator::Server_Name_Indicator
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - static_cast<uint16_t>
    - discard_next
    - size
    - get_string
    - get_byte
    - get_uint16_t
    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:285,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:287,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:287,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:287,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:288,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:288,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:288,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:289,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:291,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:291,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:291,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:292,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:292,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:292,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - whoami
    argTypes:
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 297
    functionName: Botan::TLS::Server_Name_Indicator::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - std::vector::push_back
    - size
    - get_byte<0>
    - as_span_of_bytes
    - get_byte<1>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Server_Name_Indicator::serialize(Connection_Side
      whoami) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_range
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:300,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:301,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:302,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 304
    functionName: Botan::TLS::Renegotiation_Extension::Renegotiation_Extension
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - get_range
    - size
    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/tls_extensions.cpp:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 310
    functionName: Botan::TLS::Renegotiation_Extension::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.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: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:319,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:324,1
    - Dst: get_string
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:328,1
    - Dst: std::string::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:330,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:331,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:334,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:335,1
    - Dst: std::string::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:338,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:340,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:347,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:348,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:350,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:350,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: 352
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 352
    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::size
    - Decoding_Error
    - TLS_Exception
    - size
    - get_string
    - std::string::empty
    - push_back
    - get_uint16_t
    - std::to_string
    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:355,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:355,1
    - Dst: front
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 357
    functionName: Botan::TLS::Application_Layer_Protocol_Notification::single_protocol
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - size
    - front
    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:363,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:364,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:366,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:367,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:371,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:371,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:371,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:372,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:372,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:372,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 375
    functionName: Botan::TLS::Application_Layer_Protocol_Notification::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - TLS_Exception
    - get_byte<0>
    - length
    - empty
    - std::vector::size
    - append_tls_length_value
    - get_byte<1>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Application_Layer_Protocol_Notification::serialize(Connection_Side
      /*whoami*/) const
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - type
    argTypes:
    - Certificate_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 386
    functionName: Botan::TLS::certificate_type_to_string
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.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_extensions.cpp:394,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' type_str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 396
    functionName: Botan::TLS::certificate_type_from_string
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    linkageType: ''
    returnType: Certificate_Type
    signature: Certificate_Type certificate_type_from_string(const std::string& type_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:399,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:400,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - supported_cert_types
    argTypes:
    - std::vector<Certificate_Type>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 401
    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:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' cct'
    - ' policy'
    argTypes:
    - Client_Certificate_Type
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 404
    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:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' sct'
    - ' policy'
    argTypes:
    - Server_Certificate_Type
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 407
    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:419,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:420,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:430,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: 431
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 431
    functionName: Botan::TLS::Certificate_Type_Base::Certificate_Type_Base
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - push_back
    - value_exists
    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:436,1
    - Dst: get_tls_length_value
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:440,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:441,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:441,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:442,1
    - Dst: transform
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:444,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:445,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:445,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:445,1
    - Dst: static_cast<Certificate_Type>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:446,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:453,1
    - Dst: get_byte
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:455,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:456,1
    - Dst: static_cast<Certificate_Type>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:456,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: 458
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 458
    functionName: Botan::TLS::Certificate_Type_Base::Certificate_Type_Base
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - static_cast<size_t>
    - auto::end
    - static_cast<Certificate_Type>
    - get_byte
    - std::back_inserter
    - push_back
    - transform
    - auto::size
    - auto::begin
    - get_tls_length_value
    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:464,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:465,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:465,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:465,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:466,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:468,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:470,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:470,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:471,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:471,1
    - Dst: front
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - whoami
    argTypes:
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 474
    functionName: Botan::TLS::Certificate_Type_Base::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::vector::push_back
    - size
    - static_cast<uint8_t>
    - std::back_inserter
    - transform
    - end
    - begin
    - append_tls_length_value
    - front
    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:477,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:478,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:484,1
    - Dst: Botan::TLS::Certificate_Type_Base::selected_certificate_type
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:484,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:485,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:486,1
    - Dst: certificate_type_to_string
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:487,1
    - Dst: Botan::TLS::Certificate_Type_Base::selected_certificate_type
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:487,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' from_server'
    argTypes:
    - Certificate_Type_Base
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 476
    functionDepth: 1
    functionLinenumber: 476
    functionLinenumberEnd: 489
    functionName: Botan::TLS::Certificate_Type_Base::validate_selection
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::fmt
    - certificate_type_to_string
    - TLS_Exception
    - Botan::TLS::Certificate_Type_Base::selected_certificate_type
    - value_exists
    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:492,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:493,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:493,1
    - Dst: front
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 495
    functionName: Botan::TLS::Certificate_Type_Base::selected_certificate_type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - size
    - front
    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: 497
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 497
    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: 501
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 501
    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:506,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:507,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 511
    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:516,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:517,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 521
    functionName: Botan::TLS::Supported_Groups::dh_groups
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 4
    functionsReached:
    - std::vector::push_back
    - is_in_ffdhe_range
    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:527,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:530,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:530,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:531,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:531,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:535,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:535,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:535,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:536,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:536,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:536,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 539
    functionName: Botan::TLS::Supported_Groups::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 4
    functionsReached:
    - static_cast<uint16_t>
    - std::vector::push_back
    - get_byte<0>
    - wire_code
    - std::vector::size
    - get_byte<1>
    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:542,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:545,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:549,1
    - Dst: static_cast<Group_Params>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:555,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:555,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:557,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:558,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 541
    functionDepth: 1
    functionLinenumber: 541
    functionLinenumberEnd: 561
    functionName: Botan::TLS::Supported_Groups::Supported_Groups
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - static_cast<Group_Params>
    - get_uint16_t
    - push_back
    - value_exists
    linkageType: ''
    returnType: void
    signature: void Supported_Groups::Supported_Groups(TLS_Data_Reader& reader, uint16_t
      extension_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 570
    functionName: Botan::TLS::Supported_Point_Formats::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.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/tls_extensions.cpp:573,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:576,1
    - Dst: get_byte
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:581,1
    - Dst: static_cast<ECPointFormat>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:583,1
    - Dst: discard_next
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:585,1
    - Dst: static_cast<ECPointFormat>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:587,1
    - Dst: get_fixed
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:589,1
    - Dst: std::any_of
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:591,1
    - Dst: std::begin
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:591,1
    - Dst: std::end
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:591,1
    - Dst: static_cast<ECPointFormat>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:592,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:607,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 610
    functionName: Botan::TLS::Supported_Point_Formats::Supported_Point_Formats
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - discard_next
    - TLS_Exception
    - get_byte
    - std::any_of
    - std::end
    - get_fixed
    - std::begin
    - static_cast<ECPointFormat>
    linkageType: ''
    returnType: void
    signature: void Supported_Point_Formats::Supported_Point_Formats(TLS_Data_Reader&
      reader, uint16_t extension_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:615,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:615,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:619,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:619,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:621,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:621,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:622,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:622,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:625,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:625,1
    - Dst: Botan::TLS::wire_code
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:625,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:626,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:626,1
    - Dst: Botan::TLS::wire_code
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:626,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' schemes'
    argTypes:
    - std::vector<Signature_Scheme>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 614
    functionDepth: 1
    functionLinenumber: 614
    functionLinenumberEnd: 630
    functionName: Botan::TLS::serialize_signature_algorithms
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - Botan::TLS::wire_code
    - std::vector::push_back
    - size
    - get_byte<0>
    - BOTAN_ASSERT
    - get_byte<1>
    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: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:633,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:636,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:640,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:642,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:642,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 647
    functionName: Botan::TLS::parse_signature_algorithms
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - std::vector::emplace_back
    - Decoding_Error
    - get_uint16_t
    - std::vector::reserve
    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:615,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:615,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:619,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:619,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:621,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:621,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:622,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:622,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:625,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:625,1
    - Dst: Botan::TLS::wire_code
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:625,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:626,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:626,1
    - Dst: Botan::TLS::wire_code
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:626,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' schemes'
    argTypes:
    - std::vector<Signature_Scheme>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 614
    functionDepth: 1
    functionLinenumber: 614
    functionLinenumberEnd: 630
    functionName: Botan::TLS::serialize_signature_algorithms
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - Botan::TLS::wire_code
    - std::vector::push_back
    - size
    - get_byte<0>
    - BOTAN_ASSERT
    - get_byte<1>
    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: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:633,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:636,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:640,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:642,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:642,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 647
    functionName: Botan::TLS::parse_signature_algorithms
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - std::vector::emplace_back
    - Decoding_Error
    - get_uint16_t
    - std::vector::reserve
    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:652,1
    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::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:656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 656
    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:659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 658
    functionDepth: 0
    functionLinenumber: 658
    functionLinenumberEnd: 660
    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:663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 662
    functionDepth: 0
    functionLinenumber: 662
    functionLinenumberEnd: 663
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: Session_Ticket
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:666,1
    - Dst: get_elem
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 666
    functionName: Botan::TLS::Session_Ticket_Extension::Session_Ticket_Extension
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 2
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_range
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:669,1
    - Dst: get_range
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:670,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:672,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:672,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:673,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:676,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:677,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 668
    functionDepth: 0
    functionLinenumber: 668
    functionLinenumberEnd: 679
    functionName: Botan::TLS::SRTP_Protection_Profiles::SRTP_Protection_Profiles
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - get_range
    - size
    - std::vector::empty
    - std::vector::size
    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:684,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:684,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:685,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:685,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:686,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:686,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:689,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:689,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:690,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:690,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:693,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 681
    functionDepth: 0
    functionLinenumber: 681
    functionLinenumberEnd: 696
    functionName: Botan::TLS::SRTP_Protection_Profiles::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - std::vector::push_back
    - size
    - get_byte<0>
    - get_byte<1>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> SRTP_Protection_Profiles::serialize(Connection_Side
      /*whoami*/) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:700,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - extension_size
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 702
    functionName: Botan::TLS::Extended_Master_Secret::Extended_Master_Secret
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.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/tls_extensions.cpp:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 706
    functionName: Botan::TLS::Extended_Master_Secret::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.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/tls_extensions.cpp:710,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - extension_size
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 712
    functionName: Botan::TLS::Encrypt_then_MAC::Encrypt_then_MAC
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.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/tls_extensions.cpp:715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 716
    functionName: Botan::TLS::Encrypt_then_MAC::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.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_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:722,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:722,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:723,1
    - Dst: major_version
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:723,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:724,1
    - Dst: minor_version
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:724,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:726,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:726,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:727,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:727,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:729,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:732,1
    - Dst: major_version
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:732,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:733,1
    - Dst: minor_version
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:733,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - whoami
    argTypes:
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 718
    functionDepth: 1
    functionLinenumber: 718
    functionLinenumberEnd: 738
    functionName: Botan::TLS::Supported_Versions::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 4
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::vector::push_back
    - size
    - static_cast<uint8_t>
    - minor_version
    - empty
    - major_version
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Supported_Versions::serialize(Connection_Side
      whoami) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:741,1
    - Dst: allow_dtls12
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:743,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:744,1
    - Dst: allow_tls13
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:749,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:750,1
    - Dst: allow_tls12
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:754,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:755,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 2
    argNames:
    - offer
    - ' policy'
    argTypes:
    - Protocol_Version
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 740
    functionDepth: 0
    functionLinenumber: 740
    functionLinenumberEnd: 759
    functionName: Botan::TLS::Supported_Versions::Supported_Versions
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - allow_dtls12
    - Protocol_Version::is_datagram_protocol
    - allow_tls13
    - push_back
    - allow_tls12
    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:764,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:766,1
    - Dst: Protocol_Version
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:766,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:766,1
    - Dst: get_range
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:768,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:771,1
    - Dst: Protocol_Version
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:771,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:774,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:775,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: 778
      start: 761
    functionDepth: 0
    functionLinenumber: 761
    functionLinenumberEnd: 778
    functionName: Botan::TLS::Supported_Versions::Supported_Versions
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - get_range
    - push_back
    - get_uint16_t
    - Protocol_Version
    - auto::size
    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: 787
      start: 780
    functionDepth: 0
    functionLinenumber: 780
    functionLinenumberEnd: 787
    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:790,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - limit
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 789
    functionDepth: 1
    functionLinenumber: 789
    functionLinenumberEnd: 793
    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:797,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:800,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:816,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:825,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: 827
      start: 795
    functionDepth: 1
    functionLinenumber: 795
    functionLinenumberEnd: 827
    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:832,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:832,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:833,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 829
    functionDepth: 0
    functionLinenumber: 829
    functionLinenumberEnd: 836
    functionName: Botan::TLS::Record_Size_Limit::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - get_byte<0>
    - get_byte<1>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Record_Size_Limit::serialize(Connection_Side /*whoami*/)
      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: 839
      start: 839
    functionDepth: 0
    functionLinenumber: 839
    functionLinenumberEnd: 839
    functionName: Botan::TLS::Cookie::Cookie
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.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/tls_extensions.cpp:846,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:850,1
    - Dst: remaining_bytes
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:853,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:854,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:858,1
    - Dst: get_byte
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:858,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 841
    functionDepth: 0
    functionLinenumber: 841
    functionLinenumberEnd: 860
    functionName: Botan::TLS::Cookie::Cookie
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - get_byte
    - push_back
    - get_uint16_t
    - remaining_bytes
    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/tls_extensions.cpp:865,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:865,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:867,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:867,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:868,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:868,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:871,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 862
    functionDepth: 0
    functionLinenumber: 862
    functionLinenumberEnd: 875
    functionName: Botan::TLS::Cookie::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 4
    functionsReached:
    - static_cast<uint16_t>
    - std::vector::push_back
    - size
    - get_byte<0>
    - get_byte<1>
    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/tls_extensions.cpp:880,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:880,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:881,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:881,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:881,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:883,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:883,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 877
    functionDepth: 1
    functionLinenumber: 877
    functionLinenumberEnd: 887
    functionName: Botan::TLS::PSK_Key_Exchange_Modes::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - static_cast<uint8_t>
    - size
    - 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/tls_extensions.cpp:891,1
    - Dst: get_byte
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:894,1
    - Dst: static_cast<PSK_Key_Exchange_Mode>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:896,1
    - Dst: get_byte
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:896,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:898,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 889
    functionDepth: 0
    functionLinenumber: 889
    functionLinenumberEnd: 901
    functionName: Botan::TLS::PSK_Key_Exchange_Modes::PSK_Key_Exchange_Modes
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - push_back
    - get_byte
    - static_cast<PSK_Key_Exchange_Mode>
    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/tls_extensions.cpp:909,1
    - Dst: encode_into
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:910,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:911,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:914,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 903
    functionDepth: 0
    functionLinenumber: 903
    functionLinenumberEnd: 917
    functionName: Botan::TLS::Certificate_Authorities::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - append_tls_length_value
    - encode_into
    - DER_Encoder
    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/tls_extensions.cpp:921,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:924,1
    - Dst: remaining_bytes
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:926,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:927,1
    - Dst: has_remaining
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:930,1
    - Dst: get_tls_length_value
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:931,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:933,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:933,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:934,1
    - Dst: BER_Decoder::decode
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:935,1
    - Dst: back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:935,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 919
    functionDepth: 1
    functionLinenumber: 919
    functionLinenumberEnd: 937
    functionName: Botan::TLS::Certificate_Authorities::Certificate_Authorities
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - emplace_back
    - back
    - std::vector::data
    - BER_Decoder::decode
    - has_remaining
    - get_uint16_t
    - remaining_bytes
    - std::vector::size
    - get_tls_length_value
    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/tls_extensions.cpp:940,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - acceptable_DNs
    argTypes:
    - std::vector<X509_DN>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 939
    functionDepth: 0
    functionLinenumber: 939
    functionLinenumberEnd: 940
    functionName: Botan::TLS::Certificate_Authorities::Certificate_Authorities
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.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/tls_extensions.cpp:944,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:945,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:946,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:946,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:947,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:947,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:948,1
    - Dst: get_byte<2>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:948,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:949,1
    - Dst: get_byte<3>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:949,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 942
    functionDepth: 1
    functionLinenumber: 942
    functionLinenumberEnd: 952
    functionName: Botan::TLS::EarlyDataIndication::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - get_byte<3>
    - get_byte<0>
    - get_byte<2>
    - has_value
    - value
    - get_byte<1>
    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/tls_extensions.cpp:959,1
    - Dst: get_uint32_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:964,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:966,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: 970
      start: 954
    functionDepth: 1
    functionLinenumber: 954
    functionLinenumberEnd: 970
    functionName: Botan::TLS::EarlyDataIndication::EarlyDataIndication
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.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: 975
      start: 972
    functionDepth: 0
    functionLinenumber: 972
    functionLinenumberEnd: 975
    functionName: Botan::TLS::EarlyDataIndication::empty
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EarlyDataIndication::empty() const
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:36,1
    - Dst: remaining_bytes
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:36,1
    - Dst: std::make_unique<Server_Name_Indicator>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:39,1
    - Dst: std::make_unique<Supported_Groups>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:42,1
    - Dst: std::make_unique<Certificate_Status_Request>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:45,1
    - Dst: std::make_unique<Supported_Point_Formats>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:48,1
    - Dst: std::make_unique<Renegotiation_Extension>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:51,1
    - Dst: std::make_unique<Signature_Algorithms>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:54,1
    - Dst: std::make_unique<Signature_Algorithms_Cert>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:57,1
    - Dst: std::make_unique<SRTP_Protection_Profiles>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:60,1
    - Dst: std::make_unique<Application_Layer_Protocol_Notification>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:63,1
    - Dst: std::make_unique<Client_Certificate_Type>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:66,1
    - Dst: std::make_unique<Server_Certificate_Type>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:69,1
    - Dst: std::make_unique<Extended_Master_Secret>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:72,1
    - Dst: std::make_unique<Record_Size_Limit>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:75,1
    - Dst: std::make_unique<Encrypt_then_MAC>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:78,1
    - Dst: std::make_unique<Session_Ticket_Extension>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:81,1
    - Dst: std::make_unique<Supported_Versions>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:84,1
    - Dst: std::make_unique<PSK>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:88,1
    - Dst: std::make_unique<EarlyDataIndication>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:91,1
    - Dst: std::make_unique<Cookie>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:94,1
    - Dst: std::make_unique<PSK_Key_Exchange_Modes>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:97,1
    - Dst: std::make_unique<Certificate_Authorities>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:100,1
    - Dst: std::make_unique<Key_Share>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:103,1
    - Dst: std::make_unique<Unknown_Extension>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 48
    argCount: 4
    argNames:
    - ' reader'
    - code
    - from
    - message_type
    argTypes:
    - TLS_Data_Reader
    - Extension_Code
    - Connection_Side
    - Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 108
    functionName: Botan::TLS::make_extension
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - std::make_unique<Certificate_Authorities>
    - std::make_unique<Client_Certificate_Type>
    - std::make_unique<Supported_Versions>
    - std::make_unique<Unknown_Extension>
    - std::make_unique<Application_Layer_Protocol_Notification>
    - std::make_unique<EarlyDataIndication>
    - std::make_unique<Cookie>
    - std::make_unique<Extended_Master_Secret>
    - std::make_unique<Record_Size_Limit>
    - std::make_unique<Signature_Algorithms>
    - std::make_unique<Signature_Algorithms_Cert>
    - std::make_unique<Encrypt_then_MAC>
    - std::make_unique<Session_Ticket_Extension>
    - std::make_unique<PSK_Key_Exchange_Modes>
    - std::make_unique<Supported_Groups>
    - std::make_unique<SRTP_Protection_Profiles>
    - std::make_unique<Server_Name_Indicator>
    - std::make_unique<Certificate_Status_Request>
    - std::make_unique<Key_Share>
    - std::make_unique<Supported_Point_Formats>
    - std::make_unique<Server_Certificate_Type>
    - std::make_unique<Renegotiation_Extension>
    - std::make_unique<PSK>
    - remaining_bytes
    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: 23
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:36,1
    - Dst: remaining_bytes
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:36,1
    - Dst: std::make_unique<Server_Name_Indicator>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:39,1
    - Dst: std::make_unique<Supported_Groups>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:42,1
    - Dst: std::make_unique<Certificate_Status_Request>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:45,1
    - Dst: std::make_unique<Supported_Point_Formats>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:48,1
    - Dst: std::make_unique<Renegotiation_Extension>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:51,1
    - Dst: std::make_unique<Signature_Algorithms>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:54,1
    - Dst: std::make_unique<Signature_Algorithms_Cert>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:57,1
    - Dst: std::make_unique<SRTP_Protection_Profiles>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:60,1
    - Dst: std::make_unique<Application_Layer_Protocol_Notification>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:63,1
    - Dst: std::make_unique<Client_Certificate_Type>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:66,1
    - Dst: std::make_unique<Server_Certificate_Type>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:69,1
    - Dst: std::make_unique<Extended_Master_Secret>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:72,1
    - Dst: std::make_unique<Record_Size_Limit>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:75,1
    - Dst: std::make_unique<Encrypt_then_MAC>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:78,1
    - Dst: std::make_unique<Session_Ticket_Extension>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:81,1
    - Dst: std::make_unique<Supported_Versions>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:84,1
    - Dst: std::make_unique<PSK>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:88,1
    - Dst: std::make_unique<EarlyDataIndication>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:91,1
    - Dst: std::make_unique<Cookie>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:94,1
    - Dst: std::make_unique<PSK_Key_Exchange_Modes>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:97,1
    - Dst: std::make_unique<Certificate_Authorities>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:100,1
    - Dst: std::make_unique<Key_Share>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:103,1
    - Dst: std::make_unique<Unknown_Extension>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 48
    argCount: 4
    argNames:
    - ' reader'
    - code
    - from
    - message_type
    argTypes:
    - TLS_Data_Reader
    - Extension_Code
    - Connection_Side
    - Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 108
    functionName: Botan::TLS::make_extension
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - std::make_unique<Certificate_Authorities>
    - std::make_unique<Client_Certificate_Type>
    - std::make_unique<Supported_Versions>
    - std::make_unique<Unknown_Extension>
    - std::make_unique<Application_Layer_Protocol_Notification>
    - std::make_unique<EarlyDataIndication>
    - std::make_unique<Cookie>
    - std::make_unique<Extended_Master_Secret>
    - std::make_unique<Record_Size_Limit>
    - std::make_unique<Signature_Algorithms>
    - std::make_unique<Signature_Algorithms_Cert>
    - std::make_unique<Encrypt_then_MAC>
    - std::make_unique<Session_Ticket_Extension>
    - std::make_unique<PSK_Key_Exchange_Modes>
    - std::make_unique<Supported_Groups>
    - std::make_unique<SRTP_Protection_Profiles>
    - std::make_unique<Server_Name_Indicator>
    - std::make_unique<Certificate_Status_Request>
    - std::make_unique<Key_Share>
    - std::make_unique<Supported_Point_Formats>
    - std::make_unique<Server_Certificate_Type>
    - std::make_unique<Renegotiation_Extension>
    - std::make_unique<PSK>
    - remaining_bytes
    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: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    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:116,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:116,1
    - Dst: cend
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:116,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:116,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:118,1
    - Dst: auto::get
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - type
    argTypes:
    - Extension_Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 119
    functionName: Botan::TLS::Extensions::get
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 1
    functionsReached:
    - cend
    - auto::get
    - cbegin
    - end
    - type
    - std::find_if
    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:122,1
    - Dst: std::unique_ptr<Extension>::type
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:122,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:123,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:124,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:124,1
    - Dst: std::unique_ptr<Extension>::type
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:124,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:127,1
    - Dst: std::unique_ptr<Extension>::release
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - extn
    argTypes:
    - std::unique_ptr<Extension>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 128
    functionName: Botan::TLS::Extensions::add
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 1
    functionsReached:
    - has
    - static_cast<uint16_t>
    - emplace_back
    - std::unique_ptr<Extension>::type
    - Invalid_Argument
    - std::to_string
    - std::unique_ptr<Extension>::release
    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:131,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:132,1
    - Dst: remaining_bytes
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:134,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:135,1
    - Dst: has_remaining
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:138,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:139,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:140,1
    - Dst: static_cast<Extension_Code>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:142,1
    - Dst: Botan::TLS::Extensions::has
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:144,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:145,1
    - Dst: get_fixed
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:150,1
    - Dst: Botan::TLS::Extensions::add
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:152,1
    - Dst: make_extension
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:152,1
    - Dst: TLS_Data_Reader::assert_done
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:153,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: 156
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 156
    functionName: Botan::TLS::Extensions::deserialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - TLS_Data_Reader::assert_done
    - TLS_Exception
    - Botan::TLS::Extensions::add
    - make_extension
    - has_remaining
    - get_uint16_t
    - static_cast<Extension_Code>
    - remaining_bytes
    - get_fixed
    - Botan::TLS::Extensions::has
    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:160,1
    - Dst: std::set_difference
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:163,1
    - Dst: auto::cbegin
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:164,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:164,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:164,1
    - Dst: cend
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:164,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:164,1
    - Dst: std::find_if
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:169,1
    - Dst: std::vector::cbegin
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:169,1
    - Dst: std::vector::cend
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:169,1
    - Dst: Botan::TLS::Extensions::get
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:170,1
    - Dst: auto::is_implemented
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:171,1
    - Dst: std::vector::cend
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:175,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:178,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: 179
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 179
    functionName: Botan::TLS::Extensions::contains_other_than
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - std::set_difference
    - Botan::TLS::Extensions::extension_types
    - auto::end
    - Botan::TLS::Extensions::get
    - cend
    - std::vector::cbegin
    - auto::is_implemented
    - auto::cbegin
    - std::back_inserter
    - std::vector::cend
    - std::vector::empty
    - cbegin
    - std::find_if
    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:183,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:183,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:183,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:183,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:186,1
    - Dst: std::swap
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:187,1
    - Dst: erase
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - type
    argTypes:
    - Extension_Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 192
    functionName: Botan::TLS::Extensions::take
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - std::swap
    - erase
    - end
    - type
    - begin
    - std::find_if
    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:198,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:202,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:202,1
    - Dst: Botan::TLS::Extensions::serialize
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:204,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:206,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:206,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:207,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:207,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:209,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:209,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:209,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:209,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:210,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:210,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:210,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:210,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:215,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:215,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:217,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:218,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:221,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:222,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - whoami
    argTypes:
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 226
    functionName: Botan::TLS::Extensions::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 2
    functionsReached:
    - static_cast<uint16_t>
    - std::vector::push_back
    - Botan::TLS::Extensions::serialize
    - get_byte<0>
    - empty
    - std::vector<uint8_t>
    - type
    - std::vector::size
    - get_byte<1>
    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:230,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:231,1
    - Dst: cend
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:231,1
    - Dst: std::inserter
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:231,1
    - Dst: std::set::begin
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:231,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 235
    functionName: Botan::TLS::Extensions::extension_types
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 2
    functionsReached:
    - std::inserter
    - cend
    - transform
    - cbegin
    - std::set::begin
    - 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:238,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: 238
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 238
    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: 242
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 242
    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:252,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:255,1
    - Dst: get_byte
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:259,1
    - Dst: get_string
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:264,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:265,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:265,1
    - Dst: discard_next
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:268,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 272
    functionName: Botan::TLS::Server_Name_Indicator::Server_Name_Indicator
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - static_cast<uint16_t>
    - discard_next
    - size
    - get_string
    - get_byte
    - get_uint16_t
    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:285,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:287,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:287,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:287,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:288,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:288,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:288,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:289,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:291,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:291,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:291,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:292,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:292,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:292,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - whoami
    argTypes:
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 297
    functionName: Botan::TLS::Server_Name_Indicator::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - std::vector::push_back
    - size
    - get_byte<0>
    - as_span_of_bytes
    - get_byte<1>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Server_Name_Indicator::serialize(Connection_Side
      whoami) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_range
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:300,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:301,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:302,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 304
    functionName: Botan::TLS::Renegotiation_Extension::Renegotiation_Extension
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - get_range
    - size
    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/tls_extensions.cpp:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 310
    functionName: Botan::TLS::Renegotiation_Extension::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.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: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:319,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:324,1
    - Dst: get_string
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:328,1
    - Dst: std::string::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:330,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:331,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:334,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:335,1
    - Dst: std::string::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:338,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:340,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:347,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:348,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:350,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:350,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: 352
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 352
    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::size
    - Decoding_Error
    - TLS_Exception
    - size
    - get_string
    - std::string::empty
    - push_back
    - get_uint16_t
    - std::to_string
    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:355,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:355,1
    - Dst: front
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 357
    functionName: Botan::TLS::Application_Layer_Protocol_Notification::single_protocol
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - size
    - front
    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:363,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:364,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:366,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:367,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:371,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:371,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:371,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:372,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:372,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:372,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 375
    functionName: Botan::TLS::Application_Layer_Protocol_Notification::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - TLS_Exception
    - get_byte<0>
    - length
    - empty
    - std::vector::size
    - append_tls_length_value
    - get_byte<1>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Application_Layer_Protocol_Notification::serialize(Connection_Side
      /*whoami*/) const
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - type
    argTypes:
    - Certificate_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 386
    functionName: Botan::TLS::certificate_type_to_string
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.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_extensions.cpp:394,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' type_str'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 396
    functionName: Botan::TLS::certificate_type_from_string
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    linkageType: ''
    returnType: Certificate_Type
    signature: Certificate_Type certificate_type_from_string(const std::string& type_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:399,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:400,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - supported_cert_types
    argTypes:
    - std::vector<Certificate_Type>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 401
    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:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' cct'
    - ' policy'
    argTypes:
    - Client_Certificate_Type
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 404
    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:407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' sct'
    - ' policy'
    argTypes:
    - Server_Certificate_Type
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 407
    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:419,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:420,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:430,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: 431
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 431
    functionName: Botan::TLS::Certificate_Type_Base::Certificate_Type_Base
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - push_back
    - value_exists
    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:436,1
    - Dst: get_tls_length_value
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:440,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:441,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:441,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:442,1
    - Dst: transform
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:444,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:445,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:445,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:445,1
    - Dst: static_cast<Certificate_Type>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:446,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:453,1
    - Dst: get_byte
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:455,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:456,1
    - Dst: static_cast<Certificate_Type>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:456,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: 458
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 458
    functionName: Botan::TLS::Certificate_Type_Base::Certificate_Type_Base
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - static_cast<size_t>
    - auto::end
    - static_cast<Certificate_Type>
    - get_byte
    - std::back_inserter
    - push_back
    - transform
    - auto::size
    - auto::begin
    - get_tls_length_value
    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:464,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:465,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:465,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:465,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:466,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:468,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:470,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:470,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:471,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:471,1
    - Dst: front
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:471,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - whoami
    argTypes:
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 474
    functionName: Botan::TLS::Certificate_Type_Base::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::vector::push_back
    - size
    - static_cast<uint8_t>
    - std::back_inserter
    - transform
    - end
    - begin
    - append_tls_length_value
    - front
    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:477,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:478,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:484,1
    - Dst: Botan::TLS::Certificate_Type_Base::selected_certificate_type
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:484,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:485,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:486,1
    - Dst: certificate_type_to_string
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:487,1
    - Dst: Botan::TLS::Certificate_Type_Base::selected_certificate_type
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:487,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' from_server'
    argTypes:
    - Certificate_Type_Base
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 476
    functionDepth: 2
    functionLinenumber: 476
    functionLinenumberEnd: 489
    functionName: Botan::TLS::Certificate_Type_Base::validate_selection
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::fmt
    - certificate_type_to_string
    - TLS_Exception
    - Botan::TLS::Certificate_Type_Base::selected_certificate_type
    - value_exists
    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:492,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:493,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:493,1
    - Dst: front
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 495
    functionName: Botan::TLS::Certificate_Type_Base::selected_certificate_type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - size
    - front
    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: 497
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 497
    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: 501
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 501
    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:506,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:507,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 503
    functionDepth: 0
    functionLinenumber: 503
    functionLinenumberEnd: 511
    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:516,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:517,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 521
    functionName: Botan::TLS::Supported_Groups::dh_groups
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 4
    functionsReached:
    - std::vector::push_back
    - is_in_ffdhe_range
    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:527,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:530,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:530,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:531,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:531,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:535,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:535,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:535,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:536,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:536,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:536,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 539
    functionName: Botan::TLS::Supported_Groups::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 4
    functionsReached:
    - static_cast<uint16_t>
    - std::vector::push_back
    - get_byte<0>
    - wire_code
    - std::vector::size
    - get_byte<1>
    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:542,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:545,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:549,1
    - Dst: static_cast<Group_Params>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:555,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:555,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:557,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:558,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 541
    functionDepth: 1
    functionLinenumber: 541
    functionLinenumberEnd: 561
    functionName: Botan::TLS::Supported_Groups::Supported_Groups
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - static_cast<Group_Params>
    - get_uint16_t
    - push_back
    - value_exists
    linkageType: ''
    returnType: void
    signature: void Supported_Groups::Supported_Groups(TLS_Data_Reader& reader, uint16_t
      extension_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 570
    functionName: Botan::TLS::Supported_Point_Formats::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.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/tls_extensions.cpp:573,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:576,1
    - Dst: get_byte
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:581,1
    - Dst: static_cast<ECPointFormat>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:583,1
    - Dst: discard_next
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:585,1
    - Dst: static_cast<ECPointFormat>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:587,1
    - Dst: get_fixed
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:589,1
    - Dst: std::any_of
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:591,1
    - Dst: std::begin
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:591,1
    - Dst: std::end
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:591,1
    - Dst: static_cast<ECPointFormat>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:592,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:607,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 610
    functionName: Botan::TLS::Supported_Point_Formats::Supported_Point_Formats
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - discard_next
    - TLS_Exception
    - get_byte
    - std::any_of
    - std::end
    - get_fixed
    - std::begin
    - static_cast<ECPointFormat>
    linkageType: ''
    returnType: void
    signature: void Supported_Point_Formats::Supported_Point_Formats(TLS_Data_Reader&
      reader, uint16_t extension_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:615,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:615,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:619,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:619,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:621,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:621,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:622,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:622,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:625,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:625,1
    - Dst: Botan::TLS::wire_code
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:625,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:626,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:626,1
    - Dst: Botan::TLS::wire_code
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:626,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' schemes'
    argTypes:
    - std::vector<Signature_Scheme>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 614
    functionDepth: 1
    functionLinenumber: 614
    functionLinenumberEnd: 630
    functionName: Botan::TLS::serialize_signature_algorithms
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - Botan::TLS::wire_code
    - std::vector::push_back
    - size
    - get_byte<0>
    - BOTAN_ASSERT
    - get_byte<1>
    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: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:633,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:636,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:640,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:642,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:642,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 647
    functionName: Botan::TLS::parse_signature_algorithms
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - std::vector::emplace_back
    - Decoding_Error
    - get_uint16_t
    - std::vector::reserve
    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:615,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:615,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:619,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:619,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:621,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:621,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:622,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:622,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:625,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:625,1
    - Dst: Botan::TLS::wire_code
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:625,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:626,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:626,1
    - Dst: Botan::TLS::wire_code
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:626,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' schemes'
    argTypes:
    - std::vector<Signature_Scheme>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 614
    functionDepth: 1
    functionLinenumber: 614
    functionLinenumberEnd: 630
    functionName: Botan::TLS::serialize_signature_algorithms
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - Botan::TLS::wire_code
    - std::vector::push_back
    - size
    - get_byte<0>
    - BOTAN_ASSERT
    - get_byte<1>
    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: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:633,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:636,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:640,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:642,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:642,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 632
    functionDepth: 0
    functionLinenumber: 632
    functionLinenumberEnd: 647
    functionName: Botan::TLS::parse_signature_algorithms
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - std::vector::emplace_back
    - Decoding_Error
    - get_uint16_t
    - std::vector::reserve
    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:652,1
    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::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:656,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 656
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 656
    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:659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 658
    functionDepth: 0
    functionLinenumber: 658
    functionLinenumberEnd: 660
    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:663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 662
    functionDepth: 0
    functionLinenumber: 662
    functionLinenumberEnd: 663
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: Session_Ticket
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:666,1
    - Dst: get_elem
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 666
    functionName: Botan::TLS::Session_Ticket_Extension::Session_Ticket_Extension
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 2
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_range
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:669,1
    - Dst: get_range
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:670,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:672,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:672,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:673,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:676,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:677,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 668
    functionDepth: 0
    functionLinenumber: 668
    functionLinenumberEnd: 679
    functionName: Botan::TLS::SRTP_Protection_Profiles::SRTP_Protection_Profiles
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - get_range
    - size
    - std::vector::empty
    - std::vector::size
    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:684,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:684,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:685,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:685,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:686,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:686,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:689,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:689,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:690,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:690,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:693,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 681
    functionDepth: 0
    functionLinenumber: 681
    functionLinenumberEnd: 696
    functionName: Botan::TLS::SRTP_Protection_Profiles::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - std::vector::push_back
    - size
    - get_byte<0>
    - get_byte<1>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> SRTP_Protection_Profiles::serialize(Connection_Side
      /*whoami*/) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:700,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - extension_size
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 698
    functionDepth: 0
    functionLinenumber: 698
    functionLinenumberEnd: 702
    functionName: Botan::TLS::Extended_Master_Secret::Extended_Master_Secret
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.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/tls_extensions.cpp:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 704
    functionDepth: 0
    functionLinenumber: 704
    functionLinenumberEnd: 706
    functionName: Botan::TLS::Extended_Master_Secret::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.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/tls_extensions.cpp:710,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - extension_size
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 712
    functionName: Botan::TLS::Encrypt_then_MAC::Encrypt_then_MAC
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.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/tls_extensions.cpp:715,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 714
    functionDepth: 0
    functionLinenumber: 714
    functionLinenumberEnd: 716
    functionName: Botan::TLS::Encrypt_then_MAC::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.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_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:722,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:722,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:723,1
    - Dst: major_version
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:723,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:724,1
    - Dst: minor_version
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:724,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:726,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:726,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:727,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:727,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:729,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:732,1
    - Dst: major_version
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:732,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:733,1
    - Dst: minor_version
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:733,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - whoami
    argTypes:
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 718
    functionDepth: 1
    functionLinenumber: 718
    functionLinenumberEnd: 738
    functionName: Botan::TLS::Supported_Versions::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 4
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::vector::push_back
    - size
    - static_cast<uint8_t>
    - minor_version
    - empty
    - major_version
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Supported_Versions::serialize(Connection_Side
      whoami) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:741,1
    - Dst: allow_dtls12
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:743,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:744,1
    - Dst: allow_tls13
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:749,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:750,1
    - Dst: allow_tls12
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:754,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:755,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 2
    argNames:
    - offer
    - ' policy'
    argTypes:
    - Protocol_Version
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 740
    functionDepth: 0
    functionLinenumber: 740
    functionLinenumberEnd: 759
    functionName: Botan::TLS::Supported_Versions::Supported_Versions
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - allow_dtls12
    - Protocol_Version::is_datagram_protocol
    - allow_tls13
    - push_back
    - allow_tls12
    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:764,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:766,1
    - Dst: Protocol_Version
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:766,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:766,1
    - Dst: get_range
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:768,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:771,1
    - Dst: Protocol_Version
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:771,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:774,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:775,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: 778
      start: 761
    functionDepth: 0
    functionLinenumber: 761
    functionLinenumberEnd: 778
    functionName: Botan::TLS::Supported_Versions::Supported_Versions
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - get_range
    - push_back
    - get_uint16_t
    - Protocol_Version
    - auto::size
    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: 787
      start: 780
    functionDepth: 0
    functionLinenumber: 780
    functionLinenumberEnd: 787
    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:790,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - limit
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 789
    functionDepth: 1
    functionLinenumber: 789
    functionLinenumberEnd: 793
    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:797,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:800,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:816,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:825,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: 827
      start: 795
    functionDepth: 1
    functionLinenumber: 795
    functionLinenumberEnd: 827
    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:832,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:832,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:833,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 829
    functionDepth: 0
    functionLinenumber: 829
    functionLinenumberEnd: 836
    functionName: Botan::TLS::Record_Size_Limit::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - get_byte<0>
    - get_byte<1>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Record_Size_Limit::serialize(Connection_Side /*whoami*/)
      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: 839
      start: 839
    functionDepth: 0
    functionLinenumber: 839
    functionLinenumberEnd: 839
    functionName: Botan::TLS::Cookie::Cookie
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.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/tls_extensions.cpp:846,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:850,1
    - Dst: remaining_bytes
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:853,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:854,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:858,1
    - Dst: get_byte
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:858,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 841
    functionDepth: 0
    functionLinenumber: 841
    functionLinenumberEnd: 860
    functionName: Botan::TLS::Cookie::Cookie
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - get_byte
    - push_back
    - get_uint16_t
    - remaining_bytes
    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/tls_extensions.cpp:865,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:865,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:867,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:867,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:868,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:868,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:871,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 862
    functionDepth: 0
    functionLinenumber: 862
    functionLinenumberEnd: 875
    functionName: Botan::TLS::Cookie::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 4
    functionsReached:
    - static_cast<uint16_t>
    - std::vector::push_back
    - size
    - get_byte<0>
    - get_byte<1>
    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/tls_extensions.cpp:880,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:880,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:881,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:881,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:881,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:883,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:883,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 887
      start: 877
    functionDepth: 1
    functionLinenumber: 877
    functionLinenumberEnd: 887
    functionName: Botan::TLS::PSK_Key_Exchange_Modes::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - static_cast<uint8_t>
    - size
    - 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/tls_extensions.cpp:891,1
    - Dst: get_byte
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:894,1
    - Dst: static_cast<PSK_Key_Exchange_Mode>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:896,1
    - Dst: get_byte
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:896,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:898,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 889
    functionDepth: 0
    functionLinenumber: 889
    functionLinenumberEnd: 901
    functionName: Botan::TLS::PSK_Key_Exchange_Modes::PSK_Key_Exchange_Modes
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - push_back
    - get_byte
    - static_cast<PSK_Key_Exchange_Mode>
    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/tls_extensions.cpp:909,1
    - Dst: encode_into
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:910,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:911,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:914,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 917
      start: 903
    functionDepth: 0
    functionLinenumber: 903
    functionLinenumberEnd: 917
    functionName: Botan::TLS::Certificate_Authorities::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - append_tls_length_value
    - encode_into
    - DER_Encoder
    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/tls_extensions.cpp:921,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:924,1
    - Dst: remaining_bytes
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:926,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:927,1
    - Dst: has_remaining
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:930,1
    - Dst: get_tls_length_value
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:931,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:933,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:933,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:934,1
    - Dst: BER_Decoder::decode
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:935,1
    - Dst: back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:935,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 919
    functionDepth: 1
    functionLinenumber: 919
    functionLinenumberEnd: 937
    functionName: Botan::TLS::Certificate_Authorities::Certificate_Authorities
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - emplace_back
    - back
    - std::vector::data
    - BER_Decoder::decode
    - has_remaining
    - get_uint16_t
    - remaining_bytes
    - std::vector::size
    - get_tls_length_value
    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/tls_extensions.cpp:940,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - acceptable_DNs
    argTypes:
    - std::vector<X509_DN>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 940
      start: 939
    functionDepth: 0
    functionLinenumber: 939
    functionLinenumberEnd: 940
    functionName: Botan::TLS::Certificate_Authorities::Certificate_Authorities
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.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/tls_extensions.cpp:944,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:945,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:946,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:946,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:947,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:947,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:948,1
    - Dst: get_byte<2>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:948,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:949,1
    - Dst: get_byte<3>
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:949,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 942
    functionDepth: 1
    functionLinenumber: 942
    functionLinenumberEnd: 952
    functionName: Botan::TLS::EarlyDataIndication::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - get_byte<3>
    - get_byte<0>
    - get_byte<2>
    - has_value
    - value
    - get_byte<1>
    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/tls_extensions.cpp:959,1
    - Dst: get_uint32_t
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:964,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_extensions.cpp:966,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: 970
      start: 954
    functionDepth: 1
    functionLinenumber: 954
    functionLinenumberEnd: 970
    functionName: Botan::TLS::EarlyDataIndication::EarlyDataIndication
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.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: 975
      start: 972
    functionDepth: 0
    functionLinenumber: 972
    functionLinenumberEnd: 975
    functionName: Botan::TLS::EarlyDataIndication::empty
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EarlyDataIndication::empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - std::shared_ptr<RandomNumberGenerator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 21
    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:30,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:31,1
    - Dst: side
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:31,1
    - Dst: value_or
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:33,1
    - Dst: random_vec
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:33,1
    - Dst: store
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:34,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: 36
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 36
    functionName: Botan::TLS::Session_Manager::establish
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - value_or
    - side
    - store
    - random_vec
    - BOTAN_UNUSED
    - BOTAN_ASSERT
    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:45,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:46,1
    - Dst: session_ticket_lifetime
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:52,1
    - Dst: session_ticket_lifetime
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:52,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:52,1
    - Dst: std::chrono::duration_cast<std::chrono::seconds>
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:73,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:73,1
    - Dst: auto::start_time
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:73,1
    - Dst: remove
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - ' handle'
    - ' callbacks'
    - ' policy'
    argTypes:
    - Session_Handle
    - Callbacks
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 82
    functionName: Botan::TLS::Session_Manager::retrieve
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::random_bit_generator::max
    - remove
    - std::chrono::duration_cast<std::chrono::seconds>
    - auto::has_value
    - session_ticket_lifetime
    - retrieve_one
    - tls_current_timestamp
    - auto::start_time
    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:90,1
    - Dst: session_ticket_lifetime
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:90,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:90,1
    - Dst: max
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:92,1
    - Dst: maximum_session_tickets_per_client_hello
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:92,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:93,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:102,1
    - Dst: find_some
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:103,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:106,1
    - Dst: std::erase_if
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:110,1
    - Dst: std::chrono::duration_cast<std::chrono::seconds>
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:111,1
    - Dst: session::start_time
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:111,1
    - Dst: session::lifetime_hint
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:143,1
    - Dst: min
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:144,1
    - Dst: remove
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:147,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - ' info'
    - ' callbacks'
    - ' policy'
    argTypes:
    - Server_Information
    - Callbacks
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 155
    functionName: Botan::TLS::Session_Manager::find_and_filter
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::random_bit_generator::max
    - session::lifetime_hint
    - std::chrono::duration_cast<std::chrono::seconds>
    - find_some
    - std::erase_if
    - session::start_time
    - min
    - remove
    - max
    - session_ticket_lifetime
    - std::vector::empty
    - maximum_session_tickets_per_client_hello
    - tls_current_timestamp
    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:160,1
    - Dst: std::optional::emplace
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:168,1
    - Dst: mutex
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:168,1
    - Dst: Botan::TLS::Session_Manager::find_and_filter
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:171,1
    - Dst: maximum_session_tickets_per_client_hello
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:175,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:176,1
    - Dst: auto::pop_back
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:177,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:189,1
    - Dst: std::optional::has_value
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:189,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:191,1
    - Dst: is_id
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:191,1
    - Dst: remove
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:192,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - ' info'
    - ' callbacks'
    - ' policy'
    argTypes:
    - Server_Information
    - Callbacks
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 198
    functionName: Botan::TLS::Session_Manager::find
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager.cpp
    functionUses: 8
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - mutex
    - remove
    - reuse_session_tickets
    - maximum_session_tickets_per_client_hello
    - std::optional::has_value
    - auto::pop_back
    - version
    - auto::size
    - is_id
    - Botan::TLS::Session_Manager::find_and_filter
    - std::optional::emplace
    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:211,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:211,1
    - Dst: Opaque_Session_Handle
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:211,1
    - Dst: identity
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:211,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:212,1
    - Dst: auto::ciphersuite
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:212,1
    - Dst: auto::version
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:213,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:214,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:214,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: 233
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 233
    functionName: Botan::TLS::Session_Manager::choose_from_offered_tickets
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Opaque_Session_Handle
    - std::move
    - Botan::TLS::Session_Manager::retrieve
    - auto::has_value
    - Session_Handle
    - auto::value
    - identity
    - auto::ciphersuite
    - auto::version
    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:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - std::shared_ptr<RandomNumberGenerator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 21
    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:30,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:31,1
    - Dst: side
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:31,1
    - Dst: value_or
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:33,1
    - Dst: random_vec
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:33,1
    - Dst: store
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:34,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: 36
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 36
    functionName: Botan::TLS::Session_Manager::establish
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - value_or
    - side
    - store
    - random_vec
    - BOTAN_UNUSED
    - BOTAN_ASSERT
    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:45,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:46,1
    - Dst: session_ticket_lifetime
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:52,1
    - Dst: session_ticket_lifetime
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:52,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:52,1
    - Dst: std::chrono::duration_cast<std::chrono::seconds>
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:73,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:73,1
    - Dst: auto::start_time
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:73,1
    - Dst: remove
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - ' handle'
    - ' callbacks'
    - ' policy'
    argTypes:
    - Session_Handle
    - Callbacks
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 82
    functionName: Botan::TLS::Session_Manager::retrieve
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::random_bit_generator::max
    - remove
    - std::chrono::duration_cast<std::chrono::seconds>
    - auto::has_value
    - session_ticket_lifetime
    - retrieve_one
    - tls_current_timestamp
    - auto::start_time
    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:90,1
    - Dst: session_ticket_lifetime
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:90,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:90,1
    - Dst: max
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:92,1
    - Dst: maximum_session_tickets_per_client_hello
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:92,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:93,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:102,1
    - Dst: find_some
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:103,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:106,1
    - Dst: std::erase_if
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:110,1
    - Dst: std::chrono::duration_cast<std::chrono::seconds>
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:111,1
    - Dst: session::start_time
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:111,1
    - Dst: session::lifetime_hint
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:143,1
    - Dst: min
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:144,1
    - Dst: remove
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:147,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 3
    argNames:
    - ' info'
    - ' callbacks'
    - ' policy'
    argTypes:
    - Server_Information
    - Callbacks
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 155
    functionName: Botan::TLS::Session_Manager::find_and_filter
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::random_bit_generator::max
    - session::lifetime_hint
    - std::chrono::duration_cast<std::chrono::seconds>
    - find_some
    - std::erase_if
    - session::start_time
    - min
    - remove
    - max
    - session_ticket_lifetime
    - std::vector::empty
    - maximum_session_tickets_per_client_hello
    - tls_current_timestamp
    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:160,1
    - Dst: std::optional::emplace
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:168,1
    - Dst: mutex
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:168,1
    - Dst: Botan::TLS::Session_Manager::find_and_filter
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:171,1
    - Dst: maximum_session_tickets_per_client_hello
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:175,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:176,1
    - Dst: auto::pop_back
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:177,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:189,1
    - Dst: std::optional::has_value
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:189,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:191,1
    - Dst: is_id
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:191,1
    - Dst: remove
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:192,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 3
    argNames:
    - ' info'
    - ' callbacks'
    - ' policy'
    argTypes:
    - Server_Information
    - Callbacks
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 198
    functionName: Botan::TLS::Session_Manager::find
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager.cpp
    functionUses: 8
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - mutex
    - remove
    - reuse_session_tickets
    - maximum_session_tickets_per_client_hello
    - std::optional::has_value
    - auto::pop_back
    - version
    - auto::size
    - is_id
    - Botan::TLS::Session_Manager::find_and_filter
    - std::optional::emplace
    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:211,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:211,1
    - Dst: Opaque_Session_Handle
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:211,1
    - Dst: identity
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:211,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:212,1
    - Dst: auto::ciphersuite
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:212,1
    - Dst: auto::version
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:213,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:214,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls_session_manager.cpp:214,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: 233
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 233
    functionName: Botan::TLS::Session_Manager::choose_from_offered_tickets
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager.cpp
    functionUses: 0
    functionsReached:
    - Opaque_Session_Handle
    - std::move
    - Botan::TLS::Session_Manager::retrieve
    - auto::has_value
    - Session_Handle
    - auto::value
    - identity
    - auto::ciphersuite
    - auto::version
    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: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: Botan::TLS::Certificate_Request_12::type
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_req.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: 36
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 36
    functionName: Botan::TLS::cert_type_code_to_name
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_req.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/msg_cert_req.cpp:46,1
    - Dst: fmt
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 47
    functionName: Botan::TLS::cert_type_name_to_code
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_req.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: 36
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 36
    functionName: Botan::TLS::cert_type_code_to_name
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_req.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/msg_cert_req.cpp:46,1
    - Dst: fmt
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 47
    functionName: Botan::TLS::cert_type_name_to_code
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_req.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/msg_cert_req.cpp:59,1
    - Dst: update
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:60,1
    - Dst: send
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:60,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: 61
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 61
    functionName: Botan::TLS::Certificate_Request_12::Certificate_Request_12
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_req.cpp
    functionUses: 0
    functionsReached:
    - acceptable_signature_schemes
    - send
    - update
    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/msg_cert_req.cpp:67,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:68,1
    - Dst: TLS_Data_Reader::get_range_vector
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:73,1
    - Dst: cert_type_code_to_name
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:76,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:78,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:82,1
    - Dst: TLS_Data_Reader::get_range_vector
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:85,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:87,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:88,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:91,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:92,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:92,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:95,1
    - Dst: TLS_Data_Reader::remaining_bytes
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:97,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:98,1
    - Dst: TLS_Data_Reader::has_remaining
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:101,1
    - Dst: TLS_Data_Reader::get_range_vector
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:102,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:104,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:104,1
    - Dst: BER_Decoder::decode
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:106,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:107,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 109
    functionName: Botan::TLS::Certificate_Request_12::Certificate_Request_12
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_req.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - TLS_Data_Reader::get_uint16_t
    - TLS_Data_Reader::has_remaining
    - size
    - emplace_back
    - std::vector::data
    - BER_Decoder::decode
    - std::string::empty
    - make_uint16
    - std::vector::size
    - cert_type_code_to_name
    - TLS_Data_Reader::remaining_bytes
    - TLS_Data_Reader::get_range_vector
    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: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: '& Certificate_Request_12::acceptable_cert_types() const'
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_req.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: 117
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 117
    functionName: '& Certificate_Request_12::acceptable_CAs() const'
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_req.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: 121
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 121
    functionName: '& Certificate_Request_12::signature_schemes() const'
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_req.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/msg_cert_req.cpp:131,1
    - Dst: size
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:131,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:133,1
    - Dst: cert_type_name_to_code
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:133,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:136,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:138,1
    - Dst: Signature_Algorithms
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:139,1
    - Dst: DER_Encoder::encode
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:146,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:148,1
    - Dst: DER_Encoder::get_contents
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:148,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 154
    functionName: Botan::TLS::Certificate_Request_12::serialize
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_req.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - DER_Encoder::get_contents
    - size
    - DER_Encoder::encode
    - empty
    - append_tls_length_value
    - Signature_Algorithms
    - cert_type_name_to_code
    - std::vector::reserve
    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: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: Botan::TLS::Certificate_Request_12::type
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_req.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: 36
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 36
    functionName: Botan::TLS::cert_type_code_to_name
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_req.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/msg_cert_req.cpp:46,1
    - Dst: fmt
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 47
    functionName: Botan::TLS::cert_type_name_to_code
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_req.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: 36
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 36
    functionName: Botan::TLS::cert_type_code_to_name
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_req.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/msg_cert_req.cpp:46,1
    - Dst: fmt
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 47
    functionName: Botan::TLS::cert_type_name_to_code
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_req.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/msg_cert_req.cpp:59,1
    - Dst: update
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:60,1
    - Dst: send
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:60,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: 61
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 61
    functionName: Botan::TLS::Certificate_Request_12::Certificate_Request_12
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_req.cpp
    functionUses: 0
    functionsReached:
    - acceptable_signature_schemes
    - send
    - update
    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/msg_cert_req.cpp:67,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:68,1
    - Dst: TLS_Data_Reader::get_range_vector
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:73,1
    - Dst: cert_type_code_to_name
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:76,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:78,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:82,1
    - Dst: TLS_Data_Reader::get_range_vector
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:85,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:87,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:88,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:91,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:92,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:92,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:95,1
    - Dst: TLS_Data_Reader::remaining_bytes
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:97,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:98,1
    - Dst: TLS_Data_Reader::has_remaining
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:101,1
    - Dst: TLS_Data_Reader::get_range_vector
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:102,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:104,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:104,1
    - Dst: BER_Decoder::decode
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:106,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:107,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 109
    functionName: Botan::TLS::Certificate_Request_12::Certificate_Request_12
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_req.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - TLS_Data_Reader::get_uint16_t
    - TLS_Data_Reader::has_remaining
    - size
    - emplace_back
    - std::vector::data
    - BER_Decoder::decode
    - std::string::empty
    - make_uint16
    - std::vector::size
    - cert_type_code_to_name
    - TLS_Data_Reader::remaining_bytes
    - TLS_Data_Reader::get_range_vector
    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: 113
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 113
    functionName: '& Certificate_Request_12::acceptable_cert_types() const'
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_req.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: 117
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 117
    functionName: '& Certificate_Request_12::acceptable_CAs() const'
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_req.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: 121
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 121
    functionName: '& Certificate_Request_12::signature_schemes() const'
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_req.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/msg_cert_req.cpp:131,1
    - Dst: size
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:131,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:133,1
    - Dst: cert_type_name_to_code
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:133,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:136,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:138,1
    - Dst: Signature_Algorithms
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:139,1
    - Dst: DER_Encoder::encode
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:146,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:148,1
    - Dst: DER_Encoder::get_contents
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:148,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/msg_cert_req.cpp:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 154
    functionName: Botan::TLS::Certificate_Request_12::serialize
    functionSourceFile: /src/botan/src/lib/tls/msg_cert_req.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - DER_Encoder::get_contents
    - size
    - DER_Encoder::encode
    - empty
    - append_tls_length_value
    - Signature_Algorithms
    - cert_type_name_to_code
    - std::vector::reserve
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Certificate_Request_12::serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::lexicographical_compare
      Src: /src/botan/src/lib/tls/tls_session.h:44,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls_session.h:44,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls_session.h:44,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls_session.h:44,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls_session.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' id1'
    - ' id2'
    argTypes:
    - Session_ID
    - Session_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: operator<(const Session_ID& id1, const Session_ID& id2)
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 0
    functionsReached:
    - begin
    - std::lexicographical_compare
    - end
    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.h:90,1
    - Dst: validate_constraints
      Src: /src/botan/src/lib/tls/tls_session.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ticket
    argTypes:
    - Opaque_Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: Botan::TLS::Session_Handle
    functionSourceFile: /src/botan/src/lib/tls/tls_session.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.h: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::is_id
    functionSourceFile: /src/botan/src/lib/tls/tls_session.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.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: Botan::TLS::is_ticket
    functionSourceFile: /src/botan/src/lib/tls/tls_session.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.h:98,1
    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::is_opaque_handle
    functionSourceFile: /src/botan/src/lib/tls/tls_session.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: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: Botan::TLS::get
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) get() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::lexicographical_compare
      Src: /src/botan/src/lib/tls/tls_session.h:44,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls_session.h:44,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls_session.h:44,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls_session.h:44,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls_session.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' id1'
    - ' id2'
    argTypes:
    - Session_ID
    - Session_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: operator<(const Session_ID& id1, const Session_ID& id2)
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 0
    functionsReached:
    - begin
    - std::lexicographical_compare
    - end
    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.h:90,1
    - Dst: validate_constraints
      Src: /src/botan/src/lib/tls/tls_session.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ticket
    argTypes:
    - Opaque_Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: Botan::TLS::Session_Handle
    functionSourceFile: /src/botan/src/lib/tls/tls_session.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.h: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::is_id
    functionSourceFile: /src/botan/src/lib/tls/tls_session.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.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: Botan::TLS::is_ticket
    functionSourceFile: /src/botan/src/lib/tls/tls_session.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.h:98,1
    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::is_opaque_handle
    functionSourceFile: /src/botan/src/lib/tls/tls_session.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: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: Botan::TLS::get
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) get() 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: version
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 109
    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: 180
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 180
    functionName: ciphersuite_code
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 31
    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: 190
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 190
    functionName: side
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 6
    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: 195
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 195
    functionName: 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: 201
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 201
    functionName: supports_encrypt_then_mac
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 2
    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: 207
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 207
    functionName: supports_extended_master_secret
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 4
    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: 212
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 212
    functionName: peer_certs
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 4
    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: 217
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 217
    functionName: peer_raw_public_key
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 4
    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: 227
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 227
    functionName: server_info
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 36
    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: 290
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 290
    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: 292
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 292
    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: 294
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 294
    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:296,1
    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: cipher_algo
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 14
    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:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 298
    functionName: mac_algo
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 8
    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:300,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 300
    functionName: prf_algo
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 12
    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:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - Session_ID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 321
    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:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ticket
    argTypes:
    - Session_Ticket
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 323
    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:344,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/tls/tls_session.h:354,1
    - Dst: Botan::TLS::Session::decrypt
      Src: /src/botan/src/lib/tls/tls_session.h:420,1
    - Dst: std::span
      Src: /src/botan/src/lib/tls/tls_session.h:420,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 493
    functionName: Session_Base
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 0
    functionsReached:
    - Botan_Tests::random_bit_generator::max
    - Session
    - std::span
    - Botan::TLS::Session::decrypt
    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:420,1
    - Dst: std::span
      Src: /src/botan/src/lib/tls/tls_session.h:420,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: 421
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 421
    functionName: decrypt
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 122
    functionsReached:
    - std::span
    - Botan::TLS::Session::decrypt
    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: 440
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 440
    functionName: master_secret
    functionSourceFile: /src/botan/src/lib/tls/tls_session.h
    functionUses: 12
    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: 450
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 450
    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: 455
      start: 455
    functionDepth: 0
    functionLinenumber: 455
    functionLinenumberEnd: 455
    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: 460
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 460
    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: 465
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 465
    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:25,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - algo
    argTypes:
    - KDF_Algo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 26
    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:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 1
    argNames:
    - method
    argTypes:
    - Kex_Algo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 55
    functionName: Botan::TLS::kex_method_to_string
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.cpp
    functionUses: 10
    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:102,1
    - Dst: fmt
      Src: /src/botan/src/lib/tls/tls_algos.cpp:102,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 103
    functionName: Botan::TLS::kex_method_from_string
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.cpp
    functionUses: 2
    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:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - method
    argTypes:
    - Auth_Method
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 118
    functionName: Botan::TLS::auth_method_to_string
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.cpp
    functionUses: 6
    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:134,1
    - Dst: fmt
      Src: /src/botan/src/lib/tls/tls_algos.cpp:134,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 135
    functionName: Botan::TLS::auth_method_from_string
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.cpp
    functionUses: 2
    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:139,1
    - Dst: is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls_algos.cpp:142,1
    - Dst: Botan::TLS::Group_Params::pqc_hybrid_ecc
      Src: /src/botan/src/lib/tls/tls_algos.cpp:142,1
    - Dst: is_x448
      Src: /src/botan/src/lib/tls/tls_algos.cpp:148,1
    - Dst: is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls_algos.cpp:151,1
    - Dst: Botan::TLS::Group_Params::pqc_hybrid_ecc
      Src: /src/botan/src/lib/tls/tls_algos.cpp:151,1
    - Dst: is_in_ffdhe_range
      Src: /src/botan/src/lib/tls/tls_algos.cpp:157,1
    - Dst: is_pure_ml_kem
      Src: /src/botan/src/lib/tls/tls_algos.cpp:163,1
    - Dst: is_pqc_hybrid_ml_kem
      Src: /src/botan/src/lib/tls/tls_algos.cpp:163,1
    - Dst: is_pure_frodokem
      Src: /src/botan/src/lib/tls/tls_algos.cpp:169,1
    - Dst: is_pqc_hybrid_frodokem
      Src: /src/botan/src/lib/tls/tls_algos.cpp:169,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 175
    functionName: Botan::TLS::Group_Params::is_available
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.cpp
    functionUses: 0
    functionsReached:
    - is_x448
    - is_pure_ml_kem
    - is_pqc_hybrid_frodokem
    - is_x25519
    - is_pqc_hybrid
    - is_pure_frodokem
    - is_in_ffdhe_range
    - is_pqc_hybrid_ml_kem
    - Botan::TLS::Group_Params::pqc_hybrid_ecc
    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: 206
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 206
    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: 324
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 324
    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: 407
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 407
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls_algos.cpp:25,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - algo
    argTypes:
    - KDF_Algo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 26
    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:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 1
    argNames:
    - method
    argTypes:
    - Kex_Algo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 55
    functionName: Botan::TLS::kex_method_to_string
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.cpp
    functionUses: 10
    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:102,1
    - Dst: fmt
      Src: /src/botan/src/lib/tls/tls_algos.cpp:102,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 103
    functionName: Botan::TLS::kex_method_from_string
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.cpp
    functionUses: 2
    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:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - method
    argTypes:
    - Auth_Method
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 118
    functionName: Botan::TLS::auth_method_to_string
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.cpp
    functionUses: 6
    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:134,1
    - Dst: fmt
      Src: /src/botan/src/lib/tls/tls_algos.cpp:134,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 135
    functionName: Botan::TLS::auth_method_from_string
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.cpp
    functionUses: 2
    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:139,1
    - Dst: is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls_algos.cpp:142,1
    - Dst: Botan::TLS::Group_Params::pqc_hybrid_ecc
      Src: /src/botan/src/lib/tls/tls_algos.cpp:142,1
    - Dst: is_x448
      Src: /src/botan/src/lib/tls/tls_algos.cpp:148,1
    - Dst: is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls_algos.cpp:151,1
    - Dst: Botan::TLS::Group_Params::pqc_hybrid_ecc
      Src: /src/botan/src/lib/tls/tls_algos.cpp:151,1
    - Dst: is_in_ffdhe_range
      Src: /src/botan/src/lib/tls/tls_algos.cpp:157,1
    - Dst: is_pure_ml_kem
      Src: /src/botan/src/lib/tls/tls_algos.cpp:163,1
    - Dst: is_pqc_hybrid_ml_kem
      Src: /src/botan/src/lib/tls/tls_algos.cpp:163,1
    - Dst: is_pure_frodokem
      Src: /src/botan/src/lib/tls/tls_algos.cpp:169,1
    - Dst: is_pqc_hybrid_frodokem
      Src: /src/botan/src/lib/tls/tls_algos.cpp:169,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 175
    functionName: Botan::TLS::Group_Params::is_available
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.cpp
    functionUses: 0
    functionsReached:
    - is_x448
    - is_pure_ml_kem
    - is_pqc_hybrid_frodokem
    - is_x25519
    - is_pqc_hybrid
    - is_pure_frodokem
    - is_in_ffdhe_range
    - is_pqc_hybrid_ml_kem
    - Botan::TLS::Group_Params::pqc_hybrid_ecc
    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: 206
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 206
    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: 324
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 324
    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: 407
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 407
    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: 4
    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: std::make_unique<Client_Impl_12>
      Src: /src/botan/src/lib/tls/tls_client.cpp:61,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_client.cpp:66,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls_client.cpp:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    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: 70
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 70
    functionName: Botan::TLS::Client::Client
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_unique<Client_Impl_12>
    - set_io_buffer_size
    - Protocol_Version::is_datagram_protocol
    - BOTAN_ARG_CHECK
    - is_downgrading
    - expects_downgrade
    - std::make_unique<Client_Impl_13>
    - Botan::TLS::Client::downgrade
    - acceptable_protocol_version
    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: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    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:75,1
    - Dst: is_downgrading
      Src: /src/botan/src/lib/tls/tls_client.cpp:75,1
    - Dst: extract_downgrade_info
      Src: /src/botan/src/lib/tls/tls_client.cpp:77,1
    - Dst: std::make_unique<Client_Impl_12>
      Src: /src/botan/src/lib/tls/tls_client.cpp:78,1
    - Dst: auto::peer_transcript::empty
      Src: /src/botan/src/lib/tls/tls_client.cpp:80,1
    - Dst: Botan::TLS::Client::from_peer
      Src: /src/botan/src/lib/tls/tls_client.cpp:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 88
    functionName: Botan::TLS::Client::downgrade
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::TLS::Client::from_peer
    - std::make_unique<Client_Impl_12>
    - extract_downgrade_info
    - auto::peer_transcript::empty
    - is_downgrading
    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:91,1
    - Dst: is_downgrading
      Src: /src/botan/src/lib/tls/tls_client.cpp:93,1
    - Dst: Botan::TLS::Client::downgrade
      Src: /src/botan/src/lib/tls/tls_client.cpp:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 98
    functionName: Botan::TLS::Client::from_peer
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Client::from_peer
    - Botan::TLS::Client::downgrade
    - is_downgrading
    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:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 102
    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:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 106
    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: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::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:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 114
    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:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 118
    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:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 122
    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: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::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: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::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:133,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: 134
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 134
    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:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - force_full_renegotiation
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 138
    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:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - request_peer_update
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 142
    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: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::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:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 150
    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:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' alert'
    argTypes:
    - Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 154
    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:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Alert::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 158
    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:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Alert::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 162
    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:165,1
    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::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:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 170
    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:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 174
    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: 4
    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: std::make_unique<Client_Impl_12>
      Src: /src/botan/src/lib/tls/tls_client.cpp:61,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_client.cpp:66,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls_client.cpp:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    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: 70
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 70
    functionName: Botan::TLS::Client::Client
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_unique<Client_Impl_12>
    - set_io_buffer_size
    - Protocol_Version::is_datagram_protocol
    - BOTAN_ARG_CHECK
    - is_downgrading
    - expects_downgrade
    - std::make_unique<Client_Impl_13>
    - Botan::TLS::Client::downgrade
    - acceptable_protocol_version
    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: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    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:75,1
    - Dst: is_downgrading
      Src: /src/botan/src/lib/tls/tls_client.cpp:75,1
    - Dst: extract_downgrade_info
      Src: /src/botan/src/lib/tls/tls_client.cpp:77,1
    - Dst: std::make_unique<Client_Impl_12>
      Src: /src/botan/src/lib/tls/tls_client.cpp:78,1
    - Dst: auto::peer_transcript::empty
      Src: /src/botan/src/lib/tls/tls_client.cpp:80,1
    - Dst: Botan::TLS::Client::from_peer
      Src: /src/botan/src/lib/tls/tls_client.cpp:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 88
    functionName: Botan::TLS::Client::downgrade
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 3
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::TLS::Client::from_peer
    - std::make_unique<Client_Impl_12>
    - extract_downgrade_info
    - auto::peer_transcript::empty
    - is_downgrading
    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:91,1
    - Dst: is_downgrading
      Src: /src/botan/src/lib/tls/tls_client.cpp:93,1
    - Dst: Botan::TLS::Client::downgrade
      Src: /src/botan/src/lib/tls/tls_client.cpp:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 98
    functionName: Botan::TLS::Client::from_peer
    functionSourceFile: /src/botan/src/lib/tls/tls_client.cpp
    functionUses: 4
    functionsReached:
    - Botan::TLS::Client::from_peer
    - Botan::TLS::Client::downgrade
    - is_downgrading
    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:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 102
    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:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 106
    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: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::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:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 114
    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:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 118
    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:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 122
    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: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::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: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::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:133,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: 134
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 134
    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:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - force_full_renegotiation
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 138
    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:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - request_peer_update
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 142
    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: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::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:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 150
    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:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' alert'
    argTypes:
    - Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 154
    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:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Alert::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 158
    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:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Alert::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 162
    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:165,1
    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::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:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 170
    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:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 174
    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: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    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: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    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: 93
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 93
    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: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    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: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    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: 93
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 93
    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:75,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/lib/tls/tls_client.h:80,1
    - Dst: Botan::TLS::latest_tls_version
      Src: /src/botan/src/lib/tls/tls_client.h:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 137
    functionName: Botan::TLS::Channel
    functionSourceFile: /src/botan/src/lib/tls/tls_client.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Server_Information
    - Botan::TLS::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: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    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: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    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:75,1
    - Dst: Botan::TLS::Server_Information
      Src: /src/botan/src/lib/tls/tls_client.h:80,1
    - Dst: Botan::TLS::latest_tls_version
      Src: /src/botan/src/lib/tls/tls_client.h:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 137
    functionName: Botan::TLS::Channel
    functionSourceFile: /src/botan/src/lib/tls/tls_client.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::Server_Information
    - Botan::TLS::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: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    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: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    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:78,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:80,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:83,1
    - Dst: random
      Src: /src/botan/src/lib/tls/tls_messages.h:99,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls_messages.h:101,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/tls_messages.h:103,1
    - Dst: offered_suite
      Src: /src/botan/src/lib/tls/tls_messages.h:105,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls_messages.h:107,1
    - Dst: certificate_signature_schemes
      Src: /src/botan/src/lib/tls/tls_messages.h:108,1
    - Dst: supported_ecc_curves
      Src: /src/botan/src/lib/tls/tls_messages.h:110,1
    - Dst: supported_dh_groups
      Src: /src/botan/src/lib/tls/tls_messages.h:113,1
    - Dst: supported_versions
      Src: /src/botan/src/lib/tls/tls_messages.h:115,1
    - Dst: sni_hostname
      Src: /src/botan/src/lib/tls/tls_messages.h:117,1
    - Dst: supports_alpn
      Src: /src/botan/src/lib/tls/tls_messages.h:119,1
    - Dst: sent_signature_algorithms
      Src: /src/botan/src/lib/tls/tls_messages.h:121,1
    - Dst: next_protocols
      Src: /src/botan/src/lib/tls/tls_messages.h:123,1
    - Dst: srtp_profiles
      Src: /src/botan/src/lib/tls/tls_messages.h:125,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:127,1
    - Dst: Botan::TLS::cookie
      Src: /src/botan/src/lib/tls/tls_messages.h:129,1
    - Dst: cookie_input_data
      Src: /src/botan/src/lib/tls/tls_messages.h:131,1
    - Dst: extension_types
      Src: /src/botan/src/lib/tls/tls_messages.h:133,1
    - Dst: Botan::TLS::extensions
      Src: /src/botan/src/lib/tls/tls_messages.h:135,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:138,1
    - Dst: compression_methods
      Src: /src/botan/src/lib/tls/tls_messages.h:141,1
    - Dst: Client_Hello_13
      Src: /src/botan/src/lib/tls/tls_messages.h:225,1
    - Dst: parse
      Src: /src/botan/src/lib/tls/tls_messages.h:233,1
    - Dst: retry
      Src: /src/botan/src/lib/tls/tls_messages.h:235,1
    - Dst: highest_supported_version
      Src: /src/botan/src/lib/tls/tls_messages.h:245,1
    - Dst: validate_updates
      Src: /src/botan/src/lib/tls/tls_messages.h:252,1
    - Dst: Server_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:276,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_messages.h:315,1
    - Dst: Hello_Retry_Request
      Src: /src/botan/src/lib/tls/tls_messages.h:456,1
    - Dst: Hello_Retry_Request
      Src: /src/botan/src/lib/tls/tls_messages.h:457,1
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls_messages.h:460,1
    - Dst: Botan::TLS::wire_type
      Src: /src/botan/src/lib/tls/tls_messages.h:462,1
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls_messages.h:524,1
    - Dst: cert_chain
      Src: /src/botan/src/lib/tls/tls_messages.h:526,1
    - Dst: Botan::TLS::count
      Src: /src/botan/src/lib/tls/tls_messages.h:528,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_messages.h:528,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls_messages.h:530,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls_messages.h:530,1
    - Dst: Certificate_12
      Src: /src/botan/src/lib/tls/tls_messages.h:532,1
    - Dst: Certificate_12
      Src: /src/botan/src/lib/tls/tls_messages.h:534,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:536,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls_messages.h:557,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_messages.h:582,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls_messages.h:584,1
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls_messages.h:700,1
    - Dst: acceptable_cert_types
      Src: /src/botan/src/lib/tls/tls_messages.h:702,1
    - Dst: acceptable_CAs
      Src: /src/botan/src/lib/tls/tls_messages.h:704,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls_messages.h:706,1
    - Dst: Certificate_Request_12
      Src: /src/botan/src/lib/tls/tls_messages.h:708,1
    - Dst: Certificate_Request_12
      Src: /src/botan/src/lib/tls/tls_messages.h:713,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:715,1
    - Dst: Certificate_Request_13
      Src: /src/botan/src/lib/tls/tls_messages.h:749,1
    - Dst: Botan::TLS::Certificate_Verify_13
      Src: /src/botan/src/lib/tls/tls_messages.h:808,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 157
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 876
    functionName: Botan::TLS::Hello_Verify_Request
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached:
    - Certificate_Request_13
    - compression_methods
    - offered_suite
    - supported_ecc_curves
    - Client_Hello_13
    - signature_schemes
    - retry
    - supported_dh_groups
    - session_id
    - random
    - Client_Hello
    - next_protocols
    - srtp_profiles
    - Botan::TLS::serialize
    - Botan::TLS::type
    - parse
    - acceptable_cert_types
    - Certificate_12
    - Server_Hello
    - ciphersuites
    - sni_hostname
    - cookie_input_data
    - supported_versions
    - certificate_signature_schemes
    - Botan::TLS::cookie
    - supports_alpn
    - sent_signature_algorithms
    - highest_supported_version
    - Hello_Retry_Request
    - std::move
    - cert_chain
    - Botan::TLS::wire_type
    - size
    - Botan::TLS::Certificate_Verify_13
    - validate_updates
    - Botan::TLS::empty
    - acceptable_CAs
    - Botan::TLS::extensions
    - has_value
    - Botan::TLS::count
    - Certificate_Request_12
    - extension_types
    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: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    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: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    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:78,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:80,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:83,1
    - Dst: random
      Src: /src/botan/src/lib/tls/tls_messages.h:99,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls_messages.h:101,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/tls_messages.h:103,1
    - Dst: offered_suite
      Src: /src/botan/src/lib/tls/tls_messages.h:105,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls_messages.h:107,1
    - Dst: certificate_signature_schemes
      Src: /src/botan/src/lib/tls/tls_messages.h:108,1
    - Dst: supported_ecc_curves
      Src: /src/botan/src/lib/tls/tls_messages.h:110,1
    - Dst: supported_dh_groups
      Src: /src/botan/src/lib/tls/tls_messages.h:113,1
    - Dst: supported_versions
      Src: /src/botan/src/lib/tls/tls_messages.h:115,1
    - Dst: sni_hostname
      Src: /src/botan/src/lib/tls/tls_messages.h:117,1
    - Dst: supports_alpn
      Src: /src/botan/src/lib/tls/tls_messages.h:119,1
    - Dst: sent_signature_algorithms
      Src: /src/botan/src/lib/tls/tls_messages.h:121,1
    - Dst: next_protocols
      Src: /src/botan/src/lib/tls/tls_messages.h:123,1
    - Dst: srtp_profiles
      Src: /src/botan/src/lib/tls/tls_messages.h:125,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:127,1
    - Dst: Botan::TLS::cookie
      Src: /src/botan/src/lib/tls/tls_messages.h:129,1
    - Dst: cookie_input_data
      Src: /src/botan/src/lib/tls/tls_messages.h:131,1
    - Dst: extension_types
      Src: /src/botan/src/lib/tls/tls_messages.h:133,1
    - Dst: Botan::TLS::extensions
      Src: /src/botan/src/lib/tls/tls_messages.h:135,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:138,1
    - Dst: compression_methods
      Src: /src/botan/src/lib/tls/tls_messages.h:141,1
    - Dst: Client_Hello_13
      Src: /src/botan/src/lib/tls/tls_messages.h:225,1
    - Dst: parse
      Src: /src/botan/src/lib/tls/tls_messages.h:233,1
    - Dst: retry
      Src: /src/botan/src/lib/tls/tls_messages.h:235,1
    - Dst: highest_supported_version
      Src: /src/botan/src/lib/tls/tls_messages.h:245,1
    - Dst: validate_updates
      Src: /src/botan/src/lib/tls/tls_messages.h:252,1
    - Dst: Server_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:276,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_messages.h:315,1
    - Dst: Hello_Retry_Request
      Src: /src/botan/src/lib/tls/tls_messages.h:456,1
    - Dst: Hello_Retry_Request
      Src: /src/botan/src/lib/tls/tls_messages.h:457,1
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls_messages.h:460,1
    - Dst: Botan::TLS::wire_type
      Src: /src/botan/src/lib/tls/tls_messages.h:462,1
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls_messages.h:524,1
    - Dst: cert_chain
      Src: /src/botan/src/lib/tls/tls_messages.h:526,1
    - Dst: Botan::TLS::count
      Src: /src/botan/src/lib/tls/tls_messages.h:528,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_messages.h:528,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls_messages.h:530,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls_messages.h:530,1
    - Dst: Certificate_12
      Src: /src/botan/src/lib/tls/tls_messages.h:532,1
    - Dst: Certificate_12
      Src: /src/botan/src/lib/tls/tls_messages.h:534,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:536,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls_messages.h:557,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_messages.h:582,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls_messages.h:584,1
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls_messages.h:700,1
    - Dst: acceptable_cert_types
      Src: /src/botan/src/lib/tls/tls_messages.h:702,1
    - Dst: acceptable_CAs
      Src: /src/botan/src/lib/tls/tls_messages.h:704,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls_messages.h:706,1
    - Dst: Certificate_Request_12
      Src: /src/botan/src/lib/tls/tls_messages.h:708,1
    - Dst: Certificate_Request_12
      Src: /src/botan/src/lib/tls/tls_messages.h:713,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:715,1
    - Dst: Certificate_Request_13
      Src: /src/botan/src/lib/tls/tls_messages.h:749,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 115
    argCount: 3
    argNames:
    - ' client_hello_bits'
    - client_identity
    - ' secret_key'
    argTypes:
    - std::vector<uint8_t>
    - std::string_view
    - SymmetricKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 772
    functionName: Botan::TLS::Hello_Verify_Request
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached:
    - Certificate_Request_13
    - compression_methods
    - offered_suite
    - supported_ecc_curves
    - Client_Hello_13
    - signature_schemes
    - retry
    - supported_dh_groups
    - session_id
    - random
    - Client_Hello
    - next_protocols
    - srtp_profiles
    - Botan::TLS::serialize
    - Botan::TLS::type
    - parse
    - acceptable_cert_types
    - Certificate_12
    - Server_Hello
    - ciphersuites
    - sni_hostname
    - cookie_input_data
    - supported_versions
    - certificate_signature_schemes
    - Botan::TLS::cookie
    - supports_alpn
    - sent_signature_algorithms
    - highest_supported_version
    - Hello_Retry_Request
    - std::move
    - cert_chain
    - Botan::TLS::wire_type
    - size
    - validate_updates
    - Botan::TLS::empty
    - acceptable_CAs
    - Botan::TLS::extensions
    - has_value
    - Botan::TLS::count
    - Certificate_Request_12
    - extension_types
    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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - version
    argTypes:
    - Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 152
    functionName: Botan::TLS::Settings::Settings
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: Botan::TLS::Settings::protocol_version
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 156
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 156
    functionName: '& hostname() const'
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & hostname() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Client_Hello_13
      Src: /src/botan/src/lib/tls/tls_messages.h:225,1
    - Dst: parse
      Src: /src/botan/src/lib/tls/tls_messages.h:233,1
    - Dst: retry
      Src: /src/botan/src/lib/tls/tls_messages.h:235,1
    - Dst: highest_supported_version
      Src: /src/botan/src/lib/tls/tls_messages.h:245,1
    - Dst: validate_updates
      Src: /src/botan/src/lib/tls/tls_messages.h:252,1
    - Dst: Server_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:276,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 8
    argNames:
    - ' io'
    - ' hash'
    - ' policy'
    - ' cb'
    - ' rng'
    - ' reneg_info'
    - ' session_and_handle'
    - ' 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: 305
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 305
    functionName: Botan::TLS::Client_Hello_12
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached:
    - Client_Hello_13
    - parse
    - retry
    - validate_updates
    - Server_Hello
    - highest_supported_version
    linkageType: ''
    returnType: void
    signature: "void 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_and_handle,\n                      const std::vector<std::string>& next_protocols)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_messages.h:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 394
    functionName: Botan::TLS::Server_Hello_12
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Server_Hello_12
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_messages.h:315,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: 318
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 318
    functionName: Botan::TLS::Settings::Settings
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 320
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 320
    functionName: '& session_id() const'
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 322
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 322
    functionName: Botan::TLS::Settings::protocol_version
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 324
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 324
    functionName: Botan::TLS::Settings::ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 326
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 326
    functionName: Botan::TLS::Settings::offer_session_ticket
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool offer_session_ticket() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hello_Retry_Request
      Src: /src/botan/src/lib/tls/tls_messages.h:456,1
    - Dst: Hello_Retry_Request
      Src: /src/botan/src/lib/tls/tls_messages.h:457,1
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls_messages.h:460,1
    - Dst: Botan::TLS::wire_type
      Src: /src/botan/src/lib/tls/tls_messages.h:462,1
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls_messages.h:524,1
    - Dst: cert_chain
      Src: /src/botan/src/lib/tls/tls_messages.h:526,1
    - Dst: Botan::TLS::count
      Src: /src/botan/src/lib/tls/tls_messages.h:528,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_messages.h:528,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls_messages.h:530,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls_messages.h:530,1
    - Dst: Certificate_12
      Src: /src/botan/src/lib/tls/tls_messages.h:532,1
    - Dst: Certificate_12
      Src: /src/botan/src/lib/tls/tls_messages.h:534,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:536,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls_messages.h:557,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_messages.h:582,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls_messages.h:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 663
    functionName: Botan::TLS::Server_Hello_13
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached:
    - cert_chain
    - Botan::TLS::wire_type
    - size
    - Certificate_12
    - Hello_Retry_Request
    - Botan::TLS::empty
    - has_value
    - Botan::TLS::count
    - Botan::TLS::serialize
    - Botan::TLS::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/tls_messages.h:456,1
    - Dst: Hello_Retry_Request
      Src: /src/botan/src/lib/tls/tls_messages.h:457,1
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls_messages.h:460,1
    - Dst: Botan::TLS::wire_type
      Src: /src/botan/src/lib/tls/tls_messages.h:462,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: 478
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 478
    functionName: Botan::TLS::Server_Hello_13
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached:
    - Hello_Retry_Request
    - Botan::TLS::wire_type
    - Botan::TLS::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: 470
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 470
    functionName: Botan::TLS::type
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 4
    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: 472
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 472
    functionName: Botan::TLS::extensions
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Extensions
    signature: Extensions & extensions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 487
    functionName: Botan::TLS::Client_Key_Exchange
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 489
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 489
    functionName: Botan::TLS::pre_master_secret
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 494
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 494
    functionName: Botan::TLS::psk_identity
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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/tls_messages.h:524,1
    - Dst: cert_chain
      Src: /src/botan/src/lib/tls/tls_messages.h:526,1
    - Dst: Botan::TLS::count
      Src: /src/botan/src/lib/tls/tls_messages.h:528,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_messages.h:528,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls_messages.h:530,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls_messages.h:530,1
    - Dst: Certificate_12
      Src: /src/botan/src/lib/tls/tls_messages.h:532,1
    - Dst: Certificate_12
      Src: /src/botan/src/lib/tls/tls_messages.h:534,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:536,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls_messages.h:557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    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: 575
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 575
    functionName: Botan::TLS::Client_Key_Exchange
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached:
    - cert_chain
    - size
    - Certificate_12
    - Botan::TLS::empty
    - has_value
    - Botan::TLS::count
    - Botan::TLS::serialize
    - Botan::TLS::type
    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:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls_messages.h:557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 557
    functionDepth: 1
    functionLinenumber: 557
    functionLinenumberEnd: 557
    functionName: Botan::TLS::Certificate_Entry::has_certificate
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached:
    - has_value
    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: 564
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 564
    functionName: '& extensions()'
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 566
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 566
    functionName: '& extensions() const'
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Extensions
    signature: Extensions & extensions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_messages.h:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 582
    functionName: Botan::TLS::count
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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/tls_messages.h:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 584
    functionName: Botan::TLS::empty
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 7
    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: 589
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 589
    functionName: Botan::TLS::request_context
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & request_context() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 670
    functionDepth: 0
    functionLinenumber: 670
    functionLinenumberEnd: 672
    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: 676
      start: 676
    functionDepth: 0
    functionLinenumber: 676
    functionLinenumberEnd: 676
    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:700,1
    - Dst: acceptable_cert_types
      Src: /src/botan/src/lib/tls/tls_messages.h:702,1
    - Dst: acceptable_CAs
      Src: /src/botan/src/lib/tls/tls_messages.h:704,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls_messages.h:706,1
    - Dst: Certificate_Request_12
      Src: /src/botan/src/lib/tls/tls_messages.h:708,1
    - Dst: Certificate_Request_12
      Src: /src/botan/src/lib/tls/tls_messages.h:713,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:715,1
    - Dst: Certificate_Request_13
      Src: /src/botan/src/lib/tls/tls_messages.h:749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 678
    functionDepth: 0
    functionLinenumber: 678
    functionLinenumberEnd: 754
    functionName: Botan::TLS::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 5
    functionsReached:
    - signature_schemes
    - Certificate_Request_13
    - acceptable_cert_types
    - acceptable_CAs
    - Botan::TLS::serialize
    - Botan::TLS::type
    - Certificate_Request_12
    linkageType: ''
    returnType: void
    signature: void serialize() 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::TLS::extensions
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 2
    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: 746
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 746
    functionName: Botan::TLS::context
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & context() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 758
    functionDepth: 0
    functionLinenumber: 758
    functionLinenumberEnd: 760
    functionName: Botan::TLS::Certificate_Verify
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Certificate_Verify
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 762
    functionName: Botan::TLS::signature_scheme
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Signature_Scheme
    signature: Signature_Scheme signature_scheme() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 765
    functionName: Botan::TLS::Certificate_Verify
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Certificate_Verify()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 794
    functionName: Botan::TLS::Certificate_Verify_12
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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_Verify_13
      Src: /src/botan/src/lib/tls/tls_messages.h:808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 824
    functionName: Botan::TLS::Certificate_Verify_13
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 2
    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: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 831
    functionDepth: 0
    functionLinenumber: 831
    functionLinenumberEnd: 844
    functionName: Botan::TLS::Handshake_Message
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 835
      start: 835
    functionDepth: 0
    functionLinenumber: 835
    functionLinenumberEnd: 835
    functionName: Botan::TLS::type
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: Handshake_Type
    signature: Handshake_Type type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 846
    functionDepth: 0
    functionLinenumber: 846
    functionLinenumberEnd: 852
    functionName: Botan::TLS::Finished_12
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 855
    functionDepth: 0
    functionLinenumber: 855
    functionLinenumberEnd: 861
    functionName: Botan::TLS::Finished_13
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    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: 869
      start: 867
    functionDepth: 0
    functionLinenumber: 867
    functionLinenumberEnd: 869
    functionName: Botan::TLS::Handshake_Message
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 883
      start: 881
    functionDepth: 0
    functionLinenumber: 881
    functionLinenumberEnd: 883
    functionName: Botan::TLS::Server_Key_Exchange
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 885
      start: 885
    functionDepth: 0
    functionLinenumber: 885
    functionLinenumberEnd: 885
    functionName: Botan::TLS::params
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 896
      start: 896
    functionDepth: 0
    functionLinenumber: 896
    functionLinenumberEnd: 896
    functionName: Botan::TLS::shared_group
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<Group_Params>
    signature: std::optional<Group_Params> & shared_group() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:78,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:80,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:83,1
    - Dst: random
      Src: /src/botan/src/lib/tls/tls_messages.h:99,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls_messages.h:101,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/tls_messages.h:103,1
    - Dst: offered_suite
      Src: /src/botan/src/lib/tls/tls_messages.h:105,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls_messages.h:107,1
    - Dst: certificate_signature_schemes
      Src: /src/botan/src/lib/tls/tls_messages.h:108,1
    - Dst: supported_ecc_curves
      Src: /src/botan/src/lib/tls/tls_messages.h:110,1
    - Dst: supported_dh_groups
      Src: /src/botan/src/lib/tls/tls_messages.h:113,1
    - Dst: supported_versions
      Src: /src/botan/src/lib/tls/tls_messages.h:115,1
    - Dst: sni_hostname
      Src: /src/botan/src/lib/tls/tls_messages.h:117,1
    - Dst: supports_alpn
      Src: /src/botan/src/lib/tls/tls_messages.h:119,1
    - Dst: sent_signature_algorithms
      Src: /src/botan/src/lib/tls/tls_messages.h:121,1
    - Dst: next_protocols
      Src: /src/botan/src/lib/tls/tls_messages.h:123,1
    - Dst: srtp_profiles
      Src: /src/botan/src/lib/tls/tls_messages.h:125,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:127,1
    - Dst: Botan::TLS::cookie
      Src: /src/botan/src/lib/tls/tls_messages.h:129,1
    - Dst: cookie_input_data
      Src: /src/botan/src/lib/tls/tls_messages.h:131,1
    - Dst: extension_types
      Src: /src/botan/src/lib/tls/tls_messages.h:133,1
    - Dst: Botan::TLS::extensions
      Src: /src/botan/src/lib/tls/tls_messages.h:135,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:138,1
    - Dst: compression_methods
      Src: /src/botan/src/lib/tls/tls_messages.h:141,1
    - Dst: Client_Hello_13
      Src: /src/botan/src/lib/tls/tls_messages.h:225,1
    - Dst: parse
      Src: /src/botan/src/lib/tls/tls_messages.h:233,1
    - Dst: retry
      Src: /src/botan/src/lib/tls/tls_messages.h:235,1
    - Dst: highest_supported_version
      Src: /src/botan/src/lib/tls/tls_messages.h:245,1
    - Dst: validate_updates
      Src: /src/botan/src/lib/tls/tls_messages.h:252,1
    - Dst: Server_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:276,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_messages.h:315,1
    - Dst: Hello_Retry_Request
      Src: /src/botan/src/lib/tls/tls_messages.h:456,1
    - Dst: Hello_Retry_Request
      Src: /src/botan/src/lib/tls/tls_messages.h:457,1
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls_messages.h:460,1
    - Dst: Botan::TLS::wire_type
      Src: /src/botan/src/lib/tls/tls_messages.h:462,1
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls_messages.h:524,1
    - Dst: cert_chain
      Src: /src/botan/src/lib/tls/tls_messages.h:526,1
    - Dst: Botan::TLS::count
      Src: /src/botan/src/lib/tls/tls_messages.h:528,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_messages.h:528,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls_messages.h:530,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls_messages.h:530,1
    - Dst: Certificate_12
      Src: /src/botan/src/lib/tls/tls_messages.h:532,1
    - Dst: Certificate_12
      Src: /src/botan/src/lib/tls/tls_messages.h:534,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:536,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls_messages.h:557,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_messages.h:582,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls_messages.h:584,1
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls_messages.h:700,1
    - Dst: acceptable_cert_types
      Src: /src/botan/src/lib/tls/tls_messages.h:702,1
    - Dst: acceptable_CAs
      Src: /src/botan/src/lib/tls/tls_messages.h:704,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls_messages.h:706,1
    - Dst: Certificate_Request_12
      Src: /src/botan/src/lib/tls/tls_messages.h:708,1
    - Dst: Certificate_Request_12
      Src: /src/botan/src/lib/tls/tls_messages.h:713,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:715,1
    - Dst: Certificate_Request_13
      Src: /src/botan/src/lib/tls/tls_messages.h:749,1
    - Dst: Botan::TLS::Certificate_Verify_13
      Src: /src/botan/src/lib/tls/tls_messages.h:808,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 157
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 876
    functionName: Botan::TLS::Hello_Verify_Request
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached:
    - Certificate_Request_13
    - compression_methods
    - offered_suite
    - supported_ecc_curves
    - Client_Hello_13
    - signature_schemes
    - retry
    - supported_dh_groups
    - session_id
    - random
    - Client_Hello
    - next_protocols
    - srtp_profiles
    - Botan::TLS::serialize
    - Botan::TLS::type
    - parse
    - acceptable_cert_types
    - Certificate_12
    - Server_Hello
    - ciphersuites
    - sni_hostname
    - cookie_input_data
    - supported_versions
    - certificate_signature_schemes
    - Botan::TLS::cookie
    - supports_alpn
    - sent_signature_algorithms
    - highest_supported_version
    - Hello_Retry_Request
    - std::move
    - cert_chain
    - Botan::TLS::wire_type
    - size
    - Botan::TLS::Certificate_Verify_13
    - validate_updates
    - Botan::TLS::empty
    - acceptable_CAs
    - Botan::TLS::extensions
    - has_value
    - Botan::TLS::count
    - Certificate_Request_12
    - extension_types
    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: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    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: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    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:78,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:80,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:83,1
    - Dst: random
      Src: /src/botan/src/lib/tls/tls_messages.h:99,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls_messages.h:101,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/tls_messages.h:103,1
    - Dst: offered_suite
      Src: /src/botan/src/lib/tls/tls_messages.h:105,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls_messages.h:107,1
    - Dst: certificate_signature_schemes
      Src: /src/botan/src/lib/tls/tls_messages.h:108,1
    - Dst: supported_ecc_curves
      Src: /src/botan/src/lib/tls/tls_messages.h:110,1
    - Dst: supported_dh_groups
      Src: /src/botan/src/lib/tls/tls_messages.h:113,1
    - Dst: supported_versions
      Src: /src/botan/src/lib/tls/tls_messages.h:115,1
    - Dst: sni_hostname
      Src: /src/botan/src/lib/tls/tls_messages.h:117,1
    - Dst: supports_alpn
      Src: /src/botan/src/lib/tls/tls_messages.h:119,1
    - Dst: sent_signature_algorithms
      Src: /src/botan/src/lib/tls/tls_messages.h:121,1
    - Dst: next_protocols
      Src: /src/botan/src/lib/tls/tls_messages.h:123,1
    - Dst: srtp_profiles
      Src: /src/botan/src/lib/tls/tls_messages.h:125,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:127,1
    - Dst: Botan::TLS::cookie
      Src: /src/botan/src/lib/tls/tls_messages.h:129,1
    - Dst: cookie_input_data
      Src: /src/botan/src/lib/tls/tls_messages.h:131,1
    - Dst: extension_types
      Src: /src/botan/src/lib/tls/tls_messages.h:133,1
    - Dst: Botan::TLS::extensions
      Src: /src/botan/src/lib/tls/tls_messages.h:135,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:138,1
    - Dst: compression_methods
      Src: /src/botan/src/lib/tls/tls_messages.h:141,1
    - Dst: Client_Hello_13
      Src: /src/botan/src/lib/tls/tls_messages.h:225,1
    - Dst: parse
      Src: /src/botan/src/lib/tls/tls_messages.h:233,1
    - Dst: retry
      Src: /src/botan/src/lib/tls/tls_messages.h:235,1
    - Dst: highest_supported_version
      Src: /src/botan/src/lib/tls/tls_messages.h:245,1
    - Dst: validate_updates
      Src: /src/botan/src/lib/tls/tls_messages.h:252,1
    - Dst: Server_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:276,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_messages.h:315,1
    - Dst: Hello_Retry_Request
      Src: /src/botan/src/lib/tls/tls_messages.h:456,1
    - Dst: Hello_Retry_Request
      Src: /src/botan/src/lib/tls/tls_messages.h:457,1
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls_messages.h:460,1
    - Dst: Botan::TLS::wire_type
      Src: /src/botan/src/lib/tls/tls_messages.h:462,1
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls_messages.h:524,1
    - Dst: cert_chain
      Src: /src/botan/src/lib/tls/tls_messages.h:526,1
    - Dst: Botan::TLS::count
      Src: /src/botan/src/lib/tls/tls_messages.h:528,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_messages.h:528,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls_messages.h:530,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls_messages.h:530,1
    - Dst: Certificate_12
      Src: /src/botan/src/lib/tls/tls_messages.h:532,1
    - Dst: Certificate_12
      Src: /src/botan/src/lib/tls/tls_messages.h:534,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:536,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls_messages.h:557,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_messages.h:582,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls_messages.h:584,1
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls_messages.h:700,1
    - Dst: acceptable_cert_types
      Src: /src/botan/src/lib/tls/tls_messages.h:702,1
    - Dst: acceptable_CAs
      Src: /src/botan/src/lib/tls/tls_messages.h:704,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls_messages.h:706,1
    - Dst: Certificate_Request_12
      Src: /src/botan/src/lib/tls/tls_messages.h:708,1
    - Dst: Certificate_Request_12
      Src: /src/botan/src/lib/tls/tls_messages.h:713,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:715,1
    - Dst: Certificate_Request_13
      Src: /src/botan/src/lib/tls/tls_messages.h:749,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 115
    argCount: 3
    argNames:
    - ' client_hello_bits'
    - client_identity
    - ' secret_key'
    argTypes:
    - std::vector<uint8_t>
    - std::string_view
    - SymmetricKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 772
    functionName: Botan::TLS::Hello_Verify_Request
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached:
    - Certificate_Request_13
    - compression_methods
    - offered_suite
    - supported_ecc_curves
    - Client_Hello_13
    - signature_schemes
    - retry
    - supported_dh_groups
    - session_id
    - random
    - Client_Hello
    - next_protocols
    - srtp_profiles
    - Botan::TLS::serialize
    - Botan::TLS::type
    - parse
    - acceptable_cert_types
    - Certificate_12
    - Server_Hello
    - ciphersuites
    - sni_hostname
    - cookie_input_data
    - supported_versions
    - certificate_signature_schemes
    - Botan::TLS::cookie
    - supports_alpn
    - sent_signature_algorithms
    - highest_supported_version
    - Hello_Retry_Request
    - std::move
    - cert_chain
    - Botan::TLS::wire_type
    - size
    - validate_updates
    - Botan::TLS::empty
    - acceptable_CAs
    - Botan::TLS::extensions
    - has_value
    - Botan::TLS::count
    - Certificate_Request_12
    - extension_types
    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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - version
    argTypes:
    - Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 152
    functionName: Botan::TLS::Settings::Settings
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: Botan::TLS::Settings::protocol_version
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 156
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 156
    functionName: '& hostname() const'
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & hostname() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Client_Hello_13
      Src: /src/botan/src/lib/tls/tls_messages.h:225,1
    - Dst: parse
      Src: /src/botan/src/lib/tls/tls_messages.h:233,1
    - Dst: retry
      Src: /src/botan/src/lib/tls/tls_messages.h:235,1
    - Dst: highest_supported_version
      Src: /src/botan/src/lib/tls/tls_messages.h:245,1
    - Dst: validate_updates
      Src: /src/botan/src/lib/tls/tls_messages.h:252,1
    - Dst: Server_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:276,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 8
    argNames:
    - ' io'
    - ' hash'
    - ' policy'
    - ' cb'
    - ' rng'
    - ' reneg_info'
    - ' session_and_handle'
    - ' 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: 305
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 305
    functionName: Botan::TLS::Client_Hello_12
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached:
    - Client_Hello_13
    - parse
    - retry
    - validate_updates
    - Server_Hello
    - highest_supported_version
    linkageType: ''
    returnType: void
    signature: "void 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_and_handle,\n                      const std::vector<std::string>& next_protocols)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_messages.h:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 394
    functionName: Botan::TLS::Server_Hello_12
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Server_Hello_12
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_messages.h:315,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: 318
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 318
    functionName: Botan::TLS::Settings::Settings
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 320
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 320
    functionName: '& session_id() const'
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 322
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 322
    functionName: Botan::TLS::Settings::protocol_version
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 324
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 324
    functionName: Botan::TLS::Settings::ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 326
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 326
    functionName: Botan::TLS::Settings::offer_session_ticket
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool offer_session_ticket() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hello_Retry_Request
      Src: /src/botan/src/lib/tls/tls_messages.h:456,1
    - Dst: Hello_Retry_Request
      Src: /src/botan/src/lib/tls/tls_messages.h:457,1
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls_messages.h:460,1
    - Dst: Botan::TLS::wire_type
      Src: /src/botan/src/lib/tls/tls_messages.h:462,1
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls_messages.h:524,1
    - Dst: cert_chain
      Src: /src/botan/src/lib/tls/tls_messages.h:526,1
    - Dst: Botan::TLS::count
      Src: /src/botan/src/lib/tls/tls_messages.h:528,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_messages.h:528,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls_messages.h:530,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls_messages.h:530,1
    - Dst: Certificate_12
      Src: /src/botan/src/lib/tls/tls_messages.h:532,1
    - Dst: Certificate_12
      Src: /src/botan/src/lib/tls/tls_messages.h:534,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:536,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls_messages.h:557,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_messages.h:582,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls_messages.h:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 663
    functionName: Botan::TLS::Server_Hello_13
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached:
    - cert_chain
    - Botan::TLS::wire_type
    - size
    - Certificate_12
    - Hello_Retry_Request
    - Botan::TLS::empty
    - has_value
    - Botan::TLS::count
    - Botan::TLS::serialize
    - Botan::TLS::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/tls_messages.h:456,1
    - Dst: Hello_Retry_Request
      Src: /src/botan/src/lib/tls/tls_messages.h:457,1
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls_messages.h:460,1
    - Dst: Botan::TLS::wire_type
      Src: /src/botan/src/lib/tls/tls_messages.h:462,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: 478
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 478
    functionName: Botan::TLS::Server_Hello_13
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached:
    - Hello_Retry_Request
    - Botan::TLS::wire_type
    - Botan::TLS::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: 470
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 470
    functionName: Botan::TLS::type
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 10
    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: 472
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 472
    functionName: Botan::TLS::extensions
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: Extensions
    signature: Extensions & extensions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 487
    functionName: Botan::TLS::Client_Key_Exchange
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 489
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 489
    functionName: Botan::TLS::pre_master_secret
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 494
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 494
    functionName: Botan::TLS::psk_identity
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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/tls_messages.h:524,1
    - Dst: cert_chain
      Src: /src/botan/src/lib/tls/tls_messages.h:526,1
    - Dst: Botan::TLS::count
      Src: /src/botan/src/lib/tls/tls_messages.h:528,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_messages.h:528,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls_messages.h:530,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls_messages.h:530,1
    - Dst: Certificate_12
      Src: /src/botan/src/lib/tls/tls_messages.h:532,1
    - Dst: Certificate_12
      Src: /src/botan/src/lib/tls/tls_messages.h:534,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:536,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls_messages.h:557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    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: 575
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 575
    functionName: Botan::TLS::Client_Key_Exchange
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached:
    - cert_chain
    - size
    - Certificate_12
    - Botan::TLS::empty
    - has_value
    - Botan::TLS::count
    - Botan::TLS::serialize
    - Botan::TLS::type
    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:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls_messages.h:557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 557
    functionDepth: 1
    functionLinenumber: 557
    functionLinenumberEnd: 557
    functionName: Botan::TLS::Certificate_Entry::has_certificate
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached:
    - has_value
    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: 564
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 564
    functionName: '& extensions()'
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 566
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 566
    functionName: '& extensions() const'
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Extensions
    signature: Extensions & extensions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_messages.h:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 582
    functionName: Botan::TLS::count
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 8
    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/tls_messages.h:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 584
    functionName: Botan::TLS::empty
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 12
    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: 589
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 589
    functionName: Botan::TLS::request_context
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & request_context() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 670
    functionDepth: 0
    functionLinenumber: 670
    functionLinenumberEnd: 672
    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: 676
      start: 676
    functionDepth: 0
    functionLinenumber: 676
    functionLinenumberEnd: 676
    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:700,1
    - Dst: acceptable_cert_types
      Src: /src/botan/src/lib/tls/tls_messages.h:702,1
    - Dst: acceptable_CAs
      Src: /src/botan/src/lib/tls/tls_messages.h:704,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls_messages.h:706,1
    - Dst: Certificate_Request_12
      Src: /src/botan/src/lib/tls/tls_messages.h:708,1
    - Dst: Certificate_Request_12
      Src: /src/botan/src/lib/tls/tls_messages.h:713,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:715,1
    - Dst: Certificate_Request_13
      Src: /src/botan/src/lib/tls/tls_messages.h:749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 678
    functionDepth: 0
    functionLinenumber: 678
    functionLinenumberEnd: 754
    functionName: Botan::TLS::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 10
    functionsReached:
    - signature_schemes
    - Certificate_Request_13
    - acceptable_cert_types
    - acceptable_CAs
    - Botan::TLS::serialize
    - Botan::TLS::type
    - Certificate_Request_12
    linkageType: ''
    returnType: void
    signature: void serialize() 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::TLS::extensions
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 4
    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: 746
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 746
    functionName: Botan::TLS::context
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & context() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 758
    functionDepth: 0
    functionLinenumber: 758
    functionLinenumberEnd: 760
    functionName: Botan::TLS::Certificate_Verify
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Certificate_Verify
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 762
    functionName: Botan::TLS::signature_scheme
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Signature_Scheme
    signature: Signature_Scheme signature_scheme() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 765
    functionName: Botan::TLS::Certificate_Verify
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Certificate_Verify()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 794
    functionName: Botan::TLS::Certificate_Verify_12
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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_Verify_13
      Src: /src/botan/src/lib/tls/tls_messages.h:808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 824
    functionName: Botan::TLS::Certificate_Verify_13
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 4
    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: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 831
    functionDepth: 0
    functionLinenumber: 831
    functionLinenumberEnd: 844
    functionName: Botan::TLS::Handshake_Message
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 835
      start: 835
    functionDepth: 0
    functionLinenumber: 835
    functionLinenumberEnd: 835
    functionName: Botan::TLS::type
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: Handshake_Type
    signature: Handshake_Type type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 846
    functionDepth: 0
    functionLinenumber: 846
    functionLinenumberEnd: 852
    functionName: Botan::TLS::Finished_12
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 855
    functionDepth: 0
    functionLinenumber: 855
    functionLinenumberEnd: 861
    functionName: Botan::TLS::Finished_13
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    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: 869
      start: 867
    functionDepth: 0
    functionLinenumber: 867
    functionLinenumberEnd: 869
    functionName: Botan::TLS::Handshake_Message
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 883
      start: 881
    functionDepth: 0
    functionLinenumber: 881
    functionLinenumberEnd: 883
    functionName: Botan::TLS::Server_Key_Exchange
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 885
      start: 885
    functionDepth: 0
    functionLinenumber: 885
    functionLinenumberEnd: 885
    functionName: Botan::TLS::params
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 896
      start: 896
    functionDepth: 0
    functionLinenumber: 896
    functionLinenumberEnd: 896
    functionName: Botan::TLS::shared_group
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 925
    functionDepth: 0
    functionLinenumber: 925
    functionLinenumberEnd: 927
    functionName: Botan::Server_Hello_Done
    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_Done
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:78,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:80,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:83,1
    - Dst: random
      Src: /src/botan/src/lib/tls/tls_messages.h:99,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls_messages.h:101,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/tls_messages.h:103,1
    - Dst: offered_suite
      Src: /src/botan/src/lib/tls/tls_messages.h:105,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls_messages.h:107,1
    - Dst: certificate_signature_schemes
      Src: /src/botan/src/lib/tls/tls_messages.h:108,1
    - Dst: supported_ecc_curves
      Src: /src/botan/src/lib/tls/tls_messages.h:110,1
    - Dst: supported_dh_groups
      Src: /src/botan/src/lib/tls/tls_messages.h:113,1
    - Dst: supported_versions
      Src: /src/botan/src/lib/tls/tls_messages.h:115,1
    - Dst: sni_hostname
      Src: /src/botan/src/lib/tls/tls_messages.h:117,1
    - Dst: supports_alpn
      Src: /src/botan/src/lib/tls/tls_messages.h:119,1
    - Dst: sent_signature_algorithms
      Src: /src/botan/src/lib/tls/tls_messages.h:121,1
    - Dst: next_protocols
      Src: /src/botan/src/lib/tls/tls_messages.h:123,1
    - Dst: srtp_profiles
      Src: /src/botan/src/lib/tls/tls_messages.h:125,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:127,1
    - Dst: Botan::TLS::cookie
      Src: /src/botan/src/lib/tls/tls_messages.h:129,1
    - Dst: cookie_input_data
      Src: /src/botan/src/lib/tls/tls_messages.h:131,1
    - Dst: extension_types
      Src: /src/botan/src/lib/tls/tls_messages.h:133,1
    - Dst: Botan::TLS::extensions
      Src: /src/botan/src/lib/tls/tls_messages.h:135,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:138,1
    - Dst: compression_methods
      Src: /src/botan/src/lib/tls/tls_messages.h:141,1
    - Dst: Client_Hello_13
      Src: /src/botan/src/lib/tls/tls_messages.h:225,1
    - Dst: parse
      Src: /src/botan/src/lib/tls/tls_messages.h:233,1
    - Dst: retry
      Src: /src/botan/src/lib/tls/tls_messages.h:235,1
    - Dst: highest_supported_version
      Src: /src/botan/src/lib/tls/tls_messages.h:245,1
    - Dst: validate_updates
      Src: /src/botan/src/lib/tls/tls_messages.h:252,1
    - Dst: Server_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:276,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_messages.h:315,1
    - Dst: Hello_Retry_Request
      Src: /src/botan/src/lib/tls/tls_messages.h:456,1
    - Dst: Hello_Retry_Request
      Src: /src/botan/src/lib/tls/tls_messages.h:457,1
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls_messages.h:460,1
    - Dst: Botan::TLS::wire_type
      Src: /src/botan/src/lib/tls/tls_messages.h:462,1
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls_messages.h:524,1
    - Dst: cert_chain
      Src: /src/botan/src/lib/tls/tls_messages.h:526,1
    - Dst: Botan::TLS::count
      Src: /src/botan/src/lib/tls/tls_messages.h:528,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_messages.h:528,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls_messages.h:530,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls_messages.h:530,1
    - Dst: Certificate_12
      Src: /src/botan/src/lib/tls/tls_messages.h:532,1
    - Dst: Certificate_12
      Src: /src/botan/src/lib/tls/tls_messages.h:534,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:536,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls_messages.h:557,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_messages.h:582,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls_messages.h:584,1
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls_messages.h:700,1
    - Dst: acceptable_cert_types
      Src: /src/botan/src/lib/tls/tls_messages.h:702,1
    - Dst: acceptable_CAs
      Src: /src/botan/src/lib/tls/tls_messages.h:704,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls_messages.h:706,1
    - Dst: Certificate_Request_12
      Src: /src/botan/src/lib/tls/tls_messages.h:708,1
    - Dst: Certificate_Request_12
      Src: /src/botan/src/lib/tls/tls_messages.h:713,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:715,1
    - Dst: Certificate_Request_13
      Src: /src/botan/src/lib/tls/tls_messages.h:749,1
    - Dst: Botan::TLS::Certificate_Verify_13
      Src: /src/botan/src/lib/tls/tls_messages.h:808,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 157
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 876
    functionName: Botan::TLS::Hello_Verify_Request
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached:
    - Certificate_Request_13
    - compression_methods
    - offered_suite
    - supported_ecc_curves
    - Client_Hello_13
    - signature_schemes
    - retry
    - supported_dh_groups
    - session_id
    - random
    - Client_Hello
    - next_protocols
    - srtp_profiles
    - Botan::TLS::serialize
    - Botan::TLS::type
    - parse
    - acceptable_cert_types
    - Certificate_12
    - Server_Hello
    - ciphersuites
    - sni_hostname
    - cookie_input_data
    - supported_versions
    - certificate_signature_schemes
    - Botan::TLS::cookie
    - supports_alpn
    - sent_signature_algorithms
    - highest_supported_version
    - Hello_Retry_Request
    - std::move
    - cert_chain
    - Botan::TLS::wire_type
    - size
    - Botan::TLS::Certificate_Verify_13
    - validate_updates
    - Botan::TLS::empty
    - acceptable_CAs
    - Botan::TLS::extensions
    - has_value
    - Botan::TLS::count
    - Certificate_Request_12
    - extension_types
    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: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: Botan::TLS::type
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 13
    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: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    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:78,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:80,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:83,1
    - Dst: random
      Src: /src/botan/src/lib/tls/tls_messages.h:99,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls_messages.h:101,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/tls_messages.h:103,1
    - Dst: offered_suite
      Src: /src/botan/src/lib/tls/tls_messages.h:105,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls_messages.h:107,1
    - Dst: certificate_signature_schemes
      Src: /src/botan/src/lib/tls/tls_messages.h:108,1
    - Dst: supported_ecc_curves
      Src: /src/botan/src/lib/tls/tls_messages.h:110,1
    - Dst: supported_dh_groups
      Src: /src/botan/src/lib/tls/tls_messages.h:113,1
    - Dst: supported_versions
      Src: /src/botan/src/lib/tls/tls_messages.h:115,1
    - Dst: sni_hostname
      Src: /src/botan/src/lib/tls/tls_messages.h:117,1
    - Dst: supports_alpn
      Src: /src/botan/src/lib/tls/tls_messages.h:119,1
    - Dst: sent_signature_algorithms
      Src: /src/botan/src/lib/tls/tls_messages.h:121,1
    - Dst: next_protocols
      Src: /src/botan/src/lib/tls/tls_messages.h:123,1
    - Dst: srtp_profiles
      Src: /src/botan/src/lib/tls/tls_messages.h:125,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:127,1
    - Dst: Botan::TLS::cookie
      Src: /src/botan/src/lib/tls/tls_messages.h:129,1
    - Dst: cookie_input_data
      Src: /src/botan/src/lib/tls/tls_messages.h:131,1
    - Dst: extension_types
      Src: /src/botan/src/lib/tls/tls_messages.h:133,1
    - Dst: Botan::TLS::extensions
      Src: /src/botan/src/lib/tls/tls_messages.h:135,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:138,1
    - Dst: compression_methods
      Src: /src/botan/src/lib/tls/tls_messages.h:141,1
    - Dst: Client_Hello_13
      Src: /src/botan/src/lib/tls/tls_messages.h:225,1
    - Dst: parse
      Src: /src/botan/src/lib/tls/tls_messages.h:233,1
    - Dst: retry
      Src: /src/botan/src/lib/tls/tls_messages.h:235,1
    - Dst: highest_supported_version
      Src: /src/botan/src/lib/tls/tls_messages.h:245,1
    - Dst: validate_updates
      Src: /src/botan/src/lib/tls/tls_messages.h:252,1
    - Dst: Server_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:276,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_messages.h:315,1
    - Dst: Hello_Retry_Request
      Src: /src/botan/src/lib/tls/tls_messages.h:456,1
    - Dst: Hello_Retry_Request
      Src: /src/botan/src/lib/tls/tls_messages.h:457,1
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls_messages.h:460,1
    - Dst: Botan::TLS::wire_type
      Src: /src/botan/src/lib/tls/tls_messages.h:462,1
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls_messages.h:524,1
    - Dst: cert_chain
      Src: /src/botan/src/lib/tls/tls_messages.h:526,1
    - Dst: Botan::TLS::count
      Src: /src/botan/src/lib/tls/tls_messages.h:528,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_messages.h:528,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls_messages.h:530,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls_messages.h:530,1
    - Dst: Certificate_12
      Src: /src/botan/src/lib/tls/tls_messages.h:532,1
    - Dst: Certificate_12
      Src: /src/botan/src/lib/tls/tls_messages.h:534,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:536,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls_messages.h:557,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_messages.h:582,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls_messages.h:584,1
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls_messages.h:700,1
    - Dst: acceptable_cert_types
      Src: /src/botan/src/lib/tls/tls_messages.h:702,1
    - Dst: acceptable_CAs
      Src: /src/botan/src/lib/tls/tls_messages.h:704,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls_messages.h:706,1
    - Dst: Certificate_Request_12
      Src: /src/botan/src/lib/tls/tls_messages.h:708,1
    - Dst: Certificate_Request_12
      Src: /src/botan/src/lib/tls/tls_messages.h:713,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:715,1
    - Dst: Certificate_Request_13
      Src: /src/botan/src/lib/tls/tls_messages.h:749,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 115
    argCount: 3
    argNames:
    - ' client_hello_bits'
    - client_identity
    - ' secret_key'
    argTypes:
    - std::vector<uint8_t>
    - std::string_view
    - SymmetricKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 772
    functionName: Botan::TLS::Hello_Verify_Request
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached:
    - Certificate_Request_13
    - compression_methods
    - offered_suite
    - supported_ecc_curves
    - Client_Hello_13
    - signature_schemes
    - retry
    - supported_dh_groups
    - session_id
    - random
    - Client_Hello
    - next_protocols
    - srtp_profiles
    - Botan::TLS::serialize
    - Botan::TLS::type
    - parse
    - acceptable_cert_types
    - Certificate_12
    - Server_Hello
    - ciphersuites
    - sni_hostname
    - cookie_input_data
    - supported_versions
    - certificate_signature_schemes
    - Botan::TLS::cookie
    - supports_alpn
    - sent_signature_algorithms
    - highest_supported_version
    - Hello_Retry_Request
    - std::move
    - cert_chain
    - Botan::TLS::wire_type
    - size
    - validate_updates
    - Botan::TLS::empty
    - acceptable_CAs
    - Botan::TLS::extensions
    - has_value
    - Botan::TLS::count
    - Certificate_Request_12
    - extension_types
    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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - version
    argTypes:
    - Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 152
    functionName: Botan::TLS::Settings::Settings
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: Botan::TLS::Settings::protocol_version
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 156
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 156
    functionName: '& hostname() const'
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & hostname() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Client_Hello_13
      Src: /src/botan/src/lib/tls/tls_messages.h:225,1
    - Dst: parse
      Src: /src/botan/src/lib/tls/tls_messages.h:233,1
    - Dst: retry
      Src: /src/botan/src/lib/tls/tls_messages.h:235,1
    - Dst: highest_supported_version
      Src: /src/botan/src/lib/tls/tls_messages.h:245,1
    - Dst: validate_updates
      Src: /src/botan/src/lib/tls/tls_messages.h:252,1
    - Dst: Server_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:276,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 8
    argNames:
    - ' io'
    - ' hash'
    - ' policy'
    - ' cb'
    - ' rng'
    - ' reneg_info'
    - ' session_and_handle'
    - ' 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: 305
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 305
    functionName: Botan::TLS::Client_Hello_12
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached:
    - Client_Hello_13
    - parse
    - retry
    - validate_updates
    - Server_Hello
    - highest_supported_version
    linkageType: ''
    returnType: void
    signature: "void 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_and_handle,\n                      const std::vector<std::string>& next_protocols)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_messages.h:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 394
    functionName: Botan::TLS::Server_Hello_12
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Server_Hello_12
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_messages.h:315,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: 318
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 318
    functionName: Botan::TLS::Settings::Settings
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 320
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 320
    functionName: '& session_id() const'
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 322
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 322
    functionName: Botan::TLS::Settings::protocol_version
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 324
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 324
    functionName: Botan::TLS::Settings::ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 326
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 326
    functionName: Botan::TLS::Settings::offer_session_ticket
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool offer_session_ticket() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hello_Retry_Request
      Src: /src/botan/src/lib/tls/tls_messages.h:456,1
    - Dst: Hello_Retry_Request
      Src: /src/botan/src/lib/tls/tls_messages.h:457,1
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls_messages.h:460,1
    - Dst: Botan::TLS::wire_type
      Src: /src/botan/src/lib/tls/tls_messages.h:462,1
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls_messages.h:524,1
    - Dst: cert_chain
      Src: /src/botan/src/lib/tls/tls_messages.h:526,1
    - Dst: Botan::TLS::count
      Src: /src/botan/src/lib/tls/tls_messages.h:528,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_messages.h:528,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls_messages.h:530,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls_messages.h:530,1
    - Dst: Certificate_12
      Src: /src/botan/src/lib/tls/tls_messages.h:532,1
    - Dst: Certificate_12
      Src: /src/botan/src/lib/tls/tls_messages.h:534,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:536,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls_messages.h:557,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_messages.h:582,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls_messages.h:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 663
    functionName: Botan::TLS::Server_Hello_13
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached:
    - cert_chain
    - Botan::TLS::wire_type
    - size
    - Certificate_12
    - Hello_Retry_Request
    - Botan::TLS::empty
    - has_value
    - Botan::TLS::count
    - Botan::TLS::serialize
    - Botan::TLS::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/tls_messages.h:456,1
    - Dst: Hello_Retry_Request
      Src: /src/botan/src/lib/tls/tls_messages.h:457,1
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls_messages.h:460,1
    - Dst: Botan::TLS::wire_type
      Src: /src/botan/src/lib/tls/tls_messages.h:462,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: 478
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 478
    functionName: Botan::TLS::Server_Hello_13
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached:
    - Hello_Retry_Request
    - Botan::TLS::wire_type
    - Botan::TLS::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: 470
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 470
    functionName: Botan::TLS::type
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 472
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 472
    functionName: Botan::TLS::extensions
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: Extensions
    signature: Extensions & extensions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 487
    functionName: Botan::TLS::Client_Key_Exchange
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 489
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 489
    functionName: Botan::TLS::pre_master_secret
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 494
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 494
    functionName: Botan::TLS::psk_identity
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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/tls_messages.h:524,1
    - Dst: cert_chain
      Src: /src/botan/src/lib/tls/tls_messages.h:526,1
    - Dst: Botan::TLS::count
      Src: /src/botan/src/lib/tls/tls_messages.h:528,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_messages.h:528,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls_messages.h:530,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls_messages.h:530,1
    - Dst: Certificate_12
      Src: /src/botan/src/lib/tls/tls_messages.h:532,1
    - Dst: Certificate_12
      Src: /src/botan/src/lib/tls/tls_messages.h:534,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:536,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls_messages.h:557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    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: 575
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 575
    functionName: Botan::TLS::Client_Key_Exchange
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached:
    - cert_chain
    - size
    - Certificate_12
    - Botan::TLS::empty
    - has_value
    - Botan::TLS::count
    - Botan::TLS::serialize
    - Botan::TLS::type
    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:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls_messages.h:557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 557
    functionDepth: 1
    functionLinenumber: 557
    functionLinenumberEnd: 557
    functionName: Botan::TLS::Certificate_Entry::has_certificate
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached:
    - has_value
    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: 564
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 564
    functionName: '& extensions()'
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 566
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 566
    functionName: '& extensions() const'
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Extensions
    signature: Extensions & extensions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_messages.h:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 582
    functionName: Botan::TLS::count
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 12
    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/tls_messages.h:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 584
    functionName: Botan::TLS::empty
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 17
    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: 589
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 589
    functionName: Botan::TLS::request_context
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & request_context() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 670
    functionDepth: 0
    functionLinenumber: 670
    functionLinenumberEnd: 672
    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: 676
      start: 676
    functionDepth: 0
    functionLinenumber: 676
    functionLinenumberEnd: 676
    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:700,1
    - Dst: acceptable_cert_types
      Src: /src/botan/src/lib/tls/tls_messages.h:702,1
    - Dst: acceptable_CAs
      Src: /src/botan/src/lib/tls/tls_messages.h:704,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls_messages.h:706,1
    - Dst: Certificate_Request_12
      Src: /src/botan/src/lib/tls/tls_messages.h:708,1
    - Dst: Certificate_Request_12
      Src: /src/botan/src/lib/tls/tls_messages.h:713,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:715,1
    - Dst: Certificate_Request_13
      Src: /src/botan/src/lib/tls/tls_messages.h:749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 678
    functionDepth: 0
    functionLinenumber: 678
    functionLinenumberEnd: 754
    functionName: Botan::TLS::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 15
    functionsReached:
    - signature_schemes
    - Certificate_Request_13
    - acceptable_cert_types
    - acceptable_CAs
    - Botan::TLS::serialize
    - Botan::TLS::type
    - Certificate_Request_12
    linkageType: ''
    returnType: void
    signature: void serialize() 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::TLS::extensions
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 6
    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: 746
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 746
    functionName: Botan::TLS::context
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & context() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 758
    functionDepth: 0
    functionLinenumber: 758
    functionLinenumberEnd: 760
    functionName: Botan::TLS::Certificate_Verify
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Certificate_Verify
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 762
    functionName: Botan::TLS::signature_scheme
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Signature_Scheme
    signature: Signature_Scheme signature_scheme() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 765
    functionName: Botan::TLS::Certificate_Verify
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Certificate_Verify()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 794
    functionName: Botan::TLS::Certificate_Verify_12
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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_Verify_13
      Src: /src/botan/src/lib/tls/tls_messages.h:808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 824
    functionName: Botan::TLS::Certificate_Verify_13
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 831
    functionDepth: 0
    functionLinenumber: 831
    functionLinenumberEnd: 844
    functionName: Botan::TLS::Handshake_Message
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 835
      start: 835
    functionDepth: 0
    functionLinenumber: 835
    functionLinenumberEnd: 835
    functionName: Botan::TLS::type
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: Handshake_Type
    signature: Handshake_Type type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 846
    functionDepth: 0
    functionLinenumber: 846
    functionLinenumberEnd: 852
    functionName: Botan::TLS::Finished_12
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 855
    functionDepth: 0
    functionLinenumber: 855
    functionLinenumberEnd: 861
    functionName: Botan::TLS::Finished_13
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    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: 869
      start: 867
    functionDepth: 0
    functionLinenumber: 867
    functionLinenumberEnd: 869
    functionName: Botan::TLS::Handshake_Message
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 883
      start: 881
    functionDepth: 0
    functionLinenumber: 881
    functionLinenumberEnd: 883
    functionName: Botan::TLS::Server_Key_Exchange
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 885
      start: 885
    functionDepth: 0
    functionLinenumber: 885
    functionLinenumberEnd: 885
    functionName: Botan::TLS::params
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 896
      start: 896
    functionDepth: 0
    functionLinenumber: 896
    functionLinenumberEnd: 896
    functionName: Botan::TLS::shared_group
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<Group_Params>
    signature: std::optional<Group_Params> & shared_group() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:78,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:80,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:83,1
    - Dst: random
      Src: /src/botan/src/lib/tls/tls_messages.h:99,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls_messages.h:101,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/tls_messages.h:103,1
    - Dst: offered_suite
      Src: /src/botan/src/lib/tls/tls_messages.h:105,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls_messages.h:107,1
    - Dst: certificate_signature_schemes
      Src: /src/botan/src/lib/tls/tls_messages.h:108,1
    - Dst: supported_ecc_curves
      Src: /src/botan/src/lib/tls/tls_messages.h:110,1
    - Dst: supported_dh_groups
      Src: /src/botan/src/lib/tls/tls_messages.h:113,1
    - Dst: supported_versions
      Src: /src/botan/src/lib/tls/tls_messages.h:115,1
    - Dst: sni_hostname
      Src: /src/botan/src/lib/tls/tls_messages.h:117,1
    - Dst: supports_alpn
      Src: /src/botan/src/lib/tls/tls_messages.h:119,1
    - Dst: sent_signature_algorithms
      Src: /src/botan/src/lib/tls/tls_messages.h:121,1
    - Dst: next_protocols
      Src: /src/botan/src/lib/tls/tls_messages.h:123,1
    - Dst: srtp_profiles
      Src: /src/botan/src/lib/tls/tls_messages.h:125,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:127,1
    - Dst: Botan::TLS::cookie
      Src: /src/botan/src/lib/tls/tls_messages.h:129,1
    - Dst: cookie_input_data
      Src: /src/botan/src/lib/tls/tls_messages.h:131,1
    - Dst: extension_types
      Src: /src/botan/src/lib/tls/tls_messages.h:133,1
    - Dst: Botan::TLS::extensions
      Src: /src/botan/src/lib/tls/tls_messages.h:135,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:138,1
    - Dst: compression_methods
      Src: /src/botan/src/lib/tls/tls_messages.h:141,1
    - Dst: Client_Hello_13
      Src: /src/botan/src/lib/tls/tls_messages.h:225,1
    - Dst: parse
      Src: /src/botan/src/lib/tls/tls_messages.h:233,1
    - Dst: retry
      Src: /src/botan/src/lib/tls/tls_messages.h:235,1
    - Dst: highest_supported_version
      Src: /src/botan/src/lib/tls/tls_messages.h:245,1
    - Dst: validate_updates
      Src: /src/botan/src/lib/tls/tls_messages.h:252,1
    - Dst: Server_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:276,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_messages.h:315,1
    - Dst: Hello_Retry_Request
      Src: /src/botan/src/lib/tls/tls_messages.h:456,1
    - Dst: Hello_Retry_Request
      Src: /src/botan/src/lib/tls/tls_messages.h:457,1
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls_messages.h:460,1
    - Dst: Botan::TLS::wire_type
      Src: /src/botan/src/lib/tls/tls_messages.h:462,1
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls_messages.h:524,1
    - Dst: cert_chain
      Src: /src/botan/src/lib/tls/tls_messages.h:526,1
    - Dst: Botan::TLS::count
      Src: /src/botan/src/lib/tls/tls_messages.h:528,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_messages.h:528,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls_messages.h:530,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls_messages.h:530,1
    - Dst: Certificate_12
      Src: /src/botan/src/lib/tls/tls_messages.h:532,1
    - Dst: Certificate_12
      Src: /src/botan/src/lib/tls/tls_messages.h:534,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:536,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls_messages.h:557,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_messages.h:582,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls_messages.h:584,1
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls_messages.h:700,1
    - Dst: acceptable_cert_types
      Src: /src/botan/src/lib/tls/tls_messages.h:702,1
    - Dst: acceptable_CAs
      Src: /src/botan/src/lib/tls/tls_messages.h:704,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls_messages.h:706,1
    - Dst: Certificate_Request_12
      Src: /src/botan/src/lib/tls/tls_messages.h:708,1
    - Dst: Certificate_Request_12
      Src: /src/botan/src/lib/tls/tls_messages.h:713,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:715,1
    - Dst: Certificate_Request_13
      Src: /src/botan/src/lib/tls/tls_messages.h:749,1
    - Dst: Botan::TLS::Certificate_Verify_13
      Src: /src/botan/src/lib/tls/tls_messages.h:808,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 157
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 876
    functionName: Botan::TLS::Hello_Verify_Request
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached:
    - Certificate_Request_13
    - compression_methods
    - offered_suite
    - supported_ecc_curves
    - Client_Hello_13
    - signature_schemes
    - retry
    - supported_dh_groups
    - session_id
    - random
    - Client_Hello
    - next_protocols
    - srtp_profiles
    - Botan::TLS::serialize
    - Botan::TLS::type
    - parse
    - acceptable_cert_types
    - Certificate_12
    - Server_Hello
    - ciphersuites
    - sni_hostname
    - cookie_input_data
    - supported_versions
    - certificate_signature_schemes
    - Botan::TLS::cookie
    - supports_alpn
    - sent_signature_algorithms
    - highest_supported_version
    - Hello_Retry_Request
    - std::move
    - cert_chain
    - Botan::TLS::wire_type
    - size
    - Botan::TLS::Certificate_Verify_13
    - validate_updates
    - Botan::TLS::empty
    - acceptable_CAs
    - Botan::TLS::extensions
    - has_value
    - Botan::TLS::count
    - Certificate_Request_12
    - extension_types
    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: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: Botan::TLS::type
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 19
    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: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    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:78,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:80,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:83,1
    - Dst: random
      Src: /src/botan/src/lib/tls/tls_messages.h:99,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls_messages.h:101,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/tls_messages.h:103,1
    - Dst: offered_suite
      Src: /src/botan/src/lib/tls/tls_messages.h:105,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls_messages.h:107,1
    - Dst: certificate_signature_schemes
      Src: /src/botan/src/lib/tls/tls_messages.h:108,1
    - Dst: supported_ecc_curves
      Src: /src/botan/src/lib/tls/tls_messages.h:110,1
    - Dst: supported_dh_groups
      Src: /src/botan/src/lib/tls/tls_messages.h:113,1
    - Dst: supported_versions
      Src: /src/botan/src/lib/tls/tls_messages.h:115,1
    - Dst: sni_hostname
      Src: /src/botan/src/lib/tls/tls_messages.h:117,1
    - Dst: supports_alpn
      Src: /src/botan/src/lib/tls/tls_messages.h:119,1
    - Dst: sent_signature_algorithms
      Src: /src/botan/src/lib/tls/tls_messages.h:121,1
    - Dst: next_protocols
      Src: /src/botan/src/lib/tls/tls_messages.h:123,1
    - Dst: srtp_profiles
      Src: /src/botan/src/lib/tls/tls_messages.h:125,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:127,1
    - Dst: Botan::TLS::cookie
      Src: /src/botan/src/lib/tls/tls_messages.h:129,1
    - Dst: cookie_input_data
      Src: /src/botan/src/lib/tls/tls_messages.h:131,1
    - Dst: extension_types
      Src: /src/botan/src/lib/tls/tls_messages.h:133,1
    - Dst: Botan::TLS::extensions
      Src: /src/botan/src/lib/tls/tls_messages.h:135,1
    - Dst: Client_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:138,1
    - Dst: compression_methods
      Src: /src/botan/src/lib/tls/tls_messages.h:141,1
    - Dst: Client_Hello_13
      Src: /src/botan/src/lib/tls/tls_messages.h:225,1
    - Dst: parse
      Src: /src/botan/src/lib/tls/tls_messages.h:233,1
    - Dst: retry
      Src: /src/botan/src/lib/tls/tls_messages.h:235,1
    - Dst: highest_supported_version
      Src: /src/botan/src/lib/tls/tls_messages.h:245,1
    - Dst: validate_updates
      Src: /src/botan/src/lib/tls/tls_messages.h:252,1
    - Dst: Server_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:276,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_messages.h:315,1
    - Dst: Hello_Retry_Request
      Src: /src/botan/src/lib/tls/tls_messages.h:456,1
    - Dst: Hello_Retry_Request
      Src: /src/botan/src/lib/tls/tls_messages.h:457,1
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls_messages.h:460,1
    - Dst: Botan::TLS::wire_type
      Src: /src/botan/src/lib/tls/tls_messages.h:462,1
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls_messages.h:524,1
    - Dst: cert_chain
      Src: /src/botan/src/lib/tls/tls_messages.h:526,1
    - Dst: Botan::TLS::count
      Src: /src/botan/src/lib/tls/tls_messages.h:528,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_messages.h:528,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls_messages.h:530,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls_messages.h:530,1
    - Dst: Certificate_12
      Src: /src/botan/src/lib/tls/tls_messages.h:532,1
    - Dst: Certificate_12
      Src: /src/botan/src/lib/tls/tls_messages.h:534,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:536,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls_messages.h:557,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_messages.h:582,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls_messages.h:584,1
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls_messages.h:700,1
    - Dst: acceptable_cert_types
      Src: /src/botan/src/lib/tls/tls_messages.h:702,1
    - Dst: acceptable_CAs
      Src: /src/botan/src/lib/tls/tls_messages.h:704,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls_messages.h:706,1
    - Dst: Certificate_Request_12
      Src: /src/botan/src/lib/tls/tls_messages.h:708,1
    - Dst: Certificate_Request_12
      Src: /src/botan/src/lib/tls/tls_messages.h:713,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:715,1
    - Dst: Certificate_Request_13
      Src: /src/botan/src/lib/tls/tls_messages.h:749,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 115
    argCount: 3
    argNames:
    - ' client_hello_bits'
    - client_identity
    - ' secret_key'
    argTypes:
    - std::vector<uint8_t>
    - std::string_view
    - SymmetricKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 772
    functionName: Botan::TLS::Hello_Verify_Request
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached:
    - Certificate_Request_13
    - compression_methods
    - offered_suite
    - supported_ecc_curves
    - Client_Hello_13
    - signature_schemes
    - retry
    - supported_dh_groups
    - session_id
    - random
    - Client_Hello
    - next_protocols
    - srtp_profiles
    - Botan::TLS::serialize
    - Botan::TLS::type
    - parse
    - acceptable_cert_types
    - Certificate_12
    - Server_Hello
    - ciphersuites
    - sni_hostname
    - cookie_input_data
    - supported_versions
    - certificate_signature_schemes
    - Botan::TLS::cookie
    - supports_alpn
    - sent_signature_algorithms
    - highest_supported_version
    - Hello_Retry_Request
    - std::move
    - cert_chain
    - Botan::TLS::wire_type
    - size
    - validate_updates
    - Botan::TLS::empty
    - acceptable_CAs
    - Botan::TLS::extensions
    - has_value
    - Botan::TLS::count
    - Certificate_Request_12
    - extension_types
    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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - version
    argTypes:
    - Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 152
    functionName: Botan::TLS::Settings::Settings
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: Botan::TLS::Settings::protocol_version
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 156
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 156
    functionName: '& hostname() const'
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & hostname() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Client_Hello_13
      Src: /src/botan/src/lib/tls/tls_messages.h:225,1
    - Dst: parse
      Src: /src/botan/src/lib/tls/tls_messages.h:233,1
    - Dst: retry
      Src: /src/botan/src/lib/tls/tls_messages.h:235,1
    - Dst: highest_supported_version
      Src: /src/botan/src/lib/tls/tls_messages.h:245,1
    - Dst: validate_updates
      Src: /src/botan/src/lib/tls/tls_messages.h:252,1
    - Dst: Server_Hello
      Src: /src/botan/src/lib/tls/tls_messages.h:276,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 8
    argNames:
    - ' io'
    - ' hash'
    - ' policy'
    - ' cb'
    - ' rng'
    - ' reneg_info'
    - ' session_and_handle'
    - ' 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: 305
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 305
    functionName: Botan::TLS::Client_Hello_12
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached:
    - Client_Hello_13
    - parse
    - retry
    - validate_updates
    - Server_Hello
    - highest_supported_version
    linkageType: ''
    returnType: void
    signature: "void 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_and_handle,\n                      const std::vector<std::string>& next_protocols)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_messages.h:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 394
    functionName: Botan::TLS::Server_Hello_12
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Server_Hello_12
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_messages.h:315,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: 318
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 318
    functionName: Botan::TLS::Settings::Settings
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 320
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 320
    functionName: '& session_id() const'
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 322
      start: 322
    functionDepth: 0
    functionLinenumber: 322
    functionLinenumberEnd: 322
    functionName: Botan::TLS::Settings::protocol_version
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 324
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 324
    functionName: Botan::TLS::Settings::ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 326
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 326
    functionName: Botan::TLS::Settings::offer_session_ticket
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool offer_session_ticket() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Hello_Retry_Request
      Src: /src/botan/src/lib/tls/tls_messages.h:456,1
    - Dst: Hello_Retry_Request
      Src: /src/botan/src/lib/tls/tls_messages.h:457,1
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls_messages.h:460,1
    - Dst: Botan::TLS::wire_type
      Src: /src/botan/src/lib/tls/tls_messages.h:462,1
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls_messages.h:524,1
    - Dst: cert_chain
      Src: /src/botan/src/lib/tls/tls_messages.h:526,1
    - Dst: Botan::TLS::count
      Src: /src/botan/src/lib/tls/tls_messages.h:528,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_messages.h:528,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls_messages.h:530,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls_messages.h:530,1
    - Dst: Certificate_12
      Src: /src/botan/src/lib/tls/tls_messages.h:532,1
    - Dst: Certificate_12
      Src: /src/botan/src/lib/tls/tls_messages.h:534,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:536,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls_messages.h:557,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_messages.h:582,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls_messages.h:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 663
    functionName: Botan::TLS::Server_Hello_13
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached:
    - cert_chain
    - Botan::TLS::wire_type
    - size
    - Certificate_12
    - Hello_Retry_Request
    - Botan::TLS::empty
    - has_value
    - Botan::TLS::count
    - Botan::TLS::serialize
    - Botan::TLS::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/tls_messages.h:456,1
    - Dst: Hello_Retry_Request
      Src: /src/botan/src/lib/tls/tls_messages.h:457,1
    - Dst: Botan::TLS::type
      Src: /src/botan/src/lib/tls/tls_messages.h:460,1
    - Dst: Botan::TLS::wire_type
      Src: /src/botan/src/lib/tls/tls_messages.h:462,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: 478
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 478
    functionName: Botan::TLS::Server_Hello_13
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached:
    - Hello_Retry_Request
    - Botan::TLS::wire_type
    - Botan::TLS::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: 470
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 470
    functionName: Botan::TLS::type
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 22
    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: 472
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 472
    functionName: Botan::TLS::extensions
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: Extensions
    signature: Extensions & extensions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 487
    functionName: Botan::TLS::Client_Key_Exchange
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 489
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 489
    functionName: Botan::TLS::pre_master_secret
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 494
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 494
    functionName: Botan::TLS::psk_identity
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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/tls_messages.h:524,1
    - Dst: cert_chain
      Src: /src/botan/src/lib/tls/tls_messages.h:526,1
    - Dst: Botan::TLS::count
      Src: /src/botan/src/lib/tls/tls_messages.h:528,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_messages.h:528,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls_messages.h:530,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls_messages.h:530,1
    - Dst: Certificate_12
      Src: /src/botan/src/lib/tls/tls_messages.h:532,1
    - Dst: Certificate_12
      Src: /src/botan/src/lib/tls/tls_messages.h:534,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:536,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls_messages.h:557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    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: 575
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 575
    functionName: Botan::TLS::Client_Key_Exchange
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached:
    - cert_chain
    - size
    - Certificate_12
    - Botan::TLS::empty
    - has_value
    - Botan::TLS::count
    - Botan::TLS::serialize
    - Botan::TLS::type
    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:
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls_messages.h:557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 557
    functionDepth: 1
    functionLinenumber: 557
    functionLinenumberEnd: 557
    functionName: Botan::TLS::Certificate_Entry::has_certificate
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached:
    - has_value
    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: 564
      start: 564
    functionDepth: 0
    functionLinenumber: 564
    functionLinenumberEnd: 564
    functionName: '& extensions()'
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 566
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 566
    functionName: '& extensions() const'
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Extensions
    signature: Extensions & extensions() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_messages.h:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 582
    functionName: Botan::TLS::count
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 16
    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/tls_messages.h:584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 584
    functionName: Botan::TLS::empty
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 22
    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: 589
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 589
    functionName: Botan::TLS::request_context
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & request_context() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 670
    functionDepth: 0
    functionLinenumber: 670
    functionLinenumberEnd: 672
    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: 676
      start: 676
    functionDepth: 0
    functionLinenumber: 676
    functionLinenumberEnd: 676
    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:700,1
    - Dst: acceptable_cert_types
      Src: /src/botan/src/lib/tls/tls_messages.h:702,1
    - Dst: acceptable_CAs
      Src: /src/botan/src/lib/tls/tls_messages.h:704,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls_messages.h:706,1
    - Dst: Certificate_Request_12
      Src: /src/botan/src/lib/tls/tls_messages.h:708,1
    - Dst: Certificate_Request_12
      Src: /src/botan/src/lib/tls/tls_messages.h:713,1
    - Dst: Botan::TLS::serialize
      Src: /src/botan/src/lib/tls/tls_messages.h:715,1
    - Dst: Certificate_Request_13
      Src: /src/botan/src/lib/tls/tls_messages.h:749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 754
      start: 678
    functionDepth: 0
    functionLinenumber: 678
    functionLinenumberEnd: 754
    functionName: Botan::TLS::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 20
    functionsReached:
    - signature_schemes
    - Certificate_Request_13
    - acceptable_cert_types
    - acceptable_CAs
    - Botan::TLS::serialize
    - Botan::TLS::type
    - Certificate_Request_12
    linkageType: ''
    returnType: void
    signature: void serialize() 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::TLS::extensions
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 8
    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: 746
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 746
    functionName: Botan::TLS::context
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & context() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 758
    functionDepth: 0
    functionLinenumber: 758
    functionLinenumberEnd: 760
    functionName: Botan::TLS::Certificate_Verify
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Certificate_Verify
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 762
    functionDepth: 0
    functionLinenumber: 762
    functionLinenumberEnd: 762
    functionName: Botan::TLS::signature_scheme
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Signature_Scheme
    signature: Signature_Scheme signature_scheme() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 765
    functionName: Botan::TLS::Certificate_Verify
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Certificate_Verify()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 794
    functionName: Botan::TLS::Certificate_Verify_12
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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_Verify_13
      Src: /src/botan/src/lib/tls/tls_messages.h:808,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 824
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 824
    functionName: Botan::TLS::Certificate_Verify_13
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 8
    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: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 844
      start: 831
    functionDepth: 0
    functionLinenumber: 831
    functionLinenumberEnd: 844
    functionName: Botan::TLS::Handshake_Message
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 835
      start: 835
    functionDepth: 0
    functionLinenumber: 835
    functionLinenumberEnd: 835
    functionName: Botan::TLS::type
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: Handshake_Type
    signature: Handshake_Type type() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 846
    functionDepth: 0
    functionLinenumber: 846
    functionLinenumberEnd: 852
    functionName: Botan::TLS::Finished_12
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 855
    functionDepth: 0
    functionLinenumber: 855
    functionLinenumberEnd: 861
    functionName: Botan::TLS::Finished_13
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    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: 869
      start: 867
    functionDepth: 0
    functionLinenumber: 867
    functionLinenumberEnd: 869
    functionName: Botan::TLS::Handshake_Message
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 883
      start: 881
    functionDepth: 0
    functionLinenumber: 881
    functionLinenumberEnd: 883
    functionName: Botan::TLS::Server_Key_Exchange
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 885
      start: 885
    functionDepth: 0
    functionLinenumber: 885
    functionLinenumberEnd: 885
    functionName: Botan::TLS::params
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 896
      start: 896
    functionDepth: 0
    functionLinenumber: 896
    functionLinenumberEnd: 896
    functionName: Botan::TLS::shared_group
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 925
    functionDepth: 0
    functionLinenumber: 925
    functionLinenumberEnd: 927
    functionName: Botan::Server_Hello_Done
    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_Done
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 939
    functionDepth: 0
    functionLinenumber: 939
    functionLinenumberEnd: 941
    functionName: New_Session_Ticket_12
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API New_Session_Ticket_12
  - 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: ticket_lifetime_hint
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::chrono::seconds
    signature: std::chrono::seconds ticket_lifetime_hint() const
  - 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: ticket
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 48
    functionsReached: []
    linkageType: ''
    returnType: Session_Ticket
    signature: Session_Ticket & ticket() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 968
    functionDepth: 0
    functionLinenumber: 968
    functionLinenumberEnd: 970
    functionName: New_Session_Ticket_13
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    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: 981
      start: 981
    functionDepth: 0
    functionLinenumber: 981
    functionLinenumberEnd: 981
    functionName: extensions
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 118
    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: 983
      start: 983
    functionDepth: 0
    functionLinenumber: 983
    functionLinenumberEnd: 983
    functionName: handle
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 42
    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: 985
      start: 985
    functionDepth: 0
    functionLinenumber: 985
    functionLinenumberEnd: 985
    functionName: nonce
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 26
    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: 987
      start: 987
    functionDepth: 0
    functionLinenumber: 987
    functionLinenumberEnd: 987
    functionName: ticket_age_add
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 989
      start: 989
    functionDepth: 0
    functionLinenumber: 989
    functionLinenumberEnd: 989
    functionName: lifetime_hint
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 4
    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: 1019
      start: 1017
    functionDepth: 0
    functionLinenumber: 1017
    functionLinenumberEnd: 1019
    functionName: Change_Cipher_Spec
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_UNSTABLE_API
    signature: class BOTAN_UNSTABLE_API Change_Cipher_Spec
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls_messages.h:1021,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 1021
    functionDepth: 0
    functionLinenumber: 1021
    functionLinenumberEnd: 1021
    functionName: serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 72
    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: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1026
    functionDepth: 0
    functionLinenumber: 1026
    functionLinenumberEnd: 1028
    functionName: Handshake_Message
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.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: 1035
      start: 1030
    functionDepth: 0
    functionLinenumber: 1030
    functionLinenumberEnd: 1035
    functionName: expects_reciprocation
    functionSourceFile: /src/botan/src/lib/tls/tls_messages.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void expects_reciprocation() 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: 0
    functionsReached:
    - TLS_Exception
    - Botan::TLS::to_string
    - static_cast<size_t>
    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::bitmask_for_handshake_type
    - Botan::TLS::handshake_type_to_string
    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
    - Botan::TLS::to_string
    - static_cast<size_t>
    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::bitmask_for_handshake_type
    - Botan::TLS::handshake_type_to_string
    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:
    - handshake_mask_to_string
    - bitmask_for_handshake_type
    - std::ostringstream::str
    - Unexpected_Message
    - 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
    - Botan::TLS::to_string
    - static_cast<size_t>
    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::bitmask_for_handshake_type
    - Botan::TLS::handshake_type_to_string
    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
    - Botan::TLS::to_string
    - static_cast<size_t>
    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::bitmask_for_handshake_type
    - Botan::TLS::handshake_type_to_string
    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:
    - handshake_mask_to_string
    - bitmask_for_handshake_type
    - std::ostringstream::str
    - Unexpected_Message
    - 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:
    - Decoding_Error
    - static_cast<Type>
    - TLS_Exception
    - size
    - std::to_string
    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:
    - type
    - is_fatal
    - static_cast<uint8_t>
    - std::vector<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: 20
    functionsReached:
    - static_cast<size_t>
    - alert_type_to_string
    - std::string
    - std::to_string
    - type
    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:
    - Decoding_Error
    - static_cast<Type>
    - TLS_Exception
    - size
    - std::to_string
    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:
    - type
    - is_fatal
    - static_cast<uint8_t>
    - std::vector<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: 20
    functionsReached:
    - static_cast<size_t>
    - alert_type_to_string
    - std::string
    - std::to_string
    - type
    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:22,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: 24
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 24
    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:32,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:33,1
    - Dst: capacity
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:33,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:34,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:34,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:34,1
    - Dst: erase
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:35,1
    - Dst: front
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:35,1
    - Dst: pop_front
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:36,1
    - Dst: id
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:42,1
    - Dst: random_vec
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:42,1
    - Dst: emplace
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:43,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:45,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:46,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ' session'
    - ' handle'
    argTypes:
    - Session
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 48
    functionName: Botan::TLS::Session_Manager_In_Memory::store
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_memory.cpp
    functionUses: 4
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - emplace
    - std::move
    - id
    - size
    - erase
    - pop_front
    - emplace_back
    - random_vec
    - has_value
    - capacity
    - front
    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:53,1
    - Dst: find
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:54,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:54,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 61
    functionName: Botan::TLS::Session_Manager_In_Memory::retrieve_one
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_memory.cpp
    functionUses: 0
    functionsReached:
    - find
    - end
    - id
    - auto::value
    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:65,1
    - Dst: session::server_info
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:72,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' info'
    - max_sessions_hint
    argTypes:
    - Server_Information
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 78
    functionName: Botan::TLS::Session_Manager_In_Memory::find_some
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_memory.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    - std::vector::emplace_back
    - 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:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 83
    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:86,1
    - Dst: std::erase_if
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:94,1
    - Dst: is_ticket
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:97,1
    - Dst: ticket
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:97,1
    - Dst: erase
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:100,1
    - Dst: id
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:102,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::remove_internal
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:103,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:103,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:103,1
    - Dst: ticket
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:109,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::remove_internal
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:110,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:110,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:110,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:116,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 117
    functionName: Botan::TLS::Session_Manager_In_Memory::remove_internal
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_memory.cpp
    functionUses: 2
    functionsReached:
    - ticket
    - std::erase_if
    - id
    - Botan::TLS::Session_Manager_In_Memory::remove_internal
    - erase
    - Session_Handle
    - auto::value
    - std::visit
    - is_ticket
    - get
    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:122,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:123,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:124,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 129
    functionName: Botan::TLS::Session_Manager_In_Memory::remove_all
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_memory.cpp
    functionUses: 0
    functionsReached:
    - has_value
    - size
    - clear
    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:22,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: 24
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 24
    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:32,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:33,1
    - Dst: capacity
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:33,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:34,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:34,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:34,1
    - Dst: erase
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:35,1
    - Dst: front
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:35,1
    - Dst: pop_front
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:36,1
    - Dst: id
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:42,1
    - Dst: random_vec
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:42,1
    - Dst: emplace
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:43,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:45,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:46,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ' session'
    - ' handle'
    argTypes:
    - Session
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 48
    functionName: Botan::TLS::Session_Manager_In_Memory::store
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_memory.cpp
    functionUses: 4
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - emplace
    - std::move
    - id
    - size
    - erase
    - pop_front
    - emplace_back
    - random_vec
    - has_value
    - capacity
    - front
    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:53,1
    - Dst: find
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:54,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:54,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:55,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 61
    functionName: Botan::TLS::Session_Manager_In_Memory::retrieve_one
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_memory.cpp
    functionUses: 0
    functionsReached:
    - find
    - end
    - id
    - auto::value
    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:65,1
    - Dst: session::server_info
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:72,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' info'
    - max_sessions_hint
    argTypes:
    - Server_Information
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 78
    functionName: Botan::TLS::Session_Manager_In_Memory::find_some
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_memory.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_UNUSED
    - std::vector::emplace_back
    - 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:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 83
    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:86,1
    - Dst: std::erase_if
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:94,1
    - Dst: is_ticket
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:97,1
    - Dst: ticket
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:97,1
    - Dst: erase
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:100,1
    - Dst: id
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:102,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::remove_internal
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:103,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:103,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:103,1
    - Dst: ticket
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:109,1
    - Dst: Botan::TLS::Session_Manager_In_Memory::remove_internal
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:110,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:110,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:110,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:116,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 117
    functionName: Botan::TLS::Session_Manager_In_Memory::remove_internal
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_memory.cpp
    functionUses: 4
    functionsReached:
    - ticket
    - std::erase_if
    - id
    - Botan::TLS::Session_Manager_In_Memory::remove_internal
    - erase
    - Session_Handle
    - auto::value
    - std::visit
    - is_ticket
    - get
    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:122,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:123,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:124,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls_session_manager_memory.cpp:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 129
    functionName: Botan::TLS::Session_Manager_In_Memory::remove_all
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_memory.cpp
    functionUses: 0
    functionsReached:
    - has_value
    - size
    - clear
    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:
    - BOTAN_STATE_CHECK
    - empty
    - std::exchange
    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:
    - BOTAN_STATE_CHECK
    - empty
    - std::exchange
    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: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    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:30,1
    - Dst: Policy::allowed_signature_method
      Src: /src/botan/src/lib/tls/tls_policy.cpp:31,1
    - Dst: algorithm_name
      Src: /src/botan/src/lib/tls/tls_policy.cpp:31,1
    - Dst: Policy::allowed_signature_hash
      Src: /src/botan/src/lib/tls/tls_policy.cpp:32,1
    - Dst: hash_function_name
      Src: /src/botan/src/lib/tls/tls_policy.cpp:32,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_policy.cpp:35,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 40
    functionName: Policy::allowed_signature_schemes
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 6
    functionsReached:
    - hash_function_name
    - std::vector::push_back
    - Policy::allowed_signature_method
    - Policy::allowed_signature_hash
    - Signature_Scheme::all_available_schemes
    - algorithm_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:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 44
    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: 49
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 49
    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: 69
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 69
    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: 77
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 77
    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: 91
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 91
    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: 101
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 101
    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: 108
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 108
    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:111,1
    - Dst: Policy::allowed_signature_methods
      Src: /src/botan/src/lib/tls/tls_policy.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig_method
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 112
    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:115,1
    - Dst: Policy::allowed_signature_hashes
      Src: /src/botan/src/lib/tls/tls_policy.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig_hash
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 116
    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: 120
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 120
    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:124,1
    - Dst: key_exchange_groups
      Src: /src/botan/src/lib/tls/tls_policy.cpp:128,1
    - Dst: is_post_quantum
      Src: /src/botan/src/lib/tls/tls_policy.cpp:132,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls_policy.cpp:132,1
    - Dst: is_post_quantum
      Src: /src/botan/src/lib/tls/tls_policy.cpp:139,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls_policy.cpp:139,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls_policy.cpp:147,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls_policy.cpp:155,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: 161
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 161
    functionName: Policy::choose_key_exchange_group
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 0
    functionsReached:
    - empty
    - value_exists
    - is_post_quantum
    - key_exchange_groups
    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:167,1
    - Dst: is_dh_named_group
      Src: /src/botan/src/lib/tls/tls_policy.cpp:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 174
    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: 244
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 244
    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: 249
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 249
    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: 254
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 254
    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: 258
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 258
    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: 262
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 262
    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: 273
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 273
    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:276,1
    - Dst: key_length
      Src: /src/botan/src/lib/tls/tls_policy.cpp:278,1
    - Dst: Policy::minimum_rsa_bits
      Src: /src/botan/src/lib/tls/tls_policy.cpp:282,1
    - Dst: Policy::minimum_dh_group_size
      Src: /src/botan/src/lib/tls/tls_policy.cpp:284,1
    - Dst: Policy::minimum_ecdh_group_size
      Src: /src/botan/src/lib/tls/tls_policy.cpp:286,1
    - Dst: Policy::minimum_ecdsa_group_size
      Src: /src/botan/src/lib/tls/tls_policy.cpp:288,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls_policy.cpp:293,1
    - Dst: Policy::to_string
      Src: /src/botan/src/lib/tls/tls_policy.cpp:294,1
    - Dst: Policy::to_string
      Src: /src/botan/src/lib/tls/tls_policy.cpp:297,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - ' public_key'
    argTypes:
    - Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 299
    functionName: Policy::check_peer_key_acceptable
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 16
    functionsReached:
    - key_length
    - Policy::minimum_ecdsa_group_size
    - TLS_Exception
    - Policy::minimum_ecdh_group_size
    - Policy::to_string
    - algo_name
    - Policy::minimum_dh_group_size
    - Policy::minimum_rsa_bits
    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: 303
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 303
    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:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 307
    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: 311
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 311
    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: 315
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 315
    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:319,1
    - Dst: Policy::allow_tls12
      Src: /src/botan/src/lib/tls/tls_policy.cpp:325,1
    - Dst: Policy::allow_dtls12
      Src: /src/botan/src/lib/tls/tls_policy.cpp:329,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - version
    argTypes:
    - Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 335
    functionName: Policy::acceptable_protocol_version
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 0
    functionsReached:
    - Policy::allow_dtls12
    - Policy::allow_tls12
    - Policy::allow_tls13
    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:339,1
    - Dst: Invalid_State
      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:345,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:352,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - datagram
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 337
    functionDepth: 2
    functionLinenumber: 337
    functionLinenumberEnd: 354
    functionName: Policy::latest_supported_version
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 0
    functionsReached:
    - Invalid_State
    - Policy::acceptable_protocol_version
    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:357,1
    - Dst: Policy::allowed_ciphers
      Src: /src/botan/src/lib/tls/tls_policy.cpp:357,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:357,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls_policy.cpp:358,1
    - Dst: Policy::allowed_macs
      Src: /src/botan/src/lib/tls/tls_policy.cpp:358,1
    - Dst: mac_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:358,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' ciphersuite'
    argTypes:
    - Ciphersuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 356
    functionDepth: 1
    functionLinenumber: 356
    functionLinenumberEnd: 359
    functionName: Policy::acceptable_ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 0
    functionsReached:
    - mac_algo
    - cipher_algo
    - Policy::allowed_macs
    - Policy::allowed_ciphers
    - value_exists
    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: 363
      start: 361
    functionDepth: 0
    functionLinenumber: 361
    functionLinenumberEnd: 363
    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: 367
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 367
    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: 371
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 371
    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: 379
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 379
    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: 387
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 387
    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: 395
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 395
    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: 399
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 399
    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: 403
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 403
    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: 407
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 407
    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: 411
      start: 409
    functionDepth: 0
    functionLinenumber: 409
    functionLinenumberEnd: 411
    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: 415
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 415
    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: 419
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 419
    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: 423
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 423
    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: 427
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 427
    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: 431
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 431
    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: 435
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 435
    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: 439
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 439
    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:442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 443
    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: 447
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 447
    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: 451
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 451
    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: 455
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 455
    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: 459
      start: 457
    functionDepth: 0
    functionLinenumber: 457
    functionLinenumberEnd: 459
    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: 463
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 463
    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: 468
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 468
    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: 472
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 472
    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: 477
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 477
    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:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 481
    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: 491
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 491
    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:494,1
    - Dst: kex_method
      Src: /src/botan/src/lib/tls/tls_policy.cpp:494,1
    - Dst: kex_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:496,1
    - Dst: kex_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:499,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:505,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:505,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:507,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:510,1
    - Dst: cipher_keylen
      Src: /src/botan/src/lib/tls/tls_policy.cpp:516,1
    - Dst: cipher_keylen
      Src: /src/botan/src/lib/tls/tls_policy.cpp:516,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:520,1
    - Dst: cipher_keylen
      Src: /src/botan/src/lib/tls/tls_policy.cpp:520,1
    - Dst: auth_method
      Src: /src/botan/src/lib/tls/tls_policy.cpp:525,1
    - Dst: auth_method
      Src: /src/botan/src/lib/tls/tls_policy.cpp:525,1
    - Dst: sig_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:527,1
    - Dst: sig_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:530,1
    - Dst: mac_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:536,1
    - Dst: mac_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:536,1
    - Dst: mac_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:538,1
    - Dst: mac_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:541,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 46
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - Ciphersuite
    - Ciphersuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 548
    functionName: operator()(const Ciphersuite& a, const Ciphersuite& b) const
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 0
    functionsReached:
    - cipher_keylen
    - mac_algo
    - cipher_algo
    - kex_algo
    - kex_method
    - sig_algo
    - auth_method
    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: 491
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 491
    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:494,1
    - Dst: kex_method
      Src: /src/botan/src/lib/tls/tls_policy.cpp:494,1
    - Dst: kex_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:496,1
    - Dst: kex_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:499,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:505,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:505,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:507,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:510,1
    - Dst: cipher_keylen
      Src: /src/botan/src/lib/tls/tls_policy.cpp:516,1
    - Dst: cipher_keylen
      Src: /src/botan/src/lib/tls/tls_policy.cpp:516,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:520,1
    - Dst: cipher_keylen
      Src: /src/botan/src/lib/tls/tls_policy.cpp:520,1
    - Dst: auth_method
      Src: /src/botan/src/lib/tls/tls_policy.cpp:525,1
    - Dst: auth_method
      Src: /src/botan/src/lib/tls/tls_policy.cpp:525,1
    - Dst: sig_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:527,1
    - Dst: sig_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:530,1
    - Dst: mac_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:536,1
    - Dst: mac_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:536,1
    - Dst: mac_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:538,1
    - Dst: mac_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:541,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 46
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - Ciphersuite
    - Ciphersuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 548
    functionName: operator()(const Ciphersuite& a, const Ciphersuite& b) const
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 0
    functionsReached:
    - cipher_keylen
    - mac_algo
    - cipher_algo
    - kex_algo
    - kex_method
    - sig_algo
    - auth_method
    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:557,1
    - Dst: Policy::allowed_macs
      Src: /src/botan/src/lib/tls/tls_policy.cpp:558,1
    - Dst: Policy::allowed_key_exchange_methods
      Src: /src/botan/src/lib/tls/tls_policy.cpp:559,1
    - Dst: Policy::allowed_signature_methods
      Src: /src/botan/src/lib/tls/tls_policy.cpp:560,1
    - Dst: Ciphersuite::all_known_ciphersuites
      Src: /src/botan/src/lib/tls/tls_policy.cpp:564,1
    - Dst: valid
      Src: /src/botan/src/lib/tls/tls_policy.cpp:566,1
    - Dst: usable_in_version
      Src: /src/botan/src/lib/tls/tls_policy.cpp:571,1
    - Dst: Policy::acceptable_ciphersuite
      Src: /src/botan/src/lib/tls/tls_policy.cpp:576,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls_policy.cpp:580,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:580,1
    - Dst: Protocol_Version::is_pre_tls_13
      Src: /src/botan/src/lib/tls/tls_policy.cpp:586,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls_policy.cpp:587,1
    - Dst: kex_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:587,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls_policy.cpp:591,1
    - Dst: mac_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:591,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls_policy.cpp:595,1
    - Dst: sig_algo
      Src: /src/botan/src/lib/tls/tls_policy.cpp:595,1
    - Dst: auth_method
      Src: /src/botan/src/lib/tls/tls_policy.cpp:597,1
    - Dst: psk_ciphersuite
      Src: /src/botan/src/lib/tls/tls_policy.cpp:597,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_policy.cpp:604,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls_policy.cpp:607,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls_policy.cpp:608,1
    - Dst: std::sort
      Src: /src/botan/src/lib/tls/tls_policy.cpp:612,1
    - Dst: std::vector::begin
      Src: /src/botan/src/lib/tls/tls_policy.cpp:612,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/tls_policy.cpp:612,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls_policy.cpp:615,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_policy.cpp:615,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_policy.cpp:617,1
    - Dst: ciphersuite_code
      Src: /src/botan/src/lib/tls/tls_policy.cpp:617,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 36
    argCount: 1
    argNames:
    - version
    argTypes:
    - Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 556
    functionDepth: 2
    functionLinenumber: 556
    functionLinenumberEnd: 620
    functionName: Policy::ciphersuite_list
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 0
    functionsReached:
    - psk_ciphersuite
    - Protocol_Version::is_pre_tls_13
    - ciphersuite_code
    - Policy::allowed_signature_methods
    - std::sort
    - std::vector::end
    - Policy::allowed_ciphers
    - std::vector::reserve
    - mac_algo
    - std::vector::begin
    - Invalid_State
    - kex_algo
    - Policy::allowed_macs
    - auth_method
    - usable_in_version
    - std::vector::push_back
    - Ciphersuite::all_known_ciphersuites
    - std::vector::empty
    - valid
    - std::vector::size
    - value_exists
    - Policy::acceptable_ciphersuite
    - cipher_algo
    - sig_algo
    - Policy::allowed_key_exchange_methods
    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:626,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_policy.cpp:628,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: 633
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 633
    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:639,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_policy.cpp:640,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls_policy.cpp:640,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_policy.cpp:646,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_policy.cpp:648,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: 653
      start: 635
    functionDepth: 0
    functionLinenumber: 635
    functionLinenumberEnd: 653
    functionName: print_vec
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 0
    functionsReached:
    - std::vector::size
    - std::vector::push_back
    - to_string
    - auto::value
    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:657,1
    - Dst: certificate_type_to_string
      Src: /src/botan/src/lib/tls/tls_policy.cpp:658,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_policy.cpp:659,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: 664
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 664
    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: 668
      start: 666
    functionDepth: 0
    functionLinenumber: 666
    functionLinenumberEnd: 668
    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:626,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_policy.cpp:628,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: 633
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 633
    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:639,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls_policy.cpp:640,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls_policy.cpp:640,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_policy.cpp:646,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls_policy.cpp:648,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: 653
      start: 635
    functionDepth: 0
    functionLinenumber: 635
    functionLinenumberEnd: 653
    functionName: print_vec
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 0
    functionsReached:
    - std::vector::size
    - std::vector::push_back
    - to_string
    - auto::value
    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:657,1
    - Dst: certificate_type_to_string
      Src: /src/botan/src/lib/tls/tls_policy.cpp:658,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_policy.cpp:659,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: 664
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 664
    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: 668
      start: 666
    functionDepth: 0
    functionLinenumber: 666
    functionLinenumberEnd: 668
    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:673,1
    - Dst: Policy::allow_tls12
      Src: /src/botan/src/lib/tls/tls_policy.cpp:673,1
    - Dst: print_bool
      Src: /src/botan/src/lib/tls/tls_policy.cpp:674,1
    - Dst: Policy::allow_tls13
      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_dtls12
      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_ssl_key_log_file
      Src: /src/botan/src/lib/tls/tls_policy.cpp:676,1
    - Dst: print_vec
      Src: /src/botan/src/lib/tls/tls_policy.cpp:677,1
    - Dst: Policy::allowed_ciphers
      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_macs
      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_signature_hashes
      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_methods
      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_key_exchange_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: key_exchange_groups
      Src: /src/botan/src/lib/tls/tls_policy.cpp:682,1
    - Dst: key_exchange_groups_to_offer
      Src: /src/botan/src/lib/tls/tls_policy.cpp:683,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/tls_policy.cpp:684,1
    - Dst: print_vec
      Src: /src/botan/src/lib/tls/tls_policy.cpp:685,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls_policy.cpp:685,1
    - Dst: print_vec
      Src: /src/botan/src/lib/tls/tls_policy.cpp:687,1
    - Dst: print_bool
      Src: /src/botan/src/lib/tls/tls_policy.cpp:689,1
    - Dst: Policy::allow_insecure_renegotiation
      Src: /src/botan/src/lib/tls/tls_policy.cpp:689,1
    - Dst: print_bool
      Src: /src/botan/src/lib/tls/tls_policy.cpp:690,1
    - Dst: Policy::include_time_in_hello_random
      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::allow_server_initiated_renegotiation
      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::hide_unknown_users
      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::server_uses_own_ciphersuite_preferences
      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::negotiate_encrypt_then_mac
      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::support_cert_status_message
      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::tls_13_middlebox_compatibility_mode
      Src: /src/botan/src/lib/tls/tls_policy.cpp:696,1
    - Dst: print_vec
      Src: /src/botan/src/lib/tls/tls_policy.cpp:697,1
    - Dst: Policy::accepted_client_certificate_types
      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_server_certificate_types
      Src: /src/botan/src/lib/tls/tls_policy.cpp:698,1
    - Dst: print_bool
      Src: /src/botan/src/lib/tls/tls_policy.cpp:699,1
    - Dst: Policy::hash_hello_random
      Src: /src/botan/src/lib/tls/tls_policy.cpp:699,1
    - Dst: Policy::record_size_limit
      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::maximum_session_tickets_per_client_hello
      Src: /src/botan/src/lib/tls/tls_policy.cpp:703,1
    - Dst: Policy::session_ticket_lifetime
      Src: /src/botan/src/lib/tls/tls_policy.cpp:704,1
    - Dst: print_bool
      Src: /src/botan/src/lib/tls/tls_policy.cpp:705,1
    - Dst: Policy::reuse_session_tickets
      Src: /src/botan/src/lib/tls/tls_policy.cpp:705,1
    - Dst: Policy::new_session_tickets_upon_handshake_success
      Src: /src/botan/src/lib/tls/tls_policy.cpp:706,1
    - Dst: Policy::minimum_dh_group_size
      Src: /src/botan/src/lib/tls/tls_policy.cpp:707,1
    - Dst: Policy::minimum_ecdh_group_size
      Src: /src/botan/src/lib/tls/tls_policy.cpp:708,1
    - Dst: Policy::minimum_rsa_bits
      Src: /src/botan/src/lib/tls/tls_policy.cpp:709,1
    - Dst: Policy::minimum_signature_strength
      Src: /src/botan/src/lib/tls/tls_policy.cpp:710,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 38
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - std::ostream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 672
    functionDepth: 1
    functionLinenumber: 672
    functionLinenumberEnd: 711
    functionName: Policy::print
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 0
    functionsReached:
    - auto::empty
    - Policy::allowed_signature_methods
    - print_vec
    - Policy::allow_dtls12
    - Policy::maximum_session_tickets_per_client_hello
    - Policy::minimum_dh_group_size
    - key_exchange_groups_to_offer
    - Policy::allowed_ciphers
    - key_exchange_groups
    - Policy::allow_tls12
    - Policy::reuse_session_tickets
    - Policy::allow_server_initiated_renegotiation
    - Policy::include_time_in_hello_random
    - Policy::allowed_signature_hashes
    - Policy::allowed_macs
    - Policy::tls_13_middlebox_compatibility_mode
    - Policy::new_session_tickets_upon_handshake_success
    - Policy::session_ticket_lifetime
    - Policy::server_uses_own_ciphersuite_preferences
    - Policy::minimum_rsa_bits
    - Policy::allow_ssl_key_log_file
    - Policy::hide_unknown_users
    - Policy::minimum_ecdh_group_size
    - Policy::negotiate_encrypt_then_mac
    - Policy::hash_hello_random
    - print_bool
    - Policy::accepted_server_certificate_types
    - Policy::accepted_client_certificate_types
    - Policy::minimum_signature_strength
    - std::string
    - Policy::allow_insecure_renegotiation
    - Policy::support_cert_status_message
    - Policy::allowed_key_exchange_methods
    - Policy::record_size_limit
    - Policy::allow_tls13
    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:715,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/lib/tls/tls_policy.cpp:716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 713
    functionDepth: 2
    functionLinenumber: 713
    functionLinenumberEnd: 717
    functionName: Policy::to_string
    functionSourceFile: /src/botan/src/lib/tls/tls_policy.cpp
    functionUses: 3
    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: 721
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 721
    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: 725
      start: 723
    functionDepth: 0
    functionLinenumber: 723
    functionLinenumberEnd: 725
    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: 729
      start: 727
    functionDepth: 0
    functionLinenumber: 727
    functionLinenumberEnd: 729
    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: 733
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 733
    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: 118
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 118
    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: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    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: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    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: 125
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 125
    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:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 127
    functionName: Botan::TLS::type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 24
    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: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    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: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    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: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: Botan::TLS::empty
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 22
    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: 118
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 118
    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: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    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: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    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: 125
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 125
    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:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 127
    functionName: Botan::TLS::type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 24
    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: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    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: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    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: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: Botan::TLS::empty
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 22
    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: 148
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: Botan::Renegotiation_Extension
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.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/tls_extensions.h:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 150
    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: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 152
    functionName: Botan::Renegotiation_Extension
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.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: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: Botan::Renegotiation_Extension
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.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: 158
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 158
    functionName: Botan::renegotiation_info
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.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: 162
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 162
    functionName: Botan::empty
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    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: 118
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 118
    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: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    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: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    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: 125
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 125
    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:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 127
    functionName: Botan::TLS::type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 24
    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: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    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: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    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: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: Botan::TLS::empty
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 22
    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: 118
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 118
    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: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    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: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    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: 125
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 125
    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:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 127
    functionName: Botan::TLS::type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 24
    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: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    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: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    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: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: Botan::TLS::empty
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 22
    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: 148
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 148
    functionName: Botan::Renegotiation_Extension
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.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/tls_extensions.h:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 150
    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: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 152
    functionName: Botan::Renegotiation_Extension
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.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: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: Botan::Renegotiation_Extension
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.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: 158
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 158
    functionName: Botan::renegotiation_info
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.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: 162
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 162
    functionName: Botan::empty
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    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: 173
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 173
    functionName: 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:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 175
    functionName: type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 123
    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: 177
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 177
    functionName: protocols
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 8
    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:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 185
    functionName: 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: 191
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 191
    functionName: 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: empty
      Src: /src/botan/src/lib/tls/tls_extensions.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: empty
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 667
    functionsReached:
    - 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:224,1
    - Dst: Certificate_Type_Base
      Src: /src/botan/src/lib/tls/tls_extensions.h:228,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.h:240,1
    - Dst: front
      Src: /src/botan/src/lib/tls/tls_extensions.h:241,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 247
    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:240,1
    - Dst: front
      Src: /src/botan/src/lib/tls/tls_extensions.h:241,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 242
    functionName: empty
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 667
    functionsReached:
    - size
    - front
    linkageType: ''
    returnType: bool
    signature: bool empty() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_type
      Src: /src/botan/src/lib/tls/tls_extensions.h:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 261
    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: 258
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 258
    functionName: static_type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 20
    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:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 260
    functionName: type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 125
    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:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 275
    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: 272
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 272
    functionName: static_type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 22
    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:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 274
    functionDepth: 1
    functionLinenumber: 274
    functionLinenumberEnd: 274
    functionName: type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 127
    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: 282
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 282
    functionName: Session_Ticket_Extension
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 2
    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/tls_extensions.h:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 284
    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: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 289
    functionName: contents
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 14
    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: 294
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 294
    functionName: Session_Ticket_Extension
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Session_Ticket_Extension()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls_extensions.h:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - session_ticket
    argTypes:
    - Session_Ticket
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 299
    functionName: Session_Ticket_Extension
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 2
    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/tls_extensions.h:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 306
    functionName: serialize
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 72
    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: 308
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 308
    functionName: empty
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 667
    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: 319
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 319
    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:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 321
    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:337,1
    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: empty
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 668
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_type
      Src: /src/botan/src/lib/tls/tls_extensions.h:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 373
    functionName: Supported_Point_Formats
    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 Supported_Point_Formats
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 357
    functionName: static_type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 26
    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:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 359
    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: 1
    argCount: 1
    argNames:
    - prefer_compressed
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 363
    functionName: Supported_Point_Formats
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    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: 367
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 367
    functionName: empty
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 668
    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: 369
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 369
    functionName: prefers_compressed
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    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: 380
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 380
    functionName: Signature_Algorithms
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 6
    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:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 382
    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: 384
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 384
    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:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 388
    functionName: empty
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 669
    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:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - schemes
    argTypes:
    - std::vector<Signature_Scheme>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 390
    functionName: Signature_Algorithms
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 6
    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: 413
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 413
    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:415,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 415
    functionDepth: 1
    functionLinenumber: 415
    functionLinenumberEnd: 415
    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: 417
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 417
    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:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 421
    functionName: empty
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 670
    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:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - schemes
    argTypes:
    - std::vector<Signature_Scheme>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 423
    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: 436
      start: 434
    functionDepth: 0
    functionLinenumber: 434
    functionLinenumberEnd: 436
    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:438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 438
    functionName: type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 134
    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: 440
      start: 440
    functionDepth: 0
    functionLinenumber: 440
    functionLinenumberEnd: 440
    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:444,1
    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: empty
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 671
    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: 446
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 446
    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: 448
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 448
    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: 461
      start: 459
    functionDepth: 0
    functionLinenumber: 459
    functionLinenumberEnd: 461
    functionName: Extended_Master_Secret
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    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/tls_extensions.h:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 463
    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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 467
    functionName: empty
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 671
    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: 469
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 469
    functionName: Extended_Master_Secret
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    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: 479
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 479
    functionName: Encrypt_then_MAC
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    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/tls_extensions.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: 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: 485
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 485
    functionName: empty
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 671
    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: 487
      start: 487
    functionDepth: 0
    functionLinenumber: 487
    functionLinenumberEnd: 487
    functionName: Encrypt_then_MAC
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Encrypt_then_MAC()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 497
    functionDepth: 0
    functionLinenumber: 497
    functionLinenumberEnd: 499
    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:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 501
    functionName: type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 137
    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: 505
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 505
    functionName: empty
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 671
    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:537,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 519
    functionDepth: 1
    functionLinenumber: 519
    functionLinenumberEnd: 537
    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:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 539
    functionName: type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 139
    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:543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 543
    functionDepth: 0
    functionLinenumber: 543
    functionLinenumberEnd: 543
    functionName: empty
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 672
    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:547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - version
    argTypes:
    - Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 547
    functionDepth: 0
    functionLinenumber: 547
    functionLinenumberEnd: 547
    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: 553
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 553
    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: 568
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 568
    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:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 570
    functionDepth: 1
    functionLinenumber: 570
    functionLinenumberEnd: 570
    functionName: type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 140
    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: 576
      start: 576
    functionDepth: 0
    functionLinenumber: 576
    functionLinenumberEnd: 576
    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: 580
      start: 580
    functionDepth: 0
    functionLinenumber: 580
    functionLinenumberEnd: 580
    functionName: empty
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 672
    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: 594
      start: 592
    functionDepth: 0
    functionLinenumber: 592
    functionLinenumberEnd: 594
    functionName: Extension
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 10
    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/tls_extensions.h:596,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 596
    functionName: type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 141
    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:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 600
    functionName: empty
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 673
    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: 602
      start: 602
    functionDepth: 0
    functionLinenumber: 602
    functionLinenumberEnd: 602
    functionName: get_cookie
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & get_cookie() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_type
      Src: /src/botan/src/lib/tls/tls_extensions.h:617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 604
    functionDepth: 1
    functionLinenumber: 604
    functionLinenumberEnd: 617
    functionName: Cookie
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 2
    functionsReached:
    - static_type
    linkageType: ''
    returnType: void
    signature: void Cookie(TLS_Data_Reader& reader, uint16_t extension_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_type
      Src: /src/botan/src/lib/tls/tls_extensions.h:619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 619
    functionDepth: 1
    functionLinenumber: 619
    functionLinenumberEnd: 619
    functionName: type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 143
    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:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 623
    functionName: empty
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 674
    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: 625
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 625
    functionName: modes
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 8
    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/tls_extensions.h:627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - modes
    argTypes:
    - std::vector<PSK_Key_Exchange_Mode>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 627
    functionName: PSK_Key_Exchange_Modes
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.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: 640
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 640
    functionName: Certificate_Authorities
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.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/tls_extensions.h:642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 642
    functionDepth: 1
    functionLinenumber: 642
    functionLinenumberEnd: 642
    functionName: type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 144
    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: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: empty
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 675
    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: 648
      start: 648
    functionDepth: 0
    functionLinenumber: 648
    functionLinenumberEnd: 648
    functionName: distinguished_names
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.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: 662
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 662
    functionName: Extension
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 10
    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/tls_extensions.h:664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 664
    functionDepth: 1
    functionLinenumber: 664
    functionLinenumberEnd: 664
    functionName: type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 145
    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: 762
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 762
    functionName: Key_Share
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    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/tls_extensions.h:764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 764
    functionDepth: 1
    functionLinenumber: 764
    functionLinenumberEnd: 764
    functionName: type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 146
    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:856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 832
    functionDepth: 1
    functionLinenumber: 832
    functionLinenumberEnd: 856
    functionName: ~Key_Share() override
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.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/tls_extensions.h:858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 858
    functionDepth: 1
    functionLinenumber: 858
    functionLinenumberEnd: 858
    functionName: type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 148
    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: 864
      start: 864
    functionDepth: 0
    functionLinenumber: 864
    functionLinenumberEnd: 864
    functionName: max_early_data_size
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    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: 874
      start: 873
    functionDepth: 0
    functionLinenumber: 873
    functionLinenumberEnd: 874
    functionName: EarlyDataIndication
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EarlyDataIndication(std::optional<uint32_t> max_early_data_size
      = std::nullopt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Unknown_Extension
      Src: /src/botan/src/lib/tls/tls_extensions.h:887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 885
    functionDepth: 1
    functionLinenumber: 885
    functionLinenumberEnd: 902
    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: 891
      start: 891
    functionDepth: 0
    functionLinenumber: 891
    functionLinenumberEnd: 891
    functionName: value
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 342
    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: 893
      start: 893
    functionDepth: 0
    functionLinenumber: 893
    functionLinenumberEnd: 893
    functionName: empty
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 675
    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: 895
      start: 895
    functionDepth: 0
    functionLinenumber: 895
    functionLinenumberEnd: 895
    functionName: type
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 148
    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: 897
      start: 897
    functionDepth: 0
    functionLinenumber: 897
    functionLinenumberEnd: 897
    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:915,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls_extensions.h:915,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Extension::static_type
      Src: /src/botan/src/lib/tls/tls_extensions.h:915,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls_extensions.h:920,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls_extensions.h:923,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls_extensions.h:925,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls_extensions.h:927,1
    - Dst: add
      Src: /src/botan/src/lib/tls/tls_extensions.h:931,1
    - Dst: std::unique_ptr<Extension>
      Src: /src/botan/src/lib/tls/tls_extensions.h:931,1
    - Dst: contains_other_than
      Src: /src/botan/src/lib/tls/tls_extensions.h:953,1
    - Dst: take
      Src: /src/botan/src/lib/tls/tls_extensions.h:964,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Extension::static_type
      Src: /src/botan/src/lib/tls/tls_extensions.h:964,1
    - Dst: std::unique_ptr::reset
      Src: /src/botan/src/lib/tls/tls_extensions.h:966,1
    - Dst: dynamic_cast<T*>
      Src: /src/botan/src/lib/tls/tls_extensions.h:966,1
    - Dst: auto::get
      Src: /src/botan/src/lib/tls/tls_extensions.h:966,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_extensions.h:967,1
    - Dst: auto::release
      Src: /src/botan/src/lib/tls/tls_extensions.h:968,1
    - Dst: take
      Src: /src/botan/src/lib/tls/tls_extensions.h:987,1
    - Dst: deserialize
      Src: /src/botan/src/lib/tls/tls_extensions.h:997,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 907
    functionDepth: 1
    functionLinenumber: 907
    functionLinenumberEnd: 1002
    functionName: Extensions
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::unique_ptr<Extension>
    - size
    - contains_other_than
    - auto::get
    - std::unique_ptr::reset
    - add
    - empty
    - take
    - get
    - auto::release
    - deserialize
    - dynamic_cast<T*>
    - Botan_Tests::TLS_Handshake_Test::Test_Extension::static_type
    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: 911
      start: 911
    functionDepth: 0
    functionLinenumber: 911
    functionLinenumberEnd: 911
    functionName: all
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 52
    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:915,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls_extensions.h:915,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Extension::static_type
      Src: /src/botan/src/lib/tls/tls_extensions.h:915,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 914
    functionDepth: 0
    functionLinenumber: 914
    functionLinenumberEnd: 916
    functionName: get
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 303
    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:920,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 919
    functionDepth: 0
    functionLinenumber: 919
    functionLinenumberEnd: 921
    functionName: has
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 20
    functionsReached:
    - get
    linkageType: ''
    returnType: bool
    signature: bool has() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/botan/src/lib/tls/tls_extensions.h:923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Extension_Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 923
      start: 923
    functionDepth: 0
    functionLinenumber: 923
    functionLinenumberEnd: 923
    functionName: has
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 20
    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:925,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 925
    functionDepth: 0
    functionLinenumber: 925
    functionLinenumberEnd: 925
    functionName: size
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 1681
    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:927,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 927
    functionDepth: 0
    functionLinenumber: 927
    functionLinenumberEnd: 927
    functionName: empty
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 677
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add
      Src: /src/botan/src/lib/tls/tls_extensions.h:931,1
    - Dst: std::unique_ptr<Extension>
      Src: /src/botan/src/lib/tls/tls_extensions.h:931,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - extn
    argTypes:
    - Extension*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 931
    functionDepth: 1
    functionLinenumber: 931
    functionLinenumberEnd: 931
    functionName: add
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 173
    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:953,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' allowed_extensions'
    argTypes:
    - std::set<Extension_Code>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 952
    functionDepth: 0
    functionLinenumber: 952
    functionLinenumberEnd: 954
    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:964,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Extension::static_type
      Src: /src/botan/src/lib/tls/tls_extensions.h:964,1
    - Dst: std::unique_ptr::reset
      Src: /src/botan/src/lib/tls/tls_extensions.h:966,1
    - Dst: dynamic_cast<T*>
      Src: /src/botan/src/lib/tls/tls_extensions.h:966,1
    - Dst: auto::get
      Src: /src/botan/src/lib/tls/tls_extensions.h:966,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls_extensions.h:967,1
    - Dst: auto::release
      Src: /src/botan/src/lib/tls/tls_extensions.h:968,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 961
    functionDepth: 1
    functionLinenumber: 961
    functionLinenumberEnd: 972
    functionName: take
    functionSourceFile: /src/botan/src/lib/tls/tls_extensions.h
    functionUses: 28
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - auto::get
    - std::unique_ptr::reset
    - take
    - auto::release
    - dynamic_cast<T*>
    - Botan_Tests::TLS_Handshake_Test::Test_Extension::static_type
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) take()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/botan/src/lib/tls/tls_extensions.h:987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Extension_Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 987
    functionDepth: 2
    functionLinenumber: 987
    functionLinenumberEnd: 987
    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: 989
      start: 989
    functionDepth: 0
    functionLinenumber: 989
    functionLinenumberEnd: 989
    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: 990
      start: 990
    functionDepth: 0
    functionLinenumber: 990
    functionLinenumberEnd: 990
    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: 992
      start: 992
    functionDepth: 0
    functionLinenumber: 992
    functionLinenumberEnd: 992
    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:997,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: 998
      start: 996
    functionDepth: 0
    functionLinenumber: 996
    functionLinenumberEnd: 998
    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:
    - Dst: Botan::TLS::Server
      Src: /src/botan/src/lib/tls/tls_server.h:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 128
    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: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    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: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    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:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 128
    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: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    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: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: random_vec
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:39,1
    - Dst: hash_hello_random
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:41,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:42,1
    - Dst: auto::update
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:43,1
    - Dst: auto::final
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:44,1
    - Dst: include_time_in_hello_random
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:50,1
    - Dst: allow_tls12
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:50,1
    - Dst: allow_dtls12
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:50,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:51,1
    - Dst: std::chrono::system_clock::to_time_t
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:51,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:51,1
    - Dst: store_be
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:53,1
    - Dst: auto::data
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:53,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - ' rng'
    - ' cb'
    - ' policy'
    argTypes:
    - RandomNumberGenerator
    - Callbacks
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 57
    functionName: Botan::TLS::make_hello_random
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - auto::data
    - hash_hello_random
    - static_cast<uint32_t>
    - allow_dtls12
    - std::chrono::system_clock::to_time_t
    - store_be
    - Botan::HashFunction::create_or_throw
    - random_vec
    - tls_current_timestamp
    - allow_tls12
    - include_time_in_hello_random
    - auto::final
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> make_hello_random(RandomNumberGenerator& rng,
      Callbacks& cb, const Policy& policy)
  - 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::TLS::Client_Hello_Internal::Client_Hello_Internal
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Client_Hello_Internal()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:69,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:70,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:75,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:76,1
    - Dst: Protocol_Version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:78,1
    - Dst: TLS_Data_Reader::get_fixed
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:79,1
    - Dst: Session_ID
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:80,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:80,1
    - Dst: is_datagram_protocol
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:82,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:83,1
    - Dst: auto::update
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:84,1
    - Dst: TLS_Data_Reader::get_data_read_so_far
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:84,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:86,1
    - Dst: auto::update
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:88,1
    - Dst: TLS_Data_Reader::get_remaining
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:88,1
    - Dst: auto::final_stdvec
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:89,1
    - Dst: TLS_Data_Reader::get_range_vector
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:92,1
    - Dst: TLS_Data_Reader::get_range_vector
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:93,1
    - Dst: deserialize
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 96
    functionName: Botan::TLS::Client_Hello_Internal::Client_Hello_Internal
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - TLS_Data_Reader::get_data_read_so_far
    - Decoding_Error
    - TLS_Data_Reader::get_remaining
    - auto::final_stdvec
    - TLS_Data_Reader::get_byte
    - Session_ID
    - size
    - TLS_Data_Reader::get_fixed
    - TLS_Data_Reader::get_range
    - is_datagram_protocol
    - Botan::HashFunction::create_or_throw
    - Protocol_Version
    - deserialize
    - TLS_Data_Reader::get_range_vector
    linkageType: ''
    returnType: void
    signature: void 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:123,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:124,1
    - Dst: is_datagram_protocol
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 133
    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 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: Botan::TLS::Client_Hello_Internal::legacy_version
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.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: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: '& session_id() const'
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    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: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    functionName: '& random() const'
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    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: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: '& ciphersuites() const'
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    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: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: '& comp_methods() const'
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    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: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: '& hello_cookie() const'
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    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: 147
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 147
    functionName: '& hello_cookie_input_bits() const'
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    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: 149
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 149
    functionName: '& extensions() const'
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    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: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: '& extensions()'
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Extensions
    signature: Extensions & extensions()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 166
    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: 169
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 169
    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:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 171
    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:176,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::unique_ptr<Client_Hello_Internal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 178
    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: 182
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 182
    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: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::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: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: '& 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: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: '& 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:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 198
    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:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 202
    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:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 206
    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: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: '& 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: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:213,1
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:213,1
    - Dst: cookie
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' hello_verify'
    argTypes:
    - Hello_Verify_Request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 216
    functionName: Botan::TLS::Client_Hello_12::update_hello_cookie
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - legacy_version
    - cookie
    linkageType: ''
    returnType: void
    signature: void Client_Hello_12::update_hello_cookie(const Hello_Verify_Request&
      hello_verify)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:223,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:225,1
    - Dst: Botan::TLS::Client_Hello::legacy_version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:225,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:226,1
    - Dst: Botan::TLS::Client_Hello::legacy_version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:226,1
    - Dst: random
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:227,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:229,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:229,1
    - Dst: Botan::TLS::Client_Hello::legacy_version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:231,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:232,1
    - Dst: hello_cookie
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:232,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:235,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:235,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:236,1
    - Dst: comp_methods
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:236,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 247
    functionName: Botan::TLS::Client_Hello::serialize
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - extensions
    - random
    - session_id
    - hello_cookie
    - ciphersuites
    - append_tls_length_value
    - comp_methods
    - Botan::TLS::Client_Hello::legacy_version
    - std::vector::reserve
    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:250,1
    - Dst: hello_cookie_input_bits
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:250,1
    - Dst: hello_cookie_input_bits
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 253
    functionName: Botan::TLS::Client_Hello::cookie_input_data
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - hello_cookie_input_bits
    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:259,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:259,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:259,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ciphersuite
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 261
    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:264,1
    - Dst: Signature_Algorithms*::supported_schemes
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 268
    functionName: Botan::TLS::Client_Hello::signature_schemes
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - extensions
    - Signature_Algorithms*::supported_schemes
    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:275,1
    - Dst: Signature_Algorithms_Cert*::supported_schemes
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:276,1
    - Dst: Botan::TLS::Client_Hello::signature_schemes
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:278,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 270
    functionDepth: 2
    functionLinenumber: 270
    functionLinenumberEnd: 280
    functionName: Botan::TLS::Client_Hello::certificate_signature_schemes
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Client_Hello::signature_schemes
    - Signature_Algorithms_Cert*::supported_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:283,1
    - Dst: Supported_Groups*::ec_groups
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 287
    functionName: Botan::TLS::Client_Hello::supported_ecc_curves
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - extensions
    - Supported_Groups*::ec_groups
    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:290,1
    - Dst: Supported_Groups*::dh_groups
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:291,1
    - Dst: std::vector<Group_Params>
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 294
    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>
    - Supported_Groups*::dh_groups
    - extensions
    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:297,1
    - Dst: Supported_Point_Formats*::prefers_compressed
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 301
    functionName: Botan::TLS::Client_Hello_12::prefers_compressed_ec_points
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - Supported_Point_Formats*::prefers_compressed
    - extensions
    linkageType: ''
    returnType: bool
    signature: bool Client_Hello_12::prefers_compressed_ec_points() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:304,1
    - Dst: Server_Name_Indicator*::host_name
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 308
    functionName: Botan::TLS::Client_Hello::sni_hostname
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - extensions
    - Server_Name_Indicator*::host_name
    linkageType: ''
    returnType: std::string
    signature: std::string Client_Hello::sni_hostname() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 312
    functionName: Botan::TLS::Client_Hello_12::secure_renegotiation
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.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/msg_client_hello.cpp:315,1
    - Dst: Renegotiation_Extension*::renegotiation_info
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:316,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 319
    functionName: Botan::TLS::Client_Hello_12::renegotiation_info
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - Renegotiation_Extension*::renegotiation_info
    - extensions
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Client_Hello_12::renegotiation_info() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:322,1
    - Dst: Supported_Versions*::versions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 326
    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:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 330
    functionName: Botan::TLS::Client_Hello_12::supports_session_ticket
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.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/msg_client_hello.cpp:333,1
    - Dst: auto*::contents
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 337
    functionName: Botan::TLS::Client_Hello_12::session_ticket
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.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/msg_client_hello.cpp:344,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:344,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:345,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:346,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:346,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:347,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 339
    functionDepth: 2
    functionLinenumber: 339
    functionLinenumberEnd: 351
    functionName: Botan::TLS::Client_Hello_12::session_handle
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - auto::empty
    - session_id
    - Session_Handle
    - empty
    - Botan::TLS::Client_Hello_12::session_ticket
    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/msg_client_hello.cpp:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 355
    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:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 359
    functionName: Botan::TLS::Client_Hello_12::supports_extended_master_secret
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.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/msg_client_hello.cpp:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 363
    functionName: Botan::TLS::Client_Hello_12::supports_cert_status_message
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.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/msg_client_hello.cpp:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 367
    functionName: Botan::TLS::Client_Hello_12::supports_encrypt_then_mac
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - extensions
    linkageType: ''
    returnType: bool
    signature: bool Client_Hello_12::supports_encrypt_then_mac() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 371
    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:374,1
    - Dst: auto*::protocols
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 378
    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:381,1
    - Dst: SRTP_Protection_Profiles*::profiles
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 385
    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:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 389
    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: send
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' io'
    argTypes:
    - Handshake_IO
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 396
    functionName: Botan::TLS::Hello_Request::Hello_Request
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.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/msg_client_hello.cpp:402,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:403,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 405
    functionName: Botan::TLS::Hello_Request::Hello_Request
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - empty
    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/msg_client_hello.cpp:411,1
    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: Botan::TLS::Hello_Request::serialize
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Hello_Request::serialize() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: key_exchange_groups
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:420,1
    - Dst: std::copy_if
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:422,1
    - Dst: std::vector::begin
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:422,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:422,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:422,1
    - Dst: is_post_quantum
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:423,1
    - Dst: std::make_unique<Supported_Groups>
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:426,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:426,1
    - Dst: auto::ec_groups
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:428,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:430,1
    - Dst: use_ecc_point_compression
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:430,1
    - Dst: Supported_Point_Formats::Supported_Point_Formats
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:430,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:433,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:433,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' policy'
    argTypes:
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 414
    functionDepth: 2
    functionLinenumber: 414
    functionLinenumberEnd: 434
    functionName: Botan::TLS::Client_Hello_12::add_tls12_supported_groups_extensions
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - std::move
    - is_post_quantum
    - extensions
    - Supported_Point_Formats::Supported_Point_Formats
    - std::copy_if
    - std::back_inserter
    - std::vector::end
    - std::make_unique<Supported_Groups>
    - auto::ec_groups
    - key_exchange_groups
    - use_ecc_point_compression
    linkageType: ''
    returnType: void
    signature: void Client_Hello_12::add_tls12_supported_groups_extensions(const Policy&
      policy)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:436,1
    - Dst: offered_suite
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:439,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:439,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:440,1
    - Dst: Renegotiation_Extension*::renegotiation_info
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:441,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:442,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:446,1
    - Dst: Renegotiation_Extension::Renegotiation_Extension
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:446,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::unique_ptr<Client_Hello_Internal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 449
    functionName: Botan::TLS::Client_Hello_12::Client_Hello_12
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - static_cast<uint16_t>
    - extensions
    - TLS_Exception
    - Renegotiation_Extension*::renegotiation_info
    - offered_suite
    - Renegotiation_Extension::Renegotiation_Extension
    linkageType: ''
    returnType: void
    signature: void Client_Hello_12::Client_Hello_12(std::unique_ptr<Client_Hello_Internal>
      data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:455,1
    - Dst: string_to_ipv4
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:459,1
    - Dst: std::string_view::find
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:464,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - hostname
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 469
    functionName: Botan::TLS::hostname_acceptable_for_sni
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::find
    - string_to_ipv4
    - std::string_view::empty
    linkageType: ''
    returnType: bool
    signature: bool hostname_acceptable_for_sni(std::string_view hostname)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:455,1
    - Dst: string_to_ipv4
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:459,1
    - Dst: std::string_view::find
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:464,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - hostname
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 469
    functionName: Botan::TLS::hostname_acceptable_for_sni
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::find
    - string_to_ipv4
    - std::string_view::empty
    linkageType: ''
    returnType: bool
    signature: bool hostname_acceptable_for_sni(std::string_view hostname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Client_Hello_Internal>
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 476
    functionName: Botan::TLS::Client_Hello_12::Client_Hello_12
    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::Client_Hello_12(const std::vector<uint8_t>& buf)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: protocol_version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:489,1
    - Dst: make_hello_random
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:490,1
    - Dst: ciphersuite_list
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:491,1
    - Dst: protocol_version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:491,1
    - Dst: acceptable_protocol_version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:493,1
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:493,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:494,1
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:494,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:507,1
    - Dst: Extended_Master_Secret::Extended_Master_Secret
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:507,1
    - Dst: negotiate_encrypt_then_mac
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:509,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:510,1
    - Dst: Encrypt_then_MAC::Encrypt_then_MAC
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:510,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:513,1
    - Dst: Session_Ticket_Extension::Session_Ticket_Extension
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:513,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:515,1
    - Dst: Renegotiation_Extension::Renegotiation_Extension
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:515,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:517,1
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:517,1
    - Dst: Supported_Versions::Supported_Versions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:517,1
    - Dst: hostname_acceptable_for_sni
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:519,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:519,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:520,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:520,1
    - Dst: Server_Name_Indicator::Server_Name_Indicator
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:520,1
    - Dst: support_cert_status_message
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:523,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:524,1
    - Dst: Certificate_Status_Request::Certificate_Status_Request
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:524,1
    - Dst: Botan::TLS::Client_Hello_12::add_tls12_supported_groups_extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:527,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:529,1
    - Dst: acceptable_signature_schemes
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:529,1
    - Dst: Signature_Algorithms::Signature_Algorithms
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:529,1
    - Dst: acceptable_certificate_signature_schemes
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:530,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:535,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:535,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:535,1
    - Dst: Signature_Algorithms_Cert::Signature_Algorithms_Cert
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:535,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:538,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:538,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:539,1
    - Dst: Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:539,1
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:542,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:543,1
    - Dst: srtp_profiles
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:543,1
    - Dst: SRTP_Protection_Profiles::SRTP_Protection_Profiles
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:543,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:548,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:548,1
    - Dst: type
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:548,1
    - Dst: update
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:550,1
    - Dst: send
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:550,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: 551
      start: 481
    functionDepth: 3
    functionLinenumber: 481
    functionLinenumberEnd: 551
    functionName: Botan::TLS::Client_Hello_12::Client_Hello_12
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - tls_modify_extensions
    - Signature_Algorithms_Cert::Signature_Algorithms_Cert
    - Signature_Algorithms::Signature_Algorithms
    - ciphersuite_list
    - legacy_version
    - hostname
    - Renegotiation_Extension::Renegotiation_Extension
    - negotiate_encrypt_then_mac
    - Encrypt_then_MAC::Encrypt_then_MAC
    - acceptable_protocol_version
    - extensions
    - send
    - Internal_Error
    - srtp_profiles
    - protocol_version
    - Session_Ticket_Extension::Session_Ticket_Extension
    - support_cert_status_message
    - auto::value
    - Supported_Versions::Supported_Versions
    - type
    - Certificate_Status_Request::Certificate_Status_Request
    - acceptable_certificate_signature_schemes
    - Server_Name_Indicator::Server_Name_Indicator
    - std::move
    - update
    - make_hello_random
    - Botan::TLS::Client_Hello_12::add_tls12_supported_groups_extensions
    - hostname_acceptable_for_sni
    - empty
    - Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
    - SRTP_Protection_Profiles::SRTP_Protection_Profiles
    - acceptable_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/msg_client_hello.cpp:564,1
    - Dst: make_hello_random
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:565,1
    - Dst: handle::id
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:572,1
    - Dst: Session_ID
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:572,1
    - Dst: make_hello_random
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:572,1
    - Dst: ciphersuite_list
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:573,1
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:573,1
    - Dst: acceptable_protocol_version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:575,1
    - Dst: session::version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:575,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:576,1
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:576,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:580,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:580,1
    - Dst: session::ciphersuite_code
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:580,1
    - Dst: m_suites::push_back
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:581,1
    - Dst: session::ciphersuite_code
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:581,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:591,1
    - Dst: Extended_Master_Secret::Extended_Master_Secret
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:591,1
    - Dst: session::supports_encrypt_then_mac
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:593,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:594,1
    - Dst: Encrypt_then_MAC::Encrypt_then_MAC
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:594,1
    - Dst: handle::is_ticket
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:597,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:598,1
    - Dst: handle::ticket
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:598,1
    - Dst: Session_Ticket_Extension::Session_Ticket_Extension
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:598,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:601,1
    - Dst: Renegotiation_Extension::Renegotiation_Extension
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:601,1
    - Dst: session::server_info
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:603,1
    - Dst: hostname_acceptable_for_sni
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:605,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:606,1
    - Dst: Server_Name_Indicator::Server_Name_Indicator
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:606,1
    - Dst: support_cert_status_message
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:609,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:610,1
    - Dst: Certificate_Status_Request::Certificate_Status_Request
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:610,1
    - Dst: Botan::TLS::Client_Hello_12::add_tls12_supported_groups_extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:613,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:615,1
    - Dst: acceptable_signature_schemes
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:615,1
    - Dst: Signature_Algorithms::Signature_Algorithms
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:615,1
    - Dst: acceptable_certificate_signature_schemes
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:616,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:621,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:621,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:621,1
    - Dst: Signature_Algorithms_Cert::Signature_Algorithms_Cert
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:621,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:624,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:624,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:625,1
    - Dst: Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:625,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:629,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:629,1
    - Dst: type
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:629,1
    - Dst: update
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:631,1
    - Dst: send
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:631,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: 632
      start: 556
    functionDepth: 3
    functionLinenumber: 556
    functionLinenumberEnd: 632
    functionName: Botan::TLS::Client_Hello_12::Client_Hello_12
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - handle::ticket
    - Session_ID
    - tls_modify_extensions
    - session::supports_encrypt_then_mac
    - Signature_Algorithms_Cert::Signature_Algorithms_Cert
    - handle::is_ticket
    - Signature_Algorithms::Signature_Algorithms
    - ciphersuite_list
    - legacy_version
    - Renegotiation_Extension::Renegotiation_Extension
    - Encrypt_then_MAC::Encrypt_then_MAC
    - handle::id
    - acceptable_protocol_version
    - session::ciphersuite_code
    - extensions
    - send
    - session::server_info
    - Internal_Error
    - Session_Ticket_Extension::Session_Ticket_Extension
    - support_cert_status_message
    - auto::value
    - ciphersuites
    - m_suites::push_back
    - type
    - Certificate_Status_Request::Certificate_Status_Request
    - acceptable_certificate_signature_schemes
    - value_exists
    - Server_Name_Indicator::Server_Name_Indicator
    - std::move
    - update
    - make_hello_random
    - Botan::TLS::Client_Hello_12::add_tls12_supported_groups_extensions
    - hostname_acceptable_for_sni
    - empty
    - Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
    - acceptable_signature_schemes
    - session::version
    - 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 Session_with_Handle&
      session,\n                                 const std::vector<std::string>& next_protocols)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:636,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:637,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:646,1
    - Dst: has
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:646,1
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:651,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:652,1
    - Dst: comp_methods
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:660,1
    - Dst: comp_methods
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:660,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:661,1
    - Dst: has
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:669,1
    - Dst: has
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:670,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:671,1
    - Dst: all
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:679,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:680,1
    - Dst: has
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:698,1
    - Dst: has
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:699,1
    - Dst: has
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:699,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:700,1
    - Dst: has
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:705,1
    - Dst: has
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:705,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:706,1
    - Dst: has
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:710,1
    - Dst: get
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:711,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:712,1
    - Dst: auto*::groups
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:713,1
    - Dst: get
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:714,1
    - Dst: std::find
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:726,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:726,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:726,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:727,1
    - Dst: std::distance
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:731,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:731,1
    - Dst: static_cast<decltype(support_offset)>
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:737,1
    - Dst: found_in_supported_groups
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:745,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:746,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 40
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::unique_ptr<Client_Hello_Internal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 636
    functionDepth: 1
    functionLinenumber: 636
    functionLinenumberEnd: 756
    functionName: Botan::TLS::Client_Hello_13::Client_Hello_13
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - has
    - std::move
    - std::distance
    - found_in_supported_groups
    - extensions
    - all
    - TLS_Exception
    - auto::end
    - std::find
    - BOTAN_ASSERT_NONNULL
    - auto*::groups
    - static_cast<decltype(support_offset)>
    - get
    - legacy_version
    - auto::begin
    - comp_methods
    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/msg_client_hello.cpp:774,1
    - Dst: ciphersuite_list
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:775,1
    - Dst: allow_tls12
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:777,1
    - Dst: ciphersuite_list
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:779,1
    - Dst: m_suites::insert
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:780,1
    - Dst: m_suites::end
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:780,1
    - Dst: auto::cbegin
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:780,1
    - Dst: auto::cend
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:780,1
    - Dst: tls_13_middlebox_compatibility_mode
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:783,1
    - Dst: Session_ID
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:791,1
    - Dst: make_hello_random
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:791,1
    - Dst: hostname_acceptable_for_sni
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:795,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:796,1
    - Dst: Server_Name_Indicator::Server_Name_Indicator
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:796,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:799,1
    - Dst: key_exchange_groups
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:799,1
    - Dst: Supported_Groups::Supported_Groups
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:799,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:801,1
    - Dst: Key_Share::Key_Share
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:801,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:803,1
    - Dst: Supported_Versions::Supported_Versions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:803,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:805,1
    - Dst: acceptable_signature_schemes
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:805,1
    - Dst: Signature_Algorithms::Signature_Algorithms
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:805,1
    - Dst: acceptable_certificate_signature_schemes
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:806,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:810,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:810,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:810,1
    - Dst: Signature_Algorithms_Cert::Signature_Algorithms_Cert
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:810,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:816,1
    - Dst: PSK_Key_Exchange_Modes::PSK_Key_Exchange_Modes
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:816,1
    - Dst: support_cert_status_message
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:818,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:819,1
    - Dst: Certificate_Status_Request::Certificate_Status_Request
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:819,1
    - Dst: record_size_limit
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:825,1
    - Dst: allow_tls12
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:825,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:826,1
    - Dst: record_size_limit
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:826,1
    - Dst: Record_Size_Limit::Record_Size_Limit
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:826,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:829,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:830,1
    - Dst: Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:830,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:837,1
    - Dst: accepted_client_certificate_types
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:837,1
    - Dst: Client_Certificate_Type::Client_Certificate_Type
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:837,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:838,1
    - Dst: accepted_server_certificate_types
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:838,1
    - Dst: Server_Certificate_Type::Server_Certificate_Type
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:838,1
    - Dst: allow_tls12
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:840,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:841,1
    - Dst: Renegotiation_Extension::Renegotiation_Extension
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:841,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:842,1
    - Dst: Session_Ticket_Extension::Session_Ticket_Extension
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:842,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:845,1
    - Dst: Extended_Master_Secret::Extended_Master_Secret
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:845,1
    - Dst: negotiate_encrypt_then_mac
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:847,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:848,1
    - Dst: Encrypt_then_MAC::Encrypt_then_MAC
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:848,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:851,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:852,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:853,1
    - Dst: use_ecc_point_compression
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:853,1
    - Dst: Supported_Point_Formats::Supported_Point_Formats
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:853,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:857,1
    - Dst: std::vector<ExternalPSK>::empty
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:857,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:858,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:858,1
    - Dst: PSK::PSK
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:858,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:862,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:862,1
    - Dst: type
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:862,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:864,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:868,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:869,1
    - Dst: Botan::TLS::Client_Hello_13::calculate_psk_binders
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:872,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: 874
      start: 761
    functionDepth: 2
    functionLinenumber: 761
    functionLinenumberEnd: 874
    functionName: Botan::TLS::Client_Hello_13::Client_Hello_13
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - accepted_client_certificate_types
    - record_size_limit
    - Session_ID
    - Record_Size_Limit::Record_Size_Limit
    - tls_modify_extensions
    - accepted_server_certificate_types
    - Signature_Algorithms_Cert::Signature_Algorithms_Cert
    - Signature_Algorithms::Signature_Algorithms
    - ciphersuite_list
    - key_exchange_groups
    - allow_tls12
    - Renegotiation_Extension::Renegotiation_Extension
    - negotiate_encrypt_then_mac
    - Encrypt_then_MAC::Encrypt_then_MAC
    - Client_Certificate_Type::Client_Certificate_Type
    - m_suites::insert
    - extensions
    - TLS_Exception
    - Supported_Point_Formats::Supported_Point_Formats
    - PSK::PSK
    - Botan::TLS::Client_Hello_13::calculate_psk_binders
    - Session_Ticket_Extension::Session_Ticket_Extension
    - auto::cend
    - std::vector<ExternalPSK>::empty
    - auto::cbegin
    - auto::value
    - support_cert_status_message
    - Supported_Versions::Supported_Versions
    - Server_Certificate_Type::Server_Certificate_Type
    - type
    - Certificate_Status_Request::Certificate_Status_Request
    - use_ecc_point_compression
    - acceptable_certificate_signature_schemes
    - Server_Name_Indicator::Server_Name_Indicator
    - m_suites::end
    - Key_Share::Key_Share
    - std::move
    - tls_13_middlebox_compatibility_mode
    - PSK_Key_Exchange_Modes::PSK_Key_Exchange_Modes
    - make_hello_random
    - Supported_Groups::Supported_Groups
    - hostname_acceptable_for_sni
    - empty
    - Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
    - has_value
    - acceptable_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/msg_client_hello.cpp:877,1
    - Dst: auto::version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:878,1
    - Dst: auto::is_pre_tls_13
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:880,1
    - Dst: Client_Hello_12
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:881,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:881,1
    - Dst: Botan::TLS::Client_Hello_13::Client_Hello_13
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:883,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:883,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 876
    functionDepth: 2
    functionLinenumber: 876
    functionLinenumberEnd: 885
    functionName: Botan::TLS::Client_Hello_13::parse
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 22
    functionsReached:
    - std::move
    - Client_Hello_12
    - auto::is_pre_tls_13
    - Botan::TLS::Client_Hello_13::Client_Hello_13
    - std::make_unique<Client_Hello_Internal>
    - auto::version
    linkageType: ''
    returnType: std::variant<Client_Hello_13, Client_Hello_12>
    signature: std::variant<Client_Hello_13, Client_Hello_12> Client_Hello_13::parse(const
      std::vector<uint8_t>& buf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:891,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:891,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:892,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:892,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:894,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:895,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:897,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:898,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:909,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:910,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:910,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:911,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:911,1
    - Dst: Cookie::Cookie
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:911,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:918,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:918,1
    - Dst: type
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:918,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:920,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:923,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:923,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:924,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:924,1
    - Dst: auto*::filter
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:930,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:930,1
    - Dst: Botan::TLS::Client_Hello_13::calculate_psk_binders
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:935,1
    - Dst: clone
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:935,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: 937
      start: 887
    functionDepth: 2
    functionLinenumber: 887
    functionLinenumberEnd: 937
    functionName: Botan::TLS::Client_Hello_13::retry
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Cookie::Cookie
    - extensions
    - clone
    - auto::has_value
    - tls_modify_extensions
    - auto::value
    - Botan::TLS::Ciphersuite::by_id
    - Botan::TLS::Client_Hello_13::calculate_psk_binders
    - type
    - BOTAN_STATE_CHECK
    - ciphersuite
    - auto*::filter
    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/msg_client_hello.cpp:945,1
    - Dst: m_data::session_id
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:945,1
    - Dst: random
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:945,1
    - Dst: m_data::random
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:945,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:946,1
    - Dst: m_data::ciphersuites
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:946,1
    - Dst: comp_methods
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:947,1
    - Dst: m_data::comp_methods
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:947,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:948,1
    - Dst: extension_types
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:951,1
    - Dst: extension_types
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:952,1
    - Dst: auto::contains
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:956,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:957,1
    - Dst: auto*::is_implemented
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:960,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Extension::static_type
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:967,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:979,1
    - Dst: auto::contains
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:985,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:986,1
    - Dst: auto*::is_implemented
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:989,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Extension::static_type
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:996,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:1008,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:1015,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:1016,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 27
    argCount: 1
    argNames:
    - ' new_ch'
    argTypes:
    - Client_Hello_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1033
      start: 939
    functionDepth: 1
    functionLinenumber: 939
    functionLinenumberEnd: 1033
    functionName: Botan::TLS::Client_Hello_13::validate_updates
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - m_data::random
    - auto::contains
    - extensions
    - m_data::ciphersuites
    - TLS_Exception
    - random
    - session_id
    - m_data::comp_methods
    - ciphersuites
    - auto*::is_implemented
    - m_data::session_id
    - Botan_Tests::TLS_Handshake_Test::Test_Extension::static_type
    - comp_methods
    - extension_types
    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/msg_client_hello.cpp:1036,1
    - Dst: auto*::empty
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:1037,1
    - Dst: Botan::TLS::Handshake_Layer::prepare_message
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:1050,1
    - Dst: auto*::calculate_binders
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:1051,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - transcript_hash
    argTypes:
    - Transcript_Hash_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1035
    functionDepth: 1
    functionLinenumber: 1035
    functionLinenumberEnd: 1052
    functionName: Botan::TLS::Client_Hello_13::calculate_psk_binders
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Handshake_Layer::prepare_message
    - auto*::calculate_binders
    - extensions
    - auto*::empty
    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/msg_client_hello.cpp:1060,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:1061,1
    - Dst: auto*::versions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:1065,1
    - Dst: known_version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:1070,1
    - Dst: acceptable_protocol_version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:1070,1
    - Dst: std::optional::has_value
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:1074,1
    - Dst: std::optional
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:1074,1
    - Dst: max
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:1074,1
    - Dst: std::optional::value
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:1074,1
    - Dst: std::optional
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:1074,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ' policy'
    argTypes:
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1054
    functionDepth: 1
    functionLinenumber: 1054
    functionLinenumberEnd: 1078
    functionName: Botan::TLS::Client_Hello_13::highest_supported_version
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - std::optional::value
    - extensions
    - std::optional
    - BOTAN_ASSERT_NONNULL
    - max
    - std::optional::has_value
    - known_version
    - auto*::versions
    - acceptable_protocol_version
    linkageType: ''
    returnType: std::optional<Protocol_Version>
    signature: std::optional<Protocol_Version> Client_Hello_13::highest_supported_version(const
      Policy& policy) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: random_vec
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:39,1
    - Dst: hash_hello_random
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:41,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:42,1
    - Dst: auto::update
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:43,1
    - Dst: auto::final
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:44,1
    - Dst: include_time_in_hello_random
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:50,1
    - Dst: allow_tls12
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:50,1
    - Dst: allow_dtls12
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:50,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:51,1
    - Dst: std::chrono::system_clock::to_time_t
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:51,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:51,1
    - Dst: store_be
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:53,1
    - Dst: auto::data
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:53,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - ' rng'
    - ' cb'
    - ' policy'
    argTypes:
    - RandomNumberGenerator
    - Callbacks
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 57
    functionName: Botan::TLS::make_hello_random
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - auto::data
    - hash_hello_random
    - static_cast<uint32_t>
    - allow_dtls12
    - std::chrono::system_clock::to_time_t
    - store_be
    - Botan::HashFunction::create_or_throw
    - random_vec
    - tls_current_timestamp
    - allow_tls12
    - include_time_in_hello_random
    - auto::final
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> make_hello_random(RandomNumberGenerator& rng,
      Callbacks& cb, const Policy& policy)
  - 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::TLS::Client_Hello_Internal::Client_Hello_Internal
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Client_Hello_Internal()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:69,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:70,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:75,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:76,1
    - Dst: Protocol_Version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:78,1
    - Dst: TLS_Data_Reader::get_fixed
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:79,1
    - Dst: Session_ID
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:80,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:80,1
    - Dst: is_datagram_protocol
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:82,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:83,1
    - Dst: auto::update
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:84,1
    - Dst: TLS_Data_Reader::get_data_read_so_far
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:84,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:86,1
    - Dst: auto::update
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:88,1
    - Dst: TLS_Data_Reader::get_remaining
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:88,1
    - Dst: auto::final_stdvec
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:89,1
    - Dst: TLS_Data_Reader::get_range_vector
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:92,1
    - Dst: TLS_Data_Reader::get_range_vector
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:93,1
    - Dst: deserialize
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 96
    functionName: Botan::TLS::Client_Hello_Internal::Client_Hello_Internal
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - TLS_Data_Reader::get_data_read_so_far
    - Decoding_Error
    - TLS_Data_Reader::get_remaining
    - auto::final_stdvec
    - TLS_Data_Reader::get_byte
    - Session_ID
    - size
    - TLS_Data_Reader::get_fixed
    - TLS_Data_Reader::get_range
    - is_datagram_protocol
    - Botan::HashFunction::create_or_throw
    - Protocol_Version
    - deserialize
    - TLS_Data_Reader::get_range_vector
    linkageType: ''
    returnType: void
    signature: void 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:123,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:124,1
    - Dst: is_datagram_protocol
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 133
    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 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: Botan::TLS::Client_Hello_Internal::legacy_version
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.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: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: '& session_id() const'
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    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: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    functionName: '& random() const'
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    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: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    functionName: '& ciphersuites() const'
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    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: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: '& comp_methods() const'
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    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: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: '& hello_cookie() const'
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    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: 147
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 147
    functionName: '& hello_cookie_input_bits() const'
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    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: 149
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 149
    functionName: '& extensions() const'
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    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: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: '& extensions()'
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Extensions
    signature: Extensions & extensions()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 166
    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: 169
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 169
    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:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 171
    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:176,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::unique_ptr<Client_Hello_Internal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 178
    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: 182
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 182
    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: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::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: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: '& 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: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: '& 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:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 198
    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:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 202
    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:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 206
    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: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: '& 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: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:213,1
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:213,1
    - Dst: cookie
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' hello_verify'
    argTypes:
    - Hello_Verify_Request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 216
    functionName: Botan::TLS::Client_Hello_12::update_hello_cookie
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - legacy_version
    - cookie
    linkageType: ''
    returnType: void
    signature: void Client_Hello_12::update_hello_cookie(const Hello_Verify_Request&
      hello_verify)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:223,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:225,1
    - Dst: Botan::TLS::Client_Hello::legacy_version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:225,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:226,1
    - Dst: Botan::TLS::Client_Hello::legacy_version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:226,1
    - Dst: random
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:227,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:229,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:229,1
    - Dst: Botan::TLS::Client_Hello::legacy_version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:231,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:232,1
    - Dst: hello_cookie
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:232,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:235,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:235,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:236,1
    - Dst: comp_methods
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:236,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 247
    functionName: Botan::TLS::Client_Hello::serialize
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - extensions
    - random
    - session_id
    - hello_cookie
    - ciphersuites
    - append_tls_length_value
    - comp_methods
    - Botan::TLS::Client_Hello::legacy_version
    - std::vector::reserve
    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:250,1
    - Dst: hello_cookie_input_bits
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:250,1
    - Dst: hello_cookie_input_bits
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 253
    functionName: Botan::TLS::Client_Hello::cookie_input_data
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - hello_cookie_input_bits
    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:259,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:259,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:259,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ciphersuite
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 261
    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:264,1
    - Dst: Signature_Algorithms*::supported_schemes
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 268
    functionName: Botan::TLS::Client_Hello::signature_schemes
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 1
    functionsReached:
    - extensions
    - Signature_Algorithms*::supported_schemes
    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:275,1
    - Dst: Signature_Algorithms_Cert*::supported_schemes
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:276,1
    - Dst: Botan::TLS::Client_Hello::signature_schemes
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:278,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 270
    functionDepth: 2
    functionLinenumber: 270
    functionLinenumberEnd: 280
    functionName: Botan::TLS::Client_Hello::certificate_signature_schemes
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Client_Hello::signature_schemes
    - Signature_Algorithms_Cert*::supported_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:283,1
    - Dst: Supported_Groups*::ec_groups
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 287
    functionName: Botan::TLS::Client_Hello::supported_ecc_curves
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - extensions
    - Supported_Groups*::ec_groups
    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:290,1
    - Dst: Supported_Groups*::dh_groups
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:291,1
    - Dst: std::vector<Group_Params>
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 294
    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>
    - Supported_Groups*::dh_groups
    - extensions
    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:297,1
    - Dst: Supported_Point_Formats*::prefers_compressed
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 296
    functionDepth: 1
    functionLinenumber: 296
    functionLinenumberEnd: 301
    functionName: Botan::TLS::Client_Hello_12::prefers_compressed_ec_points
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - Supported_Point_Formats*::prefers_compressed
    - extensions
    linkageType: ''
    returnType: bool
    signature: bool Client_Hello_12::prefers_compressed_ec_points() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:304,1
    - Dst: Server_Name_Indicator*::host_name
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:305,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 308
    functionName: Botan::TLS::Client_Hello::sni_hostname
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - extensions
    - Server_Name_Indicator*::host_name
    linkageType: ''
    returnType: std::string
    signature: std::string Client_Hello::sni_hostname() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 312
    functionName: Botan::TLS::Client_Hello_12::secure_renegotiation
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.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/msg_client_hello.cpp:315,1
    - Dst: Renegotiation_Extension*::renegotiation_info
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:316,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 319
    functionName: Botan::TLS::Client_Hello_12::renegotiation_info
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - Renegotiation_Extension*::renegotiation_info
    - extensions
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Client_Hello_12::renegotiation_info() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:322,1
    - Dst: Supported_Versions*::versions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 326
    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:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 330
    functionName: Botan::TLS::Client_Hello_12::supports_session_ticket
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.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/msg_client_hello.cpp:333,1
    - Dst: auto*::contents
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 337
    functionName: Botan::TLS::Client_Hello_12::session_ticket
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.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/msg_client_hello.cpp:344,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:344,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:345,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:346,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:346,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:347,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 339
    functionDepth: 2
    functionLinenumber: 339
    functionLinenumberEnd: 351
    functionName: Botan::TLS::Client_Hello_12::session_handle
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - auto::empty
    - session_id
    - Session_Handle
    - empty
    - Botan::TLS::Client_Hello_12::session_ticket
    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/msg_client_hello.cpp:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 355
    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:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 359
    functionName: Botan::TLS::Client_Hello_12::supports_extended_master_secret
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.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/msg_client_hello.cpp:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 363
    functionName: Botan::TLS::Client_Hello_12::supports_cert_status_message
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.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/msg_client_hello.cpp:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 367
    functionName: Botan::TLS::Client_Hello_12::supports_encrypt_then_mac
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - extensions
    linkageType: ''
    returnType: bool
    signature: bool Client_Hello_12::supports_encrypt_then_mac() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 371
    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:374,1
    - Dst: auto*::protocols
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 378
    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:381,1
    - Dst: SRTP_Protection_Profiles*::profiles
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:382,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 385
    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:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 389
    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: send
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' io'
    argTypes:
    - Handshake_IO
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 396
    functionName: Botan::TLS::Hello_Request::Hello_Request
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.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/msg_client_hello.cpp:402,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:403,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 405
    functionName: Botan::TLS::Hello_Request::Hello_Request
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - empty
    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/msg_client_hello.cpp:411,1
    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: Botan::TLS::Hello_Request::serialize
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Hello_Request::serialize() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: key_exchange_groups
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:420,1
    - Dst: std::copy_if
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:422,1
    - Dst: std::vector::begin
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:422,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:422,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:422,1
    - Dst: is_post_quantum
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:423,1
    - Dst: std::make_unique<Supported_Groups>
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:426,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:426,1
    - Dst: auto::ec_groups
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:428,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:430,1
    - Dst: use_ecc_point_compression
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:430,1
    - Dst: Supported_Point_Formats::Supported_Point_Formats
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:430,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:433,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:433,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - ' policy'
    argTypes:
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 414
    functionDepth: 2
    functionLinenumber: 414
    functionLinenumberEnd: 434
    functionName: Botan::TLS::Client_Hello_12::add_tls12_supported_groups_extensions
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 2
    functionsReached:
    - std::vector::begin
    - std::move
    - is_post_quantum
    - extensions
    - Supported_Point_Formats::Supported_Point_Formats
    - std::copy_if
    - std::back_inserter
    - std::vector::end
    - std::make_unique<Supported_Groups>
    - auto::ec_groups
    - key_exchange_groups
    - use_ecc_point_compression
    linkageType: ''
    returnType: void
    signature: void Client_Hello_12::add_tls12_supported_groups_extensions(const Policy&
      policy)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:436,1
    - Dst: offered_suite
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:439,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:439,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:440,1
    - Dst: Renegotiation_Extension*::renegotiation_info
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:441,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:442,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:446,1
    - Dst: Renegotiation_Extension::Renegotiation_Extension
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:446,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::unique_ptr<Client_Hello_Internal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 449
    functionName: Botan::TLS::Client_Hello_12::Client_Hello_12
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - static_cast<uint16_t>
    - extensions
    - TLS_Exception
    - Renegotiation_Extension*::renegotiation_info
    - offered_suite
    - Renegotiation_Extension::Renegotiation_Extension
    linkageType: ''
    returnType: void
    signature: void Client_Hello_12::Client_Hello_12(std::unique_ptr<Client_Hello_Internal>
      data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:455,1
    - Dst: string_to_ipv4
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:459,1
    - Dst: std::string_view::find
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:464,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - hostname
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 469
    functionName: Botan::TLS::hostname_acceptable_for_sni
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::find
    - string_to_ipv4
    - std::string_view::empty
    linkageType: ''
    returnType: bool
    signature: bool hostname_acceptable_for_sni(std::string_view hostname)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:455,1
    - Dst: string_to_ipv4
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:459,1
    - Dst: std::string_view::find
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:464,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - hostname
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 469
    functionName: Botan::TLS::hostname_acceptable_for_sni
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::find
    - string_to_ipv4
    - std::string_view::empty
    linkageType: ''
    returnType: bool
    signature: bool hostname_acceptable_for_sni(std::string_view hostname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Client_Hello_Internal>
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 476
    functionName: Botan::TLS::Client_Hello_12::Client_Hello_12
    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::Client_Hello_12(const std::vector<uint8_t>& buf)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: protocol_version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:489,1
    - Dst: make_hello_random
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:490,1
    - Dst: ciphersuite_list
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:491,1
    - Dst: protocol_version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:491,1
    - Dst: acceptable_protocol_version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:493,1
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:493,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:494,1
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:494,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:507,1
    - Dst: Extended_Master_Secret::Extended_Master_Secret
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:507,1
    - Dst: negotiate_encrypt_then_mac
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:509,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:510,1
    - Dst: Encrypt_then_MAC::Encrypt_then_MAC
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:510,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:513,1
    - Dst: Session_Ticket_Extension::Session_Ticket_Extension
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:513,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:515,1
    - Dst: Renegotiation_Extension::Renegotiation_Extension
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:515,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:517,1
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:517,1
    - Dst: Supported_Versions::Supported_Versions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:517,1
    - Dst: hostname_acceptable_for_sni
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:519,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:519,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:520,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:520,1
    - Dst: Server_Name_Indicator::Server_Name_Indicator
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:520,1
    - Dst: support_cert_status_message
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:523,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:524,1
    - Dst: Certificate_Status_Request::Certificate_Status_Request
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:524,1
    - Dst: Botan::TLS::Client_Hello_12::add_tls12_supported_groups_extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:527,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:529,1
    - Dst: acceptable_signature_schemes
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:529,1
    - Dst: Signature_Algorithms::Signature_Algorithms
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:529,1
    - Dst: acceptable_certificate_signature_schemes
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:530,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:535,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:535,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:535,1
    - Dst: Signature_Algorithms_Cert::Signature_Algorithms_Cert
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:535,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:538,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:538,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:539,1
    - Dst: Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:539,1
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:542,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:543,1
    - Dst: srtp_profiles
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:543,1
    - Dst: SRTP_Protection_Profiles::SRTP_Protection_Profiles
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:543,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:548,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:548,1
    - Dst: type
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:548,1
    - Dst: update
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:550,1
    - Dst: send
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:550,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: 551
      start: 481
    functionDepth: 3
    functionLinenumber: 481
    functionLinenumberEnd: 551
    functionName: Botan::TLS::Client_Hello_12::Client_Hello_12
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - tls_modify_extensions
    - Signature_Algorithms_Cert::Signature_Algorithms_Cert
    - Signature_Algorithms::Signature_Algorithms
    - ciphersuite_list
    - legacy_version
    - hostname
    - Renegotiation_Extension::Renegotiation_Extension
    - negotiate_encrypt_then_mac
    - Encrypt_then_MAC::Encrypt_then_MAC
    - acceptable_protocol_version
    - extensions
    - send
    - Internal_Error
    - srtp_profiles
    - protocol_version
    - Session_Ticket_Extension::Session_Ticket_Extension
    - support_cert_status_message
    - auto::value
    - Supported_Versions::Supported_Versions
    - type
    - Certificate_Status_Request::Certificate_Status_Request
    - acceptable_certificate_signature_schemes
    - Server_Name_Indicator::Server_Name_Indicator
    - std::move
    - update
    - make_hello_random
    - Botan::TLS::Client_Hello_12::add_tls12_supported_groups_extensions
    - hostname_acceptable_for_sni
    - empty
    - Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
    - SRTP_Protection_Profiles::SRTP_Protection_Profiles
    - acceptable_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/msg_client_hello.cpp:564,1
    - Dst: make_hello_random
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:565,1
    - Dst: handle::id
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:572,1
    - Dst: Session_ID
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:572,1
    - Dst: make_hello_random
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:572,1
    - Dst: ciphersuite_list
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:573,1
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:573,1
    - Dst: acceptable_protocol_version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:575,1
    - Dst: session::version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:575,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:576,1
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:576,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:580,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:580,1
    - Dst: session::ciphersuite_code
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:580,1
    - Dst: m_suites::push_back
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:581,1
    - Dst: session::ciphersuite_code
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:581,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:591,1
    - Dst: Extended_Master_Secret::Extended_Master_Secret
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:591,1
    - Dst: session::supports_encrypt_then_mac
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:593,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:594,1
    - Dst: Encrypt_then_MAC::Encrypt_then_MAC
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:594,1
    - Dst: handle::is_ticket
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:597,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:598,1
    - Dst: handle::ticket
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:598,1
    - Dst: Session_Ticket_Extension::Session_Ticket_Extension
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:598,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:601,1
    - Dst: Renegotiation_Extension::Renegotiation_Extension
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:601,1
    - Dst: session::server_info
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:603,1
    - Dst: hostname_acceptable_for_sni
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:605,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:606,1
    - Dst: Server_Name_Indicator::Server_Name_Indicator
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:606,1
    - Dst: support_cert_status_message
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:609,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:610,1
    - Dst: Certificate_Status_Request::Certificate_Status_Request
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:610,1
    - Dst: Botan::TLS::Client_Hello_12::add_tls12_supported_groups_extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:613,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:615,1
    - Dst: acceptable_signature_schemes
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:615,1
    - Dst: Signature_Algorithms::Signature_Algorithms
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:615,1
    - Dst: acceptable_certificate_signature_schemes
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:616,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:621,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:621,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:621,1
    - Dst: Signature_Algorithms_Cert::Signature_Algorithms_Cert
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:621,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:624,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:624,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:625,1
    - Dst: Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:625,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:629,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:629,1
    - Dst: type
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:629,1
    - Dst: update
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:631,1
    - Dst: send
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:631,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: 632
      start: 556
    functionDepth: 3
    functionLinenumber: 556
    functionLinenumberEnd: 632
    functionName: Botan::TLS::Client_Hello_12::Client_Hello_12
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - handle::ticket
    - Session_ID
    - tls_modify_extensions
    - session::supports_encrypt_then_mac
    - Signature_Algorithms_Cert::Signature_Algorithms_Cert
    - handle::is_ticket
    - Signature_Algorithms::Signature_Algorithms
    - ciphersuite_list
    - legacy_version
    - Renegotiation_Extension::Renegotiation_Extension
    - Encrypt_then_MAC::Encrypt_then_MAC
    - handle::id
    - acceptable_protocol_version
    - session::ciphersuite_code
    - extensions
    - send
    - session::server_info
    - Internal_Error
    - Session_Ticket_Extension::Session_Ticket_Extension
    - support_cert_status_message
    - auto::value
    - ciphersuites
    - m_suites::push_back
    - type
    - Certificate_Status_Request::Certificate_Status_Request
    - acceptable_certificate_signature_schemes
    - value_exists
    - Server_Name_Indicator::Server_Name_Indicator
    - std::move
    - update
    - make_hello_random
    - Botan::TLS::Client_Hello_12::add_tls12_supported_groups_extensions
    - hostname_acceptable_for_sni
    - empty
    - Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
    - acceptable_signature_schemes
    - session::version
    - 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 Session_with_Handle&
      session,\n                                 const std::vector<std::string>& next_protocols)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:636,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:637,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:646,1
    - Dst: has
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:646,1
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:651,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:652,1
    - Dst: comp_methods
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:660,1
    - Dst: comp_methods
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:660,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:661,1
    - Dst: has
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:669,1
    - Dst: has
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:670,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:671,1
    - Dst: all
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:679,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:680,1
    - Dst: has
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:698,1
    - Dst: has
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:699,1
    - Dst: has
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:699,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:700,1
    - Dst: has
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:705,1
    - Dst: has
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:705,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:706,1
    - Dst: has
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:710,1
    - Dst: get
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:711,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:712,1
    - Dst: auto*::groups
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:713,1
    - Dst: get
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:714,1
    - Dst: std::find
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:726,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:726,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:726,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:727,1
    - Dst: std::distance
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:731,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:731,1
    - Dst: static_cast<decltype(support_offset)>
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:737,1
    - Dst: found_in_supported_groups
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:745,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:746,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 40
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::unique_ptr<Client_Hello_Internal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 636
    functionDepth: 1
    functionLinenumber: 636
    functionLinenumberEnd: 756
    functionName: Botan::TLS::Client_Hello_13::Client_Hello_13
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - has
    - std::move
    - std::distance
    - found_in_supported_groups
    - extensions
    - all
    - TLS_Exception
    - auto::end
    - std::find
    - BOTAN_ASSERT_NONNULL
    - auto*::groups
    - static_cast<decltype(support_offset)>
    - get
    - legacy_version
    - auto::begin
    - comp_methods
    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/msg_client_hello.cpp:774,1
    - Dst: ciphersuite_list
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:775,1
    - Dst: allow_tls12
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:777,1
    - Dst: ciphersuite_list
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:779,1
    - Dst: m_suites::insert
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:780,1
    - Dst: m_suites::end
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:780,1
    - Dst: auto::cbegin
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:780,1
    - Dst: auto::cend
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:780,1
    - Dst: tls_13_middlebox_compatibility_mode
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:783,1
    - Dst: Session_ID
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:791,1
    - Dst: make_hello_random
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:791,1
    - Dst: hostname_acceptable_for_sni
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:795,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:796,1
    - Dst: Server_Name_Indicator::Server_Name_Indicator
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:796,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:799,1
    - Dst: key_exchange_groups
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:799,1
    - Dst: Supported_Groups::Supported_Groups
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:799,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:801,1
    - Dst: Key_Share::Key_Share
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:801,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:803,1
    - Dst: Supported_Versions::Supported_Versions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:803,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:805,1
    - Dst: acceptable_signature_schemes
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:805,1
    - Dst: Signature_Algorithms::Signature_Algorithms
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:805,1
    - Dst: acceptable_certificate_signature_schemes
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:806,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:810,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:810,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:810,1
    - Dst: Signature_Algorithms_Cert::Signature_Algorithms_Cert
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:810,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:816,1
    - Dst: PSK_Key_Exchange_Modes::PSK_Key_Exchange_Modes
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:816,1
    - Dst: support_cert_status_message
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:818,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:819,1
    - Dst: Certificate_Status_Request::Certificate_Status_Request
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:819,1
    - Dst: record_size_limit
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:825,1
    - Dst: allow_tls12
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:825,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:826,1
    - Dst: record_size_limit
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:826,1
    - Dst: Record_Size_Limit::Record_Size_Limit
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:826,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:829,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:830,1
    - Dst: Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:830,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:837,1
    - Dst: accepted_client_certificate_types
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:837,1
    - Dst: Client_Certificate_Type::Client_Certificate_Type
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:837,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:838,1
    - Dst: accepted_server_certificate_types
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:838,1
    - Dst: Server_Certificate_Type::Server_Certificate_Type
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:838,1
    - Dst: allow_tls12
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:840,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:841,1
    - Dst: Renegotiation_Extension::Renegotiation_Extension
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:841,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:842,1
    - Dst: Session_Ticket_Extension::Session_Ticket_Extension
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:842,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:845,1
    - Dst: Extended_Master_Secret::Extended_Master_Secret
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:845,1
    - Dst: negotiate_encrypt_then_mac
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:847,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:848,1
    - Dst: Encrypt_then_MAC::Encrypt_then_MAC
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:848,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:851,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:852,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:853,1
    - Dst: use_ecc_point_compression
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:853,1
    - Dst: Supported_Point_Formats::Supported_Point_Formats
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:853,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:857,1
    - Dst: std::vector<ExternalPSK>::empty
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:857,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:858,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:858,1
    - Dst: PSK::PSK
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:858,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:862,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:862,1
    - Dst: type
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:862,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:864,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:868,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:869,1
    - Dst: Botan::TLS::Client_Hello_13::calculate_psk_binders
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:872,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: 874
      start: 761
    functionDepth: 2
    functionLinenumber: 761
    functionLinenumberEnd: 874
    functionName: Botan::TLS::Client_Hello_13::Client_Hello_13
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 1
    functionsReached:
    - accepted_client_certificate_types
    - record_size_limit
    - Session_ID
    - Record_Size_Limit::Record_Size_Limit
    - tls_modify_extensions
    - accepted_server_certificate_types
    - Signature_Algorithms_Cert::Signature_Algorithms_Cert
    - Signature_Algorithms::Signature_Algorithms
    - ciphersuite_list
    - key_exchange_groups
    - allow_tls12
    - Renegotiation_Extension::Renegotiation_Extension
    - negotiate_encrypt_then_mac
    - Encrypt_then_MAC::Encrypt_then_MAC
    - Client_Certificate_Type::Client_Certificate_Type
    - m_suites::insert
    - extensions
    - TLS_Exception
    - Supported_Point_Formats::Supported_Point_Formats
    - PSK::PSK
    - Botan::TLS::Client_Hello_13::calculate_psk_binders
    - Session_Ticket_Extension::Session_Ticket_Extension
    - auto::cend
    - std::vector<ExternalPSK>::empty
    - auto::cbegin
    - auto::value
    - support_cert_status_message
    - Supported_Versions::Supported_Versions
    - Server_Certificate_Type::Server_Certificate_Type
    - type
    - Certificate_Status_Request::Certificate_Status_Request
    - use_ecc_point_compression
    - acceptable_certificate_signature_schemes
    - Server_Name_Indicator::Server_Name_Indicator
    - m_suites::end
    - Key_Share::Key_Share
    - std::move
    - tls_13_middlebox_compatibility_mode
    - PSK_Key_Exchange_Modes::PSK_Key_Exchange_Modes
    - make_hello_random
    - Supported_Groups::Supported_Groups
    - hostname_acceptable_for_sni
    - empty
    - Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
    - has_value
    - acceptable_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/msg_client_hello.cpp:877,1
    - Dst: auto::version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:878,1
    - Dst: auto::is_pre_tls_13
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:880,1
    - Dst: Client_Hello_12
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:881,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:881,1
    - Dst: Botan::TLS::Client_Hello_13::Client_Hello_13
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:883,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:883,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 876
    functionDepth: 2
    functionLinenumber: 876
    functionLinenumberEnd: 885
    functionName: Botan::TLS::Client_Hello_13::parse
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 22
    functionsReached:
    - std::move
    - Client_Hello_12
    - auto::is_pre_tls_13
    - Botan::TLS::Client_Hello_13::Client_Hello_13
    - std::make_unique<Client_Hello_Internal>
    - auto::version
    linkageType: ''
    returnType: std::variant<Client_Hello_13, Client_Hello_12>
    signature: std::variant<Client_Hello_13, Client_Hello_12> Client_Hello_13::parse(const
      std::vector<uint8_t>& buf)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:891,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:891,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:892,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:892,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:894,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:895,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:897,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:898,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:909,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:910,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:910,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:911,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:911,1
    - Dst: Cookie::Cookie
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:911,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:918,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:918,1
    - Dst: type
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:918,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:920,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:923,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:923,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:924,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:924,1
    - Dst: auto*::filter
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:930,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:930,1
    - Dst: Botan::TLS::Client_Hello_13::calculate_psk_binders
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:935,1
    - Dst: clone
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:935,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: 937
      start: 887
    functionDepth: 2
    functionLinenumber: 887
    functionLinenumberEnd: 937
    functionName: Botan::TLS::Client_Hello_13::retry
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Cookie::Cookie
    - extensions
    - clone
    - auto::has_value
    - tls_modify_extensions
    - auto::value
    - Botan::TLS::Ciphersuite::by_id
    - Botan::TLS::Client_Hello_13::calculate_psk_binders
    - type
    - BOTAN_STATE_CHECK
    - ciphersuite
    - auto*::filter
    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/msg_client_hello.cpp:945,1
    - Dst: m_data::session_id
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:945,1
    - Dst: random
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:945,1
    - Dst: m_data::random
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:945,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:946,1
    - Dst: m_data::ciphersuites
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:946,1
    - Dst: comp_methods
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:947,1
    - Dst: m_data::comp_methods
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:947,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:948,1
    - Dst: extension_types
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:951,1
    - Dst: extension_types
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:952,1
    - Dst: auto::contains
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:956,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:957,1
    - Dst: auto*::is_implemented
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:960,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Extension::static_type
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:967,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:979,1
    - Dst: auto::contains
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:985,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:986,1
    - Dst: auto*::is_implemented
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:989,1
    - Dst: Botan_Tests::TLS_Handshake_Test::Test_Extension::static_type
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:996,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:1008,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:1015,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:1016,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 27
    argCount: 1
    argNames:
    - ' new_ch'
    argTypes:
    - Client_Hello_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1033
      start: 939
    functionDepth: 1
    functionLinenumber: 939
    functionLinenumberEnd: 1033
    functionName: Botan::TLS::Client_Hello_13::validate_updates
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - m_data::random
    - auto::contains
    - extensions
    - m_data::ciphersuites
    - TLS_Exception
    - random
    - session_id
    - m_data::comp_methods
    - ciphersuites
    - auto*::is_implemented
    - m_data::session_id
    - Botan_Tests::TLS_Handshake_Test::Test_Extension::static_type
    - comp_methods
    - extension_types
    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/msg_client_hello.cpp:1036,1
    - Dst: auto*::empty
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:1037,1
    - Dst: Botan::TLS::Handshake_Layer::prepare_message
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:1050,1
    - Dst: auto*::calculate_binders
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:1051,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - transcript_hash
    argTypes:
    - Transcript_Hash_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1035
    functionDepth: 1
    functionLinenumber: 1035
    functionLinenumberEnd: 1052
    functionName: Botan::TLS::Client_Hello_13::calculate_psk_binders
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 4
    functionsReached:
    - Botan::TLS::Handshake_Layer::prepare_message
    - auto*::calculate_binders
    - extensions
    - auto*::empty
    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/msg_client_hello.cpp:1060,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:1061,1
    - Dst: auto*::versions
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:1065,1
    - Dst: known_version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:1070,1
    - Dst: acceptable_protocol_version
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:1070,1
    - Dst: std::optional::has_value
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:1074,1
    - Dst: std::optional
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:1074,1
    - Dst: max
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:1074,1
    - Dst: std::optional::value
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:1074,1
    - Dst: std::optional
      Src: /src/botan/src/lib/tls/msg_client_hello.cpp:1074,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ' policy'
    argTypes:
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1054
    functionDepth: 1
    functionLinenumber: 1054
    functionLinenumberEnd: 1078
    functionName: Botan::TLS::Client_Hello_13::highest_supported_version
    functionSourceFile: /src/botan/src/lib/tls/msg_client_hello.cpp
    functionUses: 0
    functionsReached:
    - std::optional::value
    - extensions
    - std::optional
    - BOTAN_ASSERT_NONNULL
    - max
    - std::optional::has_value
    - known_version
    - auto*::versions
    - acceptable_protocol_version
    linkageType: ''
    returnType: std::optional<Protocol_Version>
    signature: std::optional<Protocol_Version> Client_Hello_13::highest_supported_version(const
      Policy& policy) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Null_RNG>
      Src: /src/botan/src/lib/tls/tls_session_manager_noop.cpp:15,1
    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: 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:
    - Dst: std::make_shared<Null_RNG>
      Src: /src/botan/src/lib/tls/tls_session_manager_noop.cpp:15,1
    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: 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: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    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: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    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: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    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: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    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: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    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: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    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:55,1
    - Dst: std::span
      Src: /src/botan/src/lib/tls/tls_channel.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - buf_size
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: received_data
    functionSourceFile: /src/botan/src/lib/tls/tls_channel.h
    functionUses: 45
    functionsReached:
    - std::span
    - from_peer
    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:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: send
    functionSourceFile: /src/botan/src/lib/tls/tls_channel.h
    functionUses: 73
    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:63,1
    - Dst: std::span
      Src: /src/botan/src/lib/tls/tls_channel.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - buf_size
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: send
    functionSourceFile: /src/botan/src/lib/tls/tls_channel.h
    functionUses: 73
    functionsReached:
    - std::span
    - to_peer
    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:69,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/lib/tls/tls_channel.h:69,1
    - Dst: std::string_view::data
      Src: /src/botan/src/lib/tls/tls_channel.h:69,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/tls/tls_channel.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: send
    functionSourceFile: /src/botan/src/lib/tls/tls_channel.h
    functionUses: 74
    functionsReached:
    - send
    - std::string_view::data
    - reinterpret_cast<const uint8_t*>
    - std::string_view::size
    linkageType: ''
    returnType: void
    signature: void send(std::string_view s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:40,1
    - Dst: data
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:40,1
    - Dst: data
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:40,1
    - Dst: size
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' random'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: Botan::TLS::random_signals_hello_retry_request
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::is_equal
    - size
    - data
    linkageType: ''
    returnType: bool
    signature: bool random_signals_hello_retry_request(const std::vector<uint8_t>&
      random)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:47,1
    - Dst: Botan::TLS::make_hello_random
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:48,1
    - Dst: Protocol_Version::is_pre_tls_13
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:58,1
    - Dst: allow_tls13
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:58,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:60,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:60,1
    - Dst: auto::data
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:61,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:61,1
    - Dst: store_be
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:62,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: 66
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 66
    functionName: Botan::TLS::make_server_hello_random
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - auto::data
    - Protocol_Version::is_pre_tls_13
    - store_be
    - allow_tls13
    - Botan::TLS::make_hello_random
    - BOTAN_UNUSED
    - auto::size
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:40,1
    - Dst: data
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:40,1
    - Dst: data
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:40,1
    - Dst: size
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' random'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: Botan::TLS::random_signals_hello_retry_request
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::is_equal
    - size
    - data
    linkageType: ''
    returnType: bool
    signature: bool random_signals_hello_retry_request(const std::vector<uint8_t>&
      random)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:47,1
    - Dst: Botan::TLS::make_hello_random
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:48,1
    - Dst: Protocol_Version::is_pre_tls_13
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:58,1
    - Dst: allow_tls13
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:58,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:60,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:60,1
    - Dst: auto::data
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:61,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:61,1
    - Dst: store_be
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:62,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: 66
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 66
    functionName: Botan::TLS::make_server_hello_random
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - auto::data
    - Protocol_Version::is_pre_tls_13
    - store_be
    - allow_tls13
    - Botan::TLS::make_hello_random
    - BOTAN_UNUSED
    - auto::size
    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:81,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:82,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:87,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:88,1
    - Dst: Protocol_Version
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:90,1
    - Dst: TLS_Data_Reader::get_fixed
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:96,1
    - Dst: random_signals_hello_retry_request
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:97,1
    - Dst: Session_ID
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:99,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:99,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:100,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:101,1
    - Dst: deserialize
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 112
    functionName: Botan::TLS::Server_Hello_Internal::Server_Hello_Internal
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - TLS_Data_Reader::get_uint16_t
    - TLS_Data_Reader::get_byte
    - random_signals_hello_retry_request
    - size
    - TLS_Data_Reader::get_fixed
    - Session_ID
    - TLS_Data_Reader::get_range
    - Protocol_Version
    - deserialize
    linkageType: ''
    returnType: void
    signature: void Server_Hello_Internal(const std::vector<uint8_t>& buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:121,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:122,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: 125
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 125
    functionName: Botan::TLS::Server_Hello_Internal::Server_Hello_Internal
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    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:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 138
    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 version() 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::legacy_version
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.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: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: '& session_id() const'
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    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: 144
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 144
    functionName: '& random() const'
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    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: 146
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 146
    functionName: Botan::TLS::Server_Hello_Internal::ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    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: 148
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 148
    functionName: Botan::TLS::Server_Hello_Internal::comp_method
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    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: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    functionName: Botan::TLS::Server_Hello_Internal::is_hello_retry_request
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    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: 152
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 152
    functionName: '& extensions() const'
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    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: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: '& extensions()'
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Extensions
    signature: Extensions & extensions()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::unique_ptr<Server_Hello_Internal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 167
    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: 169
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 169
    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: 172
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 172
    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:179,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:181,1
    - Dst: Botan::TLS::Server_Hello::legacy_version
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:181,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:182,1
    - Dst: Botan::TLS::Server_Hello::legacy_version
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:182,1
    - Dst: random
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:183,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:185,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:185,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:187,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:187,1
    - Dst: Botan::TLS::Server_Hello::ciphersuite
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:187,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:188,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:188,1
    - Dst: Botan::TLS::Server_Hello::ciphersuite
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:188,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:190,1
    - Dst: comp_method
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:190,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 195
    functionName: Botan::TLS::Server_Hello::serialize
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Server_Hello::legacy_version
    - std::vector::push_back
    - extensions
    - get_byte<1>
    - random
    - session_id
    - get_byte<0>
    - comp_method
    - append_tls_length_value
    - Botan::TLS::Server_Hello::ciphersuite
    - std::vector::reserve
    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: 199
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 199
    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:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 203
    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:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 207
    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: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::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: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: '& 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:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 219
    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: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: 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: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: '& 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: 12
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Server_Hello_Internal>
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:239,1
    - Dst: protocol_version
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:240,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:241,1
    - Dst: make_server_hello_random
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:242,1
    - Dst: protocol_version
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:242,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:243,1
    - Dst: Botan::TLS::Server_Hello_12::supports_extended_master_secret
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:246,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:247,1
    - Dst: Extended_Master_Secret::Extended_Master_Secret
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:247,1
    - Dst: supports_cert_status_message
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:251,1
    - Dst: support_cert_status_message
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:251,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:252,1
    - Dst: Certificate_Status_Request::Certificate_Status_Request
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:252,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:255,1
    - Dst: supports_alpn
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:255,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:256,1
    - Dst: Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:256,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:259,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:259,1
    - Dst: auto::cbc_ciphersuite
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:261,1
    - Dst: Botan::TLS::Server_Hello_12::supports_encrypt_then_mac
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:261,1
    - Dst: negotiate_encrypt_then_mac
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:261,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:262,1
    - Dst: Encrypt_then_MAC::Encrypt_then_MAC
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:262,1
    - Dst: auto::ecc_ciphersuite
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:265,1
    - Dst: extension_types
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:265,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:266,1
    - Dst: use_ecc_point_compression
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:266,1
    - Dst: Supported_Point_Formats::Supported_Point_Formats
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:266,1
    - Dst: Botan::TLS::Server_Hello_12::secure_renegotiation
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:269,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:270,1
    - Dst: Renegotiation_Extension::Renegotiation_Extension
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:270,1
    - Dst: Botan::TLS::Server_Hello_12::supports_session_ticket
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:273,1
    - Dst: offer_session_ticket
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:273,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:274,1
    - Dst: Session_Ticket_Extension::Session_Ticket_Extension
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:274,1
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:277,1
    - Dst: srtp_profiles
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:278,1
    - Dst: srtp_profiles
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:279,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:281,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:281,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:293,1
    - Dst: SRTP_Protection_Profiles::SRTP_Protection_Profiles
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:293,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:299,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:299,1
    - Dst: type
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:299,1
    - Dst: update
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:301,1
    - Dst: send
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:301,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: 302
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 302
    functionName: Botan::TLS::Server_Hello_12::Server_Hello_12
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - tls_modify_extensions
    - Botan::TLS::Server_Hello_12::supports_session_ticket
    - Botan::TLS::Server_Hello_12::secure_renegotiation
    - ciphersuite
    - legacy_version
    - Renegotiation_Extension::Renegotiation_Extension
    - negotiate_encrypt_then_mac
    - Encrypt_then_MAC::Encrypt_then_MAC
    - extensions
    - auto::cbc_ciphersuite
    - auto::ecc_ciphersuite
    - Supported_Point_Formats::Supported_Point_Formats
    - send
    - session_id
    - offer_session_ticket
    - Botan::TLS::Ciphersuite::by_id
    - srtp_profiles
    - protocol_version
    - Session_Ticket_Extension::Session_Ticket_Extension
    - make_server_hello_random
    - Botan::TLS::Server_Hello_12::supports_encrypt_then_mac
    - std::make_unique<Server_Hello_Internal>
    - Botan::TLS::Server_Hello_12::supports_extended_master_secret
    - support_cert_status_message
    - std::vector::empty
    - type
    - Certificate_Status_Request::Certificate_Status_Request
    - use_ecc_point_compression
    - supports_alpn
    - update
    - std::string_view::empty
    - supports_cert_status_message
    - Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
    - SRTP_Protection_Profiles::SRTP_Protection_Profiles
    - Extended_Master_Secret::Extended_Master_Secret
    - extension_types
    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/msg_server_hello.cpp:315,1
    - Dst: version
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:315,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:316,1
    - Dst: make_hello_random
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:317,1
    - Dst: ciphersuite_code
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:318,1
    - Dst: Botan::TLS::Server_Hello_12::supports_extended_master_secret
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:321,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:322,1
    - Dst: Extended_Master_Secret::Extended_Master_Secret
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:322,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:325,1
    - Dst: supports_alpn
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:325,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:326,1
    - Dst: Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:326,1
    - Dst: Botan::TLS::Server_Hello_12::supports_encrypt_then_mac
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:329,1
    - Dst: negotiate_encrypt_then_mac
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:329,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:330,1
    - Dst: Ciphersuite::cbc_ciphersuite
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:331,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:332,1
    - Dst: Encrypt_then_MAC::Encrypt_then_MAC
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:332,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:336,1
    - Dst: extension_types
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:337,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:338,1
    - Dst: use_ecc_point_compression
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:338,1
    - Dst: Supported_Point_Formats::Supported_Point_Formats
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:338,1
    - Dst: Botan::TLS::Server_Hello_12::secure_renegotiation
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:341,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:342,1
    - Dst: Renegotiation_Extension::Renegotiation_Extension
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:342,1
    - Dst: Botan::TLS::Server_Hello_12::supports_session_ticket
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:345,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:346,1
    - Dst: Session_Ticket_Extension::Session_Ticket_Extension
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:346,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:350,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:350,1
    - Dst: type
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:350,1
    - Dst: update
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:352,1
    - Dst: send
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:352,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: 353
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 353
    functionName: Botan::TLS::Server_Hello_12::Server_Hello_12
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - ciphersuite_code
    - tls_modify_extensions
    - Botan::TLS::Server_Hello_12::supports_session_ticket
    - version
    - ciphersuite
    - Botan::TLS::Server_Hello_12::secure_renegotiation
    - Renegotiation_Extension::Renegotiation_Extension
    - negotiate_encrypt_then_mac
    - Encrypt_then_MAC::Encrypt_then_MAC
    - extensions
    - Supported_Point_Formats::Supported_Point_Formats
    - send
    - session_id
    - Session_Ticket_Extension::Session_Ticket_Extension
    - Botan::TLS::Server_Hello_12::supports_encrypt_then_mac
    - std::make_unique<Server_Hello_Internal>
    - Botan::TLS::Server_Hello_12::supports_extended_master_secret
    - type
    - use_ecc_point_compression
    - supports_alpn
    - update
    - std::string_view::empty
    - make_hello_random
    - Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
    - Extended_Master_Secret::Extended_Master_Secret
    - Ciphersuite::cbc_ciphersuite
    - extension_types
    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/msg_server_hello.cpp:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 356
    functionName: Botan::TLS::Server_Hello_12::Server_Hello_12
    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::Server_Hello_12(const std::vector<uint8_t>& buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:358,1
    - Dst: version
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:359,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:360,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::unique_ptr<Server_Hello_Internal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 362
    functionName: Botan::TLS::Server_Hello_12::Server_Hello_12
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - std::move
    - version
    linkageType: ''
    returnType: void
    signature: void Server_Hello_12::Server_Hello_12(std::unique_ptr<Server_Hello_Internal>
      data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 366
    functionName: Botan::TLS::Server_Hello_12::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::selected_version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 370
    functionName: Botan::TLS::Server_Hello_12::secure_renegotiation
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.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/msg_server_hello.cpp:373,1
    - Dst: Renegotiation_Extension*::renegotiation_info
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:374,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 377
    functionName: Botan::TLS::Server_Hello_12::renegotiation_info
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - Renegotiation_Extension*::renegotiation_info
    - extensions
    - std::vector<uint8_t>
    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/msg_server_hello.cpp:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 381
    functionName: Botan::TLS::Server_Hello_12::supports_extended_master_secret
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.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/msg_server_hello.cpp:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 385
    functionName: Botan::TLS::Server_Hello_12::supports_encrypt_then_mac
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.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/msg_server_hello.cpp:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 389
    functionName: Botan::TLS::Server_Hello_12::supports_certificate_status_message
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.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/msg_server_hello.cpp:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 393
    functionName: Botan::TLS::Server_Hello_12::supports_session_ticket
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.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/msg_server_hello.cpp:396,1
    - Dst: auto*::profiles
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:397,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:398,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:399,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 405
    functionName: Botan::TLS::Server_Hello_12::srtp_profile
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - auto::size
    - extensions
    - 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/msg_server_hello.cpp:408,1
    - Dst: auto*::single_protocol
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:409,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 412
    functionName: Botan::TLS::Server_Hello_12::next_protocol
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - auto*::single_protocol
    - extensions
    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/msg_server_hello.cpp:415,1
    - Dst: auto*::prefers_compressed
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 419
    functionName: Botan::TLS::Server_Hello_12::prefers_compressed_ec_points
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - auto*::prefers_compressed
    - extensions
    linkageType: ''
    returnType: bool
    signature: bool Server_Hello_12::prefers_compressed_ec_points() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: load_be<uint64_t>
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:422,1
    - Dst: random
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:422,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 431
    functionName: Botan::TLS::Server_Hello_12::random_signals_downgrade
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - load_be<uint64_t>
    - random
    linkageType: ''
    returnType: std::optional<Protocol_Version>
    signature: std::optional<Protocol_Version> Server_Hello_12::random_signals_downgrade()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:437,1
    - Dst: send
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' io'
    - ' hash'
    argTypes:
    - Handshake_IO
    - Handshake_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 438
    functionName: Botan::TLS::Server_Hello_Done::Server_Hello_Done
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.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/msg_server_hello.cpp:444,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:445,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 447
    functionName: Botan::TLS::Server_Hello_Done::Server_Hello_Done
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - empty
    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/msg_server_hello.cpp:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 454
    functionName: Botan::TLS::Server_Hello_Done::serialize
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.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: 4
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:469,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:477,1
    - Dst: has
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:477,1
    - Dst: has
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:477,1
    - Dst: get
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:478,1
    - Dst: get
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:479,1
    - Dst: choose_key_exchange_group
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:480,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:487,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:493,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:494,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:505,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:511,1
    - Dst: Hello_Retry_Request
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:512,1
    - Dst: Botan::TLS::Server_Hello_13::Server_Hello_13
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:514,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: 516
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 516
    functionName: Botan::TLS::Server_Hello_13::create
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - has
    - choose_key_exchange_group
    - extensions
    - Botan::TLS::Server_Hello_13::Server_Hello_13
    - TLS_Exception
    - get
    - BOTAN_STATE_CHECK
    - Hello_Retry_Request
    - value_exists
    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/msg_server_hello.cpp:520,1
    - Dst: auto::version
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:521,1
    - Dst: auto::is_pre_tls_13
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:524,1
    - Dst: Server_Hello_12
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:525,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:525,1
    - Dst: auto::is_hello_retry_request
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:530,1
    - Dst: Hello_Retry_Request
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:531,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:531,1
    - Dst: Botan::TLS::Server_Hello_13::Server_Hello_13
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:534,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:534,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:537,1
    - Dst: auto::to_string
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:537,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 538
    functionName: Botan::TLS::Server_Hello_13::parse
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 12
    functionsReached:
    - std::move
    - Server_Hello_12
    - Botan::TLS::Server_Hello_13::Server_Hello_13
    - TLS_Exception
    - std::make_unique<Server_Hello_Internal>
    - auto::is_pre_tls_13
    - auto::is_hello_retry_request
    - auto::to_string
    - Hello_Retry_Request
    - auto::version
    linkageType: ''
    returnType: std::variant<Hello_Retry_Request, Server_Hello_13, Server_Hello_12>
    signature: "std::variant<Hello_Retry_Request, Server_Hello_13, Server_Hello_12>
      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/msg_server_hello.cpp:544,1
    - Dst: version
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:544,1
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:562,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:563,1
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:564,1
    - Dst: compression_method
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:569,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:570,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:575,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:576,1
    - Dst: Botan::TLS::Server_Hello_13::selected_version
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:583,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:584,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 586
    functionName: Botan::TLS::Server_Hello_13::basic_validation
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - extensions
    - TLS_Exception
    - compression_method
    - Botan::TLS::Server_Hello_13::selected_version
    - version
    - 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/msg_server_hello.cpp:590,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:591,1
    - Dst: is_hello_retry_request
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:591,1
    - Dst: Botan::TLS::Server_Hello_13::basic_validation
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:592,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:594,1
    - Dst: contains_other_than
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:613,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:614,1
    - Dst: has
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:621,1
    - Dst: has
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:621,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:622,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::unique_ptr<Server_Hello_Internal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 588
    functionDepth: 2
    functionLinenumber: 588
    functionLinenumberEnd: 624
    functionName: Botan::TLS::Server_Hello_13::Server_Hello_13
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - has
    - std::move
    - extensions
    - TLS_Exception
    - contains_other_than
    - Botan::TLS::Server_Hello_13::basic_validation
    - is_hello_retry_request
    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/msg_server_hello.cpp:628,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:629,1
    - Dst: is_hello_retry_request
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:629,1
    - Dst: Botan::TLS::Server_Hello_13::basic_validation
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:630,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:632,1
    - Dst: contains_other_than
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:647,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:648,1
    - Dst: has
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:655,1
    - Dst: has
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:655,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:656,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::unique_ptr<Server_Hello_Internal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 626
    functionDepth: 2
    functionLinenumber: 626
    functionLinenumberEnd: 658
    functionName: Botan::TLS::Server_Hello_13::Server_Hello_13
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - has
    - std::move
    - extensions
    - TLS_Exception
    - contains_other_than
    - Botan::TLS::Server_Hello_13::basic_validation
    - is_hello_retry_request
    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/msg_server_hello.cpp:662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::unique_ptr<Server_Hello_Internal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 662
    functionName: Botan::TLS::Server_Hello_13::Server_Hello_13
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.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/msg_server_hello.cpp:667,1
    - Dst: ciphersuite_list
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:669,1
    - Dst: server_uses_own_ciphersuite_preferences
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:671,1
    - Dst: std::swap
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:672,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:697,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:706,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - ' ch'
    - ' policy'
    argTypes:
    - Client_Hello_13
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 666
    functionDepth: 1
    functionLinenumber: 666
    functionLinenumberEnd: 707
    functionName: Botan::TLS::choose_ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - std::swap
    - ciphersuite_list
    - ciphersuites
    - server_uses_own_ciphersuite_preferences
    - value_exists
    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/msg_server_hello.cpp:667,1
    - Dst: ciphersuite_list
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:669,1
    - Dst: server_uses_own_ciphersuite_preferences
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:671,1
    - Dst: std::swap
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:672,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:697,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:706,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - ' ch'
    - ' policy'
    argTypes:
    - Client_Hello_13
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 666
    functionDepth: 1
    functionLinenumber: 666
    functionLinenumberEnd: 707
    functionName: Botan::TLS::choose_ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - std::swap
    - ciphersuite_list
    - ciphersuites
    - server_uses_own_ciphersuite_preferences
    - value_exists
    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/msg_server_hello.cpp:717,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:719,1
    - Dst: make_server_hello_random
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:720,1
    - Dst: choose_ciphersuite
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:721,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:732,1
    - Dst: Supported_Versions::Supported_Versions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:732,1
    - Dst: std::optional<Named_Group>::has_value
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:734,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:735,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:735,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:736,1
    - Dst: Botan::TLS::Key_Share::create_as_encapsulation
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:736,1
    - Dst: std::optional<Named_Group>::value
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:737,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:737,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:740,1
    - Dst: has
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:742,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:743,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:743,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:744,1
    - Dst: get
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:751,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:752,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:756,1
    - Dst: auto*::modes
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:756,1
    - Dst: get
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:757,1
    - Dst: sni_hostname
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:758,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:758,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:762,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:762,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:767,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:767,1
    - Dst: type
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:767,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: 768
      start: 710
    functionDepth: 2
    functionLinenumber: 710
    functionLinenumberEnd: 768
    functionName: Botan::TLS::Server_Hello_13::Server_Hello_13
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - has
    - BOTAN_ASSERT_NONNULL
    - tls_modify_extensions
    - std::optional<Named_Group>::has_value
    - ciphersuite
    - std::optional<Named_Group>::value
    - extensions
    - session_id
    - Botan::TLS::Ciphersuite::by_id
    - Botan::TLS::Key_Share::create_as_encapsulation
    - choose_ciphersuite
    - make_server_hello_random
    - std::make_unique<Server_Hello_Internal>
    - auto::value
    - Supported_Versions::Supported_Versions
    - get
    - type
    - value_exists
    - std::move
    - auto*::modes
    - sni_hostname
    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<uint64_t>
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:771,1
    - Dst: random
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:771,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 780
    functionName: Botan::TLS::Server_Hello_13::random_signals_downgrade
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - load_be<uint64_t>
    - random
    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/msg_server_hello.cpp:783,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:784,1
    - Dst: auto*::versions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:785,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:786,1
    - Dst: size
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:786,1
    - Dst: front
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 782
    functionDepth: 1
    functionLinenumber: 782
    functionLinenumberEnd: 788
    functionName: Botan::TLS::Server_Hello_13::selected_version
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - extensions
    - size
    - auto*::versions
    - front
    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/msg_server_hello.cpp:791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::unique_ptr<Server_Hello_Internal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 790
    functionDepth: 0
    functionLinenumber: 790
    functionLinenumberEnd: 791
    functionName: Botan::TLS::Hello_Retry_Request::Hello_Retry_Request
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.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/msg_server_hello.cpp:797,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:799,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:800,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:800,1
    - Dst: end
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:800,1
    - Dst: choose_ciphersuite
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:801,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:811,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:811,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:812,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:812,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:814,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:814,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:814,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:828,1
    - Dst: Supported_Versions::Supported_Versions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:828,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:830,1
    - Dst: Key_Share::Key_Share
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:830,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:833,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:833,1
    - Dst: type
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:833,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: 834
      start: 793
    functionDepth: 1
    functionLinenumber: 793
    functionLinenumberEnd: 834
    functionName: Botan::TLS::Hello_Retry_Request::Hello_Retry_Request
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - Key_Share::Key_Share
    - extensions
    - BOTAN_STATE_CHECK
    - std::make_unique<Server_Hello_Internal>
    - session_id
    - tls_modify_extensions
    - choose_ciphersuite
    - Supported_Versions::Supported_Versions
    - std::vector<uint8_t>
    - end
    - type
    - begin
    - value_exists
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:40,1
    - Dst: data
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:40,1
    - Dst: data
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:40,1
    - Dst: size
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' random'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: Botan::TLS::random_signals_hello_retry_request
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::is_equal
    - size
    - data
    linkageType: ''
    returnType: bool
    signature: bool random_signals_hello_retry_request(const std::vector<uint8_t>&
      random)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:47,1
    - Dst: Botan::TLS::make_hello_random
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:48,1
    - Dst: Protocol_Version::is_pre_tls_13
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:58,1
    - Dst: allow_tls13
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:58,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:60,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:60,1
    - Dst: auto::data
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:61,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:61,1
    - Dst: store_be
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:62,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: 66
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 66
    functionName: Botan::TLS::make_server_hello_random
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - auto::data
    - Protocol_Version::is_pre_tls_13
    - store_be
    - allow_tls13
    - Botan::TLS::make_hello_random
    - BOTAN_UNUSED
    - auto::size
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:40,1
    - Dst: data
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:40,1
    - Dst: data
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:40,1
    - Dst: size
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' random'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 41
    functionName: Botan::TLS::random_signals_hello_retry_request
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::is_equal
    - size
    - data
    linkageType: ''
    returnType: bool
    signature: bool random_signals_hello_retry_request(const std::vector<uint8_t>&
      random)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:47,1
    - Dst: Botan::TLS::make_hello_random
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:48,1
    - Dst: Protocol_Version::is_pre_tls_13
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:58,1
    - Dst: allow_tls13
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:58,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:60,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:60,1
    - Dst: auto::data
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:61,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:61,1
    - Dst: store_be
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:62,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: 66
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 66
    functionName: Botan::TLS::make_server_hello_random
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - auto::data
    - Protocol_Version::is_pre_tls_13
    - store_be
    - allow_tls13
    - Botan::TLS::make_hello_random
    - BOTAN_UNUSED
    - auto::size
    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:81,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:82,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:87,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:88,1
    - Dst: Protocol_Version
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:90,1
    - Dst: TLS_Data_Reader::get_fixed
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:96,1
    - Dst: random_signals_hello_retry_request
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:97,1
    - Dst: Session_ID
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:99,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:99,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:100,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:101,1
    - Dst: deserialize
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 112
    functionName: Botan::TLS::Server_Hello_Internal::Server_Hello_Internal
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - TLS_Data_Reader::get_uint16_t
    - TLS_Data_Reader::get_byte
    - random_signals_hello_retry_request
    - size
    - TLS_Data_Reader::get_fixed
    - Session_ID
    - TLS_Data_Reader::get_range
    - Protocol_Version
    - deserialize
    linkageType: ''
    returnType: void
    signature: void Server_Hello_Internal(const std::vector<uint8_t>& buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:121,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:122,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: 125
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 125
    functionName: Botan::TLS::Server_Hello_Internal::Server_Hello_Internal
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    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:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 138
    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 version() 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::legacy_version
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.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: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: '& session_id() const'
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    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: 144
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 144
    functionName: '& random() const'
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    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: 146
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 146
    functionName: Botan::TLS::Server_Hello_Internal::ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    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: 148
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 148
    functionName: Botan::TLS::Server_Hello_Internal::comp_method
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    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: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    functionName: Botan::TLS::Server_Hello_Internal::is_hello_retry_request
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    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: 152
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 152
    functionName: '& extensions() const'
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    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: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: '& extensions()'
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Extensions
    signature: Extensions & extensions()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::unique_ptr<Server_Hello_Internal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 167
    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: 169
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 169
    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: 172
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 172
    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:179,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:181,1
    - Dst: Botan::TLS::Server_Hello::legacy_version
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:181,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:182,1
    - Dst: Botan::TLS::Server_Hello::legacy_version
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:182,1
    - Dst: random
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:183,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:185,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:185,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:187,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:187,1
    - Dst: Botan::TLS::Server_Hello::ciphersuite
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:187,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:188,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:188,1
    - Dst: Botan::TLS::Server_Hello::ciphersuite
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:188,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:190,1
    - Dst: comp_method
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:190,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 195
    functionName: Botan::TLS::Server_Hello::serialize
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Server_Hello::legacy_version
    - std::vector::push_back
    - extensions
    - get_byte<1>
    - random
    - session_id
    - get_byte<0>
    - comp_method
    - append_tls_length_value
    - Botan::TLS::Server_Hello::ciphersuite
    - std::vector::reserve
    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: 199
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 199
    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:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 203
    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:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 207
    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: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::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: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: '& 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:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 219
    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: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: 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: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: '& 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: 12
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Server_Hello_Internal>
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:239,1
    - Dst: protocol_version
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:240,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:241,1
    - Dst: make_server_hello_random
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:242,1
    - Dst: protocol_version
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:242,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:243,1
    - Dst: Botan::TLS::Server_Hello_12::supports_extended_master_secret
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:246,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:247,1
    - Dst: Extended_Master_Secret::Extended_Master_Secret
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:247,1
    - Dst: supports_cert_status_message
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:251,1
    - Dst: support_cert_status_message
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:251,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:252,1
    - Dst: Certificate_Status_Request::Certificate_Status_Request
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:252,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:255,1
    - Dst: supports_alpn
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:255,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:256,1
    - Dst: Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:256,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:259,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:259,1
    - Dst: auto::cbc_ciphersuite
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:261,1
    - Dst: Botan::TLS::Server_Hello_12::supports_encrypt_then_mac
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:261,1
    - Dst: negotiate_encrypt_then_mac
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:261,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:262,1
    - Dst: Encrypt_then_MAC::Encrypt_then_MAC
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:262,1
    - Dst: auto::ecc_ciphersuite
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:265,1
    - Dst: extension_types
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:265,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:266,1
    - Dst: use_ecc_point_compression
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:266,1
    - Dst: Supported_Point_Formats::Supported_Point_Formats
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:266,1
    - Dst: Botan::TLS::Server_Hello_12::secure_renegotiation
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:269,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:270,1
    - Dst: Renegotiation_Extension::Renegotiation_Extension
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:270,1
    - Dst: Botan::TLS::Server_Hello_12::supports_session_ticket
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:273,1
    - Dst: offer_session_ticket
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:273,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:274,1
    - Dst: Session_Ticket_Extension::Session_Ticket_Extension
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:274,1
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:277,1
    - Dst: srtp_profiles
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:278,1
    - Dst: srtp_profiles
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:279,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:281,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:281,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:293,1
    - Dst: SRTP_Protection_Profiles::SRTP_Protection_Profiles
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:293,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:299,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:299,1
    - Dst: type
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:299,1
    - Dst: update
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:301,1
    - Dst: send
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:301,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: 302
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 302
    functionName: Botan::TLS::Server_Hello_12::Server_Hello_12
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - tls_modify_extensions
    - Botan::TLS::Server_Hello_12::supports_session_ticket
    - Botan::TLS::Server_Hello_12::secure_renegotiation
    - ciphersuite
    - legacy_version
    - Renegotiation_Extension::Renegotiation_Extension
    - negotiate_encrypt_then_mac
    - Encrypt_then_MAC::Encrypt_then_MAC
    - extensions
    - auto::cbc_ciphersuite
    - auto::ecc_ciphersuite
    - Supported_Point_Formats::Supported_Point_Formats
    - send
    - session_id
    - offer_session_ticket
    - Botan::TLS::Ciphersuite::by_id
    - srtp_profiles
    - protocol_version
    - Session_Ticket_Extension::Session_Ticket_Extension
    - make_server_hello_random
    - Botan::TLS::Server_Hello_12::supports_encrypt_then_mac
    - std::make_unique<Server_Hello_Internal>
    - Botan::TLS::Server_Hello_12::supports_extended_master_secret
    - support_cert_status_message
    - std::vector::empty
    - type
    - Certificate_Status_Request::Certificate_Status_Request
    - use_ecc_point_compression
    - supports_alpn
    - update
    - std::string_view::empty
    - supports_cert_status_message
    - Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
    - SRTP_Protection_Profiles::SRTP_Protection_Profiles
    - Extended_Master_Secret::Extended_Master_Secret
    - extension_types
    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/msg_server_hello.cpp:315,1
    - Dst: version
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:315,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:316,1
    - Dst: make_hello_random
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:317,1
    - Dst: ciphersuite_code
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:318,1
    - Dst: Botan::TLS::Server_Hello_12::supports_extended_master_secret
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:321,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:322,1
    - Dst: Extended_Master_Secret::Extended_Master_Secret
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:322,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:325,1
    - Dst: supports_alpn
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:325,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:326,1
    - Dst: Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:326,1
    - Dst: Botan::TLS::Server_Hello_12::supports_encrypt_then_mac
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:329,1
    - Dst: negotiate_encrypt_then_mac
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:329,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:330,1
    - Dst: Ciphersuite::cbc_ciphersuite
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:331,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:332,1
    - Dst: Encrypt_then_MAC::Encrypt_then_MAC
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:332,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:336,1
    - Dst: extension_types
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:337,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:338,1
    - Dst: use_ecc_point_compression
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:338,1
    - Dst: Supported_Point_Formats::Supported_Point_Formats
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:338,1
    - Dst: Botan::TLS::Server_Hello_12::secure_renegotiation
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:341,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:342,1
    - Dst: Renegotiation_Extension::Renegotiation_Extension
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:342,1
    - Dst: Botan::TLS::Server_Hello_12::supports_session_ticket
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:345,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:346,1
    - Dst: Session_Ticket_Extension::Session_Ticket_Extension
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:346,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:350,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:350,1
    - Dst: type
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:350,1
    - Dst: update
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:352,1
    - Dst: send
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:352,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: 353
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 353
    functionName: Botan::TLS::Server_Hello_12::Server_Hello_12
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - ciphersuite_code
    - tls_modify_extensions
    - Botan::TLS::Server_Hello_12::supports_session_ticket
    - version
    - ciphersuite
    - Botan::TLS::Server_Hello_12::secure_renegotiation
    - Renegotiation_Extension::Renegotiation_Extension
    - negotiate_encrypt_then_mac
    - Encrypt_then_MAC::Encrypt_then_MAC
    - extensions
    - Supported_Point_Formats::Supported_Point_Formats
    - send
    - session_id
    - Session_Ticket_Extension::Session_Ticket_Extension
    - Botan::TLS::Server_Hello_12::supports_encrypt_then_mac
    - std::make_unique<Server_Hello_Internal>
    - Botan::TLS::Server_Hello_12::supports_extended_master_secret
    - type
    - use_ecc_point_compression
    - supports_alpn
    - update
    - std::string_view::empty
    - make_hello_random
    - Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
    - Extended_Master_Secret::Extended_Master_Secret
    - Ciphersuite::cbc_ciphersuite
    - extension_types
    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/msg_server_hello.cpp:356,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 356
    functionName: Botan::TLS::Server_Hello_12::Server_Hello_12
    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::Server_Hello_12(const std::vector<uint8_t>& buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:358,1
    - Dst: version
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:359,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:360,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::unique_ptr<Server_Hello_Internal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 362
    functionName: Botan::TLS::Server_Hello_12::Server_Hello_12
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - std::move
    - version
    linkageType: ''
    returnType: void
    signature: void Server_Hello_12::Server_Hello_12(std::unique_ptr<Server_Hello_Internal>
      data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 366
    functionName: Botan::TLS::Server_Hello_12::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::selected_version() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 370
    functionName: Botan::TLS::Server_Hello_12::secure_renegotiation
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.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/msg_server_hello.cpp:373,1
    - Dst: Renegotiation_Extension*::renegotiation_info
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:374,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 377
    functionName: Botan::TLS::Server_Hello_12::renegotiation_info
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - Renegotiation_Extension*::renegotiation_info
    - extensions
    - std::vector<uint8_t>
    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/msg_server_hello.cpp:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 381
    functionName: Botan::TLS::Server_Hello_12::supports_extended_master_secret
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.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/msg_server_hello.cpp:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 385
    functionName: Botan::TLS::Server_Hello_12::supports_encrypt_then_mac
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.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/msg_server_hello.cpp:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 389
    functionName: Botan::TLS::Server_Hello_12::supports_certificate_status_message
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.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/msg_server_hello.cpp:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 393
    functionName: Botan::TLS::Server_Hello_12::supports_session_ticket
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.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/msg_server_hello.cpp:396,1
    - Dst: auto*::profiles
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:397,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:398,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:399,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 405
    functionName: Botan::TLS::Server_Hello_12::srtp_profile
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - auto::size
    - extensions
    - 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/msg_server_hello.cpp:408,1
    - Dst: auto*::single_protocol
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:409,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 412
    functionName: Botan::TLS::Server_Hello_12::next_protocol
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - auto*::single_protocol
    - extensions
    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/msg_server_hello.cpp:415,1
    - Dst: auto*::prefers_compressed
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 414
    functionDepth: 1
    functionLinenumber: 414
    functionLinenumberEnd: 419
    functionName: Botan::TLS::Server_Hello_12::prefers_compressed_ec_points
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - auto*::prefers_compressed
    - extensions
    linkageType: ''
    returnType: bool
    signature: bool Server_Hello_12::prefers_compressed_ec_points() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: load_be<uint64_t>
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:422,1
    - Dst: random
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:422,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 431
    functionName: Botan::TLS::Server_Hello_12::random_signals_downgrade
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - load_be<uint64_t>
    - random
    linkageType: ''
    returnType: std::optional<Protocol_Version>
    signature: std::optional<Protocol_Version> Server_Hello_12::random_signals_downgrade()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:437,1
    - Dst: send
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:437,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' io'
    - ' hash'
    argTypes:
    - Handshake_IO
    - Handshake_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 438
    functionName: Botan::TLS::Server_Hello_Done::Server_Hello_Done
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.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/msg_server_hello.cpp:444,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:445,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 447
    functionName: Botan::TLS::Server_Hello_Done::Server_Hello_Done
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - empty
    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/msg_server_hello.cpp:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 454
    functionName: Botan::TLS::Server_Hello_Done::serialize
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.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: 4
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:469,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:477,1
    - Dst: has
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:477,1
    - Dst: has
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:477,1
    - Dst: get
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:478,1
    - Dst: get
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:479,1
    - Dst: choose_key_exchange_group
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:480,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:487,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:493,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:494,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:505,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:511,1
    - Dst: Hello_Retry_Request
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:512,1
    - Dst: Botan::TLS::Server_Hello_13::Server_Hello_13
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:514,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: 516
      start: 462
    functionDepth: 3
    functionLinenumber: 462
    functionLinenumberEnd: 516
    functionName: Botan::TLS::Server_Hello_13::create
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - has
    - choose_key_exchange_group
    - extensions
    - Botan::TLS::Server_Hello_13::Server_Hello_13
    - TLS_Exception
    - get
    - BOTAN_STATE_CHECK
    - Hello_Retry_Request
    - value_exists
    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/msg_server_hello.cpp:520,1
    - Dst: auto::version
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:521,1
    - Dst: auto::is_pre_tls_13
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:524,1
    - Dst: Server_Hello_12
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:525,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:525,1
    - Dst: auto::is_hello_retry_request
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:530,1
    - Dst: Hello_Retry_Request
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:531,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:531,1
    - Dst: Botan::TLS::Server_Hello_13::Server_Hello_13
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:534,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:534,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:537,1
    - Dst: auto::to_string
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:537,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 518
    functionDepth: 3
    functionLinenumber: 518
    functionLinenumberEnd: 538
    functionName: Botan::TLS::Server_Hello_13::parse
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 12
    functionsReached:
    - std::move
    - Server_Hello_12
    - Botan::TLS::Server_Hello_13::Server_Hello_13
    - TLS_Exception
    - std::make_unique<Server_Hello_Internal>
    - auto::is_pre_tls_13
    - auto::is_hello_retry_request
    - auto::to_string
    - Hello_Retry_Request
    - auto::version
    linkageType: ''
    returnType: std::variant<Hello_Retry_Request, Server_Hello_13, Server_Hello_12>
    signature: "std::variant<Hello_Retry_Request, Server_Hello_13, Server_Hello_12>
      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/msg_server_hello.cpp:544,1
    - Dst: version
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:544,1
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:562,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:563,1
    - Dst: legacy_version
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:564,1
    - Dst: compression_method
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:569,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:570,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:575,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:576,1
    - Dst: Botan::TLS::Server_Hello_13::selected_version
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:583,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:584,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 543
    functionDepth: 2
    functionLinenumber: 543
    functionLinenumberEnd: 586
    functionName: Botan::TLS::Server_Hello_13::basic_validation
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - extensions
    - TLS_Exception
    - compression_method
    - Botan::TLS::Server_Hello_13::selected_version
    - version
    - 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/msg_server_hello.cpp:590,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:591,1
    - Dst: is_hello_retry_request
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:591,1
    - Dst: Botan::TLS::Server_Hello_13::basic_validation
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:592,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:594,1
    - Dst: contains_other_than
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:613,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:614,1
    - Dst: has
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:621,1
    - Dst: has
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:621,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:622,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::unique_ptr<Server_Hello_Internal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 588
    functionDepth: 2
    functionLinenumber: 588
    functionLinenumberEnd: 624
    functionName: Botan::TLS::Server_Hello_13::Server_Hello_13
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 4
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - has
    - std::move
    - extensions
    - TLS_Exception
    - contains_other_than
    - Botan::TLS::Server_Hello_13::basic_validation
    - is_hello_retry_request
    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/msg_server_hello.cpp:628,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:629,1
    - Dst: is_hello_retry_request
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:629,1
    - Dst: Botan::TLS::Server_Hello_13::basic_validation
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:630,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:632,1
    - Dst: contains_other_than
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:647,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:648,1
    - Dst: has
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:655,1
    - Dst: has
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:655,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:656,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::unique_ptr<Server_Hello_Internal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 626
    functionDepth: 2
    functionLinenumber: 626
    functionLinenumberEnd: 658
    functionName: Botan::TLS::Server_Hello_13::Server_Hello_13
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 4
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - has
    - std::move
    - extensions
    - TLS_Exception
    - contains_other_than
    - Botan::TLS::Server_Hello_13::basic_validation
    - is_hello_retry_request
    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/msg_server_hello.cpp:662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::unique_ptr<Server_Hello_Internal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 662
    functionName: Botan::TLS::Server_Hello_13::Server_Hello_13
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.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/msg_server_hello.cpp:667,1
    - Dst: ciphersuite_list
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:669,1
    - Dst: server_uses_own_ciphersuite_preferences
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:671,1
    - Dst: std::swap
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:672,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:697,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:706,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - ' ch'
    - ' policy'
    argTypes:
    - Client_Hello_13
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 666
    functionDepth: 1
    functionLinenumber: 666
    functionLinenumberEnd: 707
    functionName: Botan::TLS::choose_ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - std::swap
    - ciphersuite_list
    - ciphersuites
    - server_uses_own_ciphersuite_preferences
    - value_exists
    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/msg_server_hello.cpp:667,1
    - Dst: ciphersuite_list
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:669,1
    - Dst: server_uses_own_ciphersuite_preferences
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:671,1
    - Dst: std::swap
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:672,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:697,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:706,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - ' ch'
    - ' policy'
    argTypes:
    - Client_Hello_13
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 666
    functionDepth: 1
    functionLinenumber: 666
    functionLinenumberEnd: 707
    functionName: Botan::TLS::choose_ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - std::swap
    - ciphersuite_list
    - ciphersuites
    - server_uses_own_ciphersuite_preferences
    - value_exists
    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/msg_server_hello.cpp:717,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:719,1
    - Dst: make_server_hello_random
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:720,1
    - Dst: choose_ciphersuite
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:721,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:732,1
    - Dst: Supported_Versions::Supported_Versions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:732,1
    - Dst: std::optional<Named_Group>::has_value
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:734,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:735,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:735,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:736,1
    - Dst: Botan::TLS::Key_Share::create_as_encapsulation
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:736,1
    - Dst: std::optional<Named_Group>::value
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:737,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:737,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:740,1
    - Dst: has
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:742,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:743,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:743,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:744,1
    - Dst: get
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:751,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:752,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:756,1
    - Dst: auto*::modes
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:756,1
    - Dst: get
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:757,1
    - Dst: sni_hostname
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:758,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:758,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:762,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:762,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:767,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:767,1
    - Dst: type
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:767,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: 768
      start: 710
    functionDepth: 2
    functionLinenumber: 710
    functionLinenumberEnd: 768
    functionName: Botan::TLS::Server_Hello_13::Server_Hello_13
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 4
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - has
    - BOTAN_ASSERT_NONNULL
    - tls_modify_extensions
    - std::optional<Named_Group>::has_value
    - ciphersuite
    - std::optional<Named_Group>::value
    - extensions
    - session_id
    - Botan::TLS::Ciphersuite::by_id
    - Botan::TLS::Key_Share::create_as_encapsulation
    - choose_ciphersuite
    - make_server_hello_random
    - std::make_unique<Server_Hello_Internal>
    - auto::value
    - Supported_Versions::Supported_Versions
    - get
    - type
    - value_exists
    - std::move
    - auto*::modes
    - sni_hostname
    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<uint64_t>
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:771,1
    - Dst: random
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:771,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 780
    functionName: Botan::TLS::Server_Hello_13::random_signals_downgrade
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - load_be<uint64_t>
    - random
    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/msg_server_hello.cpp:783,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:784,1
    - Dst: auto*::versions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:785,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:786,1
    - Dst: size
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:786,1
    - Dst: front
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:787,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 782
    functionDepth: 1
    functionLinenumber: 782
    functionLinenumberEnd: 788
    functionName: Botan::TLS::Server_Hello_13::selected_version
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - extensions
    - size
    - auto*::versions
    - front
    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/msg_server_hello.cpp:791,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::unique_ptr<Server_Hello_Internal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 790
    functionDepth: 0
    functionLinenumber: 790
    functionLinenumberEnd: 791
    functionName: Botan::TLS::Hello_Retry_Request::Hello_Retry_Request
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.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/msg_server_hello.cpp:797,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:799,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:800,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:800,1
    - Dst: end
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:800,1
    - Dst: choose_ciphersuite
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:801,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:811,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:811,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:812,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:812,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:814,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:814,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:814,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:828,1
    - Dst: Supported_Versions::Supported_Versions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:828,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:830,1
    - Dst: Key_Share::Key_Share
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:830,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:833,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:833,1
    - Dst: type
      Src: /src/botan/src/lib/tls/msg_server_hello.cpp:833,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: 834
      start: 793
    functionDepth: 1
    functionLinenumber: 793
    functionLinenumberEnd: 834
    functionName: Botan::TLS::Hello_Retry_Request::Hello_Retry_Request
    functionSourceFile: /src/botan/src/lib/tls/msg_server_hello.cpp
    functionUses: 0
    functionsReached:
    - Key_Share::Key_Share
    - extensions
    - BOTAN_STATE_CHECK
    - std::make_unique<Server_Hello_Internal>
    - session_id
    - tls_modify_extensions
    - choose_ciphersuite
    - Supported_Versions::Supported_Versions
    - std::vector<uint8_t>
    - end
    - type
    - begin
    - value_exists
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/lib/tls/tls_version.h:46,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/lib/tls/tls_version.h:48,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/lib/tls/tls_version.h:58,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_version.h:68,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_version.h:75,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_version.h:75,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls_version.h:90,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls_version.h:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 158
    functionName: Botan::TLS::final
    functionSourceFile: /src/botan/src/lib/tls/tls_version.h
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - static_cast<uint8_t>
    - Botan::TLS::Protocol_Version
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/lib/tls/tls_version.h:46,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/lib/tls/tls_version.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 50
    functionName: Botan::TLS::latest_tls_version
    functionSourceFile: /src/botan/src/lib/tls/tls_version.h
    functionUses: 2
    functionsReached:
    - Botan::TLS::Protocol_Version
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version latest_tls_version()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/lib/tls/tls_version.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: Botan::TLS::latest_dtls_version
    functionSourceFile: /src/botan/src/lib/tls/tls_version.h
    functionUses: 4
    functionsReached:
    - Botan::TLS::Protocol_Version
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version latest_dtls_version()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: Botan::TLS::Protocol_Version
    functionSourceFile: /src/botan/src/lib/tls/tls_version.h
    functionUses: 15
    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: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: Botan::TLS::Protocol_Version
    functionSourceFile: /src/botan/src/lib/tls/tls_version.h
    functionUses: 15
    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:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - named_version
    argTypes:
    - Version_Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: Botan::TLS::Protocol_Version
    functionSourceFile: /src/botan/src/lib/tls/tls_version.h
    functionUses: 15
    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:75,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_version.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - major
    - minor
    argTypes:
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: Botan::TLS::Protocol_Version
    functionSourceFile: /src/botan/src/lib/tls/tls_version.h
    functionUses: 15
    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: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::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: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::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: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    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: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    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: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    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: 144
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 144
    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: 149
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 149
    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: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    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: Botan::TLS::Protocol_Version
      Src: /src/botan/src/lib/tls/tls_version.h:46,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/lib/tls/tls_version.h:48,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/lib/tls/tls_version.h:58,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_version.h:68,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_version.h:75,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_version.h:75,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls_version.h:90,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls_version.h:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 158
    functionName: Botan::TLS::final
    functionSourceFile: /src/botan/src/lib/tls/tls_version.h
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - static_cast<uint8_t>
    - Botan::TLS::Protocol_Version
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/lib/tls/tls_version.h:46,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/lib/tls/tls_version.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 50
    functionName: Botan::TLS::latest_tls_version
    functionSourceFile: /src/botan/src/lib/tls/tls_version.h
    functionUses: 2
    functionsReached:
    - Botan::TLS::Protocol_Version
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version latest_tls_version()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/lib/tls/tls_version.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: Botan::TLS::latest_dtls_version
    functionSourceFile: /src/botan/src/lib/tls/tls_version.h
    functionUses: 4
    functionsReached:
    - Botan::TLS::Protocol_Version
    linkageType: ''
    returnType: Protocol_Version
    signature: Protocol_Version latest_dtls_version()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: Botan::TLS::Protocol_Version
    functionSourceFile: /src/botan/src/lib/tls/tls_version.h
    functionUses: 18
    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: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: Botan::TLS::Protocol_Version
    functionSourceFile: /src/botan/src/lib/tls/tls_version.h
    functionUses: 18
    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:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - named_version
    argTypes:
    - Version_Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: Botan::TLS::Protocol_Version
    functionSourceFile: /src/botan/src/lib/tls/tls_version.h
    functionUses: 18
    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:75,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_version.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - major
    - minor
    argTypes:
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: Botan::TLS::Protocol_Version
    functionSourceFile: /src/botan/src/lib/tls/tls_version.h
    functionUses: 18
    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: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::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: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::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: 100
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 100
    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: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    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: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    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: 144
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 144
    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: 149
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 149
    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: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    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: 61
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 61
    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: 61
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 61
    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:150,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_algos.h:165,1
    - Dst: Botan::TLS::wire_code
      Src: /src/botan/src/lib/tls/tls_algos.h:184,1
    - Dst: Botan::TLS::wire_code
      Src: /src/botan/src/lib/tls/tls_algos.h:184,1
    - Dst: Botan::TLS::is_x25519
      Src: /src/botan/src/lib/tls/tls_algos.h:207,1
    - Dst: Botan::TLS::is_x448
      Src: /src/botan/src/lib/tls/tls_algos.h:207,1
    - Dst: Botan::TLS::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls_algos.h:207,1
    - Dst: Botan::TLS::is_pqc_hybrid_ml_kem
      Src: /src/botan/src/lib/tls/tls_algos.h:237,1
    - Dst: Botan::TLS::is_pqc_hybrid_frodokem
      Src: /src/botan/src/lib/tls/tls_algos.h:237,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 256
    functionName: Botan::TLS::final
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::is_x448
    - static_cast<uint16_t>
    - Botan::TLS::wire_code
    - Botan::TLS::is_ecdh_named_curve
    - Botan::TLS::is_pqc_hybrid_ml_kem
    - Botan::TLS::is_x25519
    - static_cast<Group_Params_Code>
    - Botan::TLS::is_pqc_hybrid_frodokem
    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: 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()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - code
    argTypes:
    - Group_Params_Code
    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: []
    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:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - code
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    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: 157
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 157
    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: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    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: 161
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 161
    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: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    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:165,1
    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::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: 172
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 172
    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: 174
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 174
    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: 180
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 180
    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:184,1
    - Dst: Botan::TLS::wire_code
      Src: /src/botan/src/lib/tls/tls_algos.h:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 185
    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: 191
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 191
    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: 196
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 196
    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: 205
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 205
    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:207,1
    - Dst: Botan::TLS::is_x448
      Src: /src/botan/src/lib/tls/tls_algos.h:207,1
    - Dst: Botan::TLS::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls_algos.h:207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 207
    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: 216
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 216
    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: 222
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 222
    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: 235
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 235
    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:237,1
    - Dst: Botan::TLS::is_pqc_hybrid_frodokem
      Src: /src/botan/src/lib/tls/tls_algos.h:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 237
    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: 246
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 246
    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: 279
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 279
    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:150,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls_algos.h:165,1
    - Dst: Botan::TLS::wire_code
      Src: /src/botan/src/lib/tls/tls_algos.h:184,1
    - Dst: Botan::TLS::wire_code
      Src: /src/botan/src/lib/tls/tls_algos.h:184,1
    - Dst: Botan::TLS::is_x25519
      Src: /src/botan/src/lib/tls/tls_algos.h:207,1
    - Dst: Botan::TLS::is_x448
      Src: /src/botan/src/lib/tls/tls_algos.h:207,1
    - Dst: Botan::TLS::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls_algos.h:207,1
    - Dst: Botan::TLS::is_pqc_hybrid_ml_kem
      Src: /src/botan/src/lib/tls/tls_algos.h:237,1
    - Dst: Botan::TLS::is_pqc_hybrid_frodokem
      Src: /src/botan/src/lib/tls/tls_algos.h:237,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 256
    functionName: Botan::TLS::final
    functionSourceFile: /src/botan/src/lib/tls/tls_algos.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::is_x448
    - static_cast<uint16_t>
    - Botan::TLS::wire_code
    - Botan::TLS::is_ecdh_named_curve
    - Botan::TLS::is_pqc_hybrid_ml_kem
    - Botan::TLS::is_x25519
    - static_cast<Group_Params_Code>
    - Botan::TLS::is_pqc_hybrid_frodokem
    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: 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()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - code
    argTypes:
    - Group_Params_Code
    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: []
    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:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - code
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    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: 157
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 157
    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: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    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: 161
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 161
    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: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    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:165,1
    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::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: 172
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 172
    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: 174
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 174
    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: 180
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 180
    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:184,1
    - Dst: Botan::TLS::wire_code
      Src: /src/botan/src/lib/tls/tls_algos.h:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 185
    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: 191
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 191
    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: 196
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 196
    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: 205
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 205
    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:207,1
    - Dst: Botan::TLS::is_x448
      Src: /src/botan/src/lib/tls/tls_algos.h:207,1
    - Dst: Botan::TLS::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls_algos.h:207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 207
    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: 216
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 216
    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: 222
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 222
    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: 235
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 235
    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:237,1
    - Dst: Botan::TLS::is_pqc_hybrid_frodokem
      Src: /src/botan/src/lib/tls/tls_algos.h:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 237
    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: 246
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 246
    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: 279
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 279
    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: 3
    BranchProfiles: []
    Callsites:
    - Dst: latest_supported_version
      Src: /src/botan/src/lib/tls/tls_server.cpp:35,1
    - Dst: auto::is_pre_tls_13
      Src: /src/botan/src/lib/tls/tls_server.cpp:37,1
    - Dst: std::make_unique<Server_Impl_13>
      Src: /src/botan/src/lib/tls/tls_server.cpp:39,1
    - Dst: expects_downgrade
      Src: /src/botan/src/lib/tls/tls_server.cpp:41,1
    - Dst: set_io_buffer_size
      Src: /src/botan/src/lib/tls/tls_server.cpp:42,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/tls/tls_server.cpp:45,1
    - Dst: std::make_unique<Server_Impl_12>
      Src: /src/botan/src/lib/tls/tls_server.cpp:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    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: 50
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 50
    functionName: Botan::TLS::Server::Server
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Server_Impl_12>
    - std::make_unique<Server_Impl_13>
    - set_io_buffer_size
    - auto::is_pre_tls_13
    - expects_downgrade
    - latest_supported_version
    - 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: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    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:55,1
    - Dst: is_downgrading
      Src: /src/botan/src/lib/tls/tls_server.cpp:57,1
    - Dst: extract_downgrade_info
      Src: /src/botan/src/lib/tls/tls_server.cpp:58,1
    - Dst: std::make_unique<Server_Impl_12>
      Src: /src/botan/src/lib/tls/tls_server.cpp:59,1
    - Dst: Botan::TLS::Server::from_peer
      Src: /src/botan/src/lib/tls/tls_server.cpp:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 66
    functionName: Botan::TLS::Server::from_peer
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 1
    functionsReached:
    - is_downgrading
    - Botan::TLS::Server::from_peer
    - extract_downgrade_info
    - std::make_unique<Server_Impl_12>
    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:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 70
    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: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::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:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 78
    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:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 82
    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:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 86
    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:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 90
    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:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 94
    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:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 98
    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:101,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: 102
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 102
    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:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - force_full_renegotiation
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 106
    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: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::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:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tickets
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 114
    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:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - request_peer_update
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 118
    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:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 122
    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:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 126
    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:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' alert'
    argTypes:
    - Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 130
    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:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Alert::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 134
    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:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Alert::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 138
    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: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::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: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::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: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::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: 3
    BranchProfiles: []
    Callsites:
    - Dst: latest_supported_version
      Src: /src/botan/src/lib/tls/tls_server.cpp:35,1
    - Dst: auto::is_pre_tls_13
      Src: /src/botan/src/lib/tls/tls_server.cpp:37,1
    - Dst: std::make_unique<Server_Impl_13>
      Src: /src/botan/src/lib/tls/tls_server.cpp:39,1
    - Dst: expects_downgrade
      Src: /src/botan/src/lib/tls/tls_server.cpp:41,1
    - Dst: set_io_buffer_size
      Src: /src/botan/src/lib/tls/tls_server.cpp:42,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/tls/tls_server.cpp:45,1
    - Dst: std::make_unique<Server_Impl_12>
      Src: /src/botan/src/lib/tls/tls_server.cpp:48,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    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: 50
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 50
    functionName: Botan::TLS::Server::Server
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Server_Impl_12>
    - std::make_unique<Server_Impl_13>
    - set_io_buffer_size
    - auto::is_pre_tls_13
    - expects_downgrade
    - latest_supported_version
    - 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: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    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:55,1
    - Dst: is_downgrading
      Src: /src/botan/src/lib/tls/tls_server.cpp:57,1
    - Dst: extract_downgrade_info
      Src: /src/botan/src/lib/tls/tls_server.cpp:58,1
    - Dst: std::make_unique<Server_Impl_12>
      Src: /src/botan/src/lib/tls/tls_server.cpp:59,1
    - Dst: Botan::TLS::Server::from_peer
      Src: /src/botan/src/lib/tls/tls_server.cpp:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 66
    functionName: Botan::TLS::Server::from_peer
    functionSourceFile: /src/botan/src/lib/tls/tls_server.cpp
    functionUses: 2
    functionsReached:
    - is_downgrading
    - Botan::TLS::Server::from_peer
    - extract_downgrade_info
    - std::make_unique<Server_Impl_12>
    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:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 70
    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: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::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:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 78
    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:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 82
    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:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 86
    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:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 90
    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:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 94
    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:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 98
    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:101,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: 102
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 102
    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:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - force_full_renegotiation
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 106
    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: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::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:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tickets
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 114
    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:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - request_peer_update
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 118
    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:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 122
    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:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 126
    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:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' alert'
    argTypes:
    - Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 130
    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:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Alert::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 134
    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:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Alert::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 138
    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: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::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: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::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: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::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: 49
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 49
    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: 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()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::PerfTest_MessageAuthenticationCode::PerfTest_MessageAuthenticationCode
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - wire_code
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 53
    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: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    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:58,1
    - Dst: Signature_Scheme::all_available_schemes
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: Botan::TLS::Signature_Scheme::is_available
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.cpp
    functionUses: 8
    functionsReached:
    - Signature_Scheme::all_available_schemes
    - value_exists
    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: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    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:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 100
    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: 130
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 130
    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: 166
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 166
    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: 194
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 194
    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: 14
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:200,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:202,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:204,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 223
    functionName: Botan::TLS::Signature_Scheme::key_algorithm_identifier
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.cpp
    functionUses: 4
    functionsReached:
    - AlgorithmIdentifier
    - Botan::EC_Group::from_name
    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:228,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:228,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:230,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:230,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:232,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:232,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:234,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:234,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:241,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:241,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:243,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:243,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: PSS_Params
      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: PSS_Params
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:248,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:250,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:250,1
    - Dst: PSS_Params
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:250,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 256
    functionName: Botan::TLS::Signature_Scheme::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_string
    - AlgorithmIdentifier
    - PSS_Params
    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: 280
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 280
    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:288,1
    - Dst: is_pre_tls_13
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:297,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - ' protocol_version'
    argTypes:
    - Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 303
    functionName: Botan::TLS::Signature_Scheme::is_compatible_with
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.cpp
    functionUses: 0
    functionsReached:
    - is_pre_tls_13
    - Botan::TLS::Signature_Scheme::hash_function_name
    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:306,1
    - Dst: algo_name
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:306,1
    - Dst: key_length
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:311,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 17
    argCount: 1
    argNames:
    - ' private_key'
    argTypes:
    - Private_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 329
    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: transform
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:333,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:333,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:333,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:333,1
    - Dst: algorithm_identifier
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' schemes'
    argTypes:
    - std::vector<Signature_Scheme>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 337
    functionName: Botan::TLS::to_algorithm_identifiers
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.cpp
    functionUses: 0
    functionsReached:
    - std::back_inserter
    - transform
    - end
    - begin
    - algorithm_identifier
    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: 49
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 49
    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: 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()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_CLI::PerfTest_MessageAuthenticationCode::PerfTest_MessageAuthenticationCode
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - wire_code
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 53
    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: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    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:58,1
    - Dst: Signature_Scheme::all_available_schemes
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: Botan::TLS::Signature_Scheme::is_available
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.cpp
    functionUses: 8
    functionsReached:
    - Signature_Scheme::all_available_schemes
    - value_exists
    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: 63
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 63
    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:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 100
    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: 130
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 130
    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: 166
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 166
    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: 194
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 194
    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: 14
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:200,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:202,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:204,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 223
    functionName: Botan::TLS::Signature_Scheme::key_algorithm_identifier
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.cpp
    functionUses: 4
    functionsReached:
    - AlgorithmIdentifier
    - Botan::EC_Group::from_name
    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:228,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:228,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:230,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:230,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:232,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:232,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:234,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:234,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:241,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:241,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:243,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:243,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: PSS_Params
      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: PSS_Params
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:248,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:250,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:250,1
    - Dst: PSS_Params
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:250,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 256
    functionName: Botan::TLS::Signature_Scheme::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_string
    - AlgorithmIdentifier
    - PSS_Params
    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: 280
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 280
    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:288,1
    - Dst: is_pre_tls_13
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:297,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 8
    argCount: 1
    argNames:
    - ' protocol_version'
    argTypes:
    - Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 303
    functionName: Botan::TLS::Signature_Scheme::is_compatible_with
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.cpp
    functionUses: 0
    functionsReached:
    - is_pre_tls_13
    - Botan::TLS::Signature_Scheme::hash_function_name
    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:306,1
    - Dst: algo_name
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:306,1
    - Dst: key_length
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:311,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 17
    argCount: 1
    argNames:
    - ' private_key'
    argTypes:
    - Private_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 329
    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: transform
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:333,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:333,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:333,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:333,1
    - Dst: algorithm_identifier
      Src: /src/botan/src/lib/tls/tls_signature_scheme.cpp:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' schemes'
    argTypes:
    - std::vector<Signature_Scheme>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 337
    functionName: Botan::TLS::to_algorithm_identifiers
    functionSourceFile: /src/botan/src/lib/tls/tls_signature_scheme.cpp
    functionUses: 0
    functionsReached:
    - std::back_inserter
    - transform
    - end
    - begin
    - algorithm_identifier
    linkageType: ''
    returnType: std::vector<AlgorithmIdentifier>
    signature: std::vector<AlgorithmIdentifier> to_algorithm_identifiers(const std::vector<Signature_Scheme>&
      schemes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: protocol_specific_prf
      Src: /src/botan/src/lib/tls/msg_finished.cpp:36,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/msg_finished.cpp:40,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/msg_finished.cpp:41,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/msg_finished.cpp:43,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/msg_finished.cpp:43,1
    - Dst: unlock
      Src: /src/botan/src/lib/tls/msg_finished.cpp:45,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/tls/msg_finished.cpp:45,1
    - Dst: session_keys
      Src: /src/botan/src/lib/tls/msg_finished.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' state'
    - side
    argTypes:
    - Handshake_State
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 46
    functionName: Botan::TLS::finished_compute_verify_12
    functionSourceFile: /src/botan/src/lib/tls/msg_finished.cpp
    functionUses: 0
    functionsReached:
    - session_keys
    - auto::derive_key
    - std::make_pair
    - protocol_specific_prf
    - hash
    - ciphersuite
    - 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/msg_finished.cpp:36,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/msg_finished.cpp:40,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/msg_finished.cpp:41,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/msg_finished.cpp:43,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/msg_finished.cpp:43,1
    - Dst: unlock
      Src: /src/botan/src/lib/tls/msg_finished.cpp:45,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/tls/msg_finished.cpp:45,1
    - Dst: session_keys
      Src: /src/botan/src/lib/tls/msg_finished.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' state'
    - side
    argTypes:
    - Handshake_State
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 46
    functionName: Botan::TLS::finished_compute_verify_12
    functionSourceFile: /src/botan/src/lib/tls/msg_finished.cpp
    functionUses: 0
    functionsReached:
    - session_keys
    - auto::derive_key
    - std::make_pair
    - protocol_specific_prf
    - hash
    - ciphersuite
    - 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: []
    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::TLS::Finished::serialize
    functionSourceFile: /src/botan/src/lib/tls/msg_finished.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Finished::serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: Botan::TLS::Finished::Finished
    functionSourceFile: /src/botan/src/lib/tls/msg_finished.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Finished::Finished(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: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: Botan::TLS::Finished::verify_data
    functionSourceFile: /src/botan/src/lib/tls/msg_finished.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Finished::verify_data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: finished_compute_verify_12
      Src: /src/botan/src/lib/tls/msg_finished.cpp:61,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/msg_finished.cpp:62,1
    - Dst: send
      Src: /src/botan/src/lib/tls/msg_finished.cpp:62,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: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: Botan::TLS::Finished_12::Finished_12
    functionSourceFile: /src/botan/src/lib/tls/msg_finished.cpp
    functionUses: 0
    functionsReached:
    - finished_compute_verify_12
    - hash
    - send
    linkageType: ''
    returnType: void
    signature: void Finished_12::Finished_12(Handshake_IO& io, Handshake_State& state,
      Connection_Side side)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: finished_compute_verify_12
      Src: /src/botan/src/lib/tls/msg_finished.cpp:66,1
    - Dst: size
      Src: /src/botan/src/lib/tls/msg_finished.cpp:72,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/msg_finished.cpp:72,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/tls/msg_finished.cpp:76,1
    - Dst: data
      Src: /src/botan/src/lib/tls/msg_finished.cpp:76,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/msg_finished.cpp:76,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/msg_finished.cpp:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' state'
    - side
    argTypes:
    - Handshake_State
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 78
    functionName: Botan::TLS::Finished_12::verify
    functionSourceFile: /src/botan/src/lib/tls/msg_finished.cpp
    functionUses: 0
    functionsReached:
    - finished_compute_verify_12
    - Botan::CT::is_equal
    - data
    - size
    - std::vector::data
    - std::vector::size
    linkageType: ''
    returnType: bool
    signature: bool Finished_12::verify(const Handshake_State& state, Connection_Side
      side) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Cipher_State*::finished_mac
      Src: /src/botan/src/lib/tls/msg_finished.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cipher_state
    - ' transcript_hash'
    argTypes:
    - Cipher_State*
    - Transcript_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 83
    functionName: Botan::TLS::Finished_13::Finished_13
    functionSourceFile: /src/botan/src/lib/tls/msg_finished.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/msg_finished.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cipher_state
    - ' transcript_hash'
    argTypes:
    - Cipher_State*
    - Transcript_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: Botan::TLS::Finished_13::verify
    functionSourceFile: /src/botan/src/lib/tls/msg_finished.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: protocol_specific_prf
      Src: /src/botan/src/lib/tls/msg_finished.cpp:36,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/msg_finished.cpp:40,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/msg_finished.cpp:41,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/msg_finished.cpp:43,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/msg_finished.cpp:43,1
    - Dst: unlock
      Src: /src/botan/src/lib/tls/msg_finished.cpp:45,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/tls/msg_finished.cpp:45,1
    - Dst: session_keys
      Src: /src/botan/src/lib/tls/msg_finished.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' state'
    - side
    argTypes:
    - Handshake_State
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 46
    functionName: Botan::TLS::finished_compute_verify_12
    functionSourceFile: /src/botan/src/lib/tls/msg_finished.cpp
    functionUses: 0
    functionsReached:
    - session_keys
    - auto::derive_key
    - std::make_pair
    - protocol_specific_prf
    - hash
    - ciphersuite
    - 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/msg_finished.cpp:36,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/msg_finished.cpp:40,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/msg_finished.cpp:41,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/msg_finished.cpp:43,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/msg_finished.cpp:43,1
    - Dst: unlock
      Src: /src/botan/src/lib/tls/msg_finished.cpp:45,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/tls/msg_finished.cpp:45,1
    - Dst: session_keys
      Src: /src/botan/src/lib/tls/msg_finished.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' state'
    - side
    argTypes:
    - Handshake_State
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 46
    functionName: Botan::TLS::finished_compute_verify_12
    functionSourceFile: /src/botan/src/lib/tls/msg_finished.cpp
    functionUses: 0
    functionsReached:
    - session_keys
    - auto::derive_key
    - std::make_pair
    - protocol_specific_prf
    - hash
    - ciphersuite
    - 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: []
    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::TLS::Finished::serialize
    functionSourceFile: /src/botan/src/lib/tls/msg_finished.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Finished::serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: Botan::TLS::Finished::Finished
    functionSourceFile: /src/botan/src/lib/tls/msg_finished.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Finished::Finished(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: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: Botan::TLS::Finished::verify_data
    functionSourceFile: /src/botan/src/lib/tls/msg_finished.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Finished::verify_data() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: finished_compute_verify_12
      Src: /src/botan/src/lib/tls/msg_finished.cpp:61,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/msg_finished.cpp:62,1
    - Dst: send
      Src: /src/botan/src/lib/tls/msg_finished.cpp:62,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: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: Botan::TLS::Finished_12::Finished_12
    functionSourceFile: /src/botan/src/lib/tls/msg_finished.cpp
    functionUses: 0
    functionsReached:
    - finished_compute_verify_12
    - hash
    - send
    linkageType: ''
    returnType: void
    signature: void Finished_12::Finished_12(Handshake_IO& io, Handshake_State& state,
      Connection_Side side)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: finished_compute_verify_12
      Src: /src/botan/src/lib/tls/msg_finished.cpp:66,1
    - Dst: size
      Src: /src/botan/src/lib/tls/msg_finished.cpp:72,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/msg_finished.cpp:72,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/tls/msg_finished.cpp:76,1
    - Dst: data
      Src: /src/botan/src/lib/tls/msg_finished.cpp:76,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/msg_finished.cpp:76,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/msg_finished.cpp:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' state'
    - side
    argTypes:
    - Handshake_State
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 78
    functionName: Botan::TLS::Finished_12::verify
    functionSourceFile: /src/botan/src/lib/tls/msg_finished.cpp
    functionUses: 0
    functionsReached:
    - finished_compute_verify_12
    - Botan::CT::is_equal
    - data
    - size
    - std::vector::data
    - std::vector::size
    linkageType: ''
    returnType: bool
    signature: bool Finished_12::verify(const Handshake_State& state, Connection_Side
      side) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Cipher_State*::finished_mac
      Src: /src/botan/src/lib/tls/msg_finished.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cipher_state
    - ' transcript_hash'
    argTypes:
    - Cipher_State*
    - Transcript_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 83
    functionName: Botan::TLS::Finished_13::Finished_13
    functionSourceFile: /src/botan/src/lib/tls/msg_finished.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/msg_finished.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cipher_state
    - ' transcript_hash'
    argTypes:
    - Cipher_State*
    - Transcript_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: Botan::TLS::Finished_13::verify
    functionSourceFile: /src/botan/src/lib/tls/msg_finished.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: []
    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::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: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    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: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    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: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    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: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    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: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    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: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    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: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    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::find
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:68,1
    - Dst: Botan::TLS::store
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:71,1
    - Dst: Botan::TLS::remove
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:73,1
    - Dst: Botan::TLS::remove_all
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:75,1
    - Dst: Botan::TLS::get
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 94
    functionName: Botan::TLS::Session_Manager
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_hybrid.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::store
    - Botan::TLS::remove_all
    - Botan::TLS::find
    - Botan::TLS::remove
    - Session_Manager_Hybrid
    - Botan::TLS::get
    linkageType: ''
    returnType: Session_Manager_Hybrid
    signature: Session_Manager_Hybrid Session_Manager
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::find
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' info'
    - ' callbacks'
    - ' policy'
    argTypes:
    - Server_Information
    - Callbacks
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: Botan::TLS::find
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_hybrid.h
    functionUses: 2
    functionsReached:
    - Botan::TLS::find
    linkageType: ''
    returnType: std::vector<Session_with_Handle>
    signature: "std::vector<Session_with_Handle> find(const Server_Information& info,\n
      \                                           Callbacks& callbacks,\n                                            const
      Policy& policy) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::store
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' session'
    - ' handle'
    argTypes:
    - Session
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    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:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    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: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::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: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::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::find
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:68,1
    - Dst: Botan::TLS::store
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:71,1
    - Dst: Botan::TLS::remove
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:73,1
    - Dst: Botan::TLS::remove_all
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:75,1
    - Dst: Botan::TLS::get
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 94
    functionName: Botan::TLS::Session_Manager
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_hybrid.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::store
    - Botan::TLS::remove_all
    - Botan::TLS::find
    - Botan::TLS::remove
    - Session_Manager_Hybrid
    - Botan::TLS::get
    linkageType: ''
    returnType: Session_Manager_Hybrid
    signature: Session_Manager_Hybrid Session_Manager
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::find
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' info'
    - ' callbacks'
    - ' policy'
    argTypes:
    - Server_Information
    - Callbacks
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: Botan::TLS::find
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_hybrid.h
    functionUses: 4
    functionsReached:
    - Botan::TLS::find
    linkageType: ''
    returnType: std::vector<Session_with_Handle>
    signature: "std::vector<Session_with_Handle> find(const Server_Information& info,\n
      \                                           Callbacks& callbacks,\n                                            const
      Policy& policy) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::store
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' session'
    - ' handle'
    argTypes:
    - Session
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    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:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    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: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::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: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::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::find
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:68,1
    - Dst: Botan::TLS::store
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:71,1
    - Dst: Botan::TLS::remove
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:73,1
    - Dst: Botan::TLS::remove_all
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:75,1
    - Dst: Botan::TLS::get
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 94
    functionName: Botan::TLS::Session_Manager
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_hybrid.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::store
    - Botan::TLS::remove_all
    - Botan::TLS::find
    - Botan::TLS::remove
    - Session_Manager_Hybrid
    - Botan::TLS::get
    linkageType: ''
    returnType: Session_Manager_Hybrid
    signature: Session_Manager_Hybrid Session_Manager
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::find
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' info'
    - ' callbacks'
    - ' policy'
    argTypes:
    - Server_Information
    - Callbacks
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: Botan::TLS::find
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_hybrid.h
    functionUses: 6
    functionsReached:
    - Botan::TLS::find
    linkageType: ''
    returnType: std::vector<Session_with_Handle>
    signature: "std::vector<Session_with_Handle> find(const Server_Information& info,\n
      \                                           Callbacks& callbacks,\n                                            const
      Policy& policy) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::store
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' session'
    - ' handle'
    argTypes:
    - Session
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    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:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    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: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::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: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::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::find
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:68,1
    - Dst: Botan::TLS::store
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:71,1
    - Dst: Botan::TLS::remove
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:73,1
    - Dst: Botan::TLS::remove_all
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:75,1
    - Dst: Botan::TLS::get
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 94
    functionName: Botan::TLS::Session_Manager
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_hybrid.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::store
    - Botan::TLS::remove_all
    - Botan::TLS::find
    - Botan::TLS::remove
    - Session_Manager_Hybrid
    - Botan::TLS::get
    linkageType: ''
    returnType: Session_Manager_Hybrid
    signature: Session_Manager_Hybrid Session_Manager
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::find
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' info'
    - ' callbacks'
    - ' policy'
    argTypes:
    - Server_Information
    - Callbacks
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: Botan::TLS::find
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_hybrid.h
    functionUses: 8
    functionsReached:
    - Botan::TLS::find
    linkageType: ''
    returnType: std::vector<Session_with_Handle>
    signature: "std::vector<Session_with_Handle> find(const Server_Information& info,\n
      \                                           Callbacks& callbacks,\n                                            const
      Policy& policy) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::store
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' session'
    - ' handle'
    argTypes:
    - Session
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    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:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' handle'
    argTypes:
    - Session_Handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    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: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::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: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::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: 16
    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: 16
    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: std::move
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:23,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:26,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: 27
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 27
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Session_Manager_Hybrid::establish
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:37,1
    - Dst: BOTAN_ASSERT_IMPLICATION
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:38,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:38,1
    - Dst: auto::is_ticket
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:39,1
    - Dst: Botan::TLS::Session_Manager_Hybrid::establish
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:47,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:47,1
    - Dst: BOTAN_ASSERT_IMPLICATION
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:48,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:49,1
    - Dst: auto::is_id
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:49,1
    - Dst: std::swap
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:57,1
    - Dst: preferred
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:60,1
    - Dst: fallback
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:64,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: 65
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 65
    functionName: Botan::TLS::Session_Manager_Hybrid::establish
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT_IMPLICATION
    - auto::has_value
    - auto::is_id
    - std::swap
    - preferred
    - Botan::TLS::Session_Manager_Hybrid::establish
    - fallback
    - version
    - auto::is_ticket
    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:74,1
    - Dst: std::reference_wrapper::get
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:77,1
    - Dst: std::reference_wrapper::get
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ' handle'
    - ' callbacks'
    - ' policy'
    argTypes:
    - Session_Handle
    - Callbacks
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 82
    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:85,1
    - Dst: Botan::TLS::Session_Manager_Hybrid::emits_session_tickets
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 86
    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:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 90
    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:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 95
    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:23,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:26,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: 27
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 27
    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: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Session_Manager_Hybrid::establish
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:37,1
    - Dst: BOTAN_ASSERT_IMPLICATION
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:38,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:38,1
    - Dst: auto::is_ticket
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:39,1
    - Dst: Botan::TLS::Session_Manager_Hybrid::establish
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:47,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:47,1
    - Dst: BOTAN_ASSERT_IMPLICATION
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:48,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:49,1
    - Dst: auto::is_id
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:49,1
    - Dst: std::swap
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:57,1
    - Dst: preferred
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:60,1
    - Dst: fallback
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:64,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: 65
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 65
    functionName: Botan::TLS::Session_Manager_Hybrid::establish
    functionSourceFile: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_IMPLICATION
    - auto::has_value
    - auto::is_id
    - std::swap
    - preferred
    - Botan::TLS::Session_Manager_Hybrid::establish
    - fallback
    - version
    - auto::is_ticket
    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:74,1
    - Dst: std::reference_wrapper::get
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:77,1
    - Dst: std::reference_wrapper::get
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - ' handle'
    - ' callbacks'
    - ' policy'
    argTypes:
    - Session_Handle
    - Callbacks
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 82
    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:85,1
    - Dst: Botan::TLS::Session_Manager_Hybrid::emits_session_tickets
      Src: /src/botan/src/lib/tls/tls_session_manager_hybrid.cpp:85,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 86
    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:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 90
    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:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 95
    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/msg_session_ticket.cpp:29,1
    - Dst: update
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:30,1
    - Dst: send
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' io'
    - ' hash'
    - ticket
    - lifetime
    argTypes:
    - Handshake_IO
    - Handshake_Hash
    - Session_Ticket
    - std::chrono::seconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 31
    functionName: Botan::TLS::New_Session_Ticket_12::New_Session_Ticket_12
    functionSourceFile: /src/botan/src/lib/tls/msg_session_ticket.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - send
    - update
    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                                             std::chrono::seconds lifetime)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:34,1
    - Dst: send
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' io'
    - ' hash'
    argTypes:
    - Handshake_IO
    - Handshake_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: Botan::TLS::New_Session_Ticket_12::New_Session_Ticket_12
    functionSourceFile: /src/botan/src/lib/tls/msg_session_ticket.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/msg_session_ticket.cpp:38,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:39,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:44,1
    - Dst: TLS_Data_Reader::get_uint32_t
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:44,1
    - Dst: Session_Ticket
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:45,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:45,1
    - Dst: TLS_Data_Reader::assert_done
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 47
    functionName: Botan::TLS::New_Session_Ticket_12::New_Session_Ticket_12
    functionSourceFile: /src/botan/src/lib/tls/msg_session_ticket.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - TLS_Data_Reader::assert_done
    - Botan_CLI::Timer::seconds
    - size
    - TLS_Data_Reader::get_uint32_t
    - TLS_Data_Reader::get_range
    - 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: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:53,1
    - Dst: std::chrono::seconds::count
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:53,1
    - Dst: std::chrono::seconds::count
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:53,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:53,1
    - Dst: store_be
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:55,1
    - Dst: static_cast<lifetime_t>
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:55,1
    - Dst: std::chrono::seconds::count
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:55,1
    - Dst: std::span<uint8_t>::data
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:55,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: 56
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: Botan::TLS::store_lifetime
    functionSourceFile: /src/botan/src/lib/tls/msg_session_ticket.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::random_bit_generator::max
    - static_cast<lifetime_t>
    - std::chrono::seconds::count
    - store_be
    - BOTAN_ARG_CHECK
    - std::span<uint8_t>::data
    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/msg_session_ticket.cpp:53,1
    - Dst: std::chrono::seconds::count
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:53,1
    - Dst: std::chrono::seconds::count
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:53,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:53,1
    - Dst: store_be
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:55,1
    - Dst: static_cast<lifetime_t>
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:55,1
    - Dst: std::chrono::seconds::count
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:55,1
    - Dst: std::span<uint8_t>::data
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:55,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: 56
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: Botan::TLS::store_lifetime
    functionSourceFile: /src/botan/src/lib/tls/msg_session_ticket.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::random_bit_generator::max
    - static_cast<lifetime_t>
    - std::chrono::seconds::count
    - store_be
    - BOTAN_ARG_CHECK
    - std::span<uint8_t>::data
    linkageType: ''
    returnType: void
    signature: void store_lifetime(std::span<uint8_t> sink, std::chrono::seconds lifetime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store_be
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:62,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:62,1
    - Dst: count
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:62,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:62,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:63,1
    - Dst: get
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 65
    functionName: Botan::TLS::New_Session_Ticket_12::serialize
    functionSourceFile: /src/botan/src/lib/tls/msg_session_ticket.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - count
    - store_be
    - std::vector::data
    - get
    - append_tls_length_value
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> New_Session_Ticket_12::serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lifetime_hint
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:73,1
    - Dst: session_age_add
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:74,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:75,1
    - Dst: opaque_handle
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:76,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:77,1
    - Dst: type
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:77,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: 78
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 78
    functionName: Botan::TLS::New_Session_Ticket_13::New_Session_Ticket_13
    functionSourceFile: /src/botan/src/lib/tls/msg_session_ticket.cpp
    functionUses: 0
    functionsReached:
    - lifetime_hint
    - std::move
    - session_age_add
    - tls_modify_extensions
    - opaque_handle
    - 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/msg_session_ticket.cpp:83,1
    - Dst: TLS_Data_Reader::get_uint32_t
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:83,1
    - Dst: std::chrono::days
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:88,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:89,1
    - Dst: TLS_Data_Reader::get_uint32_t
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:92,1
    - Dst: Ticket_Nonce
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:93,1
    - Dst: TLS_Data_Reader::get_tls_length_value
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:93,1
    - Dst: Opaque_Session_Handle
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:94,1
    - Dst: TLS_Data_Reader::get_tls_length_value
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:94,1
    - Dst: deserialize
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:96,1
    - Dst: type
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:96,1
    - Dst: contains_implemented_extensions_other_than
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:102,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:103,1
    - Dst: TLS_Data_Reader::assert_done
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:106,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - ' buf'
    - from
    argTypes:
    - std::vector<uint8_t>
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 107
    functionName: Botan::TLS::New_Session_Ticket_13::New_Session_Ticket_13
    functionSourceFile: /src/botan/src/lib/tls/msg_session_ticket.cpp
    functionUses: 0
    functionsReached:
    - Opaque_Session_Handle
    - TLS_Data_Reader::assert_done
    - TLS_Exception
    - TLS_Data_Reader::get_tls_length_value
    - Botan_CLI::Timer::seconds
    - TLS_Data_Reader::get_uint32_t
    - type
    - deserialize
    - contains_implemented_extensions_other_than
    - std::chrono::days
    - Ticket_Nonce
    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/msg_session_ticket.cpp:110,1
    - Dst: get
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:114,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:115,1
    - Dst: EarlyDataIndication*::max_early_data_size
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:115,1
    - Dst: EarlyDataIndication*::max_early_data_size
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 117
    functionName: Botan::TLS::New_Session_Ticket_13::early_data_byte_limit
    functionSourceFile: /src/botan/src/lib/tls/msg_session_ticket.cpp
    functionUses: 0
    functionsReached:
    - has
    - BOTAN_ASSERT_NOMSG
    - EarlyDataIndication*::max_early_data_size
    - get
    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/msg_session_ticket.cpp:122,1
    - Dst: std::span
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:122,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:122,1
    - Dst: store_be
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:123,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:123,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:124,1
    - Dst: get
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:124,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:125,1
    - Dst: get
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:125,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:128,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:129,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:130,1
    - Dst: Botan::TLS::New_Session_Ticket_13::serialize
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 136
    functionName: Botan::TLS::New_Session_Ticket_13::serialize
    functionSourceFile: /src/botan/src/lib/tls/msg_session_ticket.cpp
    functionUses: 1
    functionsReached:
    - std::vector::push_back
    - Botan::TLS::New_Session_Ticket_13::serialize
    - store_be
    - std::vector::data
    - empty
    - get
    - append_tls_length_value
    - store_lifetime
    - std::span
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> New_Session_Ticket_13::serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:29,1
    - Dst: update
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:30,1
    - Dst: send
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' io'
    - ' hash'
    - ticket
    - lifetime
    argTypes:
    - Handshake_IO
    - Handshake_Hash
    - Session_Ticket
    - std::chrono::seconds
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 31
    functionName: Botan::TLS::New_Session_Ticket_12::New_Session_Ticket_12
    functionSourceFile: /src/botan/src/lib/tls/msg_session_ticket.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - send
    - update
    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                                             std::chrono::seconds lifetime)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:34,1
    - Dst: send
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' io'
    - ' hash'
    argTypes:
    - Handshake_IO
    - Handshake_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: Botan::TLS::New_Session_Ticket_12::New_Session_Ticket_12
    functionSourceFile: /src/botan/src/lib/tls/msg_session_ticket.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/msg_session_ticket.cpp:38,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:39,1
    - Dst: Botan_CLI::Timer::seconds
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:44,1
    - Dst: TLS_Data_Reader::get_uint32_t
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:44,1
    - Dst: Session_Ticket
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:45,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:45,1
    - Dst: TLS_Data_Reader::assert_done
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 47
    functionName: Botan::TLS::New_Session_Ticket_12::New_Session_Ticket_12
    functionSourceFile: /src/botan/src/lib/tls/msg_session_ticket.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - TLS_Data_Reader::assert_done
    - Botan_CLI::Timer::seconds
    - size
    - TLS_Data_Reader::get_uint32_t
    - TLS_Data_Reader::get_range
    - 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: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:53,1
    - Dst: std::chrono::seconds::count
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:53,1
    - Dst: std::chrono::seconds::count
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:53,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:53,1
    - Dst: store_be
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:55,1
    - Dst: static_cast<lifetime_t>
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:55,1
    - Dst: std::chrono::seconds::count
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:55,1
    - Dst: std::span<uint8_t>::data
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:55,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: 56
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: Botan::TLS::store_lifetime
    functionSourceFile: /src/botan/src/lib/tls/msg_session_ticket.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::random_bit_generator::max
    - static_cast<lifetime_t>
    - std::chrono::seconds::count
    - store_be
    - BOTAN_ARG_CHECK
    - std::span<uint8_t>::data
    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/msg_session_ticket.cpp:53,1
    - Dst: std::chrono::seconds::count
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:53,1
    - Dst: std::chrono::seconds::count
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:53,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:53,1
    - Dst: store_be
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:55,1
    - Dst: static_cast<lifetime_t>
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:55,1
    - Dst: std::chrono::seconds::count
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:55,1
    - Dst: std::span<uint8_t>::data
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:55,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: 56
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: Botan::TLS::store_lifetime
    functionSourceFile: /src/botan/src/lib/tls/msg_session_ticket.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::random_bit_generator::max
    - static_cast<lifetime_t>
    - std::chrono::seconds::count
    - store_be
    - BOTAN_ARG_CHECK
    - std::span<uint8_t>::data
    linkageType: ''
    returnType: void
    signature: void store_lifetime(std::span<uint8_t> sink, std::chrono::seconds lifetime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store_be
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:62,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:62,1
    - Dst: count
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:62,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:62,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:63,1
    - Dst: get
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 65
    functionName: Botan::TLS::New_Session_Ticket_12::serialize
    functionSourceFile: /src/botan/src/lib/tls/msg_session_ticket.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    - count
    - store_be
    - std::vector::data
    - get
    - append_tls_length_value
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> New_Session_Ticket_12::serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lifetime_hint
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:73,1
    - Dst: session_age_add
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:74,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:75,1
    - Dst: opaque_handle
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:76,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:77,1
    - Dst: type
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:77,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: 78
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 78
    functionName: Botan::TLS::New_Session_Ticket_13::New_Session_Ticket_13
    functionSourceFile: /src/botan/src/lib/tls/msg_session_ticket.cpp
    functionUses: 0
    functionsReached:
    - lifetime_hint
    - std::move
    - session_age_add
    - tls_modify_extensions
    - opaque_handle
    - 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/msg_session_ticket.cpp:83,1
    - Dst: TLS_Data_Reader::get_uint32_t
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:83,1
    - Dst: std::chrono::days
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:88,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:89,1
    - Dst: TLS_Data_Reader::get_uint32_t
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:92,1
    - Dst: Ticket_Nonce
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:93,1
    - Dst: TLS_Data_Reader::get_tls_length_value
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:93,1
    - Dst: Opaque_Session_Handle
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:94,1
    - Dst: TLS_Data_Reader::get_tls_length_value
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:94,1
    - Dst: deserialize
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:96,1
    - Dst: type
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:96,1
    - Dst: contains_implemented_extensions_other_than
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:102,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:103,1
    - Dst: TLS_Data_Reader::assert_done
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:106,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - ' buf'
    - from
    argTypes:
    - std::vector<uint8_t>
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 107
    functionName: Botan::TLS::New_Session_Ticket_13::New_Session_Ticket_13
    functionSourceFile: /src/botan/src/lib/tls/msg_session_ticket.cpp
    functionUses: 0
    functionsReached:
    - Opaque_Session_Handle
    - TLS_Data_Reader::assert_done
    - TLS_Exception
    - TLS_Data_Reader::get_tls_length_value
    - Botan_CLI::Timer::seconds
    - TLS_Data_Reader::get_uint32_t
    - type
    - deserialize
    - contains_implemented_extensions_other_than
    - std::chrono::days
    - Ticket_Nonce
    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/msg_session_ticket.cpp:110,1
    - Dst: get
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:114,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:115,1
    - Dst: EarlyDataIndication*::max_early_data_size
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:115,1
    - Dst: EarlyDataIndication*::max_early_data_size
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:116,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 117
    functionName: Botan::TLS::New_Session_Ticket_13::early_data_byte_limit
    functionSourceFile: /src/botan/src/lib/tls/msg_session_ticket.cpp
    functionUses: 0
    functionsReached:
    - has
    - BOTAN_ASSERT_NOMSG
    - EarlyDataIndication*::max_early_data_size
    - get
    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/msg_session_ticket.cpp:122,1
    - Dst: std::span
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:122,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:122,1
    - Dst: store_be
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:123,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:123,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:124,1
    - Dst: get
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:124,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:125,1
    - Dst: get
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:125,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:128,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:129,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:130,1
    - Dst: Botan::TLS::New_Session_Ticket_13::serialize
      Src: /src/botan/src/lib/tls/msg_session_ticket.cpp:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 136
    functionName: Botan::TLS::New_Session_Ticket_13::serialize
    functionSourceFile: /src/botan/src/lib/tls/msg_session_ticket.cpp
    functionUses: 2
    functionsReached:
    - std::vector::push_back
    - Botan::TLS::New_Session_Ticket_13::serialize
    - store_be
    - std::vector::data
    - empty
    - get
    - append_tls_length_value
    - store_lifetime
    - std::span
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> New_Session_Ticket_13::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:
    - Decoding_Error
    - discard_next
    - get_byte
    - get_uint16_t
    - get_fixed
    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:
    - Decoding_Error
    - discard_next
    - get_byte
    - get_uint16_t
    - get_fixed
    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:
    - std::make_unique<Certificate_Status_Request_Internal>
    - TLS_Exception
    - RFC6066_Empty_Certificate_Status_Request
    - RFC6066_Certificate_Status_Request
    - get_fixed
    - Certificate_Status
    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:
    - BOTAN_STATE_CHECK
    - BOTAN_ASSERT_NONNULL
    - std::holds_alternative<Certificate_Status>
    - std::get<Certificate_Status>
    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:
    - Decoding_Error
    - discard_next
    - get_byte
    - get_uint16_t
    - get_fixed
    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:
    - Decoding_Error
    - discard_next
    - get_byte
    - get_uint16_t
    - get_fixed
    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:
    - std::make_unique<Certificate_Status_Request_Internal>
    - TLS_Exception
    - RFC6066_Empty_Certificate_Status_Request
    - RFC6066_Certificate_Status_Request
    - get_fixed
    - Certificate_Status
    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:
    - BOTAN_STATE_CHECK
    - BOTAN_ASSERT_NONNULL
    - std::holds_alternative<Certificate_Status>
    - std::get<Certificate_Status>
    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: 214
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 214
    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: 216
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 216
    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: 267
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 267
    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: 214
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 214
    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: 216
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 216
    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: 267
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 267
    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:27,1
    - Dst: Group_Params::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:27,1
    - Dst: Group_Params::code
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 1
    argNames:
    - group
    argTypes:
    - Group_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 75
    functionName: Botan::TLS::algorithm_specs_for_group
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - Group_Params::is_pqc_hybrid
    - Group_Params::code
    - BOTAN_ARG_CHECK
    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:78,1
    - Dst: Group_Params::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:78,1
    - Dst: Botan::TLS::algorithm_specs_for_group
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:80,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:82,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:82,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:93,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:93,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:93,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
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - group
    argTypes:
    - Group_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 100
    functionName: Botan::TLS::algorithm_identifiers_for_group
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::vector::push_back
    - Group_Params::is_pqc_hybrid
    - Botan::TLS::algorithm_specs_for_group
    - Botan::EC_Group::from_name
    - AlgorithmIdentifier
    - auto::size
    - std::vector::reserve
    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:103,1
    - Dst: Group_Params::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:103,1
    - Dst: Group_Params::code
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 1
    argNames:
    - group
    argTypes:
    - Group_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 140
    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::is_pqc_hybrid
    - Group_Params::code
    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:144,1
    - Dst: std::vector<std::unique_ptr<Public_Key>>::begin
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:144,1
    - Dst: std::vector<std::unique_ptr<Public_Key>>::end
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:144,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:144,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:145,1
    - Dst: supports_operation
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:146,1
    - Dst: supports_operation
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:147,1
    - Dst: std::make_unique<KEX_to_KEM_Adapter_PublicKey>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:148,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:148,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pks
    argTypes:
    - std::vector<std::unique_ptr<Public_Key>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 154
    functionName: Botan::TLS::convert_kex_to_kem_pks
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::vector<std::unique_ptr<Public_Key>>::begin
    - supports_operation
    - BOTAN_ARG_CHECK
    - std::make_unique<KEX_to_KEM_Adapter_PublicKey>
    - std::back_inserter
    - std::vector<std::unique_ptr<Public_Key>>::end
    - transform
    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:158,1
    - Dst: std::vector<std::unique_ptr<Private_Key>>::begin
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:158,1
    - Dst: std::vector<std::unique_ptr<Private_Key>>::end
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:158,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:158,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:159,1
    - Dst: supports_operation
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:160,1
    - Dst: supports_operation
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:161,1
    - Dst: dynamic_cast<PK_Key_Agreement_Key*>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:162,1
    - Dst: Botan::TLS::get
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:162,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:163,1
    - Dst: release
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:164,1
    - Dst: std::make_unique<KEX_to_KEM_Adapter_PrivateKey>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:165,1
    - Dst: std::unique_ptr<PK_Key_Agreement_Key>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:165,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - sks
    argTypes:
    - std::vector<std::unique_ptr<Private_Key>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 171
    functionName: Botan::TLS::convert_kex_to_kem_sks
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<KEX_to_KEM_Adapter_PrivateKey>
    - dynamic_cast<PK_Key_Agreement_Key*>
    - std::move
    - supports_operation
    - std::unique_ptr<PK_Key_Agreement_Key>
    - BOTAN_ASSERT_NONNULL
    - BOTAN_ARG_CHECK
    - std::back_inserter
    - release
    - std::vector<std::unique_ptr<Private_Key>>::end
    - transform
    - std::vector<std::unique_ptr<Private_Key>>::begin
    - Botan::TLS::get
    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:178,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:178,1
    - Dst: shared_key_length
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:178,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:183,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:185,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:185,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: 186
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 186
    functionName: Botan::TLS::concat_secret_combiner
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - BufferStuffer::append
    - BufferStuffer::full
    - BOTAN_ARG_CHECK
    - shared_key_length
    - std::span<uint8_t>::size
    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:190,1
    - Dst: shared_key_length
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' operation'
    argTypes:
    - std::vector<KEM_Operation>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: Botan::TLS::concat_shared_key_length
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - shared_key_length
    - reduce
    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: 198
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 198
    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:205,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: 206
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 206
    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:209,1
    - Dst: encryptors
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 210
    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:
    - encryptors
    - concat_shared_key_length
    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: 219
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 219
    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:226,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: 227
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 227
    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:230,1
    - Dst: decryptors
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 231
    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:
    - decryptors
    - concat_shared_key_length
    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:27,1
    - Dst: Group_Params::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:27,1
    - Dst: Group_Params::code
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 1
    argNames:
    - group
    argTypes:
    - Group_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 75
    functionName: Botan::TLS::algorithm_specs_for_group
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 1
    functionsReached:
    - Group_Params::is_pqc_hybrid
    - Group_Params::code
    - BOTAN_ARG_CHECK
    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:78,1
    - Dst: Group_Params::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:78,1
    - Dst: Botan::TLS::algorithm_specs_for_group
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:80,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:82,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:82,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:93,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:93,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:93,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
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - group
    argTypes:
    - Group_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 100
    functionName: Botan::TLS::algorithm_identifiers_for_group
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::vector::push_back
    - Group_Params::is_pqc_hybrid
    - Botan::TLS::algorithm_specs_for_group
    - Botan::EC_Group::from_name
    - AlgorithmIdentifier
    - auto::size
    - std::vector::reserve
    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:103,1
    - Dst: Group_Params::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:103,1
    - Dst: Group_Params::code
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 1
    argNames:
    - group
    argTypes:
    - Group_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 140
    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::is_pqc_hybrid
    - Group_Params::code
    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:144,1
    - Dst: std::vector<std::unique_ptr<Public_Key>>::begin
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:144,1
    - Dst: std::vector<std::unique_ptr<Public_Key>>::end
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:144,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:144,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:145,1
    - Dst: supports_operation
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:146,1
    - Dst: supports_operation
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:147,1
    - Dst: std::make_unique<KEX_to_KEM_Adapter_PublicKey>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:148,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:148,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pks
    argTypes:
    - std::vector<std::unique_ptr<Public_Key>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 154
    functionName: Botan::TLS::convert_kex_to_kem_pks
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::vector<std::unique_ptr<Public_Key>>::begin
    - supports_operation
    - BOTAN_ARG_CHECK
    - std::make_unique<KEX_to_KEM_Adapter_PublicKey>
    - std::back_inserter
    - std::vector<std::unique_ptr<Public_Key>>::end
    - transform
    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:158,1
    - Dst: std::vector<std::unique_ptr<Private_Key>>::begin
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:158,1
    - Dst: std::vector<std::unique_ptr<Private_Key>>::end
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:158,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:158,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:159,1
    - Dst: supports_operation
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:160,1
    - Dst: supports_operation
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:161,1
    - Dst: dynamic_cast<PK_Key_Agreement_Key*>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:162,1
    - Dst: Botan::TLS::get
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:162,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:163,1
    - Dst: release
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:164,1
    - Dst: std::make_unique<KEX_to_KEM_Adapter_PrivateKey>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:165,1
    - Dst: std::unique_ptr<PK_Key_Agreement_Key>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:165,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - sks
    argTypes:
    - std::vector<std::unique_ptr<Private_Key>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 171
    functionName: Botan::TLS::convert_kex_to_kem_sks
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<KEX_to_KEM_Adapter_PrivateKey>
    - dynamic_cast<PK_Key_Agreement_Key*>
    - std::move
    - supports_operation
    - std::unique_ptr<PK_Key_Agreement_Key>
    - BOTAN_ASSERT_NONNULL
    - BOTAN_ARG_CHECK
    - std::back_inserter
    - release
    - std::vector<std::unique_ptr<Private_Key>>::end
    - transform
    - std::vector<std::unique_ptr<Private_Key>>::begin
    - Botan::TLS::get
    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:178,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:178,1
    - Dst: shared_key_length
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:178,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:183,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:185,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:185,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: 186
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 186
    functionName: Botan::TLS::concat_secret_combiner
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - BufferStuffer::append
    - BufferStuffer::full
    - BOTAN_ARG_CHECK
    - shared_key_length
    - std::span<uint8_t>::size
    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:190,1
    - Dst: shared_key_length
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' operation'
    argTypes:
    - std::vector<KEM_Operation>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: Botan::TLS::concat_shared_key_length
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - shared_key_length
    - reduce
    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: 198
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 198
    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:205,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: 206
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 206
    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:209,1
    - Dst: encryptors
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 210
    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:
    - encryptors
    - concat_shared_key_length
    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: 219
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 219
    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:226,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: 227
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 227
    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:230,1
    - Dst: decryptors
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 231
    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:
    - decryptors
    - concat_shared_key_length
    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:238,1
    - Dst: algorithm_identifiers_for_group
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:239,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:240,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:240,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:240,1
    - Dst: reduce
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:243,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:244,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:245,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:250,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:250,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:251,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:252,1
    - Dst: load_public_key
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:252,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:252,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:254,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:254,1
    - Dst: std::make_unique<Hybrid_KEM_PublicKey>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:255,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:255,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: 256
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 256
    functionName: Botan::TLS::Hybrid_KEM_PublicKey::load_for_group
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - algorithm_identifiers_for_group
    - Decoding_Error
    - std::move
    - BufferSlicer::empty
    - std::span<const uint8_t>::size
    - std::vector::emplace_back
    - std::make_unique<Hybrid_KEM_PublicKey>
    - reduce
    - load_public_key
    - BufferSlicer::take
    - auto::size
    - public_key_lengths_for_group
    - std::vector::reserve
    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:259,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pks
    argTypes:
    - std::vector<std::unique_ptr<Public_Key>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 259
    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:262,1
    - Dst: extract_public_keys
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:262,1
    - Dst: convert_kex_to_kem_sks
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:263,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - sks
    argTypes:
    - std::vector<std::unique_ptr<Private_Key>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 263
    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
    - convert_kex_to_kem_sks
    - std::move
    - 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:267,1
    - Dst: public_keys
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:271,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 275
    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:278,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 279
    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:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 283
    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:293,1
    - Dst: public_keys
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:293,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:293,1
    - Dst: concat
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:294,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey::raw_public_key_bits
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 296
    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
    - std::vector<uint8_t>
    - reduce
    - Botan::TLS::Hybrid_KEM_PublicKey::raw_public_key_bits
    - public_keys
    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:299,1
    - Dst: generate_other_sks_from_pks
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 300
    functionName: Botan::TLS::Hybrid_KEM_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Hybrid_KEM_PrivateKey>
    - generate_other_sks_from_pks
    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:304,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:305,1
    - Dst: std::make_unique<Hybrid_TLS_KEM_Encryptor>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:307,1
    - Dst: public_keys
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:307,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 308
    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:
    - Botan::Invalid_Argument
    - std::make_unique<Hybrid_TLS_KEM_Encryptor>
    - public_keys
    - std::string_view::empty
    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:312,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:314,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:314,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:316,1
    - Dst: create_private_key
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:316,1
    - Dst: std::make_unique<Hybrid_KEM_PrivateKey>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:318,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - group
    - ' rng'
    argTypes:
    - Group_Params
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 319
    functionName: Botan::TLS::Hybrid_KEM_PrivateKey::generate_from_group
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 2
    functionsReached:
    - std::move
    - std::vector::push_back
    - algorithm_specs_for_group
    - std::make_unique<Hybrid_KEM_PrivateKey>
    - auto::size
    - std::vector::reserve
    - create_private_key
    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:323,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:324,1
    - Dst: std::make_unique<Hybrid_TLS_KEM_Decryptor>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:326,1
    - Dst: private_keys
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:326,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: 327
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 327
    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:
    - Botan::Invalid_Argument
    - private_keys
    - std::make_unique<Hybrid_TLS_KEM_Decryptor>
    - std::string_view::empty
    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:27,1
    - Dst: Group_Params::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:27,1
    - Dst: Group_Params::code
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 1
    argNames:
    - group
    argTypes:
    - Group_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 75
    functionName: Botan::TLS::algorithm_specs_for_group
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 2
    functionsReached:
    - Group_Params::is_pqc_hybrid
    - Group_Params::code
    - BOTAN_ARG_CHECK
    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:78,1
    - Dst: Group_Params::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:78,1
    - Dst: Botan::TLS::algorithm_specs_for_group
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:80,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:82,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:82,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:93,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:93,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:93,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
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - group
    argTypes:
    - Group_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 100
    functionName: Botan::TLS::algorithm_identifiers_for_group
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::vector::push_back
    - Group_Params::is_pqc_hybrid
    - Botan::TLS::algorithm_specs_for_group
    - Botan::EC_Group::from_name
    - AlgorithmIdentifier
    - auto::size
    - std::vector::reserve
    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:103,1
    - Dst: Group_Params::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:103,1
    - Dst: Group_Params::code
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 1
    argNames:
    - group
    argTypes:
    - Group_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 140
    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::is_pqc_hybrid
    - Group_Params::code
    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:144,1
    - Dst: std::vector<std::unique_ptr<Public_Key>>::begin
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:144,1
    - Dst: std::vector<std::unique_ptr<Public_Key>>::end
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:144,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:144,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:145,1
    - Dst: supports_operation
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:146,1
    - Dst: supports_operation
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:147,1
    - Dst: std::make_unique<KEX_to_KEM_Adapter_PublicKey>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:148,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:148,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pks
    argTypes:
    - std::vector<std::unique_ptr<Public_Key>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 154
    functionName: Botan::TLS::convert_kex_to_kem_pks
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::vector<std::unique_ptr<Public_Key>>::begin
    - supports_operation
    - BOTAN_ARG_CHECK
    - std::make_unique<KEX_to_KEM_Adapter_PublicKey>
    - std::back_inserter
    - std::vector<std::unique_ptr<Public_Key>>::end
    - transform
    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:158,1
    - Dst: std::vector<std::unique_ptr<Private_Key>>::begin
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:158,1
    - Dst: std::vector<std::unique_ptr<Private_Key>>::end
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:158,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:158,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:159,1
    - Dst: supports_operation
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:160,1
    - Dst: supports_operation
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:161,1
    - Dst: dynamic_cast<PK_Key_Agreement_Key*>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:162,1
    - Dst: Botan::TLS::get
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:162,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:163,1
    - Dst: release
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:164,1
    - Dst: std::make_unique<KEX_to_KEM_Adapter_PrivateKey>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:165,1
    - Dst: std::unique_ptr<PK_Key_Agreement_Key>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:165,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - sks
    argTypes:
    - std::vector<std::unique_ptr<Private_Key>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 171
    functionName: Botan::TLS::convert_kex_to_kem_sks
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<KEX_to_KEM_Adapter_PrivateKey>
    - dynamic_cast<PK_Key_Agreement_Key*>
    - std::move
    - supports_operation
    - std::unique_ptr<PK_Key_Agreement_Key>
    - BOTAN_ASSERT_NONNULL
    - BOTAN_ARG_CHECK
    - std::back_inserter
    - release
    - std::vector<std::unique_ptr<Private_Key>>::end
    - transform
    - std::vector<std::unique_ptr<Private_Key>>::begin
    - Botan::TLS::get
    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:178,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:178,1
    - Dst: shared_key_length
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:178,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:183,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:185,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:185,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: 186
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 186
    functionName: Botan::TLS::concat_secret_combiner
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - BufferStuffer::append
    - BufferStuffer::full
    - BOTAN_ARG_CHECK
    - shared_key_length
    - std::span<uint8_t>::size
    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:190,1
    - Dst: shared_key_length
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' operation'
    argTypes:
    - std::vector<KEM_Operation>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: Botan::TLS::concat_shared_key_length
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - shared_key_length
    - reduce
    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: 198
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 198
    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:205,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: 206
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 206
    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:209,1
    - Dst: encryptors
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 210
    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:
    - encryptors
    - concat_shared_key_length
    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: 219
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 219
    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:226,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: 227
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 227
    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:230,1
    - Dst: decryptors
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 231
    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:
    - decryptors
    - concat_shared_key_length
    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:27,1
    - Dst: Group_Params::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:27,1
    - Dst: Group_Params::code
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 32
    argCount: 1
    argNames:
    - group
    argTypes:
    - Group_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 75
    functionName: Botan::TLS::algorithm_specs_for_group
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 3
    functionsReached:
    - Group_Params::is_pqc_hybrid
    - Group_Params::code
    - BOTAN_ARG_CHECK
    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:78,1
    - Dst: Group_Params::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:78,1
    - Dst: Botan::TLS::algorithm_specs_for_group
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:80,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:82,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:82,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:93,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:93,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:93,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
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - group
    argTypes:
    - Group_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 100
    functionName: Botan::TLS::algorithm_identifiers_for_group
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::vector::push_back
    - Group_Params::is_pqc_hybrid
    - Botan::TLS::algorithm_specs_for_group
    - Botan::EC_Group::from_name
    - AlgorithmIdentifier
    - auto::size
    - std::vector::reserve
    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:103,1
    - Dst: Group_Params::is_pqc_hybrid
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:103,1
    - Dst: Group_Params::code
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 1
    argNames:
    - group
    argTypes:
    - Group_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 140
    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::is_pqc_hybrid
    - Group_Params::code
    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:144,1
    - Dst: std::vector<std::unique_ptr<Public_Key>>::begin
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:144,1
    - Dst: std::vector<std::unique_ptr<Public_Key>>::end
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:144,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:144,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:145,1
    - Dst: supports_operation
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:146,1
    - Dst: supports_operation
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:147,1
    - Dst: std::make_unique<KEX_to_KEM_Adapter_PublicKey>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:148,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:148,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pks
    argTypes:
    - std::vector<std::unique_ptr<Public_Key>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 154
    functionName: Botan::TLS::convert_kex_to_kem_pks
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::vector<std::unique_ptr<Public_Key>>::begin
    - supports_operation
    - BOTAN_ARG_CHECK
    - std::make_unique<KEX_to_KEM_Adapter_PublicKey>
    - std::back_inserter
    - std::vector<std::unique_ptr<Public_Key>>::end
    - transform
    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:158,1
    - Dst: std::vector<std::unique_ptr<Private_Key>>::begin
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:158,1
    - Dst: std::vector<std::unique_ptr<Private_Key>>::end
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:158,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:158,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:159,1
    - Dst: supports_operation
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:160,1
    - Dst: supports_operation
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:161,1
    - Dst: dynamic_cast<PK_Key_Agreement_Key*>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:162,1
    - Dst: Botan::TLS::get
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:162,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:163,1
    - Dst: release
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:164,1
    - Dst: std::make_unique<KEX_to_KEM_Adapter_PrivateKey>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:165,1
    - Dst: std::unique_ptr<PK_Key_Agreement_Key>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:165,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - sks
    argTypes:
    - std::vector<std::unique_ptr<Private_Key>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 171
    functionName: Botan::TLS::convert_kex_to_kem_sks
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<KEX_to_KEM_Adapter_PrivateKey>
    - dynamic_cast<PK_Key_Agreement_Key*>
    - std::move
    - supports_operation
    - std::unique_ptr<PK_Key_Agreement_Key>
    - BOTAN_ASSERT_NONNULL
    - BOTAN_ARG_CHECK
    - std::back_inserter
    - release
    - std::vector<std::unique_ptr<Private_Key>>::end
    - transform
    - std::vector<std::unique_ptr<Private_Key>>::begin
    - Botan::TLS::get
    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:178,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:178,1
    - Dst: shared_key_length
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:178,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:183,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:185,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:185,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: 186
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 186
    functionName: Botan::TLS::concat_secret_combiner
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - BufferStuffer::append
    - BufferStuffer::full
    - BOTAN_ARG_CHECK
    - shared_key_length
    - std::span<uint8_t>::size
    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:190,1
    - Dst: shared_key_length
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' operation'
    argTypes:
    - std::vector<KEM_Operation>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 192
    functionName: Botan::TLS::concat_shared_key_length
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - shared_key_length
    - reduce
    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: 198
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 198
    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:205,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: 206
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 206
    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:209,1
    - Dst: encryptors
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 210
    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:
    - encryptors
    - concat_shared_key_length
    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: 219
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 219
    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:226,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: 227
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 227
    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:230,1
    - Dst: decryptors
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 231
    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:
    - decryptors
    - concat_shared_key_length
    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:238,1
    - Dst: algorithm_identifiers_for_group
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:239,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:240,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:240,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:240,1
    - Dst: reduce
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:243,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:244,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:245,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:250,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:250,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:251,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:252,1
    - Dst: load_public_key
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:252,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:252,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:254,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:254,1
    - Dst: std::make_unique<Hybrid_KEM_PublicKey>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:255,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:255,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: 256
      start: 236
    functionDepth: 2
    functionLinenumber: 236
    functionLinenumberEnd: 256
    functionName: Botan::TLS::Hybrid_KEM_PublicKey::load_for_group
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - algorithm_identifiers_for_group
    - Decoding_Error
    - std::move
    - BufferSlicer::empty
    - std::span<const uint8_t>::size
    - std::vector::emplace_back
    - std::make_unique<Hybrid_KEM_PublicKey>
    - reduce
    - load_public_key
    - BufferSlicer::take
    - auto::size
    - public_key_lengths_for_group
    - std::vector::reserve
    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:259,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pks
    argTypes:
    - std::vector<std::unique_ptr<Public_Key>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 259
    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:262,1
    - Dst: extract_public_keys
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:262,1
    - Dst: convert_kex_to_kem_sks
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:263,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - sks
    argTypes:
    - std::vector<std::unique_ptr<Private_Key>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 263
    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
    - convert_kex_to_kem_sks
    - std::move
    - 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:267,1
    - Dst: public_keys
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:271,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:274,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 275
    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:278,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 279
    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:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 283
    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:293,1
    - Dst: public_keys
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:293,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:293,1
    - Dst: concat
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:294,1
    - Dst: Botan::TLS::Hybrid_KEM_PublicKey::raw_public_key_bits
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 296
    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
    - std::vector<uint8_t>
    - reduce
    - Botan::TLS::Hybrid_KEM_PublicKey::raw_public_key_bits
    - public_keys
    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:299,1
    - Dst: generate_other_sks_from_pks
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 298
    functionDepth: 0
    functionLinenumber: 298
    functionLinenumberEnd: 300
    functionName: Botan::TLS::Hybrid_KEM_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Hybrid_KEM_PrivateKey>
    - generate_other_sks_from_pks
    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:304,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:305,1
    - Dst: std::make_unique<Hybrid_TLS_KEM_Encryptor>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:307,1
    - Dst: public_keys
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:307,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 308
    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:
    - Botan::Invalid_Argument
    - std::make_unique<Hybrid_TLS_KEM_Encryptor>
    - public_keys
    - std::string_view::empty
    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:312,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:314,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:314,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:316,1
    - Dst: create_private_key
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:316,1
    - Dst: std::make_unique<Hybrid_KEM_PrivateKey>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:318,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - group
    - ' rng'
    argTypes:
    - Group_Params
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 319
    functionName: Botan::TLS::Hybrid_KEM_PrivateKey::generate_from_group
    functionSourceFile: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp
    functionUses: 2
    functionsReached:
    - std::move
    - std::vector::push_back
    - algorithm_specs_for_group
    - std::make_unique<Hybrid_KEM_PrivateKey>
    - auto::size
    - std::vector::reserve
    - create_private_key
    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:323,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:324,1
    - Dst: std::make_unique<Hybrid_TLS_KEM_Decryptor>
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:326,1
    - Dst: private_keys
      Src: /src/botan/src/lib/tls/tls13_pqc/hybrid_public_key.cpp:326,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: 327
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 327
    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:
    - Botan::Invalid_Argument
    - private_keys
    - std::make_unique<Hybrid_TLS_KEM_Decryptor>
    - std::string_view::empty
    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>
    - extract_public_keys
    - private_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>
    - extract_public_keys
    - private_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: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp:21,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp:22,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp:26,1
    - Dst: make_uint32
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp:29,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp:32,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp:33,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp:36,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp:36,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp:36,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 37
    functionName: Botan::TLS::Certificate_Status::Certificate_Status
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - assign
    - size
    - make_uint32
    - end
    - begin
    linkageType: ''
    returnType: void
    signature: void Certificate_Status::Certificate_Status(const std::vector<uint8_t>&
      buf, const Connection_Side /*side*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raw_bits
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp:40,1
    - Dst: update
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp:41,1
    - Dst: send
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' io'
    - ' hash'
    - ' ocsp'
    argTypes:
    - Handshake_IO
    - Handshake_Hash
    - OCSP::Response
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: Botan::TLS::Certificate_Status::Certificate_Status
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp
    functionUses: 0
    functionsReached:
    - update
    - raw_bits
    - send
    linkageType: ''
    returnType: void
    signature: void Certificate_Status::Certificate_Status(Handshake_IO& io, Handshake_Hash&
      hash, const OCSP::Response& ocsp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp:47,1
    - Dst: update
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp:48,1
    - Dst: send
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp:48,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: 49
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: Botan::TLS::Certificate_Status::Certificate_Status
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - send
    - update
    linkageType: ''
    returnType: void
    signature: "void Certificate_Status::Certificate_Status(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.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - raw_response_bytes
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: Botan::TLS::Certificate_Status::Certificate_Status
    functionSourceFile: /src/botan/src/lib/tls/tls12/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/tls12/msg_cert_status.cpp:55,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp:56,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp:59,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp:59,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp:62,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp:62,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp:63,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp:65,1
    - Dst: get_byte_var
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 70
    functionName: Botan::TLS::Certificate_Status::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - static_cast<uint32_t>
    - Encoding_Error
    - size
    - get_byte_var
    - std::vector::reserve
    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/tls12/msg_cert_status.cpp:21,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp:22,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp:26,1
    - Dst: make_uint32
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp:29,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp:32,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp:33,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp:36,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp:36,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp:36,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 37
    functionName: Botan::TLS::Certificate_Status::Certificate_Status
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - assign
    - size
    - make_uint32
    - end
    - begin
    linkageType: ''
    returnType: void
    signature: void Certificate_Status::Certificate_Status(const std::vector<uint8_t>&
      buf, const Connection_Side /*side*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raw_bits
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp:40,1
    - Dst: update
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp:41,1
    - Dst: send
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' io'
    - ' hash'
    - ' ocsp'
    argTypes:
    - Handshake_IO
    - Handshake_Hash
    - OCSP::Response
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: Botan::TLS::Certificate_Status::Certificate_Status
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp
    functionUses: 0
    functionsReached:
    - update
    - raw_bits
    - send
    linkageType: ''
    returnType: void
    signature: void Certificate_Status::Certificate_Status(Handshake_IO& io, Handshake_Hash&
      hash, const OCSP::Response& ocsp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp:47,1
    - Dst: update
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp:48,1
    - Dst: send
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp:48,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: 49
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: Botan::TLS::Certificate_Status::Certificate_Status
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - send
    - update
    linkageType: ''
    returnType: void
    signature: "void Certificate_Status::Certificate_Status(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.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - raw_response_bytes
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: Botan::TLS::Certificate_Status::Certificate_Status
    functionSourceFile: /src/botan/src/lib/tls/tls12/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/tls12/msg_cert_status.cpp:55,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp:56,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp:59,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp:59,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp:62,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp:62,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp:63,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp:65,1
    - Dst: get_byte_var
      Src: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp:65,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 70
    functionName: Botan::TLS::Certificate_Status::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_cert_status.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - static_cast<uint32_t>
    - Encoding_Error
    - size
    - get_byte_var
    - std::vector::reserve
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Certificate_Status::serialize() 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::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: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    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: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    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: 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(const Handshake_IO&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    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: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    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: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    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: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    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:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - writer
    argTypes:
    - writer_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    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: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    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: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::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:126,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: 127
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 127
    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: 177
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 177
    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: 194
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 194
    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: 196
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 196
    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: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    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: 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(const Handshake_IO&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    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: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    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: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    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: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    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:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - writer
    argTypes:
    - writer_fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    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: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    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: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::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:126,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: 127
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 127
    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: 177
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 177
    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: 194
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 194
    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: 196
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 196
    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: Handshake_State*::ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:23,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:24,1
    - Dst: valid
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:24,1
    - Dst: cipher_keylen
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:26,1
    - Dst: mac_keylen
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:27,1
    - Dst: nonce_bytes_from_handshake
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:28,1
    - Dst: Handshake_State*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:30,1
    - Dst: Handshake_State*::protocol_specific_prf
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:41,1
    - Dst: std::vector::assign
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:50,1
    - Dst: Handshake_State*::hash
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:51,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:51,1
    - Dst: std::vector::assign
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:53,1
    - Dst: Handshake_State*::client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:54,1
    - Dst: Handshake_State*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:55,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:58,1
    - Dst: std::vector::assign
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:63,1
    - Dst: Handshake_State*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:64,1
    - Dst: Handshake_State*::client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:65,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:67,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:68,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:68,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:68,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:68,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:68,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:68,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:70,1
    - Dst: resize
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:72,1
    - Dst: resize
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:73,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:76,1
    - Dst: copy_mem
      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:82,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:83,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:85,1
    - Dst: null_ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:85,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:91,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:94,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:96,1
    - Dst: null_ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:96,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 34
    argCount: 3
    argNames:
    - state
    - ' pre_master_secret'
    - resuming
    argTypes:
    - Handshake_State*
    - secure_vector<uint8_t>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 98
    functionName: Botan::TLS::Session_Keys::Session_Keys
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_session_key.cpp
    functionUses: 0
    functionsReached:
    - resize
    - assign
    - Handshake_State*::hash
    - prf_algo
    - Handshake_State*::protocol_specific_prf
    - Handshake_State*::ciphersuite
    - data
    - copy_mem
    - std::vector::data
    - std::vector::assign
    - BOTAN_STATE_CHECK
    - nonce_bytes_from_handshake
    - valid
    - null_ciphersuite
    - std::vector::size
    - Handshake_State*::client_hello
    - cipher_keylen
    - Handshake_State*::server_hello
    - auto::derive_key
    - size
    - mac_keylen
    - secure_vector::data
    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: Handshake_State*::ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:23,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:24,1
    - Dst: valid
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:24,1
    - Dst: cipher_keylen
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:26,1
    - Dst: mac_keylen
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:27,1
    - Dst: nonce_bytes_from_handshake
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:28,1
    - Dst: Handshake_State*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:30,1
    - Dst: Handshake_State*::protocol_specific_prf
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:41,1
    - Dst: std::vector::assign
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:50,1
    - Dst: Handshake_State*::hash
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:51,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:51,1
    - Dst: std::vector::assign
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:53,1
    - Dst: Handshake_State*::client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:54,1
    - Dst: Handshake_State*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:55,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:58,1
    - Dst: std::vector::assign
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:63,1
    - Dst: Handshake_State*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:64,1
    - Dst: Handshake_State*::client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:65,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:67,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:68,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:68,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:68,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:68,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:68,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:68,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:70,1
    - Dst: resize
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:72,1
    - Dst: resize
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:73,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:76,1
    - Dst: copy_mem
      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:82,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:83,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:85,1
    - Dst: null_ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:85,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:91,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:94,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:96,1
    - Dst: null_ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_session_key.cpp:96,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 34
    argCount: 3
    argNames:
    - state
    - ' pre_master_secret'
    - resuming
    argTypes:
    - Handshake_State*
    - secure_vector<uint8_t>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 98
    functionName: Botan::TLS::Session_Keys::Session_Keys
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_session_key.cpp
    functionUses: 0
    functionsReached:
    - resize
    - assign
    - Handshake_State*::hash
    - prf_algo
    - Handshake_State*::protocol_specific_prf
    - Handshake_State*::ciphersuite
    - data
    - copy_mem
    - std::vector::data
    - std::vector::assign
    - BOTAN_STATE_CHECK
    - nonce_bytes_from_handshake
    - valid
    - null_ciphersuite
    - std::vector::size
    - Handshake_State*::client_hello
    - cipher_keylen
    - Handshake_State*::server_hello
    - auto::derive_key
    - size
    - mac_keylen
    - secure_vector::data
    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: 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:
    - Decoding_Error
    - assign
    - static_cast<size_t>
    - size
    - Protocol_Version::is_datagram_protocol
    - end
    - begin
    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:
    - auto::update
    - resize
    - auto::set_key
    - data
    - auto::update_be
    - size
    - auto::output_length
    - std::string_view::size
    - Botan::MessageAuthenticationCode::create_or_throw
    - static_cast<uint64_t>
    - auto::final
    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
    - static_cast<uint8_t>
    - Protocol_Version::major_version
    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:
    - Decoding_Error
    - assign
    - static_cast<size_t>
    - size
    - Protocol_Version::is_datagram_protocol
    - end
    - begin
    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:
    - auto::update
    - resize
    - auto::set_key
    - data
    - auto::update_be
    - size
    - auto::output_length
    - std::string_view::size
    - Botan::MessageAuthenticationCode::create_or_throw
    - static_cast<uint64_t>
    - auto::final
    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
    - static_cast<uint8_t>
    - Protocol_Version::major_version
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Hello_Verify_Request::serialize() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Connection_Cipher_State::nonce_format
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:40,1
    - Dst: Botan::TLS::Connection_Cipher_State::nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:41,1
    - Dst: Botan::TLS::Connection_Cipher_State::nonce_bytes_from_handshake
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:42,1
    - Dst: aead_key
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:44,1
    - Dst: nonce
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:45,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:48,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:48,1
    - Dst: Botan::TLS::Connection_Cipher_State::nonce_format
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:50,1
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:53,1
    - Dst: fmt
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:53,1
    - Dst: mac_algo
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:53,1
    - Dst: Botan::BlockCipher::create_or_throw
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:54,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:54,1
    - Dst: std::make_unique<TLS_CBC_HMAC_AEAD_Encryption>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:57,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:57,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:58,1
    - Dst: cipher_keylen
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:59,1
    - Dst: mac_keylen
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:60,1
    - Dst: std::make_unique<TLS_CBC_HMAC_AEAD_Decryption>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:64,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:64,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:65,1
    - Dst: cipher_keylen
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:66,1
    - Dst: mac_keylen
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:67,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:73,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:74,1
    - Dst: Botan::TLS::Connection_Cipher_State::nonce_format
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:76,1
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:78,1
    - Dst: fmt
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:78,1
    - Dst: mac_algo
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:78,1
    - Dst: std::make_unique<TLS_NULL_HMAC_AEAD_Encryption>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:81,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:81,1
    - Dst: mac_keylen
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:81,1
    - Dst: std::make_unique<TLS_NULL_HMAC_AEAD_Decryption>
      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: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:86,1
    - Dst: Botan::AEAD_Mode::create_or_throw
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:90,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:90,1
    - Dst: set_key
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:93,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: 94
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 94
    functionName: Botan::TLS::Connection_Cipher_State::Connection_Cipher_State
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::TLS::Connection_Cipher_State::nonce_bytes_from_record
    - set_key
    - BOTAN_UNUSED
    - mac_algo
    - Botan::TLS::Connection_Cipher_State::nonce_format
    - Internal_Error
    - std::make_unique<TLS_CBC_HMAC_AEAD_Encryption>
    - Botan::MessageAuthenticationCode::create_or_throw
    - Botan::AEAD_Mode::create_or_throw
    - aead_key
    - fmt
    - nonce
    - Botan::TLS::Connection_Cipher_State::nonce_bytes_from_handshake
    - std::make_unique<TLS_NULL_HMAC_AEAD_Decryption>
    - cipher_keylen
    - std::move
    - cipher_algo
    - size
    - mac_keylen
    - Botan::BlockCipher::create_or_throw
    - std::make_unique<TLS_NULL_HMAC_AEAD_Encryption>
    - std::make_unique<TLS_CBC_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:102,1
    - Dst: std::vector::swap
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:104,1
    - Dst: randomize
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:108,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:108,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:108,1
    - Dst: store_be
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:113,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:113,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:114,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:114,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:114,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:118,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:118,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:120,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:120,1
    - Dst: store_be
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:121,1
    - Dst: Botan::TLS::Connection_Cipher_State::nonce_bytes_from_handshake
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:121,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 2
    argNames:
    - seq
    - ' rng'
    argTypes:
    - uint64_t
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 127
    functionName: Botan::TLS::Connection_Cipher_State::aead_nonce
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - data
    - randomize
    - store_be
    - size
    - std::vector::data
    - copy_mem
    - Invalid_State
    - std::vector::swap
    - empty
    - Botan::TLS::Connection_Cipher_State::nonce_bytes_from_handshake
    - xor_buf
    - 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:135,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:135,1
    - Dst: std::vector::swap
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:137,1
    - Dst: Botan::TLS::Connection_Cipher_State::nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:140,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:141,1
    - Dst: Botan::TLS::Connection_Cipher_State::nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:143,1
    - Dst: store_be
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:148,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:148,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:149,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:149,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:149,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:153,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:153,1
    - Dst: Botan::TLS::Connection_Cipher_State::nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:154,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:155,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:158,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:158,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:159,1
    - Dst: Botan::TLS::Connection_Cipher_State::nonce_bytes_from_handshake
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:159,1
    - Dst: Botan::TLS::Connection_Cipher_State::nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:159,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:164,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: 165
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 165
    functionName: Botan::TLS::Connection_Cipher_State::aead_nonce
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Decoding_Error
    - data
    - Botan::TLS::Connection_Cipher_State::nonce_bytes_from_record
    - copy_mem
    - store_be
    - size
    - std::vector::data
    - Invalid_State
    - empty
    - std::vector::swap
    - Botan::TLS::Connection_Cipher_State::nonce_bytes_from_handshake
    - xor_buf
    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:173,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:174,1
    - Dst: Protocol_Version::major_version
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:175,1
    - Dst: Protocol_Version::minor_version
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:176,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:177,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:178,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: 181
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 181
    functionName: Botan::TLS::Connection_Cipher_State::format_ad
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached:
    - Protocol_Version::minor_version
    - store_be
    - static_cast<uint8_t>
    - get_byte<0>
    - Protocol_Version::major_version
    - get_byte<1>
    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:186,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:187,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:188,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:188,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:189,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:189,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: 190
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 190
    functionName: Botan::TLS::append_u16_len
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - get_byte<0>
    - push_back
    - BOTAN_ASSERT_EQUAL
    - get_byte<1>
    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:196,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:198,1
    - Dst: static_cast<uint8_t>
      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:199,1
    - Dst: Protocol_Version::major_version
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:199,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:200,1
    - Dst: Protocol_Version::minor_version
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:200,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:202,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:204,1
    - Dst: get_byte_var
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:204,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: 207
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 207
    functionName: Botan::TLS::write_record_header
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached:
    - Protocol_Version::minor_version
    - clear
    - static_cast<uint8_t>
    - Protocol_Version::is_datagram_protocol
    - get_byte_var
    - push_back
    - Protocol_Version::major_version
    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:186,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:187,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:188,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:188,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:189,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:189,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: 190
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 190
    functionName: Botan::TLS::append_u16_len
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - get_byte<0>
    - push_back
    - BOTAN_ASSERT_EQUAL
    - get_byte<1>
    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:196,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:198,1
    - Dst: static_cast<uint8_t>
      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:199,1
    - Dst: Protocol_Version::major_version
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:199,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:200,1
    - Dst: Protocol_Version::minor_version
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:200,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:202,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:204,1
    - Dst: get_byte_var
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:204,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: 207
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 207
    functionName: Botan::TLS::write_record_header
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached:
    - Protocol_Version::minor_version
    - clear
    - static_cast<uint8_t>
    - Protocol_Version::is_datagram_protocol
    - get_byte_var
    - push_back
    - Protocol_Version::major_version
    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:218,1
    - Dst: Botan::TLS::write_record_header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:220,1
    - Dst: Botan::TLS::append_u16_len
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:221,1
    - Dst: insert
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:222,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:222,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: 223
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 223
    functionName: Botan::TLS::write_unencrypted_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::write_record_header
    - Internal_Error
    - Botan::TLS::append_u16_len
    - end
    - insert
    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:233,1
    - Dst: aead
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:235,1
    - Dst: format_ad
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:236,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:236,1
    - Dst: output_length
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:238,1
    - Dst: nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:240,1
    - Dst: set_associated_data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:242,1
    - Dst: aead_nonce
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:244,1
    - Dst: Botan::TLS::append_u16_len
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:246,1
    - Dst: nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:248,1
    - Dst: Botan::TLS::nonce_format
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:249,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:252,1
    - Dst: nonce_bytes_from_handshake
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:252,1
    - Dst: nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:252,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:256,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:257,1
    - Dst: start
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:259,1
    - Dst: finish
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:260,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:262,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:262,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: 263
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 263
    functionName: Botan::TLS::write_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached:
    - start
    - static_cast<uint16_t>
    - nonce_bytes_from_record
    - Botan::TLS::nonce_format
    - Botan::TLS::write_record_header
    - aead_nonce
    - finish
    - nonce_bytes_from_handshake
    - size
    - std::make_pair
    - aead
    - BOTAN_ASSERT
    - Botan::TLS::append_u16_len
    - output_length
    - set_associated_data
    - format_ad
    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:269,1
    - Dst: min
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:273,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:273,1
    - Dst: insert
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:275,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:275,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:280,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: 281
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 281
    functionName: Botan::TLS::fill_buffer_to
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached:
    - min
    - size
    - end
    - insert
    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:290,1
    - Dst: aead_nonce
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:292,1
    - Dst: nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:293,1
    - Dst: nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:294,1
    - Dst: Botan::TLS::minimum_final_size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:303,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:304,1
    - Dst: output_length
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:307,1
    - Dst: set_associated_data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:309,1
    - Dst: format_ad
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:310,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:310,1
    - Dst: start
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:312,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:314,1
    - Dst: finish
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:315,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: 316
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 316
    functionName: Botan::TLS::decrypt_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached:
    - start
    - nonce_bytes_from_record
    - static_cast<uint16_t>
    - assign
    - finish
    - aead_nonce
    - TLS_Exception
    - aead
    - Botan::TLS::minimum_final_size
    - output_length
    - set_associated_data
    - format_ad
    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:325,1
    - Dst: Botan::TLS::fill_buffer_to
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:327,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:328,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:331,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:331,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:351,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:351,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:351,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:354,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:358,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:366,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:368,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:373,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:374,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:377,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:380,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:384,1
    - Dst: Botan::TLS::fill_buffer_to
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:387,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:388,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:391,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:391,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:391,1
    - Dst: static_cast<Record_Type>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:393,1
    - Dst: Connection_Sequence_Numbers*::next_read_sequence
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:399,1
    - Dst: Connection_Sequence_Numbers*::current_read_epoch
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:400,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:408,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:408,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:408,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:409,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:410,1
    - Dst: get_cipherstate
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:414,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:416,1
    - Dst: Botan::TLS::decrypt_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:418,1
    - Dst: Connection_Sequence_Numbers*::read_accept
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:421,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:424,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:425,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: 426
      start: 318
    functionDepth: 2
    functionLinenumber: 318
    functionLinenumberEnd: 426
    functionName: Botan::TLS::read_tls_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached:
    - assign
    - static_cast<size_t>
    - begin
    - reinterpret_cast<const char*>
    - Botan::TLS::decrypt_record
    - Botan::TLS::fill_buffer_to
    - data
    - TLS_Exception
    - static_cast<Record_Type>
    - Protocol_Version::is_datagram_protocol
    - Connection_Sequence_Numbers*::next_read_sequence
    - BOTAN_ASSERT_EQUAL
    - make_uint16
    - BOTAN_ASSERT
    - Connection_Sequence_Numbers*::read_accept
    - size
    - std::string
    - Connection_Sequence_Numbers*::current_read_epoch
    - clear
    - get_cipherstate
    - Record_Header
    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:436,1
    - Dst: Botan::TLS::fill_buffer_to
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:438,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:439,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:440,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:443,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:443,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:448,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:449,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:450,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:453,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:457,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:458,1
    - Dst: Botan::TLS::fill_buffer_to
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:461,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:463,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:464,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:467,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:467,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:467,1
    - Dst: static_cast<Record_Type>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:469,1
    - Dst: load_be<uint64_t>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:471,1
    - Dst: Connection_Sequence_Numbers*::already_seen
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:474,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:477,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:478,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:483,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:483,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:483,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:484,1
    - Dst: Connection_Sequence_Numbers*::read_accept
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:486,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:488,1
    - Dst: get_cipherstate
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:493,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:495,1
    - Dst: Botan::TLS::decrypt_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:497,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:499,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:500,1
    - Dst: Connection_Sequence_Numbers*::read_accept
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:504,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:507,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:508,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: 509
      start: 428
    functionDepth: 2
    functionLinenumber: 428
    functionLinenumberEnd: 509
    functionName: Botan::TLS::read_dtls_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::decrypt_record
    - Botan::TLS::fill_buffer_to
    - static_cast<Record_Type>
    - assign
    - static_cast<size_t>
    - size
    - clear
    - Protocol_Version::is_datagram_protocol
    - get_cipherstate
    - BOTAN_ASSERT
    - Record_Header
    - BOTAN_ASSERT_EQUAL
    - Connection_Sequence_Numbers*::already_seen
    - begin
    - make_uint16
    - Connection_Sequence_Numbers*::read_accept
    - load_be<uint64_t>
    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:269,1
    - Dst: min
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:273,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:273,1
    - Dst: insert
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:275,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:275,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:280,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: 281
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 281
    functionName: Botan::TLS::fill_buffer_to
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 2
    functionsReached:
    - min
    - size
    - end
    - insert
    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:290,1
    - Dst: aead_nonce
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:292,1
    - Dst: nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:293,1
    - Dst: nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:294,1
    - Dst: Botan::TLS::minimum_final_size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:303,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:304,1
    - Dst: output_length
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:307,1
    - Dst: set_associated_data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:309,1
    - Dst: format_ad
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:310,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:310,1
    - Dst: start
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:312,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:314,1
    - Dst: finish
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:315,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: 316
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 316
    functionName: Botan::TLS::decrypt_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 2
    functionsReached:
    - start
    - nonce_bytes_from_record
    - static_cast<uint16_t>
    - assign
    - finish
    - aead_nonce
    - TLS_Exception
    - aead
    - Botan::TLS::minimum_final_size
    - output_length
    - set_associated_data
    - format_ad
    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:325,1
    - Dst: Botan::TLS::fill_buffer_to
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:327,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:328,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:331,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:331,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:351,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:351,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:351,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:354,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:358,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:366,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:368,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:373,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:374,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:377,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:380,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:384,1
    - Dst: Botan::TLS::fill_buffer_to
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:387,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:388,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:391,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:391,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:391,1
    - Dst: static_cast<Record_Type>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:393,1
    - Dst: Connection_Sequence_Numbers*::next_read_sequence
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:399,1
    - Dst: Connection_Sequence_Numbers*::current_read_epoch
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:400,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:408,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:408,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:408,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:409,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:410,1
    - Dst: get_cipherstate
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:414,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:416,1
    - Dst: Botan::TLS::decrypt_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:418,1
    - Dst: Connection_Sequence_Numbers*::read_accept
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:421,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:424,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:425,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: 426
      start: 318
    functionDepth: 2
    functionLinenumber: 318
    functionLinenumberEnd: 426
    functionName: Botan::TLS::read_tls_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached:
    - assign
    - static_cast<size_t>
    - begin
    - reinterpret_cast<const char*>
    - Botan::TLS::decrypt_record
    - Botan::TLS::fill_buffer_to
    - data
    - TLS_Exception
    - static_cast<Record_Type>
    - Protocol_Version::is_datagram_protocol
    - Connection_Sequence_Numbers*::next_read_sequence
    - BOTAN_ASSERT_EQUAL
    - make_uint16
    - BOTAN_ASSERT
    - Connection_Sequence_Numbers*::read_accept
    - size
    - std::string
    - Connection_Sequence_Numbers*::current_read_epoch
    - clear
    - get_cipherstate
    - Record_Header
    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:436,1
    - Dst: Botan::TLS::fill_buffer_to
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:438,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:439,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:440,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:443,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:443,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:448,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:449,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:450,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:453,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:457,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:458,1
    - Dst: Botan::TLS::fill_buffer_to
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:461,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:463,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:464,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:467,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:467,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:467,1
    - Dst: static_cast<Record_Type>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:469,1
    - Dst: load_be<uint64_t>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:471,1
    - Dst: Connection_Sequence_Numbers*::already_seen
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:474,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:477,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:478,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:483,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:483,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:483,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:484,1
    - Dst: Connection_Sequence_Numbers*::read_accept
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:486,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:488,1
    - Dst: get_cipherstate
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:493,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:495,1
    - Dst: Botan::TLS::decrypt_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:497,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:499,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:500,1
    - Dst: Connection_Sequence_Numbers*::read_accept
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:504,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:507,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:508,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: 509
      start: 428
    functionDepth: 2
    functionLinenumber: 428
    functionLinenumberEnd: 509
    functionName: Botan::TLS::read_dtls_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::decrypt_record
    - Botan::TLS::fill_buffer_to
    - static_cast<Record_Type>
    - assign
    - static_cast<size_t>
    - size
    - clear
    - Protocol_Version::is_datagram_protocol
    - get_cipherstate
    - BOTAN_ASSERT
    - Record_Header
    - BOTAN_ASSERT_EQUAL
    - Connection_Sequence_Numbers*::already_seen
    - begin
    - make_uint16
    - Connection_Sequence_Numbers*::read_accept
    - load_be<uint64_t>
    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:523,1
    - Dst: Botan::TLS::read_tls_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:526,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: 528
      start: 513
    functionDepth: 3
    functionLinenumber: 513
    functionLinenumberEnd: 528
    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: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::TLS::Connection_Cipher_State::nonce_format
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:40,1
    - Dst: Botan::TLS::Connection_Cipher_State::nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:41,1
    - Dst: Botan::TLS::Connection_Cipher_State::nonce_bytes_from_handshake
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:42,1
    - Dst: aead_key
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:44,1
    - Dst: nonce
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:45,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:48,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:48,1
    - Dst: Botan::TLS::Connection_Cipher_State::nonce_format
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:50,1
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:53,1
    - Dst: fmt
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:53,1
    - Dst: mac_algo
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:53,1
    - Dst: Botan::BlockCipher::create_or_throw
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:54,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:54,1
    - Dst: std::make_unique<TLS_CBC_HMAC_AEAD_Encryption>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:57,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:57,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:58,1
    - Dst: cipher_keylen
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:59,1
    - Dst: mac_keylen
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:60,1
    - Dst: std::make_unique<TLS_CBC_HMAC_AEAD_Decryption>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:64,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:64,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:65,1
    - Dst: cipher_keylen
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:66,1
    - Dst: mac_keylen
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:67,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:73,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:74,1
    - Dst: Botan::TLS::Connection_Cipher_State::nonce_format
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:76,1
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:78,1
    - Dst: fmt
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:78,1
    - Dst: mac_algo
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:78,1
    - Dst: std::make_unique<TLS_NULL_HMAC_AEAD_Encryption>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:81,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:81,1
    - Dst: mac_keylen
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:81,1
    - Dst: std::make_unique<TLS_NULL_HMAC_AEAD_Decryption>
      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: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:86,1
    - Dst: Botan::AEAD_Mode::create_or_throw
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:90,1
    - Dst: cipher_algo
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:90,1
    - Dst: set_key
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:93,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: 94
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 94
    functionName: Botan::TLS::Connection_Cipher_State::Connection_Cipher_State
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::TLS::Connection_Cipher_State::nonce_bytes_from_record
    - set_key
    - BOTAN_UNUSED
    - mac_algo
    - Botan::TLS::Connection_Cipher_State::nonce_format
    - Internal_Error
    - std::make_unique<TLS_CBC_HMAC_AEAD_Encryption>
    - Botan::MessageAuthenticationCode::create_or_throw
    - Botan::AEAD_Mode::create_or_throw
    - aead_key
    - fmt
    - nonce
    - Botan::TLS::Connection_Cipher_State::nonce_bytes_from_handshake
    - std::make_unique<TLS_NULL_HMAC_AEAD_Decryption>
    - cipher_keylen
    - std::move
    - cipher_algo
    - size
    - mac_keylen
    - Botan::BlockCipher::create_or_throw
    - std::make_unique<TLS_NULL_HMAC_AEAD_Encryption>
    - std::make_unique<TLS_CBC_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:102,1
    - Dst: std::vector::swap
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:104,1
    - Dst: randomize
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:108,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:108,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:108,1
    - Dst: store_be
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:113,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:113,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:114,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:114,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:114,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:118,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:118,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:120,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:120,1
    - Dst: store_be
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:121,1
    - Dst: Botan::TLS::Connection_Cipher_State::nonce_bytes_from_handshake
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:121,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:126,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 2
    argNames:
    - seq
    - ' rng'
    argTypes:
    - uint64_t
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 127
    functionName: Botan::TLS::Connection_Cipher_State::aead_nonce
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - data
    - randomize
    - store_be
    - size
    - std::vector::data
    - copy_mem
    - Invalid_State
    - std::vector::swap
    - empty
    - Botan::TLS::Connection_Cipher_State::nonce_bytes_from_handshake
    - xor_buf
    - 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:135,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:135,1
    - Dst: std::vector::swap
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:137,1
    - Dst: Botan::TLS::Connection_Cipher_State::nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:140,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:141,1
    - Dst: Botan::TLS::Connection_Cipher_State::nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:143,1
    - Dst: store_be
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:148,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:148,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:149,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:149,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:149,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:153,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:153,1
    - Dst: Botan::TLS::Connection_Cipher_State::nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:154,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:155,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:158,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:158,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:159,1
    - Dst: Botan::TLS::Connection_Cipher_State::nonce_bytes_from_handshake
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:159,1
    - Dst: Botan::TLS::Connection_Cipher_State::nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:159,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:164,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: 165
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 165
    functionName: Botan::TLS::Connection_Cipher_State::aead_nonce
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Decoding_Error
    - data
    - Botan::TLS::Connection_Cipher_State::nonce_bytes_from_record
    - copy_mem
    - store_be
    - size
    - std::vector::data
    - Invalid_State
    - empty
    - std::vector::swap
    - Botan::TLS::Connection_Cipher_State::nonce_bytes_from_handshake
    - xor_buf
    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:173,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:174,1
    - Dst: Protocol_Version::major_version
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:175,1
    - Dst: Protocol_Version::minor_version
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:176,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:177,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:178,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: 181
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 181
    functionName: Botan::TLS::Connection_Cipher_State::format_ad
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached:
    - Protocol_Version::minor_version
    - store_be
    - static_cast<uint8_t>
    - get_byte<0>
    - Protocol_Version::major_version
    - get_byte<1>
    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:186,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:187,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:188,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:188,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:189,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:189,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: 190
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 190
    functionName: Botan::TLS::append_u16_len
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 2
    functionsReached:
    - static_cast<uint16_t>
    - get_byte<0>
    - push_back
    - BOTAN_ASSERT_EQUAL
    - get_byte<1>
    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:196,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:198,1
    - Dst: static_cast<uint8_t>
      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:199,1
    - Dst: Protocol_Version::major_version
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:199,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:200,1
    - Dst: Protocol_Version::minor_version
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:200,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:202,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:204,1
    - Dst: get_byte_var
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:204,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: 207
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 207
    functionName: Botan::TLS::write_record_header
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 2
    functionsReached:
    - Protocol_Version::minor_version
    - clear
    - static_cast<uint8_t>
    - Protocol_Version::is_datagram_protocol
    - get_byte_var
    - push_back
    - Protocol_Version::major_version
    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:186,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:187,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:188,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:188,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:189,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:189,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: 190
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 190
    functionName: Botan::TLS::append_u16_len
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 2
    functionsReached:
    - static_cast<uint16_t>
    - get_byte<0>
    - push_back
    - BOTAN_ASSERT_EQUAL
    - get_byte<1>
    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:196,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:198,1
    - Dst: static_cast<uint8_t>
      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:199,1
    - Dst: Protocol_Version::major_version
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:199,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:200,1
    - Dst: Protocol_Version::minor_version
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:200,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:202,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:204,1
    - Dst: get_byte_var
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:204,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: 207
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 207
    functionName: Botan::TLS::write_record_header
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 2
    functionsReached:
    - Protocol_Version::minor_version
    - clear
    - static_cast<uint8_t>
    - Protocol_Version::is_datagram_protocol
    - get_byte_var
    - push_back
    - Protocol_Version::major_version
    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:218,1
    - Dst: Botan::TLS::write_record_header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:220,1
    - Dst: Botan::TLS::append_u16_len
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:221,1
    - Dst: insert
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:222,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:222,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: 223
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 223
    functionName: Botan::TLS::write_unencrypted_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::write_record_header
    - Internal_Error
    - Botan::TLS::append_u16_len
    - end
    - insert
    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:233,1
    - Dst: aead
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:235,1
    - Dst: format_ad
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:236,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:236,1
    - Dst: output_length
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:238,1
    - Dst: nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:240,1
    - Dst: set_associated_data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:242,1
    - Dst: aead_nonce
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:244,1
    - Dst: Botan::TLS::append_u16_len
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:246,1
    - Dst: nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:248,1
    - Dst: Botan::TLS::nonce_format
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:249,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:252,1
    - Dst: nonce_bytes_from_handshake
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:252,1
    - Dst: nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:252,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:256,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:257,1
    - Dst: start
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:259,1
    - Dst: finish
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:260,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:262,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:262,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: 263
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 263
    functionName: Botan::TLS::write_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 0
    functionsReached:
    - start
    - static_cast<uint16_t>
    - nonce_bytes_from_record
    - Botan::TLS::nonce_format
    - Botan::TLS::write_record_header
    - aead_nonce
    - finish
    - nonce_bytes_from_handshake
    - size
    - std::make_pair
    - aead
    - BOTAN_ASSERT
    - Botan::TLS::append_u16_len
    - output_length
    - set_associated_data
    - format_ad
    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:269,1
    - Dst: min
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:273,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:273,1
    - Dst: insert
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:275,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:275,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:280,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: 281
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 281
    functionName: Botan::TLS::fill_buffer_to
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 4
    functionsReached:
    - min
    - size
    - end
    - insert
    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:290,1
    - Dst: aead_nonce
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:292,1
    - Dst: nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:293,1
    - Dst: nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:294,1
    - Dst: Botan::TLS::minimum_final_size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:303,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:304,1
    - Dst: output_length
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:307,1
    - Dst: set_associated_data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:309,1
    - Dst: format_ad
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:310,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:310,1
    - Dst: start
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:312,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:314,1
    - Dst: finish
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:315,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: 316
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 316
    functionName: Botan::TLS::decrypt_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 4
    functionsReached:
    - start
    - nonce_bytes_from_record
    - static_cast<uint16_t>
    - assign
    - finish
    - aead_nonce
    - TLS_Exception
    - aead
    - Botan::TLS::minimum_final_size
    - output_length
    - set_associated_data
    - format_ad
    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:325,1
    - Dst: Botan::TLS::fill_buffer_to
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:327,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:328,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:331,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:331,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:351,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:351,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:351,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:354,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:358,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:366,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:368,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:373,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:374,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:377,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:380,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:384,1
    - Dst: Botan::TLS::fill_buffer_to
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:387,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:388,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:391,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:391,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:391,1
    - Dst: static_cast<Record_Type>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:393,1
    - Dst: Connection_Sequence_Numbers*::next_read_sequence
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:399,1
    - Dst: Connection_Sequence_Numbers*::current_read_epoch
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:400,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:408,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:408,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:408,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:409,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:410,1
    - Dst: get_cipherstate
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:414,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:416,1
    - Dst: Botan::TLS::decrypt_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:418,1
    - Dst: Connection_Sequence_Numbers*::read_accept
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:421,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:424,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:425,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: 426
      start: 318
    functionDepth: 2
    functionLinenumber: 318
    functionLinenumberEnd: 426
    functionName: Botan::TLS::read_tls_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 1
    functionsReached:
    - assign
    - static_cast<size_t>
    - begin
    - reinterpret_cast<const char*>
    - Botan::TLS::decrypt_record
    - Botan::TLS::fill_buffer_to
    - data
    - TLS_Exception
    - static_cast<Record_Type>
    - Protocol_Version::is_datagram_protocol
    - Connection_Sequence_Numbers*::next_read_sequence
    - BOTAN_ASSERT_EQUAL
    - make_uint16
    - BOTAN_ASSERT
    - Connection_Sequence_Numbers*::read_accept
    - size
    - std::string
    - Connection_Sequence_Numbers*::current_read_epoch
    - clear
    - get_cipherstate
    - Record_Header
    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:436,1
    - Dst: Botan::TLS::fill_buffer_to
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:438,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:439,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:440,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:443,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:443,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:448,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:449,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:450,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:453,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:457,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:458,1
    - Dst: Botan::TLS::fill_buffer_to
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:461,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:463,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:464,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:467,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:467,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:467,1
    - Dst: static_cast<Record_Type>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:469,1
    - Dst: load_be<uint64_t>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:471,1
    - Dst: Connection_Sequence_Numbers*::already_seen
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:474,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:477,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:478,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:483,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:483,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:483,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:484,1
    - Dst: Connection_Sequence_Numbers*::read_accept
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:486,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:488,1
    - Dst: get_cipherstate
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:493,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:495,1
    - Dst: Botan::TLS::decrypt_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:497,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:499,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:500,1
    - Dst: Connection_Sequence_Numbers*::read_accept
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:504,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:507,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:508,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: 509
      start: 428
    functionDepth: 2
    functionLinenumber: 428
    functionLinenumberEnd: 509
    functionName: Botan::TLS::read_dtls_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::decrypt_record
    - Botan::TLS::fill_buffer_to
    - static_cast<Record_Type>
    - assign
    - static_cast<size_t>
    - size
    - clear
    - Protocol_Version::is_datagram_protocol
    - get_cipherstate
    - BOTAN_ASSERT
    - Record_Header
    - BOTAN_ASSERT_EQUAL
    - Connection_Sequence_Numbers*::already_seen
    - begin
    - make_uint16
    - Connection_Sequence_Numbers*::read_accept
    - load_be<uint64_t>
    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:269,1
    - Dst: min
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:273,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:273,1
    - Dst: insert
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:275,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:275,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:280,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: 281
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 281
    functionName: Botan::TLS::fill_buffer_to
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 6
    functionsReached:
    - min
    - size
    - end
    - insert
    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:290,1
    - Dst: aead_nonce
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:292,1
    - Dst: nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:293,1
    - Dst: nonce_bytes_from_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:294,1
    - Dst: Botan::TLS::minimum_final_size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:303,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:304,1
    - Dst: output_length
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:307,1
    - Dst: set_associated_data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:309,1
    - Dst: format_ad
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:310,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:310,1
    - Dst: start
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:312,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:314,1
    - Dst: finish
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:315,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: 316
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 316
    functionName: Botan::TLS::decrypt_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 6
    functionsReached:
    - start
    - nonce_bytes_from_record
    - static_cast<uint16_t>
    - assign
    - finish
    - aead_nonce
    - TLS_Exception
    - aead
    - Botan::TLS::minimum_final_size
    - output_length
    - set_associated_data
    - format_ad
    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:325,1
    - Dst: Botan::TLS::fill_buffer_to
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:327,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:328,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:331,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:331,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:351,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:351,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:351,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:354,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:358,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:366,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:368,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:373,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:374,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:377,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:380,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:384,1
    - Dst: Botan::TLS::fill_buffer_to
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:387,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:388,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:391,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:391,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:391,1
    - Dst: static_cast<Record_Type>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:393,1
    - Dst: Connection_Sequence_Numbers*::next_read_sequence
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:399,1
    - Dst: Connection_Sequence_Numbers*::current_read_epoch
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:400,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:408,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:408,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:408,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:409,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:410,1
    - Dst: get_cipherstate
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:414,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:416,1
    - Dst: Botan::TLS::decrypt_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:418,1
    - Dst: Connection_Sequence_Numbers*::read_accept
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:421,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:424,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:425,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: 426
      start: 318
    functionDepth: 2
    functionLinenumber: 318
    functionLinenumberEnd: 426
    functionName: Botan::TLS::read_tls_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 1
    functionsReached:
    - assign
    - static_cast<size_t>
    - begin
    - reinterpret_cast<const char*>
    - Botan::TLS::decrypt_record
    - Botan::TLS::fill_buffer_to
    - data
    - TLS_Exception
    - static_cast<Record_Type>
    - Protocol_Version::is_datagram_protocol
    - Connection_Sequence_Numbers*::next_read_sequence
    - BOTAN_ASSERT_EQUAL
    - make_uint16
    - BOTAN_ASSERT
    - Connection_Sequence_Numbers*::read_accept
    - size
    - std::string
    - Connection_Sequence_Numbers*::current_read_epoch
    - clear
    - get_cipherstate
    - Record_Header
    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:436,1
    - Dst: Botan::TLS::fill_buffer_to
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:438,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:439,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:440,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:443,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:443,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:448,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:449,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:450,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:453,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:457,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:458,1
    - Dst: Botan::TLS::fill_buffer_to
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:461,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:463,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:464,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:467,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:467,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:467,1
    - Dst: static_cast<Record_Type>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:469,1
    - Dst: load_be<uint64_t>
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:471,1
    - Dst: Connection_Sequence_Numbers*::already_seen
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:474,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:477,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:478,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:483,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:483,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:483,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:484,1
    - Dst: Connection_Sequence_Numbers*::read_accept
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:486,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:488,1
    - Dst: get_cipherstate
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:493,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:495,1
    - Dst: Botan::TLS::decrypt_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:497,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:499,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:500,1
    - Dst: Connection_Sequence_Numbers*::read_accept
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:504,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:507,1
    - Dst: Record_Header
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:508,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: 509
      start: 428
    functionDepth: 2
    functionLinenumber: 428
    functionLinenumberEnd: 509
    functionName: Botan::TLS::read_dtls_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::decrypt_record
    - Botan::TLS::fill_buffer_to
    - static_cast<Record_Type>
    - assign
    - static_cast<size_t>
    - size
    - clear
    - Protocol_Version::is_datagram_protocol
    - get_cipherstate
    - BOTAN_ASSERT
    - Record_Header
    - BOTAN_ASSERT_EQUAL
    - Connection_Sequence_Numbers*::already_seen
    - begin
    - make_uint16
    - Connection_Sequence_Numbers*::read_accept
    - load_be<uint64_t>
    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:523,1
    - Dst: Botan::TLS::read_tls_record
      Src: /src/botan/src/lib/tls/tls12/tls_record.cpp:526,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: 528
      start: 513
    functionDepth: 3
    functionLinenumber: 513
    functionLinenumberEnd: 528
    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: update
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:26,1
    - Dst: send
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:26,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: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    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:33,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:34,1
    - Dst: make_uint32
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:37,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:39,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:40,1
    - Dst: maximum_certificate_chain_size
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:43,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:45,1
    - Dst: data
      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:50,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:50,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:52,1
    - Dst: make_uint32
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:55,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:58,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:62,1
    - Dst: X509_Certificate
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:62,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:74,1
    - Dst: x509_version
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:74,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:75,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 23
    argCount: 2
    argNames:
    - ' buf'
    - ' policy'
    argTypes:
    - std::vector<uint8_t>
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 77
    functionName: Botan::TLS::Certificate_12::Certificate_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - data
    - TLS_Exception
    - size
    - make_uint32
    - maximum_certificate_chain_size
    - push_back
    - empty
    - x509_version
    - X509_Certificate
    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:86,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:87,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:89,1
    - Dst: get_byte_var
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:89,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:89,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:94,1
    - Dst: get_byte_var
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:96,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:96,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 100
    functionName: Botan::TLS::Certificate_12::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - static_cast<uint32_t>
    - get_byte_var
    - BER_encode
    - std::vector::size
    - auto::size
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Certificate_12::serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:26,1
    - Dst: send
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:26,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: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    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:33,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:34,1
    - Dst: make_uint32
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:37,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:39,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:40,1
    - Dst: maximum_certificate_chain_size
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:43,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:45,1
    - Dst: data
      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:50,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:50,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:52,1
    - Dst: make_uint32
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:55,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:58,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:62,1
    - Dst: X509_Certificate
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:62,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:74,1
    - Dst: x509_version
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:74,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:75,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 23
    argCount: 2
    argNames:
    - ' buf'
    - ' policy'
    argTypes:
    - std::vector<uint8_t>
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 77
    functionName: Botan::TLS::Certificate_12::Certificate_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - data
    - TLS_Exception
    - size
    - make_uint32
    - maximum_certificate_chain_size
    - push_back
    - empty
    - x509_version
    - X509_Certificate
    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:86,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:87,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:89,1
    - Dst: get_byte_var
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:89,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:89,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:94,1
    - Dst: get_byte_var
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:96,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp:96,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 100
    functionName: Botan::TLS::Certificate_12::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_certificate_12.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - static_cast<uint32_t>
    - get_byte_var
    - BER_encode
    - std::vector::size
    - auto::size
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Certificate_12::serialize() 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:
    - server_aead_key
    - client_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:
    - server_aead_key
    - client_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:20,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:20,1
    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::TLS::Handshake_Message::type_string
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - type
    - handshake_type_to_string
    linkageType: ''
    returnType: std::string
    signature: std::string Handshake_Message::type_string() const
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:86,1
    - Dst: Botan::TLS::to_string
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:87,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 44
    argCount: 1
    argNames:
    - type
    argTypes:
    - Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 88
    functionName: Botan::TLS::handshake_type_to_string
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 4
    functionsReached:
    - TLS_Exception
    - Botan::TLS::to_string
    - static_cast<size_t>
    linkageType: ''
    returnType: char
    signature: char * handshake_type_to_string(Handshake_Type type)
  - 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: 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:96,1
    - Dst: initial_record_version
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - io
    - ' cb'
    argTypes:
    - std::unique_ptr<Handshake_IO>
    - Callbacks
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    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:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - Handshake_Message
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    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:103,1
    - Dst: update_hello_cookie
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:105,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:106,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:107,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:107,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' hello_verify'
    argTypes:
    - Hello_Verify_Request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 109
    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::TLS::Handshake_State::note_message
    - update_hello_cookie
    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:114,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:115,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:117,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - client_hello
    argTypes:
    - std::unique_ptr<Client_Hello_12>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 120
    functionName: Botan::TLS::Handshake_State::client_hello
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - hash
    - std::move
    - Botan::TLS::Handshake_State::note_message
    - reset
    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:123,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:124,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:125,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:125,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - server_hello
    argTypes:
    - std::unique_ptr<Server_Hello_12>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 127
    functionName: Botan::TLS::Handshake_State::server_hello
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::TLS::Handshake_State::note_message
    - BOTAN_ASSERT_NONNULL
    - Botan::TLS::Ciphersuite::by_id
    - ciphersuite
    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:130,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:131,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - server_certs
    argTypes:
    - std::unique_ptr<Certificate_12>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 133
    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:136,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:137,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - server_cert_status
    argTypes:
    - std::unique_ptr<Certificate_Status>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 139
    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:142,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:143,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - server_kex
    argTypes:
    - std::unique_ptr<Server_Key_Exchange>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 145
    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:148,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:149,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cert_req
    argTypes:
    - std::unique_ptr<Certificate_Request_12>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 151
    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:154,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:155,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:156,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: 157
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 157
    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:160,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:161,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - client_certs
    argTypes:
    - std::unique_ptr<Certificate_12>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 163
    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:166,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:167,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - client_kex
    argTypes:
    - std::unique_ptr<Client_Key_Exchange>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 169
    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:172,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:173,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - client_verify
    argTypes:
    - std::unique_ptr<Certificate_Verify_12>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 175
    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:178,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:179,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - server_verify
    argTypes:
    - std::unique_ptr<Certificate_Verify_12>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 181
    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:184,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:185,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:186,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: 187
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 187
    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:190,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:191,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - server_finished
    argTypes:
    - std::unique_ptr<Finished_12>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 193
    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:196,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:197,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - client_finished
    argTypes:
    - std::unique_ptr<Finished_12>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 199
    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:202,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:203,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 206
    functionName: '& Handshake_State::ciphersuite() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - value
    - has_value
    - Invalid_State
    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:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 213
    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: 217
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 217
    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: Session_Keys
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:220,1
    - Dst: Botan::TLS::Handshake_State::client_kex
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:220,1
    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::TLS::Handshake_State::compute_session_keys
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - Session_Keys
    - Botan::TLS::Handshake_State::client_kex
    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:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' resume_master_secret'
    argTypes:
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 225
    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:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handshake_msg
    argTypes:
    - Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 229
    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:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handshake_msg
    argTypes:
    - Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 233
    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:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handshake_msg
    argTypes:
    - Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 237
    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:240,1
    - Dst: change_cipher_spec_expected
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 241
    functionName: Botan::TLS::Handshake_State::get_next_handshake_msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - change_cipher_spec_expected
    - get_next_record
    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:244,1
    - Dst: auto*::ticket
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:245,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:246,1
    - Dst: Botan::TLS::Handshake_State::client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:251,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 252
    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
    - empty
    - auto*::ticket
    linkageType: ''
    returnType: Session_Ticket
    signature: Session_Ticket Handshake_State::session_ticket() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:255,1
    - Dst: Botan::PBKDF::create_or_throw
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:258,1
    - Dst: Botan::PBKDF::create_or_throw
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:261,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 254
    functionDepth: 3
    functionLinenumber: 254
    functionLinenumberEnd: 262
    functionName: Botan::TLS::Handshake_State::protocol_specific_prf
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - Botan::PBKDF::create_or_throw
    - ciphersuite
    linkageType: ''
    returnType: std::unique_ptr<KDF>
    signature: std::unique_ptr<KDF> Handshake_State::protocol_specific_prf() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: algo_name
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:268,1
    - Dst: allowed_signature_schemes
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:270,1
    - Dst: Botan::TLS::Handshake_State::cert_req
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:273,1
    - Dst: Botan::TLS::Handshake_State::client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:273,1
    - Dst: is_available
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:276,1
    - Dst: algorithm_name
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:280,1
    - Dst: std::find
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:281,1
    - Dst: std::vector::begin
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:281,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:281,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:281,1
    - Dst: hash_function_name
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:288,1
    - Dst: allowed_signature_hash
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:290,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:291,1
    - Dst: format
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:294,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:295,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:298,1
    - Dst: padding_string
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:298,1
    - Dst: format
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:298,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 4
    argNames:
    - ' key'
    - ' chosen_scheme'
    - for_client_auth
    - ' policy'
    argTypes:
    - Private_Key
    - Signature_Scheme
    - bool
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 299
    functionName: Botan::TLS::Handshake_State::choose_sig_format
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - hash_function_name
    - std::vector::begin
    - allowed_signature_hash
    - format
    - TLS_Exception
    - padding_string
    - std::make_pair
    - allowed_signature_schemes
    - Botan::TLS::Handshake_State::client_hello
    - std::vector::end
    - Botan::TLS::Handshake_State::cert_req
    - Invalid_Argument
    - algo_name
    - std::find
    - algorithm_name
    - is_available
    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:307,1
    - Dst: hash_function_name
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:307,1
    - Dst: algorithm_name
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:307,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: 313
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 313
    functionName: Botan::TLS::supported_algos_include
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - hash_function_name
    - algorithm_name
    - is_available
    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:307,1
    - Dst: hash_function_name
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:307,1
    - Dst: algorithm_name
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:307,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: 313
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 313
    functionName: Botan::TLS::supported_algos_include
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - hash_function_name
    - algorithm_name
    - is_available
    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:323,1
    - Dst: allowed_signature_method
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:325,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:326,1
    - Dst: Signature_Scheme::is_available
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:329,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:330,1
    - Dst: Signature_Scheme::algorithm_name
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:333,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:334,1
    - Dst: Botan::TLS::Handshake_State::cert_req
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:337,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:338,1
    - Dst: Botan::TLS::Handshake_State::cert_req
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:347,1
    - Dst: Signature_Scheme::hash_function_name
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:349,1
    - Dst: Signature_Scheme::is_compatible_with
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:351,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:352,1
    - Dst: supported_algos_include
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:355,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:356,1
    - Dst: Signature_Scheme::format
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:360,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:361,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:364,1
    - Dst: Signature_Scheme::padding_string
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:364,1
    - Dst: Signature_Scheme::format
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:364,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: 365
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 365
    functionName: Botan::TLS::Handshake_State::parse_sig_format
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - supported_algos_include
    - Decoding_Error
    - Signature_Scheme::is_compatible_with
    - Signature_Scheme::hash_function_name
    - TLS_Exception
    - Signature_Scheme::is_available
    - Signature_Scheme::padding_string
    - std::make_pair
    - allowed_signature_method
    - Signature_Scheme::algorithm_name
    - Botan::TLS::Handshake_State::cert_req
    - Invalid_Argument
    - Signature_Scheme::format
    - algo_name
    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:20,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:20,1
    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::TLS::Handshake_Message::type_string
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - type
    - handshake_type_to_string
    linkageType: ''
    returnType: std::string
    signature: std::string Handshake_Message::type_string() const
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:86,1
    - Dst: Botan::TLS::to_string
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:87,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 44
    argCount: 1
    argNames:
    - type
    argTypes:
    - Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 88
    functionName: Botan::TLS::handshake_type_to_string
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 4
    functionsReached:
    - TLS_Exception
    - Botan::TLS::to_string
    - static_cast<size_t>
    linkageType: ''
    returnType: char
    signature: char * handshake_type_to_string(Handshake_Type type)
  - 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: 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:96,1
    - Dst: initial_record_version
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - io
    - ' cb'
    argTypes:
    - std::unique_ptr<Handshake_IO>
    - Callbacks
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 96
    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:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - Handshake_Message
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    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:103,1
    - Dst: update_hello_cookie
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:105,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:106,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:107,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:107,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' hello_verify'
    argTypes:
    - Hello_Verify_Request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 109
    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::TLS::Handshake_State::note_message
    - update_hello_cookie
    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:114,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:115,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:117,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - client_hello
    argTypes:
    - std::unique_ptr<Client_Hello_12>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 120
    functionName: Botan::TLS::Handshake_State::client_hello
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 2
    functionsReached:
    - hash
    - std::move
    - Botan::TLS::Handshake_State::note_message
    - reset
    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:123,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:124,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:125,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:125,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - server_hello
    argTypes:
    - std::unique_ptr<Server_Hello_12>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 127
    functionName: Botan::TLS::Handshake_State::server_hello
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::TLS::Handshake_State::note_message
    - BOTAN_ASSERT_NONNULL
    - Botan::TLS::Ciphersuite::by_id
    - ciphersuite
    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:130,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:131,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - server_certs
    argTypes:
    - std::unique_ptr<Certificate_12>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 133
    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:136,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:137,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - server_cert_status
    argTypes:
    - std::unique_ptr<Certificate_Status>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 139
    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:142,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:143,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - server_kex
    argTypes:
    - std::unique_ptr<Server_Key_Exchange>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 145
    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:148,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:149,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - cert_req
    argTypes:
    - std::unique_ptr<Certificate_Request_12>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 151
    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:154,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:155,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:156,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: 157
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 157
    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:160,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:161,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - client_certs
    argTypes:
    - std::unique_ptr<Certificate_12>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 163
    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:166,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:167,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - client_kex
    argTypes:
    - std::unique_ptr<Client_Key_Exchange>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 169
    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:172,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:173,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - client_verify
    argTypes:
    - std::unique_ptr<Certificate_Verify_12>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 175
    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:178,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:179,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - server_verify
    argTypes:
    - std::unique_ptr<Certificate_Verify_12>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 181
    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:184,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:185,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:186,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: 187
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 187
    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:190,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:191,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - server_finished
    argTypes:
    - std::unique_ptr<Finished_12>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 193
    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:196,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:197,1
    - Dst: Botan::TLS::Handshake_State::note_message
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - client_finished
    argTypes:
    - std::unique_ptr<Finished_12>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 199
    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:202,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:203,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:205,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 206
    functionName: '& Handshake_State::ciphersuite() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - value
    - has_value
    - Invalid_State
    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:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 213
    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: 217
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 217
    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: Session_Keys
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:220,1
    - Dst: Botan::TLS::Handshake_State::client_kex
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:220,1
    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::TLS::Handshake_State::compute_session_keys
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - Session_Keys
    - Botan::TLS::Handshake_State::client_kex
    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:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' resume_master_secret'
    argTypes:
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 225
    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:228,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handshake_msg
    argTypes:
    - Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 229
    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:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handshake_msg
    argTypes:
    - Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 233
    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:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handshake_msg
    argTypes:
    - Handshake_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 237
    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:240,1
    - Dst: change_cipher_spec_expected
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 241
    functionName: Botan::TLS::Handshake_State::get_next_handshake_msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - change_cipher_spec_expected
    - get_next_record
    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:244,1
    - Dst: auto*::ticket
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:245,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:246,1
    - Dst: Botan::TLS::Handshake_State::client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:251,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 252
    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
    - empty
    - auto*::ticket
    linkageType: ''
    returnType: Session_Ticket
    signature: Session_Ticket Handshake_State::session_ticket() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:255,1
    - Dst: Botan::PBKDF::create_or_throw
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:258,1
    - Dst: Botan::PBKDF::create_or_throw
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:261,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 254
    functionDepth: 3
    functionLinenumber: 254
    functionLinenumberEnd: 262
    functionName: Botan::TLS::Handshake_State::protocol_specific_prf
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - Botan::PBKDF::create_or_throw
    - ciphersuite
    linkageType: ''
    returnType: std::unique_ptr<KDF>
    signature: std::unique_ptr<KDF> Handshake_State::protocol_specific_prf() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: algo_name
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:268,1
    - Dst: allowed_signature_schemes
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:270,1
    - Dst: Botan::TLS::Handshake_State::cert_req
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:273,1
    - Dst: Botan::TLS::Handshake_State::client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:273,1
    - Dst: is_available
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:276,1
    - Dst: algorithm_name
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:280,1
    - Dst: std::find
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:281,1
    - Dst: std::vector::begin
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:281,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:281,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:281,1
    - Dst: hash_function_name
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:288,1
    - Dst: allowed_signature_hash
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:290,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:291,1
    - Dst: format
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:294,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:295,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:298,1
    - Dst: padding_string
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:298,1
    - Dst: format
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:298,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 4
    argNames:
    - ' key'
    - ' chosen_scheme'
    - for_client_auth
    - ' policy'
    argTypes:
    - Private_Key
    - Signature_Scheme
    - bool
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 299
    functionName: Botan::TLS::Handshake_State::choose_sig_format
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - hash_function_name
    - std::vector::begin
    - allowed_signature_hash
    - format
    - TLS_Exception
    - padding_string
    - std::make_pair
    - allowed_signature_schemes
    - Botan::TLS::Handshake_State::client_hello
    - std::vector::end
    - Botan::TLS::Handshake_State::cert_req
    - Invalid_Argument
    - algo_name
    - std::find
    - algorithm_name
    - is_available
    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:307,1
    - Dst: hash_function_name
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:307,1
    - Dst: algorithm_name
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:307,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: 313
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 313
    functionName: Botan::TLS::supported_algos_include
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - hash_function_name
    - algorithm_name
    - is_available
    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:307,1
    - Dst: hash_function_name
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:307,1
    - Dst: algorithm_name
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:307,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: 313
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 313
    functionName: Botan::TLS::supported_algos_include
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - hash_function_name
    - algorithm_name
    - is_available
    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:323,1
    - Dst: allowed_signature_method
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:325,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:326,1
    - Dst: Signature_Scheme::is_available
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:329,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:330,1
    - Dst: Signature_Scheme::algorithm_name
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:333,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:334,1
    - Dst: Botan::TLS::Handshake_State::cert_req
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:337,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:338,1
    - Dst: Botan::TLS::Handshake_State::cert_req
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:347,1
    - Dst: Signature_Scheme::hash_function_name
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:349,1
    - Dst: Signature_Scheme::is_compatible_with
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:351,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:352,1
    - Dst: supported_algos_include
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:355,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:356,1
    - Dst: Signature_Scheme::format
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:360,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:361,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:364,1
    - Dst: Signature_Scheme::padding_string
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:364,1
    - Dst: Signature_Scheme::format
      Src: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp:364,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: 365
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 365
    functionName: Botan::TLS::Handshake_State::parse_sig_format
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_state.cpp
    functionUses: 0
    functionsReached:
    - supported_algos_include
    - Decoding_Error
    - Signature_Scheme::is_compatible_with
    - Signature_Scheme::hash_function_name
    - TLS_Exception
    - Signature_Scheme::is_available
    - Signature_Scheme::padding_string
    - std::make_pair
    - allowed_signature_method
    - Signature_Scheme::algorithm_name
    - Botan::TLS::Handshake_State::cert_req
    - Invalid_Argument
    - Signature_Scheme::format
    - algo_name
    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
    - find
    - static_cast<uint64_t>
    - end
    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
    - find
    - static_cast<uint64_t>
    - end
    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: 13
    BranchProfiles: []
    Callsites:
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:34,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:35,1
    - Dst: psk_identity_hint
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:38,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:40,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:44,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:57,1
    - Dst: default_dh_group
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:58,1
    - Dst: choose_key_exchange_group
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:60,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:63,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:64,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:68,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:68,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:78,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:78,1
    - Dst: dynamic_cast<DH_PrivateKey*>
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:79,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:79,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:81,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:84,1
    - Dst: auto*::get_int_field
      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:85,1
    - Dst: auto*::get_int_field
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:85,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:86,1
    - Dst: auto*::public_value
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:86,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:88,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:90,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:91,1
    - Dst: choose_key_exchange_group
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:94,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:96,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:97,1
    - Dst: is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:101,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:102,1
    - Dst: callbacks
      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:107,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:112,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:115,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:116,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:117,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:117,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:118,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:118,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:123,1
    - Dst: raw_public_key_bits
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:123,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:125,1
    - Dst: kex_method_to_string
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:125,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:128,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:129,1
    - Dst: choose_sig_format
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:131,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:133,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:135,1
    - Dst: params
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:136,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:138,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:141,1
    - Dst: send
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:141,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: 142
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 142
    functionName: Botan::TLS::Server_Key_Exchange::Server_Key_Exchange
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp
    functionUses: 0
    functionsReached:
    - is_ecdh_named_curve
    - params
    - get_byte<0>
    - server_hello
    - push_back
    - hash
    - ciphersuite
    - choose_sig_format
    - choose_key_exchange_group
    - TLS_Exception
    - send
    - Internal_Error
    - default_dh_group
    - raw_public_key_bits
    - auto*::public_value
    - value
    - append_tls_length_value
    - psk_identity_hint
    - get_byte<1>
    - kex_method_to_string
    - std::vector::empty
    - dynamic_cast<DH_PrivateKey*>
    - get
    - BOTAN_ASSERT
    - callbacks
    - auto*::get_int_field
    - client_hello
    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:151,1
    - Dst: TLS_Data_Reader::get_string
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:161,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:168,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:171,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:172,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:173,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:175,1
    - Dst: kex_method_to_string
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:175,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:178,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:178,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:178,1
    - Dst: TLS_Data_Reader::read_so_far
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:178,1
    - Dst: Signature_Scheme
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:181,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:181,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:182,1
    - Dst: TLS_Data_Reader::assert_done
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:185,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: 186
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 186
    functionName: Botan::TLS::Server_Key_Exchange::Server_Key_Exchange
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp
    functionUses: 0
    functionsReached:
    - kex_method_to_string
    - Decoding_Error
    - TLS_Data_Reader::read_so_far
    - assign
    - TLS_Data_Reader::assert_done
    - TLS_Data_Reader::get_uint16_t
    - TLS_Data_Reader::get_string
    - data
    - TLS_Data_Reader::get_byte
    - TLS_Data_Reader::get_range
    - BOTAN_UNUSED
    - Signature_Scheme
    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:192,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:194,1
    - Dst: is_set
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:195,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:196,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:196,1
    - Dst: wire_code
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:196,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:197,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:197,1
    - Dst: wire_code
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:197,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 204
    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
    - params
    - is_set
    - get_byte<0>
    - empty
    - wire_code
    - append_tls_length_value
    - get_byte<1>
    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:212,1
    - Dst: parse_sig_format
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:215,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:215,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:217,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:219,1
    - Dst: params
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:220,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:223,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:226,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: 231
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 231
    functionName: Botan::TLS::Server_Key_Exchange::verify
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp
    functionUses: 0
    functionsReached:
    - callbacks
    - params
    - parse_sig_format
    - check_peer_key_acceptable
    - server_hello
    - client_hello
    - BOTAN_UNUSED
    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:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 236
    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: 13
    BranchProfiles: []
    Callsites:
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:34,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:35,1
    - Dst: psk_identity_hint
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:38,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:40,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:44,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:57,1
    - Dst: default_dh_group
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:58,1
    - Dst: choose_key_exchange_group
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:60,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:63,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:64,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:68,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:68,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:78,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:78,1
    - Dst: dynamic_cast<DH_PrivateKey*>
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:79,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:79,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:81,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:84,1
    - Dst: auto*::get_int_field
      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:85,1
    - Dst: auto*::get_int_field
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:85,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:86,1
    - Dst: auto*::public_value
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:86,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:88,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:90,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:91,1
    - Dst: choose_key_exchange_group
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:94,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:96,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:97,1
    - Dst: is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:101,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:102,1
    - Dst: callbacks
      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:107,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:112,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:115,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:116,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:117,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:117,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:118,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:118,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:123,1
    - Dst: raw_public_key_bits
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:123,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:125,1
    - Dst: kex_method_to_string
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:125,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:128,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:129,1
    - Dst: choose_sig_format
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:131,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:133,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:135,1
    - Dst: params
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:136,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:138,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:141,1
    - Dst: send
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:141,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: 142
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 142
    functionName: Botan::TLS::Server_Key_Exchange::Server_Key_Exchange
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp
    functionUses: 0
    functionsReached:
    - is_ecdh_named_curve
    - params
    - get_byte<0>
    - server_hello
    - push_back
    - hash
    - ciphersuite
    - choose_sig_format
    - choose_key_exchange_group
    - TLS_Exception
    - send
    - Internal_Error
    - default_dh_group
    - raw_public_key_bits
    - auto*::public_value
    - value
    - append_tls_length_value
    - psk_identity_hint
    - get_byte<1>
    - kex_method_to_string
    - std::vector::empty
    - dynamic_cast<DH_PrivateKey*>
    - get
    - BOTAN_ASSERT
    - callbacks
    - auto*::get_int_field
    - client_hello
    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:151,1
    - Dst: TLS_Data_Reader::get_string
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:161,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:168,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:171,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:172,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:173,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:175,1
    - Dst: kex_method_to_string
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:175,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:178,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:178,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:178,1
    - Dst: TLS_Data_Reader::read_so_far
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:178,1
    - Dst: Signature_Scheme
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:181,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:181,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:182,1
    - Dst: TLS_Data_Reader::assert_done
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:185,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: 186
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 186
    functionName: Botan::TLS::Server_Key_Exchange::Server_Key_Exchange
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp
    functionUses: 0
    functionsReached:
    - kex_method_to_string
    - Decoding_Error
    - TLS_Data_Reader::read_so_far
    - assign
    - TLS_Data_Reader::assert_done
    - TLS_Data_Reader::get_uint16_t
    - TLS_Data_Reader::get_string
    - data
    - TLS_Data_Reader::get_byte
    - TLS_Data_Reader::get_range
    - BOTAN_UNUSED
    - Signature_Scheme
    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:192,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:194,1
    - Dst: is_set
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:195,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:196,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:196,1
    - Dst: wire_code
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:196,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:197,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:197,1
    - Dst: wire_code
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:197,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 204
    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
    - params
    - is_set
    - get_byte<0>
    - empty
    - wire_code
    - append_tls_length_value
    - get_byte<1>
    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:212,1
    - Dst: parse_sig_format
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:215,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:215,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:217,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:219,1
    - Dst: params
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:220,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:223,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp:226,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: 231
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 231
    functionName: Botan::TLS::Server_Key_Exchange::verify
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_server_kex.cpp
    functionUses: 0
    functionsReached:
    - callbacks
    - params
    - parse_sig_format
    - check_peer_key_acceptable
    - server_hello
    - client_hello
    - BOTAN_UNUSED
    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:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 236
    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:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_record.h:45,1
    - Dst: Botan::TLS::get
      Src: /src/botan/src/lib/tls/tls12/tls_record.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: '& aead()'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    - Botan::TLS::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: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    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: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    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: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    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: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    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: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    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: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    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:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 82
    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:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 87
    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:89,1
    - Dst: Botan::TLS::Record_Header::sequence
      Src: /src/botan/src/lib/tls/tls12/tls_record.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: Botan::TLS::Record_Header::epoch
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.h
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - Botan::TLS::Record_Header::sequence
    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:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 94
    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: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_record.h:45,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls12/tls_record.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 47
    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: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    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: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    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: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    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: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    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: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    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: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    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:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 82
    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:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 87
    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:89,1
    - Dst: Botan::TLS::Record_Header::sequence
      Src: /src/botan/src/lib/tls/tls12/tls_record.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: Botan::TLS::Record_Header::epoch
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_record.h
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - Botan::TLS::Record_Header::sequence
    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:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 94
    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:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - io
    - ' cb'
    argTypes:
    - std::unique_ptr<Handshake_IO>
    - Callbacks
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    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:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 34
    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:36,1
    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::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:39,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - spk
    argTypes:
    - std::unique_ptr<Public_Key>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 41
    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:
    - BOTAN_STATE_CHECK
    - std::move
    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:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 43
    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: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::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:48,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:48,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - session_info
    argTypes:
    - std::optional<Session>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 50
    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:
    - BOTAN_STATE_CHECK
    - has_value
    - std::move
    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: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    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: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    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:57,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:57,1
    - Dst: master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: '& resume_master_secret() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - master_secret
    - is_a_resumption
    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:62,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:62,1
    - Dst: peer_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: '& resume_peer_certs() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - peer_certs
    - is_a_resumption
    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:67,1
    - Dst: Botan::TLS::Client_Handshake_State_12::is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:67,1
    - Dst: supports_extended_master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 69
    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_STATE_CHECK
    - Botan::TLS::Client_Handshake_State_12::is_a_resumption
    - supports_extended_master_secret
    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:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - io
    - ' cb'
    argTypes:
    - std::unique_ptr<Handshake_IO>
    - Callbacks
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    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:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 34
    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:36,1
    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::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:39,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - spk
    argTypes:
    - std::unique_ptr<Public_Key>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 41
    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:
    - BOTAN_STATE_CHECK
    - std::move
    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:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 43
    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: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::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:48,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:48,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - session_info
    argTypes:
    - std::optional<Session>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 50
    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:
    - BOTAN_STATE_CHECK
    - has_value
    - std::move
    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: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    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: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    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:57,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:57,1
    - Dst: master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: '& resume_master_secret() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - master_secret
    - is_a_resumption
    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:62,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:62,1
    - Dst: peer_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: '& resume_peer_certs() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - peer_certs
    - is_a_resumption
    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:67,1
    - Dst: Botan::TLS::Client_Handshake_State_12::is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:67,1
    - Dst: supports_extended_master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 69
    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_STATE_CHECK
    - Botan::TLS::Client_Handshake_State_12::is_a_resumption
    - supports_extended_master_secret
    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:95,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:96,1
    - Dst: create_handshake_state
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:98,1
    - Dst: Botan::TLS::Client_Impl_12::send_client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:99,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: 100
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 100
    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:112,1
    - Dst: client_hello_message::empty
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:114,1
    - Dst: client_hello_message::begin
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:118,1
    - Dst: client_hello_message::end
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:119,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:121,1
    - Dst: std::make_unique<Client_Hello_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:121,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:122,1
    - Dst: secure_renegotiation_check
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:124,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:124,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:125,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:129,1
    - Dst: tls12_session::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:129,1
    - Dst: tls12_session::session::version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:130,1
    - Dst: Botan::TLS::Client_Impl_12::send_client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:131,1
    - Dst: tls12_session::session::version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' downgrade_info'
    argTypes:
    - Channel_Impl::Downgrade_Information
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 137
    functionName: Botan::TLS::Client_Impl_12::Client_Impl_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - tls12_session::has_value
    - Botan::TLS::Client_Impl_12::send_client_hello
    - std::make_unique<Client_Hello_12>
    - client_hello_message::end
    - client_hello_message::begin
    - client_hello_message::empty
    - secure_renegotiation_check
    - hash
    - client_hello
    - tls12_session::session::version
    - create_handshake_state
    - set_expected_next
    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:140,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:140,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - io
    argTypes:
    - std::unique_ptr<Handshake_IO>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 141
    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::make_unique<Client_Handshake_State_12>
    - std::move
    - 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:144,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:146,1
    - Dst: resume_peer_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:147,1
    - Dst: server_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:150,1
    - Dst: server_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:151,1
    - Dst: std::vector<X509_Certificate>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - Handshake_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 154
    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:
    - resume_peer_certs
    - server_certs
    - std::vector<X509_Certificate>
    - is_a_resumption
    - dynamic_cast<const Client_Handshake_State_12&>
    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:161,1
    - Dst: Botan::TLS::Client_Impl_12::send_client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' state'
    - force_full_renegotiation
    argTypes:
    - Handshake_State
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 163
    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:170,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:172,1
    - Dst: set_expected_next
      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:175,1
    - Dst: std::optional<Session_with_Handle>::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:179,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:179,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:180,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:180,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:180,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:180,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:181,1
    - Dst: auto::front
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:181,1
    - Dst: std::optional<Session_with_Handle>::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:185,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:191,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:192,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:192,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:193,1
    - Dst: version
      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:195,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:197,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:197,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:198,1
    - Dst: std::make_unique<Client_Hello_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:198,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:198,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:199,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:200,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:201,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:202,1
    - Dst: secure_renegotiation_data_for_client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:203,1
    - Dst: std::optional<Session_with_Handle>::value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:204,1
    - Dst: record_resumption_info
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:207,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:207,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:212,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:214,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:215,1
    - Dst: std::make_unique<Client_Hello_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:215,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:215,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:216,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:217,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:218,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:219,1
    - Dst: secure_renegotiation_data_for_client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:220,1
    - Dst: secure_renegotiation_check
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:225,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:225,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: 226
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 226
    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::empty
    - dynamic_cast<Client_Handshake_State_12&>
    - std::make_unique<Client_Hello_12>
    - secure_renegotiation_data_for_client_hello
    - hash
    - version
    - ciphersuite
    - hostname
    - handshake_io
    - set_expected_next
    - rng
    - std::optional<Session_with_Handle>::has_value
    - record_resumption_info
    - std::optional<Session_with_Handle>::value
    - secure_renegotiation_check
    - Protocol_Version::is_datagram_protocol
    - session_manager
    - std::move
    - callbacks
    - auto::front
    - empty
    - policy
    - client_hello
    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:235,1
    - Dst: Key_Constraints::includes_any
      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:238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - usage
    - ' suite'
    argTypes:
    - Key_Constraints
    - Ciphersuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 240
    functionName: Botan::TLS::key_usage_matches_ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::kex_method
    - Key_Constraints::includes_any
    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:235,1
    - Dst: Key_Constraints::includes_any
      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:238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - usage
    - ' suite'
    argTypes:
    - Key_Constraints
    - Ciphersuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 240
    functionName: Botan::TLS::key_usage_matches_ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::kex_method
    - Key_Constraints::includes_any
    linkageType: ''
    returnType: bool
    signature: bool key_usage_matches_ciphersuite(Key_Constraints usage, const Ciphersuite&
      suite)
  - BBCount: 73
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:252,1
    - Dst: dynamic_cast<Client_Handshake_State_12&>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:254,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:259,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:260,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:263,1
    - Dst: secure_renegotiation_supported
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:264,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:264,1
    - Dst: mark_as_renegotiation
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:265,1
    - Dst: Botan::TLS::Client_Impl_12::initiate_handshake
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:266,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:268,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:271,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:272,1
    - Dst: send_warning_alert
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:275,1
    - Dst: confirm_transition_to
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:282,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:286,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:286,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:290,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:291,1
    - Dst: hello_verify_request
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:294,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:296,1
    - Dst: std::make_unique<Server_Hello_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:296,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:298,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:299,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:302,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:302,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:303,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:306,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:306,1
    - Dst: auto::usable_in_version
      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: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:308,1
    - Dst: auto::aead_ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:317,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:317,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:318,1
    - Dst: Botan::TLS::Ciphersuite::is_scsv
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:322,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:322,1
    - Dst: TLS_Exception
      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:326,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:327,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:330,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:330,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:340,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:341,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:341,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:342,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:346,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:347,1
    - Dst: std::set_difference
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:351,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:352,1
    - Dst: auto::end
      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:352,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:352,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:352,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:354,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:360,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:362,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:362,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:365,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:366,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:366,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:367,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:371,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:372,1
    - Dst: set_version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:374,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:374,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:375,1
    - Dst: secure_renegotiation_check
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:377,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:377,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:380,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:381,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:381,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:385,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:385,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:391,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:391,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:392,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:395,1
    - Dst: resumed_session_supports_extended_master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:396,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:397,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:400,1
    - Dst: resumed_session_supports_extended_master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:401,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:402,1
    - Dst: compute_session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:405,1
    - Dst: resume_master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:405,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:406,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:411,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:412,1
    - Dst: session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:412,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:415,1
    - Dst: set_expected_next
      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:418,1
    - Dst: Handshake_State*::version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:428,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:428,1
    - Dst: TLS_Exception
      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:432,1
    - Dst: Handshake_State*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:433,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:434,1
    - Dst: discard_resumption_state
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:438,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:440,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:441,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:442,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:445,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:445,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:446,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:449,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:449,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:450,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:453,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:453,1
    - Dst: TLS_Exception
      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:455,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:458,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:458,1
    - Dst: set_expected_next
      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:460,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:469,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:470,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:471,1
    - Dst: set_expected_next
      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:474,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:475,1
    - Dst: server_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:479,1
    - Dst: std::make_unique<Certificate_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:479,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:479,1
    - Dst: server_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:481,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:483,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:484,1
    - Dst: Handshake_State*::server_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:495,1
    - Dst: Handshake_State*::server_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:496,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:499,1
    - Dst: X509_Certificate::subject_public_key
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:503,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:506,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:506,1
    - Dst: auto::algo_name
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:508,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:509,1
    - Dst: key_usage_matches_ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:512,1
    - Dst: X509_Certificate::constraints
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:512,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:512,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:513,1
    - Dst: record_server_public_key
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:516,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:516,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:518,1
    - Dst: set_expected_next
      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:521,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:522,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:525,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:526,1
    - Dst: trusted_certificate_authorities
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:529,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:529,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:531,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:532,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:532,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:536,1
    - Dst: what
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:536,1
    - Dst: server_cert_status
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:540,1
    - Dst: std::make_unique<Certificate_Status>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:540,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:542,1
    - Dst: set_expected_next
      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:545,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:546,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:549,1
    - Dst: set_expected_next
      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:552,1
    - Dst: server_kex
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:554,1
    - Dst: std::make_unique<Server_Key_Exchange>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:554,1
    - Dst: ciphersuite
      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:555,1
    - Dst: version
      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:557,1
    - Dst: server_public_key
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:558,1
    - Dst: server_kex
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:560,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:560,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:561,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:565,1
    - Dst: cert_req
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:566,1
    - Dst: std::make_unique<Certificate_Request_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:566,1
    - Dst: server_hello_done
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:568,1
    - Dst: std::make_unique<Server_Hello_Done>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:568,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:570,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:571,1
    - Dst: server_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:574,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:574,1
    - Dst: trusted_certificate_authorities
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:576,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:576,1
    - Dst: server_cert_status
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:579,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:580,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:580,1
    - Dst: server_cert_status
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:580,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:583,1
    - Dst: server_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:583,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:587,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:588,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:592,1
    - Dst: what
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:592,1
    - Dst: received_handshake_msg
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:596,1
    - Dst: cert_req
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:597,1
    - Dst: find_cert_chain
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:600,1
    - Dst: cert_req
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:600,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:600,1
    - Dst: client_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:602,1
    - Dst: std::make_unique<Certificate_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:602,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:602,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:602,1
    - Dst: client_kex
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:605,1
    - Dst: std::make_unique<Client_Key_Exchange>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:605,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:606,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:606,1
    - Dst: maybe_server_public_key
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:606,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:606,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:606,1
    - Dst: compute_session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:608,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:609,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:614,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:615,1
    - Dst: session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:615,1
    - Dst: received_handshake_msg
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:618,1
    - Dst: client_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:618,1
    - Dst: private_key_for
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:620,1
    - Dst: client_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:620,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:620,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:623,1
    - Dst: client_verify
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:626,1
    - Dst: std::make_unique<Certificate_Verify_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:627,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:627,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:627,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:627,1
    - Dst: auto::get
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:627,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:630,1
    - Dst: Change_Cipher_Spec
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:630,1
    - Dst: change_cipher_spec_writer
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:632,1
    - Dst: client_finished
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:634,1
    - Dst: std::make_unique<Finished_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:634,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:634,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:636,1
    - Dst: set_expected_next
      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:639,1
    - Dst: new_session_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:642,1
    - Dst: std::make_unique<New_Session_Ticket_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:642,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:644,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:646,1
    - Dst: change_cipher_spec_reader
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:648,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:650,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:651,1
    - Dst: server_finished
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:654,1
    - Dst: std::make_unique<Finished_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:654,1
    - Dst: server_finished
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:656,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:657,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:660,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:660,1
    - Dst: client_finished
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:662,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:664,1
    - Dst: Change_Cipher_Spec
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:664,1
    - Dst: change_cipher_spec_writer
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:665,1
    - Dst: client_finished
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:666,1
    - Dst: std::make_unique<Finished_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:666,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:666,1
    - Dst: session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:670,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:671,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:672,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:674,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:675,1
    - Dst: Botan::TLS::Client_Impl_12::get_peer_cert_chain
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:676,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:678,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:679,1
    - Dst: new_session_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:683,1
    - Dst: new_session_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:683,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:684,1
    - Dst: session_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:690,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:690,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:691,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:692,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:692,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:693,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:701,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:702,1
    - Dst: external_psk_identity
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:702,1
    - Dst: Session_Summary::set_session_id
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:703,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:703,1
    - Dst: new_session_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:704,1
    - Dst: Session_Summary::set_session_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:705,1
    - Dst: auto*::ticket
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:705,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:710,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:711,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:720,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:720,1
    - Dst: auto::is_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:720,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:724,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:724,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:724,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:725,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:725,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:728,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:730,1
    - Dst: auto::value
      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:732,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:732,1
    - Dst: activate_session
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:737,1
    - Dst: Unexpected_Message
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:739,1
    CyclomaticComplexity: 129
    EdgeCount: 129
    ICount: 287
    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: 741
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 741
    functionName: Botan::TLS::Client_Impl_12::process_handshake_msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - cert_req
    - auto::get
    - Botan::TLS::Client_Impl_12::get_peer_cert_chain
    - Handshake_State*::server_certs
    - auto::has_value
    - client_certs
    - server_hello_done
    - std::make_unique<Certificate_Verify_12>
    - compute_session_keys
    - server_public_key
    - Session_Handle
    - auto::value
    - client_verify
    - auto::begin
    - session_manager
    - key_usage_matches_ciphersuite
    - std::move
    - auto::usable_in_version
    - trusted_certificate_authorities
    - client_hello
    - auto::algo_name
    - dynamic_cast<Client_Handshake_State_12&>
    - std::set_difference
    - std::ostringstream::str
    - hash
    - version
    - ciphersuite
    - what
    - hostname
    - handshake_io
    - Session_Summary::set_session_ticket
    - std::make_unique<Server_Hello_12>
    - is_a_resumption
    - client_kex
    - change_cipher_spec_reader
    - Botan::TLS::Client_Impl_12::initiate_handshake
    - new_session_ticket
    - discard_resumption_state
    - std::make_unique<Client_Key_Exchange>
    - std::make_unique<Certificate_Status>
    - std::make_unique<Certificate_12>
    - mark_as_renegotiation
    - policy
    - record_server_public_key
    - BOTAN_ASSERT_NOMSG
    - Handshake_State*::version
    - X509_Certificate::constraints
    - hello_verify_request
    - send_warning_alert
    - Change_Cipher_Spec
    - std::make_unique<New_Session_Ticket_12>
    - external_psk_identity
    - set_version
    - rng
    - server_cert_status
    - TLS_Exception
    - Botan::TLS::Ciphersuite::by_id
    - secure_renegotiation_supported
    - server_finished
    - Botan::TLS::Ciphersuite::is_scsv
    - auto*::ticket
    - Botan_Tests::random_bit_generator::max
    - find_cert_chain
    - std::back_inserter
    - server_kex
    - session_ticket
    - std::make_unique<Finished_12>
    - Handshake_State*::server_hello
    - std::make_unique<Certificate_Request_12>
    - empty
    - X509_Certificate::subject_public_key
    - resumed_session_supports_extended_master_secret
    - private_key_for
    - activate_session
    - confirm_transition_to
    - session_keys
    - received_handshake_msg
    - auto::end
    - static_cast<int>
    - Unexpected_Message
    - server_hello
    - std::make_unique<Server_Hello_Done>
    - set_expected_next
    - std::vector::emplace_back
    - auto::aead_ciphersuite
    - client_finished
    - resume_master_secret
    - std::make_unique<Server_Key_Exchange>
    - secure_renegotiation_check
    - std::vector::empty
    - value_exists
    - callbacks
    - maybe_server_public_key
    - change_cipher_spec_writer
    - Session_Summary::set_session_id
    - server_certs
    - auto::is_ticket
    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:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - io
    - ' cb'
    argTypes:
    - std::unique_ptr<Handshake_IO>
    - Callbacks
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    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:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 34
    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:36,1
    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::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:39,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - spk
    argTypes:
    - std::unique_ptr<Public_Key>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 41
    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:
    - BOTAN_STATE_CHECK
    - std::move
    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:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 43
    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: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::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:48,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:48,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - session_info
    argTypes:
    - std::optional<Session>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 50
    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:
    - BOTAN_STATE_CHECK
    - has_value
    - std::move
    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: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    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: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    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:57,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:57,1
    - Dst: master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: '& resume_master_secret() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - master_secret
    - is_a_resumption
    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:62,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:62,1
    - Dst: peer_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: '& resume_peer_certs() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - peer_certs
    - is_a_resumption
    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:67,1
    - Dst: Botan::TLS::Client_Handshake_State_12::is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:67,1
    - Dst: supports_extended_master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 69
    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_STATE_CHECK
    - Botan::TLS::Client_Handshake_State_12::is_a_resumption
    - supports_extended_master_secret
    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:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - io
    - ' cb'
    argTypes:
    - std::unique_ptr<Handshake_IO>
    - Callbacks
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    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:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 34
    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:36,1
    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::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:39,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - spk
    argTypes:
    - std::unique_ptr<Public_Key>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 41
    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:
    - BOTAN_STATE_CHECK
    - std::move
    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:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 43
    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: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::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:48,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:48,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - session_info
    argTypes:
    - std::optional<Session>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 50
    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:
    - BOTAN_STATE_CHECK
    - has_value
    - std::move
    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: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    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: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    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:57,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:57,1
    - Dst: master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 59
    functionName: '& resume_master_secret() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - master_secret
    - is_a_resumption
    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:62,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:62,1
    - Dst: peer_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: '& resume_peer_certs() const'
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - peer_certs
    - is_a_resumption
    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:67,1
    - Dst: Botan::TLS::Client_Handshake_State_12::is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:67,1
    - Dst: supports_extended_master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 69
    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_STATE_CHECK
    - Botan::TLS::Client_Handshake_State_12::is_a_resumption
    - supports_extended_master_secret
    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:95,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:96,1
    - Dst: create_handshake_state
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:98,1
    - Dst: Botan::TLS::Client_Impl_12::send_client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:99,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: 100
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 100
    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:112,1
    - Dst: client_hello_message::empty
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:114,1
    - Dst: client_hello_message::begin
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:118,1
    - Dst: client_hello_message::end
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:119,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:121,1
    - Dst: std::make_unique<Client_Hello_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:121,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:122,1
    - Dst: secure_renegotiation_check
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:124,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:124,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:125,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:129,1
    - Dst: tls12_session::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:129,1
    - Dst: tls12_session::session::version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:130,1
    - Dst: Botan::TLS::Client_Impl_12::send_client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:131,1
    - Dst: tls12_session::session::version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - ' downgrade_info'
    argTypes:
    - Channel_Impl::Downgrade_Information
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 137
    functionName: Botan::TLS::Client_Impl_12::Client_Impl_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - tls12_session::has_value
    - Botan::TLS::Client_Impl_12::send_client_hello
    - std::make_unique<Client_Hello_12>
    - client_hello_message::end
    - client_hello_message::begin
    - client_hello_message::empty
    - secure_renegotiation_check
    - hash
    - client_hello
    - tls12_session::session::version
    - create_handshake_state
    - set_expected_next
    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:140,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:140,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - io
    argTypes:
    - std::unique_ptr<Handshake_IO>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 141
    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::make_unique<Client_Handshake_State_12>
    - std::move
    - 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:144,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:146,1
    - Dst: resume_peer_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:147,1
    - Dst: server_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:150,1
    - Dst: server_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:151,1
    - Dst: std::vector<X509_Certificate>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' state'
    argTypes:
    - Handshake_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 154
    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:
    - resume_peer_certs
    - server_certs
    - std::vector<X509_Certificate>
    - is_a_resumption
    - dynamic_cast<const Client_Handshake_State_12&>
    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:161,1
    - Dst: Botan::TLS::Client_Impl_12::send_client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' state'
    - force_full_renegotiation
    argTypes:
    - Handshake_State
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 163
    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:170,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:172,1
    - Dst: set_expected_next
      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:175,1
    - Dst: std::optional<Session_with_Handle>::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:179,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:179,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:180,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:180,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:180,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:180,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:181,1
    - Dst: auto::front
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:181,1
    - Dst: std::optional<Session_with_Handle>::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:185,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:191,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:192,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:192,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:193,1
    - Dst: version
      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:195,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:197,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:197,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:198,1
    - Dst: std::make_unique<Client_Hello_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:198,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:198,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:199,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:200,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:201,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:202,1
    - Dst: secure_renegotiation_data_for_client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:203,1
    - Dst: std::optional<Session_with_Handle>::value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:204,1
    - Dst: record_resumption_info
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:207,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:207,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:212,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:214,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:215,1
    - Dst: std::make_unique<Client_Hello_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:215,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:215,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:216,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:217,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:218,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:219,1
    - Dst: secure_renegotiation_data_for_client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:220,1
    - Dst: secure_renegotiation_check
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:225,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:225,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: 226
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 226
    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::empty
    - dynamic_cast<Client_Handshake_State_12&>
    - std::make_unique<Client_Hello_12>
    - secure_renegotiation_data_for_client_hello
    - hash
    - version
    - ciphersuite
    - hostname
    - handshake_io
    - set_expected_next
    - rng
    - std::optional<Session_with_Handle>::has_value
    - record_resumption_info
    - std::optional<Session_with_Handle>::value
    - secure_renegotiation_check
    - Protocol_Version::is_datagram_protocol
    - session_manager
    - std::move
    - callbacks
    - auto::front
    - empty
    - policy
    - client_hello
    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:235,1
    - Dst: Key_Constraints::includes_any
      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:238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - usage
    - ' suite'
    argTypes:
    - Key_Constraints
    - Ciphersuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 240
    functionName: Botan::TLS::key_usage_matches_ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::kex_method
    - Key_Constraints::includes_any
    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:235,1
    - Dst: Key_Constraints::includes_any
      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:238,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - usage
    - ' suite'
    argTypes:
    - Key_Constraints
    - Ciphersuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 240
    functionName: Botan::TLS::key_usage_matches_ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::kex_method
    - Key_Constraints::includes_any
    linkageType: ''
    returnType: bool
    signature: bool key_usage_matches_ciphersuite(Key_Constraints usage, const Ciphersuite&
      suite)
  - BBCount: 73
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:252,1
    - Dst: dynamic_cast<Client_Handshake_State_12&>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:254,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:259,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:260,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:263,1
    - Dst: secure_renegotiation_supported
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:264,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:264,1
    - Dst: mark_as_renegotiation
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:265,1
    - Dst: Botan::TLS::Client_Impl_12::initiate_handshake
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:266,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:268,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:271,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:272,1
    - Dst: send_warning_alert
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:275,1
    - Dst: confirm_transition_to
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:282,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:286,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:286,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:290,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:291,1
    - Dst: hello_verify_request
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:294,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:296,1
    - Dst: std::make_unique<Server_Hello_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:296,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:298,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:299,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:302,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:302,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:303,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:306,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:306,1
    - Dst: auto::usable_in_version
      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: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:308,1
    - Dst: auto::aead_ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:317,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:317,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:318,1
    - Dst: Botan::TLS::Ciphersuite::is_scsv
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:322,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:322,1
    - Dst: TLS_Exception
      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:326,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:327,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:330,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:330,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:340,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:341,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:341,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:342,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:346,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:347,1
    - Dst: std::set_difference
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:351,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:352,1
    - Dst: auto::end
      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:352,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:352,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:352,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:354,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:360,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:362,1
    - Dst: std::ostringstream::str
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:362,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:365,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:366,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:366,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:367,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:371,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:372,1
    - Dst: set_version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:374,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:374,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:375,1
    - Dst: secure_renegotiation_check
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:377,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:377,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:380,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:381,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:381,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:385,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:385,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:391,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:391,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:392,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:395,1
    - Dst: resumed_session_supports_extended_master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:396,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:397,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:400,1
    - Dst: resumed_session_supports_extended_master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:401,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:402,1
    - Dst: compute_session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:405,1
    - Dst: resume_master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:405,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:406,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:411,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:412,1
    - Dst: session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:412,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:415,1
    - Dst: set_expected_next
      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:418,1
    - Dst: Handshake_State*::version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:428,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:428,1
    - Dst: TLS_Exception
      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:432,1
    - Dst: Handshake_State*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:433,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:434,1
    - Dst: discard_resumption_state
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:438,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:440,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:441,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:442,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:445,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:445,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:446,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:449,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:449,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:450,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:453,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:453,1
    - Dst: TLS_Exception
      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:455,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:458,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:458,1
    - Dst: set_expected_next
      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:460,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:469,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:470,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:471,1
    - Dst: set_expected_next
      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:474,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:475,1
    - Dst: server_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:479,1
    - Dst: std::make_unique<Certificate_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:479,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:479,1
    - Dst: server_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:481,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:483,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:484,1
    - Dst: Handshake_State*::server_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:495,1
    - Dst: Handshake_State*::server_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:496,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:499,1
    - Dst: X509_Certificate::subject_public_key
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:503,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:506,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:506,1
    - Dst: auto::algo_name
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:508,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:509,1
    - Dst: key_usage_matches_ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:512,1
    - Dst: X509_Certificate::constraints
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:512,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:512,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:513,1
    - Dst: record_server_public_key
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:516,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:516,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:518,1
    - Dst: set_expected_next
      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:521,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:522,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:525,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:526,1
    - Dst: trusted_certificate_authorities
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:529,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:529,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:531,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:532,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:532,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:536,1
    - Dst: what
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:536,1
    - Dst: server_cert_status
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:540,1
    - Dst: std::make_unique<Certificate_Status>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:540,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:542,1
    - Dst: set_expected_next
      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:545,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:546,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:549,1
    - Dst: set_expected_next
      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:552,1
    - Dst: server_kex
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:554,1
    - Dst: std::make_unique<Server_Key_Exchange>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:554,1
    - Dst: ciphersuite
      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:555,1
    - Dst: version
      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:557,1
    - Dst: server_public_key
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:558,1
    - Dst: server_kex
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:560,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:560,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:561,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:565,1
    - Dst: cert_req
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:566,1
    - Dst: std::make_unique<Certificate_Request_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:566,1
    - Dst: server_hello_done
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:568,1
    - Dst: std::make_unique<Server_Hello_Done>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:568,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:570,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:571,1
    - Dst: server_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:574,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:574,1
    - Dst: trusted_certificate_authorities
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:576,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:576,1
    - Dst: server_cert_status
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:579,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:580,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:580,1
    - Dst: server_cert_status
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:580,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:583,1
    - Dst: server_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:583,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:587,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:588,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:592,1
    - Dst: what
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:592,1
    - Dst: received_handshake_msg
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:596,1
    - Dst: cert_req
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:597,1
    - Dst: find_cert_chain
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:600,1
    - Dst: cert_req
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:600,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:600,1
    - Dst: client_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:602,1
    - Dst: std::make_unique<Certificate_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:602,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:602,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:602,1
    - Dst: client_kex
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:605,1
    - Dst: std::make_unique<Client_Key_Exchange>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:605,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:606,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:606,1
    - Dst: maybe_server_public_key
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:606,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:606,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:606,1
    - Dst: compute_session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:608,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:609,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:614,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:615,1
    - Dst: session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:615,1
    - Dst: received_handshake_msg
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:618,1
    - Dst: client_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:618,1
    - Dst: private_key_for
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:620,1
    - Dst: client_certs
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:620,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:620,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:623,1
    - Dst: client_verify
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:626,1
    - Dst: std::make_unique<Certificate_Verify_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:627,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:627,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:627,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:627,1
    - Dst: auto::get
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:627,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:630,1
    - Dst: Change_Cipher_Spec
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:630,1
    - Dst: change_cipher_spec_writer
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:632,1
    - Dst: client_finished
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:634,1
    - Dst: std::make_unique<Finished_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:634,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:634,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:636,1
    - Dst: set_expected_next
      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:639,1
    - Dst: new_session_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:642,1
    - Dst: std::make_unique<New_Session_Ticket_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:642,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:644,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:646,1
    - Dst: change_cipher_spec_reader
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:648,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:650,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:651,1
    - Dst: server_finished
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:654,1
    - Dst: std::make_unique<Finished_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:654,1
    - Dst: server_finished
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:656,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:657,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:660,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:660,1
    - Dst: client_finished
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:662,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:664,1
    - Dst: Change_Cipher_Spec
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:664,1
    - Dst: change_cipher_spec_writer
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:665,1
    - Dst: client_finished
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:666,1
    - Dst: std::make_unique<Finished_12>
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:666,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:666,1
    - Dst: session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:670,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:671,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:672,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:674,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:675,1
    - Dst: Botan::TLS::Client_Impl_12::get_peer_cert_chain
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:676,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:678,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:679,1
    - Dst: new_session_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:683,1
    - Dst: new_session_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:683,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:684,1
    - Dst: session_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:690,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:690,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:691,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:692,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:692,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:693,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:701,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:702,1
    - Dst: external_psk_identity
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:702,1
    - Dst: Session_Summary::set_session_id
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:703,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:703,1
    - Dst: new_session_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:704,1
    - Dst: Session_Summary::set_session_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:705,1
    - Dst: auto*::ticket
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:705,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:710,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:711,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:720,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:720,1
    - Dst: auto::is_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:720,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:724,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:724,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:724,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:725,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:725,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:728,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:730,1
    - Dst: auto::value
      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:732,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:732,1
    - Dst: activate_session
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:737,1
    - Dst: Unexpected_Message
      Src: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp:739,1
    CyclomaticComplexity: 129
    EdgeCount: 129
    ICount: 287
    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: 741
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 741
    functionName: Botan::TLS::Client_Impl_12::process_handshake_msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_client_impl_12.cpp
    functionUses: 0
    functionsReached:
    - cert_req
    - auto::get
    - Botan::TLS::Client_Impl_12::get_peer_cert_chain
    - Handshake_State*::server_certs
    - auto::has_value
    - client_certs
    - server_hello_done
    - std::make_unique<Certificate_Verify_12>
    - compute_session_keys
    - server_public_key
    - Session_Handle
    - auto::value
    - client_verify
    - auto::begin
    - session_manager
    - key_usage_matches_ciphersuite
    - std::move
    - auto::usable_in_version
    - trusted_certificate_authorities
    - client_hello
    - auto::algo_name
    - dynamic_cast<Client_Handshake_State_12&>
    - std::set_difference
    - std::ostringstream::str
    - hash
    - version
    - ciphersuite
    - what
    - hostname
    - handshake_io
    - Session_Summary::set_session_ticket
    - std::make_unique<Server_Hello_12>
    - is_a_resumption
    - client_kex
    - change_cipher_spec_reader
    - Botan::TLS::Client_Impl_12::initiate_handshake
    - new_session_ticket
    - discard_resumption_state
    - std::make_unique<Client_Key_Exchange>
    - std::make_unique<Certificate_Status>
    - std::make_unique<Certificate_12>
    - mark_as_renegotiation
    - policy
    - record_server_public_key
    - BOTAN_ASSERT_NOMSG
    - Handshake_State*::version
    - X509_Certificate::constraints
    - hello_verify_request
    - send_warning_alert
    - Change_Cipher_Spec
    - std::make_unique<New_Session_Ticket_12>
    - external_psk_identity
    - set_version
    - rng
    - server_cert_status
    - TLS_Exception
    - Botan::TLS::Ciphersuite::by_id
    - secure_renegotiation_supported
    - server_finished
    - Botan::TLS::Ciphersuite::is_scsv
    - auto*::ticket
    - Botan_Tests::random_bit_generator::max
    - find_cert_chain
    - std::back_inserter
    - server_kex
    - session_ticket
    - std::make_unique<Finished_12>
    - Handshake_State*::server_hello
    - std::make_unique<Certificate_Request_12>
    - empty
    - X509_Certificate::subject_public_key
    - resumed_session_supports_extended_master_secret
    - private_key_for
    - activate_session
    - confirm_transition_to
    - session_keys
    - received_handshake_msg
    - auto::end
    - static_cast<int>
    - Unexpected_Message
    - server_hello
    - std::make_unique<Server_Hello_Done>
    - set_expected_next
    - std::vector::emplace_back
    - auto::aead_ciphersuite
    - client_finished
    - resume_master_secret
    - std::make_unique<Server_Key_Exchange>
    - secure_renegotiation_check
    - std::vector::empty
    - value_exists
    - callbacks
    - maybe_server_public_key
    - change_cipher_spec_writer
    - Session_Summary::set_session_id
    - server_certs
    - auto::is_ticket
    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: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    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: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    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: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    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: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    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: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::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: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::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: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    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: 185
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 185
    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: 187
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 187
    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: 189
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 189
    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: 191
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 191
    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:217,1
    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_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:219,1
    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::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: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    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: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    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: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    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: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    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: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::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: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::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: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    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: 185
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 185
    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: 187
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 187
    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: 189
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 189
    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: 191
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 191
    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:217,1
    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_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:219,1
    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::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: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    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: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    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: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    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: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    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: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::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: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::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: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    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: 185
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 185
    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: 187
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 187
    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: 189
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 189
    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: 191
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 191
    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:217,1
    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_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:219,1
    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::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: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    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: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    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: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    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: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    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: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::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: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::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: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    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: 185
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 185
    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: 187
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 187
    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: 189
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 189
    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: 191
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 191
    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:217,1
    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_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:219,1
    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::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: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    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: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    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: 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: get_byte<1>
      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: get_byte<2>
      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: get_byte<3>
      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: 0
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: Botan::TLS::store_be24
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached:
    - get_byte<3>
    - static_cast<uint32_t>
    - get_byte<2>
    - get_byte<1>
    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: get_byte<1>
      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: get_byte<2>
      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: get_byte<3>
      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: 0
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: Botan::TLS::store_be24
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached:
    - get_byte<3>
    - static_cast<uint32_t>
    - get_byte<2>
    - get_byte<1>
    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:
    - Decoding_Error
    - static_cast<size_t>
    - static_cast<uint8_t>
    - end
    - std::to_string
    - insert
    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
    - size
    - erase
    - make_uint32
    - std::make_pair
    - static_cast<Handshake_Type>
    - std::vector<uint8_t>
    - begin
    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
    - copy_mem
    - size
    - static_cast<uint8_t>
    - empty
    - store_be24
    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:
    - Botan::TLS::Stream_Handshake_IO::format
    - wire_type
    - std::vector<uint8_t>
    - type
    - serialize
    - 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::TLS::Datagram_Handshake_IO::send_message
    - empty
    - BOTAN_ASSERT
    - m_send_hs
    - at
    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:
    - Botan::TLS::Datagram_Handshake_IO::retransmit_last_flight
    - rbegin
    - min
    - size
    - steady_clock_ms
    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<uint16_t>
      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: 0
    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<uint16_t>
    - insert
    - add_fragment
    - load_be<uint16_t>
    - static_cast<Handshake_Type>
    - 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:
    - rbegin
    - std::vector<uint16_t>
    - auto::second::message
    - epoch
    - std::make_pair
    - auto::second::complete
    - push_back
    - empty
    - std::vector<uint8_t>
    - contains
    - end
    - begin
    - find
    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:
    - Decoding_Error
    - resize
    - assign
    - clear
    - size
    - complete
    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:
    - complete
    - std::make_pair
    - Internal_Error
    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: 0
    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:
    - copy_mem
    - store_be
    - static_cast<uint8_t>
    - store_be24
    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: 1
    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:
    - data
    - static_cast<uint16_t>
    - size
    - 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: 2
    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:
    - Botan::TLS::Datagram_Handshake_IO::send_under_epoch
    - current_write_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:
    - rbegin
    - Botan::TLS::Datagram_Handshake_IO::send_message
    - Botan::TLS::Datagram_Handshake_IO::Message_Info
    - std::vector<uint8_t>
    - type
    - serialize
    - steady_clock_ms
    - 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: 2
    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:
    - static_cast<uint16_t>
    - std::min<size_t>
    - size
    - Botan::TLS::Datagram_Handshake_IO::format_w_seq
    - Invalid_Argument
    - Botan::TLS::Datagram_Handshake_IO::format_fragment
    - auto::size
    - 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: get_byte<1>
      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: get_byte<2>
      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: get_byte<3>
      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: 0
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: Botan::TLS::store_be24
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached:
    - get_byte<3>
    - static_cast<uint32_t>
    - get_byte<2>
    - get_byte<1>
    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: get_byte<1>
      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: get_byte<2>
      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: get_byte<3>
      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: 0
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: Botan::TLS::store_be24
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_handshake_io.cpp
    functionUses: 0
    functionsReached:
    - get_byte<3>
    - static_cast<uint32_t>
    - get_byte<2>
    - get_byte<1>
    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:
    - Decoding_Error
    - static_cast<size_t>
    - static_cast<uint8_t>
    - end
    - std::to_string
    - insert
    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
    - size
    - erase
    - make_uint32
    - std::make_pair
    - static_cast<Handshake_Type>
    - std::vector<uint8_t>
    - begin
    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
    - copy_mem
    - size
    - static_cast<uint8_t>
    - empty
    - store_be24
    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:
    - Botan::TLS::Stream_Handshake_IO::format
    - wire_type
    - std::vector<uint8_t>
    - type
    - serialize
    - 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: 3
    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::TLS::Datagram_Handshake_IO::send_message
    - empty
    - BOTAN_ASSERT
    - m_send_hs
    - at
    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:
    - Botan::TLS::Datagram_Handshake_IO::retransmit_last_flight
    - rbegin
    - min
    - size
    - steady_clock_ms
    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<uint16_t>
      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: 0
    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<uint16_t>
    - insert
    - add_fragment
    - load_be<uint16_t>
    - static_cast<Handshake_Type>
    - 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:
    - rbegin
    - std::vector<uint16_t>
    - auto::second::message
    - epoch
    - std::make_pair
    - auto::second::complete
    - push_back
    - empty
    - std::vector<uint8_t>
    - contains
    - end
    - begin
    - find
    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:
    - Decoding_Error
    - resize
    - assign
    - clear
    - size
    - complete
    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:
    - complete
    - std::make_pair
    - Internal_Error
    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: 0
    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:
    - copy_mem
    - store_be
    - static_cast<uint8_t>
    - store_be24
    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: 1
    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:
    - data
    - static_cast<uint16_t>
    - size
    - 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: 2
    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:
    - Botan::TLS::Datagram_Handshake_IO::send_under_epoch
    - current_write_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: 3
    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:
    - rbegin
    - Botan::TLS::Datagram_Handshake_IO::send_message
    - Botan::TLS::Datagram_Handshake_IO::Message_Info
    - std::vector<uint8_t>
    - type
    - serialize
    - steady_clock_ms
    - 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: 2
    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:
    - static_cast<uint16_t>
    - std::min<size_t>
    - size
    - Botan::TLS::Datagram_Handshake_IO::format_w_seq
    - Invalid_Argument
    - Botan::TLS::Datagram_Handshake_IO::format_fragment
    - auto::size
    - 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:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - io
    - ' cb'
    argTypes:
    - std::unique_ptr<Handshake_IO>
    - Callbacks
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    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: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::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:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::shared_ptr<Private_Key>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    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: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    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: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    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: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    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: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    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: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    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: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    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:65,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:66,1
    - Dst: Client_Hello_12*::legacy_version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:71,1
    - Dst: auto::version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:71,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:76,1
    - Dst: Client_Hello_12*::ciphersuites
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:76,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:76,1
    - Dst: Client_Hello_12*::sni_hostname
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:81,1
    - Dst: Client_Hello_12*::sni_hostname
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:81,1
    - Dst: auto::server_info
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:81,1
    - Dst: Client_Hello_12*::supports_extended_master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:86,1
    - Dst: auto::supports_extended_master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:86,1
    - Dst: auto::supports_extended_master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:87,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:94,1
    - Dst: Client_Hello_12*::supports_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:99,1
    - Dst: auto::supports_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:99,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:104,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: 108
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 108
    functionName: Botan::TLS::check_for_resume
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Client_Hello_12*::supports_extended_master_secret
    - auto::supports_extended_master_secret
    - Client_Hello_12*::supports_encrypt_then_mac
    - retrieve
    - auto::has_value
    - TLS_Exception
    - Client_Hello_12*::ciphersuites
    - auto::supports_encrypt_then_mac
    - auto::server_info
    - auto::ciphersuite_code
    - Client_Hello_12*::legacy_version
    - auto::version
    - Client_Hello_12*::sni_hostname
    - value_exists
    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:117,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:118,1
    - Dst: ciphersuite_list
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:119,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:121,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:122,1
    - Dst: choose_key_exchange_group
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:126,1
    - Dst: supported_ecc_curves
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:126,1
    - Dst: supported_dh_groups
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:128,1
    - Dst: choose_key_exchange_group
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:131,1
    - Dst: supported_dh_groups
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:131,1
    - Dst: std::swap
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:140,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:144,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:148,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:150,1
    - Dst: auto::valid
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:150,1
    - Dst: auto::ecc_ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:154,1
    - Dst: auto::kex_method
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:158,1
    - Dst: auto::signature_used
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:163,1
    - Dst: auto::sig_algo
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:164,1
    - Dst: contains
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:167,1
    - Dst: allowed_signature_schemes
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:171,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:173,1
    - Dst: is_available
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:183,1
    - Dst: algorithm_name
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:187,1
    - Dst: auto::sig_algo
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:187,1
    - Dst: allowed_signature_hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:188,1
    - Dst: hash_function_name
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:188,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:194,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:209,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:212,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: 213
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 213
    functionName: Botan::TLS::choose_ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - hash_function_name
    - std::swap
    - supported_ecc_curves
    - ciphersuite_list
    - algorithm_name
    - allowed_signature_hash
    - auto::signature_used
    - choose_key_exchange_group
    - auto::ecc_ciphersuite
    - TLS_Exception
    - auto::has_value
    - signature_schemes
    - supported_dh_groups
    - Botan::TLS::Ciphersuite::by_id
    - contains
    - server_uses_own_ciphersuite_preferences
    - auto::kex_method
    - auto::valid
    - std::vector::empty
    - ciphersuites
    - value_exists
    - allowed_signature_schemes
    - auto::sig_algo
    - is_available
    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:222,1
    - Dst: Botan::TLS::to_algorithm_identifiers
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:223,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:223,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:225,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - hostname
    - ' cert_sig_schemes'
    - ' creds'
    argTypes:
    - std::string_view
    - std::vector<Signature_Scheme>
    - Credentials_Manager
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 231
    functionName: Botan::TLS::get_server_certs
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - cert_chain_single_type
    - std::vector::empty
    - std::string
    - Botan::TLS::to_algorithm_identifiers
    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:65,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:66,1
    - Dst: Client_Hello_12*::legacy_version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:71,1
    - Dst: auto::version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:71,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:76,1
    - Dst: Client_Hello_12*::ciphersuites
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:76,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:76,1
    - Dst: Client_Hello_12*::sni_hostname
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:81,1
    - Dst: Client_Hello_12*::sni_hostname
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:81,1
    - Dst: auto::server_info
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:81,1
    - Dst: Client_Hello_12*::supports_extended_master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:86,1
    - Dst: auto::supports_extended_master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:86,1
    - Dst: auto::supports_extended_master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:87,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:94,1
    - Dst: Client_Hello_12*::supports_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:99,1
    - Dst: auto::supports_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:99,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:104,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: 108
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 108
    functionName: Botan::TLS::check_for_resume
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Client_Hello_12*::supports_extended_master_secret
    - auto::supports_extended_master_secret
    - Client_Hello_12*::supports_encrypt_then_mac
    - retrieve
    - auto::has_value
    - TLS_Exception
    - Client_Hello_12*::ciphersuites
    - auto::supports_encrypt_then_mac
    - auto::server_info
    - auto::ciphersuite_code
    - Client_Hello_12*::legacy_version
    - auto::version
    - Client_Hello_12*::sni_hostname
    - value_exists
    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:117,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:118,1
    - Dst: ciphersuite_list
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:119,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:121,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:122,1
    - Dst: choose_key_exchange_group
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:126,1
    - Dst: supported_ecc_curves
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:126,1
    - Dst: supported_dh_groups
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:128,1
    - Dst: choose_key_exchange_group
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:131,1
    - Dst: supported_dh_groups
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:131,1
    - Dst: std::swap
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:140,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:144,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:148,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:150,1
    - Dst: auto::valid
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:150,1
    - Dst: auto::ecc_ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:154,1
    - Dst: auto::kex_method
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:158,1
    - Dst: auto::signature_used
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:163,1
    - Dst: auto::sig_algo
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:164,1
    - Dst: contains
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:167,1
    - Dst: allowed_signature_schemes
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:171,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:173,1
    - Dst: is_available
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:183,1
    - Dst: algorithm_name
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:187,1
    - Dst: auto::sig_algo
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:187,1
    - Dst: allowed_signature_hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:188,1
    - Dst: hash_function_name
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:188,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:194,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:209,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:212,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: 213
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 213
    functionName: Botan::TLS::choose_ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - hash_function_name
    - std::swap
    - supported_ecc_curves
    - ciphersuite_list
    - algorithm_name
    - allowed_signature_hash
    - auto::signature_used
    - choose_key_exchange_group
    - auto::ecc_ciphersuite
    - TLS_Exception
    - auto::has_value
    - signature_schemes
    - supported_dh_groups
    - Botan::TLS::Ciphersuite::by_id
    - contains
    - server_uses_own_ciphersuite_preferences
    - auto::kex_method
    - auto::valid
    - std::vector::empty
    - ciphersuites
    - value_exists
    - allowed_signature_schemes
    - auto::sig_algo
    - is_available
    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:222,1
    - Dst: Botan::TLS::to_algorithm_identifiers
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:223,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:223,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:225,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - hostname
    - ' cert_sig_schemes'
    - ' creds'
    argTypes:
    - std::string_view
    - std::vector<Signature_Scheme>
    - Credentials_Manager
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 231
    functionName: Botan::TLS::get_server_certs
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - cert_chain_single_type
    - std::vector::empty
    - std::string
    - Botan::TLS::to_algorithm_identifiers
    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:243,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: 244
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 244
    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: 254
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 254
    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:257,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:257,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:257,1
    - Dst: auto::set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - io
    argTypes:
    - std::unique_ptr<Handshake_IO>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 260
    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::make_unique<Server_Handshake_State>
    - std::move
    - callbacks
    - auto::set_expected_next
    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:263,1
    - Dst: resume_peer_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:264,1
    - Dst: resume_peer_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:265,1
    - Dst: client_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:269,1
    - Dst: std::vector<X509_Certificate>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:271,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' state_base'
    argTypes:
    - Handshake_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 272
    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:
    - std::vector<X509_Certificate>
    - dynamic_cast<const Server_Handshake_State&>
    - resume_peer_certs
    - client_certs
    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:278,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' state'
    - force_full_renegotiation
    argTypes:
    - Handshake_State
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 281
    functionName: Botan::TLS::Server_Impl_12::initiate_handshake
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<Server_Handshake_State&>
    - handshake_io
    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:289,1
    - Dst: Protocol_Version::valid
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:290,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:292,1
    - Dst: allow_dtls12
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:294,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:294,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:294,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:297,1
    - Dst: allow_tls12
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:299,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:299,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:299,1
    - Dst: TLS_Exception
      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:315,1
    - Dst: Protocol_Version::to_string
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:317,1
    - Dst: Protocol_Version::to_string
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:317,1
    - Dst: allow_dtls12
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:324,1
    - Dst: allow_tls12
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:328,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:333,1
    - Dst: Protocol_Version::to_string
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:334,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: 335
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 335
    functionName: Botan::TLS::select_version
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Protocol_Version::to_string
    - allow_dtls12
    - TLS_Exception
    - Protocol_Version::is_datagram_protocol
    - Botan::TLS::Protocol_Version
    - Protocol_Version::valid
    - Botan::TLS::empty
    - allow_tls12
    - value_exists
    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:289,1
    - Dst: Protocol_Version::valid
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:290,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:292,1
    - Dst: allow_dtls12
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:294,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:294,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:294,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:297,1
    - Dst: allow_tls12
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:299,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:299,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:299,1
    - Dst: TLS_Exception
      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:315,1
    - Dst: Protocol_Version::to_string
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:317,1
    - Dst: Protocol_Version::to_string
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:317,1
    - Dst: allow_dtls12
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:324,1
    - Dst: allow_tls12
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:328,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:333,1
    - Dst: Protocol_Version::to_string
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:334,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: 335
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 335
    functionName: Botan::TLS::select_version
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Protocol_Version::to_string
    - allow_dtls12
    - TLS_Exception
    - Protocol_Version::is_datagram_protocol
    - Botan::TLS::Protocol_Version
    - Protocol_Version::valid
    - Botan::TLS::empty
    - allow_tls12
    - value_exists
    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:345,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:349,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:350,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:351,1
    - Dst: send_warning_alert
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:353,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:358,1
    - Dst: secure_renegotiation_supported
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:358,1
    - Dst: send_warning_alert
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:359,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:363,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:364,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:367,1
    - Dst: std::make_unique<Client_Hello_12>
      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:368,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:369,1
    - Dst: Protocol_Version::major_version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:372,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:373,1
    - Dst: Protocol_Version::major_version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:376,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:377,1
    - Dst: Protocol_Version::major_version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:379,1
    - Dst: Protocol_Version::minor_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: select_version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:395,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:395,1
    - Dst: Handshake_State*::version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:397,1
    - Dst: Protocol_Version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:397,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:398,1
    - Dst: set_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:402,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:403,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:404,1
    - Dst: psk
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:411,1
    - Dst: SymmetricKey::empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:414,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:415,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:416,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:418,1
    - Dst: Hello_Verify_Request::cookie
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:418,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:420,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:422,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:425,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:426,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:430,1
    - Dst: reset_active_association_state
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:436,1
    - Dst: secure_renegotiation_check
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:439,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:439,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:441,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:442,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:444,1
    - Dst: allow_session_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:447,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:447,1
    - Dst: check_for_resume
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:448,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:449,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:449,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:449,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:449,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:449,1
    - Dst: client_hello
      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:454,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:454,1
    - Dst: std::optional::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:457,1
    - Dst: Botan::TLS::Server_Impl_12::session_resume
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:458,1
    - Dst: std::optional::value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:458,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:458,1
    - Dst: Botan::TLS::Server_Impl_12::session_create
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:461,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: 463
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 463
    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:
    - BOTAN_ASSERT_IMPLICATION
    - Protocol_Version::minor_version
    - Handshake_State*::version
    - std::make_unique<Client_Hello_12>
    - send_warning_alert
    - Protocol_Version::major_version
    - select_version
    - Protocol_Version
    - psk
    - handshake_io
    - reset_active_association_state
    - set_expected_next
    - allow_session_resumption
    - set_version
    - TLS_Exception
    - auto::has_value
    - check_for_resume
    - secure_renegotiation_supported
    - Botan::TLS::Server_Impl_12::session_create
    - Hello_Verify_Request::cookie
    - secure_renegotiation_check
    - Protocol_Version::is_datagram_protocol
    - auto::value
    - SymmetricKey::empty
    - std::optional::has_value
    - session_manager
    - value_exists
    - callbacks
    - std::optional::value
    - Botan::TLS::Server_Impl_12::session_resume
    - policy
    - client_hello
    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:467,1
    - Dst: std::make_unique<Certificate_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:467,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:467,1
    - Dst: client_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:470,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:470,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:471,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:474,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: 475
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 475
    functionName: Botan::TLS::Server_Impl_12::process_certificate_msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - std::make_unique<Certificate_12>
    - client_certs
    - policy
    - set_expected_next
    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:479,1
    - Dst: client_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:479,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:480,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:482,1
    - Dst: client_kex
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:485,1
    - Dst: std::make_unique<Client_Key_Exchange>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:485,1
    - Dst: server_rsa_kex_key
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:486,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:486,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:486,1
    - Dst: compute_session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:488,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:489,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:494,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:495,1
    - Dst: session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:495,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: 497
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 497
    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:
    - compute_session_keys
    - rng
    - callbacks
    - session_keys
    - received_handshake_msg
    - client_certs
    - std::make_unique<Client_Key_Exchange>
    - policy
    - client_hello
    - client_kex
    - server_rsa_kex_key
    - set_expected_next
    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:500,1
    - Dst: change_cipher_spec_reader
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' pending_state'
    argTypes:
    - Server_Handshake_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 502
    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:507,1
    - Dst: std::make_unique<Certificate_Verify_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:507,1
    - Dst: client_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:509,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:511,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:512,1
    - Dst: allowed_usage
      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: client_verify
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:519,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:519,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:521,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:521,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:529,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:533,1
    - Dst: trusted_certificate_authorities
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:534,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:536,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:541,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:543,1
    - Dst: what
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:543,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:546,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: 547
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 547
    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:
    - handshake_io
    - callbacks
    - TLS_Exception
    - trusted_certificate_authorities
    - client_certs
    - hash
    - client_verify
    - empty
    - policy
    - client_hello
    - what
    - std::make_unique<Certificate_Verify_12>
    - allowed_usage
    - set_expected_next
    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:552,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:554,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:555,1
    - Dst: client_finished
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:558,1
    - Dst: std::make_unique<Finished_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:558,1
    - Dst: client_finished
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:560,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:561,1
    - Dst: server_finished
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:564,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:567,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:567,1
    - Dst: session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:569,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:570,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:571,1
    - Dst: server_hello
      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: Botan::TLS::Server_Impl_12::get_peer_cert_chain
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:575,1
    - Dst: Server_Information
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:576,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:576,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:577,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:578,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:582,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:583,1
    - Dst: external_psk_identity
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:583,1
    - Dst: Session_Summary::set_session_id
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:584,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:584,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:588,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:589,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:590,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:591,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:593,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:593,1
    - Dst: auto::is_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:593,1
    - Dst: new_session_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:594,1
    - Dst: std::make_unique<New_Session_Ticket_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:595,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:595,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:596,1
    - Dst: auto::ticket
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:597,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:598,1
    - Dst: new_session_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:602,1
    - Dst: server_hello
      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:603,1
    - Dst: std::make_unique<New_Session_Ticket_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:604,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:604,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:604,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:607,1
    - Dst: Change_Cipher_Spec
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:607,1
    - Dst: change_cipher_spec_writer
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:609,1
    - Dst: server_finished
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:611,1
    - Dst: std::make_unique<Finished_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:612,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:612,1
    - Dst: activate_session
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:615,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: 616
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 616
    functionName: Botan::TLS::Server_Impl_12::process_finished_msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - session_keys
    - auto::ticket
    - hash
    - server_hello
    - std::make_unique<New_Session_Ticket_12>
    - Change_Cipher_Spec
    - external_psk_identity
    - handshake_io
    - set_expected_next
    - TLS_Exception
    - auto::has_value
    - client_finished
    - server_finished
    - is_a_resumption
    - new_session_ticket
    - Botan::TLS::Server_Impl_12::get_peer_cert_chain
    - Server_Information
    - std::make_unique<Finished_12>
    - session_manager
    - callbacks
    - change_cipher_spec_writer
    - Session_Summary::set_session_id
    - client_hello
    - policy
    - auto::is_ticket
    - activate_session
    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:626,1
    - Dst: confirm_transition_to
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:627,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:638,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:638,1
    - Dst: Botan::TLS::Server_Impl_12::process_client_hello_msg
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:643,1
    - Dst: Botan::TLS::Server_Impl_12::process_certificate_msg
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:646,1
    - Dst: Botan::TLS::Server_Impl_12::process_client_key_exchange_msg
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:649,1
    - Dst: Botan::TLS::Server_Impl_12::process_certificate_verify_msg
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:652,1
    - Dst: Botan::TLS::Server_Impl_12::process_change_cipher_spec_msg
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:655,1
    - Dst: Botan::TLS::Server_Impl_12::process_finished_msg
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:658,1
    - Dst: Unexpected_Message
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:661,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: 663
      start: 621
    functionDepth: 2
    functionLinenumber: 621
    functionLinenumberEnd: 663
    functionName: Botan::TLS::Server_Impl_12::process_handshake_msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - confirm_transition_to
    - Botan::TLS::Server_Impl_12::process_client_hello_msg
    - Botan::TLS::Server_Impl_12::process_certificate_verify_msg
    - Unexpected_Message
    - dynamic_cast<Server_Handshake_State&>
    - hash
    - Botan::TLS::Server_Impl_12::process_change_cipher_spec_msg
    - Botan::TLS::Server_Impl_12::process_certificate_msg
    - Botan::TLS::Server_Impl_12::process_client_key_exchange_msg
    - Botan::TLS::Server_Impl_12::process_finished_msg
    - handshake_io
    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:669,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:670,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:671,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:673,1
    - Dst: std::make_unique<Server_Hello_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:673,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:673,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:674,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:675,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:676,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:677,1
    - Dst: secure_renegotiation_data_for_server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:678,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:679,1
    - Dst: secure_renegotiation_check
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:684,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:684,1
    - Dst: mark_as_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:686,1
    - Dst: compute_session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:687,1
    - Dst: session::master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:687,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:688,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:693,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:694,1
    - Dst: session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:694,1
    - Dst: set_resume_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:696,1
    - Dst: session::peer_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:696,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:700,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:701,1
    - Dst: external_psk_identity
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:701,1
    - Dst: Session_Summary::set_session_id
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:702,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:702,1
    - Dst: handle::ticket
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:703,1
    - Dst: Session_Summary::set_session_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:704,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:704,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:704,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:710,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:711,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:714,1
    - Dst: handle::id
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:714,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:718,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:719,1
    - Dst: auto::is_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:719,1
    - Dst: new_session_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:720,1
    - Dst: std::make_unique<New_Session_Ticket_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:720,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:720,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:721,1
    - Dst: auto::ticket
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:722,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:723,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:726,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: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:730,1
    - Dst: Change_Cipher_Spec
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:730,1
    - Dst: change_cipher_spec_writer
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:732,1
    - Dst: server_finished
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:734,1
    - Dst: std::make_unique<Finished_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:735,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:735,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:736,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: 737
      start: 665
    functionDepth: 1
    functionLinenumber: 665
    functionLinenumberEnd: 737
    functionName: Botan::TLS::Server_Impl_12::session_resume
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 1
    functionsReached:
    - handle::ticket
    - session_keys
    - auto::ticket
    - server_hello
    - hash
    - std::make_unique<New_Session_Ticket_12>
    - Change_Cipher_Spec
    - external_psk_identity
    - handshake_io
    - Session_Summary::set_session_ticket
    - handle::id
    - set_expected_next
    - rng
    - secure_renegotiation_data_for_server_hello
    - session::peer_certs
    - auto::has_value
    - std::make_unique<Server_Hello_12>
    - server_finished
    - is_a_resumption
    - compute_session_keys
    - new_session_ticket
    - secure_renegotiation_check
    - mark_as_resumption
    - session::master_secret
    - auto::value
    - std::make_unique<Finished_12>
    - session_manager
    - set_resume_certs
    - std::move
    - callbacks
    - change_cipher_spec_writer
    - Session_Summary::set_session_id
    - client_hello
    - policy
    - auto::is_ticket
    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:742,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:750,1
    - Dst: get_server_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:751,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:753,1
    - Dst: std::map::empty
      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::map::empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:763,1
    - Dst: send_warning_alert
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:764,1
    - Dst: choose_ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:769,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:769,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:769,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:769,1
    - Dst: Session_ID
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:771,1
    - Dst: make_hello_random
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:771,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:771,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:771,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:771,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:772,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:774,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:776,1
    - Dst: std::make_unique<Server_Hello_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:776,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:776,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:777,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:778,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:779,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:780,1
    - Dst: secure_renegotiation_data_for_server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:781,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:782,1
    - Dst: secure_renegotiation_check
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:786,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:786,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:788,1
    - Dst: signature_used
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:792,1
    - Dst: kex_method
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:792,1
    - Dst: signature_used
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:793,1
    - Dst: sig_algo
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:793,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:795,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:795,1
    - Dst: server_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:797,1
    - Dst: std::make_unique<Certificate_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:798,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:798,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:798,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:800,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:800,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:801,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:803,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:804,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:805,1
    - Dst: server_cert_status
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:806,1
    - Dst: std::make_unique<Certificate_Status>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:807,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:807,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:807,1
    - Dst: private_key_for
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:811,1
    - Dst: server_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:811,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:814,1
    - Dst: kex_method
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:818,1
    - Dst: set_server_rsa_kex_key
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:819,1
    - Dst: server_kex
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:821,1
    - Dst: std::make_unique<Server_Key_Exchange>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:821,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:822,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:822,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:822,1
    - Dst: std::shared_ptr::get
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:822,1
    - Dst: trusted_certificate_authorities
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:825,1
    - Dst: all_subjects
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:830,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:831,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:831,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:831,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:831,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:834,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:834,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:836,1
    - Dst: cert_req
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:837,1
    - Dst: std::make_unique<Certificate_Request_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:837,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:838,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:838,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:838,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:845,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:847,1
    - Dst: server_hello_done
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:850,1
    - Dst: std::make_unique<Server_Hello_Done>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:851,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:851,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:851,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 1
    argNames:
    - ' pending_state'
    argTypes:
    - Server_Handshake_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 739
    functionDepth: 1
    functionLinenumber: 739
    functionLinenumberEnd: 852
    functionName: Botan::TLS::Server_Impl_12::session_create
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - auto::empty
    - cert_req
    - Session_ID
    - auto::end
    - kex_method
    - std::string::empty
    - send_warning_alert
    - server_hello
    - hash
    - std::vector::end
    - std::make_unique<Server_Hello_Done>
    - version
    - ciphersuite
    - handshake_io
    - std::vector::insert
    - set_expected_next
    - rng
    - server_cert_status
    - secure_renegotiation_data_for_server_hello
    - Internal_Error
    - std::make_unique<Server_Hello_12>
    - choose_ciphersuite
    - is_a_resumption
    - server_hello_done
    - signature_used
    - std::shared_ptr::get
    - get_server_certs
    - std::make_unique<Server_Key_Exchange>
    - secure_renegotiation_check
    - std::vector::empty
    - std::make_unique<Certificate_Status>
    - server_kex
    - BOTAN_ASSERT
    - session_manager
    - auto::begin
    - all_subjects
    - callbacks
    - make_hello_random
    - std::make_unique<Certificate_12>
    - trusted_certificate_authorities
    - sig_algo
    - set_server_rsa_kex_key
    - server_certs
    - std::map::empty
    - client_hello
    - policy
    - empty
    - std::make_unique<Certificate_Request_12>
    - private_key_for
    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:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - io
    - ' cb'
    argTypes:
    - std::unique_ptr<Handshake_IO>
    - Callbacks
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    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: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::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:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::shared_ptr<Private_Key>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    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: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    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: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    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: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    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: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    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: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    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: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    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:65,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:66,1
    - Dst: Client_Hello_12*::legacy_version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:71,1
    - Dst: auto::version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:71,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:76,1
    - Dst: Client_Hello_12*::ciphersuites
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:76,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:76,1
    - Dst: Client_Hello_12*::sni_hostname
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:81,1
    - Dst: Client_Hello_12*::sni_hostname
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:81,1
    - Dst: auto::server_info
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:81,1
    - Dst: Client_Hello_12*::supports_extended_master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:86,1
    - Dst: auto::supports_extended_master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:86,1
    - Dst: auto::supports_extended_master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:87,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:94,1
    - Dst: Client_Hello_12*::supports_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:99,1
    - Dst: auto::supports_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:99,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:104,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: 108
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 108
    functionName: Botan::TLS::check_for_resume
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Client_Hello_12*::supports_extended_master_secret
    - auto::supports_extended_master_secret
    - Client_Hello_12*::supports_encrypt_then_mac
    - retrieve
    - auto::has_value
    - TLS_Exception
    - Client_Hello_12*::ciphersuites
    - auto::supports_encrypt_then_mac
    - auto::server_info
    - auto::ciphersuite_code
    - Client_Hello_12*::legacy_version
    - auto::version
    - Client_Hello_12*::sni_hostname
    - value_exists
    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:117,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:118,1
    - Dst: ciphersuite_list
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:119,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:121,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:122,1
    - Dst: choose_key_exchange_group
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:126,1
    - Dst: supported_ecc_curves
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:126,1
    - Dst: supported_dh_groups
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:128,1
    - Dst: choose_key_exchange_group
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:131,1
    - Dst: supported_dh_groups
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:131,1
    - Dst: std::swap
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:140,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:144,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:148,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:150,1
    - Dst: auto::valid
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:150,1
    - Dst: auto::ecc_ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:154,1
    - Dst: auto::kex_method
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:158,1
    - Dst: auto::signature_used
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:163,1
    - Dst: auto::sig_algo
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:164,1
    - Dst: contains
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:167,1
    - Dst: allowed_signature_schemes
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:171,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:173,1
    - Dst: is_available
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:183,1
    - Dst: algorithm_name
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:187,1
    - Dst: auto::sig_algo
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:187,1
    - Dst: allowed_signature_hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:188,1
    - Dst: hash_function_name
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:188,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:194,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:209,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:212,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: 213
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 213
    functionName: Botan::TLS::choose_ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - hash_function_name
    - std::swap
    - supported_ecc_curves
    - ciphersuite_list
    - algorithm_name
    - allowed_signature_hash
    - auto::signature_used
    - choose_key_exchange_group
    - auto::ecc_ciphersuite
    - TLS_Exception
    - auto::has_value
    - signature_schemes
    - supported_dh_groups
    - Botan::TLS::Ciphersuite::by_id
    - contains
    - server_uses_own_ciphersuite_preferences
    - auto::kex_method
    - auto::valid
    - std::vector::empty
    - ciphersuites
    - value_exists
    - allowed_signature_schemes
    - auto::sig_algo
    - is_available
    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:222,1
    - Dst: Botan::TLS::to_algorithm_identifiers
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:223,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:223,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:225,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - hostname
    - ' cert_sig_schemes'
    - ' creds'
    argTypes:
    - std::string_view
    - std::vector<Signature_Scheme>
    - Credentials_Manager
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 231
    functionName: Botan::TLS::get_server_certs
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - cert_chain_single_type
    - std::vector::empty
    - std::string
    - Botan::TLS::to_algorithm_identifiers
    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:65,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:66,1
    - Dst: Client_Hello_12*::legacy_version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:71,1
    - Dst: auto::version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:71,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:76,1
    - Dst: Client_Hello_12*::ciphersuites
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:76,1
    - Dst: auto::ciphersuite_code
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:76,1
    - Dst: Client_Hello_12*::sni_hostname
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:81,1
    - Dst: Client_Hello_12*::sni_hostname
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:81,1
    - Dst: auto::server_info
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:81,1
    - Dst: Client_Hello_12*::supports_extended_master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:86,1
    - Dst: auto::supports_extended_master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:86,1
    - Dst: auto::supports_extended_master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:87,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:94,1
    - Dst: Client_Hello_12*::supports_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:99,1
    - Dst: auto::supports_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:99,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:104,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: 108
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 108
    functionName: Botan::TLS::check_for_resume
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Client_Hello_12*::supports_extended_master_secret
    - auto::supports_extended_master_secret
    - Client_Hello_12*::supports_encrypt_then_mac
    - retrieve
    - auto::has_value
    - TLS_Exception
    - Client_Hello_12*::ciphersuites
    - auto::supports_encrypt_then_mac
    - auto::server_info
    - auto::ciphersuite_code
    - Client_Hello_12*::legacy_version
    - auto::version
    - Client_Hello_12*::sni_hostname
    - value_exists
    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:117,1
    - Dst: ciphersuites
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:118,1
    - Dst: ciphersuite_list
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:119,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:121,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:122,1
    - Dst: choose_key_exchange_group
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:126,1
    - Dst: supported_ecc_curves
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:126,1
    - Dst: supported_dh_groups
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:128,1
    - Dst: choose_key_exchange_group
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:131,1
    - Dst: supported_dh_groups
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:131,1
    - Dst: std::swap
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:140,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:144,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:148,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:150,1
    - Dst: auto::valid
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:150,1
    - Dst: auto::ecc_ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:154,1
    - Dst: auto::kex_method
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:158,1
    - Dst: auto::signature_used
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:163,1
    - Dst: auto::sig_algo
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:164,1
    - Dst: contains
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:167,1
    - Dst: allowed_signature_schemes
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:171,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:173,1
    - Dst: is_available
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:183,1
    - Dst: algorithm_name
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:187,1
    - Dst: auto::sig_algo
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:187,1
    - Dst: allowed_signature_hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:188,1
    - Dst: hash_function_name
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:188,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:194,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:209,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:212,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: 213
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 213
    functionName: Botan::TLS::choose_ciphersuite
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - hash_function_name
    - std::swap
    - supported_ecc_curves
    - ciphersuite_list
    - algorithm_name
    - allowed_signature_hash
    - auto::signature_used
    - choose_key_exchange_group
    - auto::ecc_ciphersuite
    - TLS_Exception
    - auto::has_value
    - signature_schemes
    - supported_dh_groups
    - Botan::TLS::Ciphersuite::by_id
    - contains
    - server_uses_own_ciphersuite_preferences
    - auto::kex_method
    - auto::valid
    - std::vector::empty
    - ciphersuites
    - value_exists
    - allowed_signature_schemes
    - auto::sig_algo
    - is_available
    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:222,1
    - Dst: Botan::TLS::to_algorithm_identifiers
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:223,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:223,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:225,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - hostname
    - ' cert_sig_schemes'
    - ' creds'
    argTypes:
    - std::string_view
    - std::vector<Signature_Scheme>
    - Credentials_Manager
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 231
    functionName: Botan::TLS::get_server_certs
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - cert_chain_single_type
    - std::vector::empty
    - std::string
    - Botan::TLS::to_algorithm_identifiers
    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:243,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: 244
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 244
    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: 254
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 254
    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:257,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:257,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:257,1
    - Dst: auto::set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - io
    argTypes:
    - std::unique_ptr<Handshake_IO>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 260
    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::make_unique<Server_Handshake_State>
    - std::move
    - callbacks
    - auto::set_expected_next
    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:263,1
    - Dst: resume_peer_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:264,1
    - Dst: resume_peer_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:265,1
    - Dst: client_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:269,1
    - Dst: std::vector<X509_Certificate>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:271,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' state_base'
    argTypes:
    - Handshake_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 272
    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:
    - std::vector<X509_Certificate>
    - dynamic_cast<const Server_Handshake_State&>
    - resume_peer_certs
    - client_certs
    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:278,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' state'
    - force_full_renegotiation
    argTypes:
    - Handshake_State
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 281
    functionName: Botan::TLS::Server_Impl_12::initiate_handshake
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<Server_Handshake_State&>
    - handshake_io
    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:289,1
    - Dst: Protocol_Version::valid
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:290,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:292,1
    - Dst: allow_dtls12
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:294,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:294,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:294,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:297,1
    - Dst: allow_tls12
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:299,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:299,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:299,1
    - Dst: TLS_Exception
      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:315,1
    - Dst: Protocol_Version::to_string
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:317,1
    - Dst: Protocol_Version::to_string
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:317,1
    - Dst: allow_dtls12
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:324,1
    - Dst: allow_tls12
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:328,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:333,1
    - Dst: Protocol_Version::to_string
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:334,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: 335
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 335
    functionName: Botan::TLS::select_version
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Protocol_Version::to_string
    - allow_dtls12
    - TLS_Exception
    - Protocol_Version::is_datagram_protocol
    - Botan::TLS::Protocol_Version
    - Protocol_Version::valid
    - Botan::TLS::empty
    - allow_tls12
    - value_exists
    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:289,1
    - Dst: Protocol_Version::valid
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:290,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:292,1
    - Dst: allow_dtls12
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:294,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:294,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:294,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:297,1
    - Dst: allow_tls12
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:299,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:299,1
    - Dst: Botan::TLS::Protocol_Version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:299,1
    - Dst: TLS_Exception
      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:315,1
    - Dst: Protocol_Version::to_string
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:317,1
    - Dst: Protocol_Version::to_string
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:317,1
    - Dst: allow_dtls12
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:324,1
    - Dst: allow_tls12
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:328,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:333,1
    - Dst: Protocol_Version::to_string
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:334,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: 335
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 335
    functionName: Botan::TLS::select_version
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Protocol_Version::to_string
    - allow_dtls12
    - TLS_Exception
    - Protocol_Version::is_datagram_protocol
    - Botan::TLS::Protocol_Version
    - Protocol_Version::valid
    - Botan::TLS::empty
    - allow_tls12
    - value_exists
    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:345,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:349,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:350,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:351,1
    - Dst: send_warning_alert
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:353,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:358,1
    - Dst: secure_renegotiation_supported
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:358,1
    - Dst: send_warning_alert
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:359,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:363,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:364,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:367,1
    - Dst: std::make_unique<Client_Hello_12>
      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:368,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:369,1
    - Dst: Protocol_Version::major_version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:372,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:373,1
    - Dst: Protocol_Version::major_version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:376,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:377,1
    - Dst: Protocol_Version::major_version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:379,1
    - Dst: Protocol_Version::minor_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: select_version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:395,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:395,1
    - Dst: Handshake_State*::version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:397,1
    - Dst: Protocol_Version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:397,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:398,1
    - Dst: set_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:402,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:403,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:404,1
    - Dst: psk
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:411,1
    - Dst: SymmetricKey::empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:414,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:415,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:416,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:418,1
    - Dst: Hello_Verify_Request::cookie
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:418,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:420,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:422,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:425,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:426,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:430,1
    - Dst: reset_active_association_state
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:436,1
    - Dst: secure_renegotiation_check
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:439,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:439,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:441,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:442,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:444,1
    - Dst: allow_session_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:447,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:447,1
    - Dst: check_for_resume
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:448,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:449,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:449,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:449,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:449,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:449,1
    - Dst: client_hello
      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:454,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:454,1
    - Dst: std::optional::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:457,1
    - Dst: Botan::TLS::Server_Impl_12::session_resume
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:458,1
    - Dst: std::optional::value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:458,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:458,1
    - Dst: Botan::TLS::Server_Impl_12::session_create
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:461,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: 463
      start: 341
    functionDepth: 2
    functionLinenumber: 341
    functionLinenumberEnd: 463
    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:
    - BOTAN_ASSERT_IMPLICATION
    - Protocol_Version::minor_version
    - Handshake_State*::version
    - std::make_unique<Client_Hello_12>
    - send_warning_alert
    - Protocol_Version::major_version
    - select_version
    - Protocol_Version
    - psk
    - handshake_io
    - reset_active_association_state
    - set_expected_next
    - allow_session_resumption
    - set_version
    - TLS_Exception
    - auto::has_value
    - check_for_resume
    - secure_renegotiation_supported
    - Botan::TLS::Server_Impl_12::session_create
    - Hello_Verify_Request::cookie
    - secure_renegotiation_check
    - Protocol_Version::is_datagram_protocol
    - auto::value
    - SymmetricKey::empty
    - std::optional::has_value
    - session_manager
    - value_exists
    - callbacks
    - std::optional::value
    - Botan::TLS::Server_Impl_12::session_resume
    - policy
    - client_hello
    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:467,1
    - Dst: std::make_unique<Certificate_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:467,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:467,1
    - Dst: client_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:470,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:470,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:471,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:474,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: 475
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 475
    functionName: Botan::TLS::Server_Impl_12::process_certificate_msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 1
    functionsReached:
    - TLS_Exception
    - std::make_unique<Certificate_12>
    - client_certs
    - policy
    - set_expected_next
    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:479,1
    - Dst: client_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:479,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:480,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:482,1
    - Dst: client_kex
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:485,1
    - Dst: std::make_unique<Client_Key_Exchange>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:485,1
    - Dst: server_rsa_kex_key
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:486,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:486,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:486,1
    - Dst: compute_session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:488,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:489,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:494,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:495,1
    - Dst: session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:495,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: 497
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 497
    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:
    - compute_session_keys
    - rng
    - callbacks
    - session_keys
    - received_handshake_msg
    - client_certs
    - std::make_unique<Client_Key_Exchange>
    - policy
    - client_hello
    - client_kex
    - server_rsa_kex_key
    - set_expected_next
    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:500,1
    - Dst: change_cipher_spec_reader
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' pending_state'
    argTypes:
    - Server_Handshake_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 502
    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:507,1
    - Dst: std::make_unique<Certificate_Verify_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:507,1
    - Dst: client_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:509,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:511,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:512,1
    - Dst: allowed_usage
      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: client_verify
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:519,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:519,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:521,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:521,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:529,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:533,1
    - Dst: trusted_certificate_authorities
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:534,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:536,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:541,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:543,1
    - Dst: what
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:543,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:546,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: 547
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 547
    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:
    - handshake_io
    - callbacks
    - TLS_Exception
    - trusted_certificate_authorities
    - client_certs
    - hash
    - client_verify
    - empty
    - policy
    - client_hello
    - what
    - std::make_unique<Certificate_Verify_12>
    - allowed_usage
    - set_expected_next
    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:552,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:554,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:555,1
    - Dst: client_finished
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:558,1
    - Dst: std::make_unique<Finished_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:558,1
    - Dst: client_finished
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:560,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:561,1
    - Dst: server_finished
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:564,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:567,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:567,1
    - Dst: session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:569,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:570,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:571,1
    - Dst: server_hello
      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: Botan::TLS::Server_Impl_12::get_peer_cert_chain
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:575,1
    - Dst: Server_Information
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:576,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:576,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:577,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:578,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:582,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:583,1
    - Dst: external_psk_identity
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:583,1
    - Dst: Session_Summary::set_session_id
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:584,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:584,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:588,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:589,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:590,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:591,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:593,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:593,1
    - Dst: auto::is_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:593,1
    - Dst: new_session_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:594,1
    - Dst: std::make_unique<New_Session_Ticket_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:595,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:595,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:596,1
    - Dst: auto::ticket
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:597,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:598,1
    - Dst: new_session_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:602,1
    - Dst: server_hello
      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:603,1
    - Dst: std::make_unique<New_Session_Ticket_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:604,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:604,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:604,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:607,1
    - Dst: Change_Cipher_Spec
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:607,1
    - Dst: change_cipher_spec_writer
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:609,1
    - Dst: server_finished
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:611,1
    - Dst: std::make_unique<Finished_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:612,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:612,1
    - Dst: activate_session
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:615,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: 616
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 616
    functionName: Botan::TLS::Server_Impl_12::process_finished_msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 1
    functionsReached:
    - session_keys
    - auto::ticket
    - hash
    - server_hello
    - std::make_unique<New_Session_Ticket_12>
    - Change_Cipher_Spec
    - external_psk_identity
    - handshake_io
    - set_expected_next
    - TLS_Exception
    - auto::has_value
    - client_finished
    - server_finished
    - is_a_resumption
    - new_session_ticket
    - Botan::TLS::Server_Impl_12::get_peer_cert_chain
    - Server_Information
    - std::make_unique<Finished_12>
    - session_manager
    - callbacks
    - change_cipher_spec_writer
    - Session_Summary::set_session_id
    - client_hello
    - policy
    - auto::is_ticket
    - activate_session
    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:626,1
    - Dst: confirm_transition_to
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:627,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:638,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:638,1
    - Dst: Botan::TLS::Server_Impl_12::process_client_hello_msg
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:643,1
    - Dst: Botan::TLS::Server_Impl_12::process_certificate_msg
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:646,1
    - Dst: Botan::TLS::Server_Impl_12::process_client_key_exchange_msg
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:649,1
    - Dst: Botan::TLS::Server_Impl_12::process_certificate_verify_msg
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:652,1
    - Dst: Botan::TLS::Server_Impl_12::process_change_cipher_spec_msg
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:655,1
    - Dst: Botan::TLS::Server_Impl_12::process_finished_msg
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:658,1
    - Dst: Unexpected_Message
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:661,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: 663
      start: 621
    functionDepth: 2
    functionLinenumber: 621
    functionLinenumberEnd: 663
    functionName: Botan::TLS::Server_Impl_12::process_handshake_msg
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 0
    functionsReached:
    - confirm_transition_to
    - Botan::TLS::Server_Impl_12::process_client_hello_msg
    - Botan::TLS::Server_Impl_12::process_certificate_verify_msg
    - Unexpected_Message
    - dynamic_cast<Server_Handshake_State&>
    - hash
    - Botan::TLS::Server_Impl_12::process_change_cipher_spec_msg
    - Botan::TLS::Server_Impl_12::process_certificate_msg
    - Botan::TLS::Server_Impl_12::process_client_key_exchange_msg
    - Botan::TLS::Server_Impl_12::process_finished_msg
    - handshake_io
    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:669,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:670,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:671,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:673,1
    - Dst: std::make_unique<Server_Hello_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:673,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:673,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:674,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:675,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:676,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:677,1
    - Dst: secure_renegotiation_data_for_server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:678,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:679,1
    - Dst: secure_renegotiation_check
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:684,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:684,1
    - Dst: mark_as_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:686,1
    - Dst: compute_session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:687,1
    - Dst: session::master_secret
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:687,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:688,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:693,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:694,1
    - Dst: session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:694,1
    - Dst: set_resume_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:696,1
    - Dst: session::peer_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:696,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:700,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:701,1
    - Dst: external_psk_identity
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:701,1
    - Dst: Session_Summary::set_session_id
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:702,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:702,1
    - Dst: handle::ticket
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:703,1
    - Dst: Session_Summary::set_session_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:704,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:704,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:704,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:710,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:711,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:714,1
    - Dst: handle::id
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:714,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:718,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:719,1
    - Dst: auto::is_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:719,1
    - Dst: new_session_ticket
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:720,1
    - Dst: std::make_unique<New_Session_Ticket_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:720,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:720,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:721,1
    - Dst: auto::ticket
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:722,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:723,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:726,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: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:730,1
    - Dst: Change_Cipher_Spec
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:730,1
    - Dst: change_cipher_spec_writer
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:732,1
    - Dst: server_finished
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:734,1
    - Dst: std::make_unique<Finished_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:735,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:735,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:736,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: 737
      start: 665
    functionDepth: 1
    functionLinenumber: 665
    functionLinenumberEnd: 737
    functionName: Botan::TLS::Server_Impl_12::session_resume
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 2
    functionsReached:
    - handle::ticket
    - session_keys
    - auto::ticket
    - server_hello
    - hash
    - std::make_unique<New_Session_Ticket_12>
    - Change_Cipher_Spec
    - external_psk_identity
    - handshake_io
    - Session_Summary::set_session_ticket
    - handle::id
    - set_expected_next
    - rng
    - secure_renegotiation_data_for_server_hello
    - session::peer_certs
    - auto::has_value
    - std::make_unique<Server_Hello_12>
    - server_finished
    - is_a_resumption
    - compute_session_keys
    - new_session_ticket
    - secure_renegotiation_check
    - mark_as_resumption
    - session::master_secret
    - auto::value
    - std::make_unique<Finished_12>
    - session_manager
    - set_resume_certs
    - std::move
    - callbacks
    - change_cipher_spec_writer
    - Session_Summary::set_session_id
    - client_hello
    - policy
    - auto::is_ticket
    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:742,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:750,1
    - Dst: get_server_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:751,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:753,1
    - Dst: std::map::empty
      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::map::empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:763,1
    - Dst: send_warning_alert
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:764,1
    - Dst: choose_ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:769,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:769,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:769,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:769,1
    - Dst: Session_ID
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:771,1
    - Dst: make_hello_random
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:771,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:771,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:771,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:771,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:772,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:774,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:776,1
    - Dst: std::make_unique<Server_Hello_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:776,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:776,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:777,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:778,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:779,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:780,1
    - Dst: secure_renegotiation_data_for_server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:781,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:782,1
    - Dst: secure_renegotiation_check
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:786,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:786,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:788,1
    - Dst: signature_used
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:792,1
    - Dst: kex_method
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:792,1
    - Dst: signature_used
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:793,1
    - Dst: sig_algo
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:793,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:795,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:795,1
    - Dst: server_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:797,1
    - Dst: std::make_unique<Certificate_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:798,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:798,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:798,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:800,1
    - Dst: is_a_resumption
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:800,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:801,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:803,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:804,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:805,1
    - Dst: server_cert_status
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:806,1
    - Dst: std::make_unique<Certificate_Status>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:807,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:807,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:807,1
    - Dst: private_key_for
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:811,1
    - Dst: server_certs
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:811,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:814,1
    - Dst: kex_method
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:818,1
    - Dst: set_server_rsa_kex_key
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:819,1
    - Dst: server_kex
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:821,1
    - Dst: std::make_unique<Server_Key_Exchange>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:821,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:822,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:822,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:822,1
    - Dst: std::shared_ptr::get
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:822,1
    - Dst: trusted_certificate_authorities
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:825,1
    - Dst: all_subjects
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:830,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:831,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:831,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:831,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:831,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:834,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:834,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:836,1
    - Dst: cert_req
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:837,1
    - Dst: std::make_unique<Certificate_Request_12>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:837,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:838,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:838,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:838,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:845,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:847,1
    - Dst: server_hello_done
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:850,1
    - Dst: std::make_unique<Server_Hello_Done>
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:851,1
    - Dst: handshake_io
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:851,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp:851,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 38
    argCount: 1
    argNames:
    - ' pending_state'
    argTypes:
    - Server_Handshake_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 739
    functionDepth: 1
    functionLinenumber: 739
    functionLinenumberEnd: 852
    functionName: Botan::TLS::Server_Impl_12::session_create
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_server_impl_12.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - auto::empty
    - cert_req
    - Session_ID
    - auto::end
    - kex_method
    - std::string::empty
    - send_warning_alert
    - server_hello
    - hash
    - std::vector::end
    - std::make_unique<Server_Hello_Done>
    - version
    - ciphersuite
    - handshake_io
    - std::vector::insert
    - set_expected_next
    - rng
    - server_cert_status
    - secure_renegotiation_data_for_server_hello
    - Internal_Error
    - std::make_unique<Server_Hello_12>
    - choose_ciphersuite
    - is_a_resumption
    - server_hello_done
    - signature_used
    - std::shared_ptr::get
    - get_server_certs
    - std::make_unique<Server_Key_Exchange>
    - secure_renegotiation_check
    - std::vector::empty
    - std::make_unique<Certificate_Status>
    - server_kex
    - BOTAN_ASSERT
    - session_manager
    - auto::begin
    - all_subjects
    - callbacks
    - make_hello_random
    - std::make_unique<Certificate_12>
    - trusted_certificate_authorities
    - sig_algo
    - set_server_rsa_kex_key
    - server_certs
    - std::map::empty
    - client_hello
    - policy
    - empty
    - std::make_unique<Certificate_Request_12>
    - private_key_for
    linkageType: ''
    returnType: void
    signature: void Server_Impl_12::session_create(Server_Handshake_State& pending_state)
  - 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:
    - Botan::HashFunction::create_or_throw
    - auto::update
    - 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:
    - Botan::HashFunction::create_or_throw
    - auto::update
    - 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:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:38,1
    - 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: reserve
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:47,1
    - Dst: reserve
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:48,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: 49
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 49
    functionName: Botan::TLS::Channel_Impl_12::Channel_Impl_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - reserve
    - BOTAN_ASSERT_NONNULL
    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:52,1
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:53,1
    - Dst: clear
      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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 57
    functionName: Botan::TLS::Channel_Impl_12::reset_state
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - clear
    - reset
    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:61,1
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:62,1
    - Dst: clear
      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: reset
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 72
    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
    - clear
    - reset
    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: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    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:77,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: '& 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:82,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:83,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:84,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - epoch
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 87
    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:
    - std::to_string
    - find
    - end
    - Internal_Error
    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:90,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:91,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:92,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - epoch
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 95
    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:
    - std::to_string
    - find
    - end
    - Internal_Error
    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:98,1
    - Dst: get_peer_cert_chain
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:99,1
    - Dst: std::vector<X509_Certificate>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 102
    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>
    - get_peer_cert_chain
    - Botan::TLS::Channel_Impl_12::active_state
    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:105,1
    - Dst: Botan::TLS::Channel_Impl_12::active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:105,1
    - Dst: Botan::TLS::Channel_Impl_12::pending_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:105,1
    - Dst: auto*::psk_identity
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 111
    functionName: Botan::TLS::Channel_Impl_12::external_psk_identity
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - auto*::psk_identity
    - Botan::TLS::Channel_Impl_12::active_state
    - Botan::TLS::Channel_Impl_12::pending_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:114,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:115,1
    - Dst: active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:118,1
    - Dst: auto*::version
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:119,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:121,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:121,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:122,1
    - Dst: Protocol_Version::to_string
      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::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:129,1
    - Dst: std::make_unique<Datagram_Sequence_Numbers>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:130,1
    - Dst: std::make_unique<Stream_Sequence_Numbers>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:132,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:139,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:140,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:140,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: send_record_under_epoch
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:145,1
    - Dst: std::make_unique<Datagram_Handshake_IO>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:147,1
    - Dst: sequence_numbers
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:148,1
    - Dst: send_record
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:151,1
    - Dst: std::make_unique<Stream_Handshake_IO>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:153,1
    - Dst: new_handshake_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:156,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:156,1
    - Dst: active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:158,1
    - Dst: set_version
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:159,1
    - Dst: auto*::version
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:159,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 1
    argNames:
    - version
    argTypes:
    - Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 163
    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:
    - static_cast<uint16_t>
    - active_state
    - new_handshake_state
    - pending_state
    - set_version
    - TLS_Exception
    - Internal_Error
    - Protocol_Version::to_string
    - std::make_unique<Datagram_Sequence_Numbers>
    - Protocol_Version::is_datagram_protocol
    - std::make_unique<Datagram_Handshake_IO>
    - std::move
    - std::make_unique<Stream_Sequence_Numbers>
    - auto*::version
    - send_record_under_epoch
    - send_record
    - sequence_numbers
    - policy
    - std::make_unique<Stream_Handshake_IO>
    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:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 172
    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:175,1
    - Dst: Botan::TLS::Channel_Impl_12::active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:179,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:181,1
    - Dst: initiate_handshake
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:184,1
    - Dst: create_handshake_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:184,1
    - Dst: auto*::version
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:184,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:186,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - force_full_renegotiation
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 188
    functionName: Botan::TLS::Channel_Impl_12::renegotiate
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - initiate_handshake
    - auto*::version
    - Invalid_State
    - Botan::TLS::Channel_Impl_12::active_state
    - policy
    - Botan::TLS::Channel_Impl_12::pending_state
    - create_handshake_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:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 192
    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:195,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:197,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:197,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:199,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:200,1
    - Dst: sequence_numbers
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:203,1
    - Dst: sequence_numbers
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:205,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:207,1
    - Dst: contains
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:207,1
    - Dst: auto*::version
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:211,1
    - Dst: auto*::ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:214,1
    - Dst: auto*::session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:215,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:216,1
    - Dst: Connection_Cipher_State::Connection_Cipher_State
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:211,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - side
    argTypes:
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 219
    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:
    - auto*::version
    - sequence_numbers
    - Internal_Error
    - Connection_Cipher_State::Connection_Cipher_State
    - auto*::ciphersuite
    - auto*::server_hello
    - auto*::session_keys
    - contains
    - Botan::TLS::Channel_Impl_12::pending_state
    - BOTAN_ASSERT
    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:222,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:224,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:224,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:226,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:227,1
    - Dst: sequence_numbers
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:230,1
    - Dst: sequence_numbers
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:232,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:234,1
    - Dst: contains
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:234,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
    - Dst: Connection_Cipher_State::Connection_Cipher_State
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:237,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - side
    argTypes:
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    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:
    - auto*::version
    - sequence_numbers
    - Internal_Error
    - Connection_Cipher_State::Connection_Cipher_State
    - auto*::ciphersuite
    - auto*::server_hello
    - auto*::session_keys
    - contains
    - Botan::TLS::Channel_Impl_12::pending_state
    - BOTAN_ASSERT
    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: 1
    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:
    - callbacks
    - sequence_numbers
    - std::swap
    - version
    - map_remove_if
    - reset
    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_ASSERT_IMPLICATION
    - static_cast<size_t>
    - Unexpected_Message
    - Botan::TLS::Channel_Impl_12::process_handshake_ccs
    - static_cast<Handshake_Type>
    - Record_Header::version
    - send_fatal_alert
    - Record_Header::epoch
    - TLS_Exception
    - Record_Header::sequence
    - read_record
    - Botan::TLS::Channel_Impl_12::process_application_data
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - Botan::TLS::Channel_Impl_12::active_state
    - Record_Header::type
    - get
    - Botan::TLS::Channel_Impl_12::pending_state
    - type
    - BOTAN_ASSERT
    - auto*::version
    - Botan::TLS::Channel_Impl_12::read_cipher_state_epoch
    - Record_Header::needed
    - size
    - Botan::TLS::Channel_Impl_12::process_alert
    - policy
    - empty
    - auto*::server_hello
    - std::to_string
    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:
    - create_handshake_state
    - process_handshake_msg
    - data
    - sequence_numbers
    - size
    - Protocol_Version::is_datagram_protocol
    - Botan::TLS::Channel_Impl_12::active_state
    - auto*::get_next_handshake_msg
    - get
    - BOTAN_ASSERT
    - handshake_io
    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
    - Unexpected_Message
    - callbacks
    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: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:457,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:458,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:459,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:459,1
    - Dst: Alert::type
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:464,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:467,1
    - Dst: send_warning_alert
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:468,1
    - Dst: Alert::type
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:471,1
    - Dst: Alert::is_fatal
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:471,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - ' record'
    argTypes:
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 474
    functionName: Botan::TLS::Channel_Impl_12::process_alert
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 1
    functionsReached:
    - Alert::type
    - callbacks
    - Botan::TLS::Channel_Impl_12::active_state
    - Session_Handle
    - send_warning_alert
    - empty
    - Alert::is_fatal
    - auto*::server_hello
    - session_manager
    - reset
    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:481,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:484,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:484,1
    - Dst: sequence_numbers
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:486,1
    - Dst: Botan::TLS::write_unencrypted_record
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:489,1
    - Dst: Botan::TLS::write_record
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:491,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:491,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:494,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: 495
      start: 476
    functionDepth: 3
    functionLinenumber: 476
    functionLinenumberEnd: 495
    functionName: Botan::TLS::Channel_Impl_12::write_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - rng
    - callbacks
    - sequence_numbers
    - version
    - Botan::TLS::write_unencrypted_record
    - BOTAN_ASSERT
    - Botan::TLS::write_record
    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:502,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:505,1
    - Dst: Botan::TLS::Channel_Impl_12::write_record
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:506,1
    - Dst: auto::get
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:506,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: 511
      start: 497
    functionDepth: 4
    functionLinenumber: 497
    functionLinenumberEnd: 511
    functionName: Botan::TLS::Channel_Impl_12::send_record_array
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Channel_Impl_12::write_record
    - std::min<size_t>
    - Botan::TLS::Channel_Impl_12::write_cipher_state_epoch
    - auto::get
    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:514,1
    - Dst: sequence_numbers
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:514,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:514,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:514,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: 515
      start: 513
    functionDepth: 5
    functionLinenumber: 513
    functionLinenumberEnd: 515
    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
    - size
    - data
    - Botan::TLS::Channel_Impl_12::send_record_array
    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:520,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:520,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:520,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: 521
      start: 517
    functionDepth: 5
    functionLinenumber: 517
    functionLinenumberEnd: 521
    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:524,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:525,1
    - Dst: Botan::TLS::Channel_Impl_12::send_record_array
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:528,1
    - Dst: sequence_numbers
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:528,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:528,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:528,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 523
    functionDepth: 5
    functionLinenumber: 523
    functionLinenumberEnd: 529
    functionName: Botan::TLS::Channel_Impl_12::to_peer
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - sequence_numbers
    - Invalid_State
    - Botan::TLS::Channel_Impl_12::is_active
    - Botan::TLS::Channel_Impl_12::send_record_array
    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:532,1
    - Dst: is_valid
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:533,1
    - Dst: Botan::TLS::Channel_Impl_12::send_record
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:535,1
    - Dst: serialize
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:535,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:540,1
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:541,1
    - Dst: is_fatal
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:544,1
    - Dst: Botan::TLS::Channel_Impl_12::active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:545,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:546,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:547,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:548,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:548,1
    - Dst: Session_ID
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:548,1
    - Dst: Botan::TLS::Channel_Impl_12::reset_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:551,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:554,1
    - Dst: is_fatal
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:554,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 1
    argNames:
    - ' alert'
    argTypes:
    - Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 531
    functionDepth: 6
    functionLinenumber: 531
    functionLinenumberEnd: 557
    functionName: Botan::TLS::Channel_Impl_12::send_alert
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Channel_Impl_12::is_closed
    - is_fatal
    - Botan::TLS::Channel_Impl_12::send_record
    - Botan::TLS::Channel_Impl_12::reset_state
    - Session_ID
    - is_valid
    - Botan::TLS::Channel_Impl_12::active_state
    - Session_Handle
    - empty
    - auto*::server_hello
    - type
    - serialize
    - session_manager
    - reset
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_12::send_alert(const Alert& alert)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Client_Hello_12*::secure_renegotiation
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:560,1
    - Dst: Botan::TLS::Channel_Impl_12::active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:562,1
    - Dst: auto*::client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:563,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:566,1
    - Dst: Client_Hello_12*::renegotiation_info
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:571,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:573,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:574,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - client_hello
    argTypes:
    - Client_Hello_12*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 559
    functionDepth: 1
    functionLinenumber: 559
    functionLinenumberEnd: 577
    functionName: Botan::TLS::Channel_Impl_12::secure_renegotiation_check
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - auto*::client_hello
    - TLS_Exception
    - Botan::TLS::Channel_Impl_12::active_state
    - Client_Hello_12*::renegotiation_info
    - Client_Hello_12*::secure_renegotiation
    - Botan::TLS::Channel_Impl_12::secure_renegotiation_data_for_client_hello
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_12::secure_renegotiation_check(const Client_Hello_12*
      client_hello)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Server_Hello_12*::secure_renegotiation
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:580,1
    - Dst: Botan::TLS::Channel_Impl_12::active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:582,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:583,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:586,1
    - Dst: Server_Hello_12*::renegotiation_info
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:591,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:593,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:594,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - server_hello
    argTypes:
    - Server_Hello_12*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 579
    functionDepth: 1
    functionLinenumber: 579
    functionLinenumberEnd: 597
    functionName: Botan::TLS::Channel_Impl_12::secure_renegotiation_check
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Server_Hello_12*::renegotiation_info
    - TLS_Exception
    - Botan::TLS::Channel_Impl_12::active_state
    - auto*::server_hello
    - Botan::TLS::Channel_Impl_12::secure_renegotiation_data_for_server_hello
    - Server_Hello_12*::secure_renegotiation
    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:600,1
    - Dst: auto*::client_finished
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:601,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:603,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 599
    functionDepth: 1
    functionLinenumber: 599
    functionLinenumberEnd: 604
    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:
    - Botan::TLS::Channel_Impl_12::active_state
    - std::vector<uint8_t>
    - auto*::client_finished
    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:607,1
    - Dst: auto*::client_finished
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:608,1
    - Dst: auto*::server_finished
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:609,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:613,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 614
    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:
    - std::vector<uint8_t>
    - Botan::TLS::Channel_Impl_12::active_state
    - auto*::server_finished
    - auto*::client_finished
    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:617,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:618,1
    - Dst: Botan::TLS::Channel_Impl_12::pending_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:621,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:622,1
    - Dst: auto*::secure_renegotiation
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:623,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 616
    functionDepth: 1
    functionLinenumber: 616
    functionLinenumberEnd: 628
    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*::secure_renegotiation
    - Botan::TLS::Channel_Impl_12::active_state
    - auto*::server_hello
    - Botan::TLS::Channel_Impl_12::pending_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:633,1
    - Dst: Botan::TLS::Channel_Impl_12::pending_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:634,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:635,1
    - Dst: auto*::protocol_specific_prf
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:638,1
    - Dst: auto*::session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:640,1
    - Dst: auto*::client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:643,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:644,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:646,1
    - Dst: std::string_view::length
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:647,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:649,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:651,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:651,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:651,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:652,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:652,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:652,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:653,1
    - Dst: SymmetricKey
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:656,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:656,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:656,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:658,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - label
    - context
    - length
    argTypes:
    - std::string_view
    - std::string_view
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 660
    functionName: Botan::TLS::Channel_Impl_12::key_material_export
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - std::vector::push_back
    - auto*::client_hello
    - std::string_view::empty
    - auto::derive_key
    - Invalid_State
    - Botan::TLS::Channel_Impl_12::active_state
    - get_byte<0>
    - auto*::protocol_specific_prf
    - as_span_of_bytes
    - auto*::server_hello
    - auto*::session_keys
    - std::string_view::length
    - Botan::TLS::Channel_Impl_12::pending_state
    - Invalid_Argument
    - SymmetricKey
    - get_byte<1>
    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:38,1
    - 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: reserve
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:47,1
    - Dst: reserve
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:48,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: 49
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 49
    functionName: Botan::TLS::Channel_Impl_12::Channel_Impl_12
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - reserve
    - BOTAN_ASSERT_NONNULL
    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:52,1
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:53,1
    - Dst: clear
      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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 57
    functionName: Botan::TLS::Channel_Impl_12::reset_state
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 1
    functionsReached:
    - clear
    - reset
    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:61,1
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:62,1
    - Dst: clear
      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: reset
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 72
    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
    - clear
    - reset
    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: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    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:77,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: '& 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:82,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:83,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:84,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - epoch
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 87
    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:
    - std::to_string
    - find
    - end
    - Internal_Error
    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:90,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:91,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:92,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:92,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - epoch
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 95
    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:
    - std::to_string
    - find
    - end
    - Internal_Error
    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:98,1
    - Dst: get_peer_cert_chain
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:99,1
    - Dst: std::vector<X509_Certificate>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 102
    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>
    - get_peer_cert_chain
    - Botan::TLS::Channel_Impl_12::active_state
    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:105,1
    - Dst: Botan::TLS::Channel_Impl_12::active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:105,1
    - Dst: Botan::TLS::Channel_Impl_12::pending_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:105,1
    - Dst: auto*::psk_identity
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 111
    functionName: Botan::TLS::Channel_Impl_12::external_psk_identity
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - auto*::psk_identity
    - Botan::TLS::Channel_Impl_12::active_state
    - Botan::TLS::Channel_Impl_12::pending_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:114,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:115,1
    - Dst: active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:118,1
    - Dst: auto*::version
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:119,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:121,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:121,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:122,1
    - Dst: Protocol_Version::to_string
      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::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:129,1
    - Dst: std::make_unique<Datagram_Sequence_Numbers>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:130,1
    - Dst: std::make_unique<Stream_Sequence_Numbers>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:132,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:139,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:140,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:140,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: send_record_under_epoch
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:145,1
    - Dst: std::make_unique<Datagram_Handshake_IO>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:147,1
    - Dst: sequence_numbers
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:148,1
    - Dst: send_record
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:151,1
    - Dst: std::make_unique<Stream_Handshake_IO>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:153,1
    - Dst: new_handshake_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:156,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:156,1
    - Dst: active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:158,1
    - Dst: set_version
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:159,1
    - Dst: auto*::version
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:159,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 1
    argNames:
    - version
    argTypes:
    - Protocol_Version
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 163
    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:
    - static_cast<uint16_t>
    - active_state
    - new_handshake_state
    - pending_state
    - set_version
    - TLS_Exception
    - Internal_Error
    - Protocol_Version::to_string
    - std::make_unique<Datagram_Sequence_Numbers>
    - Protocol_Version::is_datagram_protocol
    - std::make_unique<Datagram_Handshake_IO>
    - std::move
    - std::make_unique<Stream_Sequence_Numbers>
    - auto*::version
    - send_record_under_epoch
    - send_record
    - sequence_numbers
    - policy
    - std::make_unique<Stream_Handshake_IO>
    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:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 172
    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:175,1
    - Dst: Botan::TLS::Channel_Impl_12::active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:179,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:181,1
    - Dst: initiate_handshake
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:184,1
    - Dst: create_handshake_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:184,1
    - Dst: auto*::version
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:184,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:186,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - force_full_renegotiation
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 188
    functionName: Botan::TLS::Channel_Impl_12::renegotiate
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - initiate_handshake
    - auto*::version
    - Invalid_State
    - Botan::TLS::Channel_Impl_12::active_state
    - policy
    - Botan::TLS::Channel_Impl_12::pending_state
    - create_handshake_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:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 192
    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:195,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:197,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:197,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:199,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:200,1
    - Dst: sequence_numbers
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:203,1
    - Dst: sequence_numbers
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:205,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:207,1
    - Dst: contains
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:207,1
    - Dst: auto*::version
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:211,1
    - Dst: auto*::ciphersuite
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:214,1
    - Dst: auto*::session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:215,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:216,1
    - Dst: Connection_Cipher_State::Connection_Cipher_State
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:211,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - side
    argTypes:
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 219
    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:
    - auto*::version
    - sequence_numbers
    - Internal_Error
    - Connection_Cipher_State::Connection_Cipher_State
    - auto*::ciphersuite
    - auto*::server_hello
    - auto*::session_keys
    - contains
    - Botan::TLS::Channel_Impl_12::pending_state
    - BOTAN_ASSERT
    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:222,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:224,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:224,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:226,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:227,1
    - Dst: sequence_numbers
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:230,1
    - Dst: sequence_numbers
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:232,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:234,1
    - Dst: contains
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:234,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
    - Dst: Connection_Cipher_State::Connection_Cipher_State
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:237,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - side
    argTypes:
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    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:
    - auto*::version
    - sequence_numbers
    - Internal_Error
    - Connection_Cipher_State::Connection_Cipher_State
    - auto*::ciphersuite
    - auto*::server_hello
    - auto*::session_keys
    - contains
    - Botan::TLS::Channel_Impl_12::pending_state
    - BOTAN_ASSERT
    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: 1
    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:
    - callbacks
    - sequence_numbers
    - std::swap
    - version
    - map_remove_if
    - reset
    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_ASSERT_IMPLICATION
    - static_cast<size_t>
    - Unexpected_Message
    - Botan::TLS::Channel_Impl_12::process_handshake_ccs
    - static_cast<Handshake_Type>
    - Record_Header::version
    - send_fatal_alert
    - Record_Header::epoch
    - TLS_Exception
    - Record_Header::sequence
    - read_record
    - Botan::TLS::Channel_Impl_12::process_application_data
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - Botan::TLS::Channel_Impl_12::active_state
    - Record_Header::type
    - get
    - Botan::TLS::Channel_Impl_12::pending_state
    - type
    - BOTAN_ASSERT
    - auto*::version
    - Botan::TLS::Channel_Impl_12::read_cipher_state_epoch
    - Record_Header::needed
    - size
    - Botan::TLS::Channel_Impl_12::process_alert
    - policy
    - empty
    - auto*::server_hello
    - std::to_string
    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:
    - create_handshake_state
    - process_handshake_msg
    - data
    - sequence_numbers
    - size
    - Protocol_Version::is_datagram_protocol
    - Botan::TLS::Channel_Impl_12::active_state
    - auto*::get_next_handshake_msg
    - get
    - BOTAN_ASSERT
    - handshake_io
    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
    - Unexpected_Message
    - callbacks
    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: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:457,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:458,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:459,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:459,1
    - Dst: Alert::type
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:464,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:467,1
    - Dst: send_warning_alert
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:468,1
    - Dst: Alert::type
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:471,1
    - Dst: Alert::is_fatal
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:471,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 1
    argNames:
    - ' record'
    argTypes:
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 474
    functionName: Botan::TLS::Channel_Impl_12::process_alert
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 2
    functionsReached:
    - Alert::type
    - callbacks
    - Botan::TLS::Channel_Impl_12::active_state
    - Session_Handle
    - send_warning_alert
    - empty
    - Alert::is_fatal
    - auto*::server_hello
    - session_manager
    - reset
    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:481,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:484,1
    - Dst: version
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:484,1
    - Dst: sequence_numbers
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:486,1
    - Dst: Botan::TLS::write_unencrypted_record
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:489,1
    - Dst: Botan::TLS::write_record
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:491,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:491,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:494,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: 495
      start: 476
    functionDepth: 3
    functionLinenumber: 476
    functionLinenumberEnd: 495
    functionName: Botan::TLS::Channel_Impl_12::write_record
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 1
    functionsReached:
    - rng
    - callbacks
    - sequence_numbers
    - version
    - Botan::TLS::write_unencrypted_record
    - BOTAN_ASSERT
    - Botan::TLS::write_record
    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:502,1
    - Dst: std::min<size_t>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:505,1
    - Dst: Botan::TLS::Channel_Impl_12::write_record
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:506,1
    - Dst: auto::get
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:506,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: 511
      start: 497
    functionDepth: 4
    functionLinenumber: 497
    functionLinenumberEnd: 511
    functionName: Botan::TLS::Channel_Impl_12::send_record_array
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 3
    functionsReached:
    - Botan::TLS::Channel_Impl_12::write_record
    - std::min<size_t>
    - Botan::TLS::Channel_Impl_12::write_cipher_state_epoch
    - auto::get
    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:514,1
    - Dst: sequence_numbers
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:514,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:514,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:514,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: 515
      start: 513
    functionDepth: 5
    functionLinenumber: 513
    functionLinenumberEnd: 515
    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
    - size
    - data
    - Botan::TLS::Channel_Impl_12::send_record_array
    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:520,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:520,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:520,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: 521
      start: 517
    functionDepth: 5
    functionLinenumber: 517
    functionLinenumberEnd: 521
    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:524,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:525,1
    - Dst: Botan::TLS::Channel_Impl_12::send_record_array
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:528,1
    - Dst: sequence_numbers
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:528,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:528,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:528,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 523
    functionDepth: 5
    functionLinenumber: 523
    functionLinenumberEnd: 529
    functionName: Botan::TLS::Channel_Impl_12::to_peer
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - sequence_numbers
    - Invalid_State
    - Botan::TLS::Channel_Impl_12::is_active
    - Botan::TLS::Channel_Impl_12::send_record_array
    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:532,1
    - Dst: is_valid
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:533,1
    - Dst: Botan::TLS::Channel_Impl_12::send_record
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:535,1
    - Dst: serialize
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:535,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:540,1
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:541,1
    - Dst: is_fatal
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:544,1
    - Dst: Botan::TLS::Channel_Impl_12::active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:545,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:546,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:547,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:548,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:548,1
    - Dst: Session_ID
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:548,1
    - Dst: Botan::TLS::Channel_Impl_12::reset_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:551,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:554,1
    - Dst: is_fatal
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:554,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 1
    argNames:
    - ' alert'
    argTypes:
    - Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 531
    functionDepth: 6
    functionLinenumber: 531
    functionLinenumberEnd: 557
    functionName: Botan::TLS::Channel_Impl_12::send_alert
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Channel_Impl_12::is_closed
    - is_fatal
    - Botan::TLS::Channel_Impl_12::send_record
    - Botan::TLS::Channel_Impl_12::reset_state
    - Session_ID
    - is_valid
    - Botan::TLS::Channel_Impl_12::active_state
    - Session_Handle
    - empty
    - auto*::server_hello
    - type
    - serialize
    - session_manager
    - reset
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_12::send_alert(const Alert& alert)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Client_Hello_12*::secure_renegotiation
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:560,1
    - Dst: Botan::TLS::Channel_Impl_12::active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:562,1
    - Dst: auto*::client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:563,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:566,1
    - Dst: Client_Hello_12*::renegotiation_info
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:571,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:573,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:574,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - client_hello
    argTypes:
    - Client_Hello_12*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 559
    functionDepth: 2
    functionLinenumber: 559
    functionLinenumberEnd: 577
    functionName: Botan::TLS::Channel_Impl_12::secure_renegotiation_check
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - auto*::client_hello
    - TLS_Exception
    - Botan::TLS::Channel_Impl_12::active_state
    - Client_Hello_12*::renegotiation_info
    - Client_Hello_12*::secure_renegotiation
    - Botan::TLS::Channel_Impl_12::secure_renegotiation_data_for_client_hello
    linkageType: ''
    returnType: void
    signature: void Channel_Impl_12::secure_renegotiation_check(const Client_Hello_12*
      client_hello)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Server_Hello_12*::secure_renegotiation
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:580,1
    - Dst: Botan::TLS::Channel_Impl_12::active_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:582,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:583,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:586,1
    - Dst: Server_Hello_12*::renegotiation_info
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:591,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:593,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:594,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - server_hello
    argTypes:
    - Server_Hello_12*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 579
    functionDepth: 2
    functionLinenumber: 579
    functionLinenumberEnd: 597
    functionName: Botan::TLS::Channel_Impl_12::secure_renegotiation_check
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - Server_Hello_12*::renegotiation_info
    - TLS_Exception
    - Botan::TLS::Channel_Impl_12::active_state
    - auto*::server_hello
    - Botan::TLS::Channel_Impl_12::secure_renegotiation_data_for_server_hello
    - Server_Hello_12*::secure_renegotiation
    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:600,1
    - Dst: auto*::client_finished
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:601,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:603,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 599
    functionDepth: 1
    functionLinenumber: 599
    functionLinenumberEnd: 604
    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:
    - Botan::TLS::Channel_Impl_12::active_state
    - std::vector<uint8_t>
    - auto*::client_finished
    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:607,1
    - Dst: auto*::client_finished
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:608,1
    - Dst: auto*::server_finished
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:609,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:613,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 614
    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:
    - std::vector<uint8_t>
    - Botan::TLS::Channel_Impl_12::active_state
    - auto*::server_finished
    - auto*::client_finished
    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:617,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:618,1
    - Dst: Botan::TLS::Channel_Impl_12::pending_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:621,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:622,1
    - Dst: auto*::secure_renegotiation
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:623,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 616
    functionDepth: 1
    functionLinenumber: 616
    functionLinenumberEnd: 628
    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*::secure_renegotiation
    - Botan::TLS::Channel_Impl_12::active_state
    - auto*::server_hello
    - Botan::TLS::Channel_Impl_12::pending_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:633,1
    - Dst: Botan::TLS::Channel_Impl_12::pending_state
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:634,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:635,1
    - Dst: auto*::protocol_specific_prf
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:638,1
    - Dst: auto*::session_keys
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:640,1
    - Dst: auto*::client_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:643,1
    - Dst: auto*::server_hello
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:644,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:646,1
    - Dst: std::string_view::length
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:647,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:649,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:651,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:651,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:651,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:652,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:652,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:652,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:653,1
    - Dst: SymmetricKey
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:656,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:656,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:656,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp:658,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 3
    argNames:
    - label
    - context
    - length
    argTypes:
    - std::string_view
    - std::string_view
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 660
    functionName: Botan::TLS::Channel_Impl_12::key_material_export
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_channel_impl_12.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - std::vector::push_back
    - auto*::client_hello
    - std::string_view::empty
    - auto::derive_key
    - Invalid_State
    - Botan::TLS::Channel_Impl_12::active_state
    - get_byte<0>
    - auto*::protocol_specific_prf
    - as_span_of_bytes
    - auto*::server_hello
    - auto*::session_keys
    - std::string_view::length
    - Botan::TLS::Channel_Impl_12::pending_state
    - Invalid_Argument
    - SymmetricKey
    - get_byte<1>
    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:34,1
    - Dst: server_kex
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:39,1
    - Dst: server_kex
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:40,1
    - Dst: TLS_Data_Reader::get_string
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:41,1
    - Dst: psk_identity
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:44,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:44,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:46,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:46,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:46,1
    - Dst: psk
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:48,1
    - Dst: std::string
      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: SymmetricKey::length
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:50,1
    - Dst: append_tls_length_value
      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:53,1
    - Dst: SymmetricKey::bits_of
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:53,1
    - Dst: server_kex
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:54,1
    - Dst: server_kex
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:55,1
    - Dst: TLS_Data_Reader::get_string
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:60,1
    - Dst: psk_identity
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:62,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:62,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:64,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:64,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:64,1
    - Dst: psk
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:66,1
    - Dst: std::string
      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: Botan::BigInt::from_bytes
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:70,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:70,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:71,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:71,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:72,1
    - Dst: TLS_Data_Reader::remaining_bytes
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:74,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:75,1
    - Dst: DL_Group::verify_group
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:80,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:81,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:84,1
    - Dst: Botan::CT::strip_leading_zeros
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:85,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:86,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:87,1
    - Dst: auto::public_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:87,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:89,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:91,1
    - Dst: static_cast<Group_Params>
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:94,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:94,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:95,1
    - Dst: Group_Params::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:97,1
    - Dst: Group_Params::is_x25519
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:97,1
    - Dst: Group_Params::is_x448
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:97,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:98,1
    - Dst: choose_key_exchange_group
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:102,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:103,1
    - Dst: Group_Params::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:107,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:108,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:111,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:113,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:118,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:122,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:125,1
    - Dst: append_tls_length_value
      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:128,1
    - Dst: SymmetricKey::bits_of
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:128,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:134,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:134,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:136,1
    - Dst: TLS_Data_Reader::assert_done
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:139,1
    - Dst: Unexpected_Message
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:144,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:148,1
    - Dst: dynamic_cast<const RSA_PublicKey*>
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:151,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:152,1
    - Dst: random_vec
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:154,1
    - Dst: Protocol_Version::major_version
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:155,1
    - Dst: Protocol_Version::minor_version
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:156,1
    - Dst: PK_Encryptor_EME::encrypt
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:160,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:162,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:164,1
    - Dst: Public_Key*::algo_name
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:165,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:169,1
    - Dst: send
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:169,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: 170
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 170
    functionName: Botan::TLS::Client_Key_Exchange::Client_Key_Exchange
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp
    functionUses: 0
    functionsReached:
    - TLS_Data_Reader::get_uint16_t
    - Protocol_Version::minor_version
    - PK_Encryptor_EME::encrypt
    - Unexpected_Message
    - Group_Params::is_x448
    - server_hello
    - hash
    - Protocol_Version::major_version
    - ciphersuite
    - Public_Key*::algo_name
    - psk
    - Botan::BigInt::from_bytes
    - DL_Group::verify_group
    - Group_Params::is_ecdh_named_curve
    - choose_key_exchange_group
    - TLS_Data_Reader::get_string
    - TLS_Exception
    - send
    - auto::public_value
    - psk_identity
    - Internal_Error
    - auto::raw_public_key_bits
    - value
    - append_tls_length_value
    - Decoding_Error
    - SymmetricKey::bits_of
    - Botan::CT::strip_leading_zeros
    - TLS_Data_Reader::get_byte
    - static_cast<Group_Params>
    - SymmetricKey::length
    - server_kex
    - Group_Params::is_x25519
    - dynamic_cast<const RSA_PublicKey*>
    - std::move
    - callbacks
    - TLS_Data_Reader::assert_done
    - TLS_Data_Reader::get_range
    - std::string
    - client_hello
    - as_span_of_bytes
    - random_vec
    - TLS_Data_Reader::remaining_bytes
    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:181,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:184,1
    - Dst: server_certs
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:184,1
    - Dst: server_certs
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:184,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:188,1
    - Dst: Private_Key*::algo_name
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:191,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:192,1
    - Dst: Private_Key*::algo_name
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:192,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:196,1
    - Dst: TLS_Data_Reader::assert_done
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:197,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:201,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:202,1
    - Dst: PK_Decryptor_EME::decrypt_or_random
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:215,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:215,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:216,1
    - Dst: key_exchange_is_psk
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:227,1
    - Dst: TLS_Data_Reader::get_string
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:228,1
    - Dst: psk
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:230,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:230,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:230,1
    - Dst: SymmetricKey::empty
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:232,1
    - Dst: hide_unknown_users
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:233,1
    - Dst: SymmetricKey
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:234,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:236,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:236,1
    - Dst: SymmetricKey::length
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:242,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:243,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:244,1
    - Dst: SymmetricKey::bits_of
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:244,1
    - Dst: server_kex
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:246,1
    - Dst: algo_name
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:248,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:249,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:250,1
    - Dst: server_kex
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:252,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:253,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:253,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:257,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:257,1
    - Dst: algo_name
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:259,1
    - Dst: Botan::CT::strip_leading_zeros
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:260,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:264,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:265,1
    - Dst: SymmetricKey::bits_of
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:265,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:270,1
    - Dst: what
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:270,1
    - Dst: random_vec
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:281,1
    - Dst: public_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:281,1
    - Dst: TLS_Data_Reader::assert_done
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:284,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:286,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: 289
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 289
    functionName: Botan::TLS::Client_Key_Exchange::Client_Key_Exchange
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp
    functionUses: 0
    functionsReached:
    - hide_unknown_users
    - algo_name
    - ciphersuite
    - what
    - psk
    - TLS_Data_Reader::get_string
    - TLS_Exception
    - Private_Key*::algo_name
    - public_value
    - std::vector::data
    - Internal_Error
    - key_exchange_is_psk
    - SymmetricKey
    - BOTAN_STATE_CHECK
    - value
    - append_tls_length_value
    - SymmetricKey::bits_of
    - Botan::CT::strip_leading_zeros
    - auto::value
    - SymmetricKey::empty
    - SymmetricKey::length
    - server_kex
    - std::vector::size
    - BOTAN_ASSERT
    - TLS_Data_Reader::assert_done
    - callbacks
    - TLS_Data_Reader::get_range
    - server_certs
    - client_hello
    - random_vec
    - PK_Decryptor_EME::decrypt_or_random
    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:34,1
    - Dst: server_kex
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:39,1
    - Dst: server_kex
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:40,1
    - Dst: TLS_Data_Reader::get_string
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:41,1
    - Dst: psk_identity
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:44,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:44,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:46,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:46,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:46,1
    - Dst: psk
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:48,1
    - Dst: std::string
      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: SymmetricKey::length
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:50,1
    - Dst: append_tls_length_value
      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:53,1
    - Dst: SymmetricKey::bits_of
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:53,1
    - Dst: server_kex
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:54,1
    - Dst: server_kex
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:55,1
    - Dst: TLS_Data_Reader::get_string
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:60,1
    - Dst: psk_identity
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:62,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:62,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:64,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:64,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:64,1
    - Dst: psk
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:66,1
    - Dst: std::string
      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: Botan::BigInt::from_bytes
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:70,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:70,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:71,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:71,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:72,1
    - Dst: TLS_Data_Reader::remaining_bytes
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:74,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:75,1
    - Dst: DL_Group::verify_group
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:80,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:81,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:84,1
    - Dst: Botan::CT::strip_leading_zeros
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:85,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:86,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:87,1
    - Dst: auto::public_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:87,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:89,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:91,1
    - Dst: static_cast<Group_Params>
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:94,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:94,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:95,1
    - Dst: Group_Params::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:97,1
    - Dst: Group_Params::is_x25519
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:97,1
    - Dst: Group_Params::is_x448
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:97,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:98,1
    - Dst: choose_key_exchange_group
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:102,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:103,1
    - Dst: Group_Params::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:107,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:108,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:111,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:113,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:118,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:122,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:125,1
    - Dst: append_tls_length_value
      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:128,1
    - Dst: SymmetricKey::bits_of
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:128,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:134,1
    - Dst: auto::raw_public_key_bits
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:134,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:136,1
    - Dst: TLS_Data_Reader::assert_done
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:139,1
    - Dst: Unexpected_Message
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:144,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:148,1
    - Dst: dynamic_cast<const RSA_PublicKey*>
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:151,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:152,1
    - Dst: random_vec
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:154,1
    - Dst: Protocol_Version::major_version
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:155,1
    - Dst: Protocol_Version::minor_version
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:156,1
    - Dst: PK_Encryptor_EME::encrypt
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:160,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:162,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:164,1
    - Dst: Public_Key*::algo_name
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:165,1
    - Dst: hash
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:169,1
    - Dst: send
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:169,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: 170
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 170
    functionName: Botan::TLS::Client_Key_Exchange::Client_Key_Exchange
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp
    functionUses: 0
    functionsReached:
    - TLS_Data_Reader::get_uint16_t
    - Protocol_Version::minor_version
    - PK_Encryptor_EME::encrypt
    - Unexpected_Message
    - Group_Params::is_x448
    - server_hello
    - hash
    - Protocol_Version::major_version
    - ciphersuite
    - Public_Key*::algo_name
    - psk
    - Botan::BigInt::from_bytes
    - DL_Group::verify_group
    - Group_Params::is_ecdh_named_curve
    - choose_key_exchange_group
    - TLS_Data_Reader::get_string
    - TLS_Exception
    - send
    - auto::public_value
    - psk_identity
    - Internal_Error
    - auto::raw_public_key_bits
    - value
    - append_tls_length_value
    - Decoding_Error
    - SymmetricKey::bits_of
    - Botan::CT::strip_leading_zeros
    - TLS_Data_Reader::get_byte
    - static_cast<Group_Params>
    - SymmetricKey::length
    - server_kex
    - Group_Params::is_x25519
    - dynamic_cast<const RSA_PublicKey*>
    - std::move
    - callbacks
    - TLS_Data_Reader::assert_done
    - TLS_Data_Reader::get_range
    - std::string
    - client_hello
    - as_span_of_bytes
    - random_vec
    - TLS_Data_Reader::remaining_bytes
    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:181,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:184,1
    - Dst: server_certs
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:184,1
    - Dst: server_certs
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:184,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:188,1
    - Dst: Private_Key*::algo_name
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:191,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:192,1
    - Dst: Private_Key*::algo_name
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:192,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:196,1
    - Dst: TLS_Data_Reader::assert_done
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:197,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:201,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:202,1
    - Dst: PK_Decryptor_EME::decrypt_or_random
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:215,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:215,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:216,1
    - Dst: key_exchange_is_psk
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:227,1
    - Dst: TLS_Data_Reader::get_string
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:228,1
    - Dst: psk
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:230,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:230,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:230,1
    - Dst: SymmetricKey::empty
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:232,1
    - Dst: hide_unknown_users
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:233,1
    - Dst: SymmetricKey
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:234,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:236,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:236,1
    - Dst: SymmetricKey::length
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:242,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:243,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:244,1
    - Dst: SymmetricKey::bits_of
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:244,1
    - Dst: server_kex
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:246,1
    - Dst: algo_name
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:248,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:249,1
    - Dst: TLS_Data_Reader::get_range
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:250,1
    - Dst: server_kex
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:252,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:253,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:253,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:257,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:257,1
    - Dst: algo_name
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:259,1
    - Dst: Botan::CT::strip_leading_zeros
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:260,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:264,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:265,1
    - Dst: SymmetricKey::bits_of
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:265,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:270,1
    - Dst: what
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:270,1
    - Dst: random_vec
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:281,1
    - Dst: public_value
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:281,1
    - Dst: TLS_Data_Reader::assert_done
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:284,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp:286,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: 289
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 289
    functionName: Botan::TLS::Client_Key_Exchange::Client_Key_Exchange
    functionSourceFile: /src/botan/src/lib/tls/tls12/msg_client_kex.cpp
    functionUses: 0
    functionsReached:
    - hide_unknown_users
    - algo_name
    - ciphersuite
    - what
    - psk
    - TLS_Data_Reader::get_string
    - TLS_Exception
    - Private_Key*::algo_name
    - public_value
    - std::vector::data
    - Internal_Error
    - key_exchange_is_psk
    - SymmetricKey
    - BOTAN_STATE_CHECK
    - value
    - append_tls_length_value
    - SymmetricKey::bits_of
    - Botan::CT::strip_leading_zeros
    - auto::value
    - SymmetricKey::empty
    - SymmetricKey::length
    - server_kex
    - std::vector::size
    - BOTAN_ASSERT
    - TLS_Data_Reader::assert_done
    - callbacks
    - TLS_Data_Reader::get_range
    - server_certs
    - client_hello
    - random_vec
    - PK_Decryptor_EME::decrypt_or_random
    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:
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Mode
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption
    - std::move
    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:
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Mode
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption
    - std::move
    - 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:
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Mode
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Encryption
    - std::move
    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:
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Mode
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Decryption
    - std::move
    - 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>::output_length
    - std::unique_ptr<MessageAuthenticationCode>::name
    - std::move
    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:
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::clear
    - mac
    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:
    - BOTAN_STATE_CHECK
    - empty
    - mac
    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:
    - assign
    - std::span<const uint8_t>::size
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::name
    - Invalid_Key_Length
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::reset
    - std::span<const uint8_t>::begin
    - 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_UNUSED
    - Invalid_IV_Length
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::name
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::valid_nonce_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:
    - BOTAN_ARG_CHECK
    - mac
    - 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:
    - resize
    - tag_size
    - last
    - process
    - mac
    - subspan
    - size
    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:
    - tag_size
    - resize
    - process
    - mac
    - TLS_Exception
    - subspan
    - auto::first
    - size
    - BOTAN_ARG_CHECK
    - auto::subspan
    - auto::size
    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>::output_length
    - std::unique_ptr<MessageAuthenticationCode>::name
    - std::move
    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:
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::clear
    - mac
    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:
    - BOTAN_STATE_CHECK
    - empty
    - mac
    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:
    - assign
    - std::span<const uint8_t>::size
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::name
    - Invalid_Key_Length
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::reset
    - std::span<const uint8_t>::begin
    - 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_UNUSED
    - Invalid_IV_Length
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::name
    - Botan::TLS::TLS_NULL_HMAC_AEAD_Mode::valid_nonce_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:
    - BOTAN_ARG_CHECK
    - mac
    - 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:
    - resize
    - tag_size
    - last
    - process
    - mac
    - subspan
    - size
    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:
    - tag_size
    - resize
    - process
    - mac
    - TLS_Exception
    - subspan
    - auto::first
    - size
    - BOTAN_ARG_CHECK
    - auto::subspan
    - auto::size
    linkageType: ''
    returnType: void
    signature: void TLS_NULL_HMAC_AEAD_Decryption::finish_msg(secure_vector<uint8_t>&
      buffer, size_t offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:33,1
    - Dst: std::unique_ptr<BlockCipher>::name
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:34,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::name
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:35,1
    - Dst: std::unique_ptr<BlockCipher>::block_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:37,1
    - Dst: output_length
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:40,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:42,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:43,1
    - Dst: valid_keylength
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:43,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:44,1
    - Dst: std::unique_ptr<BlockCipher>::valid_keylength
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:44,1
    - Dst: std::make_unique<Null_Padding>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:46,1
    - Dst: std::make_unique<CBC_Encryption>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:48,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:48,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:48,1
    - Dst: std::make_unique<CBC_Decryption>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:50,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:50,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:50,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: 52
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 52
    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::unique_ptr<BlockCipher>::name
    - BOTAN_ASSERT_NOMSG
    - std::move
    - std::unique_ptr<BlockCipher>::block_size
    - std::make_unique<Null_Padding>
    - std::make_unique<CBC_Decryption>
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::name
    - Protocol_Version::is_datagram_protocol
    - std::make_unique<CBC_Encryption>
    - std::unique_ptr<BlockCipher>::valid_keylength
    - output_length
    - valid_keylength
    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                                               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:55,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:56,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::reset
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::clear
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::reset
    - cbc
    - mac
    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:61,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::clear
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:62,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::clear
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::reset
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::clear
    - cbc_state
    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: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    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: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    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: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    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:79,1
    - Dst: block_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:80,1
    - Dst: iv_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - nl
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 83
    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:
    - empty
    - block_size
    - iv_size
    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:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    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:90,1
    - Dst: cbc
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    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::has_keying_material
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 0
    functionsReached:
    - cbc
    - mac
    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:96,1
    - Dst: Invalid_Key_Length
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:97,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::name
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:97,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:97,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:100,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:100,1
    - Dst: cbc
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:101,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 102
    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:
    - cbc
    - mac
    - std::span<const uint8_t>::size
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::name
    - std::span<const uint8_t>::subspan
    - Invalid_Key_Length
    - std::span<const uint8_t>::first
    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:105,1
    - Dst: Invalid_IV_Length
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:106,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::name
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:106,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::clear
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:109,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:112,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 114
    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:
    - Invalid_IV_Length
    - assign
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::valid_nonce_length
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::name
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::clear
    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:117,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 119
    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:
    - end
    - insert
    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:123,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:123,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:124,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - len
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 127
    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:
    - std::vector::size
    - BOTAN_ASSERT
    - get_byte<0>
    - get_byte<1>
    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:130,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:131,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:132,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:134,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:134,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:134,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: 135
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 135
    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:
    - assign
    - std::span<const uint8_t>::size
    - BOTAN_ARG_CHECK
    - Invalid_Argument
    - std::span<const uint8_t>::begin
    - 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: 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:138,1
    - Dst: use_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:140,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:143,1
    - Dst: assoc_data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:143,1
    - Dst: assoc_data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:143,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:144,1
    - Dst: round_up
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:144,1
    - Dst: iv_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:144,1
    - Dst: block_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:144,1
    - Dst: assoc_data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:145,1
    - Dst: get_byte<0, uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:145,1
    - Dst: assoc_data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:146,1
    - Dst: get_byte<1, uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:146,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: 148
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 148
    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:
    - static_cast<uint16_t>
    - get_byte<0, uint16_t>
    - assoc_data
    - block_size
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::set_associated_data_n
    - iv_size
    - make_uint16
    - round_up
    - get_byte<1, uint16_t>
    - use_encrypt_then_mac
    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:154,1
    - Dst: resize
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:156,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:156,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:158,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:160,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:161,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:162,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:162,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:162,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:164,1
    - Dst: block_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:164,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:165,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:166,1
    - Dst: CT::Mask<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:167,1
    - Dst: Botan::CT::Mask::is_gte
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:167,1
    - Dst: auto::select
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:168,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:171,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:172,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:173,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:173,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:173,1
    - Dst: cbc
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:175,1
    - Dst: cbc_state
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:175,1
    - Dst: cbc
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:176,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:176,1
    - Dst: cbc_state
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:178,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:178,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:178,1
    - Dst: block_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:178,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:178,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:178,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: 179
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 179
    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_ASSERT_NOMSG
    - resize
    - auto::select
    - cbc
    - Botan::CT::poison
    - data
    - size
    - static_cast<uint8_t>
    - Botan::CT::Mask::is_gte
    - block_size
    - CT::Mask<uint8_t>
    - cbc_state
    - Botan::CT::unpoison
    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:182,1
    - Dst: use_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:182,1
    - Dst: tag_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: use_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:183,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 184
    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
    - block_size
    - round_up
    - 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:187,1
    - Dst: msg
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:189,1
    - Dst: use_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:191,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:191,1
    - Dst: round_up
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:192,1
    - Dst: block_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:192,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:193,1
    - Dst: block_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:193,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:195,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:196,1
    - Dst: reserve
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:198,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:198,1
    - Dst: resize
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:199,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:201,1
    - Dst: msg
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:201,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:204,1
    - Dst: assoc_data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:204,1
    - Dst: use_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:206,1
    - Dst: iv_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:207,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:208,1
    - Dst: cbc_state
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:208,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Encryption::cbc_encrypt_record
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:211,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:212,1
    - Dst: resize
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:213,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:213,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:213,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:214,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:214,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:214,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:217,1
    - Dst: resize
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:219,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:219,1
    - Dst: tag_size
      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:220,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:220,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:220,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Encryption::cbc_encrypt_record
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:221,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 223
    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:
    - tag_size
    - update
    - resize
    - static_cast<size_t>
    - reserve
    - mac
    - copy_mem
    - size
    - static_cast<uint8_t>
    - msg
    - BOTAN_DEBUG_ASSERT
    - assoc_data
    - block_size
    - cbc_state
    - iv_size
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Encryption::cbc_encrypt_record
    - round_up
    - use_encrypt_then_mac
    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:241,1
    - Dst: std::min<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:248,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:248,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:252,1
    - Dst: is_lte
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:256,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:257,1
    - Dst: auto::if_not_set_return
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:261,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - record
    - record_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 262
    functionName: Botan::TLS::check_tls_cbc_padding
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 3
    functionsReached:
    - static_cast<uint16_t>
    - auto::if_not_set_return
    - Botan::bigint_ct_is_lt
    - Botan::ct_is_equal
    - std::min<uint16_t>
    - is_lte
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t check_tls_cbc_padding(const uint8_t record[], size_t record_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: block_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:265,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:266,1
    - Dst: cbc
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:269,1
    - Dst: cbc_state
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:269,1
    - Dst: cbc_state
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:270,1
    - Dst: block_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:270,1
    - Dst: cbc
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:272,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - record_contents
    - record_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 273
    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:
    - Decoding_Error
    - block_size
    - cbc_state
    - cbc
    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: 280
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 280
    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:325,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:330,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:330,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:334,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:334,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:342,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - plen
    - padlen
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 350
    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:
    - Botan::ct_is_equal
    - static_cast<uint16_t>
    - tag_size
    - mac
    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:353,1
    - Dst: resize
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:354,1
    - Dst: msg
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:356,1
    - Dst: msg
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:357,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:360,1
    - Dst: use_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:360,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:360,1
    - Dst: block_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:360,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:361,1
    - Dst: use_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:364,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:365,1
    - Dst: iv_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:366,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:368,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:370,1
    - Dst: assoc_data_with_len
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:370,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:370,1
    - Dst: iv_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:371,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:372,1
    - Dst: cbc_state
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:372,1
    - Dst: mac
      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:377,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:377,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:381,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:381,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:381,1
    - Dst: auto::as_bool
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:383,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:384,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::cbc_decrypt_record
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:387,1
    - Dst: check_tls_cbc_padding
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:390,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:394,1
    - Dst: insert
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:400,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:400,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::cbc_decrypt_record
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:402,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:404,1
    - Dst: check_tls_cbc_padding
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:407,1
    - Dst: is_lte
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:419,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:419,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:419,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:419,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:421,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:423,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:429,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:432,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:432,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:434,1
    - Dst: assoc_data_with_len
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:434,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:435,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:438,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:438,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:440,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:442,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:442,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:442,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:444,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:444,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:446,1
    - Dst: auto::as_bool
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:448,1
    - Dst: insert
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:449,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:449,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::perform_additional_compressions
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:451,1
    - Dst: is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:458,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:459,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:461,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 352
    functionDepth: 2
    functionLinenumber: 352
    functionLinenumberEnd: 464
    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_ASSERT_NOMSG
    - Botan::CT::is_equal
    - resize
    - static_cast<uint16_t>
    - Botan::CT::poison
    - block_size
    - Botan::CT::unpoison
    - TLS_Exception
    - is_datagram_protocol
    - std::vector::data
    - msg
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::perform_additional_compressions
    - iv_size
    - auto::if_set_return
    - use_encrypt_then_mac
    - check_tls_cbc_padding
    - Botan::sha512_msg_expand
    - mac
    - is_lte
    - tag_size
    - update
    - auto::as_bool
    - cbc_state
    - end
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::cbc_decrypt_record
    - assoc_data_with_len
    - insert
    linkageType: ''
    returnType: void
    signature: void TLS_CBC_HMAC_AEAD_Decryption::finish_msg(secure_vector<uint8_t>&
      buffer, size_t offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:33,1
    - Dst: std::unique_ptr<BlockCipher>::name
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:34,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::name
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:35,1
    - Dst: std::unique_ptr<BlockCipher>::block_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:37,1
    - Dst: output_length
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:40,1
    - Dst: Protocol_Version::is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:42,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:43,1
    - Dst: valid_keylength
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:43,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:44,1
    - Dst: std::unique_ptr<BlockCipher>::valid_keylength
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:44,1
    - Dst: std::make_unique<Null_Padding>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:46,1
    - Dst: std::make_unique<CBC_Encryption>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:48,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:48,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:48,1
    - Dst: std::make_unique<CBC_Decryption>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:50,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:50,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:50,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: 52
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 52
    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::unique_ptr<BlockCipher>::name
    - BOTAN_ASSERT_NOMSG
    - std::move
    - std::unique_ptr<BlockCipher>::block_size
    - std::make_unique<Null_Padding>
    - std::make_unique<CBC_Decryption>
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::name
    - Protocol_Version::is_datagram_protocol
    - std::make_unique<CBC_Encryption>
    - std::unique_ptr<BlockCipher>::valid_keylength
    - output_length
    - valid_keylength
    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                                               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:55,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:56,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::reset
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::clear
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::reset
    - cbc
    - mac
    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:61,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::clear
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:62,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::clear
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::reset
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::clear
    - cbc_state
    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: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    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: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    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: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    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:79,1
    - Dst: block_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:80,1
    - Dst: iv_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - nl
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 83
    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:
    - empty
    - block_size
    - iv_size
    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:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    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:90,1
    - Dst: cbc
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    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::has_keying_material
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 0
    functionsReached:
    - cbc
    - mac
    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:96,1
    - Dst: Invalid_Key_Length
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:97,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::name
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:97,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:97,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:100,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:100,1
    - Dst: cbc
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:101,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 102
    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:
    - cbc
    - mac
    - std::span<const uint8_t>::size
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::name
    - std::span<const uint8_t>::subspan
    - Invalid_Key_Length
    - std::span<const uint8_t>::first
    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:105,1
    - Dst: Invalid_IV_Length
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:106,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::name
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:106,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::clear
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:109,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:112,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - nonce
    - nonce_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 114
    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:
    - Invalid_IV_Length
    - assign
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::valid_nonce_length
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::name
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::clear
    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:117,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - sz
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 119
    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:
    - end
    - insert
    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:123,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:123,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:124,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - len
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 127
    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:
    - std::vector::size
    - BOTAN_ASSERT
    - get_byte<0>
    - get_byte<1>
    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:130,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:131,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:132,1
    - Dst: assign
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:134,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:134,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:134,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: 135
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 135
    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:
    - assign
    - std::span<const uint8_t>::size
    - BOTAN_ARG_CHECK
    - Invalid_Argument
    - std::span<const uint8_t>::begin
    - 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: 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:138,1
    - Dst: use_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:140,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:143,1
    - Dst: assoc_data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:143,1
    - Dst: assoc_data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:143,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:144,1
    - Dst: round_up
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:144,1
    - Dst: iv_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:144,1
    - Dst: block_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:144,1
    - Dst: assoc_data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:145,1
    - Dst: get_byte<0, uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:145,1
    - Dst: assoc_data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:146,1
    - Dst: get_byte<1, uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:146,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: 148
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 148
    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:
    - static_cast<uint16_t>
    - get_byte<0, uint16_t>
    - assoc_data
    - block_size
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Mode::set_associated_data_n
    - iv_size
    - make_uint16
    - round_up
    - get_byte<1, uint16_t>
    - use_encrypt_then_mac
    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:154,1
    - Dst: resize
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:156,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:156,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:158,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:160,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:161,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:162,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:162,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:162,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:164,1
    - Dst: block_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:164,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:165,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:166,1
    - Dst: CT::Mask<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:167,1
    - Dst: Botan::CT::Mask::is_gte
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:167,1
    - Dst: auto::select
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:168,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:171,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:172,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:173,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:173,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:173,1
    - Dst: cbc
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:175,1
    - Dst: cbc_state
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:175,1
    - Dst: cbc
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:176,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:176,1
    - Dst: cbc_state
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:178,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:178,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:178,1
    - Dst: block_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:178,1
    - Dst: data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:178,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:178,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: 179
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 179
    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_ASSERT_NOMSG
    - resize
    - auto::select
    - cbc
    - Botan::CT::poison
    - data
    - size
    - static_cast<uint8_t>
    - Botan::CT::Mask::is_gte
    - block_size
    - CT::Mask<uint8_t>
    - cbc_state
    - Botan::CT::unpoison
    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:182,1
    - Dst: use_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:182,1
    - Dst: tag_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: use_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:183,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input_length
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 184
    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
    - block_size
    - round_up
    - 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:187,1
    - Dst: msg
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:189,1
    - Dst: use_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:191,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:191,1
    - Dst: round_up
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:192,1
    - Dst: block_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:192,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:193,1
    - Dst: block_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:193,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:195,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:196,1
    - Dst: reserve
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:198,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:198,1
    - Dst: resize
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:199,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:201,1
    - Dst: msg
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:201,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:204,1
    - Dst: assoc_data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:204,1
    - Dst: use_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:206,1
    - Dst: iv_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:207,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:208,1
    - Dst: cbc_state
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:208,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Encryption::cbc_encrypt_record
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:211,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:212,1
    - Dst: resize
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:213,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:213,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:213,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:214,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:214,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:214,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:217,1
    - Dst: resize
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:219,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:219,1
    - Dst: tag_size
      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:220,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:220,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:220,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Encryption::cbc_encrypt_record
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:221,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 223
    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:
    - tag_size
    - update
    - resize
    - static_cast<size_t>
    - reserve
    - mac
    - copy_mem
    - size
    - static_cast<uint8_t>
    - msg
    - BOTAN_DEBUG_ASSERT
    - assoc_data
    - block_size
    - cbc_state
    - iv_size
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Encryption::cbc_encrypt_record
    - round_up
    - use_encrypt_then_mac
    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:241,1
    - Dst: std::min<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:248,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:248,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:252,1
    - Dst: is_lte
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:256,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:257,1
    - Dst: auto::if_not_set_return
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:261,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - record
    - record_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 262
    functionName: Botan::TLS::check_tls_cbc_padding
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp
    functionUses: 3
    functionsReached:
    - static_cast<uint16_t>
    - auto::if_not_set_return
    - Botan::bigint_ct_is_lt
    - Botan::ct_is_equal
    - std::min<uint16_t>
    - is_lte
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t check_tls_cbc_padding(const uint8_t record[], size_t record_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: block_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:265,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:266,1
    - Dst: cbc
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:269,1
    - Dst: cbc_state
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:269,1
    - Dst: cbc_state
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:270,1
    - Dst: block_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:270,1
    - Dst: cbc
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:272,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - record_contents
    - record_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 273
    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:
    - Decoding_Error
    - block_size
    - cbc_state
    - cbc
    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: 280
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 280
    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:325,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:330,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:330,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:334,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:334,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:342,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - plen
    - padlen
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 350
    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:
    - Botan::ct_is_equal
    - static_cast<uint16_t>
    - tag_size
    - mac
    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:353,1
    - Dst: resize
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:354,1
    - Dst: msg
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:356,1
    - Dst: msg
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:357,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:360,1
    - Dst: use_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:360,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:360,1
    - Dst: block_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:360,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:361,1
    - Dst: use_encrypt_then_mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:364,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:365,1
    - Dst: iv_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:366,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:368,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:370,1
    - Dst: assoc_data_with_len
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:370,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:370,1
    - Dst: iv_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:371,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:372,1
    - Dst: cbc_state
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:372,1
    - Dst: mac
      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:377,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:377,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:381,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:381,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:381,1
    - Dst: auto::as_bool
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:383,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:384,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::cbc_decrypt_record
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:387,1
    - Dst: check_tls_cbc_padding
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:390,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:394,1
    - Dst: insert
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:400,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:400,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::cbc_decrypt_record
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:402,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:404,1
    - Dst: check_tls_cbc_padding
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:407,1
    - Dst: is_lte
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:419,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:419,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:419,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:419,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:421,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:423,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:429,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:432,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:432,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:434,1
    - Dst: assoc_data_with_len
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:434,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:435,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:438,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:438,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:440,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:442,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:442,1
    - Dst: tag_size
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:442,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:444,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:444,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:446,1
    - Dst: auto::as_bool
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:448,1
    - Dst: insert
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:449,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:449,1
    - Dst: Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::perform_additional_compressions
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:451,1
    - Dst: is_datagram_protocol
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:458,1
    - Dst: mac
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:459,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.cpp:461,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 42
    argCount: 2
    argNames:
    - ' buffer'
    - offset
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 352
    functionDepth: 2
    functionLinenumber: 352
    functionLinenumberEnd: 464
    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_ASSERT_NOMSG
    - Botan::CT::is_equal
    - resize
    - static_cast<uint16_t>
    - Botan::CT::poison
    - block_size
    - Botan::CT::unpoison
    - TLS_Exception
    - is_datagram_protocol
    - std::vector::data
    - msg
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::perform_additional_compressions
    - iv_size
    - auto::if_set_return
    - use_encrypt_then_mac
    - check_tls_cbc_padding
    - Botan::sha512_msg_expand
    - mac
    - is_lte
    - tag_size
    - update
    - auto::as_bool
    - cbc_state
    - end
    - Botan::TLS::TLS_CBC_HMAC_AEAD_Decryption::cbc_decrypt_record
    - assoc_data_with_len
    - insert
    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:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 102
    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: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    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: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    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: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    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: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    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: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    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: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    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: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    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: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    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: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    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: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    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: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    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: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    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: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    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:111,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h:118,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 134
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Encryption
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h
    functionUses: 1
    functionsReached:
    - std::move
    - 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: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    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:143,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h:150,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h:151,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: 139
    functionDepth: 1
    functionLinenumber: 139
    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::TLS_CBC_HMAC_AEAD_Decryption
    - std::move
    - Botan::TLS::tag_size
    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:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 102
    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: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    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: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    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: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    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: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    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: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    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: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    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: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    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: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    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: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    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: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    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: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    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: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    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: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    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:111,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h:118,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 134
    functionName: Botan::TLS::TLS_CBC_HMAC_AEAD_Encryption
    functionSourceFile: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h
    functionUses: 2
    functionsReached:
    - std::move
    - 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: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    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:143,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h:150,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls12/tls_cbc/tls_cbc.h:151,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: 139
    functionDepth: 1
    functionLinenumber: 139
    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::TLS_CBC_HMAC_AEAD_Decryption
    - std::move
    - Botan::TLS::tag_size
    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:
    - Botan::TLS::Session_Manager_SQL::create_with_latest_schema
    - exec
    - Botan::TLS::Session_Manager_SQL::initialize_existing_database
    - Internal_Error
    - Botan::TLS::Session_Manager_SQL::detect_schema_revision
    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
    - Internal_Error
    - new_statement
    - Schema_Revision
    - auto::step
    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: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:99,1
    - Dst: auto::tune
      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:
    - auto::iterations
    - auto::size
    - std::span
    - Botan_CLI::Timer::milliseconds
    - auto::tune
    - SymmetricKey
    - auto::bind
    - auto::data
    - make_uint16
    - std::string_view::data
    - Botan::PasswordHashFamily::create_or_throw
    - auto::derive_key
    - secure_vector::size
    - std::string_view::size
    - new_statement
    - auto::spin
    - random_vec
    - secure_vector::data
    - create_table
    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:
    - Botan::PasswordHashFamily::create_or_throw
    - auto::from_params
    - auto::get_size_t
    - auto::derive_key
    - secure_vector::size
    - std::string_view::size
    - Internal_Error
    - auto::get_blob
    - new_statement
    - auto::step
    - Invalid_Argument
    - SymmetricKey
    - secure_vector::data
    - make_uint16
    - auto::get_str
    - std::string_view::data
    - std::span
    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:
    - ticket
    - mutex
    - id
    - start_time
    - hex_encode
    - auto::get
    - new_statement
    - Botan::TLS::Session_Manager_SQL::prune_session_cache
    - encrypt
    - server_info
    - auto::spin
    - random_vec
    - database_is_threadsafe
    - Session_Ticket
    - auto::bind
    - std::optional::emplace
    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:
    - mutex
    - id
    - hex_encode
    - auto::get
    - new_statement
    - auto::get_blob
    - auto::step
    - database_is_threadsafe
    - auto::bind
    - Botan::TLS::Session::decrypt
    - std::optional::emplace
    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
    - mutex
    - std::move
    - std::vector::emplace_back
    - Session_ID
    - Session_Handle
    - new_statement
    - auto::get_blob
    - port
    - auto::step
    - database_is_threadsafe
    - auto::get_str
    - Session_Ticket
    - hostname
    - auto::bind
    - std::span
    - Botan::TLS::Session::decrypt
    - std::optional::emplace
    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:
    - ticket
    - rows_changed_by_last_statement
    - id
    - hex_encode
    - auto::get
    - new_statement
    - auto::spin
    - Invalid_Argument
    - auto::bind
    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:
    - rows_changed_by_last_statement
    - exec
    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:
    - Botan::TLS::Session_Manager_SQL::create_with_latest_schema
    - exec
    - Botan::TLS::Session_Manager_SQL::initialize_existing_database
    - Internal_Error
    - Botan::TLS::Session_Manager_SQL::detect_schema_revision
    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
    - Internal_Error
    - new_statement
    - Schema_Revision
    - auto::step
    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: Botan_CLI::Timer::milliseconds
      Src: /src/botan/src/lib/tls/sessions_sql/tls_session_manager_sql.cpp:99,1
    - Dst: auto::tune
      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:
    - auto::iterations
    - auto::size
    - std::span
    - Botan_CLI::Timer::milliseconds
    - auto::tune
    - SymmetricKey
    - auto::bind
    - auto::data
    - make_uint16
    - std::string_view::data
    - Botan::PasswordHashFamily::create_or_throw
    - auto::derive_key
    - secure_vector::size
    - std::string_view::size
    - new_statement
    - auto::spin
    - random_vec
    - secure_vector::data
    - create_table
    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:
    - Botan::PasswordHashFamily::create_or_throw
    - auto::from_params
    - auto::get_size_t
    - auto::derive_key
    - secure_vector::size
    - std::string_view::size
    - Internal_Error
    - auto::get_blob
    - new_statement
    - auto::step
    - Invalid_Argument
    - SymmetricKey
    - secure_vector::data
    - make_uint16
    - auto::get_str
    - std::string_view::data
    - std::span
    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:
    - ticket
    - mutex
    - id
    - start_time
    - hex_encode
    - auto::get
    - new_statement
    - Botan::TLS::Session_Manager_SQL::prune_session_cache
    - encrypt
    - server_info
    - auto::spin
    - random_vec
    - database_is_threadsafe
    - Session_Ticket
    - auto::bind
    - std::optional::emplace
    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:
    - mutex
    - id
    - hex_encode
    - auto::get
    - new_statement
    - auto::get_blob
    - auto::step
    - database_is_threadsafe
    - auto::bind
    - Botan::TLS::Session::decrypt
    - std::optional::emplace
    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
    - mutex
    - std::move
    - std::vector::emplace_back
    - Session_ID
    - Session_Handle
    - new_statement
    - auto::get_blob
    - port
    - auto::step
    - database_is_threadsafe
    - auto::get_str
    - Session_Ticket
    - hostname
    - auto::bind
    - std::span
    - Botan::TLS::Session::decrypt
    - std::optional::emplace
    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:
    - ticket
    - rows_changed_by_last_statement
    - id
    - hex_encode
    - auto::get
    - new_statement
    - auto::spin
    - Invalid_Argument
    - auto::bind
    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:
    - rows_changed_by_last_statement
    - exec
    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: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    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: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    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: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    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: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    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: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::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: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    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: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    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: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    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: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    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: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::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: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    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: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    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: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    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: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    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: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::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: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    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: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    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: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    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: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    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: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::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:
    - Botan::TLS::detail::AsyncBase::get_executor
    - boost::asio::get_associated_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: 58
    functionsReached:
    - m_handler
    - std::forward<Args>
    - reset
    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:
    - get_executor
    - std::size_t
    - std::forward<HandlerT>
    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:
    - std::move
    - input_buffer
    - shutdown_received
    - Botan::TLS::Channel_Impl::set_io_buffer_size
    - copy_received_data
    - operator()(boost::system::error_code ec, std::complete_now
    - has_received_data
    - next_layer
    - process_encrypted_data
    - handle_tls_protocol_errors
    - boost::asio::mutable_buffer
    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:
    - std::move
    - input_buffer
    - shutdown_received
    - Botan::TLS::Channel_Impl::set_io_buffer_size
    - copy_received_data
    - has_received_data
    - Botan::TLS::detail::AsyncReadOperation::complete_now
    - next_layer
    - process_encrypted_data
    - handle_tls_protocol_errors
    - boost::asio::mutable_buffer
    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:
    - get_executor
    - std::size_t
    - std::forward<HandlerT>
    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:
    - send_buffer
    - boost::asio::const_buffer
    - std::move
    - consume_send_buffer
    - has_data_to_send
    - shutdown_received
    - operator()(boost::system::error_code ec, std::complete_now
    - next_layer
    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:
    - send_buffer
    - boost::asio::const_buffer
    - std::move
    - consume_send_buffer
    - has_data_to_send
    - shutdown_received
    - Botan::TLS::detail::AsyncWriteOperation::complete_now
    - next_layer
    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:
    - get_executor
    - std::size_t
    - std::forward<HandlerT>
    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:344,1
    - Dst: native_handle
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:350,1
    - Dst: handle_tls_protocol_errors
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:353,1
    - Dst: next_layer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:358,1
    - Dst: input_buffer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:358,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:358,1
    - Dst: boost::asio::mutable_buffer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:367,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:367,1
    - Dst: operator()(boost::system::error_code ec, std::complete_now
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:371,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: 373
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 373
    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:
    - std::move
    - has_data_to_send
    - shutdown_received
    - handle_tls_protocol_errors
    - native_handle
    - operator()(boost::system::error_code ec, std::complete_now
    - next_layer
    - process_encrypted_data
    - input_buffer
    - boost::asio::mutable_buffer
    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:344,1
    - Dst: native_handle
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:350,1
    - Dst: handle_tls_protocol_errors
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:353,1
    - Dst: next_layer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:358,1
    - Dst: input_buffer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:358,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:358,1
    - Dst: boost::asio::mutable_buffer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:367,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:367,1
    - Dst: Botan::TLS::detail::AsyncHandshakeOperation::complete_now
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:371,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 372
    functionName: Botan::TLS::detail::AsyncHandshakeOperation::reenter
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached:
    - std::move
    - has_data_to_send
    - Botan::TLS::detail::AsyncHandshakeOperation::complete_now
    - shutdown_received
    - handle_tls_protocol_errors
    - native_handle
    - next_layer
    - process_encrypted_data
    - input_buffer
    - boost::asio::mutable_buffer
    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:
    - Botan::TLS::detail::AsyncBase::get_executor
    - boost::asio::get_associated_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: 58
    functionsReached:
    - m_handler
    - std::forward<Args>
    - reset
    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:
    - get_executor
    - std::size_t
    - std::forward<HandlerT>
    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:
    - std::move
    - input_buffer
    - shutdown_received
    - Botan::TLS::Channel_Impl::set_io_buffer_size
    - copy_received_data
    - operator()(boost::system::error_code ec, std::complete_now
    - has_received_data
    - next_layer
    - process_encrypted_data
    - handle_tls_protocol_errors
    - boost::asio::mutable_buffer
    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:
    - std::move
    - input_buffer
    - shutdown_received
    - Botan::TLS::Channel_Impl::set_io_buffer_size
    - copy_received_data
    - has_received_data
    - Botan::TLS::detail::AsyncReadOperation::complete_now
    - next_layer
    - process_encrypted_data
    - handle_tls_protocol_errors
    - boost::asio::mutable_buffer
    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:
    - get_executor
    - std::size_t
    - std::forward<HandlerT>
    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:
    - send_buffer
    - boost::asio::const_buffer
    - std::move
    - consume_send_buffer
    - has_data_to_send
    - shutdown_received
    - operator()(boost::system::error_code ec, std::complete_now
    - next_layer
    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:
    - send_buffer
    - boost::asio::const_buffer
    - std::move
    - consume_send_buffer
    - has_data_to_send
    - shutdown_received
    - Botan::TLS::detail::AsyncWriteOperation::complete_now
    - next_layer
    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:
    - get_executor
    - std::size_t
    - std::forward<HandlerT>
    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:344,1
    - Dst: native_handle
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:350,1
    - Dst: handle_tls_protocol_errors
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:353,1
    - Dst: next_layer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:358,1
    - Dst: input_buffer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:358,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:358,1
    - Dst: boost::asio::mutable_buffer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:367,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:367,1
    - Dst: operator()(boost::system::error_code ec, std::complete_now
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:371,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: 373
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 373
    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:
    - std::move
    - has_data_to_send
    - shutdown_received
    - handle_tls_protocol_errors
    - native_handle
    - operator()(boost::system::error_code ec, std::complete_now
    - next_layer
    - process_encrypted_data
    - input_buffer
    - boost::asio::mutable_buffer
    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:344,1
    - Dst: native_handle
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:350,1
    - Dst: handle_tls_protocol_errors
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:353,1
    - Dst: next_layer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:358,1
    - Dst: input_buffer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:358,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:358,1
    - Dst: boost::asio::mutable_buffer
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:367,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:367,1
    - Dst: Botan::TLS::detail::AsyncHandshakeOperation::complete_now
      Src: /src/botan/src/lib/tls/asio/asio_async_ops.h:371,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 372
    functionName: Botan::TLS::detail::AsyncHandshakeOperation::reenter
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_async_ops.h
    functionUses: 0
    functionsReached:
    - std::move
    - has_data_to_send
    - Botan::TLS::detail::AsyncHandshakeOperation::complete_now
    - shutdown_received
    - handle_tls_protocol_errors
    - native_handle
    - next_layer
    - process_encrypted_data
    - input_buffer
    - boost::asio::mutable_buffer
    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: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    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: 60
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 60
    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: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    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:69,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/tls/asio/asio_error.h:69,1
    - Dst: Botan::TLS::botan_stream_category
      Src: /src/botan/src/lib/tls/asio/asio_error.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - Botan::TLS::StreamError
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: Botan::TLS::make_error_code
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::error_code
    - static_cast<int>
    - 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: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    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:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ev
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 80
    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: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    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:89,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/tls/asio/asio_error.h:89,1
    - Dst: Botan::TLS::botan_alert_category
      Src: /src/botan/src/lib/tls/asio/asio_error.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - Botan::TLS::Alert::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: Botan::TLS::make_error_code
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::error_code
    - static_cast<int>
    - 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: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    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: 60
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 60
    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: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    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:69,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/tls/asio/asio_error.h:69,1
    - Dst: Botan::TLS::botan_stream_category
      Src: /src/botan/src/lib/tls/asio/asio_error.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - Botan::TLS::StreamError
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: Botan::TLS::make_error_code
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::error_code
    - static_cast<int>
    - 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: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    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:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ev
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 80
    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: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    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:89,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/tls/asio/asio_error.h:89,1
    - Dst: Botan::TLS::botan_alert_category
      Src: /src/botan/src/lib/tls/asio/asio_error.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - Botan::TLS::Alert::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: Botan::TLS::make_error_code
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::error_code
    - static_cast<int>
    - 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: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    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:99,1
    - Dst: static_cast<Botan::ErrorType>
      Src: /src/botan/src/lib/tls/asio/asio_error.h:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ev
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: Botan::BotanErrorCategory::message
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached:
    - Botan::to_string
    - static_cast<Botan::ErrorType>
    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: 105
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 105
    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:108,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/tls/asio/asio_error.h:108,1
    - Dst: Botan::botan_category
      Src: /src/botan/src/lib/tls/asio/asio_error.h:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - Botan::ErrorType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: Botan::make_error_code
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::error_code
    - static_cast<int>
    - 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: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    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: 60
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 60
    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: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    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:69,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/tls/asio/asio_error.h:69,1
    - Dst: Botan::TLS::botan_stream_category
      Src: /src/botan/src/lib/tls/asio/asio_error.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - Botan::TLS::StreamError
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: Botan::TLS::make_error_code
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::error_code
    - static_cast<int>
    - 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: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    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:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ev
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 80
    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: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    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:89,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/tls/asio/asio_error.h:89,1
    - Dst: Botan::TLS::botan_alert_category
      Src: /src/botan/src/lib/tls/asio/asio_error.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - Botan::TLS::Alert::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: Botan::TLS::make_error_code
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::error_code
    - static_cast<int>
    - 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: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    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: 60
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 60
    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: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    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:69,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/tls/asio/asio_error.h:69,1
    - Dst: Botan::TLS::botan_stream_category
      Src: /src/botan/src/lib/tls/asio/asio_error.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - Botan::TLS::StreamError
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: Botan::TLS::make_error_code
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::error_code
    - static_cast<int>
    - 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: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    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:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ev
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 80
    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: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    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:89,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/tls/asio/asio_error.h:89,1
    - Dst: Botan::TLS::botan_alert_category
      Src: /src/botan/src/lib/tls/asio/asio_error.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - Botan::TLS::Alert::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: Botan::TLS::make_error_code
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::error_code
    - static_cast<int>
    - 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: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    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:99,1
    - Dst: static_cast<Botan::ErrorType>
      Src: /src/botan/src/lib/tls/asio/asio_error.h:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ev
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: Botan::BotanErrorCategory::message
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached:
    - Botan::to_string
    - static_cast<Botan::ErrorType>
    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: 105
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 105
    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:108,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/tls/asio/asio_error.h:108,1
    - Dst: Botan::botan_category
      Src: /src/botan/src/lib/tls/asio/asio_error.h:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - e
    argTypes:
    - Botan::ErrorType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: Botan::make_error_code
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_error.h
    functionUses: 0
    functionsReached:
    - Botan::TLS::error_code
    - static_cast<int>
    - 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:
    - Peer::buffer
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - commit
    - prepare
    - boost::asio::buffer_copy
    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::const_buffer
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - commit
    - prepare
    - boost::asio::buffer_copy
    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::is_fatal
    - TLS::Alert::type
    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
    - lock
    - auto::get_verify_callback
    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:
    - consume
    - size
    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::move
    - data
    - set_context
    - size
    - std::forward<Args>
    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:
    - do_throw_error
    - Botan::TLS::Stream::handshake
    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::native_handle
    - Botan::TLS::Stream::has_data_to_send
    - Botan::TLS::Stream::setup_native_handle
    - Botan::TLS::Stream::handle_tls_protocol_errors
    - Botan::TLS::Stream::read_and_process_encrypted_data_from_peer
    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>
    - boost::asio::async_initiate<CompletionToken, void(boost::system::error_code)>
    - Botan::TLS::Stream::setup_native_handle
    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::send_pending_encrypted_data
    - Botan::TLS::Stream::native_handle
    - Botan::TLS::Stream::try_with_error_code
    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:
    - do_throw_error
    - Botan::TLS::Stream::shutdown
    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::try_with_error_code
    - Botan::TLS::Channel_Impl::set_io_buffer_size
    - std::forward<completion_handler_t>
    - Botan::TLS::Stream::send_buffer
    - boost::asio::async_initiate<CompletionToken, void(boost::system::error_code)>
    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::handle_tls_protocol_errors
    - Botan::TLS::Stream::copy_received_data
    - Botan::TLS::Stream::read_and_process_encrypted_data_from_peer
    - 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::Channel_Impl::set_io_buffer_size
    - Botan::TLS::Stream::send_pending_encrypted_data
    - Botan::TLS::Stream::tls_encrypt
    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:
    - do_throw_error
    - Botan::TLS::Stream::write_some
    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:
    - boost::asio::async_initiate<CompletionToken, void(boost::system::error_code,
      std::size_t)>
    - Botan::TLS::Channel_Impl::set_io_buffer_size
    - std::forward<completion_handler_t>
    - Botan::TLS::Stream::send_buffer
    - Botan::TLS::Stream::tls_encrypt
    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:
    - Server::Server
    - Invalid_State
    - m_policy::latest_supported_version
    - Botan::TLS::Stream::try_with_error_code
    - std::unique_ptr<Server>
    - Client::Client
    - 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::alert_from_peer
    - Botan::TLS::Stream::error_from_us
    - 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:
    - Botan::TLS::Stream::process_encrypted_data
    - Invalid_State
    - Botan::TLS::Stream::has_received_data
    - Botan::TLS::Stream::alert_from_peer
    - Botan::TLS::Stream::error_from_us
    - Botan::TLS::Stream::read_some
    - input_buffer
    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::send_buffer
    - Server::handle_write
    - Botan::TLS::Stream::shutdown_received
    - Botan::TLS::Stream::consume_send_buffer
    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:
    - std::distance
    - boost::asio::const_buffer::data
    - Peer::buffer
    - boost::asio::buffer_copy
    - Botan::TLS::Stream::try_with_error_code
    - Botan::TLS::Stream::native_handle
    - unpack
    - Botan::TLS::Channel_Impl::set_io_buffer_size
    - std::vector::resize
    - boost::asio::buffer_sequence_end
    - static_cast<const uint8_t*>
    - boost::asio::buffer_sequence_begin
    - boost::asio::const_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:
    - data
    - Invalid_State
    - size
    - Botan::TLS::Stream::native_handle
    - Botan::TLS::Stream::try_with_error_code
    - Botan::TLS::Stream::alert_from_peer
    - Botan::TLS::Stream::error_from_us
    - static_cast<const uint8_t*>
    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:
    - f
    - error_type
    - type
    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:
    - Peer::buffer
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - commit
    - prepare
    - boost::asio::buffer_copy
    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::const_buffer
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - commit
    - prepare
    - boost::asio::buffer_copy
    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::is_fatal
    - TLS::Alert::type
    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
    - lock
    - auto::get_verify_callback
    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:
    - consume
    - size
    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::move
    - data
    - set_context
    - size
    - std::forward<Args>
    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:
    - do_throw_error
    - Botan::TLS::Stream::handshake
    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::native_handle
    - Botan::TLS::Stream::has_data_to_send
    - Botan::TLS::Stream::setup_native_handle
    - Botan::TLS::Stream::handle_tls_protocol_errors
    - Botan::TLS::Stream::read_and_process_encrypted_data_from_peer
    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>
    - boost::asio::async_initiate<CompletionToken, void(boost::system::error_code)>
    - Botan::TLS::Stream::setup_native_handle
    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::send_pending_encrypted_data
    - Botan::TLS::Stream::native_handle
    - Botan::TLS::Stream::try_with_error_code
    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:
    - do_throw_error
    - Botan::TLS::Stream::shutdown
    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::try_with_error_code
    - Botan::TLS::Channel_Impl::set_io_buffer_size
    - std::forward<completion_handler_t>
    - Botan::TLS::Stream::send_buffer
    - boost::asio::async_initiate<CompletionToken, void(boost::system::error_code)>
    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::handle_tls_protocol_errors
    - Botan::TLS::Stream::copy_received_data
    - Botan::TLS::Stream::read_and_process_encrypted_data_from_peer
    - 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::Channel_Impl::set_io_buffer_size
    - Botan::TLS::Stream::send_pending_encrypted_data
    - Botan::TLS::Stream::tls_encrypt
    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:
    - do_throw_error
    - Botan::TLS::Stream::write_some
    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:
    - boost::asio::async_initiate<CompletionToken, void(boost::system::error_code,
      std::size_t)>
    - Botan::TLS::Channel_Impl::set_io_buffer_size
    - std::forward<completion_handler_t>
    - Botan::TLS::Stream::send_buffer
    - Botan::TLS::Stream::tls_encrypt
    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:
    - Server::Server
    - Invalid_State
    - m_policy::latest_supported_version
    - Botan::TLS::Stream::try_with_error_code
    - std::unique_ptr<Server>
    - Client::Client
    - 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::alert_from_peer
    - Botan::TLS::Stream::error_from_us
    - 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:
    - Botan::TLS::Stream::process_encrypted_data
    - Invalid_State
    - Botan::TLS::Stream::has_received_data
    - Botan::TLS::Stream::alert_from_peer
    - Botan::TLS::Stream::error_from_us
    - Botan::TLS::Stream::read_some
    - input_buffer
    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::send_buffer
    - Server::handle_write
    - Botan::TLS::Stream::shutdown_received
    - Botan::TLS::Stream::consume_send_buffer
    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:
    - std::distance
    - boost::asio::const_buffer::data
    - Peer::buffer
    - boost::asio::buffer_copy
    - Botan::TLS::Stream::try_with_error_code
    - Botan::TLS::Stream::native_handle
    - unpack
    - Botan::TLS::Channel_Impl::set_io_buffer_size
    - std::vector::resize
    - boost::asio::buffer_sequence_end
    - static_cast<const uint8_t*>
    - boost::asio::buffer_sequence_begin
    - boost::asio::const_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:
    - data
    - Invalid_State
    - size
    - Botan::TLS::Stream::native_handle
    - Botan::TLS::Stream::try_with_error_code
    - Botan::TLS::Stream::alert_from_peer
    - Botan::TLS::Stream::error_from_us
    - static_cast<const uint8_t*>
    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:
    - f
    - error_type
    - type
    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:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 35
    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:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 44
    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:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 35
    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:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 44
    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:53,1
    - Dst: std::make_shared<AutoSeeded_RNG>
      Src: /src/botan/src/lib/tls/asio/asio_context.cpp:54,1
    - Dst: std::make_shared<Session_Manager_In_Memory>
      Src: /src/botan/src/lib/tls/asio/asio_context.cpp:55,1
    - Dst: std::make_shared<Default_Policy>
      Src: /src/botan/src/lib/tls/asio/asio_context.cpp:56,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_context.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - server_info
    argTypes:
    - Server_Information
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: Botan::TLS::Context::Context
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_context.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_shared<Session_Manager_In_Memory>
    - std::make_shared<AutoSeeded_RNG>
    - std::make_shared<Default_Policy>
    - std::make_shared<Default_Credentials_Manager>
    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:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 35
    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:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 44
    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:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 35
    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:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 44
    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:53,1
    - Dst: std::make_shared<AutoSeeded_RNG>
      Src: /src/botan/src/lib/tls/asio/asio_context.cpp:54,1
    - Dst: std::make_shared<Session_Manager_In_Memory>
      Src: /src/botan/src/lib/tls/asio/asio_context.cpp:55,1
    - Dst: std::make_shared<Default_Policy>
      Src: /src/botan/src/lib/tls/asio/asio_context.cpp:56,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/asio/asio_context.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - server_info
    argTypes:
    - Server_Information
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: Botan::TLS::Context::Context
    functionSourceFile: /src/botan/src/lib/tls/asio/asio_context.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_shared<Session_Manager_In_Memory>
    - std::make_shared<AutoSeeded_RNG>
    - std::make_shared<Default_Policy>
    - std::make_shared<Default_Credentials_Manager>
    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:20,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:20,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:20,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data_from_peer
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 21
    functionName: Botan::TLS::Handshake_Layer::copy_data
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 2
    functionsReached:
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - end
    - insert
    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:29,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:43,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:52,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - byte_value
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 55
    functionName: Botan::TLS::handshake_type_from_byte
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - static_cast<Handshake_Type>
    linkageType: ''
    returnType: Handshake_Type
    signature: Handshake_Type handshake_type_from_byte(uint8_t byte_value)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: remaining_bytes
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:63,1
    - Dst: Botan::TLS::handshake_type_from_byte
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:67,1
    - Dst: get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:67,1
    - Dst: get_uint24_t
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:70,1
    - Dst: remaining_bytes
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:71,1
    - Dst: get_fixed
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:76,1
    - Dst: generalize_to<Handshake_Message_13>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:83,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:83,1
    - Dst: generalize_to<Handshake_Message_13>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:87,1
    - Dst: Botan::TLS::Server_Hello_13::parse
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:87,1
    - Dst: Encrypted_Extensions
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:91,1
    - Dst: Certificate_13
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:93,1
    - Dst: Certificate_Request_13
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:95,1
    - Dst: Botan::TLS::Certificate_Verify_13
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:97,1
    - Dst: Botan::TLS::Finished_13
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:99,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:101,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:104,1
    - Dst: New_Session_Ticket_13
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:108,1
    - Dst: Key_Update
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:110,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:112,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: 115
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 115
    functionName: Botan::TLS::parse_message
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Key_Update
    - Botan::TLS::Client_Hello_13::parse
    - Encrypted_Extensions
    - Botan::TLS::handshake_type_from_byte
    - New_Session_Ticket_13
    - Certificate_Request_13
    - get_uint24_t
    - Botan::TLS::Finished_13
    - get_byte
    - Botan::TLS::Certificate_Verify_13
    - Botan::TLS::Server_Hello_13::parse
    - BOTAN_UNUSED
    - remaining_bytes
    - generalize_to<Handshake_Message_13>
    - Certificate_13
    - BOTAN_ASSERT
    - get_fixed
    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:29,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:43,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:52,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - byte_value
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 55
    functionName: Botan::TLS::handshake_type_from_byte
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 1
    functionsReached:
    - TLS_Exception
    - static_cast<Handshake_Type>
    linkageType: ''
    returnType: Handshake_Type
    signature: Handshake_Type handshake_type_from_byte(uint8_t byte_value)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: remaining_bytes
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:63,1
    - Dst: Botan::TLS::handshake_type_from_byte
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:67,1
    - Dst: get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:67,1
    - Dst: get_uint24_t
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:70,1
    - Dst: remaining_bytes
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:71,1
    - Dst: get_fixed
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:76,1
    - Dst: generalize_to<Handshake_Message_13>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:83,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:83,1
    - Dst: generalize_to<Handshake_Message_13>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:87,1
    - Dst: Botan::TLS::Server_Hello_13::parse
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:87,1
    - Dst: Encrypted_Extensions
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:91,1
    - Dst: Certificate_13
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:93,1
    - Dst: Certificate_Request_13
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:95,1
    - Dst: Botan::TLS::Certificate_Verify_13
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:97,1
    - Dst: Botan::TLS::Finished_13
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:99,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:101,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:104,1
    - Dst: New_Session_Ticket_13
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:108,1
    - Dst: Key_Update
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:110,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:112,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: 115
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 115
    functionName: Botan::TLS::parse_message
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Key_Update
    - Botan::TLS::Client_Hello_13::parse
    - Encrypted_Extensions
    - Botan::TLS::handshake_type_from_byte
    - New_Session_Ticket_13
    - Certificate_Request_13
    - get_uint24_t
    - Botan::TLS::Finished_13
    - get_byte
    - Botan::TLS::Certificate_Verify_13
    - Botan::TLS::Server_Hello_13::parse
    - BOTAN_UNUSED
    - remaining_bytes
    - generalize_to<Handshake_Message_13>
    - Certificate_13
    - BOTAN_ASSERT
    - get_fixed
    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:123,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:124,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:125,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:125,1
    - Dst: TLS::TLS_Data_Reader::read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:125,1
    - Dst: update
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:126,1
    - Dst: data
      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: erase
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:127,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:127,1
    - Dst: cbegin
      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
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' policy'
    - ' transcript_hash'
    argTypes:
    - Policy
    - Transcript_Hash_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 131
    functionName: Botan::TLS::Handshake_Layer::next_message
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - update
    - parse_message<Handshake_Message_13>
    - data
    - auto::has_value
    - size
    - erase
    - cbegin
    - TLS::TLS_Data_Reader::read_so_far
    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:136,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:137,1
    - Dst: erase
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:138,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:138,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:138,1
    - Dst: TLS::TLS_Data_Reader::read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' policy'
    argTypes:
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 142
    functionName: Botan::TLS::Handshake_Layer::next_post_handshake_message
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - parse_message<Post_Handshake_Message_13>
    - auto::has_value
    - erase
    - cbegin
    - TLS::TLS_Data_Reader::read_so_far
    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:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - std::reference_wrapper<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 149
    functionName: Botan::TLS::get
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 14
    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: 155
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: Botan::TLS::get
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 14
    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:160,1
    - Dst: std::pair
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:160,1
    - Dst: Botan::TLS::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:160,1
    - Dst: Botan::TLS::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:160,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:162,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:162,1
    - Dst: static_cast<uint32_t>
      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<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:166,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:166,1
    - Dst: get_byte<2>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:166,1
    - Dst: get_byte<3>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:166,1
    - Dst: concat
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 169
    functionName: Botan::TLS::marshall_message
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - concat
    - static_cast<uint32_t>
    - get_byte<3>
    - std::pair
    - size
    - static_cast<uint8_t>
    - get_byte<2>
    - std::visit
    - Botan::TLS::get
    - get_byte<1>
    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:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - std::reference_wrapper<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 149
    functionName: Botan::TLS::get
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 16
    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: 155
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: Botan::TLS::get
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 16
    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:160,1
    - Dst: std::pair
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:160,1
    - Dst: Botan::TLS::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:160,1
    - Dst: Botan::TLS::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:160,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:162,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:162,1
    - Dst: static_cast<uint32_t>
      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<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:166,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:166,1
    - Dst: get_byte<2>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:166,1
    - Dst: get_byte<3>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:166,1
    - Dst: concat
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 169
    functionName: Botan::TLS::marshall_message
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - concat
    - static_cast<uint32_t>
    - get_byte<3>
    - std::pair
    - size
    - static_cast<uint8_t>
    - get_byte<2>
    - std::visit
    - Botan::TLS::get
    - get_byte<1>
    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:175,1
    - Dst: update
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:176,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: 178
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 178
    functionName: Botan::TLS::Handshake_Layer::prepare_message
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 2
    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:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - Post_Handshake_Message_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 182
    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:20,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:20,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:20,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data_from_peer
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 21
    functionName: Botan::TLS::Handshake_Layer::copy_data
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 2
    functionsReached:
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - end
    - insert
    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:29,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:43,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:52,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - byte_value
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 55
    functionName: Botan::TLS::handshake_type_from_byte
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 2
    functionsReached:
    - TLS_Exception
    - static_cast<Handshake_Type>
    linkageType: ''
    returnType: Handshake_Type
    signature: Handshake_Type handshake_type_from_byte(uint8_t byte_value)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: remaining_bytes
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:63,1
    - Dst: Botan::TLS::handshake_type_from_byte
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:67,1
    - Dst: get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:67,1
    - Dst: get_uint24_t
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:70,1
    - Dst: remaining_bytes
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:71,1
    - Dst: get_fixed
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:76,1
    - Dst: generalize_to<Handshake_Message_13>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:83,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:83,1
    - Dst: generalize_to<Handshake_Message_13>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:87,1
    - Dst: Botan::TLS::Server_Hello_13::parse
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:87,1
    - Dst: Encrypted_Extensions
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:91,1
    - Dst: Certificate_13
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:93,1
    - Dst: Certificate_Request_13
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:95,1
    - Dst: Botan::TLS::Certificate_Verify_13
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:97,1
    - Dst: Botan::TLS::Finished_13
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:99,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:101,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:104,1
    - Dst: New_Session_Ticket_13
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:108,1
    - Dst: Key_Update
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:110,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:112,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: 115
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 115
    functionName: Botan::TLS::parse_message
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Key_Update
    - Botan::TLS::Client_Hello_13::parse
    - Encrypted_Extensions
    - Botan::TLS::handshake_type_from_byte
    - New_Session_Ticket_13
    - Certificate_Request_13
    - get_uint24_t
    - Botan::TLS::Finished_13
    - get_byte
    - Botan::TLS::Certificate_Verify_13
    - Botan::TLS::Server_Hello_13::parse
    - BOTAN_UNUSED
    - remaining_bytes
    - generalize_to<Handshake_Message_13>
    - Certificate_13
    - BOTAN_ASSERT
    - get_fixed
    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:29,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:43,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:52,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - byte_value
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 55
    functionName: Botan::TLS::handshake_type_from_byte
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 3
    functionsReached:
    - TLS_Exception
    - static_cast<Handshake_Type>
    linkageType: ''
    returnType: Handshake_Type
    signature: Handshake_Type handshake_type_from_byte(uint8_t byte_value)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: remaining_bytes
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:63,1
    - Dst: Botan::TLS::handshake_type_from_byte
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:67,1
    - Dst: get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:67,1
    - Dst: get_uint24_t
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:70,1
    - Dst: remaining_bytes
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:71,1
    - Dst: get_fixed
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:76,1
    - Dst: generalize_to<Handshake_Message_13>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:83,1
    - Dst: Botan::TLS::Client_Hello_13::parse
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:83,1
    - Dst: generalize_to<Handshake_Message_13>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:87,1
    - Dst: Botan::TLS::Server_Hello_13::parse
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:87,1
    - Dst: Encrypted_Extensions
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:91,1
    - Dst: Certificate_13
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:93,1
    - Dst: Certificate_Request_13
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:95,1
    - Dst: Botan::TLS::Certificate_Verify_13
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:97,1
    - Dst: Botan::TLS::Finished_13
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:99,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:101,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:104,1
    - Dst: New_Session_Ticket_13
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:108,1
    - Dst: Key_Update
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:110,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:112,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: 115
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 115
    functionName: Botan::TLS::parse_message
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - Key_Update
    - Botan::TLS::Client_Hello_13::parse
    - Encrypted_Extensions
    - Botan::TLS::handshake_type_from_byte
    - New_Session_Ticket_13
    - Certificate_Request_13
    - get_uint24_t
    - Botan::TLS::Finished_13
    - get_byte
    - Botan::TLS::Certificate_Verify_13
    - Botan::TLS::Server_Hello_13::parse
    - BOTAN_UNUSED
    - remaining_bytes
    - generalize_to<Handshake_Message_13>
    - Certificate_13
    - BOTAN_ASSERT
    - get_fixed
    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:123,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:124,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:125,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:125,1
    - Dst: TLS::TLS_Data_Reader::read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:125,1
    - Dst: update
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:126,1
    - Dst: data
      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: erase
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:127,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:127,1
    - Dst: cbegin
      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
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' policy'
    - ' transcript_hash'
    argTypes:
    - Policy
    - Transcript_Hash_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 131
    functionName: Botan::TLS::Handshake_Layer::next_message
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - update
    - parse_message<Handshake_Message_13>
    - data
    - auto::has_value
    - size
    - erase
    - cbegin
    - TLS::TLS_Data_Reader::read_so_far
    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:136,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:137,1
    - Dst: erase
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:138,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:138,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:138,1
    - Dst: TLS::TLS_Data_Reader::read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' policy'
    argTypes:
    - Policy
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 142
    functionName: Botan::TLS::Handshake_Layer::next_post_handshake_message
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - parse_message<Post_Handshake_Message_13>
    - auto::has_value
    - erase
    - cbegin
    - TLS::TLS_Data_Reader::read_so_far
    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:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - std::reference_wrapper<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 149
    functionName: Botan::TLS::get
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 18
    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: 155
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: Botan::TLS::get
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 18
    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:160,1
    - Dst: std::pair
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:160,1
    - Dst: Botan::TLS::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:160,1
    - Dst: Botan::TLS::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:160,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:162,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:162,1
    - Dst: static_cast<uint32_t>
      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<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:166,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:166,1
    - Dst: get_byte<2>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:166,1
    - Dst: get_byte<3>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:166,1
    - Dst: concat
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 169
    functionName: Botan::TLS::marshall_message
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - concat
    - static_cast<uint32_t>
    - get_byte<3>
    - std::pair
    - size
    - static_cast<uint8_t>
    - get_byte<2>
    - std::visit
    - Botan::TLS::get
    - get_byte<1>
    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:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - std::reference_wrapper<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 149
    functionName: Botan::TLS::get
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 20
    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: 155
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 155
    functionName: Botan::TLS::get
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 20
    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:160,1
    - Dst: std::pair
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:160,1
    - Dst: Botan::TLS::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:160,1
    - Dst: Botan::TLS::get
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:160,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:162,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:162,1
    - Dst: static_cast<uint32_t>
      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<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:166,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:166,1
    - Dst: get_byte<2>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:166,1
    - Dst: get_byte<3>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:166,1
    - Dst: concat
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 169
    functionName: Botan::TLS::marshall_message
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - concat
    - static_cast<uint32_t>
    - get_byte<3>
    - std::pair
    - size
    - static_cast<uint8_t>
    - get_byte<2>
    - std::visit
    - Botan::TLS::get
    - get_byte<1>
    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:175,1
    - Dst: update
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp:176,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: 178
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 178
    functionName: Botan::TLS::Handshake_Layer::prepare_message
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_layer_13.cpp
    functionUses: 2
    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:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - Post_Handshake_Message_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 182
    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:33,1
    - Dst: allow_tls12
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:36,1
    - Dst: expect_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:37,1
    - Dst: Botan::TLS::Client_Impl_13::find_session_for_resumption
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:41,1
    - Dst: auto::session::version
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:42,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:43,1
    - Dst: expects_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:44,1
    - Dst: request_downgrade_for_resumption
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:47,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:47,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:47,1
    - Dst: send_handshake_message
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:52,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:52,1
    - Dst: Client_Hello_13
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:53,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:56,1
    - Dst: find_preshared_keys
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:59,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:59,1
    - Dst: expects_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:61,1
    - Dst: preserve_client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:62,1
    - Dst: tls_13_middlebox_compatibility_mode
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:71,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:75,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: 76
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 76
    functionName: Botan::TLS::Client_Impl_13::Client_Impl_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 0
    functionsReached:
    - Client_Hello_13
    - std::move
    - tls_13_middlebox_compatibility_mode
    - expect_downgrade
    - auto::session::version
    - request_downgrade_for_resumption
    - send_handshake_message
    - sending
    - hostname
    - find_preshared_keys
    - auto::value
    - Botan::TLS::Client_Impl_13::find_session_for_resumption
    - expects_downgrade
    - allow_tls12
    - preserve_client_hello
    - set_expected_next
    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:79,1
    - Dst: confirm_transition_to
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:82,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:82,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:85,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:85,1
    - Dst: Botan::TLS::Client_Impl_13::handle
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:88,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:88,1
    - Dst: received
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:90,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - message
    argTypes:
    - Handshake_Message_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 91
    functionName: Botan::TLS::Client_Impl_13::process_handshake_msg
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 0
    functionsReached:
    - confirm_transition_to
    - std::move
    - callbacks
    - std::visit
    - get
    - received
    - Botan::TLS::Client_Impl_13::handle
    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:94,1
    - Dst: Botan::TLS::Client_Impl_13::is_handshake_complete
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:94,1
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:96,1
    - Dst: Botan::TLS::Client_Impl_13::handle
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:96,1
    - Dst: received
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:96,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - message
    argTypes:
    - Post_Handshake_Message_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 97
    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:
    - std::move
    - Botan::TLS::Client_Impl_13::is_handshake_complete
    - std::visit
    - received
    - BOTAN_STATE_CHECK
    - Botan::TLS::Client_Impl_13::handle
    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:104,1
    - Dst: has_server_finished
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:104,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 115
    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_server_finished
    - TLS_Exception
    - has_client_hello
    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:118,1
    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::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:137,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:137,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:137,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:138,1
    - Dst: auto::front
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:145,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 148
    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:
    - std::move
    - callbacks
    - auto::empty
    - auto::front
    - policy
    - 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:151,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:152,1
    - Dst: expects_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:159,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:160,1
    - Dst: random_signals_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:173,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:174,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:183,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:184,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:191,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:192,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:192,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:193,1
    - Dst: selected_version
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:193,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:194,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:197,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:198,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:198,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:203,1
    - Dst: request_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:206,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:210,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 22
    argCount: 1
    argNames:
    - ' server_hello_msg'
    argTypes:
    - Server_Hello_12
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 211
    functionName: Botan::TLS::Client_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - random_signals_downgrade
    - has
    - extensions
    - TLS_Exception
    - session_id
    - request_downgrade
    - has_hello_retry_request
    - client_hello
    - selected_version
    - policy
    - get
    - expects_downgrade
    - set_expected_next
    linkageType: ''
    returnType: void
    signature: void Client_Impl_13::handle(const Server_Hello_12& server_hello_msg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:219,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:219,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:220,1
    - Dst: offered_suite
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:226,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:226,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:227,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:236,1
    - Dst: Botan::TLS::extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:236,1
    - Dst: Botan::TLS::extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:237,1
    - Dst: selected_version
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:237,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:238,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - ' ch'
    - ' sh'
    argTypes:
    - Client_Hello_13
    - Server_Hello_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 240
    functionName: Botan::TLS::validate_server_hello_ish
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - TLS_Exception
    - session_id
    - offered_suite
    - selected_version
    - ciphersuite
    - Botan::TLS::extensions
    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:219,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:219,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:220,1
    - Dst: offered_suite
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:226,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:226,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:227,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:236,1
    - Dst: Botan::TLS::extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:236,1
    - Dst: Botan::TLS::extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:237,1
    - Dst: selected_version
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:237,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:238,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - ' ch'
    - ' sh'
    argTypes:
    - Client_Hello_13
    - Server_Hello_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 240
    functionName: Botan::TLS::validate_server_hello_ish
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - TLS_Exception
    - session_id
    - offered_suite
    - selected_version
    - ciphersuite
    - Botan::TLS::extensions
    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:247,1
    - Dst: validate_server_hello_ish
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:249,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:256,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:256,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:257,1
    - Dst: has_hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:260,1
    - Dst: hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:261,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:267,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:267,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:268,1
    - Dst: selected_version
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:275,1
    - Dst: selected_version
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:275,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:276,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:280,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:280,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:281,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:281,1
    - Dst: auto::usable_in_version
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:287,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:288,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:302,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:303,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:306,1
    - Dst: auto*::decapsulate
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:307,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:307,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:307,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:307,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:307,1
    - Dst: set_algorithm
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:309,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:309,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:311,1
    - Dst: std::tie
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:312,1
    - Dst: extensions
      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:313,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:313,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:318,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:318,1
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:319,1
    - Dst: advance_with_client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:325,1
    - Dst: previous
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:325,1
    - Dst: advance_with_server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:326,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:327,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:327,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:327,1
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:329,1
    - Dst: Botan::TLS::Cipher_State::init_with_server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:330,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:331,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:331,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:331,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:334,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:334,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:336,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 1
    argNames:
    - ' sh'
    argTypes:
    - Server_Hello_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 337
    functionName: Botan::TLS::Client_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - advance_with_client_hello
    - ciphersuite
    - set_algorithm
    - reset
    - set_expected_next
    - rng
    - extensions
    - TLS_Exception
    - auto::has_value
    - Botan::TLS::Ciphersuite::by_id
    - std::tie
    - validate_server_hello_ish
    - current
    - auto::value
    - has_hello_retry_request
    - advance_with_server_hello
    - std::move
    - callbacks
    - auto::usable_in_version
    - Botan::TLS::Cipher_State::init_with_server_hello
    - hello_retry_request
    - selected_version
    - client_hello
    - policy
    - auto*::decapsulate
    - has_value
    - previous
    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:344,1
    - Dst: validate_server_hello_ish
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:346,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:352,1
    - Dst: auto::insert
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:353,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:354,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:355,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:358,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:358,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:359,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:359,1
    - Dst: Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:362,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:362,1
    - Dst: retry
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:364,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:364,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:364,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:366,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:366,1
    - Dst: send_handshake_message
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:368,1
    - Dst: std::reference_wrapper
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:368,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:373,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' hrr'
    argTypes:
    - Hello_Retry_Request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 339
    functionDepth: 2
    functionLinenumber: 339
    functionLinenumberEnd: 374
    functionName: Botan::TLS::Client_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - validate_server_hello_ish
    - callbacks
    - extensions
    - rng
    - send_handshake_message
    - TLS_Exception
    - auto::has_value
    - retry
    - auto::value
    - Botan::TLS::Ciphersuite::by_id
    - client_hello
    - Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
    - std::reference_wrapper
    - auto::insert
    - ciphersuite
    - set_expected_next
    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:377,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:384,1
    - Dst: contains_other_than
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:385,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:386,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:393,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:393,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:401,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:402,1
    - Dst: set_record_size_limits
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:403,1
    - Dst: auto*::limit
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:403,1
    - Dst: auto*::limit
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:403,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:406,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:407,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:408,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:409,1
    - Dst: auto*::validate_selection
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:410,1
    - Dst: set_selected_certificate_type
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:419,1
    - Dst: auto*::selected_certificate_type
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:419,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:422,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:424,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:428,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:430,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - ' encrypted_extensions_msg'
    argTypes:
    - Encrypted_Extensions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 432
    functionName: Botan::TLS::Client_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 2
    functionsReached:
    - has
    - set_record_size_limits
    - auto*::validate_selection
    - extensions
    - callbacks
    - TLS_Exception
    - contains_other_than
    - auto*::limit
    - set_selected_certificate_type
    - auto*::selected_certificate_type
    - server_hello
    - client_hello
    - get
    - set_expected_next
    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:438,1
    - Dst: context
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:438,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:439,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:442,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:443,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:444,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - ' certificate_request_msg'
    argTypes:
    - Certificate_Request_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 445
    functionName: Botan::TLS::Client_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 2
    functionsReached:
    - callbacks
    - extensions
    - Botan::TLS::Client_Impl_13::is_handshake_complete
    - TLS_Exception
    - context
    - 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:451,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:452,1
    - Dst: validate_extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:458,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:458,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:458,1
    - Dst: verify
      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: policy
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:460,1
    - Dst: credentials_manager
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:461,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:462,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:463,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:465,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' certificate_msg'
    argTypes:
    - Certificate_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 466
    functionName: Botan::TLS::Client_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 2
    functionsReached:
    - validate_extensions
    - callbacks
    - TLS_Exception
    - credentials_manager
    - request_context
    - client_hello
    - policy
    - hostname
    - verify
    - set_expected_next
    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:477,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:478,1
    - Dst: signature_scheme
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:478,1
    - Dst: TLS_Exception
      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:480,1
    - Dst: verify
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:484,1
    - Dst: server_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:485,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:485,1
    - Dst: previous
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:485,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:488,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:491,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ' certificate_verify_msg'
    argTypes:
    - Certificate_Verify_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 492
    functionName: Botan::TLS::Client_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 2
    functionsReached:
    - callbacks
    - server_certificate
    - TLS_Exception
    - set_expected_next
    - previous
    - client_hello
    - verify
    - signature_scheme
    - value_exists
    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:495,1
    - Dst: has_certificate_request
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:495,1
    - Dst: certificate_request
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:496,1
    - Dst: encrypted_extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:499,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:500,1
    - Dst: has
      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:501,1
    - Dst: get
      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: auto*::selected_certificate_type
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:512,1
    - Dst: add
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:526,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:526,1
    - Dst: Certificate_13
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:527,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:527,1
    - Dst: credentials_manager
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:527,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:527,1
    - Dst: client_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:535,1
    - Dst: add
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:536,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:536,1
    - Dst: Certificate_Verify_13
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:536,1
    - Dst: client_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:536,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:537,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:538,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:539,1
    - Dst: credentials_manager
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:541,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:542,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:543,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:544,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' flight'
    argTypes:
    - Channel_Impl_13::AggregatedHandshakeMessages
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 494
    functionDepth: 2
    functionLinenumber: 494
    functionLinenumberEnd: 546
    functionName: Botan::TLS::Client_Impl_13::send_client_authentication
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - has
    - client_certificate
    - hostname
    - rng
    - signature_schemes
    - sending
    - auto*::selected_certificate_type
    - add
    - certificate_request
    - current
    - encrypted_extensions
    - credentials_manager
    - get
    - Certificate_Verify_13
    - callbacks
    - has_certificate_request
    - client_hello
    - policy
    - Certificate_13
    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:553,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:553,1
    - Dst: previous
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:553,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:554,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:559,1
    - Dst: Session_Summary
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:559,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:559,1
    - Dst: Botan::TLS::Client_Impl_13::peer_cert_chain
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:561,1
    - Dst: Botan::TLS::Client_Impl_13::peer_raw_public_key
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:562,1
    - Dst: Botan::TLS::Client_Impl_13::external_psk_identity
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:563,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:564,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:566,1
    - Dst: advance_with_server_finished
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:570,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:570,1
    - Dst: aggregate_handshake_messages
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:572,1
    - Dst: has_certificate_request
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:577,1
    - Dst: Botan::TLS::Client_Impl_13::send_client_authentication
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:578,1
    - Dst: auto::add
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:582,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:582,1
    - Dst: Finished_13
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:582,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:582,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:582,1
    - Dst: auto::send
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:584,1
    - Dst: advance_with_client_finished
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:587,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:587,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:594,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:596,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' finished_msg'
    argTypes:
    - Finished_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 548
    functionDepth: 3
    functionLinenumber: 548
    functionLinenumberEnd: 597
    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::external_psk_identity
    - Finished_13
    - server_hello
    - Botan::TLS::Client_Impl_13::peer_cert_chain
    - Botan::TLS::Client_Impl_13::send_client_authentication
    - set_expected_next
    - TLS_Exception
    - sending
    - aggregate_handshake_messages
    - Botan::TLS::Client_Impl_13::peer_raw_public_key
    - auto::send
    - advance_with_server_finished
    - current
    - get
    - auto::add
    - verify
    - callbacks
    - Session_Summary
    - has_certificate_request
    - advance_with_client_finished
    - has_value
    - previous
    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:600,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:601,1
    - Dst: psk
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:603,1
    - Dst: nonce
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:603,1
    - Dst: early_data_byte_limit
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:604,1
    - Dst: ticket_age_add
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:605,1
    - Dst: lifetime_hint
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:606,1
    - Dst: server_hello
      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: peer_cert_chain
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:610,1
    - Dst: peer_raw_public_key
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:611,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:613,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:615,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:616,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:616,1
    - Dst: handle
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' new_session_ticket'
    argTypes:
    - New_Session_Ticket_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 599
    functionDepth: 1
    functionLinenumber: 599
    functionLinenumberEnd: 618
    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:
    - lifetime_hint
    - callbacks
    - extensions
    - nonce
    - handle
    - Session_Handle
    - early_data_byte_limit
    - server_hello
    - ticket_age_add
    - peer_cert_chain
    - peer_raw_public_key
    - psk
    - 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:621,1
    - Dst: server_certificate
      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: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:626,1
    - Dst: session::peer_certs
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:627,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 620
    functionDepth: 1
    functionLinenumber: 620
    functionLinenumberEnd: 631
    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_value
    - has_server_certificate_msg
    - server_certificate
    - session::peer_certs
    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:634,1
    - Dst: server_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:634,1
    - Dst: server_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:635,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:638,1
    - Dst: session::peer_raw_public_key
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:639,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 643
    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_value
    - has_server_certificate_msg
    - server_certificate
    - session::peer_raw_public_key
    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: 647
      start: 645
    functionDepth: 0
    functionLinenumber: 645
    functionLinenumberEnd: 647
    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:650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 651
    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:654,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:655,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:655,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: 657
      start: 653
    functionDepth: 0
    functionLinenumber: 653
    functionLinenumberEnd: 657
    functionName: Botan::TLS::Client_Impl_13::maybe_log_secret
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 0
    functionsReached:
    - policy
    - callbacks
    - client_hello
    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:660,1
    - Dst: encrypted_extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:661,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:662,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:663,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 668
    functionName: Botan::TLS::Client_Impl_13::application_protocol
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 0
    functionsReached:
    - has
    - encrypted_extensions
    - get
    - Botan::TLS::Client_Impl_13::is_handshake_complete
    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:33,1
    - Dst: allow_tls12
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:36,1
    - Dst: expect_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:37,1
    - Dst: Botan::TLS::Client_Impl_13::find_session_for_resumption
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:41,1
    - Dst: auto::session::version
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:42,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:43,1
    - Dst: expects_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:44,1
    - Dst: request_downgrade_for_resumption
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:47,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:47,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:47,1
    - Dst: send_handshake_message
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:52,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:52,1
    - Dst: Client_Hello_13
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:53,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:56,1
    - Dst: find_preshared_keys
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:59,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:59,1
    - Dst: expects_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:61,1
    - Dst: preserve_client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:62,1
    - Dst: tls_13_middlebox_compatibility_mode
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:71,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:75,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: 76
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 76
    functionName: Botan::TLS::Client_Impl_13::Client_Impl_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 0
    functionsReached:
    - Client_Hello_13
    - std::move
    - tls_13_middlebox_compatibility_mode
    - expect_downgrade
    - auto::session::version
    - request_downgrade_for_resumption
    - send_handshake_message
    - sending
    - hostname
    - find_preshared_keys
    - auto::value
    - Botan::TLS::Client_Impl_13::find_session_for_resumption
    - expects_downgrade
    - allow_tls12
    - preserve_client_hello
    - set_expected_next
    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:79,1
    - Dst: confirm_transition_to
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:82,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:82,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:85,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:85,1
    - Dst: Botan::TLS::Client_Impl_13::handle
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:88,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:88,1
    - Dst: received
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:90,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - message
    argTypes:
    - Handshake_Message_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 91
    functionName: Botan::TLS::Client_Impl_13::process_handshake_msg
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 0
    functionsReached:
    - confirm_transition_to
    - std::move
    - callbacks
    - std::visit
    - get
    - received
    - Botan::TLS::Client_Impl_13::handle
    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:94,1
    - Dst: Botan::TLS::Client_Impl_13::is_handshake_complete
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:94,1
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:96,1
    - Dst: Botan::TLS::Client_Impl_13::handle
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:96,1
    - Dst: received
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:96,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - message
    argTypes:
    - Post_Handshake_Message_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 97
    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:
    - std::move
    - Botan::TLS::Client_Impl_13::is_handshake_complete
    - std::visit
    - received
    - BOTAN_STATE_CHECK
    - Botan::TLS::Client_Impl_13::handle
    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:104,1
    - Dst: has_server_finished
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:104,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:105,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 115
    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_server_finished
    - TLS_Exception
    - has_client_hello
    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:118,1
    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::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:137,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:137,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:137,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:138,1
    - Dst: auto::front
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:145,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 148
    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:
    - std::move
    - callbacks
    - auto::empty
    - auto::front
    - policy
    - 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:151,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:152,1
    - Dst: expects_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:159,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:160,1
    - Dst: random_signals_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:173,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:174,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:183,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:184,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:191,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:192,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:192,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:193,1
    - Dst: selected_version
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:193,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:194,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:197,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:198,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:198,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:203,1
    - Dst: request_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:206,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:210,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 22
    argCount: 1
    argNames:
    - ' server_hello_msg'
    argTypes:
    - Server_Hello_12
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 211
    functionName: Botan::TLS::Client_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 4
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - random_signals_downgrade
    - has
    - extensions
    - TLS_Exception
    - session_id
    - request_downgrade
    - has_hello_retry_request
    - client_hello
    - selected_version
    - policy
    - get
    - expects_downgrade
    - set_expected_next
    linkageType: ''
    returnType: void
    signature: void Client_Impl_13::handle(const Server_Hello_12& server_hello_msg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:219,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:219,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:220,1
    - Dst: offered_suite
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:226,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:226,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:227,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:236,1
    - Dst: Botan::TLS::extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:236,1
    - Dst: Botan::TLS::extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:237,1
    - Dst: selected_version
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:237,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:238,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - ' ch'
    - ' sh'
    argTypes:
    - Client_Hello_13
    - Server_Hello_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 240
    functionName: Botan::TLS::validate_server_hello_ish
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - TLS_Exception
    - session_id
    - offered_suite
    - selected_version
    - ciphersuite
    - Botan::TLS::extensions
    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:219,1
    - Dst: session_id
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:219,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:220,1
    - Dst: offered_suite
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:226,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:226,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:227,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:236,1
    - Dst: Botan::TLS::extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:236,1
    - Dst: Botan::TLS::extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:237,1
    - Dst: selected_version
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:237,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:238,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - ' ch'
    - ' sh'
    argTypes:
    - Client_Hello_13
    - Server_Hello_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 240
    functionName: Botan::TLS::validate_server_hello_ish
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - TLS_Exception
    - session_id
    - offered_suite
    - selected_version
    - ciphersuite
    - Botan::TLS::extensions
    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:247,1
    - Dst: validate_server_hello_ish
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:249,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:256,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:256,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:257,1
    - Dst: has_hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:260,1
    - Dst: hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:261,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:267,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:267,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:268,1
    - Dst: selected_version
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:275,1
    - Dst: selected_version
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:275,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:276,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:280,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:280,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:281,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:281,1
    - Dst: auto::usable_in_version
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:287,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:288,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:302,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:303,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:306,1
    - Dst: auto*::decapsulate
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:307,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:307,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:307,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:307,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:307,1
    - Dst: set_algorithm
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:309,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:309,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:311,1
    - Dst: std::tie
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:312,1
    - Dst: extensions
      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:313,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:313,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:318,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:318,1
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:319,1
    - Dst: advance_with_client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:325,1
    - Dst: previous
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:325,1
    - Dst: advance_with_server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:326,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:327,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:327,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:327,1
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:329,1
    - Dst: Botan::TLS::Cipher_State::init_with_server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:330,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:331,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:331,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:331,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:334,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:334,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:336,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 34
    argCount: 1
    argNames:
    - ' sh'
    argTypes:
    - Server_Hello_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 243
    functionDepth: 2
    functionLinenumber: 243
    functionLinenumberEnd: 337
    functionName: Botan::TLS::Client_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 4
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - advance_with_client_hello
    - ciphersuite
    - set_algorithm
    - reset
    - set_expected_next
    - rng
    - extensions
    - TLS_Exception
    - auto::has_value
    - Botan::TLS::Ciphersuite::by_id
    - std::tie
    - validate_server_hello_ish
    - current
    - auto::value
    - has_hello_retry_request
    - advance_with_server_hello
    - std::move
    - callbacks
    - auto::usable_in_version
    - Botan::TLS::Cipher_State::init_with_server_hello
    - hello_retry_request
    - selected_version
    - client_hello
    - policy
    - auto*::decapsulate
    - has_value
    - previous
    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:344,1
    - Dst: validate_server_hello_ish
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:346,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:352,1
    - Dst: auto::insert
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:353,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:354,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:355,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:358,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:358,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:359,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:359,1
    - Dst: Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:362,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:362,1
    - Dst: retry
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:364,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:364,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:364,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:366,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:366,1
    - Dst: send_handshake_message
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:368,1
    - Dst: std::reference_wrapper
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:368,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:373,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - ' hrr'
    argTypes:
    - Hello_Retry_Request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 339
    functionDepth: 2
    functionLinenumber: 339
    functionLinenumberEnd: 374
    functionName: Botan::TLS::Client_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 4
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - validate_server_hello_ish
    - callbacks
    - extensions
    - rng
    - send_handshake_message
    - TLS_Exception
    - auto::has_value
    - retry
    - auto::value
    - Botan::TLS::Ciphersuite::by_id
    - client_hello
    - Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
    - std::reference_wrapper
    - auto::insert
    - ciphersuite
    - set_expected_next
    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:377,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:384,1
    - Dst: contains_other_than
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:385,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:386,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:393,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:393,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:401,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:402,1
    - Dst: set_record_size_limits
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:403,1
    - Dst: auto*::limit
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:403,1
    - Dst: auto*::limit
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:403,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:406,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:407,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:408,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:409,1
    - Dst: auto*::validate_selection
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:410,1
    - Dst: set_selected_certificate_type
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:419,1
    - Dst: auto*::selected_certificate_type
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:419,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:422,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:424,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:428,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:430,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - ' encrypted_extensions_msg'
    argTypes:
    - Encrypted_Extensions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 432
    functionName: Botan::TLS::Client_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 4
    functionsReached:
    - has
    - set_record_size_limits
    - auto*::validate_selection
    - extensions
    - callbacks
    - TLS_Exception
    - contains_other_than
    - auto*::limit
    - set_selected_certificate_type
    - auto*::selected_certificate_type
    - server_hello
    - client_hello
    - get
    - set_expected_next
    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:438,1
    - Dst: context
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:438,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:439,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:442,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:443,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:444,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - ' certificate_request_msg'
    argTypes:
    - Certificate_Request_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 434
    functionDepth: 1
    functionLinenumber: 434
    functionLinenumberEnd: 445
    functionName: Botan::TLS::Client_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 4
    functionsReached:
    - callbacks
    - extensions
    - Botan::TLS::Client_Impl_13::is_handshake_complete
    - TLS_Exception
    - context
    - 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:451,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:452,1
    - Dst: validate_extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:458,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:458,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:458,1
    - Dst: verify
      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: policy
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:460,1
    - Dst: credentials_manager
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:461,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:462,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:463,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:465,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' certificate_msg'
    argTypes:
    - Certificate_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 466
    functionName: Botan::TLS::Client_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 4
    functionsReached:
    - validate_extensions
    - callbacks
    - TLS_Exception
    - credentials_manager
    - request_context
    - client_hello
    - policy
    - hostname
    - verify
    - set_expected_next
    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:477,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:478,1
    - Dst: signature_scheme
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:478,1
    - Dst: TLS_Exception
      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:480,1
    - Dst: verify
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:484,1
    - Dst: server_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:485,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:485,1
    - Dst: previous
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:485,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:488,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:491,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ' certificate_verify_msg'
    argTypes:
    - Certificate_Verify_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 492
    functionName: Botan::TLS::Client_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 4
    functionsReached:
    - callbacks
    - server_certificate
    - TLS_Exception
    - set_expected_next
    - previous
    - client_hello
    - verify
    - signature_scheme
    - value_exists
    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:495,1
    - Dst: has_certificate_request
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:495,1
    - Dst: certificate_request
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:496,1
    - Dst: encrypted_extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:499,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:500,1
    - Dst: has
      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:501,1
    - Dst: get
      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: auto*::selected_certificate_type
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:512,1
    - Dst: add
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:526,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:526,1
    - Dst: Certificate_13
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:527,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:527,1
    - Dst: credentials_manager
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:527,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:527,1
    - Dst: client_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:535,1
    - Dst: add
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:536,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:536,1
    - Dst: Certificate_Verify_13
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:536,1
    - Dst: client_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:536,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:537,1
    - Dst: hostname
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:538,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:539,1
    - Dst: credentials_manager
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:541,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:542,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:543,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:544,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - ' flight'
    argTypes:
    - Channel_Impl_13::AggregatedHandshakeMessages
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 494
    functionDepth: 2
    functionLinenumber: 494
    functionLinenumberEnd: 546
    functionName: Botan::TLS::Client_Impl_13::send_client_authentication
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - has
    - client_certificate
    - hostname
    - rng
    - signature_schemes
    - sending
    - auto*::selected_certificate_type
    - add
    - certificate_request
    - current
    - encrypted_extensions
    - credentials_manager
    - get
    - Certificate_Verify_13
    - callbacks
    - has_certificate_request
    - client_hello
    - policy
    - Certificate_13
    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:553,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:553,1
    - Dst: previous
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:553,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:554,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:559,1
    - Dst: Session_Summary
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:559,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:559,1
    - Dst: Botan::TLS::Client_Impl_13::peer_cert_chain
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:561,1
    - Dst: Botan::TLS::Client_Impl_13::peer_raw_public_key
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:562,1
    - Dst: Botan::TLS::Client_Impl_13::external_psk_identity
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:563,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:564,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:566,1
    - Dst: advance_with_server_finished
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:570,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:570,1
    - Dst: aggregate_handshake_messages
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:572,1
    - Dst: has_certificate_request
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:577,1
    - Dst: Botan::TLS::Client_Impl_13::send_client_authentication
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:578,1
    - Dst: auto::add
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:582,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:582,1
    - Dst: Finished_13
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:582,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:582,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:582,1
    - Dst: auto::send
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:584,1
    - Dst: advance_with_client_finished
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:587,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:587,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:594,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:596,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - ' finished_msg'
    argTypes:
    - Finished_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 548
    functionDepth: 3
    functionLinenumber: 548
    functionLinenumberEnd: 597
    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::external_psk_identity
    - Finished_13
    - server_hello
    - Botan::TLS::Client_Impl_13::peer_cert_chain
    - Botan::TLS::Client_Impl_13::send_client_authentication
    - set_expected_next
    - TLS_Exception
    - sending
    - aggregate_handshake_messages
    - Botan::TLS::Client_Impl_13::peer_raw_public_key
    - auto::send
    - advance_with_server_finished
    - current
    - get
    - auto::add
    - verify
    - callbacks
    - Session_Summary
    - has_certificate_request
    - advance_with_client_finished
    - has_value
    - previous
    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:600,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:601,1
    - Dst: psk
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:603,1
    - Dst: nonce
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:603,1
    - Dst: early_data_byte_limit
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:604,1
    - Dst: ticket_age_add
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:605,1
    - Dst: lifetime_hint
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:606,1
    - Dst: server_hello
      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: peer_cert_chain
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:610,1
    - Dst: peer_raw_public_key
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:611,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:613,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:615,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:616,1
    - Dst: Session_Handle
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:616,1
    - Dst: handle
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:616,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' new_session_ticket'
    argTypes:
    - New_Session_Ticket_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 599
    functionDepth: 1
    functionLinenumber: 599
    functionLinenumberEnd: 618
    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:
    - lifetime_hint
    - callbacks
    - extensions
    - nonce
    - handle
    - Session_Handle
    - early_data_byte_limit
    - server_hello
    - ticket_age_add
    - peer_cert_chain
    - peer_raw_public_key
    - psk
    - 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:621,1
    - Dst: server_certificate
      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: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:626,1
    - Dst: session::peer_certs
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:627,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 620
    functionDepth: 1
    functionLinenumber: 620
    functionLinenumberEnd: 631
    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_value
    - has_server_certificate_msg
    - server_certificate
    - session::peer_certs
    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:634,1
    - Dst: server_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:634,1
    - Dst: server_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:635,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:638,1
    - Dst: session::peer_raw_public_key
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:639,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 643
    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_value
    - has_server_certificate_msg
    - server_certificate
    - session::peer_raw_public_key
    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: 647
      start: 645
    functionDepth: 0
    functionLinenumber: 645
    functionLinenumberEnd: 647
    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:650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 649
    functionDepth: 0
    functionLinenumber: 649
    functionLinenumberEnd: 651
    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:654,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:655,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:655,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: 657
      start: 653
    functionDepth: 0
    functionLinenumber: 653
    functionLinenumberEnd: 657
    functionName: Botan::TLS::Client_Impl_13::maybe_log_secret
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 0
    functionsReached:
    - policy
    - callbacks
    - client_hello
    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:660,1
    - Dst: encrypted_extensions
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:661,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:662,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp:663,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 668
    functionName: Botan::TLS::Client_Impl_13::application_protocol
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_client_impl_13.cpp
    functionUses: 0
    functionsReached:
    - has
    - encrypted_extensions
    - get
    - Botan::TLS::Client_Impl_13::is_handshake_complete
    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:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - algo_spec
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 21
    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:
    - Dst: m_hash::copy_state
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Transcript_Hash_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    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:
    - 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:34,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:35,1
    - Dst: m_unprocessed_transcript::size
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:35,1
    - Dst: m_unprocessed_transcript::front
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:39,1
    - Dst: m_unprocessed_transcript::back
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:40,1
    - Dst: Transcript_Hash_State::m_hash::output_length
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:42,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:43,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:50,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:51,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:52,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:53,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:54,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:54,1
    - Dst: Transcript_Hash_State::m_hash::process
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:55,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:57,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:58,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: 61
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 61
    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:
    - BOTAN_ASSERT_NOMSG
    - std::vector::push_back
    - Transcript_Hash_State::m_hash::output_length
    - m_unprocessed_transcript::front
    - static_cast<uint8_t>
    - Transcript_Hash_State::m_hash::process
    - m_unprocessed_transcript::size
    - m_unprocessed_transcript::back
    - BOTAN_STATE_CHECK
    - Transcript_Hash_State::update
    - std::vector::reserve
    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:80,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:80,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:80,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:83,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:86,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:89,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:92,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:93,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:99,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:100,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:103,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:104,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::read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:108,1
    - Dst: TLS_Data_Reader::has_remaining
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:109,1
    - Dst: TLS_Data_Reader::read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:109,1
    - Dst: static_cast<Extension_Code>
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:110,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:110,1
    - Dst: TLS_Data_Reader::get_uint16_t
      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:115,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:120,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:121,1
    - Dst: TLS_Data_Reader::peek_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:124,1
    - Dst: TLS_Data_Reader::remaining_bytes
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:125,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:126,1
    - Dst: TLS_Data_Reader::read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:135,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - client_hello
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 136
    functionName: Botan::TLS::find_client_hello_truncation_mark
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - TLS_Data_Reader::read_so_far
    - TLS_Data_Reader::get_uint16_t
    - TLS_Data_Reader::has_remaining
    - TLS_Exception
    - TLS_Data_Reader::get_byte
    - TLS_Data_Reader::peek_uint16_t
    - static_cast<uint8_t>
    - TLS_Data_Reader::discard_next
    - static_cast<Extension_Code>
    - TLS_Data_Reader::remaining_bytes
    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:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' hash'
    argTypes:
    - std::unique_ptr<HashFunction>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 143
    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:80,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:80,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:80,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:83,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:86,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:89,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:92,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:93,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:99,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:100,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:103,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:104,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::read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:108,1
    - Dst: TLS_Data_Reader::has_remaining
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:109,1
    - Dst: TLS_Data_Reader::read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:109,1
    - Dst: static_cast<Extension_Code>
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:110,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:110,1
    - Dst: TLS_Data_Reader::get_uint16_t
      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:115,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:120,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:121,1
    - Dst: TLS_Data_Reader::peek_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:124,1
    - Dst: TLS_Data_Reader::remaining_bytes
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:125,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:126,1
    - Dst: TLS_Data_Reader::read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:135,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - client_hello
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 136
    functionName: Botan::TLS::find_client_hello_truncation_mark
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - TLS_Data_Reader::read_so_far
    - TLS_Data_Reader::get_uint16_t
    - TLS_Data_Reader::has_remaining
    - TLS_Exception
    - TLS_Data_Reader::get_byte
    - TLS_Data_Reader::peek_uint16_t
    - static_cast<uint8_t>
    - TLS_Data_Reader::discard_next
    - static_cast<Extension_Code>
    - TLS_Data_Reader::remaining_bytes
    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:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' hash'
    argTypes:
    - std::unique_ptr<HashFunction>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 143
    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:148,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:149,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:155,1
    - Dst: find_client_hello_truncation_mark
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:156,1
    - Dst: Botan::TLS::Transcript_Hash_State::update
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:160,1
    - Dst: read_hash_state
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:161,1
    - Dst: Botan::TLS::Transcript_Hash_State::update
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:162,1
    - Dst: clear
      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:165,1
    - Dst: std::exchange
      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:168,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:170,1
    - Dst: std::vector
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:171,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - serialized_message_s
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 173
    functionName: Botan::TLS::Transcript_Hash_State::update
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Transcript_Hash_State::update
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - clear
    - static_cast<uint8_t>
    - std::exchange
    - find_client_hello_truncation_mark
    - push_back
    - read_hash_state
    - std::vector
    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:176,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 178
    functionName: '& Transcript_Hash_State::current() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - empty
    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:181,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: '& Transcript_Hash_State::previous() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - empty
    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:186,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 188
    functionName: '& Transcript_Hash_State::truncated() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - empty
    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:191,1
    - Dst: name
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:191,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:196,1
    - Dst: Botan::TLS::Transcript_Hash_State::update
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:198,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:200,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - algo_spec
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 201
    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
    - name
    - clear
    - Botan::HashFunction::create_or_throw
    - 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: 205
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 205
    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:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - algo_spec
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 21
    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:
    - Dst: m_hash::copy_state
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Transcript_Hash_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    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:
    - 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:34,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:35,1
    - Dst: m_unprocessed_transcript::size
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:35,1
    - Dst: m_unprocessed_transcript::front
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:39,1
    - Dst: m_unprocessed_transcript::back
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:40,1
    - Dst: Transcript_Hash_State::m_hash::output_length
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:42,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:43,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:50,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:51,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:52,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:53,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:54,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:54,1
    - Dst: Transcript_Hash_State::m_hash::process
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:55,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:57,1
    - Dst: Transcript_Hash_State::update
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:58,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: 61
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 61
    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:
    - BOTAN_ASSERT_NOMSG
    - std::vector::push_back
    - Transcript_Hash_State::m_hash::output_length
    - m_unprocessed_transcript::front
    - static_cast<uint8_t>
    - Transcript_Hash_State::m_hash::process
    - m_unprocessed_transcript::size
    - m_unprocessed_transcript::back
    - BOTAN_STATE_CHECK
    - Transcript_Hash_State::update
    - std::vector::reserve
    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:80,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:80,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:80,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:83,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:86,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:89,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:92,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:93,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:99,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:100,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:103,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:104,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::read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:108,1
    - Dst: TLS_Data_Reader::has_remaining
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:109,1
    - Dst: TLS_Data_Reader::read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:109,1
    - Dst: static_cast<Extension_Code>
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:110,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:110,1
    - Dst: TLS_Data_Reader::get_uint16_t
      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:115,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:120,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:121,1
    - Dst: TLS_Data_Reader::peek_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:124,1
    - Dst: TLS_Data_Reader::remaining_bytes
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:125,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:126,1
    - Dst: TLS_Data_Reader::read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:135,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - client_hello
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 136
    functionName: Botan::TLS::find_client_hello_truncation_mark
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - TLS_Data_Reader::read_so_far
    - TLS_Data_Reader::get_uint16_t
    - TLS_Data_Reader::has_remaining
    - TLS_Exception
    - TLS_Data_Reader::get_byte
    - TLS_Data_Reader::peek_uint16_t
    - static_cast<uint8_t>
    - TLS_Data_Reader::discard_next
    - static_cast<Extension_Code>
    - TLS_Data_Reader::remaining_bytes
    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:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' hash'
    argTypes:
    - std::unique_ptr<HashFunction>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 143
    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:80,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:80,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:80,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:83,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:86,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:89,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:92,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:93,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:99,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:100,1
    - Dst: TLS_Data_Reader::get_byte
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:103,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:104,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::read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:108,1
    - Dst: TLS_Data_Reader::has_remaining
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:109,1
    - Dst: TLS_Data_Reader::read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:109,1
    - Dst: static_cast<Extension_Code>
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:110,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:110,1
    - Dst: TLS_Data_Reader::get_uint16_t
      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:115,1
    - Dst: TLS_Data_Reader::get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:120,1
    - Dst: TLS_Data_Reader::discard_next
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:121,1
    - Dst: TLS_Data_Reader::peek_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:124,1
    - Dst: TLS_Data_Reader::remaining_bytes
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:125,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:126,1
    - Dst: TLS_Data_Reader::read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:135,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - client_hello
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 136
    functionName: Botan::TLS::find_client_hello_truncation_mark
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - TLS_Data_Reader::read_so_far
    - TLS_Data_Reader::get_uint16_t
    - TLS_Data_Reader::has_remaining
    - TLS_Exception
    - TLS_Data_Reader::get_byte
    - TLS_Data_Reader::peek_uint16_t
    - static_cast<uint8_t>
    - TLS_Data_Reader::discard_next
    - static_cast<Extension_Code>
    - TLS_Data_Reader::remaining_bytes
    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:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' hash'
    argTypes:
    - std::unique_ptr<HashFunction>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 143
    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:148,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:149,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:155,1
    - Dst: find_client_hello_truncation_mark
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:156,1
    - Dst: Botan::TLS::Transcript_Hash_State::update
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:160,1
    - Dst: read_hash_state
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:161,1
    - Dst: Botan::TLS::Transcript_Hash_State::update
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:162,1
    - Dst: clear
      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:165,1
    - Dst: std::exchange
      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:168,1
    - Dst: push_back
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:170,1
    - Dst: std::vector
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:171,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - serialized_message_s
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 173
    functionName: Botan::TLS::Transcript_Hash_State::update
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp
    functionUses: 3
    functionsReached:
    - Botan::TLS::Transcript_Hash_State::update
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - clear
    - static_cast<uint8_t>
    - std::exchange
    - find_client_hello_truncation_mark
    - push_back
    - read_hash_state
    - std::vector
    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:176,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 178
    functionName: '& Transcript_Hash_State::current() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - empty
    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:181,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 183
    functionName: '& Transcript_Hash_State::previous() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - empty
    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:186,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 188
    functionName: '& Transcript_Hash_State::truncated() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - empty
    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:191,1
    - Dst: name
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:191,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:196,1
    - Dst: Botan::TLS::Transcript_Hash_State::update
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:198,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.cpp:200,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - algo_spec
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 201
    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
    - name
    - clear
    - Botan::HashFunction::create_or_throw
    - 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: 205
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 205
    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: 19
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 19
    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:28,1
    - Dst: TLS_Data_Reader::get_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:31,1
    - Dst: deserialize
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:32,1
    - Dst: Botan::TLS::Certificate_Request_13::type
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:32,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:39,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:40,1
    - Dst: contains_implemented_extensions_other_than
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:62,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:63,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - ' buf'
    - side
    argTypes:
    - std::vector<uint8_t>
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 65
    functionName: Botan::TLS::Certificate_Request_13::Certificate_Request_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp
    functionUses: 0
    functionsReached:
    - has
    - Botan::TLS::Certificate_Request_13::type
    - TLS_Exception
    - TLS_Data_Reader::get_tls_length_value
    - deserialize
    - contains_implemented_extensions_other_than
    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:87,1
    - Dst: std::make_unique<Signature_Algorithms>
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:87,1
    - Dst: acceptable_signature_schemes
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:87,1
    - Dst: acceptable_certificate_signature_schemes
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:88,1
    - Dst: add
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:92,1
    - Dst: std::make_unique<Signature_Algorithms_Cert>
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:92,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:92,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:92,1
    - Dst: std::vector<X509_DN>::empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:95,1
    - Dst: add
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:96,1
    - Dst: std::make_unique<Certificate_Authorities>
      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: tls_modify_extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:101,1
    - Dst: Botan::TLS::Certificate_Request_13::type
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:101,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: 102
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 102
    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<Signature_Algorithms>
    - std::move
    - std::make_unique<Certificate_Authorities>
    - std::make_unique<Signature_Algorithms_Cert>
    - Botan::TLS::Certificate_Request_13::type
    - std::vector<X509_DN>::empty
    - tls_modify_extensions
    - auto::value
    - add
    - acceptable_signature_schemes
    - acceptable_certificate_signature_schemes
    linkageType: ''
    returnType: void
    signature: "void Certificate_Request_13::Certificate_Request_13(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:108,1
    - Dst: sni_hostname
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:108,1
    - Dst: all_subjects
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:112,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:113,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:113,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:113,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:113,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:116,1
    - Dst: request_client_certificate_authentication
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:116,1
    - Dst: Botan::TLS::Certificate_Request_13::Certificate_Request_13
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:120,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:120,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: 121
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 121
    functionName: Botan::TLS::Certificate_Request_13::maybe_create
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - all_subjects
    - auto::end
    - trusted_certificate_authorities
    - std::vector::empty
    - std::vector::end
    - request_client_certificate_authentication
    - Botan::TLS::Certificate_Request_13::Certificate_Request_13
    - auto::begin
    - std::vector::insert
    - sni_hostname
    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:124,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 128
    functionName: Botan::TLS::Certificate_Request_13::acceptable_CAs
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp
    functionUses: 0
    functionsReached:
    - has
    - get
    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:133,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:133,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 136
    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
    - has
    - get
    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:143,1
    - Dst: auto*::supported_schemes
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:144,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 148
    functionName: '& Certificate_Request_13::certificate_signature_schemes() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp
    functionUses: 0
    functionsReached:
    - signature_schemes
    - get
    - auto*::supported_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:152,1
    - Dst: Botan::TLS::Certificate_Request_13::serialize
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 155
    functionName: Botan::TLS::Certificate_Request_13::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp
    functionUses: 1
    functionsReached:
    - append_tls_length_value
    - Botan::TLS::Certificate_Request_13::serialize
    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: 19
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 19
    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:28,1
    - Dst: TLS_Data_Reader::get_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:31,1
    - Dst: deserialize
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:32,1
    - Dst: Botan::TLS::Certificate_Request_13::type
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:32,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:39,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:40,1
    - Dst: contains_implemented_extensions_other_than
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:62,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:63,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 2
    argNames:
    - ' buf'
    - side
    argTypes:
    - std::vector<uint8_t>
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 65
    functionName: Botan::TLS::Certificate_Request_13::Certificate_Request_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp
    functionUses: 1
    functionsReached:
    - has
    - Botan::TLS::Certificate_Request_13::type
    - TLS_Exception
    - TLS_Data_Reader::get_tls_length_value
    - deserialize
    - contains_implemented_extensions_other_than
    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:87,1
    - Dst: std::make_unique<Signature_Algorithms>
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:87,1
    - Dst: acceptable_signature_schemes
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:87,1
    - Dst: acceptable_certificate_signature_schemes
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:88,1
    - Dst: add
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:92,1
    - Dst: std::make_unique<Signature_Algorithms_Cert>
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:92,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:92,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:92,1
    - Dst: std::vector<X509_DN>::empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:95,1
    - Dst: add
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:96,1
    - Dst: std::make_unique<Certificate_Authorities>
      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: tls_modify_extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:101,1
    - Dst: Botan::TLS::Certificate_Request_13::type
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:101,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: 102
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 102
    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<Signature_Algorithms>
    - std::move
    - std::make_unique<Certificate_Authorities>
    - std::make_unique<Signature_Algorithms_Cert>
    - Botan::TLS::Certificate_Request_13::type
    - std::vector<X509_DN>::empty
    - tls_modify_extensions
    - auto::value
    - add
    - acceptable_signature_schemes
    - acceptable_certificate_signature_schemes
    linkageType: ''
    returnType: void
    signature: "void Certificate_Request_13::Certificate_Request_13(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:108,1
    - Dst: sni_hostname
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:108,1
    - Dst: all_subjects
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:112,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:113,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:113,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:113,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:113,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:116,1
    - Dst: request_client_certificate_authentication
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:116,1
    - Dst: Botan::TLS::Certificate_Request_13::Certificate_Request_13
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:120,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:120,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: 121
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 121
    functionName: Botan::TLS::Certificate_Request_13::maybe_create
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - all_subjects
    - auto::end
    - trusted_certificate_authorities
    - std::vector::empty
    - std::vector::end
    - request_client_certificate_authentication
    - Botan::TLS::Certificate_Request_13::Certificate_Request_13
    - auto::begin
    - std::vector::insert
    - sni_hostname
    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:124,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 128
    functionName: Botan::TLS::Certificate_Request_13::acceptable_CAs
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp
    functionUses: 0
    functionsReached:
    - has
    - get
    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:133,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:133,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 136
    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
    - has
    - get
    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:143,1
    - Dst: auto*::supported_schemes
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:144,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 148
    functionName: '& Certificate_Request_13::certificate_signature_schemes() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp
    functionUses: 0
    functionsReached:
    - signature_schemes
    - get
    - auto*::supported_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:152,1
    - Dst: Botan::TLS::Certificate_Request_13::serialize
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 155
    functionName: Botan::TLS::Certificate_Request_13::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_req_13.cpp
    functionUses: 2
    functionsReached:
    - append_tls_length_value
    - Botan::TLS::Certificate_Request_13::serialize
    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: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    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: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    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: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    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: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    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: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    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: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    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: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::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: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    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: 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(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: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    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: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    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:168,1
    - Dst: Botan::TLS::Channel_Impl_13::is_closed_for_writing
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 168
    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_writing
    - Botan::TLS::Channel_Impl_13::is_closed_for_reading
    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: 170
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 170
    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: 172
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 172
    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:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 188
    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: 206
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 206
    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: 216
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 216
    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: 230
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 230
    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: 239
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 239
    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:243,1
    - Dst: generalize_to<Handshake_Message_13_Ref>
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - std::variant<MsgTs...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 244
    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:248,1
    - Dst: generalize_to<Handshake_Message_13_Ref>
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - message
    argTypes:
    - std::reference_wrapper<MsgT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 249
    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:252,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - message
    argTypes:
    - Post_Handshake_Message_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 253
    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:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 259
    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:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 263
    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: 265
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 265
    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: 267
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 267
    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: 269
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 269
    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: 271
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 271
    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: 273
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 273
    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: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    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: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    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: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    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: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    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: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    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: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    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: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::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: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    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: 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(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: 141
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 141
    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: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    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:168,1
    - Dst: Botan::TLS::Channel_Impl_13::is_closed_for_writing
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 168
    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_writing
    - Botan::TLS::Channel_Impl_13::is_closed_for_reading
    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: 170
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 170
    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: 172
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 172
    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:187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 188
    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: 206
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 206
    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: 216
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 216
    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: 230
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 230
    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: 239
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 239
    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:243,1
    - Dst: generalize_to<Handshake_Message_13_Ref>
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' message'
    argTypes:
    - std::variant<MsgTs...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 244
    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:248,1
    - Dst: generalize_to<Handshake_Message_13_Ref>
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - message
    argTypes:
    - std::reference_wrapper<MsgT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 249
    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:252,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.h:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - message
    argTypes:
    - Post_Handshake_Message_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 253
    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:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 259
    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:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 263
    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: 265
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 265
    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: 267
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 267
    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: 269
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 269
    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: 271
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 271
    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: 273
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 273
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:16,1
    - Dst: has_hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:16,1
    - Dst: validate_updates
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:17,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:20,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:21,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - client_hello
    argTypes:
    - Client_Hello_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 22
    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:
    - std::move
    - has_hello_retry_request
    - validate_updates
    - BOTAN_STATE_CHECK
    - value
    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:25,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - client_hello
    argTypes:
    - Client_Hello_12
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: '& Handshake_State_13_Base::store(Client_Hello_12 client_hello,
      const bool /*from_peer*/)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp
    functionUses: 0
    functionsReached:
    - value
    - std::move
    linkageType: ''
    returnType: Client_Hello_12
    signature: Client_Hello_12 & Handshake_State_13_Base::store(Client_Hello_12 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:30,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - server_hello
    argTypes:
    - Server_Hello_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    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:
    - value
    - std::move
    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:35,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - server_hello
    argTypes:
    - Server_Hello_12
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: '& Handshake_State_13_Base::store(Server_Hello_12 server_hello,
      const bool /*from_peer*/)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp
    functionUses: 0
    functionsReached:
    - value
    - std::move
    linkageType: ''
    returnType: Server_Hello_12
    signature: Server_Hello_12 & Handshake_State_13_Base::store(Server_Hello_12 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:40,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hello_retry_request
    argTypes:
    - Hello_Retry_Request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    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:
    - value
    - std::move
    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:46,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - encrypted_extensions
    argTypes:
    - Encrypted_Extensions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    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:
    - value
    - std::move
    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:52,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - certificate_request
    argTypes:
    - Certificate_Request_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 54
    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:
    - value
    - std::move
    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:58,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - certificate
    - from_peer
    argTypes:
    - Certificate_13
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    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:
    - value
    - std::move
    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:65,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - certificate_verify
    - from_peer
    argTypes:
    - Certificate_Verify_13
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 67
    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:
    - value
    - std::move
    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:71,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - finished
    - from_peer
    argTypes:
    - Finished_13
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 73
    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:
    - value
    - std::move
    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:16,1
    - Dst: has_hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:16,1
    - Dst: validate_updates
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:17,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:20,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:21,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - client_hello
    argTypes:
    - Client_Hello_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 22
    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:
    - std::move
    - has_hello_retry_request
    - validate_updates
    - BOTAN_STATE_CHECK
    - value
    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:25,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - client_hello
    argTypes:
    - Client_Hello_12
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: '& Handshake_State_13_Base::store(Client_Hello_12 client_hello,
      const bool /*from_peer*/)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp
    functionUses: 0
    functionsReached:
    - value
    - std::move
    linkageType: ''
    returnType: Client_Hello_12
    signature: Client_Hello_12 & Handshake_State_13_Base::store(Client_Hello_12 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:30,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - server_hello
    argTypes:
    - Server_Hello_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    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:
    - value
    - std::move
    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:35,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - server_hello
    argTypes:
    - Server_Hello_12
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: '& Handshake_State_13_Base::store(Server_Hello_12 server_hello,
      const bool /*from_peer*/)'
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp
    functionUses: 0
    functionsReached:
    - value
    - std::move
    linkageType: ''
    returnType: Server_Hello_12
    signature: Server_Hello_12 & Handshake_State_13_Base::store(Server_Hello_12 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:40,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hello_retry_request
    argTypes:
    - Hello_Retry_Request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    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:
    - value
    - std::move
    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:46,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - encrypted_extensions
    argTypes:
    - Encrypted_Extensions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    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:
    - value
    - std::move
    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:52,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - certificate_request
    argTypes:
    - Certificate_Request_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 54
    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:
    - value
    - std::move
    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:58,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - certificate
    - from_peer
    argTypes:
    - Certificate_13
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    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:
    - value
    - std::move
    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:65,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - certificate_verify
    - from_peer
    argTypes:
    - Certificate_Verify_13
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 67
    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:
    - value
    - std::move
    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:71,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - finished
    - from_peer
    argTypes:
    - Finished_13
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 73
    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:
    - value
    - std::move
    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:35,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: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    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:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 119
    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: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::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: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    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: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    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:35,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: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    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:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 119
    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: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::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: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    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: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    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: 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::string_view::cbegin
    - std::vector<uint8_t>
    - std::string_view::cend
    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::string_view::cbegin
    - std::vector<uint8_t>
    - std::string_view::cend
    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::chrono::milliseconds::count
    - obfuscate_ticket_age
    - std::move
    - Opaque_Session_Handle::get
    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:
    - to_byte_vector
    - PresharedKeyID::get
    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:
    - Botan_CLI::Timer::milliseconds
    - obfuscate_ticket_age
    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::string_view::cbegin
    - std::vector<uint8_t>
    - std::string_view::cend
    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::string_view::cbegin
    - std::vector<uint8_t>
    - std::string_view::cend
    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::chrono::milliseconds::count
    - obfuscate_ticket_age
    - std::move
    - Opaque_Session_Handle::get
    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:
    - to_byte_vector
    - PresharedKeyID::get
    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:
    - Botan_CLI::Timer::milliseconds
    - obfuscate_ticket_age
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: constraints
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:34,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:35,1
    - Dst: auto::includes_any
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' cert'
    argTypes:
    - X509_Certificate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 40
    functionName: Botan::TLS::certificate_allows_signing
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - constraints
    - auto::empty
    - 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:45,1
    - Dst: is_compatible_with
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:45,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:46,1
    - Dst: algorithm_name
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:46,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:50,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:51,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - ' peer_scheme_preference'
    argTypes:
    - std::vector<Signature_Scheme>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 55
    functionName: Botan::TLS::filter_signature_schemes
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - is_compatible_with
    - std::vector::push_back
    - TLS_Exception
    - std::vector::empty
    - algorithm_name
    - is_available
    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:34,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:35,1
    - Dst: auto::includes_any
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' cert'
    argTypes:
    - X509_Certificate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 40
    functionName: Botan::TLS::certificate_allows_signing
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - constraints
    - auto::empty
    - 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:45,1
    - Dst: is_compatible_with
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:45,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:46,1
    - Dst: algorithm_name
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:46,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:50,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:51,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - ' peer_scheme_preference'
    argTypes:
    - std::vector<Signature_Scheme>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 55
    functionName: Botan::TLS::filter_signature_schemes
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - is_compatible_with
    - std::vector::push_back
    - TLS_Exception
    - std::vector::empty
    - algorithm_name
    - is_available
    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:60,1
    - Dst: front
      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: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: Botan::TLS::Certificate_13::has_certificate_chain
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - empty
    - front
    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:64,1
    - Dst: Botan::TLS::Certificate_13::has_certificate_chain
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: Botan::TLS::Certificate_13::is_raw_public_key
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - empty
    - Botan::TLS::Certificate_13::has_certificate_chain
    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:68,1
    - Dst: Botan::TLS::Certificate_13::has_certificate_chain
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:68,1
    - Dst: transform
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:70,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:70,1
    - Dst: cend
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:70,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:70,1
    - Dst: certificate
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 74
    functionName: Botan::TLS::Certificate_13::cert_chain
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - cend
    - std::back_inserter
    - Botan::TLS::Certificate_13::has_certificate_chain
    - certificate
    - transform
    - cbegin
    - 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:83,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:84,1
    - Dst: tls_examine_extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:87,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:87,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ' requested_extensions'
    - ' cb'
    argTypes:
    - std::set<Extension_Code>
    - Callbacks
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 89
    functionName: Botan::TLS::Certificate_13::validate_extensions
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - type
    - extensions
    - tls_examine_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:92,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:92,1
    - Dst: front
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: Botan::TLS::Certificate_13::public_key
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - empty
    - front
    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:97,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:97,1
    - Dst: front
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: '& Certificate_13::leaf() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - empty
    - front
    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:108,1
    - Dst: tls_verify_raw_public_key
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:109,1
    - Dst: Botan::TLS::Certificate_13::public_key
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:109,1
    - Dst: Botan::TLS::Certificate_13::verify_certificate_chain
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:111,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: 113
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 113
    functionName: Botan::TLS::Certificate_13::verify
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Certificate_13::public_key
    - tls_verify_raw_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:124,1
    - Dst: certificate
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:124,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:126,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:127,1
    - Dst: tls_parse_ocsp_response
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:127,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:128,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:130,1
    - Dst: front
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:135,1
    - Dst: certificate_allows_signing
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:136,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:137,1
    - Dst: trusted_certificate_authorities
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:141,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:142,1
    - Dst: tls_verify_cert_chain
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:144,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: 145
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 145
    functionName: Botan::TLS::Certificate_13::verify_certificate_chain
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 1
    functionsReached:
    - tls_verify_cert_chain
    - std::vector::push_back
    - extensions
    - std::vector::emplace_back
    - TLS_Exception
    - trusted_certificate_authorities
    - std::string
    - certificate
    - certificate_allows_signing
    - tls_parse_ocsp_response
    - front
    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:154,1
    - Dst: std::vector<std::vector<uint8_t>>
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:155,1
    - Dst: std::vector<X509_Certificate>::size
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:155,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:157,1
    - Dst: std::vector<X509_Certificate>::size
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:157,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:158,1
    - Dst: std::vector<X509_Certificate>::size
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:161,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:162,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:163,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:164,1
    - Dst: Certificate_Status_Request::Certificate_Status_Request
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:164,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:175,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:175,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:175,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: 177
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 177
    functionName: Botan::TLS::Certificate_13::setup_entries
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - extensions
    - TLS_Exception
    - std::vector<std::vector<uint8_t>>
    - emplace_back
    - std::vector<X509_Certificate>::size
    - tls_modify_extensions
    - empty
    - type
    - Certificate_Status_Request::Certificate_Status_Request
    - auto::size
    - tls_provide_cert_chain_status
    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:180,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:181,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:181,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:182,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:182,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:182,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: 183
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 183
    functionName: Botan::TLS::Certificate_13::setup_entry
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - extensions
    - emplace_back
    - BOTAN_ASSERT_NONNULL
    - tls_modify_extensions
    - 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:193,1
    - Dst: filter_signature_schemes
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:194,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:194,1
    - Dst: Botan::TLS::Certificate_13::setup_entries
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:198,1
    - Dst: find_cert_chain
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:199,1
    - Dst: to_algorithm_identifiers
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:200,1
    - Dst: certificate_signature_schemes
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:200,1
    - Dst: acceptable_CAs
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:201,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:203,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:204,1
    - Dst: find_raw_public_key
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:207,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:207,1
    - Dst: Botan::TLS::Certificate_13::setup_entry
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:217,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:217,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: 220
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 220
    functionName: Botan::TLS::Certificate_13::Certificate_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Certificate_13::setup_entry
    - std::move
    - extensions
    - find_cert_chain
    - find_raw_public_key
    - signature_schemes
    - std::string
    - filter_signature_schemes
    - to_algorithm_identifiers
    - Botan::TLS::Certificate_13::setup_entries
    - acceptable_CAs
    - context
    - certificate_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:233,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:233,1
    - Dst: filter_signature_schemes
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:235,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:235,1
    - Dst: sni_hostname
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:237,1
    - Dst: find_cert_chain
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:240,1
    - Dst: to_algorithm_identifiers
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:241,1
    - Dst: certificate_signature_schemes
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:241,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:245,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:246,1
    - Dst: Botan::TLS::Certificate_13::setup_entries
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:249,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:249,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:249,1
    - Dst: find_raw_public_key
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:251,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:259,1
    - Dst: Botan::TLS::Certificate_13::setup_entry
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:262,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:262,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: 264
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 264
    functionName: Botan::TLS::Certificate_13::Certificate_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::TLS::Certificate_13::setup_entry
    - std::move
    - auto::empty
    - extensions
    - find_cert_chain
    - find_raw_public_key
    - signature_schemes
    - TLS_Exception
    - filter_signature_schemes
    - to_algorithm_identifiers
    - Botan::TLS::Certificate_13::setup_entries
    - certificate_signature_schemes
    - sni_hostname
    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: X509_Certificate
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:274,1
    - Dst: get_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:274,1
    - Dst: subject_public_key
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:275,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:282,1
    - Dst: get_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:282,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:285,1
    - Dst: peek_uint16_t
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:291,1
    - Dst: get_fixed
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:292,1
    - Dst: deserialize
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:294,1
    - Dst: contains_implemented_extensions_other_than
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:307,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:311,1
    - Dst: contains_implemented_extensions_other_than
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:313,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:314,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: 318
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 318
    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:
    - TLS_Exception
    - peek_uint16_t
    - subject_public_key
    - get_fixed
    - deserialize
    - contains_implemented_extensions_other_than
    - Botan::X509::load_key
    - X509_Certificate
    - get_tls_length_value
    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:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:321,1
    - Dst: subject_public_key
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cert
    argTypes:
    - X509_Certificate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 321
    functionName: Certificate_13::Certificate_Entry::Certificate_Entry(X509_Certificate
      cert)
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - subject_public_key
    linkageType: ''
    returnType: void
    signature: void Certificate_13::Certificate_Entry::Certificate_Entry(X509_Certificate
      cert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:324,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - raw_public_key
    argTypes:
    - std::shared_ptr<Public_Key>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 326
    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:329,1
    - Dst: has_certificate
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:329,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 331
    functionName: '& Certificate_13::Certificate_Entry::certificate() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - has_certificate
    - value
    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:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 336
    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:339,1
    - Dst: BER_encode
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:339,1
    - Dst: Botan::X509::BER_encode
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 340
    functionName: Certificate_13::Certificate_Entry::serialize() const
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - has_certificate
    - Botan::X509::BER_encode
    - BER_encode
    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:352,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:356,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:357,1
    - Dst: TLS_Data_Reader::get_uint24_t
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:360,1
    - Dst: TLS_Data_Reader::remaining_bytes
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:362,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:363,1
    - Dst: maximum_certificate_chain_size
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:366,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:368,1
    - Dst: TLS_Data_Reader::has_remaining
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:371,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:372,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:380,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:385,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:391,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:391,1
    - Dst: front
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:402,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:403,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:409,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:410,1
    - Dst: Botan::TLS::Certificate_13::public_key
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:414,1
    - Dst: check_peer_key_acceptable
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:415,1
    - Dst: allowed_signature_method
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:417,1
    - Dst: auto::algo_name
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:417,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:418,1
    - Dst: auto::algo_name
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:418,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: 420
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 420
    functionName: Botan::TLS::Certificate_13::Certificate_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::TLS::Certificate_13::public_key
    - Decoding_Error
    - TLS_Data_Reader::has_remaining
    - TLS_Exception
    - TLS_Data_Reader::get_range
    - emplace_back
    - size
    - maximum_certificate_chain_size
    - TLS_Data_Reader::get_uint24_t
    - check_peer_key_acceptable
    - front
    - empty
    - allowed_signature_method
    - auto::algo_name
    - TLS_Data_Reader::remaining_bytes
    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:428,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:432,1
    - Dst: Botan::TLS::Certificate_13::serialize
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:432,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:441,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:442,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 448
    functionName: Botan::TLS::Certificate_13::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 1
    functionsReached:
    - append_tls_length_value
    - auto::empty
    - extensions
    - Botan::TLS::Certificate_13::serialize
    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:34,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:35,1
    - Dst: auto::includes_any
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' cert'
    argTypes:
    - X509_Certificate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 40
    functionName: Botan::TLS::certificate_allows_signing
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - constraints
    - auto::empty
    - 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:45,1
    - Dst: is_compatible_with
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:45,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:46,1
    - Dst: algorithm_name
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:46,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:50,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:51,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - ' peer_scheme_preference'
    argTypes:
    - std::vector<Signature_Scheme>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 55
    functionName: Botan::TLS::filter_signature_schemes
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - is_compatible_with
    - std::vector::push_back
    - TLS_Exception
    - std::vector::empty
    - algorithm_name
    - is_available
    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:34,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:35,1
    - Dst: auto::includes_any
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' cert'
    argTypes:
    - X509_Certificate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 40
    functionName: Botan::TLS::certificate_allows_signing
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - constraints
    - auto::empty
    - 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:45,1
    - Dst: is_compatible_with
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:45,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:46,1
    - Dst: algorithm_name
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:46,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:50,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:51,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - ' peer_scheme_preference'
    argTypes:
    - std::vector<Signature_Scheme>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 55
    functionName: Botan::TLS::filter_signature_schemes
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - is_compatible_with
    - std::vector::push_back
    - TLS_Exception
    - std::vector::empty
    - algorithm_name
    - is_available
    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:60,1
    - Dst: front
      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: 0
    functionLinenumber: 59
    functionLinenumberEnd: 61
    functionName: Botan::TLS::Certificate_13::has_certificate_chain
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 2
    functionsReached:
    - empty
    - front
    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:64,1
    - Dst: Botan::TLS::Certificate_13::has_certificate_chain
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: Botan::TLS::Certificate_13::is_raw_public_key
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 1
    functionsReached:
    - empty
    - Botan::TLS::Certificate_13::has_certificate_chain
    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:68,1
    - Dst: Botan::TLS::Certificate_13::has_certificate_chain
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:68,1
    - Dst: transform
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:70,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:70,1
    - Dst: cend
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:70,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:70,1
    - Dst: certificate
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 74
    functionName: Botan::TLS::Certificate_13::cert_chain
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - cend
    - std::back_inserter
    - Botan::TLS::Certificate_13::has_certificate_chain
    - certificate
    - transform
    - cbegin
    - 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:83,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:84,1
    - Dst: tls_examine_extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:87,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:87,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ' requested_extensions'
    - ' cb'
    argTypes:
    - std::set<Extension_Code>
    - Callbacks
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 89
    functionName: Botan::TLS::Certificate_13::validate_extensions
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - type
    - extensions
    - tls_examine_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:92,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:92,1
    - Dst: front
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: Botan::TLS::Certificate_13::public_key
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_STATE_CHECK
    - empty
    - front
    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:97,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:97,1
    - Dst: front
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: '& Certificate_13::leaf() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - empty
    - front
    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:108,1
    - Dst: tls_verify_raw_public_key
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:109,1
    - Dst: Botan::TLS::Certificate_13::public_key
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:109,1
    - Dst: Botan::TLS::Certificate_13::verify_certificate_chain
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:111,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: 113
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 113
    functionName: Botan::TLS::Certificate_13::verify
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Certificate_13::public_key
    - tls_verify_raw_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:124,1
    - Dst: certificate
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:124,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:126,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:127,1
    - Dst: tls_parse_ocsp_response
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:127,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:128,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:130,1
    - Dst: front
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:135,1
    - Dst: certificate_allows_signing
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:136,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:137,1
    - Dst: trusted_certificate_authorities
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:141,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:142,1
    - Dst: tls_verify_cert_chain
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:144,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: 145
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 145
    functionName: Botan::TLS::Certificate_13::verify_certificate_chain
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 2
    functionsReached:
    - tls_verify_cert_chain
    - std::vector::push_back
    - extensions
    - std::vector::emplace_back
    - TLS_Exception
    - trusted_certificate_authorities
    - std::string
    - certificate
    - certificate_allows_signing
    - tls_parse_ocsp_response
    - front
    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:154,1
    - Dst: std::vector<std::vector<uint8_t>>
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:155,1
    - Dst: std::vector<X509_Certificate>::size
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:155,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:157,1
    - Dst: std::vector<X509_Certificate>::size
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:157,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:158,1
    - Dst: std::vector<X509_Certificate>::size
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:161,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:162,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:163,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:164,1
    - Dst: Certificate_Status_Request::Certificate_Status_Request
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:164,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:175,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:175,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:175,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: 177
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 177
    functionName: Botan::TLS::Certificate_13::setup_entries
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 2
    functionsReached:
    - extensions
    - TLS_Exception
    - std::vector<std::vector<uint8_t>>
    - emplace_back
    - std::vector<X509_Certificate>::size
    - tls_modify_extensions
    - empty
    - type
    - Certificate_Status_Request::Certificate_Status_Request
    - auto::size
    - tls_provide_cert_chain_status
    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:180,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:181,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:181,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:182,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:182,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:182,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: 183
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 183
    functionName: Botan::TLS::Certificate_13::setup_entry
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 2
    functionsReached:
    - std::move
    - extensions
    - emplace_back
    - BOTAN_ASSERT_NONNULL
    - tls_modify_extensions
    - 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:193,1
    - Dst: filter_signature_schemes
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:194,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:194,1
    - Dst: Botan::TLS::Certificate_13::setup_entries
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:198,1
    - Dst: find_cert_chain
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:199,1
    - Dst: to_algorithm_identifiers
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:200,1
    - Dst: certificate_signature_schemes
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:200,1
    - Dst: acceptable_CAs
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:201,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:203,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:204,1
    - Dst: find_raw_public_key
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:207,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:207,1
    - Dst: Botan::TLS::Certificate_13::setup_entry
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:217,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:217,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: 220
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 220
    functionName: Botan::TLS::Certificate_13::Certificate_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - Botan::TLS::Certificate_13::setup_entry
    - std::move
    - extensions
    - find_cert_chain
    - find_raw_public_key
    - signature_schemes
    - std::string
    - filter_signature_schemes
    - to_algorithm_identifiers
    - Botan::TLS::Certificate_13::setup_entries
    - acceptable_CAs
    - context
    - certificate_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:233,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:233,1
    - Dst: filter_signature_schemes
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:235,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:235,1
    - Dst: sni_hostname
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:237,1
    - Dst: find_cert_chain
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:240,1
    - Dst: to_algorithm_identifiers
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:241,1
    - Dst: certificate_signature_schemes
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:241,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:245,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:246,1
    - Dst: Botan::TLS::Certificate_13::setup_entries
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:249,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:249,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:249,1
    - Dst: find_raw_public_key
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:251,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:259,1
    - Dst: Botan::TLS::Certificate_13::setup_entry
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:262,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:262,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: 264
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 264
    functionName: Botan::TLS::Certificate_13::Certificate_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::TLS::Certificate_13::setup_entry
    - std::move
    - auto::empty
    - extensions
    - find_cert_chain
    - find_raw_public_key
    - signature_schemes
    - TLS_Exception
    - filter_signature_schemes
    - to_algorithm_identifiers
    - Botan::TLS::Certificate_13::setup_entries
    - certificate_signature_schemes
    - sni_hostname
    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: X509_Certificate
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:274,1
    - Dst: get_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:274,1
    - Dst: subject_public_key
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:275,1
    - Dst: Botan::X509::load_key
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:282,1
    - Dst: get_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:282,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:285,1
    - Dst: peek_uint16_t
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:291,1
    - Dst: get_fixed
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:292,1
    - Dst: deserialize
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:294,1
    - Dst: contains_implemented_extensions_other_than
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:307,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:311,1
    - Dst: contains_implemented_extensions_other_than
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:313,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:314,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: 318
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 318
    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:
    - TLS_Exception
    - peek_uint16_t
    - subject_public_key
    - get_fixed
    - deserialize
    - contains_implemented_extensions_other_than
    - Botan::X509::load_key
    - X509_Certificate
    - get_tls_length_value
    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:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:321,1
    - Dst: subject_public_key
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cert
    argTypes:
    - X509_Certificate
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 321
    functionName: Certificate_13::Certificate_Entry::Certificate_Entry(X509_Certificate
      cert)
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - subject_public_key
    linkageType: ''
    returnType: void
    signature: void Certificate_13::Certificate_Entry::Certificate_Entry(X509_Certificate
      cert)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:324,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - raw_public_key
    argTypes:
    - std::shared_ptr<Public_Key>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 326
    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:329,1
    - Dst: has_certificate
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:329,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 331
    functionName: '& Certificate_13::Certificate_Entry::certificate() const'
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - has_certificate
    - value
    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:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 336
    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:339,1
    - Dst: BER_encode
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:339,1
    - Dst: Botan::X509::BER_encode
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 340
    functionName: Certificate_13::Certificate_Entry::serialize() const
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - has_certificate
    - Botan::X509::BER_encode
    - BER_encode
    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:352,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:356,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:357,1
    - Dst: TLS_Data_Reader::get_uint24_t
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:360,1
    - Dst: TLS_Data_Reader::remaining_bytes
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:362,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:363,1
    - Dst: maximum_certificate_chain_size
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:366,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:368,1
    - Dst: TLS_Data_Reader::has_remaining
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:371,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:372,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:380,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:385,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:391,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:391,1
    - Dst: front
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:402,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:403,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:409,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:410,1
    - Dst: Botan::TLS::Certificate_13::public_key
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:414,1
    - Dst: check_peer_key_acceptable
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:415,1
    - Dst: allowed_signature_method
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:417,1
    - Dst: auto::algo_name
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:417,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:418,1
    - Dst: auto::algo_name
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:418,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: 420
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 420
    functionName: Botan::TLS::Certificate_13::Certificate_13
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::TLS::Certificate_13::public_key
    - Decoding_Error
    - TLS_Data_Reader::has_remaining
    - TLS_Exception
    - TLS_Data_Reader::get_range
    - emplace_back
    - size
    - maximum_certificate_chain_size
    - TLS_Data_Reader::get_uint24_t
    - check_peer_key_acceptable
    - front
    - empty
    - allowed_signature_method
    - auto::algo_name
    - TLS_Data_Reader::remaining_bytes
    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:428,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:432,1
    - Dst: Botan::TLS::Certificate_13::serialize
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:432,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:441,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:442,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp:445,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 448
    functionName: Botan::TLS::Certificate_13::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_certificate_13.cpp
    functionUses: 2
    functionsReached:
    - append_tls_length_value
    - auto::empty
    - extensions
    - Botan::TLS::Certificate_13::serialize
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Certificate_13::serialize() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<Named_Group>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:30,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:30,1
    - Dst: get_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' reader'
    argTypes:
    - TLS_Data_Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 32
    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_uint16_t
    - static_cast<Named_Group>
    - get_tls_length_value
    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: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    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:39,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:41,1
    - Dst: TLS::Group_Params::is_kem
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:44,1
    - Dst: public_key_bits
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:45,1
    - Dst: TLS::Group_Params::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:46,1
    - Dst: dynamic_cast<ECDH_PublicKey*>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:47,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:47,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:49,1
    - Dst: auto*::public_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:60,1
    - Dst: dynamic_cast<PK_Key_Agreement_Key*>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:62,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:62,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:64,1
    - Dst: auto*::public_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:67,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - group
    - ' cb'
    - ' rng'
    argTypes:
    - TLS::Group_Params
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 69
    functionName: Botan::TLS::Key_Share_Entry::Key_Share_Entry
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<PK_Key_Agreement_Key*>
    - public_key_bits
    - TLS_Exception
    - TLS::Group_Params::is_kem
    - tls_kem_generate_key
    - auto*::public_value
    - get
    - dynamic_cast<ECDH_PublicKey*>
    - TLS::Group_Params::is_ecdh_named_curve
    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:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    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:75,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:75,1
    - Dst: wire_code
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:77,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:78,1
    - Dst: get_byte<0>
      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<1>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:79,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 83
    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>
    - size
    - get_byte<0>
    - wire_code
    - append_tls_length_value
    - std::vector::reserve
    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: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    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:92,1
    - Dst: tls_kem_encapsulate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:92,1
    - Dst: std::move
      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
    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: 95
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 95
    functionName: Botan::TLS::Key_Share_Entry::encapsulate
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - tls_kem_encapsulate
    - KEM_Encapsulation::destructure
    - 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:107,1
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:107,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:108,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:109,1
    - Dst: tls_kem_decapsulate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:110,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: 111
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 111
    functionName: Botan::TLS::Key_Share_Entry::decapsulate
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - scoped_cleanup
    - BOTAN_ASSERT_NOMSG
    - tls_kem_decapsulate
    - BOTAN_STATE_CHECK
    - reset
    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: 123
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 123
    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)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    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: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    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: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    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: 136
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 136
    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: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    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: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::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: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::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: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    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: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    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: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::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: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::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:152,1
    - Dst: Botan::TLS::Key_Share_ServerHello::empty
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:152,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 154
    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_STATE_CHECK
    - std::exchange
    - Botan::TLS::Key_Share_ServerHello::empty
    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:173,1
    - Dst: read_so_far
      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:176,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:177,1
    - Dst: has_remaining
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:181,1
    - Dst: remaining
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:181,1
    - Dst: remaining
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:182,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:183,1
    - Dst: std::find_if
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:193,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:193,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:193,1
    - Dst: group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:194,1
    - Dst: Key_Share_Entry::group
      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:195,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:196,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:199,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:199,1
    - Dst: read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:202,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:203,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - ' reader'
    argTypes:
    - TLS_Data_Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 205
    functionName: Botan::TLS::Key_Share_ClientHello::Key_Share_ClientHello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - begin
    - std::move
    - Decoding_Error
    - Key_Share_Entry::group
    - TLS_Exception
    - emplace_back
    - has_remaining
    - get_uint16_t
    - remaining
    - end
    - BOTAN_STATE_CHECK
    - group
    - std::find_if
    - read_so_far
    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:208,1
    - Dst: key_exchange_groups_to_offer
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:209,1
    - Dst: std::find
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:223,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:223,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:223,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:223,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - ' policy'
    - ' cb'
    - ' rng'
    argTypes:
    - Policy
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 228
    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::end
    - key_exchange_groups_to_offer
    - emplace_back
    - std::find
    - key_exchange_groups
    - auto::begin
    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: 230
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 230
    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: 232
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 232
    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: 233
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 233
    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: 235
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 235
    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: 236
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 236
    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:242,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:242,1
    - Dst: cend
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:242,1
    - Dst: group
      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:244,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:245,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:248,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:249,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: 250
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 250
    functionName: Botan::TLS::Key_Share_ClientHello::retry_offer
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - clear
    - cend
    - emplace_back
    - cbegin
    - 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:254,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:254,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:256,1
    - Dst: group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 259
    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:261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 261
    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:266,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:267,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:267,1
    - Dst: auto::cbegin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:267,1
    - Dst: auto::cend
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:267,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 273
    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
    - auto::cbegin
    - std::vector::end
    - append_tls_length_value
    - auto::cend
    - std::vector::insert
    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: 281
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 281
    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:287,1
    - Dst: std::find_if
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:290,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:290,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:290,1
    - Dst: group
      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:291,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:297,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:297,1
    - Dst: Botan::TLS::Key_Share_ClientHello::encapsulate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:299,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: 300
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 300
    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_STATE_CHECK
    - Botan::TLS::Key_Share_ClientHello::encapsulate
    - end
    - begin
    - group
    - std::find_if
    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:306,1
    - Dst: std::find_if
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:309,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:309,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:309,1
    - Dst: group
      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:310,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:317,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:318,1
    - Dst: auto::decapsulate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:321,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: 322
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 322
    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
    - TLS_Exception
    - auto::decapsulate
    - end
    - begin
    - group
    - std::find_if
    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:334,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: 335
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 335
    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:343,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:344,1
    - Dst: static_cast<Named_Group>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:347,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:347,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 348
    functionName: Botan::TLS::Key_Share_HelloRetryRequest::Key_Share_HelloRetryRequest
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - get_uint16_t
    - static_cast<Named_Group>
    - std::to_string
    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: 350
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 350
    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: 352
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 352
    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: 354
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 354
    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: 355
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 355
    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: 357
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 357
    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: 358
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 358
    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:361,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:362,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 363
    functionName: Botan::TLS::Key_Share_HelloRetryRequest::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - wire_code
    - get_byte<0>
    - get_byte<1>
    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: 365
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 365
    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:368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 369
    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: 371
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 371
    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:30,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:30,1
    - Dst: get_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' reader'
    argTypes:
    - TLS_Data_Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 32
    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_uint16_t
    - static_cast<Named_Group>
    - get_tls_length_value
    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: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    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:39,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:41,1
    - Dst: TLS::Group_Params::is_kem
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:44,1
    - Dst: public_key_bits
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:45,1
    - Dst: TLS::Group_Params::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:46,1
    - Dst: dynamic_cast<ECDH_PublicKey*>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:47,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:47,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:49,1
    - Dst: auto*::public_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:60,1
    - Dst: dynamic_cast<PK_Key_Agreement_Key*>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:62,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:62,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:64,1
    - Dst: auto*::public_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:67,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - group
    - ' cb'
    - ' rng'
    argTypes:
    - TLS::Group_Params
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 69
    functionName: Botan::TLS::Key_Share_Entry::Key_Share_Entry
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<PK_Key_Agreement_Key*>
    - public_key_bits
    - TLS_Exception
    - TLS::Group_Params::is_kem
    - tls_kem_generate_key
    - auto*::public_value
    - get
    - dynamic_cast<ECDH_PublicKey*>
    - TLS::Group_Params::is_ecdh_named_curve
    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:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    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:75,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:75,1
    - Dst: wire_code
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:77,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:78,1
    - Dst: get_byte<0>
      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<1>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:79,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 83
    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>
    - size
    - get_byte<0>
    - wire_code
    - append_tls_length_value
    - std::vector::reserve
    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: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    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:92,1
    - Dst: tls_kem_encapsulate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:92,1
    - Dst: std::move
      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
    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: 95
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 95
    functionName: Botan::TLS::Key_Share_Entry::encapsulate
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - tls_kem_encapsulate
    - KEM_Encapsulation::destructure
    - 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:107,1
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:107,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:108,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:109,1
    - Dst: tls_kem_decapsulate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:110,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: 111
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 111
    functionName: Botan::TLS::Key_Share_Entry::decapsulate
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - scoped_cleanup
    - BOTAN_ASSERT_NOMSG
    - tls_kem_decapsulate
    - BOTAN_STATE_CHECK
    - reset
    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: 123
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 123
    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)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    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: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    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: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    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: 136
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 136
    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: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    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: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::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: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::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: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    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: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    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: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::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: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::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:152,1
    - Dst: Botan::TLS::Key_Share_ServerHello::empty
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:152,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 154
    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_STATE_CHECK
    - std::exchange
    - Botan::TLS::Key_Share_ServerHello::empty
    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:173,1
    - Dst: read_so_far
      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:176,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:177,1
    - Dst: has_remaining
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:181,1
    - Dst: remaining
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:181,1
    - Dst: remaining
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:182,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:183,1
    - Dst: std::find_if
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:193,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:193,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:193,1
    - Dst: group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:194,1
    - Dst: Key_Share_Entry::group
      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:195,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:196,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:199,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:199,1
    - Dst: read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:202,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:203,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - ' reader'
    argTypes:
    - TLS_Data_Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 205
    functionName: Botan::TLS::Key_Share_ClientHello::Key_Share_ClientHello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - begin
    - std::move
    - Decoding_Error
    - Key_Share_Entry::group
    - TLS_Exception
    - emplace_back
    - has_remaining
    - get_uint16_t
    - remaining
    - end
    - BOTAN_STATE_CHECK
    - group
    - std::find_if
    - read_so_far
    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:208,1
    - Dst: key_exchange_groups_to_offer
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:209,1
    - Dst: std::find
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:223,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:223,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:223,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:223,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - ' policy'
    - ' cb'
    - ' rng'
    argTypes:
    - Policy
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 228
    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::end
    - key_exchange_groups_to_offer
    - emplace_back
    - std::find
    - key_exchange_groups
    - auto::begin
    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: 230
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 230
    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: 232
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 232
    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: 233
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 233
    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: 235
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 235
    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: 236
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 236
    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:242,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:242,1
    - Dst: cend
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:242,1
    - Dst: group
      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:244,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:245,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:248,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:249,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: 250
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 250
    functionName: Botan::TLS::Key_Share_ClientHello::retry_offer
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - clear
    - cend
    - emplace_back
    - cbegin
    - 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:254,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:254,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:256,1
    - Dst: group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 259
    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:261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 261
    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:266,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:267,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:267,1
    - Dst: auto::cbegin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:267,1
    - Dst: auto::cend
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:267,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 273
    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
    - auto::cbegin
    - std::vector::end
    - append_tls_length_value
    - auto::cend
    - std::vector::insert
    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: 281
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 281
    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:287,1
    - Dst: std::find_if
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:290,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:290,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:290,1
    - Dst: group
      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:291,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:297,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:297,1
    - Dst: Botan::TLS::Key_Share_ClientHello::encapsulate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:299,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: 300
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 300
    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_STATE_CHECK
    - Botan::TLS::Key_Share_ClientHello::encapsulate
    - end
    - begin
    - group
    - std::find_if
    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:306,1
    - Dst: std::find_if
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:309,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:309,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:309,1
    - Dst: group
      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:310,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:317,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:318,1
    - Dst: auto::decapsulate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:321,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: 322
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 322
    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
    - TLS_Exception
    - auto::decapsulate
    - end
    - begin
    - group
    - std::find_if
    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:334,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: 335
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 335
    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:343,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:344,1
    - Dst: static_cast<Named_Group>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:347,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:347,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 348
    functionName: Botan::TLS::Key_Share_HelloRetryRequest::Key_Share_HelloRetryRequest
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - get_uint16_t
    - static_cast<Named_Group>
    - std::to_string
    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: 350
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 350
    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: 352
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 352
    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: 354
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 354
    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: 355
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 355
    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: 357
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 357
    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: 358
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 358
    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:361,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:362,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 363
    functionName: Botan::TLS::Key_Share_HelloRetryRequest::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - wire_code
    - get_byte<0>
    - get_byte<1>
    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: 365
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 365
    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:368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 369
    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: 371
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 371
    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:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ks
    argTypes:
    - Key_Share_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 383
    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:390,1
    - Dst: Key_Share_ClientHello
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:390,1
    - Dst: std::make_unique<Key_Share_Impl>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:393,1
    - Dst: Key_Share_HelloRetryRequest
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:393,1
    - Dst: std::make_unique<Key_Share_Impl>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:396,1
    - Dst: Key_Share_ServerHello
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:396,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:398,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:398,1
    - Dst: handshake_type_to_string
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:399,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: 401
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 401
    functionName: Botan::TLS::Key_Share::Key_Share
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - Key_Share_ClientHello
    - std::string
    - std::make_unique<Key_Share_Impl>
    - handshake_type_to_string
    - Invalid_Argument
    - Key_Share_ServerHello
    - Key_Share_HelloRetryRequest
    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:405,1
    - Dst: Key_Share_ClientHello
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' policy'
    - ' cb'
    - ' rng'
    argTypes:
    - Policy
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 405
    functionName: Botan::TLS::Key_Share::Key_Share
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - Key_Share_ClientHello
    - std::make_unique<Key_Share_Impl>
    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:409,1
    - Dst: Key_Share_HelloRetryRequest
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - selected_group
    argTypes:
    - Named_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 409
    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_HelloRetryRequest
    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:417,1
    - Dst: Key_Share_ServerHello
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:417,1
    - Dst: std::get<Key_Share_ClientHello>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:418,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: 418
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 418
    functionName: Botan::TLS::Key_Share::Key_Share
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - std::get<Key_Share_ClientHello>
    - std::make_unique<Key_Share_Impl>
    - 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: 420
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 420
    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:423,1
    - Dst: Botan::TLS::Key_Share::serialize
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 424
    functionName: Botan::TLS::Key_Share::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 9
    functionsReached:
    - Botan::TLS::Key_Share::serialize
    - std::visit
    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:427,1
    - Dst: Botan::TLS::Key_Share::empty
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 428
    functionName: Botan::TLS::Key_Share::empty
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Key_Share::empty
    - std::visit
    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:435,1
    - Dst: Key_Share::Key_Share
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:435,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: 436
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 436
    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:442,1
    - Dst: Botan::TLS::Key_Share::decapsulate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:443,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:446,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: 451
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 451
    functionName: Botan::TLS::Key_Share::decapsulate
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Key_Share::decapsulate
    - std::visit
    - Invalid_Argument
    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:454,1
    - Dst: Botan::TLS::Key_Share::offered_groups
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 455
    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:458,1
    - Dst: Botan::TLS::Key_Share::selected_group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 459
    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:462,1
    - Dst: Botan::TLS::Key_Share::take_shared_secret
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:463,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:465,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 468
    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:474,1
    - Dst: Botan::TLS::Key_Share::selected_group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:475,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:479,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:480,1
    - Dst: Botan::TLS::Key_Share::retry_offer
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:483,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:486,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: 490
      start: 470
    functionDepth: 2
    functionLinenumber: 470
    functionLinenumberEnd: 490
    functionName: Botan::TLS::Key_Share::retry_offer
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 1
    functionsReached:
    - Botan::TLS::Key_Share::retry_offer
    - Botan::TLS::Key_Share::selected_group
    - TLS_Exception
    - std::visit
    - Invalid_Argument
    - value_exists
    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:30,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:30,1
    - Dst: get_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' reader'
    argTypes:
    - TLS_Data_Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 32
    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_uint16_t
    - static_cast<Named_Group>
    - get_tls_length_value
    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: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    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:39,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:41,1
    - Dst: TLS::Group_Params::is_kem
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:44,1
    - Dst: public_key_bits
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:45,1
    - Dst: TLS::Group_Params::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:46,1
    - Dst: dynamic_cast<ECDH_PublicKey*>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:47,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:47,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:49,1
    - Dst: auto*::public_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:60,1
    - Dst: dynamic_cast<PK_Key_Agreement_Key*>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:62,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:62,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:64,1
    - Dst: auto*::public_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:67,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - group
    - ' cb'
    - ' rng'
    argTypes:
    - TLS::Group_Params
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 69
    functionName: Botan::TLS::Key_Share_Entry::Key_Share_Entry
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<PK_Key_Agreement_Key*>
    - public_key_bits
    - TLS_Exception
    - TLS::Group_Params::is_kem
    - tls_kem_generate_key
    - auto*::public_value
    - get
    - dynamic_cast<ECDH_PublicKey*>
    - TLS::Group_Params::is_ecdh_named_curve
    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:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    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:75,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:75,1
    - Dst: wire_code
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:77,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:78,1
    - Dst: get_byte<0>
      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<1>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:79,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 83
    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>
    - size
    - get_byte<0>
    - wire_code
    - append_tls_length_value
    - std::vector::reserve
    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: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    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:92,1
    - Dst: tls_kem_encapsulate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:92,1
    - Dst: std::move
      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
    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: 95
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 95
    functionName: Botan::TLS::Key_Share_Entry::encapsulate
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - tls_kem_encapsulate
    - KEM_Encapsulation::destructure
    - 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:107,1
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:107,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:108,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:109,1
    - Dst: tls_kem_decapsulate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:110,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: 111
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 111
    functionName: Botan::TLS::Key_Share_Entry::decapsulate
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - scoped_cleanup
    - BOTAN_ASSERT_NOMSG
    - tls_kem_decapsulate
    - BOTAN_STATE_CHECK
    - reset
    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: 123
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 123
    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)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    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: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    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: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    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: 136
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 136
    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: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    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: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::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: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::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: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    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: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    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: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::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: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::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:152,1
    - Dst: Botan::TLS::Key_Share_ServerHello::empty
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:152,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 154
    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_STATE_CHECK
    - std::exchange
    - Botan::TLS::Key_Share_ServerHello::empty
    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:173,1
    - Dst: read_so_far
      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:176,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:177,1
    - Dst: has_remaining
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:181,1
    - Dst: remaining
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:181,1
    - Dst: remaining
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:182,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:183,1
    - Dst: std::find_if
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:193,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:193,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:193,1
    - Dst: group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:194,1
    - Dst: Key_Share_Entry::group
      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:195,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:196,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:199,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:199,1
    - Dst: read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:202,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:203,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - ' reader'
    argTypes:
    - TLS_Data_Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 205
    functionName: Botan::TLS::Key_Share_ClientHello::Key_Share_ClientHello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - begin
    - std::move
    - Decoding_Error
    - Key_Share_Entry::group
    - TLS_Exception
    - emplace_back
    - has_remaining
    - get_uint16_t
    - remaining
    - end
    - BOTAN_STATE_CHECK
    - group
    - std::find_if
    - read_so_far
    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:208,1
    - Dst: key_exchange_groups_to_offer
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:209,1
    - Dst: std::find
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:223,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:223,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:223,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:223,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - ' policy'
    - ' cb'
    - ' rng'
    argTypes:
    - Policy
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 228
    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::end
    - key_exchange_groups_to_offer
    - emplace_back
    - std::find
    - key_exchange_groups
    - auto::begin
    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: 230
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 230
    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: 232
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 232
    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: 233
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 233
    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: 235
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 235
    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: 236
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 236
    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:242,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:242,1
    - Dst: cend
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:242,1
    - Dst: group
      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:244,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:245,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:248,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:249,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: 250
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 250
    functionName: Botan::TLS::Key_Share_ClientHello::retry_offer
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - clear
    - cend
    - emplace_back
    - cbegin
    - 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:254,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:254,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:256,1
    - Dst: group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 259
    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:261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 261
    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:266,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:267,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:267,1
    - Dst: auto::cbegin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:267,1
    - Dst: auto::cend
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:267,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 273
    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
    - auto::cbegin
    - std::vector::end
    - append_tls_length_value
    - auto::cend
    - std::vector::insert
    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: 281
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 281
    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:287,1
    - Dst: std::find_if
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:290,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:290,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:290,1
    - Dst: group
      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:291,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:297,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:297,1
    - Dst: Botan::TLS::Key_Share_ClientHello::encapsulate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:299,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: 300
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 300
    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_STATE_CHECK
    - Botan::TLS::Key_Share_ClientHello::encapsulate
    - end
    - begin
    - group
    - std::find_if
    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:306,1
    - Dst: std::find_if
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:309,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:309,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:309,1
    - Dst: group
      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:310,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:317,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:318,1
    - Dst: auto::decapsulate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:321,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: 322
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 322
    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
    - TLS_Exception
    - auto::decapsulate
    - end
    - begin
    - group
    - std::find_if
    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:334,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: 335
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 335
    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:343,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:344,1
    - Dst: static_cast<Named_Group>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:347,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:347,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 348
    functionName: Botan::TLS::Key_Share_HelloRetryRequest::Key_Share_HelloRetryRequest
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - get_uint16_t
    - static_cast<Named_Group>
    - std::to_string
    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: 350
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 350
    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: 352
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 352
    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: 354
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 354
    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: 355
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 355
    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: 357
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 357
    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: 358
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 358
    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:361,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:362,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 363
    functionName: Botan::TLS::Key_Share_HelloRetryRequest::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - wire_code
    - get_byte<0>
    - get_byte<1>
    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: 365
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 365
    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:368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 369
    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: 371
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 371
    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:30,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:30,1
    - Dst: get_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' reader'
    argTypes:
    - TLS_Data_Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 32
    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_uint16_t
    - static_cast<Named_Group>
    - get_tls_length_value
    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: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    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:39,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:41,1
    - Dst: TLS::Group_Params::is_kem
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:44,1
    - Dst: public_key_bits
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:45,1
    - Dst: TLS::Group_Params::is_ecdh_named_curve
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:46,1
    - Dst: dynamic_cast<ECDH_PublicKey*>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:47,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:47,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:49,1
    - Dst: auto*::public_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:60,1
    - Dst: dynamic_cast<PK_Key_Agreement_Key*>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:62,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:62,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:64,1
    - Dst: auto*::public_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:67,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 3
    argNames:
    - group
    - ' cb'
    - ' rng'
    argTypes:
    - TLS::Group_Params
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 69
    functionName: Botan::TLS::Key_Share_Entry::Key_Share_Entry
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<PK_Key_Agreement_Key*>
    - public_key_bits
    - TLS_Exception
    - TLS::Group_Params::is_kem
    - tls_kem_generate_key
    - auto*::public_value
    - get
    - dynamic_cast<ECDH_PublicKey*>
    - TLS::Group_Params::is_ecdh_named_curve
    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:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    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:75,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:75,1
    - Dst: wire_code
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:77,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:78,1
    - Dst: get_byte<0>
      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<1>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:79,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 83
    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>
    - size
    - get_byte<0>
    - wire_code
    - append_tls_length_value
    - std::vector::reserve
    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: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    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:92,1
    - Dst: tls_kem_encapsulate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:92,1
    - Dst: std::move
      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
    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: 95
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 95
    functionName: Botan::TLS::Key_Share_Entry::encapsulate
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - tls_kem_encapsulate
    - KEM_Encapsulation::destructure
    - 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:107,1
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:107,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:108,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:109,1
    - Dst: tls_kem_decapsulate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:110,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: 111
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 111
    functionName: Botan::TLS::Key_Share_Entry::decapsulate
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - scoped_cleanup
    - BOTAN_ASSERT_NOMSG
    - tls_kem_decapsulate
    - BOTAN_STATE_CHECK
    - reset
    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: 123
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 123
    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)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    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: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    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: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    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: 136
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 136
    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: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    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: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::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: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::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: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    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: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    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: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::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: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::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:152,1
    - Dst: Botan::TLS::Key_Share_ServerHello::empty
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:152,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 154
    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_STATE_CHECK
    - std::exchange
    - Botan::TLS::Key_Share_ServerHello::empty
    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:173,1
    - Dst: read_so_far
      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:176,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:177,1
    - Dst: has_remaining
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:181,1
    - Dst: remaining
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:181,1
    - Dst: remaining
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:182,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:183,1
    - Dst: std::find_if
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:193,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:193,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:193,1
    - Dst: group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:194,1
    - Dst: Key_Share_Entry::group
      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:195,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:196,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:199,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:199,1
    - Dst: read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:202,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:203,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - ' reader'
    argTypes:
    - TLS_Data_Reader
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 205
    functionName: Botan::TLS::Key_Share_ClientHello::Key_Share_ClientHello
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - begin
    - std::move
    - Decoding_Error
    - Key_Share_Entry::group
    - TLS_Exception
    - emplace_back
    - has_remaining
    - get_uint16_t
    - remaining
    - end
    - BOTAN_STATE_CHECK
    - group
    - std::find_if
    - read_so_far
    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:208,1
    - Dst: key_exchange_groups_to_offer
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:209,1
    - Dst: std::find
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:223,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:223,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:223,1
    - Dst: auto::end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:223,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - ' policy'
    - ' cb'
    - ' rng'
    argTypes:
    - Policy
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 228
    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::end
    - key_exchange_groups_to_offer
    - emplace_back
    - std::find
    - key_exchange_groups
    - auto::begin
    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: 230
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 230
    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: 232
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 232
    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: 233
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 233
    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: 235
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 235
    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: 236
      start: 236
    functionDepth: 0
    functionLinenumber: 236
    functionLinenumberEnd: 236
    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:242,1
    - Dst: cbegin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:242,1
    - Dst: cend
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:242,1
    - Dst: group
      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:244,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:245,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:248,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:249,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: 250
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 250
    functionName: Botan::TLS::Key_Share_ClientHello::retry_offer
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - clear
    - cend
    - emplace_back
    - cbegin
    - 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:254,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:254,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:256,1
    - Dst: group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 259
    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:261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 261
    functionDepth: 1
    functionLinenumber: 261
    functionLinenumberEnd: 261
    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:266,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:267,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:267,1
    - Dst: auto::cbegin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:267,1
    - Dst: auto::cend
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:267,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 273
    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
    - auto::cbegin
    - std::vector::end
    - append_tls_length_value
    - auto::cend
    - std::vector::insert
    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: 281
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 281
    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:287,1
    - Dst: std::find_if
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:290,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:290,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:290,1
    - Dst: group
      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:291,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:297,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:297,1
    - Dst: Botan::TLS::Key_Share_ClientHello::encapsulate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:299,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: 300
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 300
    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_STATE_CHECK
    - Botan::TLS::Key_Share_ClientHello::encapsulate
    - end
    - begin
    - group
    - std::find_if
    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:306,1
    - Dst: std::find_if
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:309,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:309,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:309,1
    - Dst: group
      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:310,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:317,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:318,1
    - Dst: auto::decapsulate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:321,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: 322
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 322
    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
    - TLS_Exception
    - auto::decapsulate
    - end
    - begin
    - group
    - std::find_if
    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:334,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: 335
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 335
    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:343,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:344,1
    - Dst: static_cast<Named_Group>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:347,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:347,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' reader'
    - extension_size
    argTypes:
    - TLS_Data_Reader
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 348
    functionName: Botan::TLS::Key_Share_HelloRetryRequest::Key_Share_HelloRetryRequest
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - get_uint16_t
    - static_cast<Named_Group>
    - std::to_string
    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: 350
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 350
    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: 352
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 352
    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: 354
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 354
    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: 355
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 355
    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: 357
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 357
    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: 358
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 358
    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:361,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:362,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 363
    functionName: Botan::TLS::Key_Share_HelloRetryRequest::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - wire_code
    - get_byte<0>
    - get_byte<1>
    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: 365
      start: 365
    functionDepth: 0
    functionLinenumber: 365
    functionLinenumberEnd: 365
    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:368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 369
    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: 371
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 371
    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:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ks
    argTypes:
    - Key_Share_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 383
    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:390,1
    - Dst: Key_Share_ClientHello
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:390,1
    - Dst: std::make_unique<Key_Share_Impl>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:393,1
    - Dst: Key_Share_HelloRetryRequest
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:393,1
    - Dst: std::make_unique<Key_Share_Impl>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:396,1
    - Dst: Key_Share_ServerHello
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:396,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:398,1
    - Dst: std::string
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:398,1
    - Dst: handshake_type_to_string
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:399,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: 401
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 401
    functionName: Botan::TLS::Key_Share::Key_Share
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - Key_Share_ClientHello
    - std::string
    - std::make_unique<Key_Share_Impl>
    - handshake_type_to_string
    - Invalid_Argument
    - Key_Share_ServerHello
    - Key_Share_HelloRetryRequest
    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:405,1
    - Dst: Key_Share_ClientHello
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' policy'
    - ' cb'
    - ' rng'
    argTypes:
    - Policy
    - Callbacks
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 405
    functionName: Botan::TLS::Key_Share::Key_Share
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - Key_Share_ClientHello
    - std::make_unique<Key_Share_Impl>
    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:409,1
    - Dst: Key_Share_HelloRetryRequest
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - selected_group
    argTypes:
    - Named_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 409
    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_HelloRetryRequest
    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:417,1
    - Dst: Key_Share_ServerHello
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:417,1
    - Dst: std::get<Key_Share_ClientHello>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:418,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: 418
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 418
    functionName: Botan::TLS::Key_Share::Key_Share
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 0
    functionsReached:
    - std::get<Key_Share_ClientHello>
    - std::make_unique<Key_Share_Impl>
    - 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: 420
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 420
    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:423,1
    - Dst: Botan::TLS::Key_Share::serialize
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 424
    functionName: Botan::TLS::Key_Share::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 10
    functionsReached:
    - Botan::TLS::Key_Share::serialize
    - std::visit
    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:427,1
    - Dst: Botan::TLS::Key_Share::empty
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 426
    functionDepth: 0
    functionLinenumber: 426
    functionLinenumberEnd: 428
    functionName: Botan::TLS::Key_Share::empty
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Key_Share::empty
    - std::visit
    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:435,1
    - Dst: Key_Share::Key_Share
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:435,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: 436
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 436
    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:442,1
    - Dst: Botan::TLS::Key_Share::decapsulate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:443,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:446,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: 451
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 451
    functionName: Botan::TLS::Key_Share::decapsulate
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Key_Share::decapsulate
    - std::visit
    - Invalid_Argument
    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:454,1
    - Dst: Botan::TLS::Key_Share::offered_groups
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:454,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 453
    functionDepth: 1
    functionLinenumber: 453
    functionLinenumberEnd: 455
    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:458,1
    - Dst: Botan::TLS::Key_Share::selected_group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 459
      start: 457
    functionDepth: 1
    functionLinenumber: 457
    functionLinenumberEnd: 459
    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:462,1
    - Dst: Botan::TLS::Key_Share::take_shared_secret
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:463,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:465,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 468
    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:474,1
    - Dst: Botan::TLS::Key_Share::selected_group
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:475,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:479,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:480,1
    - Dst: Botan::TLS::Key_Share::retry_offer
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:483,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp:486,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: 490
      start: 470
    functionDepth: 2
    functionLinenumber: 470
    functionLinenumberEnd: 490
    functionName: Botan::TLS::Key_Share::retry_offer
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_key_share.cpp
    functionUses: 2
    functionsReached:
    - Botan::TLS::Key_Share::retry_offer
    - Botan::TLS::Key_Share::selected_group
    - TLS_Exception
    - std::visit
    - Invalid_Argument
    - value_exists
    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::unique_ptr<Cipher_State>
    - std::move
    - prf_algo
    - auto::advance_with_server_hello
    - Cipher_State::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:
    - BOTAN_ASSERT_NOMSG
    - Botan::TLS::Cipher_State::derive_secret
    - zap
    - Botan::TLS::Cipher_State::empty_hash
    - 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_ASSERT_NOMSG
    - std::move
    - Botan::TLS::Cipher_State::hkdf_extract
    - Botan::TLS::Cipher_State::derive_secret
    - secure_vector<uint8_t>
    - maybe_log_secret
    - Botan::TLS::Cipher_State::derive_write_traffic_key
    - Botan::TLS::Cipher_State::derive_read_traffic_key
    - output_length
    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:
    - BOTAN_ASSERT_NOMSG
    - Botan::TLS::Cipher_State::hkdf_extract
    - secure_vector<uint8_t>
    - Botan::TLS::Cipher_State::derive_secret
    - zap
    - Botan::TLS::Cipher_State::derive_write_traffic_key
    - Botan::TLS::Cipher_State::derive_read_traffic_key
    - output_length
    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: 0
    functionLinenumber: 231
    functionLinenumberEnd: 244
    functionName: Botan::TLS::current_nonce
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - last
    - store_be
    - xor_buf
    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: 0
    functionLinenumber: 231
    functionLinenumberEnd: 244
    functionName: Botan::TLS::current_nonce
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - last
    - store_be
    - xor_buf
    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:
    - start
    - current_nonce
    - finish
    - BOTAN_ASSERT_NONNULL
    - set_key
    - set_associated_data
    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:
    - start
    - current_nonce
    - finish
    - size
    - BOTAN_ASSERT_NONNULL
    - BOTAN_ARG_CHECK
    - set_key
    - minimum_final_size
    - set_associated_data
    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:
    - output_length
    - BOTAN_ASSERT_NONNULL
    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:
    - output_length
    - BOTAN_ASSERT_NONNULL
    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:
    - minimum_final_size
    - BOTAN_ASSERT_NONNULL
    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:
    - name
    - BOTAN_ASSERT_NONNULL
    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:
    - BOTAN_ASSERT_NOMSG
    - cipher_algo
    - prf_algo
    - name
    - Botan::TLS::Cipher_State::hash_algorithm
    - usable_in_version
    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:
    - BOTAN_ASSERT_NOMSG
    - auto::update
    - auto::final_stdvec
    - auto::set_key
    - HMAC
    - 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:
    - BOTAN_ASSERT_NOMSG
    - auto::update
    - auto::final_stdvec
    - auto::set_key
    - HMAC
    - empty
    - 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:
    - BOTAN_ASSERT_NOMSG
    - auto::update
    - auto::set_key
    - HMAC
    - empty
    - new_object
    - auto::verify_mac
    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
    - Botan::TLS::Cipher_State::derive_secret
    - get
    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:
    - Botan_Tests::random_bit_generator::max
    - Invalid_State
    - store_be
    - 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_ASSERT_NOMSG
    - update
    - Botan::TLS::Cipher_State::hkdf_expand_label
    - can_export_keys
    - Botan::TLS::Cipher_State::derive_secret
    - Botan::TLS::Cipher_State::empty_hash
    - final_stdvec
    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:
    - std::make_unique<HKDF_Extract>
    - std::make_unique<HKDF_Expand>
    - Botan::HashFunction::create_or_throw
    - create_hmac
    - output_length
    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_ASSERT_NOMSG
    - Botan::TLS::Cipher_State::hkdf_extract
    - Botan::TLS::Cipher_State::derive_secret
    - secure_vector<uint8_t>
    - Botan::TLS::Cipher_State::empty_hash
    - 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:
    - BOTAN_ASSERT_NOMSG
    - std::move
    - Botan::TLS::Cipher_State::hkdf_expand_label
    - Botan::TLS::Cipher_State::hkdf_extract
    - Botan::TLS::Cipher_State::derive_secret
    - Botan::TLS::Cipher_State::empty_hash
    - output_length
    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_ASSERT_NOMSG
    - std::move
    - cipher_algo
    - Botan::TLS::Cipher_State::hkdf_extract
    - Botan::TLS::Cipher_State::derive_secret
    - Botan::TLS::Cipher_State::empty_hash
    - maybe_log_secret
    - Botan::TLS::Cipher_State::derive_write_traffic_key
    - Botan::AEAD_Mode::create_or_throw
    - BOTAN_STATE_CHECK
    - Botan::TLS::Cipher_State::derive_read_traffic_key
    - Botan::TLS::Cipher_State::is_compatible_with
    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:
    - Botan::TLS::Cipher_State::hkdf_expand_label
    - BOTAN_ASSERT_NONNULL
    - minimum_keylength
    - output_length
    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:
    - Botan::TLS::Cipher_State::hkdf_expand_label
    - BOTAN_ASSERT_NONNULL
    - minimum_keylength
    - output_length
    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
    - output_length
    - std::vector<uint8_t>
    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:
    - static_cast<uint16_t>
    - BOTAN_ARG_CHECK
    - secure_vector::reserve
    - get_byte<0>
    - std::string::cbegin
    - cbegin
    - secure_vector::insert
    - cend
    - secure_vector::push_back
    - std::vector<uint8_t>
    - std::string::cend
    - get_byte<1>
    - Botan_Tests::random_bit_generator::max
    - derive_key
    - static_cast<uint8_t>
    - std::string_view::cend
    - std::string::size
    - size
    - std::string_view::cbegin
    - std::string_view::size
    - secure_vector::end
    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:
    - Botan::TLS::Cipher_State::hkdf_expand_label
    - output_length
    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:
    - update
    - final_stdvec
    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_ASSERT_NOMSG
    - Botan::TLS::Cipher_State::hkdf_expand_label
    - maybe_log_secret
    - Botan::TLS::Cipher_State::derive_read_traffic_key
    - output_length
    - 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_ASSERT_NOMSG
    - Botan::TLS::Cipher_State::hkdf_expand_label
    - maybe_log_secret
    - Botan::TLS::Cipher_State::derive_write_traffic_key
    - output_length
    - 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::unique_ptr<Cipher_State>
    - std::move
    - prf_algo
    - auto::advance_with_server_hello
    - Cipher_State::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:
    - BOTAN_ASSERT_NOMSG
    - Botan::TLS::Cipher_State::derive_secret
    - zap
    - Botan::TLS::Cipher_State::empty_hash
    - 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_ASSERT_NOMSG
    - std::move
    - Botan::TLS::Cipher_State::hkdf_extract
    - Botan::TLS::Cipher_State::derive_secret
    - secure_vector<uint8_t>
    - maybe_log_secret
    - Botan::TLS::Cipher_State::derive_write_traffic_key
    - Botan::TLS::Cipher_State::derive_read_traffic_key
    - output_length
    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:
    - BOTAN_ASSERT_NOMSG
    - Botan::TLS::Cipher_State::hkdf_extract
    - secure_vector<uint8_t>
    - Botan::TLS::Cipher_State::derive_secret
    - zap
    - Botan::TLS::Cipher_State::derive_write_traffic_key
    - Botan::TLS::Cipher_State::derive_read_traffic_key
    - output_length
    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: 0
    functionLinenumber: 231
    functionLinenumberEnd: 244
    functionName: Botan::TLS::current_nonce
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - last
    - store_be
    - xor_buf
    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: 0
    functionLinenumber: 231
    functionLinenumberEnd: 244
    functionName: Botan::TLS::current_nonce
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_cipher_state.cpp
    functionUses: 0
    functionsReached:
    - last
    - store_be
    - xor_buf
    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:
    - start
    - current_nonce
    - finish
    - BOTAN_ASSERT_NONNULL
    - set_key
    - set_associated_data
    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:
    - start
    - current_nonce
    - finish
    - size
    - BOTAN_ASSERT_NONNULL
    - BOTAN_ARG_CHECK
    - set_key
    - minimum_final_size
    - set_associated_data
    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:
    - output_length
    - BOTAN_ASSERT_NONNULL
    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:
    - output_length
    - BOTAN_ASSERT_NONNULL
    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:
    - minimum_final_size
    - BOTAN_ASSERT_NONNULL
    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:
    - name
    - BOTAN_ASSERT_NONNULL
    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:
    - BOTAN_ASSERT_NOMSG
    - cipher_algo
    - prf_algo
    - name
    - Botan::TLS::Cipher_State::hash_algorithm
    - usable_in_version
    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:
    - BOTAN_ASSERT_NOMSG
    - auto::update
    - auto::final_stdvec
    - auto::set_key
    - HMAC
    - 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:
    - BOTAN_ASSERT_NOMSG
    - auto::update
    - auto::final_stdvec
    - auto::set_key
    - HMAC
    - empty
    - 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:
    - BOTAN_ASSERT_NOMSG
    - auto::update
    - auto::set_key
    - HMAC
    - empty
    - new_object
    - auto::verify_mac
    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
    - Botan::TLS::Cipher_State::derive_secret
    - get
    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:
    - Botan_Tests::random_bit_generator::max
    - Invalid_State
    - store_be
    - 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_ASSERT_NOMSG
    - update
    - Botan::TLS::Cipher_State::hkdf_expand_label
    - can_export_keys
    - Botan::TLS::Cipher_State::derive_secret
    - Botan::TLS::Cipher_State::empty_hash
    - final_stdvec
    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:
    - std::make_unique<HKDF_Extract>
    - std::make_unique<HKDF_Expand>
    - Botan::HashFunction::create_or_throw
    - create_hmac
    - output_length
    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_ASSERT_NOMSG
    - Botan::TLS::Cipher_State::hkdf_extract
    - Botan::TLS::Cipher_State::derive_secret
    - secure_vector<uint8_t>
    - Botan::TLS::Cipher_State::empty_hash
    - 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:
    - BOTAN_ASSERT_NOMSG
    - std::move
    - Botan::TLS::Cipher_State::hkdf_expand_label
    - Botan::TLS::Cipher_State::hkdf_extract
    - Botan::TLS::Cipher_State::derive_secret
    - Botan::TLS::Cipher_State::empty_hash
    - output_length
    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_ASSERT_NOMSG
    - std::move
    - cipher_algo
    - Botan::TLS::Cipher_State::hkdf_extract
    - Botan::TLS::Cipher_State::derive_secret
    - Botan::TLS::Cipher_State::empty_hash
    - maybe_log_secret
    - Botan::TLS::Cipher_State::derive_write_traffic_key
    - Botan::AEAD_Mode::create_or_throw
    - BOTAN_STATE_CHECK
    - Botan::TLS::Cipher_State::derive_read_traffic_key
    - Botan::TLS::Cipher_State::is_compatible_with
    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:
    - Botan::TLS::Cipher_State::hkdf_expand_label
    - BOTAN_ASSERT_NONNULL
    - minimum_keylength
    - output_length
    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:
    - Botan::TLS::Cipher_State::hkdf_expand_label
    - BOTAN_ASSERT_NONNULL
    - minimum_keylength
    - output_length
    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
    - output_length
    - std::vector<uint8_t>
    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:
    - static_cast<uint16_t>
    - BOTAN_ARG_CHECK
    - secure_vector::reserve
    - get_byte<0>
    - std::string::cbegin
    - cbegin
    - secure_vector::insert
    - cend
    - secure_vector::push_back
    - std::vector<uint8_t>
    - std::string::cend
    - get_byte<1>
    - Botan_Tests::random_bit_generator::max
    - derive_key
    - static_cast<uint8_t>
    - std::string_view::cend
    - std::string::size
    - size
    - std::string_view::cbegin
    - std::string_view::size
    - secure_vector::end
    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:
    - Botan::TLS::Cipher_State::hkdf_expand_label
    - output_length
    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:
    - update
    - final_stdvec
    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_ASSERT_NOMSG
    - Botan::TLS::Cipher_State::hkdf_expand_label
    - maybe_log_secret
    - Botan::TLS::Cipher_State::derive_read_traffic_key
    - output_length
    - 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_ASSERT_NOMSG
    - Botan::TLS::Cipher_State::hkdf_expand_label
    - maybe_log_secret
    - Botan::TLS::Cipher_State::derive_write_traffic_key
    - output_length
    - 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::TLS::Transcript_Hash_State
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.h:30,1
    - Dst: Botan::TLS::Transcript_Hash_State
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.h:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 94
    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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: ~Transcript_Hash_State()
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Transcript_Hash_State()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: Botan::TLS::Transcript_Hash_State
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Transcript_Hash_State(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:30,1
    - Dst: Botan::TLS::Transcript_Hash_State
      Src: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.h:82,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 94
    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: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: ~Transcript_Hash_State()
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Transcript_Hash_State()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: Botan::TLS::Transcript_Hash_State
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_transcript_hash_13.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Transcript_Hash_State(Transcript_Hash_State&&)
  - 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::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: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    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: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    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: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    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<uint8_t>
    - static_cast<Record_Type>
    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:
    - std::move
    - TLS_Exception
    - Botan::TLS::TLSPlaintext_Header::type
    - Protocol_Version
    - read_record_type
    - make_uint16
    - major_version
    - version_code
    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:
    - static_cast<uint16_t>
    - static_cast<uint8_t>
    - get_byte<0>
    - minor_version
    - major_version
    - get_byte<1>
    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<uint8_t>
    - static_cast<Record_Type>
    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:
    - std::move
    - TLS_Exception
    - Botan::TLS::TLSPlaintext_Header::type
    - Protocol_Version
    - read_record_type
    - make_uint16
    - major_version
    - version_code
    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:
    - static_cast<uint16_t>
    - static_cast<uint8_t>
    - get_byte<0>
    - minor_version
    - major_version
    - get_byte<1>
    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:
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - end
    - insert
    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:
    - BOTAN_ASSERT_NOMSG
    - static_cast<uint16_t>
    - std::min<size_t>
    - auto::end
    - secure_vector::cend
    - max
    - secure_vector::reserve
    - std::vector::end
    - std::vector::insert
    - std::vector::reserve
    - verify_change_cipher_spec
    - secure_vector::insert
    - Cipher_State*::encrypt_record_fragment
    - secure_vector::push_back
    - auto::cend
    - std::span<const uint8_t>::empty
    - Cipher_State*::encrypt_output_length
    - std::span<const uint8_t>::size
    - static_cast<uint8_t>
    - auto::cbegin
    - TLSPlaintext_Header
    - Invalid_Argument
    - std::span<const uint8_t>::begin
    - std::vector::size
    - BOTAN_ASSERT
    - auto::begin
    - secure_vector::cbegin
    - std::span<const uint8_t>::subspan
    - secure_vector::size
    - secure_vector::end
    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:
    - Cipher_State*::must_expect_unprotected_alert_traffic
    - Record::fragment::erase
    - cbegin
    - Cipher_State*::decrypt_output_length
    - verify_change_cipher_spec
    - Cipher_State*::minimum_decryption_input_length
    - base
    - TLS_Exception
    - secure_vector<uint8_t>
    - read_record_type
    - Record::fragment::crend
    - TLSPlaintext_Header::serialized
    - Record::fragment::size
    - Record::fragment::cend
    - TLSPlaintext_Header::fragment_length
    - std::find_if
    - size
    - erase
    - Cipher_State*::decrypt_record_fragment
    - TLSPlaintext_Header::type
    - Record::fragment::crbegin
    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:
    - min
    - static_cast<uint16_t>
    - BOTAN_ARG_CHECK
    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<uint8_t>
    - static_cast<Record_Type>
    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:
    - std::move
    - TLS_Exception
    - Botan::TLS::TLSPlaintext_Header::type
    - Protocol_Version
    - read_record_type
    - make_uint16
    - major_version
    - version_code
    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:
    - static_cast<uint16_t>
    - static_cast<uint8_t>
    - get_byte<0>
    - minor_version
    - major_version
    - get_byte<1>
    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<uint8_t>
    - static_cast<Record_Type>
    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:
    - std::move
    - TLS_Exception
    - Botan::TLS::TLSPlaintext_Header::type
    - Protocol_Version
    - read_record_type
    - make_uint16
    - major_version
    - version_code
    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:
    - static_cast<uint16_t>
    - static_cast<uint8_t>
    - get_byte<0>
    - minor_version
    - major_version
    - get_byte<1>
    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:
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - end
    - insert
    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:
    - BOTAN_ASSERT_NOMSG
    - static_cast<uint16_t>
    - std::min<size_t>
    - auto::end
    - secure_vector::cend
    - max
    - secure_vector::reserve
    - std::vector::end
    - std::vector::insert
    - std::vector::reserve
    - verify_change_cipher_spec
    - secure_vector::insert
    - Cipher_State*::encrypt_record_fragment
    - secure_vector::push_back
    - auto::cend
    - std::span<const uint8_t>::empty
    - Cipher_State*::encrypt_output_length
    - std::span<const uint8_t>::size
    - static_cast<uint8_t>
    - auto::cbegin
    - TLSPlaintext_Header
    - Invalid_Argument
    - std::span<const uint8_t>::begin
    - std::vector::size
    - BOTAN_ASSERT
    - auto::begin
    - secure_vector::cbegin
    - std::span<const uint8_t>::subspan
    - secure_vector::size
    - secure_vector::end
    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:
    - Cipher_State*::must_expect_unprotected_alert_traffic
    - Record::fragment::erase
    - cbegin
    - Cipher_State*::decrypt_output_length
    - verify_change_cipher_spec
    - Cipher_State*::minimum_decryption_input_length
    - base
    - TLS_Exception
    - secure_vector<uint8_t>
    - read_record_type
    - Record::fragment::crend
    - TLSPlaintext_Header::serialized
    - Record::fragment::size
    - Record::fragment::cend
    - TLSPlaintext_Header::fragment_length
    - std::find_if
    - size
    - erase
    - Cipher_State*::decrypt_record_fragment
    - TLSPlaintext_Header::type
    - Record::fragment::crbegin
    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:
    - min
    - static_cast<uint16_t>
    - BOTAN_ARG_CHECK
    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:35,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: 36
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 36
    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:41,1
    - Dst: handle::opaque_handle
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:41,1
    - Dst: calculate_age
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:42,1
    - Dst: session::start_time
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:42,1
    - Dst: session::session_age_add
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:43,1
    - Dst: session::ciphersuite
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:44,1
    - Dst: session::extract_master_secret
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:45,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: 46
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: Botan::TLS::Client_PSK::Client_PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - session::ciphersuite
    - session::start_time
    - session::session_age_add
    - handle::opaque_handle
    - calculate_age
    - session::extract_master_secret
    - PskIdentity
    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:50,1
    - Dst: PresharedKeyID
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:50,1
    - Dst: identity
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:50,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:51,1
    - Dst: extract_master_secret
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' psk'
    argTypes:
    - ExternalPSK
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: Botan::TLS::Client_PSK::Client_PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - prf_algo
    - identity
    - PresharedKeyID
    - extract_master_secret
    - PskIdentity
    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:56,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id
    - bndr
    argTypes:
    - PskIdentity
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    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:62,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:77,1
    - Dst: Botan::TLS::Cipher_State::init_with_psk
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:80,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:80,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: 80
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 80
    functionName: Botan::TLS::Client_PSK::Client_PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    - std::move
    - Botan::TLS::Cipher_State::init_with_psk
    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: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    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: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    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: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    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:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - binder
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    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:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 93
    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: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::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:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - id
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    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:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id
    - session
    argTypes:
    - uint16_t
    - Session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    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:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id
    - psk
    argTypes:
    - uint16_t
    - ExternalPSK
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    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: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    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:119,1
    - Dst: std::holds_alternative<std::monostate>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:119,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:120,1
    - Dst: std::monostate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.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: Botan::TLS::Server_PSK::take_session_to_resume_or_psk
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - std::exchange
    - std::holds_alternative<std::monostate>
    - std::monostate
    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:35,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: 36
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 36
    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:41,1
    - Dst: handle::opaque_handle
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:41,1
    - Dst: calculate_age
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:42,1
    - Dst: session::start_time
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:42,1
    - Dst: session::session_age_add
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:43,1
    - Dst: session::ciphersuite
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:44,1
    - Dst: session::extract_master_secret
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:45,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: 46
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: Botan::TLS::Client_PSK::Client_PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - session::ciphersuite
    - session::start_time
    - session::session_age_add
    - handle::opaque_handle
    - calculate_age
    - session::extract_master_secret
    - PskIdentity
    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:50,1
    - Dst: PresharedKeyID
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:50,1
    - Dst: identity
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:50,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:51,1
    - Dst: extract_master_secret
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' psk'
    argTypes:
    - ExternalPSK
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: Botan::TLS::Client_PSK::Client_PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - prf_algo
    - identity
    - PresharedKeyID
    - extract_master_secret
    - PskIdentity
    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:56,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id
    - bndr
    argTypes:
    - PskIdentity
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    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:62,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:77,1
    - Dst: Botan::TLS::Cipher_State::init_with_psk
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:80,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:80,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: 80
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 80
    functionName: Botan::TLS::Client_PSK::Client_PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    - std::move
    - Botan::TLS::Cipher_State::init_with_psk
    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: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    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: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    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: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    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:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - binder
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    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:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 93
    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: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::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:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - id
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    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:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id
    - session
    argTypes:
    - uint16_t
    - Session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    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:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id
    - psk
    argTypes:
    - uint16_t
    - ExternalPSK
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    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: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    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:119,1
    - Dst: std::holds_alternative<std::monostate>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:119,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:120,1
    - Dst: std::monostate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.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: Botan::TLS::Server_PSK::take_session_to_resume_or_psk
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - std::exchange
    - std::holds_alternative<std::monostate>
    - std::monostate
    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:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - srv_psk
    argTypes:
    - Server_PSK
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    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:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - clt_psks
    argTypes:
    - std::vector<Client_PSK>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 136
    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:145,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:148,1
    - Dst: std::make_unique<PSK_Internal>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:149,1
    - Dst: Server_PSK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:149,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:151,1
    - Dst: read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:152,1
    - Dst: has_remaining
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:155,1
    - Dst: read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:155,1
    - Dst: get_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:156,1
    - Dst: get_uint32_t
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:157,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:158,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:158,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:161,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:162,1
    - Dst: read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:165,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:166,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:169,1
    - Dst: read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:170,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:173,1
    - Dst: has_remaining
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:178,1
    - Dst: read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:178,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:179,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:182,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:182,1
    - Dst: get_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:182,1
    - Dst: read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:185,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:186,1
    - Dst: std::make_unique<PSK_Internal>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:189,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:189,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:191,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: 193
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 193
    functionName: Botan::TLS::PSK::PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - get_uint32_t
    - std::move
    - TLS_Exception
    - std::vector::emplace_back
    - Server_PSK
    - std::make_unique<PSK_Internal>
    - std::vector::empty
    - has_remaining
    - get_uint16_t
    - get_tls_length_value
    - read_so_far
    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:198,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:199,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:199,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:199,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:203,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:203,1
    - Dst: std::make_unique<PSK_Internal>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:206,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:206,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: 207
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 207
    functionName: Botan::TLS::PSK::PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::vector::emplace_back
    - std::make_unique<PSK_Internal>
    - tls_current_timestamp
    - has_value
    - 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:210,1
    - Dst: Server_PSK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:210,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - session_to_resume
    - psk_index
    argTypes:
    - Session
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 210
    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:213,1
    - Dst: Server_PSK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:213,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - psk
    - psk_index
    argTypes:
    - ExternalPSK
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 213
    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: 215
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 215
    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:218,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:222,1
    - Dst: std::holds_alternative<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:222,1
    - Dst: std::get<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 224
    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:228,1
    - Dst: std::holds_alternative<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:228,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:229,1
    - Dst: std::holds_alternative<Server_PSK>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:229,1
    - Dst: std::get<Server_PSK>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:231,1
    - Dst: std::get<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:232,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:239,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:240,1
    - Dst: at
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:243,1
    - Dst: take_cipher_state
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:244,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:246,1
    - Dst: is_resumption
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:249,1
    - Dst: identity
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:252,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:256,1
    - Dst: auto::is_compatible_with
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:263,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:264,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:267,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:267,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - ' server_psk'
    - ' cipher'
    argTypes:
    - PSK
    - Ciphersuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 268
    functionName: Botan::TLS::PSK::take_selected_psk_info
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - auto::is_compatible_with
    - std::get<std::vector<Client_PSK>>
    - TLS_Exception
    - size
    - BOTAN_ASSERT_NONNULL
    - clear
    - take_cipher_state
    - std::holds_alternative<std::vector<Client_PSK>>
    - identity
    - std::get<Server_PSK>
    - is_resumption
    - BOTAN_STATE_CHECK
    - at
    - std::holds_alternative<Server_PSK>
    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:276,1
    - Dst: std::holds_alternative<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:276,1
    - Dst: std::get<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:278,1
    - Dst: transform
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:284,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:285,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:285,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:285,1
    - Dst: identity
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:285,1
    - Dst: choose_from_offered_tickets
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:287,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:287,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:288,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:294,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:294,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:295,1
    - Dst: std::unique_ptr<PSK>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:299,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:299,1
    - Dst: PSK::PSK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:299,1
    - Dst: transform
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:306,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:306,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:306,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:306,1
    - Dst: identity
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:307,1
    - Dst: choose_preshared_key
      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:310,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:311,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:317,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:317,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:318,1
    - Dst: std::find_if
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:323,1
    - Dst: std::vector::begin
      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:323,1
    - Dst: identity_as_string
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:324,1
    - Dst: identity
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:324,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:326,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:327,1
    - Dst: std::unique_ptr<PSK>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:342,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:343,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:343,1
    - Dst: std::distance
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:343,1
    - Dst: std::vector::begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:343,1
    - Dst: PSK::PSK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:343,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: 347
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 347
    functionName: Botan::TLS::PSK::select_offered_psk
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - choose_preshared_key
    - static_cast<uint16_t>
    - prf_algo
    - std::vector::end
    - transform
    - ciphersuite
    - begin
    - std::vector::begin
    - std::get<std::vector<Client_PSK>>
    - TLS_Exception
    - std::unique_ptr<PSK>
    - PSK::PSK
    - BOTAN_STATE_CHECK
    - std::distance
    - choose_from_offered_tickets
    - auto::value
    - std::holds_alternative<std::vector<Client_PSK>>
    - std::back_inserter
    - std::find_if
    - std::move
    - identity
    - end
    - identity_as_string
    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:350,1
    - Dst: std::holds_alternative<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:350,1
    - Dst: std::get<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:351,1
    - Dst: std::remove_if
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:353,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:353,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:353,1
    - Dst: cipher_state
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:354,1
    - Dst: is_compatible_with
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:355,1
    - Dst: erase
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:357,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' cipher'
    argTypes:
    - Ciphersuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 358
    functionName: Botan::TLS::PSK::filter
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::remove_if
    - begin
    - is_compatible_with
    - std::get<std::vector<Client_PSK>>
    - erase
    - std::holds_alternative<std::vector<Client_PSK>>
    - end
    - BOTAN_STATE_CHECK
    - cipher_state
    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:361,1
    - Dst: std::holds_alternative<Server_PSK>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:361,1
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:363,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:366,1
    - Dst: std::get<Server_PSK>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:371,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 372
    functionName: Botan::TLS::PSK::take_session_to_resume_or_psk
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - std::visit
    - std::get<Server_PSK>
    - BOTAN_STATE_CHECK
    - std::holds_alternative<Server_PSK>
    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:377,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:379,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:380,1
    - Dst: selected_identity
      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<0>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:382,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:383,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:383,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:386,1
    - Dst: identity
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:391,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:392,1
    - Dst: identity
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:392,1
    - Dst: obfuscated_age
      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<0>
      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<1>
      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<2>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:397,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:398,1
    - Dst: get_byte<3>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:398,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:400,1
    - Dst: binder
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:400,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:403,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:404,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - side
    argTypes:
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 410
    functionName: Botan::TLS::PSK::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - selected_identity
    - get_byte<3>
    - get_byte<1>
    - binder
    - get_byte<0>
    - get_byte<2>
    - identity
    - std::visit
    - BOTAN_STATE_CHECK
    - obfuscated_age
    - append_tls_length_value
    - std::vector::reserve
    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:414,1
    - Dst: std::holds_alternative<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:414,1
    - Dst: std::get<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:415,1
    - Dst: clone
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:416,1
    - Dst: cipher_state
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:417,1
    - Dst: auto::set_algorithm
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:418,1
    - Dst: hash_algorithm
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:418,1
    - Dst: set_binder
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:419,1
    - Dst: psk_binder_mac
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:419,1
    - Dst: auto::truncated
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' truncated_transcript_hash'
    argTypes:
    - Transcript_Hash_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 421
    functionName: Botan::TLS::PSK::calculate_binders
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::get<std::vector<Client_PSK>>
    - set_binder
    - clone
    - auto::set_algorithm
    - std::holds_alternative<std::vector<Client_PSK>>
    - auto::truncated
    - psk_binder_mac
    - hash_algorithm
    - cipher_state
    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:424,1
    - Dst: std::holds_alternative<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:424,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:425,1
    - Dst: std::holds_alternative<Server_PSK>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:425,1
    - Dst: std::get<Server_PSK>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:427,1
    - Dst: std::get<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:428,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:430,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:430,1
    - Dst: binder
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' server_psk'
    - ' binder'
    argTypes:
    - PSK
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 432
    functionName: Botan::TLS::PSK::validate_binder
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::get<std::vector<Client_PSK>>
    - binder
    - size
    - std::holds_alternative<std::vector<Client_PSK>>
    - std::get<Server_PSK>
    - BOTAN_STATE_CHECK
    - std::holds_alternative<Server_PSK>
    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:35,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: 36
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 36
    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:41,1
    - Dst: handle::opaque_handle
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:41,1
    - Dst: calculate_age
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:42,1
    - Dst: session::start_time
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:42,1
    - Dst: session::session_age_add
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:43,1
    - Dst: session::ciphersuite
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:44,1
    - Dst: session::extract_master_secret
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:45,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: 46
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: Botan::TLS::Client_PSK::Client_PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - session::ciphersuite
    - session::start_time
    - session::session_age_add
    - handle::opaque_handle
    - calculate_age
    - session::extract_master_secret
    - PskIdentity
    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:50,1
    - Dst: PresharedKeyID
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:50,1
    - Dst: identity
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:50,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:51,1
    - Dst: extract_master_secret
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' psk'
    argTypes:
    - ExternalPSK
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: Botan::TLS::Client_PSK::Client_PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - prf_algo
    - identity
    - PresharedKeyID
    - extract_master_secret
    - PskIdentity
    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:56,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id
    - bndr
    argTypes:
    - PskIdentity
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    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:62,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:77,1
    - Dst: Botan::TLS::Cipher_State::init_with_psk
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:80,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:80,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: 80
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 80
    functionName: Botan::TLS::Client_PSK::Client_PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    - std::move
    - Botan::TLS::Cipher_State::init_with_psk
    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: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    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: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    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: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    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:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - binder
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    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:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 93
    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: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::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:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - id
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    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:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id
    - session
    argTypes:
    - uint16_t
    - Session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    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:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id
    - psk
    argTypes:
    - uint16_t
    - ExternalPSK
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    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: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    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:119,1
    - Dst: std::holds_alternative<std::monostate>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:119,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:120,1
    - Dst: std::monostate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.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: Botan::TLS::Server_PSK::take_session_to_resume_or_psk
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - std::exchange
    - std::holds_alternative<std::monostate>
    - std::monostate
    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:35,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: 36
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 36
    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:41,1
    - Dst: handle::opaque_handle
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:41,1
    - Dst: calculate_age
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:42,1
    - Dst: session::start_time
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:42,1
    - Dst: session::session_age_add
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:43,1
    - Dst: session::ciphersuite
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:44,1
    - Dst: session::extract_master_secret
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:45,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: 46
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 46
    functionName: Botan::TLS::Client_PSK::Client_PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - session::ciphersuite
    - session::start_time
    - session::session_age_add
    - handle::opaque_handle
    - calculate_age
    - session::extract_master_secret
    - PskIdentity
    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:50,1
    - Dst: PresharedKeyID
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:50,1
    - Dst: identity
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:50,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:51,1
    - Dst: extract_master_secret
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' psk'
    argTypes:
    - ExternalPSK
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: Botan::TLS::Client_PSK::Client_PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - prf_algo
    - identity
    - PresharedKeyID
    - extract_master_secret
    - PskIdentity
    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:56,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id
    - bndr
    argTypes:
    - PskIdentity
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    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:62,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:77,1
    - Dst: Botan::TLS::Cipher_State::init_with_psk
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:80,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:80,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: 80
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 80
    functionName: Botan::TLS::Client_PSK::Client_PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    - std::move
    - Botan::TLS::Cipher_State::init_with_psk
    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: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    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: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    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: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    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:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - binder
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    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:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 93
    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: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::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:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - id
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 109
    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:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id
    - session
    argTypes:
    - uint16_t
    - Session
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    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:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - id
    - psk
    argTypes:
    - uint16_t
    - ExternalPSK
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    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: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    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:119,1
    - Dst: std::holds_alternative<std::monostate>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:119,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:120,1
    - Dst: std::monostate
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.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: Botan::TLS::Server_PSK::take_session_to_resume_or_psk
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - std::exchange
    - std::holds_alternative<std::monostate>
    - std::monostate
    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:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - srv_psk
    argTypes:
    - Server_PSK
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 134
    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:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - clt_psks
    argTypes:
    - std::vector<Client_PSK>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 136
    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:145,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:148,1
    - Dst: std::make_unique<PSK_Internal>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:149,1
    - Dst: Server_PSK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:149,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:151,1
    - Dst: read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:152,1
    - Dst: has_remaining
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:155,1
    - Dst: read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:155,1
    - Dst: get_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:156,1
    - Dst: get_uint32_t
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:157,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:158,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:158,1
    - Dst: std::vector::empty
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:161,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:162,1
    - Dst: read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:165,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:166,1
    - Dst: get_uint16_t
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:169,1
    - Dst: read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:170,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:173,1
    - Dst: has_remaining
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:178,1
    - Dst: read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:178,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:179,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:182,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:182,1
    - Dst: get_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:182,1
    - Dst: read_so_far
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:185,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:186,1
    - Dst: std::make_unique<PSK_Internal>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:189,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:189,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:191,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: 193
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 193
    functionName: Botan::TLS::PSK::PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - get_uint32_t
    - std::move
    - TLS_Exception
    - std::vector::emplace_back
    - Server_PSK
    - std::make_unique<PSK_Internal>
    - std::vector::empty
    - has_remaining
    - get_uint16_t
    - get_tls_length_value
    - read_so_far
    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:198,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:199,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:199,1
    - Dst: tls_current_timestamp
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:199,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:203,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:203,1
    - Dst: std::make_unique<PSK_Internal>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:206,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:206,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: 207
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 207
    functionName: Botan::TLS::PSK::PSK
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::vector::emplace_back
    - std::make_unique<PSK_Internal>
    - tls_current_timestamp
    - has_value
    - 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:210,1
    - Dst: Server_PSK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:210,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - session_to_resume
    - psk_index
    argTypes:
    - Session
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 210
    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:213,1
    - Dst: Server_PSK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:213,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - psk
    - psk_index
    argTypes:
    - ExternalPSK
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 213
    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: 215
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 215
    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:218,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:222,1
    - Dst: std::holds_alternative<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:222,1
    - Dst: std::get<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 224
    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:228,1
    - Dst: std::holds_alternative<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:228,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:229,1
    - Dst: std::holds_alternative<Server_PSK>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:229,1
    - Dst: std::get<Server_PSK>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:231,1
    - Dst: std::get<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:232,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:239,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:240,1
    - Dst: at
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:243,1
    - Dst: take_cipher_state
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:244,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:246,1
    - Dst: is_resumption
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:249,1
    - Dst: identity
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:252,1
    - Dst: clear
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:256,1
    - Dst: auto::is_compatible_with
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:263,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:264,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:267,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:267,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - ' server_psk'
    - ' cipher'
    argTypes:
    - PSK
    - Ciphersuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 268
    functionName: Botan::TLS::PSK::take_selected_psk_info
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - auto::is_compatible_with
    - std::get<std::vector<Client_PSK>>
    - TLS_Exception
    - size
    - BOTAN_ASSERT_NONNULL
    - clear
    - take_cipher_state
    - std::holds_alternative<std::vector<Client_PSK>>
    - identity
    - std::get<Server_PSK>
    - is_resumption
    - BOTAN_STATE_CHECK
    - at
    - std::holds_alternative<Server_PSK>
    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:276,1
    - Dst: std::holds_alternative<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:276,1
    - Dst: std::get<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:278,1
    - Dst: transform
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:284,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:285,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:285,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:285,1
    - Dst: identity
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:285,1
    - Dst: choose_from_offered_tickets
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:287,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:287,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:288,1
    - Dst: ciphersuite
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:294,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:294,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:295,1
    - Dst: std::unique_ptr<PSK>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:299,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:299,1
    - Dst: PSK::PSK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:299,1
    - Dst: transform
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:306,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:306,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:306,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:306,1
    - Dst: identity
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:307,1
    - Dst: choose_preshared_key
      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:310,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:311,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:317,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:317,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:318,1
    - Dst: std::find_if
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:323,1
    - Dst: std::vector::begin
      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:323,1
    - Dst: identity_as_string
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:324,1
    - Dst: identity
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:324,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:326,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:327,1
    - Dst: std::unique_ptr<PSK>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:342,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:343,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:343,1
    - Dst: std::distance
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:343,1
    - Dst: std::vector::begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:343,1
    - Dst: PSK::PSK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:343,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: 347
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 347
    functionName: Botan::TLS::PSK::select_offered_psk
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - choose_preshared_key
    - static_cast<uint16_t>
    - prf_algo
    - std::vector::end
    - transform
    - ciphersuite
    - begin
    - std::vector::begin
    - std::get<std::vector<Client_PSK>>
    - TLS_Exception
    - std::unique_ptr<PSK>
    - PSK::PSK
    - BOTAN_STATE_CHECK
    - std::distance
    - choose_from_offered_tickets
    - auto::value
    - std::holds_alternative<std::vector<Client_PSK>>
    - std::back_inserter
    - std::find_if
    - std::move
    - identity
    - end
    - identity_as_string
    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:350,1
    - Dst: std::holds_alternative<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:350,1
    - Dst: std::get<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:351,1
    - Dst: std::remove_if
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:353,1
    - Dst: begin
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:353,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:353,1
    - Dst: cipher_state
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:354,1
    - Dst: is_compatible_with
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:355,1
    - Dst: erase
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:357,1
    - Dst: end
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' cipher'
    argTypes:
    - Ciphersuite
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 358
    functionName: Botan::TLS::PSK::filter
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::remove_if
    - begin
    - is_compatible_with
    - std::get<std::vector<Client_PSK>>
    - erase
    - std::holds_alternative<std::vector<Client_PSK>>
    - end
    - BOTAN_STATE_CHECK
    - cipher_state
    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:361,1
    - Dst: std::holds_alternative<Server_PSK>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:361,1
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:363,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:366,1
    - Dst: std::get<Server_PSK>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:371,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 360
    functionDepth: 1
    functionLinenumber: 360
    functionLinenumberEnd: 372
    functionName: Botan::TLS::PSK::take_session_to_resume_or_psk
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - std::visit
    - std::get<Server_PSK>
    - BOTAN_STATE_CHECK
    - std::holds_alternative<Server_PSK>
    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:377,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:379,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:380,1
    - Dst: selected_identity
      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<0>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:382,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:383,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:383,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:386,1
    - Dst: identity
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:391,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:392,1
    - Dst: identity
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:392,1
    - Dst: obfuscated_age
      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<0>
      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<1>
      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<2>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:397,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:398,1
    - Dst: get_byte<3>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:398,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:400,1
    - Dst: binder
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:400,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:403,1
    - Dst: append_tls_length_value
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:404,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - side
    argTypes:
    - Connection_Side
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 374
    functionDepth: 1
    functionLinenumber: 374
    functionLinenumberEnd: 410
    functionName: Botan::TLS::PSK::serialize
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::vector::push_back
    - selected_identity
    - get_byte<3>
    - get_byte<1>
    - binder
    - get_byte<0>
    - get_byte<2>
    - identity
    - std::visit
    - BOTAN_STATE_CHECK
    - obfuscated_age
    - append_tls_length_value
    - std::vector::reserve
    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:414,1
    - Dst: std::holds_alternative<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:414,1
    - Dst: std::get<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:415,1
    - Dst: clone
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:416,1
    - Dst: cipher_state
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:417,1
    - Dst: auto::set_algorithm
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:418,1
    - Dst: hash_algorithm
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:418,1
    - Dst: set_binder
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:419,1
    - Dst: psk_binder_mac
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:419,1
    - Dst: auto::truncated
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' truncated_transcript_hash'
    argTypes:
    - Transcript_Hash_State
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 421
    functionName: Botan::TLS::PSK::calculate_binders
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::get<std::vector<Client_PSK>>
    - set_binder
    - clone
    - auto::set_algorithm
    - std::holds_alternative<std::vector<Client_PSK>>
    - auto::truncated
    - psk_binder_mac
    - hash_algorithm
    - cipher_state
    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:424,1
    - Dst: std::holds_alternative<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:424,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:425,1
    - Dst: std::holds_alternative<Server_PSK>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:425,1
    - Dst: std::get<Server_PSK>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:427,1
    - Dst: std::get<std::vector<Client_PSK>>
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:428,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:430,1
    - Dst: size
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:430,1
    - Dst: binder
      Src: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp:431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' server_psk'
    - ' binder'
    argTypes:
    - PSK
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 423
    functionDepth: 1
    functionLinenumber: 423
    functionLinenumberEnd: 432
    functionName: Botan::TLS::PSK::validate_binder
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_extensions_psk.cpp
    functionUses: 0
    functionsReached:
    - std::get<std::vector<Client_PSK>>
    - binder
    - size
    - std::holds_alternative<std::vector<Client_PSK>>
    - std::get<Server_PSK>
    - BOTAN_STATE_CHECK
    - std::holds_alternative<Server_PSK>
    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:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 27
    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: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::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:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 31
    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:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 33
    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:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 35
    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:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 37
    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: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::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:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 41
    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:43,1
    - Dst: Botan::TLS::Internal::has_client_finished
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 43
    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_client_finished
    - Botan::TLS::Internal::has_server_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: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::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: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::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: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::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:52,1
    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::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:54,1
    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::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:56,1
    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: 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: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: 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: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::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: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::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: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::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:66,1
    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::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: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::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:87,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:88,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' opt'
    argTypes:
    - std::optional<MessageT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 91
    functionName: Botan::TLS::Internal::get
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 12
    functionsReached:
    - value
    - has_value
    - Invalid_State
    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:95,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:96,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' opt'
    argTypes:
    - std::optional<MessageT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 99
    functionName: Botan::TLS::Internal::get
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 12
    functionsReached:
    - value
    - has_value
    - Invalid_State
    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:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 27
    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: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::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:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 31
    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:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 33
    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:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 35
    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:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 37
    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: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::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:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 41
    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:43,1
    - Dst: Botan::TLS::Internal::has_client_finished
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 43
    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_client_finished
    - Botan::TLS::Internal::has_server_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: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::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: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::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: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::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:52,1
    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::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:54,1
    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::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:56,1
    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: 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: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: 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: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::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: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::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: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::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:66,1
    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::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: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::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:87,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:88,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' opt'
    argTypes:
    - std::optional<MessageT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 91
    functionName: Botan::TLS::Internal::get
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 24
    functionsReached:
    - value
    - has_value
    - Invalid_State
    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:95,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:96,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' opt'
    argTypes:
    - std::optional<MessageT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 99
    functionName: Botan::TLS::Internal::get
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 24
    functionsReached:
    - value
    - has_value
    - Invalid_State
    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:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 27
    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: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::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:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 31
    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:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 33
    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:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 35
    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:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 37
    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: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::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:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 41
    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:43,1
    - Dst: Botan::TLS::Internal::has_client_finished
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 43
    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_client_finished
    - Botan::TLS::Internal::has_server_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: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::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: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::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: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::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:52,1
    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::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:54,1
    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::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:56,1
    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: 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: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: 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: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::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: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::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: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::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:66,1
    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::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: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::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:87,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:88,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' opt'
    argTypes:
    - std::optional<MessageT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 91
    functionName: Botan::TLS::Internal::get
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 36
    functionsReached:
    - value
    - has_value
    - Invalid_State
    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:95,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:96,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' opt'
    argTypes:
    - std::optional<MessageT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 99
    functionName: Botan::TLS::Internal::get
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 36
    functionsReached:
    - value
    - has_value
    - Invalid_State
    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:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 27
    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: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::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:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 31
    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:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 33
    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:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 35
    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:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 37
    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: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::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:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 41
    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:43,1
    - Dst: Botan::TLS::Internal::has_client_finished
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 43
    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_client_finished
    - Botan::TLS::Internal::has_server_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: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::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: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::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: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::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:52,1
    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::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:54,1
    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::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:56,1
    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: 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: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: 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: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::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: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::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: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::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:66,1
    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::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: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::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:87,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:88,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:90,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' opt'
    argTypes:
    - std::optional<MessageT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 91
    functionName: Botan::TLS::Internal::get
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 48
    functionsReached:
    - value
    - has_value
    - Invalid_State
    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:95,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:96,1
    - Dst: value
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' opt'
    argTypes:
    - std::optional<MessageT>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 99
    functionName: Botan::TLS::Internal::get
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 48
    functionsReached:
    - value
    - has_value
    - Invalid_State
    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:136,1
    - Dst: std::reference_wrapper<decltype(msg)>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:142,1
    - Dst: store
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:142,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:142,1
    - Dst: is_generalizable_to<Outbound_Message_T>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:147,1
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:149,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:151,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:151,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:153,1
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:157,1
    - Dst: std::reference_wrapper<decltype(msg)>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:160,1
    - Dst: store
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:160,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:160,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:162,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:165,1
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:169,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:174,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:177,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 179
    functionName: Internal::Handshake_State_13_Base
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 0
    functionsReached:
    - std::move
    - TLS_Exception
    - sending
    - store
    - std::visit
    - Handshake_State_13
    - is_generalizable_to<Outbound_Message_T>
    - std::reference_wrapper<decltype(msg)>
    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:142,1
    - Dst: store
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:142,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - MsgT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: sending
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 15
    functionsReached:
    - store
    - std::reference_wrapper<decltype(msg)>
    - std::move
    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:147,1
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:149,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:151,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:151,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - message
    argTypes:
    - std::variant<MsgTs...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 154
    functionName: sending
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 16
    functionsReached:
    - sending
    - std::visit
    - is_generalizable_to<Outbound_Message_T>
    - std::move
    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:157,1
    - Dst: std::reference_wrapper<decltype(msg)>
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:160,1
    - Dst: store
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:160,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:160,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:162,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - message
    argTypes:
    - Handshake_Message_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 166
    functionName: received
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 30
    functionsReached:
    - std::move
    - TLS_Exception
    - std::visit
    - store
    - std::reference_wrapper<decltype(msg)>
    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:169,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:174,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h:177,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - message
    argTypes:
    - Post_Handshake_Message_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 178
    functionName: received
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_handshake_state_13.h
    functionUses: 30
    functionsReached:
    - TLS_Exception
    - std::visit
    - std::move
    linkageType: ''
    returnType: decltype(auto)
    signature: decltype(auto) received(Post_Handshake_Message_13 message)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:18,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:27,1
    - Dst: add
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:28,1
    - Dst: key_exchange_groups
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:28,1
    - Dst: Supported_Groups::Supported_Groups
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:28,1
    - Dst: record_size_limit
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:31,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:33,1
    - Dst: add
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:39,1
    - Dst: auto::value_or
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:39,1
    - Dst: Record_Size_Limit::Record_Size_Limit
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:39,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:40,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:40,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:45,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:57,1
    - Dst: request_client_certificate_authentication
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:58,1
    - Dst: add
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:59,1
    - Dst: Client_Certificate_Type::Client_Certificate_Type
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:59,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:68,1
    - Dst: add
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:69,1
    - Dst: Server_Certificate_Type::Server_Certificate_Type
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:69,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:77,1
    - Dst: add
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:78,1
    - Dst: Server_Name_Indicator::Server_Name_Indicator
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:78,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:81,1
    - Dst: tls_server_choose_app_protocol
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:82,1
    - Dst: auto*::protocols
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:82,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:83,1
    - Dst: add
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:84,1
    - Dst: Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:84,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:93,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:93,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: 94
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 94
    functionName: Botan::TLS::Encrypted_Extensions::Encrypted_Extensions
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp
    functionUses: 0
    functionsReached:
    - has
    - auto*::protocols
    - auto::empty
    - record_size_limit
    - Record_Size_Limit::Record_Size_Limit
    - tls_modify_extensions
    - key_exchange_groups
    - Client_Certificate_Type::Client_Certificate_Type
    - extensions
    - TLS_Exception
    - auto::has_value
    - add
    - request_client_certificate_authentication
    - tls_server_choose_app_protocol
    - auto::value
    - Server_Certificate_Type::Server_Certificate_Type
    - get
    - type
    - auto::value_or
    - Server_Name_Indicator::Server_Name_Indicator
    - Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
    - Supported_Groups::Supported_Groups
    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:102,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:103,1
    - Dst: deserialize
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:106,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:106,1
    - Dst: contains_implemented_extensions_other_than
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:131,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:132,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 134
    functionName: Botan::TLS::Encrypted_Extensions::Encrypted_Extensions
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - size
    - type
    - deserialize
    - contains_implemented_extensions_other_than
    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: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::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:18,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:27,1
    - Dst: add
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:28,1
    - Dst: key_exchange_groups
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:28,1
    - Dst: Supported_Groups::Supported_Groups
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:28,1
    - Dst: record_size_limit
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:31,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:33,1
    - Dst: add
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:39,1
    - Dst: auto::value_or
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:39,1
    - Dst: Record_Size_Limit::Record_Size_Limit
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:39,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:40,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:40,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:45,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:57,1
    - Dst: request_client_certificate_authentication
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:58,1
    - Dst: add
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:59,1
    - Dst: Client_Certificate_Type::Client_Certificate_Type
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:59,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:68,1
    - Dst: add
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:69,1
    - Dst: Server_Certificate_Type::Server_Certificate_Type
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:69,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:77,1
    - Dst: add
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:78,1
    - Dst: Server_Name_Indicator::Server_Name_Indicator
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:78,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:81,1
    - Dst: tls_server_choose_app_protocol
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:82,1
    - Dst: auto*::protocols
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:82,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:83,1
    - Dst: add
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:84,1
    - Dst: Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:84,1
    - Dst: tls_modify_extensions
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:93,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:93,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: 94
      start: 17
    functionDepth: 2
    functionLinenumber: 17
    functionLinenumberEnd: 94
    functionName: Botan::TLS::Encrypted_Extensions::Encrypted_Extensions
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp
    functionUses: 0
    functionsReached:
    - has
    - auto*::protocols
    - auto::empty
    - record_size_limit
    - Record_Size_Limit::Record_Size_Limit
    - tls_modify_extensions
    - key_exchange_groups
    - Client_Certificate_Type::Client_Certificate_Type
    - extensions
    - TLS_Exception
    - auto::has_value
    - add
    - request_client_certificate_authentication
    - tls_server_choose_app_protocol
    - auto::value
    - Server_Certificate_Type::Server_Certificate_Type
    - get
    - type
    - auto::value_or
    - Server_Name_Indicator::Server_Name_Indicator
    - Application_Layer_Protocol_Notification::Application_Layer_Protocol_Notification
    - Supported_Groups::Supported_Groups
    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:102,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:103,1
    - Dst: deserialize
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:106,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:106,1
    - Dst: contains_implemented_extensions_other_than
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:131,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp:132,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ' buf'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 134
    functionName: Botan::TLS::Encrypted_Extensions::Encrypted_Extensions
    functionSourceFile: /src/botan/src/lib/tls/tls13/msg_encrypted_extensions.cpp
    functionUses: 0
    functionsReached:
    - TLS_Exception
    - size
    - type
    - deserialize
    - contains_implemented_extensions_other_than
    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: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::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:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' alert'
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    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:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' alert'
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    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:34,1
    - Dst: is_user_canceled_alert
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' alert'
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 35
    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:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' alert'
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    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:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' alert'
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    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:34,1
    - Dst: is_user_canceled_alert
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' alert'
    argTypes:
    - Botan::TLS::Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 35
    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: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
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:62,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:63,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: 64
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 64
    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: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    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:69,1
    - Dst: is_downgrading
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:69,1
    - Dst: expects_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:78,1
    - Dst: preserve_peer_transcript
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:79,1
    - Dst: copy_data
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:82,1
    - Dst: next_record
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:93,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:93,1
    - Dst: std::holds_alternative<BytesNeeded>
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:95,1
    - Dst: std::get<BytesNeeded>
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:96,1
    - Dst: std::get<Record>
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:99,1
    - Dst: has_pending_data
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:103,1
    - Dst: Unexpected_Message
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:104,1
    - Dst: copy_data
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:108,1
    - Dst: is_handshake_complete
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:110,1
    - Dst: next_message
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:111,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:111,1
    - Dst: "holds_any_of<Client_Hello_12,\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:127,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:131,1
    - Dst: has_pending_data
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:132,1
    - Dst: Unexpected_Message
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:133,1
    - Dst: process_handshake_msg
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:136,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:136,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:136,1
    - Dst: is_downgrading
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:138,1
    - Dst: Botan::TLS::Channel_Impl_13::shutdown
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:145,1
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:149,1
    - Dst: disable_receiving_compat_mode
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:156,1
    - Dst: next_post_handshake_message
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:161,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:161,1
    - Dst: process_post_handshake_msg
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:162,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:162,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:162,1
    - Dst: process_dummy_change_cipher_spec
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:166,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:168,1
    - Dst: seq_no::has_value
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:168,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:169,1
    - Dst: seq_no::value
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:169,1
    - Dst: Botan::TLS::Channel_Impl_13::process_alert
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:171,1
    - Dst: Unexpected_Message
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:173,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:173,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:173,1
    - Dst: send_fatal_alert
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:178,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:178,1
    - Dst: send_fatal_alert
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:184,1
    - Dst: send_fatal_alert
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:187,1
    - Dst: send_fatal_alert
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:190,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 74
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 193
    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>
    - static_cast<size_t>
    - Unexpected_Message
    - std::holds_alternative<BytesNeeded>
    - reset
    - send_fatal_alert
    - process_dummy_change_cipher_spec
    - seq_no::has_value
    - std::get<BytesNeeded>
    - Botan::TLS::Channel_Impl_13::process_alert
    - Botan::TLS::Channel_Impl_13::shutdown
    - next_message
    - BOTAN_STATE_CHECK
    - expects_downgrade
    - has_pending_data
    - copy_data
    - seq_no::value
    - "holds_any_of<Client_Hello_12,\n                                  Client_Hello_13
      /*, EndOfEarlyData,*/,\n                                  Server_Hello_13,\n
      \                                 Hello_Retry_Request,\n                                  Finished_13>"
    - auto::value
    - get
    - disable_receiving_compat_mode
    - type
    - BOTAN_ASSERT
    - std::move
    - is_handshake_complete
    - callbacks
    - process_handshake_msg
    - next_post_handshake_message
    - std::to_string
    - preserve_peer_transcript
    - policy
    - process_post_handshake_msg
    - is_downgrading
    - next_record
    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:197,1
    - Dst: Unexpected_Message
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:198,1
    - Dst: update_read_keys
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:201,1
    - Dst: expects_reciprocation
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:211,1
    - Dst: Botan::TLS::Channel_Impl_13::opportunistically_update_traffic_keys
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:216,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' key_update'
    argTypes:
    - Key_Update
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 218
    functionName: Botan::TLS::Channel_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 0
    functionsReached:
    - expects_reciprocation
    - Botan::TLS::Channel_Impl_13::opportunistically_update_traffic_keys
    - Unexpected_Message
    - has_pending_data
    - update_read_keys
    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: 221
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 221
    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: 226
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 226
    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:230,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:230,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:230,1
    - Dst: prepare_message
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - message
    argTypes:
    - Handshake_Message_13_Ref
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 233
    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:
    - std::visit
    - callbacks
    - prepare_message
    - get
    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:237,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:237,1
    - Dst: prepare_post_handshake_message
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - message
    argTypes:
    - Post_Handshake_Message_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 240
    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:
    - std::visit
    - callbacks
    - prepare_post_handshake_message
    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:243,1
    - Dst: contains_messages
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:243,1
    - Dst: send_record
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:244,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 246
    functionName: Channel_Impl_13::AggregatedMessages::send()
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - contains_messages
    - std::exchange
    - send_record
    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:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 256
    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:259,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:260,1
    - Dst: Botan::TLS::Channel_Impl_13::update_traffic_keys
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:272,1
    - Dst: Botan::TLS::Channel_Impl_13::send_record
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:276,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:276,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:276,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 277
    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
    - Invalid_State
    - Botan::TLS::Channel_Impl_13::send_record
    - std::span<const uint8_t>::begin
    - std::span<const uint8_t>::end
    - Botan::TLS::Channel_Impl_13::update_traffic_keys
    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:280,1
    - Dst: Botan::TLS::Channel_Impl_13::send_record
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:282,1
    - Dst: serialize
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:282,1
    - Dst: is_close_notify_alert
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:292,1
    - Dst: clear_write_keys
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:295,1
    - Dst: is_error_alert
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:299,1
    - Dst: Botan::TLS::Channel_Impl_13::shutdown
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:300,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - ' alert'
    argTypes:
    - Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 302
    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
    - Botan::TLS::Channel_Impl_13::send_record
    - clear_write_keys
    - is_error_alert
    - Botan::TLS::Channel_Impl_13::shutdown
    - serialize
    - is_close_notify_alert
    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:305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 307
    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:312,1
    - Dst: is_downgrading
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:312,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:313,1
    - Dst: can_export_keys
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:313,1
    - Dst: SymmetricKey
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:314,1
    - Dst: export_key
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:314,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: 315
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 315
    functionName: Botan::TLS::Channel_Impl_13::key_material_export
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 0
    functionsReached:
    - can_export_keys
    - SymmetricKey
    - BOTAN_STATE_CHECK
    - is_downgrading
    - export_key
    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:318,1
    - Dst: is_downgrading
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:318,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:319,1
    - Dst: is_handshake_complete
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:319,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:320,1
    - Dst: Botan::TLS::Channel_Impl_13::send_post_handshake_message
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:321,1
    - Dst: Key_Update
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:321,1
    - Dst: update_write_keys
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - request_peer_update
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 317
    functionDepth: 2
    functionLinenumber: 317
    functionLinenumberEnd: 323
    functionName: Botan::TLS::Channel_Impl_13::update_traffic_keys
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 1
    functionsReached:
    - is_handshake_complete
    - Key_Update
    - BOTAN_ASSERT_NONNULL
    - update_write_keys
    - Botan::TLS::Channel_Impl_13::send_post_handshake_message
    - BOTAN_STATE_CHECK
    - is_downgrading
    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:326,1
    - Dst: is_downgrading
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:326,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:327,1
    - Dst: prepare_records
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:329,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:329,1
    - Dst: disable_sending_compat_mode
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:336,1
    - Dst: Botan::TLS::Channel_Impl_13::prepend_ccs
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:342,1
    - Dst: prepare_records
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:344,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:344,1
    - Dst: concat
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:345,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:348,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - type
    - ' record'
    argTypes:
    - Record_Type
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 349
    functionName: Botan::TLS::Channel_Impl_13::send_record
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 3
    functionsReached:
    - Botan::TLS::Channel_Impl_13::prepend_ccs
    - concat
    - callbacks
    - disable_sending_compat_mode
    - prepare_records
    - get
    - BOTAN_STATE_CHECK
    - is_downgrading
    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:354,1
    - Dst: clear_read_keys
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:357,1
    - Dst: clear_read_buffer
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:359,1
    - Dst: is_error_alert
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:369,1
    - Dst: Alert::is_fatal
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:369,1
    - Dst: expects_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:374,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:377,1
    - Dst: Alert::is_fatal
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:381,1
    - Dst: Botan::TLS::Channel_Impl_13::shutdown
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:382,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:385,1
    - Dst: is_close_notify_alert
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:388,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:388,1
    - Dst: close
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:389,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 1
    argNames:
    - ' record'
    argTypes:
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 351
    functionDepth: 2
    functionLinenumber: 351
    functionLinenumberEnd: 391
    functionName: Botan::TLS::Channel_Impl_13::process_alert
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 1
    functionsReached:
    - callbacks
    - TLS_Exception
    - is_error_alert
    - Alert::is_fatal
    - Botan::TLS::Channel_Impl_13::shutdown
    - clear_read_buffer
    - clear_read_keys
    - close
    - expects_downgrade
    - is_close_notify_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:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 400
    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:419,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:419,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: 420
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 420
    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:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - outgoing_limit
    - incoming_limit
    argTypes:
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 424
    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:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cert_type
    argTypes:
    - Certificate_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 428
    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: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
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:62,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:63,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: 64
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 64
    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: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    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:69,1
    - Dst: is_downgrading
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:69,1
    - Dst: expects_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:78,1
    - Dst: preserve_peer_transcript
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:79,1
    - Dst: copy_data
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:82,1
    - Dst: next_record
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:93,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:93,1
    - Dst: std::holds_alternative<BytesNeeded>
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:95,1
    - Dst: std::get<BytesNeeded>
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:96,1
    - Dst: std::get<Record>
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:99,1
    - Dst: has_pending_data
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:103,1
    - Dst: Unexpected_Message
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:104,1
    - Dst: copy_data
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:108,1
    - Dst: is_handshake_complete
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:110,1
    - Dst: next_message
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:111,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:111,1
    - Dst: "holds_any_of<Client_Hello_12,\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:127,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:131,1
    - Dst: has_pending_data
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:132,1
    - Dst: Unexpected_Message
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:133,1
    - Dst: process_handshake_msg
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:136,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:136,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:136,1
    - Dst: is_downgrading
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:138,1
    - Dst: Botan::TLS::Channel_Impl_13::shutdown
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:145,1
    - Dst: reset
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:149,1
    - Dst: disable_receiving_compat_mode
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:156,1
    - Dst: next_post_handshake_message
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:161,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:161,1
    - Dst: process_post_handshake_msg
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:162,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:162,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:162,1
    - Dst: process_dummy_change_cipher_spec
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:166,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:168,1
    - Dst: seq_no::has_value
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:168,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:169,1
    - Dst: seq_no::value
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:169,1
    - Dst: Botan::TLS::Channel_Impl_13::process_alert
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:171,1
    - Dst: Unexpected_Message
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:173,1
    - Dst: std::to_string
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:173,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:173,1
    - Dst: send_fatal_alert
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:178,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:178,1
    - Dst: send_fatal_alert
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:184,1
    - Dst: send_fatal_alert
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:187,1
    - Dst: send_fatal_alert
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:190,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 74
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 68
    functionDepth: 3
    functionLinenumber: 68
    functionLinenumberEnd: 193
    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>
    - static_cast<size_t>
    - Unexpected_Message
    - std::holds_alternative<BytesNeeded>
    - reset
    - send_fatal_alert
    - process_dummy_change_cipher_spec
    - seq_no::has_value
    - std::get<BytesNeeded>
    - Botan::TLS::Channel_Impl_13::process_alert
    - Botan::TLS::Channel_Impl_13::shutdown
    - next_message
    - BOTAN_STATE_CHECK
    - expects_downgrade
    - has_pending_data
    - copy_data
    - seq_no::value
    - "holds_any_of<Client_Hello_12,\n                                  Client_Hello_13
      /*, EndOfEarlyData,*/,\n                                  Server_Hello_13,\n
      \                                 Hello_Retry_Request,\n                                  Finished_13>"
    - auto::value
    - get
    - disable_receiving_compat_mode
    - type
    - BOTAN_ASSERT
    - std::move
    - is_handshake_complete
    - callbacks
    - process_handshake_msg
    - next_post_handshake_message
    - std::to_string
    - preserve_peer_transcript
    - policy
    - process_post_handshake_msg
    - is_downgrading
    - next_record
    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:197,1
    - Dst: Unexpected_Message
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:198,1
    - Dst: update_read_keys
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:201,1
    - Dst: expects_reciprocation
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:211,1
    - Dst: Botan::TLS::Channel_Impl_13::opportunistically_update_traffic_keys
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:216,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' key_update'
    argTypes:
    - Key_Update
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 218
    functionName: Botan::TLS::Channel_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 0
    functionsReached:
    - expects_reciprocation
    - Botan::TLS::Channel_Impl_13::opportunistically_update_traffic_keys
    - Unexpected_Message
    - has_pending_data
    - update_read_keys
    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: 221
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 221
    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: 226
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 226
    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:230,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:230,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:230,1
    - Dst: prepare_message
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - message
    argTypes:
    - Handshake_Message_13_Ref
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 233
    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:
    - std::visit
    - callbacks
    - prepare_message
    - get
    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:237,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:237,1
    - Dst: prepare_post_handshake_message
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - message
    argTypes:
    - Post_Handshake_Message_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 240
    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:
    - std::visit
    - callbacks
    - prepare_post_handshake_message
    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:243,1
    - Dst: contains_messages
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:243,1
    - Dst: send_record
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:244,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 246
    functionName: Channel_Impl_13::AggregatedMessages::send()
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - contains_messages
    - std::exchange
    - send_record
    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:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 256
    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:259,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:260,1
    - Dst: Botan::TLS::Channel_Impl_13::update_traffic_keys
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:272,1
    - Dst: Botan::TLS::Channel_Impl_13::send_record
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:276,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:276,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:276,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 258
    functionDepth: 3
    functionLinenumber: 258
    functionLinenumberEnd: 277
    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
    - Invalid_State
    - Botan::TLS::Channel_Impl_13::send_record
    - std::span<const uint8_t>::begin
    - std::span<const uint8_t>::end
    - Botan::TLS::Channel_Impl_13::update_traffic_keys
    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:280,1
    - Dst: Botan::TLS::Channel_Impl_13::send_record
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:282,1
    - Dst: serialize
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:282,1
    - Dst: is_close_notify_alert
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:292,1
    - Dst: clear_write_keys
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:295,1
    - Dst: is_error_alert
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:299,1
    - Dst: Botan::TLS::Channel_Impl_13::shutdown
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:300,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - ' alert'
    argTypes:
    - Alert
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 302
    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
    - Botan::TLS::Channel_Impl_13::send_record
    - clear_write_keys
    - is_error_alert
    - Botan::TLS::Channel_Impl_13::shutdown
    - serialize
    - is_close_notify_alert
    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:305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 304
    functionDepth: 0
    functionLinenumber: 304
    functionLinenumberEnd: 307
    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:312,1
    - Dst: is_downgrading
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:312,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:313,1
    - Dst: can_export_keys
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:313,1
    - Dst: SymmetricKey
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:314,1
    - Dst: export_key
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:314,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: 315
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 315
    functionName: Botan::TLS::Channel_Impl_13::key_material_export
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 0
    functionsReached:
    - can_export_keys
    - SymmetricKey
    - BOTAN_STATE_CHECK
    - is_downgrading
    - export_key
    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:318,1
    - Dst: is_downgrading
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:318,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:319,1
    - Dst: is_handshake_complete
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:319,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:320,1
    - Dst: Botan::TLS::Channel_Impl_13::send_post_handshake_message
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:321,1
    - Dst: Key_Update
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:321,1
    - Dst: update_write_keys
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - request_peer_update
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 317
    functionDepth: 2
    functionLinenumber: 317
    functionLinenumberEnd: 323
    functionName: Botan::TLS::Channel_Impl_13::update_traffic_keys
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 2
    functionsReached:
    - is_handshake_complete
    - Key_Update
    - BOTAN_ASSERT_NONNULL
    - update_write_keys
    - Botan::TLS::Channel_Impl_13::send_post_handshake_message
    - BOTAN_STATE_CHECK
    - is_downgrading
    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:326,1
    - Dst: is_downgrading
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:326,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:327,1
    - Dst: prepare_records
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:329,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:329,1
    - Dst: disable_sending_compat_mode
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:336,1
    - Dst: Botan::TLS::Channel_Impl_13::prepend_ccs
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:342,1
    - Dst: prepare_records
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:344,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:344,1
    - Dst: concat
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:345,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:348,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - type
    - ' record'
    argTypes:
    - Record_Type
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 349
    functionName: Botan::TLS::Channel_Impl_13::send_record
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 6
    functionsReached:
    - Botan::TLS::Channel_Impl_13::prepend_ccs
    - concat
    - callbacks
    - disable_sending_compat_mode
    - prepare_records
    - get
    - BOTAN_STATE_CHECK
    - is_downgrading
    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:354,1
    - Dst: clear_read_keys
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:357,1
    - Dst: clear_read_buffer
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:359,1
    - Dst: is_error_alert
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:369,1
    - Dst: Alert::is_fatal
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:369,1
    - Dst: expects_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:374,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:377,1
    - Dst: Alert::is_fatal
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:381,1
    - Dst: Botan::TLS::Channel_Impl_13::shutdown
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:382,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:385,1
    - Dst: is_close_notify_alert
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:388,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:388,1
    - Dst: close
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:389,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 1
    argNames:
    - ' record'
    argTypes:
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 351
    functionDepth: 2
    functionLinenumber: 351
    functionLinenumberEnd: 391
    functionName: Botan::TLS::Channel_Impl_13::process_alert
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp
    functionUses: 2
    functionsReached:
    - callbacks
    - TLS_Exception
    - is_error_alert
    - Alert::is_fatal
    - Botan::TLS::Channel_Impl_13::shutdown
    - clear_read_buffer
    - clear_read_keys
    - close
    - expects_downgrade
    - is_close_notify_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:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 400
    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:419,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_channel_impl_13.cpp:419,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: 420
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 420
    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:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - outgoing_limit
    - incoming_limit
    argTypes:
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 424
    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:427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cert_type
    argTypes:
    - Certificate_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 428
    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:70,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.h:206,1
    - Dst: Botan::TLS::Cipher_State
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.h:271,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 348
    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: 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(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: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    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:206,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 207
    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:70,1
    - Dst: Botan::TLS::empty
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.h:206,1
    - Dst: Botan::TLS::Cipher_State
      Src: /src/botan/src/lib/tls/tls13/tls_cipher_state.h:271,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 348
    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: 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(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: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    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:206,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 207
    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:26,1
    - Dst: expect_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:27,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:31,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: 32
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 32
    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:35,1
    - Dst: encrypted_extensions
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:36,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:37,1
    - Dst: auto*::single_protocol
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 43
    functionName: Botan::TLS::Server_Impl_13::application_protocol
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 0
    functionsReached:
    - auto*::single_protocol
    - Botan::TLS::Server_Impl_13::is_handshake_complete
    - get
    - encrypted_extensions
    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:46,1
    - Dst: client_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:47,1
    - Dst: client_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:48,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:51,1
    - Dst: peer_certs
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 56
    functionName: Botan::TLS::Server_Impl_13::peer_cert_chain
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 0
    functionsReached:
    - has_value
    - peer_certs
    - client_certificate
    - 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:59,1
    - Dst: client_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:59,1
    - Dst: client_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:60,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:63,1
    - Dst: Botan::TLS::Server_Impl_13::peer_raw_public_key
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 68
    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:
    - has_value
    - Botan::TLS::Server_Impl_13::peer_raw_public_key
    - client_certificate
    - 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: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    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:85,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:85,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:86,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 88
    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
    - client_hello
    - value_exists
    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:91,1
    - Dst: Botan::TLS::Server_Impl_13::is_handshake_complete
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:91,1
    - Dst: aggregate_post_handshake_messages
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:97,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:101,1
    - Dst: psk
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:102,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:104,1
    - Dst: Botan::TLS::Server_Impl_13::peer_cert_chain
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:105,1
    - Dst: Botan::TLS::Server_Impl_13::peer_raw_public_key
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:106,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:107,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:108,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:109,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:110,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:112,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:113,1
    - Dst: auto::add
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:114,1
    - Dst: New_Session_Ticket_13
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:114,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:114,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:114,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:114,1
    - Dst: auto::contains_messages
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:120,1
    - Dst: auto::send
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:121,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - tickets
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 125
    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:
    - auto::contains_messages
    - server_hello
    - psk
    - rng
    - BOTAN_STATE_CHECK
    - auto::send
    - auto::value
    - aggregate_post_handshake_messages
    - session_manager
    - auto::add
    - std::move
    - callbacks
    - New_Session_Ticket_13
    - Botan::TLS::Server_Impl_13::is_handshake_complete
    - next_ticket_nonce
    - policy
    - client_hello
    - Botan::TLS::Server_Impl_13::peer_raw_public_key
    - Botan::TLS::Server_Impl_13::peer_cert_chain
    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:128,1
    - Dst: confirm_transition_to
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:131,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:131,1
    - Dst: callbacks
      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: Botan::TLS::Server_Impl_13::handle
      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: received
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:139,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - message
    argTypes:
    - Handshake_Message_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 140
    functionName: Botan::TLS::Server_Impl_13::process_handshake_msg
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 0
    functionsReached:
    - confirm_transition_to
    - std::move
    - callbacks
    - Botan::TLS::Server_Impl_13::handle
    - std::visit
    - get
    - received
    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:143,1
    - Dst: Botan::TLS::Server_Impl_13::is_handshake_complete
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:143,1
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:145,1
    - Dst: Botan::TLS::Server_Impl_13::handle
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:145,1
    - Dst: received
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:145,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - message
    argTypes:
    - Post_Handshake_Message_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 146
    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:
    - std::move
    - Botan::TLS::Server_Impl_13::handle
    - Botan::TLS::Server_Impl_13::is_handshake_complete
    - std::visit
    - received
    - 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:153,1
    - Dst: has_client_finished
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:153,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:154,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 164
    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:
    - TLS_Exception
    - has_client_hello
    - 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: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::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:171,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:172,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:172,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: 174
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 174
    functionName: Botan::TLS::Server_Impl_13::maybe_log_secret
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 0
    functionsReached:
    - policy
    - callbacks
    - client_hello
    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:177,1
    - Dst: expects_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:177,1
    - Dst: request_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:179,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 184
    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
    - expects_downgrade
    - request_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:187,1
    - Dst: has_client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:187,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:188,1
    - Dst: has_hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:188,1
    - Dst: has_server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:188,1
    - Dst: has_hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:211,1
    - Dst: has_server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:211,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:212,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:215,1
    - Dst: send_dummy_change_cipher_spec
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:216,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 218
    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:
    - BOTAN_ASSERT_NOMSG
    - send_dummy_change_cipher_spec
    - has_hello_retry_request
    - client_hello
    - policy
    - has_server_hello
    - has_client_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:221,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:222,1
    - Dst: Server_Hello_13::extensions
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:224,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:226,1
    - Dst: Server_Hello_13::ciphersuite
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:226,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:227,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:227,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:228,1
    - Dst: set_algorithm
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:229,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:229,1
    - Dst: Server_Hello_13::extensions
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:233,1
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:236,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:237,1
    - Dst: Botan::TLS::Cipher_State::init_with_psk
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:238,1
    - Dst: extract_master_secret
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:240,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:241,1
    - Dst: identity
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:244,1
    - Dst: Botan::TLS::Cipher_State::init_with_psk
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:245,1
    - Dst: extract_master_secret
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:247,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:248,1
    - Dst: auto*::take_session_to_resume_or_psk
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:250,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:263,1
    - Dst: std::unique_ptr::psk_binder_mac
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:264,1
    - Dst: truncated
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:264,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:265,1
    - Dst: send_handshake_message
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:285,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:285,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:285,1
    - Dst: Botan::TLS::Server_Impl_13::maybe_handle_compatibility_mode
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:286,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:291,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:292,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:295,1
    - Dst: std::unique_ptr::advance_with_client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:296,1
    - Dst: previous
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:296,1
    - Dst: std::unique_ptr::advance_with_server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:297,1
    - Dst: auto*::take_shared_secret
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:298,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:298,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:300,1
    - Dst: Botan::TLS::Cipher_State::init_with_server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:302,1
    - Dst: auto*::take_shared_secret
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:303,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:303,1
    - Dst: aggregate_handshake_messages
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:307,1
    - Dst: auto::add
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:308,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:308,1
    - Dst: Encrypted_Extensions
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:308,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:308,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:308,1
    - Dst: Botan::TLS::Certificate_Request_13::maybe_create
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:316,1
    - Dst: credentials_manager
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:316,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:316,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:316,1
    - Dst: auto::add
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:317,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:317,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:317,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:317,1
    - Dst: encrypted_extensions
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:320,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:329,1
    - Dst: set_selected_certificate_type
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:330,1
    - Dst: auto*::selected_certificate_type
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:330,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:339,1
    - Dst: auto*::selected_certificate_type
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:340,1
    - Dst: auto::add
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:346,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:346,1
    - Dst: Certificate_13
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:346,1
    - Dst: credentials_manager
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:346,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:346,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:347,1
    - Dst: Certificate_Verify_13
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:347,1
    - Dst: server_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:347,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:348,1
    - Dst: sni_hostname
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:349,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:350,1
    - Dst: credentials_manager
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:352,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:353,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:354,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:355,1
    - Dst: auto::add
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:358,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:358,1
    - Dst: Finished_13
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:358,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:358,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:358,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:360,1
    - Dst: encrypted_extensions
      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:377,1
    - Dst: encrypted_extensions
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:378,1
    - Dst: set_record_size_limits
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:379,1
    - Dst: auto*::limit
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:379,1
    - Dst: auto*::limit
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:379,1
    - Dst: auto::send
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:382,1
    - Dst: advance_with_server_finished
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:384,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:384,1
    - Dst: has_certificate_request
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:386,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:393,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:395,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 55
    argCount: 1
    argNames:
    - server_hello
    argTypes:
    - Server_Hello_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 220
    functionDepth: 3
    functionLinenumber: 220
    functionLinenumberEnd: 397
    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_ASSERT_NOMSG
    - set_record_size_limits
    - Finished_13
    - prf_algo
    - BOTAN_ASSERT_NONNULL
    - auto*::limit
    - server_hello
    - extract_master_secret
    - set_algorithm
    - std::unique_ptr::advance_with_server_hello
    - set_expected_next
    - rng
    - extensions
    - send_handshake_message
    - TLS_Exception
    - auto::has_value
    - sending
    - signature_schemes
    - aggregate_handshake_messages
    - auto*::selected_certificate_type
    - Botan::TLS::Ciphersuite::by_id
    - truncated
    - std::visit
    - Botan::TLS::Certificate_Request_13::maybe_create
    - Server_Hello_13::ciphersuite
    - auto::send
    - std::unique_ptr::psk_binder_mac
    - advance_with_server_finished
    - current
    - Encrypted_Extensions
    - encrypted_extensions
    - server_certificate
    - credentials_manager
    - previous
    - set_selected_certificate_type
    - auto::value
    - get
    - sni_hostname
    - Certificate_Verify_13
    - Botan::TLS::Server_Impl_13::maybe_handle_compatibility_mode
    - auto::add
    - std::unique_ptr::advance_with_client_hello
    - std::move
    - callbacks
    - Server_Hello_13::extensions
    - Botan::TLS::Cipher_State::init_with_server_hello
    - has_certificate_request
    - Botan::TLS::Cipher_State::init_with_psk
    - identity
    - client_hello
    - policy
    - Certificate_13
    - auto*::take_session_to_resume_or_psk
    - auto*::take_shared_secret
    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:400,1
    - Dst: Hello_Retry_Request::ciphersuite
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:400,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:401,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:401,1
    - Dst: send_handshake_message
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:403,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:403,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:403,1
    - Dst: Botan::TLS::Server_Impl_13::maybe_handle_compatibility_mode
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:404,1
    - Dst: Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:406,1
    - Dst: auto::prf_algo
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:406,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - hello_retry_request
    argTypes:
    - Hello_Retry_Request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 399
    functionDepth: 3
    functionLinenumber: 399
    functionLinenumberEnd: 409
    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_ASSERT_NOMSG
    - std::move
    - send_handshake_message
    - set_expected_next
    - auto::has_value
    - sending
    - Botan::TLS::Ciphersuite::by_id
    - Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
    - Hello_Retry_Request::ciphersuite
    - Botan::TLS::Server_Impl_13::maybe_handle_compatibility_mode
    - auto::prf_algo
    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:414,1
    - Dst: has_hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:417,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:418,1
    - Dst: expects_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:427,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:428,1
    - Dst: Botan::TLS::Server_Impl_13::downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:431,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - ' ch'
    argTypes:
    - Client_Hello_12
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 411
    functionDepth: 2
    functionLinenumber: 411
    functionLinenumberEnd: 432
    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
    - TLS_Exception
    - has_hello_retry_request
    - BOTAN_UNUSED
    - expects_downgrade
    linkageType: ''
    returnType: void
    signature: void Server_Impl_13::handle(const Client_Hello_12& ch)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:435,1
    - Dst: has_hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:437,1
    - Dst: highest_supported_version
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:440,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:440,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:442,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:448,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:449,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:455,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:456,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:464,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:464,1
    - Dst: hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:467,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:468,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:469,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:470,1
    - Dst: auto::at
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:470,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:471,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:475,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:475,1
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:476,1
    - Dst: Botan::TLS::Server_Impl_13::handle_reply_to_client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:476,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:476,1
    - Dst: Botan::TLS::Server_Hello_13::create
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:477,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:479,1
    - Dst: credentials_manager
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:480,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:481,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:482,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:483,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 1
    argNames:
    - ' client_hello'
    argTypes:
    - Client_Hello_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 434
    functionDepth: 4
    functionLinenumber: 434
    functionLinenumberEnd: 484
    functionName: Botan::TLS::Server_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 2
    functionsReached:
    - has
    - BOTAN_ASSERT_NOMSG
    - auto::size
    - rng
    - extensions
    - auto::at
    - TLS_Exception
    - Botan::TLS::Server_Impl_13::handle_reply_to_client_hello
    - std::visit
    - credentials_manager
    - has_hello_retry_request
    - get
    - type
    - Botan::TLS::Server_Hello_13::create
    - session_manager
    - Not_Implemented
    - highest_supported_version
    - std::move
    - callbacks
    - hello_retry_request
    - policy
    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:490,1
    - Dst: request_context
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:490,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:491,1
    - Dst: validate_extensions
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:497,1
    - Dst: certificate_request
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:497,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:498,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:505,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:506,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:507,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:513,1
    - Dst: verify
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:524,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:524,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:525,1
    - Dst: credentials_manager
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:526,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:527,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:528,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:535,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - ' certificate_msg'
    argTypes:
    - Certificate_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 486
    functionDepth: 1
    functionLinenumber: 486
    functionLinenumberEnd: 537
    functionName: Botan::TLS::Server_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 2
    functionsReached:
    - validate_extensions
    - callbacks
    - TLS_Exception
    - Botan::TLS::Server_Impl_13::is_handshake_complete
    - credentials_manager
    - request_context
    - empty
    - policy
    - client_hello
    - certificate_request
    - verify
    - set_expected_next
    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:545,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:546,1
    - Dst: signature_scheme
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:546,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:547,1
    - Dst: signature_scheme
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:548,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:552,1
    - Dst: has_client_certificate_msg
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:552,1
    - Dst: client_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:553,1
    - Dst: verify
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:554,1
    - Dst: client_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:555,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:555,1
    - Dst: previous
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:555,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:561,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:564,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - ' certificate_verify_msg'
    argTypes:
    - Certificate_Verify_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 565
    functionName: Botan::TLS::Server_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - callbacks
    - TLS_Exception
    - set_expected_next
    - previous
    - client_certificate
    - has_client_certificate_msg
    - verify
    - certificate_request
    - signature_scheme
    - value_exists
    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:572,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:572,1
    - Dst: previous
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:572,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:573,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:578,1
    - Dst: Session_Summary
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:579,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:579,1
    - Dst: Botan::TLS::Server_Impl_13::peer_cert_chain
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:581,1
    - Dst: Botan::TLS::Server_Impl_13::peer_raw_public_key
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:582,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:584,1
    - Dst: Server_Information
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:585,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:585,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:586,1
    - Dst: advance_with_client_finished
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:588,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:588,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:591,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:593,1
    - Dst: Botan::TLS::Server_Impl_13::new_session_ticket_supported
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:595,1
    - Dst: Botan::TLS::Server_Impl_13::send_new_session_tickets
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:596,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:596,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' finished_msg'
    argTypes:
    - Finished_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 567
    functionDepth: 3
    functionLinenumber: 567
    functionLinenumberEnd: 598
    functionName: Botan::TLS::Server_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 2
    functionsReached:
    - callbacks
    - Session_Summary
    - current
    - Botan::TLS::Server_Impl_13::new_session_ticket_supported
    - TLS_Exception
    - Server_Information
    - Botan::TLS::Server_Impl_13::send_new_session_tickets
    - server_hello
    - client_hello
    - policy
    - Botan::TLS::Server_Impl_13::peer_raw_public_key
    - advance_with_client_finished
    - get
    - verify
    - has_value
    - Botan::TLS::Server_Impl_13::peer_cert_chain
    - previous
    - set_expected_next
    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:26,1
    - Dst: expect_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:27,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:31,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: 32
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 32
    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:35,1
    - Dst: encrypted_extensions
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:36,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:37,1
    - Dst: auto*::single_protocol
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 43
    functionName: Botan::TLS::Server_Impl_13::application_protocol
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 0
    functionsReached:
    - auto*::single_protocol
    - Botan::TLS::Server_Impl_13::is_handshake_complete
    - get
    - encrypted_extensions
    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:46,1
    - Dst: client_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:47,1
    - Dst: client_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:48,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:51,1
    - Dst: peer_certs
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 56
    functionName: Botan::TLS::Server_Impl_13::peer_cert_chain
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 2
    functionsReached:
    - has_value
    - peer_certs
    - client_certificate
    - 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:59,1
    - Dst: client_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:59,1
    - Dst: client_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:60,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:63,1
    - Dst: Botan::TLS::Server_Impl_13::peer_raw_public_key
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 68
    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:
    - has_value
    - Botan::TLS::Server_Impl_13::peer_raw_public_key
    - client_certificate
    - 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: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    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:85,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:85,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:86,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 88
    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
    - client_hello
    - value_exists
    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:91,1
    - Dst: Botan::TLS::Server_Impl_13::is_handshake_complete
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:91,1
    - Dst: aggregate_post_handshake_messages
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:97,1
    - Dst: next_ticket_nonce
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:101,1
    - Dst: psk
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:102,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:104,1
    - Dst: Botan::TLS::Server_Impl_13::peer_cert_chain
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:105,1
    - Dst: Botan::TLS::Server_Impl_13::peer_raw_public_key
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:106,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:107,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:108,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:109,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:110,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:112,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:113,1
    - Dst: auto::add
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:114,1
    - Dst: New_Session_Ticket_13
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:114,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:114,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:114,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:114,1
    - Dst: auto::contains_messages
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:120,1
    - Dst: auto::send
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:121,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - tickets
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 125
    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:
    - auto::contains_messages
    - server_hello
    - psk
    - rng
    - BOTAN_STATE_CHECK
    - auto::send
    - auto::value
    - aggregate_post_handshake_messages
    - session_manager
    - auto::add
    - std::move
    - callbacks
    - New_Session_Ticket_13
    - Botan::TLS::Server_Impl_13::is_handshake_complete
    - next_ticket_nonce
    - policy
    - client_hello
    - Botan::TLS::Server_Impl_13::peer_raw_public_key
    - Botan::TLS::Server_Impl_13::peer_cert_chain
    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:128,1
    - Dst: confirm_transition_to
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:131,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:131,1
    - Dst: callbacks
      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: Botan::TLS::Server_Impl_13::handle
      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: received
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:139,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - message
    argTypes:
    - Handshake_Message_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 140
    functionName: Botan::TLS::Server_Impl_13::process_handshake_msg
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 0
    functionsReached:
    - confirm_transition_to
    - std::move
    - callbacks
    - Botan::TLS::Server_Impl_13::handle
    - std::visit
    - get
    - received
    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:143,1
    - Dst: Botan::TLS::Server_Impl_13::is_handshake_complete
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:143,1
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:145,1
    - Dst: Botan::TLS::Server_Impl_13::handle
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:145,1
    - Dst: received
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:145,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - message
    argTypes:
    - Post_Handshake_Message_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 146
    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:
    - std::move
    - Botan::TLS::Server_Impl_13::handle
    - Botan::TLS::Server_Impl_13::is_handshake_complete
    - std::visit
    - received
    - 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:153,1
    - Dst: has_client_finished
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:153,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:154,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 164
    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:
    - TLS_Exception
    - has_client_hello
    - 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: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::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:171,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:172,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:172,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: 174
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 174
    functionName: Botan::TLS::Server_Impl_13::maybe_log_secret
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 0
    functionsReached:
    - policy
    - callbacks
    - client_hello
    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:177,1
    - Dst: expects_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:177,1
    - Dst: request_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:179,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 184
    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
    - expects_downgrade
    - request_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:187,1
    - Dst: has_client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:187,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:188,1
    - Dst: has_hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:188,1
    - Dst: has_server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:188,1
    - Dst: has_hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:211,1
    - Dst: has_server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:211,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:212,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:215,1
    - Dst: send_dummy_change_cipher_spec
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:216,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 218
    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:
    - BOTAN_ASSERT_NOMSG
    - send_dummy_change_cipher_spec
    - has_hello_retry_request
    - client_hello
    - policy
    - has_server_hello
    - has_client_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:221,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:222,1
    - Dst: Server_Hello_13::extensions
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:224,1
    - Dst: Botan::TLS::Ciphersuite::by_id
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:226,1
    - Dst: Server_Hello_13::ciphersuite
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:226,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:227,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:227,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:228,1
    - Dst: set_algorithm
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:229,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:229,1
    - Dst: Server_Hello_13::extensions
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:233,1
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:236,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:237,1
    - Dst: Botan::TLS::Cipher_State::init_with_psk
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:238,1
    - Dst: extract_master_secret
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:240,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:241,1
    - Dst: identity
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:244,1
    - Dst: Botan::TLS::Cipher_State::init_with_psk
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:245,1
    - Dst: extract_master_secret
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:247,1
    - Dst: prf_algo
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:248,1
    - Dst: auto*::take_session_to_resume_or_psk
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:250,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:263,1
    - Dst: std::unique_ptr::psk_binder_mac
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:264,1
    - Dst: truncated
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:264,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:265,1
    - Dst: send_handshake_message
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:285,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:285,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:285,1
    - Dst: Botan::TLS::Server_Impl_13::maybe_handle_compatibility_mode
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:286,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:291,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:292,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:295,1
    - Dst: std::unique_ptr::advance_with_client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:296,1
    - Dst: previous
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:296,1
    - Dst: std::unique_ptr::advance_with_server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:297,1
    - Dst: auto*::take_shared_secret
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:298,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:298,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:300,1
    - Dst: Botan::TLS::Cipher_State::init_with_server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:302,1
    - Dst: auto*::take_shared_secret
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:303,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:303,1
    - Dst: aggregate_handshake_messages
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:307,1
    - Dst: auto::add
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:308,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:308,1
    - Dst: Encrypted_Extensions
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:308,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:308,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:308,1
    - Dst: Botan::TLS::Certificate_Request_13::maybe_create
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:316,1
    - Dst: credentials_manager
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:316,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:316,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:316,1
    - Dst: auto::add
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:317,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:317,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:317,1
    - Dst: auto::value
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:317,1
    - Dst: encrypted_extensions
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:320,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:329,1
    - Dst: set_selected_certificate_type
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:330,1
    - Dst: auto*::selected_certificate_type
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:330,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:339,1
    - Dst: auto*::selected_certificate_type
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:340,1
    - Dst: auto::add
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:346,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:346,1
    - Dst: Certificate_13
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:346,1
    - Dst: credentials_manager
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:346,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:346,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:347,1
    - Dst: Certificate_Verify_13
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:347,1
    - Dst: server_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:347,1
    - Dst: signature_schemes
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:348,1
    - Dst: sni_hostname
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:349,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:350,1
    - Dst: credentials_manager
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:352,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:353,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:354,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:355,1
    - Dst: auto::add
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:358,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:358,1
    - Dst: Finished_13
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:358,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:358,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:358,1
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:360,1
    - Dst: encrypted_extensions
      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:377,1
    - Dst: encrypted_extensions
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:378,1
    - Dst: set_record_size_limits
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:379,1
    - Dst: auto*::limit
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:379,1
    - Dst: auto*::limit
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:379,1
    - Dst: auto::send
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:382,1
    - Dst: advance_with_server_finished
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:384,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:384,1
    - Dst: has_certificate_request
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:386,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:393,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:395,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 55
    argCount: 1
    argNames:
    - server_hello
    argTypes:
    - Server_Hello_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 220
    functionDepth: 3
    functionLinenumber: 220
    functionLinenumberEnd: 397
    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_ASSERT_NOMSG
    - set_record_size_limits
    - Finished_13
    - prf_algo
    - BOTAN_ASSERT_NONNULL
    - auto*::limit
    - server_hello
    - extract_master_secret
    - set_algorithm
    - std::unique_ptr::advance_with_server_hello
    - set_expected_next
    - rng
    - extensions
    - send_handshake_message
    - TLS_Exception
    - auto::has_value
    - sending
    - signature_schemes
    - aggregate_handshake_messages
    - auto*::selected_certificate_type
    - Botan::TLS::Ciphersuite::by_id
    - truncated
    - std::visit
    - Botan::TLS::Certificate_Request_13::maybe_create
    - Server_Hello_13::ciphersuite
    - auto::send
    - std::unique_ptr::psk_binder_mac
    - advance_with_server_finished
    - current
    - Encrypted_Extensions
    - encrypted_extensions
    - server_certificate
    - credentials_manager
    - previous
    - set_selected_certificate_type
    - auto::value
    - get
    - sni_hostname
    - Certificate_Verify_13
    - Botan::TLS::Server_Impl_13::maybe_handle_compatibility_mode
    - auto::add
    - std::unique_ptr::advance_with_client_hello
    - std::move
    - callbacks
    - Server_Hello_13::extensions
    - Botan::TLS::Cipher_State::init_with_server_hello
    - has_certificate_request
    - Botan::TLS::Cipher_State::init_with_psk
    - identity
    - client_hello
    - policy
    - Certificate_13
    - auto*::take_session_to_resume_or_psk
    - auto*::take_shared_secret
    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:400,1
    - Dst: Hello_Retry_Request::ciphersuite
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:400,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:401,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:401,1
    - Dst: send_handshake_message
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:403,1
    - Dst: sending
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:403,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:403,1
    - Dst: Botan::TLS::Server_Impl_13::maybe_handle_compatibility_mode
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:404,1
    - Dst: Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:406,1
    - Dst: auto::prf_algo
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:406,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - hello_retry_request
    argTypes:
    - Hello_Retry_Request
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 399
    functionDepth: 3
    functionLinenumber: 399
    functionLinenumberEnd: 409
    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_ASSERT_NOMSG
    - std::move
    - send_handshake_message
    - set_expected_next
    - auto::has_value
    - sending
    - Botan::TLS::Ciphersuite::by_id
    - Botan::TLS::Transcript_Hash_State::recreate_after_hello_retry_request
    - Hello_Retry_Request::ciphersuite
    - Botan::TLS::Server_Impl_13::maybe_handle_compatibility_mode
    - auto::prf_algo
    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:414,1
    - Dst: has_hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:417,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:418,1
    - Dst: expects_downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:427,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:428,1
    - Dst: Botan::TLS::Server_Impl_13::downgrade
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:431,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - ' ch'
    argTypes:
    - Client_Hello_12
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 432
      start: 411
    functionDepth: 2
    functionLinenumber: 411
    functionLinenumberEnd: 432
    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
    - TLS_Exception
    - has_hello_retry_request
    - BOTAN_UNUSED
    - expects_downgrade
    linkageType: ''
    returnType: void
    signature: void Server_Impl_13::handle(const Client_Hello_12& ch)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: extensions
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:435,1
    - Dst: has_hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:437,1
    - Dst: highest_supported_version
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:440,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:440,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:442,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:448,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:449,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:455,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:456,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:464,1
    - Dst: has
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:464,1
    - Dst: hello_retry_request
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:467,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:468,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:469,1
    - Dst: auto::size
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:470,1
    - Dst: auto::at
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:470,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:471,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:475,1
    - Dst: type
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:475,1
    - Dst: std::visit
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:476,1
    - Dst: Botan::TLS::Server_Impl_13::handle_reply_to_client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:476,1
    - Dst: std::move
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:476,1
    - Dst: Botan::TLS::Server_Hello_13::create
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:477,1
    - Dst: session_manager
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:479,1
    - Dst: credentials_manager
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:480,1
    - Dst: rng
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:481,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:482,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:483,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 1
    argNames:
    - ' client_hello'
    argTypes:
    - Client_Hello_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 434
    functionDepth: 4
    functionLinenumber: 434
    functionLinenumberEnd: 484
    functionName: Botan::TLS::Server_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 4
    functionsReached:
    - has
    - BOTAN_ASSERT_NOMSG
    - auto::size
    - rng
    - extensions
    - auto::at
    - TLS_Exception
    - Botan::TLS::Server_Impl_13::handle_reply_to_client_hello
    - std::visit
    - credentials_manager
    - has_hello_retry_request
    - get
    - type
    - Botan::TLS::Server_Hello_13::create
    - session_manager
    - Not_Implemented
    - highest_supported_version
    - std::move
    - callbacks
    - hello_retry_request
    - policy
    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:490,1
    - Dst: request_context
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:490,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:491,1
    - Dst: validate_extensions
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:497,1
    - Dst: certificate_request
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:497,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:498,1
    - Dst: empty
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:505,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:506,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:507,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:513,1
    - Dst: verify
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:524,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:524,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:525,1
    - Dst: credentials_manager
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:526,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:527,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:528,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:535,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - ' certificate_msg'
    argTypes:
    - Certificate_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 486
    functionDepth: 1
    functionLinenumber: 486
    functionLinenumberEnd: 537
    functionName: Botan::TLS::Server_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 4
    functionsReached:
    - validate_extensions
    - callbacks
    - TLS_Exception
    - Botan::TLS::Server_Impl_13::is_handshake_complete
    - credentials_manager
    - request_context
    - empty
    - policy
    - client_hello
    - certificate_request
    - verify
    - set_expected_next
    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:545,1
    - Dst: value_exists
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:546,1
    - Dst: signature_scheme
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:546,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:547,1
    - Dst: signature_scheme
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:548,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:552,1
    - Dst: has_client_certificate_msg
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:552,1
    - Dst: client_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:553,1
    - Dst: verify
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:554,1
    - Dst: client_certificate
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:555,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:555,1
    - Dst: previous
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:555,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:561,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:564,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - ' certificate_verify_msg'
    argTypes:
    - Certificate_Verify_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 565
    functionName: Botan::TLS::Server_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 4
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - callbacks
    - TLS_Exception
    - set_expected_next
    - previous
    - client_certificate
    - has_client_certificate_msg
    - verify
    - certificate_request
    - signature_scheme
    - value_exists
    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:572,1
    - Dst: get
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:572,1
    - Dst: previous
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:572,1
    - Dst: TLS_Exception
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:573,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:578,1
    - Dst: Session_Summary
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:579,1
    - Dst: server_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:579,1
    - Dst: Botan::TLS::Server_Impl_13::peer_cert_chain
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:581,1
    - Dst: Botan::TLS::Server_Impl_13::peer_raw_public_key
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:582,1
    - Dst: has_value
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:584,1
    - Dst: Server_Information
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:585,1
    - Dst: client_hello
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:585,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:586,1
    - Dst: advance_with_client_finished
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:588,1
    - Dst: current
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:588,1
    - Dst: set_expected_next
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:591,1
    - Dst: callbacks
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:593,1
    - Dst: Botan::TLS::Server_Impl_13::new_session_ticket_supported
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:595,1
    - Dst: Botan::TLS::Server_Impl_13::send_new_session_tickets
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:596,1
    - Dst: policy
      Src: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp:596,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' finished_msg'
    argTypes:
    - Finished_13
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 567
    functionDepth: 3
    functionLinenumber: 567
    functionLinenumberEnd: 598
    functionName: Botan::TLS::Server_Impl_13::handle
    functionSourceFile: /src/botan/src/lib/tls/tls13/tls_server_impl_13.cpp
    functionUses: 4
    functionsReached:
    - callbacks
    - Session_Summary
    - current
    - Botan::TLS::Server_Impl_13::new_session_ticket_supported
    - TLS_Exception
    - Server_Information
    - Botan::TLS::Server_Impl_13::send_new_session_tickets
    - server_hello
    - client_hello
    - policy
    - Botan::TLS::Server_Impl_13::peer_raw_public_key
    - advance_with_client_finished
    - get
    - verify
    - has_value
    - Botan::TLS::Server_Impl_13::peer_cert_chain
    - previous
    - set_expected_next
    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: 82
    functionsReached:
    - std::make_unique<Keccak_1600>
    - std::make_unique<SHA_512>
    - std::make_unique<Streebog>
    - std::make_unique<Skein_512>
    - std::make_unique<Whirlpool>
    - SCAN_Name::arg_count
    - std::make_unique<Truncated_Hash>
    - std::make_unique<Ascon_Hash256>
    - std::make_unique<MD4>
    - std::make_unique<Parallel>
    - std::make_unique<Adler32>
    - Botan::HashFunction::create
    - std::make_unique<SHA_224>
    - std::make_unique<CRC24>
    - std::make_unique<SM3>
    - SCAN_Name::arg
    - std::make_unique<GOST_34_11>
    - SCAN_Name::algo_name
    - std::make_unique<SHA_1>
    - std::make_unique<BLAKE2b>
    - std::make_unique<Comb4P>
    - std::vector::push_back
    - make_commoncrypto_hash
    - std::make_unique<SHA_384>
    - std::make_unique<RIPEMD_160>
    - std::move
    - std::make_unique<CRC32>
    - std::make_unique<SHAKE_256>
    - std::string_view::empty
    - std::make_unique<SHA_512_256>
    - std::make_unique<BLAKE2s>
    - SCAN_Name::arg_as_integer
    - std::make_unique<SHA_3>
    - std::make_unique<SHA_256>
    - std::make_unique<MD5>
    - std::make_unique<SHAKE_128>
    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: 56
    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: 20
    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: 84
    functionsReached:
    - std::make_unique<Keccak_1600>
    - std::make_unique<SHA_512>
    - std::make_unique<Streebog>
    - std::make_unique<Skein_512>
    - std::make_unique<Whirlpool>
    - SCAN_Name::arg_count
    - std::make_unique<Truncated_Hash>
    - std::make_unique<Ascon_Hash256>
    - std::make_unique<MD4>
    - std::make_unique<Parallel>
    - std::make_unique<Adler32>
    - Botan::HashFunction::create
    - std::make_unique<SHA_224>
    - std::make_unique<CRC24>
    - std::make_unique<SM3>
    - SCAN_Name::arg
    - std::make_unique<GOST_34_11>
    - SCAN_Name::algo_name
    - std::make_unique<SHA_1>
    - std::make_unique<BLAKE2b>
    - std::make_unique<Comb4P>
    - std::vector::push_back
    - make_commoncrypto_hash
    - std::make_unique<SHA_384>
    - std::make_unique<RIPEMD_160>
    - std::move
    - std::make_unique<CRC32>
    - std::make_unique<SHAKE_256>
    - std::string_view::empty
    - std::make_unique<SHA_512_256>
    - std::make_unique<BLAKE2s>
    - SCAN_Name::arg_as_integer
    - std::make_unique<SHA_3>
    - std::make_unique<SHA_256>
    - std::make_unique<MD5>
    - std::make_unique<SHAKE_128>
    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: 56
    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: 20
    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: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    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: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    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:31,1
    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::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: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    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: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    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:31,1
    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::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:30,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:32,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:34,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 7
    argNames:
    - a
    - b
    - c
    - d
    - x
    - y
    - v
    argTypes:
    - uint8_t
    - uint8_t
    - uint8_t
    - uint8_t
    - uint32_t
    - uint32_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 37
    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(uint8_t a, uint8_t b, uint8_t c, uint8_t d, uint32_t x,
      uint32_t y, uint32_t* v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:30,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:32,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:34,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 7
    argNames:
    - a
    - b
    - c
    - d
    - x
    - y
    - v
    argTypes:
    - uint8_t
    - uint8_t
    - uint8_t
    - uint8_t
    - uint32_t
    - uint32_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 37
    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(uint8_t a, uint8_t b, uint8_t c, uint8_t d, uint32_t x,
      uint32_t y, uint32_t* v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/hash/blake2s/blake2s.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::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: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BLAKE2s::add_data
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:63,1
    - Dst: std::span<const uint8_t>
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - outlen
    - key
    - keylen
    argTypes:
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 66
    functionName: Botan::BLAKE2s::state_init
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>
    - Botan::BLAKE2s::add_data
    linkageType: ''
    returnType: void
    signature: void BLAKE2s::state_init(size_t outlen, const uint8_t* key, size_t
      keylen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: load_le<uint32_t>
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:94,1
    - Dst: B2S_G
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:98,1
    - Dst: B2S_G
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:99,1
    - Dst: B2S_G
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:100,1
    - Dst: B2S_G
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:101,1
    - Dst: B2S_G
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:102,1
    - Dst: B2S_G
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:103,1
    - Dst: B2S_G
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:104,1
    - Dst: B2S_G
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:105,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - last
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 111
    functionName: Botan::BLAKE2s::compress
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.cpp
    functionUses: 0
    functionsReached:
    - B2S_G
    - load_le<uint32_t>
    linkageType: ''
    returnType: void
    signature: void BLAKE2s::compress(bool last)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BLAKE2s::state_init
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: Botan::BLAKE2s::clear
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.cpp
    functionUses: 0
    functionsReached:
    - Botan::BLAKE2s::state_init
    linkageType: ''
    returnType: void
    signature: void BLAKE2s::clear()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:122,1
    - Dst: Botan::BLAKE2s::compress
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 133
    functionName: Botan::BLAKE2s::add_data
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.cpp
    functionUses: 1
    functionsReached:
    - Botan::BLAKE2s::compress
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void BLAKE2s::add_data(std::span<const uint8_t> in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BLAKE2s::compress
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:144,1
    - Dst: copy_out_le
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:147,1
    - Dst: std::span<uint8_t>::first
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:147,1
    - Dst: Botan::BLAKE2s::output_length
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:147,1
    - Dst: Botan::BLAKE2s::clear
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 150
    functionName: Botan::BLAKE2s::final_result
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.cpp
    functionUses: 0
    functionsReached:
    - Botan::BLAKE2s::clear
    - Botan::BLAKE2s::compress
    - std::span<uint8_t>::first
    - Botan::BLAKE2s::output_length
    - copy_out_le
    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:153,1
    - Dst: std::memcpy
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:154,1
    - Dst: std::memcpy
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:155,1
    - Dst: std::memcpy
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 159
    functionName: Botan::BLAKE2s::copy_state
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<BLAKE2s>
    - std::memcpy
    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:166,1
    - Dst: Botan::BLAKE2s::state_init
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:168,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - output_bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 169
    functionName: Botan::BLAKE2s::BLAKE2s
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.cpp
    functionUses: 0
    functionsReached:
    - Botan::BLAKE2s::state_init
    - Invalid_Argument
    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:172,1
    - Dst: secure_scrub_memory
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:173,1
    - Dst: secure_scrub_memory
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 175
    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:30,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:32,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:34,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 7
    argNames:
    - a
    - b
    - c
    - d
    - x
    - y
    - v
    argTypes:
    - uint8_t
    - uint8_t
    - uint8_t
    - uint8_t
    - uint32_t
    - uint32_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 37
    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(uint8_t a, uint8_t b, uint8_t c, uint8_t d, uint32_t x,
      uint32_t y, uint32_t* v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:30,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:32,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:34,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 7
    argNames:
    - a
    - b
    - c
    - d
    - x
    - y
    - v
    argTypes:
    - uint8_t
    - uint8_t
    - uint8_t
    - uint8_t
    - uint32_t
    - uint32_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 37
    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(uint8_t a, uint8_t b, uint8_t c, uint8_t d, uint32_t x,
      uint32_t y, uint32_t* v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/hash/blake2s/blake2s.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::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: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BLAKE2s::add_data
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:63,1
    - Dst: std::span<const uint8_t>
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:63,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - outlen
    - key
    - keylen
    argTypes:
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 66
    functionName: Botan::BLAKE2s::state_init
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.cpp
    functionUses: 2
    functionsReached:
    - std::span<const uint8_t>
    - Botan::BLAKE2s::add_data
    linkageType: ''
    returnType: void
    signature: void BLAKE2s::state_init(size_t outlen, const uint8_t* key, size_t
      keylen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: load_le<uint32_t>
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:94,1
    - Dst: B2S_G
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:98,1
    - Dst: B2S_G
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:99,1
    - Dst: B2S_G
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:100,1
    - Dst: B2S_G
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:101,1
    - Dst: B2S_G
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:102,1
    - Dst: B2S_G
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:103,1
    - Dst: B2S_G
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:104,1
    - Dst: B2S_G
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:105,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - last
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 111
    functionName: Botan::BLAKE2s::compress
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.cpp
    functionUses: 2
    functionsReached:
    - B2S_G
    - load_le<uint32_t>
    linkageType: ''
    returnType: void
    signature: void BLAKE2s::compress(bool last)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BLAKE2s::state_init
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 118
    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: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:122,1
    - Dst: Botan::BLAKE2s::compress
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 133
    functionName: Botan::BLAKE2s::add_data
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.cpp
    functionUses: 2
    functionsReached:
    - Botan::BLAKE2s::compress
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void BLAKE2s::add_data(std::span<const uint8_t> in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BLAKE2s::compress
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:144,1
    - Dst: copy_out_le
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:147,1
    - Dst: std::span<uint8_t>::first
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:147,1
    - Dst: Botan::BLAKE2s::output_length
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:147,1
    - Dst: Botan::BLAKE2s::clear
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 150
    functionName: Botan::BLAKE2s::final_result
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.cpp
    functionUses: 0
    functionsReached:
    - Botan::BLAKE2s::clear
    - Botan::BLAKE2s::compress
    - std::span<uint8_t>::first
    - Botan::BLAKE2s::output_length
    - copy_out_le
    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:153,1
    - Dst: std::memcpy
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:154,1
    - Dst: std::memcpy
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:155,1
    - Dst: std::memcpy
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 159
    functionName: Botan::BLAKE2s::copy_state
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<BLAKE2s>
    - std::memcpy
    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:166,1
    - Dst: Botan::BLAKE2s::state_init
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:168,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 1
    argNames:
    - output_bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 169
    functionName: Botan::BLAKE2s::BLAKE2s
    functionSourceFile: /src/botan/src/lib/hash/blake2s/blake2s.cpp
    functionUses: 0
    functionsReached:
    - Botan::BLAKE2s::state_init
    - Invalid_Argument
    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:172,1
    - Dst: secure_scrub_memory
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:173,1
    - Dst: secure_scrub_memory
      Src: /src/botan/src/lib/hash/blake2s/blake2s.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 175
    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::data
    - Botan::xor_buf
    - secure_vector::size
    - secure_vector::data
    - Botan::update
    - Botan::size
    - Botan::final
    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::data
    - Botan::xor_buf
    - secure_vector::size
    - secure_vector::data
    - Botan::update
    - Botan::size
    - Botan::final
    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:
    - std::move
    - Botan::Comb4P::name
    - Botan::Comb4P::output_length
    - Botan::Comb4P::clear
    - Invalid_Argument
    - 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:
    - std::make_unique<Comb4P>
    - Botan::Comb4P::new_object
    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:
    - Botan::Comb4P::clear
    - update
    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:
    - final
    - update
    - min
    - copy_mem
    - secure_vector::size
    - BufferStuffer::next
    - xor_buf
    - secure_vector::data
    - comb4p_round
    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::data
    - Botan::xor_buf
    - secure_vector::size
    - secure_vector::data
    - Botan::update
    - Botan::size
    - Botan::final
    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::data
    - Botan::xor_buf
    - secure_vector::size
    - secure_vector::data
    - Botan::update
    - Botan::size
    - Botan::final
    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:
    - std::move
    - Botan::Comb4P::name
    - Botan::Comb4P::output_length
    - Botan::Comb4P::clear
    - Invalid_Argument
    - 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:
    - std::make_unique<Comb4P>
    - Botan::Comb4P::new_object
    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:
    - Botan::Comb4P::clear
    - update
    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:
    - final
    - update
    - min
    - copy_mem
    - secure_vector::size
    - BufferStuffer::next
    - xor_buf
    - secure_vector::data
    - comb4p_round
    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: 4
    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:
    - Botan::SHAKE_128::clear
    - squeeze
    - finish
    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: 4
    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:
    - squeeze
    - finish
    - Botan::SHAKE_256::clear
    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: 4
    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:
    - Botan::SHAKE_128::clear
    - squeeze
    - finish
    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: 4
    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:
    - squeeze
    - finish
    - Botan::SHAKE_256::clear
    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:
    - choose
    - rotl<30>
    - rotl<5>
    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:
    - choose
    - rotl<30>
    - rotl<5>
    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:29,1
    - Dst: sha1_compress_x86
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:30,1
    - Dst: has
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:35,1
    - Dst: sha1_armv8_compress_n
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:36,1
    - Dst: has
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:41,1
    - Dst: avx2_compress_n
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:42,1
    - Dst: has
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:47,1
    - Dst: simd_compress_n
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:48,1
    - Dst: first
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:58,1
    - Dst: load_be
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:63,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:63,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: rotl<1>
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:75,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: F1
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:99,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: F2
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:120,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: F3
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:141,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
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:162,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: 170
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 170
    functionName: Botan::SHA_1::compress_n
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1.cpp
    functionUses: 0
    functionsReached:
    - has
    - rotl<1>
    - F4
    - sha1_compress_x86
    - avx2_compress_n
    - load_be
    - sha1_armv8_compress_n
    - F1
    - F3
    - BufferSlicer::take
    - F2
    - first
    - simd_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:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' digest'
    argTypes:
    - digest_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 177
    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:181,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:187,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:193,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 205
    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:208,1
    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::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: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_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:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 217
    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:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 221
    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:29,1
    - Dst: sha1_compress_x86
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:30,1
    - Dst: has
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:35,1
    - Dst: sha1_armv8_compress_n
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:36,1
    - Dst: has
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:41,1
    - Dst: avx2_compress_n
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:42,1
    - Dst: has
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:47,1
    - Dst: simd_compress_n
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:48,1
    - Dst: first
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:58,1
    - Dst: load_be
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:63,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:63,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: rotl<1>
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:75,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: F1
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:99,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: F2
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:120,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: F3
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:141,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
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:162,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: 170
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 170
    functionName: Botan::SHA_1::compress_n
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1.cpp
    functionUses: 0
    functionsReached:
    - has
    - rotl<1>
    - F4
    - sha1_compress_x86
    - avx2_compress_n
    - load_be
    - sha1_armv8_compress_n
    - F1
    - F3
    - BufferSlicer::take
    - F2
    - first
    - simd_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:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' digest'
    argTypes:
    - digest_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 177
    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:181,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:187,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:193,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha1/sha1.cpp:199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 179
    functionDepth: 2
    functionLinenumber: 179
    functionLinenumberEnd: 205
    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:208,1
    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::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: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_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:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 217
    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:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 221
    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:32,1
    - Dst: _mm256_alignr_epi8
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:32,1
    - Dst: SIMD_8x32::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:32,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:32,1
    - Dst: SIMD_8x32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:34,1
    - Dst: _mm256_srli_si256
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:34,1
    - Dst: SIMD_8x32::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:34,1
    - Dst: SIMD_8x32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:39,1
    - Dst: _mm256_slli_si256
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:39,1
    - Dst: SIMD_8x32::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:39,1
    - Dst: SIMD_8x32::rotl
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:42,1
    - Dst: auto::rotl
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:45,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: 52
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 52
    functionName: Botan::sha1_avx2_next_w
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp
    functionUses: 0
    functionsReached:
    - SIMD_8x32::raw
    - _mm256_srli_si256
    - auto::rotl
    - _mm256_slli_si256
    - SIMD_8x32
    - _mm256_alignr_epi8
    - SIMD_8x32::rotl
    - 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:62,1
    - Dst: _mm256_setr_epi32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:63,1
    - Dst: SIMD_8x32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:72,1
    - Dst: _mm256_and_si256
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:72,1
    - Dst: _mm256_permutevar8x32_epi32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:72,1
    - Dst: SIMD_8x32::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 73
    functionName: Botan::permute_words
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp
    functionUses: 0
    functionsReached:
    - SIMD_8x32::raw
    - _mm256_permutevar8x32_epi32
    - _mm256_setr_epi32
    - _mm256_and_si256
    - SIMD_8x32
    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:123,1
    - Dst: Botan::permute_words
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:126,1
    - Dst: Botan::permute_words
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:129,1
    - Dst: auto::rotl
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:130,1
    - Dst: Botan::permute_words
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ' W0'
    - W2
    argTypes:
    - SIMD_8x32
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 139
    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:32,1
    - Dst: _mm256_alignr_epi8
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:32,1
    - Dst: SIMD_8x32::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:32,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:32,1
    - Dst: SIMD_8x32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:34,1
    - Dst: _mm256_srli_si256
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:34,1
    - Dst: SIMD_8x32::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:34,1
    - Dst: SIMD_8x32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:39,1
    - Dst: _mm256_slli_si256
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:39,1
    - Dst: SIMD_8x32::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:39,1
    - Dst: SIMD_8x32::rotl
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:42,1
    - Dst: auto::rotl
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:45,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: 52
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 52
    functionName: Botan::sha1_avx2_next_w
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp
    functionUses: 0
    functionsReached:
    - SIMD_8x32::raw
    - _mm256_srli_si256
    - auto::rotl
    - _mm256_slli_si256
    - SIMD_8x32
    - _mm256_alignr_epi8
    - SIMD_8x32::rotl
    - 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:62,1
    - Dst: _mm256_setr_epi32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:63,1
    - Dst: SIMD_8x32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:72,1
    - Dst: _mm256_and_si256
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:72,1
    - Dst: _mm256_permutevar8x32_epi32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:72,1
    - Dst: SIMD_8x32::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 73
    functionName: Botan::permute_words
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp
    functionUses: 1
    functionsReached:
    - SIMD_8x32::raw
    - _mm256_permutevar8x32_epi32
    - _mm256_setr_epi32
    - _mm256_and_si256
    - SIMD_8x32
    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:123,1
    - Dst: Botan::permute_words
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:126,1
    - Dst: Botan::permute_words
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:129,1
    - Dst: auto::rotl
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:130,1
    - Dst: Botan::permute_words
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ' W0'
    - W2
    argTypes:
    - SIMD_8x32
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 139
    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:150,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:151,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:152,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:153,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:167,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::load_be128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:176,1
    - Dst: Botan::SIMD_8x32::load_be128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:177,1
    - Dst: Botan::SIMD_8x32::load_be128
      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:180,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:181,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:182,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:183,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:187,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:188,1
    - Dst: Botan::SIMD_8x32::splat
      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: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:190,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:191,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:192,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:194,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:195,1
    - Dst: Botan::SIMD_8x32::splat
      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: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:197,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:198,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:199,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:201,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:202,1
    - Dst: Botan::SIMD_8x32::splat
      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: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:204,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:205,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:206,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:208,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:209,1
    - Dst: Botan::SIMD_8x32::splat
      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: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:211,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:212,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:213,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:215,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:216,1
    - Dst: Botan::SIMD_8x32::splat
      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: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:218,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:219,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:220,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:222,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:223,1
    - Dst: Botan::SIMD_8x32::splat
      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: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:225,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:226,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:227,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:229,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:230,1
    - Dst: Botan::SIMD_8x32::splat
      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: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:232,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:233,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:234,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:236,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:237,1
    - Dst: Botan::SIMD_8x32::splat
      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: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:239,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:240,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:241,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:243,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:244,1
    - Dst: Botan::SIMD_8x32::splat
      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: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:246,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:247,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:248,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:250,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:251,1
    - Dst: Botan::SIMD_8x32::splat
      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: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:253,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:254,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:255,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:257,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:258,1
    - Dst: Botan::SIMD_8x32::splat
      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: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:260,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:261,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:262,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:264,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:265,1
    - Dst: Botan::SIMD_8x32::splat
      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: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:267,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:268,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:269,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:271,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:272,1
    - Dst: Botan::SIMD_8x32::splat
      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: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:274,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:275,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:276,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:278,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:279,1
    - Dst: Botan::SIMD_8x32::splat
      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: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:281,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:282,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:283,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:285,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:286,1
    - Dst: Botan::SIMD_8x32::splat
      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: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:288,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:289,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:290,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:292,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:293,1
    - Dst: Botan::SIMD_8x32::splat
      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: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:295,1
    - Dst: F4
      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: SIMD_8x32::store_le128
      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: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:301,1
    - Dst: F4
      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: SIMD_8x32::store_le128
      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: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:307,1
    - Dst: F4
      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: SIMD_8x32::store_le128
      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: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:313,1
    - Dst: F4
      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: SIMD_8x32::store_le128
      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: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:319,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:320,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:321,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: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:349,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:350,1
    - Dst: F1
      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: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:369,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:370,1
    - Dst: F2
      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: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:389,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:390,1
    - Dst: F3
      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: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:409,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:410,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:411,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:423,1
    - Dst: Botan::SIMD_8x32::load_be
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:425,1
    - Dst: Botan::SIMD_8x32::load_be
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:426,1
    - Dst: SIMD_8x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:431,1
    - Dst: sha1_avx2_next_w2
      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: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: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:439,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:440,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:441,1
    - Dst: SIMD_8x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:443,1
    - Dst: sha1_avx2_next_w2
      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: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: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:451,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:452,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:453,1
    - Dst: SIMD_8x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:455,1
    - Dst: sha1_avx2_next_w2
      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:458,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:459,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:460,1
    - Dst: F1
      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: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:463,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:464,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:465,1
    - Dst: SIMD_8x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:467,1
    - Dst: sha1_avx2_next_w2
      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: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: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:475,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:476,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:477,1
    - Dst: SIMD_8x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:479,1
    - Dst: sha1_avx2_next_w2
      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: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: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:487,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:488,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:489,1
    - Dst: SIMD_8x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:491,1
    - Dst: sha1_avx2_next_w2
      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: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: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:499,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:500,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:501,1
    - Dst: SIMD_8x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:503,1
    - Dst: sha1_avx2_next_w2
      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: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: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:511,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:512,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:513,1
    - Dst: SIMD_8x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:515,1
    - Dst: sha1_avx2_next_w2
      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:518,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:519,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:520,1
    - Dst: F3
      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: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:523,1
    - Dst: F4
      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:525,1
    - Dst: SIMD_8x32::store_le
      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: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: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:534,1
    - Dst: F4
      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:536,1
    - Dst: SIMD_8x32::store_le
      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: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
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:545,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:546,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:547,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: 555
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 555
    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:
    - F4
    - Botan::SIMD_8x32::splat
    - SIMD_8x32::store_le
    - sha1_avx2_next_w2
    - F1
    - Botan::SIMD_8x32::load_be
    - F3
    - SIMD_8x32::store_le128
    - Botan::SIMD_8x32::load_be128
    - BufferSlicer::take
    - F2
    - sha1_avx2_next_w
    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:32,1
    - Dst: _mm256_alignr_epi8
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:32,1
    - Dst: SIMD_8x32::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:32,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:32,1
    - Dst: SIMD_8x32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:34,1
    - Dst: _mm256_srli_si256
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:34,1
    - Dst: SIMD_8x32::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:34,1
    - Dst: SIMD_8x32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:39,1
    - Dst: _mm256_slli_si256
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:39,1
    - Dst: SIMD_8x32::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:39,1
    - Dst: SIMD_8x32::rotl
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:42,1
    - Dst: auto::rotl
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:45,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: 52
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 52
    functionName: Botan::sha1_avx2_next_w
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp
    functionUses: 0
    functionsReached:
    - SIMD_8x32::raw
    - _mm256_srli_si256
    - auto::rotl
    - _mm256_slli_si256
    - SIMD_8x32
    - _mm256_alignr_epi8
    - SIMD_8x32::rotl
    - 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:62,1
    - Dst: _mm256_setr_epi32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:63,1
    - Dst: SIMD_8x32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:72,1
    - Dst: _mm256_and_si256
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:72,1
    - Dst: _mm256_permutevar8x32_epi32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:72,1
    - Dst: SIMD_8x32::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 73
    functionName: Botan::permute_words
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp
    functionUses: 2
    functionsReached:
    - SIMD_8x32::raw
    - _mm256_permutevar8x32_epi32
    - _mm256_setr_epi32
    - _mm256_and_si256
    - SIMD_8x32
    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:123,1
    - Dst: Botan::permute_words
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:126,1
    - Dst: Botan::permute_words
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:129,1
    - Dst: auto::rotl
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:130,1
    - Dst: Botan::permute_words
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ' W0'
    - W2
    argTypes:
    - SIMD_8x32
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 139
    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:32,1
    - Dst: _mm256_alignr_epi8
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:32,1
    - Dst: SIMD_8x32::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:32,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:32,1
    - Dst: SIMD_8x32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:34,1
    - Dst: _mm256_srli_si256
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:34,1
    - Dst: SIMD_8x32::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:34,1
    - Dst: SIMD_8x32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:39,1
    - Dst: _mm256_slli_si256
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:39,1
    - Dst: SIMD_8x32::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:39,1
    - Dst: SIMD_8x32::rotl
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:42,1
    - Dst: auto::rotl
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:45,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: 52
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 52
    functionName: Botan::sha1_avx2_next_w
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp
    functionUses: 0
    functionsReached:
    - SIMD_8x32::raw
    - _mm256_srli_si256
    - auto::rotl
    - _mm256_slli_si256
    - SIMD_8x32
    - _mm256_alignr_epi8
    - SIMD_8x32::rotl
    - 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:62,1
    - Dst: _mm256_setr_epi32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:63,1
    - Dst: SIMD_8x32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:72,1
    - Dst: _mm256_and_si256
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:72,1
    - Dst: _mm256_permutevar8x32_epi32
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:72,1
    - Dst: SIMD_8x32::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 73
    functionName: Botan::permute_words
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp
    functionUses: 3
    functionsReached:
    - SIMD_8x32::raw
    - _mm256_permutevar8x32_epi32
    - _mm256_setr_epi32
    - _mm256_and_si256
    - SIMD_8x32
    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:123,1
    - Dst: Botan::permute_words
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:126,1
    - Dst: Botan::permute_words
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:129,1
    - Dst: auto::rotl
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:130,1
    - Dst: Botan::permute_words
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - ' W0'
    - W2
    argTypes:
    - SIMD_8x32
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 139
    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:150,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:151,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:152,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:153,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:167,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::load_be128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:176,1
    - Dst: Botan::SIMD_8x32::load_be128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:177,1
    - Dst: Botan::SIMD_8x32::load_be128
      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:180,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:181,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:182,1
    - Dst: Botan::SIMD_8x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:183,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:187,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:188,1
    - Dst: Botan::SIMD_8x32::splat
      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: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:190,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:191,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:192,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:194,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:195,1
    - Dst: Botan::SIMD_8x32::splat
      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: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:197,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:198,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:199,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:201,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:202,1
    - Dst: Botan::SIMD_8x32::splat
      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: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:204,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:205,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:206,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:208,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:209,1
    - Dst: Botan::SIMD_8x32::splat
      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: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:211,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:212,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:213,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:215,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:216,1
    - Dst: Botan::SIMD_8x32::splat
      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: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:218,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:219,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:220,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:222,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:223,1
    - Dst: Botan::SIMD_8x32::splat
      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: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:225,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:226,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:227,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:229,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:230,1
    - Dst: Botan::SIMD_8x32::splat
      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: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:232,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:233,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:234,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:236,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:237,1
    - Dst: Botan::SIMD_8x32::splat
      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: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:239,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:240,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:241,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:243,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:244,1
    - Dst: Botan::SIMD_8x32::splat
      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: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:246,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:247,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:248,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:250,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:251,1
    - Dst: Botan::SIMD_8x32::splat
      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: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:253,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:254,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:255,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:257,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:258,1
    - Dst: Botan::SIMD_8x32::splat
      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: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:260,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:261,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:262,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:264,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:265,1
    - Dst: Botan::SIMD_8x32::splat
      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: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:267,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:268,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:269,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:271,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:272,1
    - Dst: Botan::SIMD_8x32::splat
      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: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:274,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:275,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:276,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:278,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:279,1
    - Dst: Botan::SIMD_8x32::splat
      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: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:281,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:282,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:283,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:285,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:286,1
    - Dst: Botan::SIMD_8x32::splat
      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: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:288,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:289,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:290,1
    - Dst: SIMD_8x32::store_le128
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:292,1
    - Dst: sha1_avx2_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:293,1
    - Dst: Botan::SIMD_8x32::splat
      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: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:295,1
    - Dst: F4
      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: SIMD_8x32::store_le128
      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: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:301,1
    - Dst: F4
      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: SIMD_8x32::store_le128
      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: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:307,1
    - Dst: F4
      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: SIMD_8x32::store_le128
      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: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:313,1
    - Dst: F4
      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: SIMD_8x32::store_le128
      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: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:319,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:320,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:321,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: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:349,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:350,1
    - Dst: F1
      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: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:369,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:370,1
    - Dst: F2
      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: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:389,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:390,1
    - Dst: F3
      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: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:409,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:410,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:411,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:423,1
    - Dst: Botan::SIMD_8x32::load_be
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:425,1
    - Dst: Botan::SIMD_8x32::load_be
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:426,1
    - Dst: SIMD_8x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:431,1
    - Dst: sha1_avx2_next_w2
      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: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: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:439,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:440,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:441,1
    - Dst: SIMD_8x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:443,1
    - Dst: sha1_avx2_next_w2
      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: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: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:451,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:452,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:453,1
    - Dst: SIMD_8x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:455,1
    - Dst: sha1_avx2_next_w2
      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:458,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:459,1
    - Dst: F1
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:460,1
    - Dst: F1
      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: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:463,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:464,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:465,1
    - Dst: SIMD_8x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:467,1
    - Dst: sha1_avx2_next_w2
      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: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: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:475,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:476,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:477,1
    - Dst: SIMD_8x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:479,1
    - Dst: sha1_avx2_next_w2
      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: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: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:487,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:488,1
    - Dst: F2
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:489,1
    - Dst: SIMD_8x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:491,1
    - Dst: sha1_avx2_next_w2
      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: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: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:499,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:500,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:501,1
    - Dst: SIMD_8x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:503,1
    - Dst: sha1_avx2_next_w2
      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: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: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:511,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:512,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:513,1
    - Dst: SIMD_8x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:515,1
    - Dst: sha1_avx2_next_w2
      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:518,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:519,1
    - Dst: F3
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:520,1
    - Dst: F3
      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: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:523,1
    - Dst: F4
      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:525,1
    - Dst: SIMD_8x32::store_le
      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: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: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:534,1
    - Dst: F4
      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:536,1
    - Dst: SIMD_8x32::store_le
      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: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
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:545,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:546,1
    - Dst: F4
      Src: /src/botan/src/lib/hash/sha1/sha1_avx2/sha1_avx2.cpp:547,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: 555
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 555
    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:
    - F4
    - Botan::SIMD_8x32::splat
    - SIMD_8x32::store_le
    - sha1_avx2_next_w2
    - F1
    - Botan::SIMD_8x32::load_be
    - F3
    - SIMD_8x32::store_le128
    - Botan::SIMD_8x32::load_be128
    - BufferSlicer::take
    - F2
    - sha1_avx2_next_w
    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:24,1
    - Dst: _mm_sha1nexte_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:24,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:24,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: Botan::sha1_x86_nexte
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp
    functionUses: 0
    functionsReached:
    - raw
    - _mm_sha1nexte_epu32
    - SIMD_4x32
    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:28,1
    - Dst: _mm_sha1msg1_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:28,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:28,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' W0'
    - ' W1'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    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:35,1
    - Dst: _mm_sha1msg1_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:35,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:35,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:35,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:36,1
    - Dst: _mm_sha1msg2_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:36,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:36,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:36,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: 38
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 38
    functionName: Botan::sha1_x86_next_msg
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp
    functionUses: 0
    functionsReached:
    - raw
    - _mm_sha1msg2_epu32
    - _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:46,1
    - Dst: _mm_sha1rnds4_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:46,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:46,1
    - Dst: Botan::sha1_x86_nexte
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:46,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:49,1
    - Dst: _mm_sha1rnds4_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:49,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:49,1
    - Dst: Botan::sha1_x86_nexte
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:49,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: 50
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 50
    functionName: Botan::sha1_x86_rnds8
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp
    functionUses: 0
    functionsReached:
    - raw
    - _mm_sha1rnds4_epu32
    - Botan::sha1_x86_nexte
    - SIMD_4x32
    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:53,1
    - Dst: _mm_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:53,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: Botan::rev_words
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp
    functionUses: 0
    functionsReached:
    - raw
    - _mm_shuffle_epi32
    - SIMD_4x32
    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:24,1
    - Dst: _mm_sha1nexte_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:24,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:24,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: Botan::sha1_x86_nexte
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp
    functionUses: 1
    functionsReached:
    - raw
    - _mm_sha1nexte_epu32
    - SIMD_4x32
    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:28,1
    - Dst: _mm_sha1msg1_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:28,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:28,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' W0'
    - ' W1'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    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:35,1
    - Dst: _mm_sha1msg1_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:35,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:35,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:35,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:36,1
    - Dst: _mm_sha1msg2_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:36,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:36,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:36,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: 38
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 38
    functionName: Botan::sha1_x86_next_msg
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp
    functionUses: 0
    functionsReached:
    - raw
    - _mm_sha1msg2_epu32
    - _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:46,1
    - Dst: _mm_sha1rnds4_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:46,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:46,1
    - Dst: Botan::sha1_x86_nexte
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:46,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:49,1
    - Dst: _mm_sha1rnds4_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:49,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:49,1
    - Dst: Botan::sha1_x86_nexte
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:49,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: 50
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 50
    functionName: Botan::sha1_x86_rnds8
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp
    functionUses: 0
    functionsReached:
    - raw
    - _mm_sha1rnds4_epu32
    - Botan::sha1_x86_nexte
    - SIMD_4x32
    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:53,1
    - Dst: _mm_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:53,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: Botan::rev_words
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp
    functionUses: 0
    functionsReached:
    - raw
    - _mm_shuffle_epi32
    - SIMD_4x32
    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:61,1
    - Dst: rev_words
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:63,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:63,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:64,1
    - Dst: rev_words
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:71,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:71,1
    - Dst: rev_words
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:72,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:72,1
    - Dst: rev_words
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:73,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:73,1
    - Dst: rev_words
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:74,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:74,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:77,1
    - Dst: _mm_sha1rnds4_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:77,1
    - Dst: SIMD_4x32::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:77,1
    - Dst: _mm_add_epi32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:77,1
    - Dst: SIMD_4x32::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:77,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:77,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:80,1
    - Dst: _mm_sha1rnds4_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:80,1
    - Dst: SIMD_4x32::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:80,1
    - Dst: _mm_sha1nexte_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:80,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:80,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:80,1
    - Dst: sha1_x86_rnds8<0>
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:82,1
    - Dst: sha1_x86_msg1
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:84,1
    - Dst: sha1_x86_msg1
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:85,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:88,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:89,1
    - Dst: sha1_x86_rnds8<0, 1>
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:90,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:92,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:93,1
    - Dst: sha1_x86_rnds8<1>
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:94,1
    - Dst: sha1_x86_next_msg
      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:97,1
    - Dst: sha1_x86_rnds8<1>
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:98,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:100,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:101,1
    - Dst: sha1_x86_rnds8<2>
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:102,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:104,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:105,1
    - Dst: sha1_x86_rnds8<2>
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:106,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:108,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:109,1
    - Dst: sha1_x86_rnds8<2, 3>
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:110,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:112,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:113,1
    - Dst: sha1_x86_rnds8<3>
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:114,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:116,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:117,1
    - Dst: sha1_x86_rnds8<3>
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:118,1
    - Dst: sha1_x86_nexte
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:121,1
    - Dst: rev_words
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:127,1
    - Dst: _mm_extract_epi32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:128,1
    - Dst: SIMD_4x32::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 40
    argCount: 3
    argNames:
    - ' digest'
    - input_span
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 129
    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_rnds8<2, 3>
    - sha1_x86_msg1
    - _mm_extract_epi32
    - sha1_x86_rnds8<3>
    - rev_words
    - SIMD_4x32
    - sha1_x86_rnds8<0>
    - Botan::SIMD_4x32::load_le
    - SIMD_4x32::raw
    - Botan::SIMD_4x32::load_be
    - auto::raw
    - sha1_x86_nexte
    - std::span<const uint8_t>::data
    - sha1_x86_rnds8<1>
    - _mm_sha1rnds4_epu32
    - sha1_x86_rnds8<0, 1>
    - _mm_add_epi32
    - sha1_x86_next_msg
    - _mm_sha1nexte_epu32
    - sha1_x86_rnds8<2>
    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:24,1
    - Dst: _mm_sha1nexte_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:24,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:24,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: Botan::sha1_x86_nexte
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp
    functionUses: 2
    functionsReached:
    - raw
    - _mm_sha1nexte_epu32
    - SIMD_4x32
    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:28,1
    - Dst: _mm_sha1msg1_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:28,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:28,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' W0'
    - ' W1'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    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:35,1
    - Dst: _mm_sha1msg1_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:35,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:35,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:35,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:36,1
    - Dst: _mm_sha1msg2_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:36,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:36,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:36,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: 38
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 38
    functionName: Botan::sha1_x86_next_msg
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp
    functionUses: 0
    functionsReached:
    - raw
    - _mm_sha1msg2_epu32
    - _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:46,1
    - Dst: _mm_sha1rnds4_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:46,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:46,1
    - Dst: Botan::sha1_x86_nexte
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:46,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:49,1
    - Dst: _mm_sha1rnds4_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:49,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:49,1
    - Dst: Botan::sha1_x86_nexte
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:49,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: 50
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 50
    functionName: Botan::sha1_x86_rnds8
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp
    functionUses: 0
    functionsReached:
    - raw
    - _mm_sha1rnds4_epu32
    - Botan::sha1_x86_nexte
    - SIMD_4x32
    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:53,1
    - Dst: _mm_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:53,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: Botan::rev_words
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp
    functionUses: 0
    functionsReached:
    - raw
    - _mm_shuffle_epi32
    - SIMD_4x32
    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:24,1
    - Dst: _mm_sha1nexte_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:24,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:24,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: Botan::sha1_x86_nexte
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp
    functionUses: 3
    functionsReached:
    - raw
    - _mm_sha1nexte_epu32
    - SIMD_4x32
    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:28,1
    - Dst: _mm_sha1msg1_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:28,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:28,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' W0'
    - ' W1'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    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:35,1
    - Dst: _mm_sha1msg1_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:35,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:35,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:35,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:36,1
    - Dst: _mm_sha1msg2_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:36,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:36,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:36,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: 38
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 38
    functionName: Botan::sha1_x86_next_msg
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp
    functionUses: 0
    functionsReached:
    - raw
    - _mm_sha1msg2_epu32
    - _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:46,1
    - Dst: _mm_sha1rnds4_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:46,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:46,1
    - Dst: Botan::sha1_x86_nexte
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:46,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:49,1
    - Dst: _mm_sha1rnds4_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:49,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:49,1
    - Dst: Botan::sha1_x86_nexte
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:49,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: 50
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 50
    functionName: Botan::sha1_x86_rnds8
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp
    functionUses: 0
    functionsReached:
    - raw
    - _mm_sha1rnds4_epu32
    - Botan::sha1_x86_nexte
    - SIMD_4x32
    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:53,1
    - Dst: _mm_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:53,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: Botan::rev_words
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp
    functionUses: 0
    functionsReached:
    - raw
    - _mm_shuffle_epi32
    - SIMD_4x32
    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:61,1
    - Dst: rev_words
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:63,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:63,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:64,1
    - Dst: rev_words
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:71,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:71,1
    - Dst: rev_words
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:72,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:72,1
    - Dst: rev_words
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:73,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:73,1
    - Dst: rev_words
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:74,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:74,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:77,1
    - Dst: _mm_sha1rnds4_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:77,1
    - Dst: SIMD_4x32::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:77,1
    - Dst: _mm_add_epi32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:77,1
    - Dst: SIMD_4x32::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:77,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:77,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:80,1
    - Dst: _mm_sha1rnds4_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:80,1
    - Dst: SIMD_4x32::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:80,1
    - Dst: _mm_sha1nexte_epu32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:80,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:80,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:80,1
    - Dst: sha1_x86_rnds8<0>
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:82,1
    - Dst: sha1_x86_msg1
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:84,1
    - Dst: sha1_x86_msg1
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:85,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:88,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:89,1
    - Dst: sha1_x86_rnds8<0, 1>
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:90,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:92,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:93,1
    - Dst: sha1_x86_rnds8<1>
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:94,1
    - Dst: sha1_x86_next_msg
      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:97,1
    - Dst: sha1_x86_rnds8<1>
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:98,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:100,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:101,1
    - Dst: sha1_x86_rnds8<2>
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:102,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:104,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:105,1
    - Dst: sha1_x86_rnds8<2>
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:106,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:108,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:109,1
    - Dst: sha1_x86_rnds8<2, 3>
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:110,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:112,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:113,1
    - Dst: sha1_x86_rnds8<3>
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:114,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:116,1
    - Dst: sha1_x86_next_msg
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:117,1
    - Dst: sha1_x86_rnds8<3>
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:118,1
    - Dst: sha1_x86_nexte
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:121,1
    - Dst: rev_words
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:127,1
    - Dst: _mm_extract_epi32
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:128,1
    - Dst: SIMD_4x32::raw
      Src: /src/botan/src/lib/hash/sha1/sha1_x86/sha1_x86.cpp:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 40
    argCount: 3
    argNames:
    - ' digest'
    - input_span
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 129
    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_rnds8<2, 3>
    - sha1_x86_msg1
    - _mm_extract_epi32
    - sha1_x86_rnds8<3>
    - rev_words
    - SIMD_4x32
    - sha1_x86_rnds8<0>
    - Botan::SIMD_4x32::load_le
    - SIMD_4x32::raw
    - Botan::SIMD_4x32::load_be
    - auto::raw
    - sha1_x86_nexte
    - std::span<const uint8_t>::data
    - sha1_x86_rnds8<1>
    - _mm_sha1rnds4_epu32
    - sha1_x86_rnds8<0, 1>
    - _mm_add_epi32
    - sha1_x86_next_msg
    - _mm_sha1nexte_epu32
    - sha1_x86_rnds8<2>
    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:
    - vreinterpretq_u8_u32
    - vsha1pq_u32
    - vdupq_n_u32
    - vaddq_u32
    - std::span<const uint8_t>::data
    - vsha1su1q_u32
    - vsha1mq_u32
    - vreinterpretq_u32_u8
    - vsha1su0q_u32
    - vsha1h_u32
    - vsha1cq_u32
    - vst1q_u32
    - reinterpret_cast<const uint32_t*>
    - vgetq_lane_u32
    - vld1q_u32
    - vrev32q_u8
    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:
    - vreinterpretq_u8_u32
    - vsha1pq_u32
    - vdupq_n_u32
    - vaddq_u32
    - std::span<const uint8_t>::data
    - vsha1su1q_u32
    - vsha1mq_u32
    - vreinterpretq_u32_u8
    - vsha1su0q_u32
    - vsha1h_u32
    - vsha1cq_u32
    - vst1q_u32
    - reinterpret_cast<const uint32_t*>
    - vgetq_lane_u32
    - vld1q_u32
    - vrev32q_u8
    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:50,1
    - Dst: SIMD_4x32::shift_elems_right
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:52,1
    - Dst: SIMD_4x32::shift_elems_left
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:57,1
    - Dst: SIMD_4x32::rotl
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:60,1
    - Dst: auto::rotl
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:63,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: 70
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 70
    functionName: Botan::sha1_simd_next_w
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp
    functionUses: 0
    functionsReached:
    - auto::rotl
    - Botan::SIMD_4x32::alignr8
    - SIMD_4x32::shift_elems_right
    - SIMD_4x32::shift_elems_left
    - SIMD_4x32::rotl
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sha1_simd_next_w(SIMD_4x32& XW0, SIMD_4x32 XW1,
      SIMD_4x32 XW2, SIMD_4x32 XW3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIMD_4x32::alignr8
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:50,1
    - Dst: SIMD_4x32::shift_elems_right
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:52,1
    - Dst: SIMD_4x32::shift_elems_left
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:57,1
    - Dst: SIMD_4x32::rotl
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:60,1
    - Dst: auto::rotl
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:63,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: 70
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 70
    functionName: Botan::sha1_simd_next_w
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp
    functionUses: 0
    functionsReached:
    - auto::rotl
    - Botan::SIMD_4x32::alignr8
    - SIMD_4x32::shift_elems_right
    - SIMD_4x32::shift_elems_left
    - SIMD_4x32::rotl
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sha1_simd_next_w(SIMD_4x32& XW0, SIMD_4x32 XW1,
      SIMD_4x32 XW2, SIMD_4x32 XW3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIMD_4x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:81,1
    - 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: BufferSlicer::take
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:97,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:99,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: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:109,1
    - Dst: F1
      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: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:114,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:116,1
    - Dst: F1
      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: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:121,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:123,1
    - Dst: F1
      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: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:128,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:130,1
    - Dst: F1
      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: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:135,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:137,1
    - Dst: F1
      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: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:142,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:144,1
    - Dst: F2
      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: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:149,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:151,1
    - Dst: F2
      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: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:156,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:158,1
    - Dst: F2
      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: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:163,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:165,1
    - Dst: F2
      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: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:170,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:172,1
    - Dst: F2
      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: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:177,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:179,1
    - Dst: F3
      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: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:184,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:186,1
    - Dst: F3
      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: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:191,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:193,1
    - Dst: F3
      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: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:198,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:200,1
    - Dst: F3
      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: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:205,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:207,1
    - Dst: F3
      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: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:212,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:214,1
    - Dst: F4
      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: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:219,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:221,1
    - Dst: F4
      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: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:227,1
    - Dst: F4
      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: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:233,1
    - Dst: F4
      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: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:239,1
    - Dst: F4
      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
    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: 251
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 251
    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:
    - Botan::SIMD_4x32::splat
    - F1
    - Botan::SIMD_4x32::load_be
    - sha1_simd_next_w
    - F3
    - BufferSlicer::take
    - F2
    - SIMD_4x32::store_le
    - F4
    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:50,1
    - Dst: SIMD_4x32::shift_elems_right
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:52,1
    - Dst: SIMD_4x32::shift_elems_left
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:57,1
    - Dst: SIMD_4x32::rotl
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:60,1
    - Dst: auto::rotl
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:63,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: 70
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 70
    functionName: Botan::sha1_simd_next_w
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp
    functionUses: 0
    functionsReached:
    - auto::rotl
    - Botan::SIMD_4x32::alignr8
    - SIMD_4x32::shift_elems_right
    - SIMD_4x32::shift_elems_left
    - SIMD_4x32::rotl
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sha1_simd_next_w(SIMD_4x32& XW0, SIMD_4x32 XW1,
      SIMD_4x32 XW2, SIMD_4x32 XW3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIMD_4x32::alignr8
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:50,1
    - Dst: SIMD_4x32::shift_elems_right
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:52,1
    - Dst: SIMD_4x32::shift_elems_left
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:57,1
    - Dst: SIMD_4x32::rotl
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:60,1
    - Dst: auto::rotl
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:63,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: 70
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 70
    functionName: Botan::sha1_simd_next_w
    functionSourceFile: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp
    functionUses: 0
    functionsReached:
    - auto::rotl
    - Botan::SIMD_4x32::alignr8
    - SIMD_4x32::shift_elems_right
    - SIMD_4x32::shift_elems_left
    - SIMD_4x32::rotl
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sha1_simd_next_w(SIMD_4x32& XW0, SIMD_4x32 XW1,
      SIMD_4x32 XW2, SIMD_4x32 XW3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SIMD_4x32::splat
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:81,1
    - 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: BufferSlicer::take
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:97,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:99,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: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:109,1
    - Dst: F1
      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: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:114,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:116,1
    - Dst: F1
      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: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:121,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:123,1
    - Dst: F1
      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: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:128,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:130,1
    - Dst: F1
      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: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:135,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:137,1
    - Dst: F1
      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: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:142,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:144,1
    - Dst: F2
      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: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:149,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:151,1
    - Dst: F2
      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: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:156,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:158,1
    - Dst: F2
      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: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:163,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:165,1
    - Dst: F2
      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: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:170,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:172,1
    - Dst: F2
      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: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:177,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:179,1
    - Dst: F3
      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: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:184,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:186,1
    - Dst: F3
      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: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:191,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:193,1
    - Dst: F3
      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: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:198,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:200,1
    - Dst: F3
      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: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:205,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:207,1
    - Dst: F3
      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: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:212,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:214,1
    - Dst: F4
      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: sha1_simd_next_w
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:219,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:221,1
    - Dst: F4
      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: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:227,1
    - Dst: F4
      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: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:233,1
    - Dst: F4
      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: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha1/sha1_simd/sha1_simd.cpp:239,1
    - Dst: F4
      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
    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: 251
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 251
    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:
    - Botan::SIMD_4x32::splat
    - F1
    - Botan::SIMD_4x32::load_be
    - sha1_simd_next_w
    - F3
    - BufferSlicer::take
    - F2
    - SIMD_4x32::store_le
    - F4
    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:
    - Botan::Skein_512::initial_block
    - std::make_unique<Threefish_512>
    - Invalid_Argument
    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:
    - Botan::Skein_512::ubi_512
    - Botan::Skein_512::reset_tweak
    - store_le
    - set_key
    - length
    - empty
    - as_span_of_bytes
    - Invalid_Argument
    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>::empty
    - std::min<size_t>
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::subspan
    - load_le
    - skein_feedfwd
    - secure_vector::data
    - static_cast<uint64_t>
    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:
    - Botan::Skein_512::ubi_512
    - auto::data
    - in_alignment
    - BufferSlicer::empty
    - data
    - handle_unaligned_data
    - size
    - aligned_data_to_process
    - auto::size
    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:
    - Botan::Skein_512::ubi_512
    - Botan::Skein_512::reset_tweak
    - fill_up_with_zeros
    - std::span<uint8_t>::first
    - consume
    - Botan::Skein_512::initial_block
    - elements_in_buffer
    - static_cast<uint64_t>
    - copy_out_le
    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:
    - Botan::Skein_512::initial_block
    - std::make_unique<Threefish_512>
    - Invalid_Argument
    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:
    - Botan::Skein_512::ubi_512
    - Botan::Skein_512::reset_tweak
    - store_le
    - set_key
    - length
    - empty
    - as_span_of_bytes
    - Invalid_Argument
    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>::empty
    - std::min<size_t>
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::subspan
    - load_le
    - skein_feedfwd
    - secure_vector::data
    - static_cast<uint64_t>
    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:
    - Botan::Skein_512::ubi_512
    - auto::data
    - in_alignment
    - BufferSlicer::empty
    - data
    - handle_unaligned_data
    - size
    - aligned_data_to_process
    - auto::size
    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:
    - Botan::Skein_512::ubi_512
    - Botan::Skein_512::reset_tweak
    - fill_up_with_zeros
    - std::span<uint8_t>::first
    - consume
    - Botan::Skein_512::initial_block
    - elements_in_buffer
    - static_cast<uint64_t>
    - copy_out_le
    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: std::make_unique<Streebog>
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:24,1
    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: 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:29,1
    - Dst: fmt
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:29,1
    - Dst: Botan::Streebog::clear
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:32,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - output_bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 33
    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: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::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:44,1
    - Dst: zeroise
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:45,1
    - Dst: std::fill
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:48,1
    - Dst: begin
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:48,1
    - Dst: end
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: Botan::Streebog::clear
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.cpp
    functionUses: 2
    functionsReached:
    - std::fill
    - zeroise
    - end
    - begin
    - Botan::Streebog::clear
    linkageType: ''
    returnType: void
    signature: void Streebog::clear()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:57,1
    - Dst: handle_unaligned_data
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:58,1
    - Dst: Botan::Streebog::compress
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:59,1
    - Dst: auto::data
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:59,1
    - Dst: in_alignment
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:63,1
    - Dst: next_aligned_block_to_process
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:64,1
    - Dst: Botan::Streebog::compress
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:65,1
    - Dst: auto::data
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:65,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 70
    functionName: Botan::Streebog::add_data
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - in_alignment
    - BufferSlicer::empty
    - handle_unaligned_data
    - next_aligned_block_to_process
    - Botan::Streebog::compress
    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:76,1
    - Dst: append
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:79,1
    - Dst: fill_up_with_zeros
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:80,1
    - Dst: Botan::Streebog::compress
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:82,1
    - Dst: consume
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:82,1
    - Dst: fill_up_with_zeros
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:85,1
    - Dst: store_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:86,1
    - Dst: directly_modify_first
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:86,1
    - Dst: Botan::Streebog::compress
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:87,1
    - Dst: consume
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:87,1
    - Dst: Botan::Streebog::compress_64
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:89,1
    - Dst: data
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:89,1
    - Dst: std::memcpy
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:91,1
    - Dst: std::span<uint8_t>::data
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:91,1
    - Dst: Botan::Streebog::output_length
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:91,1
    - Dst: Botan::Streebog::output_length
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:91,1
    - Dst: Botan::Streebog::clear
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 93
    functionName: Botan::Streebog::final_result
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.cpp
    functionUses: 0
    functionsReached:
    - fill_up_with_zeros
    - directly_modify_first
    - store_le
    - data
    - Botan::Streebog::compress_64
    - append
    - consume
    - std::span<uint8_t>::data
    - Botan::Streebog::output_length
    - elements_in_buffer
    - Botan::Streebog::compress
    - Botan::Streebog::clear
    - std::memcpy
    linkageType: ''
    returnType: void
    signature: void Streebog::final_result(std::span<uint8_t> output)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::reverse_bytes
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:101,1
    - Dst: Botan::store_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:103,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 106
    functionName: Botan::force_le
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.cpp
    functionUses: 0
    functionsReached:
    - Botan::store_le
    - reinterpret_cast<uint8_t*>
    - Botan::reverse_bytes
    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:110,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:113,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:113,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:114,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:114,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
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - block
    argTypes:
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 118
    functionName: Botan::lps
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.cpp
    functionUses: 0
    functionsReached:
    - Botan::force_le
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: void
    signature: void lps(uint64_t block[8])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::reverse_bytes
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:101,1
    - Dst: Botan::store_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:103,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 106
    functionName: Botan::force_le
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.cpp
    functionUses: 1
    functionsReached:
    - Botan::store_le
    - reinterpret_cast<uint8_t*>
    - Botan::reverse_bytes
    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:110,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:113,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:113,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:114,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:114,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
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - block
    argTypes:
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 118
    functionName: Botan::lps
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.cpp
    functionUses: 0
    functionsReached:
    - Botan::force_le
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: void
    signature: void lps(uint64_t block[8])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:124,1
    - Dst: Botan::Streebog::compress_64
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - input
    - last_block
    argTypes:
    - uint8_t[]
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 127
    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:130,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:135,1
    - Dst: data
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:135,1
    - Dst: lps
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:137,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:139,1
    - Dst: force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:147,1
    - Dst: lps
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:149,1
    - Dst: lps
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:151,1
    - Dst: force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:164,1
    - Dst: force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:165,1
    - Dst: force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:168,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - M
    - last_block
    argTypes:
    - uint64_t[]
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 174
    functionName: Botan::Streebog::compress_64
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.cpp
    functionUses: 2
    functionsReached:
    - copy_mem
    - lps
    - force_le
    - data
    linkageType: ''
    returnType: void
    signature: void Streebog::compress_64(const uint64_t M[], bool last_block)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Streebog>
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:24,1
    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: 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:29,1
    - Dst: fmt
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:29,1
    - Dst: Botan::Streebog::clear
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:32,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - output_bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 33
    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: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::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:44,1
    - Dst: zeroise
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:45,1
    - Dst: std::fill
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:48,1
    - Dst: begin
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:48,1
    - Dst: end
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: Botan::Streebog::clear
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.cpp
    functionUses: 5
    functionsReached:
    - std::fill
    - zeroise
    - end
    - begin
    - Botan::Streebog::clear
    linkageType: ''
    returnType: void
    signature: void Streebog::clear()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:57,1
    - Dst: handle_unaligned_data
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:58,1
    - Dst: Botan::Streebog::compress
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:59,1
    - Dst: auto::data
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:59,1
    - Dst: in_alignment
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:63,1
    - Dst: next_aligned_block_to_process
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:64,1
    - Dst: Botan::Streebog::compress
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:65,1
    - Dst: auto::data
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:65,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 54
    functionDepth: 2
    functionLinenumber: 54
    functionLinenumberEnd: 70
    functionName: Botan::Streebog::add_data
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - in_alignment
    - BufferSlicer::empty
    - handle_unaligned_data
    - next_aligned_block_to_process
    - Botan::Streebog::compress
    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:76,1
    - Dst: append
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:79,1
    - Dst: fill_up_with_zeros
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:80,1
    - Dst: Botan::Streebog::compress
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:82,1
    - Dst: consume
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:82,1
    - Dst: fill_up_with_zeros
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:85,1
    - Dst: store_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:86,1
    - Dst: directly_modify_first
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:86,1
    - Dst: Botan::Streebog::compress
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:87,1
    - Dst: consume
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:87,1
    - Dst: Botan::Streebog::compress_64
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:89,1
    - Dst: data
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:89,1
    - Dst: std::memcpy
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:91,1
    - Dst: std::span<uint8_t>::data
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:91,1
    - Dst: Botan::Streebog::output_length
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:91,1
    - Dst: Botan::Streebog::output_length
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:91,1
    - Dst: Botan::Streebog::clear
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 93
    functionName: Botan::Streebog::final_result
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.cpp
    functionUses: 0
    functionsReached:
    - fill_up_with_zeros
    - directly_modify_first
    - store_le
    - data
    - Botan::Streebog::compress_64
    - append
    - consume
    - std::span<uint8_t>::data
    - Botan::Streebog::output_length
    - elements_in_buffer
    - Botan::Streebog::compress
    - Botan::Streebog::clear
    - std::memcpy
    linkageType: ''
    returnType: void
    signature: void Streebog::final_result(std::span<uint8_t> output)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::reverse_bytes
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:101,1
    - Dst: Botan::store_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:103,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 106
    functionName: Botan::force_le
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.cpp
    functionUses: 2
    functionsReached:
    - Botan::store_le
    - reinterpret_cast<uint8_t*>
    - Botan::reverse_bytes
    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:110,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:113,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:113,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:114,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:114,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
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - block
    argTypes:
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 118
    functionName: Botan::lps
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.cpp
    functionUses: 0
    functionsReached:
    - Botan::force_le
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: void
    signature: void lps(uint64_t block[8])
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::reverse_bytes
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:101,1
    - Dst: Botan::store_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:103,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:103,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 106
    functionName: Botan::force_le
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.cpp
    functionUses: 3
    functionsReached:
    - Botan::store_le
    - reinterpret_cast<uint8_t*>
    - Botan::reverse_bytes
    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:110,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:113,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:113,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:114,1
    - Dst: Botan::force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:114,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
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - block
    argTypes:
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 108
    functionDepth: 2
    functionLinenumber: 108
    functionLinenumberEnd: 118
    functionName: Botan::lps
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.cpp
    functionUses: 0
    functionsReached:
    - Botan::force_le
    - reinterpret_cast<const uint8_t*>
    linkageType: ''
    returnType: void
    signature: void lps(uint64_t block[8])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:124,1
    - Dst: Botan::Streebog::compress_64
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - input
    - last_block
    argTypes:
    - uint8_t[]
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 127
    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:130,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:135,1
    - Dst: data
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:135,1
    - Dst: lps
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:137,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:139,1
    - Dst: force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:147,1
    - Dst: lps
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:149,1
    - Dst: lps
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:151,1
    - Dst: force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:164,1
    - Dst: force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:165,1
    - Dst: force_le
      Src: /src/botan/src/lib/hash/streebog/streebog.cpp:168,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 2
    argNames:
    - M
    - last_block
    argTypes:
    - uint64_t[]
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 174
    functionName: Botan::Streebog::compress_64
    functionSourceFile: /src/botan/src/lib/hash/streebog/streebog.cpp
    functionUses: 4
    functionsReached:
    - copy_mem
    - lps
    - force_le
    - data
    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: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    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: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    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: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    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: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    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: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    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: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    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:36,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:38,1
    - Dst: Botan::BLAKE2b::state_init
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:41,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - output_bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: Botan::BLAKE2b::BLAKE2b
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.cpp
    functionUses: 0
    functionsReached:
    - size
    - Invalid_Argument
    - Botan::BLAKE2b::state_init
    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:45,1
    - Dst: data
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:45,1
    - Dst: data
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:45,1
    - Dst: size
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:45,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:46,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:46,1
    - Dst: Botan::BLAKE2b::output_length
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:46,1
    - Dst: Botan::BLAKE2b::clear
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:50,1
    - Dst: append
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 54
    functionName: Botan::BLAKE2b::state_init
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.cpp
    functionUses: 1
    functionsReached:
    - Botan::BLAKE2b::clear
    - data
    - copy_mem
    - size
    - static_cast<uint8_t>
    - append
    - Botan::BLAKE2b::output_length
    linkageType: ''
    returnType: void
    signature: void BLAKE2b::state_init()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - 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
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:66,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: 67
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 67
    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: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
    - Dst: Botan::G
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:92,1
    - Dst: Botan::G
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - v
    - M
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 94
    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: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
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:66,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: 67
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 67
    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: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
    - Dst: Botan::G
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:92,1
    - Dst: Botan::G
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - v
    - M
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 94
    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:107,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:122,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:123,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:124,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:125,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:126,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:127,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:128,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:129,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:130,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:131,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:132,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:133,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: 139
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 139
    functionName: Botan::BLAKE2b::compress
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.cpp
    functionUses: 0
    functionsReached:
    - ROUND<14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3>
    - ROUND<12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11>
    - ROUND<13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10>
    - ROUND<6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5>
    - ROUND<7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8>
    - 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>
    - load_le
    - ROUND<2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9>
    - ROUND<9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13>
    - ROUND<11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4>
    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:144,1
    - Dst: handle_unaligned_data
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:145,1
    - Dst: Botan::BLAKE2b::compress
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:146,1
    - Dst: auto::data
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:146,1
    - Dst: in_alignment
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:149,1
    - Dst: aligned_data_to_process
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:150,1
    - Dst: Botan::BLAKE2b::compress
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:152,1
    - Dst: data
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:152,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 156
    functionName: Botan::BLAKE2b::add_data
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - in_alignment
    - BufferSlicer::empty
    - data
    - handle_unaligned_data
    - Botan::BLAKE2b::compress
    - aligned_data_to_process
    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:159,1
    - Dst: fill_up_with_zeros
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:160,1
    - Dst: Botan::BLAKE2b::compress
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:163,1
    - Dst: consume
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:163,1
    - Dst: copy_out_le
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:164,1
    - Dst: std::span<uint8_t>::first
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:164,1
    - Dst: Botan::BLAKE2b::output_length
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:164,1
    - Dst: Botan::BLAKE2b::state_init
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 166
    functionName: Botan::BLAKE2b::final_result
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.cpp
    functionUses: 0
    functionsReached:
    - fill_up_with_zeros
    - std::span<uint8_t>::first
    - Botan::BLAKE2b::state_init
    - Botan::BLAKE2b::compress
    - consume
    - elements_in_buffer
    - Botan::BLAKE2b::output_length
    - copy_out_le
    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:169,1
    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::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:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 174
    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: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::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:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 182
    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: 186
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 186
    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:189,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:189,1
    - Dst: size
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:189,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:191,1
    - Dst: resize
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:192,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:194,1
    - Dst: size
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:195,1
    - Dst: clear_mem
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:196,1
    - Dst: data
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:196,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:199,1
    - Dst: data
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:199,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:199,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:199,1
    - Dst: Botan::BLAKE2b::state_init
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 201
    functionName: Botan::BLAKE2b::key_schedule
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - resize
    - std::span<const uint8_t>::data
    - data
    - clear_mem
    - std::span<const uint8_t>::size
    - copy_mem
    - size
    - Botan::BLAKE2b::state_init
    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:204,1
    - Dst: Botan::BLAKE2b::clear
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:205,1
    - Dst: zeroise
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:206,1
    - Dst: Botan::BLAKE2b::state_init
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 209
    functionName: Botan::BLAKE2b::clear
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.cpp
    functionUses: 2
    functionsReached:
    - Botan::BLAKE2b::clear
    - Botan::BLAKE2b::state_init
    - zeroise
    linkageType: ''
    returnType: void
    signature: void BLAKE2b::clear()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:36,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:38,1
    - Dst: Botan::BLAKE2b::state_init
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:41,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - output_bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: Botan::BLAKE2b::BLAKE2b
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.cpp
    functionUses: 0
    functionsReached:
    - size
    - Invalid_Argument
    - Botan::BLAKE2b::state_init
    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:45,1
    - Dst: data
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:45,1
    - Dst: data
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:45,1
    - Dst: size
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:45,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:46,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:46,1
    - Dst: Botan::BLAKE2b::output_length
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:46,1
    - Dst: Botan::BLAKE2b::clear
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:50,1
    - Dst: append
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 54
    functionName: Botan::BLAKE2b::state_init
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.cpp
    functionUses: 5
    functionsReached:
    - Botan::BLAKE2b::clear
    - data
    - copy_mem
    - size
    - static_cast<uint8_t>
    - append
    - Botan::BLAKE2b::output_length
    linkageType: ''
    returnType: void
    signature: void BLAKE2b::state_init()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - 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
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:66,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: 67
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 67
    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: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
    - Dst: Botan::G
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:92,1
    - Dst: Botan::G
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - v
    - M
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 94
    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: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
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:66,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: 67
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 67
    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: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
    - Dst: Botan::G
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:92,1
    - Dst: Botan::G
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - v
    - M
    argTypes:
    - uint64_t*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 94
    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:107,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:122,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:123,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:124,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:125,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:126,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:127,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:128,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:129,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:130,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:131,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:132,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:133,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: 139
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 139
    functionName: Botan::BLAKE2b::compress
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.cpp
    functionUses: 2
    functionsReached:
    - ROUND<14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3>
    - ROUND<12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11>
    - ROUND<13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10>
    - ROUND<6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5>
    - ROUND<7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8>
    - 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>
    - load_le
    - ROUND<2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9>
    - ROUND<9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13>
    - ROUND<11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4>
    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:144,1
    - Dst: handle_unaligned_data
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:145,1
    - Dst: Botan::BLAKE2b::compress
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:146,1
    - Dst: auto::data
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:146,1
    - Dst: in_alignment
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:149,1
    - Dst: aligned_data_to_process
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:150,1
    - Dst: Botan::BLAKE2b::compress
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:152,1
    - Dst: data
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:152,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 156
    functionName: Botan::BLAKE2b::add_data
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - in_alignment
    - BufferSlicer::empty
    - data
    - handle_unaligned_data
    - Botan::BLAKE2b::compress
    - aligned_data_to_process
    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:159,1
    - Dst: fill_up_with_zeros
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:160,1
    - Dst: Botan::BLAKE2b::compress
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:163,1
    - Dst: consume
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:163,1
    - Dst: copy_out_le
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:164,1
    - Dst: std::span<uint8_t>::first
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:164,1
    - Dst: Botan::BLAKE2b::output_length
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:164,1
    - Dst: Botan::BLAKE2b::state_init
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 158
    functionDepth: 2
    functionLinenumber: 158
    functionLinenumberEnd: 166
    functionName: Botan::BLAKE2b::final_result
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.cpp
    functionUses: 0
    functionsReached:
    - fill_up_with_zeros
    - std::span<uint8_t>::first
    - Botan::BLAKE2b::state_init
    - Botan::BLAKE2b::compress
    - consume
    - elements_in_buffer
    - Botan::BLAKE2b::output_length
    - copy_out_le
    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:169,1
    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::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:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 174
    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: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::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:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 182
    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: 186
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 186
    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:189,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:189,1
    - Dst: size
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:189,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:191,1
    - Dst: resize
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:192,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:194,1
    - Dst: size
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:195,1
    - Dst: clear_mem
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:196,1
    - Dst: data
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:196,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:199,1
    - Dst: data
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:199,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:199,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:199,1
    - Dst: Botan::BLAKE2b::state_init
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 201
    functionName: Botan::BLAKE2b::key_schedule
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - resize
    - std::span<const uint8_t>::data
    - data
    - clear_mem
    - std::span<const uint8_t>::size
    - copy_mem
    - size
    - Botan::BLAKE2b::state_init
    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:204,1
    - Dst: Botan::BLAKE2b::clear
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:205,1
    - Dst: zeroise
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:206,1
    - Dst: Botan::BLAKE2b::state_init
      Src: /src/botan/src/lib/hash/blake2/blake2b.cpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 209
    functionName: Botan::BLAKE2b::clear
    functionSourceFile: /src/botan/src/lib/hash/blake2/blake2b.cpp
    functionUses: 4
    functionsReached:
    - Botan::BLAKE2b::clear
    - Botan::BLAKE2b::state_init
    - 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:
    - std::span<const uint8_t>::last
    - std::span<const uint8_t>::data
    - adler32_update
    - std::span<const uint8_t>::size
    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
    - store_be
    - std::span<uint8_t>::data
    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:
    - std::span<const uint8_t>::last
    - std::span<const uint8_t>::data
    - adler32_update
    - std::span<const uint8_t>::size
    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
    - store_be
    - std::span<uint8_t>::data
    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>::last
    - std::span<const uint8_t>::size
    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:
    - store_be
    - Botan::CRC32::clear
    - std::span<uint8_t>::data
    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>::last
    - std::span<const uint8_t>::size
    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:
    - store_be
    - Botan::CRC32::clear
    - std::span<uint8_t>::data
    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>::empty
    - std::span<const uint8_t>::data
    - process8
    - std::span<const uint8_t>::size
    - load_le
    - reinterpret_cast<uintptr_t>
    - std::span<const uint8_t>::front
    - std::span<const uint8_t>::last
    - process32
    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<3>
    - Botan::CRC24::clear
    - get_byte<2>
    - get_byte<1>
    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>::empty
    - std::span<const uint8_t>::data
    - process8
    - std::span<const uint8_t>::size
    - load_le
    - reinterpret_cast<uintptr_t>
    - std::span<const uint8_t>::front
    - std::span<const uint8_t>::last
    - process32
    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<3>
    - Botan::CRC24::clear
    - get_byte<2>
    - get_byte<1>
    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::rho
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_f.h:33,1
    - Dst: Botan::sigma
      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::choose
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_f.h:36,1
    - Dst: Botan::majority
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_f.h:38,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: 40
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 40
    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::sigma
    - 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:47,1
    - Dst: Botan::rho
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_f.h:48,1
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_f.h:49,1
    - Dst: Botan::majority
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_f.h:51,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: 52
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 52
    functionName: Botan::SHA2_32_F
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_f.h
    functionUses: 0
    functionsReached:
    - Botan::majority
    - Botan::choose
    - 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::rho
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_f.h:33,1
    - Dst: Botan::sigma
      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::choose
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_f.h:36,1
    - Dst: Botan::majority
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_f.h:38,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: 40
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 40
    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::sigma
    - 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:47,1
    - Dst: Botan::rho
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_f.h:48,1
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_f.h:49,1
    - Dst: Botan::majority
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_f.h:51,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: 52
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 52
    functionName: Botan::SHA2_32_F
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_f.h
    functionUses: 0
    functionsReached:
    - Botan::majority
    - Botan::choose
    - 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:28,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:34,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:40,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:46,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 52
    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:28,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:34,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:40,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:46,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 52
    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:63,1
    - Dst: Botan::BOTAN_FN_ISA_SHANI::compress_digest_x86
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:64,1
    - Dst: has
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:69,1
    - Dst: Botan::BOTAN_FN_ISA_SHA2::compress_digest_armv8
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:70,1
    - Dst: has
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:75,1
    - Dst: Botan::BOTAN_SCRUB_STACK_AFTER_RETURN::compress_digest_x86_avx2
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:76,1
    - Dst: has
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:81,1
    - Dst: Botan::SHA_256::compress_digest_x86_simd
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:82,1
    - Dst: load_be
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:100,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:100,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:118,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: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:135,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: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:152,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: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
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:169,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:170,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: 183
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 183
    functionName: Botan::BOTAN_SCRUB_STACK_AFTER_RETURN::compress_digest
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp
    functionUses: 0
    functionsReached:
    - has
    - Botan::BOTAN_FN_ISA_SHA2::compress_digest_armv8
    - Botan::SHA_256::compress_digest_x86_simd
    - load_be
    - Botan::BOTAN_SCRUB_STACK_AFTER_RETURN::compress_digest_x86_avx2
    - Botan::BOTAN_FN_ISA_SHANI::compress_digest_x86
    - SHA2_32_F
    - BufferSlicer::take
    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: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::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:190,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: 191
      start: 189
    functionDepth: 3
    functionLinenumber: 189
    functionLinenumberEnd: 191
    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:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' digest'
    argTypes:
    - digest_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 195
    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: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_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: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_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:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 207
    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:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 211
    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: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::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:218,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: 219
      start: 217
    functionDepth: 3
    functionLinenumber: 217
    functionLinenumberEnd: 219
    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:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' digest'
    argTypes:
    - digest_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 223
    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:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 227
    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:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 231
    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:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 235
    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:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 239
    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:28,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:34,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:40,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:46,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 52
    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:28,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:34,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:40,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:46,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 52
    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:63,1
    - Dst: Botan::BOTAN_FN_ISA_SHANI::compress_digest_x86
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:64,1
    - Dst: has
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:69,1
    - Dst: Botan::BOTAN_FN_ISA_SHA2::compress_digest_armv8
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:70,1
    - Dst: has
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:75,1
    - Dst: Botan::BOTAN_SCRUB_STACK_AFTER_RETURN::compress_digest_x86_avx2
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:76,1
    - Dst: has
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:81,1
    - Dst: Botan::SHA_256::compress_digest_x86_simd
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:82,1
    - Dst: load_be
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:100,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:100,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:118,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: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:135,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: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:152,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: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
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:169,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp:170,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: 183
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 183
    functionName: Botan::BOTAN_SCRUB_STACK_AFTER_RETURN::compress_digest
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32.cpp
    functionUses: 2
    functionsReached:
    - has
    - Botan::BOTAN_FN_ISA_SHA2::compress_digest_armv8
    - Botan::SHA_256::compress_digest_x86_simd
    - load_be
    - Botan::BOTAN_SCRUB_STACK_AFTER_RETURN::compress_digest_x86_avx2
    - Botan::BOTAN_FN_ISA_SHANI::compress_digest_x86
    - SHA2_32_F
    - BufferSlicer::take
    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: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::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:190,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: 191
      start: 189
    functionDepth: 3
    functionLinenumber: 189
    functionLinenumberEnd: 191
    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:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' digest'
    argTypes:
    - digest_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 195
    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: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_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: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_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:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 207
    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:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 211
    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: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::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:218,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: 219
      start: 217
    functionDepth: 3
    functionLinenumber: 217
    functionLinenumberEnd: 219
    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:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' digest'
    argTypes:
    - digest_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 223
    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:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 227
    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:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 231
    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:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 235
    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:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 239
    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:24,1
    - Dst: _mm_alignr_epi8
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:24,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:24,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: Botan::alignr4
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 0
    functionsReached:
    - raw
    - _mm_alignr_epi8
    - 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:29,1
    - Dst: _mm_srli_epi64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:29,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: Botan::shr64
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 0
    functionsReached:
    - raw
    - _mm_srli_epi64
    - SIMD_4x32
    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:34,1
    - Dst: _mm_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:34,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: Botan::shuffle_32
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 0
    functionsReached:
    - raw
    - _mm_shuffle_epi32
    - SIMD_4x32
    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:38,1
    - Dst: _mm256_alignr_epi8
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:38,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:38,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - SIMD_8x32
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: Botan::alignr4
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 0
    functionsReached:
    - raw
    - _mm256_alignr_epi8
    - SIMD_8x32
    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:43,1
    - Dst: _mm256_srli_epi64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:43,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: Botan::shr64
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 0
    functionsReached:
    - raw
    - _mm256_srli_epi64
    - SIMD_8x32
    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:48,1
    - Dst: _mm256_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:48,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: Botan::shuffle_32
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 0
    functionsReached:
    - _mm256_shuffle_epi32
    - raw
    - SIMD_8x32
    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:60,1
    - Dst: SIMD_T
      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:63,1
    - Dst: Botan::alignr4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:64,1
    - Dst: auto::template shl<32 - sigma0_1>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:66,1
    - Dst: auto::template shr<sigma0_0>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:67,1
    - Dst: auto::template shr<sigma0_2>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:68,1
    - Dst: Botan::shuffle_32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:71,1
    - Dst: auto::template shr<sigma0_1 - sigma0_0>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:72,1
    - Dst: auto::template shl<sigma0_1 - sigma0_0>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:74,1
    - Dst: auto::template shr<sigma1_2>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:75,1
    - Dst: Botan::shr64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:76,1
    - Dst: Botan::shr64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:80,1
    - Dst: Botan::SIMD_4x32::byte_shuffle
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:81,1
    - Dst: Botan::shuffle_32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:83,1
    - Dst: auto::template shr<sigma1_2>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:84,1
    - Dst: Botan::shr64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:85,1
    - Dst: Botan::shr64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:87,1
    - Dst: Botan::SIMD_4x32::byte_shuffle
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 1
    argNames:
    - x
    argTypes:
    - SIMD_T[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 97
    functionName: Botan::next_w
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 0
    functionsReached:
    - SIMD_T
    - auto::template shr<sigma0_2>
    - Botan::SIMD_4x32::byte_shuffle
    - auto::template shl<32 - sigma0_1>
    - Botan::shuffle_32
    - auto::template shr<sigma0_1 - sigma0_0>
    - auto::template shr<sigma0_0>
    - auto::template shl<sigma0_1 - sigma0_0>
    - Botan::alignr4
    - auto::template shr<sigma1_2>
    - Botan::shr64
    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:24,1
    - Dst: _mm_alignr_epi8
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:24,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:24,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: Botan::alignr4
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 1
    functionsReached:
    - raw
    - _mm_alignr_epi8
    - 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:29,1
    - Dst: _mm_srli_epi64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:29,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: Botan::shr64
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 1
    functionsReached:
    - raw
    - _mm_srli_epi64
    - SIMD_4x32
    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:34,1
    - Dst: _mm_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:34,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: Botan::shuffle_32
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 1
    functionsReached:
    - raw
    - _mm_shuffle_epi32
    - SIMD_4x32
    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:38,1
    - Dst: _mm256_alignr_epi8
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:38,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:38,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - SIMD_8x32
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: Botan::alignr4
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 1
    functionsReached:
    - raw
    - _mm256_alignr_epi8
    - SIMD_8x32
    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:43,1
    - Dst: _mm256_srli_epi64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:43,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: Botan::shr64
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 1
    functionsReached:
    - raw
    - _mm256_srli_epi64
    - SIMD_8x32
    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:48,1
    - Dst: _mm256_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:48,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: Botan::shuffle_32
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 1
    functionsReached:
    - _mm256_shuffle_epi32
    - raw
    - SIMD_8x32
    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:60,1
    - Dst: SIMD_T
      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:63,1
    - Dst: Botan::alignr4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:64,1
    - Dst: auto::template shl<32 - sigma0_1>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:66,1
    - Dst: auto::template shr<sigma0_0>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:67,1
    - Dst: auto::template shr<sigma0_2>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:68,1
    - Dst: Botan::shuffle_32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:71,1
    - Dst: auto::template shr<sigma0_1 - sigma0_0>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:72,1
    - Dst: auto::template shl<sigma0_1 - sigma0_0>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:74,1
    - Dst: auto::template shr<sigma1_2>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:75,1
    - Dst: Botan::shr64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:76,1
    - Dst: Botan::shr64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:80,1
    - Dst: Botan::SIMD_4x32::byte_shuffle
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:81,1
    - Dst: Botan::shuffle_32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:83,1
    - Dst: auto::template shr<sigma1_2>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:84,1
    - Dst: Botan::shr64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:85,1
    - Dst: Botan::shr64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:87,1
    - Dst: Botan::SIMD_4x32::byte_shuffle
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 1
    argNames:
    - x
    argTypes:
    - SIMD_T[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 97
    functionName: Botan::next_w
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 0
    functionsReached:
    - SIMD_T
    - auto::template shr<sigma0_2>
    - Botan::SIMD_4x32::byte_shuffle
    - auto::template shl<32 - sigma0_1>
    - Botan::shuffle_32
    - auto::template shr<sigma0_1 - sigma0_0>
    - auto::template shr<sigma0_0>
    - auto::template shl<sigma0_1 - sigma0_0>
    - Botan::alignr4
    - auto::template shr<sigma1_2>
    - Botan::shr64
    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:147,1
    - Dst: Botan::SIMD_8x32::load_be128
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:153,1
    - Dst: Botan::SIMD_8x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:154,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:155,1
    - Dst: next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:162,1
    - Dst: Botan::SIMD_8x32::load_le
      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:164,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:165,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:166,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:167,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:169,1
    - Dst: next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:171,1
    - Dst: Botan::SIMD_8x32::load_le
      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:173,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:174,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:175,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:176,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:178,1
    - Dst: next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:180,1
    - Dst: Botan::SIMD_8x32::load_le
      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: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: auto::store_le128
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:187,1
    - Dst: next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:189,1
    - Dst: Botan::SIMD_8x32::load_le
      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: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: auto::store_le128
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:196,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:199,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:200,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:201,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:202,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:203,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:204,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:205,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: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:239,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: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:256,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: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: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:273,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:274,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:275,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:277,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:278,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:279,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:280,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:281,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:282,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:283,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:284,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:285,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:286,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:287,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:288,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:289,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:290,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:291,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:292,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:308,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:309,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:310,1
    - Dst: next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:317,1
    - Dst: Botan::SIMD_4x32::load_le
      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:319,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:320,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:321,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:322,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:324,1
    - Dst: next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:326,1
    - Dst: Botan::SIMD_4x32::load_le
      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:328,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:329,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:330,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:331,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:333,1
    - Dst: next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:335,1
    - Dst: Botan::SIMD_4x32::load_le
      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: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: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:342,1
    - Dst: next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:344,1
    - Dst: Botan::SIMD_4x32::load_le
      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: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
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:351,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:354,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:355,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:356,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:357,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:358,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:359,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:360,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:361,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:362,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:363,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:364,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:365,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:366,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:367,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:368,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:369,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: 380
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 380
    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:
    - std::span<const uint8_t>::data
    - auto::store_le
    - next_w
    - auto::store_le128
    - SHA2_32_F
    - Botan::SIMD_8x32::load_le
    - Botan::SIMD_4x32::load_be
    - Botan::SIMD_8x32::load_be128
    - Botan::SIMD_4x32::load_le
    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:24,1
    - Dst: _mm_alignr_epi8
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:24,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:24,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: Botan::alignr4
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 2
    functionsReached:
    - raw
    - _mm_alignr_epi8
    - 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:29,1
    - Dst: _mm_srli_epi64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:29,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: Botan::shr64
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 2
    functionsReached:
    - raw
    - _mm_srli_epi64
    - SIMD_4x32
    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:34,1
    - Dst: _mm_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:34,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: Botan::shuffle_32
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 2
    functionsReached:
    - raw
    - _mm_shuffle_epi32
    - SIMD_4x32
    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:38,1
    - Dst: _mm256_alignr_epi8
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:38,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:38,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - SIMD_8x32
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: Botan::alignr4
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 2
    functionsReached:
    - raw
    - _mm256_alignr_epi8
    - SIMD_8x32
    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:43,1
    - Dst: _mm256_srli_epi64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:43,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: Botan::shr64
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 2
    functionsReached:
    - raw
    - _mm256_srli_epi64
    - SIMD_8x32
    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:48,1
    - Dst: _mm256_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:48,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: Botan::shuffle_32
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 2
    functionsReached:
    - _mm256_shuffle_epi32
    - raw
    - SIMD_8x32
    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:60,1
    - Dst: SIMD_T
      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:63,1
    - Dst: Botan::alignr4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:64,1
    - Dst: auto::template shl<32 - sigma0_1>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:66,1
    - Dst: auto::template shr<sigma0_0>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:67,1
    - Dst: auto::template shr<sigma0_2>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:68,1
    - Dst: Botan::shuffle_32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:71,1
    - Dst: auto::template shr<sigma0_1 - sigma0_0>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:72,1
    - Dst: auto::template shl<sigma0_1 - sigma0_0>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:74,1
    - Dst: auto::template shr<sigma1_2>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:75,1
    - Dst: Botan::shr64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:76,1
    - Dst: Botan::shr64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:80,1
    - Dst: Botan::SIMD_4x32::byte_shuffle
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:81,1
    - Dst: Botan::shuffle_32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:83,1
    - Dst: auto::template shr<sigma1_2>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:84,1
    - Dst: Botan::shr64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:85,1
    - Dst: Botan::shr64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:87,1
    - Dst: Botan::SIMD_4x32::byte_shuffle
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 1
    argNames:
    - x
    argTypes:
    - SIMD_T[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 97
    functionName: Botan::next_w
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 0
    functionsReached:
    - SIMD_T
    - auto::template shr<sigma0_2>
    - Botan::SIMD_4x32::byte_shuffle
    - auto::template shl<32 - sigma0_1>
    - Botan::shuffle_32
    - auto::template shr<sigma0_1 - sigma0_0>
    - auto::template shr<sigma0_0>
    - auto::template shl<sigma0_1 - sigma0_0>
    - Botan::alignr4
    - auto::template shr<sigma1_2>
    - Botan::shr64
    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:24,1
    - Dst: _mm_alignr_epi8
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:24,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:24,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 25
    functionName: Botan::alignr4
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 3
    functionsReached:
    - raw
    - _mm_alignr_epi8
    - 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:29,1
    - Dst: _mm_srli_epi64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:29,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: Botan::shr64
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 3
    functionsReached:
    - raw
    - _mm_srli_epi64
    - SIMD_4x32
    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:34,1
    - Dst: _mm_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:34,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: Botan::shuffle_32
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 3
    functionsReached:
    - raw
    - _mm_shuffle_epi32
    - SIMD_4x32
    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:38,1
    - Dst: _mm256_alignr_epi8
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:38,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:38,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - SIMD_8x32
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: Botan::alignr4
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 3
    functionsReached:
    - raw
    - _mm256_alignr_epi8
    - SIMD_8x32
    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:43,1
    - Dst: _mm256_srli_epi64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:43,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: Botan::shr64
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 3
    functionsReached:
    - raw
    - _mm256_srli_epi64
    - SIMD_8x32
    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:48,1
    - Dst: _mm256_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:48,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - SIMD_8x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: Botan::shuffle_32
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 3
    functionsReached:
    - _mm256_shuffle_epi32
    - raw
    - SIMD_8x32
    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:60,1
    - Dst: SIMD_T
      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:63,1
    - Dst: Botan::alignr4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:64,1
    - Dst: auto::template shl<32 - sigma0_1>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:66,1
    - Dst: auto::template shr<sigma0_0>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:67,1
    - Dst: auto::template shr<sigma0_2>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:68,1
    - Dst: Botan::shuffle_32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:71,1
    - Dst: auto::template shr<sigma0_1 - sigma0_0>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:72,1
    - Dst: auto::template shl<sigma0_1 - sigma0_0>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:74,1
    - Dst: auto::template shr<sigma1_2>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:75,1
    - Dst: Botan::shr64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:76,1
    - Dst: Botan::shr64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:80,1
    - Dst: Botan::SIMD_4x32::byte_shuffle
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:81,1
    - Dst: Botan::shuffle_32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:83,1
    - Dst: auto::template shr<sigma1_2>
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:84,1
    - Dst: Botan::shr64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:85,1
    - Dst: Botan::shr64
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:87,1
    - Dst: Botan::SIMD_4x32::byte_shuffle
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 1
    argNames:
    - x
    argTypes:
    - SIMD_T[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 97
    functionName: Botan::next_w
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp
    functionUses: 0
    functionsReached:
    - SIMD_T
    - auto::template shr<sigma0_2>
    - Botan::SIMD_4x32::byte_shuffle
    - auto::template shl<32 - sigma0_1>
    - Botan::shuffle_32
    - auto::template shr<sigma0_1 - sigma0_0>
    - auto::template shr<sigma0_0>
    - auto::template shl<sigma0_1 - sigma0_0>
    - Botan::alignr4
    - auto::template shr<sigma1_2>
    - Botan::shr64
    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:147,1
    - Dst: Botan::SIMD_8x32::load_be128
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:153,1
    - Dst: Botan::SIMD_8x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:154,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:155,1
    - Dst: next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:162,1
    - Dst: Botan::SIMD_8x32::load_le
      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:164,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:165,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:166,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:167,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:169,1
    - Dst: next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:171,1
    - Dst: Botan::SIMD_8x32::load_le
      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:173,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:174,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:175,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:176,1
    - Dst: auto::store_le128
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:178,1
    - Dst: next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:180,1
    - Dst: Botan::SIMD_8x32::load_le
      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: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: auto::store_le128
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:187,1
    - Dst: next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:189,1
    - Dst: Botan::SIMD_8x32::load_le
      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: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: auto::store_le128
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:196,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:199,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:200,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:201,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:202,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:203,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:204,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:205,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: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:239,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: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:256,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: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: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:273,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:274,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:275,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:277,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:278,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:279,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:280,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:281,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:282,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:283,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:284,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:285,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:286,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:287,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:288,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:289,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:290,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:291,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:292,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:308,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:309,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:310,1
    - Dst: next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:317,1
    - Dst: Botan::SIMD_4x32::load_le
      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:319,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:320,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:321,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:322,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:324,1
    - Dst: next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:326,1
    - Dst: Botan::SIMD_4x32::load_le
      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:328,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:329,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:330,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:331,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:333,1
    - Dst: next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:335,1
    - Dst: Botan::SIMD_4x32::load_le
      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: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: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:342,1
    - Dst: next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:344,1
    - Dst: Botan::SIMD_4x32::load_le
      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: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
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:351,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:354,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:355,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:356,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:357,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:358,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:359,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:360,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:361,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:362,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:363,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:364,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:365,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:366,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:367,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:368,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_avx2/sha2_32_avx2.cpp:369,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: 380
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 380
    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:
    - std::span<const uint8_t>::data
    - auto::store_le
    - next_w
    - auto::store_le128
    - SHA2_32_F
    - Botan::SIMD_8x32::load_le
    - Botan::SIMD_4x32::load_be
    - Botan::SIMD_8x32::load_be128
    - Botan::SIMD_4x32::load_le
    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:20,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:23,1
    - Dst: SIMD_4x32
      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:26,1
    - Dst: Botan::SIMD_4x32::alignr4
      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:29,1
    - Dst: auto::rotr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:29,1
    - Dst: auto::shr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:29,1
    - Dst: Botan::SIMD_4x32::byte_shuffle
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:31,1
    - Dst: auto::rotr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:32,1
    - Dst: auto::rotr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:32,1
    - Dst: auto::shr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:32,1
    - Dst: Botan::SIMD_4x32::byte_shuffle
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:35,1
    - Dst: auto::rotr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:36,1
    - Dst: auto::rotr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:36,1
    - Dst: auto::shr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - x
    argTypes:
    - SIMD_4x32[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 46
    functionName: Botan::sha256_simd_next_w
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp
    functionUses: 0
    functionsReached:
    - Botan::SIMD_4x32::byte_shuffle
    - auto::shr
    - SIMD_4x32
    - auto::rotr
    - Botan::SIMD_4x32::alignr4
    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:20,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:23,1
    - Dst: SIMD_4x32
      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:26,1
    - Dst: Botan::SIMD_4x32::alignr4
      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:29,1
    - Dst: auto::rotr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:29,1
    - Dst: auto::shr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:29,1
    - Dst: Botan::SIMD_4x32::byte_shuffle
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:31,1
    - Dst: auto::rotr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:32,1
    - Dst: auto::rotr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:32,1
    - Dst: auto::shr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:32,1
    - Dst: Botan::SIMD_4x32::byte_shuffle
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:35,1
    - Dst: auto::rotr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:36,1
    - Dst: auto::rotr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:36,1
    - Dst: auto::shr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - x
    argTypes:
    - SIMD_4x32[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 46
    functionName: Botan::sha256_simd_next_w
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp
    functionUses: 0
    functionsReached:
    - Botan::SIMD_4x32::byte_shuffle
    - auto::shr
    - SIMD_4x32
    - auto::rotr
    - Botan::SIMD_4x32::alignr4
    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:77,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:83,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:84,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:85,1
    - Dst: sha256_simd_next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:92,1
    - Dst: Botan::SIMD_4x32::load_le
      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:94,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:95,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:96,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:97,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:99,1
    - Dst: sha256_simd_next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:101,1
    - Dst: Botan::SIMD_4x32::load_le
      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:103,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:104,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:105,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:106,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:108,1
    - Dst: sha256_simd_next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:110,1
    - Dst: Botan::SIMD_4x32::load_le
      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:112,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:113,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:114,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:115,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:117,1
    - Dst: sha256_simd_next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:119,1
    - Dst: Botan::SIMD_4x32::load_le
      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:121,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:122,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:123,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:124,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:126,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
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:143,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:144,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: 155
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 155
    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:
    - std::span<const uint8_t>::data
    - auto::store_le
    - SHA2_32_F
    - Botan::SIMD_4x32::load_be
    - Botan::SIMD_4x32::load_le
    - sha256_simd_next_w
    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:20,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:23,1
    - Dst: SIMD_4x32
      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:26,1
    - Dst: Botan::SIMD_4x32::alignr4
      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:29,1
    - Dst: auto::rotr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:29,1
    - Dst: auto::shr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:29,1
    - Dst: Botan::SIMD_4x32::byte_shuffle
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:31,1
    - Dst: auto::rotr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:32,1
    - Dst: auto::rotr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:32,1
    - Dst: auto::shr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:32,1
    - Dst: Botan::SIMD_4x32::byte_shuffle
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:35,1
    - Dst: auto::rotr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:36,1
    - Dst: auto::rotr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:36,1
    - Dst: auto::shr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - x
    argTypes:
    - SIMD_4x32[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 46
    functionName: Botan::sha256_simd_next_w
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp
    functionUses: 0
    functionsReached:
    - Botan::SIMD_4x32::byte_shuffle
    - auto::shr
    - SIMD_4x32
    - auto::rotr
    - Botan::SIMD_4x32::alignr4
    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:20,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:23,1
    - Dst: SIMD_4x32
      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:26,1
    - Dst: Botan::SIMD_4x32::alignr4
      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:29,1
    - Dst: auto::rotr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:29,1
    - Dst: auto::shr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:29,1
    - Dst: Botan::SIMD_4x32::byte_shuffle
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:31,1
    - Dst: auto::rotr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:32,1
    - Dst: auto::rotr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:32,1
    - Dst: auto::shr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:32,1
    - Dst: Botan::SIMD_4x32::byte_shuffle
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:35,1
    - Dst: auto::rotr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:36,1
    - Dst: auto::rotr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:36,1
    - Dst: auto::shr
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - x
    argTypes:
    - SIMD_4x32[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 46
    functionName: Botan::sha256_simd_next_w
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp
    functionUses: 0
    functionsReached:
    - Botan::SIMD_4x32::byte_shuffle
    - auto::shr
    - SIMD_4x32
    - auto::rotr
    - Botan::SIMD_4x32::alignr4
    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:77,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:83,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:84,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:85,1
    - Dst: sha256_simd_next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:92,1
    - Dst: Botan::SIMD_4x32::load_le
      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:94,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:95,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:96,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:97,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:99,1
    - Dst: sha256_simd_next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:101,1
    - Dst: Botan::SIMD_4x32::load_le
      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:103,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:104,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:105,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:106,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:108,1
    - Dst: sha256_simd_next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:110,1
    - Dst: Botan::SIMD_4x32::load_le
      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:112,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:113,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:114,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:115,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:117,1
    - Dst: sha256_simd_next_w
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:119,1
    - Dst: Botan::SIMD_4x32::load_le
      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:121,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:122,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:123,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:124,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:126,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
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:143,1
    - Dst: SHA2_32_F
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_simd/sha2_32_simd.cpp:144,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: 155
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 155
    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:
    - std::span<const uint8_t>::data
    - auto::store_le
    - SHA2_32_F
    - Botan::SIMD_4x32::load_be
    - Botan::SIMD_4x32::load_le
    - sha256_simd_next_w
    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:27,1
    - Dst: _mm_sha256rnds2_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:27,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:27,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:27,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:27,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:28,1
    - Dst: _mm_sha256rnds2_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:28,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:28,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:28,1
    - Dst: auto::shift_elems_right
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:28,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: 29
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 29
    functionName: Botan::sha256_rnds4
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp
    functionUses: 0
    functionsReached:
    - auto::shift_elems_right
    - auto::raw
    - SIMD_4x32
    - _mm_sha256rnds2_epu32
    - raw
    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: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:32,1
    - Dst: _mm_alignr_epi8
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:32,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:32,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:32,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:33,1
    - Dst: _mm_sha256msg1_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:33,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:33,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:33,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:34,1
    - Dst: _mm_sha256msg2_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:34,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:34,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' m0'
    - ' m1'
    - ' m2'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: Botan::sha256_msg_exp
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm_sha256msg2_epu32
    - SIMD_4x32
    - _mm_sha256msg1_epu32
    - _mm_alignr_epi8
    - raw
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sha256_msg_exp(SIMD_4x32& m0, SIMD_4x32& m1, SIMD_4x32&
      m2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:38,1
    - Dst: _mm_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:38,1
    - Dst: raw
      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_shuffle_epi32
      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: _mm_alignr_epi8
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:41,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:41,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:41,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:42,1
    - Dst: _mm_blend_epi16
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:42,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:42,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:42,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' S0'
    - ' S1'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: Botan::sha256_permute_state
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm_shuffle_epi32
    - SIMD_4x32
    - _mm_alignr_epi8
    - _mm_blend_epi16
    - raw
    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:27,1
    - Dst: _mm_sha256rnds2_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:27,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:27,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:27,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:27,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:28,1
    - Dst: _mm_sha256rnds2_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:28,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:28,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:28,1
    - Dst: auto::shift_elems_right
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:28,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: 29
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 29
    functionName: Botan::sha256_rnds4
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp
    functionUses: 0
    functionsReached:
    - auto::shift_elems_right
    - auto::raw
    - SIMD_4x32
    - _mm_sha256rnds2_epu32
    - raw
    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: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:32,1
    - Dst: _mm_alignr_epi8
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:32,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:32,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:32,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:33,1
    - Dst: _mm_sha256msg1_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:33,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:33,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:33,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:34,1
    - Dst: _mm_sha256msg2_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:34,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:34,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' m0'
    - ' m1'
    - ' m2'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: Botan::sha256_msg_exp
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm_sha256msg2_epu32
    - SIMD_4x32
    - _mm_sha256msg1_epu32
    - _mm_alignr_epi8
    - raw
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sha256_msg_exp(SIMD_4x32& m0, SIMD_4x32& m1, SIMD_4x32&
      m2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:38,1
    - Dst: _mm_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:38,1
    - Dst: raw
      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_shuffle_epi32
      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: _mm_alignr_epi8
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:41,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:41,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:41,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:42,1
    - Dst: _mm_blend_epi16
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:42,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:42,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:42,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' S0'
    - ' S1'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: Botan::sha256_permute_state
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm_shuffle_epi32
    - SIMD_4x32
    - _mm_alignr_epi8
    - _mm_blend_epi16
    - raw
    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:62,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:64,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:65,1
    - Dst: sha256_permute_state
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:67,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:73,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:74,1
    - Dst: Botan::SIMD_4x32::load_be
      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:76,1
    - Dst: sha256_rnds4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:78,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:78,1
    - Dst: sha256_rnds4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:79,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:79,1
    - Dst: sha256_rnds4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:80,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:80,1
    - Dst: sha256_rnds4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:81,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:81,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:83,1
    - Dst: _mm_sha256msg1_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:83,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:83,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:83,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:84,1
    - Dst: _mm_sha256msg1_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:84,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:84,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:84,1
    - Dst: sha256_msg_exp
      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_msg_exp
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:90,1
    - Dst: sha256_rnds4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:91,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:91,1
    - Dst: sha256_msg_exp
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:93,1
    - Dst: sha256_rnds4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:94,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:94,1
    - Dst: sha256_msg_exp
      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_permute_state
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:108,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:110,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 3
    argNames:
    - ' digest'
    - input_span
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 112
    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:
    - std::span<const uint8_t>::data
    - sha256_msg_exp
    - sha256_rnds4
    - Botan::SIMD_4x32::load_be
    - auto::raw
    - _mm_sha256msg1_epu32
    - SIMD_4x32
    - sha256_permute_state
    - SIMD_4x32::store_le
    - Botan::SIMD_4x32::load_le
    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:27,1
    - Dst: _mm_sha256rnds2_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:27,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:27,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:27,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:27,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:28,1
    - Dst: _mm_sha256rnds2_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:28,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:28,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:28,1
    - Dst: auto::shift_elems_right
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:28,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: 29
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 29
    functionName: Botan::sha256_rnds4
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp
    functionUses: 0
    functionsReached:
    - auto::shift_elems_right
    - auto::raw
    - SIMD_4x32
    - _mm_sha256rnds2_epu32
    - raw
    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: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:32,1
    - Dst: _mm_alignr_epi8
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:32,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:32,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:32,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:33,1
    - Dst: _mm_sha256msg1_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:33,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:33,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:33,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:34,1
    - Dst: _mm_sha256msg2_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:34,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:34,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' m0'
    - ' m1'
    - ' m2'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: Botan::sha256_msg_exp
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm_sha256msg2_epu32
    - SIMD_4x32
    - _mm_sha256msg1_epu32
    - _mm_alignr_epi8
    - raw
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sha256_msg_exp(SIMD_4x32& m0, SIMD_4x32& m1, SIMD_4x32&
      m2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:38,1
    - Dst: _mm_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:38,1
    - Dst: raw
      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_shuffle_epi32
      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: _mm_alignr_epi8
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:41,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:41,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:41,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:42,1
    - Dst: _mm_blend_epi16
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:42,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:42,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:42,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' S0'
    - ' S1'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: Botan::sha256_permute_state
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm_shuffle_epi32
    - SIMD_4x32
    - _mm_alignr_epi8
    - _mm_blend_epi16
    - raw
    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:27,1
    - Dst: _mm_sha256rnds2_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:27,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:27,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:27,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:27,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:28,1
    - Dst: _mm_sha256rnds2_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:28,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:28,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:28,1
    - Dst: auto::shift_elems_right
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:28,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: 29
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 29
    functionName: Botan::sha256_rnds4
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp
    functionUses: 0
    functionsReached:
    - auto::shift_elems_right
    - auto::raw
    - SIMD_4x32
    - _mm_sha256rnds2_epu32
    - raw
    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: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:32,1
    - Dst: _mm_alignr_epi8
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:32,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:32,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:32,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:33,1
    - Dst: _mm_sha256msg1_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:33,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:33,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:33,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:34,1
    - Dst: _mm_sha256msg2_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:34,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:34,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ' m0'
    - ' m1'
    - ' m2'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: Botan::sha256_msg_exp
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm_sha256msg2_epu32
    - SIMD_4x32
    - _mm_sha256msg1_epu32
    - _mm_alignr_epi8
    - raw
    linkageType: ''
    returnType: BOTAN_FORCE_INLINE
    signature: BOTAN_FORCE_INLINE sha256_msg_exp(SIMD_4x32& m0, SIMD_4x32& m1, SIMD_4x32&
      m2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:38,1
    - Dst: _mm_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:38,1
    - Dst: raw
      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_shuffle_epi32
      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: _mm_alignr_epi8
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:41,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:41,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:41,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:42,1
    - Dst: _mm_blend_epi16
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:42,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:42,1
    - Dst: raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:42,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' S0'
    - ' S1'
    argTypes:
    - SIMD_4x32
    - SIMD_4x32
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: Botan::sha256_permute_state
    functionSourceFile: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm_shuffle_epi32
    - SIMD_4x32
    - _mm_alignr_epi8
    - _mm_blend_epi16
    - raw
    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:62,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:64,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:65,1
    - Dst: sha256_permute_state
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:67,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:73,1
    - Dst: Botan::SIMD_4x32::load_be
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:74,1
    - Dst: Botan::SIMD_4x32::load_be
      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:76,1
    - Dst: sha256_rnds4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:78,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:78,1
    - Dst: sha256_rnds4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:79,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:79,1
    - Dst: sha256_rnds4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:80,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:80,1
    - Dst: sha256_rnds4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:81,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:81,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:83,1
    - Dst: _mm_sha256msg1_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:83,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:83,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:83,1
    - Dst: SIMD_4x32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:84,1
    - Dst: _mm_sha256msg1_epu32
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:84,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:84,1
    - Dst: auto::raw
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:84,1
    - Dst: sha256_msg_exp
      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_msg_exp
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:90,1
    - Dst: sha256_rnds4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:91,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:91,1
    - Dst: sha256_msg_exp
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:93,1
    - Dst: sha256_rnds4
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:94,1
    - Dst: Botan::SIMD_4x32::load_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:94,1
    - Dst: sha256_msg_exp
      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_permute_state
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:108,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:110,1
    - Dst: SIMD_4x32::store_le
      Src: /src/botan/src/lib/hash/sha2_32/sha2_32_x86/sha2_32_x86.cpp:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 3
    argNames:
    - ' digest'
    - input_span
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 112
    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:
    - std::span<const uint8_t>::data
    - sha256_msg_exp
    - sha256_rnds4
    - Botan::SIMD_4x32::load_be
    - auto::raw
    - _mm_sha256msg1_epu32
    - SIMD_4x32
    - sha256_permute_state
    - SIMD_4x32::store_le
    - Botan::SIMD_4x32::load_le
    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: 0
    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:
    - vsha256su0q_u32
    - SIMD_4x32::raw
    - 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
    - vsha256h2q_u32
    - auto::raw
    - SIMD_4x32
    - Botan::SIMD_4x32::load_le
    - raw
    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: 0
    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:
    - vsha256su0q_u32
    - SIMD_4x32::raw
    - 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
    - vsha256h2q_u32
    - auto::raw
    - SIMD_4x32
    - Botan::SIMD_4x32::load_le
    - raw
    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:
    - std::span<const uint8_t>::data
    - aarch64_sha256_update
    - Botan::SIMD_4x32::load_be
    - reinterpret_cast<const uint32_t*>
    - aarch64_sha256_expand_w
    - SIMD_4x32::store_le
    - Botan::SIMD_4x32::load_le
    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: 0
    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:
    - vsha256su0q_u32
    - SIMD_4x32::raw
    - 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
    - vsha256h2q_u32
    - auto::raw
    - SIMD_4x32
    - Botan::SIMD_4x32::load_le
    - raw
    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: 0
    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:
    - vsha256su0q_u32
    - SIMD_4x32::raw
    - 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
    - vsha256h2q_u32
    - auto::raw
    - SIMD_4x32
    - Botan::SIMD_4x32::load_le
    - raw
    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:
    - std::span<const uint8_t>::data
    - aarch64_sha256_update
    - Botan::SIMD_4x32::load_be
    - reinterpret_cast<const uint32_t*>
    - aarch64_sha256_expand_w
    - SIMD_4x32::store_le
    - Botan::SIMD_4x32::load_le
    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:
    - Botan::Ascon_Hash256::clear
    - squeeze
    - finish
    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:
    - Botan::Ascon_Hash256::clear
    - squeeze
    - finish
    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:
    - in_alignment
    - BufferSlicer::empty
    - std::span<const uint8_t>::size
    - handle_unaligned_data
    - Botan::SHA_1::compress_n
    - auto::value
    - aligned_data_to_process
    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::copy_output
    - Botan::MerkleDamgard_Hash::append_padding_bit
    - Botan::MerkleDamgard_Hash::clear
    - Botan::MerkleDamgard_Hash::append_counter_and_finalize
    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:
    - BOTAN_ASSERT_NOMSG
    - ready_to_consume
    - append
    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:
    - BOTAN_ASSERT_NOMSG
    - auto::data
    - elements_until_alignment
    - fill_up_with_zeros
    - store_le
    - directly_modify_last
    - store_be
    - Botan::SHA_1::compress_n
    - consume
    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:
    - BOTAN_ASSERT_NOMSG
    - std::span<uint8_t>::first
    - copy_out_be
    - std::span<uint8_t>::size
    - copy_out_le
    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:
    - in_alignment
    - BufferSlicer::empty
    - std::span<const uint8_t>::size
    - handle_unaligned_data
    - Botan::SHA_1::compress_n
    - auto::value
    - aligned_data_to_process
    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::copy_output
    - Botan::MerkleDamgard_Hash::append_padding_bit
    - Botan::MerkleDamgard_Hash::clear
    - Botan::MerkleDamgard_Hash::append_counter_and_finalize
    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:
    - BOTAN_ASSERT_NOMSG
    - ready_to_consume
    - append
    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:
    - BOTAN_ASSERT_NOMSG
    - auto::data
    - elements_until_alignment
    - fill_up_with_zeros
    - store_le
    - directly_modify_last
    - store_be
    - Botan::SHA_1::compress_n
    - consume
    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:
    - BOTAN_ASSERT_NOMSG
    - std::span<uint8_t>::first
    - copy_out_be
    - std::span<uint8_t>::size
    - copy_out_le
    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:21,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:22,1
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/md4/md4.cpp:24,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:25,1
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/md4/md4.cpp:27,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:28,1
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/md4/md4.cpp:30,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:31,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: 32
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 32
    functionName: Botan::FF4
    functionSourceFile: /src/botan/src/lib/hash/md4/md4.cpp
    functionUses: 0
    functionsReached:
    - Botan::choose
    - Botan::rotl
    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:44,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:47,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:50,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:53,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: 54
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 54
    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:60,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:63,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:66,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:69,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: 70
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 70
    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:21,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:22,1
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/md4/md4.cpp:24,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:25,1
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/md4/md4.cpp:27,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:28,1
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/md4/md4.cpp:30,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:31,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: 32
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 32
    functionName: Botan::FF4
    functionSourceFile: /src/botan/src/lib/hash/md4/md4.cpp
    functionUses: 0
    functionsReached:
    - Botan::choose
    - Botan::rotl
    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:44,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:47,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:50,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:53,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: 54
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 54
    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:60,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:63,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:66,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:69,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: 70
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 70
    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:88,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/hash/md4/md4.cpp:88,1
    - Dst: FF4
      Src: /src/botan/src/lib/hash/md4/md4.cpp:92,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: GG4
      Src: /src/botan/src/lib/hash/md4/md4.cpp:97,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: HH4
      Src: /src/botan/src/lib/hash/md4/md4.cpp:102,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: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/hash/md4/md4.cpp:115,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/hash/md4/md4.cpp:115,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: 116
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 116
    functionName: Botan::MD4::compress_n
    functionSourceFile: /src/botan/src/lib/hash/md4/md4.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - BufferSlicer::empty
    - GG4
    - load_le
    - HH4
    - BufferSlicer::take
    - FF4
    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:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' digest'
    argTypes:
    - digest_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 120
    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:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 124
    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: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: 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:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 132
    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:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 136
    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:21,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:22,1
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/md4/md4.cpp:24,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:25,1
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/md4/md4.cpp:27,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:28,1
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/md4/md4.cpp:30,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:31,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: 32
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 32
    functionName: Botan::FF4
    functionSourceFile: /src/botan/src/lib/hash/md4/md4.cpp
    functionUses: 0
    functionsReached:
    - Botan::choose
    - Botan::rotl
    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:44,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:47,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:50,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:53,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: 54
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 54
    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:60,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:63,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:66,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:69,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: 70
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 70
    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:21,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:22,1
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/md4/md4.cpp:24,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:25,1
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/md4/md4.cpp:27,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:28,1
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/md4/md4.cpp:30,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:31,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: 32
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 32
    functionName: Botan::FF4
    functionSourceFile: /src/botan/src/lib/hash/md4/md4.cpp
    functionUses: 0
    functionsReached:
    - Botan::choose
    - Botan::rotl
    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:44,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:47,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:50,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:53,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: 54
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 54
    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:60,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:63,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:66,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/md4/md4.cpp:69,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: 70
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 70
    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:88,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/hash/md4/md4.cpp:88,1
    - Dst: FF4
      Src: /src/botan/src/lib/hash/md4/md4.cpp:92,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: GG4
      Src: /src/botan/src/lib/hash/md4/md4.cpp:97,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: HH4
      Src: /src/botan/src/lib/hash/md4/md4.cpp:102,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: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/hash/md4/md4.cpp:115,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/hash/md4/md4.cpp:115,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: 116
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 116
    functionName: Botan::MD4::compress_n
    functionSourceFile: /src/botan/src/lib/hash/md4/md4.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - BufferSlicer::empty
    - GG4
    - load_le
    - HH4
    - BufferSlicer::take
    - FF4
    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:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' digest'
    argTypes:
    - digest_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 120
    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:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 124
    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: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: 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:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 132
    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:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 136
    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: std::copy_n
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:29,1
    - Dst: begin
      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: 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:
    - BOTAN_ASSERT_NOMSG
    - final
    - std::span<uint8_t>::back
    - std::copy_n
    - zeroise
    - Botan::Truncated_Hash::output_length
    - begin
    - std::span<uint8_t>::data
    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
    - Invalid_Argument
    - BOTAN_ASSERT_NONNULL
    - Botan::Truncated_Hash::output_length
    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: std::copy_n
      Src: /src/botan/src/lib/hash/trunc_hash/trunc_hash.cpp:29,1
    - Dst: begin
      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: 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:
    - BOTAN_ASSERT_NOMSG
    - final
    - std::span<uint8_t>::back
    - std::copy_n
    - zeroise
    - Botan::Truncated_Hash::output_length
    - begin
    - std::span<uint8_t>::data
    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
    - Invalid_Argument
    - BOTAN_ASSERT_NONNULL
    - Botan::Truncated_Hash::output_length
    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::choose
    - Botan::rotl
    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::choose
    - Botan::rotl
    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: 0
    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: 0
    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::choose
    - Botan::rotl
    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::choose
    - Botan::rotl
    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: 0
    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: 0
    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:
    - GG<14>
    - II< 6>
    - HH<16>
    - GG< 5>
    - GG<20>
    - GG< 9>
    - load_le
    - HH<23>
    - FF< 7>
    - HH< 4>
    - FF<17>
    - FF<22>
    - HH<11>
    - BufferSlicer::take
    - II<21>
    - II<15>
    - II<10>
    - FF<12>
    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::choose
    - Botan::rotl
    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::choose
    - Botan::rotl
    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: 0
    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: 0
    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::choose
    - Botan::rotl
    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::choose
    - Botan::rotl
    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: 0
    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: 0
    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:
    - GG<14>
    - II< 6>
    - HH<16>
    - GG< 5>
    - GG<20>
    - GG< 9>
    - load_le
    - HH<23>
    - FF< 7>
    - HH< 4>
    - FF<17>
    - FF<22>
    - HH<11>
    - BufferSlicer::take
    - II<21>
    - II<15>
    - II<10>
    - FF<12>
    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::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::get_byte
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:79,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:80,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:82,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:82,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:82,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:82,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:82,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:82,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:82,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: 83
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 83
    functionName: Botan::whirl
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp
    functionUses: 0
    functionsReached:
    - Botan::get_byte
    - Botan::rotr
    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: 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::get_byte
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:79,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:80,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:82,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:82,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:82,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:82,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:82,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:82,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:82,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: 83
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 83
    functionName: Botan::whirl
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp
    functionUses: 0
    functionsReached:
    - Botan::get_byte
    - Botan::rotr
    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: BufferSlicer::take
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:104,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:128,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:129,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:130,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:131,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: load_be
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:139,1
    - Dst: auto::data
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:139,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:152,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:153,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:154,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:155,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
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 180
    functionName: Botan::Whirlpool::compress_n
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp
    functionUses: 0
    functionsReached:
    - load_be
    - BufferSlicer::take
    - whirl
    - auto::data
    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:183,1
    - Dst: zeroise
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' digest'
    argTypes:
    - digest_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 185
    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:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 189
    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: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::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:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 197
    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:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 201
    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: 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::get_byte
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:79,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:80,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:82,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:82,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:82,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:82,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:82,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:82,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:82,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: 83
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 83
    functionName: Botan::whirl
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp
    functionUses: 0
    functionsReached:
    - Botan::get_byte
    - Botan::rotr
    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: 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::get_byte
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:79,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:80,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:82,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:82,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:82,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:82,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:82,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:82,1
    - Dst: Botan::rotr
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:82,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: 83
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 83
    functionName: Botan::whirl
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp
    functionUses: 0
    functionsReached:
    - Botan::get_byte
    - Botan::rotr
    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: BufferSlicer::take
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:104,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:128,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:129,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:130,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:131,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: load_be
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:139,1
    - Dst: auto::data
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:139,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:152,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:153,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:154,1
    - Dst: whirl
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:155,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
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 180
    functionName: Botan::Whirlpool::compress_n
    functionSourceFile: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp
    functionUses: 0
    functionsReached:
    - load_be
    - BufferSlicer::take
    - whirl
    - auto::data
    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:183,1
    - Dst: zeroise
      Src: /src/botan/src/lib/hash/whirlpool/whirlpool.cpp:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' digest'
    argTypes:
    - digest_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 185
    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:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 189
    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: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::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:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 197
    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:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 201
    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: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    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: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    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: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    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: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::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: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    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: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    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: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    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: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::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: 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:
    - BufferStuffer::next
    - final
    - Botan::Parallel::output_length
    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:
    - Botan::Parallel::name
    - std::ostringstream::str
    - size
    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::vector::push_back
    - size
    - std::unique_ptr<HashFunction>
    - Botan::Parallel::new_object
    - std::make_unique<Parallel>
    - std::vector::reserve
    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::vector::push_back
    - size
    - std::make_unique<Parallel>
    - Botan::Parallel::copy_state
    - std::vector::reserve
    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:
    - reserve
    - push_back
    - size
    - std::move
    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:
    - BufferStuffer::next
    - final
    - Botan::Parallel::output_length
    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:
    - Botan::Parallel::name
    - std::ostringstream::str
    - size
    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::vector::push_back
    - size
    - std::unique_ptr<HashFunction>
    - Botan::Parallel::new_object
    - std::make_unique<Parallel>
    - std::vector::reserve
    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::vector::push_back
    - size
    - std::make_unique<Parallel>
    - Botan::Parallel::copy_state
    - std::vector::reserve
    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:
    - reserve
    - push_back
    - size
    - std::move
    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::rho
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_f.h:33,1
    - Dst: Botan::sigma
      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::choose
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_f.h:36,1
    - Dst: Botan::majority
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_f.h:38,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: 40
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 40
    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::sigma
    - 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:47,1
    - Dst: Botan::rho
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_f.h:48,1
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_f.h:49,1
    - Dst: Botan::majority
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_f.h:51,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: 52
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 52
    functionName: Botan::SHA2_64_F
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_f.h
    functionUses: 0
    functionsReached:
    - Botan::majority
    - Botan::choose
    - 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::rho
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_f.h:33,1
    - Dst: Botan::sigma
      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::choose
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_f.h:36,1
    - Dst: Botan::majority
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_f.h:38,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: 40
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 40
    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::sigma
    - 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:47,1
    - Dst: Botan::rho
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_f.h:48,1
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_f.h:49,1
    - Dst: Botan::majority
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_f.h:51,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: 52
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 52
    functionName: Botan::SHA2_64_F
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_f.h
    functionUses: 0
    functionsReached:
    - Botan::majority
    - Botan::choose
    - 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:26,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:32,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:38,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:44,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 50
    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:26,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:32,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:38,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:44,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 50
    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:60,1
    - Dst: Botan::SHA_512::compress_digest_x86
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:61,1
    - Dst: has
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:66,1
    - Dst: compress_digest_armv8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:67,1
    - Dst: has
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:72,1
    - Dst: Botan::SHA_512::compress_digest_x86_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:73,1
    - Dst: has
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:78,1
    - Dst: Botan::SHA_512::compress_digest_x86_avx2
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:79,1
    - Dst: load_be
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:97,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:97,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
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:179,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:180,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: 193
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 193
    functionName: Botan::SHA_512::compress_digest
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 0
    functionsReached:
    - has
    - compress_digest_armv8
    - load_be
    - Botan::SHA_512::compress_digest_x86_avx512
    - Botan::SHA_512::compress_digest_x86
    - BufferSlicer::take
    - SHA2_64_F
    - Botan::SHA_512::compress_digest_x86_avx2
    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: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_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: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_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:204,1
    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::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:208,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: 209
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 209
    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:212,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: 213
      start: 211
    functionDepth: 3
    functionLinenumber: 211
    functionLinenumberEnd: 213
    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: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_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:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' digest'
    argTypes:
    - digest_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 228
    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:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' digest'
    argTypes:
    - digest_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 239
    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:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' digest'
    argTypes:
    - digest_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 250
    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:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 254
    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:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 258
    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:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 262
    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: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: 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:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 270
    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:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 274
    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:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 278
    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:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 282
    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:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 286
    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:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 290
    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:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 294
    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:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 298
    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:26,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:32,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:38,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:44,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 50
    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:26,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:32,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:38,1
    - Dst: Botan_Tests::check
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:44,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 50
    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:60,1
    - Dst: Botan::SHA_512::compress_digest_x86
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:61,1
    - Dst: has
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:66,1
    - Dst: compress_digest_armv8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:67,1
    - Dst: has
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:72,1
    - Dst: Botan::SHA_512::compress_digest_x86_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:73,1
    - Dst: has
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:78,1
    - Dst: Botan::SHA_512::compress_digest_x86_avx2
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:79,1
    - Dst: load_be
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:97,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:97,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
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:179,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp:180,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: 193
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 193
    functionName: Botan::SHA_512::compress_digest
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64.cpp
    functionUses: 3
    functionsReached:
    - has
    - compress_digest_armv8
    - load_be
    - Botan::SHA_512::compress_digest_x86_avx512
    - Botan::SHA_512::compress_digest_x86
    - BufferSlicer::take
    - SHA2_64_F
    - Botan::SHA_512::compress_digest_x86_avx2
    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: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_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: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_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:204,1
    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::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:208,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: 209
      start: 207
    functionDepth: 3
    functionLinenumber: 207
    functionLinenumberEnd: 209
    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:212,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: 213
      start: 211
    functionDepth: 3
    functionLinenumber: 211
    functionLinenumberEnd: 213
    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: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_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:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' digest'
    argTypes:
    - digest_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 228
    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:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' digest'
    argTypes:
    - digest_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 239
    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:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' digest'
    argTypes:
    - digest_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 250
    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:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 254
    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:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 258
    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:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 262
    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: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: 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:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 270
    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:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 274
    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:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 278
    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:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 282
    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:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 286
    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:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 290
    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:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 294
    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:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 298
    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:
    - vaddq_u64
    - std::span<const uint8_t>::data
    - vsha512su1q_u64
    - vld1q_u64
    - vst1q_u64
    - vsha512h2q_u64
    - vreinterpretq_u64_u8
    - vextq_u64
    - vsha512hq_u64
    - vsha512su0q_u64
    - vrev64q_u8
    - vreinterpretq_u8_u64
    - reinterpret_cast<const uint64_t*>
    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:
    - vaddq_u64
    - std::span<const uint8_t>::data
    - vsha512su1q_u64
    - vld1q_u64
    - vst1q_u64
    - vsha512h2q_u64
    - vreinterpretq_u64_u8
    - vextq_u64
    - vsha512hq_u64
    - vsha512su0q_u64
    - vrev64q_u8
    - vreinterpretq_u8_u64
    - reinterpret_cast<const uint64_t*>
    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:22,1
    - Dst: Botan::SIMD_4x32::alignr8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:23,1
    - Dst: auto::template rotr<1>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:25,1
    - Dst: auto::template rotr<8>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:25,1
    - Dst: auto::template shr<7>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:25,1
    - Dst: template rotr<19>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:26,1
    - Dst: template rotr<61>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:26,1
    - Dst: template shr<6>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - x
    argTypes:
    - SIMD_T[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 40
    functionName: Botan::sha512_next_w_avx512
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp
    functionUses: 0
    functionsReached:
    - auto::template rotr<8>
    - auto::template rotr<1>
    - Botan::SIMD_4x32::alignr8
    - template rotr<19>
    - template shr<6>
    - auto::template shr<7>
    - template rotr<61>
    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:22,1
    - Dst: Botan::SIMD_4x32::alignr8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:23,1
    - Dst: auto::template rotr<1>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:25,1
    - Dst: auto::template rotr<8>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:25,1
    - Dst: auto::template shr<7>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:25,1
    - Dst: template rotr<19>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:26,1
    - Dst: template rotr<61>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:26,1
    - Dst: template shr<6>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - x
    argTypes:
    - SIMD_T[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 40
    functionName: Botan::sha512_next_w_avx512
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp
    functionUses: 0
    functionsReached:
    - auto::template rotr<8>
    - auto::template rotr<1>
    - Botan::SIMD_4x32::alignr8
    - template rotr<19>
    - template shr<6>
    - auto::template shr<7>
    - template rotr<61>
    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:169,1
    - Dst: Botan::SIMD_8x64::load_be4
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:175,1
    - Dst: Botan::SIMD_8x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:177,1
    - Dst: auto::store_le4
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:178,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:186,1
    - Dst: Botan::SIMD_8x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:186,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:187,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:188,1
    - Dst: auto::store_le4
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:189,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:191,1
    - Dst: Botan::SIMD_8x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:191,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:192,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:193,1
    - Dst: auto::store_le4
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:194,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:196,1
    - Dst: Botan::SIMD_8x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:196,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:197,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:198,1
    - Dst: auto::store_le4
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:199,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:201,1
    - Dst: Botan::SIMD_8x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:201,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:202,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:203,1
    - Dst: auto::store_le4
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:204,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:206,1
    - Dst: Botan::SIMD_8x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:206,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:207,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:208,1
    - Dst: auto::store_le4
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:209,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:211,1
    - Dst: Botan::SIMD_8x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:211,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:212,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:213,1
    - Dst: auto::store_le4
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:214,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:216,1
    - Dst: Botan::SIMD_8x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:216,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:217,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:218,1
    - Dst: auto::store_le4
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:219,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:221,1
    - Dst: Botan::SIMD_8x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:221,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:222,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:223,1
    - Dst: auto::store_le4
      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:228,1
    - Dst: SHA2_64_F
      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: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:232,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:233,1
    - Dst: SHA2_64_F
      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: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:237,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:238,1
    - Dst: SHA2_64_F
      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: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:242,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:243,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
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:272,1
    - Dst: Botan::SIMD_2x64::load_be
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:290,1
    - Dst: Botan::SIMD_2x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:291,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:292,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:300,1
    - Dst: Botan::SIMD_2x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:300,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:301,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:302,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:303,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:305,1
    - Dst: Botan::SIMD_2x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:305,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:306,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:307,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:308,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:310,1
    - Dst: Botan::SIMD_2x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:310,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:311,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:312,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:313,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:315,1
    - Dst: Botan::SIMD_2x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:315,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:316,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:317,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:318,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:320,1
    - Dst: Botan::SIMD_2x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:320,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:321,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:322,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:323,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:325,1
    - Dst: Botan::SIMD_2x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:325,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:326,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:327,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:328,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:330,1
    - Dst: Botan::SIMD_2x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:330,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:331,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:332,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:333,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:335,1
    - Dst: Botan::SIMD_2x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:335,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:336,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:337,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:338,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:342,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:343,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:344,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:345,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:346,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:347,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:348,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:349,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:350,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:351,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:352,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:353,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:354,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:355,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:356,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:357,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: 368
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 368
    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:
    - std::span<const uint8_t>::data
    - Botan::SIMD_2x64::load_le
    - auto::store_le
    - Botan::SIMD_8x64::load_be4
    - sha512_next_w_avx512
    - Botan::SIMD_2x64::load_be
    - auto::store_le4
    - SHA2_64_F
    - Botan::SIMD_8x64::load_le
    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:22,1
    - Dst: Botan::SIMD_4x32::alignr8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:23,1
    - Dst: auto::template rotr<1>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:25,1
    - Dst: auto::template rotr<8>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:25,1
    - Dst: auto::template shr<7>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:25,1
    - Dst: template rotr<19>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:26,1
    - Dst: template rotr<61>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:26,1
    - Dst: template shr<6>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - x
    argTypes:
    - SIMD_T[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 40
    functionName: Botan::sha512_next_w_avx512
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp
    functionUses: 0
    functionsReached:
    - auto::template rotr<8>
    - auto::template rotr<1>
    - Botan::SIMD_4x32::alignr8
    - template rotr<19>
    - template shr<6>
    - auto::template shr<7>
    - template rotr<61>
    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:22,1
    - Dst: Botan::SIMD_4x32::alignr8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:23,1
    - Dst: auto::template rotr<1>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:25,1
    - Dst: auto::template rotr<8>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:25,1
    - Dst: auto::template shr<7>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:25,1
    - Dst: template rotr<19>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:26,1
    - Dst: template rotr<61>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:26,1
    - Dst: template shr<6>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - x
    argTypes:
    - SIMD_T[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 40
    functionName: Botan::sha512_next_w_avx512
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp
    functionUses: 0
    functionsReached:
    - auto::template rotr<8>
    - auto::template rotr<1>
    - Botan::SIMD_4x32::alignr8
    - template rotr<19>
    - template shr<6>
    - auto::template shr<7>
    - template rotr<61>
    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:169,1
    - Dst: Botan::SIMD_8x64::load_be4
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:175,1
    - Dst: Botan::SIMD_8x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:177,1
    - Dst: auto::store_le4
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:178,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:186,1
    - Dst: Botan::SIMD_8x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:186,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:187,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:188,1
    - Dst: auto::store_le4
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:189,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:191,1
    - Dst: Botan::SIMD_8x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:191,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:192,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:193,1
    - Dst: auto::store_le4
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:194,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:196,1
    - Dst: Botan::SIMD_8x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:196,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:197,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:198,1
    - Dst: auto::store_le4
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:199,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:201,1
    - Dst: Botan::SIMD_8x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:201,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:202,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:203,1
    - Dst: auto::store_le4
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:204,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:206,1
    - Dst: Botan::SIMD_8x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:206,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:207,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:208,1
    - Dst: auto::store_le4
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:209,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:211,1
    - Dst: Botan::SIMD_8x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:211,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:212,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:213,1
    - Dst: auto::store_le4
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:214,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:216,1
    - Dst: Botan::SIMD_8x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:216,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:217,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:218,1
    - Dst: auto::store_le4
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:219,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:221,1
    - Dst: Botan::SIMD_8x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:221,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:222,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:223,1
    - Dst: auto::store_le4
      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:228,1
    - Dst: SHA2_64_F
      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: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:232,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:233,1
    - Dst: SHA2_64_F
      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: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:237,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:238,1
    - Dst: SHA2_64_F
      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: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:242,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:243,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
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:272,1
    - Dst: Botan::SIMD_2x64::load_be
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:290,1
    - Dst: Botan::SIMD_2x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:291,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:292,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:300,1
    - Dst: Botan::SIMD_2x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:300,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:301,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:302,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:303,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:305,1
    - Dst: Botan::SIMD_2x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:305,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:306,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:307,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:308,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:310,1
    - Dst: Botan::SIMD_2x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:310,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:311,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:312,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:313,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:315,1
    - Dst: Botan::SIMD_2x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:315,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:316,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:317,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:318,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:320,1
    - Dst: Botan::SIMD_2x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:320,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:321,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:322,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:323,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:325,1
    - Dst: Botan::SIMD_2x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:325,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:326,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:327,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:328,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:330,1
    - Dst: Botan::SIMD_2x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:330,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:331,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:332,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:333,1
    - Dst: sha512_next_w_avx512
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:335,1
    - Dst: Botan::SIMD_2x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:335,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:336,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:337,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:338,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:342,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:343,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:344,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:345,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:346,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:347,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:348,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:349,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:350,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:351,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:352,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:353,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:354,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:355,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:356,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx512/sha2_64_avx512.cpp:357,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: 368
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 368
    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:
    - std::span<const uint8_t>::data
    - Botan::SIMD_2x64::load_le
    - auto::store_le
    - Botan::SIMD_8x64::load_be4
    - sha512_next_w_avx512
    - Botan::SIMD_2x64::load_be
    - auto::store_le4
    - SHA2_64_F
    - Botan::SIMD_8x64::load_le
    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:17,1
    - Dst: _mm256_extracti128_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:17,1
    - Dst: _mm256_add_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:18,1
    - Dst: _mm256_permute4x64_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:18,1
    - Dst: _mm256_blend_epi32
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:18,1
    - Dst: _mm256_sha512msg2_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ' m0'
    - ' m1'
    - ' m2'
    - ' m3'
    argTypes:
    - __m256i
    - __m256i
    - __m256i
    - __m256i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 20
    functionName: Botan::sha512_msg_expand
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp
    functionUses: 8
    functionsReached:
    - _mm256_add_epi64
    - _mm256_blend_epi32
    - _mm256_extracti128_si256
    - _mm256_sha512msg1_epi64
    - _mm256_sha512msg2_epi64
    - _mm256_permute4x64_epi64
    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:26,1
    - Dst: _mm256_sha512rnds2_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:27,1
    - Dst: _mm256_extracti128_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:27,1
    - Dst: _mm256_sha512rnds2_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:28,1
    - Dst: _mm256_extracti128_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' state0'
    - ' state1'
    - msg
    - K
    argTypes:
    - __m256i
    - __m256i
    - __m256i
    - __m256i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 29
    functionName: Botan::sha512_4rounds
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm256_sha512rnds2_epi64
    - _mm256_add_epi64
    - _mm256_extracti128_si256
    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:32,1
    - Dst: _mm256_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:33,1
    - Dst: _mm256_permute2x128_si256
      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:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' state0'
    - ' state1'
    argTypes:
    - __m256i
    - __m256i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: Botan::permute_state
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm256_shuffle_epi32
    - _mm256_permute2x128_si256
    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:17,1
    - Dst: _mm256_extracti128_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:17,1
    - Dst: _mm256_add_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:18,1
    - Dst: _mm256_permute4x64_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:18,1
    - Dst: _mm256_blend_epi32
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:18,1
    - Dst: _mm256_sha512msg2_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ' m0'
    - ' m1'
    - ' m2'
    - ' m3'
    argTypes:
    - __m256i
    - __m256i
    - __m256i
    - __m256i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 20
    functionName: Botan::sha512_msg_expand
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp
    functionUses: 8
    functionsReached:
    - _mm256_add_epi64
    - _mm256_blend_epi32
    - _mm256_extracti128_si256
    - _mm256_sha512msg1_epi64
    - _mm256_sha512msg2_epi64
    - _mm256_permute4x64_epi64
    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:26,1
    - Dst: _mm256_sha512rnds2_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:27,1
    - Dst: _mm256_extracti128_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:27,1
    - Dst: _mm256_sha512rnds2_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:28,1
    - Dst: _mm256_extracti128_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' state0'
    - ' state1'
    - msg
    - K
    argTypes:
    - __m256i
    - __m256i
    - __m256i
    - __m256i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 29
    functionName: Botan::sha512_4rounds
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm256_sha512rnds2_epi64
    - _mm256_add_epi64
    - _mm256_extracti128_si256
    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:32,1
    - Dst: _mm256_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:33,1
    - Dst: _mm256_permute2x128_si256
      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:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' state0'
    - ' state1'
    argTypes:
    - __m256i
    - __m256i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: Botan::permute_state
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm256_shuffle_epi32
    - _mm256_permute2x128_si256
    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:62,1
    - Dst: _mm256_set_epi64x
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:65,1
    - Dst: reinterpret_cast<__m256i*>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:67,1
    - Dst: data
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:67,1
    - Dst: reinterpret_cast<const __m256i*>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:68,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:68,1
    - Dst: _mm256_loadu_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:70,1
    - Dst: _mm256_loadu_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:71,1
    - Dst: permute_state
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:73,1
    - Dst: _mm256_shuffle_epi8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:79,1
    - Dst: _mm256_loadu_si256
      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:80,1
    - Dst: _mm256_loadu_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:80,1
    - Dst: _mm256_shuffle_epi8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:81,1
    - Dst: _mm256_loadu_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:81,1
    - Dst: _mm256_shuffle_epi8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:82,1
    - Dst: _mm256_loadu_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:82,1
    - Dst: sha512_4rounds
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:84,1
    - Dst: _mm256_load_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:84,1
    - Dst: sha512_4rounds
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:85,1
    - Dst: _mm256_load_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:85,1
    - Dst: _mm256_sha512msg1_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:86,1
    - Dst: _mm256_extracti128_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:86,1
    - Dst: sha512_4rounds
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:89,1
    - Dst: _mm256_load_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:89,1
    - Dst: sha512_msg_expand
      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:92,1
    - Dst: _mm256_load_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:92,1
    - Dst: sha512_msg_expand
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:93,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:102,1
    - Dst: _mm256_load_si256
      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:103,1
    - Dst: _mm256_load_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:103,1
    - Dst: _mm256_add_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:105,1
    - Dst: _mm256_add_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:106,1
    - Dst: permute_state
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:111,1
    - Dst: _mm256_storeu_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:113,1
    - Dst: _mm256_storeu_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:114,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: 115
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 115
    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:
    - reinterpret_cast<__m256i*>
    - sha512_4rounds
    - _mm256_load_si256
    - std::span<const uint8_t>::data
    - data
    - _mm256_loadu_si256
    - _mm256_set_epi64x
    - _mm256_shuffle_epi8
    - _mm256_add_epi64
    - _mm256_storeu_si256
    - _mm256_extracti128_si256
    - _mm256_sha512msg1_epi64
    - permute_state
    - reinterpret_cast<const __m256i*>
    - sha512_msg_expand
    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:17,1
    - Dst: _mm256_extracti128_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:17,1
    - Dst: _mm256_add_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:18,1
    - Dst: _mm256_permute4x64_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:18,1
    - Dst: _mm256_blend_epi32
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:18,1
    - Dst: _mm256_sha512msg2_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ' m0'
    - ' m1'
    - ' m2'
    - ' m3'
    argTypes:
    - __m256i
    - __m256i
    - __m256i
    - __m256i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 20
    functionName: Botan::sha512_msg_expand
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp
    functionUses: 8
    functionsReached:
    - _mm256_add_epi64
    - _mm256_blend_epi32
    - _mm256_extracti128_si256
    - _mm256_sha512msg1_epi64
    - _mm256_sha512msg2_epi64
    - _mm256_permute4x64_epi64
    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:26,1
    - Dst: _mm256_sha512rnds2_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:27,1
    - Dst: _mm256_extracti128_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:27,1
    - Dst: _mm256_sha512rnds2_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:28,1
    - Dst: _mm256_extracti128_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' state0'
    - ' state1'
    - msg
    - K
    argTypes:
    - __m256i
    - __m256i
    - __m256i
    - __m256i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 29
    functionName: Botan::sha512_4rounds
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm256_sha512rnds2_epi64
    - _mm256_add_epi64
    - _mm256_extracti128_si256
    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:32,1
    - Dst: _mm256_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:33,1
    - Dst: _mm256_permute2x128_si256
      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:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' state0'
    - ' state1'
    argTypes:
    - __m256i
    - __m256i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: Botan::permute_state
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm256_shuffle_epi32
    - _mm256_permute2x128_si256
    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:17,1
    - Dst: _mm256_extracti128_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:17,1
    - Dst: _mm256_add_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:18,1
    - Dst: _mm256_permute4x64_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:18,1
    - Dst: _mm256_blend_epi32
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:18,1
    - Dst: _mm256_sha512msg2_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - ' m0'
    - ' m1'
    - ' m2'
    - ' m3'
    argTypes:
    - __m256i
    - __m256i
    - __m256i
    - __m256i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 20
    functionName: Botan::sha512_msg_expand
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp
    functionUses: 8
    functionsReached:
    - _mm256_add_epi64
    - _mm256_blend_epi32
    - _mm256_extracti128_si256
    - _mm256_sha512msg1_epi64
    - _mm256_sha512msg2_epi64
    - _mm256_permute4x64_epi64
    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:26,1
    - Dst: _mm256_sha512rnds2_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:27,1
    - Dst: _mm256_extracti128_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:27,1
    - Dst: _mm256_sha512rnds2_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:28,1
    - Dst: _mm256_extracti128_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ' state0'
    - ' state1'
    - msg
    - K
    argTypes:
    - __m256i
    - __m256i
    - __m256i
    - __m256i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 29
    functionName: Botan::sha512_4rounds
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm256_sha512rnds2_epi64
    - _mm256_add_epi64
    - _mm256_extracti128_si256
    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:32,1
    - Dst: _mm256_shuffle_epi32
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:33,1
    - Dst: _mm256_permute2x128_si256
      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:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' state0'
    - ' state1'
    argTypes:
    - __m256i
    - __m256i
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: Botan::permute_state
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp
    functionUses: 0
    functionsReached:
    - _mm256_shuffle_epi32
    - _mm256_permute2x128_si256
    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:62,1
    - Dst: _mm256_set_epi64x
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:65,1
    - Dst: reinterpret_cast<__m256i*>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:67,1
    - Dst: data
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:67,1
    - Dst: reinterpret_cast<const __m256i*>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:68,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:68,1
    - Dst: _mm256_loadu_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:70,1
    - Dst: _mm256_loadu_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:71,1
    - Dst: permute_state
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:73,1
    - Dst: _mm256_shuffle_epi8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:79,1
    - Dst: _mm256_loadu_si256
      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:80,1
    - Dst: _mm256_loadu_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:80,1
    - Dst: _mm256_shuffle_epi8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:81,1
    - Dst: _mm256_loadu_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:81,1
    - Dst: _mm256_shuffle_epi8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:82,1
    - Dst: _mm256_loadu_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:82,1
    - Dst: sha512_4rounds
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:84,1
    - Dst: _mm256_load_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:84,1
    - Dst: sha512_4rounds
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:85,1
    - Dst: _mm256_load_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:85,1
    - Dst: _mm256_sha512msg1_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:86,1
    - Dst: _mm256_extracti128_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:86,1
    - Dst: sha512_4rounds
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:89,1
    - Dst: _mm256_load_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:89,1
    - Dst: sha512_msg_expand
      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:92,1
    - Dst: _mm256_load_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:92,1
    - Dst: sha512_msg_expand
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:93,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:102,1
    - Dst: _mm256_load_si256
      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:103,1
    - Dst: _mm256_load_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:103,1
    - Dst: _mm256_add_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:105,1
    - Dst: _mm256_add_epi64
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:106,1
    - Dst: permute_state
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:111,1
    - Dst: _mm256_storeu_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:113,1
    - Dst: _mm256_storeu_si256
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_x86/sha2_64_x86.cpp:114,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: 115
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 115
    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:
    - reinterpret_cast<__m256i*>
    - sha512_4rounds
    - _mm256_load_si256
    - std::span<const uint8_t>::data
    - data
    - _mm256_loadu_si256
    - _mm256_set_epi64x
    - _mm256_shuffle_epi8
    - _mm256_add_epi64
    - _mm256_storeu_si256
    - _mm256_extracti128_si256
    - _mm256_sha512msg1_epi64
    - permute_state
    - reinterpret_cast<const __m256i*>
    - sha512_msg_expand
    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:22,1
    - Dst: Botan::SIMD_4x32::alignr8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:23,1
    - Dst: auto::template rotr<1>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:25,1
    - Dst: auto::template rotr<8>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:25,1
    - Dst: auto::template shr<7>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:25,1
    - Dst: template rotr<19>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:26,1
    - Dst: template rotr<61>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:26,1
    - Dst: template shr<6>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - x
    argTypes:
    - SIMD_T[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 40
    functionName: Botan::sha512_next_w
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp
    functionUses: 0
    functionsReached:
    - auto::template rotr<8>
    - auto::template rotr<1>
    - Botan::SIMD_4x32::alignr8
    - template rotr<19>
    - template shr<6>
    - auto::template shr<7>
    - template rotr<61>
    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:22,1
    - Dst: Botan::SIMD_4x32::alignr8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:23,1
    - Dst: auto::template rotr<1>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:25,1
    - Dst: auto::template rotr<8>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:25,1
    - Dst: auto::template shr<7>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:25,1
    - Dst: template rotr<19>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:26,1
    - Dst: template rotr<61>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:26,1
    - Dst: template shr<6>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - x
    argTypes:
    - SIMD_T[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 40
    functionName: Botan::sha512_next_w
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp
    functionUses: 0
    functionsReached:
    - auto::template rotr<8>
    - auto::template rotr<1>
    - Botan::SIMD_4x32::alignr8
    - template rotr<19>
    - template shr<6>
    - auto::template shr<7>
    - template rotr<61>
    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:129,1
    - Dst: Botan::SIMD_4x64::load_be2
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:135,1
    - Dst: Botan::SIMD_4x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:136,1
    - Dst: auto::store_le2
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:137,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:145,1
    - Dst: Botan::SIMD_4x64::load_le
      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: auto::store_le2
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:148,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:150,1
    - Dst: Botan::SIMD_4x64::load_le
      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: auto::store_le2
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:153,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:155,1
    - Dst: Botan::SIMD_4x64::load_le
      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:156,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:157,1
    - Dst: auto::store_le2
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:158,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:160,1
    - Dst: Botan::SIMD_4x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:160,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:161,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:162,1
    - Dst: auto::store_le2
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:163,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:165,1
    - Dst: Botan::SIMD_4x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:165,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:166,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:167,1
    - Dst: auto::store_le2
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:168,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:170,1
    - Dst: Botan::SIMD_4x64::load_le
      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: auto::store_le2
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:173,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:175,1
    - Dst: Botan::SIMD_4x64::load_le
      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: auto::store_le2
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:178,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:180,1
    - Dst: Botan::SIMD_4x64::load_le
      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: auto::store_le2
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:183,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:200,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: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:217,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: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:234,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: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: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:251,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:252,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:253,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:254,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:255,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:256,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:257,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:258,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:259,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:260,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:261,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:262,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:263,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:265,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:266,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:267,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:268,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:269,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:270,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:271,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:272,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:273,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:274,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:275,1
    - Dst: SHA2_64_F
      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: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:279,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:280,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: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:284,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:285,1
    - Dst: SHA2_64_F
      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: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:289,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:290,1
    - Dst: SHA2_64_F
      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: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:294,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:295,1
    - Dst: SHA2_64_F
      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: Botan::SIMD_2x64::load_be
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:313,1
    - Dst: Botan::SIMD_2x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:314,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:315,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:323,1
    - Dst: Botan::SIMD_2x64::load_le
      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: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:326,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:328,1
    - Dst: Botan::SIMD_2x64::load_le
      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: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:331,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:333,1
    - Dst: Botan::SIMD_2x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:333,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:334,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:335,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:336,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:338,1
    - Dst: Botan::SIMD_2x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:338,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:339,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:340,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:341,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:343,1
    - Dst: Botan::SIMD_2x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:343,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:344,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:345,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:346,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:348,1
    - Dst: Botan::SIMD_2x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:348,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:349,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:350,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:351,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:353,1
    - Dst: Botan::SIMD_2x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:353,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:354,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:355,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:356,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:358,1
    - Dst: Botan::SIMD_2x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:358,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:359,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:360,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:361,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:365,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:366,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:367,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:368,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:369,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:370,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:371,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:372,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:373,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:374,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:375,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:376,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:377,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:378,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:379,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:380,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: 391
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 391
    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::load_be2
    - std::span<const uint8_t>::data
    - sha512_next_w
    - Botan::SIMD_2x64::load_le
    - auto::store_le
    - Botan::SIMD_2x64::load_be
    - auto::store_le2
    - Botan::SIMD_4x64::load_le
    - SHA2_64_F
    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:22,1
    - Dst: Botan::SIMD_4x32::alignr8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:23,1
    - Dst: auto::template rotr<1>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:25,1
    - Dst: auto::template rotr<8>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:25,1
    - Dst: auto::template shr<7>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:25,1
    - Dst: template rotr<19>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:26,1
    - Dst: template rotr<61>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:26,1
    - Dst: template shr<6>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - x
    argTypes:
    - SIMD_T[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 40
    functionName: Botan::sha512_next_w
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp
    functionUses: 0
    functionsReached:
    - auto::template rotr<8>
    - auto::template rotr<1>
    - Botan::SIMD_4x32::alignr8
    - template rotr<19>
    - template shr<6>
    - auto::template shr<7>
    - template rotr<61>
    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:22,1
    - Dst: Botan::SIMD_4x32::alignr8
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:23,1
    - Dst: auto::template rotr<1>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:25,1
    - Dst: auto::template rotr<8>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:25,1
    - Dst: auto::template shr<7>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:25,1
    - Dst: template rotr<19>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:26,1
    - Dst: template rotr<61>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:26,1
    - Dst: template shr<6>
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - x
    argTypes:
    - SIMD_T[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 40
    functionName: Botan::sha512_next_w
    functionSourceFile: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp
    functionUses: 0
    functionsReached:
    - auto::template rotr<8>
    - auto::template rotr<1>
    - Botan::SIMD_4x32::alignr8
    - template rotr<19>
    - template shr<6>
    - auto::template shr<7>
    - template rotr<61>
    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:129,1
    - Dst: Botan::SIMD_4x64::load_be2
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:135,1
    - Dst: Botan::SIMD_4x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:136,1
    - Dst: auto::store_le2
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:137,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:145,1
    - Dst: Botan::SIMD_4x64::load_le
      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: auto::store_le2
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:148,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:150,1
    - Dst: Botan::SIMD_4x64::load_le
      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: auto::store_le2
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:153,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:155,1
    - Dst: Botan::SIMD_4x64::load_le
      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:156,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:157,1
    - Dst: auto::store_le2
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:158,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:160,1
    - Dst: Botan::SIMD_4x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:160,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:161,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:162,1
    - Dst: auto::store_le2
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:163,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:165,1
    - Dst: Botan::SIMD_4x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:165,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:166,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:167,1
    - Dst: auto::store_le2
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:168,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:170,1
    - Dst: Botan::SIMD_4x64::load_le
      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: auto::store_le2
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:173,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:175,1
    - Dst: Botan::SIMD_4x64::load_le
      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: auto::store_le2
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:178,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:180,1
    - Dst: Botan::SIMD_4x64::load_le
      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: auto::store_le2
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:183,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:200,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: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:217,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: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:234,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: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: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:251,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:252,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:253,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:254,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:255,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:256,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:257,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:258,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:259,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:260,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:261,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:262,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:263,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:265,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:266,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:267,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:268,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:269,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:270,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:271,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:272,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:273,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:274,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:275,1
    - Dst: SHA2_64_F
      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: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:279,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:280,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: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:284,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:285,1
    - Dst: SHA2_64_F
      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: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:289,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:290,1
    - Dst: SHA2_64_F
      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: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:294,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:295,1
    - Dst: SHA2_64_F
      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: Botan::SIMD_2x64::load_be
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:313,1
    - Dst: Botan::SIMD_2x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:314,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:315,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:323,1
    - Dst: Botan::SIMD_2x64::load_le
      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: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:326,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:328,1
    - Dst: Botan::SIMD_2x64::load_le
      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: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:331,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:333,1
    - Dst: Botan::SIMD_2x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:333,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:334,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:335,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:336,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:338,1
    - Dst: Botan::SIMD_2x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:338,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:339,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:340,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:341,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:343,1
    - Dst: Botan::SIMD_2x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:343,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:344,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:345,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:346,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:348,1
    - Dst: Botan::SIMD_2x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:348,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:349,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:350,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:351,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:353,1
    - Dst: Botan::SIMD_2x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:353,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:354,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:355,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:356,1
    - Dst: sha512_next_w
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:358,1
    - Dst: Botan::SIMD_2x64::load_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:358,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:359,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:360,1
    - Dst: auto::store_le
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:361,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:365,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:366,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:367,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:368,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:369,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:370,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:371,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:372,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:373,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:374,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:375,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:376,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:377,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:378,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:379,1
    - Dst: SHA2_64_F
      Src: /src/botan/src/lib/hash/sha2_64/sha2_64_avx2/sha2_64_avx2.cpp:380,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: 391
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 391
    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::load_be2
    - std::span<const uint8_t>::data
    - sha512_next_w
    - Botan::SIMD_2x64::load_le
    - auto::store_le
    - Botan::SIMD_2x64::load_be
    - auto::store_le2
    - Botan::SIMD_4x64::load_le
    - SHA2_64_F
    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::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:21,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - X
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: Botan::P0
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3.cpp
    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.cpp:35,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:36,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:40,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:42,1
    - Dst: Botan::P0
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:43,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: 44
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 44
    functionName: Botan::R1
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3.cpp
    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.cpp:57,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:58,1
    - Dst: Botan::majority
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:59,1
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:60,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:62,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:64,1
    - Dst: Botan::P0
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:65,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: 66
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 66
    functionName: Botan::R2
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3.cpp
    functionUses: 0
    functionsReached:
    - Botan::majority
    - Botan::choose
    - Botan::rotl
    - Botan::P0
    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.cpp:69,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - X
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: Botan::P1
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3.cpp
    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.cpp:73,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:73,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:73,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: 74
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: Botan::SM3_E
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3.cpp
    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.cpp:21,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - X
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: Botan::P0
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3.cpp
    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.cpp:35,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:36,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:40,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:42,1
    - Dst: Botan::P0
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:43,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: 44
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 44
    functionName: Botan::R1
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3.cpp
    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.cpp:57,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:58,1
    - Dst: Botan::majority
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:59,1
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:60,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:62,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:64,1
    - Dst: Botan::P0
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:65,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: 66
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 66
    functionName: Botan::R2
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3.cpp
    functionUses: 0
    functionsReached:
    - Botan::majority
    - Botan::choose
    - Botan::rotl
    - Botan::P0
    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.cpp:69,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - X
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: Botan::P1
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3.cpp
    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.cpp:73,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:73,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:73,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: 74
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: Botan::SM3_E
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3.cpp
    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: load_be
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:95,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:95,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:99,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:100,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:101,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:102,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:103,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:104,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:105,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:106,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:107,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:108,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:109,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:110,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:111,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:112,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:113,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:114,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:115,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:116,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:117,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:118,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:119,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:120,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:121,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:122,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:123,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:124,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:125,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:126,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:127,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:128,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:129,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:130,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:131,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:132,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:133,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:134,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:135,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:136,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:137,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:138,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:139,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:140,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:141,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:142,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:143,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:144,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:145,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:146,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:147,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:148,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:149,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:150,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:151,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:152,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:153,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:154,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:155,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:156,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:157,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:158,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:159,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:160,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:161,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:162,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:163,1
    - Dst: SM3_E
      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: SM3_E
      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: SM3_E
      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: SM3_E
      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: SM3_E
      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: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:174,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:175,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:176,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:177,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:178,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:179,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:180,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:181,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:182,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:183,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:184,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:185,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:186,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:187,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:188,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:189,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:190,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:191,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:192,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:193,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:194,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:195,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:196,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:197,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:198,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:199,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:200,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:201,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:202,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:203,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:204,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:205,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:206,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:207,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:208,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:209,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:210,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:211,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:212,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:213,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 128
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 227
    functionName: Botan::SM3::compress_n
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3.cpp
    functionUses: 0
    functionsReached:
    - load_be
    - BufferSlicer::take
    - R2
    - SM3_E
    - R1
    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:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' digest'
    argTypes:
    - digest_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 232
    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:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 236
    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: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: 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:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 244
    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:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 248
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:21,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - X
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: Botan::P0
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3.cpp
    functionUses: 4
    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.cpp:35,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:36,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:40,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:42,1
    - Dst: Botan::P0
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:43,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: 44
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 44
    functionName: Botan::R1
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3.cpp
    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.cpp:57,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:58,1
    - Dst: Botan::majority
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:59,1
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:60,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:62,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:64,1
    - Dst: Botan::P0
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:65,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: 66
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 66
    functionName: Botan::R2
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3.cpp
    functionUses: 0
    functionsReached:
    - Botan::majority
    - Botan::choose
    - Botan::rotl
    - Botan::P0
    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.cpp:69,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - X
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: Botan::P1
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3.cpp
    functionUses: 2
    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.cpp:73,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:73,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:73,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: 74
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: Botan::SM3_E
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3.cpp
    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.cpp:21,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - X
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: Botan::P0
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3.cpp
    functionUses: 6
    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.cpp:35,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:36,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:40,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:42,1
    - Dst: Botan::P0
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:43,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: 44
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 44
    functionName: Botan::R1
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3.cpp
    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.cpp:57,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:58,1
    - Dst: Botan::majority
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:59,1
    - Dst: Botan::choose
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:60,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:62,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:64,1
    - Dst: Botan::P0
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:65,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: 66
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 66
    functionName: Botan::R2
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3.cpp
    functionUses: 0
    functionsReached:
    - Botan::majority
    - Botan::choose
    - Botan::rotl
    - Botan::P0
    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.cpp:69,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - X
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: Botan::P1
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3.cpp
    functionUses: 3
    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.cpp:73,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:73,1
    - Dst: Botan::rotl
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:73,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: 74
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: Botan::SM3_E
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3.cpp
    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: load_be
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:95,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:95,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:99,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:100,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:101,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:102,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:103,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:104,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:105,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:106,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:107,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:108,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:109,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:110,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:111,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:112,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:113,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:114,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:115,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:116,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:117,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:118,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:119,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:120,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:121,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:122,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:123,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:124,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:125,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:126,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:127,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:128,1
    - Dst: R1
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:129,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:130,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:131,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:132,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:133,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:134,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:135,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:136,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:137,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:138,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:139,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:140,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:141,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:142,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:143,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:144,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:145,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:146,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:147,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:148,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:149,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:150,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:151,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:152,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:153,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:154,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:155,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:156,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:157,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:158,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:159,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:160,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:161,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:162,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:163,1
    - Dst: SM3_E
      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: SM3_E
      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: SM3_E
      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: SM3_E
      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: SM3_E
      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: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:174,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:175,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:176,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:177,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:178,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:179,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:180,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:181,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:182,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:183,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:184,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:185,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:186,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:187,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:188,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:189,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:190,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:191,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:192,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:193,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:194,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:195,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:196,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:197,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:198,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:199,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:200,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:201,1
    - Dst: SM3_E
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:202,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:203,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:204,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:205,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:206,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:207,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:208,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:209,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:210,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:211,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:212,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:213,1
    - Dst: R2
      Src: /src/botan/src/lib/hash/sm3/sm3.cpp:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 128
    argCount: 3
    argNames:
    - ' digest'
    - input
    - blocks
    argTypes:
    - digest_type
    - std::span<const uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 227
    functionName: Botan::SM3::compress_n
    functionSourceFile: /src/botan/src/lib/hash/sm3/sm3.cpp
    functionUses: 0
    functionsReached:
    - load_be
    - BufferSlicer::take
    - R2
    - SM3_E
    - R1
    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:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' digest'
    argTypes:
    - digest_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 232
    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:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 236
    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: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: 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:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 244
    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:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 248
    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: 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: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    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: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    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: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::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: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    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: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    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: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::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: 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: 0
    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::choose
    - Botan::rotl
    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: 0
    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::choose
    - Botan::rotl
    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: 0
    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: 0
    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::choose
    - Botan::rotl
    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: 0
    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::choose
    - Botan::rotl
    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: 0
    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:
    - F1<13>
    - F4< 8>
    - F2< 5>
    - F2<12>
    - F3<11>
    - F4< 5>
    - F2<15>
    - F3<12>
    - F5<12>
    - F5< 5>
    - F5< 6>
    - F3< 7>
    - BufferSlicer::take
    - F2< 7>
    - F1< 5>
    - F5<13>
    - F2< 6>
    - F4<13>
    - F3< 6>
    - F4<15>
    - F2< 9>
    - F1<11>
    - F4<14>
    - F2< 8>
    - F5<15>
    - F2<11>
    - F5<14>
    - F4< 7>
    - F1<15>
    - F4< 9>
    - F3< 9>
    - load_le
    - F2<14>
    - F5< 7>
    - F3< 8>
    - F1< 9>
    - F4<12>
    - F1<12>
    - F4< 6>
    - F5< 8>
    - F3<15>
    - F5< 9>
    - F4<11>
    - F1<14>
    - F2<13>
    - F5<11>
    - F1< 8>
    - F3<14>
    - F3<13>
    - F1< 7>
    - F3< 5>
    - F1< 6>
    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: 0
    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::choose
    - Botan::rotl
    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: 0
    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::choose
    - Botan::rotl
    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: 0
    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: 0
    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::choose
    - Botan::rotl
    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: 0
    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::choose
    - Botan::rotl
    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: 0
    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:
    - F1<13>
    - F4< 8>
    - F2< 5>
    - F2<12>
    - F3<11>
    - F4< 5>
    - F2<15>
    - F3<12>
    - F5<12>
    - F5< 5>
    - F5< 6>
    - F3< 7>
    - BufferSlicer::take
    - F2< 7>
    - F1< 5>
    - F5<13>
    - F2< 6>
    - F4<13>
    - F3< 6>
    - F4<15>
    - F2< 9>
    - F1<11>
    - F4<14>
    - F2< 8>
    - F5<15>
    - F2<11>
    - F5<14>
    - F4< 7>
    - F1<15>
    - F4< 9>
    - F3< 9>
    - load_le
    - F2<14>
    - F5< 7>
    - F3< 8>
    - F1< 9>
    - F4<12>
    - F1<12>
    - F4< 6>
    - F5< 8>
    - F3<15>
    - F5< 9>
    - F4<11>
    - F1<14>
    - F2<13>
    - F5<11>
    - F1< 8>
    - F3<14>
    - F3<13>
    - F1< 7>
    - F3< 5>
    - F1< 6>
    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:
    - auto::data
    - Botan::GOST_34_11::compress_n
    - in_alignment
    - BufferSlicer::empty
    - data
    - std::span<const uint8_t>::size
    - handle_unaligned_data
    - aligned_data_to_process
    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
    - load_be
    - copy_mem
    - get_byte<0>
    - get_byte_var
    - set_key
    - encrypt
    - xor_buf
    - get_byte<1>
    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:
    - in_alignment
    - Botan::GOST_34_11::compress_n
    - fill_up_with_zeros
    - data
    - store_le
    - copy_mem
    - consume
    - secure_vector::data
    - Botan::GOST_34_11::clear
    - std::span<uint8_t>::data
    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:
    - auto::data
    - Botan::GOST_34_11::compress_n
    - in_alignment
    - BufferSlicer::empty
    - data
    - std::span<const uint8_t>::size
    - handle_unaligned_data
    - aligned_data_to_process
    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
    - load_be
    - copy_mem
    - get_byte<0>
    - get_byte_var
    - set_key
    - encrypt
    - xor_buf
    - get_byte<1>
    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:
    - in_alignment
    - Botan::GOST_34_11::compress_n
    - fill_up_with_zeros
    - data
    - store_le
    - copy_mem
    - consume
    - secure_vector::data
    - Botan::GOST_34_11::clear
    - std::span<uint8_t>::data
    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:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 18
    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:21,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/hash/keccak/keccak.cpp:26,1
    - Dst: fmt
      Src: /src/botan/src/lib/hash/keccak/keccak.cpp:26,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 1
    argNames:
    - output_bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 28
    functionName: Botan::Keccak_1600::Keccak_1600
    functionSourceFile: /src/botan/src/lib/hash/keccak/keccak.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - fmt
    - Botan::keccak1600
    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: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::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:35,1
    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::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: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::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: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::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: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::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:51,1
    - Dst: squeeze
      Src: /src/botan/src/lib/hash/keccak/keccak.cpp:52,1
    - Dst: Botan::Keccak_1600::clear
      Src: /src/botan/src/lib/hash/keccak/keccak.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: Botan::Keccak_1600::final_result
    functionSourceFile: /src/botan/src/lib/hash/keccak/keccak.cpp
    functionUses: 0
    functionsReached:
    - Botan::Keccak_1600::clear
    - squeeze
    - finish
    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:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 18
    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:21,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/hash/keccak/keccak.cpp:26,1
    - Dst: fmt
      Src: /src/botan/src/lib/hash/keccak/keccak.cpp:26,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 1
    argNames:
    - output_bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 28
    functionName: Botan::Keccak_1600::Keccak_1600
    functionSourceFile: /src/botan/src/lib/hash/keccak/keccak.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - fmt
    - Botan::keccak1600
    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: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::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:35,1
    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::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: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::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: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::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: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::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:51,1
    - Dst: squeeze
      Src: /src/botan/src/lib/hash/keccak/keccak.cpp:52,1
    - Dst: Botan::Keccak_1600::clear
      Src: /src/botan/src/lib/hash/keccak/keccak.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: Botan::Keccak_1600::final_result
    functionSourceFile: /src/botan/src/lib/hash/keccak/keccak.cpp
    functionUses: 0
    functionsReached:
    - Botan::Keccak_1600::clear
    - squeeze
    - finish
    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:18,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/hash/sha3/sha3.cpp:22,1
    - Dst: fmt
      Src: /src/botan/src/lib/hash/sha3/sha3.cpp:22,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 1
    argNames:
    - output_bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 24
    functionName: Botan::SHA_3::SHA_3
    functionSourceFile: /src/botan/src/lib/hash/sha3/sha3.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - Botan::sha3
    - 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: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::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: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::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:35,1
    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::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: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::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: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::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: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::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:51,1
    - Dst: squeeze
      Src: /src/botan/src/lib/hash/sha3/sha3.cpp:52,1
    - Dst: Botan::SHA_3::clear
      Src: /src/botan/src/lib/hash/sha3/sha3.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: Botan::SHA_3::final_result
    functionSourceFile: /src/botan/src/lib/hash/sha3/sha3.cpp
    functionUses: 0
    functionsReached:
    - Botan::SHA_3::clear
    - squeeze
    - finish
    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:18,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/hash/sha3/sha3.cpp:22,1
    - Dst: fmt
      Src: /src/botan/src/lib/hash/sha3/sha3.cpp:22,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 4
    argCount: 1
    argNames:
    - output_bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 24
    functionName: Botan::SHA_3::SHA_3
    functionSourceFile: /src/botan/src/lib/hash/sha3/sha3.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - Botan::sha3
    - 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: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::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: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::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:35,1
    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::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: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::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: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::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: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::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:51,1
    - Dst: squeeze
      Src: /src/botan/src/lib/hash/sha3/sha3.cpp:52,1
    - Dst: Botan::SHA_3::clear
      Src: /src/botan/src/lib/hash/sha3/sha3.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - output
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: Botan::SHA_3::final_result
    functionSourceFile: /src/botan/src/lib/hash/sha3/sha3.cpp
    functionUses: 0
    functionsReached:
    - Botan::SHA_3::clear
    - squeeze
    - finish
    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:
    - Botan::Sodium::crypto_hash_sha512
    - Botan::Sodium::crypto_scalarmult_curve25519_base
    - copy_mem
    - secure_vector::data
    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_scalarmult_curve25519
    - Botan::Sodium::crypto_core_hsalsa20
    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_beforenm
    - Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_afternm
    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_beforenm
    - Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_open_afternm
    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:
    - Botan::Sodium::crypto_hash_sha512
    - Botan::Sodium::crypto_scalarmult_curve25519_base
    - copy_mem
    - secure_vector::data
    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_scalarmult_curve25519
    - Botan::Sodium::crypto_core_hsalsa20
    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_beforenm
    - Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_afternm
    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_beforenm
    - Botan::Sodium::crypto_box_curve25519xsalsa20poly1305_open_afternm
    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: 2
    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: 2
    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: 2
    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: 2
    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: 2
    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: 2
    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: 2
    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: 2
    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: 2
    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: 2
    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: 2
    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: 2
    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: 2
    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: 2
    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: 2
    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: 2
    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: 2
    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: 2
    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: 2
    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: 2
    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: 2
    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: 2
    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<uint32_t>
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:25,1
    - Dst: load_le<uint32_t>
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:26,1
    - Dst: load_le<uint32_t>
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:27,1
    - Dst: load_le<uint32_t>
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:28,1
    - Dst: load_le<uint32_t>
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:31,1
    - Dst: load_le<uint32_t>
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:32,1
    - Dst: load_le<uint32_t>
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:33,1
    - Dst: load_le<uint32_t>
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:34,1
    - Dst: load_le<uint32_t>
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:36,1
    - Dst: load_le<uint32_t>
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:37,1
    - Dst: load_le<uint32_t>
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:38,1
    - Dst: load_le<uint32_t>
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:39,1
    - Dst: load_le<uint32_t>
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:41,1
    - Dst: load_le<uint32_t>
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:42,1
    - Dst: load_le<uint32_t>
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:43,1
    - Dst: load_le<uint32_t>
      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<uint32_t>
    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: 2
    functionsReached:
    - Salsa20::write_keystream
    - Salsa20::set_key
    - Salsa20::set_iv
    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: 2
    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::seek
    - Salsa20::cipher
    - Salsa20::set_key
    - Salsa20::set_iv
    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: 4
    functionsReached:
    - Salsa20::write_keystream
    - Salsa20::set_key
    - Salsa20::set_iv
    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: 4
    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::seek
    - Salsa20::cipher
    - Salsa20::set_key
    - Salsa20::set_iv
    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<uint32_t>
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:25,1
    - Dst: load_le<uint32_t>
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:26,1
    - Dst: load_le<uint32_t>
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:27,1
    - Dst: load_le<uint32_t>
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:28,1
    - Dst: load_le<uint32_t>
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:31,1
    - Dst: load_le<uint32_t>
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:32,1
    - Dst: load_le<uint32_t>
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:33,1
    - Dst: load_le<uint32_t>
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:34,1
    - Dst: load_le<uint32_t>
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:36,1
    - Dst: load_le<uint32_t>
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:37,1
    - Dst: load_le<uint32_t>
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:38,1
    - Dst: load_le<uint32_t>
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:39,1
    - Dst: load_le<uint32_t>
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:41,1
    - Dst: load_le<uint32_t>
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:42,1
    - Dst: load_le<uint32_t>
      Src: /src/botan/src/lib/compat/sodium/sodium_salsa.cpp:43,1
    - Dst: load_le<uint32_t>
      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<uint32_t>
    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: 2
    functionsReached:
    - Salsa20::write_keystream
    - Salsa20::set_key
    - Salsa20::set_iv
    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: 2
    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::seek
    - Salsa20::cipher
    - Salsa20::set_key
    - Salsa20::set_iv
    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: 4
    functionsReached:
    - Salsa20::write_keystream
    - Salsa20::set_key
    - Salsa20::set_iv
    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: 4
    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::seek
    - Salsa20::cipher
    - Salsa20::set_key
    - Salsa20::set_iv
    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: 6
    functionsReached:
    - auto::update
    - auto::set_key
    - auto::set_iv
    - clear_mem
    - Botan::StreamCipher::create_or_throw
    - secure_vector::size
    - auto::write_keystream
    - auto::cipher
    - Botan::MessageAuthenticationCode::create_or_throw
    - secure_vector::data
    - auto::final
    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: 6
    functionsReached:
    - auto::update
    - auto::set_key
    - auto::set_iv
    - clear_mem
    - Botan::StreamCipher::create_or_throw
    - secure_vector::size
    - auto::write_keystream
    - auto::cipher
    - Botan::MessageAuthenticationCode::create_or_throw
    - secure_vector::data
    - Botan::CT::is_not_equal
    - auto::final
    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: 6
    functionsReached:
    - auto::update
    - auto::set_key
    - auto::set_iv
    - Botan::StreamCipher::create_or_throw
    - secure_vector::size
    - auto::write_keystream
    - auto::cipher
    - Botan::MessageAuthenticationCode::create_or_throw
    - secure_vector::data
    - auto::final
    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: 6
    functionsReached:
    - auto::update
    - Botan::CT::is_equal
    - auto::set_key
    - auto::set_iv
    - Botan::StreamCipher::create_or_throw
    - secure_vector::size
    - auto::write_keystream
    - auto::cipher
    - Botan::MessageAuthenticationCode::create_or_throw
    - secure_vector::data
    - auto::final
    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: 6
    functionsReached:
    - auto::update
    - auto::set_key
    - auto::set_iv
    - clear_mem
    - Botan::StreamCipher::create_or_throw
    - secure_vector::size
    - auto::write_keystream
    - auto::cipher
    - Botan::MessageAuthenticationCode::create_or_throw
    - secure_vector::data
    - auto::final
    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: 6
    functionsReached:
    - auto::update
    - auto::set_key
    - auto::set_iv
    - clear_mem
    - Botan::StreamCipher::create_or_throw
    - secure_vector::size
    - auto::write_keystream
    - auto::cipher
    - Botan::MessageAuthenticationCode::create_or_throw
    - secure_vector::data
    - Botan::CT::is_not_equal
    - auto::final
    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: 6
    functionsReached:
    - auto::update
    - auto::set_key
    - auto::set_iv
    - Botan::StreamCipher::create_or_throw
    - secure_vector::size
    - auto::write_keystream
    - auto::cipher
    - Botan::MessageAuthenticationCode::create_or_throw
    - secure_vector::data
    - auto::final
    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: 6
    functionsReached:
    - auto::update
    - Botan::CT::is_equal
    - auto::set_key
    - auto::set_iv
    - Botan::StreamCipher::create_or_throw
    - secure_vector::size
    - auto::write_keystream
    - auto::cipher
    - Botan::MessageAuthenticationCode::create_or_throw
    - secure_vector::data
    - auto::final
    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:
    - system_rng
    - static_cast<uint8_t*>
    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: 2
    functionsReached:
    - ChaCha::set_key
    - ChaCha::write_keystream
    - ChaCha::set_iv
    - static_cast<uint8_t*>
    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:
    - Botan::CT::is_equal
    - static_cast<int>
    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:
    - Botan::CT::is_equal
    - static_cast<int>
    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:
    - Botan::CT::is_equal
    - static_cast<int>
    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: 16
    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: 2
    functionsReached:
    - Botan::CT::is_equal
    - static_cast<int>
    - auto::select
    - static_cast<const uint8_t*>
    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: 2
    functionsReached:
    - auto::select
    - static_cast<int8_t>
    - Botan::bigint_ct_is_lt
    - static_cast<uint8_t>
    - Botan::ct_is_equal
    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: 8
    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: 2
    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: 2
    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: 0
    functionLinenumber: 108
    functionLinenumberEnd: 119
    functionName: Botan::Sodium::sodium_malloc
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_utils.cpp
    functionUses: 2
    functionsReached:
    - std::calloc
    - static_cast<uint8_t*>
    - store_le
    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<uint64_t>
      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: 0
    functionLinenumber: 121
    functionLinenumberEnd: 131
    functionName: Botan::Sodium::sodium_free
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_utils.cpp
    functionUses: 2
    functionsReached:
    - static_cast<uint8_t*>
    - static_cast<size_t>
    - load_le<uint64_t>
    - std::free
    - secure_scrub_memory
    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: 1
    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:
    - system_rng
    - static_cast<uint8_t*>
    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: 2
    functionsReached:
    - ChaCha::set_key
    - ChaCha::write_keystream
    - ChaCha::set_iv
    - static_cast<uint8_t*>
    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:
    - Botan::CT::is_equal
    - static_cast<int>
    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:
    - Botan::CT::is_equal
    - static_cast<int>
    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:
    - Botan::CT::is_equal
    - static_cast<int>
    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: 16
    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: 2
    functionsReached:
    - Botan::CT::is_equal
    - static_cast<int>
    - auto::select
    - static_cast<const uint8_t*>
    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: 2
    functionsReached:
    - auto::select
    - static_cast<int8_t>
    - Botan::bigint_ct_is_lt
    - static_cast<uint8_t>
    - Botan::ct_is_equal
    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: 9
    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: 2
    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: 2
    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: 0
    functionLinenumber: 108
    functionLinenumberEnd: 119
    functionName: Botan::Sodium::sodium_malloc
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_utils.cpp
    functionUses: 3
    functionsReached:
    - std::calloc
    - static_cast<uint8_t*>
    - store_le
    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<uint64_t>
      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: 0
    functionLinenumber: 121
    functionLinenumberEnd: 131
    functionName: Botan::Sodium::sodium_free
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_utils.cpp
    functionUses: 2
    functionsReached:
    - static_cast<uint8_t*>
    - static_cast<size_t>
    - load_le<uint64_t>
    - std::free
    - secure_scrub_memory
    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: 1
    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: 6
    functionsReached:
    - Botan::HashFunction::create_or_throw
    - auto::update
    - 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: 2
    functionsReached:
    - Botan::HashFunction::create_or_throw
    - auto::update
    - 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: 4
    functionsReached:
    - auto::update
    - auto::set_key
    - Botan::MessageAuthenticationCode::create_or_throw
    - 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: 4
    functionsReached:
    - auto::update
    - auto::set_key
    - Botan::MessageAuthenticationCode::create_or_throw
    - 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: 4
    functionsReached:
    - Botan::Sodium::crypto_onetimeauth_poly1305
    - secure_vector::size
    - secure_vector::data
    - 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: 2
    functionsReached:
    - auto::update
    - auto::set_key
    - Botan::MessageAuthenticationCode::create_or_throw
    - 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: 2
    functionsReached:
    - secure_vector::data
    - secure_vector::size
    - Botan::Sodium::crypto_auth_hmacsha512
    - 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: 4
    functionsReached:
    - auto::update
    - auto::set_key
    - copy_mem
    - Botan::MessageAuthenticationCode::create_or_throw
    - secure_vector::data
    - auto::final
    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: 4
    functionsReached:
    - Botan::Sodium::crypto_auth_hmacsha512256
    - secure_vector::size
    - secure_vector::data
    - 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: 2
    functionsReached:
    - auto::update
    - auto::set_key
    - Botan::MessageAuthenticationCode::create_or_throw
    - 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: 2
    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: 6
    functionsReached:
    - Botan::HashFunction::create_or_throw
    - auto::update
    - 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: 2
    functionsReached:
    - Botan::HashFunction::create_or_throw
    - auto::update
    - 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: 4
    functionsReached:
    - auto::update
    - auto::set_key
    - Botan::MessageAuthenticationCode::create_or_throw
    - 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: 5
    functionsReached:
    - auto::update
    - auto::set_key
    - Botan::MessageAuthenticationCode::create_or_throw
    - 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: 4
    functionsReached:
    - Botan::Sodium::crypto_onetimeauth_poly1305
    - secure_vector::size
    - secure_vector::data
    - 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: 3
    functionsReached:
    - auto::update
    - auto::set_key
    - Botan::MessageAuthenticationCode::create_or_throw
    - 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: 2
    functionsReached:
    - secure_vector::data
    - secure_vector::size
    - Botan::Sodium::crypto_auth_hmacsha512
    - 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: 5
    functionsReached:
    - auto::update
    - auto::set_key
    - copy_mem
    - Botan::MessageAuthenticationCode::create_or_throw
    - secure_vector::data
    - auto::final
    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: 4
    functionsReached:
    - Botan::Sodium::crypto_auth_hmacsha512256
    - secure_vector::size
    - secure_vector::data
    - 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: 3
    functionsReached:
    - auto::update
    - auto::set_key
    - Botan::MessageAuthenticationCode::create_or_throw
    - 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: 2
    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: 2
    functionsReached:
    - auto::write_keystream
    - Botan::StreamCipher::create_or_throw
    - auto::set_key
    - auto::set_iv
    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: 2
    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::seek
    - auto::set_key
    - auto::set_iv
    - Botan::StreamCipher::create_or_throw
    - auto::cipher
    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: 2
    functionsReached:
    - auto::write_keystream
    - Botan::StreamCipher::create_or_throw
    - auto::set_key
    - auto::set_iv
    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: 2
    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:
    - auto::seek
    - auto::set_key
    - auto::set_iv
    - Botan::StreamCipher::create_or_throw
    - auto::cipher
    - static_cast<uint64_t>
    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: 2
    functionsReached:
    - auto::write_keystream
    - Botan::StreamCipher::create_or_throw
    - auto::set_key
    - auto::set_iv
    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: 2
    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::seek
    - auto::set_key
    - auto::set_iv
    - Botan::StreamCipher::create_or_throw
    - auto::cipher
    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: 2
    functionsReached:
    - auto::write_keystream
    - Botan::StreamCipher::create_or_throw
    - auto::set_key
    - auto::set_iv
    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: 2
    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::seek
    - auto::set_key
    - auto::set_iv
    - Botan::StreamCipher::create_or_throw
    - auto::cipher
    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: 2
    functionsReached:
    - auto::write_keystream
    - Botan::StreamCipher::create_or_throw
    - auto::set_key
    - auto::set_iv
    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: 2
    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:
    - auto::seek
    - auto::set_key
    - auto::set_iv
    - Botan::StreamCipher::create_or_throw
    - auto::cipher
    - static_cast<uint64_t>
    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: 2
    functionsReached:
    - auto::write_keystream
    - Botan::StreamCipher::create_or_throw
    - auto::set_key
    - auto::set_iv
    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: 2
    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::seek
    - auto::set_key
    - auto::set_iv
    - Botan::StreamCipher::create_or_throw
    - auto::cipher
    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: 4
    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: 4
    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:
    - secure_vector::data
    - secure_vector::size
    - Botan::Sodium::crypto_sign_ed25519_seed_keypair
    - Botan::Sodium::randombytes_buf
    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: 5
    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: 4
    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: 4
    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:
    - secure_vector::data
    - secure_vector::size
    - Botan::Sodium::crypto_sign_ed25519_seed_keypair
    - Botan::Sodium::randombytes_buf
    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: 6
    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:25,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:27,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:28,1
    - Dst: auto::start
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:29,1
    - Dst: secure_vector::reserve
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:33,1
    - Dst: secure_vector::assign
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:34,1
    - Dst: auto::finish
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:36,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:38,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:38,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:38,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:40,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: 43
      start: 16
    functionDepth: 2
    functionLinenumber: 16
    functionLinenumberEnd: 43
    functionName: Botan::sodium_aead_chacha20poly1305_encrypt
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 0
    functionsReached:
    - secure_vector::assign
    - auto::set_key
    - secure_vector::size
    - secure_vector::reserve
    - auto::set_associated_data
    - auto::start
    - Botan::copy_mem
    - Botan::AEAD_Mode::create_or_throw
    - secure_vector::data
    - auto::finish
    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:60,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:62,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:63,1
    - Dst: auto::start
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:64,1
    - Dst: secure_vector::assign
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:68,1
    - Dst: auto::finish
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:71,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:78,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:78,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:78,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: 80
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 80
    functionName: Botan::sodium_aead_chacha20poly1305_decrypt
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 0
    functionsReached:
    - secure_vector::assign
    - auto::set_key
    - secure_vector::size
    - auto::set_associated_data
    - auto::start
    - Botan::copy_mem
    - Botan::AEAD_Mode::create_or_throw
    - secure_vector::data
    - auto::finish
    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:91,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:93,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:94,1
    - Dst: auto::start
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:95,1
    - Dst: secure_vector::reserve
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:99,1
    - Dst: secure_vector::assign
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:100,1
    - Dst: auto::finish
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:102,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:104,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:104,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
    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: 107
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 107
    functionName: Botan::sodium_aead_chacha20poly1305_encrypt_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 0
    functionsReached:
    - secure_vector::assign
    - auto::set_key
    - secure_vector::reserve
    - auto::set_associated_data
    - auto::start
    - Botan::copy_mem
    - Botan::AEAD_Mode::create_or_throw
    - secure_vector::data
    - auto::finish
    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:118,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:120,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:121,1
    - Dst: auto::start
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:122,1
    - Dst: secure_vector::reserve
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:126,1
    - Dst: secure_vector::assign
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:127,1
    - Dst: secure_vector::insert
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:128,1
    - Dst: secure_vector::end
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:128,1
    - Dst: auto::finish
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:131,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:136,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:136,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:136,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: 138
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 138
    functionName: Botan::sodium_aead_chacha20poly1305_decrypt_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 0
    functionsReached:
    - secure_vector::insert
    - secure_vector::assign
    - auto::set_key
    - secure_vector::size
    - secure_vector::reserve
    - auto::set_associated_data
    - secure_vector::end
    - auto::start
    - Botan::copy_mem
    - Botan::AEAD_Mode::create_or_throw
    - secure_vector::data
    - auto::finish
    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:25,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:27,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:28,1
    - Dst: auto::start
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:29,1
    - Dst: secure_vector::reserve
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:33,1
    - Dst: secure_vector::assign
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:34,1
    - Dst: auto::finish
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:36,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:38,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:38,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:38,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:40,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: 43
      start: 16
    functionDepth: 2
    functionLinenumber: 16
    functionLinenumberEnd: 43
    functionName: Botan::sodium_aead_chacha20poly1305_encrypt
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 0
    functionsReached:
    - secure_vector::assign
    - auto::set_key
    - secure_vector::size
    - secure_vector::reserve
    - auto::set_associated_data
    - auto::start
    - Botan::copy_mem
    - Botan::AEAD_Mode::create_or_throw
    - secure_vector::data
    - auto::finish
    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:60,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:62,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:63,1
    - Dst: auto::start
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:64,1
    - Dst: secure_vector::assign
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:68,1
    - Dst: auto::finish
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:71,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:78,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:78,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:78,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: 80
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 80
    functionName: Botan::sodium_aead_chacha20poly1305_decrypt
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 0
    functionsReached:
    - secure_vector::assign
    - auto::set_key
    - secure_vector::size
    - auto::set_associated_data
    - auto::start
    - Botan::copy_mem
    - Botan::AEAD_Mode::create_or_throw
    - secure_vector::data
    - auto::finish
    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:91,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:93,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:94,1
    - Dst: auto::start
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:95,1
    - Dst: secure_vector::reserve
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:99,1
    - Dst: secure_vector::assign
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:100,1
    - Dst: auto::finish
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:102,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:104,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:104,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
    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: 107
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 107
    functionName: Botan::sodium_aead_chacha20poly1305_encrypt_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 0
    functionsReached:
    - secure_vector::assign
    - auto::set_key
    - secure_vector::reserve
    - auto::set_associated_data
    - auto::start
    - Botan::copy_mem
    - Botan::AEAD_Mode::create_or_throw
    - secure_vector::data
    - auto::finish
    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:118,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:120,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:121,1
    - Dst: auto::start
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:122,1
    - Dst: secure_vector::reserve
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:126,1
    - Dst: secure_vector::assign
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:127,1
    - Dst: secure_vector::insert
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:128,1
    - Dst: secure_vector::end
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:128,1
    - Dst: auto::finish
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:131,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:136,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:136,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:136,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: 138
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 138
    functionName: Botan::sodium_aead_chacha20poly1305_decrypt_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 0
    functionsReached:
    - secure_vector::insert
    - secure_vector::assign
    - auto::set_key
    - secure_vector::size
    - secure_vector::reserve
    - auto::set_associated_data
    - secure_vector::end
    - auto::start
    - Botan::copy_mem
    - Botan::AEAD_Mode::create_or_throw
    - secure_vector::data
    - auto::finish
    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:151,1
    - Dst: sodium_aead_chacha20poly1305_encrypt
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:153,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:154,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: 155
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 155
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_encrypt
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 2
    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:166,1
    - Dst: sodium_aead_chacha20poly1305_decrypt
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:168,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:169,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: 170
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 170
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_decrypt
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_UNUSED
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_npubbytes
    - sodium_aead_chacha20poly1305_decrypt
    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:182,1
    - Dst: sodium_aead_chacha20poly1305_encrypt_detached
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:188,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:189,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: 190
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 190
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_encrypt_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_UNUSED
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_npubbytes
    - sodium_aead_chacha20poly1305_encrypt_detached
    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:201,1
    - Dst: sodium_aead_chacha20poly1305_decrypt_detached
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:203,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:204,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: 205
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 205
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_decrypt_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_UNUSED
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_npubbytes
    - sodium_aead_chacha20poly1305_decrypt_detached
    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:216,1
    - Dst: sodium_aead_chacha20poly1305_encrypt
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:217,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:218,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: 219
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 219
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_encrypt
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 2
    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:230,1
    - Dst: sodium_aead_chacha20poly1305_decrypt
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:231,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:232,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: 233
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 233
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_decrypt
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_UNUSED
    - Botan::Sodium::crypto_aead_chacha20poly1305_npubbytes
    - sodium_aead_chacha20poly1305_decrypt
    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:245,1
    - Dst: sodium_aead_chacha20poly1305_encrypt_detached
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:250,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:251,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: 252
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 252
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_encrypt_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_UNUSED
    - Botan::Sodium::crypto_aead_chacha20poly1305_npubbytes
    - sodium_aead_chacha20poly1305_encrypt_detached
    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:263,1
    - Dst: sodium_aead_chacha20poly1305_decrypt_detached
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:265,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:266,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: 267
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 267
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_decrypt_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_UNUSED
    - Botan::Sodium::crypto_aead_chacha20poly1305_npubbytes
    - sodium_aead_chacha20poly1305_decrypt_detached
    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:278,1
    - Dst: sodium_aead_chacha20poly1305_encrypt
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:280,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:281,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: 282
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 282
    functionName: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_encrypt
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 2
    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:293,1
    - Dst: sodium_aead_chacha20poly1305_decrypt
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:295,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:296,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: 297
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 297
    functionName: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_decrypt
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_UNUSED
    - sodium_aead_chacha20poly1305_decrypt
    - 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:309,1
    - Dst: sodium_aead_chacha20poly1305_encrypt_detached
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:314,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:315,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: 316
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 316
    functionName: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_encrypt_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_UNUSED
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_npubbytes
    - sodium_aead_chacha20poly1305_encrypt_detached
    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:327,1
    - Dst: sodium_aead_chacha20poly1305_decrypt_detached
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:328,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:329,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: 330
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 330
    functionName: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_decrypt_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_UNUSED
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_npubbytes
    - sodium_aead_chacha20poly1305_decrypt_detached
    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:25,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:27,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:28,1
    - Dst: auto::start
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:29,1
    - Dst: secure_vector::reserve
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:33,1
    - Dst: secure_vector::assign
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:34,1
    - Dst: auto::finish
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:36,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:38,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:38,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:38,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:40,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: 43
      start: 16
    functionDepth: 2
    functionLinenumber: 16
    functionLinenumberEnd: 43
    functionName: Botan::sodium_aead_chacha20poly1305_encrypt
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 0
    functionsReached:
    - secure_vector::assign
    - auto::set_key
    - secure_vector::size
    - secure_vector::reserve
    - auto::set_associated_data
    - auto::start
    - Botan::copy_mem
    - Botan::AEAD_Mode::create_or_throw
    - secure_vector::data
    - auto::finish
    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:60,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:62,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:63,1
    - Dst: auto::start
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:64,1
    - Dst: secure_vector::assign
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:68,1
    - Dst: auto::finish
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:71,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:78,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:78,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:78,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: 80
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 80
    functionName: Botan::sodium_aead_chacha20poly1305_decrypt
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 0
    functionsReached:
    - secure_vector::assign
    - auto::set_key
    - secure_vector::size
    - auto::set_associated_data
    - auto::start
    - Botan::copy_mem
    - Botan::AEAD_Mode::create_or_throw
    - secure_vector::data
    - auto::finish
    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:91,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:93,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:94,1
    - Dst: auto::start
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:95,1
    - Dst: secure_vector::reserve
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:99,1
    - Dst: secure_vector::assign
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:100,1
    - Dst: auto::finish
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:102,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:104,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:104,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
    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: 107
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 107
    functionName: Botan::sodium_aead_chacha20poly1305_encrypt_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 0
    functionsReached:
    - secure_vector::assign
    - auto::set_key
    - secure_vector::reserve
    - auto::set_associated_data
    - auto::start
    - Botan::copy_mem
    - Botan::AEAD_Mode::create_or_throw
    - secure_vector::data
    - auto::finish
    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:118,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:120,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:121,1
    - Dst: auto::start
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:122,1
    - Dst: secure_vector::reserve
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:126,1
    - Dst: secure_vector::assign
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:127,1
    - Dst: secure_vector::insert
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:128,1
    - Dst: secure_vector::end
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:128,1
    - Dst: auto::finish
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:131,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:136,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:136,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:136,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: 138
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 138
    functionName: Botan::sodium_aead_chacha20poly1305_decrypt_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 0
    functionsReached:
    - secure_vector::insert
    - secure_vector::assign
    - auto::set_key
    - secure_vector::size
    - secure_vector::reserve
    - auto::set_associated_data
    - secure_vector::end
    - auto::start
    - Botan::copy_mem
    - Botan::AEAD_Mode::create_or_throw
    - secure_vector::data
    - auto::finish
    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:25,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:27,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:28,1
    - Dst: auto::start
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:29,1
    - Dst: secure_vector::reserve
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:33,1
    - Dst: secure_vector::assign
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:34,1
    - Dst: auto::finish
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:36,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:38,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:38,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:38,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:40,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: 43
      start: 16
    functionDepth: 2
    functionLinenumber: 16
    functionLinenumberEnd: 43
    functionName: Botan::sodium_aead_chacha20poly1305_encrypt
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 0
    functionsReached:
    - secure_vector::assign
    - auto::set_key
    - secure_vector::size
    - secure_vector::reserve
    - auto::set_associated_data
    - auto::start
    - Botan::copy_mem
    - Botan::AEAD_Mode::create_or_throw
    - secure_vector::data
    - auto::finish
    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:60,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:62,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:63,1
    - Dst: auto::start
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:64,1
    - Dst: secure_vector::assign
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:68,1
    - Dst: auto::finish
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:71,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:78,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:78,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:78,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: 80
      start: 45
    functionDepth: 2
    functionLinenumber: 45
    functionLinenumberEnd: 80
    functionName: Botan::sodium_aead_chacha20poly1305_decrypt
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 0
    functionsReached:
    - secure_vector::assign
    - auto::set_key
    - secure_vector::size
    - auto::set_associated_data
    - auto::start
    - Botan::copy_mem
    - Botan::AEAD_Mode::create_or_throw
    - secure_vector::data
    - auto::finish
    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:91,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:93,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:94,1
    - Dst: auto::start
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:95,1
    - Dst: secure_vector::reserve
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:99,1
    - Dst: secure_vector::assign
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:100,1
    - Dst: auto::finish
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:102,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:104,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:104,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
    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: 107
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 107
    functionName: Botan::sodium_aead_chacha20poly1305_encrypt_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 0
    functionsReached:
    - secure_vector::assign
    - auto::set_key
    - secure_vector::reserve
    - auto::set_associated_data
    - auto::start
    - Botan::copy_mem
    - Botan::AEAD_Mode::create_or_throw
    - secure_vector::data
    - auto::finish
    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:118,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:120,1
    - Dst: auto::set_associated_data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:121,1
    - Dst: auto::start
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:122,1
    - Dst: secure_vector::reserve
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:126,1
    - Dst: secure_vector::assign
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:127,1
    - Dst: secure_vector::insert
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:128,1
    - Dst: secure_vector::end
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:128,1
    - Dst: auto::finish
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:131,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:136,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:136,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:136,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: 138
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 138
    functionName: Botan::sodium_aead_chacha20poly1305_decrypt_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 0
    functionsReached:
    - secure_vector::insert
    - secure_vector::assign
    - auto::set_key
    - secure_vector::size
    - secure_vector::reserve
    - auto::set_associated_data
    - secure_vector::end
    - auto::start
    - Botan::copy_mem
    - Botan::AEAD_Mode::create_or_throw
    - secure_vector::data
    - auto::finish
    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:151,1
    - Dst: sodium_aead_chacha20poly1305_encrypt
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:153,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:154,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: 155
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 155
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_encrypt
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 2
    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:166,1
    - Dst: sodium_aead_chacha20poly1305_decrypt
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:168,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:169,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: 170
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 170
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_decrypt
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_UNUSED
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_npubbytes
    - sodium_aead_chacha20poly1305_decrypt
    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:182,1
    - Dst: sodium_aead_chacha20poly1305_encrypt_detached
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:188,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:189,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: 190
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 190
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_encrypt_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_UNUSED
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_npubbytes
    - sodium_aead_chacha20poly1305_encrypt_detached
    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:201,1
    - Dst: sodium_aead_chacha20poly1305_decrypt_detached
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:203,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:204,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: 205
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 205
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_ietf_decrypt_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_UNUSED
    - Botan::Sodium::crypto_aead_chacha20poly1305_ietf_npubbytes
    - sodium_aead_chacha20poly1305_decrypt_detached
    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:216,1
    - Dst: sodium_aead_chacha20poly1305_encrypt
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:217,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:218,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: 219
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 219
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_encrypt
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 2
    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:230,1
    - Dst: sodium_aead_chacha20poly1305_decrypt
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:231,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:232,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: 233
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 233
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_decrypt
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_UNUSED
    - Botan::Sodium::crypto_aead_chacha20poly1305_npubbytes
    - sodium_aead_chacha20poly1305_decrypt
    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:245,1
    - Dst: sodium_aead_chacha20poly1305_encrypt_detached
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:250,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:251,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: 252
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 252
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_encrypt_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_UNUSED
    - Botan::Sodium::crypto_aead_chacha20poly1305_npubbytes
    - sodium_aead_chacha20poly1305_encrypt_detached
    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:263,1
    - Dst: sodium_aead_chacha20poly1305_decrypt_detached
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:265,1
    - Dst: Botan::Sodium::crypto_aead_chacha20poly1305_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:266,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: 267
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 267
    functionName: Botan::Sodium::crypto_aead_chacha20poly1305_decrypt_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_UNUSED
    - Botan::Sodium::crypto_aead_chacha20poly1305_npubbytes
    - sodium_aead_chacha20poly1305_decrypt_detached
    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:278,1
    - Dst: sodium_aead_chacha20poly1305_encrypt
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:280,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:281,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: 282
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 282
    functionName: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_encrypt
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 2
    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:293,1
    - Dst: sodium_aead_chacha20poly1305_decrypt
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:295,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:296,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: 297
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 297
    functionName: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_decrypt
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_UNUSED
    - sodium_aead_chacha20poly1305_decrypt
    - 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:309,1
    - Dst: sodium_aead_chacha20poly1305_encrypt_detached
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:314,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:315,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: 316
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 316
    functionName: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_encrypt_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_UNUSED
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_npubbytes
    - sodium_aead_chacha20poly1305_encrypt_detached
    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:327,1
    - Dst: sodium_aead_chacha20poly1305_decrypt_detached
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:328,1
    - Dst: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_npubbytes
      Src: /src/botan/src/lib/compat/sodium/sodium_aead.cpp:329,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: 330
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 330
    functionName: Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_decrypt_detached
    functionSourceFile: /src/botan/src/lib/compat/sodium/sodium_aead.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_UNUSED
    - Botan::Sodium::crypto_aead_xchacha20poly1305_ietf_npubbytes
    - sodium_aead_chacha20poly1305_decrypt_detached
    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:126,1
    - Dst: Botan::split_on
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:127,1
    - Dst: std::make_unique<RSA_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:132,1
    - Dst: std::make_unique<X25519_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:138,1
    - Dst: std::make_unique<X448_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:144,1
    - Dst: std::make_unique<McEliece_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:150,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:155,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:155,1
    - Dst: std::make_unique<FrodoKEM_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::make_unique<Kyber_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<ML_KEM_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:168,1
    - Dst: std::make_unique<ECDSA_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:174,1
    - Dst: std::make_unique<ECDH_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:180,1
    - Dst: std::make_unique<DH_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:186,1
    - Dst: std::make_unique<DSA_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:192,1
    - Dst: std::make_unique<ElGamal_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:198,1
    - Dst: std::make_unique<ECGDSA_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:204,1
    - Dst: std::make_unique<ECKCDSA_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:210,1
    - Dst: std::make_unique<Ed25519_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:216,1
    - Dst: std::make_unique<Ed448_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:222,1
    - Dst: std::make_unique<GOST_3410_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:228,1
    - Dst: std::make_unique<SM2_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:234,1
    - Dst: std::make_unique<XMSS_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:240,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:245,1
    - Dst: std::make_unique<Dilithium_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<ML_DSA_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:252,1
    - Dst: std::make_unique<HSS_LMS_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:258,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:263,1
    - Dst: std::make_unique<SphincsPlus_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::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:269,1
    - Dst: std::make_unique<SLH_DSA_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::make_unique<Classic_McEliece_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:276,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:280,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:280,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: 281
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 281
    functionName: Botan::load_public_key
    functionSourceFile: /src/botan/src/lib/pubkey/pk_algs.cpp
    functionUses: 4
    functionsReached:
    - std::make_unique<SphincsPlus_PublicKey>
    - std::make_unique<XMSS_PublicKey>
    - std::make_unique<SLH_DSA_PublicKey>
    - std::make_unique<DSA_PublicKey>
    - std::make_unique<SM2_PublicKey>
    - std::make_unique<Ed25519_PublicKey>
    - Botan::oid
    - std::make_unique<Ed448_PublicKey>
    - std::make_unique<X25519_PublicKey>
    - std::make_unique<ECDSA_PublicKey>
    - std::make_unique<X448_PublicKey>
    - Botan::Decoding_Error
    - std::make_unique<Kyber_PublicKey>
    - std::make_unique<ElGamal_PublicKey>
    - std::make_unique<GOST_3410_PublicKey>
    - std::make_unique<HSS_LMS_PublicKey>
    - std::make_unique<RSA_PublicKey>
    - std::make_unique<DH_PublicKey>
    - std::make_unique<ECGDSA_PublicKey>
    - std::make_unique<Classic_McEliece_PublicKey>
    - Botan::split_on
    - std::make_unique<ML_KEM_PublicKey>
    - std::string_view::starts_with
    - std::make_unique<ECKCDSA_PublicKey>
    - std::make_unique<ECDH_PublicKey>
    - Botan::fmt
    - std::make_unique<ML_DSA_PublicKey>
    - std::make_unique<FrodoKEM_PublicKey>
    - std::make_unique<McEliece_PublicKey>
    - std::make_unique<Dilithium_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:285,1
    - Dst: Botan::split_on
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:286,1
    - Dst: std::make_unique<RSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:291,1
    - Dst: std::make_unique<X25519_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:297,1
    - Dst: std::make_unique<X448_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:303,1
    - Dst: std::make_unique<ECDSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:309,1
    - Dst: std::make_unique<ECDH_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:315,1
    - Dst: std::make_unique<DH_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:321,1
    - Dst: std::make_unique<DSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:327,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:332,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:332,1
    - Dst: std::make_unique<FrodoKEM_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::make_unique<Kyber_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<ML_KEM_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:345,1
    - Dst: std::make_unique<McEliece_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:351,1
    - Dst: std::make_unique<ECGDSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:357,1
    - Dst: std::make_unique<ECKCDSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:363,1
    - Dst: std::make_unique<Ed25519_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:369,1
    - Dst: std::make_unique<Ed448_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:375,1
    - Dst: std::make_unique<GOST_3410_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:381,1
    - Dst: std::make_unique<SM2_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:387,1
    - Dst: std::make_unique<ElGamal_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:393,1
    - Dst: std::make_unique<XMSS_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:399,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:404,1
    - Dst: std::make_unique<Dilithium_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<ML_DSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:411,1
    - Dst: std::make_unique<HSS_LMS_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:417,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:422,1
    - Dst: std::make_unique<SphincsPlus_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::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:428,1
    - Dst: std::make_unique<SLH_DSA_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::make_unique<Classic_McEliece_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:435,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:439,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:439,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: 440
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 440
    functionName: Botan::load_private_key
    functionSourceFile: /src/botan/src/lib/pubkey/pk_algs.cpp
    functionUses: 20
    functionsReached:
    - std::make_unique<Kyber_PrivateKey>
    - std::make_unique<ECDSA_PrivateKey>
    - std::make_unique<GOST_3410_PrivateKey>
    - std::make_unique<SM2_PrivateKey>
    - std::make_unique<McEliece_PrivateKey>
    - std::make_unique<ECKCDSA_PrivateKey>
    - std::make_unique<Ed25519_PrivateKey>
    - Botan::oid
    - Botan::Decoding_Error
    - std::make_unique<ML_KEM_PrivateKey>
    - std::make_unique<X25519_PrivateKey>
    - std::make_unique<SLH_DSA_PrivateKey>
    - std::make_unique<FrodoKEM_PrivateKey>
    - std::make_unique<X448_PrivateKey>
    - std::make_unique<ECDH_PrivateKey>
    - std::make_unique<Classic_McEliece_PrivateKey>
    - Botan::split_on
    - std::make_unique<Ed448_PrivateKey>
    - std::make_unique<ElGamal_PrivateKey>
    - std::make_unique<XMSS_PrivateKey>
    - std::string_view::starts_with
    - std::make_unique<Dilithium_PrivateKey>
    - std::make_unique<SphincsPlus_PrivateKey>
    - std::make_unique<RSA_PrivateKey>
    - std::make_unique<ML_DSA_PrivateKey>
    - Botan::fmt
    - std::make_unique<HSS_LMS_PrivateKey>
    - std::make_unique<DSA_PrivateKey>
    - std::make_unique<ECGDSA_PrivateKey>
    - std::make_unique<DH_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:446,1
    - Dst: std::make_unique<ECDSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:450,1
    - Dst: std::make_unique<ECDH_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:456,1
    - Dst: std::make_unique<ECKCDSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:462,1
    - Dst: std::make_unique<GOST_3410_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:468,1
    - Dst: std::make_unique<SM2_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:474,1
    - Dst: std::make_unique<ECGDSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:480,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: 485
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 485
    functionName: Botan::create_ec_private_key
    functionSourceFile: /src/botan/src/lib/pubkey/pk_algs.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<ECKCDSA_PrivateKey>
    - std::make_unique<ECDSA_PrivateKey>
    - std::make_unique<ECDH_PrivateKey>
    - std::make_unique<ECGDSA_PrivateKey>
    - std::make_unique<GOST_3410_PrivateKey>
    - std::make_unique<SM2_PrivateKey>
    - BOTAN_UNUSED
    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:497,1
    - Dst: std::make_unique<X448_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:503,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:509,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:509,1
    - Dst: std::make_unique<RSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:510,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:517,1
    - Dst: Botan::split_on
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:521,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:523,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:524,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:524,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:527,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:528,1
    - Dst: std::make_unique<McEliece_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:532,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:537,1
    - Dst: Botan::Classic_McEliece_Parameter_Set::from_string
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:538,1
    - Dst: std::make_unique<Classic_McEliece_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:539,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:545,1
    - Dst: FrodoKEMMode
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:545,1
    - Dst: std::make_unique<FrodoKEM_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:546,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:553,1
    - Dst: KyberMode
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:556,1
    - Dst: std::make_unique<Kyber_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:559,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:566,1
    - Dst: ML_KEM_Mode
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:569,1
    - Dst: std::make_unique<ML_KEM_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:572,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:577,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:579,1
    - Dst: DilithiumMode
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:582,1
    - Dst: std::make_unique<Dilithium_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:585,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:592,1
    - Dst: ML_DSA_Mode
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:595,1
    - Dst: std::make_unique<ML_DSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:598,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:605,1
    - Dst: std::string
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:608,1
    - Dst: std::make_unique<HSS_LMS_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:611,1
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:617,1
    - Dst: std::make_unique<SphincsPlus_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:619,1
    - Dst: Botan_CLI::tls_proxy_session::create
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:625,1
    - Dst: std::make_unique<SLH_DSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:627,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:634,1
    - Dst: XMSS_Parameters
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:637,1
    - Dst: std::make_unique<XMSS_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:640,1
    - Dst: std::make_unique<Ed25519_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:646,1
    - Dst: std::make_unique<Ed448_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:652,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:663,1
    - Dst: std::string
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:664,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:681,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:682,1
    - Dst: Botan::create_ec_private_key
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:683,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:694,1
    - Dst: std::string
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:695,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:703,1
    - Dst: std::make_unique<DH_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:707,1
    - Dst: std::make_unique<DSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:713,1
    - Dst: std::make_unique<ElGamal_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:719,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:725,1
    - Dst: std::unique_ptr<Private_Key>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:727,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: 728
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 728
    functionName: Botan::create_private_key
    functionSourceFile: /src/botan/src/lib/pubkey/pk_algs.cpp
    functionUses: 75
    functionsReached:
    - std::make_unique<Kyber_PrivateKey>
    - XMSS_Parameters
    - Botan::Invalid_Argument
    - KyberMode
    - Botan::to_u32bit
    - std::make_unique<McEliece_PrivateKey>
    - BOTAN_UNUSED
    - auto::size
    - Botan::create_ec_private_key
    - std::make_unique<Ed25519_PrivateKey>
    - ML_KEM_Mode
    - Botan_CLI::tls_proxy_session::create
    - Botan::DL_Group::from_name
    - Botan::Classic_McEliece_Parameter_Set::from_string
    - std::make_unique<ML_KEM_PrivateKey>
    - std::make_unique<X25519_PrivateKey>
    - std::make_unique<SLH_DSA_PrivateKey>
    - std::make_unique<FrodoKEM_PrivateKey>
    - std::make_unique<X448_PrivateKey>
    - std::make_unique<Classic_McEliece_PrivateKey>
    - Botan::split_on
    - std::make_unique<Ed448_PrivateKey>
    - std::make_unique<XMSS_PrivateKey>
    - std::make_unique<ElGamal_PrivateKey>
    - std::string_view::starts_with
    - std::make_unique<Dilithium_PrivateKey>
    - std::make_unique<SphincsPlus_PrivateKey>
    - Botan::EC_Group::supports_named_group
    - std::make_unique<RSA_PrivateKey>
    - Botan::fmt
    - std::string_view::empty
    - DilithiumMode
    - FrodoKEMMode
    - std::make_unique<ML_DSA_PrivateKey>
    - std::make_unique<HSS_LMS_PrivateKey>
    - std::string
    - Botan::EC_Group::from_name
    - std::make_unique<DSA_PrivateKey>
    - std::unique_ptr<Private_Key>
    - Botan::Sphincs_Parameters::create
    - std::make_unique<DH_PrivateKey>
    - ML_DSA_Mode
    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:736,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:740,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: 743
      start: 730
    functionDepth: 0
    functionLinenumber: 730
    functionLinenumberEnd: 743
    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:126,1
    - Dst: Botan::split_on
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:127,1
    - Dst: std::make_unique<RSA_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:132,1
    - Dst: std::make_unique<X25519_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:138,1
    - Dst: std::make_unique<X448_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:144,1
    - Dst: std::make_unique<McEliece_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:150,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:155,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:155,1
    - Dst: std::make_unique<FrodoKEM_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::make_unique<Kyber_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<ML_KEM_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:168,1
    - Dst: std::make_unique<ECDSA_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:174,1
    - Dst: std::make_unique<ECDH_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:180,1
    - Dst: std::make_unique<DH_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:186,1
    - Dst: std::make_unique<DSA_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:192,1
    - Dst: std::make_unique<ElGamal_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:198,1
    - Dst: std::make_unique<ECGDSA_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:204,1
    - Dst: std::make_unique<ECKCDSA_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:210,1
    - Dst: std::make_unique<Ed25519_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:216,1
    - Dst: std::make_unique<Ed448_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:222,1
    - Dst: std::make_unique<GOST_3410_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:228,1
    - Dst: std::make_unique<SM2_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:234,1
    - Dst: std::make_unique<XMSS_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:240,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:245,1
    - Dst: std::make_unique<Dilithium_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<ML_DSA_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:252,1
    - Dst: std::make_unique<HSS_LMS_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:258,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:263,1
    - Dst: std::make_unique<SphincsPlus_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::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:269,1
    - Dst: std::make_unique<SLH_DSA_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::make_unique<Classic_McEliece_PublicKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:276,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:280,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:280,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: 281
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 281
    functionName: Botan::load_public_key
    functionSourceFile: /src/botan/src/lib/pubkey/pk_algs.cpp
    functionUses: 4
    functionsReached:
    - std::make_unique<SphincsPlus_PublicKey>
    - std::make_unique<XMSS_PublicKey>
    - std::make_unique<SLH_DSA_PublicKey>
    - std::make_unique<DSA_PublicKey>
    - std::make_unique<SM2_PublicKey>
    - std::make_unique<Ed25519_PublicKey>
    - Botan::oid
    - std::make_unique<Ed448_PublicKey>
    - std::make_unique<X25519_PublicKey>
    - std::make_unique<ECDSA_PublicKey>
    - std::make_unique<X448_PublicKey>
    - Botan::Decoding_Error
    - std::make_unique<Kyber_PublicKey>
    - std::make_unique<ElGamal_PublicKey>
    - std::make_unique<GOST_3410_PublicKey>
    - std::make_unique<HSS_LMS_PublicKey>
    - std::make_unique<RSA_PublicKey>
    - std::make_unique<DH_PublicKey>
    - std::make_unique<ECGDSA_PublicKey>
    - std::make_unique<Classic_McEliece_PublicKey>
    - Botan::split_on
    - std::make_unique<ML_KEM_PublicKey>
    - std::string_view::starts_with
    - std::make_unique<ECKCDSA_PublicKey>
    - std::make_unique<ECDH_PublicKey>
    - Botan::fmt
    - std::make_unique<ML_DSA_PublicKey>
    - std::make_unique<FrodoKEM_PublicKey>
    - std::make_unique<McEliece_PublicKey>
    - std::make_unique<Dilithium_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:285,1
    - Dst: Botan::split_on
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:286,1
    - Dst: std::make_unique<RSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:291,1
    - Dst: std::make_unique<X25519_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:297,1
    - Dst: std::make_unique<X448_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:303,1
    - Dst: std::make_unique<ECDSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:309,1
    - Dst: std::make_unique<ECDH_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:315,1
    - Dst: std::make_unique<DH_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:321,1
    - Dst: std::make_unique<DSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:327,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:332,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:332,1
    - Dst: std::make_unique<FrodoKEM_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::make_unique<Kyber_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<ML_KEM_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:345,1
    - Dst: std::make_unique<McEliece_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:351,1
    - Dst: std::make_unique<ECGDSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:357,1
    - Dst: std::make_unique<ECKCDSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:363,1
    - Dst: std::make_unique<Ed25519_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:369,1
    - Dst: std::make_unique<Ed448_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:375,1
    - Dst: std::make_unique<GOST_3410_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:381,1
    - Dst: std::make_unique<SM2_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:387,1
    - Dst: std::make_unique<ElGamal_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:393,1
    - Dst: std::make_unique<XMSS_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:399,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:404,1
    - Dst: std::make_unique<Dilithium_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<ML_DSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:411,1
    - Dst: std::make_unique<HSS_LMS_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:417,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:422,1
    - Dst: std::make_unique<SphincsPlus_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::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:428,1
    - Dst: std::make_unique<SLH_DSA_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::make_unique<Classic_McEliece_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:435,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:439,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:439,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: 440
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 440
    functionName: Botan::load_private_key
    functionSourceFile: /src/botan/src/lib/pubkey/pk_algs.cpp
    functionUses: 20
    functionsReached:
    - std::make_unique<Kyber_PrivateKey>
    - std::make_unique<ECDSA_PrivateKey>
    - std::make_unique<GOST_3410_PrivateKey>
    - std::make_unique<SM2_PrivateKey>
    - std::make_unique<McEliece_PrivateKey>
    - std::make_unique<ECKCDSA_PrivateKey>
    - std::make_unique<Ed25519_PrivateKey>
    - Botan::oid
    - Botan::Decoding_Error
    - std::make_unique<ML_KEM_PrivateKey>
    - std::make_unique<X25519_PrivateKey>
    - std::make_unique<SLH_DSA_PrivateKey>
    - std::make_unique<FrodoKEM_PrivateKey>
    - std::make_unique<X448_PrivateKey>
    - std::make_unique<ECDH_PrivateKey>
    - std::make_unique<Classic_McEliece_PrivateKey>
    - Botan::split_on
    - std::make_unique<Ed448_PrivateKey>
    - std::make_unique<ElGamal_PrivateKey>
    - std::make_unique<XMSS_PrivateKey>
    - std::string_view::starts_with
    - std::make_unique<Dilithium_PrivateKey>
    - std::make_unique<SphincsPlus_PrivateKey>
    - std::make_unique<RSA_PrivateKey>
    - std::make_unique<ML_DSA_PrivateKey>
    - Botan::fmt
    - std::make_unique<HSS_LMS_PrivateKey>
    - std::make_unique<DSA_PrivateKey>
    - std::make_unique<ECGDSA_PrivateKey>
    - std::make_unique<DH_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:446,1
    - Dst: std::make_unique<ECDSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:450,1
    - Dst: std::make_unique<ECDH_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:456,1
    - Dst: std::make_unique<ECKCDSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:462,1
    - Dst: std::make_unique<GOST_3410_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:468,1
    - Dst: std::make_unique<SM2_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:474,1
    - Dst: std::make_unique<ECGDSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:480,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: 485
      start: 442
    functionDepth: 0
    functionLinenumber: 442
    functionLinenumberEnd: 485
    functionName: Botan::create_ec_private_key
    functionSourceFile: /src/botan/src/lib/pubkey/pk_algs.cpp
    functionUses: 1
    functionsReached:
    - std::make_unique<ECKCDSA_PrivateKey>
    - std::make_unique<ECDSA_PrivateKey>
    - std::make_unique<ECDH_PrivateKey>
    - std::make_unique<ECGDSA_PrivateKey>
    - std::make_unique<GOST_3410_PrivateKey>
    - std::make_unique<SM2_PrivateKey>
    - BOTAN_UNUSED
    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:497,1
    - Dst: std::make_unique<X448_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:503,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:509,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:509,1
    - Dst: std::make_unique<RSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:510,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:517,1
    - Dst: Botan::split_on
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:521,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:523,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:524,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:524,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:527,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:528,1
    - Dst: std::make_unique<McEliece_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:532,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:537,1
    - Dst: Botan::Classic_McEliece_Parameter_Set::from_string
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:538,1
    - Dst: std::make_unique<Classic_McEliece_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:539,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:545,1
    - Dst: FrodoKEMMode
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:545,1
    - Dst: std::make_unique<FrodoKEM_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:546,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:553,1
    - Dst: KyberMode
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:556,1
    - Dst: std::make_unique<Kyber_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:559,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:566,1
    - Dst: ML_KEM_Mode
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:569,1
    - Dst: std::make_unique<ML_KEM_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:572,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:577,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:579,1
    - Dst: DilithiumMode
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:582,1
    - Dst: std::make_unique<Dilithium_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:585,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:592,1
    - Dst: ML_DSA_Mode
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:595,1
    - Dst: std::make_unique<ML_DSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:598,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:605,1
    - Dst: std::string
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:608,1
    - Dst: std::make_unique<HSS_LMS_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:611,1
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:617,1
    - Dst: std::make_unique<SphincsPlus_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:619,1
    - Dst: Botan_CLI::tls_proxy_session::create
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:625,1
    - Dst: std::make_unique<SLH_DSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:627,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:634,1
    - Dst: XMSS_Parameters
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:637,1
    - Dst: std::make_unique<XMSS_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:640,1
    - Dst: std::make_unique<Ed25519_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:646,1
    - Dst: std::make_unique<Ed448_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:652,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:663,1
    - Dst: std::string
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:664,1
    - Dst: Botan::EC_Group::supports_named_group
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:681,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:682,1
    - Dst: Botan::create_ec_private_key
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:683,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:694,1
    - Dst: std::string
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:695,1
    - Dst: Botan::DL_Group::from_name
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:703,1
    - Dst: std::make_unique<DH_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:707,1
    - Dst: std::make_unique<DSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:713,1
    - Dst: std::make_unique<ElGamal_PrivateKey>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:719,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:725,1
    - Dst: std::unique_ptr<Private_Key>
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:727,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: 728
      start: 487
    functionDepth: 1
    functionLinenumber: 487
    functionLinenumberEnd: 728
    functionName: Botan::create_private_key
    functionSourceFile: /src/botan/src/lib/pubkey/pk_algs.cpp
    functionUses: 75
    functionsReached:
    - std::make_unique<Kyber_PrivateKey>
    - XMSS_Parameters
    - Botan::Invalid_Argument
    - KyberMode
    - Botan::to_u32bit
    - std::make_unique<McEliece_PrivateKey>
    - BOTAN_UNUSED
    - auto::size
    - Botan::create_ec_private_key
    - std::make_unique<Ed25519_PrivateKey>
    - ML_KEM_Mode
    - Botan_CLI::tls_proxy_session::create
    - Botan::DL_Group::from_name
    - Botan::Classic_McEliece_Parameter_Set::from_string
    - std::make_unique<ML_KEM_PrivateKey>
    - std::make_unique<X25519_PrivateKey>
    - std::make_unique<SLH_DSA_PrivateKey>
    - std::make_unique<FrodoKEM_PrivateKey>
    - std::make_unique<X448_PrivateKey>
    - std::make_unique<Classic_McEliece_PrivateKey>
    - Botan::split_on
    - std::make_unique<Ed448_PrivateKey>
    - std::make_unique<XMSS_PrivateKey>
    - std::make_unique<ElGamal_PrivateKey>
    - std::string_view::starts_with
    - std::make_unique<Dilithium_PrivateKey>
    - std::make_unique<SphincsPlus_PrivateKey>
    - Botan::EC_Group::supports_named_group
    - std::make_unique<RSA_PrivateKey>
    - Botan::fmt
    - std::string_view::empty
    - DilithiumMode
    - FrodoKEMMode
    - std::make_unique<ML_DSA_PrivateKey>
    - std::make_unique<HSS_LMS_PrivateKey>
    - std::string
    - Botan::EC_Group::from_name
    - std::make_unique<DSA_PrivateKey>
    - std::unique_ptr<Private_Key>
    - Botan::Sphincs_Parameters::create
    - std::make_unique<DH_PrivateKey>
    - ML_DSA_Mode
    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:736,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/pk_algs.cpp:740,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: 743
      start: 730
    functionDepth: 0
    functionLinenumber: 730
    functionLinenumberEnd: 743
    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:
    - Botan::OID::from_string
    - Lookup_Error
    - algo_name
    - fmt
    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::size
    - Botan::hex_encode
    - auto::process
    - Botan::HashFunction::create_or_throw
    - std::string::push_back
    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
    - public_key_bits
    - DER_Encoder
    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:
    - private_key_bits
    - pkcs8_algorithm_identifier
    - DER_Encoder
    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:
    - private_key_bits
    - create_hex_fingerprint
    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:
    - Botan::OID::from_string
    - Lookup_Error
    - algo_name
    - fmt
    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::size
    - Botan::hex_encode
    - auto::process
    - Botan::HashFunction::create_or_throw
    - std::string::push_back
    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
    - public_key_bits
    - DER_Encoder
    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:
    - private_key_bits
    - pkcs8_algorithm_identifier
    - DER_Encoder
    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:
    - private_key_bits
    - create_hex_fingerprint
    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: 6
    functionsReached:
    - subject_public_key
    - Botan::PEM_Code::encode
    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: 35
    functionsReached:
    - BER_Decoder
    - Decoding_Error
    - Botan::ASN1::maybe_BER
    - Botan::PEM_Code::matches
    - std::vector::empty
    - load_public_key
    - Botan::PEM_Code::decode_check_label
    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: 6
    functionsReached:
    - subject_public_key
    - Botan::PEM_Code::encode
    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: 35
    functionsReached:
    - BER_Decoder
    - Decoding_Error
    - Botan::ASN1::maybe_BER
    - Botan::PEM_Code::matches
    - std::vector::empty
    - load_public_key
    - Botan::PEM_Code::decode_check_label
    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:26,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - in
    - length
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 33
    functionName: Botan::PK_Decryptor::decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - do_decrypt
    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:43,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:55,1
    - Dst: do_decrypt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:63,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:65,1
    - Dst: CT::Mask<uint8_t>
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:66,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:66,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:66,1
    - Dst: secure_vector::resize
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:68,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:76,1
    - Dst: auto::select_n
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:82,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:82,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:82,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:82,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: 85
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 85
    functionName: Botan::PK_Decryptor::decrypt_or_random
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached:
    - do_decrypt
    - secure_vector::size
    - Botan::ct_is_equal
    - CT::Mask<uint8_t>
    - random_vec
    - secure_vector::resize
    - secure_vector::data
    - auto::select_n
    - BOTAN_ASSERT
    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:91,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: 92
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 92
    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:98,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:100,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:100,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:100,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: 102
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 102
    functionName: Botan::PK_Encryptor_EME::PK_Encryptor_EME
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - create_encryption_op
    - algo_name
    - 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: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    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: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    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:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptext_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 111
    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:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ptext
    - len
    - ' rng'
    argTypes:
    - uint8_t[]
    - size_t
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 115
    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:118,1
    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::PK_Encryptor_EME::maximum_input_size
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 2
    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:125,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:127,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:127,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:127,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: 129
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 129
    functionName: Botan::PK_Decryptor_EME::PK_Decryptor_EME
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - create_decryption_op
    - 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: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    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: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    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:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctext_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 138
    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:141,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: 142
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 142
    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:145,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:147,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:147,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:147,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: 149
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 149
    functionName: Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 8
    functionsReached:
    - Invalid_Argument
    - create_kem_encryption_op
    - 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:156,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: 157
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 157
    functionName: Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 8
    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: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    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: 161
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 161
    functionName: Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 8
    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:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - desired_shared_key_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 166
    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:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 170
    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:177,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:177,1
    - Dst: Botan::PK_KEM_Encryptor::encapsulated_key_length
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:177,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:178,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:178,1
    - Dst: Botan::PK_KEM_Encryptor::shared_key_length
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:178,1
    - Dst: kem_encrypt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:180,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: 181
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 181
    functionName: Botan::PK_KEM_Encryptor::encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 22
    functionsReached:
    - Botan::PK_KEM_Encryptor::encapsulated_key_length
    - BOTAN_ARG_CHECK
    - Botan::PK_KEM_Encryptor::shared_key_length
    - kem_encrypt
    - std::span<uint8_t>::size
    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:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - desired_shared_key_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 185
    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: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::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:195,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:197,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:197,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:197,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: 199
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 199
    functionName: Botan::PK_KEM_Decryptor::PK_KEM_Decryptor
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 8
    functionsReached:
    - algo_name
    - Invalid_Argument
    - create_kem_decryption_op
    - fmt
    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: 201
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 201
    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: 203
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 203
    functionName: Botan::PK_KEM_Decryptor::PK_KEM_Decryptor
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 8
    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:210,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:210,1
    - Dst: Botan::PK_KEM_Decryptor::shared_key_length
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:210,1
    - Dst: kem_decrypt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:212,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: 213
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 213
    functionName: Botan::PK_KEM_Decryptor::decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 22
    functionsReached:
    - Botan::PK_KEM_Decryptor::shared_key_length
    - std::span<uint8_t>::size
    - kem_decrypt
    - BOTAN_ARG_CHECK
    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:219,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:221,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:221,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:221,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: 223
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 223
    functionName: Botan::PK_Key_Agreement::PK_Key_Agreement
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - fmt
    - algo_name
    - create_key_agreement_op
    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: 225
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 225
    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: 227
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 227
    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:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 232
    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:238,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:238,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: 239
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 239
    functionName: Botan::PK_Key_Agreement::derive_key
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 18
    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:244,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:244,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: 245
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 245
    functionName: Botan::PK_Key_Agreement::derive_key
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 19
    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:250,1
    - Dst: agree
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:250,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: 251
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 251
    functionName: Botan::PK_Key_Agreement::derive_key
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 19
    functionsReached:
    - agree
    - SymmetricKey
    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:258,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:260,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:260,1
    - Dst: create_signature_op
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:263,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:265,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:265,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:265,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: 267
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 267
    functionName: Botan::PK_Signer::PK_Signer
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 8
    functionsReached:
    - fmt
    - BOTAN_ARG_CHECK
    - create_signature_op
    - Invalid_Argument
    - algo_name
    - has_value
    - _signature_element_size_for_DER_encoding
    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:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 271
    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:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 275
    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: 277
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 277
    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: 279
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 279
    functionName: Botan::PK_Signer::PK_Signer
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 8
    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:283,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 284
    functionName: Botan::PK_Signer::update
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 22
    functionsReached:
    - as_span_of_bytes
    - Botan::PK_Signer::update
    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:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - in
    - length
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 288
    functionName: Botan::PK_Signer::update
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 23
    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:293,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:293,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:294,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:299,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:301,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:301,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:301,1
    - Dst: Botan::DER_Encoder
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:305,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: 307
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 307
    functionName: Botan::der_encode_signature
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached:
    - Botan::DER_Encoder
    - std::span<const uint8_t>::size
    - Encoding_Error
    - std::vector::emplace_back
    - BufferSlicer::take
    - Botan::BigInt::from_bytes
    - std::vector::reserve
    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:293,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:293,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:294,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:299,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:301,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:301,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:301,1
    - Dst: Botan::DER_Encoder
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:305,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: 307
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 307
    functionName: Botan::der_encode_signature
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached:
    - Botan::DER_Encoder
    - std::span<const uint8_t>::size
    - Encoding_Error
    - std::vector::emplace_back
    - BufferSlicer::take
    - Botan::BigInt::from_bytes
    - std::vector::reserve
    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:313,1
    - Dst: Botan::PK_Signer::signature_length
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:315,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:344,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:351,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 353
    functionName: Botan::PK_Signer::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 1
    functionsReached:
    - Botan::PK_Signer::signature_length
    - BOTAN_ASSERT_NOMSG
    - Internal_Error
    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:356,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:361,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:361,1
    - Dst: der_encode_signature
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:362,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:362,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:364,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 366
    functionName: Botan::PK_Signer::signature
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 20
    functionsReached:
    - sign
    - BOTAN_ASSERT_NOMSG
    - Internal_Error
    - der_encode_signature
    - has_value
    - 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:372,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:374,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:374,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:374,1
    - Dst: _signature_element_size_for_DER_encoding
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:378,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:381,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:381,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: 383
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 383
    functionName: Botan::PK_Verifier::PK_Verifier
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 6
    functionsReached:
    - fmt
    - BOTAN_ARG_CHECK
    - Invalid_Argument
    - algo_name
    - has_value
    - create_verification_op
    - _signature_element_size_for_DER_encoding
    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:388,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:390,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:390,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:390,1
    - Dst: _default_x509_signature_format
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:393,1
    - Dst: _signature_element_size_for_DER_encoding
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:394,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: 395
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 395
    functionName: Botan::PK_Verifier::PK_Verifier
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 6
    functionsReached:
    - create_x509_verification_op
    - _default_x509_signature_format
    - _signature_element_size_for_DER_encoding
    - Invalid_Argument
    - algo_name
    - 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: 397
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 397
    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: 399
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 399
    functionName: Botan::PK_Verifier::PK_Verifier
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 6
    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:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 404
    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:408,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - format
    argTypes:
    - Signature_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 411
    functionName: Botan::PK_Verifier::set_input_format
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached:
    - has_value
    - BOTAN_ARG_CHECK
    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:414,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:415,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: 416
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 416
    functionName: Botan::PK_Verifier::verify_message
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 24
    functionsReached:
    - Botan::PK_Verifier::check_signature
    - Botan::PK_Verifier::update
    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:419,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 420
    functionName: Botan::PK_Verifier::update
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 19
    functionsReached:
    - as_span_of_bytes
    - Botan::PK_Verifier::update
    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:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - in
    - length
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 424
    functionName: Botan::PK_Verifier::update
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 20
    functionsReached:
    - Botan::PK_Verifier::update
    linkageType: ''
    returnType: void
    signature: void PK_Verifier::update(const uint8_t in[], size_t length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BER_Decoder::start_sequence
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:431,1
    - Dst: BOTAN_ASSERT_NOMSG
      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: BER_Decoder::decode
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:439,1
    - Dst: BigInt::serialize
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:440,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:445,1
    - Dst: Botan::der_encode_signature
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:448,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:450,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:450,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:450,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:450,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:451,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 4
    argNames:
    - sig
    - length
    - sig_parts
    - sig_part_size
    argTypes:
    - uint8_t[]
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 428
    functionDepth: 3
    functionLinenumber: 428
    functionLinenumberEnd: 454
    functionName: Botan::decode_der_signature
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - BER_Decoder::more_items
    - Botan::CT::is_equal
    - Botan::der_encode_signature
    - std::vector::data
    - BER_Decoder::decode
    - Botan::Decoding_Error
    - BigInt::serialize
    - std::vector::size
    - BER_Decoder::start_sequence
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> decode_der_signature(const uint8_t sig[], size_t
      length, size_t sig_parts, size_t sig_part_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BER_Decoder::start_sequence
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:431,1
    - Dst: BOTAN_ASSERT_NOMSG
      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: BER_Decoder::decode
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:439,1
    - Dst: BigInt::serialize
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:440,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:445,1
    - Dst: Botan::der_encode_signature
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:448,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:450,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:450,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:450,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:450,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:451,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 4
    argNames:
    - sig
    - length
    - sig_parts
    - sig_part_size
    argTypes:
    - uint8_t[]
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 428
    functionDepth: 3
    functionLinenumber: 428
    functionLinenumberEnd: 454
    functionName: Botan::decode_der_signature
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - BER_Decoder::more_items
    - Botan::CT::is_equal
    - Botan::der_encode_signature
    - std::vector::data
    - BER_Decoder::decode
    - Botan::Decoding_Error
    - BigInt::serialize
    - std::vector::size
    - BER_Decoder::start_sequence
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> decode_der_signature(const uint8_t sig[], size_t
      length, size_t sig_parts, size_t sig_part_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_valid_signature
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:461,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:466,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:466,1
    - Dst: decode_der_signature
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:469,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:469,1
    - Dst: is_valid_signature
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:473,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:477,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - sig
    - length
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 486
    functionName: Botan::PK_Verifier::check_signature
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 17
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - is_valid_signature
    - Internal_Error
    - has_value
    - value
    - decode_der_signature
    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:26,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - in
    - length
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 33
    functionName: Botan::PK_Decryptor::decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - do_decrypt
    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:43,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:55,1
    - Dst: do_decrypt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:63,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:65,1
    - Dst: CT::Mask<uint8_t>
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:66,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:66,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:66,1
    - Dst: secure_vector::resize
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:68,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:76,1
    - Dst: auto::select_n
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:82,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:82,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:82,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:82,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: 85
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 85
    functionName: Botan::PK_Decryptor::decrypt_or_random
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 1
    functionsReached:
    - do_decrypt
    - secure_vector::size
    - Botan::ct_is_equal
    - CT::Mask<uint8_t>
    - random_vec
    - secure_vector::resize
    - secure_vector::data
    - auto::select_n
    - BOTAN_ASSERT
    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:91,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: 92
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 92
    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:98,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:100,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:100,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:100,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: 102
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 102
    functionName: Botan::PK_Encryptor_EME::PK_Encryptor_EME
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - create_encryption_op
    - algo_name
    - 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: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    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: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    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:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptext_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 111
    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:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ptext
    - len
    - ' rng'
    argTypes:
    - uint8_t[]
    - size_t
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 115
    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:118,1
    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::PK_Encryptor_EME::maximum_input_size
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 2
    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:125,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:127,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:127,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:127,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: 129
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 129
    functionName: Botan::PK_Decryptor_EME::PK_Decryptor_EME
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - create_decryption_op
    - 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: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    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: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    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:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ctext_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 138
    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:141,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: 142
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 142
    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:145,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:147,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:147,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:147,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: 149
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 149
    functionName: Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 8
    functionsReached:
    - Invalid_Argument
    - create_kem_encryption_op
    - 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:156,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: 157
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 157
    functionName: Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 8
    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: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    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: 161
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 161
    functionName: Botan::PK_KEM_Encryptor::PK_KEM_Encryptor
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 8
    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:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - desired_shared_key_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 166
    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:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 170
    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:177,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:177,1
    - Dst: Botan::PK_KEM_Encryptor::encapsulated_key_length
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:177,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:178,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:178,1
    - Dst: Botan::PK_KEM_Encryptor::shared_key_length
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:178,1
    - Dst: kem_encrypt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:180,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: 181
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 181
    functionName: Botan::PK_KEM_Encryptor::encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 22
    functionsReached:
    - Botan::PK_KEM_Encryptor::encapsulated_key_length
    - BOTAN_ARG_CHECK
    - Botan::PK_KEM_Encryptor::shared_key_length
    - kem_encrypt
    - std::span<uint8_t>::size
    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:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - desired_shared_key_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 185
    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: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::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:195,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:197,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:197,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:197,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: 199
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 199
    functionName: Botan::PK_KEM_Decryptor::PK_KEM_Decryptor
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 8
    functionsReached:
    - algo_name
    - Invalid_Argument
    - create_kem_decryption_op
    - fmt
    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: 201
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 201
    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: 203
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 203
    functionName: Botan::PK_KEM_Decryptor::PK_KEM_Decryptor
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 8
    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:210,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:210,1
    - Dst: Botan::PK_KEM_Decryptor::shared_key_length
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:210,1
    - Dst: kem_decrypt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:212,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: 213
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 213
    functionName: Botan::PK_KEM_Decryptor::decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 22
    functionsReached:
    - Botan::PK_KEM_Decryptor::shared_key_length
    - std::span<uint8_t>::size
    - kem_decrypt
    - BOTAN_ARG_CHECK
    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:219,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:221,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:221,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:221,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: 223
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 223
    functionName: Botan::PK_Key_Agreement::PK_Key_Agreement
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached:
    - Invalid_Argument
    - fmt
    - algo_name
    - create_key_agreement_op
    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: 225
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 225
    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: 227
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 227
    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:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 232
    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:238,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:238,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: 239
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 239
    functionName: Botan::PK_Key_Agreement::derive_key
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 20
    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:244,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:244,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: 245
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 245
    functionName: Botan::PK_Key_Agreement::derive_key
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 21
    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:250,1
    - Dst: agree
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:250,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: 251
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 251
    functionName: Botan::PK_Key_Agreement::derive_key
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 21
    functionsReached:
    - agree
    - SymmetricKey
    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:258,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:260,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:260,1
    - Dst: create_signature_op
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:263,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:265,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:265,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:265,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: 267
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 267
    functionName: Botan::PK_Signer::PK_Signer
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 8
    functionsReached:
    - fmt
    - BOTAN_ARG_CHECK
    - create_signature_op
    - Invalid_Argument
    - algo_name
    - has_value
    - _signature_element_size_for_DER_encoding
    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:270,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 271
    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:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 275
    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: 277
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 277
    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: 279
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 279
    functionName: Botan::PK_Signer::PK_Signer
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 8
    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:283,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 284
    functionName: Botan::PK_Signer::update
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 24
    functionsReached:
    - as_span_of_bytes
    - Botan::PK_Signer::update
    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:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - in
    - length
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 286
    functionDepth: 0
    functionLinenumber: 286
    functionLinenumberEnd: 288
    functionName: Botan::PK_Signer::update
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 25
    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:293,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:293,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:294,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:299,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:301,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:301,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:301,1
    - Dst: Botan::DER_Encoder
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:305,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: 307
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 307
    functionName: Botan::der_encode_signature
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 2
    functionsReached:
    - Botan::DER_Encoder
    - std::span<const uint8_t>::size
    - Encoding_Error
    - std::vector::emplace_back
    - BufferSlicer::take
    - Botan::BigInt::from_bytes
    - std::vector::reserve
    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:293,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:293,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:294,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:299,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:301,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:301,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:301,1
    - Dst: Botan::DER_Encoder
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:305,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: 307
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 307
    functionName: Botan::der_encode_signature
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 2
    functionsReached:
    - Botan::DER_Encoder
    - std::span<const uint8_t>::size
    - Encoding_Error
    - std::vector::emplace_back
    - BufferSlicer::take
    - Botan::BigInt::from_bytes
    - std::vector::reserve
    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:313,1
    - Dst: Botan::PK_Signer::signature_length
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:315,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:344,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:351,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 353
    functionName: Botan::PK_Signer::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 2
    functionsReached:
    - Botan::PK_Signer::signature_length
    - BOTAN_ASSERT_NOMSG
    - Internal_Error
    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:356,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:361,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:361,1
    - Dst: der_encode_signature
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:362,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:362,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:364,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 366
    functionName: Botan::PK_Signer::signature
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 20
    functionsReached:
    - sign
    - BOTAN_ASSERT_NOMSG
    - Internal_Error
    - der_encode_signature
    - has_value
    - 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:372,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:374,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:374,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:374,1
    - Dst: _signature_element_size_for_DER_encoding
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:378,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:381,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:381,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: 383
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 383
    functionName: Botan::PK_Verifier::PK_Verifier
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 6
    functionsReached:
    - fmt
    - BOTAN_ARG_CHECK
    - Invalid_Argument
    - algo_name
    - has_value
    - create_verification_op
    - _signature_element_size_for_DER_encoding
    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:388,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:390,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:390,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:390,1
    - Dst: _default_x509_signature_format
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:393,1
    - Dst: _signature_element_size_for_DER_encoding
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:394,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: 395
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 395
    functionName: Botan::PK_Verifier::PK_Verifier
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 6
    functionsReached:
    - create_x509_verification_op
    - _default_x509_signature_format
    - _signature_element_size_for_DER_encoding
    - Invalid_Argument
    - algo_name
    - 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: 397
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 397
    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: 399
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 399
    functionName: Botan::PK_Verifier::PK_Verifier
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 6
    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:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 404
    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:408,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:408,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - format
    argTypes:
    - Signature_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 411
    functionName: Botan::PK_Verifier::set_input_format
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached:
    - has_value
    - BOTAN_ARG_CHECK
    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:414,1
    - Dst: Botan::PK_Verifier::check_signature
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:415,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: 416
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 416
    functionName: Botan::PK_Verifier::verify_message
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 24
    functionsReached:
    - Botan::PK_Verifier::check_signature
    - Botan::PK_Verifier::update
    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:419,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 420
    functionName: Botan::PK_Verifier::update
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 22
    functionsReached:
    - as_span_of_bytes
    - Botan::PK_Verifier::update
    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:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - in
    - length
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 424
    functionName: Botan::PK_Verifier::update
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 23
    functionsReached:
    - Botan::PK_Verifier::update
    linkageType: ''
    returnType: void
    signature: void PK_Verifier::update(const uint8_t in[], size_t length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BER_Decoder::start_sequence
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:431,1
    - Dst: BOTAN_ASSERT_NOMSG
      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: BER_Decoder::decode
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:439,1
    - Dst: BigInt::serialize
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:440,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:445,1
    - Dst: Botan::der_encode_signature
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:448,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:450,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:450,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:450,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:450,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:451,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 4
    argNames:
    - sig
    - length
    - sig_parts
    - sig_part_size
    argTypes:
    - uint8_t[]
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 428
    functionDepth: 3
    functionLinenumber: 428
    functionLinenumberEnd: 454
    functionName: Botan::decode_der_signature
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - BER_Decoder::more_items
    - Botan::CT::is_equal
    - Botan::der_encode_signature
    - std::vector::data
    - BER_Decoder::decode
    - Botan::Decoding_Error
    - BigInt::serialize
    - std::vector::size
    - BER_Decoder::start_sequence
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> decode_der_signature(const uint8_t sig[], size_t
      length, size_t sig_parts, size_t sig_part_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BER_Decoder::start_sequence
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:431,1
    - Dst: BOTAN_ASSERT_NOMSG
      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: BER_Decoder::decode
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:439,1
    - Dst: BigInt::serialize
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:440,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:445,1
    - Dst: Botan::der_encode_signature
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:448,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:450,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:450,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:450,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:450,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:451,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 4
    argNames:
    - sig
    - length
    - sig_parts
    - sig_part_size
    argTypes:
    - uint8_t[]
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 428
    functionDepth: 3
    functionLinenumber: 428
    functionLinenumberEnd: 454
    functionName: Botan::decode_der_signature
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - BER_Decoder::more_items
    - Botan::CT::is_equal
    - Botan::der_encode_signature
    - std::vector::data
    - BER_Decoder::decode
    - Botan::Decoding_Error
    - BigInt::serialize
    - std::vector::size
    - BER_Decoder::start_sequence
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> decode_der_signature(const uint8_t sig[], size_t
      length, size_t sig_parts, size_t sig_part_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_valid_signature
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:461,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:466,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:466,1
    - Dst: decode_der_signature
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:469,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:469,1
    - Dst: is_valid_signature
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:473,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/pubkey.cpp:477,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - sig
    - length
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 458
    functionDepth: 1
    functionLinenumber: 458
    functionLinenumberEnd: 486
    functionName: Botan::PK_Verifier::check_signature
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.cpp
    functionUses: 18
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - is_valid_signature
    - Internal_Error
    - has_value
    - value
    - decode_der_signature
    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: 2
    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:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 231
    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:324,1
    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: 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: 330
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 330
    functionName: stateful_operation
    functionSourceFile: /src/botan/src/lib/pubkey/pk_keys.h
    functionUses: 8
    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: 337
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 337
    functionName: remaining_operations
    functionSourceFile: /src/botan/src/lib/pubkey/pk_keys.h
    functionUses: 14
    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:426,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/pk_keys.h:426,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pk_keys.h:426,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: 427
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 427
    functionName: create_hex_fingerprint
    functionSourceFile: /src/botan/src/lib/pubkey/pk_keys.h
    functionUses: 5
    functionsReached:
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - create_hex_fingerprint
    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: 8
    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: 36
    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: 37
    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: 38
    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: 8
    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: 40
    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: 41
    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: 42
    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:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    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:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - padding
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 32
    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: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    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:37,1
    - Dst: max_ptext_input_bits
      Src: /src/botan/src/lib/pubkey/pk_ops.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: PK_Ops::Encryption_with_Padding::max_input_bits() const
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - max_ptext_input_bits
    - maximum_input_size
    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:42,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:44,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:44,1
    - Dst: pad
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:47,1
    - Dst: raw_encrypt
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:48,1
    - Dst: first
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - msg
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 49
    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:
    - std::span<const uint8_t>::size
    - BOTAN_ARG_CHECK
    - raw_encrypt
    - max_ptext_input_bits
    - pad
    - first
    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:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - padding
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 52
    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: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    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:57,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:59,1
    - Dst: unpad
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:60,1
    - Dst: Botan::CT::Mask::from_choice
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:62,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:62,1
    - Dst: secure_vector::resize
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:74,1
    - Dst: auto::value_or
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:74,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: 76
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 76
    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
    - Botan::CT::Mask::from_choice
    - auto::has_value
    - secure_vector::size
    - secure_vector::resize
    - auto::value_or
    - unpad
    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:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - kdf
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 82
    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: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    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:89,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:90,1
    - Dst: raw_agree
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:93,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:93,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:93,1
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:95,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:95,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:95,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: 98
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 98
    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:
    - std::span<const uint8_t>::empty
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - derive_key
    - raw_agree
    - Invalid_Argument
    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:103,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:109,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:109,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:110,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:110,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:116,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:117,1
    - Dst: std::make_unique<RawHashFunction>
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:118,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:121,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:122,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:122,1
    - Dst: std::make_unique<RawHashFunction>
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:123,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:123,1
    - Dst: Algorithm_Not_Found
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:129,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - padding
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 130
    functionName: Botan::create_signature_hash
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - SCAN_Name::arg_count
    - Algorithm_Not_Found
    - std::make_unique<RawHashFunction>
    - SCAN_Name::arg
    - SCAN_Name::algo_name
    - Botan::HashFunction::create
    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:103,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:109,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:109,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:110,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:110,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:116,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:117,1
    - Dst: std::make_unique<RawHashFunction>
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:118,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:121,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:122,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:122,1
    - Dst: std::make_unique<RawHashFunction>
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:123,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:123,1
    - Dst: Algorithm_Not_Found
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:129,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - padding
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 130
    functionName: Botan::create_signature_hash
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - SCAN_Name::arg_count
    - Algorithm_Not_Found
    - std::make_unique<RawHashFunction>
    - SCAN_Name::arg
    - SCAN_Name::algo_name
    - Botan::HashFunction::create
    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:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - hash
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    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: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    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:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 146
    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: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: 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:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 155
    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:158,1
    - Dst: raw_sign
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 160
    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:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - padding
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 163
    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: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    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: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: 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:174,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:174,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:176,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:177,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:178,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:178,1
    - Dst: parameters_are_empty
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:181,1
    - Dst: parameters_are_null
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:182,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:184,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:184,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:187,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:187,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:191,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: 192
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 192
    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:
    - Decoding_Error
    - parameters_are_empty
    - parameters_are_null
    - Botan::HashFunction::create_or_throw
    - split_on
    - auto::size
    - oid
    - 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:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 196
    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:199,1
    - Dst: verify
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 201
    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:
    - verify
    - final_stdvec
    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:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - desired_shared_key_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 209
    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:216,1
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:216,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:217,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:217,1
    - Dst: encapsulated_key_length
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:217,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:220,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:221,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:224,1
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:225,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:227,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:227,1
    - Dst: raw_kem_shared_key_length
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:227,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:228,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: 230
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 230
    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<const uint8_t>::empty
    - BOTAN_ASSERT_NOMSG
    - derive_key
    - raw_kem_shared_key_length
    - BOTAN_ARG_CHECK
    - BOTAN_ASSERT_EQUAL
    - "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"
    - encapsulated_key_length
    - std::span<uint8_t>::size
    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:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - kdf
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 232
    functionDepth: 3
    functionLinenumber: 232
    functionLinenumberEnd: 236
    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: 238
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 238
    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:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - desired_shared_key_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 246
    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:252,1
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:252,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:255,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:256,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:259,1
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:260,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:262,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:262,1
    - Dst: raw_kem_shared_key_length
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:262,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:263,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: 265
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 265
    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:
    - std::span<const uint8_t>::empty
    - derive_key
    - BOTAN_ARG_CHECK
    - BOTAN_ASSERT_EQUAL
    - raw_kem_shared_key_length
    - "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
    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:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - kdf
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 267
    functionDepth: 3
    functionLinenumber: 267
    functionLinenumberEnd: 271
    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: 273
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 273
    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:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    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:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - padding
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 32
    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: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    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:37,1
    - Dst: max_ptext_input_bits
      Src: /src/botan/src/lib/pubkey/pk_ops.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: PK_Ops::Encryption_with_Padding::max_input_bits() const
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - max_ptext_input_bits
    - maximum_input_size
    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:42,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:44,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:44,1
    - Dst: pad
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:47,1
    - Dst: raw_encrypt
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:48,1
    - Dst: first
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - msg
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 49
    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:
    - std::span<const uint8_t>::size
    - BOTAN_ARG_CHECK
    - raw_encrypt
    - max_ptext_input_bits
    - pad
    - first
    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:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - padding
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 52
    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: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    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:57,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:59,1
    - Dst: unpad
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:60,1
    - Dst: Botan::CT::Mask::from_choice
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:62,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:62,1
    - Dst: secure_vector::resize
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:74,1
    - Dst: auto::value_or
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:74,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: 76
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 76
    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
    - Botan::CT::Mask::from_choice
    - auto::has_value
    - secure_vector::size
    - secure_vector::resize
    - auto::value_or
    - unpad
    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:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - kdf
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 82
    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: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    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:89,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:90,1
    - Dst: raw_agree
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:93,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:93,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:93,1
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:95,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:95,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:95,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: 98
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 98
    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:
    - std::span<const uint8_t>::empty
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - derive_key
    - raw_agree
    - Invalid_Argument
    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:103,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:109,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:109,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:110,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:110,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:116,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:117,1
    - Dst: std::make_unique<RawHashFunction>
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:118,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:121,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:122,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:122,1
    - Dst: std::make_unique<RawHashFunction>
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:123,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:123,1
    - Dst: Algorithm_Not_Found
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:129,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - padding
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 130
    functionName: Botan::create_signature_hash
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - SCAN_Name::arg_count
    - Algorithm_Not_Found
    - std::make_unique<RawHashFunction>
    - SCAN_Name::arg
    - SCAN_Name::algo_name
    - Botan::HashFunction::create
    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:103,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:109,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:109,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:110,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:110,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:116,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:117,1
    - Dst: std::make_unique<RawHashFunction>
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:118,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:121,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:122,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:122,1
    - Dst: std::make_unique<RawHashFunction>
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:123,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:123,1
    - Dst: Algorithm_Not_Found
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:129,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - padding
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 130
    functionName: Botan::create_signature_hash
    functionSourceFile: /src/botan/src/lib/pubkey/pk_ops.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - SCAN_Name::arg_count
    - Algorithm_Not_Found
    - std::make_unique<RawHashFunction>
    - SCAN_Name::arg
    - SCAN_Name::algo_name
    - Botan::HashFunction::create
    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:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - hash
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    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: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    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:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 146
    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: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: 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:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 155
    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:158,1
    - Dst: raw_sign
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 160
    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:163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - padding
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 163
    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: 165
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 165
    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: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: 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:174,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:174,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:176,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:177,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:178,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:178,1
    - Dst: parameters_are_empty
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:181,1
    - Dst: parameters_are_null
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:182,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:184,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:184,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:187,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:187,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:191,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: 192
      start: 171
    functionDepth: 3
    functionLinenumber: 171
    functionLinenumberEnd: 192
    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:
    - Decoding_Error
    - parameters_are_empty
    - parameters_are_null
    - Botan::HashFunction::create_or_throw
    - split_on
    - auto::size
    - oid
    - 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:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 196
    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:199,1
    - Dst: verify
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 201
    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:
    - verify
    - final_stdvec
    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:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - desired_shared_key_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 209
    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:216,1
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:216,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:217,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:217,1
    - Dst: encapsulated_key_length
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:217,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:220,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:221,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:224,1
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:225,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:227,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:227,1
    - Dst: raw_kem_shared_key_length
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:227,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:228,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: 230
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 230
    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<const uint8_t>::empty
    - BOTAN_ASSERT_NOMSG
    - derive_key
    - raw_kem_shared_key_length
    - BOTAN_ARG_CHECK
    - BOTAN_ASSERT_EQUAL
    - "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"
    - encapsulated_key_length
    - std::span<uint8_t>::size
    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:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - kdf
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 232
    functionDepth: 3
    functionLinenumber: 232
    functionLinenumberEnd: 236
    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: 238
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 238
    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:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - desired_shared_key_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 246
    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:252,1
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:252,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:255,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:256,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:259,1
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:260,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:262,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:262,1
    - Dst: raw_kem_shared_key_length
      Src: /src/botan/src/lib/pubkey/pk_ops.cpp:262,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:263,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: 265
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 265
    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:
    - std::span<const uint8_t>::empty
    - derive_key
    - BOTAN_ARG_CHECK
    - BOTAN_ASSERT_EQUAL
    - raw_kem_shared_key_length
    - "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
    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:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - kdf
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 267
    functionDepth: 3
    functionLinenumber: 267
    functionLinenumberEnd: 271
    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: 273
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 273
    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
    - Decoding_Error
    - Botan::ASN1::maybe_BER
    - secure_vector::empty
    - read_byte
    - AlgorithmIdentifier::parameters
    - Botan::PEM_Code::matches
    - get_passphrase
    - Botan::PKCS8::PKCS8_extract
    - PKCS8_Exception
    - secure_vector::push_back
    - AlgorithmIdentifier::oid
    - BOTAN_UNUSED
    - pbes2_decrypt
    - Botan::PEM_Code::decode
    - 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
    - Decoding_Error
    - Botan::ASN1::maybe_BER
    - secure_vector::empty
    - read_byte
    - AlgorithmIdentifier::parameters
    - Botan::PEM_Code::matches
    - get_passphrase
    - Botan::PKCS8::PKCS8_extract
    - PKCS8_Exception
    - secure_vector::push_back
    - AlgorithmIdentifier::oid
    - BOTAN_UNUSED
    - pbes2_decrypt
    - Botan::PEM_Code::decode
    - 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: 16
    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:
    - std::string_view::empty
    - SCAN_Name::arg_count
    - std::make_pair
    - SCAN_Name::arg
    - SCAN_Name::algo_name
    - Invalid_Argument
    - 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:
    - std::string_view::empty
    - SCAN_Name::arg_count
    - std::make_pair
    - SCAN_Name::arg
    - SCAN_Name::algo_name
    - Invalid_Argument
    - 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: 9
    functionsReached:
    - Botan::PKCS8::BER_encode
    - Botan::PKCS8::choose_pbe_params
    - Encoding_Error
    - pbes2_encrypt_msec
    - DER_Encoder::start_sequence
    - algo_name
    - BOTAN_UNUSED
    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: 17
    functionsReached:
    - Botan::PKCS8::BER_encode
    - Botan::PKCS8::PEM_encode
    - Botan::PEM_Code::encode
    - std::string_view::empty
    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: 4
    functionsReached:
    - std::string_view::empty
    - Encoding_Error
    - private_key_info
    - DER_Encoder::start_sequence
    - BOTAN_UNUSED
    - pbes2_encrypt_iter
    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: 4
    functionsReached:
    - Botan::PEM_Code::encode
    - Botan::PKCS8::BER_encode_encrypted_pbkdf_iter
    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: 4
    functionsReached:
    - std::string_view::empty
    - Encoding_Error
    - pbes2_encrypt_msec
    - private_key_info
    - DER_Encoder
    - BOTAN_UNUSED
    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: 4
    functionsReached:
    - Botan::PKCS8::BER_encode_encrypted_pbkdf_msec
    - Botan::PEM_Code::encode
    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: 71
    functionsReached:
    - PKCS8_Exception
    - Botan::PKCS8::PKCS8_decode
    - load_private_key
    - std::string::empty
    - AlgorithmIdentifier::oid
    - 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: 71
    functionsReached:
    - PKCS8_Exception
    - Botan::PKCS8::PKCS8_decode
    - load_private_key
    - std::string::empty
    - AlgorithmIdentifier::oid
    - 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: 72
    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: 73
    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: 74
    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: 75
    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: 76
    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: 77
    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
    - Decoding_Error
    - Botan::ASN1::maybe_BER
    - secure_vector::empty
    - read_byte
    - AlgorithmIdentifier::parameters
    - Botan::PEM_Code::matches
    - get_passphrase
    - Botan::PKCS8::PKCS8_extract
    - PKCS8_Exception
    - secure_vector::push_back
    - AlgorithmIdentifier::oid
    - BOTAN_UNUSED
    - pbes2_decrypt
    - Botan::PEM_Code::decode
    - 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
    - Decoding_Error
    - Botan::ASN1::maybe_BER
    - secure_vector::empty
    - read_byte
    - AlgorithmIdentifier::parameters
    - Botan::PEM_Code::matches
    - get_passphrase
    - Botan::PKCS8::PKCS8_extract
    - PKCS8_Exception
    - secure_vector::push_back
    - AlgorithmIdentifier::oid
    - BOTAN_UNUSED
    - pbes2_decrypt
    - Botan::PEM_Code::decode
    - 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: 17
    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:
    - std::string_view::empty
    - SCAN_Name::arg_count
    - std::make_pair
    - SCAN_Name::arg
    - SCAN_Name::algo_name
    - Invalid_Argument
    - 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:
    - std::string_view::empty
    - SCAN_Name::arg_count
    - std::make_pair
    - SCAN_Name::arg
    - SCAN_Name::algo_name
    - Invalid_Argument
    - 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: 11
    functionsReached:
    - Botan::PKCS8::BER_encode
    - Botan::PKCS8::choose_pbe_params
    - Encoding_Error
    - pbes2_encrypt_msec
    - DER_Encoder::start_sequence
    - algo_name
    - BOTAN_UNUSED
    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: 18
    functionsReached:
    - Botan::PKCS8::BER_encode
    - Botan::PKCS8::PEM_encode
    - Botan::PEM_Code::encode
    - std::string_view::empty
    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: 5
    functionsReached:
    - std::string_view::empty
    - Encoding_Error
    - private_key_info
    - DER_Encoder::start_sequence
    - BOTAN_UNUSED
    - pbes2_encrypt_iter
    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: 4
    functionsReached:
    - Botan::PEM_Code::encode
    - Botan::PKCS8::BER_encode_encrypted_pbkdf_iter
    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: 5
    functionsReached:
    - std::string_view::empty
    - Encoding_Error
    - pbes2_encrypt_msec
    - private_key_info
    - DER_Encoder
    - BOTAN_UNUSED
    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: 4
    functionsReached:
    - Botan::PKCS8::BER_encode_encrypted_pbkdf_msec
    - Botan::PEM_Code::encode
    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: 77
    functionsReached:
    - PKCS8_Exception
    - Botan::PKCS8::PKCS8_decode
    - load_private_key
    - std::string::empty
    - AlgorithmIdentifier::oid
    - 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: 77
    functionsReached:
    - PKCS8_Exception
    - Botan::PKCS8::PKCS8_decode
    - load_private_key
    - std::string::empty
    - AlgorithmIdentifier::oid
    - 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: 78
    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: 79
    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: 80
    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: 81
    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: 82
    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: 83
    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: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    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: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    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: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    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: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    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: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    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: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    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: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    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: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    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: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    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: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    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: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    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:165,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/pubkey.h:187,1
    - Dst: signature
      Src: /src/botan/src/lib/pubkey/pubkey.h:188,1
    - Dst: sign_message
      Src: /src/botan/src/lib/pubkey/pubkey.h:198,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/pubkey.h:198,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pubkey.h:198,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/pubkey.h:205,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/pubkey.h:218,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/pubkey.h:218,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pubkey.h:218,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 265
    functionName: final
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 158
    functionsReached:
    - update
    - data
    - size
    - sign_message
    - PK_Signer
    - signature
    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: 173
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 173
    functionName: PK_Signer
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 9
    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:187,1
    - Dst: signature
      Src: /src/botan/src/lib/pubkey/pubkey.h:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - in
    - length
    - ' rng'
    argTypes:
    - uint8_t[]
    - size_t
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 189
    functionName: sign_message
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 50
    functionsReached:
    - update
    - signature
    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:198,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/pubkey.h:198,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pubkey.h:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - in
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 199
    functionName: sign_message
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 51
    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:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 205
    functionName: update
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 343
    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:218,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/pubkey.h:218,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pubkey.h:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 218
    functionName: update
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 344
    functionsReached:
    - update
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    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: 238
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 238
    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:281,1
    - Dst: verify_message
      Src: /src/botan/src/lib/pubkey/pubkey.h:326,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/pubkey.h:326,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pubkey.h:326,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/pubkey.h:326,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pubkey.h:326,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/pubkey.h:334,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/pubkey.h:349,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/pubkey.h:349,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pubkey.h:349,1
    - Dst: check_signature
      Src: /src/botan/src/lib/pubkey/pubkey.h:372,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/pubkey.h:372,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pubkey.h:372,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/pubkey.h:378,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 392
    functionName: final
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 158
    functionsReached:
    - update
    - data
    - size
    - check_signature
    - PK_Verifier
    - verify_message
    - BOTAN_DEPRECATED
    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: 303
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 303
    functionName: PK_Verifier
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 7
    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:326,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/pubkey.h:326,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pubkey.h:326,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/pubkey.h:326,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pubkey.h:326,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: 327
      start: 325
    functionDepth: 1
    functionLinenumber: 325
    functionLinenumberEnd: 327
    functionName: verify_message
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 50
    functionsReached:
    - verify_message
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    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:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 334
    functionName: update
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 346
    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:349,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/pubkey.h:349,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pubkey.h:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 349
    functionDepth: 1
    functionLinenumber: 349
    functionLinenumberEnd: 349
    functionName: update
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 347
    functionsReached:
    - update
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    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:372,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/pubkey.h:372,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pubkey.h:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 372
    functionName: check_signature
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 40
    functionsReached:
    - check_signature
    - std::span<const uint8_t>::data
    - 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:406,1
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/pubkey.h:437,1
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/pubkey.h:451,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/pubkey.h:451,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pubkey.h:451,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 483
    functionName: final
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 158
    functionsReached:
    - derive_key
    - PK_Key_Agreement
    - data
    - 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: 413
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 413
    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:437,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: 438
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 438
    functionName: derive_key
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 91
    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:451,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/pubkey.h:451,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/pubkey.h:451,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: 452
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 452
    functionName: derive_key
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 92
    functionsReached:
    - derive_key
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    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: 523
      start: 489
    functionDepth: 0
    functionLinenumber: 489
    functionLinenumberEnd: 523
    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: 507
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 507
    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:539,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 530
    functionDepth: 1
    functionLinenumber: 530
    functionLinenumberEnd: 558
    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: 548
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 548
    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:566,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/pubkey.h:566,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: 566
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 566
    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: 571
      start: 571
    functionDepth: 0
    functionLinenumber: 571
    functionLinenumberEnd: 571
    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: 576
      start: 576
    functionDepth: 0
    functionLinenumber: 576
    functionLinenumberEnd: 576
    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:583,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/pubkey/pubkey.h:583,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/pubkey/pubkey.h:583,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' kem'
    argTypes:
    - KEM_Encapsulation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 581
    functionDepth: 0
    functionLinenumber: 581
    functionLinenumberEnd: 584
    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: 590
      start: 589
    functionDepth: 0
    functionLinenumber: 589
    functionLinenumberEnd: 590
    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:619,1
    - Dst: encrypt
      Src: /src/botan/src/lib/pubkey/pubkey.h:671,1
    - Dst: KEM_Encapsulation
      Src: /src/botan/src/lib/pubkey/pubkey.h:672,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/pubkey.h:672,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/pubkey.h:672,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/pubkey.h:690,1
    - Dst: encapsulated_key_length
      Src: /src/botan/src/lib/pubkey/pubkey.h:690,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/pubkey.h:691,1
    - Dst: shared_key_length
      Src: /src/botan/src/lib/pubkey/pubkey.h:691,1
    - Dst: encrypt
      Src: /src/botan/src/lib/pubkey/pubkey.h:692,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/pubkey.h:711,1
    - Dst: encrypt
      Src: /src/botan/src/lib/pubkey/pubkey.h:718,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/pubkey.h:721,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/pubkey.h:727,1
    - Dst: encapsulated_key_length
      Src: /src/botan/src/lib/pubkey/pubkey.h:727,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/pubkey.h:728,1
    - Dst: shared_key_length
      Src: /src/botan/src/lib/pubkey/pubkey.h:728,1
    - Dst: encrypt
      Src: /src/botan/src/lib/pubkey/pubkey.h:729,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 600
    functionDepth: 1
    functionLinenumber: 600
    functionLinenumberEnd: 734
    functionName: final
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 158
    functionsReached:
    - std::move
    - resize
    - encrypt
    - shared_key_length
    - encapsulated_key_length
    - BOTAN_DEPRECATED
    - KEM_Encapsulation
    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: 627
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 627
    functionName: PK_KEM_Encryptor
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 10
    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:671,1
    - Dst: KEM_Encapsulation
      Src: /src/botan/src/lib/pubkey/pubkey.h:672,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/pubkey.h:672,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/pubkey.h:672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 673
    functionName: encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 178
    functionsReached:
    - encrypt
    - std::move
    - KEM_Encapsulation
    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:690,1
    - Dst: encapsulated_key_length
      Src: /src/botan/src/lib/pubkey/pubkey.h:690,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/pubkey.h:691,1
    - Dst: shared_key_length
      Src: /src/botan/src/lib/pubkey/pubkey.h:691,1
    - Dst: encrypt
      Src: /src/botan/src/lib/pubkey/pubkey.h:692,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: 693
      start: 685
    functionDepth: 0
    functionLinenumber: 685
    functionLinenumberEnd: 693
    functionName: encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 179
    functionsReached:
    - encapsulated_key_length
    - resize
    - shared_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:718,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: 719
      start: 712
    functionDepth: 0
    functionLinenumber: 712
    functionLinenumberEnd: 719
    functionName: encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 180
    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:727,1
    - Dst: encapsulated_key_length
      Src: /src/botan/src/lib/pubkey/pubkey.h:727,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/pubkey.h:728,1
    - Dst: shared_key_length
      Src: /src/botan/src/lib/pubkey/pubkey.h:728,1
    - Dst: encrypt
      Src: /src/botan/src/lib/pubkey/pubkey.h:729,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: 730
      start: 722
    functionDepth: 0
    functionLinenumber: 722
    functionLinenumberEnd: 730
    functionName: encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 181
    functionsReached:
    - encapsulated_key_length
    - resize
    - shared_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:748,1
    - Dst: decrypt
      Src: /src/botan/src/lib/pubkey/pubkey.h:816,1
    - Dst: decrypt
      Src: /src/botan/src/lib/pubkey/pubkey.h:835,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 739
    functionDepth: 1
    functionLinenumber: 739
    functionLinenumberEnd: 841
    functionName: final
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 158
    functionsReached:
    - decrypt
    - PK_KEM_Decryptor
    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: 754
      start: 754
    functionDepth: 0
    functionLinenumber: 754
    functionLinenumberEnd: 754
    functionName: PK_KEM_Decryptor
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 9
    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:816,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: 818
      start: 810
    functionDepth: 0
    functionLinenumber: 810
    functionLinenumberEnd: 818
    functionName: decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 150
    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:835,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - encap_key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 831
    functionDepth: 0
    functionLinenumber: 831
    functionLinenumberEnd: 837
    functionName: decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/pubkey.h
    functionUses: 151
    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: 12
    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: 12
    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: 12
    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: 12
    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: 16
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 16
    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:22,1
    - Dst: std::log
      Src: /src/botan/src/lib/pubkey/workfactor.cpp:24,1
    - Dst: std::pow
      Src: /src/botan/src/lib/pubkey/workfactor.cpp:27,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/workfactor.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bits
    - log2_k
    argTypes:
    - size_t
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 31
    functionName: Botan::nfs_workfactor
    functionSourceFile: /src/botan/src/lib/pubkey/workfactor.cpp
    functionUses: 0
    functionsReached:
    - std::log
    - std::pow
    - static_cast<size_t>
    - 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:22,1
    - Dst: std::log
      Src: /src/botan/src/lib/pubkey/workfactor.cpp:24,1
    - Dst: std::pow
      Src: /src/botan/src/lib/pubkey/workfactor.cpp:27,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/workfactor.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bits
    - log2_k
    argTypes:
    - size_t
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 31
    functionName: Botan::nfs_workfactor
    functionSourceFile: /src/botan/src/lib/pubkey/workfactor.cpp
    functionUses: 0
    functionsReached:
    - std::log
    - std::pow
    - static_cast<size_t>
    - 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:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 44
    functionName: Botan::if_work_factor
    functionSourceFile: /src/botan/src/lib/pubkey/workfactor.cpp
    functionUses: 4
    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:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: Botan::dl_work_factor
    functionSourceFile: /src/botan/src/lib/pubkey/workfactor.cpp
    functionUses: 2
    functionsReached:
    - Botan::if_work_factor
    linkageType: ''
    returnType: size_t
    signature: size_t dl_work_factor(size_t bits)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 71
    functionName: Botan::dl_exponent_size
    functionSourceFile: /src/botan/src/lib/pubkey/workfactor.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t dl_exponent_size(size_t bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 16
    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:22,1
    - Dst: std::log
      Src: /src/botan/src/lib/pubkey/workfactor.cpp:24,1
    - Dst: std::pow
      Src: /src/botan/src/lib/pubkey/workfactor.cpp:27,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/workfactor.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bits
    - log2_k
    argTypes:
    - size_t
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 31
    functionName: Botan::nfs_workfactor
    functionSourceFile: /src/botan/src/lib/pubkey/workfactor.cpp
    functionUses: 1
    functionsReached:
    - std::log
    - std::pow
    - static_cast<size_t>
    - 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:22,1
    - Dst: std::log
      Src: /src/botan/src/lib/pubkey/workfactor.cpp:24,1
    - Dst: std::pow
      Src: /src/botan/src/lib/pubkey/workfactor.cpp:27,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/workfactor.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bits
    - log2_k
    argTypes:
    - size_t
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 31
    functionName: Botan::nfs_workfactor
    functionSourceFile: /src/botan/src/lib/pubkey/workfactor.cpp
    functionUses: 1
    functionsReached:
    - std::log
    - std::pow
    - static_cast<size_t>
    - 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:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 44
    functionName: Botan::if_work_factor
    functionSourceFile: /src/botan/src/lib/pubkey/workfactor.cpp
    functionUses: 5
    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:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 49
    functionName: Botan::dl_work_factor
    functionSourceFile: /src/botan/src/lib/pubkey/workfactor.cpp
    functionUses: 2
    functionsReached:
    - Botan::if_work_factor
    linkageType: ''
    returnType: size_t
    signature: size_t dl_work_factor(size_t bits)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 71
    functionName: Botan::dl_exponent_size
    functionSourceFile: /src/botan/src/lib/pubkey/workfactor.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t dl_exponent_size(size_t 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:39,1
    - Dst: is_slh_dsa
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:39,1
    - Dst: StrongSpan<const SphincsContext>::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:39,1
    - Dst: is_slh_dsa
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:41,1
    - Dst: Botan::concat
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:45,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:46,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:46,1
    - Dst: Botan::checked_cast_to
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:46,1
    - Dst: StrongSpan<const SphincsContext>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:46,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:47,1
    - Dst: is_slh_dsa
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:52,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:56,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:60,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: 61
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 61
    functionName: Botan::prepare_message
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - StrongSpan<const SphincsContext>::empty
    - is_slh_dsa
    - Botan::checked_cast_to
    - BOTAN_ARG_CHECK
    - Botan::concat
    - Botan::store_be
    - Internal_Error
    - 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:39,1
    - Dst: is_slh_dsa
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:39,1
    - Dst: StrongSpan<const SphincsContext>::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:39,1
    - Dst: is_slh_dsa
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:41,1
    - Dst: Botan::concat
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:45,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:46,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:46,1
    - Dst: Botan::checked_cast_to
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:46,1
    - Dst: StrongSpan<const SphincsContext>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:46,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:47,1
    - Dst: is_slh_dsa
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:52,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:56,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:60,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: 61
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 61
    functionName: Botan::prepare_message
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - StrongSpan<const SphincsContext>::empty
    - is_slh_dsa
    - Botan::checked_cast_to
    - BOTAN_ARG_CHECK
    - Botan::concat
    - Botan::store_be
    - Internal_Error
    - 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:69,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:69,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: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    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:72,1
    - Dst: public_key_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:72,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:73,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:77,1
    - Dst: Sphincs_Parameters::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:77,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:78,1
    - Dst: Sphincs_Parameters::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:78,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:80,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:80,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: 81
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 81
    functionName: Botan::SphincsPlus_PublicKeyInternal::SphincsPlus_PublicKeyInternal
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Decoding_Error
    - BufferSlicer::empty
    - public_key_bytes
    - std::span<const uint8_t>::size
    - Sphincs_Parameters::n
    - BufferSlicer::copy
    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:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 83
    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: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    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: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    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: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    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:100,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - secret_seed
    - prf
    argTypes:
    - SphincsSecretSeed
    - SphincsSecretPRF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    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:103,1
    - Dst: private_key_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:103,1
    - Dst: public_key_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:103,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:104,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:108,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:108,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:109,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:109,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:111,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:111,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: 112
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 112
    functionName: Botan::SphincsPlus_PrivateKeyInternal::SphincsPlus_PrivateKeyInternal
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Decoding_Error
    - BufferSlicer::empty
    - public_key_bytes
    - private_key_bytes
    - std::span<const uint8_t>::size
    - n
    - BufferSlicer::copy
    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: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    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: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    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:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 118
    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:128,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: 128
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 128
    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:131,1
    - Dst: Sphincs_Parameters::is_available
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:132,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:133,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: 135
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 135
    functionName: Botan::SphincsPlus_PublicKey::SphincsPlus_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<SphincsPlus_PublicKeyInternal>
    - Sphincs_Parameters::is_available
    - Not_Implemented
    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:138,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:138,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: 138
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 138
    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: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    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: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::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:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 148
    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: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::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:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 156
    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: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::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: 165
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 165
    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: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::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:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 175
    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:178,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 179
    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:184,1
    - Dst: Botan::Sphincs_Hash_Functions::create
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:185,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:185,1
    - Dst: seed
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:185,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:187,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:187,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:189,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pub_key
    argTypes:
    - std::shared_ptr<SphincsPlus_PublicKeyInternal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 192
    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
    - size
    - BOTAN_ARG_CHECK
    - seed
    - 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:200,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:200,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:200,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 201
    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
    - std::span<const uint8_t>::end
    - end
    - get
    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:207,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:207,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:207,1
    - Dst: Botan::SphincsPlus_Verification_Operation::slh_verify_internal
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 209
    functionName: Botan::SphincsPlus_Verification_Operation::is_valid_signature
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - std::exchange
    - parameters
    - prepare_message
    - Botan::SphincsPlus_Verification_Operation::slh_verify_internal
    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: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::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:216,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:217,1
    - Dst: sphincs_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:217,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:223,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:223,1
    - Dst: H_msg
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:224,1
    - Dst: root
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:224,1
    - Dst: Sphincs_Address::set_tree_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:228,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:229,1
    - Dst: fors_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:229,1
    - Dst: fors_public_key_from_signature
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:230,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:233,1
    - Dst: ht_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:233,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:234,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:234,1
    - Dst: ht_verify
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:235,1
    - Dst: root
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' msg'
    - sig
    argTypes:
    - SphincsMessageInternal
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 236
    functionName: Botan::SphincsPlus_Verification_Operation::slh_verify_internal
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - parameters
    - BufferSlicer::empty
    - n
    - std::span<const uint8_t>::size
    - Sphincs_Address::set_tree_address
    - fors_signature_bytes
    - ht_signature_bytes
    - ht_verify
    - sphincs_signature_bytes
    - fors_public_key_from_signature
    - H_msg
    - BufferSlicer::take
    - root
    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:246,1
    - Dst: std::make_unique<SphincsPlus_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:247,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:249,1
    - Dst: Botan::SphincsPlus_PublicKey::algo_name
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:249,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - provider
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 250
    functionName: Botan::SphincsPlus_PublicKey::create_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::SphincsPlus_PublicKey::algo_name
    - Provider_Not_Found
    - std::make_unique<SphincsPlus_Verification_Operation>
    - std::string_view::empty
    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:254,1
    - Dst: Botan::SphincsPlus_PublicKey::algorithm_identifier
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:255,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:256,1
    - Dst: std::make_unique<SphincsPlus_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:258,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:260,1
    - Dst: Botan::SphincsPlus_PublicKey::algo_name
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:260,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - ' signature_algorithm'
    - provider
    argTypes:
    - AlgorithmIdentifier
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 261
    functionName: Botan::SphincsPlus_PublicKey::create_x509_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - Provider_Not_Found
    - Botan::SphincsPlus_PublicKey::algo_name
    - std::string_view::empty
    - std::make_unique<SphincsPlus_Verification_Operation>
    - Botan::SphincsPlus_PublicKey::algorithm_identifier
    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: 265
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 265
    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:270,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:276,1
    - Dst: auto::private_key_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:276,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:277,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:280,1
    - Dst: auto::private_key_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:280,1
    - Dst: auto::public_key_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:280,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: 281
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 281
    functionName: Botan::slice_off_public_key
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - auto::public_key_bytes
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::subspan
    - Botan::Sphincs_Parameters::create
    - auto::private_key_bytes
    - Botan::Decoding_Error
    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:270,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:276,1
    - Dst: auto::private_key_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:276,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:277,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:280,1
    - Dst: auto::private_key_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:280,1
    - Dst: auto::public_key_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:280,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: 281
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 281
    functionName: Botan::slice_off_public_key
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - auto::public_key_bytes
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::subspan
    - Botan::Sphincs_Parameters::create
    - auto::private_key_bytes
    - Botan::Decoding_Error
    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:288,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: 288
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 288
    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:291,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:291,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: 291
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 291
    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:294,1
    - Dst: Sphincs_Parameters::object_identifier
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:294,1
    - Dst: Sphincs_Parameters::is_available
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:295,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:296,1
    - Dst: Sphincs_Parameters::private_key_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:299,1
    - Dst: Sphincs_Parameters::public_key_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:299,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:300,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:300,1
    - Dst: std::make_shared<SphincsPlus_PrivateKeyInternal>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:302,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:302,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: 303
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 303
    functionName: Botan::SphincsPlus_PrivateKey::SphincsPlus_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Sphincs_Parameters::private_key_bytes
    - std::span<const uint8_t>::size
    - Sphincs_Parameters::public_key_bytes
    - slice_off_public_key
    - std::make_shared<SphincsPlus_PrivateKeyInternal>
    - Sphincs_Parameters::is_available
    - Sphincs_Parameters::object_identifier
    - Not_Implemented
    - std::span<const uint8_t>::first
    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:308,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: 308
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 308
    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:312,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:313,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:315,1
    - Dst: Sphincs_Parameters::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:315,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:316,1
    - Dst: Sphincs_Parameters::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:316,1
    - Dst: std::make_shared<SphincsPlus_PrivateKeyInternal>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:318,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:318,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:318,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:320,1
    - Dst: Sphincs_Parameters::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:320,1
    - Dst: Botan::Sphincs_Hash_Functions::create
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:321,1
    - Dst: xmss_gen_root
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:322,1
    - Dst: seed
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:322,1
    - Dst: std::make_shared<SphincsPlus_PublicKeyInternal>
      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
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' rng'
    - params
    argTypes:
    - RandomNumberGenerator
    - Sphincs_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 325
    functionName: Botan::SphincsPlus_PrivateKey::SphincsPlus_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::Sphincs_Hash_Functions::create
    - std::move
    - xmss_gen_root
    - Sphincs_Parameters::n
    - std::make_shared<SphincsPlus_PublicKeyInternal>
    - std::make_shared<SphincsPlus_PrivateKeyInternal>
    - random_vec
    - Sphincs_Parameters::is_available
    - seed
    - Not_Implemented
    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: 327
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 327
    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:330,1
    - Dst: key_bits
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:330,1
    - Dst: key_bits
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 331
    functionName: Botan::SphincsPlus_PrivateKey::private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 2
    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:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 335
    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:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 339
    functionName: Botan::SphincsPlus_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 2
    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:346,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:347,1
    - Dst: Botan::Sphincs_Hash_Functions::create
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:348,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:348,1
    - Dst: seed
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:348,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:351,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:351,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:352,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:352,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: 354
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 354
    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
    - size
    - BOTAN_ARG_CHECK
    - seed
    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:358,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:358,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:358,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 359
    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
    - std::span<const uint8_t>::end
    - end
    - get
    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:364,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:364,1
    - Dst: prepare_message
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:366,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:366,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:366,1
    - Dst: Botan::SphincsPlus_Signature_Operation::slh_sign_internal
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 369
    functionName: Botan::SphincsPlus_Signature_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - parameters
    - std::exchange
    - random_vec
    - Botan::SphincsPlus_Signature_Operation::slh_sign_internal
    - 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:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 371
    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:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 375
    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:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 377
    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:383,1
    - Dst: sphincs_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:385,1
    - Dst: std::optional<StrongSpan<const SphincsOptionalRandomness>>::has_value
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:391,1
    - Dst: std::optional<StrongSpan<const SphincsOptionalRandomness>>::value
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:391,1
    - Dst: StrongSpan<const SphincsOptionalRandomness>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:391,1
    - Dst: seed
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:391,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:393,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:393,1
    - Dst: PRF_msg
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:394,1
    - Dst: prf
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:394,1
    - Dst: H_msg
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:397,1
    - Dst: root
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:397,1
    - Dst: Sphincs_Address::set_tree_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:401,1
    - Dst: fors_sign_and_pkgen
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:402,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:402,1
    - Dst: fors_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:402,1
    - Dst: seed
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:404,1
    - Dst: ht_sign
      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: ht_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: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:418,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' message'
    - addrnd
    argTypes:
    - SphincsMessageInternal
    - std::optional<StrongSpan<const SphincsOptionalRandomness>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 420
    functionName: Botan::SphincsPlus_Signature_Operation::slh_sign_internal
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - fors_sign_and_pkgen
    - BufferStuffer::full
    - std::optional<StrongSpan<const SphincsOptionalRandomness>>::value
    - sphincs_signature_bytes
    - seed
    - ht_signature_bytes
    - root
    - std::optional<StrongSpan<const SphincsOptionalRandomness>>::has_value
    - parameters
    - n
    - H_msg
    - StrongSpan<const SphincsOptionalRandomness>
    - ht_sign
    - Sphincs_Address::set_tree_address
    - fors_signature_bytes
    - prf
    - BufferStuffer::next
    - PRF_msg
    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:433,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:434,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:434,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:440,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:441,1
    - Dst: std::make_unique<SphincsPlus_Signature_Operation>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:442,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:444,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:444,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: 445
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 445
    functionName: Botan::SphincsPlus_PrivateKey::create_signature_op
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - std::make_unique<SphincsPlus_Signature_Operation>
    - std::string_view::empty
    - BOTAN_ARG_CHECK
    - algo_name
    - BOTAN_UNUSED
    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:39,1
    - Dst: is_slh_dsa
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:39,1
    - Dst: StrongSpan<const SphincsContext>::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:39,1
    - Dst: is_slh_dsa
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:41,1
    - Dst: Botan::concat
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:45,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:46,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:46,1
    - Dst: Botan::checked_cast_to
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:46,1
    - Dst: StrongSpan<const SphincsContext>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:46,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:47,1
    - Dst: is_slh_dsa
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:52,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:56,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:60,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: 61
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 61
    functionName: Botan::prepare_message
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - StrongSpan<const SphincsContext>::empty
    - is_slh_dsa
    - Botan::checked_cast_to
    - BOTAN_ARG_CHECK
    - Botan::concat
    - Botan::store_be
    - Internal_Error
    - 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:39,1
    - Dst: is_slh_dsa
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:39,1
    - Dst: StrongSpan<const SphincsContext>::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:39,1
    - Dst: is_slh_dsa
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:41,1
    - Dst: Botan::concat
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:45,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:46,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:46,1
    - Dst: Botan::checked_cast_to
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:46,1
    - Dst: StrongSpan<const SphincsContext>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:46,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:47,1
    - Dst: is_slh_dsa
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:52,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:56,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:60,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: 61
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 61
    functionName: Botan::prepare_message
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - StrongSpan<const SphincsContext>::empty
    - is_slh_dsa
    - Botan::checked_cast_to
    - BOTAN_ARG_CHECK
    - Botan::concat
    - Botan::store_be
    - Internal_Error
    - 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:69,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:69,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: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    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:72,1
    - Dst: public_key_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:72,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:73,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:77,1
    - Dst: Sphincs_Parameters::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:77,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:78,1
    - Dst: Sphincs_Parameters::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:78,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:80,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:80,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: 81
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 81
    functionName: Botan::SphincsPlus_PublicKeyInternal::SphincsPlus_PublicKeyInternal
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Decoding_Error
    - BufferSlicer::empty
    - public_key_bytes
    - std::span<const uint8_t>::size
    - Sphincs_Parameters::n
    - BufferSlicer::copy
    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:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 83
    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: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    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: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    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: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    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:100,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - secret_seed
    - prf
    argTypes:
    - SphincsSecretSeed
    - SphincsSecretPRF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    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:103,1
    - Dst: private_key_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:103,1
    - Dst: public_key_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:103,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:104,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:108,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:108,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:109,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:109,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:111,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:111,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: 112
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 112
    functionName: Botan::SphincsPlus_PrivateKeyInternal::SphincsPlus_PrivateKeyInternal
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Decoding_Error
    - BufferSlicer::empty
    - public_key_bytes
    - private_key_bytes
    - std::span<const uint8_t>::size
    - n
    - BufferSlicer::copy
    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: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    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: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    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:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 118
    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:128,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: 128
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 128
    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:131,1
    - Dst: Sphincs_Parameters::is_available
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:132,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:133,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: 135
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 135
    functionName: Botan::SphincsPlus_PublicKey::SphincsPlus_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<SphincsPlus_PublicKeyInternal>
    - Sphincs_Parameters::is_available
    - Not_Implemented
    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:138,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:138,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: 138
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 138
    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: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    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: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::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:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 148
    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: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::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:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 156
    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: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::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: 165
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 165
    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: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::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:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 175
    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:178,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 179
    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:184,1
    - Dst: Botan::Sphincs_Hash_Functions::create
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:185,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:185,1
    - Dst: seed
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:185,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:187,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:187,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:189,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:190,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - pub_key
    argTypes:
    - std::shared_ptr<SphincsPlus_PublicKeyInternal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 192
    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
    - size
    - BOTAN_ARG_CHECK
    - seed
    - 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:200,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:200,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:200,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 201
    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
    - std::span<const uint8_t>::end
    - end
    - get
    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:207,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:207,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:207,1
    - Dst: Botan::SphincsPlus_Verification_Operation::slh_verify_internal
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 206
    functionDepth: 3
    functionLinenumber: 206
    functionLinenumberEnd: 209
    functionName: Botan::SphincsPlus_Verification_Operation::is_valid_signature
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - std::exchange
    - parameters
    - prepare_message
    - Botan::SphincsPlus_Verification_Operation::slh_verify_internal
    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: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::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:216,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:217,1
    - Dst: sphincs_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:217,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:223,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:223,1
    - Dst: H_msg
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:224,1
    - Dst: root
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:224,1
    - Dst: Sphincs_Address::set_tree_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:228,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:229,1
    - Dst: fors_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:229,1
    - Dst: fors_public_key_from_signature
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:230,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:233,1
    - Dst: ht_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:233,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:234,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:234,1
    - Dst: ht_verify
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:235,1
    - Dst: root
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' msg'
    - sig
    argTypes:
    - SphincsMessageInternal
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 215
    functionDepth: 2
    functionLinenumber: 215
    functionLinenumberEnd: 236
    functionName: Botan::SphincsPlus_Verification_Operation::slh_verify_internal
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - parameters
    - BufferSlicer::empty
    - n
    - std::span<const uint8_t>::size
    - Sphincs_Address::set_tree_address
    - fors_signature_bytes
    - ht_signature_bytes
    - ht_verify
    - sphincs_signature_bytes
    - fors_public_key_from_signature
    - H_msg
    - BufferSlicer::take
    - root
    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:246,1
    - Dst: std::make_unique<SphincsPlus_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:247,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:249,1
    - Dst: Botan::SphincsPlus_PublicKey::algo_name
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:249,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - provider
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 250
    functionName: Botan::SphincsPlus_PublicKey::create_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::SphincsPlus_PublicKey::algo_name
    - Provider_Not_Found
    - std::make_unique<SphincsPlus_Verification_Operation>
    - std::string_view::empty
    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:254,1
    - Dst: Botan::SphincsPlus_PublicKey::algorithm_identifier
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:255,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:256,1
    - Dst: std::make_unique<SphincsPlus_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:258,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:260,1
    - Dst: Botan::SphincsPlus_PublicKey::algo_name
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:260,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - ' signature_algorithm'
    - provider
    argTypes:
    - AlgorithmIdentifier
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 261
    functionName: Botan::SphincsPlus_PublicKey::create_x509_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - Provider_Not_Found
    - Botan::SphincsPlus_PublicKey::algo_name
    - std::string_view::empty
    - std::make_unique<SphincsPlus_Verification_Operation>
    - Botan::SphincsPlus_PublicKey::algorithm_identifier
    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: 265
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 265
    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:270,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:276,1
    - Dst: auto::private_key_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:276,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:277,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:280,1
    - Dst: auto::private_key_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:280,1
    - Dst: auto::public_key_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:280,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: 281
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 281
    functionName: Botan::slice_off_public_key
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - auto::public_key_bytes
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::subspan
    - Botan::Sphincs_Parameters::create
    - auto::private_key_bytes
    - Botan::Decoding_Error
    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:270,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:276,1
    - Dst: auto::private_key_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:276,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:277,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:280,1
    - Dst: auto::private_key_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:280,1
    - Dst: auto::public_key_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:280,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: 281
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 281
    functionName: Botan::slice_off_public_key
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - auto::public_key_bytes
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::subspan
    - Botan::Sphincs_Parameters::create
    - auto::private_key_bytes
    - Botan::Decoding_Error
    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:288,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: 288
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 288
    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:291,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:291,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: 291
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 291
    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:294,1
    - Dst: Sphincs_Parameters::object_identifier
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:294,1
    - Dst: Sphincs_Parameters::is_available
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:295,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:296,1
    - Dst: Sphincs_Parameters::private_key_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:299,1
    - Dst: Sphincs_Parameters::public_key_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:299,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:300,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:300,1
    - Dst: std::make_shared<SphincsPlus_PrivateKeyInternal>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:302,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:302,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: 303
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 303
    functionName: Botan::SphincsPlus_PrivateKey::SphincsPlus_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Sphincs_Parameters::private_key_bytes
    - std::span<const uint8_t>::size
    - Sphincs_Parameters::public_key_bytes
    - slice_off_public_key
    - std::make_shared<SphincsPlus_PrivateKeyInternal>
    - Sphincs_Parameters::is_available
    - Sphincs_Parameters::object_identifier
    - Not_Implemented
    - std::span<const uint8_t>::first
    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:308,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: 308
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 308
    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:312,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:313,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:315,1
    - Dst: Sphincs_Parameters::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:315,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:316,1
    - Dst: Sphincs_Parameters::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:316,1
    - Dst: std::make_shared<SphincsPlus_PrivateKeyInternal>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:318,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:318,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:318,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:320,1
    - Dst: Sphincs_Parameters::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:320,1
    - Dst: Botan::Sphincs_Hash_Functions::create
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:321,1
    - Dst: xmss_gen_root
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:322,1
    - Dst: seed
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:322,1
    - Dst: std::make_shared<SphincsPlus_PublicKeyInternal>
      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
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' rng'
    - params
    argTypes:
    - RandomNumberGenerator
    - Sphincs_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 325
    functionName: Botan::SphincsPlus_PrivateKey::SphincsPlus_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::Sphincs_Hash_Functions::create
    - std::move
    - xmss_gen_root
    - Sphincs_Parameters::n
    - std::make_shared<SphincsPlus_PublicKeyInternal>
    - std::make_shared<SphincsPlus_PrivateKeyInternal>
    - random_vec
    - Sphincs_Parameters::is_available
    - seed
    - Not_Implemented
    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: 327
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 327
    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:330,1
    - Dst: key_bits
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:330,1
    - Dst: key_bits
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 331
    functionName: Botan::SphincsPlus_PrivateKey::private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 3
    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:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 333
    functionDepth: 0
    functionLinenumber: 333
    functionLinenumberEnd: 335
    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:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 339
    functionName: Botan::SphincsPlus_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 2
    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:346,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:347,1
    - Dst: Botan::Sphincs_Hash_Functions::create
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:348,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:348,1
    - Dst: seed
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:348,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:351,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:351,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:352,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:352,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: 354
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 354
    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
    - size
    - BOTAN_ARG_CHECK
    - seed
    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:358,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:358,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:358,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:358,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 359
    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
    - std::span<const uint8_t>::end
    - end
    - get
    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:364,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:364,1
    - Dst: prepare_message
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:366,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:366,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:366,1
    - Dst: Botan::SphincsPlus_Signature_Operation::slh_sign_internal
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 361
    functionDepth: 2
    functionLinenumber: 361
    functionLinenumberEnd: 369
    functionName: Botan::SphincsPlus_Signature_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - parameters
    - std::exchange
    - random_vec
    - Botan::SphincsPlus_Signature_Operation::slh_sign_internal
    - 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:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 371
    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:374,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 375
    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:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 377
    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:383,1
    - Dst: sphincs_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:385,1
    - Dst: std::optional<StrongSpan<const SphincsOptionalRandomness>>::has_value
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:391,1
    - Dst: std::optional<StrongSpan<const SphincsOptionalRandomness>>::value
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:391,1
    - Dst: StrongSpan<const SphincsOptionalRandomness>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:391,1
    - Dst: seed
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:391,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:393,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:393,1
    - Dst: PRF_msg
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:394,1
    - Dst: prf
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:394,1
    - Dst: H_msg
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:397,1
    - Dst: root
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:397,1
    - Dst: Sphincs_Address::set_tree_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:401,1
    - Dst: fors_sign_and_pkgen
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:402,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:402,1
    - Dst: fors_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:402,1
    - Dst: seed
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:404,1
    - Dst: ht_sign
      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: ht_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: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:418,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' message'
    - addrnd
    argTypes:
    - SphincsMessageInternal
    - std::optional<StrongSpan<const SphincsOptionalRandomness>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 420
    functionName: Botan::SphincsPlus_Signature_Operation::slh_sign_internal
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - fors_sign_and_pkgen
    - BufferStuffer::full
    - std::optional<StrongSpan<const SphincsOptionalRandomness>>::value
    - sphincs_signature_bytes
    - seed
    - ht_signature_bytes
    - root
    - std::optional<StrongSpan<const SphincsOptionalRandomness>>::has_value
    - parameters
    - n
    - H_msg
    - StrongSpan<const SphincsOptionalRandomness>
    - ht_sign
    - Sphincs_Address::set_tree_address
    - fors_signature_bytes
    - prf
    - BufferStuffer::next
    - PRF_msg
    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:433,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:434,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:434,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:440,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:441,1
    - Dst: std::make_unique<SphincsPlus_Signature_Operation>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:442,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:444,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp:444,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: 445
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 445
    functionName: Botan::SphincsPlus_PrivateKey::create_signature_op
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - std::make_unique<SphincsPlus_Signature_Operation>
    - std::string_view::empty
    - BOTAN_ARG_CHECK
    - algo_name
    - BOTAN_UNUSED
    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:49,1
    - Dst: Botan::copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:52,1
    - Dst: Botan::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:52,1
    - Dst: Botan::end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:52,1
    - Dst: Botan::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:52,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:58,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:64,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:64,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:65,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:65,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:74,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:79,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:84,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:89,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:94,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:99,1
    - Dst: Botan::Sphincs_Address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:115,1
    - Dst: auto::copy_subtree_from
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:116,1
    - Dst: Sphincs_Address::copy_keypair_from
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:132,1
    - Dst: Sphincs_Address_Type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:136,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:140,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:141,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:141,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:149,1
    - Dst: Botan::store_be
      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: static_cast<uint8_t>
      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
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:154,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 162
    functionName: Botan::Sphincs_Address
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 5
    functionsReached:
    - std::array::data
    - Botan::copy
    - Botan::end
    - Botan::begin
    - static_cast<uint32_t>
    - static_cast<uint8_t>
    - Sphincs_Address_Type
    - Botan::store_be
    - Botan::Sphincs_Address
    - Sphincs_Address::copy_keypair_from
    - Botan::get
    - auto::copy_subtree_from
    - Botan::size
    - Botan::set_type
    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:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Sphincs_Address_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Botan::Sphincs_Address
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 5
    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:52,1
    - Dst: std::array<uint32_t, 8>::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:52,1
    - Dst: std::array<uint32_t, 8>::end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:52,1
    - Dst: Botan::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - address
    argTypes:
    - std::array<uint32_t, 8>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: Botan::Sphincs_Address
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 5
    functionsReached:
    - std::array<uint32_t, 8>::begin
    - Botan::copy
    - std::array<uint32_t, 8>::end
    - Botan::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:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - layer
    argTypes:
    - HypertreeLayerIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    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:64,1
    - Dst: XmssTreeIndexInLayer::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:64,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:65,1
    - Dst: XmssTreeIndexInLayer::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tree
    argTypes:
    - XmssTreeIndexInLayer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: Botan::set_tree_address
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 0
    functionsReached:
    - XmssTreeIndexInLayer::get
    - static_cast<uint32_t>
    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:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - type
    argTypes:
    - Sphincs_Address_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    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:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - keypair
    argTypes:
    - TreeNodeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    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:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - chain
    argTypes:
    - WotsChainIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    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:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tree_height
    argTypes:
    - TreeLayerIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    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:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hash
    argTypes:
    - WotsHashIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    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:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tree_index
    argTypes:
    - TreeNodeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    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: 112
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 112
    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:115,1
    - Dst: auto::copy_subtree_from
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Sphincs_Address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 118
    functionName: Botan::as_subtree_from
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 6
    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: 128
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 128
    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:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Sphincs_Address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 134
    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:136,1
    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::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:140,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:141,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 144
    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:149,1
    - Dst: Botan::store_be
      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: static_cast<uint8_t>
      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
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:154,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 158
    functionName: Botan::to_bytes_compressed
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t>
    - Botan::store_be
    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:49,1
    - Dst: Botan::copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:52,1
    - Dst: Botan::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:52,1
    - Dst: Botan::end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:52,1
    - Dst: Botan::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:52,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:58,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:64,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:64,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:65,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:65,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:74,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:79,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:84,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:89,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:94,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:99,1
    - Dst: Botan::Sphincs_Address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:115,1
    - Dst: auto::copy_subtree_from
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:116,1
    - Dst: Sphincs_Address::copy_keypair_from
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:132,1
    - Dst: Sphincs_Address_Type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:136,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:140,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:141,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:141,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:149,1
    - Dst: Botan::store_be
      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: static_cast<uint8_t>
      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
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:154,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 162
    functionName: Botan::Sphincs_Address
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 7
    functionsReached:
    - std::array::data
    - Botan::copy
    - Botan::end
    - Botan::begin
    - static_cast<uint32_t>
    - static_cast<uint8_t>
    - Sphincs_Address_Type
    - Botan::store_be
    - Botan::Sphincs_Address
    - Sphincs_Address::copy_keypair_from
    - Botan::get
    - auto::copy_subtree_from
    - Botan::size
    - Botan::set_type
    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:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Sphincs_Address_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Botan::Sphincs_Address
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 7
    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:52,1
    - Dst: std::array<uint32_t, 8>::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:52,1
    - Dst: std::array<uint32_t, 8>::end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:52,1
    - Dst: Botan::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - address
    argTypes:
    - std::array<uint32_t, 8>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: Botan::Sphincs_Address
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 7
    functionsReached:
    - std::array<uint32_t, 8>::begin
    - Botan::copy
    - std::array<uint32_t, 8>::end
    - Botan::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:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - layer
    argTypes:
    - HypertreeLayerIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    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:64,1
    - Dst: XmssTreeIndexInLayer::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:64,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:65,1
    - Dst: XmssTreeIndexInLayer::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - tree
    argTypes:
    - XmssTreeIndexInLayer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: Botan::set_tree_address
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 0
    functionsReached:
    - XmssTreeIndexInLayer::get
    - static_cast<uint32_t>
    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:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - type
    argTypes:
    - Sphincs_Address_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    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:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - keypair
    argTypes:
    - TreeNodeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 81
    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:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - chain
    argTypes:
    - WotsChainIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    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:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tree_height
    argTypes:
    - TreeLayerIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    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:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hash
    argTypes:
    - WotsHashIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    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:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - tree_index
    argTypes:
    - TreeNodeIndex
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    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: 112
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 112
    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:115,1
    - Dst: auto::copy_subtree_from
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Sphincs_Address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 118
    functionName: Botan::as_subtree_from
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 6
    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: 128
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 128
    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:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Sphincs_Address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 134
    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:136,1
    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::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:140,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:141,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 144
    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:149,1
    - Dst: Botan::store_be
      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: static_cast<uint8_t>
      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
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:154,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 158
    functionName: Botan::to_bytes_compressed
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_address.h
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t>
    - Botan::store_be
    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: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    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:36,1
    - Dst: std::make_unique<Sphincs_Hash_Functions_Sha2>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:39,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:41,1
    - Dst: std::make_unique<Sphincs_Hash_Functions_Shake>
      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:48,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:52,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:54,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - ' sphincs_params'
    - ' pub_seed'
    argTypes:
    - Sphincs_Parameters
    - SphincsPublicSeed
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 55
    functionName: Botan::Sphincs_Hash_Functions::create
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp
    functionUses: 10
    functionsReached:
    - std::make_unique<Sphincs_Hash_Functions_Shake>
    - BOTAN_ASSERT_UNREACHABLE
    - std::make_unique<Sphincs_Hash_Functions_Sha2>
    - 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:64,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:64,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:65,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:65,1
    - Dst: Botan::copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:70,1
    - Dst: std::span<const uint8_t>::rbegin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:70,1
    - Dst: std::span<const uint8_t>::rend
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:70,1
    - Dst: std::array::rbegin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:70,1
    - Dst: Botan::load_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:71,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:71,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:73,1
    - Dst: wrapped_type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:73,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: 74
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 74
    functionName: Botan::from_first_n_bits
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::array::data
    - Botan::copy
    - std::span<const uint8_t>::rbegin
    - Botan::T
    - std::span<const uint8_t>::size
    - std::array::rbegin
    - std::span<const uint8_t>::rend
    - wrapped_type
    - Botan::load_be
    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:64,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:64,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:65,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:65,1
    - Dst: Botan::copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:70,1
    - Dst: std::span<const uint8_t>::rbegin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:70,1
    - Dst: std::span<const uint8_t>::rend
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:70,1
    - Dst: std::array::rbegin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:70,1
    - Dst: Botan::load_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:71,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:71,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:73,1
    - Dst: wrapped_type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:73,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: 74
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 74
    functionName: Botan::from_first_n_bits
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::array::data
    - Botan::copy
    - std::span<const uint8_t>::rbegin
    - Botan::T
    - std::span<const uint8_t>::size
    - std::array::rbegin
    - std::span<const uint8_t>::rend
    - wrapped_type
    - Botan::load_be
    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:80,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:86,1
    - Dst: fors_message_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:86,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:87,1
    - Dst: tree_digest_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:87,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:88,1
    - Dst: leaf_digest_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:88,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:89,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:89,1
    - Dst: from_first_n_bits<XmssTreeIndexInLayer>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:91,1
    - Dst: h
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:91,1
    - Dst: xmss_tree_height
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:91,1
    - Dst: from_first_n_bits<TreeNodeIndex>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:92,1
    - Dst: xmss_tree_height
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:92,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - r
    - ' root'
    - ' message'
    argTypes:
    - StrongSpan<const SphincsMessageRandomness>
    - SphincsTreeNode
    - SphincsMessageInternal
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 94
    functionName: Botan::Sphincs_Hash_Functions::H_msg
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - h
    - std::move
    - tree_digest_bytes
    - BufferSlicer::empty
    - fors_message_bytes
    - H_msg_digest
    - from_first_n_bits<XmssTreeIndexInLayer>
    - from_first_n_bits<TreeNodeIndex>
    - leaf_digest_bytes
    - xmss_tree_height
    - BufferSlicer::take
    - BufferSlicer::copy
    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: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    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:36,1
    - Dst: std::make_unique<Sphincs_Hash_Functions_Sha2>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:39,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:41,1
    - Dst: std::make_unique<Sphincs_Hash_Functions_Shake>
      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:48,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:52,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:54,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - ' sphincs_params'
    - ' pub_seed'
    argTypes:
    - Sphincs_Parameters
    - SphincsPublicSeed
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 55
    functionName: Botan::Sphincs_Hash_Functions::create
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp
    functionUses: 10
    functionsReached:
    - std::make_unique<Sphincs_Hash_Functions_Shake>
    - BOTAN_ASSERT_UNREACHABLE
    - std::make_unique<Sphincs_Hash_Functions_Sha2>
    - 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:64,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:64,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:65,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:65,1
    - Dst: Botan::copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:70,1
    - Dst: std::span<const uint8_t>::rbegin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:70,1
    - Dst: std::span<const uint8_t>::rend
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:70,1
    - Dst: std::array::rbegin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:70,1
    - Dst: Botan::load_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:71,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:71,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:73,1
    - Dst: wrapped_type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:73,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: 74
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 74
    functionName: Botan::from_first_n_bits
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::array::data
    - Botan::copy
    - std::span<const uint8_t>::rbegin
    - Botan::T
    - std::span<const uint8_t>::size
    - std::array::rbegin
    - std::span<const uint8_t>::rend
    - wrapped_type
    - Botan::load_be
    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:64,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:64,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:65,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:65,1
    - Dst: Botan::copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:70,1
    - Dst: std::span<const uint8_t>::rbegin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:70,1
    - Dst: std::span<const uint8_t>::rend
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:70,1
    - Dst: std::array::rbegin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:70,1
    - Dst: Botan::load_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:71,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:71,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:73,1
    - Dst: wrapped_type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:73,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: 74
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 74
    functionName: Botan::from_first_n_bits
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::array::data
    - Botan::copy
    - std::span<const uint8_t>::rbegin
    - Botan::T
    - std::span<const uint8_t>::size
    - std::array::rbegin
    - std::span<const uint8_t>::rend
    - wrapped_type
    - Botan::load_be
    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:80,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:86,1
    - Dst: fors_message_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:86,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:87,1
    - Dst: tree_digest_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:87,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:88,1
    - Dst: leaf_digest_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:88,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:89,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:89,1
    - Dst: from_first_n_bits<XmssTreeIndexInLayer>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:91,1
    - Dst: h
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:91,1
    - Dst: xmss_tree_height
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:91,1
    - Dst: from_first_n_bits<TreeNodeIndex>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:92,1
    - Dst: xmss_tree_height
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:92,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - r
    - ' root'
    - ' message'
    argTypes:
    - StrongSpan<const SphincsMessageRandomness>
    - SphincsTreeNode
    - SphincsMessageInternal
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 94
    functionName: Botan::Sphincs_Hash_Functions::H_msg
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hash.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - h
    - std::move
    - tree_digest_bytes
    - BufferSlicer::empty
    - fors_message_bytes
    - H_msg_digest
    - from_first_n_bits<XmssTreeIndexInLayer>
    - from_first_n_bits<TreeNodeIndex>
    - leaf_digest_bytes
    - xmss_tree_height
    - BufferSlicer::take
    - BufferSlicer::copy
    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:31,1
    - Dst: StrongSpan<const WotsNode>::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:31,1
    - Dst: StrongSpan<const WotsNode>::end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:31,1
    - Dst: StrongSpan<WotsPublicKeyNode>::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:31,1
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:34,1
    - Dst: Botan::set_hash_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:35,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:36,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: 38
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 38
    functionName: Botan::chain
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp
    functionUses: 0
    functionsReached:
    - Botan::copy
    - StrongSpan<const WotsNode>::end
    - Botan::T
    - StrongSpan<WotsPublicKeyNode>::begin
    - Botan::set_hash_address
    - StrongSpan<const WotsNode>::begin
    - Botan::w
    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:47,1
    - Dst: std::span<WotsHashIndex>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:47,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:47,1
    - Dst: log_w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:47,1
    - Dst: log_w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:59,1
    - Dst: WotsHashIndex
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:60,1
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:60,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: 62
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 62
    functionName: Botan::base_2_b
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    - WotsHashIndex
    - log_w
    - std::span<WotsHashIndex>::size
    - Botan::w
    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:75,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:75,1
    - Dst: wots_len_2
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:79,1
    - Dst: log_w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:79,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:82,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:82,1
    - Dst: wots_checksum_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:84,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:85,1
    - Dst: std::array::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:85,1
    - Dst: Botan::base_2_b
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:86,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:86,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: 87
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 87
    functionName: Botan::wots_checksum
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::array::data
    - wots_checksum_bytes
    - Botan::base_2_b
    - Botan::store_be
    - std::array::size
    - log_w
    - Botan::get
    - wots_len_2
    - std::span
    - Botan::w
    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:31,1
    - Dst: StrongSpan<const WotsNode>::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:31,1
    - Dst: StrongSpan<const WotsNode>::end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:31,1
    - Dst: StrongSpan<WotsPublicKeyNode>::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:31,1
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:34,1
    - Dst: Botan::set_hash_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:35,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:36,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: 38
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 38
    functionName: Botan::chain
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp
    functionUses: 0
    functionsReached:
    - Botan::copy
    - StrongSpan<const WotsNode>::end
    - Botan::T
    - StrongSpan<WotsPublicKeyNode>::begin
    - Botan::set_hash_address
    - StrongSpan<const WotsNode>::begin
    - Botan::w
    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:47,1
    - Dst: std::span<WotsHashIndex>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:47,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:47,1
    - Dst: log_w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:47,1
    - Dst: log_w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:59,1
    - Dst: WotsHashIndex
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:60,1
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:60,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: 62
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 62
    functionName: Botan::base_2_b
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    - WotsHashIndex
    - log_w
    - std::span<WotsHashIndex>::size
    - Botan::w
    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:75,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:75,1
    - Dst: wots_len_2
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:79,1
    - Dst: log_w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:79,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:82,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:82,1
    - Dst: wots_checksum_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:84,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:85,1
    - Dst: std::array::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:85,1
    - Dst: Botan::base_2_b
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:86,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:86,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: 87
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 87
    functionName: Botan::wots_checksum
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::array::data
    - wots_checksum_bytes
    - Botan::base_2_b
    - Botan::store_be
    - std::array::size
    - log_w
    - Botan::get
    - wots_len_2
    - std::span
    - Botan::w
    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:92,1
    - Dst: wots_len_2
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:92,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:94,1
    - Dst: wots_len_1
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:94,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:95,1
    - Dst: wots_len_2
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:95,1
    - Dst: Botan::base_2_b
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:97,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:97,1
    - Dst: Botan::wots_checksum
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' msg'
    - ' params'
    argTypes:
    - SphincsTreeNode
    - Sphincs_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 101
    functionName: Botan::chain_lengths
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp
    functionUses: 2
    functionsReached:
    - Botan::wots_checksum
    - Botan::base_2_b
    - wots_len_1
    - Botan::get
    - wots_len_2
    - std::span
    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:108,1
    - Dst: wots_len
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:109,1
    - Dst: Botan::n
      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:113,1
    - Dst: Botan::set_chain_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:114,1
    - Dst: WotsChainIndex::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:117,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:118,1
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:118,1
    - Dst: WotsHashIndex::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:118,1
    - Dst: Botan::chain
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:120,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:120,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:120,1
    - Dst: BufferSlicer::take
      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
    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: 130
      start: 103
    functionDepth: 4
    functionLinenumber: 103
    functionLinenumberEnd: 130
    functionName: Botan::wots_public_key_from_signature
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp
    functionUses: 2
    functionsReached:
    - WotsHashIndex::get
    - wots_len
    - static_cast<uint8_t>
    - Botan::set_chain_address
    - BufferStuffer::next
    - BufferSlicer::take
    - Botan::chain
    - WotsChainIndex::get
    - Botan::n
    - Botan::w
    - Botan::chain_lengths
    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:143,1
    - Dst: std::optional<TreeNodeIndex>::has_value
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:143,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:143,1
    - Dst: wots_len
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:143,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:144,1
    - Dst: Botan::get_type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:144,1
    - Dst: wots_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:147,1
    - Dst: Botan::set_keypair_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:152,1
    - Dst: Botan::set_keypair_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:153,1
    - Dst: wots_len
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:155,1
    - Dst: std::optional<TreeNodeIndex>::has_value
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:159,1
    - Dst: std::optional<TreeNodeIndex>::value
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:159,1
    - Dst: WotsChainIndex::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:160,1
    - Dst: Botan::set_chain_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:167,1
    - Dst: Botan::set_hash_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:168,1
    - Dst: WotsHashIndex
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:168,1
    - Dst: Botan::set_type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:169,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:171,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:171,1
    - Dst: Botan::PRF
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:173,1
    - Dst: Botan::set_type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:175,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:180,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:180,1
    - Dst: Botan::copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:181,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:181,1
    - Dst: auto::end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:181,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:181,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:181,1
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:185,1
    - Dst: Botan::set_hash_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:190,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:192,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:197,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: 198
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 198
    functionName: Botan::wots_sign_and_pkgen
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - auto::end
    - wots_bytes
    - Botan::copy
    - std::optional<TreeNodeIndex>::value
    - Botan::T
    - auto::has_value
    - WotsChainIndex::get
    - Botan::n
    - Botan::set_chain_address
    - Botan::w
    - Botan::set_hash_address
    - auto::value
    - std::optional<TreeNodeIndex>::has_value
    - Botan::set_keypair_address
    - auto::begin
    - Botan::PRF
    - wots_len
    - BufferStuffer::next
    - WotsHashIndex
    - Botan::size
    - Botan::set_type
    - Botan::get_type
    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:31,1
    - Dst: StrongSpan<const WotsNode>::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:31,1
    - Dst: StrongSpan<const WotsNode>::end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:31,1
    - Dst: StrongSpan<WotsPublicKeyNode>::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:31,1
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:34,1
    - Dst: Botan::set_hash_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:35,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:36,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: 38
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 38
    functionName: Botan::chain
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp
    functionUses: 1
    functionsReached:
    - Botan::copy
    - StrongSpan<const WotsNode>::end
    - Botan::T
    - StrongSpan<WotsPublicKeyNode>::begin
    - Botan::set_hash_address
    - StrongSpan<const WotsNode>::begin
    - Botan::w
    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:47,1
    - Dst: std::span<WotsHashIndex>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:47,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:47,1
    - Dst: log_w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:47,1
    - Dst: log_w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:59,1
    - Dst: WotsHashIndex
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:60,1
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:60,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: 62
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 62
    functionName: Botan::base_2_b
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp
    functionUses: 3
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    - WotsHashIndex
    - log_w
    - std::span<WotsHashIndex>::size
    - Botan::w
    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:75,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:75,1
    - Dst: wots_len_2
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:79,1
    - Dst: log_w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:79,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:82,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:82,1
    - Dst: wots_checksum_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:84,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:85,1
    - Dst: std::array::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:85,1
    - Dst: Botan::base_2_b
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:86,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:86,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: 87
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 87
    functionName: Botan::wots_checksum
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::array::data
    - wots_checksum_bytes
    - Botan::base_2_b
    - Botan::store_be
    - std::array::size
    - log_w
    - Botan::get
    - wots_len_2
    - std::span
    - Botan::w
    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:31,1
    - Dst: StrongSpan<const WotsNode>::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:31,1
    - Dst: StrongSpan<const WotsNode>::end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:31,1
    - Dst: StrongSpan<WotsPublicKeyNode>::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:31,1
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:34,1
    - Dst: Botan::set_hash_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:35,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:36,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: 38
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 38
    functionName: Botan::chain
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp
    functionUses: 1
    functionsReached:
    - Botan::copy
    - StrongSpan<const WotsNode>::end
    - Botan::T
    - StrongSpan<WotsPublicKeyNode>::begin
    - Botan::set_hash_address
    - StrongSpan<const WotsNode>::begin
    - Botan::w
    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:47,1
    - Dst: std::span<WotsHashIndex>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:47,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:47,1
    - Dst: log_w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:47,1
    - Dst: log_w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:59,1
    - Dst: WotsHashIndex
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:60,1
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:60,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: 62
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 62
    functionName: Botan::base_2_b
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp
    functionUses: 4
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    - WotsHashIndex
    - log_w
    - std::span<WotsHashIndex>::size
    - Botan::w
    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:75,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:75,1
    - Dst: wots_len_2
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:79,1
    - Dst: log_w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:79,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:82,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:82,1
    - Dst: wots_checksum_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:84,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:85,1
    - Dst: std::array::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:85,1
    - Dst: Botan::base_2_b
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:86,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:86,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: 87
      start: 68
    functionDepth: 2
    functionLinenumber: 68
    functionLinenumberEnd: 87
    functionName: Botan::wots_checksum
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::array::data
    - wots_checksum_bytes
    - Botan::base_2_b
    - Botan::store_be
    - std::array::size
    - log_w
    - Botan::get
    - wots_len_2
    - std::span
    - Botan::w
    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:92,1
    - Dst: wots_len_2
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:92,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:94,1
    - Dst: wots_len_1
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:94,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:95,1
    - Dst: wots_len_2
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:95,1
    - Dst: Botan::base_2_b
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:97,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:97,1
    - Dst: Botan::wots_checksum
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' msg'
    - ' params'
    argTypes:
    - SphincsTreeNode
    - Sphincs_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 101
    functionName: Botan::chain_lengths
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp
    functionUses: 3
    functionsReached:
    - Botan::wots_checksum
    - Botan::base_2_b
    - wots_len_1
    - Botan::get
    - wots_len_2
    - std::span
    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:108,1
    - Dst: wots_len
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:109,1
    - Dst: Botan::n
      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:113,1
    - Dst: Botan::set_chain_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:114,1
    - Dst: WotsChainIndex::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:117,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:118,1
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:118,1
    - Dst: WotsHashIndex::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:118,1
    - Dst: Botan::chain
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:120,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:120,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:120,1
    - Dst: BufferSlicer::take
      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
    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: 130
      start: 103
    functionDepth: 4
    functionLinenumber: 103
    functionLinenumberEnd: 130
    functionName: Botan::wots_public_key_from_signature
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp
    functionUses: 2
    functionsReached:
    - WotsHashIndex::get
    - wots_len
    - static_cast<uint8_t>
    - Botan::set_chain_address
    - BufferStuffer::next
    - BufferSlicer::take
    - Botan::chain
    - WotsChainIndex::get
    - Botan::n
    - Botan::w
    - Botan::chain_lengths
    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:143,1
    - Dst: std::optional<TreeNodeIndex>::has_value
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:143,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:143,1
    - Dst: wots_len
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:143,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:144,1
    - Dst: Botan::get_type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:144,1
    - Dst: wots_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:147,1
    - Dst: Botan::set_keypair_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:152,1
    - Dst: Botan::set_keypair_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:153,1
    - Dst: wots_len
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:155,1
    - Dst: std::optional<TreeNodeIndex>::has_value
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:159,1
    - Dst: std::optional<TreeNodeIndex>::value
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:159,1
    - Dst: WotsChainIndex::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:160,1
    - Dst: Botan::set_chain_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:167,1
    - Dst: Botan::set_hash_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:168,1
    - Dst: WotsHashIndex
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:168,1
    - Dst: Botan::set_type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:169,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:171,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:171,1
    - Dst: Botan::PRF
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:173,1
    - Dst: Botan::set_type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:175,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:180,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:180,1
    - Dst: Botan::copy
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:181,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:181,1
    - Dst: auto::end
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:181,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:181,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:181,1
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:185,1
    - Dst: Botan::set_hash_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:190,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:192,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp:197,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: 198
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 198
    functionName: Botan::wots_sign_and_pkgen
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_wots.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - auto::end
    - wots_bytes
    - Botan::copy
    - std::optional<TreeNodeIndex>::value
    - Botan::T
    - auto::has_value
    - WotsChainIndex::get
    - Botan::n
    - Botan::set_chain_address
    - Botan::w
    - Botan::set_hash_address
    - auto::value
    - std::optional<TreeNodeIndex>::has_value
    - Botan::set_keypair_address
    - auto::begin
    - Botan::PRF
    - wots_len
    - BufferStuffer::next
    - WotsHashIndex
    - Botan::size
    - Botan::set_type
    - Botan::get_type
    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:28,1
    - Dst: StrongSpan<SphincsHypertreeSignature>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:28,1
    - Dst: ht_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:28,1
    - Dst: Sphincs_Address::set_tree_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:32,1
    - Dst: Botan::d
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:37,1
    - Dst: Sphincs_Address::set_layer_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:41,1
    - Dst: Sphincs_Address::copy_subtree_from
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:42,1
    - Dst: Botan::xmss_sign_and_pkgen
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:44,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:44,1
    - Dst: xmss_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:44,1
    - Dst: TreeNodeIndex
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:54,1
    - Dst: XmssTreeIndexInLayer::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:54,1
    - Dst: xmss_tree_height
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:54,1
    - Dst: xmss_tree_height
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:55,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:58,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:58,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: 59
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 59
    functionName: Botan::ht_sign
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Sphincs_Address::set_layer_address
    - xmss_signature_bytes
    - XmssTreeIndexInLayer::get
    - BufferStuffer::full
    - Botan::xmss_sign_and_pkgen
    - Sphincs_Address::set_tree_address
    - ht_signature_bytes
    - StrongSpan<SphincsHypertreeSignature>::size
    - TreeNodeIndex
    - BufferStuffer::next
    - xmss_tree_height
    - Botan::d
    - Sphincs_Address::copy_subtree_from
    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:68,1
    - Dst: StrongSpan<const SphincsHypertreeSignature>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:68,1
    - Dst: ht_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:68,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:75,1
    - Dst: Botan::d
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:78,1
    - Dst: Sphincs_Address::set_layer_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:82,1
    - Dst: Sphincs_Address::set_tree_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:83,1
    - Dst: Sphincs_Address::copy_subtree_from
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:85,1
    - Dst: Sphincs_Address::set_keypair_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:86,1
    - Dst: Sphincs_Address::copy_keypair_from
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:88,1
    - Dst: Botan::wots_public_key_from_signature
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:90,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:91,1
    - Dst: wots_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:91,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:94,1
    - Dst: Botan::compute_root
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:97,1
    - Dst: StrongSpan<SphincsTreeNode>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:97,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:103,1
    - Dst: xmss_tree_height
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:103,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:103,1
    - Dst: xmss_tree_height
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:104,1
    - Dst: TreeNodeIndex
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:108,1
    - Dst: XmssTreeIndexInLayer::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:108,1
    - Dst: xmss_tree_height
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:108,1
    - Dst: xmss_tree_height
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:109,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:112,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:112,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: 116
      start: 61
    functionDepth: 5
    functionLinenumber: 61
    functionLinenumberEnd: 116
    functionName: Botan::ht_verify
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - wots_bytes
    - StrongSpan<const SphincsHypertreeSignature>::size
    - xmss_tree_height
    - BufferSlicer::take
    - Botan::d
    - Sphincs_Address::set_keypair_address
    - TreeNodeIndex
    - Sphincs_Address::set_layer_address
    - Botan::T
    - BufferSlicer::empty
    - ht_signature_bytes
    - Sphincs_Address::copy_keypair_from
    - Botan::wots_public_key_from_signature
    - Botan::n
    - StrongSpan<SphincsTreeNode>
    - XmssTreeIndexInLayer::get
    - Botan::compute_root
    - Sphincs_Address::set_tree_address
    - Sphincs_Address::copy_subtree_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:28,1
    - Dst: StrongSpan<SphincsHypertreeSignature>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:28,1
    - Dst: ht_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:28,1
    - Dst: Sphincs_Address::set_tree_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:32,1
    - Dst: Botan::d
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:37,1
    - Dst: Sphincs_Address::set_layer_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:41,1
    - Dst: Sphincs_Address::copy_subtree_from
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:42,1
    - Dst: Botan::xmss_sign_and_pkgen
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:44,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:44,1
    - Dst: xmss_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:44,1
    - Dst: TreeNodeIndex
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:54,1
    - Dst: XmssTreeIndexInLayer::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:54,1
    - Dst: xmss_tree_height
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:54,1
    - Dst: xmss_tree_height
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:55,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:58,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:58,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: 59
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 59
    functionName: Botan::ht_sign
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Sphincs_Address::set_layer_address
    - xmss_signature_bytes
    - XmssTreeIndexInLayer::get
    - BufferStuffer::full
    - Botan::xmss_sign_and_pkgen
    - Sphincs_Address::set_tree_address
    - ht_signature_bytes
    - StrongSpan<SphincsHypertreeSignature>::size
    - TreeNodeIndex
    - BufferStuffer::next
    - xmss_tree_height
    - Botan::d
    - Sphincs_Address::copy_subtree_from
    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:68,1
    - Dst: StrongSpan<const SphincsHypertreeSignature>::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:68,1
    - Dst: ht_signature_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:68,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:75,1
    - Dst: Botan::d
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:78,1
    - Dst: Sphincs_Address::set_layer_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:82,1
    - Dst: Sphincs_Address::set_tree_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:83,1
    - Dst: Sphincs_Address::copy_subtree_from
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:85,1
    - Dst: Sphincs_Address::set_keypair_address
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:86,1
    - Dst: Sphincs_Address::copy_keypair_from
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:88,1
    - Dst: Botan::wots_public_key_from_signature
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:90,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:91,1
    - Dst: wots_bytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:91,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:94,1
    - Dst: Botan::compute_root
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:97,1
    - Dst: StrongSpan<SphincsTreeNode>
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:97,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:103,1
    - Dst: xmss_tree_height
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:103,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:103,1
    - Dst: xmss_tree_height
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:104,1
    - Dst: TreeNodeIndex
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:108,1
    - Dst: XmssTreeIndexInLayer::get
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:108,1
    - Dst: xmss_tree_height
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:108,1
    - Dst: xmss_tree_height
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:109,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:112,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp:112,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: 116
      start: 61
    functionDepth: 5
    functionLinenumber: 61
    functionLinenumberEnd: 116
    functionName: Botan::ht_verify
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_hypertree.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - wots_bytes
    - StrongSpan<const SphincsHypertreeSignature>::size
    - xmss_tree_height
    - BufferSlicer::take
    - Botan::d
    - Sphincs_Address::set_keypair_address
    - TreeNodeIndex
    - Sphincs_Address::set_layer_address
    - Botan::T
    - BufferSlicer::empty
    - ht_signature_bytes
    - Sphincs_Address::copy_keypair_from
    - Botan::wots_public_key_from_signature
    - Botan::n
    - StrongSpan<SphincsTreeNode>
    - XmssTreeIndexInLayer::get
    - Botan::compute_root
    - Sphincs_Address::set_tree_address
    - Sphincs_Address::copy_subtree_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_ASSERT_NOMSG
    - gen_leaf
    - StrongSpan<SphincsTreeNode>::size
    - Botan::T
    - TreeLayerIndex::get
    - StrongSpan<SphincsAuthenticationPath>::get
    - auto::has_value
    - StrongSpan<SphincsAuthenticationPath>::size
    - auto::value
    - TreeLayerIndex
    - Botan::copy_mem
    - Botan::set_tree_index
    - Botan::n
    - std::span
    - Botan::set_tree_height
    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_ASSERT_NOMSG
    - StrongSpan<SphincsTreeNode>::size
    - Botan::T
    - BufferSlicer::empty
    - Botan::copy_mem
    - Botan::swap
    - BufferSlicer::take
    - StrongSpan<const SphincsAuthenticationPath>::size
    - Botan::size
    - Botan::n
    - Botan::set_tree_height
    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_ASSERT_NOMSG
    - gen_leaf
    - StrongSpan<SphincsTreeNode>::size
    - Botan::T
    - TreeLayerIndex::get
    - StrongSpan<SphincsAuthenticationPath>::get
    - auto::has_value
    - StrongSpan<SphincsAuthenticationPath>::size
    - auto::value
    - TreeLayerIndex
    - Botan::copy_mem
    - Botan::set_tree_index
    - Botan::n
    - std::span
    - Botan::set_tree_height
    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_ASSERT_NOMSG
    - StrongSpan<SphincsTreeNode>::size
    - Botan::T
    - BufferSlicer::empty
    - Botan::copy_mem
    - Botan::swap
    - BufferSlicer::take
    - StrongSpan<const SphincsAuthenticationPath>::size
    - Botan::size
    - Botan::n
    - Botan::set_tree_height
    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:
    - tweak_hash
    - Botan::T
    - Botan::Sphincs_Hash_Functions
    - Botan::update
    - Botan::size
    - Botan::n
    - 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:
    - tweak_hash
    - Botan::T
    - Botan::Sphincs_Hash_Functions
    - Botan::update
    - Botan::size
    - Botan::n
    - 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: 162
    functionsReached:
    - Sphincs_Parameters
    - public_key_bytes
    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: 10
    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: 8
    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: 3023
    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: 707
    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: 2333
    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: 1327
    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: 1191
    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: 508
    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: 8
    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: 6
    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: 6
    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: 4
    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:160,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:160,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 128
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 161
    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:245,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:248,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 81
    argCount: 2
    argNames:
    - set
    - hash
    argTypes:
    - Sphincs_Parameter_Set
    - Sphincs_Hash_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 249
    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:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - set
    argTypes:
    - Sphincs_Parameter_Set
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 269
    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:160,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:160,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 128
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 161
    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:245,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:248,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 81
    argCount: 2
    argNames:
    - set
    - hash
    argTypes:
    - Sphincs_Parameter_Set
    - Sphincs_Hash_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 249
    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:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - set
    argTypes:
    - Sphincs_Parameter_Set
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 269
    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:283,1
    - Dst: is_slh_dsa_set
      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:285,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:286,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:287,1
    - Dst: ceil_log2
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:290,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:294,1
    - Dst: ceil_log2
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:300,1
    - Dst: ceil_tobytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:309,1
    - Dst: ceil_tobytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:314,1
    - Dst: ceil_tobytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:320,1
    - Dst: ceil_tobytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:321,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: 323
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 323
    functionName: Botan::Sphincs_Parameters::Sphincs_Parameters
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - is_slh_dsa_set
    - BOTAN_ARG_CHECK
    - ceil_tobytes
    - 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:326,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 348
    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:356,1
    - Dst: Botan::Sphincs_Parameters::Sphincs_Parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:359,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:366,1
    - Dst: Botan::Sphincs_Parameters::Sphincs_Parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:370,1
    - Dst: Botan::Sphincs_Parameters::Sphincs_Parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:373,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 2
    argNames:
    - set
    - hash
    argTypes:
    - Sphincs_Parameter_Set
    - Sphincs_Hash_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 350
    functionDepth: 2
    functionLinenumber: 350
    functionLinenumberEnd: 376
    functionName: Botan::Sphincs_Parameters::create
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 40
    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:379,1
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 381
    functionName: Botan::Sphincs_Parameters::create
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 41
    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: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::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:392,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:392,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 397
    functionName: Botan::Sphincs_Parameters::hash_name
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_UNREACHABLE
    - n
    - 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:400,1
    - Dst: parameter_set
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:400,1
    - Dst: hash_type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 401
    functionName: Botan::Sphincs_Parameters::to_string
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 0
    functionsReached:
    - name_from_set_and_hash
    - parameter_set
    - hash_type
    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:404,1
    - Dst: to_formatted_string
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 405
    functionName: Botan::Sphincs_Parameters::create
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 42
    functionsReached:
    - to_formatted_string
    - Botan::Sphincs_Parameters::create
    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:408,1
    - Dst: Botan::Sphincs_Parameters::to_string
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 407
    functionDepth: 2
    functionLinenumber: 407
    functionLinenumberEnd: 409
    functionName: Botan::Sphincs_Parameters::object_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_string
    - Botan::Sphincs_Parameters::to_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:412,1
    - Dst: Botan::Sphincs_Parameters::object_identifier
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 411
    functionDepth: 3
    functionLinenumber: 411
    functionLinenumberEnd: 413
    functionName: Botan::Sphincs_Parameters::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 0
    functionsReached:
    - AlgorithmIdentifier
    - Botan::Sphincs_Parameters::object_identifier
    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:160,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:160,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 128
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 161
    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:245,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:248,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 81
    argCount: 2
    argNames:
    - set
    - hash
    argTypes:
    - Sphincs_Parameter_Set
    - Sphincs_Hash_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 249
    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:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - set
    argTypes:
    - Sphincs_Parameter_Set
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 269
    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:160,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:160,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 128
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 161
    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:245,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:248,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 81
    argCount: 2
    argNames:
    - set
    - hash
    argTypes:
    - Sphincs_Parameter_Set
    - Sphincs_Hash_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 249
    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:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - set
    argTypes:
    - Sphincs_Parameter_Set
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 269
    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:283,1
    - Dst: is_slh_dsa_set
      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:285,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:286,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:287,1
    - Dst: ceil_log2
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:290,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:294,1
    - Dst: ceil_log2
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:300,1
    - Dst: ceil_tobytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:309,1
    - Dst: ceil_tobytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:314,1
    - Dst: ceil_tobytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:320,1
    - Dst: ceil_tobytes
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:321,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: 323
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 323
    functionName: Botan::Sphincs_Parameters::Sphincs_Parameters
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - is_slh_dsa_set
    - BOTAN_ARG_CHECK
    - ceil_tobytes
    - 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:326,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 348
    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:356,1
    - Dst: Botan::Sphincs_Parameters::Sphincs_Parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:359,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:366,1
    - Dst: Botan::Sphincs_Parameters::Sphincs_Parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:370,1
    - Dst: Botan::Sphincs_Parameters::Sphincs_Parameters
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:373,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 2
    argNames:
    - set
    - hash
    argTypes:
    - Sphincs_Parameter_Set
    - Sphincs_Hash_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 350
    functionDepth: 2
    functionLinenumber: 350
    functionLinenumberEnd: 376
    functionName: Botan::Sphincs_Parameters::create
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 42
    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:379,1
    - Dst: Botan::Sphincs_Parameters::create
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 381
    functionName: Botan::Sphincs_Parameters::create
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 43
    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: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::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:392,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:392,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 387
    functionDepth: 1
    functionLinenumber: 387
    functionLinenumberEnd: 397
    functionName: Botan::Sphincs_Parameters::hash_name
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_UNREACHABLE
    - n
    - 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:400,1
    - Dst: parameter_set
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:400,1
    - Dst: hash_type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 401
    functionName: Botan::Sphincs_Parameters::to_string
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 1
    functionsReached:
    - name_from_set_and_hash
    - parameter_set
    - hash_type
    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:404,1
    - Dst: to_formatted_string
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 405
    functionName: Botan::Sphincs_Parameters::create
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 44
    functionsReached:
    - to_formatted_string
    - Botan::Sphincs_Parameters::create
    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:408,1
    - Dst: Botan::Sphincs_Parameters::to_string
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 407
    functionDepth: 2
    functionLinenumber: 407
    functionLinenumberEnd: 409
    functionName: Botan::Sphincs_Parameters::object_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 1
    functionsReached:
    - Botan::OID::from_string
    - Botan::Sphincs_Parameters::to_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:412,1
    - Dst: Botan::Sphincs_Parameters::object_identifier
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp:412,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 411
    functionDepth: 3
    functionLinenumber: 411
    functionLinenumberEnd: 413
    functionName: Botan::Sphincs_Parameters::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_parameters.cpp
    functionUses: 0
    functionsReached:
    - AlgorithmIdentifier
    - Botan::Sphincs_Parameters::object_identifier
    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_ASSERT_NOMSG
    - Botan::wots_sign_and_pkgen
    - Botan::treehash
    - BufferStuffer::remaining_capacity
    - wots_bytes
    - Botan::get_type
    - std::optional<TreeNodeIndex>::has_value
    - BufferStuffer::next
    - Botan::as_subtree_from
    - xmss_tree_height
    - Botan::n
    - Sphincs_Address::set_type
    - Botan::chain_lengths
    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:
    - Sphincs_Address::set_layer_address
    - Botan::xmss_sign_and_pkgen
    - wots_bytes
    - HypertreeLayerIndex
    - xmss_tree_height
    - Botan::d
    - Botan::n
    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_ASSERT_NOMSG
    - Botan::wots_sign_and_pkgen
    - Botan::treehash
    - BufferStuffer::remaining_capacity
    - wots_bytes
    - Botan::get_type
    - std::optional<TreeNodeIndex>::has_value
    - BufferStuffer::next
    - Botan::as_subtree_from
    - xmss_tree_height
    - Botan::n
    - Sphincs_Address::set_type
    - Botan::chain_lengths
    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:
    - Sphincs_Address::set_layer_address
    - Botan::xmss_sign_and_pkgen
    - wots_bytes
    - HypertreeLayerIndex
    - xmss_tree_height
    - Botan::d
    - Botan::n
    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:
    - BOTAN_ASSERT_NOMSG
    - a
    - update_idx
    - is_slh_dsa
    - std::span<const uint8_t>::size
    - k
    - Internal_Error
    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:
    - BOTAN_ASSERT_NOMSG
    - a
    - update_idx
    - is_slh_dsa
    - std::span<const uint8_t>::size
    - k
    - Internal_Error
    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:102,1
    - Dst: auto::set_type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:103,1
    - Dst: Botan::PRF
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:105,1
    - Dst: auto::set_type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:107,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:108,1
    - Dst: Botan::treehash
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:111,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:111,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:111,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:112,1
    - Dst: a
      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: a
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:117,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:122,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:122,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::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:126,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: 127
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 127
    functionName: Botan::fors_sign_and_pkgen
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::fors_message_to_indices
    - a
    - Botan::PRF
    - Botan::treehash
    - Botan::T
    - BufferStuffer::full
    - Botan::as_keypair_from
    - k
    - fors_signature_bytes
    - auto::set_tree_index
    - auto::set_type
    - BufferStuffer::next
    - TreeLayerIndex
    - auto::size
    - Botan::n
    - StrongSpan<ForsSignature>::size
    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:134,1
    - Dst: Botan::as_keypair_from
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:136,1
    - Dst: Botan::as_keypair_from
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:138,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:141,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:141,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:146,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:146,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:146,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:147,1
    - Dst: a
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:148,1
    - Dst: auto::set_tree_height
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:151,1
    - Dst: TreeLayerIndex
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:151,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:152,1
    - Dst: Botan::n
      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: a
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:153,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:154,1
    - Dst: Botan::compute_root
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:157,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:157,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:157,1
    - Dst: a
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:164,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:168,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:168,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:172,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: 173
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 173
    functionName: Botan::fors_public_key_from_signature
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp
    functionUses: 2
    functionsReached:
    - Botan::fors_message_to_indices
    - BOTAN_ASSERT_NOMSG
    - a
    - Botan::T
    - auto::set_tree_height
    - BufferStuffer::full
    - Botan::compute_root
    - Botan::as_keypair_from
    - k
    - BufferStuffer::next
    - TreeLayerIndex
    - BufferSlicer::take
    - auto::size
    - Botan::n
    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:
    - BOTAN_ASSERT_NOMSG
    - a
    - update_idx
    - is_slh_dsa
    - std::span<const uint8_t>::size
    - k
    - Internal_Error
    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:
    - BOTAN_ASSERT_NOMSG
    - a
    - update_idx
    - is_slh_dsa
    - std::span<const uint8_t>::size
    - k
    - Internal_Error
    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:102,1
    - Dst: auto::set_type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:103,1
    - Dst: Botan::PRF
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:105,1
    - Dst: auto::set_type
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:107,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:108,1
    - Dst: Botan::treehash
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:111,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:111,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:111,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:112,1
    - Dst: a
      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: a
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:117,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:122,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:122,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::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:126,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: 127
      start: 63
    functionDepth: 2
    functionLinenumber: 63
    functionLinenumberEnd: 127
    functionName: Botan::fors_sign_and_pkgen
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::fors_message_to_indices
    - a
    - Botan::PRF
    - Botan::treehash
    - Botan::T
    - BufferStuffer::full
    - Botan::as_keypair_from
    - k
    - fors_signature_bytes
    - auto::set_tree_index
    - auto::set_type
    - BufferStuffer::next
    - TreeLayerIndex
    - auto::size
    - Botan::n
    - StrongSpan<ForsSignature>::size
    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:134,1
    - Dst: Botan::as_keypair_from
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:136,1
    - Dst: Botan::as_keypair_from
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:138,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:141,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:141,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:146,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:146,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:146,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:147,1
    - Dst: a
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:148,1
    - Dst: auto::set_tree_height
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:151,1
    - Dst: TreeLayerIndex
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:151,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:152,1
    - Dst: Botan::n
      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: a
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:153,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:154,1
    - Dst: Botan::compute_root
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:157,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:157,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:157,1
    - Dst: a
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:164,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:168,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:168,1
    - Dst: Botan::T
      Src: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp:172,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: 173
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 173
    functionName: Botan::fors_public_key_from_signature
    functionSourceFile: /src/botan/src/lib/pubkey/sphincsplus/sphincsplus_common/sp_fors.cpp
    functionUses: 2
    functionsReached:
    - Botan::fors_message_to_indices
    - BOTAN_ASSERT_NOMSG
    - a
    - Botan::T
    - auto::set_tree_height
    - BufferStuffer::full
    - Botan::compute_root
    - Botan::as_keypair_from
    - k
    - BufferStuffer::next
    - TreeLayerIndex
    - BufferSlicer::take
    - auto::size
    - Botan::n
    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_UNUSED
    - Botan::to_bytes
    - Botan::update
    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:
    - update
    - final_stdvec
    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:
    - update
    - n
    - 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:
    - final
    - 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_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
    - to_bytes
    - update
    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:
    - update
    - final_stdvec
    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:
    - update
    - n
    - 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:
    - final
    - 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_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: 2
    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::to_bytes_compressed
    - Botan::n
    - Botan::update
    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:
    - final
    - update
    - concat
    - mgf1_mask
    - h_msg_digest_bytes
    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:
    - BOTAN_ASSERT_NOMSG
    - n
    - std::make_unique<Truncated_Hash>
    - std::make_unique<SHA_512>
    - size
    - copy
    - std::vector<uint8_t>
    - end
    - begin
    - std::make_unique<SHA_256>
    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:
    - StrongSpan<SphincsMessageRandomness>::size
    - HMAC::final
    - StrongSpan<SphincsMessageRandomness>::begin
    - copy
    - new_object
    - HMAC::update
    - auto::begin
    - HMAC::set_key
    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:
    - update
    - to_bytes_compressed
    - n
    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:
    - final
    - update
    - concat
    - mgf1_mask
    - h_msg_digest_bytes
    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:
    - BOTAN_ASSERT_NOMSG
    - n
    - std::make_unique<Truncated_Hash>
    - std::make_unique<SHA_512>
    - size
    - copy
    - std::vector<uint8_t>
    - end
    - begin
    - std::make_unique<SHA_256>
    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:
    - StrongSpan<SphincsMessageRandomness>::size
    - HMAC::final
    - StrongSpan<SphincsMessageRandomness>::begin
    - copy
    - new_object
    - HMAC::update
    - auto::begin
    - HMAC::set_key
    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: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    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: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    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: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    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: 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(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: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    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: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    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: 144
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 144
    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: 158
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 158
    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: 160
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 160
    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: 162
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 162
    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: 164
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 164
    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: 166
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 166
    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: 168
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 168
    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: 170
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 170
    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: 173
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 173
    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: 175
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 175
    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: 177
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 177
    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: 179
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 179
    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: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    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: 183
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 183
    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: 186
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 186
    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: 188
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 188
    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: 190
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 190
    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: 192
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 192
    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: 194
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 194
    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: 196
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 196
    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: 198
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 198
    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: 200
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 200
    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: 202
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 202
    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: 204
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 204
    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: 206
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 206
    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: 208
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 208
    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: 210
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 210
    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:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 278
    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: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    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: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    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: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    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: 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(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: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    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: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    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: 144
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 144
    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: 158
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 158
    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: 160
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 160
    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: 162
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 162
    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: 164
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 164
    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: 166
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 166
    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: 168
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 168
    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: 170
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 170
    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: 173
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 173
    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: 175
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 175
    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: 177
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 177
    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: 179
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 179
    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: 181
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 181
    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: 183
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 183
    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: 186
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 186
    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: 188
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 188
    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: 190
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 190
    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: 192
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 192
    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: 194
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 194
    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: 196
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 196
    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: 198
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 198
    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: 200
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 200
    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: 202
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 202
    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: 204
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 204
    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: 206
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 206
    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: 208
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 208
    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: 210
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 210
    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:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 278
    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: 5
    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: 5
    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: 5
    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:
    - std::swap
    - BOTAN_ARG_CHECK
    - _inner
    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: 4
    functionsReached:
    - Botan::EC_Scalar::EC_Scalar
    - _data
    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: 5
    functionsReached:
    - Decoding_Error
    - std::move
    - Botan::EC_Scalar::EC_Scalar
    - _data
    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: 24
    functionsReached:
    - Botan::EC_Scalar::EC_Scalar
    - _data
    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: 12
    functionsReached:
    - Botan::EC_Scalar::EC_Scalar
    - _data
    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
    - Botan::EC_Scalar::EC_Scalar
    - Invalid_Argument
    - _data
    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::BigInt::from_bytes
    - Botan::EC_Scalar::bytes
    - Botan::EC_Scalar::serialize_to
    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: 3
    functionsReached:
    - inner
    - Botan::EC_Scalar::EC_Scalar
    - Botan::EC_Scalar::gk_x_mod_order
    - _inner
    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:
    - Botan::EC_Scalar::serialize_to
    - std::span<uint8_t>::first
    - std::span<uint8_t>::last
    - Botan::EC_Scalar::bytes
    - BOTAN_ARG_CHECK
    - _inner
    - std::span<uint8_t>::size
    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:
    - std::span<const uint8_t>::size
    - std::make_pair
    - auto::value
    - Botan::EC_Scalar::deserialize
    - std::span<const uint8_t>::last
    - std::span<const uint8_t>::first
    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: 9
    functionsReached:
    - std::move
    - Botan::EC_Scalar::EC_Scalar
    - _data
    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: 12
    functionsReached:
    - Decoding_Error
    - _data
    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
    - get_order_bits
    - expand_message_xmd
    - BOTAN_UNUSED
    - 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: 19
    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: 19
    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: 19
    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:
    - std::swap
    - BOTAN_ARG_CHECK
    - _inner
    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: 4
    functionsReached:
    - Botan::EC_Scalar::EC_Scalar
    - _data
    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: 6
    functionsReached:
    - Decoding_Error
    - std::move
    - Botan::EC_Scalar::EC_Scalar
    - _data
    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: 24
    functionsReached:
    - Botan::EC_Scalar::EC_Scalar
    - _data
    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: 12
    functionsReached:
    - Botan::EC_Scalar::EC_Scalar
    - _data
    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
    - Botan::EC_Scalar::EC_Scalar
    - Invalid_Argument
    - _data
    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::BigInt::from_bytes
    - Botan::EC_Scalar::bytes
    - Botan::EC_Scalar::serialize_to
    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: 4
    functionsReached:
    - inner
    - Botan::EC_Scalar::EC_Scalar
    - Botan::EC_Scalar::gk_x_mod_order
    - _inner
    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:
    - Botan::EC_Scalar::serialize_to
    - std::span<uint8_t>::first
    - std::span<uint8_t>::last
    - Botan::EC_Scalar::bytes
    - BOTAN_ARG_CHECK
    - _inner
    - std::span<uint8_t>::size
    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:
    - std::span<const uint8_t>::size
    - std::make_pair
    - auto::value
    - Botan::EC_Scalar::deserialize
    - std::span<const uint8_t>::last
    - std::span<const uint8_t>::first
    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: 10
    functionsReached:
    - std::move
    - Botan::EC_Scalar::EC_Scalar
    - _data
    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: 26
    functionsReached:
    - Decoding_Error
    - _data
    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
    - get_order_bits
    - expand_message_xmd
    - BOTAN_UNUSED
    - 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::bytes
    - serialize_pair_to
    - Botan::is_zero
    - Botan::sub
    - is_eq
    - Botan::serialize_to
    - Botan::mul
    - T::bytes
    - Botan::inner
    - Botan::add
    - BOTAN_DEPRECATED
    - Botan::EC_Scalar::gk_x_mod_order
    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::bytes
    - Botan::serialize_to
    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:
    - Botan::bytes
    - serialize_pair_to
    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::bytes
    - serialize_pair_to
    - Botan::is_zero
    - Botan::sub
    - is_eq
    - Botan::serialize_to
    - Botan::mul
    - T::bytes
    - Botan::inner
    - Botan::add
    - BOTAN_DEPRECATED
    - Botan::EC_Scalar::gk_x_mod_order
    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::bytes
    - Botan::serialize_to
    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:
    - Botan::bytes
    - serialize_pair_to
    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: oid
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:42,1
    - Dst: Botan::EC_Group::EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:48,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:51,1
    - Dst: std::shared_ptr<EC_Group_Data>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:56,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 57
    functionName: Botan::EC_Group_Data_Map::lookup
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - oid
    - Botan::EC_Group::EC_group_info
    - std::shared_ptr<EC_Group_Data>
    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:68,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:68,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:73,1
    - Dst: params_match
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:82,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:83,1
    - Dst: to_string
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:83,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:97,1
    - Dst: params_match
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:97,1
    - Dst: set_oid
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:98,1
    - Dst: Botan::EC_Group::EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:107,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:112,1
    - Dst: auto::params_match
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:112,1
    - Dst: Botan::EC_Group_Data::create
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:120,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:124,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: 126
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 126
    functionName: Botan::EC_Group_Data_Map::lookup_or_create
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - set_oid
    - Botan::EC_Group::EC_group_info
    - params_match
    - BOTAN_ARG_CHECK
    - to_string
    - Botan::EC_Group_Data::create
    - push_back
    - Invalid_Argument
    - has_value
    - oid
    - auto::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:139,1
    - Dst: Botan::EC_Group::EC_group_identity_from_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:145,1
    - Dst: OID::has_value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:146,1
    - Dst: Botan::EC_Group::EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:147,1
    - Dst: auto::params_match
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:150,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:151,1
    - Dst: Botan::EC_Group_Data::create
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:163,1
    - Dst: OID
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:163,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:164,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: 166
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 166
    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::EC_group_identity_from_order
    - Botan::EC_Group::EC_group_info
    - OID::has_value
    - params_match
    - Botan::EC_Group_Data::create
    - OID
    - push_back
    - auto::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: 184
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 184
    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:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 189
    functionName: Botan::EC_Group::clear_registered_curve_data
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 19
    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:199,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:199,1
    - Dst: Botan::EC_Group_Data::create
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:209,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: 210
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 210
    functionName: Botan::EC_Group::load_EC_group_info
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - has_value
    - Botan::EC_Group_Data::create
    - BOTAN_ARG_CHECK
    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: 19
    BranchProfiles: []
    Callsites:
    - Dst: BER_Decoder::peek_next_object
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:217,1
    - Dst: BER_Decoder::decode
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:221,1
    - Dst: ec_group_data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:223,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:225,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:225,1
    - Dst: OID::to_string
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:225,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:228,1
    - Dst: BER_Decoder::start_sequence
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:238,1
    - Dst: OID
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:241,1
    - Dst: BigInt::bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:255,1
    - Dst: BigInt::bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:255,1
    - Dst: BigInt::is_negative
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:255,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:256,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:260,1
    - Dst: is_bailie_psw_probable_prime
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:261,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:262,1
    - Dst: BigInt::is_negative
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:265,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:266,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:270,1
    - Dst: BigInt::is_negative
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:273,1
    - Dst: BigInt::is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:273,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:274,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:278,1
    - Dst: is_bailie_psw_probable_prime
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:279,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:280,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:285,1
    - Dst: BigInt::bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:288,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:289,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:289,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:290,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:296,1
    - Dst: Botan::BigInt::decode
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:297,1
    - Dst: Botan::BigInt::decode
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:298,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:301,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:303,1
    - Dst: Botan::BigInt::decode
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:305,1
    - Dst: sqrt_modulo_prime
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:306,1
    - Dst: BigInt::get_bit
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:310,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:314,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:318,1
    - Dst: auto::square
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:322,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:323,1
    - Dst: auto::cube
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:323,1
    - Dst: auto::multiply
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:323,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:325,1
    - Dst: ec_group_data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:328,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:329,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:331,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:333,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:334,1
    - Dst: asn1_tag_to_string
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:334,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 59
    argCount: 2
    argNames:
    - bits
    - source
    argTypes:
    - std::span<const uint8_t>
    - EC_Group_Source
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 336
    functionName: Botan::EC_Group::BER_decode_EC_group
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::decode
    - sqrt_modulo_prime
    - OID::to_string
    - is_bailie_psw_probable_prime
    - Botan::Barrett_Reduction::for_public_modulus
    - auto::multiply
    - BigInt::is_negative
    - BER_Decoder::start_sequence
    - fmt
    - Decoding_Error
    - BigInt::bits
    - BER_Decoder::peek_next_object
    - BER_Decoder::decode
    - OID
    - auto::square
    - std::vector::size
    - auto::cube
    - BigInt::bytes
    - ec_group_data
    - BigInt::get_bit
    - std::make_pair
    - BigInt::is_zero
    - auto::reduce
    - asn1_tag_to_string
    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: 338
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 338
    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: 340
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 340
    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: 342
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 342
    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:347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - std::shared_ptr<EC_Group_Data>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 347
    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:351,1
    - Dst: std::string
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 352
    functionName: Botan::EC_Group::supports_named_group
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 111
    functionsReached:
    - std::string
    - EC_Group::known_named_groups
    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: 361
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 361
    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: 370
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 370
    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:374,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:377,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:377,1
    - Dst: to_string
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:377,1
    - Dst: Botan::EC_Group::EC_Group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:380,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:380,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 381
    functionName: Botan::EC_Group::from_OID
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 28
    functionsReached:
    - std::move
    - ec_group_data
    - to_string
    - Botan::EC_Group::EC_Group
    - Invalid_Argument
    - 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:387,1
    - Dst: ec_group_data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:388,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:388,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:392,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:392,1
    - Dst: Botan::EC_Group::EC_Group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:395,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:395,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 396
    functionName: Botan::EC_Group::from_name
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 188
    functionsReached:
    - std::move
    - ec_group_data
    - auto::value
    - Botan::EC_Group::EC_Group
    - Invalid_Argument
    - Botan::OID::from_name
    - 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:399,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:404,1
    - Dst: OID::has_value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:405,1
    - Dst: ec_group_data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:406,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:411,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:411,1
    - Dst: Botan::PEM_Code::decode_check_label
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:413,1
    - Dst: Botan::EC_Group::BER_decode_EC_group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:415,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:422,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:422,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 398
    functionDepth: 2
    functionLinenumber: 398
    functionLinenumberEnd: 424
    functionName: Botan::EC_Group::EC_Group
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 2
    functionsReached:
    - std::string_view::starts_with
    - Botan::EC_Group::BER_decode_EC_group
    - OID::has_value
    - std::string_view::empty
    - ec_group_data
    - std::string_view::size
    - Invalid_Argument
    - Botan::PEM_Code::decode_check_label
    - Botan::OID::from_string
    - 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:428,1
    - Dst: Botan::EC_Group::EC_Group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pem
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 430
    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:440,1
    - Dst: ec_group_data
      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:444,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: 447
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 447
    functionName: Botan::EC_Group::EC_Group
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 3
    functionsReached:
    - has_value
    - ec_group_data
    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:456,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:456,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:465,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:465,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:466,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:466,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:468,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:469,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:470,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:471,1
    - Dst: BigInt::set_bit
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:476,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:482,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:484,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:484,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:487,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:489,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:490,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:491,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:492,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:493,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:493,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:493,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:495,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:496,1
    - Dst: is_bailie_psw_probable_prime
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:496,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:498,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:499,1
    - Dst: is_bailie_psw_probable_prime
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:499,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:503,1
    - Dst: abs
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:503,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:503,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:506,1
    - Dst: auto::multiply
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:506,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:506,1
    - Dst: auto::cube
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:506,1
    - Dst: auto::multiply
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:507,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:507,1
    - Dst: auto::square
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:507,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:508,1
    - Dst: auto::square
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:511,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:512,1
    - Dst: auto::cube
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:512,1
    - Dst: auto::multiply
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:512,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:513,1
    - Dst: ec_group_data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:518,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: 519
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 519
    functionName: Botan::EC_Group::EC_Group
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 3
    functionsReached:
    - auto::cube
    - BigInt::set_bit
    - ec_group_data
    - BOTAN_ARG_CHECK
    - is_bailie_psw_probable_prime
    - Botan::BigInt::from_s32
    - Botan::Barrett_Reduction::for_public_modulus
    - auto::reduce
    - auto::multiply
    - auto::square
    - abs
    - has_value
    - bits
    - 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:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ber
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 521
    functionDepth: 2
    functionLinenumber: 521
    functionLinenumberEnd: 525
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:529,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 532
    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:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 536
    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:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 540
    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:543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 544
    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:547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 546
    functionDepth: 1
    functionLinenumber: 546
    functionLinenumberEnd: 548
    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:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 552
    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:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 556
    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:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 560
    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:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 565
    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:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 567
    functionDepth: 1
    functionLinenumber: 567
    functionLinenumberEnd: 569
    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:573,1
    - Dst: on_the_curve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:578,1
    - Dst: get_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:583,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:583,1
    - Dst: Botan::EC_Group::has_cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:587,1
    - Dst: get_cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:588,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:588,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - ' point'
    argTypes:
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 594
    functionName: Botan::EC_Group::verify_public_element
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - get_order
    - is_zero
    - Botan::EC_Group::has_cofactor
    - get_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:599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 600
    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:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 602
    functionDepth: 1
    functionLinenumber: 602
    functionLinenumberEnd: 604
    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:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 608
    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:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 612
    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:615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 614
    functionDepth: 1
    functionLinenumber: 614
    functionLinenumberEnd: 616
    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:619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 618
    functionDepth: 1
    functionLinenumber: 618
    functionLinenumberEnd: 620
    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: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: 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: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: Botan::EC_Group::engine
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 6
    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:631,1
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:633,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:634,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 638
    functionName: Botan::EC_Group::DER_encode
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - Encoding_Error
    - empty
    - data
    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:647,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:649,1
    - Dst: DER_Encoder::start_sequence
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:651,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:655,1
    - Dst: get_a
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:658,1
    - Dst: get_b
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:659,1
    - Dst: get_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:662,1
    - Dst: get_cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:663,1
    - Dst: Botan::EC_Group::DER_encode
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:667,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:671,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - form
    argTypes:
    - EC_Group_Encoding
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 640
    functionDepth: 2
    functionLinenumber: 640
    functionLinenumberEnd: 673
    functionName: Botan::EC_Group::DER_encode
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 1
    functionsReached:
    - get_order
    - Botan::EC_Group::DER_encode
    - get_p
    - Internal_Error
    - DER_Encoder::start_sequence
    - Botan::EC_AffinePoint::generator
    - get_a
    - get_b
    - get_cofactor
    - Botan::EC_Group::get_p_bytes
    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:676,1
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - form
    argTypes:
    - EC_Group_Encoding
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 675
    functionDepth: 2
    functionLinenumber: 675
    functionLinenumberEnd: 678
    functionName: Botan::EC_Group::PEM_encode
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - Botan::PEM_Code::encode
    - Botan::EC_Group::DER_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:685,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:685,1
    - Dst: get_a
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:685,1
    - Dst: get_a
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:685,1
    - Dst: get_b
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:685,1
    - Dst: get_b
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:685,1
    - Dst: get_g_x
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:686,1
    - Dst: get_g_x
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:686,1
    - Dst: get_g_y
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:686,1
    - Dst: get_g_y
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:686,1
    - Dst: get_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:686,1
    - Dst: get_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:686,1
    - Dst: get_cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:687,1
    - Dst: get_cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:687,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 688
    functionName: EC_Group::operator==(const EC_Group& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - get_order
    - get_cofactor
    - get_p
    - get_a
    - get_g_y
    - get_b
    - 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:691,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:701,1
    - Dst: get_a
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:702,1
    - Dst: get_b
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:703,1
    - Dst: get_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:704,1
    - Dst: is_prime
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:720,1
    - Dst: is_prime
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:725,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:730,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:732,1
    - Dst: auto::multiply
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:732,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:732,1
    - Dst: auto::cube
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:732,1
    - Dst: auto::multiply
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:733,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:733,1
    - Dst: auto::square
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:733,1
    - Dst: get_cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:740,1
    - Dst: get_base_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:745,1
    - Dst: on_the_curve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:747,1
    - Dst: get_cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:750,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:750,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:754,1
    - Dst: get_cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:760,1
    - Dst: abs
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:760,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:760,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 38
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 690
    functionDepth: 2
    functionLinenumber: 690
    functionLinenumberEnd: 765
    functionName: Botan::EC_Group::verify_group
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - auto::cube
    - get_order
    - get_p
    - is_prime
    - is_zero
    - get_base_point
    - Botan::BigInt::from_s32
    - Botan::Barrett_Reduction::for_public_modulus
    - auto::reduce
    - auto::multiply
    - Botan::EC_Group::source
    - auto::square
    - get_a
    - abs
    - bits
    - get_b
    - get_cofactor
    - on_the_curve
    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: 767
      start: 767
    functionDepth: 0
    functionLinenumber: 767
    functionLinenumberEnd: 767
    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:771,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - EC_AffinePoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 771
    functionDepth: 0
    functionLinenumber: 771
    functionLinenumberEnd: 771
    functionName: EC_Group::Mul2Table::Mul2Table(const EC_AffinePoint& h)
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - _group
    - _inner
    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: 773
      start: 773
    functionDepth: 0
    functionLinenumber: 773
    functionLinenumberEnd: 773
    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:776,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:776,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:776,1
    - Dst: Botan::EC_AffinePoint::_from_inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:778,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:778,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - EC_Scalar
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 775
    functionDepth: 1
    functionLinenumber: 775
    functionLinenumberEnd: 782
    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:
    - Botan::EC_AffinePoint::_from_inner
    - std::move
    - mul2_vartime
    - _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:787,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:787,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:787,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:787,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: 788
      start: 784
    functionDepth: 0
    functionLinenumber: 784
    functionLinenumberEnd: 788
    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:794,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: 795
      start: 790
    functionDepth: 0
    functionLinenumber: 790
    functionLinenumberEnd: 795
    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: oid
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:42,1
    - Dst: Botan::EC_Group::EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:48,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:51,1
    - Dst: std::shared_ptr<EC_Group_Data>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:56,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 57
    functionName: Botan::EC_Group_Data_Map::lookup
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - oid
    - Botan::EC_Group::EC_group_info
    - std::shared_ptr<EC_Group_Data>
    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:68,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:68,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:73,1
    - Dst: params_match
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:82,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:83,1
    - Dst: to_string
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:83,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:97,1
    - Dst: params_match
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:97,1
    - Dst: set_oid
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:98,1
    - Dst: Botan::EC_Group::EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:107,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:112,1
    - Dst: auto::params_match
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:112,1
    - Dst: Botan::EC_Group_Data::create
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:120,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:124,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: 126
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 126
    functionName: Botan::EC_Group_Data_Map::lookup_or_create
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - set_oid
    - Botan::EC_Group::EC_group_info
    - params_match
    - BOTAN_ARG_CHECK
    - to_string
    - Botan::EC_Group_Data::create
    - push_back
    - Invalid_Argument
    - has_value
    - oid
    - auto::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:139,1
    - Dst: Botan::EC_Group::EC_group_identity_from_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:145,1
    - Dst: OID::has_value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:146,1
    - Dst: Botan::EC_Group::EC_group_info
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:147,1
    - Dst: auto::params_match
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:150,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:151,1
    - Dst: Botan::EC_Group_Data::create
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:163,1
    - Dst: OID
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:163,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:164,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: 166
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 166
    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::EC_group_identity_from_order
    - Botan::EC_Group::EC_group_info
    - OID::has_value
    - params_match
    - Botan::EC_Group_Data::create
    - OID
    - push_back
    - auto::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: 184
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 184
    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:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 189
    functionName: Botan::EC_Group::clear_registered_curve_data
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 19
    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:199,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:199,1
    - Dst: Botan::EC_Group_Data::create
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:209,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: 210
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 210
    functionName: Botan::EC_Group::load_EC_group_info
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - has_value
    - Botan::EC_Group_Data::create
    - BOTAN_ARG_CHECK
    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: 19
    BranchProfiles: []
    Callsites:
    - Dst: BER_Decoder::peek_next_object
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:217,1
    - Dst: BER_Decoder::decode
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:221,1
    - Dst: ec_group_data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:223,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:225,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:225,1
    - Dst: OID::to_string
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:225,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:228,1
    - Dst: BER_Decoder::start_sequence
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:238,1
    - Dst: OID
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:241,1
    - Dst: BigInt::bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:255,1
    - Dst: BigInt::bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:255,1
    - Dst: BigInt::is_negative
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:255,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:256,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:260,1
    - Dst: is_bailie_psw_probable_prime
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:261,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:262,1
    - Dst: BigInt::is_negative
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:265,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:266,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:270,1
    - Dst: BigInt::is_negative
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:273,1
    - Dst: BigInt::is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:273,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:274,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:278,1
    - Dst: is_bailie_psw_probable_prime
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:279,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:280,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:285,1
    - Dst: BigInt::bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:288,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:289,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:289,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:290,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:296,1
    - Dst: Botan::BigInt::decode
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:297,1
    - Dst: Botan::BigInt::decode
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:298,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:301,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:303,1
    - Dst: Botan::BigInt::decode
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:305,1
    - Dst: sqrt_modulo_prime
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:306,1
    - Dst: BigInt::get_bit
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:310,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:314,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:318,1
    - Dst: auto::square
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:322,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:323,1
    - Dst: auto::cube
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:323,1
    - Dst: auto::multiply
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:323,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:325,1
    - Dst: ec_group_data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:328,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:329,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:331,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:333,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:334,1
    - Dst: asn1_tag_to_string
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:334,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 59
    argCount: 2
    argNames:
    - bits
    - source
    argTypes:
    - std::span<const uint8_t>
    - EC_Group_Source
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 336
    functionName: Botan::EC_Group::BER_decode_EC_group
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 2
    functionsReached:
    - Botan::BigInt::decode
    - sqrt_modulo_prime
    - OID::to_string
    - is_bailie_psw_probable_prime
    - Botan::Barrett_Reduction::for_public_modulus
    - auto::multiply
    - BigInt::is_negative
    - BER_Decoder::start_sequence
    - fmt
    - Decoding_Error
    - BigInt::bits
    - BER_Decoder::peek_next_object
    - BER_Decoder::decode
    - OID
    - auto::square
    - std::vector::size
    - auto::cube
    - BigInt::bytes
    - ec_group_data
    - BigInt::get_bit
    - std::make_pair
    - BigInt::is_zero
    - auto::reduce
    - asn1_tag_to_string
    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: 338
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 338
    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: 340
      start: 340
    functionDepth: 0
    functionLinenumber: 340
    functionLinenumberEnd: 340
    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: 342
      start: 342
    functionDepth: 0
    functionLinenumber: 342
    functionLinenumberEnd: 342
    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:347,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - std::shared_ptr<EC_Group_Data>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 347
    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:351,1
    - Dst: std::string
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 352
    functionName: Botan::EC_Group::supports_named_group
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 111
    functionsReached:
    - std::string
    - EC_Group::known_named_groups
    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: 361
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 361
    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: 370
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 370
    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:374,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:377,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:377,1
    - Dst: to_string
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:377,1
    - Dst: Botan::EC_Group::EC_Group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:380,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:380,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 381
    functionName: Botan::EC_Group::from_OID
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 28
    functionsReached:
    - std::move
    - ec_group_data
    - to_string
    - Botan::EC_Group::EC_Group
    - Invalid_Argument
    - 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:387,1
    - Dst: ec_group_data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:388,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:388,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:392,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:392,1
    - Dst: Botan::EC_Group::EC_Group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:395,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:395,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 396
    functionName: Botan::EC_Group::from_name
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 188
    functionsReached:
    - std::move
    - ec_group_data
    - auto::value
    - Botan::EC_Group::EC_Group
    - Invalid_Argument
    - Botan::OID::from_name
    - 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:399,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:404,1
    - Dst: OID::has_value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:405,1
    - Dst: ec_group_data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:406,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:411,1
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:411,1
    - Dst: Botan::PEM_Code::decode_check_label
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:413,1
    - Dst: Botan::EC_Group::BER_decode_EC_group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:415,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:422,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:422,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 398
    functionDepth: 2
    functionLinenumber: 398
    functionLinenumberEnd: 424
    functionName: Botan::EC_Group::EC_Group
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 5
    functionsReached:
    - std::string_view::starts_with
    - Botan::EC_Group::BER_decode_EC_group
    - OID::has_value
    - std::string_view::empty
    - ec_group_data
    - std::string_view::size
    - Invalid_Argument
    - Botan::PEM_Code::decode_check_label
    - Botan::OID::from_string
    - 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:428,1
    - Dst: Botan::EC_Group::EC_Group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pem
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 430
    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:440,1
    - Dst: ec_group_data
      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:444,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: 447
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 447
    functionName: Botan::EC_Group::EC_Group
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 6
    functionsReached:
    - has_value
    - ec_group_data
    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:456,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:456,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:465,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:465,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:466,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:466,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:468,1
    - Dst: Botan_Tests::BitOps_Tests::test_power_of_2
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:469,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:470,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:471,1
    - Dst: BigInt::set_bit
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:476,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:482,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:484,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:484,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:487,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:489,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:490,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:491,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:492,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:493,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:493,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:493,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:495,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:496,1
    - Dst: is_bailie_psw_probable_prime
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:496,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:498,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:499,1
    - Dst: is_bailie_psw_probable_prime
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:499,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:503,1
    - Dst: abs
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:503,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:503,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:506,1
    - Dst: auto::multiply
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:506,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:506,1
    - Dst: auto::cube
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:506,1
    - Dst: auto::multiply
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:507,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:507,1
    - Dst: auto::square
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:507,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:508,1
    - Dst: auto::square
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:511,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:512,1
    - Dst: auto::cube
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:512,1
    - Dst: auto::multiply
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:512,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:513,1
    - Dst: ec_group_data
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:518,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: 519
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 519
    functionName: Botan::EC_Group::EC_Group
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 6
    functionsReached:
    - auto::cube
    - BigInt::set_bit
    - ec_group_data
    - BOTAN_ARG_CHECK
    - is_bailie_psw_probable_prime
    - Botan::BigInt::from_s32
    - Botan::Barrett_Reduction::for_public_modulus
    - auto::reduce
    - auto::multiply
    - auto::square
    - abs
    - has_value
    - bits
    - 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:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ber
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 521
    functionDepth: 2
    functionLinenumber: 521
    functionLinenumberEnd: 525
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:529,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 532
    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:535,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 534
    functionDepth: 1
    functionLinenumber: 534
    functionLinenumberEnd: 536
    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:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 538
    functionDepth: 1
    functionLinenumber: 538
    functionLinenumberEnd: 540
    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:543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 544
    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:547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 546
    functionDepth: 1
    functionLinenumber: 546
    functionLinenumberEnd: 548
    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:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 552
    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:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 556
    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:559,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 560
    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:564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 565
    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:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 567
    functionDepth: 1
    functionLinenumber: 567
    functionLinenumberEnd: 569
    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:573,1
    - Dst: on_the_curve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:578,1
    - Dst: get_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:583,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:583,1
    - Dst: Botan::EC_Group::has_cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:587,1
    - Dst: get_cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:588,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:588,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - ' point'
    argTypes:
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 571
    functionDepth: 2
    functionLinenumber: 571
    functionLinenumberEnd: 594
    functionName: Botan::EC_Group::verify_public_element
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - get_order
    - is_zero
    - Botan::EC_Group::has_cofactor
    - get_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:599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 600
    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:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 602
    functionDepth: 1
    functionLinenumber: 602
    functionLinenumberEnd: 604
    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:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 608
    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:611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 612
    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:615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 614
    functionDepth: 1
    functionLinenumber: 614
    functionLinenumberEnd: 616
    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:619,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 618
    functionDepth: 1
    functionLinenumber: 618
    functionLinenumberEnd: 620
    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: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: 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: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: Botan::EC_Group::engine
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 6
    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:631,1
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:633,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:634,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 638
    functionName: Botan::EC_Group::DER_encode
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 2
    functionsReached:
    - Encoding_Error
    - empty
    - data
    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:647,1
    - Dst: Botan::EC_AffinePoint::generator
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:649,1
    - Dst: DER_Encoder::start_sequence
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:651,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:655,1
    - Dst: get_a
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:658,1
    - Dst: get_b
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:659,1
    - Dst: get_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:662,1
    - Dst: get_cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:663,1
    - Dst: Botan::EC_Group::DER_encode
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:667,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:671,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - form
    argTypes:
    - EC_Group_Encoding
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 640
    functionDepth: 2
    functionLinenumber: 640
    functionLinenumberEnd: 673
    functionName: Botan::EC_Group::DER_encode
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 3
    functionsReached:
    - get_order
    - Botan::EC_Group::DER_encode
    - get_p
    - Internal_Error
    - DER_Encoder::start_sequence
    - Botan::EC_AffinePoint::generator
    - get_a
    - get_b
    - get_cofactor
    - Botan::EC_Group::get_p_bytes
    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:676,1
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - form
    argTypes:
    - EC_Group_Encoding
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 675
    functionDepth: 2
    functionLinenumber: 675
    functionLinenumberEnd: 678
    functionName: Botan::EC_Group::PEM_encode
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - Botan::PEM_Code::encode
    - Botan::EC_Group::DER_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:685,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:685,1
    - Dst: get_a
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:685,1
    - Dst: get_a
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:685,1
    - Dst: get_b
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:685,1
    - Dst: get_b
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:685,1
    - Dst: get_g_x
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:686,1
    - Dst: get_g_x
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:686,1
    - Dst: get_g_y
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:686,1
    - Dst: get_g_y
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:686,1
    - Dst: get_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:686,1
    - Dst: get_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:686,1
    - Dst: get_cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:687,1
    - Dst: get_cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:687,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 680
    functionDepth: 0
    functionLinenumber: 680
    functionLinenumberEnd: 688
    functionName: EC_Group::operator==(const EC_Group& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - get_order
    - get_cofactor
    - get_p
    - get_a
    - get_g_y
    - get_b
    - 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:691,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:701,1
    - Dst: get_a
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:702,1
    - Dst: get_b
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:703,1
    - Dst: get_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:704,1
    - Dst: is_prime
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:720,1
    - Dst: is_prime
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:725,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:730,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:732,1
    - Dst: auto::multiply
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:732,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:732,1
    - Dst: auto::cube
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:732,1
    - Dst: auto::multiply
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:733,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:733,1
    - Dst: auto::square
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:733,1
    - Dst: get_cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:740,1
    - Dst: get_base_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:745,1
    - Dst: on_the_curve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:747,1
    - Dst: get_cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:750,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:750,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:754,1
    - Dst: get_cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:760,1
    - Dst: abs
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:760,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:760,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 38
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 690
    functionDepth: 2
    functionLinenumber: 690
    functionLinenumberEnd: 765
    functionName: Botan::EC_Group::verify_group
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - auto::cube
    - get_order
    - get_p
    - is_prime
    - is_zero
    - get_base_point
    - Botan::BigInt::from_s32
    - Botan::Barrett_Reduction::for_public_modulus
    - auto::reduce
    - auto::multiply
    - Botan::EC_Group::source
    - auto::square
    - get_a
    - abs
    - bits
    - get_b
    - get_cofactor
    - on_the_curve
    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: 767
      start: 767
    functionDepth: 0
    functionLinenumber: 767
    functionLinenumberEnd: 767
    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:771,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - EC_AffinePoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 771
    functionDepth: 0
    functionLinenumber: 771
    functionLinenumberEnd: 771
    functionName: EC_Group::Mul2Table::Mul2Table(const EC_AffinePoint& h)
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp
    functionUses: 0
    functionsReached:
    - _group
    - _inner
    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: 773
      start: 773
    functionDepth: 0
    functionLinenumber: 773
    functionLinenumberEnd: 773
    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:776,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:776,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:776,1
    - Dst: Botan::EC_AffinePoint::_from_inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:778,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:778,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - EC_Scalar
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 782
      start: 775
    functionDepth: 1
    functionLinenumber: 775
    functionLinenumberEnd: 782
    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:
    - Botan::EC_AffinePoint::_from_inner
    - std::move
    - mul2_vartime
    - _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:787,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:787,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:787,1
    - Dst: _inner
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.cpp:787,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: 788
      start: 784
    functionDepth: 0
    functionLinenumber: 784
    functionLinenumberEnd: 788
    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:794,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: 795
      start: 790
    functionDepth: 0
    functionLinenumber: 790
    functionLinenumberEnd: 795
    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: 6
    functionsReached:
    - Botan::EC_Group::load_EC_group_info
    - std::shared_ptr<EC_Group_Data>
    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: 6
    functionsReached:
    - OID
    - static_cast<uint32_t>
    - word_at
    - BigInt
    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: 6
    functionsReached:
    - Botan::EC_Group::load_EC_group_info
    - std::shared_ptr<EC_Group_Data>
    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: 6
    functionsReached:
    - OID
    - static_cast<uint32_t>
    - word_at
    - BigInt
    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: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    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:45,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:46,1
    - Dst: sig_words
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:50,1
    - Dst: bits
      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: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:55,1
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:60,1
    - Dst: DER_Encoder::encode
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:62,1
    - Dst: human_name_or_empty
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:64,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:65,1
    - Dst: Botan::PCurve::PrimeOrderCurve::for_named_curve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:67,1
    - Dst: Botan::PCurve::PrimeOrderCurve::from_params
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:76,1
    - Dst: mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:86,1
    - Dst: R2
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:86,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: empty
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:93,1
    - Dst: Not_Implemented
      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:96,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:97,1
    - Dst: to_string
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:97,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: 101
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 101
    functionName: Botan::EC_Group_Data::EC_Group_Data
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached:
    - sig_words
    - mul
    - is_zero
    - Botan::PCurve::PrimeOrderCurve::for_named_curve
    - to_string
    - std::string::empty
    - Botan::Barrett_Reduction::for_public_modulus
    - empty
    - DER_Encoder::encode
    - Botan::PCurve::PrimeOrderCurve::from_params
    - bits
    - R2
    - human_name_or_empty
    - Not_Implemented
    - 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:112,1
    - Dst: CurveGFp
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:115,1
    - Dst: auto::get
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:115,1
    - Dst: EC_Point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:116,1
    - Dst: std::make_unique<EC_Point_Base_Point_Precompute>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:118,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: 123
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 123
    functionName: Botan::EC_Group_Data::create
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 6
    functionsReached:
    - CurveGFp
    - std::make_shared<EC_Group_Data>
    - auto::get
    - std::make_unique<EC_Point_Base_Point_Precompute>
    - EC_Point
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group_Data::p
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:132,1
    - Dst: Botan::EC_Group_Data::a
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:132,1
    - Dst: Botan::EC_Group_Data::b
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:132,1
    - Dst: Botan::EC_Group_Data::order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:132,1
    - Dst: Botan::EC_Group_Data::cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:133,1
    - Dst: Botan::EC_Group_Data::g_x
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:133,1
    - Dst: Botan::EC_Group_Data::g_y
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:133,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    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: 134
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 134
    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::order
    - Botan::EC_Group_Data::cofactor
    - Botan::EC_Group_Data::p
    - Botan::EC_Group_Data::b
    - Botan::EC_Group_Data::a
    - Botan::EC_Group_Data::g_y
    - 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: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group_Data::params_match
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:137,1
    - Dst: p
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:137,1
    - Dst: a
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:137,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:137,1
    - Dst: g_x
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:137,1
    - Dst: g_y
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:137,1
    - Dst: order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:137,1
    - Dst: cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Group_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 138
    functionName: Botan::EC_Group_Data::params_match
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 1
    functionsReached:
    - p
    - a
    - order
    - g_x
    - b
    - cofactor
    - Botan::EC_Group_Data::params_match
    - g_y
    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:141,1
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:141,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:142,1
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:142,1
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:142,1
    - Dst: DER_Encoder::encode
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 147
    functionName: Botan::EC_Group_Data::set_oid
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - DER_Encoder::encode
    - empty
    - BOTAN_ARG_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:150,1
    - Dst: Botan::EC_Group_Data::order_bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:152,1
    - Dst: Botan::EC_Group_Data::scalar_from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:154,1
    - Dst: Botan::EC_Group_Data::order_bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:156,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:158,1
    - Dst: Botan::EC_Group_Data::scalar_from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:163,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:163,1
    - Dst: Botan::EC_Group_Data::scalar_from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:174,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 177
    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::order_bits
    - Botan::EC_Group_Data::scalar_from_bytes_mod_order
    - std::span<const uint8_t>::first
    - std::span<const uint8_t>::size
    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:180,1
    - Dst: Botan::EC_Group_Data::order_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:180,1
    - Dst: scalar_from_wide_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:185,1
    - Dst: std::make_unique<EC_Scalar_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:186,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:186,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:186,1
    - Dst: std::make_unique<EC_Scalar_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:192,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:192,1
    - Dst: reduce
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:192,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:192,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:194,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 197
    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
    - std::span<const uint8_t>::size
    - scalar_from_wide_bytes
    - std::make_unique<EC_Scalar_Data_PC>
    - std::make_unique<EC_Scalar_Data_BN>
    - reduce
    - shared_from_this
    - Botan::EC_Group_Data::order_bytes
    - Not_Implemented
    - BigInt
    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:201,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:201,1
    - Dst: random_scalar
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:201,1
    - Dst: std::make_unique<EC_Scalar_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:204,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:204,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:205,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::retrieve_one
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:205,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 199
    functionDepth: 3
    functionLinenumber: 199
    functionLinenumberEnd: 210
    functionName: Botan::EC_Group_Data::scalar_random
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached:
    - random_scalar
    - Botan::BigInt::random_integer
    - Botan_Tests::RFC8448_Session_Manager::retrieve_one
    - std::make_unique<EC_Scalar_Data_BN>
    - std::make_unique<EC_Scalar_Data_PC>
    - shared_from_this
    - Not_Implemented
    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:214,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:214,1
    - Dst: Botan::EC_Group_Data::scalar_one
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:214,1
    - Dst: std::make_unique<EC_Scalar_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:217,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:217,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::retrieve_one
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:217,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 212
    functionDepth: 3
    functionLinenumber: 212
    functionLinenumberEnd: 222
    functionName: Botan::EC_Group_Data::scalar_one
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 1
    functionsReached:
    - Botan::EC_Group_Data::scalar_one
    - Botan_Tests::RFC8448_Session_Manager::retrieve_one
    - std::make_unique<EC_Scalar_Data_BN>
    - std::make_unique<EC_Scalar_Data_PC>
    - shared_from_this
    - Not_Implemented
    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:230,1
    - Dst: serialize
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:230,1
    - Dst: std::make_unique<EC_Scalar_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:233,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:233,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:235,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - ' bn'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 238
    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
    - std::make_unique<EC_Scalar_Data_BN>
    - shared_from_this
    - serialize
    - Not_Implemented
    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:243,1
    - Dst: base_point_mul_x_mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:244,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:244,1
    - Dst: std::make_unique<EC_Scalar_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:245,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:245,1
    - Dst: EC_Scalar_Data_BN::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:248,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:249,1
    - Dst: mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:251,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:251,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:253,1
    - Dst: std::make_unique<EC_Scalar_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:254,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:254,1
    - Dst: Botan::Sodium::sodium_memzero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:254,1
    - Dst: std::make_unique<EC_Scalar_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:256,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:256,1
    - Dst: reduce
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:256,1
    - Dst: auto::get_affine_x
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:256,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:259,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ' scalar'
    - ' rng'
    argTypes:
    - EC_Scalar_Data
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 262
    functionName: Botan::EC_Group_Data::gk_x_mod_order
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached:
    - base_point_mul_x_mod_order
    - auto::is_zero
    - Botan::Sodium::sodium_memzero
    - mul
    - std::make_unique<EC_Scalar_Data_PC>
    - std::make_unique<EC_Scalar_Data_BN>
    - reduce
    - shared_from_this
    - EC_Scalar_Data_BN::checked_ref
    - BOTAN_STATE_CHECK
    - value
    - auto::get_affine_x
    - Not_Implemented
    - EC_Scalar_Data_PC::checked_ref
    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:265,1
    - Dst: deserialize_scalar
      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: BigInt::is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:279,1
    - Dst: std::make_unique<EC_Scalar_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:283,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:283,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:283,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:285,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 288
    functionName: Botan::EC_Group_Data::scalar_deserialize
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 1
    functionsReached:
    - std::move
    - std::span<const uint8_t>::size
    - BigInt::is_zero
    - std::make_unique<EC_Scalar_Data_PC>
    - std::make_unique<EC_Scalar_Data_BN>
    - shared_from_this
    - deserialize_scalar
    - Not_Implemented
    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:293,1
    - Dst: std::span<const uint8_t>::back
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:295,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:298,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:298,1
    - Dst: Botan::EC_Group_Data::point_deserialize
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:300,1
    - Dst: deserialize_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:306,1
    - Dst: std::make_unique<EC_AffinePoint_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:307,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:307,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:307,1
    - Dst: Botan::OS2ECP
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:313,1
    - Dst: std::make_unique<EC_AffinePoint_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:314,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:314,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:314,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:316,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 322
    functionName: Botan::EC_Group_Data::point_deserialize
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 1
    functionsReached:
    - std::move
    - std::make_unique<EC_AffinePoint_Data_PC>
    - Botan::OS2ECP
    - std::make_unique<EC_AffinePoint_Data_BN>
    - std::span<const uint8_t>::size
    - deserialize_point
    - std::span<const uint8_t>::back
    - std::span<const uint8_t>::begin
    - shared_from_this
    - std::span<const uint8_t>::end
    - Not_Implemented
    - Botan::EC_Group_Data::point_deserialize
    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:333,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:334,1
    - Dst: Botan::expand_message_xmd
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:339,1
    - Dst: BOTAN_UNUSED
      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:342,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: 345
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 345
    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::expand_message_xmd
    - BOTAN_UNUSED
    - Not_Implemented
    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:333,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:334,1
    - Dst: Botan::expand_message_xmd
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:339,1
    - Dst: BOTAN_UNUSED
      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:342,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: 345
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 345
    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::expand_message_xmd
    - BOTAN_UNUSED
    - Not_Implemented
    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:353,1
    - Dst: h2c_expand_message
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:353,1
    - Dst: std::make_unique<EC_AffinePoint_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:354,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:354,1
    - Dst: point_to_affine
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:354,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:356,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: 358
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 358
    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:
    - std::make_unique<EC_AffinePoint_Data_PC>
    - hash_to_curve_ro
    - point_to_affine
    - h2c_expand_message
    - shared_from_this
    - Not_Implemented
    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:364,1
    - Dst: h2c_expand_message
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:364,1
    - Dst: std::make_unique<EC_AffinePoint_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:365,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:365,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:365,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:367,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: 369
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 369
    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:
    - std::move
    - std::make_unique<EC_AffinePoint_Data_PC>
    - hash_to_curve_nu
    - h2c_expand_message
    - shared_from_this
    - Not_Implemented
    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:374,1
    - Dst: point_to_affine
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:375,1
    - Dst: mul_by_g
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:375,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:375,1
    - Dst: std::make_unique<EC_AffinePoint_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:376,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:376,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:376,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:379,1
    - Dst: EC_Scalar_Data_BN::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:380,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:382,1
    - Dst: m_base_mult::mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:384,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:384,1
    - Dst: std::make_unique<EC_AffinePoint_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:385,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:385,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:385,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:387,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' scalar'
    - ' rng'
    argTypes:
    - EC_Scalar_Data
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 390
    functionName: Botan::EC_Group_Data::point_g_mul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_unique<EC_AffinePoint_Data_PC>
    - std::make_unique<EC_AffinePoint_Data_BN>
    - mul_by_g
    - m_base_mult::mul
    - point_to_affine
    - shared_from_this
    - EC_Scalar_Data_BN::checked_ref
    - BOTAN_STATE_CHECK
    - value
    - group
    - Not_Implemented
    - EC_Scalar_Data_PC::checked_ref
    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:398,1
    - Dst: EC_AffinePoint_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:398,1
    - Dst: EC_Scalar_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:399,1
    - Dst: EC_AffinePoint_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:400,1
    - Dst: EC_Scalar_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:401,1
    - Dst: std::make_unique<EC_AffinePoint_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:405,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:405,1
    - Dst: point_to_affine
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:405,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:412,1
    - Dst: to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:415,1
    - Dst: to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:416,1
    - Dst: order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:418,1
    - Dst: cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:418,1
    - Dst: EC_Point_Var_Point_Precompute::mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:420,1
    - Dst: EC_Scalar_Data_BN::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:420,1
    - Dst: EC_Point_Var_Point_Precompute::mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:421,1
    - Dst: EC_Scalar_Data_BN::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:421,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:425,1
    - Dst: auto::force_affine
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:426,1
    - Dst: std::make_unique<EC_AffinePoint_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:427,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:427,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:427,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:432,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: 435
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 435
    functionName: Botan::EC_Group_Data::mul_px_qy
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 1
    functionsReached:
    - Botan::EC_Group_Data::mul_px_qy
    - std::make_unique<EC_AffinePoint_Data_PC>
    - order
    - auto::is_zero
    - auto::force_affine
    - std::make_unique<EC_AffinePoint_Data_BN>
    - std::move
    - EC_Point_Var_Point_Precompute::mul
    - to_legacy_point
    - cofactor
    - point_to_affine
    - shared_from_this
    - EC_Scalar_Data_BN::checked_ref
    - group
    - EC_AffinePoint_Data_PC::checked_ref
    - Not_Implemented
    - EC_Scalar_Data_PC::checked_ref
    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:440,1
    - Dst: EC_AffinePoint_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:440,1
    - Dst: EC_AffinePoint_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:441,1
    - Dst: std::make_unique<EC_AffinePoint_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:443,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:443,1
    - Dst: point_to_affine
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:443,1
    - Dst: to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:446,1
    - Dst: to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:446,1
    - Dst: std::make_unique<EC_AffinePoint_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:447,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:447,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:447,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:449,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' p'
    - ' q'
    argTypes:
    - EC_AffinePoint_Data
    - EC_AffinePoint_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 452
    functionName: Botan::EC_Group_Data::affine_add
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_unique<EC_AffinePoint_Data_PC>
    - std::make_unique<EC_AffinePoint_Data_BN>
    - to_legacy_point
    - point_to_affine
    - shared_from_this
    - point_add
    - EC_AffinePoint_Data_PC::checked_ref
    - Not_Implemented
    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:456,1
    - Dst: EC_AffinePoint_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:456,1
    - Dst: std::make_unique<EC_AffinePoint_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:457,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:457,1
    - Dst: to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:460,1
    - Dst: auto::negate
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:461,1
    - Dst: std::make_unique<EC_AffinePoint_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:462,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:462,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:462,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:464,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - EC_AffinePoint_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 467
    functionName: Botan::EC_Group_Data::affine_neg
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_unique<EC_AffinePoint_Data_PC>
    - std::make_unique<EC_AffinePoint_Data_BN>
    - to_legacy_point
    - shared_from_this
    - auto::negate
    - EC_AffinePoint_Data_PC::checked_ref
    - point_negate
    - Not_Implemented
    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:471,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:474,1
    - Dst: Botan::EC_Group_Data::base_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:474,1
    - Dst: std::make_unique<EC_Mul2Table_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:475,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:477,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - EC_AffinePoint_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 480
    functionName: Botan::EC_Group_Data::make_mul2_table
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<EC_Mul2Table_Data_BN>
    - Botan::EC_Group_Data::base_point
    - std::make_unique<EC_Mul2Table_Data_PC>
    - shared_from_this
    - Not_Implemented
    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: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    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:45,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:46,1
    - Dst: sig_words
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:50,1
    - Dst: bits
      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: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:55,1
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:60,1
    - Dst: DER_Encoder::encode
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:62,1
    - Dst: human_name_or_empty
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:64,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:65,1
    - Dst: Botan::PCurve::PrimeOrderCurve::for_named_curve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:67,1
    - Dst: Botan::PCurve::PrimeOrderCurve::from_params
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:76,1
    - Dst: mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:86,1
    - Dst: R2
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:86,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: empty
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:93,1
    - Dst: Not_Implemented
      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:96,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:97,1
    - Dst: to_string
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:97,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: 101
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 101
    functionName: Botan::EC_Group_Data::EC_Group_Data
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached:
    - sig_words
    - mul
    - is_zero
    - Botan::PCurve::PrimeOrderCurve::for_named_curve
    - to_string
    - std::string::empty
    - Botan::Barrett_Reduction::for_public_modulus
    - empty
    - DER_Encoder::encode
    - Botan::PCurve::PrimeOrderCurve::from_params
    - bits
    - R2
    - human_name_or_empty
    - Not_Implemented
    - 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:112,1
    - Dst: CurveGFp
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:115,1
    - Dst: auto::get
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:115,1
    - Dst: EC_Point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:116,1
    - Dst: std::make_unique<EC_Point_Base_Point_Precompute>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:118,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: 123
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 123
    functionName: Botan::EC_Group_Data::create
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 6
    functionsReached:
    - CurveGFp
    - std::make_shared<EC_Group_Data>
    - auto::get
    - std::make_unique<EC_Point_Base_Point_Precompute>
    - EC_Point
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group_Data::p
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:132,1
    - Dst: Botan::EC_Group_Data::a
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:132,1
    - Dst: Botan::EC_Group_Data::b
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:132,1
    - Dst: Botan::EC_Group_Data::order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:132,1
    - Dst: Botan::EC_Group_Data::cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:133,1
    - Dst: Botan::EC_Group_Data::g_x
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:133,1
    - Dst: Botan::EC_Group_Data::g_y
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:133,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    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: 134
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 134
    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::order
    - Botan::EC_Group_Data::cofactor
    - Botan::EC_Group_Data::p
    - Botan::EC_Group_Data::b
    - Botan::EC_Group_Data::a
    - Botan::EC_Group_Data::g_y
    - 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: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Group_Data::params_match
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:137,1
    - Dst: p
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:137,1
    - Dst: a
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:137,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:137,1
    - Dst: g_x
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:137,1
    - Dst: g_y
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:137,1
    - Dst: order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:137,1
    - Dst: cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Group_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 138
    functionName: Botan::EC_Group_Data::params_match
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 2
    functionsReached:
    - p
    - a
    - order
    - g_x
    - b
    - cofactor
    - Botan::EC_Group_Data::params_match
    - g_y
    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:141,1
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:141,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:142,1
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:142,1
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:142,1
    - Dst: DER_Encoder::encode
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 147
    functionName: Botan::EC_Group_Data::set_oid
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - DER_Encoder::encode
    - empty
    - BOTAN_ARG_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:150,1
    - Dst: Botan::EC_Group_Data::order_bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:152,1
    - Dst: Botan::EC_Group_Data::scalar_from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:154,1
    - Dst: Botan::EC_Group_Data::order_bits
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:156,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:158,1
    - Dst: Botan::EC_Group_Data::scalar_from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:163,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:163,1
    - Dst: Botan::EC_Group_Data::scalar_from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:174,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 177
    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::order_bits
    - Botan::EC_Group_Data::scalar_from_bytes_mod_order
    - std::span<const uint8_t>::first
    - std::span<const uint8_t>::size
    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:180,1
    - Dst: Botan::EC_Group_Data::order_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:180,1
    - Dst: scalar_from_wide_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:185,1
    - Dst: std::make_unique<EC_Scalar_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:186,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:186,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:186,1
    - Dst: std::make_unique<EC_Scalar_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:192,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:192,1
    - Dst: reduce
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:192,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:192,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:194,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 197
    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
    - std::span<const uint8_t>::size
    - scalar_from_wide_bytes
    - std::make_unique<EC_Scalar_Data_PC>
    - std::make_unique<EC_Scalar_Data_BN>
    - reduce
    - shared_from_this
    - Botan::EC_Group_Data::order_bytes
    - Not_Implemented
    - BigInt
    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:201,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:201,1
    - Dst: random_scalar
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:201,1
    - Dst: std::make_unique<EC_Scalar_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:204,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:204,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:205,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::retrieve_one
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:205,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 199
    functionDepth: 3
    functionLinenumber: 199
    functionLinenumberEnd: 210
    functionName: Botan::EC_Group_Data::scalar_random
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached:
    - random_scalar
    - Botan::BigInt::random_integer
    - Botan_Tests::RFC8448_Session_Manager::retrieve_one
    - std::make_unique<EC_Scalar_Data_BN>
    - std::make_unique<EC_Scalar_Data_PC>
    - shared_from_this
    - Not_Implemented
    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:214,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:214,1
    - Dst: Botan::EC_Group_Data::scalar_one
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:214,1
    - Dst: std::make_unique<EC_Scalar_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:217,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:217,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::retrieve_one
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:217,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 212
    functionDepth: 3
    functionLinenumber: 212
    functionLinenumberEnd: 222
    functionName: Botan::EC_Group_Data::scalar_one
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 2
    functionsReached:
    - Botan::EC_Group_Data::scalar_one
    - Botan_Tests::RFC8448_Session_Manager::retrieve_one
    - std::make_unique<EC_Scalar_Data_BN>
    - std::make_unique<EC_Scalar_Data_PC>
    - shared_from_this
    - Not_Implemented
    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:230,1
    - Dst: serialize
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:230,1
    - Dst: std::make_unique<EC_Scalar_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:233,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:233,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:235,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - ' bn'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 224
    functionDepth: 2
    functionLinenumber: 224
    functionLinenumberEnd: 238
    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
    - std::make_unique<EC_Scalar_Data_BN>
    - shared_from_this
    - serialize
    - Not_Implemented
    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:243,1
    - Dst: base_point_mul_x_mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:244,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:244,1
    - Dst: std::make_unique<EC_Scalar_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:245,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:245,1
    - Dst: EC_Scalar_Data_BN::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:248,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:249,1
    - Dst: mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:251,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:251,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:253,1
    - Dst: std::make_unique<EC_Scalar_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:254,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:254,1
    - Dst: Botan::Sodium::sodium_memzero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:254,1
    - Dst: std::make_unique<EC_Scalar_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:256,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:256,1
    - Dst: reduce
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:256,1
    - Dst: auto::get_affine_x
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:256,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:259,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ' scalar'
    - ' rng'
    argTypes:
    - EC_Scalar_Data
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 262
    functionName: Botan::EC_Group_Data::gk_x_mod_order
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached:
    - base_point_mul_x_mod_order
    - auto::is_zero
    - Botan::Sodium::sodium_memzero
    - mul
    - std::make_unique<EC_Scalar_Data_PC>
    - std::make_unique<EC_Scalar_Data_BN>
    - reduce
    - shared_from_this
    - EC_Scalar_Data_BN::checked_ref
    - BOTAN_STATE_CHECK
    - value
    - auto::get_affine_x
    - Not_Implemented
    - EC_Scalar_Data_PC::checked_ref
    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:265,1
    - Dst: deserialize_scalar
      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: BigInt::is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:279,1
    - Dst: std::make_unique<EC_Scalar_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:283,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:283,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:283,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:285,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 288
    functionName: Botan::EC_Group_Data::scalar_deserialize
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 2
    functionsReached:
    - std::move
    - std::span<const uint8_t>::size
    - BigInt::is_zero
    - std::make_unique<EC_Scalar_Data_PC>
    - std::make_unique<EC_Scalar_Data_BN>
    - shared_from_this
    - deserialize_scalar
    - Not_Implemented
    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:293,1
    - Dst: std::span<const uint8_t>::back
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:295,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:298,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:298,1
    - Dst: Botan::EC_Group_Data::point_deserialize
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:300,1
    - Dst: deserialize_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:306,1
    - Dst: std::make_unique<EC_AffinePoint_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:307,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:307,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:307,1
    - Dst: Botan::OS2ECP
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:313,1
    - Dst: std::make_unique<EC_AffinePoint_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:314,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:314,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:314,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:316,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 322
    functionName: Botan::EC_Group_Data::point_deserialize
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 2
    functionsReached:
    - std::move
    - std::make_unique<EC_AffinePoint_Data_PC>
    - Botan::OS2ECP
    - std::make_unique<EC_AffinePoint_Data_BN>
    - std::span<const uint8_t>::size
    - deserialize_point
    - std::span<const uint8_t>::back
    - std::span<const uint8_t>::begin
    - shared_from_this
    - std::span<const uint8_t>::end
    - Not_Implemented
    - Botan::EC_Group_Data::point_deserialize
    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:333,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:334,1
    - Dst: Botan::expand_message_xmd
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:339,1
    - Dst: BOTAN_UNUSED
      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:342,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: 345
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 345
    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::expand_message_xmd
    - BOTAN_UNUSED
    - Not_Implemented
    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:333,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:334,1
    - Dst: Botan::expand_message_xmd
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:339,1
    - Dst: BOTAN_UNUSED
      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:342,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: 345
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 345
    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::expand_message_xmd
    - BOTAN_UNUSED
    - Not_Implemented
    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:353,1
    - Dst: h2c_expand_message
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:353,1
    - Dst: std::make_unique<EC_AffinePoint_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:354,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:354,1
    - Dst: point_to_affine
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:354,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:356,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: 358
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 358
    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:
    - std::make_unique<EC_AffinePoint_Data_PC>
    - hash_to_curve_ro
    - point_to_affine
    - h2c_expand_message
    - shared_from_this
    - Not_Implemented
    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:364,1
    - Dst: h2c_expand_message
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:364,1
    - Dst: std::make_unique<EC_AffinePoint_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:365,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:365,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:365,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:367,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: 369
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 369
    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:
    - std::move
    - std::make_unique<EC_AffinePoint_Data_PC>
    - hash_to_curve_nu
    - h2c_expand_message
    - shared_from_this
    - Not_Implemented
    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:374,1
    - Dst: point_to_affine
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:375,1
    - Dst: mul_by_g
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:375,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:375,1
    - Dst: std::make_unique<EC_AffinePoint_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:376,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:376,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:376,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:379,1
    - Dst: EC_Scalar_Data_BN::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:380,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:382,1
    - Dst: m_base_mult::mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:384,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:384,1
    - Dst: std::make_unique<EC_AffinePoint_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:385,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:385,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:385,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:387,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' scalar'
    - ' rng'
    argTypes:
    - EC_Scalar_Data
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 371
    functionDepth: 1
    functionLinenumber: 371
    functionLinenumberEnd: 390
    functionName: Botan::EC_Group_Data::point_g_mul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_unique<EC_AffinePoint_Data_PC>
    - std::make_unique<EC_AffinePoint_Data_BN>
    - mul_by_g
    - m_base_mult::mul
    - point_to_affine
    - shared_from_this
    - EC_Scalar_Data_BN::checked_ref
    - BOTAN_STATE_CHECK
    - value
    - group
    - Not_Implemented
    - EC_Scalar_Data_PC::checked_ref
    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:398,1
    - Dst: EC_AffinePoint_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:398,1
    - Dst: EC_Scalar_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:399,1
    - Dst: EC_AffinePoint_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:400,1
    - Dst: EC_Scalar_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:401,1
    - Dst: std::make_unique<EC_AffinePoint_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:405,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:405,1
    - Dst: point_to_affine
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:405,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:412,1
    - Dst: to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:415,1
    - Dst: to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:416,1
    - Dst: order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:418,1
    - Dst: cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:418,1
    - Dst: EC_Point_Var_Point_Precompute::mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:420,1
    - Dst: EC_Scalar_Data_BN::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:420,1
    - Dst: EC_Point_Var_Point_Precompute::mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:421,1
    - Dst: EC_Scalar_Data_BN::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:421,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:425,1
    - Dst: auto::force_affine
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:426,1
    - Dst: std::make_unique<EC_AffinePoint_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:427,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:427,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:427,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:432,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: 435
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 435
    functionName: Botan::EC_Group_Data::mul_px_qy
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 2
    functionsReached:
    - Botan::EC_Group_Data::mul_px_qy
    - std::make_unique<EC_AffinePoint_Data_PC>
    - order
    - auto::is_zero
    - auto::force_affine
    - std::make_unique<EC_AffinePoint_Data_BN>
    - std::move
    - EC_Point_Var_Point_Precompute::mul
    - to_legacy_point
    - cofactor
    - point_to_affine
    - shared_from_this
    - EC_Scalar_Data_BN::checked_ref
    - group
    - EC_AffinePoint_Data_PC::checked_ref
    - Not_Implemented
    - EC_Scalar_Data_PC::checked_ref
    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:440,1
    - Dst: EC_AffinePoint_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:440,1
    - Dst: EC_AffinePoint_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:441,1
    - Dst: std::make_unique<EC_AffinePoint_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:443,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:443,1
    - Dst: point_to_affine
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:443,1
    - Dst: to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:446,1
    - Dst: to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:446,1
    - Dst: std::make_unique<EC_AffinePoint_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:447,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:447,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:447,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:449,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' p'
    - ' q'
    argTypes:
    - EC_AffinePoint_Data
    - EC_AffinePoint_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 452
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 452
    functionName: Botan::EC_Group_Data::affine_add
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_unique<EC_AffinePoint_Data_PC>
    - std::make_unique<EC_AffinePoint_Data_BN>
    - to_legacy_point
    - point_to_affine
    - shared_from_this
    - point_add
    - EC_AffinePoint_Data_PC::checked_ref
    - Not_Implemented
    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:456,1
    - Dst: EC_AffinePoint_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:456,1
    - Dst: std::make_unique<EC_AffinePoint_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:457,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:457,1
    - Dst: to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:460,1
    - Dst: auto::negate
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:461,1
    - Dst: std::make_unique<EC_AffinePoint_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:462,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:462,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:462,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:464,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - EC_AffinePoint_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 467
    functionName: Botan::EC_Group_Data::affine_neg
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_unique<EC_AffinePoint_Data_PC>
    - std::make_unique<EC_AffinePoint_Data_BN>
    - to_legacy_point
    - shared_from_this
    - auto::negate
    - EC_AffinePoint_Data_PC::checked_ref
    - point_negate
    - Not_Implemented
    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:471,1
    - Dst: shared_from_this
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:474,1
    - Dst: Botan::EC_Group_Data::base_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:474,1
    - Dst: std::make_unique<EC_Mul2Table_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:475,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp:477,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' h'
    argTypes:
    - EC_AffinePoint_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 469
    functionDepth: 0
    functionLinenumber: 469
    functionLinenumberEnd: 480
    functionName: Botan::EC_Group_Data::make_mul2_table
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_data.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<EC_Mul2Table_Data_BN>
    - Botan::EC_Group_Data::base_point
    - std::make_unique<EC_Mul2Table_Data_PC>
    - shared_from_this
    - Not_Implemented
    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:118,1
    - Dst: OID
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:126,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:183,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:190,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:190,1
    - Dst: BOTAN_DEPRECATED
      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:217,1
    - Dst: Botan::EC_Group::from_PEM
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:218,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:224,1
    - Dst: Botan::EC_Group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:224,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:293,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:478,1
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:479,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:482,1
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:484,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:499,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:505,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:507,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:508,1
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:509,1
    - Dst: Mul2Table::mul2_vartime
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:513,1
    - Dst: auto::to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:514,1
    - Dst: Botan::EC_AffinePoint::identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:516,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:526,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:530,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:531,1
    - Dst: auto::to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:532,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:543,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:547,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:548,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:548,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:558,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:563,1
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:564,1
    - Dst: auto::mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:565,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:571,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:572,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:588,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_ro
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:599,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_nu
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:601,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:617,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_ro
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:626,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_nu
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:628,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:635,1
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:636,1
    - Dst: auto::to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:637,1
    - Dst: Botan::Decoding_Error
      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: Botan::EC_AffinePoint::identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:647,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:654,1
    - Dst: get_a
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:654,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:654,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:659,1
    - Dst: get_a
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:659,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:664,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:665,1
    - Dst: auto::serialize
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:665,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:671,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:672,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:678,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:679,1
    - Dst: auto::square_self
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:680,1
    - Dst: auto::to_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:681,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:687,1
    - Dst: Botan::EC_Scalar::from_bigint
      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:689,1
    - Dst: to_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:690,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:696,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:698,1
    - Dst: Botan::EC_Scalar::from_bigint
      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:707,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:708,1
    - Dst: to_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:709,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:712,1
    - Dst: get_p_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:715,1
    - Dst: get_p_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:717,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 122
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 87
    functionDepth: 3
    functionLinenumber: 87
    functionLinenumberEnd: 742
    functionName: Botan::final
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 26
    functionsReached:
    - Botan::EC_AffinePoint::g_mul
    - Botan::EC_Scalar::from_bytes_mod_order
    - Mul2Table::mul2_vartime
    - Botan::EC_Group
    - get_p
    - BOTAN_DEPRECATED
    - Botan::BigInt
    - get_p_bytes
    - Botan::EC_Scalar::random
    - Botan::EC_Scalar::from_bigint
    - Botan::EC_AffinePoint::hash_to_curve_nu
    - to_bigint
    - Botan::EC_Group::from_OID
    - Botan::Decoding_Error
    - Botan::EC_AffinePoint::from_bigint_xy
    - EC_AffinePoint
    - auto::square_self
    - OID
    - get_a
    - auto::mul
    - Botan::EC_AffinePoint::identity
    - Botan::EC_Group::from_PEM
    - auto::to_bigint
    - auto::to_legacy_point
    - 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: 184
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 184
    functionName: Botan::EC_Group
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 20
    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:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 190
    functionName: Botan::EC_Group
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 20
    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:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pem
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 219
    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: 229
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 229
    functionName: Botan::EC_Group
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 20
    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: 234
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 234
    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: 270
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 270
    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: 385
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 385
    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: 378
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 378
    functionName: Botan::Mul2Table
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 2
    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: 462
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 462
    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:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bits
    - len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 480
    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:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - encoded_point
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 485
    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:507,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:508,1
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:509,1
    - Dst: Mul2Table::mul2_vartime
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:513,1
    - Dst: auto::to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:514,1
    - Dst: Botan::EC_AffinePoint::identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:516,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: 518
      start: 506
    functionDepth: 3
    functionLinenumber: 506
    functionLinenumberEnd: 518
    functionName: Botan::point_multiply
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached:
    - EC_AffinePoint
    - Mul2Table::mul2_vartime
    - auto::to_legacy_point
    - Botan::EC_Scalar::from_bigint
    - Botan::EC_AffinePoint::identity
    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:530,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:531,1
    - Dst: auto::to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' k_bn'
    - ' rng'
    argTypes:
    - BigInt
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 527
    functionDepth: 3
    functionLinenumber: 527
    functionLinenumberEnd: 533
    functionName: Botan::blinded_base_point_multiply
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar::from_bigint
    - Botan::EC_AffinePoint::g_mul
    - 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:547,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:548,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' k_bn'
    - ' rng'
    argTypes:
    - BigInt
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 544
    functionDepth: 3
    functionLinenumber: 544
    functionLinenumberEnd: 549
    functionName: Botan::blinded_base_point_multiply_x
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached:
    - Botan::BigInt
    - Botan::EC_Scalar::from_bigint
    - Botan::EC_AffinePoint::g_mul
    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:563,1
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:564,1
    - Dst: auto::mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' point'
    - ' k_bn'
    - ' rng'
    argTypes:
    - EC_Point
    - BigInt
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 559
    functionDepth: 3
    functionLinenumber: 559
    functionLinenumberEnd: 566
    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
    - EC_AffinePoint
    - auto::mul
    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:572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 571
    functionDepth: 3
    functionLinenumber: 571
    functionLinenumberEnd: 573
    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:599,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_nu
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:601,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: 603
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 603
    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_ro
    - Botan::EC_AffinePoint::hash_to_curve_nu
    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:626,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_nu
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:628,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: 630
      start: 618
    functionDepth: 1
    functionLinenumber: 618
    functionLinenumberEnd: 630
    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_ro
    - Botan::EC_AffinePoint::hash_to_curve_nu
    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:636,1
    - Dst: auto::to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:637,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:639,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 635
    functionDepth: 1
    functionLinenumber: 635
    functionLinenumberEnd: 641
    functionName: Botan::point
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached:
    - Botan::Decoding_Error
    - auto::to_legacy_point
    - Botan::EC_AffinePoint::from_bigint_xy
    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:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 648
    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:654,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 654
    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:659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 659
    functionDepth: 0
    functionLinenumber: 659
    functionLinenumberEnd: 659
    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:665,1
    - Dst: Botan::serialize
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 664
    functionDepth: 3
    functionLinenumber: 664
    functionLinenumberEnd: 666
    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:672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 671
    functionDepth: 3
    functionLinenumber: 671
    functionLinenumberEnd: 673
    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:679,1
    - Dst: auto::square_self
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:680,1
    - Dst: auto::to_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 678
    functionDepth: 3
    functionLinenumber: 678
    functionLinenumberEnd: 682
    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:688,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:689,1
    - Dst: to_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 687
    functionDepth: 3
    functionLinenumber: 687
    functionLinenumberEnd: 691
    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:698,1
    - Dst: Botan::EC_Scalar::from_bigint
      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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' x'
    - ' y'
    - ' z'
    argTypes:
    - BigInt
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 697
    functionDepth: 3
    functionLinenumber: 697
    functionLinenumberEnd: 702
    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:708,1
    - Dst: to_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 707
    functionDepth: 3
    functionLinenumber: 707
    functionLinenumberEnd: 710
    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:715,1
    - Dst: get_p_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:717,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - format
    argTypes:
    - EC_Point_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 712
    functionDepth: 0
    functionLinenumber: 712
    functionLinenumberEnd: 719
    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: 746
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 746
    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:118,1
    - Dst: OID
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:126,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:183,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:190,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:190,1
    - Dst: BOTAN_DEPRECATED
      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:217,1
    - Dst: Botan::EC_Group::from_PEM
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:218,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:224,1
    - Dst: Botan::EC_Group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:224,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:293,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:478,1
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:479,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:482,1
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:484,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:499,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:505,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:507,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:508,1
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:509,1
    - Dst: Mul2Table::mul2_vartime
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:513,1
    - Dst: auto::to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:514,1
    - Dst: Botan::EC_AffinePoint::identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:516,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:526,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:530,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:531,1
    - Dst: auto::to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:532,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:543,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:547,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:548,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:548,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:558,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:563,1
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:564,1
    - Dst: auto::mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:565,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:571,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:572,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:588,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_ro
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:599,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_nu
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:601,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:617,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_ro
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:626,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_nu
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:628,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:635,1
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:636,1
    - Dst: auto::to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:637,1
    - Dst: Botan::Decoding_Error
      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: Botan::EC_AffinePoint::identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:647,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:654,1
    - Dst: get_a
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:654,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:654,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:659,1
    - Dst: get_a
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:659,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:664,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:665,1
    - Dst: auto::serialize
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:665,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:671,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:672,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:678,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:679,1
    - Dst: auto::square_self
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:680,1
    - Dst: auto::to_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:681,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:687,1
    - Dst: Botan::EC_Scalar::from_bigint
      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:689,1
    - Dst: to_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:690,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:696,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:698,1
    - Dst: Botan::EC_Scalar::from_bigint
      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:707,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:708,1
    - Dst: to_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:709,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:712,1
    - Dst: get_p_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:715,1
    - Dst: get_p_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:717,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 122
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 87
    functionDepth: 3
    functionLinenumber: 87
    functionLinenumberEnd: 742
    functionName: Botan::final
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 26
    functionsReached:
    - Botan::EC_AffinePoint::g_mul
    - Botan::EC_Scalar::from_bytes_mod_order
    - Mul2Table::mul2_vartime
    - Botan::EC_Group
    - get_p
    - BOTAN_DEPRECATED
    - Botan::BigInt
    - get_p_bytes
    - Botan::EC_Scalar::random
    - Botan::EC_Scalar::from_bigint
    - Botan::EC_AffinePoint::hash_to_curve_nu
    - to_bigint
    - Botan::EC_Group::from_OID
    - Botan::Decoding_Error
    - Botan::EC_AffinePoint::from_bigint_xy
    - EC_AffinePoint
    - auto::square_self
    - OID
    - get_a
    - auto::mul
    - Botan::EC_AffinePoint::identity
    - Botan::EC_Group::from_PEM
    - auto::to_bigint
    - auto::to_legacy_point
    - 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: 184
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 184
    functionName: Botan::EC_Group
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 21
    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:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 190
    functionName: Botan::EC_Group
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 21
    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:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pem
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 219
    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: 229
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 229
    functionName: Botan::EC_Group
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 21
    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: 234
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 234
    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: 270
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 270
    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: 385
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 385
    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: 378
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 378
    functionName: Botan::Mul2Table
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 2
    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: 462
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 462
    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:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - bits
    - len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 480
    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:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - encoded_point
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 485
    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:507,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:508,1
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:509,1
    - Dst: Mul2Table::mul2_vartime
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:513,1
    - Dst: auto::to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:514,1
    - Dst: Botan::EC_AffinePoint::identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:516,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: 518
      start: 506
    functionDepth: 3
    functionLinenumber: 506
    functionLinenumberEnd: 518
    functionName: Botan::point_multiply
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached:
    - EC_AffinePoint
    - Mul2Table::mul2_vartime
    - auto::to_legacy_point
    - Botan::EC_Scalar::from_bigint
    - Botan::EC_AffinePoint::identity
    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:530,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:531,1
    - Dst: auto::to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' k_bn'
    - ' rng'
    argTypes:
    - BigInt
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 527
    functionDepth: 3
    functionLinenumber: 527
    functionLinenumberEnd: 533
    functionName: Botan::blinded_base_point_multiply
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar::from_bigint
    - Botan::EC_AffinePoint::g_mul
    - 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:547,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:548,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' k_bn'
    - ' rng'
    argTypes:
    - BigInt
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 544
    functionDepth: 3
    functionLinenumber: 544
    functionLinenumberEnd: 549
    functionName: Botan::blinded_base_point_multiply_x
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached:
    - Botan::BigInt
    - Botan::EC_Scalar::from_bigint
    - Botan::EC_AffinePoint::g_mul
    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:563,1
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:564,1
    - Dst: auto::mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' point'
    - ' k_bn'
    - ' rng'
    argTypes:
    - EC_Point
    - BigInt
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 559
    functionDepth: 3
    functionLinenumber: 559
    functionLinenumberEnd: 566
    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
    - EC_AffinePoint
    - auto::mul
    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:572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 571
    functionDepth: 3
    functionLinenumber: 571
    functionLinenumberEnd: 573
    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:599,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_nu
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:601,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: 603
      start: 589
    functionDepth: 1
    functionLinenumber: 589
    functionLinenumberEnd: 603
    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_ro
    - Botan::EC_AffinePoint::hash_to_curve_nu
    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:626,1
    - Dst: Botan::EC_AffinePoint::hash_to_curve_nu
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:628,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: 630
      start: 618
    functionDepth: 1
    functionLinenumber: 618
    functionLinenumberEnd: 630
    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_ro
    - Botan::EC_AffinePoint::hash_to_curve_nu
    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:636,1
    - Dst: auto::to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:637,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:639,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 635
    functionDepth: 1
    functionLinenumber: 635
    functionLinenumberEnd: 641
    functionName: Botan::point
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_group.h
    functionUses: 0
    functionsReached:
    - Botan::Decoding_Error
    - auto::to_legacy_point
    - Botan::EC_AffinePoint::from_bigint_xy
    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:647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 646
    functionDepth: 1
    functionLinenumber: 646
    functionLinenumberEnd: 648
    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:654,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:654,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 654
    functionDepth: 0
    functionLinenumber: 654
    functionLinenumberEnd: 654
    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:659,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 659
    functionDepth: 0
    functionLinenumber: 659
    functionLinenumberEnd: 659
    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:665,1
    - Dst: Botan::serialize
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:665,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 664
    functionDepth: 3
    functionLinenumber: 664
    functionLinenumberEnd: 666
    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:672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 671
    functionDepth: 3
    functionLinenumber: 671
    functionLinenumberEnd: 673
    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:679,1
    - Dst: auto::square_self
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:680,1
    - Dst: auto::to_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 678
    functionDepth: 3
    functionLinenumber: 678
    functionLinenumberEnd: 682
    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:688,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:689,1
    - Dst: to_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:690,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 691
      start: 687
    functionDepth: 3
    functionLinenumber: 687
    functionLinenumberEnd: 691
    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:698,1
    - Dst: Botan::EC_Scalar::from_bigint
      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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' x'
    - ' y'
    - ' z'
    argTypes:
    - BigInt
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 697
    functionDepth: 3
    functionLinenumber: 697
    functionLinenumberEnd: 702
    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:708,1
    - Dst: to_bigint
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:709,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 707
    functionDepth: 3
    functionLinenumber: 707
    functionLinenumberEnd: 710
    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:715,1
    - Dst: get_p_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_group.h:717,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - format
    argTypes:
    - EC_Point_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 712
    functionDepth: 0
    functionLinenumber: 712
    functionLinenumberEnd: 719
    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: 746
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 746
    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: 33
    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: 33
    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: 33
    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: 33
    functionsReached:
    - Decoding_Error
    - _data
    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: 33
    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:
    - BOTAN_ASSERT_NOMSG
    - _group
    - Botan::CT::is_equal
    - auto::data
    - is_identity
    - serialize_uncompressed
    - EC_AffinePoint::_group
    - auto::size
    - EC_AffinePoint::serialize_uncompressed
    - EC_AffinePoint::is_identity
    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: 25
    functionsReached:
    - get_g_y
    - get_g_x
    - Botan::EC_AffinePoint::from_bigint_xy
    - Internal_Error
    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:
    - last
    - get_p
    - subspan
    - get_p_bytes
    - Botan::EC_AffinePoint::deserialize
    - serialize_to
    - is_negative
    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: 12
    functionsReached:
    - Botan::EC_AffinePoint::EC_AffinePoint
    - std::move
    - _data
    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: 13
    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: 12
    functionsReached:
    - Botan::EC_AffinePoint::EC_AffinePoint
    - std::move
    - _data
    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: 13
    functionsReached:
    - as_span_of_bytes
    - Botan::EC_AffinePoint::hash_to_curve_nu
    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: 15
    functionsReached:
    - Botan::EC_AffinePoint::EC_AffinePoint
    - std::move
    - _data
    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: 23
    functionsReached:
    - inner
    - std::move
    - 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: 10
    functionsReached:
    - Botan::EC_AffinePoint::EC_AffinePoint
    - std::move
    - _inner
    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:
    - Botan::EC_AffinePoint::EC_AffinePoint
    - std::move
    - _inner
    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::EC_AffinePoint
    - std::move
    - Botan::EC_AffinePoint::_inner
    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
    - auto::size
    - Botan::EC_AffinePoint::serialize_uncompressed
    - Botan::EC_AffinePoint::serialize_compressed
    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_STATE_CHECK
    - Botan::EC_AffinePoint::is_identity
    - Botan::EC_AffinePoint::serialize_x_to
    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_STATE_CHECK
    - Botan::EC_AffinePoint::serialize_y_to
    - Botan::EC_AffinePoint::is_identity
    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_STATE_CHECK
    - Botan::EC_AffinePoint::is_identity
    - Botan::EC_AffinePoint::serialize_xy_to
    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_STATE_CHECK
    - Botan::EC_AffinePoint::is_identity
    - Botan::EC_AffinePoint::serialize_compressed_to
    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_STATE_CHECK
    - Botan::EC_AffinePoint::is_identity
    - Botan::EC_AffinePoint::serialize_uncompressed_to
    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:
    - Botan::EC_AffinePoint::EC_AffinePoint
    - std::move
    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: 43
    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: 43
    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: 43
    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: 43
    functionsReached:
    - Decoding_Error
    - _data
    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: 43
    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:
    - BOTAN_ASSERT_NOMSG
    - _group
    - Botan::CT::is_equal
    - auto::data
    - is_identity
    - serialize_uncompressed
    - EC_AffinePoint::_group
    - auto::size
    - EC_AffinePoint::serialize_uncompressed
    - EC_AffinePoint::is_identity
    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: 25
    functionsReached:
    - get_g_y
    - get_g_x
    - Botan::EC_AffinePoint::from_bigint_xy
    - Internal_Error
    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:
    - last
    - get_p
    - subspan
    - get_p_bytes
    - Botan::EC_AffinePoint::deserialize
    - serialize_to
    - is_negative
    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: 13
    functionsReached:
    - Botan::EC_AffinePoint::EC_AffinePoint
    - std::move
    - _data
    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: 14
    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: 13
    functionsReached:
    - Botan::EC_AffinePoint::EC_AffinePoint
    - std::move
    - _data
    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: 14
    functionsReached:
    - as_span_of_bytes
    - Botan::EC_AffinePoint::hash_to_curve_nu
    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: 16
    functionsReached:
    - Botan::EC_AffinePoint::EC_AffinePoint
    - std::move
    - _data
    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: 23
    functionsReached:
    - inner
    - std::move
    - 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: 10
    functionsReached:
    - Botan::EC_AffinePoint::EC_AffinePoint
    - std::move
    - _inner
    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:
    - Botan::EC_AffinePoint::EC_AffinePoint
    - std::move
    - _inner
    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::EC_AffinePoint
    - std::move
    - Botan::EC_AffinePoint::_inner
    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
    - auto::size
    - Botan::EC_AffinePoint::serialize_uncompressed
    - Botan::EC_AffinePoint::serialize_compressed
    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_STATE_CHECK
    - Botan::EC_AffinePoint::is_identity
    - Botan::EC_AffinePoint::serialize_x_to
    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_STATE_CHECK
    - Botan::EC_AffinePoint::serialize_y_to
    - Botan::EC_AffinePoint::is_identity
    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_STATE_CHECK
    - Botan::EC_AffinePoint::is_identity
    - Botan::EC_AffinePoint::serialize_xy_to
    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_STATE_CHECK
    - Botan::EC_AffinePoint::is_identity
    - Botan::EC_AffinePoint::serialize_compressed_to
    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_STATE_CHECK
    - Botan::EC_AffinePoint::is_identity
    - Botan::EC_AffinePoint::serialize_uncompressed_to
    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:
    - Botan::EC_AffinePoint::EC_AffinePoint
    - std::move
    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:14,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:16,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 19
    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: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    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: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::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:30,1
    - Dst: Botan::EC_Scalar_Data_PC::group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:30,1
    - Dst: Botan::EC_Scalar_Data_PC::value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.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::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::value
    - std::make_unique<EC_Scalar_Data_PC>
    - Botan::EC_Scalar_Data_PC::group
    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:34,1
    - Dst: scalar_is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: Botan::EC_Scalar_Data_PC::is_zero
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - scalar_is_zero
    - Botan::EC_Scalar_Data_PC::group
    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:39,1
    - Dst: scalar_equal
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:40,1
    - Dst: checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: Botan::EC_Scalar_Data_PC::is_eq
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - group
    - scalar_equal
    - checked_ref
    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: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_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: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::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:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    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:57,1
    - Dst: pcurve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    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:61,1
    - Dst: pcurve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.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::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:65,1
    - Dst: pcurve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.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: 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:69,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:69,1
    - Dst: checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: Botan::EC_Scalar_Data_PC::add
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - group
    - std::make_unique<EC_Scalar_Data_PC>
    - checked_ref
    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:73,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:73,1
    - Dst: checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: Botan::EC_Scalar_Data_PC::sub
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - group
    - std::make_unique<EC_Scalar_Data_PC>
    - checked_ref
    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:77,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:77,1
    - Dst: checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 78
    functionName: Botan::EC_Scalar_Data_PC::mul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - group
    - std::make_unique<EC_Scalar_Data_PC>
    - checked_ref
    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:81,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:81,1
    - Dst: order_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:81,1
    - Dst: pcurve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: Botan::EC_Scalar_Data_PC::serialize_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - order_bytes
    - std::span<uint8_t>::size
    - pcurve
    - BOTAN_ARG_CHECK
    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:87,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:87,1
    - Dst: pcurve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:88,1
    - Dst: affine_point_is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:90,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:91,1
    - Dst: Botan::EC_AffinePoint_Data_PC::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:91,1
    - Dst: serialize_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:92,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: 94
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 94
    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:
    - std::move
    - pcurve
    - resize
    - affine_point_is_identity
    - Botan::EC_AffinePoint_Data_PC::field_element_bytes
    - serialize_point
    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:97,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - EC_AffinePoint_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 102
    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:
    - dynamic_cast<const EC_AffinePoint_Data_PC*>
    - Invalid_State
    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: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::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: 110
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 110
    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:114,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:114,1
    - Dst: EC_Scalar_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:115,1
    - Dst: pcurve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:116,1
    - Dst: point_to_affine
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:117,1
    - Dst: Botan::EC_AffinePoint_Data_PC::mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:117,1
    - Dst: std::make_unique<EC_AffinePoint_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:118,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' scalar'
    - ' rng'
    argTypes:
    - EC_Scalar_Data
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 119
    functionName: Botan::EC_AffinePoint_Data_PC::mul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 1
    functionsReached:
    - std::move
    - pcurve
    - std::make_unique<EC_AffinePoint_Data_PC>
    - Botan::EC_AffinePoint_Data_PC::mul
    - BOTAN_ARG_CHECK
    - point_to_affine
    - group
    - 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:123,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:123,1
    - Dst: EC_Scalar_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:124,1
    - Dst: pcurve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' scalar'
    - ' rng'
    argTypes:
    - EC_Scalar_Data
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 126
    functionName: Botan::EC_AffinePoint_Data_PC::mul_x_only
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - group
    - BOTAN_ARG_CHECK
    - pcurve
    - EC_Scalar_Data_PC::checked_ref
    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:129,1
    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::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: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::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:137,1
    - Dst: Botan::EC_AffinePoint_Data_PC::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:137,1
    - Dst: Botan::EC_AffinePoint_Data_PC::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:138,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:139,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:139,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:140,1
    - Dst: subspan
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 141
    functionName: Botan::EC_AffinePoint_Data_PC::serialize_x_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - copy_mem
    - subspan
    - BOTAN_ARG_CHECK
    - Botan::EC_AffinePoint_Data_PC::field_element_bytes
    - BOTAN_STATE_CHECK
    - Botan::EC_AffinePoint_Data_PC::is_identity
    - std::span<uint8_t>::size
    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:144,1
    - Dst: Botan::EC_AffinePoint_Data_PC::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:144,1
    - Dst: Botan::EC_AffinePoint_Data_PC::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:145,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:146,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:146,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:147,1
    - Dst: subspan
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 148
    functionName: Botan::EC_AffinePoint_Data_PC::serialize_y_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - copy_mem
    - subspan
    - BOTAN_ARG_CHECK
    - Botan::EC_AffinePoint_Data_PC::field_element_bytes
    - BOTAN_STATE_CHECK
    - Botan::EC_AffinePoint_Data_PC::is_identity
    - std::span<uint8_t>::size
    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:151,1
    - Dst: Botan::EC_AffinePoint_Data_PC::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:151,1
    - Dst: Botan::EC_AffinePoint_Data_PC::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:152,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:153,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:153,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:154,1
    - Dst: last
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 155
    functionName: Botan::EC_AffinePoint_Data_PC::serialize_xy_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - last
    - copy_mem
    - BOTAN_ARG_CHECK
    - Botan::EC_AffinePoint_Data_PC::field_element_bytes
    - BOTAN_STATE_CHECK
    - Botan::EC_AffinePoint_Data_PC::is_identity
    - std::span<uint8_t>::size
    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:158,1
    - Dst: Botan::EC_AffinePoint_Data_PC::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:158,1
    - Dst: Botan::EC_AffinePoint_Data_PC::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:159,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:160,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:160,1
    - Dst: back
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:161,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:164,1
    - Dst: Botan::EC_AffinePoint_Data_PC::serialize_x_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:165,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 166
    functionName: Botan::EC_AffinePoint_Data_PC::serialize_compressed_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - BufferStuffer::append
    - Botan::EC_AffinePoint_Data_PC::serialize_x_to
    - BOTAN_ARG_CHECK
    - Botan::EC_AffinePoint_Data_PC::field_element_bytes
    - BufferStuffer::next
    - BOTAN_STATE_CHECK
    - Botan::EC_AffinePoint_Data_PC::is_identity
    - std::span<uint8_t>::size
    - back
    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:169,1
    - Dst: Botan::EC_AffinePoint_Data_PC::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:169,1
    - Dst: Botan::EC_AffinePoint_Data_PC::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:170,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:171,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:171,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 173
    functionName: Botan::EC_AffinePoint_Data_PC::serialize_uncompressed_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - copy_mem
    - BOTAN_ARG_CHECK
    - Botan::EC_AffinePoint_Data_PC::field_element_bytes
    - BOTAN_STATE_CHECK
    - Botan::EC_AffinePoint_Data_PC::is_identity
    - std::span<uint8_t>::size
    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:177,1
    - Dst: EC_Point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:178,1
    - Dst: curve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:178,1
    - Dst: Botan::EC_AffinePoint_Data_PC::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:180,1
    - Dst: EC_Point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:181,1
    - Dst: curve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:181,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:182,1
    - Dst: subspan
      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: last
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 185
    functionName: Botan::EC_AffinePoint_Data_PC::to_legacy_point
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - last
    - Botan::EC_AffinePoint_Data_PC::is_identity
    - subspan
    - curve
    - Botan::EC_AffinePoint_Data_PC::field_element_bytes
    - 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:188,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:189,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:189,1
    - Dst: EC_AffinePoint_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:191,1
    - Dst: pcurve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:193,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' q'
    argTypes:
    - EC_AffinePoint_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 194
    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:
    - pcurve
    - BOTAN_ARG_CHECK
    - value
    - group
    - EC_AffinePoint_Data_PC::checked_ref
    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:198,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:198,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:198,1
    - Dst: EC_Scalar_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:200,1
    - Dst: EC_Scalar_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:201,1
    - Dst: pcurve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:203,1
    - Dst: Botan::EC_Mul2Table_Data_PC::mul2_vartime
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:205,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:205,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:205,1
    - Dst: std::make_unique<EC_AffinePoint_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:206,1
    - Dst: point_to_affine
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' xd'
    - ' yd'
    argTypes:
    - EC_Scalar_Data
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 210
    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
    - pcurve
    - std::make_unique<EC_AffinePoint_Data_PC>
    - BOTAN_ARG_CHECK
    - point_to_affine
    - value
    - group
    - EC_Scalar_Data_PC::checked_ref
    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:215,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:215,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:215,1
    - Dst: EC_Scalar_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:217,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: pcurve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:221,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:221,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:221,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:221,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: 222
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 222
    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:
    - pcurve
    - BOTAN_ARG_CHECK
    - value
    - group
    - 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:14,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:16,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 19
    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: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    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: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::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:30,1
    - Dst: Botan::EC_Scalar_Data_PC::group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:30,1
    - Dst: Botan::EC_Scalar_Data_PC::value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.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::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::value
    - std::make_unique<EC_Scalar_Data_PC>
    - Botan::EC_Scalar_Data_PC::group
    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:34,1
    - Dst: scalar_is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: Botan::EC_Scalar_Data_PC::is_zero
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - scalar_is_zero
    - Botan::EC_Scalar_Data_PC::group
    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:39,1
    - Dst: scalar_equal
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:40,1
    - Dst: checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: Botan::EC_Scalar_Data_PC::is_eq
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - group
    - scalar_equal
    - checked_ref
    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: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_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: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::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:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 54
    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:57,1
    - Dst: pcurve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    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:61,1
    - Dst: pcurve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.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::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:65,1
    - Dst: pcurve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.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: 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:69,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:69,1
    - Dst: checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: Botan::EC_Scalar_Data_PC::add
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - group
    - std::make_unique<EC_Scalar_Data_PC>
    - checked_ref
    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:73,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:73,1
    - Dst: checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: Botan::EC_Scalar_Data_PC::sub
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - group
    - std::make_unique<EC_Scalar_Data_PC>
    - checked_ref
    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:77,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:77,1
    - Dst: checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 78
    functionName: Botan::EC_Scalar_Data_PC::mul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - group
    - std::make_unique<EC_Scalar_Data_PC>
    - checked_ref
    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:81,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:81,1
    - Dst: order_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:81,1
    - Dst: pcurve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: Botan::EC_Scalar_Data_PC::serialize_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - order_bytes
    - std::span<uint8_t>::size
    - pcurve
    - BOTAN_ARG_CHECK
    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:87,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:87,1
    - Dst: pcurve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:88,1
    - Dst: affine_point_is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:90,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:91,1
    - Dst: Botan::EC_AffinePoint_Data_PC::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:91,1
    - Dst: serialize_point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:92,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: 94
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 94
    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:
    - std::move
    - pcurve
    - resize
    - affine_point_is_identity
    - Botan::EC_AffinePoint_Data_PC::field_element_bytes
    - serialize_point
    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:97,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:99,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - EC_AffinePoint_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 102
    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:
    - dynamic_cast<const EC_AffinePoint_Data_PC*>
    - Invalid_State
    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: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::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: 110
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 110
    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:114,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:114,1
    - Dst: EC_Scalar_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:115,1
    - Dst: pcurve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:116,1
    - Dst: point_to_affine
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:117,1
    - Dst: Botan::EC_AffinePoint_Data_PC::mul
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:117,1
    - Dst: std::make_unique<EC_AffinePoint_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:118,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' scalar'
    - ' rng'
    argTypes:
    - EC_Scalar_Data
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 119
    functionName: Botan::EC_AffinePoint_Data_PC::mul
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 2
    functionsReached:
    - std::move
    - pcurve
    - std::make_unique<EC_AffinePoint_Data_PC>
    - Botan::EC_AffinePoint_Data_PC::mul
    - BOTAN_ARG_CHECK
    - point_to_affine
    - group
    - 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:123,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:123,1
    - Dst: EC_Scalar_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:124,1
    - Dst: pcurve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' scalar'
    - ' rng'
    argTypes:
    - EC_Scalar_Data
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 126
    functionName: Botan::EC_AffinePoint_Data_PC::mul_x_only
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - group
    - BOTAN_ARG_CHECK
    - pcurve
    - EC_Scalar_Data_PC::checked_ref
    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:129,1
    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::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: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::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:137,1
    - Dst: Botan::EC_AffinePoint_Data_PC::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:137,1
    - Dst: Botan::EC_AffinePoint_Data_PC::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:138,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:139,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:139,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:140,1
    - Dst: subspan
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 141
    functionName: Botan::EC_AffinePoint_Data_PC::serialize_x_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 1
    functionsReached:
    - copy_mem
    - subspan
    - BOTAN_ARG_CHECK
    - Botan::EC_AffinePoint_Data_PC::field_element_bytes
    - BOTAN_STATE_CHECK
    - Botan::EC_AffinePoint_Data_PC::is_identity
    - std::span<uint8_t>::size
    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:144,1
    - Dst: Botan::EC_AffinePoint_Data_PC::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:144,1
    - Dst: Botan::EC_AffinePoint_Data_PC::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:145,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:146,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:146,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:147,1
    - Dst: subspan
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 148
    functionName: Botan::EC_AffinePoint_Data_PC::serialize_y_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - copy_mem
    - subspan
    - BOTAN_ARG_CHECK
    - Botan::EC_AffinePoint_Data_PC::field_element_bytes
    - BOTAN_STATE_CHECK
    - Botan::EC_AffinePoint_Data_PC::is_identity
    - std::span<uint8_t>::size
    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:151,1
    - Dst: Botan::EC_AffinePoint_Data_PC::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:151,1
    - Dst: Botan::EC_AffinePoint_Data_PC::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:152,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:153,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:153,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:154,1
    - Dst: last
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 155
    functionName: Botan::EC_AffinePoint_Data_PC::serialize_xy_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - last
    - copy_mem
    - BOTAN_ARG_CHECK
    - Botan::EC_AffinePoint_Data_PC::field_element_bytes
    - BOTAN_STATE_CHECK
    - Botan::EC_AffinePoint_Data_PC::is_identity
    - std::span<uint8_t>::size
    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:158,1
    - Dst: Botan::EC_AffinePoint_Data_PC::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:158,1
    - Dst: Botan::EC_AffinePoint_Data_PC::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:159,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:160,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:160,1
    - Dst: back
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:161,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:164,1
    - Dst: Botan::EC_AffinePoint_Data_PC::serialize_x_to
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:165,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 166
    functionName: Botan::EC_AffinePoint_Data_PC::serialize_compressed_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - BufferStuffer::append
    - Botan::EC_AffinePoint_Data_PC::serialize_x_to
    - BOTAN_ARG_CHECK
    - Botan::EC_AffinePoint_Data_PC::field_element_bytes
    - BufferStuffer::next
    - BOTAN_STATE_CHECK
    - Botan::EC_AffinePoint_Data_PC::is_identity
    - std::span<uint8_t>::size
    - back
    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:169,1
    - Dst: Botan::EC_AffinePoint_Data_PC::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:169,1
    - Dst: Botan::EC_AffinePoint_Data_PC::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:170,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:171,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:171,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 173
    functionName: Botan::EC_AffinePoint_Data_PC::serialize_uncompressed_to
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - copy_mem
    - BOTAN_ARG_CHECK
    - Botan::EC_AffinePoint_Data_PC::field_element_bytes
    - BOTAN_STATE_CHECK
    - Botan::EC_AffinePoint_Data_PC::is_identity
    - std::span<uint8_t>::size
    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:177,1
    - Dst: EC_Point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:178,1
    - Dst: curve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:178,1
    - Dst: Botan::EC_AffinePoint_Data_PC::field_element_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:180,1
    - Dst: EC_Point
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:181,1
    - Dst: curve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:181,1
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:182,1
    - Dst: subspan
      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: last
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:183,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 185
    functionName: Botan::EC_AffinePoint_Data_PC::to_legacy_point
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp
    functionUses: 0
    functionsReached:
    - last
    - Botan::EC_AffinePoint_Data_PC::is_identity
    - subspan
    - curve
    - Botan::EC_AffinePoint_Data_PC::field_element_bytes
    - 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:188,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:189,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:189,1
    - Dst: EC_AffinePoint_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:191,1
    - Dst: pcurve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:193,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' q'
    argTypes:
    - EC_AffinePoint_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 194
    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:
    - pcurve
    - BOTAN_ARG_CHECK
    - value
    - group
    - EC_AffinePoint_Data_PC::checked_ref
    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:198,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:198,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:198,1
    - Dst: EC_Scalar_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:200,1
    - Dst: EC_Scalar_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:201,1
    - Dst: pcurve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:203,1
    - Dst: Botan::EC_Mul2Table_Data_PC::mul2_vartime
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:205,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:205,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:205,1
    - Dst: std::make_unique<EC_AffinePoint_Data_PC>
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:206,1
    - Dst: point_to_affine
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' xd'
    - ' yd'
    argTypes:
    - EC_Scalar_Data
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 210
    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
    - pcurve
    - std::make_unique<EC_AffinePoint_Data_PC>
    - BOTAN_ARG_CHECK
    - point_to_affine
    - value
    - group
    - EC_Scalar_Data_PC::checked_ref
    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:215,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:215,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:215,1
    - Dst: EC_Scalar_Data_PC::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:217,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: pcurve
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:221,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:221,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:221,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/ec_inner_pc.cpp:221,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: 222
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 222
    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:
    - pcurve
    - BOTAN_ARG_CHECK
    - value
    - group
    - 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::EC_AffinePoint::g_mul
    - EC_AffinePoint
    - Botan::serialize_xy_to
    - Botan::mul
    - Botan::serialize_y_to
    - Botan::inner
    - Botan::serialize_x_to
    - Botan::field_element_bytes
    - Botan::serialize_uncompressed_to
    - BOTAN_DEPRECATED
    - Botan::mul_x_only
    - Botan::serialize_compressed_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::serialize_xy_to
    - Botan::field_element_bytes
    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::field_element_bytes
    - Botan::serialize_compressed_to
    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::EC_AffinePoint::g_mul
    - EC_AffinePoint
    - Botan::serialize_xy_to
    - Botan::mul
    - Botan::serialize_y_to
    - Botan::inner
    - Botan::serialize_x_to
    - Botan::field_element_bytes
    - Botan::serialize_uncompressed_to
    - BOTAN_DEPRECATED
    - Botan::mul_x_only
    - Botan::serialize_compressed_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::serialize_xy_to
    - Botan::field_element_bytes
    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::field_element_bytes
    - Botan::serialize_compressed_to
    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: 21
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 21
    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:24,1
    - Dst: Botan::blinding_size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:25,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:25,1
    - Dst: BigInt::set_bit
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:26,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::retrieve_one
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' group_order'
    - ' rng'
    argTypes:
    - BigInt
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 23
    functionDepth: 3
    functionLinenumber: 23
    functionLinenumberEnd: 31
    functionName: Botan::blinding_mask
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp
    functionUses: 0
    functionsReached:
    - BigInt::set_bit
    - Botan_Tests::RFC8448_Session_Manager::retrieve_one
    - Botan::is_seeded
    - Botan::blinding_size
    - bits
    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: 21
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 21
    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:24,1
    - Dst: Botan::blinding_size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:25,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:25,1
    - Dst: BigInt::set_bit
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:26,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::retrieve_one
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' group_order'
    - ' rng'
    argTypes:
    - BigInt
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 23
    functionDepth: 3
    functionLinenumber: 23
    functionLinenumberEnd: 31
    functionName: Botan::blinding_mask
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp
    functionUses: 0
    functionsReached:
    - BigInt::set_bit
    - Botan_Tests::RFC8448_Session_Manager::retrieve_one
    - Botan::is_seeded
    - Botan::blinding_size
    - bits
    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:37,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: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    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:42,1
    - Dst: modulus_bits
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:45,1
    - Dst: round_up
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:47,1
    - Dst: blinding_size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:47,1
    - Dst: EC_Point::mult2
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:57,1
    - Dst: EC_Point::mult2
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:59,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:62,1
    - Dst: plus
      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:65,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: EC_Point::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:69,1
    - Dst: EC_Point::mult2
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:70,1
    - Dst: Botan::EC_Point::force_all_affine
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:73,1
    - Dst: get_word_vector
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:73,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:75,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:75,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:77,1
    - Dst: get_x
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:79,1
    - Dst: get_y
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 2
    argNames:
    - ' base'
    - ' mod_order'
    argTypes:
    - EC_Point
    - Barrett_Reduction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 84
    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:
    - plus
    - std::move
    - resize
    - EC_Point::mult2
    - data
    - get_curve
    - get_word_vector
    - EC_Point::swap
    - modulus_bits
    - Botan::EC_Point::force_all_affine
    - get_x
    - get_y
    - std::vector::size
    - round_up
    - blinding_size
    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:90,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:91,1
    - Dst: reduce
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:95,1
    - Dst: is_seeded
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:97,1
    - Dst: blinding_mask
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:99,1
    - Dst: BigInt::bits
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:108,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:108,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:111,1
    - Dst: BigInt::bits
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:111,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:111,1
    - Dst: round_up
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:114,1
    - Dst: BigInt::bits
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:114,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:118,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:118,1
    - Dst: zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:120,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:122,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:123,1
    - Dst: BigInt::get_substring
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:133,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:135,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: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:144,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: EC_Point::add_affine
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:155,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:155,1
    - Dst: is_seeded
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:157,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:163,1
    - Dst: EC_Point::randomize_repr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:164,1
    - Dst: get_word_vector
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:164,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:168,1
    - Dst: EC_Point::on_the_curve
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:168,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: 171
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 171
    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:
    - resize
    - is_seeded
    - BOTAN_DEBUG_ASSERT
    - is_negative
    - EC_Point::on_the_curve
    - std::vector::data
    - EC_Point::add_affine
    - auto::if_set_return
    - BigInt::bits
    - get_word_vector
    - Invalid_Argument
    - reduce
    - blinding_mask
    - bits
    - BOTAN_ASSERT
    - BigInt::get_substring
    - zero
    - EC_Point::randomize_repr
    - size
    - Botan::ct_is_equal
    - round_up
    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:176,1
    - Dst: get_p_words
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:176,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:177,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:178,1
    - Dst: auto::randomize_repr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:182,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:184,1
    - Dst: auto::zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:185,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:188,1
    - Dst: double_of
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:189,1
    - Dst: plus
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:190,1
    - Dst: is_seeded
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:194,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:196,1
    - Dst: randomize_repr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:197,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:201,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:201,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:203,1
    - Dst: get_x
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:205,1
    - Dst: get_y
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:206,1
    - Dst: get_z
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:207,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: 210
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 210
    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
    - plus
    - resize
    - data
    - static_cast<size_t>
    - get_p_words
    - is_seeded
    - size
    - randomize_repr
    - get_curve
    - auto::randomize_repr
    - auto::zero
    - get_z
    - get_x
    - get_y
    - 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:216,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:217,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:219,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:220,1
    - Dst: blinding_mask
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:224,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:227,1
    - Dst: round_up
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:229,1
    - Dst: BigInt::bits
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:229,1
    - Dst: BigInt::get_substring
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:236,1
    - Dst: clear_mem
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:238,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:238,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:238,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:240,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:243,1
    - Dst: EC_Point::add
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:247,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:247,1
    - Dst: EC_Point::randomize_repr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:254,1
    - Dst: get_word_vector
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:254,1
    - Dst: EC_Point::mult2i
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:258,1
    - Dst: BigInt::get_substring
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:260,1
    - Dst: clear_mem
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:262,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:262,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:262,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:264,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:267,1
    - Dst: EC_Point::add
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:271,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:271,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:276,1
    - Dst: EC_Point::on_the_curve
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:276,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: 279
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 279
    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:
    - BOTAN_ASSERT_NOMSG
    - resize
    - static_cast<size_t>
    - EC_Point::add
    - is_negative
    - EC_Point::on_the_curve
    - clear_mem
    - round_up
    - auto::if_set_return
    - BigInt::bits
    - get_word_vector
    - Invalid_Argument
    - blinding_mask
    - BigInt::get_substring
    - EC_Point::randomize_repr
    - size
    - secure_vector::size
    - Botan::ct_is_equal
    - secure_vector::data
    - 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:282,1
    - Dst: on_the_curve
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:282,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:283,1
    - Dst: zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:283,1
    - Dst: EC_Point::mult2
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:290,1
    - Dst: EC_Point::plus
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:292,1
    - Dst: EC_Point::mult2
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:295,1
    - Dst: EC_Point::plus
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:297,1
    - Dst: reserve
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:299,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:301,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:305,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:306,1
    - Dst: plus
      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:310,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:311,1
    - Dst: EC_Point::plus
      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:315,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:316,1
    - Dst: EC_Point::plus
      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: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:322,1
    - Dst: Botan::EC_Point::force_all_affine
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:328,1
    - Dst: get_word_vector
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:328,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - EC_Point
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 332
    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:
    - plus
    - EC_Point::plus
    - EC_Point::mult2
    - reserve
    - is_zero
    - get_word_vector
    - push_back
    - Botan::EC_Point::force_all_affine
    - zero
    - on_the_curve
    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:335,1
    - Dst: round_up
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:341,1
    - Dst: max
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:341,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:341,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:341,1
    - Dst: zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:343,1
    - Dst: EC_Point::mult2i
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:347,1
    - Dst: get_substring
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:350,1
    - Dst: get_substring
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:351,1
    - Dst: EC_Point::add_affine
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:358,1
    - Dst: EC_Point::add
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:360,1
    - Dst: is_negative
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:365,1
    - Dst: is_negative
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:365,1
    - Dst: EC_Point::negate
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:366,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - ' z1'
    - ' z2'
    argTypes:
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 334
    functionDepth: 2
    functionLinenumber: 334
    functionLinenumberEnd: 370
    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:
    - get_substring
    - EC_Point::negate
    - size
    - max
    - EC_Point::add
    - EC_Point::mult2i
    - is_negative
    - EC_Point::add_affine
    - bits
    - round_up
    - zero
    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: 21
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 21
    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:24,1
    - Dst: Botan::blinding_size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:25,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:25,1
    - Dst: BigInt::set_bit
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:26,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::retrieve_one
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' group_order'
    - ' rng'
    argTypes:
    - BigInt
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 23
    functionDepth: 3
    functionLinenumber: 23
    functionLinenumberEnd: 31
    functionName: Botan::blinding_mask
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp
    functionUses: 0
    functionsReached:
    - BigInt::set_bit
    - Botan_Tests::RFC8448_Session_Manager::retrieve_one
    - Botan::is_seeded
    - Botan::blinding_size
    - bits
    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: 21
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 21
    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:24,1
    - Dst: Botan::blinding_size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:25,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:25,1
    - Dst: BigInt::set_bit
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:26,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::retrieve_one
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' group_order'
    - ' rng'
    argTypes:
    - BigInt
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 23
    functionDepth: 3
    functionLinenumber: 23
    functionLinenumberEnd: 31
    functionName: Botan::blinding_mask
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp
    functionUses: 0
    functionsReached:
    - BigInt::set_bit
    - Botan_Tests::RFC8448_Session_Manager::retrieve_one
    - Botan::is_seeded
    - Botan::blinding_size
    - bits
    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:37,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: 38
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 38
    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:42,1
    - Dst: modulus_bits
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:45,1
    - Dst: round_up
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:47,1
    - Dst: blinding_size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:47,1
    - Dst: EC_Point::mult2
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:57,1
    - Dst: EC_Point::mult2
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:59,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:62,1
    - Dst: plus
      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:65,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: EC_Point::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:69,1
    - Dst: EC_Point::mult2
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:70,1
    - Dst: Botan::EC_Point::force_all_affine
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:73,1
    - Dst: get_word_vector
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:73,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:75,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:75,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:77,1
    - Dst: get_x
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:79,1
    - Dst: get_y
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 2
    argNames:
    - ' base'
    - ' mod_order'
    argTypes:
    - EC_Point
    - Barrett_Reduction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 84
    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:
    - plus
    - std::move
    - resize
    - EC_Point::mult2
    - data
    - get_curve
    - get_word_vector
    - EC_Point::swap
    - modulus_bits
    - Botan::EC_Point::force_all_affine
    - get_x
    - get_y
    - std::vector::size
    - round_up
    - blinding_size
    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:90,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:91,1
    - Dst: reduce
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:95,1
    - Dst: is_seeded
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:97,1
    - Dst: blinding_mask
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:99,1
    - Dst: BigInt::bits
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:108,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:108,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:111,1
    - Dst: BigInt::bits
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:111,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:111,1
    - Dst: round_up
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:114,1
    - Dst: BigInt::bits
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:114,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:118,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:118,1
    - Dst: zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:120,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:122,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:123,1
    - Dst: BigInt::get_substring
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:133,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:135,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: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:144,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: EC_Point::add_affine
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:155,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:155,1
    - Dst: is_seeded
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:157,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:163,1
    - Dst: EC_Point::randomize_repr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:164,1
    - Dst: get_word_vector
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:164,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:168,1
    - Dst: EC_Point::on_the_curve
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:168,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: 171
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 171
    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:
    - resize
    - is_seeded
    - BOTAN_DEBUG_ASSERT
    - is_negative
    - EC_Point::on_the_curve
    - std::vector::data
    - EC_Point::add_affine
    - auto::if_set_return
    - BigInt::bits
    - get_word_vector
    - Invalid_Argument
    - reduce
    - blinding_mask
    - bits
    - BOTAN_ASSERT
    - BigInt::get_substring
    - zero
    - EC_Point::randomize_repr
    - size
    - Botan::ct_is_equal
    - round_up
    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:176,1
    - Dst: get_p_words
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:176,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:177,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:178,1
    - Dst: auto::randomize_repr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:182,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:184,1
    - Dst: auto::zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:185,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:188,1
    - Dst: double_of
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:189,1
    - Dst: plus
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:190,1
    - Dst: is_seeded
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:194,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:196,1
    - Dst: randomize_repr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:197,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:201,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:201,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:203,1
    - Dst: get_x
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:205,1
    - Dst: get_y
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:206,1
    - Dst: get_z
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:207,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: 210
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 210
    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
    - plus
    - resize
    - data
    - static_cast<size_t>
    - get_p_words
    - is_seeded
    - size
    - randomize_repr
    - get_curve
    - auto::randomize_repr
    - auto::zero
    - get_z
    - get_x
    - get_y
    - 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:216,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:217,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:219,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:220,1
    - Dst: blinding_mask
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:224,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:227,1
    - Dst: round_up
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:229,1
    - Dst: BigInt::bits
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:229,1
    - Dst: BigInt::get_substring
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:236,1
    - Dst: clear_mem
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:238,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:238,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:238,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:240,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:243,1
    - Dst: EC_Point::add
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:247,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:247,1
    - Dst: EC_Point::randomize_repr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:254,1
    - Dst: get_word_vector
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:254,1
    - Dst: EC_Point::mult2i
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:258,1
    - Dst: BigInt::get_substring
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:260,1
    - Dst: clear_mem
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:262,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:262,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:262,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:264,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:267,1
    - Dst: EC_Point::add
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:271,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:271,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:276,1
    - Dst: EC_Point::on_the_curve
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:276,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: 279
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 279
    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:
    - BOTAN_ASSERT_NOMSG
    - resize
    - static_cast<size_t>
    - EC_Point::add
    - is_negative
    - EC_Point::on_the_curve
    - clear_mem
    - round_up
    - auto::if_set_return
    - BigInt::bits
    - get_word_vector
    - Invalid_Argument
    - blinding_mask
    - BigInt::get_substring
    - EC_Point::randomize_repr
    - size
    - secure_vector::size
    - Botan::ct_is_equal
    - secure_vector::data
    - 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:282,1
    - Dst: on_the_curve
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:282,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:283,1
    - Dst: zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:283,1
    - Dst: EC_Point::mult2
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:290,1
    - Dst: EC_Point::plus
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:292,1
    - Dst: EC_Point::mult2
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:295,1
    - Dst: EC_Point::plus
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:297,1
    - Dst: reserve
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:299,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:301,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:305,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:306,1
    - Dst: plus
      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:310,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:311,1
    - Dst: EC_Point::plus
      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:315,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:316,1
    - Dst: EC_Point::plus
      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: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:322,1
    - Dst: Botan::EC_Point::force_all_affine
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:328,1
    - Dst: get_word_vector
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:328,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - EC_Point
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 281
    functionDepth: 1
    functionLinenumber: 281
    functionLinenumberEnd: 332
    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:
    - plus
    - EC_Point::plus
    - EC_Point::mult2
    - reserve
    - is_zero
    - get_word_vector
    - push_back
    - Botan::EC_Point::force_all_affine
    - zero
    - on_the_curve
    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:335,1
    - Dst: round_up
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:341,1
    - Dst: max
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:341,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:341,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:341,1
    - Dst: zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:343,1
    - Dst: EC_Point::mult2i
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:347,1
    - Dst: get_substring
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:350,1
    - Dst: get_substring
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:351,1
    - Dst: EC_Point::add_affine
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:358,1
    - Dst: EC_Point::add
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:360,1
    - Dst: is_negative
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:365,1
    - Dst: is_negative
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:365,1
    - Dst: EC_Point::negate
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/point_mul.cpp:366,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - ' z1'
    - ' z2'
    argTypes:
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 334
    functionDepth: 2
    functionLinenumber: 334
    functionLinenumberEnd: 370
    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:
    - get_substring
    - EC_Point::negate
    - size
    - max
    - EC_Point::add
    - EC_Point::mult2i
    - is_negative
    - EC_Point::add_affine
    - bits
    - round_up
    - zero
    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:53,1
    - Dst: Botan::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:63,1
    - Dst: Botan::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:75,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:101,1
    - Dst: Botan::is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:135,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:136,1
    - Dst: Botan::is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:164,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:239,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:246,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:253,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:255,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:260,1
    - Dst: Botan::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:263,1
    - Dst: EC_Point::add
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:341,1
    - Dst: EC_Point::mult2
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:352,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:362,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 367
    functionName: Botan::final
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h
    functionUses: 26
    functionsReached:
    - Botan::is_zero
    - EC_Point::mult2
    - get_p
    - EC_Point::add
    - Botan::swap
    - BOTAN_DEPRECATED
    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: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    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: 58
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 58
    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:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    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:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 78
    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: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    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:135,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 139
    functionName: Botan::negate
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h
    functionUses: 0
    functionsReached:
    - Botan::is_zero
    - get_p
    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:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 164
    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: 239
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 239
    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: 246
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 246
    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: 253
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 253
    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: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:260,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: 261
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 261
    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:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - EC_Point
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 263
    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:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' other'
    - ' workspace'
    argTypes:
    - EC_Point
    - std::vector<BigInt>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 339
    functionDepth: 2
    functionLinenumber: 339
    functionLinenumberEnd: 343
    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:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' workspace'
    argTypes:
    - std::vector<BigInt>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 354
    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: 362
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 362
    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:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' lhs'
    argTypes:
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 384
    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: 389
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 389
    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: 394
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 394
    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:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' point'
    - ' scalar'
    argTypes:
    - EC_Point
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 398
    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:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' scalar'
    - ' point'
    argTypes:
    - BigInt
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 402
    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:53,1
    - Dst: Botan::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:63,1
    - Dst: Botan::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:75,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:101,1
    - Dst: Botan::is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:135,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:136,1
    - Dst: Botan::is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:164,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:239,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:246,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:253,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:255,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:260,1
    - Dst: Botan::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:263,1
    - Dst: EC_Point::add
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:341,1
    - Dst: EC_Point::mult2
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:352,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:362,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 367
    functionName: Botan::final
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h
    functionUses: 26
    functionsReached:
    - Botan::is_zero
    - EC_Point::mult2
    - get_p
    - EC_Point::add
    - Botan::swap
    - BOTAN_DEPRECATED
    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: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    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: 58
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 58
    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:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    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:75,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 78
    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: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    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:135,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 139
    functionName: Botan::negate
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.h
    functionUses: 0
    functionsReached:
    - Botan::is_zero
    - get_p
    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:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 164
    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: 239
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 239
    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: 246
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 246
    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: 253
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 253
    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: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:260,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: 261
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 261
    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:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - EC_Point
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 263
    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:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' other'
    - ' workspace'
    argTypes:
    - EC_Point
    - std::vector<BigInt>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 339
    functionDepth: 2
    functionLinenumber: 339
    functionLinenumberEnd: 343
    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:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' workspace'
    argTypes:
    - std::vector<BigInt>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 354
    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: 362
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 362
    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:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' lhs'
    argTypes:
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 384
    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: 389
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 389
    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: 394
      start: 391
    functionDepth: 0
    functionLinenumber: 391
    functionLinenumberEnd: 394
    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:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' point'
    - ' scalar'
    argTypes:
    - EC_Point
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 398
    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:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' scalar'
    - ' point'
    argTypes:
    - BigInt
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 402
    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:
    - Botan::p
    - monty
    - 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:
    - Botan::p
    - monty
    - 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:
    - p
    - std::move
    - to_rep
    - Invalid_Argument
    - group
    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:
    - p
    - fe_mul
    - fe_sqr
    - Botan::BigInt::random_integer
    - is_seeded
    - Botan::BigInt::from_s32
    - group
    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:
    - BOTAN_ASSERT_NOMSG
    - m_y::_data
    - m_y::size
    - get_p_words
    - min
    - Botan::EC_Point::add_affine
    - BOTAN_DEBUG_ASSERT
    - m_x::size
    - Botan::EC_Point::is_affine
    - m_x::_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:
    - p
    - Botan::CT::all_zeros
    - monty_ws_size
    - fe_mul
    - fe_sqr
    - resize_ws
    - is_zero
    - clear
    - get_word_vector
    - monty
    - Botan::EC_Point::swap
    - Botan::EC_Point::mult2
    - group
    - mod_sub
    - set_words
    - as_bool
    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:
    - m_y::_data
    - m_y::size
    - get_p_words
    - min
    - m_z::_data
    - m_z::size
    - BOTAN_ARG_CHECK
    - m_x::size
    - m_x::_data
    - Botan::EC_Point::add
    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:
    - p
    - Botan::CT::all_zeros
    - monty_ws_size
    - fe_mul
    - fe_sqr
    - resize_ws
    - is_zero
    - clear
    - get_word_vector
    - monty
    - Botan::EC_Point::mult2
    - group
    - mod_sub
    - set_words
    - as_bool
    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
    - is_zero
    - Botan::EC_Point::mult2
    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:
    - p
    - fe_sqr
    - resize_ws
    - a_is_zero
    - fe_smul<3>
    - fe_smul<4>
    - mod_sub
    - monty_a
    - mod_add
    - Botan::EC_Point::swap
    - group
    - a_is_minus_3
    - monty_ws_size
    - get_word_vector
    - Botan::EC_Point::EC_Point
    - fe_smul<2>
    - fe_smul<8>
    - fe_mul
    - is_zero
    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:
    - EC_Point
    - is_zero
    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:
    - get_bit
    - Botan::EC_Point::zero
    - BOTAN_DEBUG_ASSERT
    - Botan::EC_Point::on_the_curve
    - Botan::EC_Point::mult2
    - negate
    - is_negative
    - bits
    - Botan::EC_Point::add
    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:
    - fe_mul
    - monty_ws_size
    - m_curve::group
    - resize
    - std::span<EC_Point>::size
    - fe_sqr
    - Botan::EC_Point::force_affine
    - Invalid_State
    - is_zero
    - size
    - monty
    - invert_element
    - 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:
    - fe_mul
    - fe_sqr
    - Invalid_State
    - is_zero
    - monty
    - invert_element
    - group
    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:
    - group
    - monty
    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::EC_Point::get_affine_x
    - secure_vector::data
    - group
    - Botan::encode_1363
    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
    - secure_vector::data
    - group
    - Botan::encode_1363
    - 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: 0
    functionsReached:
    - p_bytes
    - Botan::EC_Point::get_affine_x
    - group
    - Botan::encode_1363
    - 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:
    - fe_mul
    - fe_sqr
    - from_rep_to_tmp
    - Invalid_State
    - is_zero
    - Botan::EC_Point::is_affine
    - invert_element
    - group
    - from_rep
    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:
    - fe_mul
    - fe_sqr
    - from_rep_to_tmp
    - Invalid_State
    - is_zero
    - Botan::EC_Point::is_affine
    - invert_element
    - group
    - from_rep
    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:
    - fe_mul
    - fe_sqr
    - monty_a
    - from_rep_to_tmp
    - monty_b
    - is_zero
    - group
    linkageType: ''
    returnType: bool
    signature: bool EC_Point::on_the_curve() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Point::is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:715,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:719,1
    - Dst: has_cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:724,1
    - Dst: mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:725,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:725,1
    - Dst: to_rep
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:745,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:748,1
    - Dst: Botan::EC_Point::get_z
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:748,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:749,1
    - Dst: Botan::EC_Point::get_x
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:760,1
    - Dst: order_is_less_than_p
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:764,1
    - Dst: order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:765,1
    - Dst: p
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:766,1
    - Dst: to_rep
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:767,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:768,1
    - Dst: Botan::EC_Point::get_x
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:770,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 714
    functionDepth: 2
    functionLinenumber: 714
    functionLinenumberEnd: 778
    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:
    - p
    - fe_mul
    - order
    - fe_sqr
    - to_rep
    - mod_order
    - order_is_less_than_p
    - Botan::EC_Point::get_affine_x
    - Botan::EC_Point::get_z
    - Botan::EC_Point::is_zero
    - Botan::EC_Point::get_x
    - has_cofactor
    - group
    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:782,1
    - Dst: Botan::EC_Point::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:783,1
    - Dst: Botan::EC_Point::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:784,1
    - Dst: Botan::EC_Point::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 781
    functionDepth: 1
    functionLinenumber: 781
    functionLinenumberEnd: 786
    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:794,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:795,1
    - Dst: get_affine_x
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:798,1
    - Dst: get_affine_x
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:798,1
    - Dst: get_affine_y
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:798,1
    - Dst: get_affine_y
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:798,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 788
    functionDepth: 1
    functionLinenumber: 788
    functionLinenumberEnd: 799
    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_y
    - is_zero
    - get_affine_x
    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:803,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:804,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:807,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:809,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:810,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:818,1
    - Dst: BigInt::serialize_to
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:819,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:819,1
    - Dst: BigInt::serialize_to
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:820,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:820,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:822,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:822,1
    - Dst: BigInt::get_bit
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:822,1
    - Dst: BigInt::serialize_to
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:823,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:823,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:825,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:825,1
    - Dst: BigInt::get_bit
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:825,1
    - Dst: BigInt::serialize_to
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:826,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:826,1
    - Dst: BigInt::serialize_to
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:827,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:827,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:829,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - format
    argTypes:
    - EC_Point_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 802
    functionDepth: 2
    functionLinenumber: 802
    functionLinenumberEnd: 833
    functionName: Botan::EC_Point::encode
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 16
    functionsReached:
    - BufferStuffer::append
    - BigInt::get_bit
    - is_zero
    - static_cast<uint8_t>
    - Botan::EC_Point::get_affine_x
    - BufferStuffer::next
    - Invalid_Argument
    - std::vector<uint8_t>
    - BigInt::serialize_to
    - group
    - Botan::EC_Point::get_affine_y
    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:840,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:843,1
    - Dst: BigInt::get_bit
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:846,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: 851
      start: 837
    functionDepth: 1
    functionLinenumber: 837
    functionLinenumberEnd: 851
    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:840,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:843,1
    - Dst: BigInt::get_bit
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:846,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: 851
      start: 837
    functionDepth: 1
    functionLinenumber: 837
    functionLinenumberEnd: 851
    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:856,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:856,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - ' curve'
    argTypes:
    - std::span<const uint8_t>
    - CurveGFp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 855
    functionDepth: 1
    functionLinenumber: 855
    functionLinenumberEnd: 857
    functionName: Botan::OS2ECP
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 3
    functionsReached:
    - Botan::OS2ECP
    - std::span<const uint8_t>::data
    - 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:862,1
    - Dst: Botan::OS2ECP
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:865,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:865,1
    - Dst: get_a
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:865,1
    - Dst: get_b
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:865,1
    - Dst: EC_Point::on_the_curve
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:869,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:870,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: 874
      start: 859
    functionDepth: 1
    functionLinenumber: 859
    functionLinenumberEnd: 874
    functionName: Botan::OS2ECP
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 4
    functionsReached:
    - Botan::OS2ECP
    - get_p
    - Botan::Decoding_Error
    - get_a
    - EC_Point::on_the_curve
    - get_b
    - 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:878,1
    - Dst: Botan::bytes
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:882,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:889,1
    - Dst: Botan::BigInt::decode
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:891,1
    - Dst: Botan::decompress_point
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:894,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:897,1
    - Dst: Botan::BigInt::decode
      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:901,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:904,1
    - Dst: Botan::BigInt::decode
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:907,1
    - Dst: Botan::BigInt::decode
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:908,1
    - Dst: Botan::decompress_point
      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:913,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:916,1
    - Dst: Botan::to_string
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:916,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:916,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:920,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:923,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: 924
      start: 876
    functionDepth: 1
    functionLinenumber: 876
    functionLinenumberEnd: 924
    functionName: Botan::OS2ECP
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 4
    functionsReached:
    - Botan::bytes
    - static_cast<int>
    - Botan::BigInt::decode
    - std::make_pair
    - Botan::to_string
    - Botan::decompress_point
    - Botan::Decoding_Error
    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:
    - Botan::p
    - monty
    - 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:
    - Botan::p
    - monty
    - 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:
    - p
    - std::move
    - to_rep
    - Invalid_Argument
    - group
    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:
    - p
    - fe_mul
    - fe_sqr
    - Botan::BigInt::random_integer
    - is_seeded
    - Botan::BigInt::from_s32
    - group
    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:
    - BOTAN_ASSERT_NOMSG
    - m_y::_data
    - m_y::size
    - get_p_words
    - min
    - Botan::EC_Point::add_affine
    - BOTAN_DEBUG_ASSERT
    - m_x::size
    - Botan::EC_Point::is_affine
    - m_x::_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:
    - p
    - Botan::CT::all_zeros
    - monty_ws_size
    - fe_mul
    - fe_sqr
    - resize_ws
    - is_zero
    - clear
    - get_word_vector
    - monty
    - Botan::EC_Point::swap
    - Botan::EC_Point::mult2
    - group
    - mod_sub
    - set_words
    - as_bool
    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:
    - m_y::_data
    - m_y::size
    - get_p_words
    - min
    - m_z::_data
    - m_z::size
    - BOTAN_ARG_CHECK
    - m_x::size
    - m_x::_data
    - Botan::EC_Point::add
    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:
    - p
    - Botan::CT::all_zeros
    - monty_ws_size
    - fe_mul
    - fe_sqr
    - resize_ws
    - is_zero
    - clear
    - get_word_vector
    - monty
    - Botan::EC_Point::mult2
    - group
    - mod_sub
    - set_words
    - as_bool
    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
    - is_zero
    - Botan::EC_Point::mult2
    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:
    - p
    - fe_sqr
    - resize_ws
    - a_is_zero
    - fe_smul<3>
    - fe_smul<4>
    - mod_sub
    - monty_a
    - mod_add
    - Botan::EC_Point::swap
    - group
    - a_is_minus_3
    - monty_ws_size
    - get_word_vector
    - Botan::EC_Point::EC_Point
    - fe_smul<2>
    - fe_smul<8>
    - fe_mul
    - is_zero
    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:
    - EC_Point
    - is_zero
    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:
    - get_bit
    - Botan::EC_Point::zero
    - BOTAN_DEBUG_ASSERT
    - Botan::EC_Point::on_the_curve
    - Botan::EC_Point::mult2
    - negate
    - is_negative
    - bits
    - Botan::EC_Point::add
    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:
    - fe_mul
    - monty_ws_size
    - m_curve::group
    - resize
    - std::span<EC_Point>::size
    - fe_sqr
    - Botan::EC_Point::force_affine
    - Invalid_State
    - is_zero
    - size
    - monty
    - invert_element
    - 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:
    - fe_mul
    - fe_sqr
    - Invalid_State
    - is_zero
    - monty
    - invert_element
    - group
    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:
    - group
    - monty
    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::EC_Point::get_affine_x
    - secure_vector::data
    - group
    - Botan::encode_1363
    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
    - secure_vector::data
    - group
    - Botan::encode_1363
    - 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: 0
    functionsReached:
    - p_bytes
    - Botan::EC_Point::get_affine_x
    - group
    - Botan::encode_1363
    - 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:
    - fe_mul
    - fe_sqr
    - from_rep_to_tmp
    - Invalid_State
    - is_zero
    - Botan::EC_Point::is_affine
    - invert_element
    - group
    - from_rep
    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:
    - fe_mul
    - fe_sqr
    - from_rep_to_tmp
    - Invalid_State
    - is_zero
    - Botan::EC_Point::is_affine
    - invert_element
    - group
    - from_rep
    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:
    - fe_mul
    - fe_sqr
    - monty_a
    - from_rep_to_tmp
    - monty_b
    - is_zero
    - group
    linkageType: ''
    returnType: bool
    signature: bool EC_Point::on_the_curve() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Point::is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:715,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:719,1
    - Dst: has_cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:724,1
    - Dst: mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:725,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:725,1
    - Dst: to_rep
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:745,1
    - Dst: fe_sqr
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:748,1
    - Dst: Botan::EC_Point::get_z
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:748,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:749,1
    - Dst: Botan::EC_Point::get_x
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:760,1
    - Dst: order_is_less_than_p
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:764,1
    - Dst: order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:765,1
    - Dst: p
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:766,1
    - Dst: to_rep
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:767,1
    - Dst: fe_mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:768,1
    - Dst: Botan::EC_Point::get_x
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:770,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 714
    functionDepth: 2
    functionLinenumber: 714
    functionLinenumberEnd: 778
    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:
    - p
    - fe_mul
    - order
    - fe_sqr
    - to_rep
    - mod_order
    - order_is_less_than_p
    - Botan::EC_Point::get_affine_x
    - Botan::EC_Point::get_z
    - Botan::EC_Point::is_zero
    - Botan::EC_Point::get_x
    - has_cofactor
    - group
    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:782,1
    - Dst: Botan::EC_Point::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:783,1
    - Dst: Botan::EC_Point::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:784,1
    - Dst: Botan::EC_Point::swap
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 781
    functionDepth: 1
    functionLinenumber: 781
    functionLinenumberEnd: 786
    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:794,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:795,1
    - Dst: get_affine_x
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:798,1
    - Dst: get_affine_x
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:798,1
    - Dst: get_affine_y
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:798,1
    - Dst: get_affine_y
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:798,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 788
    functionDepth: 1
    functionLinenumber: 788
    functionLinenumberEnd: 799
    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_y
    - is_zero
    - get_affine_x
    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:803,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:804,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:807,1
    - Dst: Botan::EC_Point::get_affine_x
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:809,1
    - Dst: Botan::EC_Point::get_affine_y
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:810,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:818,1
    - Dst: BigInt::serialize_to
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:819,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:819,1
    - Dst: BigInt::serialize_to
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:820,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:820,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:822,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:822,1
    - Dst: BigInt::get_bit
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:822,1
    - Dst: BigInt::serialize_to
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:823,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:823,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:825,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:825,1
    - Dst: BigInt::get_bit
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:825,1
    - Dst: BigInt::serialize_to
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:826,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:826,1
    - Dst: BigInt::serialize_to
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:827,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:827,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:829,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - format
    argTypes:
    - EC_Point_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 802
    functionDepth: 2
    functionLinenumber: 802
    functionLinenumberEnd: 833
    functionName: Botan::EC_Point::encode
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 16
    functionsReached:
    - BufferStuffer::append
    - BigInt::get_bit
    - is_zero
    - static_cast<uint8_t>
    - Botan::EC_Point::get_affine_x
    - BufferStuffer::next
    - Invalid_Argument
    - std::vector<uint8_t>
    - BigInt::serialize_to
    - group
    - Botan::EC_Point::get_affine_y
    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:840,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:843,1
    - Dst: BigInt::get_bit
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:846,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: 851
      start: 837
    functionDepth: 1
    functionLinenumber: 837
    functionLinenumberEnd: 851
    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:840,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:843,1
    - Dst: BigInt::get_bit
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:846,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: 851
      start: 837
    functionDepth: 1
    functionLinenumber: 837
    functionLinenumberEnd: 851
    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:856,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:856,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - ' curve'
    argTypes:
    - std::span<const uint8_t>
    - CurveGFp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 855
    functionDepth: 1
    functionLinenumber: 855
    functionLinenumberEnd: 857
    functionName: Botan::OS2ECP
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 5
    functionsReached:
    - Botan::OS2ECP
    - std::span<const uint8_t>::data
    - 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:862,1
    - Dst: Botan::OS2ECP
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:865,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:865,1
    - Dst: get_a
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:865,1
    - Dst: get_b
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:865,1
    - Dst: EC_Point::on_the_curve
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:869,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:870,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: 874
      start: 859
    functionDepth: 1
    functionLinenumber: 859
    functionLinenumberEnd: 874
    functionName: Botan::OS2ECP
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 6
    functionsReached:
    - Botan::OS2ECP
    - get_p
    - Botan::Decoding_Error
    - get_a
    - EC_Point::on_the_curve
    - get_b
    - 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:878,1
    - Dst: Botan::bytes
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:882,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:889,1
    - Dst: Botan::BigInt::decode
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:891,1
    - Dst: Botan::decompress_point
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:894,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:897,1
    - Dst: Botan::BigInt::decode
      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:901,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:904,1
    - Dst: Botan::BigInt::decode
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:907,1
    - Dst: Botan::BigInt::decode
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:908,1
    - Dst: Botan::decompress_point
      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:913,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:916,1
    - Dst: Botan::to_string
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:916,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:916,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:920,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp:923,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: 924
      start: 876
    functionDepth: 1
    functionLinenumber: 876
    functionLinenumberEnd: 924
    functionName: Botan::OS2ECP
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_point.cpp
    functionUses: 6
    functionsReached:
    - Botan::bytes
    - static_cast<int>
    - Botan::BigInt::decode
    - std::make_pair
    - Botan::to_string
    - Botan::decompress_point
    - Botan::Decoding_Error
    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:15,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.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_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:
    - Invalid_State
    - dynamic_cast<const EC_Scalar_Data_BN*>
    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: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    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: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_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:31,1
    - Dst: Botan::EC_Scalar_Data_BN::group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:31,1
    - Dst: Botan::EC_Scalar_Data_BN::value
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.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_BN::clone
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar_Data_BN::group
    - Botan::EC_Scalar_Data_BN::value
    - std::make_unique<EC_Scalar_Data_BN>
    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:35,1
    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::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:39,1
    - Dst: checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    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:
    - value
    - checked_ref
    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:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    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:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 51
    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: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::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:58,1
    - Dst: mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:58,1
    - Dst: order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.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_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>
    - mod_order
    - 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:62,1
    - Dst: inverse_mod_public_prime
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:62,1
    - Dst: order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.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_BN::invert
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - inverse_mod_public_prime
    - std::make_unique<EC_Scalar_Data_BN>
    - order
    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:66,1
    - Dst: inverse_mod_public_prime
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:66,1
    - Dst: order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.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_BN::invert_vartime
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - inverse_mod_public_prime
    - std::make_unique<EC_Scalar_Data_BN>
    - order
    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:70,1
    - Dst: mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:70,1
    - Dst: checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.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_BN::add
    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>
    - mod_order
    - checked_ref
    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:74,1
    - Dst: mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:75,1
    - Dst: order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:75,1
    - Dst: checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    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:
    - std::make_unique<EC_Scalar_Data_BN>
    - checked_ref
    - mod_order
    - 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:79,1
    - Dst: mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:79,1
    - Dst: checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    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:
    - std::make_unique<EC_Scalar_Data_BN>
    - mod_order
    - checked_ref
    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:83,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:83,1
    - Dst: order_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:83,1
    - Dst: Botan::EC_Scalar_Data_BN::serialize_to
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 85
    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:
    - order_bytes
    - std::span<uint8_t>::size
    - Botan::EC_Scalar_Data_BN::serialize_to
    - BOTAN_ARG_CHECK
    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:88,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:88,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:89,1
    - Dst: force_affine
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:90,1
    - Dst: xy_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:91,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: 93
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 93
    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:
    - force_affine
    - std::move
    - is_zero
    - xy_bytes
    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:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 97
    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: 101
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 101
    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:105,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:105,1
    - Dst: EC_Scalar_Data_BN::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:106,1
    - Dst: order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:116,1
    - Dst: cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:116,1
    - Dst: EC_Point_Var_Point_Precompute::mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:117,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:117,1
    - Dst: std::make_unique<EC_AffinePoint_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:118,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' scalar'
    - ' rng'
    argTypes:
    - EC_Scalar_Data
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 119
    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::move
    - order
    - std::make_unique<EC_AffinePoint_Data_BN>
    - EC_Point_Var_Point_Precompute::mul
    - BOTAN_ARG_CHECK
    - cofactor
    - EC_Scalar_Data_BN::checked_ref
    - value
    - group
    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:123,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:123,1
    - Dst: EC_Scalar_Data_BN::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:124,1
    - Dst: order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:134,1
    - Dst: cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:134,1
    - Dst: EC_Point_Var_Point_Precompute::mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:135,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:135,1
    - Dst: auto::x_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' scalar'
    - ' rng'
    argTypes:
    - EC_Scalar_Data
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 137
    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:
    - order
    - auto::x_bytes
    - EC_Point_Var_Point_Precompute::mul
    - BOTAN_ARG_CHECK
    - cofactor
    - EC_Scalar_Data_BN::checked_ref
    - value
    - group
    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:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 141
    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:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 145
    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:148,1
    - Dst: Botan::EC_AffinePoint_Data_BN::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:148,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:149,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:150,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:150,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:151,1
    - Dst: first
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 152
    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:
    - copy_mem
    - BOTAN_ARG_CHECK
    - Botan::EC_AffinePoint_Data_BN::field_element_bytes
    - first
    - BOTAN_STATE_CHECK
    - Botan::EC_AffinePoint_Data_BN::is_identity
    - std::span<uint8_t>::size
    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:155,1
    - Dst: Botan::EC_AffinePoint_Data_BN::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:155,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:156,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:157,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:157,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:158,1
    - Dst: last
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 159
    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:
    - last
    - copy_mem
    - BOTAN_ARG_CHECK
    - Botan::EC_AffinePoint_Data_BN::field_element_bytes
    - BOTAN_STATE_CHECK
    - Botan::EC_AffinePoint_Data_BN::is_identity
    - std::span<uint8_t>::size
    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:162,1
    - Dst: Botan::EC_AffinePoint_Data_BN::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:162,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:163,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:164,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:164,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 166
    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:
    - copy_mem
    - BOTAN_ARG_CHECK
    - Botan::EC_AffinePoint_Data_BN::field_element_bytes
    - BOTAN_STATE_CHECK
    - Botan::EC_AffinePoint_Data_BN::is_identity
    - std::span<uint8_t>::size
    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:169,1
    - Dst: Botan::EC_AffinePoint_Data_BN::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:169,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:170,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:171,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:171,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:172,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:175,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:176,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 177
    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:
    - BufferStuffer::append
    - Botan::EC_AffinePoint_Data_BN::serialize_x_to
    - size
    - BOTAN_ARG_CHECK
    - Botan::EC_AffinePoint_Data_BN::field_element_bytes
    - BufferStuffer::next
    - BOTAN_STATE_CHECK
    - Botan::EC_AffinePoint_Data_BN::is_identity
    - std::span<uint8_t>::size
    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:180,1
    - Dst: Botan::EC_AffinePoint_Data_BN::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:180,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:181,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:182,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:182,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:184,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 186
    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:
    - BufferStuffer::append
    - BOTAN_ARG_CHECK
    - Botan::EC_AffinePoint_Data_BN::field_element_bytes
    - BOTAN_STATE_CHECK
    - Botan::EC_AffinePoint_Data_BN::is_identity
    - std::span<uint8_t>::size
    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:189,1
    - Dst: to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:189,1
    - Dst: to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:189,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:190,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' g'
    - ' h'
    argTypes:
    - EC_AffinePoint_Data
    - EC_AffinePoint_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 191
    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:
    - to_legacy_point
    - group
    - BOTAN_ARG_CHECK
    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:195,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:195,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:195,1
    - Dst: EC_Scalar_Data_BN::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:197,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: multi_exp
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:199,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:199,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:199,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:201,1
    - Dst: std::make_unique<EC_AffinePoint_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:204,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - EC_Scalar_Data
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 205
    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:
    - std::move
    - auto::is_zero
    - std::make_unique<EC_AffinePoint_Data_BN>
    - BOTAN_ARG_CHECK
    - EC_Scalar_Data_BN::checked_ref
    - multi_exp
    - value
    - group
    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:210,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:210,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:210,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:210,1
    - Dst: EC_Scalar_Data_BN::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:212,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: multi_exp
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:215,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:215,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:215,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:217,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:217,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: 218
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 218
    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:
    - BOTAN_ARG_CHECK
    - EC_Scalar_Data_BN::checked_ref
    - multi_exp
    - value
    - group
    - 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:15,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.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_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:
    - Invalid_State
    - dynamic_cast<const EC_Scalar_Data_BN*>
    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: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    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: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_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:31,1
    - Dst: Botan::EC_Scalar_Data_BN::group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:31,1
    - Dst: Botan::EC_Scalar_Data_BN::value
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.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_BN::clone
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar_Data_BN::group
    - Botan::EC_Scalar_Data_BN::value
    - std::make_unique<EC_Scalar_Data_BN>
    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:35,1
    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::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:39,1
    - Dst: checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    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:
    - value
    - checked_ref
    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:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    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:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 51
    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: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::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:58,1
    - Dst: mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:58,1
    - Dst: order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.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_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>
    - mod_order
    - 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:62,1
    - Dst: inverse_mod_public_prime
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:62,1
    - Dst: order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.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_BN::invert
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - inverse_mod_public_prime
    - std::make_unique<EC_Scalar_Data_BN>
    - order
    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:66,1
    - Dst: inverse_mod_public_prime
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:66,1
    - Dst: order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.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_BN::invert_vartime
    functionSourceFile: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp
    functionUses: 0
    functionsReached:
    - inverse_mod_public_prime
    - std::make_unique<EC_Scalar_Data_BN>
    - order
    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:70,1
    - Dst: mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:70,1
    - Dst: checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.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_BN::add
    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>
    - mod_order
    - checked_ref
    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:74,1
    - Dst: mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:75,1
    - Dst: order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:75,1
    - Dst: checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    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:
    - std::make_unique<EC_Scalar_Data_BN>
    - checked_ref
    - mod_order
    - 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:79,1
    - Dst: mod_order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:79,1
    - Dst: checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    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:
    - std::make_unique<EC_Scalar_Data_BN>
    - mod_order
    - checked_ref
    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:83,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:83,1
    - Dst: order_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:83,1
    - Dst: Botan::EC_Scalar_Data_BN::serialize_to
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 85
    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:
    - order_bytes
    - std::span<uint8_t>::size
    - Botan::EC_Scalar_Data_BN::serialize_to
    - BOTAN_ARG_CHECK
    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:88,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:88,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:89,1
    - Dst: force_affine
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:90,1
    - Dst: xy_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:91,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: 93
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 93
    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:
    - force_affine
    - std::move
    - is_zero
    - xy_bytes
    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:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 97
    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: 101
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 101
    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:105,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:105,1
    - Dst: EC_Scalar_Data_BN::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:106,1
    - Dst: order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:116,1
    - Dst: cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:116,1
    - Dst: EC_Point_Var_Point_Precompute::mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:117,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:117,1
    - Dst: std::make_unique<EC_AffinePoint_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:118,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' scalar'
    - ' rng'
    argTypes:
    - EC_Scalar_Data
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 119
    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::move
    - order
    - std::make_unique<EC_AffinePoint_Data_BN>
    - EC_Point_Var_Point_Precompute::mul
    - BOTAN_ARG_CHECK
    - cofactor
    - EC_Scalar_Data_BN::checked_ref
    - value
    - group
    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:123,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:123,1
    - Dst: EC_Scalar_Data_BN::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:124,1
    - Dst: order
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:134,1
    - Dst: cofactor
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:134,1
    - Dst: EC_Point_Var_Point_Precompute::mul
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:135,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:135,1
    - Dst: auto::x_bytes
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' scalar'
    - ' rng'
    argTypes:
    - EC_Scalar_Data
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 121
    functionDepth: 1
    functionLinenumber: 121
    functionLinenumberEnd: 137
    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:
    - order
    - auto::x_bytes
    - EC_Point_Var_Point_Precompute::mul
    - BOTAN_ARG_CHECK
    - cofactor
    - EC_Scalar_Data_BN::checked_ref
    - value
    - group
    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:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 141
    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:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 145
    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:148,1
    - Dst: Botan::EC_AffinePoint_Data_BN::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:148,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:149,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:150,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:150,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:151,1
    - Dst: first
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 152
    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:
    - copy_mem
    - BOTAN_ARG_CHECK
    - Botan::EC_AffinePoint_Data_BN::field_element_bytes
    - first
    - BOTAN_STATE_CHECK
    - Botan::EC_AffinePoint_Data_BN::is_identity
    - std::span<uint8_t>::size
    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:155,1
    - Dst: Botan::EC_AffinePoint_Data_BN::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:155,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:156,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:157,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:157,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:158,1
    - Dst: last
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 159
    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:
    - last
    - copy_mem
    - BOTAN_ARG_CHECK
    - Botan::EC_AffinePoint_Data_BN::field_element_bytes
    - BOTAN_STATE_CHECK
    - Botan::EC_AffinePoint_Data_BN::is_identity
    - std::span<uint8_t>::size
    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:162,1
    - Dst: Botan::EC_AffinePoint_Data_BN::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:162,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:163,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:164,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:164,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 166
    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:
    - copy_mem
    - BOTAN_ARG_CHECK
    - Botan::EC_AffinePoint_Data_BN::field_element_bytes
    - BOTAN_STATE_CHECK
    - Botan::EC_AffinePoint_Data_BN::is_identity
    - std::span<uint8_t>::size
    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:169,1
    - Dst: Botan::EC_AffinePoint_Data_BN::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:169,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:170,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:171,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:171,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:172,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:175,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:176,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 168
    functionDepth: 2
    functionLinenumber: 168
    functionLinenumberEnd: 177
    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:
    - BufferStuffer::append
    - Botan::EC_AffinePoint_Data_BN::serialize_x_to
    - size
    - BOTAN_ARG_CHECK
    - Botan::EC_AffinePoint_Data_BN::field_element_bytes
    - BufferStuffer::next
    - BOTAN_STATE_CHECK
    - Botan::EC_AffinePoint_Data_BN::is_identity
    - std::span<uint8_t>::size
    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:180,1
    - Dst: Botan::EC_AffinePoint_Data_BN::is_identity
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:180,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:181,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:182,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:182,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:184,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 186
    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:
    - BufferStuffer::append
    - BOTAN_ARG_CHECK
    - Botan::EC_AffinePoint_Data_BN::field_element_bytes
    - BOTAN_STATE_CHECK
    - Botan::EC_AffinePoint_Data_BN::is_identity
    - std::span<uint8_t>::size
    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:189,1
    - Dst: to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:189,1
    - Dst: to_legacy_point
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:189,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:190,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' g'
    - ' h'
    argTypes:
    - EC_AffinePoint_Data
    - EC_AffinePoint_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 191
    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:
    - to_legacy_point
    - group
    - BOTAN_ARG_CHECK
    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:195,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:195,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:195,1
    - Dst: EC_Scalar_Data_BN::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:197,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: multi_exp
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:199,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:199,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:199,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:201,1
    - Dst: std::make_unique<EC_AffinePoint_Data_BN>
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:204,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:204,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - EC_Scalar_Data
    - EC_Scalar_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 205
    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:
    - std::move
    - auto::is_zero
    - std::make_unique<EC_AffinePoint_Data_BN>
    - BOTAN_ARG_CHECK
    - EC_Scalar_Data_BN::checked_ref
    - multi_exp
    - value
    - group
    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:210,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:210,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:210,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:210,1
    - Dst: EC_Scalar_Data_BN::checked_ref
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:212,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: multi_exp
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:215,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:215,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:215,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:217,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ec_group/legacy_ec_point/ec_inner_bn.cpp:217,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: 218
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 218
    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:
    - BOTAN_ARG_CHECK
    - EC_Scalar_Data_BN::checked_ref
    - multi_exp
    - value
    - group
    - 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:26,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:26,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:27,1
    - Dst: Botan::PBKDF::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:28,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:28,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: 29
      start: 25
    functionDepth: 3
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: Botan::SM2_Encryption_Operation::SM2_Encryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - domain
    - Botan::PBKDF::create_or_throw
    - Botan::HashFunction::create_or_throw
    - _public_ec_point
    - 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: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    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:37,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptext_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    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:44,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:46,1
    - Dst: mul
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:48,1
    - Dst: EC_AffinePoint::x_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:50,1
    - Dst: EC_AffinePoint::y_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:51,1
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:57,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:57,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:59,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:60,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:62,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: final
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:65,1
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:68,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:70,1
    - Dst: EC_AffinePoint::x_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:70,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:71,1
    - Dst: EC_AffinePoint::y_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - msg
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 77
    functionName: Botan::SM2_Encryption_Operation::encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - final
    - update
    - Botan::EC_AffinePoint::g_mul
    - mul
    - std::span<const uint8_t>::size
    - EC_AffinePoint::x_bytes
    - derive_key
    - Botan::EC_Scalar::random
    - EC_AffinePoint::y_bytes
    - xor_buf
    - DER_Encoder
    - BigInt
    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:91,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:91,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:92,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:94,1
    - Dst: Botan::PBKDF::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:95,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: 96
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 96
    functionName: Botan::SM2_Decryption_Operation::SM2_Decryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _private_key
    - Botan::PBKDF::create_or_throw
    - Botan::HashFunction::create_or_throw
    - 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:103,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:105,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ptext_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 110
    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:113,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:118,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:118,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:119,1
    - Dst: BER_Decoder
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:127,1
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:137,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:145,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:145,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:146,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:149,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:149,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:149,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:149,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:150,1
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:153,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:157,1
    - Dst: auto::mul
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:160,1
    - Dst: auto::x_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:161,1
    - Dst: auto::y_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:162,1
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:164,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:164,1
    - Dst: auto::xy_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:164,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:166,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:166,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:166,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:166,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:168,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:169,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:170,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:171,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:173,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:173,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:173,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:173,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:174,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: 179
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 179
    functionName: Botan::SM2_Decryption_Operation::decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::is_equal
    - DER_Encoder
    - output_length
    - auto::size
    - BER_Decoder
    - final
    - auto::x_bytes
    - secure_vector<uint8_t>
    - get_p_bytes
    - std::vector::data
    - auto::xy_bytes
    - Botan::EC_AffinePoint::from_bigint_xy
    - auto::data
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - derive_key
    - xor_buf
    - auto::mul
    - std::vector::size
    - update
    - secure_vector::size
    - auto::y_bytes
    - secure_vector::data
    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:26,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:26,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:27,1
    - Dst: Botan::PBKDF::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:28,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:28,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: 29
      start: 25
    functionDepth: 3
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: Botan::SM2_Encryption_Operation::SM2_Encryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - domain
    - Botan::PBKDF::create_or_throw
    - Botan::HashFunction::create_or_throw
    - _public_ec_point
    - 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: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    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:37,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptext_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    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:44,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:46,1
    - Dst: mul
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:48,1
    - Dst: EC_AffinePoint::x_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:50,1
    - Dst: EC_AffinePoint::y_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:51,1
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:57,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:57,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:59,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:60,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:62,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: final
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:65,1
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:68,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:70,1
    - Dst: EC_AffinePoint::x_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:70,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:71,1
    - Dst: EC_AffinePoint::y_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - msg
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 77
    functionName: Botan::SM2_Encryption_Operation::encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - final
    - update
    - Botan::EC_AffinePoint::g_mul
    - mul
    - std::span<const uint8_t>::size
    - EC_AffinePoint::x_bytes
    - derive_key
    - Botan::EC_Scalar::random
    - EC_AffinePoint::y_bytes
    - xor_buf
    - DER_Encoder
    - BigInt
    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:91,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:91,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:92,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:94,1
    - Dst: Botan::PBKDF::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:95,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: 96
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 96
    functionName: Botan::SM2_Decryption_Operation::SM2_Decryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _private_key
    - Botan::PBKDF::create_or_throw
    - Botan::HashFunction::create_or_throw
    - 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:103,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:105,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ptext_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 110
    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:113,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:118,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:118,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:119,1
    - Dst: BER_Decoder
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:127,1
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:137,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:145,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:145,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:146,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:149,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:149,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:149,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:149,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:150,1
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:153,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:157,1
    - Dst: auto::mul
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:160,1
    - Dst: auto::x_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:161,1
    - Dst: auto::y_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:162,1
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:164,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:164,1
    - Dst: auto::xy_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:164,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:166,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:166,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:166,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:166,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:168,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:169,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:170,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:171,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:173,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:173,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:173,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:173,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:174,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: 179
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 179
    functionName: Botan::SM2_Decryption_Operation::decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::is_equal
    - DER_Encoder
    - output_length
    - auto::size
    - BER_Decoder
    - final
    - auto::x_bytes
    - secure_vector<uint8_t>
    - get_p_bytes
    - std::vector::data
    - auto::xy_bytes
    - Botan::EC_AffinePoint::from_bigint_xy
    - auto::data
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - derive_key
    - xor_buf
    - auto::mul
    - std::vector::size
    - update
    - secure_vector::size
    - auto::y_bytes
    - secure_vector::data
    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:194,1
    - Dst: std::string_view::empty
      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:197,1
    - Dst: std::make_unique<SM2_Encryption_Operation>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:198,1
    - Dst: std::make_unique<SM2_Encryption_Operation>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:200,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:204,1
    - Dst: Botan::SM2_PublicKey::algo_name
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:204,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: 205
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 205
    functionName: Botan::SM2_PublicKey::create_encryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - std::string_view::empty
    - std::make_unique<SM2_Encryption_Operation>
    - Botan::SM2_PublicKey::algo_name
    - BOTAN_UNUSED
    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:210,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:211,1
    - Dst: std::make_unique<SM2_Decryption_Operation>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:212,1
    - Dst: std::make_unique<SM2_Decryption_Operation>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:214,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:218,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:218,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: 219
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 219
    functionName: Botan::SM2_PrivateKey::create_decryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - algo_name
    - Provider_Not_Found
    - std::make_unique<SM2_Decryption_Operation>
    - std::string_view::empty
    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:26,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:26,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:27,1
    - Dst: Botan::PBKDF::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:28,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:28,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: 29
      start: 25
    functionDepth: 3
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: Botan::SM2_Encryption_Operation::SM2_Encryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - domain
    - Botan::PBKDF::create_or_throw
    - Botan::HashFunction::create_or_throw
    - _public_ec_point
    - 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: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    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:37,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptext_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    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:44,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:46,1
    - Dst: mul
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:48,1
    - Dst: EC_AffinePoint::x_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:50,1
    - Dst: EC_AffinePoint::y_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:51,1
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:57,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:57,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:59,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:60,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:62,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: final
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:65,1
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:68,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:70,1
    - Dst: EC_AffinePoint::x_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:70,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:71,1
    - Dst: EC_AffinePoint::y_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - msg
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 77
    functionName: Botan::SM2_Encryption_Operation::encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - final
    - update
    - Botan::EC_AffinePoint::g_mul
    - mul
    - std::span<const uint8_t>::size
    - EC_AffinePoint::x_bytes
    - derive_key
    - Botan::EC_Scalar::random
    - EC_AffinePoint::y_bytes
    - xor_buf
    - DER_Encoder
    - BigInt
    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:91,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:91,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:92,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:94,1
    - Dst: Botan::PBKDF::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:95,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: 96
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 96
    functionName: Botan::SM2_Decryption_Operation::SM2_Decryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _private_key
    - Botan::PBKDF::create_or_throw
    - Botan::HashFunction::create_or_throw
    - 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:103,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:105,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ptext_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 110
    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:113,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:118,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:118,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:119,1
    - Dst: BER_Decoder
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:127,1
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:137,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:145,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:145,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:146,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:149,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:149,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:149,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:149,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:150,1
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:153,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:157,1
    - Dst: auto::mul
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:160,1
    - Dst: auto::x_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:161,1
    - Dst: auto::y_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:162,1
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:164,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:164,1
    - Dst: auto::xy_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:164,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:166,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:166,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:166,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:166,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:168,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:169,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:170,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:171,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:173,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:173,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:173,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:173,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:174,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: 179
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 179
    functionName: Botan::SM2_Decryption_Operation::decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::is_equal
    - DER_Encoder
    - output_length
    - auto::size
    - BER_Decoder
    - final
    - auto::x_bytes
    - secure_vector<uint8_t>
    - get_p_bytes
    - std::vector::data
    - auto::xy_bytes
    - Botan::EC_AffinePoint::from_bigint_xy
    - auto::data
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - derive_key
    - xor_buf
    - auto::mul
    - std::vector::size
    - update
    - secure_vector::size
    - auto::y_bytes
    - secure_vector::data
    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:26,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:26,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:27,1
    - Dst: Botan::PBKDF::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:28,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:28,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: 29
      start: 25
    functionDepth: 3
    functionLinenumber: 25
    functionLinenumberEnd: 29
    functionName: Botan::SM2_Encryption_Operation::SM2_Encryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - domain
    - Botan::PBKDF::create_or_throw
    - Botan::HashFunction::create_or_throw
    - _public_ec_point
    - 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: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    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:37,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptext_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    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:44,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:46,1
    - Dst: mul
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:48,1
    - Dst: EC_AffinePoint::x_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:50,1
    - Dst: EC_AffinePoint::y_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:51,1
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:57,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:57,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:59,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:60,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:62,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: final
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:65,1
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:68,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:70,1
    - Dst: EC_AffinePoint::x_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:70,1
    - Dst: BigInt
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:71,1
    - Dst: EC_AffinePoint::y_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - msg
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 43
    functionDepth: 3
    functionLinenumber: 43
    functionLinenumberEnd: 77
    functionName: Botan::SM2_Encryption_Operation::encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - final
    - update
    - Botan::EC_AffinePoint::g_mul
    - mul
    - std::span<const uint8_t>::size
    - EC_AffinePoint::x_bytes
    - derive_key
    - Botan::EC_Scalar::random
    - EC_AffinePoint::y_bytes
    - xor_buf
    - DER_Encoder
    - BigInt
    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:91,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:91,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:92,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:94,1
    - Dst: Botan::PBKDF::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:95,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: 96
      start: 88
    functionDepth: 3
    functionLinenumber: 88
    functionLinenumberEnd: 96
    functionName: Botan::SM2_Decryption_Operation::SM2_Decryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _private_key
    - Botan::PBKDF::create_or_throw
    - Botan::HashFunction::create_or_throw
    - 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:103,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:105,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ptext_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 110
    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:113,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:118,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:118,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:119,1
    - Dst: BER_Decoder
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:127,1
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:137,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:145,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:145,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:146,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:149,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:149,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:149,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:149,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:150,1
    - Dst: Botan::EC_AffinePoint::from_bigint_xy
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:153,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:157,1
    - Dst: auto::mul
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:160,1
    - Dst: auto::x_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:161,1
    - Dst: auto::y_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:162,1
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:164,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:164,1
    - Dst: auto::xy_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:164,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:166,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:166,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:166,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:166,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:168,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:169,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:170,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:171,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:173,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:173,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:173,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:173,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:174,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: 179
      start: 112
    functionDepth: 2
    functionLinenumber: 112
    functionLinenumberEnd: 179
    functionName: Botan::SM2_Decryption_Operation::decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::is_equal
    - DER_Encoder
    - output_length
    - auto::size
    - BER_Decoder
    - final
    - auto::x_bytes
    - secure_vector<uint8_t>
    - get_p_bytes
    - std::vector::data
    - auto::xy_bytes
    - Botan::EC_AffinePoint::from_bigint_xy
    - auto::data
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - derive_key
    - xor_buf
    - auto::mul
    - std::vector::size
    - update
    - secure_vector::size
    - auto::y_bytes
    - secure_vector::data
    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:194,1
    - Dst: std::string_view::empty
      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:197,1
    - Dst: std::make_unique<SM2_Encryption_Operation>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:198,1
    - Dst: std::make_unique<SM2_Encryption_Operation>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:200,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:204,1
    - Dst: Botan::SM2_PublicKey::algo_name
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:204,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: 205
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 205
    functionName: Botan::SM2_PublicKey::create_encryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - std::string_view::empty
    - std::make_unique<SM2_Encryption_Operation>
    - Botan::SM2_PublicKey::algo_name
    - BOTAN_UNUSED
    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:210,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:211,1
    - Dst: std::make_unique<SM2_Decryption_Operation>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:212,1
    - Dst: std::make_unique<SM2_Decryption_Operation>
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:214,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:218,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp:218,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: 219
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 219
    functionName: Botan::SM2_PrivateKey::create_decryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2_enc.cpp
    functionUses: 0
    functionsReached:
    - algo_name
    - Provider_Not_Found
    - std::make_unique<SM2_Decryption_Operation>
    - std::string_view::empty
    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: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    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: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    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: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    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:
    - Dst: Botan::domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: Botan::_signature_element_size_for_DER_encoding
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.h
    functionUses: 0
    functionsReached:
    - Botan::domain
    linkageType: ''
    returnType: std::optional<size_t>
    signature: std::optional<size_t> _signature_element_size_for_DER_encoding() 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::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: 42
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 42
    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: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    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:
    - Dst: Botan::domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: Botan::_signature_element_size_for_DER_encoding
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.h
    functionUses: 0
    functionsReached:
    - Botan::domain
    linkageType: ''
    returnType: std::optional<size_t>
    signature: std::optional<size_t> _signature_element_size_for_DER_encoding() 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: 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: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    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:
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/sm2/sm2.h:156,1
    - Dst: sm2_compute_za
      Src: /src/botan/src/lib/pubkey/sm2/sm2.h:157,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: 158
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 158
    functionName: sm2_compute_za
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.h
    functionUses: 1
    functionsReached:
    - EC_AffinePoint
    - 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: 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: std::make_unique<SM2_Signature_PublicKey>
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:24,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:24,1
    - Dst: _public_ec_point
      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_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - domain
    - std::make_unique<SM2_Signature_PublicKey>
    - _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:28,1
    - Dst: private_value
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:37,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:37,1
    - Dst: Botan::KeyPair::signature_consistency_check
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 46
    functionName: Botan::SM2_PrivateKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_PrivateKey::check_key
    - Botan::KeyPair::signature_consistency_check
    - domain
    - private_value
    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:50,1
    - Dst: Botan::EC_Scalar::one
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:50,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:50,1
    - Dst: invert
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:50,1
    - Dst: to_bigint
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:51,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: 51
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: Botan::SM2_PrivateKey::SM2_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - domain
    - invert
    - Botan::EC_Scalar::one
    - Botan::SM2_PrivateKey::_private_key
    - to_bigint
    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: std::move
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:54,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:54,1
    - Dst: Botan::SM2_PrivateKey::_private_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:55,1
    - Dst: Botan::EC_Scalar::one
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:55,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:55,1
    - Dst: invert
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:55,1
    - Dst: to_bigint
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - group
    - x
    argTypes:
    - EC_Group
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: Botan::SM2_PrivateKey::SM2_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - domain
    - std::move
    - invert
    - Botan::EC_Scalar::one
    - Botan::SM2_PrivateKey::_private_key
    - to_bigint
    linkageType: ''
    returnType: void
    signature: void SM2_PrivateKey::SM2_PrivateKey(EC_Group group, EC_Scalar x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:59,1
    - Dst: Botan::SM2_PrivateKey::_private_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:60,1
    - Dst: Botan::EC_Scalar::one
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:60,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:60,1
    - Dst: invert
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:60,1
    - Dst: to_bigint
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' rng'
    - group
    argTypes:
    - RandomNumberGenerator
    - EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: Botan::SM2_PrivateKey::SM2_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - domain
    - std::move
    - invert
    - Botan::EC_Scalar::one
    - Botan::SM2_PrivateKey::_private_key
    - to_bigint
    linkageType: ''
    returnType: void
    signature: void SM2_PrivateKey::SM2_PrivateKey(RandomNumberGenerator& rng, EC_Group
      group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:64,1
    - Dst: Botan::SM2_PrivateKey::_private_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:65,1
    - Dst: Botan::EC_Scalar::one
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:65,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:65,1
    - Dst: invert
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:65,1
    - Dst: to_bigint
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' rng'
    - group
    - ' x'
    argTypes:
    - RandomNumberGenerator
    - EC_Group
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 3
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: Botan::SM2_PrivateKey::SM2_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - domain
    - std::move
    - invert
    - Botan::EC_Scalar::one
    - Botan::SM2_PrivateKey::_private_key
    - to_bigint
    linkageType: ''
    returnType: void
    signature: void SM2_PrivateKey::SM2_PrivateKey(RandomNumberGenerator& rng, EC_Group
      group, const BigInt& x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:72,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:73,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:76,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:76,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:78,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:78,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:79,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:79,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:80,1
    - Dst: get_p_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:82,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:84,1
    - Dst: get_a
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:84,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:85,1
    - Dst: get_b
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:85,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:86,1
    - Dst: get_g_x
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:86,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:87,1
    - Dst: get_g_y
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:87,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:88,1
    - Dst: Botan::xy_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:88,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:90,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: 91
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 91
    functionName: Botan::sm2_compute_za
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - Botan::xy_bytes
    - Botan::get_byte
    - Botan::Invalid_Argument
    - get_p_bytes
    - std::string_view::size
    - get_a
    - get_g_y
    - get_b
    - get_g_x
    - Botan::final
    - Botan::update
    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:101,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:101,1
    - Dst: _get_da_inv
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:101,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:105,1
    - Dst: sm2_compute_za
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:107,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:107,1
    - Dst: Botan::SM2_Signature_Operation::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:108,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: 110
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 110
    functionName: Botan::SM2_Signature_Operation::SM2_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _private_key
    - sm2_compute_za
    - Botan::HashFunction::create_or_throw
    - _public_ec_point
    - _get_da_inv
    - Botan::SM2_Signature_Operation::update
    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:112,1
    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::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:116,1
    - Dst: insert
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:118,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:118,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:118,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 120
    functionName: Botan::SM2_Signature_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 2
    functionsReached:
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    - Botan::SM2_Signature_Operation::update
    - insert
    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: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: 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:139,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:139,1
    - Dst: Botan::SM2_Signature_Operation::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:141,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:144,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:145,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:150,1
    - Dst: Botan::EC_Scalar::gk_x_mod_order
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:152,1
    - Dst: Botan::EC_Scalar::deserialize_pair
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 136
    functionDepth: 3
    functionLinenumber: 136
    functionLinenumberEnd: 156
    functionName: Botan::SM2_Signature_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - final
    - Botan::EC_Scalar::from_bytes_mod_order
    - clear
    - Botan::EC_Scalar::random
    - Botan::EC_Scalar::deserialize_pair
    - Botan::SM2_Signature_Operation::update
    - Botan::EC_Scalar::gk_x_mod_order
    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:164,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:164,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:168,1
    - Dst: sm2_compute_za
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:170,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:170,1
    - Dst: Botan::SM2_Verification_Operation::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:171,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: 173
      start: 163
    functionDepth: 3
    functionLinenumber: 163
    functionLinenumberEnd: 173
    functionName: Botan::SM2_Verification_Operation::SM2_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - domain
    - sm2_compute_za
    - Botan::HashFunction::create_or_throw
    - _public_ec_point
    - Botan::SM2_Verification_Operation::update
    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:177,1
    - Dst: insert
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:179,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:179,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:179,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 181
    functionName: Botan::SM2_Verification_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 2
    functionsReached:
    - std::span<const uint8_t>::begin
    - end
    - Botan::SM2_Verification_Operation::update
    - std::span<const uint8_t>::end
    - insert
    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:185,1
    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::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:198,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:198,1
    - Dst: Botan::SM2_Verification_Operation::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:200,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:203,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:204,1
    - Dst: Botan::EC_Scalar::deserialize_pair
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:209,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:210,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:212,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:212,1
    - Dst: auto::is_nonzero
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:214,1
    - Dst: mul2_vartime_x_mod_order_eq
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:216,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 195
    functionDepth: 3
    functionLinenumber: 195
    functionLinenumberEnd: 221
    functionName: Botan::SM2_Verification_Operation::is_valid_signature
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - final
    - mul2_vartime_x_mod_order_eq
    - Botan::EC_Scalar::from_bytes_mod_order
    - clear
    - auto::is_nonzero
    - auto::value
    - Botan::EC_Scalar::deserialize_pair
    - Botan::SM2_Verification_Operation::update
    - is_nonzero
    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:237,1
    - Dst: std::string_view::substr
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:241,1
    - Dst: std::string_view::substr
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:242,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: 244
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 244
    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:101,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:101,1
    - Dst: _get_da_inv
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:101,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:105,1
    - Dst: sm2_compute_za
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:107,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:107,1
    - Dst: Botan::SM2_Signature_Operation::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:108,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: 110
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 110
    functionName: Botan::SM2_Signature_Operation::SM2_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _private_key
    - sm2_compute_za
    - Botan::HashFunction::create_or_throw
    - _public_ec_point
    - _get_da_inv
    - Botan::SM2_Signature_Operation::update
    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:112,1
    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::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:116,1
    - Dst: insert
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:118,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:118,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:118,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 120
    functionName: Botan::SM2_Signature_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 5
    functionsReached:
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    - Botan::SM2_Signature_Operation::update
    - insert
    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: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: 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:139,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:139,1
    - Dst: Botan::SM2_Signature_Operation::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:141,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:144,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:145,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:150,1
    - Dst: Botan::EC_Scalar::gk_x_mod_order
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:152,1
    - Dst: Botan::EC_Scalar::deserialize_pair
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 136
    functionDepth: 3
    functionLinenumber: 136
    functionLinenumberEnd: 156
    functionName: Botan::SM2_Signature_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - final
    - Botan::EC_Scalar::from_bytes_mod_order
    - clear
    - Botan::EC_Scalar::random
    - Botan::EC_Scalar::deserialize_pair
    - Botan::SM2_Signature_Operation::update
    - Botan::EC_Scalar::gk_x_mod_order
    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:164,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:164,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:168,1
    - Dst: sm2_compute_za
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:170,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:170,1
    - Dst: Botan::SM2_Verification_Operation::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:171,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: 173
      start: 163
    functionDepth: 3
    functionLinenumber: 163
    functionLinenumberEnd: 173
    functionName: Botan::SM2_Verification_Operation::SM2_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - domain
    - sm2_compute_za
    - Botan::HashFunction::create_or_throw
    - _public_ec_point
    - Botan::SM2_Verification_Operation::update
    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:177,1
    - Dst: insert
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:179,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:179,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:179,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 181
    functionName: Botan::SM2_Verification_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 5
    functionsReached:
    - std::span<const uint8_t>::begin
    - end
    - Botan::SM2_Verification_Operation::update
    - std::span<const uint8_t>::end
    - insert
    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:185,1
    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::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:198,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:198,1
    - Dst: Botan::SM2_Verification_Operation::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:200,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:203,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:204,1
    - Dst: Botan::EC_Scalar::deserialize_pair
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:209,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:210,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:212,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:212,1
    - Dst: auto::is_nonzero
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:214,1
    - Dst: mul2_vartime_x_mod_order_eq
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:216,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 195
    functionDepth: 3
    functionLinenumber: 195
    functionLinenumberEnd: 221
    functionName: Botan::SM2_Verification_Operation::is_valid_signature
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - final
    - mul2_vartime_x_mod_order_eq
    - Botan::EC_Scalar::from_bytes_mod_order
    - clear
    - auto::is_nonzero
    - auto::value
    - Botan::EC_Scalar::deserialize_pair
    - Botan::SM2_Verification_Operation::update
    - is_nonzero
    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:237,1
    - Dst: std::string_view::substr
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:241,1
    - Dst: std::string_view::substr
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:242,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: 244
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 244
    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:249,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 250
    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:254,1
    - Dst: parse_sm2_param_string
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:257,1
    - Dst: std::make_unique<SM2_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:258,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:261,1
    - Dst: Botan::SM2_PublicKey::algo_name
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:261,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 262
    functionName: Botan::SM2_PublicKey::create_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SM2_Verification_Operation>
    - Provider_Not_Found
    - std::string_view::empty
    - parse_sm2_param_string
    - Botan::SM2_PublicKey::algo_name
    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:267,1
    - Dst: parse_sm2_param_string
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:270,1
    - Dst: std::make_unique<SM2_Signature_Operation>
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:271,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:274,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:274,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 275
    functionName: Botan::SM2_PrivateKey::create_signature_op
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - std::string_view::empty
    - parse_sm2_param_string
    - std::make_unique<SM2_Signature_Operation>
    - algo_name
    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: std::make_unique<SM2_Signature_PublicKey>
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:24,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:24,1
    - Dst: _public_ec_point
      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_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - domain
    - std::make_unique<SM2_Signature_PublicKey>
    - _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:28,1
    - Dst: private_value
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:37,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:37,1
    - Dst: Botan::KeyPair::signature_consistency_check
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 46
    functionName: Botan::SM2_PrivateKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_PrivateKey::check_key
    - Botan::KeyPair::signature_consistency_check
    - domain
    - private_value
    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:50,1
    - Dst: Botan::EC_Scalar::one
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:50,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:50,1
    - Dst: invert
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:50,1
    - Dst: to_bigint
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:51,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: 51
      start: 48
    functionDepth: 3
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: Botan::SM2_PrivateKey::SM2_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - domain
    - invert
    - Botan::EC_Scalar::one
    - Botan::SM2_PrivateKey::_private_key
    - to_bigint
    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: std::move
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:54,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:54,1
    - Dst: Botan::SM2_PrivateKey::_private_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:55,1
    - Dst: Botan::EC_Scalar::one
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:55,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:55,1
    - Dst: invert
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:55,1
    - Dst: to_bigint
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - group
    - x
    argTypes:
    - EC_Group
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: Botan::SM2_PrivateKey::SM2_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - domain
    - std::move
    - invert
    - Botan::EC_Scalar::one
    - Botan::SM2_PrivateKey::_private_key
    - to_bigint
    linkageType: ''
    returnType: void
    signature: void SM2_PrivateKey::SM2_PrivateKey(EC_Group group, EC_Scalar x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:59,1
    - Dst: Botan::SM2_PrivateKey::_private_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:60,1
    - Dst: Botan::EC_Scalar::one
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:60,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:60,1
    - Dst: invert
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:60,1
    - Dst: to_bigint
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' rng'
    - group
    argTypes:
    - RandomNumberGenerator
    - EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 3
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: Botan::SM2_PrivateKey::SM2_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - domain
    - std::move
    - invert
    - Botan::EC_Scalar::one
    - Botan::SM2_PrivateKey::_private_key
    - to_bigint
    linkageType: ''
    returnType: void
    signature: void SM2_PrivateKey::SM2_PrivateKey(RandomNumberGenerator& rng, EC_Group
      group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:64,1
    - Dst: Botan::SM2_PrivateKey::_private_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:65,1
    - Dst: Botan::EC_Scalar::one
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:65,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:65,1
    - Dst: invert
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:65,1
    - Dst: to_bigint
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' rng'
    - group
    - ' x'
    argTypes:
    - RandomNumberGenerator
    - EC_Group
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 3
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: Botan::SM2_PrivateKey::SM2_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - domain
    - std::move
    - invert
    - Botan::EC_Scalar::one
    - Botan::SM2_PrivateKey::_private_key
    - to_bigint
    linkageType: ''
    returnType: void
    signature: void SM2_PrivateKey::SM2_PrivateKey(RandomNumberGenerator& rng, EC_Group
      group, const BigInt& x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:72,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:73,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:76,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:76,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:78,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:78,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:79,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:79,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:80,1
    - Dst: get_p_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:82,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:84,1
    - Dst: get_a
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:84,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:85,1
    - Dst: get_b
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:85,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:86,1
    - Dst: get_g_x
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:86,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:87,1
    - Dst: get_g_y
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:87,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:88,1
    - Dst: Botan::xy_bytes
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:88,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:90,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: 91
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 91
    functionName: Botan::sm2_compute_za
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - Botan::xy_bytes
    - Botan::get_byte
    - Botan::Invalid_Argument
    - get_p_bytes
    - std::string_view::size
    - get_a
    - get_g_y
    - get_b
    - get_g_x
    - Botan::final
    - Botan::update
    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:101,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:101,1
    - Dst: _get_da_inv
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:101,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:105,1
    - Dst: sm2_compute_za
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:107,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:107,1
    - Dst: Botan::SM2_Signature_Operation::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:108,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: 110
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 110
    functionName: Botan::SM2_Signature_Operation::SM2_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _private_key
    - sm2_compute_za
    - Botan::HashFunction::create_or_throw
    - _public_ec_point
    - _get_da_inv
    - Botan::SM2_Signature_Operation::update
    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:112,1
    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::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:116,1
    - Dst: insert
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:118,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:118,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:118,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 120
    functionName: Botan::SM2_Signature_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 8
    functionsReached:
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    - Botan::SM2_Signature_Operation::update
    - insert
    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: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: 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:139,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:139,1
    - Dst: Botan::SM2_Signature_Operation::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:141,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:144,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:145,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:150,1
    - Dst: Botan::EC_Scalar::gk_x_mod_order
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:152,1
    - Dst: Botan::EC_Scalar::deserialize_pair
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 136
    functionDepth: 3
    functionLinenumber: 136
    functionLinenumberEnd: 156
    functionName: Botan::SM2_Signature_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - final
    - Botan::EC_Scalar::from_bytes_mod_order
    - clear
    - Botan::EC_Scalar::random
    - Botan::EC_Scalar::deserialize_pair
    - Botan::SM2_Signature_Operation::update
    - Botan::EC_Scalar::gk_x_mod_order
    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:164,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:164,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:168,1
    - Dst: sm2_compute_za
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:170,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:170,1
    - Dst: Botan::SM2_Verification_Operation::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:171,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: 173
      start: 163
    functionDepth: 3
    functionLinenumber: 163
    functionLinenumberEnd: 173
    functionName: Botan::SM2_Verification_Operation::SM2_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - domain
    - sm2_compute_za
    - Botan::HashFunction::create_or_throw
    - _public_ec_point
    - Botan::SM2_Verification_Operation::update
    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:177,1
    - Dst: insert
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:179,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:179,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:179,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 181
    functionName: Botan::SM2_Verification_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 8
    functionsReached:
    - std::span<const uint8_t>::begin
    - end
    - Botan::SM2_Verification_Operation::update
    - std::span<const uint8_t>::end
    - insert
    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:185,1
    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::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:198,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:198,1
    - Dst: Botan::SM2_Verification_Operation::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:200,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:203,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:204,1
    - Dst: Botan::EC_Scalar::deserialize_pair
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:209,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:210,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:212,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:212,1
    - Dst: auto::is_nonzero
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:214,1
    - Dst: mul2_vartime_x_mod_order_eq
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:216,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 195
    functionDepth: 3
    functionLinenumber: 195
    functionLinenumberEnd: 221
    functionName: Botan::SM2_Verification_Operation::is_valid_signature
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - final
    - mul2_vartime_x_mod_order_eq
    - Botan::EC_Scalar::from_bytes_mod_order
    - clear
    - auto::is_nonzero
    - auto::value
    - Botan::EC_Scalar::deserialize_pair
    - Botan::SM2_Verification_Operation::update
    - is_nonzero
    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:237,1
    - Dst: std::string_view::substr
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:241,1
    - Dst: std::string_view::substr
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:242,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: 244
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 244
    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:101,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:101,1
    - Dst: _get_da_inv
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:101,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:105,1
    - Dst: sm2_compute_za
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:107,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:107,1
    - Dst: Botan::SM2_Signature_Operation::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:108,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: 110
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 110
    functionName: Botan::SM2_Signature_Operation::SM2_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _private_key
    - sm2_compute_za
    - Botan::HashFunction::create_or_throw
    - _public_ec_point
    - _get_da_inv
    - Botan::SM2_Signature_Operation::update
    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:112,1
    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::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:116,1
    - Dst: insert
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:118,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:118,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:118,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:118,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 120
    functionName: Botan::SM2_Signature_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 11
    functionsReached:
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    - Botan::SM2_Signature_Operation::update
    - insert
    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: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: 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:139,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:139,1
    - Dst: Botan::SM2_Signature_Operation::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:141,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:144,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:145,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:150,1
    - Dst: Botan::EC_Scalar::gk_x_mod_order
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:152,1
    - Dst: Botan::EC_Scalar::deserialize_pair
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 136
    functionDepth: 3
    functionLinenumber: 136
    functionLinenumberEnd: 156
    functionName: Botan::SM2_Signature_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - final
    - Botan::EC_Scalar::from_bytes_mod_order
    - clear
    - Botan::EC_Scalar::random
    - Botan::EC_Scalar::deserialize_pair
    - Botan::SM2_Signature_Operation::update
    - Botan::EC_Scalar::gk_x_mod_order
    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:164,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:164,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:168,1
    - Dst: sm2_compute_za
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:170,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:170,1
    - Dst: Botan::SM2_Verification_Operation::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:171,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: 173
      start: 163
    functionDepth: 3
    functionLinenumber: 163
    functionLinenumberEnd: 173
    functionName: Botan::SM2_Verification_Operation::SM2_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - domain
    - sm2_compute_za
    - Botan::HashFunction::create_or_throw
    - _public_ec_point
    - Botan::SM2_Verification_Operation::update
    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:177,1
    - Dst: insert
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:179,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:179,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:179,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 181
    functionName: Botan::SM2_Verification_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 11
    functionsReached:
    - std::span<const uint8_t>::begin
    - end
    - Botan::SM2_Verification_Operation::update
    - std::span<const uint8_t>::end
    - insert
    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:185,1
    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::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:198,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:198,1
    - Dst: Botan::SM2_Verification_Operation::update
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:200,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:203,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:204,1
    - Dst: Botan::EC_Scalar::deserialize_pair
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:209,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:210,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:212,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:212,1
    - Dst: auto::is_nonzero
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:214,1
    - Dst: mul2_vartime_x_mod_order_eq
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:216,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 195
    functionDepth: 3
    functionLinenumber: 195
    functionLinenumberEnd: 221
    functionName: Botan::SM2_Verification_Operation::is_valid_signature
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - final
    - mul2_vartime_x_mod_order_eq
    - Botan::EC_Scalar::from_bytes_mod_order
    - clear
    - auto::is_nonzero
    - auto::value
    - Botan::EC_Scalar::deserialize_pair
    - Botan::SM2_Verification_Operation::update
    - is_nonzero
    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:237,1
    - Dst: std::string_view::substr
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:241,1
    - Dst: std::string_view::substr
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:242,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: 244
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 244
    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:249,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 248
    functionDepth: 1
    functionLinenumber: 248
    functionLinenumberEnd: 250
    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:254,1
    - Dst: parse_sm2_param_string
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:257,1
    - Dst: std::make_unique<SM2_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:258,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:261,1
    - Dst: Botan::SM2_PublicKey::algo_name
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:261,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 262
    functionName: Botan::SM2_PublicKey::create_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<SM2_Verification_Operation>
    - Provider_Not_Found
    - std::string_view::empty
    - parse_sm2_param_string
    - Botan::SM2_PublicKey::algo_name
    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:267,1
    - Dst: parse_sm2_param_string
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:270,1
    - Dst: std::make_unique<SM2_Signature_Operation>
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:271,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:274,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/sm2/sm2.cpp:274,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 275
    functionName: Botan::SM2_PrivateKey::create_signature_op
    functionSourceFile: /src/botan/src/lib/pubkey/sm2/sm2.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - std::string_view::empty
    - parse_sm2_param_string
    - std::make_unique<SM2_Signature_Operation>
    - algo_name
    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:
    - to_legacy_point
    - std::move
    - is_identity
    - BOTAN_ARG_CHECK
    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:
    - to_bigint
    - std::move
    - BOTAN_ARG_CHECK
    - 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:
    - last
    - std::span<const uint8_t>::size
    - Botan::decode_ec_secret_key_scalar
    - auto::value
    - Botan::Decoding_Error
    - Botan::copy_mem
    - Botan::EC_Scalar::deserialize
    - get_order_bytes
    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:
    - last
    - std::span<const uint8_t>::size
    - Botan::decode_ec_secret_key_scalar
    - auto::value
    - Botan::Decoding_Error
    - Botan::copy_mem
    - Botan::EC_Scalar::deserialize
    - get_order_bytes
    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>
    - invert
    - Botan::EC_AffinePoint::g_mul
    - public_point
    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:
    - to_legacy_point
    - std::move
    - is_identity
    - BOTAN_ARG_CHECK
    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:
    - to_bigint
    - std::move
    - BOTAN_ARG_CHECK
    - 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:
    - last
    - std::span<const uint8_t>::size
    - Botan::decode_ec_secret_key_scalar
    - auto::value
    - Botan::Decoding_Error
    - Botan::copy_mem
    - Botan::EC_Scalar::deserialize
    - get_order_bytes
    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:
    - last
    - std::span<const uint8_t>::size
    - Botan::decode_ec_secret_key_scalar
    - auto::value
    - Botan::Decoding_Error
    - Botan::copy_mem
    - Botan::EC_Scalar::deserialize
    - get_order_bytes
    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>
    - invert
    - Botan::EC_AffinePoint::g_mul
    - public_point
    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: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    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: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    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: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    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: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    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: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    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: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    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: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    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: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    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: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    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: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    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: 217
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 217
    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:
    - Botan::EC_PublicKey::key_length
    - ecp_work_factor
    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: 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:
    - domain
    - std::move
    - EC_AffinePoint
    - default_encoding_for
    - std::make_shared<const EC_PublicKey_Data>
    linkageType: ''
    returnType: void
    signature: void EC_PublicKey::EC_PublicKey(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: std::move
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:55,1
    - Dst: std::move
      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:
    - domain
    - std::move
    - std::make_shared<const EC_PublicKey_Data>
    - default_encoding_for
    linkageType: ''
    returnType: void
    signature: void EC_PublicKey::EC_PublicKey(EC_Group group, 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:
    - domain
    - parameters
    - default_encoding_for
    - std::make_shared<const EC_PublicKey_Data>
    - 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:
    - BOTAN_STATE_CHECK
    - group
    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:
    - BOTAN_STATE_CHECK
    - legacy_point
    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:
    - BOTAN_STATE_CHECK
    - public_key
    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:
    - Botan::EC_PublicKey::DER_domain
    - AlgorithmIdentifier
    - object_identifier
    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:
    - _public_ec_point
    - point_encoding
    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:
    - BOTAN_STATE_CHECK
    - legacy_bigint
    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:
    - BOTAN_STATE_CHECK
    - private_key
    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: 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:
    - domain
    - std::move
    - default_encoding_for
    - is_zero
    - Botan::EC_Scalar::random
    - Botan::EC_Scalar::from_bigint
    - std::make_shared<EC_PrivateKey_Data>
    - public_key
    linkageType: ''
    returnType: void
    signature: "void EC_PrivateKey::EC_PrivateKey(RandomNumberGenerator& rng,\n                             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: 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:
    - domain
    - std::move
    - default_encoding_for
    - Botan::EC_Scalar::random
    - std::make_shared<EC_PrivateKey_Data>
    - public_key
    linkageType: ''
    returnType: void
    signature: void EC_PrivateKey::EC_PrivateKey(RandomNumberGenerator& rng, 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: std::move
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:149,1
    - Dst: std::move
      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
    - std::move
    - default_encoding_for
    - std::make_shared<EC_PrivateKey_Data>
    - public_key
    linkageType: ''
    returnType: void
    signature: void EC_PrivateKey::EC_PrivateKey(EC_Group ec_group, 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:
    - BOTAN_STATE_CHECK
    - serialize
    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:
    - static_cast<size_t>
    - Botan::EC_PrivateKey::raw_private_key_bits
    - DER_Encoder
    - BOTAN_STATE_CHECK
    - public_key
    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
    - domain
    - secure_vector::empty
    - parameters
    - default_encoding_for
    - std::make_shared<EC_PublicKey_Data>
    - ASN1_Type
    - std::make_shared<EC_PrivateKey_Data>
    - public_key
    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:
    - '& EC_PublicKey::get_int_field(std::domain'
    - Public_Key::get_int_field
    - 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_PublicKey::get_int_field
    - '& EC_PrivateKey::get_int_field(std::private_value'
    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:
    - Botan::EC_PublicKey::key_length
    - ecp_work_factor
    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: 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:
    - domain
    - std::move
    - EC_AffinePoint
    - default_encoding_for
    - std::make_shared<const EC_PublicKey_Data>
    linkageType: ''
    returnType: void
    signature: void EC_PublicKey::EC_PublicKey(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: std::move
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:55,1
    - Dst: std::move
      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:
    - domain
    - std::move
    - std::make_shared<const EC_PublicKey_Data>
    - default_encoding_for
    linkageType: ''
    returnType: void
    signature: void EC_PublicKey::EC_PublicKey(EC_Group group, 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:
    - domain
    - parameters
    - default_encoding_for
    - std::make_shared<const EC_PublicKey_Data>
    - 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:
    - BOTAN_STATE_CHECK
    - group
    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:
    - BOTAN_STATE_CHECK
    - legacy_point
    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:
    - BOTAN_STATE_CHECK
    - public_key
    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:
    - Botan::EC_PublicKey::DER_domain
    - AlgorithmIdentifier
    - object_identifier
    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:
    - _public_ec_point
    - point_encoding
    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:
    - BOTAN_STATE_CHECK
    - legacy_bigint
    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:
    - BOTAN_STATE_CHECK
    - private_key
    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: 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:
    - domain
    - std::move
    - default_encoding_for
    - is_zero
    - Botan::EC_Scalar::random
    - Botan::EC_Scalar::from_bigint
    - std::make_shared<EC_PrivateKey_Data>
    - public_key
    linkageType: ''
    returnType: void
    signature: "void EC_PrivateKey::EC_PrivateKey(RandomNumberGenerator& rng,\n                             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: 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:
    - domain
    - std::move
    - default_encoding_for
    - Botan::EC_Scalar::random
    - std::make_shared<EC_PrivateKey_Data>
    - public_key
    linkageType: ''
    returnType: void
    signature: void EC_PrivateKey::EC_PrivateKey(RandomNumberGenerator& rng, 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: std::move
      Src: /src/botan/src/lib/pubkey/ecc_key/ecc_key.cpp:149,1
    - Dst: std::move
      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
    - std::move
    - default_encoding_for
    - std::make_shared<EC_PrivateKey_Data>
    - public_key
    linkageType: ''
    returnType: void
    signature: void EC_PrivateKey::EC_PrivateKey(EC_Group ec_group, 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:
    - BOTAN_STATE_CHECK
    - serialize
    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:
    - static_cast<size_t>
    - Botan::EC_PrivateKey::raw_private_key_bits
    - DER_Encoder
    - BOTAN_STATE_CHECK
    - public_key
    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
    - domain
    - secure_vector::empty
    - parameters
    - default_encoding_for
    - std::make_shared<EC_PublicKey_Data>
    - ASN1_Type
    - std::make_shared<EC_PrivateKey_Data>
    - public_key
    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:
    - '& EC_PublicKey::get_int_field(std::domain'
    - Public_Key::get_int_field
    - 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_PublicKey::get_int_field
    - '& EC_PrivateKey::get_int_field(std::private_value'
    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::fmt
    - Botan::Decoding_Error
    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:
    - secure_vector::data
    - Botan::data
    - Botan::curve25519_donna
    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::fmt
    - Botan::Decoding_Error
    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:
    - secure_vector::data
    - Botan::data
    - Botan::curve25519_donna
    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:
    - AlgorithmIdentifier
    - object_identifier
    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:
    - assign
    - size_check
    - size
    - std::span<const uint8_t>::begin
    - 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:
    - Decoding_Error
    - resize
    - assign
    - data
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::begin
    - std::span<const uint8_t>::end
    - curve25519_basepoint
    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:
    - resize
    - random_vec
    - curve25519_basepoint
    - data
    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
    - resize
    - size_check
    - 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:
    - curve25519_basepoint
    - data
    - 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:
    - curve25519
    - size_check
    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:
    - agree
    - Botan::CT::all_zeros
    - auto::data
    - Invalid_Argument
    - auto::size
    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:
    - agree
    - Botan::CT::all_zeros
    - auto::data
    - Invalid_Argument
    - auto::size
    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:
    - Provider_Not_Found
    - std::make_unique<X25519_KA_Operation>
    - algo_name
    - std::string_view::empty
    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::fmt
    - Botan::Decoding_Error
    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:
    - secure_vector::data
    - Botan::data
    - Botan::curve25519_donna
    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::fmt
    - Botan::Decoding_Error
    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:
    - secure_vector::data
    - Botan::data
    - Botan::curve25519_donna
    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:
    - AlgorithmIdentifier
    - object_identifier
    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:
    - assign
    - size_check
    - size
    - std::span<const uint8_t>::begin
    - 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:
    - Decoding_Error
    - resize
    - assign
    - data
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::begin
    - std::span<const uint8_t>::end
    - curve25519_basepoint
    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:
    - resize
    - random_vec
    - curve25519_basepoint
    - data
    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
    - resize
    - size_check
    - 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:
    - curve25519_basepoint
    - data
    - 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:
    - curve25519
    - size_check
    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:
    - agree
    - Botan::CT::all_zeros
    - auto::data
    - Invalid_Argument
    - auto::size
    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:
    - agree
    - Botan::CT::all_zeros
    - auto::data
    - Invalid_Argument
    - auto::size
    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:
    - Provider_Not_Found
    - std::make_unique<X25519_KA_Operation>
    - algo_name
    - std::string_view::empty
    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: 60
    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: 57
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 57
    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:67,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 75
    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:80,1
    - Dst: Botan::fsum
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:81,1
    - Dst: Botan::fdifference_backwards
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: Botan::fadd_sub
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 0
    functionsReached:
    - Botan::fsum
    - Botan::fdifference_backwards
    - Botan::copy_mem
    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:89,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:92,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:92,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:95,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:95,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:98,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:98,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:101,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:101,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:104,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: 105
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 105
    functionName: Botan::fscalar_product
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 0
    functionsReached:
    - uint128_t
    - Botan::carry_shift
    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: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: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:120,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:145,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:147,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:149,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:151,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:153,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: 168
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 168
    functionName: Botan::fmul
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 0
    functionsReached:
    - uint128_t
    - Botan::carry_shift
    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: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: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:188,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:188,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:188,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:191,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:193,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:195,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:197,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 215
    functionName: Botan::fsquare
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 0
    functionsReached:
    - uint128_t
    - Botan::carry_shift
    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: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
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - uint64_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 224
    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: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: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:234,1
    - Dst: Botan::store_le
      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
    - Dst: Botan::combine_lower
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 39
    argCount: 2
    argNames:
    - out
    - input
    argTypes:
    - uint8_t*
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 290
    functionName: Botan::fcontract
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 0
    functionsReached:
    - uint128_t
    - Botan::store_le
    - Botan::combine_lower
    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:317,1
    - Dst: Botan::fadd_sub
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:318,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:320,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:321,1
    - Dst: Botan::fadd_sub
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:323,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:325,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:326,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:327,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:329,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:330,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:331,1
    - Dst: Botan::fdifference_backwards
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:333,1
    - Dst: Botan::fscalar_product
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:334,1
    - Dst: Botan::fsum
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:335,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:337,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: 338
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 338
    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::fsquare
    - Botan::fdifference_backwards
    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:349,1
    - Dst: CT::Mask<uint64_t>::if_set_return
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:353,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: 357
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 357
    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:375,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::CT::Mask::expand_bit
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:386,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:388,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:389,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:391,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:392,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:394,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:395,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:397,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:398,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:400,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:401,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:403,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:404,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:406,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:407,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:409,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:410,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:412,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:415,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:416,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: 417
      start: 365
    functionDepth: 3
    functionLinenumber: 365
    functionLinenumberEnd: 417
    functionName: Botan::cmult
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 0
    functionsReached:
    - Botan::swap_conditional
    - Botan::fmonty
    - Botan::copy_mem
    - 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:428,1
    - Dst: Botan::fsquare
      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::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:431,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:432,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:433,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:434,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:435,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:436,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:437,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:438,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:439,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:440,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:441,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:442,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:443,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:444,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:445,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:446,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:447,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:448,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 2
    argNames:
    - out
    - z
    argTypes:
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 422
    functionDepth: 2
    functionLinenumber: 422
    functionLinenumberEnd: 450
    functionName: Botan::crecip
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 0
    functionsReached:
    - Botan::fsquare
    - Botan::fmul
    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: 57
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 57
    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:67,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 75
    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:80,1
    - Dst: Botan::fsum
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:81,1
    - Dst: Botan::fdifference_backwards
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: Botan::fadd_sub
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 1
    functionsReached:
    - Botan::fsum
    - Botan::fdifference_backwards
    - Botan::copy_mem
    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:89,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:92,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:92,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:95,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:95,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:98,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:98,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:101,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:101,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:104,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: 105
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 105
    functionName: Botan::fscalar_product
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 1
    functionsReached:
    - uint128_t
    - Botan::carry_shift
    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: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: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:120,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:145,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:147,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:149,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:151,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:153,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: 168
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 168
    functionName: Botan::fmul
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 2
    functionsReached:
    - uint128_t
    - Botan::carry_shift
    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: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: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:188,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:188,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:188,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:191,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:193,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:195,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:197,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 215
    functionName: Botan::fsquare
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 2
    functionsReached:
    - uint128_t
    - Botan::carry_shift
    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: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
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - uint64_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 224
    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: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: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:234,1
    - Dst: Botan::store_le
      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
    - Dst: Botan::combine_lower
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 39
    argCount: 2
    argNames:
    - out
    - input
    argTypes:
    - uint8_t*
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 290
    functionName: Botan::fcontract
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 0
    functionsReached:
    - uint128_t
    - Botan::store_le
    - Botan::combine_lower
    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:317,1
    - Dst: Botan::fadd_sub
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:318,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:320,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:321,1
    - Dst: Botan::fadd_sub
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:323,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:325,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:326,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:327,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:329,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:330,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:331,1
    - Dst: Botan::fdifference_backwards
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:333,1
    - Dst: Botan::fscalar_product
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:334,1
    - Dst: Botan::fsum
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:335,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:337,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: 338
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 338
    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::fsquare
    - Botan::fdifference_backwards
    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:349,1
    - Dst: CT::Mask<uint64_t>::if_set_return
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:353,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: 357
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 357
    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:375,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::CT::Mask::expand_bit
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:386,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:388,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:389,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:391,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:392,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:394,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:395,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:397,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:398,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:400,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:401,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:403,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:404,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:406,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:407,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:409,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:410,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:412,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:415,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:416,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: 417
      start: 365
    functionDepth: 3
    functionLinenumber: 365
    functionLinenumberEnd: 417
    functionName: Botan::cmult
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 0
    functionsReached:
    - Botan::swap_conditional
    - Botan::fmonty
    - Botan::copy_mem
    - 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:428,1
    - Dst: Botan::fsquare
      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::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:431,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:432,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:433,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:434,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:435,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:436,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:437,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:438,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:439,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:440,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:441,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:442,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:443,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:444,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:445,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:446,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:447,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:448,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 2
    argNames:
    - out
    - z
    argTypes:
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 422
    functionDepth: 2
    functionLinenumber: 422
    functionLinenumberEnd: 450
    functionName: Botan::crecip
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 0
    functionsReached:
    - Botan::fsquare
    - Botan::fmul
    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:455,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:456,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:464,1
    - Dst: Botan::fexpand
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:469,1
    - Dst: Botan::cmult
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:470,1
    - Dst: Botan::crecip
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:471,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:472,1
    - Dst: Botan::fcontract
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:473,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
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:477,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: 478
      start: 454
    functionDepth: 4
    functionLinenumber: 454
    functionLinenumberEnd: 478
    functionName: Botan::curve25519_donna
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 6
    functionsReached:
    - Botan::fcontract
    - Botan::CT::poison
    - Botan::fmul
    - Botan::copy_mem
    - Botan::fexpand
    - Botan::CT::unpoison
    - Botan::crecip
    - 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: 57
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 57
    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:67,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 75
    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:80,1
    - Dst: Botan::fsum
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:81,1
    - Dst: Botan::fdifference_backwards
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: Botan::fadd_sub
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 2
    functionsReached:
    - Botan::fsum
    - Botan::fdifference_backwards
    - Botan::copy_mem
    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:89,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:92,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:92,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:95,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:95,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:98,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:98,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:101,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:101,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:104,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: 105
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 105
    functionName: Botan::fscalar_product
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 2
    functionsReached:
    - uint128_t
    - Botan::carry_shift
    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: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: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:120,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:145,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:147,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:149,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:151,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:153,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: 168
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 168
    functionName: Botan::fmul
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 5
    functionsReached:
    - uint128_t
    - Botan::carry_shift
    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: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: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:188,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:188,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:188,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:191,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:193,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:195,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:197,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 215
    functionName: Botan::fsquare
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 4
    functionsReached:
    - uint128_t
    - Botan::carry_shift
    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: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
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - uint64_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 224
    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: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: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:234,1
    - Dst: Botan::store_le
      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
    - Dst: Botan::combine_lower
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 39
    argCount: 2
    argNames:
    - out
    - input
    argTypes:
    - uint8_t*
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 290
    functionName: Botan::fcontract
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 1
    functionsReached:
    - uint128_t
    - Botan::store_le
    - Botan::combine_lower
    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:317,1
    - Dst: Botan::fadd_sub
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:318,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:320,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:321,1
    - Dst: Botan::fadd_sub
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:323,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:325,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:326,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:327,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:329,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:330,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:331,1
    - Dst: Botan::fdifference_backwards
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:333,1
    - Dst: Botan::fscalar_product
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:334,1
    - Dst: Botan::fsum
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:335,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:337,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: 338
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 338
    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::fsquare
    - Botan::fdifference_backwards
    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:349,1
    - Dst: CT::Mask<uint64_t>::if_set_return
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:353,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: 357
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 357
    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:375,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::CT::Mask::expand_bit
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:386,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:388,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:389,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:391,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:392,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:394,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:395,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:397,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:398,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:400,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:401,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:403,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:404,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:406,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:407,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:409,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:410,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:412,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:415,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:416,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: 417
      start: 365
    functionDepth: 3
    functionLinenumber: 365
    functionLinenumberEnd: 417
    functionName: Botan::cmult
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 1
    functionsReached:
    - Botan::swap_conditional
    - Botan::fmonty
    - Botan::copy_mem
    - 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:428,1
    - Dst: Botan::fsquare
      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::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:431,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:432,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:433,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:434,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:435,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:436,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:437,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:438,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:439,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:440,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:441,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:442,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:443,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:444,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:445,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:446,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:447,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:448,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 2
    argNames:
    - out
    - z
    argTypes:
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 422
    functionDepth: 2
    functionLinenumber: 422
    functionLinenumberEnd: 450
    functionName: Botan::crecip
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 1
    functionsReached:
    - Botan::fsquare
    - Botan::fmul
    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: 57
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 57
    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:67,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 75
    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:80,1
    - Dst: Botan::fsum
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:81,1
    - Dst: Botan::fdifference_backwards
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 83
    functionName: Botan::fadd_sub
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 3
    functionsReached:
    - Botan::fsum
    - Botan::fdifference_backwards
    - Botan::copy_mem
    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:89,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:92,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:92,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:95,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:95,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:98,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:98,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:101,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:101,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:104,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: 105
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 105
    functionName: Botan::fscalar_product
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 3
    functionsReached:
    - uint128_t
    - Botan::carry_shift
    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: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: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:120,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:145,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:147,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:149,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:151,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:153,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: 168
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 168
    functionName: Botan::fmul
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 7
    functionsReached:
    - uint128_t
    - Botan::carry_shift
    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: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: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:188,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:188,1
    - Dst: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:188,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:191,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:193,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:195,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:197,1
    - Dst: Botan::carry_shift
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 215
    functionName: Botan::fsquare
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 6
    functionsReached:
    - uint128_t
    - Botan::carry_shift
    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: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
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - uint64_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 224
    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: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: uint128_t
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:234,1
    - Dst: Botan::store_le
      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
    - Dst: Botan::combine_lower
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 39
    argCount: 2
    argNames:
    - out
    - input
    argTypes:
    - uint8_t*
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 290
    functionName: Botan::fcontract
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 1
    functionsReached:
    - uint128_t
    - Botan::store_le
    - Botan::combine_lower
    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:317,1
    - Dst: Botan::fadd_sub
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:318,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:320,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:321,1
    - Dst: Botan::fadd_sub
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:323,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:325,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:326,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:327,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:329,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:330,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:331,1
    - Dst: Botan::fdifference_backwards
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:333,1
    - Dst: Botan::fscalar_product
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:334,1
    - Dst: Botan::fsum
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:335,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:337,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: 338
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 338
    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::fsquare
    - Botan::fdifference_backwards
    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:349,1
    - Dst: CT::Mask<uint64_t>::if_set_return
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:353,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: 357
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 357
    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:375,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::CT::Mask::expand_bit
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:386,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:388,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:389,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:391,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:392,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:394,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:395,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:397,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:398,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:400,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:401,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:403,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:404,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:406,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:407,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:409,1
    - Dst: Botan::fmonty
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:410,1
    - Dst: Botan::swap_conditional
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:412,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:415,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:416,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: 417
      start: 365
    functionDepth: 3
    functionLinenumber: 365
    functionLinenumberEnd: 417
    functionName: Botan::cmult
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 1
    functionsReached:
    - Botan::swap_conditional
    - Botan::fmonty
    - Botan::copy_mem
    - 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:428,1
    - Dst: Botan::fsquare
      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::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:431,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:432,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:433,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:434,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:435,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:436,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:437,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:438,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:439,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:440,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:441,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:442,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:443,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:444,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:445,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:446,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:447,1
    - Dst: Botan::fsquare
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:448,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 2
    argNames:
    - out
    - z
    argTypes:
    - uint64_t[]
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 422
    functionDepth: 2
    functionLinenumber: 422
    functionLinenumberEnd: 450
    functionName: Botan::crecip
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 1
    functionsReached:
    - Botan::fsquare
    - Botan::fmul
    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:455,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:456,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:464,1
    - Dst: Botan::fexpand
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:469,1
    - Dst: Botan::cmult
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:470,1
    - Dst: Botan::crecip
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:471,1
    - Dst: Botan::fmul
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:472,1
    - Dst: Botan::fcontract
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:473,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
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/x25519/donna.cpp:477,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: 478
      start: 454
    functionDepth: 4
    functionLinenumber: 454
    functionLinenumberEnd: 478
    functionName: Botan::curve25519_donna
    functionSourceFile: /src/botan/src/lib/pubkey/x25519/donna.cpp
    functionUses: 6
    functionsReached:
    - Botan::fcontract
    - Botan::CT::poison
    - Botan::fmul
    - Botan::copy_mem
    - Botan::fexpand
    - Botan::CT::unpoison
    - Botan::crecip
    - 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:
    - auto::data
    - std::span<U>::subspan
    - BOTAN_DEBUG_ASSERT
    - std::span<U>::size
    - auto::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:
    - Botan_Tests::Mock_Trait::montgomery_reduce_coefficient
    - static_cast<T2>
    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
    - auto::if_set_return
    - static_cast<unsigned_T>
    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_Tests::Mock_Trait::poly_pointwise_montgomery
    - clear_mem
    - Botan::CRYSTALS::Trait_Base::poly_in_polyvec
    - Botan::CRYSTALS::Trait_Base::poly_add
    - Botan::CRYSTALS::Trait_Base::barrett_reduce
    - Botan::CRYSTALS::Trait_Base::polys_in_polyvec
    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:
    - Botan::CRYSTALS::Polynomial::from_domain_cast
    - std::move
    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:
    - static_cast<int64_t>
    - Botan_Tests::test_other_key_not_set
    - BOTAN_DEBUG_ASSERT
    - auto::as_bool
    - map
    - Botan_Tests::get_test_instances_min
    - Botan::CT::Mask::is_within_range
    - static_cast<unsigned_T>
    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:
    - Botan::CRYSTALS::Polynomial::from_domain_cast
    - std::move
    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:
    - static_cast<int64_t>
    - Botan_Tests::test_other_key_not_set
    - BOTAN_DEBUG_ASSERT
    - auto::as_bool
    - map
    - Botan_Tests::get_test_instances_min
    - Botan::CT::Mask::is_within_range
    - static_cast<unsigned_T>
    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:
    - BOTAN_ASSERT_NOMSG
    - owns_storage
    - std::span<T, Trait::N>
    - std::move
    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:
    - copy_mem
    - BOTAN_DEBUG_ASSERT
    - ThisPolynomial::owns_storage
    - std::span<T, Trait::N>
    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::detail::ct_all_within_range
    - Botan::CRYSTALS::Polynomial::coefficients
    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:
    - std::move
    - subspan
    - emplace_back
    - Polynomial<Trait, D>
    - BOTAN_DEBUG_ASSERT
    - Botan::CRYSTALS::PolynomialVector::size
    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:
    - subspan
    - emplace_back
    - Polynomial<Trait, D>
    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:
    - m_vec::size
    - size
    - coefficients
    - Botan::CRYSTALS::Trait_Base::poly_add
    - BOTAN_ASSERT
    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:
    - m_vec::size
    - size
    - coefficients
    - Botan::CRYSTALS::Trait_Base::poly_sub
    - BOTAN_ASSERT
    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:
    - coefficients
    - Botan::CRYSTALS::Trait_Base::poly_cadd_q
    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:
    - reserve
    - emplace_back
    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
    - reduce
    - size
    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
    - reduce
    - size
    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:
    - detail::domain_cast<Domain::NTT>
    - std::move
    - Botan_Tests::Mock_Trait::ntt
    - auto::coefficients
    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
    - detail::domain_cast<Domain::Normal>
    - Botan_Tests::Mock_Trait::inverse_ntt
    - auto::coefficients
    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:
    - coefficients
    - detail::domain_cast<Domain::NTT>
    - std::move
    - Botan_Tests::Mock_Trait::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:
    - coefficients
    - std::move
    - detail::domain_cast<Domain::Normal>
    - 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:
    - coefficients
    - size
    - BOTAN_DEBUG_ASSERT
    - Botan::CRYSTALS::Trait_Base::poly_add
    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:
    - coefficients
    - size
    - Botan::CRYSTALS::Trait_Base::polyvec_pointwise_acc_montgomery
    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:
    - coefficients
    - Botan_Tests::Mock_Trait::poly_pointwise_montgomery
    - size
    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:
    - coefficients
    - Botan_Tests::Mock_Trait::poly_pointwise_montgomery
    - Polynomial::coefficients
    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:
    - auto::data
    - std::span<U>::subspan
    - BOTAN_DEBUG_ASSERT
    - std::span<U>::size
    - auto::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:
    - Botan_Tests::Mock_Trait::montgomery_reduce_coefficient
    - static_cast<T2>
    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
    - auto::if_set_return
    - static_cast<unsigned_T>
    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_Tests::Mock_Trait::poly_pointwise_montgomery
    - clear_mem
    - Botan::CRYSTALS::Trait_Base::poly_in_polyvec
    - Botan::CRYSTALS::Trait_Base::poly_add
    - Botan::CRYSTALS::Trait_Base::barrett_reduce
    - Botan::CRYSTALS::Trait_Base::polys_in_polyvec
    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:
    - Botan::CRYSTALS::Polynomial::from_domain_cast
    - std::move
    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:
    - static_cast<int64_t>
    - Botan_Tests::test_other_key_not_set
    - BOTAN_DEBUG_ASSERT
    - auto::as_bool
    - map
    - Botan_Tests::get_test_instances_min
    - Botan::CT::Mask::is_within_range
    - static_cast<unsigned_T>
    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:
    - Botan::CRYSTALS::Polynomial::from_domain_cast
    - std::move
    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:
    - static_cast<int64_t>
    - Botan_Tests::test_other_key_not_set
    - BOTAN_DEBUG_ASSERT
    - auto::as_bool
    - map
    - Botan_Tests::get_test_instances_min
    - Botan::CT::Mask::is_within_range
    - static_cast<unsigned_T>
    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:
    - BOTAN_ASSERT_NOMSG
    - owns_storage
    - std::span<T, Trait::N>
    - std::move
    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:
    - copy_mem
    - BOTAN_DEBUG_ASSERT
    - ThisPolynomial::owns_storage
    - std::span<T, Trait::N>
    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::detail::ct_all_within_range
    - Botan::CRYSTALS::Polynomial::coefficients
    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:
    - std::move
    - subspan
    - emplace_back
    - Polynomial<Trait, D>
    - BOTAN_DEBUG_ASSERT
    - Botan::CRYSTALS::PolynomialVector::size
    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:
    - subspan
    - emplace_back
    - Polynomial<Trait, D>
    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:
    - m_vec::size
    - size
    - coefficients
    - Botan::CRYSTALS::Trait_Base::poly_add
    - BOTAN_ASSERT
    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:
    - m_vec::size
    - size
    - coefficients
    - Botan::CRYSTALS::Trait_Base::poly_sub
    - BOTAN_ASSERT
    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:
    - coefficients
    - Botan::CRYSTALS::Trait_Base::poly_cadd_q
    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:
    - reserve
    - emplace_back
    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
    - reduce
    - size
    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
    - reduce
    - size
    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:
    - detail::domain_cast<Domain::NTT>
    - std::move
    - Botan_Tests::Mock_Trait::ntt
    - auto::coefficients
    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
    - detail::domain_cast<Domain::Normal>
    - Botan_Tests::Mock_Trait::inverse_ntt
    - auto::coefficients
    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:
    - coefficients
    - detail::domain_cast<Domain::NTT>
    - std::move
    - Botan_Tests::Mock_Trait::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:
    - coefficients
    - std::move
    - detail::domain_cast<Domain::Normal>
    - 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:
    - coefficients
    - size
    - BOTAN_DEBUG_ASSERT
    - Botan::CRYSTALS::Trait_Base::poly_add
    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:
    - coefficients
    - size
    - Botan::CRYSTALS::Trait_Base::polyvec_pointwise_acc_montgomery
    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:
    - coefficients
    - Botan_Tests::Mock_Trait::poly_pointwise_montgomery
    - size
    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:
    - coefficients
    - Botan_Tests::Mock_Trait::poly_pointwise_montgomery
    - Polynomial::coefficients
    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:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' slicer'
    argTypes:
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    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:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' xof'
    argTypes:
    - Botan::XOF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    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:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' slicer'
    argTypes:
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    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:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' xof'
    argTypes:
    - Botan::XOF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    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:119,1
    - Dst: remaining_capacity
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:119,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:119,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:133,1
    - Dst: map
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:140,1
    - Dst: static_cast<typename trait::sink_t>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:141,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:145,1
    - Dst: store_le
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:165,1
    - Dst: append
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:166,1
    - Dst: template first<trait::bytes_per_pack>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:166,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - ' p'
    - ' stuffer'
    - map
    argTypes:
    - Polynomial<PolyTrait, D>
    - BufferStuffer
    - MapFnT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 168
    functionName: Botan::CRYSTALS::pack
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h
    functionUses: 0
    functionsReached:
    - store_le
    - size
    - BOTAN_DEBUG_ASSERT
    - append
    - map
    - template first<trait::bytes_per_pack>
    - static_cast<typename trait::sink_t>
    - 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:193,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:198,1
    - Dst: get_bytes
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:199,1
    - Dst: template first<trait::bytes_per_pack>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:199,1
    - Dst: load_le<typename trait::collector_array>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:200,1
    - Dst: unmap
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:215,1
    - Dst: static_cast<typename trait::unsigned_T>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:215,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: 218
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 218
    functionName: Botan::CRYSTALS::unpack
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h
    functionUses: 0
    functionsReached:
    - static_cast<typename trait::unsigned_T>
    - get_bytes
    - size
    - Botan::CRYSTALS::detail::as_byte_source
    - load_le<typename trait::collector_array>
    - template first<trait::bytes_per_pack>
    - unmap
    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:224,1
    - Dst: static_cast<unsigned_T>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' p'
    - ' stuffer'
    argTypes:
    - Polynomial<PolyTrait, D>
    - BufferStuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: Botan::CRYSTALS::pack
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h
    functionUses: 1
    functionsReached:
    - static_cast<unsigned_T>
    - Botan::CRYSTALS::pack
    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:231,1
    - Dst: static_cast<typename PolyTrait::T>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' p'
    - ' byte_source'
    argTypes:
    - Polynomial<PolyTrait, D>
    - ByteSourceT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 232
    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:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' slicer'
    argTypes:
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    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:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' xof'
    argTypes:
    - Botan::XOF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    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:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' slicer'
    argTypes:
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    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:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' xof'
    argTypes:
    - Botan::XOF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    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:119,1
    - Dst: remaining_capacity
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:119,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:119,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:133,1
    - Dst: map
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:140,1
    - Dst: static_cast<typename trait::sink_t>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:141,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:145,1
    - Dst: store_le
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:165,1
    - Dst: append
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:166,1
    - Dst: template first<trait::bytes_per_pack>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:166,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - ' p'
    - ' stuffer'
    - map
    argTypes:
    - Polynomial<PolyTrait, D>
    - BufferStuffer
    - MapFnT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 168
    functionName: Botan::CRYSTALS::pack
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h
    functionUses: 1
    functionsReached:
    - store_le
    - size
    - BOTAN_DEBUG_ASSERT
    - append
    - map
    - template first<trait::bytes_per_pack>
    - static_cast<typename trait::sink_t>
    - 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:193,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:198,1
    - Dst: get_bytes
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:199,1
    - Dst: template first<trait::bytes_per_pack>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:199,1
    - Dst: load_le<typename trait::collector_array>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:200,1
    - Dst: unmap
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:215,1
    - Dst: static_cast<typename trait::unsigned_T>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:215,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: 218
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 218
    functionName: Botan::CRYSTALS::unpack
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h
    functionUses: 1
    functionsReached:
    - static_cast<typename trait::unsigned_T>
    - get_bytes
    - size
    - Botan::CRYSTALS::detail::as_byte_source
    - load_le<typename trait::collector_array>
    - template first<trait::bytes_per_pack>
    - unmap
    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:224,1
    - Dst: static_cast<unsigned_T>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' p'
    - ' stuffer'
    argTypes:
    - Polynomial<PolyTrait, D>
    - BufferStuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: Botan::CRYSTALS::pack
    functionSourceFile: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h
    functionUses: 2
    functionsReached:
    - static_cast<unsigned_T>
    - Botan::CRYSTALS::pack
    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:231,1
    - Dst: static_cast<typename PolyTrait::T>
      Src: /src/botan/src/lib/pubkey/pqcrystals/pqcrystals_encoding.h:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' p'
    - ' byte_source'
    argTypes:
    - Polynomial<PolyTrait, D>
    - ByteSourceT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 232
    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:
    - static_cast<T2>
    - Botan::montgomery_R
    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:
    - Botan::swap
    - std::tie
    - static_cast<T>
    - std::make_tuple
    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:
    - bitreverse
    - Botan::ceil_log2
    - csubq
    - std::array::size
    - pow
    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:
    - std::forward<PredicateFnT>
    - Botan::detail::Bounded_XOF::next
    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:
    - Botan::detail::Bounded_XOF::take
    - transformer
    - predicate
    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:
    - std::forward<PredicateFnT>
    - Botan::detail::Bounded_XOF::next
    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:
    - Botan::detail::Bounded_XOF::take
    - transformer
    - predicate
    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:
    - static_cast<T2>
    - Botan::montgomery_R
    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:
    - Botan::swap
    - std::tie
    - static_cast<T>
    - std::make_tuple
    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:
    - bitreverse
    - Botan::ceil_log2
    - csubq
    - std::array::size
    - pow
    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:
    - std::forward<PredicateFnT>
    - Botan::detail::Bounded_XOF::next
    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:
    - Botan::detail::Bounded_XOF::take
    - transformer
    - predicate
    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:
    - std::forward<PredicateFnT>
    - Botan::detail::Bounded_XOF::next
    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:
    - Botan::detail::Bounded_XOF::take
    - transformer
    - predicate
    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: 25
    functionsReached:
    - data
    - size
    - 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: 26
    functionsReached:
    - data
    - size
    - 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: 27
    functionsReached:
    - data
    - size
    - 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:
    - data
    - size
    - 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::empty
    - std::string_view::size
    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::empty
    - std::string_view::size
    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: 28
    functionsReached:
    - Botan::PEM_Code::linewrap
    - base64_encode
    - 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: 14
    functionsReached:
    - Decoding_Error
    - Botan::PEM_Code::decode
    - fmt
    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: 9
    functionsReached:
    - Decoding_Error
    - std::vector::push_back
    - read_byte
    - static_cast<char>
    - clear
    - std::vector::data
    - std::vector::size
    - base64_decode
    - std::string::length
    - fmt
    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: 15
    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: 10
    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:
    - std::string::size
    - peek
    - static_cast<char>
    - secure_vector::size
    - secure_vector::data
    - std::string::length
    - fmt
    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::empty
    - std::string_view::size
    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::empty
    - std::string_view::size
    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: 28
    functionsReached:
    - Botan::PEM_Code::linewrap
    - base64_encode
    - 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: 15
    functionsReached:
    - Decoding_Error
    - Botan::PEM_Code::decode
    - fmt
    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: 11
    functionsReached:
    - Decoding_Error
    - std::vector::push_back
    - read_byte
    - static_cast<char>
    - clear
    - std::vector::data
    - std::vector::size
    - base64_decode
    - std::string::length
    - fmt
    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: 16
    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: 12
    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:
    - std::string::size
    - peek
    - static_cast<char>
    - secure_vector::size
    - secure_vector::data
    - std::string::length
    - fmt
    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:
    - Dst: Botan::domain
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.h: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::_signature_element_size_for_DER_encoding
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.h
    functionUses: 0
    functionsReached:
    - Botan::domain
    linkageType: ''
    returnType: std::optional<size_t>
    signature: std::optional<size_t> _signature_element_size_for_DER_encoding() const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PublicKeyOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    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:
    - Dst: Botan::domain
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.h: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::_signature_element_size_for_DER_encoding
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.h
    functionUses: 0
    functionsReached:
    - Botan::domain
    linkageType: ''
    returnType: std::optional<size_t>
    signature: std::optional<size_t> _signature_element_size_for_DER_encoding() const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PublicKeyOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    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::move
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.h:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' rng'
    - group
    argTypes:
    - RandomNumberGenerator
    - EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: ECKCDSA_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void ECKCDSA_PrivateKey(RandomNumberGenerator& rng, EC_Group group)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' rng'
    - ' group'
    - ' x'
    argTypes:
    - RandomNumberGenerator
    - EC_Group
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 107
    functionName: ECKCDSA_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECKCDSA_PrivateKey(RandomNumberGenerator& rng, const EC_Group&
      group, const BigInt& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ECKCDSA_PublicKey>
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:25,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:25,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.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::ECKCDSA_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _public_ec_point
    - std::make_unique<ECKCDSA_PublicKey>
    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:29,1
    - Dst: Botan::KeyPair::signature_consistency_check
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 28
    functionDepth: 3
    functionLinenumber: 28
    functionLinenumberEnd: 38
    functionName: Botan::ECKCDSA_PrivateKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_PrivateKey::check_key
    - Botan::KeyPair::signature_consistency_check
    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:43,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:49,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:49,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:50,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:50,1
    - Dst: Algorithm_Not_Found
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:58,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - padding
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 59
    functionName: Botan::eckcdsa_signature_hash
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - SCAN_Name::arg_count
    - Algorithm_Not_Found
    - SCAN_Name::arg
    - SCAN_Name::algo_name
    - Botan::HashFunction::create
    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:62,1
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:62,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:64,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:65,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:65,1
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:65,1
    - Dst: parameters_are_empty
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:68,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:69,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:72,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - ' alg_id'
    argTypes:
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 73
    functionName: Botan::eckcdsa_signature_hash
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::split_on
    - Botan::oid
    - Botan::HashFunction::create_or_throw
    - parameters_are_empty
    - auto::size
    - Botan::Decoding_Error
    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:76,1
    - Dst: auto::resize
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' point'
    - hash_block_size
    argTypes:
    - EC_AffinePoint
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 82
    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:108,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:109,1
    - Dst: erase
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:110,1
    - Dst: Botan::begin
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:110,1
    - Dst: Botan::begin
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:110,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: 112
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 112
    functionName: Botan::truncate_hash_if_needed
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::size
    - erase
    - Botan::begin
    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:120,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:121,1
    - Dst: eckcdsa_signature_hash
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:122,1
    - Dst: eckcdsa_prefix
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:123,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:123,1
    - Dst: hash_block_size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' eckcdsa'
    - padding
    argTypes:
    - ECKCDSA_PrivateKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 124
    functionName: Botan::ECKCDSA_Signature_Operation::ECKCDSA_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _private_key
    - hash_block_size
    - _public_ec_point
    - eckcdsa_signature_hash
    - eckcdsa_prefix
    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:128,1
    - Dst: Botan::ECKCDSA_Signature_Operation::update
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 132
    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:136,1
    - Dst: truncate_hash_if_needed
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:137,1
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:137,1
    - Dst: Botan::ECKCDSA_Signature_Operation::raw_sign
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 139
    functionName: Botan::ECKCDSA_Signature_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECKCDSA_Signature_Operation::raw_sign
    - truncate_hash_if_needed
    - get_order_bytes
    - final_stdvec
    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: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::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: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::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:158,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:159,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 161
    functionName: Botan::ECKCDSA_Signature_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_string
    - AlgorithmIdentifier
    - name
    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:164,1
    - Dst: Botan::ECKCDSA_Signature_Operation::update
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:168,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:168,1
    - Dst: final_stdvec
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:169,1
    - Dst: truncate_hash_if_needed
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:170,1
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:170,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:174,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:175,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:178,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:179,1
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:182,1
    - Dst: auto::serialize
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - msg
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 163
    functionDepth: 3
    functionLinenumber: 163
    functionLinenumberEnd: 183
    functionName: Botan::ECKCDSA_Signature_Operation::raw_sign
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 1
    functionsReached:
    - concat
    - Botan::EC_AffinePoint::g_mul
    - Botan::EC_Scalar::from_bytes_mod_order
    - auto::is_zero
    - auto::serialize
    - Botan::EC_Scalar::random
    - Internal_Error
    - truncate_hash_if_needed
    - xor_buf
    - Botan::ECKCDSA_Signature_Operation::update
    - get_order_bytes
    - final_stdvec
    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:191,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:192,1
    - Dst: eckcdsa_signature_hash
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:193,1
    - Dst: eckcdsa_prefix
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:194,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:194,1
    - Dst: hash_block_size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' eckcdsa'
    - padding
    argTypes:
    - ECKCDSA_PublicKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 195
    functionName: Botan::ECKCDSA_Verification_Operation::ECKCDSA_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    - hash_block_size
    - _public_ec_point
    - eckcdsa_signature_hash
    - eckcdsa_prefix
    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:198,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:199,1
    - Dst: eckcdsa_signature_hash
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:200,1
    - Dst: eckcdsa_prefix
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:201,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:201,1
    - Dst: hash_block_size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' eckcdsa'
    - ' alg_id'
    argTypes:
    - ECKCDSA_PublicKey
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 202
    functionName: Botan::ECKCDSA_Verification_Operation::ECKCDSA_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    - hash_block_size
    - _public_ec_point
    - eckcdsa_signature_hash
    - eckcdsa_prefix
    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:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 208
    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:223,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:223,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:223,1
    - Dst: Botan::ECKCDSA_Verification_Operation::update
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 226
    functionName: Botan::ECKCDSA_Verification_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 1
    functionsReached:
    - Botan::ECKCDSA_Verification_Operation::update
    - size
    - data
    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:230,1
    - Dst: truncate_hash_if_needed
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:231,1
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:231,1
    - Dst: Botan::ECKCDSA_Verification_Operation::verify
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 233
    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
    - truncate_hash_if_needed
    - get_order_bytes
    - final_stdvec
    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:236,1
    - Dst: min
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:238,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:238,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>::first
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:243,1
    - Dst: Botan::EC_Scalar::deserialize
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:245,1
    - Dst: std::span<const uint8_t>::last
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:245,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:246,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:247,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:247,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:249,1
    - Dst: mul2_vartime
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:251,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:251,1
    - Dst: process
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:252,1
    - Dst: auto::x_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:252,1
    - Dst: truncate_hash_if_needed
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:253,1
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:253,1
    - Dst: constant_time_compare
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:254,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: 259
      start: 235
    functionDepth: 3
    functionLinenumber: 235
    functionLinenumberEnd: 259
    functionName: Botan::ECKCDSA_Verification_Operation::verify
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 1
    functionsReached:
    - Botan::EC_Scalar::from_bytes_mod_order
    - mul2_vartime
    - process
    - std::span<const uint8_t>::size
    - min
    - auto::x_bytes
    - auto::value
    - constant_time_compare
    - truncate_hash_if_needed
    - xor_buf
    - Botan::EC_Scalar::deserialize
    - auto::size
    - std::span<const uint8_t>::last
    - get_order_bytes
    - std::span<const uint8_t>::first
    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:43,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:49,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:49,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:50,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:50,1
    - Dst: Algorithm_Not_Found
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:58,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - padding
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 59
    functionName: Botan::eckcdsa_signature_hash
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - SCAN_Name::arg_count
    - Algorithm_Not_Found
    - SCAN_Name::arg
    - SCAN_Name::algo_name
    - Botan::HashFunction::create
    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:62,1
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:62,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:64,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:65,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:65,1
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:65,1
    - Dst: parameters_are_empty
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:68,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:69,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:72,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - ' alg_id'
    argTypes:
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 73
    functionName: Botan::eckcdsa_signature_hash
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::split_on
    - Botan::oid
    - Botan::HashFunction::create_or_throw
    - parameters_are_empty
    - auto::size
    - Botan::Decoding_Error
    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:76,1
    - Dst: auto::resize
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' point'
    - hash_block_size
    argTypes:
    - EC_AffinePoint
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 82
    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:108,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:109,1
    - Dst: erase
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:110,1
    - Dst: Botan::begin
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:110,1
    - Dst: Botan::begin
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:110,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: 112
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 112
    functionName: Botan::truncate_hash_if_needed
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::size
    - erase
    - Botan::begin
    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:120,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:121,1
    - Dst: eckcdsa_signature_hash
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:122,1
    - Dst: eckcdsa_prefix
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:123,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:123,1
    - Dst: hash_block_size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' eckcdsa'
    - padding
    argTypes:
    - ECKCDSA_PrivateKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 124
    functionName: Botan::ECKCDSA_Signature_Operation::ECKCDSA_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _private_key
    - hash_block_size
    - _public_ec_point
    - eckcdsa_signature_hash
    - eckcdsa_prefix
    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:128,1
    - Dst: Botan::ECKCDSA_Signature_Operation::update
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 132
    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:136,1
    - Dst: truncate_hash_if_needed
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:137,1
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:137,1
    - Dst: Botan::ECKCDSA_Signature_Operation::raw_sign
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 134
    functionDepth: 4
    functionLinenumber: 134
    functionLinenumberEnd: 139
    functionName: Botan::ECKCDSA_Signature_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECKCDSA_Signature_Operation::raw_sign
    - truncate_hash_if_needed
    - get_order_bytes
    - final_stdvec
    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: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::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: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::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:158,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:159,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 161
    functionName: Botan::ECKCDSA_Signature_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_string
    - AlgorithmIdentifier
    - name
    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:164,1
    - Dst: Botan::ECKCDSA_Signature_Operation::update
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:168,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:168,1
    - Dst: final_stdvec
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:169,1
    - Dst: truncate_hash_if_needed
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:170,1
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:170,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:174,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:175,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:178,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:179,1
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:182,1
    - Dst: auto::serialize
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - msg
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 163
    functionDepth: 3
    functionLinenumber: 163
    functionLinenumberEnd: 183
    functionName: Botan::ECKCDSA_Signature_Operation::raw_sign
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 2
    functionsReached:
    - concat
    - Botan::EC_AffinePoint::g_mul
    - Botan::EC_Scalar::from_bytes_mod_order
    - auto::is_zero
    - auto::serialize
    - Botan::EC_Scalar::random
    - Internal_Error
    - truncate_hash_if_needed
    - xor_buf
    - Botan::ECKCDSA_Signature_Operation::update
    - get_order_bytes
    - final_stdvec
    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:191,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:192,1
    - Dst: eckcdsa_signature_hash
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:193,1
    - Dst: eckcdsa_prefix
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:194,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:194,1
    - Dst: hash_block_size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' eckcdsa'
    - padding
    argTypes:
    - ECKCDSA_PublicKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 195
    functionName: Botan::ECKCDSA_Verification_Operation::ECKCDSA_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    - hash_block_size
    - _public_ec_point
    - eckcdsa_signature_hash
    - eckcdsa_prefix
    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:198,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:199,1
    - Dst: eckcdsa_signature_hash
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:200,1
    - Dst: eckcdsa_prefix
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:201,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:201,1
    - Dst: hash_block_size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' eckcdsa'
    - ' alg_id'
    argTypes:
    - ECKCDSA_PublicKey
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 202
    functionName: Botan::ECKCDSA_Verification_Operation::ECKCDSA_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    - hash_block_size
    - _public_ec_point
    - eckcdsa_signature_hash
    - eckcdsa_prefix
    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:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 208
    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:223,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:223,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:223,1
    - Dst: Botan::ECKCDSA_Verification_Operation::update
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 226
    functionName: Botan::ECKCDSA_Verification_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 2
    functionsReached:
    - Botan::ECKCDSA_Verification_Operation::update
    - size
    - data
    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:230,1
    - Dst: truncate_hash_if_needed
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:231,1
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:231,1
    - Dst: Botan::ECKCDSA_Verification_Operation::verify
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 228
    functionDepth: 4
    functionLinenumber: 228
    functionLinenumberEnd: 233
    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
    - truncate_hash_if_needed
    - get_order_bytes
    - final_stdvec
    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:236,1
    - Dst: min
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:238,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:238,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>::first
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:243,1
    - Dst: Botan::EC_Scalar::deserialize
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:245,1
    - Dst: std::span<const uint8_t>::last
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:245,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:246,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:247,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:247,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:249,1
    - Dst: mul2_vartime
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:251,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:251,1
    - Dst: process
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:252,1
    - Dst: auto::x_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:252,1
    - Dst: truncate_hash_if_needed
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:253,1
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:253,1
    - Dst: constant_time_compare
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:254,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: 259
      start: 235
    functionDepth: 3
    functionLinenumber: 235
    functionLinenumberEnd: 259
    functionName: Botan::ECKCDSA_Verification_Operation::verify
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 2
    functionsReached:
    - Botan::EC_Scalar::from_bytes_mod_order
    - mul2_vartime
    - process
    - std::span<const uint8_t>::size
    - min
    - auto::x_bytes
    - auto::value
    - constant_time_compare
    - truncate_hash_if_needed
    - xor_buf
    - Botan::EC_Scalar::deserialize
    - auto::size
    - std::span<const uint8_t>::last
    - get_order_bytes
    - std::span<const uint8_t>::first
    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: std::make_unique<ECKCDSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:264,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 265
    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:269,1
    - Dst: std::make_unique<ECKCDSA_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:270,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:272,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:272,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 273
    functionName: Botan::ECKCDSA_PublicKey::create_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<ECKCDSA_Verification_Operation>
    - Provider_Not_Found
    - algo_name
    - std::string_view::empty
    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:277,1
    - Dst: std::make_unique<ECKCDSA_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:278,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:281,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:281,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - ' signature_algorithm'
    - provider
    argTypes:
    - AlgorithmIdentifier
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 282
    functionName: Botan::ECKCDSA_PublicKey::create_x509_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<ECKCDSA_Verification_Operation>
    - Provider_Not_Found
    - algo_name
    - std::string_view::empty
    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:287,1
    - Dst: std::make_unique<ECKCDSA_Signature_Operation>
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:288,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:290,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:290,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 291
    functionName: Botan::ECKCDSA_PrivateKey::create_signature_op
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<ECKCDSA_Signature_Operation>
    - Provider_Not_Found
    - algo_name
    - std::string_view::empty
    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:25,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:25,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.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::ECKCDSA_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _public_ec_point
    - std::make_unique<ECKCDSA_PublicKey>
    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:29,1
    - Dst: Botan::KeyPair::signature_consistency_check
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 28
    functionDepth: 3
    functionLinenumber: 28
    functionLinenumberEnd: 38
    functionName: Botan::ECKCDSA_PrivateKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_PrivateKey::check_key
    - Botan::KeyPair::signature_consistency_check
    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:43,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:49,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:49,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:50,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:50,1
    - Dst: Algorithm_Not_Found
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:58,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - padding
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 59
    functionName: Botan::eckcdsa_signature_hash
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - SCAN_Name::arg_count
    - Algorithm_Not_Found
    - SCAN_Name::arg
    - SCAN_Name::algo_name
    - Botan::HashFunction::create
    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:62,1
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:62,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:64,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:65,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:65,1
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:65,1
    - Dst: parameters_are_empty
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:68,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:69,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:72,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - ' alg_id'
    argTypes:
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 73
    functionName: Botan::eckcdsa_signature_hash
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::split_on
    - Botan::oid
    - Botan::HashFunction::create_or_throw
    - parameters_are_empty
    - auto::size
    - Botan::Decoding_Error
    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:76,1
    - Dst: auto::resize
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' point'
    - hash_block_size
    argTypes:
    - EC_AffinePoint
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 82
    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:108,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:109,1
    - Dst: erase
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:110,1
    - Dst: Botan::begin
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:110,1
    - Dst: Botan::begin
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:110,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: 112
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 112
    functionName: Botan::truncate_hash_if_needed
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::size
    - erase
    - Botan::begin
    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:120,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:121,1
    - Dst: eckcdsa_signature_hash
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:122,1
    - Dst: eckcdsa_prefix
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:123,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:123,1
    - Dst: hash_block_size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' eckcdsa'
    - padding
    argTypes:
    - ECKCDSA_PrivateKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 124
    functionName: Botan::ECKCDSA_Signature_Operation::ECKCDSA_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _private_key
    - hash_block_size
    - _public_ec_point
    - eckcdsa_signature_hash
    - eckcdsa_prefix
    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:128,1
    - Dst: Botan::ECKCDSA_Signature_Operation::update
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 132
    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:136,1
    - Dst: truncate_hash_if_needed
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:137,1
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:137,1
    - Dst: Botan::ECKCDSA_Signature_Operation::raw_sign
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 134
    functionDepth: 4
    functionLinenumber: 134
    functionLinenumberEnd: 139
    functionName: Botan::ECKCDSA_Signature_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECKCDSA_Signature_Operation::raw_sign
    - truncate_hash_if_needed
    - get_order_bytes
    - final_stdvec
    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: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::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: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::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:158,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:159,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 161
    functionName: Botan::ECKCDSA_Signature_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_string
    - AlgorithmIdentifier
    - name
    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:164,1
    - Dst: Botan::ECKCDSA_Signature_Operation::update
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:168,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:168,1
    - Dst: final_stdvec
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:169,1
    - Dst: truncate_hash_if_needed
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:170,1
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:170,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:174,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:175,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:178,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:179,1
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:182,1
    - Dst: auto::serialize
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - msg
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 163
    functionDepth: 3
    functionLinenumber: 163
    functionLinenumberEnd: 183
    functionName: Botan::ECKCDSA_Signature_Operation::raw_sign
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 3
    functionsReached:
    - concat
    - Botan::EC_AffinePoint::g_mul
    - Botan::EC_Scalar::from_bytes_mod_order
    - auto::is_zero
    - auto::serialize
    - Botan::EC_Scalar::random
    - Internal_Error
    - truncate_hash_if_needed
    - xor_buf
    - Botan::ECKCDSA_Signature_Operation::update
    - get_order_bytes
    - final_stdvec
    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:191,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:192,1
    - Dst: eckcdsa_signature_hash
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:193,1
    - Dst: eckcdsa_prefix
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:194,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:194,1
    - Dst: hash_block_size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' eckcdsa'
    - padding
    argTypes:
    - ECKCDSA_PublicKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 195
    functionName: Botan::ECKCDSA_Verification_Operation::ECKCDSA_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    - hash_block_size
    - _public_ec_point
    - eckcdsa_signature_hash
    - eckcdsa_prefix
    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:198,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:199,1
    - Dst: eckcdsa_signature_hash
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:200,1
    - Dst: eckcdsa_prefix
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:201,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:201,1
    - Dst: hash_block_size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' eckcdsa'
    - ' alg_id'
    argTypes:
    - ECKCDSA_PublicKey
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 202
    functionName: Botan::ECKCDSA_Verification_Operation::ECKCDSA_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    - hash_block_size
    - _public_ec_point
    - eckcdsa_signature_hash
    - eckcdsa_prefix
    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:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 208
    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:223,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:223,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:223,1
    - Dst: Botan::ECKCDSA_Verification_Operation::update
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 226
    functionName: Botan::ECKCDSA_Verification_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 3
    functionsReached:
    - Botan::ECKCDSA_Verification_Operation::update
    - size
    - data
    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:230,1
    - Dst: truncate_hash_if_needed
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:231,1
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:231,1
    - Dst: Botan::ECKCDSA_Verification_Operation::verify
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 228
    functionDepth: 4
    functionLinenumber: 228
    functionLinenumberEnd: 233
    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
    - truncate_hash_if_needed
    - get_order_bytes
    - final_stdvec
    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:236,1
    - Dst: min
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:238,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:238,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>::first
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:243,1
    - Dst: Botan::EC_Scalar::deserialize
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:245,1
    - Dst: std::span<const uint8_t>::last
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:245,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:246,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:247,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:247,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:249,1
    - Dst: mul2_vartime
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:251,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:251,1
    - Dst: process
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:252,1
    - Dst: auto::x_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:252,1
    - Dst: truncate_hash_if_needed
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:253,1
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:253,1
    - Dst: constant_time_compare
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:254,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: 259
      start: 235
    functionDepth: 3
    functionLinenumber: 235
    functionLinenumberEnd: 259
    functionName: Botan::ECKCDSA_Verification_Operation::verify
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 3
    functionsReached:
    - Botan::EC_Scalar::from_bytes_mod_order
    - mul2_vartime
    - process
    - std::span<const uint8_t>::size
    - min
    - auto::x_bytes
    - auto::value
    - constant_time_compare
    - truncate_hash_if_needed
    - xor_buf
    - Botan::EC_Scalar::deserialize
    - auto::size
    - std::span<const uint8_t>::last
    - get_order_bytes
    - std::span<const uint8_t>::first
    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:43,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:49,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:49,1
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:50,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:50,1
    - Dst: Algorithm_Not_Found
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:58,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - padding
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 59
    functionName: Botan::eckcdsa_signature_hash
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - SCAN_Name::arg_count
    - Algorithm_Not_Found
    - SCAN_Name::arg
    - SCAN_Name::algo_name
    - Botan::HashFunction::create
    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:62,1
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:62,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:64,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:65,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:65,1
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:65,1
    - Dst: parameters_are_empty
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:68,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:69,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:72,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - ' alg_id'
    argTypes:
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 61
    functionDepth: 3
    functionLinenumber: 61
    functionLinenumberEnd: 73
    functionName: Botan::eckcdsa_signature_hash
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::split_on
    - Botan::oid
    - Botan::HashFunction::create_or_throw
    - parameters_are_empty
    - auto::size
    - Botan::Decoding_Error
    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:76,1
    - Dst: auto::resize
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' point'
    - hash_block_size
    argTypes:
    - EC_AffinePoint
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 82
    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:108,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:109,1
    - Dst: erase
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:110,1
    - Dst: Botan::begin
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:110,1
    - Dst: Botan::begin
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:110,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: 112
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 112
    functionName: Botan::truncate_hash_if_needed
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::size
    - erase
    - Botan::begin
    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:120,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:121,1
    - Dst: eckcdsa_signature_hash
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:122,1
    - Dst: eckcdsa_prefix
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:123,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:123,1
    - Dst: hash_block_size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' eckcdsa'
    - padding
    argTypes:
    - ECKCDSA_PrivateKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 124
    functionName: Botan::ECKCDSA_Signature_Operation::ECKCDSA_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _private_key
    - hash_block_size
    - _public_ec_point
    - eckcdsa_signature_hash
    - eckcdsa_prefix
    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:128,1
    - Dst: Botan::ECKCDSA_Signature_Operation::update
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 132
    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:136,1
    - Dst: truncate_hash_if_needed
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:137,1
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:137,1
    - Dst: Botan::ECKCDSA_Signature_Operation::raw_sign
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 134
    functionDepth: 4
    functionLinenumber: 134
    functionLinenumberEnd: 139
    functionName: Botan::ECKCDSA_Signature_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECKCDSA_Signature_Operation::raw_sign
    - truncate_hash_if_needed
    - get_order_bytes
    - final_stdvec
    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: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::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: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::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:158,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:159,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 161
    functionName: Botan::ECKCDSA_Signature_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_string
    - AlgorithmIdentifier
    - name
    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:164,1
    - Dst: Botan::ECKCDSA_Signature_Operation::update
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:168,1
    - Dst: Botan::EC_AffinePoint::g_mul
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:168,1
    - Dst: final_stdvec
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:169,1
    - Dst: truncate_hash_if_needed
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:170,1
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:170,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:174,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:175,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:178,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:179,1
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:182,1
    - Dst: auto::serialize
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:182,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - msg
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 163
    functionDepth: 3
    functionLinenumber: 163
    functionLinenumberEnd: 183
    functionName: Botan::ECKCDSA_Signature_Operation::raw_sign
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 4
    functionsReached:
    - concat
    - Botan::EC_AffinePoint::g_mul
    - Botan::EC_Scalar::from_bytes_mod_order
    - auto::is_zero
    - auto::serialize
    - Botan::EC_Scalar::random
    - Internal_Error
    - truncate_hash_if_needed
    - xor_buf
    - Botan::ECKCDSA_Signature_Operation::update
    - get_order_bytes
    - final_stdvec
    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:191,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:192,1
    - Dst: eckcdsa_signature_hash
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:193,1
    - Dst: eckcdsa_prefix
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:194,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:194,1
    - Dst: hash_block_size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' eckcdsa'
    - padding
    argTypes:
    - ECKCDSA_PublicKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 195
    functionName: Botan::ECKCDSA_Verification_Operation::ECKCDSA_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    - hash_block_size
    - _public_ec_point
    - eckcdsa_signature_hash
    - eckcdsa_prefix
    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:198,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:199,1
    - Dst: eckcdsa_signature_hash
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:200,1
    - Dst: eckcdsa_prefix
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:201,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:201,1
    - Dst: hash_block_size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' eckcdsa'
    - ' alg_id'
    argTypes:
    - ECKCDSA_PublicKey
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 202
    functionName: Botan::ECKCDSA_Verification_Operation::ECKCDSA_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    - hash_block_size
    - _public_ec_point
    - eckcdsa_signature_hash
    - eckcdsa_prefix
    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:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 208
    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:223,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:223,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:223,1
    - Dst: Botan::ECKCDSA_Verification_Operation::update
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 226
    functionName: Botan::ECKCDSA_Verification_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 4
    functionsReached:
    - Botan::ECKCDSA_Verification_Operation::update
    - size
    - data
    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:230,1
    - Dst: truncate_hash_if_needed
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:231,1
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:231,1
    - Dst: Botan::ECKCDSA_Verification_Operation::verify
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 228
    functionDepth: 4
    functionLinenumber: 228
    functionLinenumberEnd: 233
    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
    - truncate_hash_if_needed
    - get_order_bytes
    - final_stdvec
    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:236,1
    - Dst: min
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:238,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:238,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>::first
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:243,1
    - Dst: Botan::EC_Scalar::deserialize
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:245,1
    - Dst: std::span<const uint8_t>::last
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:245,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:246,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:247,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:247,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:249,1
    - Dst: mul2_vartime
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:251,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:251,1
    - Dst: process
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:252,1
    - Dst: auto::x_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:252,1
    - Dst: truncate_hash_if_needed
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:253,1
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:253,1
    - Dst: constant_time_compare
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:254,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: 259
      start: 235
    functionDepth: 3
    functionLinenumber: 235
    functionLinenumberEnd: 259
    functionName: Botan::ECKCDSA_Verification_Operation::verify
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 4
    functionsReached:
    - Botan::EC_Scalar::from_bytes_mod_order
    - mul2_vartime
    - process
    - std::span<const uint8_t>::size
    - min
    - auto::x_bytes
    - auto::value
    - constant_time_compare
    - truncate_hash_if_needed
    - xor_buf
    - Botan::EC_Scalar::deserialize
    - auto::size
    - std::span<const uint8_t>::last
    - get_order_bytes
    - std::span<const uint8_t>::first
    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: std::make_unique<ECKCDSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:264,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 265
    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:269,1
    - Dst: std::make_unique<ECKCDSA_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:270,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:272,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:272,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 273
    functionName: Botan::ECKCDSA_PublicKey::create_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<ECKCDSA_Verification_Operation>
    - Provider_Not_Found
    - algo_name
    - std::string_view::empty
    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:277,1
    - Dst: std::make_unique<ECKCDSA_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:278,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:281,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:281,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - ' signature_algorithm'
    - provider
    argTypes:
    - AlgorithmIdentifier
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 282
    functionName: Botan::ECKCDSA_PublicKey::create_x509_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<ECKCDSA_Verification_Operation>
    - Provider_Not_Found
    - algo_name
    - std::string_view::empty
    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:287,1
    - Dst: std::make_unique<ECKCDSA_Signature_Operation>
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:288,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:290,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp:290,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 284
    functionDepth: 0
    functionLinenumber: 284
    functionLinenumberEnd: 291
    functionName: Botan::ECKCDSA_PrivateKey::create_signature_op
    functionSourceFile: /src/botan/src/lib/pubkey/eckcdsa/eckcdsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<ECKCDSA_Signature_Operation>
    - Provider_Not_Found
    - algo_name
    - std::string_view::empty
    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:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' group'
    - ' y'
    argTypes:
    - DL_Group
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 20
    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:23,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: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    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: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::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: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::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:35,1
    - Dst: object_identifier
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:35,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: Botan::ElGamal_PublicKey::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - AlgorithmIdentifier
    - object_identifier
    - 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: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::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: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::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:47,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - field
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    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:51,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: Botan::ElGamal_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - group
    - std::make_unique<ElGamal_PrivateKey>
    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:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 56
    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:59,1
    - Dst: Botan::ElGamal_PrivateKey::public_key
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' rng'
    - ' group'
    argTypes:
    - RandomNumberGenerator
    - DL_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: Botan::ElGamal_PrivateKey::ElGamal_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<DL_PrivateKey>
    - Botan::ElGamal_PrivateKey::public_key
    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:64,1
    - Dst: Botan::ElGamal_PrivateKey::public_key
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' group'
    - ' x'
    argTypes:
    - DL_Group
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: Botan::ElGamal_PrivateKey::ElGamal_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<DL_PrivateKey>
    - Botan::ElGamal_PrivateKey::public_key
    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:69,1
    - Dst: Botan::ElGamal_PrivateKey::public_key
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:70,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: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: Botan::ElGamal_PrivateKey::ElGamal_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<DL_PrivateKey>
    - Botan::ElGamal_PrivateKey::public_key
    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:74,1
    - Dst: ElGamal_PublicKey::ElGamal_PublicKey
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.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::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:78,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - field
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    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: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::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:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    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:90,1
    - Dst: Botan::KeyPair::encryption_consistency_check
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 101
    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:113,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:113,1
    - Dst: public_key
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:113,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: 114
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: Botan::ElGamal_Encryption_Operation::ElGamal_Encryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - public_key
    - group
    - monty_precompute
    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: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: 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:118,1
    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::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:131,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:133,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:134,1
    - Dst: p_bits
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:145,1
    - Dst: power_g_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:148,1
    - Dst: multiply_mod_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:149,1
    - Dst: monty_execute
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:149,1
    - Dst: unlock
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:151,1
    - Dst: Botan::BigInt::encode_fixed_length_int_pair
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:151,1
    - Dst: p_bytes
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ptext
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 152
    functionName: Botan::ElGamal_Encryption_Operation::raw_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - p_bytes
    - multiply_mod_p
    - power_g_p
    - get_p
    - p_bits
    - Invalid_Argument
    - unlock
    - monty_execute
    - Botan::BigInt::encode_fixed_length_int_pair
    - 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:165,1
    - Dst: Botan::ElGamal_Decryption_Operation::powermod_x_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:168,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: 168
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 168
    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:170,1
    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::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:175,1
    - Dst: private_key
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 175
    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:182,1
    - Dst: p_bytes
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:184,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:186,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:187,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:190,1
    - Dst: std::span<const uint8_t>::last
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:191,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:193,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:193,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:194,1
    - Dst: blind
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:197,1
    - Dst: multiply_mod_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:199,1
    - Dst: inverse_mod_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:199,1
    - Dst: Botan::ElGamal_Decryption_Operation::powermod_x_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:199,1
    - Dst: unblind
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:201,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - ctext
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 202
    functionName: Botan::ElGamal_Decryption_Operation::raw_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - p_bytes
    - unblind
    - multiply_mod_p
    - std::span<const uint8_t>::size
    - get_p
    - Botan::ElGamal_Decryption_Operation::powermod_x_p
    - blind
    - Invalid_Argument
    - inverse_mod_p
    - group
    - std::span<const uint8_t>::last
    - std::span<const uint8_t>::first
    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:113,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:113,1
    - Dst: public_key
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:113,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: 114
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: Botan::ElGamal_Encryption_Operation::ElGamal_Encryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - public_key
    - group
    - monty_precompute
    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: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: 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:118,1
    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::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:131,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:133,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:134,1
    - Dst: p_bits
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:145,1
    - Dst: power_g_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:148,1
    - Dst: multiply_mod_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:149,1
    - Dst: monty_execute
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:149,1
    - Dst: unlock
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:151,1
    - Dst: Botan::BigInt::encode_fixed_length_int_pair
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:151,1
    - Dst: p_bytes
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ptext
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 152
    functionName: Botan::ElGamal_Encryption_Operation::raw_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - p_bytes
    - multiply_mod_p
    - power_g_p
    - get_p
    - p_bits
    - Invalid_Argument
    - unlock
    - monty_execute
    - Botan::BigInt::encode_fixed_length_int_pair
    - 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:165,1
    - Dst: Botan::ElGamal_Decryption_Operation::powermod_x_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:168,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: 168
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 168
    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:170,1
    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::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:175,1
    - Dst: private_key
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 175
    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:182,1
    - Dst: p_bytes
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:184,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:186,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:187,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:190,1
    - Dst: std::span<const uint8_t>::last
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:191,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:193,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:193,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:194,1
    - Dst: blind
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:197,1
    - Dst: multiply_mod_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:199,1
    - Dst: inverse_mod_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:199,1
    - Dst: Botan::ElGamal_Decryption_Operation::powermod_x_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:199,1
    - Dst: unblind
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:201,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - ctext
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 202
    functionName: Botan::ElGamal_Decryption_Operation::raw_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - p_bytes
    - unblind
    - multiply_mod_p
    - std::span<const uint8_t>::size
    - get_p
    - Botan::ElGamal_Decryption_Operation::powermod_x_p
    - blind
    - Invalid_Argument
    - inverse_mod_p
    - group
    - std::span<const uint8_t>::last
    - std::span<const uint8_t>::first
    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:209,1
    - Dst: std::make_unique<ElGamal_Encryption_Operation>
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:210,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:212,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:212,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 213
    functionName: Botan::ElGamal_PublicKey::create_encryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<ElGamal_Encryption_Operation>
    - Provider_Not_Found
    - algo_name
    - std::string_view::empty
    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:218,1
    - Dst: std::make_unique<ElGamal_Decryption_Operation>
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:219,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:221,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:221,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: 222
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 222
    functionName: Botan::ElGamal_PrivateKey::create_decryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<ElGamal_Decryption_Operation>
    - Provider_Not_Found
    - algo_name
    - std::string_view::empty
    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:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' group'
    - ' y'
    argTypes:
    - DL_Group
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 20
    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:23,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: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    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: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::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: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::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:35,1
    - Dst: object_identifier
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:35,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: Botan::ElGamal_PublicKey::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - AlgorithmIdentifier
    - object_identifier
    - 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: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::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: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::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:47,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - field
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    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:51,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: Botan::ElGamal_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - group
    - std::make_unique<ElGamal_PrivateKey>
    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:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 56
    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:59,1
    - Dst: Botan::ElGamal_PrivateKey::public_key
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' rng'
    - ' group'
    argTypes:
    - RandomNumberGenerator
    - DL_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: Botan::ElGamal_PrivateKey::ElGamal_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<DL_PrivateKey>
    - Botan::ElGamal_PrivateKey::public_key
    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:64,1
    - Dst: Botan::ElGamal_PrivateKey::public_key
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' group'
    - ' x'
    argTypes:
    - DL_Group
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: Botan::ElGamal_PrivateKey::ElGamal_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<DL_PrivateKey>
    - Botan::ElGamal_PrivateKey::public_key
    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:69,1
    - Dst: Botan::ElGamal_PrivateKey::public_key
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:70,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: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: Botan::ElGamal_PrivateKey::ElGamal_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<DL_PrivateKey>
    - Botan::ElGamal_PrivateKey::public_key
    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:74,1
    - Dst: ElGamal_PublicKey::ElGamal_PublicKey
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.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::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:78,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - field
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    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: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::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:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    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:90,1
    - Dst: Botan::KeyPair::encryption_consistency_check
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:100,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 101
    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:113,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:113,1
    - Dst: public_key
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:113,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: 114
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: Botan::ElGamal_Encryption_Operation::ElGamal_Encryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - public_key
    - group
    - monty_precompute
    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: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: 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:118,1
    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::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:131,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:133,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:134,1
    - Dst: p_bits
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:145,1
    - Dst: power_g_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:148,1
    - Dst: multiply_mod_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:149,1
    - Dst: monty_execute
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:149,1
    - Dst: unlock
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:151,1
    - Dst: Botan::BigInt::encode_fixed_length_int_pair
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:151,1
    - Dst: p_bytes
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ptext
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 152
    functionName: Botan::ElGamal_Encryption_Operation::raw_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - p_bytes
    - multiply_mod_p
    - power_g_p
    - get_p
    - p_bits
    - Invalid_Argument
    - unlock
    - monty_execute
    - Botan::BigInt::encode_fixed_length_int_pair
    - 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:165,1
    - Dst: Botan::ElGamal_Decryption_Operation::powermod_x_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:168,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: 168
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 168
    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:170,1
    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::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:175,1
    - Dst: private_key
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 175
    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:182,1
    - Dst: p_bytes
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:184,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:186,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:187,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:190,1
    - Dst: std::span<const uint8_t>::last
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:191,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:193,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:193,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:194,1
    - Dst: blind
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:197,1
    - Dst: multiply_mod_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:199,1
    - Dst: inverse_mod_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:199,1
    - Dst: Botan::ElGamal_Decryption_Operation::powermod_x_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:199,1
    - Dst: unblind
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:201,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - ctext
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 202
    functionName: Botan::ElGamal_Decryption_Operation::raw_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - p_bytes
    - unblind
    - multiply_mod_p
    - std::span<const uint8_t>::size
    - get_p
    - Botan::ElGamal_Decryption_Operation::powermod_x_p
    - blind
    - Invalid_Argument
    - inverse_mod_p
    - group
    - std::span<const uint8_t>::last
    - std::span<const uint8_t>::first
    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:113,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:113,1
    - Dst: public_key
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:113,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: 114
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: Botan::ElGamal_Encryption_Operation::ElGamal_Encryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - public_key
    - group
    - monty_precompute
    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: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: 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:118,1
    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::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:131,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:133,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:134,1
    - Dst: p_bits
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:145,1
    - Dst: power_g_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:148,1
    - Dst: multiply_mod_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:149,1
    - Dst: monty_execute
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:149,1
    - Dst: unlock
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:151,1
    - Dst: Botan::BigInt::encode_fixed_length_int_pair
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:151,1
    - Dst: p_bytes
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:151,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ptext
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 152
    functionName: Botan::ElGamal_Encryption_Operation::raw_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - p_bytes
    - multiply_mod_p
    - power_g_p
    - get_p
    - p_bits
    - Invalid_Argument
    - unlock
    - monty_execute
    - Botan::BigInt::encode_fixed_length_int_pair
    - 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:165,1
    - Dst: Botan::ElGamal_Decryption_Operation::powermod_x_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:168,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: 168
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 168
    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:170,1
    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::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:175,1
    - Dst: private_key
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 175
    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:182,1
    - Dst: p_bytes
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:184,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:186,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:187,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:190,1
    - Dst: std::span<const uint8_t>::last
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:191,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:193,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:193,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:194,1
    - Dst: blind
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:197,1
    - Dst: multiply_mod_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:199,1
    - Dst: inverse_mod_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:199,1
    - Dst: Botan::ElGamal_Decryption_Operation::powermod_x_p
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:199,1
    - Dst: unblind
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:201,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 1
    argNames:
    - ctext
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 202
    functionName: Botan::ElGamal_Decryption_Operation::raw_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - p_bytes
    - unblind
    - multiply_mod_p
    - std::span<const uint8_t>::size
    - get_p
    - Botan::ElGamal_Decryption_Operation::powermod_x_p
    - blind
    - Invalid_Argument
    - inverse_mod_p
    - group
    - std::span<const uint8_t>::last
    - std::span<const uint8_t>::first
    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:209,1
    - Dst: std::make_unique<ElGamal_Encryption_Operation>
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:210,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:212,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:212,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 213
    functionName: Botan::ElGamal_PublicKey::create_encryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<ElGamal_Encryption_Operation>
    - Provider_Not_Found
    - algo_name
    - std::string_view::empty
    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:218,1
    - Dst: std::make_unique<ElGamal_Decryption_Operation>
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:219,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:221,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp:221,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: 222
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 222
    functionName: Botan::ElGamal_PrivateKey::create_decryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/elgamal/elgamal.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<ElGamal_Decryption_Operation>
    - Provider_Not_Found
    - algo_name
    - std::string_view::empty
    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: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    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: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    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: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    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: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    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: 130
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 130
    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: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    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: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    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: 74
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 74
    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: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    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: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    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: 130
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 130
    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: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    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:20,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:21,1
    - Dst: size
      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:23,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:24,1
    - Dst: Botan::Hybrid_PublicKey::supports_operation
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:24,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:25,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:25,1
    - Dst: max
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:26,1
    - Dst: key_length
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:26,1
    - Dst: max
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:27,1
    - Dst: estimated_strength
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pks
    argTypes:
    - std::vector<std::unique_ptr<Public_Key>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 29
    functionName: Botan::Hybrid_PublicKey::Hybrid_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp
    functionUses: 0
    functionsReached:
    - key_length
    - Botan::Hybrid_PublicKey::supports_operation
    - std::move
    - size
    - BOTAN_ARG_CHECK
    - max
    - estimated_strength
    - algo_name
    - 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:32,1
    - Dst: public_keys
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:32,1
    - Dst: Botan::Hybrid_PublicKey::check_key
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 33
    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
    - reduce
    - public_keys
    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:36,1
    - Dst: public_keys
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:36,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:36,1
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:37,1
    - Dst: Botan::Hybrid_PublicKey::raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: Botan::Hybrid_PublicKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp
    functionUses: 1
    functionsReached:
    - concat
    - std::vector<uint8_t>
    - reduce
    - Botan::Hybrid_PublicKey::raw_public_key_bits
    - public_keys
    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: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    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:48,1
    - Dst: public_keys
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:48,1
    - Dst: public_keys
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:49,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:50,1
    - Dst: generate_another
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 53
    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
    - std::vector::push_back
    - public_keys
    - 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:56,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:57,1
    - Dst: size
      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:59,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:60,1
    - Dst: supports_operation
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:60,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: 63
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 63
    functionName: Botan::Hybrid_PrivateKey::Hybrid_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp
    functionUses: 0
    functionsReached:
    - supports_operation
    - std::move
    - size
    - BOTAN_ARG_CHECK
    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:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    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:70,1
    - Dst: private_keys
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:70,1
    - Dst: Botan::Hybrid_PrivateKey::check_key
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 71
    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
    - reduce
    - private_keys
    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:76,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:76,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:78,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:79,1
    - Dst: public_key
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:79,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: 82
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 82
    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
    - size
    - BOTAN_ARG_CHECK
    - public_key
    - std::vector::reserve
    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:20,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:21,1
    - Dst: size
      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:23,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:24,1
    - Dst: Botan::Hybrid_PublicKey::supports_operation
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:24,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:25,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:25,1
    - Dst: max
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:26,1
    - Dst: key_length
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:26,1
    - Dst: max
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:27,1
    - Dst: estimated_strength
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pks
    argTypes:
    - std::vector<std::unique_ptr<Public_Key>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 29
    functionName: Botan::Hybrid_PublicKey::Hybrid_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp
    functionUses: 0
    functionsReached:
    - key_length
    - Botan::Hybrid_PublicKey::supports_operation
    - std::move
    - size
    - BOTAN_ARG_CHECK
    - max
    - estimated_strength
    - algo_name
    - 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:32,1
    - Dst: public_keys
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:32,1
    - Dst: Botan::Hybrid_PublicKey::check_key
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:32,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 33
    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
    - reduce
    - public_keys
    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:36,1
    - Dst: public_keys
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:36,1
    - Dst: std::vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:36,1
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:37,1
    - Dst: Botan::Hybrid_PublicKey::raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: Botan::Hybrid_PublicKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp
    functionUses: 2
    functionsReached:
    - concat
    - std::vector<uint8_t>
    - reduce
    - Botan::Hybrid_PublicKey::raw_public_key_bits
    - public_keys
    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: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    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:48,1
    - Dst: public_keys
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:48,1
    - Dst: public_keys
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:49,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:50,1
    - Dst: generate_another
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 53
    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
    - std::vector::push_back
    - public_keys
    - 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:56,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:57,1
    - Dst: size
      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:59,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:60,1
    - Dst: supports_operation
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:60,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: 63
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 63
    functionName: Botan::Hybrid_PrivateKey::Hybrid_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp
    functionUses: 0
    functionsReached:
    - supports_operation
    - std::move
    - size
    - BOTAN_ARG_CHECK
    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:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 67
    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:70,1
    - Dst: private_keys
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:70,1
    - Dst: Botan::Hybrid_PrivateKey::check_key
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 71
    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
    - reduce
    - private_keys
    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:76,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:76,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:78,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:79,1
    - Dst: public_key
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem.cpp:79,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: 82
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 82
    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
    - size
    - BOTAN_ARG_CHECK
    - public_key
    - std::vector::reserve
    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:18,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:18,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:20,1
    - Dst: Botan::KEM_Encryption_with_Combiner::encapsulated_key_length
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:21,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: 23
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 23
    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:
    - reserve
    - Botan::KEM_Encryption_with_Combiner::encapsulated_key_length
    - emplace_back
    - size
    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:30,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:30,1
    - Dst: Botan::KEM_Encryption_with_Combiner::encapsulated_key_length
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:30,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:32,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:32,1
    - Dst: shared_key_length
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:32,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:36,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:36,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:39,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:39,1
    - Dst: KEM_Encapsulation::destructure
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:42,1
    - Dst: encrypt
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:42,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:43,1
    - Dst: std::move
      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: Botan::KEM_Encryption_with_Combiner::combine_ciphertexts
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:46,1
    - Dst: combine_shared_secrets
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:47,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: 48
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 48
    functionName: Botan::KEM_Encryption_with_Combiner::kem_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::vector::push_back
    - size
    - BOTAN_ARG_CHECK
    - Botan::KEM_Encryption_with_Combiner::encapsulated_key_length
    - encrypt
    - Botan::KEM_Encryption_with_Combiner::combine_ciphertexts
    - shared_key_length
    - combine_shared_secrets
    - KEM_Encapsulation::destructure
    - std::span<uint8_t>::size
    - std::vector::reserve
    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:53,1
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:53,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:54,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:54,1
    - Dst: size
      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: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:55,1
    - Dst: Botan::KEM_Encryption_with_Combiner::encapsulated_key_length
      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:57,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:58,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:58,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:58,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:60,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:60,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:62,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:62,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: 63
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 63
    functionName: Botan::KEM_Encryption_with_Combiner::combine_ciphertexts
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp
    functionUses: 1
    functionsReached:
    - std::span<const uint8_t>::empty
    - BOTAN_ASSERT_NOMSG
    - at
    - BufferStuffer::append
    - BufferStuffer::full
    - size
    - BOTAN_ARG_CHECK
    - Botan::KEM_Encryption_with_Combiner::encapsulated_key_length
    - std::span<uint8_t>::size
    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:70,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:70,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:72,1
    - Dst: Botan::KEM_Decryption_with_Combiner::encapsulated_key_length
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:73,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: 75
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 75
    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:
    - reserve
    - emplace_back
    - size
    - Botan::KEM_Decryption_with_Combiner::encapsulated_key_length
    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:81,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:81,1
    - Dst: Botan::KEM_Decryption_with_Combiner::encapsulated_key_length
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:81,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:82,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:82,1
    - Dst: shared_key_length
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:82,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:85,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:85,1
    - Dst: Botan::KEM_Decryption_with_Combiner::split_ciphertexts
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:86,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:87,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:87,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:87,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:89,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:90,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:90,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:90,1
    - Dst: combine_shared_secrets
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:93,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: 94
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 94
    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::encapsulated_key_length
    - std::vector::push_back
    - at
    - auto::at
    - std::span<const uint8_t>::size
    - Botan::KEM_Decryption_with_Combiner::split_ciphertexts
    - size
    - BOTAN_ARG_CHECK
    - shared_key_length
    - combine_shared_secrets
    - auto::size
    - BOTAN_ASSERT
    - std::span<uint8_t>::size
    - std::vector::reserve
    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:98,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:98,1
    - Dst: Botan::KEM_Decryption_with_Combiner::encapsulated_key_length
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:98,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:100,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:100,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:103,1
    - Dst: BufferSlicer::copy_as_vector
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:103,1
    - Dst: Botan::KEM_Decryption_with_Combiner::encapsulated_key_length
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:103,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:105,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - concat_ciphertext
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 107
    functionName: Botan::KEM_Decryption_with_Combiner::split_ciphertexts
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::KEM_Decryption_with_Combiner::encapsulated_key_length
    - std::vector::push_back
    - BufferSlicer::copy_as_vector
    - BufferSlicer::empty
    - std::span<const uint8_t>::size
    - size
    - BOTAN_ARG_CHECK
    - std::vector::reserve
    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:18,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:18,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:20,1
    - Dst: Botan::KEM_Encryption_with_Combiner::encapsulated_key_length
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:21,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: 23
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 23
    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:
    - reserve
    - Botan::KEM_Encryption_with_Combiner::encapsulated_key_length
    - emplace_back
    - size
    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:30,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:30,1
    - Dst: Botan::KEM_Encryption_with_Combiner::encapsulated_key_length
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:30,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:32,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:32,1
    - Dst: shared_key_length
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:32,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:36,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:36,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:39,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:39,1
    - Dst: KEM_Encapsulation::destructure
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:42,1
    - Dst: encrypt
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:42,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:43,1
    - Dst: std::move
      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: Botan::KEM_Encryption_with_Combiner::combine_ciphertexts
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:46,1
    - Dst: combine_shared_secrets
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:47,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: 48
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 48
    functionName: Botan::KEM_Encryption_with_Combiner::kem_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::vector::push_back
    - size
    - BOTAN_ARG_CHECK
    - Botan::KEM_Encryption_with_Combiner::encapsulated_key_length
    - encrypt
    - Botan::KEM_Encryption_with_Combiner::combine_ciphertexts
    - shared_key_length
    - combine_shared_secrets
    - KEM_Encapsulation::destructure
    - std::span<uint8_t>::size
    - std::vector::reserve
    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:53,1
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:53,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:54,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:54,1
    - Dst: size
      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: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:55,1
    - Dst: Botan::KEM_Encryption_with_Combiner::encapsulated_key_length
      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:57,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:58,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:58,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:58,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:60,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:60,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:62,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:62,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: 63
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 63
    functionName: Botan::KEM_Encryption_with_Combiner::combine_ciphertexts
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp
    functionUses: 2
    functionsReached:
    - std::span<const uint8_t>::empty
    - BOTAN_ASSERT_NOMSG
    - at
    - BufferStuffer::append
    - BufferStuffer::full
    - size
    - BOTAN_ARG_CHECK
    - Botan::KEM_Encryption_with_Combiner::encapsulated_key_length
    - std::span<uint8_t>::size
    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:70,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:70,1
    - Dst: emplace_back
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:72,1
    - Dst: Botan::KEM_Decryption_with_Combiner::encapsulated_key_length
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:73,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: 75
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 75
    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:
    - reserve
    - emplace_back
    - size
    - Botan::KEM_Decryption_with_Combiner::encapsulated_key_length
    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:81,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:81,1
    - Dst: Botan::KEM_Decryption_with_Combiner::encapsulated_key_length
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:81,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:82,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:82,1
    - Dst: shared_key_length
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:82,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:85,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:85,1
    - Dst: Botan::KEM_Decryption_with_Combiner::split_ciphertexts
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:86,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:87,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:87,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:87,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:89,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:90,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:90,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:90,1
    - Dst: combine_shared_secrets
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:93,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: 94
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 94
    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::encapsulated_key_length
    - std::vector::push_back
    - at
    - auto::at
    - std::span<const uint8_t>::size
    - Botan::KEM_Decryption_with_Combiner::split_ciphertexts
    - size
    - BOTAN_ARG_CHECK
    - shared_key_length
    - combine_shared_secrets
    - auto::size
    - BOTAN_ASSERT
    - std::span<uint8_t>::size
    - std::vector::reserve
    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:98,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:98,1
    - Dst: Botan::KEM_Decryption_with_Combiner::encapsulated_key_length
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:98,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:100,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:100,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:103,1
    - Dst: BufferSlicer::copy_as_vector
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:103,1
    - Dst: Botan::KEM_Decryption_with_Combiner::encapsulated_key_length
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:103,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:105,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp:105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - concat_ciphertext
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 107
    functionName: Botan::KEM_Decryption_with_Combiner::split_ciphertexts
    functionSourceFile: /src/botan/src/lib/pubkey/hybrid_kem/hybrid_kem_ops.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::KEM_Decryption_with_Combiner::encapsulated_key_length
    - std::vector::push_back
    - BufferSlicer::copy_as_vector
    - BufferSlicer::empty
    - std::span<const uint8_t>::size
    - size
    - BOTAN_ARG_CHECK
    - std::vector::reserve
    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:
    - raw_public_key_bits
    - Botan::Hybrid_PublicKey
    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:
    - raw_public_key_bits
    - Botan::Hybrid_PublicKey
    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_msg_hash::new_object
    - m_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:
    - hash_function_name
    - hash_id_size
    - Botan::XMSS_Hash::output_length
    - Lookup_Error
    - Botan::HashFunction::create
    - BOTAN_ASSERT
    - 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:
    - update
    - clear
    - 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:
    - update
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    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_msg_hash::new_object
    - m_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:
    - hash_function_name
    - hash_id_size
    - Botan::XMSS_Hash::output_length
    - Lookup_Error
    - Botan::HashFunction::create
    - BOTAN_ASSERT
    - 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:
    - update
    - clear
    - 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:
    - update
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    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: []
    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: Botan::Atomic::Atomic
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Atomic()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_data::load
      Src: /src/botan/src/lib/pubkey/xmss/atomic.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - Atomic
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan::Atomic::Atomic
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/atomic.h
    functionUses: 0
    functionsReached:
    - m_data::load
    linkageType: ''
    returnType: void
    signature: void Atomic(const Atomic& data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/botan/src/lib/pubkey/xmss/atomic.h:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - std::atomic<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan::Atomic::Atomic
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/atomic.h
    functionUses: 0
    functionsReached:
    - load
    linkageType: ''
    returnType: void
    signature: void Atomic(const std::atomic<T>& data)
  - 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: ~Atomic()
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Atomic()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Atomic
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan::Atomic::Atomic
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Atomic(Atomic&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Atomic
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: '& operator=(Atomic&& other)'
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Atomic
    signature: Atomic & operator=(Atomic&& other)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: store
      Src: /src/botan/src/lib/pubkey/xmss/atomic.h:39,1
    - Dst: m_data::load
      Src: /src/botan/src/lib/pubkey/xmss/atomic.h:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Atomic
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: '& operator=(const Atomic& other)'
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/atomic.h
    functionUses: 0
    functionsReached:
    - store
    - m_data::load
    linkageType: ''
    returnType: Atomic
    signature: Atomic & operator=(const Atomic& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store
      Src: /src/botan/src/lib/pubkey/xmss/atomic.h:45,1
    - Dst: load
      Src: /src/botan/src/lib/pubkey/xmss/atomic.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - std::atomic<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: '& operator=(const std::atomic<T>& a)'
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/atomic.h
    functionUses: 0
    functionsReached:
    - store
    - load
    linkageType: ''
    returnType: Atomic
    signature: Atomic & operator=(const std::atomic<T>& a)
  - 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: operator std::atomic<T>&()
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator std::atomic<T>&()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/botan/src/lib/pubkey/xmss/atomic.h:52,1
    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: operator T()
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/atomic.h
    functionUses: 0
    functionsReached:
    - load
    linkageType: ''
    returnType: void
    signature: void operator T()
  - 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: Botan::Atomic::Atomic
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Atomic()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_data::load
      Src: /src/botan/src/lib/pubkey/xmss/atomic.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - Atomic
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: Botan::Atomic::Atomic
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/atomic.h
    functionUses: 0
    functionsReached:
    - m_data::load
    linkageType: ''
    returnType: void
    signature: void Atomic(const Atomic& data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/botan/src/lib/pubkey/xmss/atomic.h:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' data'
    argTypes:
    - std::atomic<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: Botan::Atomic::Atomic
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/atomic.h
    functionUses: 0
    functionsReached:
    - load
    linkageType: ''
    returnType: void
    signature: void Atomic(const std::atomic<T>& data)
  - 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: ~Atomic()
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Atomic()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Atomic
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan::Atomic::Atomic
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Atomic(Atomic&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Atomic
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: '& operator=(Atomic&& other)'
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Atomic
    signature: Atomic & operator=(Atomic&& other)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: store
      Src: /src/botan/src/lib/pubkey/xmss/atomic.h:39,1
    - Dst: m_data::load
      Src: /src/botan/src/lib/pubkey/xmss/atomic.h:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Atomic
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: '& operator=(const Atomic& other)'
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/atomic.h
    functionUses: 0
    functionsReached:
    - store
    - m_data::load
    linkageType: ''
    returnType: Atomic
    signature: Atomic & operator=(const Atomic& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store
      Src: /src/botan/src/lib/pubkey/xmss/atomic.h:45,1
    - Dst: load
      Src: /src/botan/src/lib/pubkey/xmss/atomic.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - std::atomic<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 47
    functionName: '& operator=(const std::atomic<T>& a)'
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/atomic.h
    functionUses: 0
    functionsReached:
    - store
    - load
    linkageType: ''
    returnType: Atomic
    signature: Atomic & operator=(const std::atomic<T>& a)
  - 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: operator std::atomic<T>&()
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/atomic.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator std::atomic<T>&()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load
      Src: /src/botan/src/lib/pubkey/xmss/atomic.h:52,1
    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: operator T()
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/atomic.h
    functionUses: 0
    functionsReached:
    - load
    linkageType: ''
    returnType: void
    signature: void operator T()
  - 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: Botan::XMSS_Index_Registry::XMSS_Index_Registry
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XMSS_Index_Registry(const XMSS_Index_Registry&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan::XMSS_Index_Registry::XMSS_Index_Registry
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XMSS_Index_Registry(XMSS_Index_Registry&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: '& operator=(const XMSS_Index_Registry&)'
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XMSS_Index_Registry
    signature: XMSS_Index_Registry & operator=(const XMSS_Index_Registry&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: '& operator=(XMSS_Index_Registry&&)'
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XMSS_Index_Registry
    signature: XMSS_Index_Registry & operator=(XMSS_Index_Registry&&)
  - 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_Index_Registry()
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~XMSS_Index_Registry()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: '& get_instance()'
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XMSS_Index_Registry
    signature: XMSS_Index_Registry & get_instance()
  - 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::XMSS_Index_Registry::XMSS_Index_Registry
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XMSS_Index_Registry()
  - 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: Botan::XMSS_Index_Registry::XMSS_Index_Registry
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XMSS_Index_Registry(const XMSS_Index_Registry&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: Botan::XMSS_Index_Registry::XMSS_Index_Registry
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XMSS_Index_Registry(XMSS_Index_Registry&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: '& operator=(const XMSS_Index_Registry&)'
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XMSS_Index_Registry
    signature: XMSS_Index_Registry & operator=(const XMSS_Index_Registry&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: '& operator=(XMSS_Index_Registry&&)'
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XMSS_Index_Registry
    signature: XMSS_Index_Registry & operator=(XMSS_Index_Registry&&)
  - 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_Index_Registry()
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~XMSS_Index_Registry()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 39
    functionName: '& get_instance()'
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XMSS_Index_Registry
    signature: XMSS_Index_Registry & get_instance()
  - 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::XMSS_Index_Registry::XMSS_Index_Registry
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void XMSS_Index_Registry()
  - 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:52,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:52,1
    - Dst: Botan::output_length
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:52,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:53,1
    - Dst: Botan::wots_parameter
      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:54,1
    - Dst: Botan::wots_parameter
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:61,1
    - Dst: Botan::set_hash_address
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:62,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:62,1
    - Dst: set_key_mask_mode
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:65,1
    - Dst: prf
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:66,1
    - Dst: Botan::bytes
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:66,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:67,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:67,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:67,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:67,1
    - Dst: set_key_mask_mode
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:70,1
    - Dst: prf
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:73,1
    - Dst: Botan::bytes
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:73,1
    - Dst: f
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:74,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: 76
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 76
    functionName: Botan::chain
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::output_length
    - Botan::bytes
    - static_cast<uint32_t>
    - Botan::data
    - Botan::xor_buf
    - Botan::set_hash_address
    - Botan::wots_parameter
    - prf
    - f
    - secure_vector::data
    - set_key_mask_mode
    - Botan::size
    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:52,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:52,1
    - Dst: Botan::output_length
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:52,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:53,1
    - Dst: Botan::wots_parameter
      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:54,1
    - Dst: Botan::wots_parameter
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:61,1
    - Dst: Botan::set_hash_address
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:62,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:62,1
    - Dst: set_key_mask_mode
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:65,1
    - Dst: prf
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:66,1
    - Dst: Botan::bytes
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:66,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:67,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:67,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:67,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:67,1
    - Dst: set_key_mask_mode
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:70,1
    - Dst: prf
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:73,1
    - Dst: Botan::bytes
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:73,1
    - Dst: f
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:74,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: 76
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 76
    functionName: Botan::chain
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::output_length
    - Botan::bytes
    - static_cast<uint32_t>
    - Botan::data
    - Botan::xor_buf
    - Botan::set_hash_address
    - Botan::wots_parameter
    - prf
    - f
    - secure_vector::data
    - set_key_mask_mode
    - Botan::size
    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:85,1
    - Dst: key_data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:85,1
    - Dst: len
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:86,1
    - Dst: set_chain_address
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:87,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:87,1
    - Dst: chain
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:88,1
    - Dst: wots_parameter
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:88,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: 90
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 90
    functionName: Botan::XMSS_WOTS_PublicKey::XMSS_WOTS_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - len
    - static_cast<uint32_t>
    - key_data
    - chain
    - set_chain_address
    - wots_parameter
    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:98,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:98,1
    - Dst: base_w
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:99,1
    - Dst: len_1
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:99,1
    - Dst: append_checksum
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:101,1
    - Dst: len
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:103,1
    - Dst: set_chain_address
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:104,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:104,1
    - Dst: chain
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:105,1
    - Dst: wots_parameter
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:108,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: 113
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 113
    functionName: Botan::XMSS_WOTS_PublicKey::XMSS_WOTS_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - wots_parameter
    - len
    - static_cast<uint32_t>
    - append_checksum
    - base_w
    - chain
    - set_chain_address
    - len_1
    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:119,1
    - Dst: len_1
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:119,1
    - Dst: append_checksum
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:121,1
    - Dst: Botan::XMSS_WOTS_PrivateKey::key_data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:122,1
    - Dst: len
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:124,1
    - Dst: set_chain_address
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:125,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:125,1
    - Dst: chain
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:126,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: 130
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 130
    functionName: Botan::XMSS_WOTS_PrivateKey::sign
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp
    functionUses: 0
    functionsReached:
    - len
    - static_cast<uint32_t>
    - append_checksum
    - base_w
    - Botan::XMSS_WOTS_PrivateKey::key_data
    - set_chain_address
    - chain
    - len_1
    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:137,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:138,1
    - Dst: len
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:138,1
    - Dst: len
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:139,1
    - Dst: XMSS_Address::set_chain_address
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:140,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:140,1
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:141,1
    - Dst: XMSS_Address::bytes
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:141,1
    - Dst: prf_keygen
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:142,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: 144
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 144
    functionName: Botan::XMSS_WOTS_PrivateKey::XMSS_WOTS_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp
    functionUses: 0
    functionsReached:
    - concat
    - std::move
    - resize
    - len
    - static_cast<uint32_t>
    - prf_keygen
    - XMSS_Address::bytes
    - XMSS_Address::set_chain_address
    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:151,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:152,1
    - Dst: len
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:152,1
    - Dst: prf
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:155,1
    - Dst: XMSS_Address::bytes
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:155,1
    - Dst: len
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:157,1
    - Dst: xmss_concat<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:158,1
    - Dst: prf
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:159,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: 161
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 161
    functionName: Botan::XMSS_WOTS_PrivateKey::XMSS_WOTS_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - resize
    - len
    - xmss_concat<size_t>
    - prf
    - 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:52,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:52,1
    - Dst: Botan::output_length
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:52,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:53,1
    - Dst: Botan::wots_parameter
      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:54,1
    - Dst: Botan::wots_parameter
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:61,1
    - Dst: Botan::set_hash_address
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:62,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:62,1
    - Dst: set_key_mask_mode
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:65,1
    - Dst: prf
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:66,1
    - Dst: Botan::bytes
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:66,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:67,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:67,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:67,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:67,1
    - Dst: set_key_mask_mode
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:70,1
    - Dst: prf
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:73,1
    - Dst: Botan::bytes
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:73,1
    - Dst: f
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:74,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: 76
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 76
    functionName: Botan::chain
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::output_length
    - Botan::bytes
    - static_cast<uint32_t>
    - Botan::data
    - Botan::xor_buf
    - Botan::set_hash_address
    - Botan::wots_parameter
    - prf
    - f
    - secure_vector::data
    - set_key_mask_mode
    - Botan::size
    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:52,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:52,1
    - Dst: Botan::output_length
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:52,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:53,1
    - Dst: Botan::wots_parameter
      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:54,1
    - Dst: Botan::wots_parameter
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:61,1
    - Dst: Botan::set_hash_address
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:62,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:62,1
    - Dst: set_key_mask_mode
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:65,1
    - Dst: prf
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:66,1
    - Dst: Botan::bytes
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:66,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:67,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:67,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:67,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:67,1
    - Dst: set_key_mask_mode
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:70,1
    - Dst: prf
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:73,1
    - Dst: Botan::bytes
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:73,1
    - Dst: f
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:74,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: 76
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 76
    functionName: Botan::chain
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::output_length
    - Botan::bytes
    - static_cast<uint32_t>
    - Botan::data
    - Botan::xor_buf
    - Botan::set_hash_address
    - Botan::wots_parameter
    - prf
    - f
    - secure_vector::data
    - set_key_mask_mode
    - Botan::size
    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:85,1
    - Dst: key_data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:85,1
    - Dst: len
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:86,1
    - Dst: set_chain_address
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:87,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:87,1
    - Dst: chain
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:88,1
    - Dst: wots_parameter
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:88,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: 90
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 90
    functionName: Botan::XMSS_WOTS_PublicKey::XMSS_WOTS_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - len
    - static_cast<uint32_t>
    - key_data
    - chain
    - set_chain_address
    - wots_parameter
    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:98,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:98,1
    - Dst: base_w
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:99,1
    - Dst: len_1
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:99,1
    - Dst: append_checksum
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:101,1
    - Dst: len
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:103,1
    - Dst: set_chain_address
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:104,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:104,1
    - Dst: chain
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:105,1
    - Dst: wots_parameter
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:108,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: 113
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 113
    functionName: Botan::XMSS_WOTS_PublicKey::XMSS_WOTS_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - wots_parameter
    - len
    - static_cast<uint32_t>
    - append_checksum
    - base_w
    - chain
    - set_chain_address
    - len_1
    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:119,1
    - Dst: len_1
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:119,1
    - Dst: append_checksum
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:121,1
    - Dst: Botan::XMSS_WOTS_PrivateKey::key_data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:122,1
    - Dst: len
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:124,1
    - Dst: set_chain_address
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:125,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:125,1
    - Dst: chain
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:126,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: 130
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 130
    functionName: Botan::XMSS_WOTS_PrivateKey::sign
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp
    functionUses: 0
    functionsReached:
    - len
    - static_cast<uint32_t>
    - append_checksum
    - base_w
    - Botan::XMSS_WOTS_PrivateKey::key_data
    - set_chain_address
    - chain
    - len_1
    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:137,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:138,1
    - Dst: len
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:138,1
    - Dst: len
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:139,1
    - Dst: XMSS_Address::set_chain_address
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:140,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:140,1
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:141,1
    - Dst: XMSS_Address::bytes
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:141,1
    - Dst: prf_keygen
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:142,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: 144
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 144
    functionName: Botan::XMSS_WOTS_PrivateKey::XMSS_WOTS_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp
    functionUses: 0
    functionsReached:
    - concat
    - std::move
    - resize
    - len
    - static_cast<uint32_t>
    - prf_keygen
    - XMSS_Address::bytes
    - XMSS_Address::set_chain_address
    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:151,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:152,1
    - Dst: len
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:152,1
    - Dst: prf
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:155,1
    - Dst: XMSS_Address::bytes
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:155,1
    - Dst: len
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:157,1
    - Dst: xmss_concat<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:158,1
    - Dst: prf
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp:159,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: 161
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 161
    functionName: Botan::XMSS_WOTS_PrivateKey::XMSS_WOTS_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_wots.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - resize
    - len
    - xmss_concat<size_t>
    - prf
    - 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:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - params
    argTypes:
    - XMSS_WOTS_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    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:36,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.h:36,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: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    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: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    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:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - params
    argTypes:
    - XMSS_WOTS_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    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:36,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_wots.h:36,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: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    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: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    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: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    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:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 55
    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: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    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: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::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: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::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:92,1
    - Dst: std::fill
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:93,1
    - Dst: begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:93,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:93,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - type
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: Botan::XMSS_Address::set_type
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - begin
    - static_cast<uint8_t>
    - std::fill
    - end
    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:102,1
    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::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:111,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:111,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - Key_Mask
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: Botan::XMSS_Address::set_key_mask_mode
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Address::get_type
    - BOTAN_ASSERT
    - 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:124,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:124,1
    - Dst: Botan::XMSS_Address::get_hi32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 128
    functionName: Botan::XMSS_Address::get_ots_address
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Address::get_type
    - Botan::XMSS_Address::get_hi32
    - BOTAN_ASSERT
    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:138,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:138,1
    - Dst: Botan::XMSS_Address::set_hi32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: Botan::XMSS_Address::set_ots_address
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Address::get_type
    - BOTAN_ASSERT
    - 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:152,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:152,1
    - Dst: Botan::XMSS_Address::get_hi32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 156
    functionName: Botan::XMSS_Address::get_ltree_address
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Address::get_type
    - Botan::XMSS_Address::get_hi32
    - BOTAN_ASSERT
    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:166,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:166,1
    - Dst: Botan::XMSS_Address::set_hi32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 170
    functionName: Botan::XMSS_Address::set_ltree_address
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Address::get_type
    - BOTAN_ASSERT
    - 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:179,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:179,1
    - Dst: Botan::XMSS_Address::get_lo32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 183
    functionName: Botan::XMSS_Address::get_chain_address
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Address::get_type
    - Botan::XMSS_Address::get_lo32
    - BOTAN_ASSERT
    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:190,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:190,1
    - Dst: Botan::XMSS_Address::set_lo32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 194
    functionName: Botan::XMSS_Address::set_chain_address
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Address::get_type
    - BOTAN_ASSERT
    - 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:204,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:204,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:204,1
    - Dst: Botan::XMSS_Address::get_lo32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 208
    functionName: Botan::XMSS_Address::get_tree_height
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Address::get_type
    - Botan::XMSS_Address::get_lo32
    - BOTAN_ASSERT
    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:218,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:218,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:218,1
    - Dst: Botan::XMSS_Address::set_lo32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 222
    functionName: Botan::XMSS_Address::set_tree_height
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Address::get_type
    - BOTAN_ASSERT
    - 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:232,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:232,1
    - Dst: Botan::XMSS_Address::get_hi32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 236
    functionName: Botan::XMSS_Address::get_hash_address
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Address::get_type
    - Botan::XMSS_Address::get_hi32
    - BOTAN_ASSERT
    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:246,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:246,1
    - Dst: Botan::XMSS_Address::set_hi32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 250
    functionName: Botan::XMSS_Address::set_hash_address
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Address::get_type
    - BOTAN_ASSERT
    - 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:260,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:260,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:260,1
    - Dst: Botan::XMSS_Address::get_hi32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 264
    functionName: Botan::XMSS_Address::get_tree_index
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Address::get_type
    - Botan::XMSS_Address::get_hi32
    - BOTAN_ASSERT
    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:274,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:274,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:274,1
    - Dst: Botan::XMSS_Address::set_hi32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 278
    functionName: Botan::XMSS_Address::set_tree_index
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Address::get_type
    - BOTAN_ASSERT
    - 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: 280
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 280
    functionName: '& bytes() const'
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & bytes() const
  - 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: '& bytes()'
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & bytes()
  - 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:
    - Dst: Botan::XMSS_Address::set_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 291
    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:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:293,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:294,1
    - Dst: Botan::XMSS_Address::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 295
    functionName: Botan::XMSS_Address::XMSS_Address
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ASSERT
    - Botan::XMSS_Address::size
    linkageType: ''
    returnType: void
    signature: void XMSS_Address(secure_vector<uint8_t> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 306
    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: 313
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 313
    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: 318
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 318
    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: 325
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 325
    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: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    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:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 55
    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: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    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: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::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: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::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:92,1
    - Dst: std::fill
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:93,1
    - Dst: begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:93,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:93,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - type
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 94
    functionName: Botan::XMSS_Address::set_type
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 2
    functionsReached:
    - begin
    - static_cast<uint8_t>
    - std::fill
    - end
    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:102,1
    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::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:111,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:111,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - Key_Mask
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: Botan::XMSS_Address::set_key_mask_mode
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Address::get_type
    - BOTAN_ASSERT
    - 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:124,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:124,1
    - Dst: Botan::XMSS_Address::get_hi32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 128
    functionName: Botan::XMSS_Address::get_ots_address
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Address::get_type
    - Botan::XMSS_Address::get_hi32
    - BOTAN_ASSERT
    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:138,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:138,1
    - Dst: Botan::XMSS_Address::set_hi32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: Botan::XMSS_Address::set_ots_address
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Address::get_type
    - BOTAN_ASSERT
    - 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:152,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:152,1
    - Dst: Botan::XMSS_Address::get_hi32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 156
    functionName: Botan::XMSS_Address::get_ltree_address
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Address::get_type
    - Botan::XMSS_Address::get_hi32
    - BOTAN_ASSERT
    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:166,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:166,1
    - Dst: Botan::XMSS_Address::set_hi32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 170
    functionName: Botan::XMSS_Address::set_ltree_address
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Address::get_type
    - BOTAN_ASSERT
    - 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:179,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:179,1
    - Dst: Botan::XMSS_Address::get_lo32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 183
    functionName: Botan::XMSS_Address::get_chain_address
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Address::get_type
    - Botan::XMSS_Address::get_lo32
    - BOTAN_ASSERT
    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:190,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:190,1
    - Dst: Botan::XMSS_Address::set_lo32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 194
    functionName: Botan::XMSS_Address::set_chain_address
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Address::get_type
    - BOTAN_ASSERT
    - 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:204,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:204,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:204,1
    - Dst: Botan::XMSS_Address::get_lo32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 208
    functionName: Botan::XMSS_Address::get_tree_height
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Address::get_type
    - Botan::XMSS_Address::get_lo32
    - BOTAN_ASSERT
    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:218,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:218,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:218,1
    - Dst: Botan::XMSS_Address::set_lo32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 222
    functionName: Botan::XMSS_Address::set_tree_height
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Address::get_type
    - BOTAN_ASSERT
    - 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:232,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:232,1
    - Dst: Botan::XMSS_Address::get_hi32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 236
    functionName: Botan::XMSS_Address::get_hash_address
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Address::get_type
    - Botan::XMSS_Address::get_hi32
    - BOTAN_ASSERT
    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:246,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:246,1
    - Dst: Botan::XMSS_Address::set_hi32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 250
    functionName: Botan::XMSS_Address::set_hash_address
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Address::get_type
    - BOTAN_ASSERT
    - 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:260,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:260,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:260,1
    - Dst: Botan::XMSS_Address::get_hi32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:263,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 264
    functionName: Botan::XMSS_Address::get_tree_index
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Address::get_type
    - Botan::XMSS_Address::get_hi32
    - BOTAN_ASSERT
    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:274,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:274,1
    - Dst: Botan::XMSS_Address::get_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:274,1
    - Dst: Botan::XMSS_Address::set_hi32
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 278
    functionName: Botan::XMSS_Address::set_tree_index
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Address::get_type
    - BOTAN_ASSERT
    - 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: 280
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 280
    functionName: '& bytes() const'
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & bytes() const
  - 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: '& bytes()'
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & bytes()
  - 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: 3
    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:
    - Dst: Botan::XMSS_Address::set_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 291
    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:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:293,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:294,1
    - Dst: Botan::XMSS_Address::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_address.h:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 295
    functionName: Botan::XMSS_Address::XMSS_Address
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_address.h
    functionUses: 0
    functionsReached:
    - std::move
    - BOTAN_ASSERT
    - Botan::XMSS_Address::size
    linkageType: ''
    returnType: void
    signature: void XMSS_Address(secure_vector<uint8_t> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - offset
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 306
    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: 313
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 313
    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: 318
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 318
    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: 325
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 325
    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:
    - authentication_path::back
    - Decoding_Error
    - std::span<const uint8_t>::size
    - copy
    - secure_vector<uint8_t>
    - XMSS_Parameters::element_size
    - std::back_inserter
    - ots_signature::back
    - std::span<const uint8_t>::begin
    - XMSS_Parameters::tree_height
    - ots_signature::push_back
    - XMSS_Parameters::total_number_of_signatures
    - XMSS_Parameters::len
    - authentication_path::push_back
    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:
    - copy
    - static_cast<uint8_t>
    - std::back_inserter
    - tree
    - end
    - begin
    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:
    - authentication_path::back
    - Decoding_Error
    - std::span<const uint8_t>::size
    - copy
    - secure_vector<uint8_t>
    - XMSS_Parameters::element_size
    - std::back_inserter
    - ots_signature::back
    - std::span<const uint8_t>::begin
    - XMSS_Parameters::tree_height
    - ots_signature::push_back
    - XMSS_Parameters::total_number_of_signatures
    - XMSS_Parameters::len
    - authentication_path::push_back
    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:
    - copy
    - static_cast<uint8_t>
    - std::back_inserter
    - tree
    - end
    - begin
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> XMSS_Signature::bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.cpp:22,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.cpp:23,1
    - Dst: std::unique_ptr::update
      Src: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.cpp:24,1
    - Dst: std::unique_ptr::update
      Src: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.cpp:25,1
    - Dst: std::unique_ptr::final
      Src: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.cpp:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' private_seed'
    - ' prf'
    argTypes:
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 33
    functionName: Botan::XMSS_Index_Registry::make_key_id
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.cpp
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create
    - BOTAN_ASSERT
    - std::unique_ptr::update
    - std::unique_ptr::final
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t XMSS_Index_Registry::make_key_id(const secure_vector<uint8_t>&
      private_seed,\n                                          const secure_vector<uint8_t>&
      prf)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_Index_Registry::get
      Src: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.cpp:37,1
    - Dst: Botan::XMSS_Index_Registry::make_key_id
      Src: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.cpp:37,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.cpp:39,1
    - Dst: Botan::XMSS_Index_Registry::add
      Src: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.cpp:42,1
    - Dst: Botan::XMSS_Index_Registry::make_key_id
      Src: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.cpp:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' private_seed'
    - ' prf'
    argTypes:
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 44
    functionName: Botan::XMSS_Index_Registry::get
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.cpp
    functionUses: 1
    functionsReached:
    - Botan::XMSS_Index_Registry::get
    - Botan_Tests::random_bit_generator::max
    - Botan::XMSS_Index_Registry::add
    - Botan::XMSS_Index_Registry::make_key_id
    linkageType: ''
    returnType: std::shared_ptr<Atomic<size_t>>
    signature: "std::shared_ptr<Atomic<size_t>> XMSS_Index_Registry::get(const secure_vector<uint8_t>&
      private_seed,\n                                                         const
      secure_vector<uint8_t>& prf)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.cpp:47,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - id
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 54
    functionName: Botan::XMSS_Index_Registry::get
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::random_bit_generator::max
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t XMSS_Index_Registry::get(uint64_t id) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_Index_Registry::get
      Src: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.cpp:58,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.cpp:59,1
    - Dst: std::make_shared<Atomic<size_t>>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.cpp:61,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.cpp:66,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.cpp:67,1
    - Dst: std::make_shared<Atomic<size_t>>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.cpp:67,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.cpp:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - id
    - last_unused
    argTypes:
    - uint64_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 69
    functionName: Botan::XMSS_Index_Registry::add
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.cpp
    functionUses: 1
    functionsReached:
    - Botan::XMSS_Index_Registry::get
    - push_back
    - size
    - std::make_shared<Atomic<size_t>>
    linkageType: ''
    returnType: size_t
    signature: size_t XMSS_Index_Registry::add(uint64_t id, size_t last_unused)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create
      Src: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.cpp:22,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.cpp:23,1
    - Dst: std::unique_ptr::update
      Src: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.cpp:24,1
    - Dst: std::unique_ptr::update
      Src: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.cpp:25,1
    - Dst: std::unique_ptr::final
      Src: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.cpp:26,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' private_seed'
    - ' prf'
    argTypes:
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 33
    functionName: Botan::XMSS_Index_Registry::make_key_id
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.cpp
    functionUses: 1
    functionsReached:
    - Botan::HashFunction::create
    - BOTAN_ASSERT
    - std::unique_ptr::update
    - std::unique_ptr::final
    linkageType: ''
    returnType: uint64_t
    signature: "uint64_t XMSS_Index_Registry::make_key_id(const secure_vector<uint8_t>&
      private_seed,\n                                          const secure_vector<uint8_t>&
      prf)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_Index_Registry::get
      Src: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.cpp:37,1
    - Dst: Botan::XMSS_Index_Registry::make_key_id
      Src: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.cpp:37,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.cpp:39,1
    - Dst: Botan::XMSS_Index_Registry::add
      Src: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.cpp:42,1
    - Dst: Botan::XMSS_Index_Registry::make_key_id
      Src: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.cpp:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' private_seed'
    - ' prf'
    argTypes:
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 44
    functionName: Botan::XMSS_Index_Registry::get
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.cpp
    functionUses: 3
    functionsReached:
    - Botan::XMSS_Index_Registry::get
    - Botan_Tests::random_bit_generator::max
    - Botan::XMSS_Index_Registry::add
    - Botan::XMSS_Index_Registry::make_key_id
    linkageType: ''
    returnType: std::shared_ptr<Atomic<size_t>>
    signature: "std::shared_ptr<Atomic<size_t>> XMSS_Index_Registry::get(const secure_vector<uint8_t>&
      private_seed,\n                                                         const
      secure_vector<uint8_t>& prf)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.cpp:47,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.cpp:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - id
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 54
    functionName: Botan::XMSS_Index_Registry::get
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::random_bit_generator::max
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t XMSS_Index_Registry::get(uint64_t id) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_Index_Registry::get
      Src: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.cpp:58,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.cpp:59,1
    - Dst: std::make_shared<Atomic<size_t>>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.cpp:61,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.cpp:66,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.cpp:67,1
    - Dst: std::make_shared<Atomic<size_t>>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.cpp:67,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.cpp:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - id
    - last_unused
    argTypes:
    - uint64_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 69
    functionName: Botan::XMSS_Index_Registry::add
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_index_registry.cpp
    functionUses: 2
    functionsReached:
    - Botan::XMSS_Index_Registry::get
    - push_back
    - size
    - std::make_shared<Atomic<size_t>>
    linkageType: ''
    returnType: size_t
    signature: size_t XMSS_Index_Registry::add(uint64_t id, size_t last_unused)
  - 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:26,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:28,1
    - Dst: unused_leaf_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:28,1
    - Dst: set_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:29,1
    - Dst: 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: set_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:35,1
    - Dst: 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: set_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:41,1
    - Dst: 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: 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: set_tree_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:47,1
    - Dst: 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: set_tree_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:51,1
    - Dst: 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: 4
    argNames:
    - ' sig'
    - ' msg'
    - ' adrs'
    - ' seed'
    argTypes:
    - XMSS_Signature
    - secure_vector<uint8_t>
    - XMSS_Address
    - 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:
    - tree_height
    - set_tree_index
    - set_tree_height
    - static_cast<uint32_t>
    - static_cast<size_t>
    - unused_leaf_index
    - xmss_parameters
    - ots_oid
    - tree
    - set_type
    - get_tree_index
    - Botan::XMSS_Common_Ops::randomize_tree_hash
    - XMSS_WOTS_PublicKey::key_data
    - set_ots_address
    - Botan::XMSS_Common_Ops::create_l_tree
    - set_ltree_address
    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                                                                        XMSS_Address&
      adrs,\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:65,1
    - Dst: unused_leaf_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:65,1
    - Dst: xmss_parameters
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:65,1
    - Dst: h_msg
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:66,1
    - Dst: randomness
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:66,1
    - Dst: root
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:66,1
    - Dst: Botan::XMSS_Verification_Operation::root_from_signature
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:68,1
    - Dst: public_seed
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:68,1
    - Dst: root
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:70,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: 71
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 71
    functionName: Botan::XMSS_Verification_Operation::verify
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Verification_Operation::root_from_signature
    - unused_leaf_index
    - xmss_parameters
    - public_seed
    - xmss_concat
    - h_msg
    - randomness
    - root
    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:81,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:81,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:81,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: Botan::XMSS_Verification_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - end
    - insert
    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:86,1
    - Dst: Botan::XMSS_Verification_Operation::verify
      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:88,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 94
    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
    - xmss_parameters
    - clear
    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:26,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:28,1
    - Dst: unused_leaf_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:28,1
    - Dst: set_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:29,1
    - Dst: 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: set_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:35,1
    - Dst: 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: set_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:41,1
    - Dst: 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: 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: set_tree_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:47,1
    - Dst: 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: set_tree_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:51,1
    - Dst: 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: 4
    argNames:
    - ' sig'
    - ' msg'
    - ' adrs'
    - ' seed'
    argTypes:
    - XMSS_Signature
    - secure_vector<uint8_t>
    - XMSS_Address
    - 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:
    - tree_height
    - set_tree_index
    - set_tree_height
    - static_cast<uint32_t>
    - static_cast<size_t>
    - unused_leaf_index
    - xmss_parameters
    - ots_oid
    - tree
    - set_type
    - get_tree_index
    - Botan::XMSS_Common_Ops::randomize_tree_hash
    - XMSS_WOTS_PublicKey::key_data
    - set_ots_address
    - Botan::XMSS_Common_Ops::create_l_tree
    - set_ltree_address
    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                                                                        XMSS_Address&
      adrs,\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:65,1
    - Dst: unused_leaf_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:65,1
    - Dst: xmss_parameters
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:65,1
    - Dst: h_msg
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:66,1
    - Dst: randomness
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:66,1
    - Dst: root
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:66,1
    - Dst: Botan::XMSS_Verification_Operation::root_from_signature
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:68,1
    - Dst: public_seed
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:68,1
    - Dst: root
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:70,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: 71
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 71
    functionName: Botan::XMSS_Verification_Operation::verify
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp
    functionUses: 1
    functionsReached:
    - Botan::XMSS_Verification_Operation::root_from_signature
    - unused_leaf_index
    - xmss_parameters
    - public_seed
    - xmss_concat
    - h_msg
    - randomness
    - root
    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:81,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:81,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:81,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: Botan::XMSS_Verification_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - end
    - insert
    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:86,1
    - Dst: Botan::XMSS_Verification_Operation::verify
      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:88,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/xmss/xmss_verification_operation.cpp:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 94
    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
    - xmss_parameters
    - clear
    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:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' private_key'
    argTypes:
    - XMSS_PrivateKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 27
    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: Botan::XMSS_Signature_Operation::build_auth_path
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:34,1
    - Dst: set_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:35,1
    - Dst: set_ots_address
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:36,1
    - Dst: wots_private_key_for
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:39,1
    - Dst: public_seed
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - ' msg'
    - ' xmss_priv_key'
    - ' adrs'
    argTypes:
    - secure_vector<uint8_t>
    - XMSS_PrivateKey
    - XMSS_Address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 42
    functionName: Botan::XMSS_Signature_Operation::generate_tree_signature
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Signature_Operation::build_auth_path
    - wots_private_key_for
    - set_type
    - public_seed
    - set_ots_address
    linkageType: ''
    returnType: XMSS_Signature::TreeSignature
    signature: "XMSS_Signature::TreeSignature XMSS_Signature_Operation::generate_tree_signature(const
      secure_vector<uint8_t>& msg,\n                                                                                XMSS_PrivateKey&
      xmss_priv_key,\n                                                                                XMSS_Address&
      adrs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' msg_hash'
    - ' xmss_priv_key'
    argTypes:
    - secure_vector<uint8_t>
    - XMSS_PrivateKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: Botan::XMSS_Signature_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XMSS_Signature
    signature: XMSS_Signature XMSS_Signature_Operation::sign(const secure_vector<uint8_t>&
      msg_hash, XMSS_PrivateKey& xmss_priv_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmss_parameters
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:51,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:53,1
    - Dst: len
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:53,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:53,1
    - Dst: tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:53,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: Botan::XMSS_Signature_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp
    functionUses: 0
    functionsReached:
    - len
    - tree_height
    - xmss_parameters
    - element_size
    linkageType: ''
    returnType: size_t
    signature: size_t XMSS_Signature_Operation::signature_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmss_parameters
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:57,1
    - Dst: tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:58,1
    - Dst: set_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:59,1
    - Dst: tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:61,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:62,1
    - Dst: tree_hash
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:63,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' priv_key'
    - ' adrs'
    argTypes:
    - XMSS_PrivateKey
    - XMSS_Address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 67
    functionName: Botan::XMSS_Signature_Operation::build_auth_path
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp
    functionUses: 1
    functionsReached:
    - tree_height
    - tree_hash
    - static_cast<size_t>
    - xmss_parameters
    - set_type
    linkageType: ''
    returnType: wots_keysig_t
    signature: wots_keysig_t XMSS_Signature_Operation::build_auth_path(XMSS_PrivateKey&
      priv_key, XMSS_Address& adrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_Signature_Operation::initialize
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:70,1
    - Dst: h_msg_update
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: Botan::XMSS_Signature_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp
    functionUses: 0
    functionsReached:
    - h_msg_update
    - Botan::XMSS_Signature_Operation::initialize
    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:75,1
    - Dst: Botan::XMSS_Signature_Operation::sign
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:76,1
    - Dst: h_msg_final
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: Botan::XMSS_Signature_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp
    functionUses: 1
    functionsReached:
    - Botan::XMSS_Signature_Operation::sign
    - h_msg_final
    - Botan::XMSS_Signature_Operation::initialize
    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:90,1
    - Dst: reserve_unused_leaf_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:90,1
    - Dst: xmss_concat
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:93,1
    - Dst: prf
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:94,1
    - Dst: prf_value
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:94,1
    - Dst: secure_vector::clear
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:95,1
    - Dst: xmss_concat
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:96,1
    - Dst: xmss_parameters
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:96,1
    - Dst: h_msg_init
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:97,1
    - Dst: root
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 99
    functionName: Botan::XMSS_Signature_Operation::initialize
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp
    functionUses: 2
    functionsReached:
    - reserve_unused_leaf_index
    - static_cast<uint32_t>
    - prf_value
    - secure_vector::clear
    - xmss_parameters
    - prf
    - h_msg_init
    - xmss_concat
    - root
    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:102,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 103
    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:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' private_key'
    argTypes:
    - XMSS_PrivateKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 27
    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: Botan::XMSS_Signature_Operation::build_auth_path
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:34,1
    - Dst: set_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:35,1
    - Dst: set_ots_address
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:36,1
    - Dst: wots_private_key_for
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:39,1
    - Dst: public_seed
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - ' msg'
    - ' xmss_priv_key'
    - ' adrs'
    argTypes:
    - secure_vector<uint8_t>
    - XMSS_PrivateKey
    - XMSS_Address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 42
    functionName: Botan::XMSS_Signature_Operation::generate_tree_signature
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp
    functionUses: 0
    functionsReached:
    - Botan::XMSS_Signature_Operation::build_auth_path
    - wots_private_key_for
    - set_type
    - public_seed
    - set_ots_address
    linkageType: ''
    returnType: XMSS_Signature::TreeSignature
    signature: "XMSS_Signature::TreeSignature XMSS_Signature_Operation::generate_tree_signature(const
      secure_vector<uint8_t>& msg,\n                                                                                XMSS_PrivateKey&
      xmss_priv_key,\n                                                                                XMSS_Address&
      adrs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' msg_hash'
    - ' xmss_priv_key'
    argTypes:
    - secure_vector<uint8_t>
    - XMSS_PrivateKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: Botan::XMSS_Signature_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: XMSS_Signature
    signature: XMSS_Signature XMSS_Signature_Operation::sign(const secure_vector<uint8_t>&
      msg_hash, XMSS_PrivateKey& xmss_priv_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmss_parameters
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:51,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:53,1
    - Dst: len
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:53,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:53,1
    - Dst: tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:53,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: Botan::XMSS_Signature_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp
    functionUses: 0
    functionsReached:
    - len
    - tree_height
    - xmss_parameters
    - element_size
    linkageType: ''
    returnType: size_t
    signature: size_t XMSS_Signature_Operation::signature_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: xmss_parameters
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:57,1
    - Dst: tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:58,1
    - Dst: set_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:59,1
    - Dst: tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:61,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:62,1
    - Dst: tree_hash
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:63,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' priv_key'
    - ' adrs'
    argTypes:
    - XMSS_PrivateKey
    - XMSS_Address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 67
    functionName: Botan::XMSS_Signature_Operation::build_auth_path
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp
    functionUses: 2
    functionsReached:
    - tree_height
    - tree_hash
    - static_cast<size_t>
    - xmss_parameters
    - set_type
    linkageType: ''
    returnType: wots_keysig_t
    signature: wots_keysig_t XMSS_Signature_Operation::build_auth_path(XMSS_PrivateKey&
      priv_key, XMSS_Address& adrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_Signature_Operation::initialize
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:70,1
    - Dst: h_msg_update
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: Botan::XMSS_Signature_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp
    functionUses: 0
    functionsReached:
    - h_msg_update
    - Botan::XMSS_Signature_Operation::initialize
    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:75,1
    - Dst: Botan::XMSS_Signature_Operation::sign
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:76,1
    - Dst: h_msg_final
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: Botan::XMSS_Signature_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp
    functionUses: 2
    functionsReached:
    - Botan::XMSS_Signature_Operation::sign
    - h_msg_final
    - Botan::XMSS_Signature_Operation::initialize
    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:90,1
    - Dst: reserve_unused_leaf_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:90,1
    - Dst: xmss_concat
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:93,1
    - Dst: prf
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:94,1
    - Dst: prf_value
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:94,1
    - Dst: secure_vector::clear
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:95,1
    - Dst: xmss_concat
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:96,1
    - Dst: xmss_parameters
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:96,1
    - Dst: h_msg_init
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:97,1
    - Dst: root
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:97,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 99
    functionName: Botan::XMSS_Signature_Operation::initialize
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp
    functionUses: 4
    functionsReached:
    - reserve_unused_leaf_index
    - static_cast<uint32_t>
    - prf_value
    - secure_vector::clear
    - xmss_parameters
    - prf
    - h_msg_init
    - xmss_concat
    - root
    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:102,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature_operation.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 103
    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:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 46
    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:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 46
    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: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::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: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::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:51,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.h:51,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: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    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: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    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: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    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: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    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: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    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: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    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:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - randomness
    argTypes:
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    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: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    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:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tree_sig
    argTypes:
    - XMSS_Signature::TreeSignature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    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:51,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_signature.h:51,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: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    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: 53
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 53
    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: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    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: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    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: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    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: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    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:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - randomness
    argTypes:
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    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: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    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:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tree_sig
    argTypes:
    - XMSS_Signature::TreeSignature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    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:44,1
    - Dst: Botan::raw_private_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:44,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:45,1
    - Dst: Botan::raw_legacy_private_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:45,1
    - Dst: secure_vector::assign
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:46,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:46,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:46,1
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:49,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: 53
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 53
    functionName: Botan::extract_raw_private_key
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached:
    - secure_vector::assign
    - std::span<const uint8_t>::size
    - Botan::raw_legacy_private_key_size
    - Botan::raw_private_key_size
    - std::span<const uint8_t>::begin
    - std::span<const uint8_t>::end
    - Botan::BER_Decoder
    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:44,1
    - Dst: Botan::raw_private_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:44,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:45,1
    - Dst: Botan::raw_legacy_private_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:45,1
    - Dst: secure_vector::assign
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:46,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:46,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:46,1
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:49,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: 53
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 53
    functionName: Botan::extract_raw_private_key
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached:
    - secure_vector::assign
    - std::span<const uint8_t>::size
    - Botan::raw_legacy_private_key_size
    - Botan::raw_private_key_size
    - std::span<const uint8_t>::begin
    - std::span<const uint8_t>::end
    - Botan::BER_Decoder
    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:67,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:67,1
    - 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: XMSS_Index_Registry::get_instance
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:69,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: 69
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 69
    functionName: Botan::XMSS_PrivateKey_Internal::XMSS_PrivateKey_Internal
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached:
    - element_size
    - XMSS_Index_Registry::get_instance
    - random_vec
    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: XMSS_Index_Registry::get_instance
      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: 71
    functionDepth: 0
    functionLinenumber: 71
    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
    - XMSS_Index_Registry::get_instance
    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: XMSS_Index_Registry::get_instance
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:90,1
    - Dst: extract_raw_private_key
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:101,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:103,1
    - Dst: raw_private_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:103,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:104,1
    - Dst: raw_legacy_private_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:104,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:105,1
    - Dst: BufferSlicer::skip
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:111,1
    - Dst: raw_public_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:111,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:113,1
    - Dst: load_be<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:114,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:114,1
    - Dst: tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:115,1
    - Dst: Decoding_Error
      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:119,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:119,1
    - Dst: BufferSlicer::copy_as_secure_vector
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:120,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:120,1
    - Dst: Botan::XMSS_PrivateKey_Internal::set_unused_leaf_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:121,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:126,1
    - Dst: static_cast<WOTS_Derivation_Method>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:126,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:126,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:128,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:128,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    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: 129
      start: 84
    functionDepth: 2
    functionLinenumber: 84
    functionLinenumberEnd: 129
    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
    - Decoding_Error
    - tree_height
    - BOTAN_ASSERT_NOMSG
    - BufferSlicer::skip
    - load_be<uint32_t>
    - Botan::XMSS_PrivateKey_Internal::set_unused_leaf_index
    - BufferSlicer::empty
    - raw_public_key_size
    - raw_legacy_private_key_size
    - secure_vector::size
    - element_size
    - XMSS_Index_Registry::get_instance
    - BufferSlicer::copy_as_secure_vector
    - BufferSlicer::take
    - static_cast<WOTS_Derivation_Method>
    - extract_raw_private_key
    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:133,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:133,1
    - Dst: Botan::XMSS_PrivateKey_Internal::unused_leaf_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:133,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:133,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:136,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:136,1
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - raw_public_key
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 140
    functionName: Botan::XMSS_PrivateKey_Internal::serialize
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached:
    - concat
    - std::vector::push_back
    - static_cast<uint32_t>
    - store_be
    - static_cast<uint8_t>
    - std::vector::data
    - Botan::XMSS_PrivateKey_Internal::unused_leaf_index
    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: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: '& hash()'
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XMSS_Hash
    signature: XMSS_Hash & hash()
  - 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: '& 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: 146
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 146
    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: 148
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 148
    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: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    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: 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: '& index_registry()'
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XMSS_Index_Registry
    signature: XMSS_Index_Registry & index_registry()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:155,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:156,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:156,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:156,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:156,1
    - Dst: get
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 159
    functionName: Botan::XMSS_PrivateKey_Internal::recover_global_leaf_index
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached:
    - element_size
    - BOTAN_ASSERT
    - get
    - size
    linkageType: ''
    returnType: std::shared_ptr<Atomic<size_t>>
    signature: std::shared_ptr<Atomic<size_t>> recover_global_leaf_index() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:162,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:163,1
    - Dst: static_cast<std::atomic<size_t>&>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:165,1
    - Dst: Botan::XMSS_PrivateKey_Internal::recover_global_leaf_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:165,1
    - Dst: load
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:170,1
    - Dst: compare_exchange_strong
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:174,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 176
    functionName: Botan::XMSS_PrivateKey_Internal::set_unused_leaf_index
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 1
    functionsReached:
    - tree_height
    - Decoding_Error
    - compare_exchange_strong
    - load
    - Botan::XMSS_PrivateKey_Internal::recover_global_leaf_index
    - static_cast<std::atomic<size_t>&>
    linkageType: ''
    returnType: void
    signature: void set_unused_leaf_index(size_t idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::atomic<size_t>&>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:179,1
    - Dst: Botan::XMSS_PrivateKey_Internal::recover_global_leaf_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:179,1
    - Dst: fetch_add
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:179,1
    - Dst: total_number_of_signatures
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:180,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 184
    functionName: Botan::XMSS_PrivateKey_Internal::reserve_unused_leaf_index
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - Botan::XMSS_PrivateKey_Internal::recover_global_leaf_index
    - static_cast<std::atomic<size_t>&>
    - fetch_add
    - total_number_of_signatures
    linkageType: ''
    returnType: size_t
    signature: size_t reserve_unused_leaf_index()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_PrivateKey_Internal::recover_global_leaf_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 186
    functionName: Botan::XMSS_PrivateKey_Internal::unused_leaf_index
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 1
    functionsReached:
    - Botan::XMSS_PrivateKey_Internal::recover_global_leaf_index
    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:189,1
    - Dst: Botan::XMSS_PrivateKey_Internal::recover_global_leaf_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 190
    functionName: Botan::XMSS_PrivateKey_Internal::remaining_signatures
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached:
    - total_number_of_signatures
    - Botan::XMSS_PrivateKey_Internal::recover_global_leaf_index
    linkageType: ''
    returnType: size_t
    signature: size_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:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - key_bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 205
    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:211,1
    - Dst: Botan::XMSS_PrivateKey::tree_hash
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:213,1
    - Dst: tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:213,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: 214
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 214
    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>
    - tree_height
    - Botan::XMSS_PrivateKey::tree_hash
    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:223,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:223,1
    - Dst: std::make_shared<XMSS_PrivateKey_Internal>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:224,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:225,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:225,1
    - Dst: set_unused_leaf_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:226,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:227,1
    - Dst: prf_value
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:227,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:227,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:229,1
    - Dst: private_seed
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:229,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:229,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: 231
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 231
    functionName: Botan::XMSS_PrivateKey::XMSS_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 4
    functionsReached:
    - std::move
    - set_unused_leaf_index
    - prf_value
    - std::make_shared<XMSS_PrivateKey_Internal>
    - BOTAN_ARG_CHECK
    - private_seed
    - element_size
    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:234,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:235,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:235,1
    - Dst: Thread_Pool::global_instance
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:241,1
    - Dst: min
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:243,1
    - Dst: worker_count
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:243,1
    - Dst: Botan::XMSS_PrivateKey::tree_hash_subtree
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:248,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:252,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:253,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:256,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:258,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:263,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:263,1
    - Dst: hash
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:265,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:275,1
    - Dst: run
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:275,1
    - Dst: std::ref
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:277,1
    - Dst: std::ref
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:280,1
    - Dst: std::ref
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:281,1
    - Dst: get
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:285,1
    - Dst: std::vector::clear
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:287,1
    - Dst: std::vector::begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:291,1
    - Dst: std::vector::begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:292,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:292,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:294,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:295,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:295,1
    - Dst: set_tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:297,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:297,1
    - Dst: set_tree_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:298,1
    - Dst: get_tree_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:298,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:300,1
    - Dst: run
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:300,1
    - Dst: std::ref
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:301,1
    - Dst: std::cref
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:302,1
    - Dst: std::cref
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:303,1
    - Dst: std::ref
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:304,1
    - Dst: std::cref
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:305,1
    - Dst: Botan::XMSS_PrivateKey::public_seed
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:305,1
    - Dst: std::ref
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:306,1
    - Dst: std::cref
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:307,1
    - Dst: get
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:311,1
    - Dst: std::vector::clear
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:313,1
    - Dst: set_tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:317,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:317,1
    - Dst: set_tree_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:318,1
    - Dst: get_tree_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:318,1
    - Dst: Botan::XMSS_Common_Ops::randomize_tree_hash
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:319,1
    - Dst: Botan::XMSS_PrivateKey::public_seed
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:320,1
    - Dst: hash
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:320,1
    - Dst: Botan::XMSS_PrivateKey::tree_hash_subtree
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:324,1
    - Dst: hash
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:324,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 3
    argNames:
    - start_idx
    - target_node_height
    - ' adrs'
    argTypes:
    - size_t
    - size_t
    - XMSS_Address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 233
    functionDepth: 3
    functionLinenumber: 233
    functionLinenumberEnd: 327
    functionName: Botan::XMSS_PrivateKey::tree_hash
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - set_tree_index
    - static_cast<size_t>
    - std::ref
    - hash
    - std::vector::begin
    - std::cref
    - min
    - run
    - secure_vector<uint8_t>
    - Thread_Pool::global_instance
    - element_size
    - get_tree_index
    - Botan::XMSS_PrivateKey::tree_hash_subtree
    - std::vector::push_back
    - static_cast<uint32_t>
    - Botan::XMSS_PrivateKey::public_seed
    - static_cast<uint8_t>
    - std::vector::clear
    - Botan::XMSS_Common_Ops::randomize_tree_hash
    - get
    - std::vector::size
    - BOTAN_ASSERT
    - set_tree_height
    - worker_count
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> XMSS_PrivateKey::tree_hash(size_t start_idx,
      size_t target_node_height, XMSS_Address& adrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_PrivateKey::tree_hash_subtree
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:333,1
    - Dst: hash
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' result'
    - start_idx
    - target_node_height
    - ' adrs'
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    - size_t
    - XMSS_Address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 334
    functionName: Botan::XMSS_PrivateKey::tree_hash_subtree
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 2
    functionsReached:
    - hash
    - Botan::XMSS_PrivateKey::tree_hash_subtree
    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)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_PrivateKey::public_seed
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:338,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:341,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:341,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:350,1
    - Dst: set_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:353,1
    - Dst: set_ots_address
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:354,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:354,1
    - Dst: Botan::XMSS_PrivateKey::wots_public_key_for
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:356,1
    - Dst: set_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:358,1
    - Dst: set_ltree_address
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:359,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:359,1
    - Dst: Botan::XMSS_Common_Ops::create_l_tree
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:360,1
    - Dst: XMSS_WOTS_PublicKey::key_data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:360,1
    - Dst: set_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:363,1
    - Dst: set_tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:364,1
    - Dst: set_tree_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:365,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:365,1
    - Dst: set_tree_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:368,1
    - Dst: get_tree_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:368,1
    - Dst: Botan::XMSS_Common_Ops::randomize_tree_hash
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:369,1
    - Dst: set_tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:373,1
    - Dst: get_tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:373,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: 378
      start: 336
    functionDepth: 1
    functionLinenumber: 336
    functionLinenumberEnd: 378
    functionName: Botan::XMSS_PrivateKey::tree_hash_subtree
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 2
    functionsReached:
    - set_tree_index
    - set_tree_height
    - static_cast<uint32_t>
    - static_cast<size_t>
    - Botan::XMSS_PrivateKey::public_seed
    - secure_vector<uint8_t>
    - element_size
    - set_type
    - get_tree_index
    - Botan::XMSS_Common_Ops::randomize_tree_hash
    - get_tree_height
    - Botan::XMSS_PrivateKey::wots_public_key_for
    - XMSS_WOTS_PublicKey::key_data
    - set_ots_address
    - Botan::XMSS_Common_Ops::create_l_tree
    - set_ltree_address
    linkageType: ''
    returnType: void
    signature: "void XMSS_PrivateKey::tree_hash_subtree(\n   secure_vector<uint8_t>&
      result, size_t start_idx, size_t target_node_height, XMSS_Address& adrs, XMSS_Hash&
      hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_PrivateKey::wots_private_key_for
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:381,1
    - Dst: XMSS_WOTS_PublicKey
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:382,1
    - Dst: wots_parameters
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' adrs'
    - ' hash'
    argTypes:
    - XMSS_Address
    - XMSS_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 380
    functionDepth: 1
    functionLinenumber: 380
    functionLinenumberEnd: 383
    functionName: Botan::XMSS_PrivateKey::wots_public_key_for
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 1
    functionsReached:
    - Botan::XMSS_PrivateKey::wots_private_key_for
    - XMSS_WOTS_PublicKey
    - wots_parameters
    linkageType: ''
    returnType: XMSS_WOTS_PublicKey
    signature: XMSS_WOTS_PublicKey XMSS_PrivateKey::wots_public_key_for(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:386,1
    - Dst: XMSS_WOTS_PrivateKey
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:388,1
    - Dst: wots_parameters
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:389,1
    - Dst: private_seed
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:389,1
    - Dst: XMSS_WOTS_PrivateKey
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:391,1
    - Dst: wots_parameters
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:391,1
    - Dst: private_seed
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:391,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:394,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' adrs'
    - ' hash'
    argTypes:
    - XMSS_Address
    - XMSS_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 395
    functionName: Botan::XMSS_PrivateKey::wots_private_key_for
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 1
    functionsReached:
    - wots_parameters
    - XMSS_WOTS_PrivateKey
    - Invalid_State
    - private_seed
    - Botan::XMSS_PrivateKey::wots_derivation_method
    linkageType: ''
    returnType: XMSS_WOTS_PrivateKey
    signature: XMSS_WOTS_PrivateKey XMSS_PrivateKey::wots_private_key_for(XMSS_Address&
      adrs, XMSS_Hash& hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:398,1
    - Dst: Botan::XMSS_PrivateKey::raw_private_key
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 399
    functionName: Botan::XMSS_PrivateKey::private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached:
    - Botan::XMSS_PrivateKey::raw_private_key
    - DER_Encoder
    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:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 403
    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:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 407
    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: Botan::XMSS_PrivateKey::remaining_signatures
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 411
    functionName: Botan::XMSS_PrivateKey::remaining_signatures
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 1
    functionsReached:
    - Botan::XMSS_PrivateKey::remaining_signatures
    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:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 413
    functionDepth: 2
    functionLinenumber: 413
    functionLinenumberEnd: 415
    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:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 419
    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:422,1
    - Dst: raw_public_key
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 423
    functionName: Botan::XMSS_PrivateKey::raw_private_key
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 5
    functionsReached:
    - serialize
    - raw_public_key
    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:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 427
    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:430,1
    - Dst: xmss_parameters
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:430,1
    - Dst: root
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:430,1
    - Dst: public_seed
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 431
    functionName: Botan::XMSS_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 4
    functionsReached:
    - xmss_parameters
    - std::make_unique<XMSS_PublicKey>
    - public_seed
    - root
    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:436,1
    - Dst: std::make_unique<XMSS_Signature_Operation>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:437,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:440,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:440,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - provider
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 441
    functionName: Botan::XMSS_PrivateKey::create_signature_op
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached:
    - algo_name
    - Provider_Not_Found
    - std::make_unique<XMSS_Signature_Operation>
    - std::string_view::empty
    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:44,1
    - Dst: Botan::raw_private_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:44,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:45,1
    - Dst: Botan::raw_legacy_private_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:45,1
    - Dst: secure_vector::assign
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:46,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:46,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:46,1
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:49,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: 53
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 53
    functionName: Botan::extract_raw_private_key
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached:
    - secure_vector::assign
    - std::span<const uint8_t>::size
    - Botan::raw_legacy_private_key_size
    - Botan::raw_private_key_size
    - std::span<const uint8_t>::begin
    - std::span<const uint8_t>::end
    - Botan::BER_Decoder
    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:44,1
    - Dst: Botan::raw_private_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:44,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:45,1
    - Dst: Botan::raw_legacy_private_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:45,1
    - Dst: secure_vector::assign
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:46,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:46,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:46,1
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:49,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: 53
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 53
    functionName: Botan::extract_raw_private_key
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached:
    - secure_vector::assign
    - std::span<const uint8_t>::size
    - Botan::raw_legacy_private_key_size
    - Botan::raw_private_key_size
    - std::span<const uint8_t>::begin
    - std::span<const uint8_t>::end
    - Botan::BER_Decoder
    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:67,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:67,1
    - 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: XMSS_Index_Registry::get_instance
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:69,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: 69
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 69
    functionName: Botan::XMSS_PrivateKey_Internal::XMSS_PrivateKey_Internal
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached:
    - element_size
    - XMSS_Index_Registry::get_instance
    - random_vec
    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: XMSS_Index_Registry::get_instance
      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: 71
    functionDepth: 0
    functionLinenumber: 71
    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
    - XMSS_Index_Registry::get_instance
    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: XMSS_Index_Registry::get_instance
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:90,1
    - Dst: extract_raw_private_key
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:101,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:103,1
    - Dst: raw_private_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:103,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:104,1
    - Dst: raw_legacy_private_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:104,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:105,1
    - Dst: BufferSlicer::skip
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:111,1
    - Dst: raw_public_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:111,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:113,1
    - Dst: load_be<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:114,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:114,1
    - Dst: tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:115,1
    - Dst: Decoding_Error
      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:119,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:119,1
    - Dst: BufferSlicer::copy_as_secure_vector
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:120,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:120,1
    - Dst: Botan::XMSS_PrivateKey_Internal::set_unused_leaf_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:121,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:126,1
    - Dst: static_cast<WOTS_Derivation_Method>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:126,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:126,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:128,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:128,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    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: 129
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 129
    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
    - Decoding_Error
    - tree_height
    - BOTAN_ASSERT_NOMSG
    - BufferSlicer::skip
    - load_be<uint32_t>
    - Botan::XMSS_PrivateKey_Internal::set_unused_leaf_index
    - BufferSlicer::empty
    - raw_public_key_size
    - raw_legacy_private_key_size
    - secure_vector::size
    - element_size
    - XMSS_Index_Registry::get_instance
    - BufferSlicer::copy_as_secure_vector
    - BufferSlicer::take
    - static_cast<WOTS_Derivation_Method>
    - extract_raw_private_key
    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:133,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:133,1
    - Dst: Botan::XMSS_PrivateKey_Internal::unused_leaf_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:133,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:133,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:136,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:136,1
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - raw_public_key
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 140
    functionName: Botan::XMSS_PrivateKey_Internal::serialize
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached:
    - concat
    - std::vector::push_back
    - static_cast<uint32_t>
    - store_be
    - static_cast<uint8_t>
    - std::vector::data
    - Botan::XMSS_PrivateKey_Internal::unused_leaf_index
    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: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: '& hash()'
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XMSS_Hash
    signature: XMSS_Hash & hash()
  - 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: '& 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: 146
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 146
    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: 148
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 148
    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: 150
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 150
    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: 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: '& index_registry()'
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: XMSS_Index_Registry
    signature: XMSS_Index_Registry & index_registry()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:155,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:156,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:156,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:156,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:156,1
    - Dst: get
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 159
    functionName: Botan::XMSS_PrivateKey_Internal::recover_global_leaf_index
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 4
    functionsReached:
    - element_size
    - BOTAN_ASSERT
    - get
    - size
    linkageType: ''
    returnType: std::shared_ptr<Atomic<size_t>>
    signature: std::shared_ptr<Atomic<size_t>> recover_global_leaf_index() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:162,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:163,1
    - Dst: static_cast<std::atomic<size_t>&>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:165,1
    - Dst: Botan::XMSS_PrivateKey_Internal::recover_global_leaf_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:165,1
    - Dst: load
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:170,1
    - Dst: compare_exchange_strong
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:174,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 161
    functionDepth: 2
    functionLinenumber: 161
    functionLinenumberEnd: 176
    functionName: Botan::XMSS_PrivateKey_Internal::set_unused_leaf_index
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 2
    functionsReached:
    - tree_height
    - Decoding_Error
    - compare_exchange_strong
    - load
    - Botan::XMSS_PrivateKey_Internal::recover_global_leaf_index
    - static_cast<std::atomic<size_t>&>
    linkageType: ''
    returnType: void
    signature: void set_unused_leaf_index(size_t idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::atomic<size_t>&>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:179,1
    - Dst: Botan::XMSS_PrivateKey_Internal::recover_global_leaf_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:179,1
    - Dst: fetch_add
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:179,1
    - Dst: total_number_of_signatures
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:180,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:181,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 178
    functionDepth: 2
    functionLinenumber: 178
    functionLinenumberEnd: 184
    functionName: Botan::XMSS_PrivateKey_Internal::reserve_unused_leaf_index
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - Botan::XMSS_PrivateKey_Internal::recover_global_leaf_index
    - static_cast<std::atomic<size_t>&>
    - fetch_add
    - total_number_of_signatures
    linkageType: ''
    returnType: size_t
    signature: size_t reserve_unused_leaf_index()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_PrivateKey_Internal::recover_global_leaf_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 186
    functionName: Botan::XMSS_PrivateKey_Internal::unused_leaf_index
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 2
    functionsReached:
    - Botan::XMSS_PrivateKey_Internal::recover_global_leaf_index
    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:189,1
    - Dst: Botan::XMSS_PrivateKey_Internal::recover_global_leaf_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 190
    functionName: Botan::XMSS_PrivateKey_Internal::remaining_signatures
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached:
    - total_number_of_signatures
    - Botan::XMSS_PrivateKey_Internal::recover_global_leaf_index
    linkageType: ''
    returnType: size_t
    signature: size_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:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - key_bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 205
    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:211,1
    - Dst: Botan::XMSS_PrivateKey::tree_hash
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:213,1
    - Dst: tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:213,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: 214
      start: 207
    functionDepth: 4
    functionLinenumber: 207
    functionLinenumberEnd: 214
    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>
    - tree_height
    - Botan::XMSS_PrivateKey::tree_hash
    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:223,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:223,1
    - Dst: std::make_shared<XMSS_PrivateKey_Internal>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:224,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:225,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:225,1
    - Dst: set_unused_leaf_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:226,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:227,1
    - Dst: prf_value
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:227,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:227,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:229,1
    - Dst: private_seed
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:229,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:229,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: 231
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 231
    functionName: Botan::XMSS_PrivateKey::XMSS_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 4
    functionsReached:
    - std::move
    - set_unused_leaf_index
    - prf_value
    - std::make_shared<XMSS_PrivateKey_Internal>
    - BOTAN_ARG_CHECK
    - private_seed
    - element_size
    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:234,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:235,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:235,1
    - Dst: Thread_Pool::global_instance
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:241,1
    - Dst: min
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:243,1
    - Dst: worker_count
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:243,1
    - Dst: Botan::XMSS_PrivateKey::tree_hash_subtree
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:248,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:252,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:253,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:256,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:258,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:263,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:263,1
    - Dst: hash
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:265,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:275,1
    - Dst: run
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:275,1
    - Dst: std::ref
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:277,1
    - Dst: std::ref
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:280,1
    - Dst: std::ref
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:281,1
    - Dst: get
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:285,1
    - Dst: std::vector::clear
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:287,1
    - Dst: std::vector::begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:291,1
    - Dst: std::vector::begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:292,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:292,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:294,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:295,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:295,1
    - Dst: set_tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:297,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:297,1
    - Dst: set_tree_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:298,1
    - Dst: get_tree_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:298,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:300,1
    - Dst: run
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:300,1
    - Dst: std::ref
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:301,1
    - Dst: std::cref
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:302,1
    - Dst: std::cref
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:303,1
    - Dst: std::ref
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:304,1
    - Dst: std::cref
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:305,1
    - Dst: Botan::XMSS_PrivateKey::public_seed
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:305,1
    - Dst: std::ref
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:306,1
    - Dst: std::cref
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:307,1
    - Dst: get
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:311,1
    - Dst: std::vector::clear
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:313,1
    - Dst: set_tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:317,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:317,1
    - Dst: set_tree_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:318,1
    - Dst: get_tree_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:318,1
    - Dst: Botan::XMSS_Common_Ops::randomize_tree_hash
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:319,1
    - Dst: Botan::XMSS_PrivateKey::public_seed
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:320,1
    - Dst: hash
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:320,1
    - Dst: Botan::XMSS_PrivateKey::tree_hash_subtree
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:324,1
    - Dst: hash
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:324,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 3
    argNames:
    - start_idx
    - target_node_height
    - ' adrs'
    argTypes:
    - size_t
    - size_t
    - XMSS_Address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 233
    functionDepth: 3
    functionLinenumber: 233
    functionLinenumberEnd: 327
    functionName: Botan::XMSS_PrivateKey::tree_hash
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - set_tree_index
    - static_cast<size_t>
    - std::ref
    - hash
    - std::vector::begin
    - std::cref
    - min
    - run
    - secure_vector<uint8_t>
    - Thread_Pool::global_instance
    - element_size
    - get_tree_index
    - Botan::XMSS_PrivateKey::tree_hash_subtree
    - std::vector::push_back
    - static_cast<uint32_t>
    - Botan::XMSS_PrivateKey::public_seed
    - static_cast<uint8_t>
    - std::vector::clear
    - Botan::XMSS_Common_Ops::randomize_tree_hash
    - get
    - std::vector::size
    - BOTAN_ASSERT
    - set_tree_height
    - worker_count
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> XMSS_PrivateKey::tree_hash(size_t start_idx,
      size_t target_node_height, XMSS_Address& adrs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_PrivateKey::tree_hash_subtree
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:333,1
    - Dst: hash
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' result'
    - start_idx
    - target_node_height
    - ' adrs'
    argTypes:
    - secure_vector<uint8_t>
    - size_t
    - size_t
    - XMSS_Address
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 334
    functionName: Botan::XMSS_PrivateKey::tree_hash_subtree
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 4
    functionsReached:
    - hash
    - Botan::XMSS_PrivateKey::tree_hash_subtree
    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)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_PrivateKey::public_seed
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:338,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:341,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:341,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:350,1
    - Dst: set_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:353,1
    - Dst: set_ots_address
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:354,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:354,1
    - Dst: Botan::XMSS_PrivateKey::wots_public_key_for
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:356,1
    - Dst: set_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:358,1
    - Dst: set_ltree_address
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:359,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:359,1
    - Dst: Botan::XMSS_Common_Ops::create_l_tree
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:360,1
    - Dst: XMSS_WOTS_PublicKey::key_data
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:360,1
    - Dst: set_type
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:363,1
    - Dst: set_tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:364,1
    - Dst: set_tree_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:365,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:365,1
    - Dst: set_tree_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:368,1
    - Dst: get_tree_index
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:368,1
    - Dst: Botan::XMSS_Common_Ops::randomize_tree_hash
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:369,1
    - Dst: set_tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:373,1
    - Dst: get_tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:373,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: 378
      start: 336
    functionDepth: 2
    functionLinenumber: 336
    functionLinenumberEnd: 378
    functionName: Botan::XMSS_PrivateKey::tree_hash_subtree
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 4
    functionsReached:
    - set_tree_index
    - set_tree_height
    - static_cast<uint32_t>
    - static_cast<size_t>
    - Botan::XMSS_PrivateKey::public_seed
    - secure_vector<uint8_t>
    - element_size
    - set_type
    - get_tree_index
    - Botan::XMSS_Common_Ops::randomize_tree_hash
    - get_tree_height
    - Botan::XMSS_PrivateKey::wots_public_key_for
    - XMSS_WOTS_PublicKey::key_data
    - set_ots_address
    - Botan::XMSS_Common_Ops::create_l_tree
    - set_ltree_address
    linkageType: ''
    returnType: void
    signature: "void XMSS_PrivateKey::tree_hash_subtree(\n   secure_vector<uint8_t>&
      result, size_t start_idx, size_t target_node_height, XMSS_Address& adrs, XMSS_Hash&
      hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::XMSS_PrivateKey::wots_private_key_for
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:381,1
    - Dst: XMSS_WOTS_PublicKey
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:382,1
    - Dst: wots_parameters
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' adrs'
    - ' hash'
    argTypes:
    - XMSS_Address
    - XMSS_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 380
    functionDepth: 2
    functionLinenumber: 380
    functionLinenumberEnd: 383
    functionName: Botan::XMSS_PrivateKey::wots_public_key_for
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 2
    functionsReached:
    - Botan::XMSS_PrivateKey::wots_private_key_for
    - XMSS_WOTS_PublicKey
    - wots_parameters
    linkageType: ''
    returnType: XMSS_WOTS_PublicKey
    signature: XMSS_WOTS_PublicKey XMSS_PrivateKey::wots_public_key_for(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:386,1
    - Dst: XMSS_WOTS_PrivateKey
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:388,1
    - Dst: wots_parameters
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:389,1
    - Dst: private_seed
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:389,1
    - Dst: XMSS_WOTS_PrivateKey
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:391,1
    - Dst: wots_parameters
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:391,1
    - Dst: private_seed
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:391,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:394,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' adrs'
    - ' hash'
    argTypes:
    - XMSS_Address
    - XMSS_Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 385
    functionDepth: 2
    functionLinenumber: 385
    functionLinenumberEnd: 395
    functionName: Botan::XMSS_PrivateKey::wots_private_key_for
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 2
    functionsReached:
    - wots_parameters
    - XMSS_WOTS_PrivateKey
    - Invalid_State
    - private_seed
    - Botan::XMSS_PrivateKey::wots_derivation_method
    linkageType: ''
    returnType: XMSS_WOTS_PrivateKey
    signature: XMSS_WOTS_PrivateKey XMSS_PrivateKey::wots_private_key_for(XMSS_Address&
      adrs, XMSS_Hash& hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:398,1
    - Dst: Botan::XMSS_PrivateKey::raw_private_key
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 397
    functionDepth: 1
    functionLinenumber: 397
    functionLinenumberEnd: 399
    functionName: Botan::XMSS_PrivateKey::private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached:
    - Botan::XMSS_PrivateKey::raw_private_key
    - DER_Encoder
    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:402,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 403
    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:406,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 405
    functionDepth: 1
    functionLinenumber: 405
    functionLinenumberEnd: 407
    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: Botan::XMSS_PrivateKey::remaining_signatures
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 411
    functionName: Botan::XMSS_PrivateKey::remaining_signatures
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 3
    functionsReached:
    - Botan::XMSS_PrivateKey::remaining_signatures
    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:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 413
    functionDepth: 2
    functionLinenumber: 413
    functionLinenumberEnd: 415
    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:418,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 417
    functionDepth: 0
    functionLinenumber: 417
    functionLinenumberEnd: 419
    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:422,1
    - Dst: raw_public_key
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 423
    functionName: Botan::XMSS_PrivateKey::raw_private_key
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 6
    functionsReached:
    - serialize
    - raw_public_key
    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:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 427
    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:430,1
    - Dst: xmss_parameters
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:430,1
    - Dst: root
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:430,1
    - Dst: public_seed
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 431
    functionName: Botan::XMSS_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 4
    functionsReached:
    - xmss_parameters
    - std::make_unique<XMSS_PublicKey>
    - public_seed
    - root
    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:436,1
    - Dst: std::make_unique<XMSS_Signature_Operation>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:437,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:440,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp:440,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - provider
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 441
    functionName: Botan::XMSS_PrivateKey::create_signature_op
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_privatekey.cpp
    functionUses: 0
    functionsReached:
    - algo_name
    - Provider_Not_Found
    - std::make_unique<XMSS_Signature_Operation>
    - std::string_view::empty
    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:
    - static_cast<size_t>
    - element_size
    - log2
    - wots_parameter
    - std::ceil
    - BOTAN_ASSERT
    - Not_Implemented
    - floor
    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:
    - static_cast<uint8_t>
    - secure_vector::push_back
    - 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:
    - static_cast<size_t>
    - static_cast<float>
    - xmss_concat
    - 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:
    - std::move
    - secure_vector::begin
    - std::back_inserter
    - secure_vector::end
    - Botan::XMSS_WOTS_Parameters::base_w
    - wots_parameter
    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:
    - static_cast<size_t>
    - element_size
    - log2
    - wots_parameter
    - std::ceil
    - BOTAN_ASSERT
    - Not_Implemented
    - floor
    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:
    - static_cast<uint8_t>
    - secure_vector::push_back
    - 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:
    - static_cast<size_t>
    - static_cast<float>
    - xmss_concat
    - 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:
    - std::move
    - secure_vector::begin
    - std::back_inserter
    - secure_vector::end
    - Botan::XMSS_WOTS_Parameters::base_w
    - wots_parameter
    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:50,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:56,1
    - Dst: XMSS_Parameters::raw_public_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:56,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:56,1
    - Dst: XMSS_Parameters::raw_private_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:56,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:57,1
    - Dst: XMSS_Parameters::raw_legacy_private_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:57,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:58,1
    - Dst: std::vector::assign
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:61,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:61,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:61,1
    - Dst: std::vector::assign
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:63,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:63,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:63,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - key_bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 67
    functionName: Botan::extract_raw_public_key
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp
    functionUses: 0
    functionsReached:
    - XMSS_Parameters::raw_private_key_size
    - std::vector::assign
    - Botan::Decoding_Error
    - std::vector::size
    - std::span<const uint8_t>::begin
    - XMSS_Parameters::raw_legacy_private_key_size
    - std::span<const uint8_t>::end
    - Botan::BER_Decoder
    - XMSS_Parameters::raw_public_key_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:50,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:56,1
    - Dst: XMSS_Parameters::raw_public_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:56,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:56,1
    - Dst: XMSS_Parameters::raw_private_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:56,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:57,1
    - Dst: XMSS_Parameters::raw_legacy_private_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:57,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:58,1
    - Dst: std::vector::assign
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:61,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:61,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:61,1
    - Dst: std::vector::assign
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:63,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:63,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:63,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - key_bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 67
    functionName: Botan::extract_raw_public_key
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp
    functionUses: 0
    functionsReached:
    - XMSS_Parameters::raw_private_key_size
    - std::vector::assign
    - Botan::Decoding_Error
    - std::vector::size
    - std::span<const uint8_t>::begin
    - XMSS_Parameters::raw_legacy_private_key_size
    - std::span<const uint8_t>::end
    - Botan::BER_Decoder
    - XMSS_Parameters::raw_public_key_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:73,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:74,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:75,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:75,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: 75
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: Botan::XMSS_PublicKey::XMSS_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp
    functionUses: 4
    functionsReached:
    - ots_oid
    - element_size
    - 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:78,1
    - Dst: deserialize_xmss_oid
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:79,1
    - Dst: ots_oid
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:80,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:81,1
    - Dst: raw_public_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:81,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:82,1
    - Dst: BufferSlicer::skip
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:86,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
    - Dst: BufferSlicer::copy_as_secure_vector
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:89,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - key_bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 90
    functionName: Botan::XMSS_PublicKey::XMSS_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp
    functionUses: 4
    functionsReached:
    - Decoding_Error
    - BufferSlicer::skip
    - raw_public_key_size
    - size
    - ots_oid
    - deserialize_xmss_oid
    - extract_raw_public_key
    - element_size
    - BufferSlicer::copy_as_secure_vector
    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:96,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:97,1
    - Dst: std::move
      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
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:100,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:100,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:100,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: 101
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 101
    functionName: Botan::XMSS_PublicKey::XMSS_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp
    functionUses: 4
    functionsReached:
    - std::move
    - size
    - BOTAN_ARG_CHECK
    - ots_oid
    - element_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:105,1
    - Dst: std::make_unique<XMSS_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:106,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:108,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:108,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - provider
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 109
    functionName: Botan::XMSS_PublicKey::create_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - std::make_unique<XMSS_Verification_Operation>
    - algo_name
    - std::string_view::empty
    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:113,1
    - Dst: Botan::XMSS_PublicKey::algorithm_identifier
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:114,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:115,1
    - Dst: std::make_unique<XMSS_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:117,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:119,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:119,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - ' alg_id'
    - provider
    argTypes:
    - AlgorithmIdentifier
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 120
    functionName: Botan::XMSS_PublicKey::create_x509_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - Provider_Not_Found
    - std::string_view::empty
    - std::make_unique<XMSS_Verification_Operation>
    - algo_name
    - Botan::XMSS_PublicKey::algorithm_identifier
    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:123,1
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:123,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:123,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.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::XMSS_PublicKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp
    functionUses: 0
    functionsReached:
    - concat
    - store_be
    - oid
    - static_cast<uint32_t>
    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:128,1
    - Dst: Botan::XMSS_PublicKey::raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 130
    functionName: Botan::XMSS_PublicKey::public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp
    functionUses: 0
    functionsReached:
    - Botan::XMSS_PublicKey::raw_public_key_bits
    - DER_Encoder
    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: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::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:140,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 141
    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:50,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:56,1
    - Dst: XMSS_Parameters::raw_public_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:56,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:56,1
    - Dst: XMSS_Parameters::raw_private_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:56,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:57,1
    - Dst: XMSS_Parameters::raw_legacy_private_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:57,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:58,1
    - Dst: std::vector::assign
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:61,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:61,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:61,1
    - Dst: std::vector::assign
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:63,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:63,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:63,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - key_bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 67
    functionName: Botan::extract_raw_public_key
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp
    functionUses: 0
    functionsReached:
    - XMSS_Parameters::raw_private_key_size
    - std::vector::assign
    - Botan::Decoding_Error
    - std::vector::size
    - std::span<const uint8_t>::begin
    - XMSS_Parameters::raw_legacy_private_key_size
    - std::span<const uint8_t>::end
    - Botan::BER_Decoder
    - XMSS_Parameters::raw_public_key_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:50,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:56,1
    - Dst: XMSS_Parameters::raw_public_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:56,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:56,1
    - Dst: XMSS_Parameters::raw_private_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:56,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:57,1
    - Dst: XMSS_Parameters::raw_legacy_private_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:57,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:58,1
    - Dst: std::vector::assign
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:61,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:61,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:61,1
    - Dst: std::vector::assign
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:63,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:63,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:63,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - key_bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 67
    functionName: Botan::extract_raw_public_key
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp
    functionUses: 0
    functionsReached:
    - XMSS_Parameters::raw_private_key_size
    - std::vector::assign
    - Botan::Decoding_Error
    - std::vector::size
    - std::span<const uint8_t>::begin
    - XMSS_Parameters::raw_legacy_private_key_size
    - std::span<const uint8_t>::end
    - Botan::BER_Decoder
    - XMSS_Parameters::raw_public_key_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:73,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:74,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:75,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:75,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: 75
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: Botan::XMSS_PublicKey::XMSS_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp
    functionUses: 4
    functionsReached:
    - ots_oid
    - element_size
    - 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:78,1
    - Dst: deserialize_xmss_oid
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:79,1
    - Dst: ots_oid
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:80,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:81,1
    - Dst: raw_public_key_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:81,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:82,1
    - Dst: BufferSlicer::skip
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:86,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
    - Dst: BufferSlicer::copy_as_secure_vector
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:89,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - key_bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 90
    functionName: Botan::XMSS_PublicKey::XMSS_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp
    functionUses: 4
    functionsReached:
    - Decoding_Error
    - BufferSlicer::skip
    - raw_public_key_size
    - size
    - ots_oid
    - deserialize_xmss_oid
    - extract_raw_public_key
    - element_size
    - BufferSlicer::copy_as_secure_vector
    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:96,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:97,1
    - Dst: std::move
      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
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:100,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:100,1
    - Dst: element_size
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:100,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: 101
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 101
    functionName: Botan::XMSS_PublicKey::XMSS_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp
    functionUses: 4
    functionsReached:
    - std::move
    - size
    - BOTAN_ARG_CHECK
    - ots_oid
    - element_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:105,1
    - Dst: std::make_unique<XMSS_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:106,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:108,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:108,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - provider
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 109
    functionName: Botan::XMSS_PublicKey::create_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - std::make_unique<XMSS_Verification_Operation>
    - algo_name
    - std::string_view::empty
    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:113,1
    - Dst: Botan::XMSS_PublicKey::algorithm_identifier
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:114,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:115,1
    - Dst: std::make_unique<XMSS_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:117,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:119,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:119,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - ' alg_id'
    - provider
    argTypes:
    - AlgorithmIdentifier
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 120
    functionName: Botan::XMSS_PublicKey::create_x509_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - Provider_Not_Found
    - std::string_view::empty
    - std::make_unique<XMSS_Verification_Operation>
    - algo_name
    - Botan::XMSS_PublicKey::algorithm_identifier
    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:123,1
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:123,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:123,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.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::XMSS_PublicKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp
    functionUses: 2
    functionsReached:
    - concat
    - store_be
    - oid
    - static_cast<uint32_t>
    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:128,1
    - Dst: Botan::XMSS_PublicKey::raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 130
    functionName: Botan::XMSS_PublicKey::public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp
    functionUses: 0
    functionsReached:
    - Botan::XMSS_PublicKey::raw_public_key_bits
    - DER_Encoder
    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: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::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:140,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/xmss/xmss_publickey.cpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 141
    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:
    - final
    - update
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    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:
    - final
    - update
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    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:
    - std::back_inserter
    - Botan::copy
    - reinterpret_cast<const uint8_t*>
    - std::reverse_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:
    - Botan::copy
    - static_cast<size_t>
    - min
    - std::reverse_copy
    - reinterpret_cast<const uint8_t*>
    - std::back_inserter
    - Botan::resize
    - Botan::size
    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:
    - std::back_inserter
    - Botan::copy
    - reinterpret_cast<const uint8_t*>
    - std::reverse_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:
    - Botan::copy
    - static_cast<size_t>
    - min
    - std::reverse_copy
    - reinterpret_cast<const uint8_t*>
    - std::back_inserter
    - Botan::resize
    - Botan::size
    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: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    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:75,1
    - Dst: Botan::object_identifier
      Src: /src/botan/src/lib/pubkey/xmss/xmss.h: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::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: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    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: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::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: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::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: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    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: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    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: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    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: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    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: 72
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 72
    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:75,1
    - Dst: Botan::object_identifier
      Src: /src/botan/src/lib/pubkey/xmss/xmss.h: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::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: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    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: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::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: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::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: 105
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 105
    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: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    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: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    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: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    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: 215
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 215
    functionName: stateful_operation
    functionSourceFile: /src/botan/src/lib/pubkey/xmss/xmss.h
    functionUses: 8
    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: 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:
    - 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: 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:
    - 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: 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: bytes
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:24,1
    - Dst: 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: bytes
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:28,1
    - Dst: 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: 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
    - bytes
    - size
    - secure_vector::size
    - prf
    - element_size
    - set_key_mask_mode
    - BOTAN_ASSERT
    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: set_tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:53,1
    - Dst: 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: set_tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:64,1
    - Dst: 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:
    - set_tree_index
    - set_tree_height
    - len
    - static_cast<uint32_t>
    - Botan::XMSS_Common_Ops::randomize_tree_hash
    - get_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: 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: bytes
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:24,1
    - Dst: 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: bytes
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:28,1
    - Dst: 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: 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
    - bytes
    - size
    - secure_vector::size
    - prf
    - element_size
    - set_key_mask_mode
    - BOTAN_ASSERT
    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: set_tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:53,1
    - Dst: 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: set_tree_height
      Src: /src/botan/src/lib/pubkey/xmss/xmss_common_ops.cpp:64,1
    - Dst: 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:
    - set_tree_index
    - set_tree_height
    - len
    - static_cast<uint32_t>
    - Botan::XMSS_Common_Ops::randomize_tree_hash
    - get_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:
    - Dst: Botan::domain
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.h: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::_signature_element_size_for_DER_encoding
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.h
    functionUses: 0
    functionsReached:
    - Botan::domain
    linkageType: ''
    returnType: std::optional<size_t>
    signature: std::optional<size_t> _signature_element_size_for_DER_encoding() 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::_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: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    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:
    - Dst: Botan::domain
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.h: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::_signature_element_size_for_DER_encoding
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.h
    functionUses: 0
    functionsReached:
    - Botan::domain
    linkageType: ''
    returnType: std::optional<size_t>
    signature: std::optional<size_t> _signature_element_size_for_DER_encoding() 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::_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: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    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:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 120
    functionDepth: 2
    functionLinenumber: 120
    functionLinenumberEnd: 122
    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:
    - EC_Group::get_p_bits
    - Botan::fmt
    - Botan::Decoding_Error
    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:
    - EC_Group::get_p_bits
    - Botan::fmt
    - Botan::Decoding_Error
    linkageType: ''
    returnType: EC_Group
    signature: EC_Group check_domain(EC_Group domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:33,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:35,1
    - Dst: std::swap
      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:40,1
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 46
    functionName: Botan::GOST_3410_PublicKey::public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - std::swap
    - _public_ec_point
    - auto::size
    - DER_Encoder
    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:49,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:52,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 56
    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:61,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:62,1
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:64,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 67
    functionName: Botan::GOST_3410_PublicKey::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - domain
    - AlgorithmIdentifier
    - object_identifier
    - DER_Encoder
    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:73,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:73,1
    - Dst: check_domain
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:75,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:75,1
    - Dst: BER_Decoder
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:78,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:80,1
    - Dst: auto::get_p_bits
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:80,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:81,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:84,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:88,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:88,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:89,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:90,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:90,1
    - Dst: std::vector::rbegin
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:90,1
    - Dst: std::vector::rend
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:90,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:91,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:91,1
    - Dst: std::vector::rbegin
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:91,1
    - Dst: std::vector::rend
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:91,1
    - Dst: std::make_shared<EC_PublicKey_Data>
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:93,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:93,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: 94
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 94
    functionName: Botan::GOST_3410_PublicKey::GOST_3410_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - BER_Decoder
    - Decoding_Error
    - parameters
    - std::vector::push_back
    - std::move
    - std::make_shared<EC_PublicKey_Data>
    - check_domain
    - auto::get_p_bits
    - std::vector::end
    - std::vector::size
    - std::vector::rbegin
    - Botan::EC_Group::from_OID
    - std::vector::rend
    - std::vector::insert
    - std::vector::reserve
    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:97,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' domain'
    - ' x'
    argTypes:
    - EC_Group
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 3
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: Botan::GOST_3410_PrivateKey::GOST_3410_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar::from_bigint
    - check_domain
    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:100,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' rng'
    - domain
    argTypes:
    - RandomNumberGenerator
    - EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    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:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' rng'
    - ' domain'
    - ' x'
    argTypes:
    - RandomNumberGenerator
    - EC_Group
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    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:106,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:106,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.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::GOST_3410_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _public_ec_point
    - std::make_unique<GOST_3410_PublicKey>
    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:112,1
    - Dst: std::span<const uint8_t>::rend
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:112,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:114,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:115,1
    - Dst: Botan::EC_Scalar::one
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:116,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: 120
      start: 111
    functionDepth: 3
    functionLinenumber: 111
    functionLinenumberEnd: 120
    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::from_bytes_mod_order
    - std::span<const uint8_t>::rbegin
    - std::span<const uint8_t>::rend
    - Botan::EC_Scalar::one
    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:128,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:128,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: 128
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 128
    functionName: Botan::GOST_3410_Signature_Operation::GOST_3410_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _private_key
    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:130,1
    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::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:142,1
    - Dst: get_p_bits
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:144,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:157,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:158,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:161,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 162
    functionName: Botan::GOST_3410_Signature_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - hash_function
    - get_p_bits
    - std::string::empty
    - AlgorithmIdentifier
    - 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:165,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:167,1
    - Dst: Botan::EC_Scalar::gk_x_mod_order
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:168,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:171,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:171,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:172,1
    - Dst: Botan::EC_Scalar::deserialize_pair
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:175,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - msg
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 164
    functionDepth: 3
    functionLinenumber: 164
    functionLinenumberEnd: 176
    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
    - gost_msg_to_scalar
    - Botan::EC_Scalar::random
    - Internal_Error
    - Botan::EC_Scalar::deserialize_pair
    - Botan::EC_Scalar::gk_x_mod_order
    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:179,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:180,1
    - Dst: Botan::oid
      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:197,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:197,1
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:197,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - ' alg_id'
    argTypes:
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 198
    functionName: Botan::gost_hash_from_algid
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - Botan::oid
    - Botan::fmt
    - Botan::Decoding_Error
    - parameters_are_empty
    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:206,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' gost'
    - padding
    argTypes:
    - GOST_3410_PublicKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 206
    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:209,1
    - 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:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' gost'
    - ' alg_id'
    argTypes:
    - GOST_3410_PublicKey
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 211
    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:221,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:222,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:224,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:224,1
    - Dst: gost_msg_to_scalar
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:225,1
    - Dst: auto::invert_vartime
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:227,1
    - Dst: mul2_vartime_x_mod_order_eq
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:230,1
    - Dst: negate
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:230,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: 235
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 235
    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
    - gost_msg_to_scalar
    - auto::invert_vartime
    - auto::value
    - Botan::EC_Scalar::deserialize_pair
    - negate
    - is_nonzero
    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:112,1
    - Dst: std::span<const uint8_t>::rend
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:112,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:114,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:115,1
    - Dst: Botan::EC_Scalar::one
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:116,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: 120
      start: 111
    functionDepth: 3
    functionLinenumber: 111
    functionLinenumberEnd: 120
    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::from_bytes_mod_order
    - std::span<const uint8_t>::rbegin
    - std::span<const uint8_t>::rend
    - Botan::EC_Scalar::one
    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:128,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:128,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: 128
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 128
    functionName: Botan::GOST_3410_Signature_Operation::GOST_3410_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _private_key
    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:130,1
    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::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:142,1
    - Dst: get_p_bits
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:144,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:157,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:158,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:161,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 162
    functionName: Botan::GOST_3410_Signature_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - hash_function
    - get_p_bits
    - std::string::empty
    - AlgorithmIdentifier
    - 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:165,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:167,1
    - Dst: Botan::EC_Scalar::gk_x_mod_order
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:168,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:171,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:171,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:172,1
    - Dst: Botan::EC_Scalar::deserialize_pair
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:175,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - msg
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 164
    functionDepth: 3
    functionLinenumber: 164
    functionLinenumberEnd: 176
    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
    - gost_msg_to_scalar
    - Botan::EC_Scalar::random
    - Internal_Error
    - Botan::EC_Scalar::deserialize_pair
    - Botan::EC_Scalar::gk_x_mod_order
    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:179,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:180,1
    - Dst: Botan::oid
      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:197,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:197,1
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:197,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - ' alg_id'
    argTypes:
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 198
    functionName: Botan::gost_hash_from_algid
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - Botan::oid
    - Botan::fmt
    - Botan::Decoding_Error
    - parameters_are_empty
    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:206,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' gost'
    - padding
    argTypes:
    - GOST_3410_PublicKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 206
    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:209,1
    - 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:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' gost'
    - ' alg_id'
    argTypes:
    - GOST_3410_PublicKey
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 211
    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:221,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:222,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:224,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:224,1
    - Dst: gost_msg_to_scalar
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:225,1
    - Dst: auto::invert_vartime
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:227,1
    - Dst: mul2_vartime_x_mod_order_eq
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:230,1
    - Dst: negate
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:230,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: 235
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 235
    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
    - gost_msg_to_scalar
    - auto::invert_vartime
    - auto::value
    - Botan::EC_Scalar::deserialize_pair
    - negate
    - is_nonzero
    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:240,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 241
    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:245,1
    - Dst: std::make_unique<GOST_3410_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:246,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:248,1
    - Dst: Botan::GOST_3410_PublicKey::algo_name
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:248,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 249
    functionName: Botan::GOST_3410_PublicKey::create_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - Botan::GOST_3410_PublicKey::algo_name
    - std::make_unique<GOST_3410_Verification_Operation>
    - Provider_Not_Found
    - std::string_view::empty
    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:253,1
    - Dst: std::make_unique<GOST_3410_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:254,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:257,1
    - Dst: Botan::GOST_3410_PublicKey::algo_name
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:257,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - ' signature_algorithm'
    - provider
    argTypes:
    - AlgorithmIdentifier
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 258
    functionName: Botan::GOST_3410_PublicKey::create_x509_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - Botan::GOST_3410_PublicKey::algo_name
    - std::make_unique<GOST_3410_Verification_Operation>
    - Provider_Not_Found
    - std::string_view::empty
    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:263,1
    - Dst: std::make_unique<GOST_3410_Signature_Operation>
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:264,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:266,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:266,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 267
    functionName: Botan::GOST_3410_PrivateKey::create_signature_op
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - algo_name
    - Provider_Not_Found
    - std::make_unique<GOST_3410_Signature_Operation>
    - std::string_view::empty
    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:
    - EC_Group::get_p_bits
    - Botan::fmt
    - Botan::Decoding_Error
    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:
    - EC_Group::get_p_bits
    - Botan::fmt
    - Botan::Decoding_Error
    linkageType: ''
    returnType: EC_Group
    signature: EC_Group check_domain(EC_Group domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:33,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:35,1
    - Dst: std::swap
      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:40,1
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 46
    functionName: Botan::GOST_3410_PublicKey::public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - std::swap
    - _public_ec_point
    - auto::size
    - DER_Encoder
    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:49,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:52,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:54,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 56
    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:61,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:62,1
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:64,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 67
    functionName: Botan::GOST_3410_PublicKey::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - domain
    - AlgorithmIdentifier
    - object_identifier
    - DER_Encoder
    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:73,1
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:73,1
    - Dst: check_domain
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:75,1
    - Dst: Botan::EC_Group::from_OID
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:75,1
    - Dst: BER_Decoder
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:78,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:80,1
    - Dst: auto::get_p_bits
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:80,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:81,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:84,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:88,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:88,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:89,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:90,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:90,1
    - Dst: std::vector::rbegin
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:90,1
    - Dst: std::vector::rend
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:90,1
    - Dst: std::vector::insert
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:91,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:91,1
    - Dst: std::vector::rbegin
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:91,1
    - Dst: std::vector::rend
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:91,1
    - Dst: std::make_shared<EC_PublicKey_Data>
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:93,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:93,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: 94
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 94
    functionName: Botan::GOST_3410_PublicKey::GOST_3410_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - BER_Decoder
    - Decoding_Error
    - parameters
    - std::vector::push_back
    - std::move
    - std::make_shared<EC_PublicKey_Data>
    - check_domain
    - auto::get_p_bits
    - std::vector::end
    - std::vector::size
    - std::vector::rbegin
    - Botan::EC_Group::from_OID
    - std::vector::rend
    - std::vector::insert
    - std::vector::reserve
    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:97,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' domain'
    - ' x'
    argTypes:
    - EC_Group
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 96
    functionDepth: 3
    functionLinenumber: 96
    functionLinenumberEnd: 97
    functionName: Botan::GOST_3410_PrivateKey::GOST_3410_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Scalar::from_bigint
    - check_domain
    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:100,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' rng'
    - domain
    argTypes:
    - RandomNumberGenerator
    - EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    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:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' rng'
    - ' domain'
    - ' x'
    argTypes:
    - RandomNumberGenerator
    - EC_Group
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 103
    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:106,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:106,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.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::GOST_3410_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _public_ec_point
    - std::make_unique<GOST_3410_PublicKey>
    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:112,1
    - Dst: std::span<const uint8_t>::rend
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:112,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:114,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:115,1
    - Dst: Botan::EC_Scalar::one
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:116,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: 120
      start: 111
    functionDepth: 3
    functionLinenumber: 111
    functionLinenumberEnd: 120
    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::from_bytes_mod_order
    - std::span<const uint8_t>::rbegin
    - std::span<const uint8_t>::rend
    - Botan::EC_Scalar::one
    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:128,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:128,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: 128
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 128
    functionName: Botan::GOST_3410_Signature_Operation::GOST_3410_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _private_key
    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:130,1
    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::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:142,1
    - Dst: get_p_bits
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:144,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:157,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:158,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:161,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 162
    functionName: Botan::GOST_3410_Signature_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - hash_function
    - get_p_bits
    - std::string::empty
    - AlgorithmIdentifier
    - 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:165,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:167,1
    - Dst: Botan::EC_Scalar::gk_x_mod_order
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:168,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:171,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:171,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:172,1
    - Dst: Botan::EC_Scalar::deserialize_pair
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:175,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - msg
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 164
    functionDepth: 3
    functionLinenumber: 164
    functionLinenumberEnd: 176
    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
    - gost_msg_to_scalar
    - Botan::EC_Scalar::random
    - Internal_Error
    - Botan::EC_Scalar::deserialize_pair
    - Botan::EC_Scalar::gk_x_mod_order
    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:179,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:180,1
    - Dst: Botan::oid
      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:197,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:197,1
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:197,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - ' alg_id'
    argTypes:
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 198
    functionName: Botan::gost_hash_from_algid
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - Botan::oid
    - Botan::fmt
    - Botan::Decoding_Error
    - parameters_are_empty
    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:206,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' gost'
    - padding
    argTypes:
    - GOST_3410_PublicKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 206
    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:209,1
    - 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:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' gost'
    - ' alg_id'
    argTypes:
    - GOST_3410_PublicKey
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 211
    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:221,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:222,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:224,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:224,1
    - Dst: gost_msg_to_scalar
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:225,1
    - Dst: auto::invert_vartime
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:227,1
    - Dst: mul2_vartime_x_mod_order_eq
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:230,1
    - Dst: negate
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:230,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: 235
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 235
    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
    - gost_msg_to_scalar
    - auto::invert_vartime
    - auto::value
    - Botan::EC_Scalar::deserialize_pair
    - negate
    - is_nonzero
    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:112,1
    - Dst: std::span<const uint8_t>::rend
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:112,1
    - Dst: Botan::EC_Scalar::from_bytes_mod_order
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:114,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:115,1
    - Dst: Botan::EC_Scalar::one
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:116,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: 120
      start: 111
    functionDepth: 3
    functionLinenumber: 111
    functionLinenumberEnd: 120
    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::from_bytes_mod_order
    - std::span<const uint8_t>::rbegin
    - std::span<const uint8_t>::rend
    - Botan::EC_Scalar::one
    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:128,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:128,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: 128
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 128
    functionName: Botan::GOST_3410_Signature_Operation::GOST_3410_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _private_key
    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:130,1
    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::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:142,1
    - Dst: get_p_bits
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:144,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:157,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:158,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:161,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 162
    functionName: Botan::GOST_3410_Signature_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - hash_function
    - get_p_bits
    - std::string::empty
    - AlgorithmIdentifier
    - 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:165,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:167,1
    - Dst: Botan::EC_Scalar::gk_x_mod_order
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:168,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:171,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:171,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:172,1
    - Dst: Botan::EC_Scalar::deserialize_pair
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:175,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - msg
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 164
    functionDepth: 3
    functionLinenumber: 164
    functionLinenumberEnd: 176
    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
    - gost_msg_to_scalar
    - Botan::EC_Scalar::random
    - Internal_Error
    - Botan::EC_Scalar::deserialize_pair
    - Botan::EC_Scalar::gk_x_mod_order
    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:179,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:180,1
    - Dst: Botan::oid
      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:197,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:197,1
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:197,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - ' alg_id'
    argTypes:
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 198
    functionName: Botan::gost_hash_from_algid
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - Botan::oid
    - Botan::fmt
    - Botan::Decoding_Error
    - parameters_are_empty
    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:206,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' gost'
    - padding
    argTypes:
    - GOST_3410_PublicKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 206
    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:209,1
    - 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:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' gost'
    - ' alg_id'
    argTypes:
    - GOST_3410_PublicKey
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 211
    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:221,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:222,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:224,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:224,1
    - Dst: gost_msg_to_scalar
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:225,1
    - Dst: auto::invert_vartime
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:227,1
    - Dst: mul2_vartime_x_mod_order_eq
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:230,1
    - Dst: negate
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:230,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: 235
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 235
    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
    - gost_msg_to_scalar
    - auto::invert_vartime
    - auto::value
    - Botan::EC_Scalar::deserialize_pair
    - negate
    - is_nonzero
    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:240,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 241
    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:245,1
    - Dst: std::make_unique<GOST_3410_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:246,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:248,1
    - Dst: Botan::GOST_3410_PublicKey::algo_name
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:248,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 249
    functionName: Botan::GOST_3410_PublicKey::create_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - Botan::GOST_3410_PublicKey::algo_name
    - std::make_unique<GOST_3410_Verification_Operation>
    - Provider_Not_Found
    - std::string_view::empty
    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:253,1
    - Dst: std::make_unique<GOST_3410_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:254,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:257,1
    - Dst: Botan::GOST_3410_PublicKey::algo_name
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:257,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - ' signature_algorithm'
    - provider
    argTypes:
    - AlgorithmIdentifier
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 258
    functionName: Botan::GOST_3410_PublicKey::create_x509_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - Botan::GOST_3410_PublicKey::algo_name
    - std::make_unique<GOST_3410_Verification_Operation>
    - Provider_Not_Found
    - std::string_view::empty
    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:263,1
    - Dst: std::make_unique<GOST_3410_Signature_Operation>
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:264,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:266,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp:266,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 267
    functionName: Botan::GOST_3410_PrivateKey::create_signature_op
    functionSourceFile: /src/botan/src/lib/pubkey/gost_3410/gost_3410.cpp
    functionUses: 0
    functionsReached:
    - algo_name
    - Provider_Not_Found
    - std::make_unique<GOST_3410_Signature_Operation>
    - std::string_view::empty
    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_ASSERT_NOMSG
    - Botan::mode
    - Botan::clear
    - SHAKE_128_XOF
    - Botan::output
    - Botan::store_le
    - FrodoSeedA
    - Botan::update
    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_ASSERT_NOMSG
    - Botan::mode
    - Botan::clear
    - SHAKE_128_XOF
    - Botan::output
    - Botan::store_le
    - FrodoSeedA
    - Botan::update
    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:26,1
    - Dst: Botan::mode
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:26,1
    - Dst: AES_128::set_key
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:30,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:34,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:34,1
    - Dst: setup_aes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:34,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:37,1
    - Dst: BufferStuffer::remaining_capacity
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:37,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:43,1
    - Dst: Botan::store_le
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:43,1
    - Dst: Botan::clear_mem
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:44,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:44,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:47,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:47,1
    - Dst: AES_128::encrypt
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - ' constants'
    - seed_a
    argTypes:
    - FrodoKEMConstants
    - StrongSpan<const FrodoSeedA>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 51
    functionName: Botan::create_aes_row_generator
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - static_cast<uint16_t>
    - AES_128::encrypt
    - setup_aes
    - BufferStuffer::append
    - BufferStuffer::full
    - Botan::mode
    - BufferStuffer::remaining_capacity
    - BOTAN_DEBUG_ASSERT
    - BufferStuffer::next
    - Botan::clear_mem
    - AES_128::set_key
    - Botan::store_le
    - Botan::n
    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:26,1
    - Dst: Botan::mode
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:26,1
    - Dst: AES_128::set_key
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:30,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:34,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:34,1
    - Dst: setup_aes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:34,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:37,1
    - Dst: BufferStuffer::remaining_capacity
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:37,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:43,1
    - Dst: Botan::store_le
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:43,1
    - Dst: Botan::clear_mem
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:44,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:44,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:47,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:47,1
    - Dst: AES_128::encrypt
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - ' constants'
    - seed_a
    argTypes:
    - FrodoKEMConstants
    - StrongSpan<const FrodoSeedA>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 51
    functionName: Botan::create_aes_row_generator
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_aes/frodo_aes_generator.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - static_cast<uint16_t>
    - AES_128::encrypt
    - setup_aes
    - BufferStuffer::append
    - BufferStuffer::full
    - Botan::mode
    - BufferStuffer::remaining_capacity
    - BOTAN_DEBUG_ASSERT
    - BufferStuffer::next
    - Botan::clear_mem
    - AES_128::set_key
    - Botan::store_le
    - Botan::n
    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: 99
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 99
    functionName: Botan::FrodoKEMConstants
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h
    functionUses: 0
    functionsReached:
    - FrodoDomainSeparator
    - Botan::size
    - at
    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: 99
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 99
    functionName: Botan::FrodoKEMConstants
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.h
    functionUses: 0
    functionsReached:
    - FrodoDomainSeparator
    - Botan::size
    - at
    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:64,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp:64,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 65
    functionName: Botan::FrodoKEM_mode_from_string
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp
    functionUses: 0
    functionsReached:
    - Botan::Invalid_Argument
    - Botan::fmt
    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:64,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp:64,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 65
    functionName: Botan::FrodoKEM_mode_from_string
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp
    functionUses: 0
    functionsReached:
    - Botan::Invalid_Argument
    - Botan::fmt
    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: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    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:71,1
    - Dst: to_formatted_string
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    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:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    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:76,1
    - Dst: Botan::FrodoKEMMode::to_string
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 77
    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:80,1
    - Dst: is_shake
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 97
    functionName: Botan::FrodoKEMMode::is_available
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp
    functionUses: 4
    functionsReached:
    - is_shake
    - is_aes
    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:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 129
    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:64,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp:64,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 65
    functionName: Botan::FrodoKEM_mode_from_string
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp
    functionUses: 0
    functionsReached:
    - Botan::Invalid_Argument
    - Botan::fmt
    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:64,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp:64,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 65
    functionName: Botan::FrodoKEM_mode_from_string
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp
    functionUses: 0
    functionsReached:
    - Botan::Invalid_Argument
    - Botan::fmt
    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: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    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:71,1
    - Dst: to_formatted_string
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    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:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    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:76,1
    - Dst: Botan::FrodoKEMMode::to_string
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 77
    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:80,1
    - Dst: is_shake
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp:88,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 97
    functionName: Botan::FrodoKEMMode::is_available
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_mode.cpp
    functionUses: 4
    functionsReached:
    - is_shake
    - is_aes
    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:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 129
    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:37,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:37,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:37,1
    - Dst: SHAKE_XOF
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:38,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:39,1
    - Dst: Botan::FrodoKEM_PublicKeyInternal::serialize
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:39,1
    - Dst: output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:40,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - constants
    - seed_a
    - b
    argTypes:
    - FrodoKEMConstants
    - FrodoSeedA
    - FrodoMatrix
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: Botan::FrodoKEM_PublicKeyInternal::FrodoKEM_PublicKeyInternal
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - update
    - Botan::FrodoKEM_PublicKeyInternal::serialize
    - SHAKE_XOF
    - output
    - 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: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    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: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    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: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    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: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    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:51,1
    - Dst: seed_a
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:51,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: Botan::FrodoKEM_PublicKeyInternal::serialize
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 1
    functionsReached:
    - concat
    - b
    - 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:63,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - s
    - s_trans
    argTypes:
    - FrodoSeedS
    - FrodoMatrix
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    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: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    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: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    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:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 69
    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:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 71
    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:85,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: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    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:87,1
    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::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: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::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:94,1
    - Dst: SHAKE_XOF
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:95,1
    - Dst: Botan::FrodoMatrix::make_sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:96,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:100,1
    - Dst: len_packed_b_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:100,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:101,1
    - Dst: len_packed_c_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_salt_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:102,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:104,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:104,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:106,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:106,1
    - Dst: randomize
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:107,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:109,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:111,1
    - Dst: hash
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:111,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:112,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:113,1
    - Dst: output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:114,1
    - Dst: len_se_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:114,1
    - Dst: output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:115,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:115,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:116,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:118,1
    - Dst: encapsulation_domain_separator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:118,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:119,1
    - Dst: sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:121,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:121,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:121,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:121,1
    - Dst: sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:123,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:123,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:123,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:123,1
    - Dst: Botan::FrodoMatrix::mul_add_sa_plus_e
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:125,1
    - Dst: seed_a
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:125,1
    - Dst: auto::pack
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:127,1
    - Dst: sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:129,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:129,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:129,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:129,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:130,1
    - Dst: Botan::FrodoMatrix::mul_add_sb_plus_e
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:132,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:132,1
    - Dst: Botan::FrodoMatrix::encode
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:134,1
    - Dst: Botan::FrodoMatrix::add
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:136,1
    - Dst: auto::pack
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:138,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:140,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:141,1
    - Dst: output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:142,1
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:144,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: 145
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 145
    functionName: Botan::Frodo_KEM_Encryptor::raw_kem_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - auto::pack
    - Botan::CT::poison
    - BufferStuffer::full
    - randomize
    - SHAKE_XOF
    - hash
    - Botan::FrodoMatrix::encode
    - constants
    - len_packed_b_bytes
    - encapsulation_domain_separator
    - len_salt_bytes
    - sample_generator
    - output
    - len_sec_bytes
    - n_bar
    - Botan::FrodoMatrix::add
    - n
    - Botan::FrodoMatrix::mul_add_sa_plus_e
    - seed_a
    - Botan::FrodoMatrix::mul_add_sb_plus_e
    - len_se_bytes
    - update
    - clear
    - Botan::CT::unpoison_all
    - BufferStuffer::next
    - b
    - random_vec
    - std::tuple
    - len_packed_c_bytes
    - Botan::FrodoMatrix::make_sample_generator
    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:156,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:156,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: 156
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 156
    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:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 158
    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: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: 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:163,1
    - Dst: constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:165,1
    - Dst: SHAKE_XOF
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:166,1
    - Dst: Botan::FrodoMatrix::make_sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:167,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:169,1
    - Dst: len_ct_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:169,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:170,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:174,1
    - Dst: len_packed_b_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:174,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:175,1
    - Dst: len_packed_c_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_salt_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:176,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:177,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:177,1
    - Dst: Botan::FrodoMatrix::unpack
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:179,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:179,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:179,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_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:180,1
    - Dst: Botan::FrodoMatrix::mul_bs
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:182,1
    - Dst: s_trans
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:182,1
    - Dst: Botan::FrodoMatrix::sub
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:183,1
    - Dst: auto::decode
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:185,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:187,1
    - Dst: hash
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:187,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:188,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:189,1
    - Dst: output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:191,1
    - Dst: len_se_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:191,1
    - Dst: output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:192,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:192,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:193,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:195,1
    - Dst: encapsulation_domain_separator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:195,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:196,1
    - Dst: sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:197,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:197,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:197,1
    - Dst: n
      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:199,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:199,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:199,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:199,1
    - Dst: Botan::FrodoMatrix::mul_add_sa_plus_e
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:201,1
    - Dst: seed_a
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:201,1
    - Dst: sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:203,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:203,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:203,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:203,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:204,1
    - Dst: Botan::FrodoMatrix::mul_add_sb_plus_e
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:206,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:206,1
    - Dst: Botan::FrodoMatrix::encode
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:208,1
    - Dst: Botan::FrodoMatrix::add
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:209,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:214,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:215,1
    - Dst: auto::constant_time_compare
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:220,1
    - Dst: auto::constant_time_compare
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:220,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:222,1
    - Dst: Botan::CT::conditional_copy_mem
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:223,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:223,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:223,1
    - Dst: s
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:223,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:223,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:225,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:226,1
    - Dst: output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:227,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:229,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: 230
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 230
    functionName: Botan::Frodo_KEM_Decryptor::raw_kem_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - SHAKE_XOF
    - len_ct_bytes
    - Botan::CT::scoped_poison
    - Botan::FrodoMatrix::mul_bs
    - s_trans
    - hash
    - Botan::FrodoMatrix::encode
    - constants
    - len_packed_b_bytes
    - BufferSlicer::take
    - Botan::CT::unpoison
    - encapsulation_domain_separator
    - auto::constant_time_compare
    - BufferSlicer::empty
    - len_salt_bytes
    - std::vector::data
    - auto::decode
    - sample_generator
    - output
    - len_sec_bytes
    - auto::data
    - n_bar
    - Botan::FrodoMatrix::add
    - n
    - std::span<const uint8_t>::size
    - Botan::FrodoMatrix::mul_add_sa_plus_e
    - seed_a
    - Botan::FrodoMatrix::mul_add_sb_plus_e
    - Invalid_Argument
    - Botan::CT::conditional_copy_mem
    - len_se_bytes
    - update
    - clear
    - Botan::FrodoMatrix::unpack
    - s
    - b
    - auto::reduce
    - std::tuple
    - len_packed_c_bytes
    - Botan::FrodoMatrix::sub
    - Botan::FrodoMatrix::make_sample_generator
    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:243,1
    - Dst: FrodoKEMConstants::len_public_key_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:243,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:244,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:248,1
    - Dst: FrodoKEMConstants::len_a_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:248,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:249,1
    - Dst: FrodoKEMConstants::d
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:249,1
    - Dst: FrodoKEMConstants::n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:249,1
    - Dst: FrodoKEMConstants::n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:249,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:250,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:250,1
    - Dst: Botan::FrodoMatrix::unpack
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:252,1
    - Dst: std::tuple
      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: std::make_shared<FrodoKEM_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:254,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:254,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:254,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:254,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: 255
      start: 241
    functionDepth: 2
    functionLinenumber: 241
    functionLinenumberEnd: 255
    functionName: Botan::FrodoKEM_PublicKey::FrodoKEM_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::move
    - BufferSlicer::empty
    - std::span<const uint8_t>::size
    - std::make_shared<FrodoKEM_PublicKeyInternal>
    - FrodoKEMConstants::len_a_bytes
    - FrodoKEMConstants::n_bar
    - Botan::FrodoMatrix::unpack
    - Invalid_Argument
    - std::tuple
    - BufferSlicer::take
    - FrodoKEMConstants::n
    - FrodoKEMConstants::len_public_key_bytes
    - BufferSlicer::copy
    - FrodoKEMConstants::d
    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:258,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:258,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: 258
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 258
    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:261,1
    - Dst: m_public::constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:262,1
    - Dst: m_public::seed_a
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:262,1
    - Dst: m_public::b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - FrodoKEM_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 263
    functionName: Botan::FrodoKEM_PublicKey::FrodoKEM_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - m_public::b
    - std::make_shared<FrodoKEM_PublicKeyInternal>
    - m_public::seed_a
    - m_public::constants
    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:267,1
    - Dst: m_public::constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:268,1
    - Dst: m_public::seed_a
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:268,1
    - Dst: m_public::b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - FrodoKEM_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 271
    functionName: '& FrodoKEM_PublicKey::operator=(const FrodoKEM_PublicKey& other)'
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - m_public::b
    - std::make_shared<FrodoKEM_PublicKeyInternal>
    - m_public::seed_a
    - m_public::constants
    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:274,1
    - Dst: Botan::FrodoKEM_PublicKey::object_identifier
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 275
    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:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 279
    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:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 283
    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:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 287
    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:290,1
    - Dst: seed_a
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:290,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:290,1
    - Dst: constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 291
    functionName: Botan::FrodoKEM_PublicKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - concat
    - b
    - 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:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 297
    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: 301
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 301
    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:304,1
    - Dst: constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 305
    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:309,1
    - Dst: std::make_unique<Frodo_KEM_Encryptor>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:310,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:312,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:312,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 313
    functionName: Botan::FrodoKEM_PublicKey::create_kem_encryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Frodo_KEM_Encryptor>
    - Provider_Not_Found
    - algo_name
    - std::string_view::empty
    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::SHAKE_XOF
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:321,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:323,1
    - Dst: FrodoKEMConstants::len_sec_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:323,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:324,1
    - Dst: FrodoKEMConstants::len_se_bytes
      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:325,1
    - Dst: FrodoKEMConstants::len_a_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:325,1
    - Dst: Botan::CT::poison_all
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:327,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:329,1
    - Dst: output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:330,1
    - Dst: FrodoKEMConstants::len_a_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:330,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:331,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:333,1
    - Dst: FrodoKEMConstants::keygen_domain_separator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:333,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:334,1
    - Dst: Botan::FrodoMatrix::make_sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:336,1
    - Dst: sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:337,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:337,1
    - Dst: FrodoKEMConstants::n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:337,1
    - Dst: FrodoKEMConstants::n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:337,1
    - Dst: sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:338,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:338,1
    - Dst: FrodoKEMConstants::n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:338,1
    - Dst: FrodoKEMConstants::n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:338,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:339,1
    - Dst: Botan::FrodoMatrix::mul_add_as_plus_e
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:341,1
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:343,1
    - Dst: std::make_shared<FrodoKEM_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:345,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:345,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:345,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:345,1
    - Dst: std::make_shared<FrodoKEM_PrivateKeyInternal>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:346,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:346,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - ' rng'
    - mode
    argTypes:
    - RandomNumberGenerator
    - FrodoKEMMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 347
    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>
    - FrodoKEMConstants::n
    - Botan::FrodoMatrix::mul_add_as_plus_e
    - FrodoKEMConstants::keygen_domain_separator
    - FrodoKEMConstants::n_bar
    - FrodoKEMConstants::len_sec_bytes
    - sample_generator
    - std::make_shared<FrodoKEM_PrivateKeyInternal>
    - output
    - FrodoKEMConstants::SHAKE_XOF
    - FrodoKEMConstants::len_a_bytes
    - FrodoKEMConstants::len_se_bytes
    - Botan::CT::poison_all
    - update
    - std::move
    - clear
    - Botan::CT::unpoison_all
    - random_vec
    - std::tuple
    - Botan::FrodoMatrix::make_sample_generator
    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:352,1
    - Dst: FrodoKEMConstants::len_private_key_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:352,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:353,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:357,1
    - Dst: FrodoKEMConstants::len_sec_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:357,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:358,1
    - Dst: FrodoKEMConstants::len_a_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:358,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:359,1
    - Dst: FrodoKEMConstants::d
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:359,1
    - Dst: FrodoKEMConstants::n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:359,1
    - Dst: FrodoKEMConstants::n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:359,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:360,1
    - Dst: FrodoKEMConstants::n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:360,1
    - Dst: FrodoKEMConstants::n
      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_sec_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:361,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:362,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:362,1
    - Dst: Botan::FrodoMatrix::unpack
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:364,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:364,1
    - Dst: FrodoKEMConstants::n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:364,1
    - Dst: FrodoKEMConstants::n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:364,1
    - Dst: Botan::FrodoMatrix::deserialize
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:365,1
    - Dst: FrodoKEMConstants::n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:365,1
    - Dst: FrodoKEMConstants::n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:365,1
    - Dst: std::make_shared<FrodoKEM_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:367,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:367,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:367,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:367,1
    - Dst: std::make_shared<FrodoKEM_PrivateKeyInternal>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:368,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:368,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:368,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:370,1
    - Dst: hash
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:370,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - sk
    - mode
    argTypes:
    - std::span<const uint8_t>
    - FrodoKEMMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 349
    functionDepth: 2
    functionLinenumber: 349
    functionLinenumberEnd: 371
    functionName: Botan::FrodoKEM_PrivateKey::FrodoKEM_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::make_shared<FrodoKEM_PublicKeyInternal>
    - hash
    - FrodoKEMConstants::n
    - BufferSlicer::take
    - BufferSlicer::copy
    - FrodoKEMConstants::d
    - BufferSlicer::empty
    - FrodoKEMConstants::n_bar
    - FrodoKEMConstants::len_private_key_bytes
    - FrodoKEMConstants::len_sec_bytes
    - BOTAN_STATE_CHECK
    - std::make_shared<FrodoKEM_PrivateKeyInternal>
    - std::span<const uint8_t>::size
    - FrodoKEMConstants::len_a_bytes
    - Invalid_Argument
    - std::move
    - Botan::FrodoMatrix::unpack
    - std::tuple
    - Botan::FrodoMatrix::deserialize
    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:374,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:374,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: 374
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 374
    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:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 378
    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: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::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:385,1
    - Dst: s
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:385,1
    - Dst: seed_a
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:386,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:387,1
    - Dst: constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:387,1
    - Dst: s_trans
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:388,1
    - Dst: hash
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 390
    functionName: Botan::FrodoKEM_PrivateKey::raw_private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 1
    functionsReached:
    - concat
    - seed_a
    - s
    - s_trans
    - b
    - hash
    - constants
    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:395,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:396,1
    - Dst: std::make_unique<Frodo_KEM_Decryptor>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:397,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:399,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:399,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: 400
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 400
    functionName: Botan::FrodoKEM_PrivateKey::create_kem_decryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - std::string_view::empty
    - algo_name
    - BOTAN_UNUSED
    - std::make_unique<Frodo_KEM_Decryptor>
    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:37,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:37,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:37,1
    - Dst: SHAKE_XOF
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:38,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:39,1
    - Dst: Botan::FrodoKEM_PublicKeyInternal::serialize
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:39,1
    - Dst: output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:40,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - constants
    - seed_a
    - b
    argTypes:
    - FrodoKEMConstants
    - FrodoSeedA
    - FrodoMatrix
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: Botan::FrodoKEM_PublicKeyInternal::FrodoKEM_PublicKeyInternal
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - update
    - Botan::FrodoKEM_PublicKeyInternal::serialize
    - SHAKE_XOF
    - output
    - 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: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    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: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    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: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    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: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    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:51,1
    - Dst: seed_a
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:51,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: Botan::FrodoKEM_PublicKeyInternal::serialize
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 2
    functionsReached:
    - concat
    - b
    - 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:63,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - s
    - s_trans
    argTypes:
    - FrodoSeedS
    - FrodoMatrix
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    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: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    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: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    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:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 69
    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:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 71
    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:85,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: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    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:87,1
    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::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: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::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:94,1
    - Dst: SHAKE_XOF
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:95,1
    - Dst: Botan::FrodoMatrix::make_sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:96,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:100,1
    - Dst: len_packed_b_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:100,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:101,1
    - Dst: len_packed_c_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_salt_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:102,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:104,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:104,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:106,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:106,1
    - Dst: randomize
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:107,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:109,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:111,1
    - Dst: hash
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:111,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:112,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:113,1
    - Dst: output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:114,1
    - Dst: len_se_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:114,1
    - Dst: output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:115,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:115,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:116,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:118,1
    - Dst: encapsulation_domain_separator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:118,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:119,1
    - Dst: sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:121,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:121,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:121,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:121,1
    - Dst: sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:123,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:123,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:123,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:123,1
    - Dst: Botan::FrodoMatrix::mul_add_sa_plus_e
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:125,1
    - Dst: seed_a
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:125,1
    - Dst: auto::pack
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:127,1
    - Dst: sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:129,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:129,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:129,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:129,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:130,1
    - Dst: Botan::FrodoMatrix::mul_add_sb_plus_e
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:132,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:132,1
    - Dst: Botan::FrodoMatrix::encode
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:134,1
    - Dst: Botan::FrodoMatrix::add
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:136,1
    - Dst: auto::pack
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:138,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:140,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:141,1
    - Dst: output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:142,1
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:144,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: 145
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 145
    functionName: Botan::Frodo_KEM_Encryptor::raw_kem_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - auto::pack
    - Botan::CT::poison
    - BufferStuffer::full
    - randomize
    - SHAKE_XOF
    - hash
    - Botan::FrodoMatrix::encode
    - constants
    - len_packed_b_bytes
    - encapsulation_domain_separator
    - len_salt_bytes
    - sample_generator
    - output
    - len_sec_bytes
    - n_bar
    - Botan::FrodoMatrix::add
    - n
    - Botan::FrodoMatrix::mul_add_sa_plus_e
    - seed_a
    - Botan::FrodoMatrix::mul_add_sb_plus_e
    - len_se_bytes
    - update
    - clear
    - Botan::CT::unpoison_all
    - BufferStuffer::next
    - b
    - random_vec
    - std::tuple
    - len_packed_c_bytes
    - Botan::FrodoMatrix::make_sample_generator
    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:156,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:156,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: 156
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 156
    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:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 158
    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: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: 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:163,1
    - Dst: constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:165,1
    - Dst: SHAKE_XOF
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:166,1
    - Dst: Botan::FrodoMatrix::make_sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:167,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:169,1
    - Dst: len_ct_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:169,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:170,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:174,1
    - Dst: len_packed_b_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:174,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:175,1
    - Dst: len_packed_c_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_salt_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:176,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:177,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:177,1
    - Dst: Botan::FrodoMatrix::unpack
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:179,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:179,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:179,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_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:180,1
    - Dst: Botan::FrodoMatrix::mul_bs
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:182,1
    - Dst: s_trans
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:182,1
    - Dst: Botan::FrodoMatrix::sub
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:183,1
    - Dst: auto::decode
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:185,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:187,1
    - Dst: hash
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:187,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:188,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:189,1
    - Dst: output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:191,1
    - Dst: len_se_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:191,1
    - Dst: output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:192,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:192,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:193,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:195,1
    - Dst: encapsulation_domain_separator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:195,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:196,1
    - Dst: sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:197,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:197,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:197,1
    - Dst: n
      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:199,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:199,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:199,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:199,1
    - Dst: Botan::FrodoMatrix::mul_add_sa_plus_e
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:201,1
    - Dst: seed_a
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:201,1
    - Dst: sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:203,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:203,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:203,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:203,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:204,1
    - Dst: Botan::FrodoMatrix::mul_add_sb_plus_e
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:206,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:206,1
    - Dst: Botan::FrodoMatrix::encode
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:208,1
    - Dst: Botan::FrodoMatrix::add
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:209,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:214,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:215,1
    - Dst: auto::constant_time_compare
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:220,1
    - Dst: auto::constant_time_compare
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:220,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:222,1
    - Dst: Botan::CT::conditional_copy_mem
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:223,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:223,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:223,1
    - Dst: s
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:223,1
    - Dst: len_sec_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:223,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:225,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:226,1
    - Dst: output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:227,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:229,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: 230
      start: 162
    functionDepth: 2
    functionLinenumber: 162
    functionLinenumberEnd: 230
    functionName: Botan::Frodo_KEM_Decryptor::raw_kem_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - SHAKE_XOF
    - len_ct_bytes
    - Botan::CT::scoped_poison
    - Botan::FrodoMatrix::mul_bs
    - s_trans
    - hash
    - Botan::FrodoMatrix::encode
    - constants
    - len_packed_b_bytes
    - BufferSlicer::take
    - Botan::CT::unpoison
    - encapsulation_domain_separator
    - auto::constant_time_compare
    - BufferSlicer::empty
    - len_salt_bytes
    - std::vector::data
    - auto::decode
    - sample_generator
    - output
    - len_sec_bytes
    - auto::data
    - n_bar
    - Botan::FrodoMatrix::add
    - n
    - std::span<const uint8_t>::size
    - Botan::FrodoMatrix::mul_add_sa_plus_e
    - seed_a
    - Botan::FrodoMatrix::mul_add_sb_plus_e
    - Invalid_Argument
    - Botan::CT::conditional_copy_mem
    - len_se_bytes
    - update
    - clear
    - Botan::FrodoMatrix::unpack
    - s
    - b
    - auto::reduce
    - std::tuple
    - len_packed_c_bytes
    - Botan::FrodoMatrix::sub
    - Botan::FrodoMatrix::make_sample_generator
    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:243,1
    - Dst: FrodoKEMConstants::len_public_key_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:243,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:244,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:248,1
    - Dst: FrodoKEMConstants::len_a_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:248,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:249,1
    - Dst: FrodoKEMConstants::d
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:249,1
    - Dst: FrodoKEMConstants::n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:249,1
    - Dst: FrodoKEMConstants::n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:249,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:250,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:250,1
    - Dst: Botan::FrodoMatrix::unpack
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:252,1
    - Dst: std::tuple
      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: std::make_shared<FrodoKEM_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:254,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:254,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:254,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:254,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: 255
      start: 241
    functionDepth: 2
    functionLinenumber: 241
    functionLinenumberEnd: 255
    functionName: Botan::FrodoKEM_PublicKey::FrodoKEM_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::move
    - BufferSlicer::empty
    - std::span<const uint8_t>::size
    - std::make_shared<FrodoKEM_PublicKeyInternal>
    - FrodoKEMConstants::len_a_bytes
    - FrodoKEMConstants::n_bar
    - Botan::FrodoMatrix::unpack
    - Invalid_Argument
    - std::tuple
    - BufferSlicer::take
    - FrodoKEMConstants::n
    - FrodoKEMConstants::len_public_key_bytes
    - BufferSlicer::copy
    - FrodoKEMConstants::d
    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:258,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:258,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: 258
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 258
    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:261,1
    - Dst: m_public::constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:262,1
    - Dst: m_public::seed_a
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:262,1
    - Dst: m_public::b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - FrodoKEM_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 263
    functionName: Botan::FrodoKEM_PublicKey::FrodoKEM_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - m_public::b
    - std::make_shared<FrodoKEM_PublicKeyInternal>
    - m_public::seed_a
    - m_public::constants
    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:267,1
    - Dst: m_public::constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:268,1
    - Dst: m_public::seed_a
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:268,1
    - Dst: m_public::b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - FrodoKEM_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 271
    functionName: '& FrodoKEM_PublicKey::operator=(const FrodoKEM_PublicKey& other)'
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - m_public::b
    - std::make_shared<FrodoKEM_PublicKeyInternal>
    - m_public::seed_a
    - m_public::constants
    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:274,1
    - Dst: Botan::FrodoKEM_PublicKey::object_identifier
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:274,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 275
    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:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 279
    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:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 283
    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:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 287
    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:290,1
    - Dst: seed_a
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:290,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:290,1
    - Dst: constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 291
    functionName: Botan::FrodoKEM_PublicKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 1
    functionsReached:
    - concat
    - b
    - 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:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 293
    functionDepth: 0
    functionLinenumber: 293
    functionLinenumberEnd: 297
    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: 301
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 301
    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:304,1
    - Dst: constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 305
    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:309,1
    - Dst: std::make_unique<Frodo_KEM_Encryptor>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:310,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:312,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:312,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 313
    functionName: Botan::FrodoKEM_PublicKey::create_kem_encryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Frodo_KEM_Encryptor>
    - Provider_Not_Found
    - algo_name
    - std::string_view::empty
    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::SHAKE_XOF
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:321,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:323,1
    - Dst: FrodoKEMConstants::len_sec_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:323,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:324,1
    - Dst: FrodoKEMConstants::len_se_bytes
      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:325,1
    - Dst: FrodoKEMConstants::len_a_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:325,1
    - Dst: Botan::CT::poison_all
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:327,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:329,1
    - Dst: output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:330,1
    - Dst: FrodoKEMConstants::len_a_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:330,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:331,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:333,1
    - Dst: FrodoKEMConstants::keygen_domain_separator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:333,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:334,1
    - Dst: Botan::FrodoMatrix::make_sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:336,1
    - Dst: sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:337,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:337,1
    - Dst: FrodoKEMConstants::n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:337,1
    - Dst: FrodoKEMConstants::n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:337,1
    - Dst: sample_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:338,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:338,1
    - Dst: FrodoKEMConstants::n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:338,1
    - Dst: FrodoKEMConstants::n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:338,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:339,1
    - Dst: Botan::FrodoMatrix::mul_add_as_plus_e
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:341,1
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:343,1
    - Dst: std::make_shared<FrodoKEM_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:345,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:345,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:345,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:345,1
    - Dst: std::make_shared<FrodoKEM_PrivateKeyInternal>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:346,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:346,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:346,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 2
    argNames:
    - ' rng'
    - mode
    argTypes:
    - RandomNumberGenerator
    - FrodoKEMMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 347
    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>
    - FrodoKEMConstants::n
    - Botan::FrodoMatrix::mul_add_as_plus_e
    - FrodoKEMConstants::keygen_domain_separator
    - FrodoKEMConstants::n_bar
    - FrodoKEMConstants::len_sec_bytes
    - sample_generator
    - std::make_shared<FrodoKEM_PrivateKeyInternal>
    - output
    - FrodoKEMConstants::SHAKE_XOF
    - FrodoKEMConstants::len_a_bytes
    - FrodoKEMConstants::len_se_bytes
    - Botan::CT::poison_all
    - update
    - std::move
    - clear
    - Botan::CT::unpoison_all
    - random_vec
    - std::tuple
    - Botan::FrodoMatrix::make_sample_generator
    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:352,1
    - Dst: FrodoKEMConstants::len_private_key_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:352,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:353,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:357,1
    - Dst: FrodoKEMConstants::len_sec_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:357,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:358,1
    - Dst: FrodoKEMConstants::len_a_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:358,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:359,1
    - Dst: FrodoKEMConstants::d
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:359,1
    - Dst: FrodoKEMConstants::n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:359,1
    - Dst: FrodoKEMConstants::n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:359,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:360,1
    - Dst: FrodoKEMConstants::n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:360,1
    - Dst: FrodoKEMConstants::n
      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_sec_bytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:361,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:362,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:362,1
    - Dst: Botan::FrodoMatrix::unpack
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:364,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:364,1
    - Dst: FrodoKEMConstants::n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:364,1
    - Dst: FrodoKEMConstants::n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:364,1
    - Dst: Botan::FrodoMatrix::deserialize
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:365,1
    - Dst: FrodoKEMConstants::n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:365,1
    - Dst: FrodoKEMConstants::n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:365,1
    - Dst: std::make_shared<FrodoKEM_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:367,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:367,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:367,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:367,1
    - Dst: std::make_shared<FrodoKEM_PrivateKeyInternal>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:368,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:368,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:368,1
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:370,1
    - Dst: hash
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:370,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - sk
    - mode
    argTypes:
    - std::span<const uint8_t>
    - FrodoKEMMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 349
    functionDepth: 2
    functionLinenumber: 349
    functionLinenumberEnd: 371
    functionName: Botan::FrodoKEM_PrivateKey::FrodoKEM_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::make_shared<FrodoKEM_PublicKeyInternal>
    - hash
    - FrodoKEMConstants::n
    - BufferSlicer::take
    - BufferSlicer::copy
    - FrodoKEMConstants::d
    - BufferSlicer::empty
    - FrodoKEMConstants::n_bar
    - FrodoKEMConstants::len_private_key_bytes
    - FrodoKEMConstants::len_sec_bytes
    - BOTAN_STATE_CHECK
    - std::make_shared<FrodoKEM_PrivateKeyInternal>
    - std::span<const uint8_t>::size
    - FrodoKEMConstants::len_a_bytes
    - Invalid_Argument
    - std::move
    - Botan::FrodoMatrix::unpack
    - std::tuple
    - Botan::FrodoMatrix::deserialize
    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:374,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:374,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: 374
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 374
    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:377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 378
    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: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::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:385,1
    - Dst: s
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:385,1
    - Dst: seed_a
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:386,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:387,1
    - Dst: constants
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:387,1
    - Dst: s_trans
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:388,1
    - Dst: hash
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 384
    functionDepth: 1
    functionLinenumber: 384
    functionLinenumberEnd: 390
    functionName: Botan::FrodoKEM_PrivateKey::raw_private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 2
    functionsReached:
    - concat
    - seed_a
    - s
    - s_trans
    - b
    - hash
    - constants
    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:395,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:396,1
    - Dst: std::make_unique<Frodo_KEM_Decryptor>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:397,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:399,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp:399,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: 400
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 400
    functionName: Botan::FrodoKEM_PrivateKey::create_kem_decryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodokem.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - std::string_view::empty
    - algo_name
    - BOTAN_UNUSED
    - std::make_unique<Frodo_KEM_Decryptor>
    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<0>
    - std::get<1>
    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<0>
    - std::get<1>
    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:
    - FrodoKEMMode::mode
    - FrodoKEMMode::is_ephemeral
    - BOTAN_ASSERT_UNREACHABLE
    - FrodoKEMMode::is_static
    - Botan::XOF::create_or_throw
    - FrodoKEMMode::is_available
    - FrodoKEMMode::to_string
    - Not_Implemented
    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: clear
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: '& FrodoKEMConstants::SHAKE_XOF() const'
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.cpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: XOF
    signature: XOF & FrodoKEMConstants::SHAKE_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:
    - FrodoKEMMode::mode
    - FrodoKEMMode::is_ephemeral
    - BOTAN_ASSERT_UNREACHABLE
    - FrodoKEMMode::is_static
    - Botan::XOF::create_or_throw
    - FrodoKEMMode::is_available
    - FrodoKEMMode::to_string
    - Not_Implemented
    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: clear
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: '& FrodoKEMConstants::SHAKE_XOF() const'
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_constants.cpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: XOF
    signature: XOF & FrodoKEMConstants::SHAKE_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: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    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: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    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: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    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: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    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: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    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: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    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: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    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: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    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:46,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:46,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:46,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' dimensions'
    argTypes:
    - FrodoMatrix::Dimensions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: Botan::make_elements_vector
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 0
    functionsReached:
    - std::get<0>
    - secure_vector<uint16_t>
    - std::get<1>
    - static_cast<size_t>
    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:52,1
    - Dst: Botan::create_aes_row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:53,1
    - Dst: Botan::mode
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:58,1
    - Dst: Botan::create_shake_row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:59,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' constants'
    - seed_a
    argTypes:
    - FrodoKEMConstants
    - StrongSpan<const FrodoSeedA>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 66
    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:46,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:46,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:46,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' dimensions'
    argTypes:
    - FrodoMatrix::Dimensions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: Botan::make_elements_vector
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 0
    functionsReached:
    - std::get<0>
    - secure_vector<uint16_t>
    - std::get<1>
    - static_cast<size_t>
    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:52,1
    - Dst: Botan::create_aes_row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:53,1
    - Dst: Botan::mode
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:58,1
    - Dst: Botan::create_shake_row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:59,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' constants'
    - seed_a
    argTypes:
    - FrodoKEMConstants
    - StrongSpan<const FrodoSeedA>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 66
    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:73,1
    - Dst: StrongSpan<const FrodoSampleR>::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:73,1
    - Dst: StrongSpan<const FrodoSampleR>::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:74,1
    - Dst: make_elements_vector
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:76,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:77,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:77,1
    - Dst: load_le<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:79,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:79,1
    - Dst: StrongSpan<const FrodoSampleR>::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:79,1
    - Dst: Botan::CT::value_barrier
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:82,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:82,1
    - Dst: Botan::CT::Mask::expand_bit
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:83,1
    - Dst: cdf_table_len
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:88,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:90,1
    - Dst: cdf_table_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:90,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:93,1
    - Dst: auto::select
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:95,1
    - Dst: Botan::FrodoMatrix::FrodoMatrix
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:98,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - ' constants'
    - ' dimensions'
    - r
    argTypes:
    - FrodoKEMConstants
    - Dimensions
    - StrongSpan<const FrodoSampleR>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 99
    functionName: Botan::FrodoMatrix::sample
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - auto::data
    - static_cast<uint16_t>
    - cdf_table_at
    - auto::select
    - Botan::bigint_ct_is_lt
    - load_le<uint16_t>
    - Botan::CT::Mask::expand_bit
    - std::move
    - Botan::CT::value_barrier
    - cdf_table_len
    - Botan::FrodoMatrix::FrodoMatrix
    - StrongSpan<const FrodoSampleR>::size
    - StrongSpan<const FrodoSampleR>::data
    - auto::size
    - make_elements_vector
    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:104,1
    - Dst: output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:106,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:106,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' constants'
    - ' shake'
    argTypes:
    - FrodoKEMConstants
    - Botan::XOF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 108
    functionName: Botan::FrodoMatrix::make_sample_generator
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 6
    functionsReached:
    - output
    - std::get<0>
    - Botan::FrodoMatrix::sample
    - std::get<1>
    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:111,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:111,1
    - Dst: make_elements_vector
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - dims
    argTypes:
    - Dimensions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: Botan::FrodoMatrix::FrodoMatrix
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 1
    functionsReached:
    - std::get<0>
    - std::get<1>
    - make_elements_vector
    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:117,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:117,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:117,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:117,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:117,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:118,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:118,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:118,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:118,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:120,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:120,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:120,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:120,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:120,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:120,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:120,1
    - Dst: make_elements_vector
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:123,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:123,1
    - Dst: make_row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:124,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:130,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:133,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:133,1
    - Dst: std::vector::size
      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:136,1
    - Dst: BufferStuffer
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:137,1
    - Dst: row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:140,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:140,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:140,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:140,1
    - Dst: row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:141,1
    - Dst: auto::next
      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:141,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:141,1
    - Dst: row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:142,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:142,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:142,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:142,1
    - Dst: row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:143,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:143,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:143,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:143,1
    - Dst: load_le<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:146,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:146,1
    - Dst: std::span::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:146,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:146,1
    - Dst: n_bar
      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:150,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:155,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:155,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:158,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:158,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:158,1
    - Dst: n
      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:159,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:159,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:159,1
    - Dst: n
      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:160,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:160,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:160,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:160,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:161,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:161,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:161,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:161,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:163,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:163,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:163,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:163,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:163,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:164,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:164,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:164,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:164,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:164,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:165,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:165,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:165,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:165,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:165,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:166,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:166,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:166,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:166,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:166,1
    - Dst: Botan::FrodoMatrix::FrodoMatrix
      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::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:170,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: 171
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 171
    functionName: Botan::FrodoMatrix::mul_add_as_plus_e
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 2
    functionsReached:
    - static_cast<uint16_t>
    - make_elements_vector
    - std::get<1>
    - make_row_generator
    - load_le<uint16_t>
    - auto::at
    - std::vector::data
    - Botan::FrodoMatrix::elements_at
    - auto::next
    - Botan::FrodoMatrix::FrodoMatrix
    - std::get<0>
    - n_bar
    - n
    - reinterpret_cast<uint8_t*>
    - Botan::FrodoMatrix::dimensions
    - std::vector::at
    - std::array::at
    - BufferStuffer
    - std::span::data
    - std::vector::size
    - BOTAN_ASSERT
    - row_generator
    - std::move
    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:177,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:177,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:177,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:177,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:177,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:178,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:178,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:178,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:178,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:180,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:180,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:180,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:180,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:180,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:180,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:180,1
    - Dst: make_row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:184,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:190,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:192,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:192,1
    - Dst: std::vector::size
      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:196,1
    - Dst: BufferStuffer
      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: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: row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:201,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:201,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:201,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:201,1
    - Dst: row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:202,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:202,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:202,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:202,1
    - Dst: row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:203,1
    - Dst: auto::next
      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: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:203,1
    - Dst: row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:204,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:204,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:204,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:204,1
    - Dst: row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:205,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:205,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:205,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:205,1
    - Dst: row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:206,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:206,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:206,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:206,1
    - Dst: row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:207,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:207,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:207,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:207,1
    - Dst: load_le<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:210,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:210,1
    - Dst: std::span::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:210,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:210,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:212,1
    - Dst: Botan::FrodoMatrix::elements_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: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:218,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:219,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:219,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:221,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:221,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:221,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:223,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:223,1
    - Dst: Botan::FrodoMatrix::FrodoMatrix
      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::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:228,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: 229
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 229
    functionName: Botan::FrodoMatrix::mul_add_sa_plus_e
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 4
    functionsReached:
    - static_cast<uint16_t>
    - std::get<1>
    - make_row_generator
    - load_le<uint16_t>
    - auto::at
    - std::vector::data
    - Botan::FrodoMatrix::elements_at
    - auto::next
    - Botan::FrodoMatrix::FrodoMatrix
    - std::get<0>
    - n_bar
    - n
    - reinterpret_cast<uint8_t*>
    - Botan::FrodoMatrix::dimensions
    - std::vector::at
    - BufferStuffer
    - std::span::data
    - std::vector::size
    - BOTAN_ASSERT
    - row_generator
    - std::move
    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:235,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:235,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:235,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:235,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:235,1
    - Dst: std::get<1>
      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: std::get<0>
      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: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:238,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:238,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:238,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:238,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:238,1
    - Dst: Botan::FrodoMatrix::dimensions
      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:238,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:240,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:240,1
    - Dst: Botan::FrodoMatrix::dimensions
      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: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:240,1
    - Dst: Botan::FrodoMatrix::dimensions
      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: make_elements_vector
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:243,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:243,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:245,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:246,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:247,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:247,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:247,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:247,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:248,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:249,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:249,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:249,1
    - Dst: static_cast<uint32_t /* to avoid integral promotion */>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:250,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:250,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:250,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:251,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:251,1
    - Dst: Botan::FrodoMatrix::FrodoMatrix
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:256,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:256,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:256,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 4
    argNames:
    - ' constants'
    - ' b'
    - ' s'
    - ' e'
    argTypes:
    - FrodoKEMConstants
    - FrodoMatrix
    - FrodoMatrix
    - FrodoMatrix
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 257
    functionName: Botan::FrodoMatrix::mul_add_sb_plus_e
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 4
    functionsReached:
    - static_cast<uint16_t>
    - std::move
    - n_bar
    - n
    - auto::at
    - Botan::FrodoMatrix::dimensions
    - Botan::FrodoMatrix::FrodoMatrix
    - Botan::FrodoMatrix::elements_at
    - std::get<0>
    - make_elements_vector
    - static_cast<uint32_t /* to avoid integral promotion */>
    - BOTAN_ASSERT
    - std::get<1>
    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:260,1
    - Dst: std::make_tuple<size_t, size_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:262,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:262,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:262,1
    - Dst: make_elements_vector
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:263,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:265,1
    - Dst: StrongSpan<const FrodoPlaintext>::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:265,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:265,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:265,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:265,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:268,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:268,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:270,1
    - Dst: static_cast<uint64_t /* avoiding integral promotion */>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:271,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:271,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:274,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:274,1
    - Dst: d
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:274,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:274,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:275,1
    - Dst: Botan::FrodoMatrix::FrodoMatrix
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:279,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:279,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ' constants'
    - in
    argTypes:
    - FrodoKEMConstants
    - StrongSpan<const FrodoPlaintext>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 280
    functionName: Botan::FrodoMatrix::encode
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 4
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - static_cast<uint16_t>
    - static_cast<uint64_t /* avoiding integral promotion */>
    - n_bar
    - std::move
    - auto::at
    - d
    - Botan::FrodoMatrix::FrodoMatrix
    - StrongSpan<const FrodoPlaintext>::size
    - b
    - std::make_tuple<size_t, size_t>
    - make_elements_vector
    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:284,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:284,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:284,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:285,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:285,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:285,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:285,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:286,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:286,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:286,1
    - Dst: make_elements_vector
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:288,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:288,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:290,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:290,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:291,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:291,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:291,1
    - Dst: Botan::FrodoMatrix::FrodoMatrix
      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: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:294,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ' constants'
    - ' a'
    - ' b'
    argTypes:
    - FrodoKEMConstants
    - FrodoMatrix
    - FrodoMatrix
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 295
    functionName: Botan::FrodoMatrix::add
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 4
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::move
    - n_bar
    - auto::at
    - Botan::FrodoMatrix::dimensions
    - Botan::FrodoMatrix::FrodoMatrix
    - Botan::FrodoMatrix::elements_at
    - std::get<0>
    - make_elements_vector
    - std::get<1>
    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:299,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:299,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:299,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:300,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:300,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:300,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:300,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:301,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:301,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:301,1
    - Dst: make_elements_vector
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:303,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:303,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:305,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:305,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:306,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:306,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:306,1
    - Dst: Botan::FrodoMatrix::FrodoMatrix
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:309,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:309,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:309,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ' constants'
    - ' a'
    - ' b'
    argTypes:
    - FrodoKEMConstants
    - FrodoMatrix
    - FrodoMatrix
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 310
    functionName: Botan::FrodoMatrix::sub
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::move
    - n_bar
    - auto::at
    - Botan::FrodoMatrix::dimensions
    - Botan::FrodoMatrix::FrodoMatrix
    - Botan::FrodoMatrix::elements_at
    - std::get<0>
    - make_elements_vector
    - std::get<1>
    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:313,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:313,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:313,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:315,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:315,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:315,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:316,1
    - Dst: m_elements::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:316,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - FrodoMatrix
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 318
    functionName: Botan::FrodoMatrix::constant_time_compare
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::CT::is_equal
    - data
    - m_elements::data
    - Botan::FrodoMatrix::dimensions
    - size
    - reinterpret_cast<const uint8_t*>
    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:321,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:321,1
    - Dst: make_elements_vector
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:322,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:324,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:325,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:326,1
    - Dst: n_bar
      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:328,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:330,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:330,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:333,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:333,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:335,1
    - Dst: Botan::FrodoMatrix::FrodoMatrix
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:340,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:340,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - ' constants'
    - ' b'
    - ' s'
    argTypes:
    - FrodoKEMConstants
    - FrodoMatrix
    - FrodoMatrix
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 341
    functionName: Botan::FrodoMatrix::mul_bs
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 2
    functionsReached:
    - static_cast<uint16_t>
    - std::move
    - n_bar
    - n
    - auto::at
    - Botan::FrodoMatrix::FrodoMatrix
    - Botan::FrodoMatrix::elements_at
    - make_elements_vector
    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:344,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:345,1
    - Dst: StrongSpan<FrodoPackedMatrix>::size
      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:352,1
    - Dst: Botan::FrodoMatrix::element_count
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:352,1
    - Dst: min
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:366,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:366,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:367,1
    - Dst: static_cast<uint8_t>
      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: Botan::FrodoMatrix::element_count
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:374,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:375,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:376,1
    - Dst: d
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:376,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 2
    argNames:
    - ' constants'
    - out
    argTypes:
    - FrodoKEMConstants
    - StrongSpan<FrodoPackedMatrix>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 343
    functionDepth: 2
    functionLinenumber: 343
    functionLinenumberEnd: 387
    functionName: Botan::FrodoMatrix::pack
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - static_cast<uint16_t>
    - StrongSpan<FrodoPackedMatrix>::size
    - d
    - min
    - static_cast<uint8_t>
    - Botan::FrodoMatrix::packed_size
    - at
    - Botan::FrodoMatrix::element_count
    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:390,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:392,1
    - Dst: store_le
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:393,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:393,1
    - Dst: FrodoSerializedMatrix::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:393,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 397
    functionName: Botan::FrodoMatrix::serialize
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 0
    functionsReached:
    - size
    - FrodoSerializedMatrix::data
    - 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:400,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:400,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:401,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:401,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:402,1
    - Dst: d
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:402,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:404,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:411,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:411,1
    - Dst: d
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:411,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:411,1
    - Dst: d
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:412,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:412,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:413,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:413,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:416,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:417,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' constants'
    argTypes:
    - FrodoKEMConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 422
    functionName: Botan::FrodoMatrix::decode
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - n_bar
    - d
    - b
    - static_cast<uint64_t>
    - 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:427,1
    - Dst: d
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:427,1
    - Dst: StrongSpan<const FrodoPackedMatrix>::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:428,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:429,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:429,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:429,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:431,1
    - Dst: ceil_tobytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:431,1
    - Dst: make_elements_vector
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:433,1
    - Dst: min
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:454,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:454,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:455,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:458,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:458,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:458,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:461,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: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - ' constants'
    - ' dimensions'
    - packed_bytes
    argTypes:
    - FrodoKEMConstants
    - Dimensions
    - StrongSpan<const FrodoPackedMatrix>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 479
    functionName: Botan::FrodoMatrix::unpack
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 6
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - static_cast<uint16_t>
    - std::move
    - d
    - static_cast<size_t>
    - min
    - StrongSpan<const FrodoPackedMatrix>::size
    - auto::at
    - static_cast<uint8_t>
    - Botan::FrodoMatrix::FrodoMatrix
    - ceil_tobytes
    - std::get<0>
    - make_elements_vector
    - std::get<1>
    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:482,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:483,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:483,1
    - Dst: StrongSpan<const FrodoSerializedMatrix>::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:483,1
    - Dst: load_le<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:484,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:484,1
    - Dst: StrongSpan<const FrodoSerializedMatrix>::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:484,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:484,1
    - Dst: Botan::FrodoMatrix::FrodoMatrix
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:485,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' dimensions'
    - bytes
    argTypes:
    - Dimensions
    - StrongSpan<const FrodoSerializedMatrix>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 486
    functionName: Botan::FrodoMatrix::deserialize
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - auto::data
    - std::move
    - load_le<uint16_t>
    - Botan::FrodoMatrix::FrodoMatrix
    - StrongSpan<const FrodoSerializedMatrix>::size
    - StrongSpan<const FrodoSerializedMatrix>::data
    - auto::size
    - make_elements_vector
    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:490,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:491,1
    - Dst: d
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:491,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' constants'
    argTypes:
    - FrodoKEMConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 496
    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:46,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:46,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:46,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' dimensions'
    argTypes:
    - FrodoMatrix::Dimensions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: Botan::make_elements_vector
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 0
    functionsReached:
    - std::get<0>
    - secure_vector<uint16_t>
    - std::get<1>
    - static_cast<size_t>
    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:52,1
    - Dst: Botan::create_aes_row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:53,1
    - Dst: Botan::mode
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:58,1
    - Dst: Botan::create_shake_row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:59,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' constants'
    - seed_a
    argTypes:
    - FrodoKEMConstants
    - StrongSpan<const FrodoSeedA>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 66
    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:46,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:46,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:46,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' dimensions'
    argTypes:
    - FrodoMatrix::Dimensions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: Botan::make_elements_vector
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 0
    functionsReached:
    - std::get<0>
    - secure_vector<uint16_t>
    - std::get<1>
    - static_cast<size_t>
    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:52,1
    - Dst: Botan::create_aes_row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:53,1
    - Dst: Botan::mode
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:58,1
    - Dst: Botan::create_shake_row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:59,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' constants'
    - seed_a
    argTypes:
    - FrodoKEMConstants
    - StrongSpan<const FrodoSeedA>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 66
    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:73,1
    - Dst: StrongSpan<const FrodoSampleR>::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:73,1
    - Dst: StrongSpan<const FrodoSampleR>::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:74,1
    - Dst: make_elements_vector
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:76,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:77,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:77,1
    - Dst: load_le<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:79,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:79,1
    - Dst: StrongSpan<const FrodoSampleR>::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:79,1
    - Dst: Botan::CT::value_barrier
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:82,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:82,1
    - Dst: Botan::CT::Mask::expand_bit
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:83,1
    - Dst: cdf_table_len
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:88,1
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:90,1
    - Dst: cdf_table_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:90,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:93,1
    - Dst: auto::select
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:95,1
    - Dst: Botan::FrodoMatrix::FrodoMatrix
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:98,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - ' constants'
    - ' dimensions'
    - r
    argTypes:
    - FrodoKEMConstants
    - Dimensions
    - StrongSpan<const FrodoSampleR>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 99
    functionName: Botan::FrodoMatrix::sample
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - auto::data
    - static_cast<uint16_t>
    - cdf_table_at
    - auto::select
    - Botan::bigint_ct_is_lt
    - load_le<uint16_t>
    - Botan::CT::Mask::expand_bit
    - std::move
    - Botan::CT::value_barrier
    - cdf_table_len
    - Botan::FrodoMatrix::FrodoMatrix
    - StrongSpan<const FrodoSampleR>::size
    - StrongSpan<const FrodoSampleR>::data
    - auto::size
    - make_elements_vector
    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:104,1
    - Dst: output
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:106,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:106,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' constants'
    - ' shake'
    argTypes:
    - FrodoKEMConstants
    - Botan::XOF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 108
    functionName: Botan::FrodoMatrix::make_sample_generator
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 6
    functionsReached:
    - output
    - std::get<0>
    - Botan::FrodoMatrix::sample
    - std::get<1>
    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:111,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:111,1
    - Dst: make_elements_vector
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - dims
    argTypes:
    - Dimensions
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: Botan::FrodoMatrix::FrodoMatrix
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 11
    functionsReached:
    - std::get<0>
    - std::get<1>
    - make_elements_vector
    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:117,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:117,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:117,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:117,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:117,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:118,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:118,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:118,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:118,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:120,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:120,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:120,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:120,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:120,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:120,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:120,1
    - Dst: make_elements_vector
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:123,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:123,1
    - Dst: make_row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:124,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:130,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:133,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:133,1
    - Dst: std::vector::size
      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:136,1
    - Dst: BufferStuffer
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:137,1
    - Dst: row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:140,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:140,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:140,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:140,1
    - Dst: row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:141,1
    - Dst: auto::next
      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:141,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:141,1
    - Dst: row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:142,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:142,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:142,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:142,1
    - Dst: row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:143,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:143,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:143,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:143,1
    - Dst: load_le<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:146,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:146,1
    - Dst: std::span::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:146,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:146,1
    - Dst: n_bar
      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:150,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:155,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:155,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:158,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:158,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:158,1
    - Dst: n
      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:159,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:159,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:159,1
    - Dst: n
      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:160,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:160,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:160,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:160,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:161,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:161,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:161,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:161,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:163,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:163,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:163,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:163,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:163,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:164,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:164,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:164,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:164,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:164,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:165,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:165,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:165,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:165,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:165,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:166,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:166,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:166,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:166,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:166,1
    - Dst: Botan::FrodoMatrix::FrodoMatrix
      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::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:170,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: 171
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 171
    functionName: Botan::FrodoMatrix::mul_add_as_plus_e
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 2
    functionsReached:
    - static_cast<uint16_t>
    - make_elements_vector
    - std::get<1>
    - make_row_generator
    - load_le<uint16_t>
    - auto::at
    - std::vector::data
    - Botan::FrodoMatrix::elements_at
    - auto::next
    - Botan::FrodoMatrix::FrodoMatrix
    - std::get<0>
    - n_bar
    - n
    - reinterpret_cast<uint8_t*>
    - Botan::FrodoMatrix::dimensions
    - std::vector::at
    - std::array::at
    - BufferStuffer
    - std::span::data
    - std::vector::size
    - BOTAN_ASSERT
    - row_generator
    - std::move
    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:177,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:177,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:177,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:177,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:177,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:178,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:178,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:178,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:178,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:180,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:180,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:180,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:180,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:180,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:180,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:180,1
    - Dst: make_row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:184,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:190,1
    - Dst: reinterpret_cast<uint8_t*>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:192,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:192,1
    - Dst: std::vector::size
      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:196,1
    - Dst: BufferStuffer
      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: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: row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:201,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:201,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:201,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:201,1
    - Dst: row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:202,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:202,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:202,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:202,1
    - Dst: row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:203,1
    - Dst: auto::next
      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: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:203,1
    - Dst: row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:204,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:204,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:204,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:204,1
    - Dst: row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:205,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:205,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:205,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:205,1
    - Dst: row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:206,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:206,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:206,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:206,1
    - Dst: row_generator
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:207,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:207,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:207,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:207,1
    - Dst: load_le<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:210,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:210,1
    - Dst: std::span::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:210,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:210,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:212,1
    - Dst: Botan::FrodoMatrix::elements_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: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:218,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:219,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:219,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:221,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:221,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:221,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:223,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:223,1
    - Dst: Botan::FrodoMatrix::FrodoMatrix
      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::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:228,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: 229
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 229
    functionName: Botan::FrodoMatrix::mul_add_sa_plus_e
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 4
    functionsReached:
    - static_cast<uint16_t>
    - std::get<1>
    - make_row_generator
    - load_le<uint16_t>
    - auto::at
    - std::vector::data
    - Botan::FrodoMatrix::elements_at
    - auto::next
    - Botan::FrodoMatrix::FrodoMatrix
    - std::get<0>
    - n_bar
    - n
    - reinterpret_cast<uint8_t*>
    - Botan::FrodoMatrix::dimensions
    - std::vector::at
    - BufferStuffer
    - std::span::data
    - std::vector::size
    - BOTAN_ASSERT
    - row_generator
    - std::move
    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:235,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:235,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:235,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:235,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:235,1
    - Dst: std::get<1>
      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: std::get<0>
      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: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:238,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:238,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:238,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:238,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:238,1
    - Dst: Botan::FrodoMatrix::dimensions
      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:238,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:240,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:240,1
    - Dst: Botan::FrodoMatrix::dimensions
      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: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:240,1
    - Dst: Botan::FrodoMatrix::dimensions
      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: make_elements_vector
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:243,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:243,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:245,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:246,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:247,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:247,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:247,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:247,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:248,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:249,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:249,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:249,1
    - Dst: static_cast<uint32_t /* to avoid integral promotion */>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:250,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:250,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:250,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:251,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:251,1
    - Dst: Botan::FrodoMatrix::FrodoMatrix
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:256,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:256,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:256,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 4
    argNames:
    - ' constants'
    - ' b'
    - ' s'
    - ' e'
    argTypes:
    - FrodoKEMConstants
    - FrodoMatrix
    - FrodoMatrix
    - FrodoMatrix
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 257
    functionName: Botan::FrodoMatrix::mul_add_sb_plus_e
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 4
    functionsReached:
    - static_cast<uint16_t>
    - std::move
    - n_bar
    - n
    - auto::at
    - Botan::FrodoMatrix::dimensions
    - Botan::FrodoMatrix::FrodoMatrix
    - Botan::FrodoMatrix::elements_at
    - std::get<0>
    - make_elements_vector
    - static_cast<uint32_t /* to avoid integral promotion */>
    - BOTAN_ASSERT
    - std::get<1>
    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:260,1
    - Dst: std::make_tuple<size_t, size_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:262,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:262,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:262,1
    - Dst: make_elements_vector
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:263,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:265,1
    - Dst: StrongSpan<const FrodoPlaintext>::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:265,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:265,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:265,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:265,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:268,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:268,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:270,1
    - Dst: static_cast<uint64_t /* avoiding integral promotion */>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:271,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:271,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:274,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:274,1
    - Dst: d
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:274,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:274,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:275,1
    - Dst: Botan::FrodoMatrix::FrodoMatrix
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:279,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:279,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ' constants'
    - in
    argTypes:
    - FrodoKEMConstants
    - StrongSpan<const FrodoPlaintext>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 280
    functionName: Botan::FrodoMatrix::encode
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 4
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - static_cast<uint16_t>
    - static_cast<uint64_t /* avoiding integral promotion */>
    - n_bar
    - std::move
    - auto::at
    - d
    - Botan::FrodoMatrix::FrodoMatrix
    - StrongSpan<const FrodoPlaintext>::size
    - b
    - std::make_tuple<size_t, size_t>
    - make_elements_vector
    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:284,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:284,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:284,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:285,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:285,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:285,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:285,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:286,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:286,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:286,1
    - Dst: make_elements_vector
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:288,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:288,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:290,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:290,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:291,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:291,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:291,1
    - Dst: Botan::FrodoMatrix::FrodoMatrix
      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: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:294,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ' constants'
    - ' a'
    - ' b'
    argTypes:
    - FrodoKEMConstants
    - FrodoMatrix
    - FrodoMatrix
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 295
    functionName: Botan::FrodoMatrix::add
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 4
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::move
    - n_bar
    - auto::at
    - Botan::FrodoMatrix::dimensions
    - Botan::FrodoMatrix::FrodoMatrix
    - Botan::FrodoMatrix::elements_at
    - std::get<0>
    - make_elements_vector
    - std::get<1>
    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:299,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:299,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:299,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:300,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:300,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:300,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:300,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:301,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:301,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:301,1
    - Dst: make_elements_vector
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:303,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:303,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:305,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:305,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:306,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:306,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:306,1
    - Dst: Botan::FrodoMatrix::FrodoMatrix
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:309,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:309,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:309,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ' constants'
    - ' a'
    - ' b'
    argTypes:
    - FrodoKEMConstants
    - FrodoMatrix
    - FrodoMatrix
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 297
    functionDepth: 1
    functionLinenumber: 297
    functionLinenumberEnd: 310
    functionName: Botan::FrodoMatrix::sub
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::move
    - n_bar
    - auto::at
    - Botan::FrodoMatrix::dimensions
    - Botan::FrodoMatrix::FrodoMatrix
    - Botan::FrodoMatrix::elements_at
    - std::get<0>
    - make_elements_vector
    - std::get<1>
    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:313,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:313,1
    - Dst: Botan::FrodoMatrix::dimensions
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:313,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:315,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:315,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:315,1
    - Dst: reinterpret_cast<const uint8_t*>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:316,1
    - Dst: m_elements::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:316,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - FrodoMatrix
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 312
    functionDepth: 1
    functionLinenumber: 312
    functionLinenumberEnd: 318
    functionName: Botan::FrodoMatrix::constant_time_compare
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::CT::is_equal
    - data
    - m_elements::data
    - Botan::FrodoMatrix::dimensions
    - size
    - reinterpret_cast<const uint8_t*>
    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:321,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:321,1
    - Dst: make_elements_vector
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:322,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:324,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:325,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:326,1
    - Dst: n_bar
      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:328,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:330,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:330,1
    - Dst: Botan::FrodoMatrix::elements_at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:333,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:333,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:335,1
    - Dst: Botan::FrodoMatrix::FrodoMatrix
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:340,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:340,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - ' constants'
    - ' b'
    - ' s'
    argTypes:
    - FrodoKEMConstants
    - FrodoMatrix
    - FrodoMatrix
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 341
    functionName: Botan::FrodoMatrix::mul_bs
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 2
    functionsReached:
    - static_cast<uint16_t>
    - std::move
    - n_bar
    - n
    - auto::at
    - Botan::FrodoMatrix::FrodoMatrix
    - Botan::FrodoMatrix::elements_at
    - make_elements_vector
    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:344,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:345,1
    - Dst: StrongSpan<FrodoPackedMatrix>::size
      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:352,1
    - Dst: Botan::FrodoMatrix::element_count
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:352,1
    - Dst: min
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:366,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:366,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:367,1
    - Dst: static_cast<uint8_t>
      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: Botan::FrodoMatrix::element_count
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:374,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:375,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:376,1
    - Dst: d
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:376,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 2
    argNames:
    - ' constants'
    - out
    argTypes:
    - FrodoKEMConstants
    - StrongSpan<FrodoPackedMatrix>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 343
    functionDepth: 2
    functionLinenumber: 343
    functionLinenumberEnd: 387
    functionName: Botan::FrodoMatrix::pack
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - static_cast<uint16_t>
    - StrongSpan<FrodoPackedMatrix>::size
    - d
    - min
    - static_cast<uint8_t>
    - Botan::FrodoMatrix::packed_size
    - at
    - Botan::FrodoMatrix::element_count
    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:390,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:392,1
    - Dst: store_le
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:393,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:393,1
    - Dst: FrodoSerializedMatrix::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:393,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 397
    functionName: Botan::FrodoMatrix::serialize
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 0
    functionsReached:
    - size
    - FrodoSerializedMatrix::data
    - 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:400,1
    - Dst: n_bar
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:400,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:401,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:401,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:402,1
    - Dst: d
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:402,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:404,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:411,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:411,1
    - Dst: d
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:411,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:411,1
    - Dst: d
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:412,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:412,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:413,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:413,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:416,1
    - Dst: b
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:417,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' constants'
    argTypes:
    - FrodoKEMConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 422
    functionName: Botan::FrodoMatrix::decode
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - n_bar
    - d
    - b
    - static_cast<uint64_t>
    - 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:427,1
    - Dst: d
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:427,1
    - Dst: StrongSpan<const FrodoPackedMatrix>::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:428,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:429,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:429,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:429,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:431,1
    - Dst: ceil_tobytes
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:431,1
    - Dst: make_elements_vector
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:433,1
    - Dst: min
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:454,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:454,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:455,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:458,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:458,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:458,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:461,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: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - ' constants'
    - ' dimensions'
    - packed_bytes
    argTypes:
    - FrodoKEMConstants
    - Dimensions
    - StrongSpan<const FrodoPackedMatrix>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 479
    functionName: Botan::FrodoMatrix::unpack
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 6
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - static_cast<uint16_t>
    - std::move
    - d
    - static_cast<size_t>
    - min
    - StrongSpan<const FrodoPackedMatrix>::size
    - auto::at
    - static_cast<uint8_t>
    - Botan::FrodoMatrix::FrodoMatrix
    - ceil_tobytes
    - std::get<0>
    - make_elements_vector
    - std::get<1>
    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:482,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:483,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:483,1
    - Dst: StrongSpan<const FrodoSerializedMatrix>::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:483,1
    - Dst: load_le<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:484,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:484,1
    - Dst: StrongSpan<const FrodoSerializedMatrix>::data
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:484,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:484,1
    - Dst: Botan::FrodoMatrix::FrodoMatrix
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:485,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' dimensions'
    - bytes
    argTypes:
    - Dimensions
    - StrongSpan<const FrodoSerializedMatrix>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 486
    functionName: Botan::FrodoMatrix::deserialize
    functionSourceFile: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - auto::data
    - std::move
    - load_le<uint16_t>
    - Botan::FrodoMatrix::FrodoMatrix
    - StrongSpan<const FrodoSerializedMatrix>::size
    - StrongSpan<const FrodoSerializedMatrix>::data
    - auto::size
    - make_elements_vector
    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:490,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:491,1
    - Dst: d
      Src: /src/botan/src/lib/pubkey/frodokem/frodokem_common/frodo_matrix.cpp:491,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' constants'
    argTypes:
    - FrodoKEMConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 496
    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_fwd_fn
    - m_inv_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:
    - multiply
    - Botan::Blinder::blinding_nonce
    - m_fwd_fn
    - m_inv_fn
    - square
    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_fwd_fn
    - m_inv_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:
    - multiply
    - Botan::Blinder::blinding_nonce
    - m_fwd_fn
    - m_inv_fn
    - square
    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:26,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 49
    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: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    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:58,1
    - Dst: RFC6979_Nonce_Generator::nonce_for
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.h:59,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: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    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:26,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 49
    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: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    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:58,1
    - Dst: RFC6979_Nonce_Generator::nonce_for
      Src: /src/botan/src/lib/pubkey/rfc6979/rfc6979.h:59,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: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    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:
    - std::make_unique<HMAC_DRBG>
    - serialize_to
    - Botan::MessageAuthenticationCode::create_or_throw
    - first
    - 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_ASSERT_NOMSG
    - last
    - randomize
    - BOTAN_DEBUG_ASSERT
    - initialize_with
    - serialize_to
    - BigInt::_assign_from_bytes
    - bits
    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:
    - std::make_unique<HMAC_DRBG>
    - serialize_to
    - Botan::MessageAuthenticationCode::create_or_throw
    - first
    - 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:
    - BOTAN_ASSERT_NOMSG
    - last
    - randomize
    - initialize_with
    - serialize_to
    - Botan::EC_Scalar::deserialize
    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:
    - std::make_unique<HMAC_DRBG>
    - serialize_to
    - Botan::MessageAuthenticationCode::create_or_throw
    - first
    - 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_ASSERT_NOMSG
    - last
    - randomize
    - BOTAN_DEBUG_ASSERT
    - initialize_with
    - serialize_to
    - BigInt::_assign_from_bytes
    - bits
    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:
    - std::make_unique<HMAC_DRBG>
    - serialize_to
    - Botan::MessageAuthenticationCode::create_or_throw
    - first
    - 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:
    - BOTAN_ASSERT_NOMSG
    - last
    - randomize
    - initialize_with
    - serialize_to
    - Botan::EC_Scalar::deserialize
    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: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::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: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    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: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::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: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    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:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    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: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::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: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    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: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::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: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    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:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    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:69,1
    - Dst: Botan::PK_Ops::Key_Agreement_with_KDF
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:70,1
    - Dst: m_key
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:70,1
    - Dst: m_rng
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:70,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:72,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:75,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:76,1
    - Dst: auto::mul
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:77,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:77,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 60
    functionDepth: 3
    functionLinenumber: 60
    functionLinenumberEnd: 86
    functionName: Botan::PK_Ops::Key_Agreement_with_KDF
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 1
    functionsReached:
    - domain
    - Decoding_Error
    - _private_key
    - Botan::PK_Ops::Key_Agreement_with_KDF
    - m_key
    - ECIES_ECDH_KA_Operation
    - Botan::EC_AffinePoint::deserialize
    - auto::mul
    - m_rng
    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:72,1
    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::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:75,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:76,1
    - Dst: auto::mul
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:77,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:77,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - w
    - w_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 81
    functionName: Botan::raw_agree
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 0
    functionsReached:
    - _private_key
    - Botan::domain
    - Botan::EC_AffinePoint::deserialize
    - auto::mul
    - Botan::Decoding_Error
    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:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 92
    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:109,1
    - Dst: Botan::cofactor_mode
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:112,1
    - Dst: Botan::old_cofactor_mode
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:112,1
    - Dst: Botan::check_mode
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:112,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:117,1
    - Dst: Botan::cofactor_mode
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:120,1
    - Dst: PK_Key_Agreement
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:122,1
    - Dst: ECIES_PrivateKey
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:122,1
    - Dst: PK_Key_Agreement
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:125,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: 126
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 126
    functionName: Botan::create_key_agreement
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::check_mode
    - ECIES_PrivateKey
    - dynamic_cast<const ECDH_PrivateKey*>
    - Botan::Invalid_Argument
    - Botan::cofactor_mode
    - PK_Key_Agreement
    - Botan::old_cofactor_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: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::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: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    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: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::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: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    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:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    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: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::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: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    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: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::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: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    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:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    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:69,1
    - Dst: Botan::PK_Ops::Key_Agreement_with_KDF
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:70,1
    - Dst: m_key
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:70,1
    - Dst: m_rng
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:70,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:72,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:75,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:76,1
    - Dst: auto::mul
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:77,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:77,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 60
    functionDepth: 3
    functionLinenumber: 60
    functionLinenumberEnd: 86
    functionName: Botan::PK_Ops::Key_Agreement_with_KDF
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 2
    functionsReached:
    - domain
    - Decoding_Error
    - _private_key
    - Botan::PK_Ops::Key_Agreement_with_KDF
    - m_key
    - ECIES_ECDH_KA_Operation
    - Botan::EC_AffinePoint::deserialize
    - auto::mul
    - m_rng
    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:72,1
    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::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:75,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:76,1
    - Dst: auto::mul
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:77,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:77,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - w
    - w_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 81
    functionName: Botan::raw_agree
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 0
    functionsReached:
    - _private_key
    - Botan::domain
    - Botan::EC_AffinePoint::deserialize
    - auto::mul
    - Botan::Decoding_Error
    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:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 92
    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:109,1
    - Dst: Botan::cofactor_mode
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:112,1
    - Dst: Botan::old_cofactor_mode
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:112,1
    - Dst: Botan::check_mode
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:112,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:117,1
    - Dst: Botan::cofactor_mode
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:120,1
    - Dst: PK_Key_Agreement
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:122,1
    - Dst: ECIES_PrivateKey
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:122,1
    - Dst: PK_Key_Agreement
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:125,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: 126
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 126
    functionName: Botan::create_key_agreement
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::check_mode
    - ECIES_PrivateKey
    - dynamic_cast<const ECDH_PrivateKey*>
    - Botan::Invalid_Argument
    - Botan::cofactor_mode
    - PK_Key_Agreement
    - Botan::old_cofactor_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:133,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: 133
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 133
    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:141,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:142,1
    - Dst: Botan::PBKDF::create_or_throw
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:145,1
    - Dst: kdf
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:145,1
    - Dst: old_cofactor_mode
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:151,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:151,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:152,1
    - Dst: single_hash_mode
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:158,1
    - Dst: EC_Point::encode
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:163,1
    - Dst: point_format
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:163,1
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:167,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:167,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:167,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:167,1
    - Dst: secure_vector::insert
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:168,1
    - Dst: secure_vector::end
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:168,1
    - Dst: SymmetricKey::begin
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:168,1
    - Dst: SymmetricKey::end
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:168,1
    - Dst: SymmetricKey
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:171,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:171,1
    - Dst: secret_length
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:171,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: 172
      start: 139
    functionDepth: 3
    functionLinenumber: 139
    functionLinenumberEnd: 172
    functionName: ECIES_KA_Operation::derive_secret
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 4
    functionsReached:
    - EC_Point::encode
    - secure_vector::insert
    - std::vector::data
    - SymmetricKey
    - group
    - derive_key
    - secret_length
    - Invalid_Argument
    - kdf
    - std::vector::size
    - old_cofactor_mode
    - Botan::PBKDF::create_or_throw
    - auto::derive_key
    - is_zero
    - SymmetricKey::end
    - secure_vector::end
    - point_format
    - SymmetricKey::begin
    - single_hash_mode
    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:180,1
    - Dst: is_identity
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:180,1
    - Dst: Botan::PBKDF::create_or_throw
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:182,1
    - Dst: kdf
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:182,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:186,1
    - Dst: old_cofactor_mode
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:190,1
    - Dst: has_cofactor
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:190,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:192,1
    - Dst: get_cofactor
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:192,1
    - Dst: auto::mul
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:193,1
    - Dst: single_hash_mode
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:199,1
    - Dst: secure_vector::assign
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:200,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:200,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:200,1
    - Dst: auto::serialize
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:204,1
    - Dst: point_format
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:204,1
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:208,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:208,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:208,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:208,1
    - Dst: secure_vector::insert
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:209,1
    - Dst: secure_vector::end
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:209,1
    - Dst: SymmetricKey::begin
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:209,1
    - Dst: SymmetricKey::end
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:209,1
    - Dst: SymmetricKey
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:212,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:212,1
    - Dst: secret_length
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:212,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: 213
      start: 178
    functionDepth: 3
    functionLinenumber: 178
    functionLinenumberEnd: 213
    functionName: ECIES_KA_Operation::derive_secret
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 4
    functionsReached:
    - secure_vector::assign
    - BOTAN_ARG_CHECK
    - has_cofactor
    - std::span<const uint8_t>::end
    - secure_vector::insert
    - std::vector::data
    - Botan::EC_Scalar::from_bigint
    - SymmetricKey
    - group
    - is_identity
    - derive_key
    - secret_length
    - std::span<const uint8_t>::begin
    - kdf
    - auto::mul
    - std::vector::size
    - old_cofactor_mode
    - Botan::PBKDF::create_or_throw
    - auto::serialize
    - auto::derive_key
    - SymmetricKey::end
    - secure_vector::end
    - point_format
    - get_cofactor
    - SymmetricKey::begin
    - single_hash_mode
    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: 224
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 224
    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: 235
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 235
    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:251,1
    - Dst: old_cofactor_mode
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:251,1
    - Dst: check_mode
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:251,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:252,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: 254
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 254
    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: 268
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 268
    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:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 272
    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:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - direction
    argTypes:
    - Cipher_Dir
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 274
    functionDepth: 2
    functionLinenumber: 274
    functionLinenumberEnd: 276
    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:286,1
    - Dst: point_format
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:287,1
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:291,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:291,1
    - Dst: point_format
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:291,1
    - Dst: create_mac
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:293,1
    - Dst: create_cipher
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:294,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: 295
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 295
    functionName: ECIES_Encryptor::ECIES_Encryptor
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 0
    functionsReached:
    - create_cipher
    - EC_AffinePoint
    - public_value
    - point_format
    - group
    - create_mac
    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:301,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' rng'
    - ' ecies_params'
    argTypes:
    - RandomNumberGenerator
    - ECIES_System_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 301
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 301
    functionName: ECIES_Encryptor::ECIES_Encryptor
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 0
    functionsReached:
    - group
    - ECDH_PrivateKey
    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: 309
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 309
    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:312,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:312,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptext_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 313
    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:321,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:322,1
    - Dst: derive_secret
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:325,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:325,1
    - Dst: set_key
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:329,1
    - Dst: SymmetricKey
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:329,1
    - Dst: SymmetricKey::begin
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:329,1
    - Dst: dem_keylen
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:329,1
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:330,1
    - Dst: valid_nonce_length
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:330,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:330,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:331,1
    - Dst: name
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:331,1
    - Dst: start
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:334,1
    - Dst: bits_of
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:334,1
    - Dst: finish
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:337,1
    - Dst: set_key
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:340,1
    - Dst: SymmetricKey::begin
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:340,1
    - Dst: dem_keylen
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:340,1
    - Dst: mac_keylen
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:340,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:341,1
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:342,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:343,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:345,1
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:348,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - data
    - length
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 349
    functionName: ECIES_Encryptor::enc
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 0
    functionsReached:
    - concat
    - set_key
    - final
    - Invalid_State
    - name
    - derive_secret
    - bits_of
    - SymmetricKey
    - value
    - finish
    - Invalid_Argument
    - start
    - valid_nonce_length
    - update
    - dem_keylen
    - size
    - mac_keylen
    - empty
    - has_value
    - 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:368,1
    - Dst: create_cipher
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:369,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: 370
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 370
    functionName: ECIES_Decryptor::ECIES_Decryptor
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 0
    functionsReached:
    - create_cipher
    - create_mac
    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:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' group'
    - format
    argTypes:
    - EC_Group
    - EC_Point_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 381
    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:375,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' group'
    - format
    argTypes:
    - EC_Group
    - EC_Point_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 381
    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:386,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:386,1
    - Dst: point_format
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:386,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:387,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:393,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctext_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 385
    functionDepth: 1
    functionLinenumber: 385
    functionLinenumberEnd: 394
    functionName: ECIES_Decryptor::plaintext_length
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 0
    functionsReached:
    - point_format
    - group
    - output_length
    - 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:400,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:400,1
    - Dst: point_format
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:400,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:402,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:403,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:408,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:409,1
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:412,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:412,1
    - Dst: derive_secret
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:419,1
    - Dst: set_key
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:422,1
    - Dst: SymmetricKey::begin
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:422,1
    - Dst: dem_keylen
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:422,1
    - Dst: mac_keylen
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:422,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:423,1
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:424,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:425,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:427,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:428,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:428,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:428,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:428,1
    - Dst: set_key
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:433,1
    - Dst: SymmetricKey
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:433,1
    - Dst: SymmetricKey::begin
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:433,1
    - Dst: dem_keylen
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:433,1
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:434,1
    - Dst: valid_nonce_length
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:434,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:434,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:435,1
    - Dst: name
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:435,1
    - Dst: start
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:437,1
    - Dst: bits_of
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:437,1
    - Dst: std::vector::begin
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:442,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:442,1
    - Dst: finish
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:443,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/ecies/ecies.cpp:449,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: 450
      start: 399
    functionDepth: 1
    functionLinenumber: 399
    functionLinenumberEnd: 450
    functionName: ECIES_Decryptor::do_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/ecies/ecies.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::is_equal
    - set_key
    - std::vector::end
    - output_length
    - final
    - std::vector::begin
    - name
    - secure_vector<uint8_t>
    - std::vector::data
    - compute_point_size
    - derive_secret
    - bits_of
    - SymmetricKey
    - group
    - Decoding_Error
    - EC_AffinePoint
    - finish
    - Invalid_Argument
    - std::vector::size
    - start
    - update
    - valid_nonce_length
    - dem_keylen
    - size
    - mac_keylen
    - empty
    - secure_vector::data
    - point_format
    - 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<ECIES_Flags>
    - static_cast<uint32_t>
    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<ECIES_Flags>
    - static_cast<uint32_t>
    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: 10
    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<ECIES_Flags>
    - static_cast<uint32_t>
    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<ECIES_Flags>
    - static_cast<uint32_t>
    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: 10
    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:
    - BOTAN_DEPRECATED
    - ECIES_System_Params
    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:
    - assign
    - EC_AffinePoint
    - ECIES_System_Params::ECIES_System_Params
    - ECIES_KA_Operation::ECIES_KA_Operation
    - end
    - begin
    - group
    - ECIES_Encryptor
    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:
    - group
    - EC_AffinePoint
    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::begin
    - std::string_view::end
    - assign
    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_System_Params::ECIES_System_Params
    - ECIES_KA_Operation::ECIES_KA_Operation
    - std::vector<uint8_t>
    - end
    - begin
    - ECIES_Decryptor
    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::begin
    - std::string_view::end
    - std::vector<uint8_t>
    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: 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:
    - H
    - G
    - indcpa_encrypt
    - Botan::CT::poison
    - Botan::CT::unpoison_all
    - precomputed_matrix_At
    - random_vec
    - KDF
    - H_public_key_bits_raw
    - mode
    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: 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: Botan::CT::is_equal
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:58,1
    - Dst: StrongSpan<const KyberCompressedCiphertext>::data
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:58,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:58,1
    - Dst: StrongSpan<const KyberCompressedCiphertext>::size
      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:
    - BOTAN_ASSERT_NOMSG
    - Botan::CT::is_equal
    - Botan::CT::scoped_poison
    - KyberSharedSecret::data
    - StrongSpan<const KyberCompressedCiphertext>::data
    - Botan::CT::unpoison
    - auto::size
    - data
    - StrongSpan<const KyberCompressedCiphertext>::size
    - mode
    - auto::data
    - H
    - indcpa_decrypt
    - G
    - z
    - Botan::CT::conditional_copy_mem
    - KyberSharedSecret::size
    - precomputed_matrix_At
    - H_public_key_bits_raw
    - KDF
    - indcpa_encrypt
    - 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: 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:
    - H
    - G
    - indcpa_encrypt
    - Botan::CT::poison
    - Botan::CT::unpoison_all
    - precomputed_matrix_At
    - random_vec
    - KDF
    - H_public_key_bits_raw
    - mode
    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: 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: Botan::CT::is_equal
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:58,1
    - Dst: StrongSpan<const KyberCompressedCiphertext>::data
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:58,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.cpp:58,1
    - Dst: StrongSpan<const KyberCompressedCiphertext>::size
      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:
    - BOTAN_ASSERT_NOMSG
    - Botan::CT::is_equal
    - Botan::CT::scoped_poison
    - KyberSharedSecret::data
    - StrongSpan<const KyberCompressedCiphertext>::data
    - Botan::CT::unpoison
    - auto::size
    - data
    - StrongSpan<const KyberCompressedCiphertext>::size
    - mode
    - auto::data
    - H
    - indcpa_decrypt
    - G
    - z
    - Botan::CT::conditional_copy_mem
    - KyberSharedSecret::size
    - precomputed_matrix_At
    - H_public_key_bits_raw
    - KDF
    - indcpa_encrypt
    - 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: Botan::mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.h:30,1
    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: '& mode() const override'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.h
    functionUses: 0
    functionsReached:
    - Botan::mode
    linkageType: ''
    returnType: KyberConstants
    signature: KyberConstants & mode() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.h:42,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.h:43,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: 43
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 43
    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: Botan::mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.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: '& mode() const override'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.h
    functionUses: 0
    functionsReached:
    - Botan::mode
    linkageType: ''
    returnType: KyberConstants
    signature: KyberConstants & mode() const override
  - 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: mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.h:30,1
    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: '& mode() const override'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.h
    functionUses: 0
    functionsReached:
    - mode
    linkageType: ''
    returnType: KyberConstants
    signature: KyberConstants & mode() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.h:42,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.h:43,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: 43
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 43
    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: mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.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: '& mode() const override'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_round3_impl.h
    functionUses: 0
    functionsReached:
    - mode
    linkageType: ''
    returnType: KyberConstants
    signature: KyberConstants & mode() 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:26,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:27,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:28,1
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:29,1
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 3
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: Botan::Kyber_Modern_Symmetric_Primitives::Kyber_Modern_Symmetric_Primitives
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    - Botan::XOF::create_or_throw
    linkageType: ''
    returnType: void
    signature: void Kyber_Modern_Symmetric_Primitives()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    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: []
    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: '& get_G() const override'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HashFunction
    signature: HashFunction & get_G() 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: '& get_H() const override'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HashFunction
    signature: HashFunction & get_H() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: '& get_J() const override'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h
    functionUses: 0
    functionsReached:
    - Invalid_State
    linkageType: ''
    returnType: HashFunction
    signature: HashFunction & get_J() const override
  - 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: '& get_KDF() const override'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HashFunction
    signature: HashFunction & get_KDF() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      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
    - Dst: update
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:49,1
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - seed
    - nonce
    argTypes:
    - std::span<const uint8_t>
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: '& get_PRF(std::span<const uint8_t> seed, const uint8_t nonce) const
      override'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h
    functionUses: 0
    functionsReached:
    - update
    - clear
    - store_be
    linkageType: ''
    returnType: Botan::XOF
    signature: Botan::XOF & get_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:54,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:55,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:56,1
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:56,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:56,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:56,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - seed
    - matrix_position
    argTypes:
    - std::span<const uint8_t>
    - std::tuple<uint8_t, uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: '& get_XOF(std::span<const uint8_t> seed, std::tuple<uint8_t, uint8_t>
      matrix_position) const override'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h
    functionUses: 0
    functionsReached:
    - update
    - clear
    - store_be
    - std::get<0>
    - make_uint16
    - std::get<1>
    linkageType: ''
    returnType: Botan::XOF
    signature: Botan::XOF & get_XOF(std::span<const uint8_t> seed, std::tuple<uint8_t,
      uint8_t> matrix_position) 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:26,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:27,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:28,1
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:29,1
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 3
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: Botan::Kyber_Modern_Symmetric_Primitives::Kyber_Modern_Symmetric_Primitives
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    - Botan::XOF::create_or_throw
    linkageType: ''
    returnType: void
    signature: void Kyber_Modern_Symmetric_Primitives()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    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: []
    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: '& get_G() const override'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HashFunction
    signature: HashFunction & get_G() 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: '& get_H() const override'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HashFunction
    signature: HashFunction & get_H() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: '& get_J() const override'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h
    functionUses: 0
    functionsReached:
    - Invalid_State
    linkageType: ''
    returnType: HashFunction
    signature: HashFunction & get_J() const override
  - 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: '& get_KDF() const override'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HashFunction
    signature: HashFunction & get_KDF() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      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
    - Dst: update
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:49,1
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - seed
    - nonce
    argTypes:
    - std::span<const uint8_t>
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: '& get_PRF(std::span<const uint8_t> seed, const uint8_t nonce) const
      override'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h
    functionUses: 0
    functionsReached:
    - update
    - clear
    - store_be
    linkageType: ''
    returnType: Botan::XOF
    signature: Botan::XOF & get_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:54,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:55,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:56,1
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:56,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:56,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:56,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - seed
    - matrix_position
    argTypes:
    - std::span<const uint8_t>
    - std::tuple<uint8_t, uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: '& get_XOF(std::span<const uint8_t> seed, std::tuple<uint8_t, uint8_t>
      matrix_position) const override'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber/kyber_modern.h
    functionUses: 0
    functionsReached:
    - update
    - clear
    - store_be
    - std::get<0>
    - make_uint16
    - std::get<1>
    linkageType: ''
    returnType: Botan::XOF
    signature: Botan::XOF & get_XOF(std::span<const uint8_t> seed, std::tuple<uint8_t,
      uint8_t> matrix_position) 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:26,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h:27,1
    - Dst: std::make_unique<AES_256_CTR_XOF>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 3
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: Botan::Kyber_90s_Symmetric_Primitives::Kyber_90s_Symmetric_Primitives
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    - std::make_unique<AES_256_CTR_XOF>
    linkageType: ''
    returnType: void
    signature: void Kyber_90s_Symmetric_Primitives()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    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: []
    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: '& get_G() const override'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HashFunction
    signature: HashFunction & get_G() 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: '& get_H() const override'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HashFunction
    signature: HashFunction & get_H() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: '& get_J() const override'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h
    functionUses: 0
    functionsReached:
    - Invalid_State
    linkageType: ''
    returnType: HashFunction
    signature: HashFunction & get_J() 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: '& get_KDF() const override'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HashFunction
    signature: HashFunction & get_KDF() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h:45,1
    - Dst: start
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - seed
    - nonce
    argTypes:
    - std::span<const uint8_t>
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: '& get_PRF(std::span<const uint8_t> seed, const uint8_t nonce) const
      override'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h
    functionUses: 0
    functionsReached:
    - start
    - clear
    linkageType: ''
    returnType: Botan::XOF
    signature: Botan::XOF & get_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:52,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h:53,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h:53,1
    - Dst: start
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    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: '& get_XOF(std::span<const uint8_t> seed, std::tuple<uint8_t, uint8_t>
      mpos) const override'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h
    functionUses: 0
    functionsReached:
    - start
    - clear
    - std::get<0>
    - std::get<1>
    linkageType: ''
    returnType: Botan::XOF
    signature: Botan::XOF & get_XOF(std::span<const uint8_t> seed, std::tuple<uint8_t,
      uint8_t> mpos) 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:26,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h:27,1
    - Dst: std::make_unique<AES_256_CTR_XOF>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 3
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: Botan::Kyber_90s_Symmetric_Primitives::Kyber_90s_Symmetric_Primitives
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    - std::make_unique<AES_256_CTR_XOF>
    linkageType: ''
    returnType: void
    signature: void Kyber_90s_Symmetric_Primitives()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    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: []
    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: '& get_G() const override'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HashFunction
    signature: HashFunction & get_G() 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: '& get_H() const override'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HashFunction
    signature: HashFunction & get_H() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: '& get_J() const override'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h
    functionUses: 0
    functionsReached:
    - Invalid_State
    linkageType: ''
    returnType: HashFunction
    signature: HashFunction & get_J() 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: '& get_KDF() const override'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HashFunction
    signature: HashFunction & get_KDF() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h:45,1
    - Dst: start
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - seed
    - nonce
    argTypes:
    - std::span<const uint8_t>
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 49
    functionName: '& get_PRF(std::span<const uint8_t> seed, const uint8_t nonce) const
      override'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h
    functionUses: 0
    functionsReached:
    - start
    - clear
    linkageType: ''
    returnType: Botan::XOF
    signature: Botan::XOF & get_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:52,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h:53,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h:53,1
    - Dst: start
      Src: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    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: '& get_XOF(std::span<const uint8_t> seed, std::tuple<uint8_t, uint8_t>
      mpos) const override'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_round3/kyber_90s/kyber_90s.h
    functionUses: 0
    functionsReached:
    - start
    - clear
    - std::get<0>
    - std::get<1>
    linkageType: ''
    returnType: Botan::XOF
    signature: Botan::XOF & get_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:27,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: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    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: Botan::mode
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.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: '& mode() const override'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h
    functionUses: 0
    functionsReached:
    - Botan::mode
    linkageType: ''
    returnType: KyberConstants
    signature: KyberConstants & mode() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:46,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:47,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: 47
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 47
    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: Botan::mode
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.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: '& mode() const override'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h
    functionUses: 0
    functionsReached:
    - Botan::mode
    linkageType: ''
    returnType: KyberConstants
    signature: 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:63,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:64,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:65,1
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:66,1
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 3
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: Botan::ML_KEM_Symmetric_Primitives::ML_KEM_Symmetric_Primitives
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    - Botan::XOF::create_or_throw
    linkageType: ''
    returnType: void
    signature: void ML_KEM_Symmetric_Primitives()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: k
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 76
    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: []
    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: '& get_G() const override'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HashFunction
    signature: HashFunction & get_G() 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: '& get_H() const override'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HashFunction
    signature: HashFunction & get_H() 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: '& get_J() const override'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HashFunction
    signature: HashFunction & get_J() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: '& get_KDF() const override'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h
    functionUses: 0
    functionsReached:
    - Invalid_State
    linkageType: ''
    returnType: HashFunction
    signature: HashFunction & get_KDF() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      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: update
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:89,1
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - seed
    - nonce
    argTypes:
    - std::span<const uint8_t>
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: '& get_PRF(std::span<const uint8_t> seed, const uint8_t nonce) const
      override'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h
    functionUses: 0
    functionsReached:
    - update
    - clear
    - store_be
    linkageType: ''
    returnType: Botan::XOF
    signature: Botan::XOF & get_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:94,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:95,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:96,1
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:96,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:96,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:96,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - seed
    - matrix_position
    argTypes:
    - std::span<const uint8_t>
    - std::tuple<uint8_t, uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: '& get_XOF(std::span<const uint8_t> seed, std::tuple<uint8_t, uint8_t>
      matrix_position) const override'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h
    functionUses: 0
    functionsReached:
    - update
    - clear
    - store_be
    - std::get<0>
    - make_uint16
    - std::get<1>
    linkageType: ''
    returnType: Botan::XOF
    signature: Botan::XOF & get_XOF(std::span<const uint8_t> seed, 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:27,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: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    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: mode
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.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: '& mode() const override'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h
    functionUses: 0
    functionsReached:
    - mode
    linkageType: ''
    returnType: KyberConstants
    signature: KyberConstants & mode() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:46,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:47,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: 47
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 47
    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: mode
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.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: '& mode() const override'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h
    functionUses: 0
    functionsReached:
    - mode
    linkageType: ''
    returnType: KyberConstants
    signature: 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:63,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:64,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:65,1
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:66,1
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 3
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: Botan::ML_KEM_Symmetric_Primitives::ML_KEM_Symmetric_Primitives
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    - Botan::XOF::create_or_throw
    linkageType: ''
    returnType: void
    signature: void ML_KEM_Symmetric_Primitives()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: k
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 76
    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: []
    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: '& get_G() const override'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HashFunction
    signature: HashFunction & get_G() 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: '& get_H() const override'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HashFunction
    signature: HashFunction & get_H() 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: '& get_J() const override'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HashFunction
    signature: HashFunction & get_J() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: '& get_KDF() const override'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h
    functionUses: 0
    functionsReached:
    - Invalid_State
    linkageType: ''
    returnType: HashFunction
    signature: HashFunction & get_KDF() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      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: update
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:89,1
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - seed
    - nonce
    argTypes:
    - std::span<const uint8_t>
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: '& get_PRF(std::span<const uint8_t> seed, const uint8_t nonce) const
      override'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h
    functionUses: 0
    functionsReached:
    - update
    - clear
    - store_be
    linkageType: ''
    returnType: Botan::XOF
    signature: Botan::XOF & get_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:94,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:95,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:96,1
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:96,1
    - Dst: make_uint16
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:96,1
    - Dst: std::get<0>
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:96,1
    - Dst: std::get<1>
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - seed
    - matrix_position
    argTypes:
    - std::span<const uint8_t>
    - std::tuple<uint8_t, uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: '& get_XOF(std::span<const uint8_t> seed, std::tuple<uint8_t, uint8_t>
      matrix_position) const override'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.h
    functionUses: 0
    functionsReached:
    - update
    - clear
    - store_be
    - std::get<0>
    - make_uint16
    - std::get<1>
    linkageType: ''
    returnType: Botan::XOF
    signature: Botan::XOF & get_XOF(std::span<const uint8_t> seed, 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:28,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:30,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:31,1
    - Dst: G
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:33,1
    - Dst: H_public_key_bits_raw
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:33,1
    - Dst: indcpa_encrypt
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:34,1
    - Dst: precomputed_matrix_At
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:34,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:37,1
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:38,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: 39
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 39
    functionName: Botan::ML_KEM_Encryptor::encapsulate
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp
    functionUses: 0
    functionsReached:
    - G
    - indcpa_encrypt
    - copy_mem
    - Botan::CT::scoped_poison
    - Botan::CT::unpoison_all
    - precomputed_matrix_At
    - random_vec
    - H_public_key_bits_raw
    - mode
    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:50,1
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:52,1
    - Dst: H_public_key_bits_raw
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:54,1
    - Dst: z
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:55,1
    - Dst: indcpa_decrypt
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:57,1
    - Dst: G
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:58,1
    - Dst: J
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:60,1
    - Dst: indcpa_encrypt
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:61,1
    - Dst: precomputed_matrix_At
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:61,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:63,1
    - Dst: StrongSpan<const KyberCompressedCiphertext>::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: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:64,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:64,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:64,1
    - Dst: StrongSpan<KyberSharedSecret>::size
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:64,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:64,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:65,1
    - Dst: StrongSpan<const KyberCompressedCiphertext>::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: StrongSpan<const KyberCompressedCiphertext>::size
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:65,1
    - Dst: Botan::CT::conditional_copy_mem
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:66,1
    - Dst: StrongSpan<KyberSharedSecret>::data
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:66,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:66,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:66,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:66,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:68,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: 69
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 69
    functionName: Botan::ML_KEM_Decryptor::decapsulate
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::CT::is_equal
    - Botan::CT::scoped_poison
    - StrongSpan<const KyberCompressedCiphertext>::data
    - Botan::CT::unpoison
    - auto::size
    - data
    - StrongSpan<const KyberCompressedCiphertext>::size
    - mode
    - auto::data
    - indcpa_decrypt
    - G
    - z
    - Botan::CT::conditional_copy_mem
    - precomputed_matrix_At
    - H_public_key_bits_raw
    - StrongSpan<KyberSharedSecret>::data
    - indcpa_encrypt
    - J
    - size
    - StrongSpan<KyberSharedSecret>::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:28,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:30,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:31,1
    - Dst: G
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:33,1
    - Dst: H_public_key_bits_raw
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:33,1
    - Dst: indcpa_encrypt
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:34,1
    - Dst: precomputed_matrix_At
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:34,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:37,1
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:38,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: 39
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 39
    functionName: Botan::ML_KEM_Encryptor::encapsulate
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp
    functionUses: 0
    functionsReached:
    - G
    - indcpa_encrypt
    - copy_mem
    - Botan::CT::scoped_poison
    - Botan::CT::unpoison_all
    - precomputed_matrix_At
    - random_vec
    - H_public_key_bits_raw
    - mode
    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:50,1
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:52,1
    - Dst: H_public_key_bits_raw
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:54,1
    - Dst: z
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:55,1
    - Dst: indcpa_decrypt
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:57,1
    - Dst: G
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:58,1
    - Dst: J
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:60,1
    - Dst: indcpa_encrypt
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:61,1
    - Dst: precomputed_matrix_At
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:61,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:63,1
    - Dst: StrongSpan<const KyberCompressedCiphertext>::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: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:64,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:64,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:64,1
    - Dst: StrongSpan<KyberSharedSecret>::size
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:64,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:64,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:65,1
    - Dst: StrongSpan<const KyberCompressedCiphertext>::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: StrongSpan<const KyberCompressedCiphertext>::size
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:65,1
    - Dst: Botan::CT::conditional_copy_mem
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:66,1
    - Dst: StrongSpan<KyberSharedSecret>::data
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:66,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:66,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:66,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:66,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp:68,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: 69
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 69
    functionName: Botan::ML_KEM_Decryptor::decapsulate
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/ml_kem/ml_kem_impl.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::CT::is_equal
    - Botan::CT::scoped_poison
    - StrongSpan<const KyberCompressedCiphertext>::data
    - Botan::CT::unpoison
    - auto::size
    - data
    - StrongSpan<const KyberCompressedCiphertext>::size
    - mode
    - auto::data
    - indcpa_decrypt
    - G
    - z
    - Botan::CT::conditional_copy_mem
    - precomputed_matrix_At
    - H_public_key_bits_raw
    - StrongSpan<KyberSharedSecret>::data
    - indcpa_encrypt
    - J
    - size
    - StrongSpan<KyberSharedSecret>::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:84,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:84,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 85
    functionName: Botan::kyber_mode_from_string
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached:
    - Botan::Invalid_Argument
    - Botan::fmt
    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:84,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:84,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 85
    functionName: Botan::kyber_mode_from_string
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached:
    - Botan::Invalid_Argument
    - Botan::fmt
    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: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    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:91,1
    - Dst: to_formatted_string
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: Botan::KyberMode::KyberMode
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 10
    functionsReached:
    - kyber_mode_from_string
    - to_formatted_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:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 93
    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:96,1
    - Dst: Botan::KyberMode::to_string
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 97
    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:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 122
    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: 126
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 126
    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: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::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: 134
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 134
    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: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    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:143,1
    - Dst: Botan::KyberMode::is_modern
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:143,1
    - Dst: Botan::KyberMode::is_kyber_round3
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:149,1
    - Dst: Botan::KyberMode::is_90s
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:149,1
    - Dst: Botan::KyberMode::is_ml_kem
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:155,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 161
    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_ml_kem
    - Botan::KyberMode::is_90s
    - Botan::KyberMode::is_kyber_round3
    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: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::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: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::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:176,1
    - Dst: Botan::Kyber_PublicKey::mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 177
    functionName: Botan::Kyber_PublicKey::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached:
    - AlgorithmIdentifier
    - Botan::Kyber_PublicKey::mode
    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: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::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:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 185
    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:188,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:188,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: 188
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 188
    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:191,1
    - Dst: KyberSerializedPublicKey
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:191,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: 192
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 192
    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:195,1
    - Dst: m_public::mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:196,1
    - Dst: m_public::t
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:196,1
    - Dst: m_public::rho
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Kyber_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 196
    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>
    - m_public::rho
    - m_public::t
    - m_public::mode
    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:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 200
    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:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 206
    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:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 2
    functionLinenumber: 208
    functionLinenumberEnd: 210
    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:218,1
    - Dst: Botan::Kyber_Algos::encode_polynomial_vector
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:219,1
    - Dst: t
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:219,1
    - Dst: public_key_bits_raw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:221,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:222,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:222,1
    - Dst: std::equal
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:222,1
    - Dst: std::vector::begin
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:222,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:222,1
    - Dst: begin
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 223
    functionName: Botan::Kyber_PublicKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - t
    - size
    - Botan::Kyber_PublicKey::mode
    - std::equal
    - std::vector::end
    - begin
    - std::vector::size
    - Botan::Kyber_Algos::encode_polynomial_vector
    - public_key_bits_raw
    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:226,1
    - Dst: Botan::Kyber_PublicKey::mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 227
    functionName: Botan::Kyber_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Kyber_PrivateKey>
    - Botan::Kyber_PublicKey::mode
    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:233,1
    - Dst: Botan::Kyber_Algos::expand_keypair
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:234,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:234,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' rng'
    - mode
    argTypes:
    - RandomNumberGenerator
    - KyberMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 237
    functionName: Botan::Kyber_PrivateKey::Kyber_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 1
    functionsReached:
    - std::tie
    - Botan::Kyber_Algos::expand_keypair
    - random_vec
    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:240,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:240,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: 240
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 240
    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:245,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:245,1
    - Dst: KyberConstants::seed_private_key_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:245,1
    - Dst: std::tie
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:246,1
    - Dst: Seed_Expanding_Keypair_Codec
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:246,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:246,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:247,1
    - Dst: KyberConstants::expanded_private_key_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:247,1
    - Dst: std::tie
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:248,1
    - Dst: Expanded_Keypair_Codec
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:248,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:248,1
    - Dst: KyberConstants::mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:249,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:249,1
    - Dst: KyberConstants::seed_private_key_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:249,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:250,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:252,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - sk
    - m
    argTypes:
    - std::span<const uint8_t>
    - KyberMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 254
    functionName: Botan::Kyber_PrivateKey::Kyber_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 1
    functionsReached:
    - KyberConstants::seed_private_key_bytes
    - std::tie
    - std::move
    - KyberConstants::expanded_private_key_bytes
    - std::span<const uint8_t>::size
    - KyberConstants::mode
    - Invalid_Argument
    - Seed_Expanding_Keypair_Codec
    - Expanded_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:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 258
    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:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 262
    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:265,1
    - Dst: Botan::Kyber_PrivateKey::private_key_format
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.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::Kyber_PrivateKey::private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 2
    functionsReached:
    - Botan::Kyber_PrivateKey::private_key_bits_with_format
    - Botan::Kyber_PrivateKey::private_key_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:276,1
    - Dst: KEM_Encapsulation::destructure
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:283,1
    - Dst: PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:283,1
    - Dst: PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 268
    functionDepth: 3
    functionLinenumber: 268
    functionLinenumberEnd: 287
    functionName: Botan::Kyber_PrivateKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached:
    - PK_KEM_Encryptor::encrypt
    - KEM_Encapsulation::destructure
    - PK_KEM_Decryptor::decrypt
    - Botan::Kyber_PublicKey::check_key
    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:291,1
    - Dst: Botan::Kyber_PublicKey::mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:293,1
    - Dst: std::make_unique<Kyber_KEM_Encryptor>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:294,1
    - Dst: Botan::Kyber_PublicKey::mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:299,1
    - Dst: std::make_unique<ML_KEM_Encryptor>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:300,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:304,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:306,1
    - Dst: Botan::Kyber_PublicKey::algo_name
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:306,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 289
    functionDepth: 2
    functionLinenumber: 289
    functionLinenumberEnd: 307
    functionName: Botan::Kyber_PublicKey::create_kem_encryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - BOTAN_ASSERT_UNREACHABLE
    - std::string_view::empty
    - Botan::Kyber_PublicKey::algo_name
    - Botan::Kyber_PublicKey::mode
    - std::make_unique<ML_KEM_Encryptor>
    - std::make_unique<Kyber_KEM_Encryptor>
    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:312,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:313,1
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:315,1
    - Dst: std::make_unique<Kyber_KEM_Decryptor>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:316,1
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:321,1
    - Dst: std::make_unique<ML_KEM_Decryptor>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:322,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:326,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:328,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:328,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: 329
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 329
    functionName: Botan::Kyber_PrivateKey::create_kem_decryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - std::make_unique<Kyber_KEM_Decryptor>
    - std::make_unique<ML_KEM_Decryptor>
    - std::string_view::empty
    - BOTAN_ASSERT_UNREACHABLE
    - algo_name
    - BOTAN_UNUSED
    - mode
    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:332,1
    - Dst: seed
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:332,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:332,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 336
    functionName: Botan::Kyber_PrivateKey::private_key_format
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 1
    functionsReached:
    - seed
    - has_value
    - mode
    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:339,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:340,1
    - Dst: std::make_unique<Seed_Expanding_Keypair_Codec>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:345,1
    - Dst: std::make_unique<Expanded_Keypair_Codec>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:347,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:349,1
    - Dst: auto::encode_keypair
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:351,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - format
    argTypes:
    - MlPrivateKeyFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 338
    functionDepth: 2
    functionLinenumber: 338
    functionLinenumberEnd: 352
    functionName: Botan::Kyber_PrivateKey::private_key_bits_with_format
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 1
    functionsReached:
    - auto::encode_keypair
    - std::make_unique<Expanded_Keypair_Codec>
    - BOTAN_ASSERT_UNREACHABLE
    - Encoding_Error
    - std::make_unique<Seed_Expanding_Keypair_Codec>
    - Botan::Kyber_PrivateKey::private_key_format
    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:84,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:84,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 85
    functionName: Botan::kyber_mode_from_string
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached:
    - Botan::Invalid_Argument
    - Botan::fmt
    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:84,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:84,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 85
    functionName: Botan::kyber_mode_from_string
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached:
    - Botan::Invalid_Argument
    - Botan::fmt
    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: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    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:91,1
    - Dst: to_formatted_string
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: Botan::KyberMode::KyberMode
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 10
    functionsReached:
    - kyber_mode_from_string
    - to_formatted_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:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 93
    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:96,1
    - Dst: Botan::KyberMode::to_string
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 97
    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:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 122
    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: 126
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 126
    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: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::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: 134
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 134
    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: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    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:143,1
    - Dst: Botan::KyberMode::is_modern
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:143,1
    - Dst: Botan::KyberMode::is_kyber_round3
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:149,1
    - Dst: Botan::KyberMode::is_90s
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:149,1
    - Dst: Botan::KyberMode::is_ml_kem
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:155,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 161
    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_ml_kem
    - Botan::KyberMode::is_90s
    - Botan::KyberMode::is_kyber_round3
    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: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::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: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::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:176,1
    - Dst: Botan::Kyber_PublicKey::mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 177
    functionName: Botan::Kyber_PublicKey::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached:
    - AlgorithmIdentifier
    - Botan::Kyber_PublicKey::mode
    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: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::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:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 185
    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:188,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:188,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: 188
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 188
    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:191,1
    - Dst: KyberSerializedPublicKey
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:191,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: 192
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 192
    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:195,1
    - Dst: m_public::mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:196,1
    - Dst: m_public::t
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:196,1
    - Dst: m_public::rho
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Kyber_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 196
    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>
    - m_public::rho
    - m_public::t
    - m_public::mode
    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:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 200
    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:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 206
    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:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 2
    functionLinenumber: 208
    functionLinenumberEnd: 210
    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:218,1
    - Dst: Botan::Kyber_Algos::encode_polynomial_vector
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:219,1
    - Dst: t
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:219,1
    - Dst: public_key_bits_raw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:221,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:222,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:222,1
    - Dst: std::equal
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:222,1
    - Dst: std::vector::begin
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:222,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:222,1
    - Dst: begin
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 223
    functionName: Botan::Kyber_PublicKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 1
    functionsReached:
    - std::vector::begin
    - t
    - size
    - Botan::Kyber_PublicKey::mode
    - std::equal
    - std::vector::end
    - begin
    - std::vector::size
    - Botan::Kyber_Algos::encode_polynomial_vector
    - public_key_bits_raw
    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:226,1
    - Dst: Botan::Kyber_PublicKey::mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 225
    functionDepth: 2
    functionLinenumber: 225
    functionLinenumberEnd: 227
    functionName: Botan::Kyber_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Kyber_PrivateKey>
    - Botan::Kyber_PublicKey::mode
    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:233,1
    - Dst: Botan::Kyber_Algos::expand_keypair
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:234,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:234,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' rng'
    - mode
    argTypes:
    - RandomNumberGenerator
    - KyberMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 237
    functionName: Botan::Kyber_PrivateKey::Kyber_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 1
    functionsReached:
    - std::tie
    - Botan::Kyber_Algos::expand_keypair
    - random_vec
    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:240,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:240,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: 240
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 240
    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:245,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:245,1
    - Dst: KyberConstants::seed_private_key_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:245,1
    - Dst: std::tie
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:246,1
    - Dst: Seed_Expanding_Keypair_Codec
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:246,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:246,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:247,1
    - Dst: KyberConstants::expanded_private_key_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:247,1
    - Dst: std::tie
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:248,1
    - Dst: Expanded_Keypair_Codec
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:248,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:248,1
    - Dst: KyberConstants::mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:249,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:249,1
    - Dst: KyberConstants::seed_private_key_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:249,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:250,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:252,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - sk
    - m
    argTypes:
    - std::span<const uint8_t>
    - KyberMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 254
    functionName: Botan::Kyber_PrivateKey::Kyber_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 1
    functionsReached:
    - KyberConstants::seed_private_key_bytes
    - std::tie
    - std::move
    - KyberConstants::expanded_private_key_bytes
    - std::span<const uint8_t>::size
    - KyberConstants::mode
    - Invalid_Argument
    - Seed_Expanding_Keypair_Codec
    - Expanded_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:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 258
    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:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 262
    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:265,1
    - Dst: Botan::Kyber_PrivateKey::private_key_format
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 264
    functionDepth: 3
    functionLinenumber: 264
    functionLinenumberEnd: 266
    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_bits_with_format
    - Botan::Kyber_PrivateKey::private_key_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:276,1
    - Dst: KEM_Encapsulation::destructure
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:283,1
    - Dst: PK_KEM_Encryptor::encrypt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:283,1
    - Dst: PK_KEM_Decryptor::decrypt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:284,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 268
    functionDepth: 3
    functionLinenumber: 268
    functionLinenumberEnd: 287
    functionName: Botan::Kyber_PrivateKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached:
    - PK_KEM_Encryptor::encrypt
    - KEM_Encapsulation::destructure
    - PK_KEM_Decryptor::decrypt
    - Botan::Kyber_PublicKey::check_key
    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:291,1
    - Dst: Botan::Kyber_PublicKey::mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:293,1
    - Dst: std::make_unique<Kyber_KEM_Encryptor>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:294,1
    - Dst: Botan::Kyber_PublicKey::mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:299,1
    - Dst: std::make_unique<ML_KEM_Encryptor>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:300,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:304,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:306,1
    - Dst: Botan::Kyber_PublicKey::algo_name
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:306,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 289
    functionDepth: 2
    functionLinenumber: 289
    functionLinenumberEnd: 307
    functionName: Botan::Kyber_PublicKey::create_kem_encryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - BOTAN_ASSERT_UNREACHABLE
    - std::string_view::empty
    - Botan::Kyber_PublicKey::algo_name
    - Botan::Kyber_PublicKey::mode
    - std::make_unique<ML_KEM_Encryptor>
    - std::make_unique<Kyber_KEM_Encryptor>
    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:312,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:313,1
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:315,1
    - Dst: std::make_unique<Kyber_KEM_Decryptor>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:316,1
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:321,1
    - Dst: std::make_unique<ML_KEM_Decryptor>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:322,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:326,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:328,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:328,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: 329
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 329
    functionName: Botan::Kyber_PrivateKey::create_kem_decryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - std::make_unique<Kyber_KEM_Decryptor>
    - std::make_unique<ML_KEM_Decryptor>
    - std::string_view::empty
    - BOTAN_ASSERT_UNREACHABLE
    - algo_name
    - BOTAN_UNUSED
    - mode
    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:332,1
    - Dst: seed
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:332,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:332,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 336
    functionName: Botan::Kyber_PrivateKey::private_key_format
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 3
    functionsReached:
    - seed
    - has_value
    - mode
    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:339,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:340,1
    - Dst: std::make_unique<Seed_Expanding_Keypair_Codec>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:345,1
    - Dst: std::make_unique<Expanded_Keypair_Codec>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:347,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:349,1
    - Dst: auto::encode_keypair
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp:351,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - format
    argTypes:
    - MlPrivateKeyFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 338
    functionDepth: 2
    functionLinenumber: 338
    functionLinenumberEnd: 352
    functionName: Botan::Kyber_PrivateKey::private_key_bits_with_format
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.cpp
    functionUses: 2
    functionsReached:
    - auto::encode_keypair
    - std::make_unique<Expanded_Keypair_Codec>
    - BOTAN_ASSERT_UNREACHABLE
    - Encoding_Error
    - std::make_unique<Seed_Expanding_Keypair_Codec>
    - Botan::Kyber_PrivateKey::private_key_format
    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:56,1
    - Dst: Botan::Kyber_PublicKeyInternal::indcpa_encrypt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' m'
    - ' r'
    - ' At'
    argTypes:
    - KyberMessage
    - KyberEncryptionRandomness
    - KyberPolyMat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 59
    functionName: Botan::Kyber_PublicKeyInternal::indcpa_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h
    functionUses: 1
    functionsReached:
    - Botan::Kyber_PublicKeyInternal::indcpa_encrypt
    - ciphertext_bytes
    linkageType: ''
    returnType: KyberCompressedCiphertext
    signature: "KyberCompressedCiphertext indcpa_encrypt(const KyberMessage& m,\n
      \                                              const KyberEncryptionRandomness&
      r,\n                                               const KyberPolyMat& At) 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: '& 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: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    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: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    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: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    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: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    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: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    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:84,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h:84,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - mode
    - s
    - seed
    argTypes:
    - KyberConstants
    - KyberPolyVecNTT
    - KyberPrivateKeySeed
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    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: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    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: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    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: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    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: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    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: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    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: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    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:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 100
    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: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_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:56,1
    - Dst: Botan::Kyber_PublicKeyInternal::indcpa_encrypt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' m'
    - ' r'
    - ' At'
    argTypes:
    - KyberMessage
    - KyberEncryptionRandomness
    - KyberPolyMat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 59
    functionName: Botan::Kyber_PublicKeyInternal::indcpa_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h
    functionUses: 2
    functionsReached:
    - Botan::Kyber_PublicKeyInternal::indcpa_encrypt
    - ciphertext_bytes
    linkageType: ''
    returnType: KyberCompressedCiphertext
    signature: "KyberCompressedCiphertext indcpa_encrypt(const KyberMessage& m,\n
      \                                              const KyberEncryptionRandomness&
      r,\n                                               const KyberPolyMat& At) 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: '& 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: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    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: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    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: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    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: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    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: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    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:84,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h:84,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - mode
    - s
    - seed
    argTypes:
    - KyberConstants
    - KyberPolyVecNTT
    - KyberPrivateKeySeed
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    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: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    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: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    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: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    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: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    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: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    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: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    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:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 100
    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: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_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: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    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: get_H
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - StrongSpan<const KyberMessage>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: Botan::Kyber_Symmetric_Primitives::H
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - get_H
    linkageType: ''
    returnType: KyberMessage
    signature: KyberMessage H(StrongSpan<const KyberMessage> m) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_H
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - StrongSpan<const KyberCompressedCiphertext>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: Botan::Kyber_Symmetric_Primitives::H
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - get_H
    linkageType: ''
    returnType: KyberHashedCiphertext
    signature: KyberHashedCiphertext H(StrongSpan<const KyberCompressedCiphertext>
      r) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_H
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pk
    argTypes:
    - StrongSpan<const KyberSerializedPublicKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: Botan::Kyber_Symmetric_Primitives::H
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - get_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:48,1
    - Dst: Botan::Kyber_Symmetric_Primitives::G_split
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:49,1
    - Dst: Botan::Kyber_Symmetric_Primitives::G_split
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - seed
    - ' mode'
    argTypes:
    - StrongSpan<const KyberSeedRandomness>
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 53
    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:57,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: 58
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 58
    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: get_J
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:62,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:63,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:64,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:65,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: 66
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: Botan::Kyber_Symmetric_Primitives::J
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - final
    - update
    - get_J
    linkageType: ''
    returnType: KyberSharedSecret
    signature: "KyberSharedSecret J(StrongSpan<const KyberImplicitRejectionValue>
      rejection_value,\n                          StrongSpan<const KyberCompressedCiphertext>
      ciphertext) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_KDF
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:72,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:73,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:74,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:75,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: 76
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 76
    functionName: Botan::Kyber_Symmetric_Primitives::KDF
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - final
    - update
    - get_KDF
    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:81,1
    - Dst: get
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:81,1
    - Dst: get_PRF
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - seed
    - nonce
    - outlen
    argTypes:
    - KyberSigmaOrEncryptionRandomness
    - uint8_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 83
    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_PRF
    - get
    linkageType: ''
    returnType: KyberSamplingRandomness
    signature: "KyberSamplingRandomness PRF(KyberSigmaOrEncryptionRandomness seed,\n
      \                                 const uint8_t nonce,\n                                  const
      size_t outlen) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_XOF
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - seed
    - matrix_position
    argTypes:
    - StrongSpan<const KyberSeedRho>
    - std::tuple<uint8_t, uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: '& XOF(StrongSpan<const KyberSeedRho> seed, std::tuple<uint8_t,
      uint8_t> matrix_position) const'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - get_XOF
    linkageType: ''
    returnType: Botan::XOF
    signature: Botan::XOF & XOF(StrongSpan<const KyberSeedRho> seed, std::tuple<uint8_t,
      uint8_t> matrix_position) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_G
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:94,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:95,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:96,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:100,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:101,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:102,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 104
    functionName: Botan::Kyber_Symmetric_Primitives::G_split
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - final
    - update
    - BufferSlicer::empty
    - get_G
    - BufferSlicer::copy
    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: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    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: get_H
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m
    argTypes:
    - StrongSpan<const KyberMessage>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: Botan::Kyber_Symmetric_Primitives::H
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - get_H
    linkageType: ''
    returnType: KyberMessage
    signature: KyberMessage H(StrongSpan<const KyberMessage> m) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_H
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - r
    argTypes:
    - StrongSpan<const KyberCompressedCiphertext>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: Botan::Kyber_Symmetric_Primitives::H
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - get_H
    linkageType: ''
    returnType: KyberHashedCiphertext
    signature: KyberHashedCiphertext H(StrongSpan<const KyberCompressedCiphertext>
      r) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_H
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pk
    argTypes:
    - StrongSpan<const KyberSerializedPublicKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: Botan::Kyber_Symmetric_Primitives::H
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - get_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:48,1
    - Dst: Botan::Kyber_Symmetric_Primitives::G_split
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:49,1
    - Dst: Botan::Kyber_Symmetric_Primitives::G_split
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - seed
    - ' mode'
    argTypes:
    - StrongSpan<const KyberSeedRandomness>
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 53
    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:57,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: 58
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 58
    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: get_J
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:62,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:63,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:64,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:65,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: 66
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: Botan::Kyber_Symmetric_Primitives::J
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - final
    - update
    - get_J
    linkageType: ''
    returnType: KyberSharedSecret
    signature: "KyberSharedSecret J(StrongSpan<const KyberImplicitRejectionValue>
      rejection_value,\n                          StrongSpan<const KyberCompressedCiphertext>
      ciphertext) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_KDF
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:72,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:73,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:74,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:75,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: 76
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 76
    functionName: Botan::Kyber_Symmetric_Primitives::KDF
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - final
    - update
    - get_KDF
    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:81,1
    - Dst: get
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:81,1
    - Dst: get_PRF
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - seed
    - nonce
    - outlen
    argTypes:
    - KyberSigmaOrEncryptionRandomness
    - uint8_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 83
    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_PRF
    - get
    linkageType: ''
    returnType: KyberSamplingRandomness
    signature: "KyberSamplingRandomness PRF(KyberSigmaOrEncryptionRandomness seed,\n
      \                                 const uint8_t nonce,\n                                  const
      size_t outlen) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_XOF
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - seed
    - matrix_position
    argTypes:
    - StrongSpan<const KyberSeedRho>
    - std::tuple<uint8_t, uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: '& XOF(StrongSpan<const KyberSeedRho> seed, std::tuple<uint8_t,
      uint8_t> matrix_position) const'
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - get_XOF
    linkageType: ''
    returnType: Botan::XOF
    signature: Botan::XOF & XOF(StrongSpan<const KyberSeedRho> seed, std::tuple<uint8_t,
      uint8_t> matrix_position) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_G
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:94,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:95,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:96,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:100,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:101,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:102,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 104
    functionName: Botan::Kyber_Symmetric_Primitives::G_split
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_symmetric_primitives.h
    functionUses: 4
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - final
    - update
    - BufferSlicer::empty
    - get_G
    - BufferSlicer::copy
    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:52,1
    - Dst: Botan::Kyber_Algos::encode_polynomial_vector
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' vec'
    - ' mode'
    argTypes:
    - KyberPolyVecNTT
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    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: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    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:71,1
    - Dst: Botan::Kyber_Algos::PolynomialSampler::sample_poly_cbd
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:73,1
    - Dst: eta1
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 76
    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:
    - k
    - eta1
    - Botan::Kyber_Algos::PolynomialSampler::sample_poly_cbd
    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:82,1
    - Dst: eta2
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: Botan::Kyber_Algos::PolynomialSampler::sample_polynomial_cbd_eta2
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h
    functionUses: 0
    functionsReached:
    - eta2
    - Botan::Kyber_Algos::PolynomialSampler::sample_poly_cbd
    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:89,1
    - Dst: Botan::Kyber_Algos::PolynomialSampler::sample_poly_cbd
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:91,1
    - Dst: eta2
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 94
    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:
    - eta2
    - k
    - Botan::Kyber_Algos::PolynomialSampler::sample_poly_cbd
    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:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: Botan::Kyber_Algos::PolynomialSampler::prf
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h
    functionUses: 0
    functionsReached:
    - symmetric_primitives
    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:103,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:103,1
    - 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_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:108,1
    - Dst: sample_polynomial_from_cbd
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ' poly'
    - eta
    argTypes:
    - KyberPoly
    - KyberConstants::KyberEta
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 112
    functionName: Botan::Kyber_Algos::PolynomialSampler::sample_poly_cbd
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h
    functionUses: 3
    functionsReached:
    - Botan::Kyber_Algos::PolynomialSampler::prf
    - size
    - sample_polynomial_from_cbd
    - 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:52,1
    - Dst: Botan::Kyber_Algos::encode_polynomial_vector
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' vec'
    - ' mode'
    argTypes:
    - KyberPolyVecNTT
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    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: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    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:71,1
    - Dst: Botan::Kyber_Algos::PolynomialSampler::sample_poly_cbd
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:73,1
    - Dst: eta1
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 76
    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:
    - k
    - eta1
    - Botan::Kyber_Algos::PolynomialSampler::sample_poly_cbd
    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:82,1
    - Dst: eta2
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: Botan::Kyber_Algos::PolynomialSampler::sample_polynomial_cbd_eta2
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h
    functionUses: 0
    functionsReached:
    - eta2
    - Botan::Kyber_Algos::PolynomialSampler::sample_poly_cbd
    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:89,1
    - Dst: Botan::Kyber_Algos::PolynomialSampler::sample_poly_cbd
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:91,1
    - Dst: eta2
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 94
    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:
    - eta2
    - k
    - Botan::Kyber_Algos::PolynomialSampler::sample_poly_cbd
    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:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: Botan::Kyber_Algos::PolynomialSampler::prf
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h
    functionUses: 1
    functionsReached:
    - symmetric_primitives
    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:103,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:103,1
    - 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_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:108,1
    - Dst: sample_polynomial_from_cbd
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h:111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ' poly'
    - eta
    argTypes:
    - KyberPoly
    - KyberConstants::KyberEta
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 112
    functionName: Botan::Kyber_Algos::PolynomialSampler::sample_poly_cbd
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.h
    functionUses: 6
    functionsReached:
    - Botan::Kyber_Algos::PolynomialSampler::prf
    - size
    - sample_polynomial_from_cbd
    - 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: 1
    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: 1
    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<T>
    - static_cast<T2>
    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:
    - barrett_reduce
    - static_cast<T>
    - fqmul
    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:
    - Botan::KyberPolyTraits::barrett_reduce_coefficient
    - static_cast<T>
    - fqmul
    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:
    - static_cast<T>
    - size
    - Tq_elem_count
    - Tq_elem
    - basemul
    - fqmul
    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<T>
    - static_cast<T2>
    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:
    - barrett_reduce
    - static_cast<T>
    - fqmul
    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:
    - Botan::KyberPolyTraits::barrett_reduce_coefficient
    - static_cast<T>
    - fqmul
    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:
    - static_cast<T>
    - size
    - Tq_elem_count
    - Tq_elem
    - basemul
    - fqmul
    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:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' bs'
    - ' p'
    argTypes:
    - BufferStuffer
    - KyberPoly
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    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:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' bs'
    - ' p'
    argTypes:
    - BufferStuffer
    - KyberPolyNTT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    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:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - ' bs'
    argTypes:
    - KyberPoly
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    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:60,1
    - Dst: ct_validate_value_range
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:62,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' p'
    - ' bs'
    argTypes:
    - KyberPolyNTT
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: Botan::Kyber_Algos::byte_decode
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - CRYSTALS::unpack<KyberConstants::Q - 1>
    - ct_validate_value_range
    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:80,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:83,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:89,1
    - Dst: Botan::Kyber_Algos::load_le3
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:95,1
    - Dst: lowerthan_q
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:96,1
    - Dst: lowerthan_q
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:96,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:99,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:102,1
    - Dst: sample
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:110,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - ' p'
    - ' xof'
    argTypes:
    - KyberPolyNTT
    - XOF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 112
    functionName: Botan::Kyber_Algos::sample_ntt_uniform
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - Bounded_XOF<KyberConstants::SAMPLE_NTT_POLY_FROM_XOF_BOUND>
    - std::exchange
    - sample
    - Botan::Kyber_Algos::load_le3
    - lowerthan_q
    - 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:131,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:132,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:132,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:149,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' poly'
    - randomness
    argTypes:
    - KyberPoly
    - StrongSpan<const KyberSamplingRandomness>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 150
    functionName: Botan::Kyber_Algos::sample_poly_cbd
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - BufferSlicer::empty
    - size
    - BufferSlicer::take
    - Botan::load_le
    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:160,1
    - Dst: Botan::Kyber_Algos::load_le3
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:161,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:161,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:179,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' poly'
    - randomness
    argTypes:
    - KyberPoly
    - StrongSpan<const KyberSamplingRandomness>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 180
    functionName: Botan::Kyber_Algos::sample_poly_cbd
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - BufferSlicer::empty
    - size
    - Botan::Kyber_Algos::load_le3
    - 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:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' bs'
    - ' p'
    argTypes:
    - BufferStuffer
    - KyberPoly
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    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:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' bs'
    - ' p'
    argTypes:
    - BufferStuffer
    - KyberPolyNTT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    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:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - ' bs'
    argTypes:
    - KyberPoly
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    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:60,1
    - Dst: ct_validate_value_range
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:62,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' p'
    - ' bs'
    argTypes:
    - KyberPolyNTT
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: Botan::Kyber_Algos::byte_decode
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - CRYSTALS::unpack<KyberConstants::Q - 1>
    - ct_validate_value_range
    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:80,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:83,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:89,1
    - Dst: Botan::Kyber_Algos::load_le3
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:95,1
    - Dst: lowerthan_q
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:96,1
    - Dst: lowerthan_q
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:96,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:99,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:102,1
    - Dst: sample
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:110,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - ' p'
    - ' xof'
    argTypes:
    - KyberPolyNTT
    - XOF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 112
    functionName: Botan::Kyber_Algos::sample_ntt_uniform
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - Bounded_XOF<KyberConstants::SAMPLE_NTT_POLY_FROM_XOF_BOUND>
    - std::exchange
    - sample
    - Botan::Kyber_Algos::load_le3
    - lowerthan_q
    - 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:131,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:132,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:132,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:149,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' poly'
    - randomness
    argTypes:
    - KyberPoly
    - StrongSpan<const KyberSamplingRandomness>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 150
    functionName: Botan::Kyber_Algos::sample_poly_cbd
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - BufferSlicer::empty
    - size
    - BufferSlicer::take
    - Botan::load_le
    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:160,1
    - Dst: Botan::Kyber_Algos::load_le3
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:161,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:161,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:179,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' poly'
    - randomness
    argTypes:
    - KyberPoly
    - StrongSpan<const KyberSamplingRandomness>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 180
    functionName: Botan::Kyber_Algos::sample_poly_cbd
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - BufferSlicer::empty
    - size
    - Botan::Kyber_Algos::load_le3
    - 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:187,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:189,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - out
    - ' vec'
    argTypes:
    - std::span<uint8_t>
    - KyberPolyVecNTT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 190
    functionName: Botan::Kyber_Algos::encode_polynomial_vector
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 4
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::Kyber_Algos::byte_encode
    - BufferStuffer::full
    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:193,1
    - Dst: Botan::Kyber_Algos::byte_decode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:197,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:199,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - ' mode'
    argTypes:
    - std::span<const uint8_t>
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 202
    functionName: Botan::Kyber_Algos::decode_polynomial_vector
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - k
    - Botan::Kyber_Algos::byte_decode
    - BufferSlicer::empty
    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:205,1
    - Dst: StrongSpan<const KyberMessage>::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:205,1
    - Dst: Botan::Kyber_Algos::poly_decode_and_decompress
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - msg
    argTypes:
    - StrongSpan<const KyberMessage>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 210
    functionName: Botan::Kyber_Algos::polynomial_from_message
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - StrongSpan<const KyberMessage>::size
    - Botan::Kyber_Algos::poly_decode_and_decompress
    - BOTAN_ASSERT
    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:213,1
    - Dst: Botan::Kyber_Algos::poly_compress_and_encode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - KyberPoly
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 217
    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:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' sink'
    - ' polyvec'
    argTypes:
    - BufferStuffer
    - KyberPolyVec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 226
    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:231,1
    - Dst: Botan::Kyber_Algos::polyvec_compress_and_encode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:233,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:234,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:234,1
    - Dst: Botan::Kyber_Algos::polyvec_compress_and_encode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:237,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:238,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:238,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:242,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: 243
      start: 228
    functionDepth: 2
    functionLinenumber: 228
    functionLinenumberEnd: 243
    functionName: Botan::Kyber_Algos::compress_polyvec
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::Kyber_Algos::polyvec_compress_and_encode
    - d_u
    - BOTAN_ASSERT_UNREACHABLE
    - BufferStuffer::full
    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:248,1
    - Dst: Botan::Kyber_Algos::poly_compress_and_encode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:250,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:251,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:251,1
    - Dst: Botan::Kyber_Algos::poly_compress_and_encode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:254,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:255,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:255,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:259,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: 260
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 260
    functionName: Botan::Kyber_Algos::compress_poly
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - BufferStuffer::full
    - BOTAN_ASSERT_UNREACHABLE
    - Botan::Kyber_Algos::poly_compress_and_encode
    - d_v
    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:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' polyvec'
    - ' source'
    argTypes:
    - KyberPolyVec
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 267
    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:270,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:270,1
    - Dst: polynomial_vector_compressed_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:270,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:273,1
    - Dst: d_u
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:276,1
    - Dst: Botan::Kyber_Algos::polyvec_decode_and_decompress
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:278,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:279,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:279,1
    - Dst: Botan::Kyber_Algos::polyvec_decode_and_decompress
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:282,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:283,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:283,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - buffer
    - ' mode'
    argTypes:
    - std::span<const uint8_t>
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 288
    functionName: Botan::Kyber_Algos::decompress_polynomial_vector
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - d_u
    - BufferSlicer::empty
    - std::span<const uint8_t>::size
    - BOTAN_ASSERT_UNREACHABLE
    - Botan::Kyber_Algos::polyvec_decode_and_decompress
    - k
    - polynomial_vector_compressed_bytes
    - BOTAN_ASSERT
    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:291,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:291,1
    - Dst: polynomial_compressed_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:291,1
    - Dst: d_v
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:296,1
    - Dst: Botan::Kyber_Algos::poly_decode_and_decompress
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:298,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:299,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:299,1
    - Dst: Botan::Kyber_Algos::poly_decode_and_decompress
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:302,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:303,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:303,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - buffer
    - ' mode'
    argTypes:
    - std::span<const uint8_t>
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 308
    functionName: Botan::Kyber_Algos::decompress_polynomial
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - BufferSlicer::empty
    - std::span<const uint8_t>::size
    - BOTAN_ASSERT_UNREACHABLE
    - BOTAN_ASSERT
    - polynomial_compressed_bytes
    - Botan::Kyber_Algos::poly_decode_and_decompress
    - d_v
    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:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' sink'
    - ' polyvec'
    argTypes:
    - BufferStuffer
    - KyberPolyVec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 226
    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:231,1
    - Dst: Botan::Kyber_Algos::polyvec_compress_and_encode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:233,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:234,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:234,1
    - Dst: Botan::Kyber_Algos::polyvec_compress_and_encode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:237,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:238,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:238,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:242,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: 243
      start: 228
    functionDepth: 2
    functionLinenumber: 228
    functionLinenumberEnd: 243
    functionName: Botan::Kyber_Algos::compress_polyvec
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::Kyber_Algos::polyvec_compress_and_encode
    - d_u
    - BOTAN_ASSERT_UNREACHABLE
    - BufferStuffer::full
    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:248,1
    - Dst: Botan::Kyber_Algos::poly_compress_and_encode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:250,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:251,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:251,1
    - Dst: Botan::Kyber_Algos::poly_compress_and_encode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:254,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:255,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:255,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:259,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: 260
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 260
    functionName: Botan::Kyber_Algos::compress_poly
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - BufferStuffer::full
    - BOTAN_ASSERT_UNREACHABLE
    - Botan::Kyber_Algos::poly_compress_and_encode
    - d_v
    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:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' polyvec'
    - ' source'
    argTypes:
    - KyberPolyVec
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 267
    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:270,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:270,1
    - Dst: polynomial_vector_compressed_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:270,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:273,1
    - Dst: d_u
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:276,1
    - Dst: Botan::Kyber_Algos::polyvec_decode_and_decompress
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:278,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:279,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:279,1
    - Dst: Botan::Kyber_Algos::polyvec_decode_and_decompress
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:282,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:283,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:283,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - buffer
    - ' mode'
    argTypes:
    - std::span<const uint8_t>
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 288
    functionName: Botan::Kyber_Algos::decompress_polynomial_vector
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - d_u
    - BufferSlicer::empty
    - std::span<const uint8_t>::size
    - BOTAN_ASSERT_UNREACHABLE
    - Botan::Kyber_Algos::polyvec_decode_and_decompress
    - k
    - polynomial_vector_compressed_bytes
    - BOTAN_ASSERT
    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:291,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:291,1
    - Dst: polynomial_compressed_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:291,1
    - Dst: d_v
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:296,1
    - Dst: Botan::Kyber_Algos::poly_decode_and_decompress
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:298,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:299,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:299,1
    - Dst: Botan::Kyber_Algos::poly_decode_and_decompress
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:302,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:303,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:303,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - buffer
    - ' mode'
    argTypes:
    - std::span<const uint8_t>
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 308
    functionName: Botan::Kyber_Algos::decompress_polynomial
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - BufferSlicer::empty
    - std::span<const uint8_t>::size
    - BOTAN_ASSERT_UNREACHABLE
    - BOTAN_ASSERT
    - polynomial_compressed_bytes
    - Botan::Kyber_Algos::poly_decode_and_decompress
    - d_v
    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:322,1
    - Dst: KyberPrivateKeySeed::d::has_value
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:322,1
    - Dst: KyberPrivateKeySeed::d::value
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:323,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:325,1
    - Dst: KyberConstants::symmetric_primitives
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:326,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:327,1
    - Dst: Botan::Kyber_Algos::sample_matrix
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:331,1
    - Dst: ntt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:335,1
    - Dst: Kyber_Algos::PolynomialSampler::sample_polynomial_vector_cbd_eta1
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:335,1
    - Dst: ntt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:336,1
    - Dst: Kyber_Algos::PolynomialSampler::sample_polynomial_vector_cbd_eta1
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:336,1
    - Dst: montgomery
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:338,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:340,1
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:344,1
    - Dst: std::make_shared<Kyber_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:347,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:347,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:347,1
    - Dst: std::make_shared<Kyber_PrivateKeyInternal>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:348,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:348,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:348,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - seed
    - mode
    argTypes:
    - KyberPrivateKeySeed
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 350
    functionName: Botan::Kyber_Algos::expand_keypair
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 2
    functionsReached:
    - std::make_shared<Kyber_PublicKeyInternal>
    - std::move
    - Botan::CT::poison
    - std::make_shared<Kyber_PrivateKeyInternal>
    - KyberPrivateKeySeed::d::value
    - BOTAN_ARG_CHECK
    - Botan::Kyber_Algos::sample_matrix
    - Botan::CT::unpoison_all
    - KyberConstants::symmetric_primitives
    - ntt
    - auto::reduce
    - Kyber_Algos::PolynomialSampler::sample_polynomial_vector_cbd_eta1
    - KyberPrivateKeySeed::d::has_value
    - montgomery
    - Botan::CT::unpoison
    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:357,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:357,1
    - Dst: polynomial_vector_compressed_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:357,1
    - Dst: Botan::Kyber_Algos::compress_poly
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:358,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:358,1
    - Dst: polynomial_compressed_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:358,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:359,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:359,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: 360
      start: 352
    functionDepth: 3
    functionLinenumber: 352
    functionLinenumberEnd: 360
    functionName: Botan::Kyber_Algos::compress_ciphertext
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - BufferStuffer::full
    - polynomial_vector_compressed_bytes
    - BufferStuffer::next
    - polynomial_compressed_bytes
    - Botan::Kyber_Algos::compress_polyvec
    - Botan::Kyber_Algos::compress_poly
    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:364,1
    - Dst: polynomial_compressed_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:365,1
    - Dst: StrongSpan<const KyberCompressedCiphertext>::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:368,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:369,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:373,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:374,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:375,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:375,1
    - Dst: Botan::Kyber_Algos::decompress_polynomial_vector
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:377,1
    - Dst: Botan::Kyber_Algos::decompress_polynomial
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:377,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ct
    - ' mode'
    argTypes:
    - StrongSpan<const KyberCompressedCiphertext>
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 362
    functionDepth: 3
    functionLinenumber: 362
    functionLinenumberEnd: 378
    functionName: Botan::Kyber_Algos::decompress_ciphertext
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Decoding_Error
    - BufferSlicer::empty
    - Botan::Kyber_Algos::decompress_polynomial_vector
    - Botan::Kyber_Algos::decompress_polynomial
    - polynomial_vector_compressed_bytes
    - StrongSpan<const KyberCompressedCiphertext>::size
    - polynomial_compressed_bytes
    - 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:381,1
    - Dst: StrongSpan<const KyberSeedRho>::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:381,1
    - Dst: k
      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: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:386,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:387,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:387,1
    - Dst: Botan::Kyber_Algos::sample_ntt_uniform
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:388,1
    - Dst: symmetric_primitives
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:388,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - seed
    - transposed
    - ' mode'
    argTypes:
    - StrongSpan<const KyberSeedRho>
    - bool
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 380
    functionDepth: 3
    functionLinenumber: 380
    functionLinenumberEnd: 393
    functionName: Botan::Kyber_Algos::sample_matrix
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 1
    functionsReached:
    - StrongSpan<const KyberSeedRho>::size
    - k
    - std::tuple
    - symmetric_primitives
    - BOTAN_ASSERT
    - Botan::Kyber_Algos::sample_ntt_uniform
    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:406,1
    - Dst: Botan::Kyber_Algos::sample_poly_cbd
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:408,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' poly'
    - eta
    - ' randomness'
    argTypes:
    - KyberPoly
    - KyberConstants::KyberEta
    - KyberSamplingRandomness
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 401
    functionDepth: 3
    functionLinenumber: 401
    functionLinenumberEnd: 412
    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:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' bs'
    - ' p'
    argTypes:
    - BufferStuffer
    - KyberPoly
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    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:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' bs'
    - ' p'
    argTypes:
    - BufferStuffer
    - KyberPolyNTT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    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:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - ' bs'
    argTypes:
    - KyberPoly
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    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:60,1
    - Dst: ct_validate_value_range
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:62,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' p'
    - ' bs'
    argTypes:
    - KyberPolyNTT
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: Botan::Kyber_Algos::byte_decode
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 1
    functionsReached:
    - Decoding_Error
    - CRYSTALS::unpack<KyberConstants::Q - 1>
    - ct_validate_value_range
    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:80,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:83,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:89,1
    - Dst: Botan::Kyber_Algos::load_le3
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:95,1
    - Dst: lowerthan_q
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:96,1
    - Dst: lowerthan_q
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:96,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:99,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:102,1
    - Dst: sample
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:110,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - ' p'
    - ' xof'
    argTypes:
    - KyberPolyNTT
    - XOF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 112
    functionName: Botan::Kyber_Algos::sample_ntt_uniform
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 1
    functionsReached:
    - static_cast<uint16_t>
    - Bounded_XOF<KyberConstants::SAMPLE_NTT_POLY_FROM_XOF_BOUND>
    - std::exchange
    - sample
    - Botan::Kyber_Algos::load_le3
    - lowerthan_q
    - 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:131,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:132,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:132,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:149,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' poly'
    - randomness
    argTypes:
    - KyberPoly
    - StrongSpan<const KyberSamplingRandomness>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 150
    functionName: Botan::Kyber_Algos::sample_poly_cbd
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - BufferSlicer::empty
    - size
    - BufferSlicer::take
    - Botan::load_le
    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:160,1
    - Dst: Botan::Kyber_Algos::load_le3
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:161,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:161,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:179,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' poly'
    - randomness
    argTypes:
    - KyberPoly
    - StrongSpan<const KyberSamplingRandomness>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 180
    functionName: Botan::Kyber_Algos::sample_poly_cbd
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - BufferSlicer::empty
    - size
    - Botan::Kyber_Algos::load_le3
    - 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:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' bs'
    - ' p'
    argTypes:
    - BufferStuffer
    - KyberPoly
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    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:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' bs'
    - ' p'
    argTypes:
    - BufferStuffer
    - KyberPolyNTT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    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:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - ' bs'
    argTypes:
    - KyberPoly
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    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:60,1
    - Dst: ct_validate_value_range
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:62,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' p'
    - ' bs'
    argTypes:
    - KyberPolyNTT
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 65
    functionName: Botan::Kyber_Algos::byte_decode
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 1
    functionsReached:
    - Decoding_Error
    - CRYSTALS::unpack<KyberConstants::Q - 1>
    - ct_validate_value_range
    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:80,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:83,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:89,1
    - Dst: Botan::Kyber_Algos::load_le3
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:95,1
    - Dst: lowerthan_q
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:96,1
    - Dst: lowerthan_q
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:96,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:99,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:102,1
    - Dst: sample
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:110,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 2
    argNames:
    - ' p'
    - ' xof'
    argTypes:
    - KyberPolyNTT
    - XOF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 112
    functionName: Botan::Kyber_Algos::sample_ntt_uniform
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 1
    functionsReached:
    - static_cast<uint16_t>
    - Bounded_XOF<KyberConstants::SAMPLE_NTT_POLY_FROM_XOF_BOUND>
    - std::exchange
    - sample
    - Botan::Kyber_Algos::load_le3
    - lowerthan_q
    - 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:131,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:132,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:132,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:149,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' poly'
    - randomness
    argTypes:
    - KyberPoly
    - StrongSpan<const KyberSamplingRandomness>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 150
    functionName: Botan::Kyber_Algos::sample_poly_cbd
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - BufferSlicer::empty
    - size
    - BufferSlicer::take
    - Botan::load_le
    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:160,1
    - Dst: Botan::Kyber_Algos::load_le3
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:161,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:161,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:179,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:179,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' poly'
    - randomness
    argTypes:
    - KyberPoly
    - StrongSpan<const KyberSamplingRandomness>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 156
    functionDepth: 2
    functionLinenumber: 156
    functionLinenumberEnd: 180
    functionName: Botan::Kyber_Algos::sample_poly_cbd
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - BufferSlicer::empty
    - size
    - Botan::Kyber_Algos::load_le3
    - 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:187,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:189,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - out
    - ' vec'
    argTypes:
    - std::span<uint8_t>
    - KyberPolyVecNTT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 190
    functionName: Botan::Kyber_Algos::encode_polynomial_vector
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 4
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::Kyber_Algos::byte_encode
    - BufferStuffer::full
    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:193,1
    - Dst: Botan::Kyber_Algos::byte_decode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:197,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:199,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:199,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - a
    - ' mode'
    argTypes:
    - std::span<const uint8_t>
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 202
    functionName: Botan::Kyber_Algos::decode_polynomial_vector
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - k
    - Botan::Kyber_Algos::byte_decode
    - BufferSlicer::empty
    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:205,1
    - Dst: StrongSpan<const KyberMessage>::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:205,1
    - Dst: Botan::Kyber_Algos::poly_decode_and_decompress
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - msg
    argTypes:
    - StrongSpan<const KyberMessage>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 210
    functionName: Botan::Kyber_Algos::polynomial_from_message
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - StrongSpan<const KyberMessage>::size
    - Botan::Kyber_Algos::poly_decode_and_decompress
    - BOTAN_ASSERT
    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:213,1
    - Dst: Botan::Kyber_Algos::poly_compress_and_encode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - KyberPoly
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 217
    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:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' sink'
    - ' polyvec'
    argTypes:
    - BufferStuffer
    - KyberPolyVec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 226
    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:231,1
    - Dst: Botan::Kyber_Algos::polyvec_compress_and_encode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:233,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:234,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:234,1
    - Dst: Botan::Kyber_Algos::polyvec_compress_and_encode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:237,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:238,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:238,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:242,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: 243
      start: 228
    functionDepth: 2
    functionLinenumber: 228
    functionLinenumberEnd: 243
    functionName: Botan::Kyber_Algos::compress_polyvec
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::Kyber_Algos::polyvec_compress_and_encode
    - d_u
    - BOTAN_ASSERT_UNREACHABLE
    - BufferStuffer::full
    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:248,1
    - Dst: Botan::Kyber_Algos::poly_compress_and_encode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:250,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:251,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:251,1
    - Dst: Botan::Kyber_Algos::poly_compress_and_encode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:254,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:255,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:255,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:259,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: 260
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 260
    functionName: Botan::Kyber_Algos::compress_poly
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - BufferStuffer::full
    - BOTAN_ASSERT_UNREACHABLE
    - Botan::Kyber_Algos::poly_compress_and_encode
    - d_v
    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:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' polyvec'
    - ' source'
    argTypes:
    - KyberPolyVec
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 267
    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:270,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:270,1
    - Dst: polynomial_vector_compressed_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:270,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:273,1
    - Dst: d_u
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:276,1
    - Dst: Botan::Kyber_Algos::polyvec_decode_and_decompress
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:278,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:279,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:279,1
    - Dst: Botan::Kyber_Algos::polyvec_decode_and_decompress
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:282,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:283,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:283,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - buffer
    - ' mode'
    argTypes:
    - std::span<const uint8_t>
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 288
    functionName: Botan::Kyber_Algos::decompress_polynomial_vector
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - d_u
    - BufferSlicer::empty
    - std::span<const uint8_t>::size
    - BOTAN_ASSERT_UNREACHABLE
    - Botan::Kyber_Algos::polyvec_decode_and_decompress
    - k
    - polynomial_vector_compressed_bytes
    - BOTAN_ASSERT
    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:291,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:291,1
    - Dst: polynomial_compressed_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:291,1
    - Dst: d_v
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:296,1
    - Dst: Botan::Kyber_Algos::poly_decode_and_decompress
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:298,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:299,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:299,1
    - Dst: Botan::Kyber_Algos::poly_decode_and_decompress
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:302,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:303,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:303,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - buffer
    - ' mode'
    argTypes:
    - std::span<const uint8_t>
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 308
    functionName: Botan::Kyber_Algos::decompress_polynomial
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - BufferSlicer::empty
    - std::span<const uint8_t>::size
    - BOTAN_ASSERT_UNREACHABLE
    - BOTAN_ASSERT
    - polynomial_compressed_bytes
    - Botan::Kyber_Algos::poly_decode_and_decompress
    - d_v
    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:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' sink'
    - ' polyvec'
    argTypes:
    - BufferStuffer
    - KyberPolyVec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 226
    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:231,1
    - Dst: Botan::Kyber_Algos::polyvec_compress_and_encode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:233,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:234,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:234,1
    - Dst: Botan::Kyber_Algos::polyvec_compress_and_encode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:237,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:238,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:238,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:242,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: 243
      start: 228
    functionDepth: 2
    functionLinenumber: 228
    functionLinenumberEnd: 243
    functionName: Botan::Kyber_Algos::compress_polyvec
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::Kyber_Algos::polyvec_compress_and_encode
    - d_u
    - BOTAN_ASSERT_UNREACHABLE
    - BufferStuffer::full
    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:248,1
    - Dst: Botan::Kyber_Algos::poly_compress_and_encode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:250,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:251,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:251,1
    - Dst: Botan::Kyber_Algos::poly_compress_and_encode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:254,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:255,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:255,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:259,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: 260
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 260
    functionName: Botan::Kyber_Algos::compress_poly
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - BufferStuffer::full
    - BOTAN_ASSERT_UNREACHABLE
    - Botan::Kyber_Algos::poly_compress_and_encode
    - d_v
    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:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' polyvec'
    - ' source'
    argTypes:
    - KyberPolyVec
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 267
    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:270,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:270,1
    - Dst: polynomial_vector_compressed_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:270,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:273,1
    - Dst: d_u
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:276,1
    - Dst: Botan::Kyber_Algos::polyvec_decode_and_decompress
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:278,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:279,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:279,1
    - Dst: Botan::Kyber_Algos::polyvec_decode_and_decompress
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:282,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:283,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:283,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - buffer
    - ' mode'
    argTypes:
    - std::span<const uint8_t>
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 269
    functionDepth: 2
    functionLinenumber: 269
    functionLinenumberEnd: 288
    functionName: Botan::Kyber_Algos::decompress_polynomial_vector
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - d_u
    - BufferSlicer::empty
    - std::span<const uint8_t>::size
    - BOTAN_ASSERT_UNREACHABLE
    - Botan::Kyber_Algos::polyvec_decode_and_decompress
    - k
    - polynomial_vector_compressed_bytes
    - BOTAN_ASSERT
    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:291,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:291,1
    - Dst: polynomial_compressed_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:291,1
    - Dst: d_v
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:296,1
    - Dst: Botan::Kyber_Algos::poly_decode_and_decompress
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:298,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:299,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:299,1
    - Dst: Botan::Kyber_Algos::poly_decode_and_decompress
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:302,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:303,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:303,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - buffer
    - ' mode'
    argTypes:
    - std::span<const uint8_t>
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 308
    functionName: Botan::Kyber_Algos::decompress_polynomial
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - BufferSlicer::empty
    - std::span<const uint8_t>::size
    - BOTAN_ASSERT_UNREACHABLE
    - BOTAN_ASSERT
    - polynomial_compressed_bytes
    - Botan::Kyber_Algos::poly_decode_and_decompress
    - d_v
    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:322,1
    - Dst: KyberPrivateKeySeed::d::has_value
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:322,1
    - Dst: KyberPrivateKeySeed::d::value
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:323,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:325,1
    - Dst: KyberConstants::symmetric_primitives
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:326,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:327,1
    - Dst: Botan::Kyber_Algos::sample_matrix
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:331,1
    - Dst: ntt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:335,1
    - Dst: Kyber_Algos::PolynomialSampler::sample_polynomial_vector_cbd_eta1
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:335,1
    - Dst: ntt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:336,1
    - Dst: Kyber_Algos::PolynomialSampler::sample_polynomial_vector_cbd_eta1
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:336,1
    - Dst: montgomery
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:338,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:340,1
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:344,1
    - Dst: std::make_shared<Kyber_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:347,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:347,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:347,1
    - Dst: std::make_shared<Kyber_PrivateKeyInternal>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:348,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:348,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:348,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 2
    argNames:
    - seed
    - mode
    argTypes:
    - KyberPrivateKeySeed
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 321
    functionDepth: 4
    functionLinenumber: 321
    functionLinenumberEnd: 350
    functionName: Botan::Kyber_Algos::expand_keypair
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 2
    functionsReached:
    - std::make_shared<Kyber_PublicKeyInternal>
    - std::move
    - Botan::CT::poison
    - std::make_shared<Kyber_PrivateKeyInternal>
    - KyberPrivateKeySeed::d::value
    - BOTAN_ARG_CHECK
    - Botan::Kyber_Algos::sample_matrix
    - Botan::CT::unpoison_all
    - KyberConstants::symmetric_primitives
    - ntt
    - auto::reduce
    - Kyber_Algos::PolynomialSampler::sample_polynomial_vector_cbd_eta1
    - KyberPrivateKeySeed::d::has_value
    - montgomery
    - Botan::CT::unpoison
    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:357,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:357,1
    - Dst: polynomial_vector_compressed_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:357,1
    - Dst: Botan::Kyber_Algos::compress_poly
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:358,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:358,1
    - Dst: polynomial_compressed_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:358,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:359,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:359,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: 360
      start: 352
    functionDepth: 3
    functionLinenumber: 352
    functionLinenumberEnd: 360
    functionName: Botan::Kyber_Algos::compress_ciphertext
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - BufferStuffer::full
    - polynomial_vector_compressed_bytes
    - BufferStuffer::next
    - polynomial_compressed_bytes
    - Botan::Kyber_Algos::compress_polyvec
    - Botan::Kyber_Algos::compress_poly
    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:364,1
    - Dst: polynomial_compressed_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:365,1
    - Dst: StrongSpan<const KyberCompressedCiphertext>::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:368,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:369,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:373,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:374,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:375,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:375,1
    - Dst: Botan::Kyber_Algos::decompress_polynomial_vector
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:377,1
    - Dst: Botan::Kyber_Algos::decompress_polynomial
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:377,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ct
    - ' mode'
    argTypes:
    - StrongSpan<const KyberCompressedCiphertext>
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 362
    functionDepth: 3
    functionLinenumber: 362
    functionLinenumberEnd: 378
    functionName: Botan::Kyber_Algos::decompress_ciphertext
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Decoding_Error
    - BufferSlicer::empty
    - Botan::Kyber_Algos::decompress_polynomial_vector
    - Botan::Kyber_Algos::decompress_polynomial
    - polynomial_vector_compressed_bytes
    - StrongSpan<const KyberCompressedCiphertext>::size
    - polynomial_compressed_bytes
    - 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:381,1
    - Dst: StrongSpan<const KyberSeedRho>::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:381,1
    - Dst: k
      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: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:386,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:387,1
    - Dst: std::tuple
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:387,1
    - Dst: Botan::Kyber_Algos::sample_ntt_uniform
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:388,1
    - Dst: symmetric_primitives
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:388,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - seed
    - transposed
    - ' mode'
    argTypes:
    - StrongSpan<const KyberSeedRho>
    - bool
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 380
    functionDepth: 3
    functionLinenumber: 380
    functionLinenumberEnd: 393
    functionName: Botan::Kyber_Algos::sample_matrix
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp
    functionUses: 2
    functionsReached:
    - StrongSpan<const KyberSeedRho>::size
    - k
    - std::tuple
    - symmetric_primitives
    - BOTAN_ASSERT
    - Botan::Kyber_Algos::sample_ntt_uniform
    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:406,1
    - Dst: Botan::Kyber_Algos::sample_poly_cbd
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:408,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_algos.cpp:411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' poly'
    - eta
    - ' randomness'
    argTypes:
    - KyberPoly
    - KyberConstants::KyberEta
    - KyberSamplingRandomness
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 401
    functionDepth: 3
    functionLinenumber: 401
    functionLinenumberEnd: 412
    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:35,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:67,1
    - Dst: KyberMode::is_kyber_round3
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:71,1
    - Dst: KyberMode::is_90s
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:71,1
    - Dst: std::make_unique<Kyber_90s_Symmetric_Primitives>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:72,1
    - Dst: KyberMode::is_kyber_round3
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:77,1
    - Dst: KyberMode::is_modern
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:77,1
    - Dst: std::make_unique<Kyber_Modern_Symmetric_Primitives>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:78,1
    - Dst: KyberMode::is_ml_kem
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:83,1
    - Dst: std::make_unique<ML_KEM_Symmetric_Primitives>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:84,1
    - Dst: bitlen
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:89,1
    - Dst: Botan::KyberConstants::k
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:89,1
    - Dst: Botan::KyberConstants::d_u
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:90,1
    - Dst: Botan::KyberConstants::k
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:90,1
    - Dst: Botan::KyberConstants::d_v
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:91,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:93,1
    - Dst: Botan::KyberConstants::public_key_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:93,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:97,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 49
    argCount: 1
    argNames:
    - mode
    argTypes:
    - KyberMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 99
    functionName: Botan::KyberConstants::KyberConstants
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp
    functionUses: 0
    functionsReached:
    - Botan::KyberConstants::d_u
    - KyberMode::is_modern
    - static_cast<uint32_t>
    - BOTAN_ASSERT_UNREACHABLE
    - KyberMode::is_90s
    - Botan::KyberConstants::d_v
    - Botan::KyberConstants::public_key_bytes
    - KyberMode::mode
    - KyberMode::is_kyber_round3
    - KyberMode::is_ml_kem
    - std::make_unique<ML_KEM_Symmetric_Primitives>
    - bitlen
    - std::make_unique<Kyber_Modern_Symmetric_Primitives>
    - Botan::KyberConstants::k
    - std::make_unique<Kyber_90s_Symmetric_Primitives>
    - Not_Implemented
    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: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    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:35,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:67,1
    - Dst: KyberMode::is_kyber_round3
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:71,1
    - Dst: KyberMode::is_90s
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:71,1
    - Dst: std::make_unique<Kyber_90s_Symmetric_Primitives>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:72,1
    - Dst: KyberMode::is_kyber_round3
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:77,1
    - Dst: KyberMode::is_modern
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:77,1
    - Dst: std::make_unique<Kyber_Modern_Symmetric_Primitives>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:78,1
    - Dst: KyberMode::is_ml_kem
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:83,1
    - Dst: std::make_unique<ML_KEM_Symmetric_Primitives>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:84,1
    - Dst: bitlen
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:89,1
    - Dst: Botan::KyberConstants::k
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:89,1
    - Dst: Botan::KyberConstants::d_u
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:90,1
    - Dst: Botan::KyberConstants::k
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:90,1
    - Dst: Botan::KyberConstants::d_v
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:91,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:93,1
    - Dst: Botan::KyberConstants::public_key_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:93,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp:97,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 49
    argCount: 1
    argNames:
    - mode
    argTypes:
    - KyberMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 99
    functionName: Botan::KyberConstants::KyberConstants
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.cpp
    functionUses: 0
    functionsReached:
    - Botan::KyberConstants::d_u
    - KyberMode::is_modern
    - static_cast<uint32_t>
    - BOTAN_ASSERT_UNREACHABLE
    - KyberMode::is_90s
    - Botan::KyberConstants::d_v
    - Botan::KyberConstants::public_key_bytes
    - KyberMode::mode
    - KyberMode::is_kyber_round3
    - KyberMode::is_ml_kem
    - std::make_unique<ML_KEM_Symmetric_Primitives>
    - bitlen
    - std::make_unique<Kyber_Modern_Symmetric_Primitives>
    - Botan::KyberConstants::k
    - std::make_unique<Kyber_90s_Symmetric_Primitives>
    - Not_Implemented
    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: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    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: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: Botan::mode
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.h
    functionUses: 12
    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: 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: 1
    argNames:
    - ' other'
    argTypes:
    - KyberMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    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: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: Botan::mode
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.h
    functionUses: 12
    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: 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: 1
    argNames:
    - ' other'
    argTypes:
    - KyberMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    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: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    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: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    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: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: supports_operation
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber.h
    functionUses: 30
    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: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    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: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    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: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    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: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    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: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    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: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::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: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    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: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    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: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    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: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    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: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    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: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    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: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    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: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    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: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    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:105,1
    - Dst: Botan::KyberConstants::polynomial_compressed_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: Botan::KyberConstants::ciphertext_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h
    functionUses: 0
    functionsReached:
    - Botan::KyberConstants::polynomial_compressed_bytes
    - Botan::KyberConstants::polynomial_vector_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: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    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:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 111
    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: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    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: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    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: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    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: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    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: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    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: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    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: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    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: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    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: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::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: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    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: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    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: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    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: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    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: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    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: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    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: 96
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 96
    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: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    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: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    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:105,1
    - Dst: Botan::KyberConstants::polynomial_compressed_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: Botan::KyberConstants::ciphertext_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_constants.h
    functionUses: 0
    functionsReached:
    - Botan::KyberConstants::polynomial_compressed_bytes
    - Botan::KyberConstants::polynomial_vector_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: 108
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 108
    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:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 111
    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: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    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: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    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: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    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: 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
    - Dst: mode
      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: 4
    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:
    - mode
    - rho
    - Botan::Kyber_Algos::sample_matrix
    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: '& 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:35,1
    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::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: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::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:42,1
    - Dst: StrongSpan<KyberCompressedCiphertext>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h:42,1
    - Dst: StrongSpan<KyberSharedSecret>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h:43,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: 45
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 45
    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: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    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: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::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: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::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:66,1
    - Dst: StrongSpan<KyberSharedSecret>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h:66,1
    - Dst: StrongSpan<const KyberCompressedCiphertext>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h:67,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: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    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: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    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: 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
    - Dst: mode
      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: 4
    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:
    - mode
    - rho
    - Botan::Kyber_Algos::sample_matrix
    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: '& 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:35,1
    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::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: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::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:42,1
    - Dst: StrongSpan<KyberCompressedCiphertext>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h:42,1
    - Dst: StrongSpan<KyberSharedSecret>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h:43,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: 45
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 45
    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: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    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: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::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: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::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:66,1
    - Dst: StrongSpan<KyberSharedSecret>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h:66,1
    - Dst: StrongSpan<const KyberCompressedCiphertext>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_encaps_base.h:67,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: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    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: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    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:22,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:23,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - public_key
    - expected_length
    argTypes:
    - KyberSerializedPublicKey
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: Botan::validate_public_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp
    functionUses: 0
    functionsReached:
    - Botan::Invalid_Argument
    - KyberSerializedPublicKey::size
    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:22,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:23,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - public_key
    - expected_length
    argTypes:
    - KyberSerializedPublicKey
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: Botan::validate_public_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp
    functionUses: 0
    functionsReached:
    - Botan::Invalid_Argument
    - KyberSerializedPublicKey::size
    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:40,1
    - Dst: Botan::Kyber_Algos::decode_polynomial_vector
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:43,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:43,1
    - Dst: KyberConstants::polynomial_vector_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:43,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:44,1
    - Dst: KyberConstants::public_key_bytes
      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:45,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:46,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:48,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:48,1
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:50,1
    - Dst: std::make_shared<Kyber_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:53,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:53,1
    - Dst: std::make_shared<Kyber_PrivateKeyInternal>
      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: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:60,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:63,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:64,1
    - Dst: KyberInternalKeypair::first::H_public_key_bits_raw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:64,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:64,1
    - Dst: std::equal
      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: KyberInternalKeypair::first::H_public_key_bits_raw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:66,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - sk
    - mode
    argTypes:
    - std::span<const uint8_t>
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 71
    functionName: Botan::Expanded_Keypair_Codec::decode_keypair
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::make_shared<Kyber_PublicKeyInternal>
    - std::move
    - BufferSlicer::empty
    - KyberInternalKeypair::first::H_public_key_bits_raw
    - std::make_shared<Kyber_PrivateKeyInternal>
    - Botan::Kyber_Algos::decode_polynomial_vector
    - BOTAN_ARG_CHECK
    - KyberConstants::polynomial_vector_bytes
    - Botan::CT::scoped_poison
    - Botan::CT::unpoison_all
    - BOTAN_ASSERT
    - std::equal
    - KyberConstants::public_key_bytes
    - auto::size
    - BufferSlicer::take
    - BufferSlicer::copy
    - auto::begin
    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:74,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:75,1
    - Dst: KyberInternalKeypair::first::mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:76,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:77,1
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:78,1
    - Dst: Botan::Kyber_Algos::encode_polynomial_vector
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:78,1
    - Dst: KyberInternalKeypair::second::s
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:78,1
    - Dst: KyberInternalKeypair::first::public_key_bits_raw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:79,1
    - Dst: KyberInternalKeypair::first::H_public_key_bits_raw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:80,1
    - Dst: KyberInternalKeypair::second::z
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:81,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - keypair
    argTypes:
    - KyberInternalKeypair
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 84
    functionName: Botan::Expanded_Keypair_Codec::encode_keypair
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp
    functionUses: 0
    functionsReached:
    - concat
    - KyberInternalKeypair::first::H_public_key_bits_raw
    - BOTAN_ASSERT_NONNULL
    - KyberInternalKeypair::second::z
    - Botan::CT::scoped_poison
    - KyberInternalKeypair::first::public_key_bits_raw
    - Botan::CT::unpoison
    - KyberInternalKeypair::second::s
    - Botan::Kyber_Algos::encode_polynomial_vector
    - KyberInternalKeypair::first::mode
    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:90,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:91,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:93,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:93,1
    - Dst: Botan::Kyber_Algos::expand_keypair
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:94,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:94,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:94,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: 95
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 95
    functionName: Botan::Seed_Expanding_Keypair_Codec::decode_keypair
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::move
    - BufferSlicer::empty
    - Botan::Kyber_Algos::expand_keypair
    - BufferSlicer::copy
    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:98,1
    - Dst: KyberInternalKeypair::second::seed
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:99,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:100,1
    - Dst: d::has_value
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:100,1
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:101,1
    - Dst: d::value
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - keypair
    argTypes:
    - KyberInternalKeypair
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 102
    functionName: Botan::Seed_Expanding_Keypair_Codec::encode_keypair
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp
    functionUses: 0
    functionsReached:
    - concat
    - KyberInternalKeypair::second::seed
    - BOTAN_ASSERT_NONNULL
    - BOTAN_ARG_CHECK
    - d::value
    - 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:105,1
    - Dst: validate_public_key_length
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:106,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:106,1
    - Dst: public_key_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:106,1
    - Dst: symmetric_primitives
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:107,1
    - Dst: Botan::Kyber_Algos::decode_polynomial_vector
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:108,1
    - Dst: first
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:109,1
    - Dst: polynomial_vector_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:109,1
    - Dst: last
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - mode
    - public_key
    argTypes:
    - KyberConstants
    - KyberSerializedPublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: Botan::Kyber_PublicKeyInternal::Kyber_PublicKeyInternal
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - validate_public_key_length
    - last
    - public_key_bytes
    - Botan::Kyber_Algos::decode_polynomial_vector
    - polynomial_vector_bytes
    - symmetric_primitives
    - first
    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:113,1
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:114,1
    - Dst: Kyber_Algos::encode_polynomial_vector<std::vector<uint8_t>>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:114,1
    - Dst: symmetric_primitives
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:115,1
    - Dst: std::move
      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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - mode
    - t
    - rho
    argTypes:
    - KyberConstants
    - KyberPolyVecNTT
    - KyberSeedRho
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 117
    functionName: Botan::Kyber_PublicKeyInternal::Kyber_PublicKeyInternal
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp
    functionUses: 0
    functionsReached:
    - Kyber_Algos::encode_polynomial_vector<std::vector<uint8_t>>
    - concat
    - std::move
    - symmetric_primitives
    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:135,1
    - Dst: Kyber_Algos::PolynomialSampler::sample_polynomial_vector_cbd_eta1
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:135,1
    - Dst: Kyber_Algos::PolynomialSampler::sample_polynomial_vector_cbd_eta2
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:136,1
    - Dst: Kyber_Algos::PolynomialSampler::sample_polynomial_cbd_eta2
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:137,1
    - Dst: inverse_ntt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:139,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:141,1
    - Dst: Botan::Kyber_Algos::polynomial_from_message
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:143,1
    - Dst: inverse_ntt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:144,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:147,1
    - Dst: Botan::Kyber_Algos::compress_ciphertext
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - out_ct
    - m
    - r
    - ' At'
    argTypes:
    - StrongSpan<KyberCompressedCiphertext>
    - StrongSpan<const KyberMessage>
    - StrongSpan<const KyberEncryptionRandomness>
    - KyberPolyMat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 129
    functionDepth: 4
    functionLinenumber: 129
    functionLinenumberEnd: 150
    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::polynomial_from_message
    - inverse_ntt
    - ntt
    - auto::reduce
    - Kyber_Algos::PolynomialSampler::sample_polynomial_vector_cbd_eta1
    - Kyber_Algos::PolynomialSampler::sample_polynomial_cbd_eta2
    - Botan::Kyber_Algos::compress_ciphertext
    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) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_Algos::decompress_ciphertext
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:159,1
    - Dst: inverse_ntt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:160,1
    - Dst: ntt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:160,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:160,1
    - Dst: reduce
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:161,1
    - Dst: Botan::Kyber_Algos::polynomial_to_message
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ct
    argTypes:
    - StrongSpan<const KyberCompressedCiphertext>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 158
    functionDepth: 4
    functionLinenumber: 158
    functionLinenumberEnd: 163
    functionName: Botan::Kyber_PrivateKeyInternal::indcpa_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::Kyber_Algos::decompress_ciphertext
    - inverse_ntt
    - ntt
    - reduce
    - Botan::Kyber_Algos::polynomial_to_message
    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:22,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:23,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - public_key
    - expected_length
    argTypes:
    - KyberSerializedPublicKey
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: Botan::validate_public_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp
    functionUses: 0
    functionsReached:
    - Botan::Invalid_Argument
    - KyberSerializedPublicKey::size
    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:22,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:23,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - public_key
    - expected_length
    argTypes:
    - KyberSerializedPublicKey
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: Botan::validate_public_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp
    functionUses: 0
    functionsReached:
    - Botan::Invalid_Argument
    - KyberSerializedPublicKey::size
    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:40,1
    - Dst: Botan::Kyber_Algos::decode_polynomial_vector
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:43,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:43,1
    - Dst: KyberConstants::polynomial_vector_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:43,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:44,1
    - Dst: KyberConstants::public_key_bytes
      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:45,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:46,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:48,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:48,1
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:50,1
    - Dst: std::make_shared<Kyber_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:53,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:53,1
    - Dst: std::make_shared<Kyber_PrivateKeyInternal>
      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: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:60,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:63,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:64,1
    - Dst: KyberInternalKeypair::first::H_public_key_bits_raw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:64,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:64,1
    - Dst: std::equal
      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: KyberInternalKeypair::first::H_public_key_bits_raw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:66,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:67,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - sk
    - mode
    argTypes:
    - std::span<const uint8_t>
    - KyberConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 71
    functionName: Botan::Expanded_Keypair_Codec::decode_keypair
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::make_shared<Kyber_PublicKeyInternal>
    - std::move
    - BufferSlicer::empty
    - KyberInternalKeypair::first::H_public_key_bits_raw
    - std::make_shared<Kyber_PrivateKeyInternal>
    - Botan::Kyber_Algos::decode_polynomial_vector
    - BOTAN_ARG_CHECK
    - KyberConstants::polynomial_vector_bytes
    - Botan::CT::scoped_poison
    - Botan::CT::unpoison_all
    - BOTAN_ASSERT
    - std::equal
    - KyberConstants::public_key_bytes
    - auto::size
    - BufferSlicer::take
    - BufferSlicer::copy
    - auto::begin
    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:74,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:75,1
    - Dst: KyberInternalKeypair::first::mode
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:76,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:77,1
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:78,1
    - Dst: Botan::Kyber_Algos::encode_polynomial_vector
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:78,1
    - Dst: KyberInternalKeypair::second::s
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:78,1
    - Dst: KyberInternalKeypair::first::public_key_bits_raw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:79,1
    - Dst: KyberInternalKeypair::first::H_public_key_bits_raw
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:80,1
    - Dst: KyberInternalKeypair::second::z
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:81,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - keypair
    argTypes:
    - KyberInternalKeypair
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 84
    functionName: Botan::Expanded_Keypair_Codec::encode_keypair
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp
    functionUses: 0
    functionsReached:
    - concat
    - KyberInternalKeypair::first::H_public_key_bits_raw
    - BOTAN_ASSERT_NONNULL
    - KyberInternalKeypair::second::z
    - Botan::CT::scoped_poison
    - KyberInternalKeypair::first::public_key_bits_raw
    - Botan::CT::unpoison
    - KyberInternalKeypair::second::s
    - Botan::Kyber_Algos::encode_polynomial_vector
    - KyberInternalKeypair::first::mode
    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:90,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:91,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:93,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:93,1
    - Dst: Botan::Kyber_Algos::expand_keypair
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:94,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:94,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:94,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: 95
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 95
    functionName: Botan::Seed_Expanding_Keypair_Codec::decode_keypair
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::move
    - BufferSlicer::empty
    - Botan::Kyber_Algos::expand_keypair
    - BufferSlicer::copy
    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:98,1
    - Dst: KyberInternalKeypair::second::seed
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:99,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:100,1
    - Dst: d::has_value
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:100,1
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:101,1
    - Dst: d::value
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - keypair
    argTypes:
    - KyberInternalKeypair
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 102
    functionName: Botan::Seed_Expanding_Keypair_Codec::encode_keypair
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp
    functionUses: 0
    functionsReached:
    - concat
    - KyberInternalKeypair::second::seed
    - BOTAN_ASSERT_NONNULL
    - BOTAN_ARG_CHECK
    - d::value
    - 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:105,1
    - Dst: validate_public_key_length
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:106,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:106,1
    - Dst: public_key_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:106,1
    - Dst: symmetric_primitives
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:107,1
    - Dst: Botan::Kyber_Algos::decode_polynomial_vector
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:108,1
    - Dst: first
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:109,1
    - Dst: polynomial_vector_bytes
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:109,1
    - Dst: last
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - mode
    - public_key
    argTypes:
    - KyberConstants
    - KyberSerializedPublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: Botan::Kyber_PublicKeyInternal::Kyber_PublicKeyInternal
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - validate_public_key_length
    - last
    - public_key_bytes
    - Botan::Kyber_Algos::decode_polynomial_vector
    - polynomial_vector_bytes
    - symmetric_primitives
    - first
    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:113,1
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:114,1
    - Dst: Kyber_Algos::encode_polynomial_vector<std::vector<uint8_t>>
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:114,1
    - Dst: symmetric_primitives
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:115,1
    - Dst: std::move
      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
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - mode
    - t
    - rho
    argTypes:
    - KyberConstants
    - KyberPolyVecNTT
    - KyberSeedRho
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 117
    functionName: Botan::Kyber_PublicKeyInternal::Kyber_PublicKeyInternal
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp
    functionUses: 0
    functionsReached:
    - Kyber_Algos::encode_polynomial_vector<std::vector<uint8_t>>
    - concat
    - std::move
    - symmetric_primitives
    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:135,1
    - Dst: Kyber_Algos::PolynomialSampler::sample_polynomial_vector_cbd_eta1
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:135,1
    - Dst: Kyber_Algos::PolynomialSampler::sample_polynomial_vector_cbd_eta2
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:136,1
    - Dst: Kyber_Algos::PolynomialSampler::sample_polynomial_cbd_eta2
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:137,1
    - Dst: inverse_ntt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:139,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:141,1
    - Dst: Botan::Kyber_Algos::polynomial_from_message
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:143,1
    - Dst: inverse_ntt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:144,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:147,1
    - Dst: Botan::Kyber_Algos::compress_ciphertext
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - out_ct
    - m
    - r
    - ' At'
    argTypes:
    - StrongSpan<KyberCompressedCiphertext>
    - StrongSpan<const KyberMessage>
    - StrongSpan<const KyberEncryptionRandomness>
    - KyberPolyMat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 129
    functionDepth: 4
    functionLinenumber: 129
    functionLinenumberEnd: 150
    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::polynomial_from_message
    - inverse_ntt
    - ntt
    - auto::reduce
    - Kyber_Algos::PolynomialSampler::sample_polynomial_vector_cbd_eta1
    - Kyber_Algos::PolynomialSampler::sample_polynomial_cbd_eta2
    - Botan::Kyber_Algos::compress_ciphertext
    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) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_Algos::decompress_ciphertext
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:159,1
    - Dst: inverse_ntt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:160,1
    - Dst: ntt
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:160,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:160,1
    - Dst: reduce
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:161,1
    - Dst: Botan::Kyber_Algos::polynomial_to_message
      Src: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ct
    argTypes:
    - StrongSpan<const KyberCompressedCiphertext>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 158
    functionDepth: 4
    functionLinenumber: 158
    functionLinenumberEnd: 163
    functionName: Botan::Kyber_PrivateKeyInternal::indcpa_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/kyber/kyber_common/kyber_keys.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::Kyber_Algos::decompress_ciphertext
    - inverse_ntt
    - ntt
    - reduce
    - Botan::Kyber_Algos::polynomial_to_message
    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:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint64_t, WORDS_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    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: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: 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: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::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: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    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: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    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: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    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:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint64_t, WORDS_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    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: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: 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: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::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: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    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: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    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: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    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:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 66
    functionName: Botan::Scalar448
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.h
    functionUses: 4
    functionsReached:
    - Botan::words_for_bits
    - Botan::ceil_tobytes
    - Botan::copy_mem
    - Botan::store_le
    - std::span
    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: 1
    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:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 66
    functionName: Botan::Scalar448
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.h
    functionUses: 4
    functionsReached:
    - Botan::words_for_bits
    - Botan::ceil_tobytes
    - Botan::copy_mem
    - Botan::store_le
    - std::span
    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: 1
    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:79,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:87,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:107,1
    - Dst: Botan::reduce_after_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:111,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, 14>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 112
    functionName: Botan::reduce_after_mul
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - Botan::word_add
    - Botan::reduce_after_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::comba_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:118,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:118,1
    - Dst: std::span<const uint64_t, WORDS_448>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:118,1
    - Dst: std::span<const uint64_t, WORDS_448>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:118,1
    - Dst: Botan::reduce_after_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:119,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: 120
      start: 114
    functionDepth: 3
    functionLinenumber: 114
    functionLinenumberEnd: 120
    functionName: Botan::gf_mul
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - Botan::comba_mul
    - std::span<const uint64_t, WORDS_448>::data
    - std::array::data
    - Botan::reduce_after_mul
    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:124,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:124,1
    - Dst: std::span<const uint64_t, WORDS_448>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:124,1
    - Dst: Botan::reduce_after_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:125,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: 126
      start: 122
    functionDepth: 3
    functionLinenumber: 122
    functionLinenumberEnd: 126
    functionName: Botan::gf_square
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - Botan::comba_sqr
    - std::span<const uint64_t, WORDS_448>::data
    - std::array::data
    - Botan::reduce_after_mul
    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:135,1
    - Dst: Botan::reduce_after_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    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: 140
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 140
    functionName: Botan::gf_add
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - Botan::word_add
    - Botan::reduce_after_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:155,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:163,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:164,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:165,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:166,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:167,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:168,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:169,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:175,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:176,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:177,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    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: 182
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 182
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::clear_mem
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:189,1
    - Dst: Botan::gf_square
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:193,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:196,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - out
    - a
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 199
    functionName: Botan::gf_inv
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - Botan::gf_mul
    - Botan::clear_mem
    - Botan::gf_square
    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:219,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:222,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:222,1
    - Dst: std::span<const uint64_t, WORDS_448>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:222,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint64_t, WORDS_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 224
    functionName: Botan::to_canonical
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - Botan::word_sub
    - std::span<const uint64_t, WORDS_448>::data
    - std::array::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: 2
    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:79,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:87,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:107,1
    - Dst: Botan::reduce_after_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:111,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, 14>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 112
    functionName: Botan::reduce_after_mul
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 2
    functionsReached:
    - Botan::word_add
    - Botan::reduce_after_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::comba_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:118,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:118,1
    - Dst: std::span<const uint64_t, WORDS_448>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:118,1
    - Dst: std::span<const uint64_t, WORDS_448>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:118,1
    - Dst: Botan::reduce_after_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:119,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: 120
      start: 114
    functionDepth: 3
    functionLinenumber: 114
    functionLinenumberEnd: 120
    functionName: Botan::gf_mul
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 1
    functionsReached:
    - Botan::comba_mul
    - std::span<const uint64_t, WORDS_448>::data
    - std::array::data
    - Botan::reduce_after_mul
    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:124,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:124,1
    - Dst: std::span<const uint64_t, WORDS_448>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:124,1
    - Dst: Botan::reduce_after_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:125,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: 126
      start: 122
    functionDepth: 3
    functionLinenumber: 122
    functionLinenumberEnd: 126
    functionName: Botan::gf_square
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 1
    functionsReached:
    - Botan::comba_sqr
    - std::span<const uint64_t, WORDS_448>::data
    - std::array::data
    - Botan::reduce_after_mul
    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:135,1
    - Dst: Botan::reduce_after_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    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: 140
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 140
    functionName: Botan::gf_add
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - Botan::word_add
    - Botan::reduce_after_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:155,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:163,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:164,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:165,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:166,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:167,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:168,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:169,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:175,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:176,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:177,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    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: 182
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 182
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::clear_mem
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:189,1
    - Dst: Botan::gf_square
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:193,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:196,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - out
    - a
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 199
    functionName: Botan::gf_inv
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - Botan::gf_mul
    - Botan::clear_mem
    - Botan::gf_square
    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:219,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:222,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:222,1
    - Dst: std::span<const uint64_t, WORDS_448>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:222,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint64_t, WORDS_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 224
    functionName: Botan::to_canonical
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - Botan::word_sub
    - std::span<const uint64_t, WORDS_448>::data
    - std::array::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:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::span<const uint8_t, BYTES_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 230
    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:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - least_sig_word
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 235
    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:238,1
    - Dst: to_canonical
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::span<uint8_t, BYTES_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 239
    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:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 245
    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: Botan::CT::conditional_swap
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - b
    - ' other'
    argTypes:
    - bool
    - Gf448Elem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 251
    functionName: Botan::Gf448Elem::ct_cond_swap
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::conditional_swap
    linkageType: ''
    returnType: void
    signature: void Gf448Elem::ct_cond_swap(bool b, Gf448Elem& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::conditional_assign_mem
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:254,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:254,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:254,1
    - Dst: m_x::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - ' other'
    argTypes:
    - bool
    - Gf448Elem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 255
    functionName: Botan::Gf448Elem::ct_cond_assign
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - m_x::data
    - static_cast<uint64_t>
    - Botan::CT::conditional_assign_mem
    - data
    linkageType: ''
    returnType: void
    signature: void Gf448Elem::ct_cond_assign(bool b, const Gf448Elem& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Gf448Elem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 261
    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:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Gf448Elem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 267
    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:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 273
    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:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Gf448Elem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 279
    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:283,1
    - Dst: gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Gf448Elem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 286
    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:289,1
    - Dst: to_canonical
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:290,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:291,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:291,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Gf448Elem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 292
    functionName: Gf448Elem::operator==(const Gf448Elem& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - Botan::CT::is_equal
    - to_canonical
    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:295,1
    - Dst: Botan::CT::all_zeros
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:297,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 298
    functionName: Botan::Gf448Elem::is_zero
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - Botan::CT::all_zeros
    - to_canonical
    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:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 303
    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<std::array<uint64_t, WORDS_448>>
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:306,1
    - Dst: to_canonical
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:307,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:308,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:308,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::span<const uint8_t, BYTES_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 309
    functionName: Botan::Gf448Elem::bytes_are_canonical_representation
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - Botan::CT::is_equal
    - load_le<std::array<uint64_t, WORDS_448>>
    - to_canonical
    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_square
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:313,1
    - Dst: Gf448Elem::words
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:313,1
    - Dst: words
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' elem'
    argTypes:
    - Gf448Elem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 315
    functionName: Botan::square
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - words
    - Botan::gf_square
    - Gf448Elem::words
    linkageType: ''
    returnType: Gf448Elem
    signature: Gf448Elem square(const Gf448Elem& elem)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_square
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:322,1
    - Dst: Gf448Elem::words
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:322,1
    - Dst: Gf448Elem::words
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:322,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:324,1
    - Dst: Gf448Elem::words
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:324,1
    - Dst: Gf448Elem::words
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:324,1
    - Dst: words
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:324,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' elem'
    argTypes:
    - Gf448Elem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 329
    functionName: Botan::root
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - Botan::gf_mul
    - words
    - Botan::gf_square
    - 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: 4
    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:79,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:87,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:107,1
    - Dst: Botan::reduce_after_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:111,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, 14>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 112
    functionName: Botan::reduce_after_mul
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 4
    functionsReached:
    - Botan::word_add
    - Botan::reduce_after_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::comba_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:118,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:118,1
    - Dst: std::span<const uint64_t, WORDS_448>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:118,1
    - Dst: std::span<const uint64_t, WORDS_448>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:118,1
    - Dst: Botan::reduce_after_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:119,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: 120
      start: 114
    functionDepth: 3
    functionLinenumber: 114
    functionLinenumberEnd: 120
    functionName: Botan::gf_mul
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 3
    functionsReached:
    - Botan::comba_mul
    - std::span<const uint64_t, WORDS_448>::data
    - std::array::data
    - Botan::reduce_after_mul
    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:124,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:124,1
    - Dst: std::span<const uint64_t, WORDS_448>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:124,1
    - Dst: Botan::reduce_after_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:125,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: 126
      start: 122
    functionDepth: 3
    functionLinenumber: 122
    functionLinenumberEnd: 126
    functionName: Botan::gf_square
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 4
    functionsReached:
    - Botan::comba_sqr
    - std::span<const uint64_t, WORDS_448>::data
    - std::array::data
    - Botan::reduce_after_mul
    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:135,1
    - Dst: Botan::reduce_after_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    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: 140
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 140
    functionName: Botan::gf_add
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - Botan::word_add
    - Botan::reduce_after_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:155,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:163,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:164,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:165,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:166,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:167,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:168,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:169,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:175,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:176,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:177,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    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: 182
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 182
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::clear_mem
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:189,1
    - Dst: Botan::gf_square
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:193,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:196,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - out
    - a
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 199
    functionName: Botan::gf_inv
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - Botan::gf_mul
    - Botan::clear_mem
    - Botan::gf_square
    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:219,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:222,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:222,1
    - Dst: std::span<const uint64_t, WORDS_448>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:222,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint64_t, WORDS_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 224
    functionName: Botan::to_canonical
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - Botan::word_sub
    - std::span<const uint64_t, WORDS_448>::data
    - std::array::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: 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:79,1
    - Dst: Botan::word_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:87,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:107,1
    - Dst: Botan::reduce_after_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:111,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, 14>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 112
    functionName: Botan::reduce_after_mul
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 6
    functionsReached:
    - Botan::word_add
    - Botan::reduce_after_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::comba_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:118,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:118,1
    - Dst: std::span<const uint64_t, WORDS_448>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:118,1
    - Dst: std::span<const uint64_t, WORDS_448>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:118,1
    - Dst: Botan::reduce_after_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:119,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: 120
      start: 114
    functionDepth: 3
    functionLinenumber: 114
    functionLinenumberEnd: 120
    functionName: Botan::gf_mul
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 4
    functionsReached:
    - Botan::comba_mul
    - std::span<const uint64_t, WORDS_448>::data
    - std::array::data
    - Botan::reduce_after_mul
    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:124,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:124,1
    - Dst: std::span<const uint64_t, WORDS_448>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:124,1
    - Dst: Botan::reduce_after_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:125,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: 126
      start: 122
    functionDepth: 3
    functionLinenumber: 122
    functionLinenumberEnd: 126
    functionName: Botan::gf_square
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 5
    functionsReached:
    - Botan::comba_sqr
    - std::span<const uint64_t, WORDS_448>::data
    - std::array::data
    - Botan::reduce_after_mul
    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:135,1
    - Dst: Botan::reduce_after_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    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: 140
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 140
    functionName: Botan::gf_add
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - Botan::word_add
    - Botan::reduce_after_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:155,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:163,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:164,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:165,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:166,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:167,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:168,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:169,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:175,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:176,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:177,1
    - Dst: Botan::word_sub
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    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: 182
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 182
    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: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::clear_mem
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:189,1
    - Dst: Botan::gf_square
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:193,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:196,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - out
    - a
    argTypes:
    - std::span<uint64_t, WORDS_448>
    - std::span<const uint64_t, WORDS_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 199
    functionName: Botan::gf_inv
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - Botan::gf_mul
    - Botan::clear_mem
    - Botan::gf_square
    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:219,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:222,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:222,1
    - Dst: std::span<const uint64_t, WORDS_448>::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:222,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - in
    argTypes:
    - std::span<const uint64_t, WORDS_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 224
    functionName: Botan::to_canonical
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - Botan::word_sub
    - std::span<const uint64_t, WORDS_448>::data
    - std::array::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:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::span<const uint8_t, BYTES_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 230
    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:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - least_sig_word
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 235
    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:238,1
    - Dst: to_canonical
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::span<uint8_t, BYTES_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 239
    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:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 245
    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: Botan::CT::conditional_swap
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - b
    - ' other'
    argTypes:
    - bool
    - Gf448Elem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 251
    functionName: Botan::Gf448Elem::ct_cond_swap
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::conditional_swap
    linkageType: ''
    returnType: void
    signature: void Gf448Elem::ct_cond_swap(bool b, Gf448Elem& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::conditional_assign_mem
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:254,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:254,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:254,1
    - Dst: m_x::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - ' other'
    argTypes:
    - bool
    - Gf448Elem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 255
    functionName: Botan::Gf448Elem::ct_cond_assign
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - m_x::data
    - static_cast<uint64_t>
    - Botan::CT::conditional_assign_mem
    - data
    linkageType: ''
    returnType: void
    signature: void Gf448Elem::ct_cond_assign(bool b, const Gf448Elem& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf_add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:259,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Gf448Elem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 261
    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:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Gf448Elem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 267
    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:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 273
    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:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Gf448Elem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 279
    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:283,1
    - Dst: gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Gf448Elem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 286
    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:289,1
    - Dst: to_canonical
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:290,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:291,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:291,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Gf448Elem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 292
    functionName: Gf448Elem::operator==(const Gf448Elem& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - Botan::CT::is_equal
    - to_canonical
    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:295,1
    - Dst: Botan::CT::all_zeros
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:297,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 298
    functionName: Botan::Gf448Elem::is_zero
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - Botan::CT::all_zeros
    - to_canonical
    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:301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 303
    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<std::array<uint64_t, WORDS_448>>
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:306,1
    - Dst: to_canonical
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:307,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:308,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:308,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::span<const uint8_t, BYTES_448>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 309
    functionName: Botan::Gf448Elem::bytes_are_canonical_representation
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - Botan::CT::is_equal
    - load_le<std::array<uint64_t, WORDS_448>>
    - to_canonical
    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_square
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:313,1
    - Dst: Gf448Elem::words
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:313,1
    - Dst: words
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' elem'
    argTypes:
    - Gf448Elem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 315
    functionName: Botan::square
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - words
    - Botan::gf_square
    - Gf448Elem::words
    linkageType: ''
    returnType: Gf448Elem
    signature: Gf448Elem square(const Gf448Elem& elem)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_square
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:322,1
    - Dst: Gf448Elem::words
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:322,1
    - Dst: Gf448Elem::words
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:322,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:324,1
    - Dst: Gf448Elem::words
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:324,1
    - Dst: Gf448Elem::words
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:324,1
    - Dst: words
      Src: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp:324,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' elem'
    argTypes:
    - Gf448Elem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 329
    functionName: Botan::root
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_gf.cpp
    functionUses: 0
    functionsReached:
    - Botan::gf_mul
    - words
    - Botan::gf_square
    - 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:
    - std::array<word, 1>
    - std::span<const word, S>::size
    - std::array::data
    - std::make_pair
    - word
    - Botan::bigint_shr2
    - Botan::copy_mem
    - std::span<const word, S>::data
    - std::span
    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: 1
    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: 1
    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: 2
    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::span<const word, S>::size
    - std::array::data
    - std::array::size
    - std::span<const word, S>::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:
    - Botan::bigint_add2
    - std::span<const word, Scalar448::WORDS>::data
    - std::array::data
    - std::span<const word, Scalar448::WORDS>::size
    - std::array::size
    - Botan::copy_mem
    - Botan::CT::unpoison
    - BOTAN_ASSERT
    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: 2
    functionLinenumber: 85
    functionLinenumberEnd: 95
    functionName: Botan::ct_subtract_L_if_bigger
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - std::array::data
    - Botan::bigint_sub2
    - std::span<word, Scalar448::WORDS>::data
    - auto::as_choice
    - auto::select_n
    - std::array::size
    - Botan::copy_mem
    - Botan::big_l_words
    - auto::size
    - Botan::sha512_msg_expand
    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::load_le
    - Botan::words_for_bits
    - Botan::copy_mem
    - 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: 3
    functionLinenumber: 113
    functionLinenumberEnd: 143
    functionName: Botan::ct_reduce_mod_L
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::CT::all_zeros
    - Botan::data
    - Botan::div_mod_2_446
    - Botan::mul_c
    - Botan::add
    - Botan::size
    - std::span
    - Botan::ct_subtract_L_if_bigger
    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:
    - std::array<word, 1>
    - std::span<const word, S>::size
    - std::array::data
    - std::make_pair
    - word
    - Botan::bigint_shr2
    - Botan::copy_mem
    - std::span<const word, S>::data
    - std::span
    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: 1
    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: 1
    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: 2
    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::span<const word, S>::size
    - std::array::data
    - std::array::size
    - std::span<const word, S>::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:
    - Botan::bigint_add2
    - std::span<const word, Scalar448::WORDS>::data
    - std::array::data
    - std::span<const word, Scalar448::WORDS>::size
    - std::array::size
    - Botan::copy_mem
    - Botan::CT::unpoison
    - BOTAN_ASSERT
    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: 2
    functionLinenumber: 85
    functionLinenumberEnd: 95
    functionName: Botan::ct_subtract_L_if_bigger
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 1
    functionsReached:
    - auto::data
    - std::array::data
    - Botan::bigint_sub2
    - std::span<word, Scalar448::WORDS>::data
    - auto::as_choice
    - auto::select_n
    - std::array::size
    - Botan::copy_mem
    - Botan::big_l_words
    - auto::size
    - Botan::sha512_msg_expand
    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::load_le
    - Botan::words_for_bits
    - Botan::copy_mem
    - 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: 3
    functionLinenumber: 113
    functionLinenumberEnd: 143
    functionName: Botan::ct_reduce_mod_L
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::CT::all_zeros
    - Botan::data
    - Botan::div_mod_2_446
    - Botan::mul_c
    - Botan::add
    - Botan::size
    - std::span
    - Botan::ct_subtract_L_if_bigger
    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:
    - std::span<const uint8_t>::size
    - copy_mem
    - std::span<const uint8_t, 114>
    - ct_reduce_mod_L
    - BOTAN_ARG_CHECK
    - bytes_to_words
    - std::span
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:164,1
    - Dst: ct_subtract_L_if_bigger
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:165,1
    - Dst: Scalar448
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Scalar448
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 167
    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:172,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:172,1
    - Dst: std::array::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:173,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:174,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:175,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:176,1
    - Dst: m_scalar_words::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:177,1
    - Dst: m_scalar_words::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:178,1
    - Dst: m_scalar_words::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:179,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:180,1
    - Dst: std::array::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:181,1
    - Dst: Scalar448
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:183,1
    - Dst: ct_reduce_mod_L
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Scalar448
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 184
    functionName: Scalar448::operator*(const Scalar448& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 0
    functionsReached:
    - std::array::data
    - bigint_mul
    - data
    - m_scalar_words::data
    - ct_reduce_mod_L
    - size
    - m_scalar_words::size
    - std::array::size
    - Scalar448
    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:187,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:187,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:189,1
    - Dst: Botan::CT::all_zeros
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:190,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:190,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:190,1
    - Dst: bytes_to_words
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:191,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:191,1
    - Dst: Botan::CT::Mask::from_choice
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:192,1
    - Dst: ct_subtract_L_if_bigger
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:192,1
    - Dst: as_bool
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 194
    functionName: Botan::Scalar448::bytes_are_reduced
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - Botan::CT::all_zeros
    - Botan::CT::Mask::from_choice
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::subspan
    - BOTAN_ARG_CHECK
    - bytes_to_words
    - ct_subtract_L_if_bigger
    - auto::size
    - as_bool
    - std::span<const uint8_t>::first
    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:
    - std::array<word, 1>
    - std::span<const word, S>::size
    - std::array::data
    - std::make_pair
    - word
    - Botan::bigint_shr2
    - Botan::copy_mem
    - std::span<const word, S>::data
    - std::span
    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: 1
    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: 1
    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: 2
    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::span<const word, S>::size
    - std::array::data
    - std::array::size
    - std::span<const word, S>::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:
    - Botan::bigint_add2
    - std::span<const word, Scalar448::WORDS>::data
    - std::array::data
    - std::span<const word, Scalar448::WORDS>::size
    - std::array::size
    - Botan::copy_mem
    - Botan::CT::unpoison
    - BOTAN_ASSERT
    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: 2
    functionLinenumber: 85
    functionLinenumberEnd: 95
    functionName: Botan::ct_subtract_L_if_bigger
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 2
    functionsReached:
    - auto::data
    - std::array::data
    - Botan::bigint_sub2
    - std::span<word, Scalar448::WORDS>::data
    - auto::as_choice
    - auto::select_n
    - std::array::size
    - Botan::copy_mem
    - Botan::big_l_words
    - auto::size
    - Botan::sha512_msg_expand
    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::load_le
    - Botan::words_for_bits
    - Botan::copy_mem
    - 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: 3
    functionLinenumber: 113
    functionLinenumberEnd: 143
    functionName: Botan::ct_reduce_mod_L
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::CT::all_zeros
    - Botan::data
    - Botan::div_mod_2_446
    - Botan::mul_c
    - Botan::add
    - Botan::size
    - std::span
    - Botan::ct_subtract_L_if_bigger
    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:
    - std::array<word, 1>
    - std::span<const word, S>::size
    - std::array::data
    - std::make_pair
    - word
    - Botan::bigint_shr2
    - Botan::copy_mem
    - std::span<const word, S>::data
    - std::span
    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: 1
    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: 1
    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: 2
    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::span<const word, S>::size
    - std::array::data
    - std::array::size
    - std::span<const word, S>::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:
    - Botan::bigint_add2
    - std::span<const word, Scalar448::WORDS>::data
    - std::array::data
    - std::span<const word, Scalar448::WORDS>::size
    - std::array::size
    - Botan::copy_mem
    - Botan::CT::unpoison
    - BOTAN_ASSERT
    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: 2
    functionLinenumber: 85
    functionLinenumberEnd: 95
    functionName: Botan::ct_subtract_L_if_bigger
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 3
    functionsReached:
    - auto::data
    - std::array::data
    - Botan::bigint_sub2
    - std::span<word, Scalar448::WORDS>::data
    - auto::as_choice
    - auto::select_n
    - std::array::size
    - Botan::copy_mem
    - Botan::big_l_words
    - auto::size
    - Botan::sha512_msg_expand
    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::load_le
    - Botan::words_for_bits
    - Botan::copy_mem
    - 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: 3
    functionLinenumber: 113
    functionLinenumberEnd: 143
    functionName: Botan::ct_reduce_mod_L
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::CT::all_zeros
    - Botan::data
    - Botan::div_mod_2_446
    - Botan::mul_c
    - Botan::add
    - Botan::size
    - std::span
    - Botan::ct_subtract_L_if_bigger
    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:
    - std::span<const uint8_t>::size
    - copy_mem
    - std::span<const uint8_t, 114>
    - ct_reduce_mod_L
    - BOTAN_ARG_CHECK
    - bytes_to_words
    - std::span
    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: 1
    BranchProfiles: []
    Callsites:
    - Dst: add
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:164,1
    - Dst: ct_subtract_L_if_bigger
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:165,1
    - Dst: Scalar448
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Scalar448
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 163
    functionDepth: 2
    functionLinenumber: 163
    functionLinenumberEnd: 167
    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:172,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:172,1
    - Dst: std::array::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:173,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:174,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:175,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:176,1
    - Dst: m_scalar_words::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:177,1
    - Dst: m_scalar_words::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:178,1
    - Dst: m_scalar_words::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:179,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:180,1
    - Dst: std::array::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:181,1
    - Dst: Scalar448
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:183,1
    - Dst: ct_reduce_mod_L
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Scalar448
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 184
    functionName: Scalar448::operator*(const Scalar448& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 0
    functionsReached:
    - std::array::data
    - bigint_mul
    - data
    - m_scalar_words::data
    - ct_reduce_mod_L
    - size
    - m_scalar_words::size
    - std::array::size
    - Scalar448
    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:187,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:187,1
    - Dst: std::span<const uint8_t>::subspan
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:189,1
    - Dst: Botan::CT::all_zeros
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:190,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:190,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:190,1
    - Dst: bytes_to_words
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:191,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:191,1
    - Dst: Botan::CT::Mask::from_choice
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:192,1
    - Dst: ct_subtract_L_if_bigger
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:192,1
    - Dst: as_bool
      Src: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 194
    functionName: Botan::Scalar448::bytes_are_reduced
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/curve448_scalar.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - Botan::CT::all_zeros
    - Botan::CT::Mask::from_choice
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::subspan
    - BOTAN_ARG_CHECK
    - bytes_to_words
    - ct_subtract_L_if_bigger
    - auto::size
    - as_bool
    - std::span<const uint8_t>::first
    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::x448_basepoint
    - Botan::decode_scalar
    - Botan::copy_mem
    - Botan::encode_point
    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
    - Botan::BER_Decoder
    - secure_vector::size
    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::x448_basepoint
    - Botan::decode_scalar
    - Botan::copy_mem
    - Botan::encode_point
    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
    - Botan::BER_Decoder
    - secure_vector::size
    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:
    - AlgorithmIdentifier
    - object_identifier
    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:
    - begin
    - end
    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::raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.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::X448_PublicKey::public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp
    functionUses: 0
    functionsReached:
    - Botan::X448_PublicKey::raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> X448_PublicKey::public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<X448_PrivateKey>
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: Botan::X448_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<X448_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> X448_PublicKey::generate_another(RandomNumberGenerator&
      rng) 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: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: Botan::X448_PublicKey::X448_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X448_PublicKey::X448_PublicKey(const AlgorithmIdentifier& /*alg_id*/,
      std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:61,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:61,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pub
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: Botan::X448_PublicKey::X448_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp
    functionUses: 0
    functionsReached:
    - copy_mem
    - BOTAN_ARG_CHECK
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void X448_PublicKey::X448_PublicKey(std::span<const uint8_t> pub)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ber_decode_sk
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - key_bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: Botan::X448_PrivateKey::X448_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp
    functionUses: 0
    functionsReached:
    - ber_decode_sk
    linkageType: ''
    returnType: void
    signature: void X448_PrivateKey::X448_PrivateKey(const AlgorithmIdentifier& /*alg_id*/,
      std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:69,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:69,1
    - Dst: assign
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:70,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:70,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:70,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:71,1
    - Dst: x448_basepoint_from_data
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:72,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:72,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - secret_key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: Botan::X448_PrivateKey::X448_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp
    functionUses: 0
    functionsReached:
    - assign
    - std::span<const uint8_t>::size
    - BOTAN_ARG_CHECK
    - Botan::CT::scoped_poison
    - x448_basepoint_from_data
    - std::span<const uint8_t>::begin
    - std::span<const uint8_t>::end
    - Botan::CT::unpoison
    - std::span
    linkageType: ''
    returnType: void
    signature: void X448_PrivateKey::X448_PrivateKey(std::span<const uint8_t> secret_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: Botan::X448_PrivateKey::X448_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp
    functionUses: 0
    functionsReached:
    - random_vec
    linkageType: ''
    returnType: void
    signature: void X448_PrivateKey::X448_PrivateKey(RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<X448_PublicKey>
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:79,1
    - Dst: public_value
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:79,1
    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::X448_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<X448_PublicKey>
    - public_value
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> X448_PrivateKey::public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.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::X448_PrivateKey::private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp
    functionUses: 0
    functionsReached:
    - DER_Encoder
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> X448_PrivateKey::private_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:88,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:88,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:89,1
    - Dst: x448_basepoint_from_data
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:90,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:90,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:91,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:91,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:91,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: Botan::X448_PrivateKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::CT::is_equal
    - std::array::data
    - data
    - size
    - Botan::CT::scoped_poison
    - x448_basepoint_from_data
    - std::span
    linkageType: ''
    returnType: bool
    signature: bool X448_PrivateKey::check_key(RandomNumberGenerator& /*rng*/, bool
      /*strong*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:102,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:102,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:103,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sk
    - kdf
    argTypes:
    - std::span<const uint8_t>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: Botan::X448_KA_Operation::X448_KA_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - BOTAN_ARG_CHECK
    - std::span<const uint8_t>::begin
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void X448_KA_Operation(std::span<const uint8_t> sk, std::string_view
      kdf)
  - 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::X448_KA_Operation::agreed_value_size
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t agreed_value_size() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:109,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:112,1
    - Dst: std::span::size
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:112,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:113,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:113,1
    - Dst: decode_scalar
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:114,1
    - Dst: decode_point
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:115,1
    - Dst: encode_point
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:117,1
    - Dst: x448
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:117,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:118,1
    - Dst: Botan::CT::all_zeros
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:130,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:130,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:130,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - w_data
    - w_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 135
    functionName: Botan::X448_KA_Operation::raw_agree
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::CT::all_zeros
    - std::span::size
    - x448
    - auto::data
    - size
    - BOTAN_ARG_CHECK
    - decode_scalar
    - Botan::CT::scoped_poison
    - Invalid_Argument
    - decode_point
    - encode_point
    - Botan::CT::unpoison
    - auto::size
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> raw_agree(const uint8_t w_data[], size_t w_len)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:102,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:102,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:103,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sk
    - kdf
    argTypes:
    - std::span<const uint8_t>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: Botan::X448_KA_Operation::X448_KA_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - BOTAN_ARG_CHECK
    - std::span<const uint8_t>::begin
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void X448_KA_Operation(std::span<const uint8_t> sk, std::string_view
      kdf)
  - 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::X448_KA_Operation::agreed_value_size
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t agreed_value_size() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:109,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:112,1
    - Dst: std::span::size
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:112,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:113,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:113,1
    - Dst: decode_scalar
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:114,1
    - Dst: decode_point
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:115,1
    - Dst: encode_point
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:117,1
    - Dst: x448
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:117,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:118,1
    - Dst: Botan::CT::all_zeros
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:130,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:130,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:130,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - w_data
    - w_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 135
    functionName: Botan::X448_KA_Operation::raw_agree
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::CT::all_zeros
    - std::span::size
    - x448
    - auto::data
    - size
    - BOTAN_ARG_CHECK
    - decode_scalar
    - Botan::CT::scoped_poison
    - Invalid_Argument
    - decode_point
    - encode_point
    - Botan::CT::unpoison
    - auto::size
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> raw_agree(const uint8_t w_data[], size_t w_len)
      override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:146,1
    - Dst: std::make_unique<X448_KA_Operation>
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:147,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:149,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:149,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 150
    functionName: Botan::X448_PrivateKey::create_key_agreement_op
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<X448_KA_Operation>
    - Provider_Not_Found
    - algo_name
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Key_Agreement>
    signature: "std::unique_ptr<PK_Ops::Key_Agreement> X448_PrivateKey::create_key_agreement_op(RandomNumberGenerator&
      /*rng*/,\n                                                                                std::string_view
      params,\n                                                                                std::string_view
      provider) const"
  - 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::x448_basepoint
    - Botan::decode_scalar
    - Botan::copy_mem
    - Botan::encode_point
    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
    - Botan::BER_Decoder
    - secure_vector::size
    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::x448_basepoint
    - Botan::decode_scalar
    - Botan::copy_mem
    - Botan::encode_point
    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
    - Botan::BER_Decoder
    - secure_vector::size
    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:
    - AlgorithmIdentifier
    - object_identifier
    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: 1
    functionsReached:
    - begin
    - end
    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::raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.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::X448_PublicKey::public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp
    functionUses: 0
    functionsReached:
    - Botan::X448_PublicKey::raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> X448_PublicKey::public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<X448_PrivateKey>
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: Botan::X448_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<X448_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> X448_PublicKey::generate_another(RandomNumberGenerator&
      rng) 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: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: Botan::X448_PublicKey::X448_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X448_PublicKey::X448_PublicKey(const AlgorithmIdentifier& /*alg_id*/,
      std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:61,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:61,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pub
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: Botan::X448_PublicKey::X448_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp
    functionUses: 0
    functionsReached:
    - copy_mem
    - BOTAN_ARG_CHECK
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void X448_PublicKey::X448_PublicKey(std::span<const uint8_t> pub)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ber_decode_sk
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - key_bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: Botan::X448_PrivateKey::X448_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp
    functionUses: 0
    functionsReached:
    - ber_decode_sk
    linkageType: ''
    returnType: void
    signature: void X448_PrivateKey::X448_PrivateKey(const AlgorithmIdentifier& /*alg_id*/,
      std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:69,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:69,1
    - Dst: assign
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:70,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:70,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:70,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:71,1
    - Dst: x448_basepoint_from_data
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:72,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:72,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - secret_key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: Botan::X448_PrivateKey::X448_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp
    functionUses: 0
    functionsReached:
    - assign
    - std::span<const uint8_t>::size
    - BOTAN_ARG_CHECK
    - Botan::CT::scoped_poison
    - x448_basepoint_from_data
    - std::span<const uint8_t>::begin
    - std::span<const uint8_t>::end
    - Botan::CT::unpoison
    - std::span
    linkageType: ''
    returnType: void
    signature: void X448_PrivateKey::X448_PrivateKey(std::span<const uint8_t> secret_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: Botan::X448_PrivateKey::X448_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp
    functionUses: 0
    functionsReached:
    - random_vec
    linkageType: ''
    returnType: void
    signature: void X448_PrivateKey::X448_PrivateKey(RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<X448_PublicKey>
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:79,1
    - Dst: public_value
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:79,1
    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::X448_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<X448_PublicKey>
    - public_value
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> X448_PrivateKey::public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.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::X448_PrivateKey::private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp
    functionUses: 0
    functionsReached:
    - DER_Encoder
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> X448_PrivateKey::private_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:88,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:88,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:89,1
    - Dst: x448_basepoint_from_data
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:90,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:90,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:91,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:91,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:91,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 92
    functionName: Botan::X448_PrivateKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::CT::is_equal
    - std::array::data
    - data
    - size
    - Botan::CT::scoped_poison
    - x448_basepoint_from_data
    - std::span
    linkageType: ''
    returnType: bool
    signature: bool X448_PrivateKey::check_key(RandomNumberGenerator& /*rng*/, bool
      /*strong*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:102,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:102,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:103,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sk
    - kdf
    argTypes:
    - std::span<const uint8_t>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: Botan::X448_KA_Operation::X448_KA_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - BOTAN_ARG_CHECK
    - std::span<const uint8_t>::begin
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void X448_KA_Operation(std::span<const uint8_t> sk, std::string_view
      kdf)
  - 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::X448_KA_Operation::agreed_value_size
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t agreed_value_size() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:109,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:112,1
    - Dst: std::span::size
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:112,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:113,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:113,1
    - Dst: decode_scalar
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:114,1
    - Dst: decode_point
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:115,1
    - Dst: encode_point
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:117,1
    - Dst: x448
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:117,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:118,1
    - Dst: Botan::CT::all_zeros
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:130,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:130,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:130,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - w_data
    - w_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 135
    functionName: Botan::X448_KA_Operation::raw_agree
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::CT::all_zeros
    - std::span::size
    - x448
    - auto::data
    - size
    - BOTAN_ARG_CHECK
    - decode_scalar
    - Botan::CT::scoped_poison
    - Invalid_Argument
    - decode_point
    - encode_point
    - Botan::CT::unpoison
    - auto::size
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> raw_agree(const uint8_t w_data[], size_t w_len)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:102,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:102,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:103,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sk
    - kdf
    argTypes:
    - std::span<const uint8_t>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: Botan::X448_KA_Operation::X448_KA_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - BOTAN_ARG_CHECK
    - std::span<const uint8_t>::begin
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void X448_KA_Operation(std::span<const uint8_t> sk, std::string_view
      kdf)
  - 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::X448_KA_Operation::agreed_value_size
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t agreed_value_size() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:109,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:112,1
    - Dst: std::span::size
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:112,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:113,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:113,1
    - Dst: decode_scalar
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:114,1
    - Dst: decode_point
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:115,1
    - Dst: encode_point
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:117,1
    - Dst: x448
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:117,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:118,1
    - Dst: Botan::CT::all_zeros
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:130,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:130,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:130,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - w_data
    - w_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 135
    functionName: Botan::X448_KA_Operation::raw_agree
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::CT::all_zeros
    - std::span::size
    - x448
    - auto::data
    - size
    - BOTAN_ARG_CHECK
    - decode_scalar
    - Botan::CT::scoped_poison
    - Invalid_Argument
    - decode_point
    - encode_point
    - Botan::CT::unpoison
    - auto::size
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> raw_agree(const uint8_t w_data[], size_t w_len)
      override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:146,1
    - Dst: std::make_unique<X448_KA_Operation>
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:147,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:149,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp:149,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 150
    functionName: Botan::X448_PrivateKey::create_key_agreement_op
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<X448_KA_Operation>
    - Provider_Not_Found
    - algo_name
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Key_Agreement>
    signature: "std::unique_ptr<PK_Ops::Key_Agreement> X448_PrivateKey::create_key_agreement_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: 2
    argNames:
    - ' scalar'
    - bit
    argTypes:
    - ScalarX448
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 18
    functionName: Botan::get_bit
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_bit(const ScalarX448& scalar, size_t bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' scalar'
    - bit
    argTypes:
    - ScalarX448
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 18
    functionName: Botan::get_bit
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_bit(const ScalarX448& scalar, size_t bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::begin
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:22,1
    - Dst: Botan::end
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - Point448
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: Botan::encode_point
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp
    functionUses: 4
    functionsReached:
    - Botan::end
    - Botan::begin
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> encode_point(const Point448& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:26,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:26,1
    - Dst: Botan::typecast_copy
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p_bytes
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: Botan::decode_point
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp
    functionUses: 0
    functionsReached:
    - Botan::typecast_copy
    - BOTAN_ARG_CHECK
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: Point448
    signature: Point448 decode_point(std::span<const uint8_t> p_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:31,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:31,1
    - Dst: Botan::typecast_copy
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - scalar_bytes
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 38
    functionName: Botan::decode_scalar
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp
    functionUses: 4
    functionsReached:
    - Botan::typecast_copy
    - BOTAN_ARG_CHECK
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: ScalarX448
    signature: ScalarX448 decode_scalar(std::span<const uint8_t> scalar_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::x448
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' k'
    argTypes:
    - ScalarX448
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: Botan::x448_basepoint
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp
    functionUses: 4
    functionsReached:
    - Botan::x448
    linkageType: ''
    returnType: Point448
    signature: Point448 x448_basepoint(const ScalarX448& k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Gf448Elem
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:49,1
    - Dst: Gf448Elem
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:51,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:51,1
    - Dst: Botan::Gf448Elem::one
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:52,1
    - Dst: Botan::Gf448Elem::zero
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:53,1
    - Dst: Gf448Elem
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:54,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:54,1
    - Dst: Botan::Gf448Elem::one
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:55,1
    - Dst: Botan::CT::Mask::cleared
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:56,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:59,1
    - Dst: Botan::get_bit
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:59,1
    - Dst: Gf448Elem::ct_cond_swap
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:62,1
    - Dst: auto::as_bool
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:62,1
    - Dst: Gf448Elem::ct_cond_swap
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:63,1
    - Dst: auto::as_bool
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:63,1
    - Dst: Botan::square
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:67,1
    - Dst: Botan::square
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:69,1
    - Dst: Botan::square
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:75,1
    - Dst: Botan::square
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:76,1
    - Dst: Gf448Elem::ct_cond_swap
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:81,1
    - Dst: auto::as_bool
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:81,1
    - Dst: Gf448Elem::ct_cond_swap
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:82,1
    - Dst: auto::as_bool
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:82,1
    - Dst: Point448
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:86,1
    - Dst: auto::to_bytes
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - ' k'
    - ' u'
    argTypes:
    - ScalarX448
    - Point448
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 87
    functionName: Botan::x448
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp
    functionUses: 1
    functionsReached:
    - Botan::get_bit
    - Gf448Elem
    - auto::to_bytes
    - Point448
    - auto::as_bool
    - Botan::square
    - Botan::sha512_msg_expand
    - Botan::Gf448Elem::zero
    - Botan::get
    - Botan::Gf448Elem::one
    - Gf448Elem::ct_cond_swap
    - Botan::CT::Mask::cleared
    linkageType: ''
    returnType: Point448
    signature: Point448 x448(const ScalarX448& k, const Point448& u)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' scalar'
    - bit
    argTypes:
    - ScalarX448
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 18
    functionName: Botan::get_bit
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_bit(const ScalarX448& scalar, size_t bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' scalar'
    - bit
    argTypes:
    - ScalarX448
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 18
    functionName: Botan::get_bit
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_bit(const ScalarX448& scalar, size_t bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::begin
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:22,1
    - Dst: Botan::end
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - Point448
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: Botan::encode_point
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp
    functionUses: 4
    functionsReached:
    - Botan::end
    - Botan::begin
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> encode_point(const Point448& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:26,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:26,1
    - Dst: Botan::typecast_copy
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - p_bytes
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: Botan::decode_point
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp
    functionUses: 0
    functionsReached:
    - Botan::typecast_copy
    - BOTAN_ARG_CHECK
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: Point448
    signature: Point448 decode_point(std::span<const uint8_t> p_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:31,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:31,1
    - Dst: Botan::typecast_copy
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - scalar_bytes
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 38
    functionName: Botan::decode_scalar
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp
    functionUses: 4
    functionsReached:
    - Botan::typecast_copy
    - BOTAN_ARG_CHECK
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: ScalarX448
    signature: ScalarX448 decode_scalar(std::span<const uint8_t> scalar_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::x448
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' k'
    argTypes:
    - ScalarX448
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: Botan::x448_basepoint
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp
    functionUses: 4
    functionsReached:
    - Botan::x448
    linkageType: ''
    returnType: Point448
    signature: Point448 x448_basepoint(const ScalarX448& k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Gf448Elem
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:49,1
    - Dst: Gf448Elem
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:51,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:51,1
    - Dst: Botan::Gf448Elem::one
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:52,1
    - Dst: Botan::Gf448Elem::zero
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:53,1
    - Dst: Gf448Elem
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:54,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:54,1
    - Dst: Botan::Gf448Elem::one
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:55,1
    - Dst: Botan::CT::Mask::cleared
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:56,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:59,1
    - Dst: Botan::get_bit
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:59,1
    - Dst: Gf448Elem::ct_cond_swap
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:62,1
    - Dst: auto::as_bool
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:62,1
    - Dst: Gf448Elem::ct_cond_swap
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:63,1
    - Dst: auto::as_bool
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:63,1
    - Dst: Botan::square
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:67,1
    - Dst: Botan::square
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:69,1
    - Dst: Botan::square
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:75,1
    - Dst: Botan::square
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:76,1
    - Dst: Gf448Elem::ct_cond_swap
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:81,1
    - Dst: auto::as_bool
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:81,1
    - Dst: Gf448Elem::ct_cond_swap
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:82,1
    - Dst: auto::as_bool
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:82,1
    - Dst: Point448
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:86,1
    - Dst: auto::to_bytes
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - ' k'
    - ' u'
    argTypes:
    - ScalarX448
    - Point448
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 87
    functionName: Botan::x448
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448_internal.cpp
    functionUses: 2
    functionsReached:
    - Botan::get_bit
    - Gf448Elem
    - auto::to_bytes
    - Point448
    - auto::as_bool
    - Botan::square
    - Botan::sha512_msg_expand
    - Botan::Gf448Elem::zero
    - Botan::get
    - Botan::Gf448Elem::one
    - Gf448Elem::ct_cond_swap
    - Botan::CT::Mask::cleared
    linkageType: ''
    returnType: Point448
    signature: Point448 x448(const ScalarX448& k, const Point448& u)
  - 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::algo_name
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.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: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.h
    functionUses: 4
    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: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: Botan::key_length
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.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/curve448/x448/x448.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::public_value
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.h
    functionUses: 4
    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: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: Botan::supports_operation
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.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: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan::algo_name
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.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: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.h
    functionUses: 4
    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: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: Botan::key_length
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.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/curve448/x448/x448.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::public_value
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.h
    functionUses: 4
    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: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: Botan::supports_operation
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.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/curve448/x448/x448.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: public_value
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.h
    functionUses: 67
    functionsReached:
    - raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> public_value() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.h:92,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/curve448/x448/x448.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: raw_private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/x448/x448.h
    functionUses: 26
    functionsReached:
    - begin
    - end
    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: 1
    argNames:
    - op
    argTypes:
    - PublicKeyOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Botan::supports_operation
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.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: 1
    argNames:
    - op
    argTypes:
    - PublicKeyOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Botan::supports_operation
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool supports_operation(PublicKeyOperation op) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.h:107,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.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: raw_private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.h
    functionUses: 26
    functionsReached:
    - begin
    - end
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> raw_private_key_bits() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed448Point
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.h:40,1
    - Dst: Botan::Gf448Elem::zero
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.h:40,1
    - Dst: Botan::Gf448Elem::one
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 79
    functionName: Botan::Ed448Point
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.h
    functionUses: 1
    functionsReached:
    - Botan::Gf448Elem::zero
    - Botan::Gf448Elem::one
    - Botan::Ed448Point
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API Ed448Point
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' x'
    - ' y'
    - ' z'
    argTypes:
    - Gf448Elem
    - Gf448Elem
    - Gf448Elem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan::Ed448Point
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed448Point(const Gf448Elem& x, const Gf448Elem& y, const Gf448Elem&
      z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - Gf448Elem
    - Gf448Elem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: Botan::Ed448Point
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed448Point(const Gf448Elem& x, const Gf448Elem& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed448Point
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.h:40,1
    - Dst: Botan::Gf448Elem::zero
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.h:40,1
    - Dst: Botan::Gf448Elem::one
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Botan::identity
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.h
    functionUses: 0
    functionsReached:
    - Botan::Gf448Elem::zero
    - Botan::Gf448Elem::one
    - Botan::Ed448Point
    linkageType: ''
    returnType: Ed448Point
    signature: Ed448Point identity()
  - 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::x_proj
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Gf448Elem
    signature: Gf448Elem x_proj() 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::y_proj
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Gf448Elem
    signature: Gf448Elem y_proj() 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::z_proj
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Gf448Elem
    signature: Gf448Elem z_proj() 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::x
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Gf448Elem
    signature: Gf448Elem x() 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: Botan::y
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Gf448Elem
    signature: Gf448Elem y() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed448Point
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.h:40,1
    - Dst: Botan::Gf448Elem::zero
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.h:40,1
    - Dst: Botan::Gf448Elem::one
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 79
    functionName: Botan::Ed448Point
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.h
    functionUses: 3
    functionsReached:
    - Botan::Gf448Elem::zero
    - Botan::Gf448Elem::one
    - Botan::Ed448Point
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API Ed448Point
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' x'
    - ' y'
    - ' z'
    argTypes:
    - Gf448Elem
    - Gf448Elem
    - Gf448Elem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan::Ed448Point
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed448Point(const Gf448Elem& x, const Gf448Elem& y, const Gf448Elem&
      z)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - Gf448Elem
    - Gf448Elem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 37
    functionName: Botan::Ed448Point
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed448Point(const Gf448Elem& x, const Gf448Elem& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed448Point
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.h:40,1
    - Dst: Botan::Gf448Elem::zero
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.h:40,1
    - Dst: Botan::Gf448Elem::one
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Botan::identity
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.h
    functionUses: 0
    functionsReached:
    - Botan::Gf448Elem::zero
    - Botan::Gf448Elem::one
    - Botan::Ed448Point
    linkageType: ''
    returnType: Ed448Point
    signature: Ed448Point identity()
  - 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::x_proj
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Gf448Elem
    signature: Gf448Elem x_proj() 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::y_proj
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Gf448Elem
    signature: Gf448Elem y_proj() 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::z_proj
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Gf448Elem
    signature: Gf448Elem z_proj() 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::x
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Gf448Elem
    signature: Gf448Elem x() 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: Botan::y
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Gf448Elem
    signature: Gf448Elem y() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:24,1
    - Dst: object_identifier
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.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::Ed448_PublicKey::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - AlgorithmIdentifier
    - object_identifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier Ed448_PublicKey::algorithm_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed448Point::decode
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 34
    functionName: Botan::Ed448_PublicKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - Botan::Ed448Point::decode
    linkageType: ''
    returnType: bool
    signature: bool Ed448_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: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: Botan::Ed448_PublicKey::Ed448_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed448_PublicKey::Ed448_PublicKey(const AlgorithmIdentifier& /*
      unused */, std::span<const uint8_t> key_bits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:40,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:41,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:43,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - key_bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: Botan::Ed448_PublicKey::Ed448_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - copy_mem
    - Decoding_Error
    - std::span<const uint8_t>::first
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void Ed448_PublicKey::Ed448_PublicKey(std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:47,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.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::Ed448_PublicKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - begin
    - end
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Ed448_PublicKey::raw_public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed448_PublicKey::raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.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::Ed448_PublicKey::public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - Botan::Ed448_PublicKey::raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Ed448_PublicKey::public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Ed448_PrivateKey>
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: Botan::Ed448_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Ed448_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> Ed448_PublicKey::generate_another(RandomNumberGenerator&
      rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BER_Decoder
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:60,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:62,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:63,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:65,1
    - Dst: create_pk_from_sk
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:66,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - key_bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 67
    functionName: Botan::Ed448_PrivateKey::Ed448_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - BER_Decoder
    - Decoding_Error
    - std::move
    - create_pk_from_sk
    - secure_vector::size
    - std::span
    linkageType: ''
    returnType: void
    signature: void Ed448_PrivateKey::Ed448_PrivateKey(const AlgorithmIdentifier&
      /*unused*/, std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: Botan::Ed448_PrivateKey::Ed448_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - random_vec
    linkageType: ''
    returnType: void
    signature: void Ed448_PrivateKey::Ed448_PrivateKey(RandomNumberGenerator& rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:72,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:73,1
    - Dst: assign
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:75,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:75,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:75,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:76,1
    - Dst: create_pk_from_sk
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:77,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:77,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - key_bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 79
    functionName: Botan::Ed448_PrivateKey::Ed448_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - assign
    - std::span<const uint8_t>::size
    - create_pk_from_sk
    - Botan::CT::scoped_poison
    - std::span<const uint8_t>::begin
    - std::span<const uint8_t>::end
    - Botan::CT::unpoison
    - std::span
    linkageType: ''
    returnType: void
    signature: void Ed448_PrivateKey::Ed448_PrivateKey(std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Ed448_PublicKey>
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp: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::Ed448_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Ed448_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> Ed448_PrivateKey::public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:86,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:86,1
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: Botan::Ed448_PrivateKey::private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - size
    - DER_Encoder
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Ed448_PrivateKey::private_key_bits() const
  - 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::Ed448_PrivateKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Ed448_PrivateKey::check_key(RandomNumberGenerator& /*rng*/, bool
      /*strong*/) const
  - 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: Botan::Ed448_Message::Ed448_Message
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed448_Message()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: ~Ed448_Message()
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Ed448_Message()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: Botan::Ed448_Message::Ed448_Message
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed448_Message(const Ed448_Message&)
  - 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: '& operator=(const Ed448_Message&)'
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Ed448_Message
    signature: Ed448_Message & operator=(const Ed448_Message&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: Botan::Ed448_Message::Ed448_Message
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed448_Message(Ed448_Message&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: '& operator=(Ed448_Message&&)'
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Ed448_Message
    signature: Ed448_Message & operator=(Ed448_Message&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Prehashed_Ed448_Message::update
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: Botan::Prehashed_Ed448_Message::update
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 1
    functionsReached:
    - Botan::Prehashed_Ed448_Message::update
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> msg) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: final_stdvec
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp: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: Botan::Prehashed_Ed448_Message::get_and_clear
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - final_stdvec
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> get_and_clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - hash
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 3
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: Botan::Prehashed_Ed448_Message::Prehashed_Ed448_Message
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    linkageType: ''
    returnType: void
    signature: void Prehashed_Ed448_Message(std::string_view hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:124,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:124,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:124,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: Botan::Pure_Ed448_Message::update
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - end
    - insert
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> msg) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::exchange
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.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::Pure_Ed448_Message::get_and_clear
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - std::exchange
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> get_and_clear() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:139,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:139,1
    - Dst: std::make_unique<Prehashed_Ed448_Message>
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:141,1
    - Dst: std::make_unique<Pure_Ed448_Message>
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - Ed448_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 145
    functionName: Botan::Ed448_Verify_Operation::Ed448_Verify_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - raw_public_key_bits
    - std::move
    - std::make_unique<Pure_Ed448_Message>
    - std::make_unique<Prehashed_Ed448_Message>
    linkageType: ''
    returnType: void
    signature: "void Ed448_Verify_Operation(const Ed448_PublicKey& key,\n                                      std::optional<std::string>
      prehash_function = std::nullopt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed448_Verify_Operation::update
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 147
    functionName: Botan::Ed448_Verify_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 1
    functionsReached:
    - Botan::Ed448_Verify_Operation::update
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_and_clear
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:150,1
    - Dst: verify_signature
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:152,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:152,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 156
    functionName: Botan::Ed448_Verify_Operation::is_valid_signature
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - has_value
    - verify_signature
    - get_and_clear
    - std::span
    linkageType: ''
    returnType: bool
    signature: bool is_valid_signature(std::span<const uint8_t> sig) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value_or
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 158
    functionName: Botan::Ed448_Verify_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - value_or
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:173,1
    - Dst: raw_private_key_bits
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:174,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:175,1
    - Dst: std::make_unique<Prehashed_Ed448_Message>
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:177,1
    - Dst: std::make_unique<Pure_Ed448_Message>
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - Ed448_PrivateKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 181
    functionName: Botan::Ed448_Sign_Operation::Ed448_Sign_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_unique<Pure_Ed448_Message>
    - std::make_unique<Prehashed_Ed448_Message>
    - raw_public_key_bits
    - raw_private_key_bits
    linkageType: ''
    returnType: void
    signature: "void Ed448_Sign_Operation(const Ed448_PrivateKey& key,\n                                    std::optional<std::string>
      prehash_function = std::nullopt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed448_Sign_Operation::update
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 183
    functionName: Botan::Ed448_Sign_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 1
    functionsReached:
    - Botan::Ed448_Sign_Operation::update
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:186,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:186,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:187,1
    - Dst: sign_message
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:188,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:188,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:189,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:190,1
    - Dst: get_and_clear
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:192,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:193,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:194,1
    - Dst: auto::end
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 195
    functionName: Botan::Ed448_Sign_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - auto::end
    - size
    - Botan::CT::scoped_poison
    - sign_message
    - get_and_clear
    - Botan::CT::unpoison
    - has_value
    - auto::begin
    - std::span
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> sign(RandomNumberGenerator& /*rng*/) override
  - 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::Ed448_Sign_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value_or
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:201,1
    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::Ed448_Sign_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - value_or
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:211,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 212
    functionName: Botan::Ed448_Sign_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_string
    - AlgorithmIdentifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier Ed448_Sign_Operation::algorithm_identifier() const
  - 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: Botan::Ed448_Message::Ed448_Message
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed448_Message()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: ~Ed448_Message()
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Ed448_Message()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: Botan::Ed448_Message::Ed448_Message
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed448_Message(const Ed448_Message&)
  - 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: '& operator=(const Ed448_Message&)'
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Ed448_Message
    signature: Ed448_Message & operator=(const Ed448_Message&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: Botan::Ed448_Message::Ed448_Message
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed448_Message(Ed448_Message&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: '& operator=(Ed448_Message&&)'
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Ed448_Message
    signature: Ed448_Message & operator=(Ed448_Message&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Prehashed_Ed448_Message::update
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: Botan::Prehashed_Ed448_Message::update
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 2
    functionsReached:
    - Botan::Prehashed_Ed448_Message::update
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> msg) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: final_stdvec
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp: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: Botan::Prehashed_Ed448_Message::get_and_clear
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - final_stdvec
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> get_and_clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - hash
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 3
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: Botan::Prehashed_Ed448_Message::Prehashed_Ed448_Message
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    linkageType: ''
    returnType: void
    signature: void Prehashed_Ed448_Message(std::string_view hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:124,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:124,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:124,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: Botan::Pure_Ed448_Message::update
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - end
    - insert
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> msg) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::exchange
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.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::Pure_Ed448_Message::get_and_clear
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - std::exchange
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> get_and_clear() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:139,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:139,1
    - Dst: std::make_unique<Prehashed_Ed448_Message>
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:141,1
    - Dst: std::make_unique<Pure_Ed448_Message>
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - Ed448_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 145
    functionName: Botan::Ed448_Verify_Operation::Ed448_Verify_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - raw_public_key_bits
    - std::move
    - std::make_unique<Pure_Ed448_Message>
    - std::make_unique<Prehashed_Ed448_Message>
    linkageType: ''
    returnType: void
    signature: "void Ed448_Verify_Operation(const Ed448_PublicKey& key,\n                                      std::optional<std::string>
      prehash_function = std::nullopt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed448_Verify_Operation::update
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 147
    functionName: Botan::Ed448_Verify_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 2
    functionsReached:
    - Botan::Ed448_Verify_Operation::update
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_and_clear
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:150,1
    - Dst: verify_signature
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:152,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:152,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 156
    functionName: Botan::Ed448_Verify_Operation::is_valid_signature
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - has_value
    - verify_signature
    - get_and_clear
    - std::span
    linkageType: ''
    returnType: bool
    signature: bool is_valid_signature(std::span<const uint8_t> sig) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value_or
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 158
    functionName: Botan::Ed448_Verify_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - value_or
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:173,1
    - Dst: raw_private_key_bits
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:174,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:175,1
    - Dst: std::make_unique<Prehashed_Ed448_Message>
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:177,1
    - Dst: std::make_unique<Pure_Ed448_Message>
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - Ed448_PrivateKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 181
    functionName: Botan::Ed448_Sign_Operation::Ed448_Sign_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_unique<Pure_Ed448_Message>
    - std::make_unique<Prehashed_Ed448_Message>
    - raw_public_key_bits
    - raw_private_key_bits
    linkageType: ''
    returnType: void
    signature: "void Ed448_Sign_Operation(const Ed448_PrivateKey& key,\n                                    std::optional<std::string>
      prehash_function = std::nullopt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed448_Sign_Operation::update
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 183
    functionName: Botan::Ed448_Sign_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 2
    functionsReached:
    - Botan::Ed448_Sign_Operation::update
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:186,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:186,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:187,1
    - Dst: sign_message
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:188,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:188,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:189,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:190,1
    - Dst: get_and_clear
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:192,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:193,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:194,1
    - Dst: auto::end
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 195
    functionName: Botan::Ed448_Sign_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - auto::end
    - size
    - Botan::CT::scoped_poison
    - sign_message
    - get_and_clear
    - Botan::CT::unpoison
    - has_value
    - auto::begin
    - std::span
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> sign(RandomNumberGenerator& /*rng*/) override
  - 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::Ed448_Sign_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value_or
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:201,1
    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::Ed448_Sign_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - value_or
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:211,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 212
    functionName: Botan::Ed448_Sign_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_string
    - AlgorithmIdentifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier Ed448_Sign_Operation::algorithm_identifier() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:218,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:219,1
    - Dst: std::make_unique<Ed448_Verify_Operation>
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:220,1
    - Dst: std::make_unique<Ed448_Verify_Operation>
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:222,1
    - Dst: std::make_unique<Ed448_Verify_Operation>
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:224,1
    - Dst: std::string
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:224,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:227,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:227,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 228
    functionName: Botan::Ed448_PublicKey::create_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - std::string_view::empty
    - std::string
    - std::make_unique<Ed448_Verify_Operation>
    - algo_name
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> Ed448_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/curve448/ed448/ed448.cpp:232,1
    - Dst: Botan::Ed448_PublicKey::algorithm_identifier
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:233,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:234,1
    - Dst: std::make_unique<Ed448_Verify_Operation>
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:237,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:239,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:239,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - ' alg_id'
    - provider
    argTypes:
    - AlgorithmIdentifier
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 240
    functionName: Botan::Ed448_PublicKey::create_x509_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - Provider_Not_Found
    - std::string_view::empty
    - std::make_unique<Ed448_Verify_Operation>
    - Botan::Ed448_PublicKey::algorithm_identifier
    - algo_name
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> Ed448_PublicKey::create_x509_verification_op(const
      AlgorithmIdentifier& alg_id,\n                                                                                   std::string_view
      provider) const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:245,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:246,1
    - Dst: std::make_unique<Ed448_Sign_Operation>
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:247,1
    - Dst: std::make_unique<Ed448_Sign_Operation>
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:249,1
    - Dst: std::make_unique<Ed448_Sign_Operation>
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:251,1
    - Dst: std::string
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:251,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:254,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:254,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 255
    functionName: Botan::Ed448_PrivateKey::create_signature_op
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - std::string_view::empty
    - std::string
    - std::make_unique<Ed448_Sign_Operation>
    - algo_name
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Signature>
    signature: "std::unique_ptr<PK_Ops::Signature> Ed448_PrivateKey::create_signature_op(RandomNumberGenerator&
      /*rng*/,\n                                                                         std::string_view
      params,\n                                                                         std::string_view
      provider) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:24,1
    - Dst: object_identifier
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.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::Ed448_PublicKey::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 1
    functionsReached:
    - AlgorithmIdentifier
    - object_identifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier Ed448_PublicKey::algorithm_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed448Point::decode
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 34
    functionName: Botan::Ed448_PublicKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - Botan::Ed448Point::decode
    linkageType: ''
    returnType: bool
    signature: bool Ed448_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: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: Botan::Ed448_PublicKey::Ed448_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed448_PublicKey::Ed448_PublicKey(const AlgorithmIdentifier& /*
      unused */, std::span<const uint8_t> key_bits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:40,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:41,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:43,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - key_bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: Botan::Ed448_PublicKey::Ed448_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - copy_mem
    - Decoding_Error
    - std::span<const uint8_t>::first
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void Ed448_PublicKey::Ed448_PublicKey(std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:47,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.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::Ed448_PublicKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 1
    functionsReached:
    - begin
    - end
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Ed448_PublicKey::raw_public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed448_PublicKey::raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.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::Ed448_PublicKey::public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - Botan::Ed448_PublicKey::raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Ed448_PublicKey::public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Ed448_PrivateKey>
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: Botan::Ed448_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Ed448_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> Ed448_PublicKey::generate_another(RandomNumberGenerator&
      rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BER_Decoder
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:60,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:62,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:63,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:65,1
    - Dst: create_pk_from_sk
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:66,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - key_bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 67
    functionName: Botan::Ed448_PrivateKey::Ed448_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - BER_Decoder
    - Decoding_Error
    - std::move
    - create_pk_from_sk
    - secure_vector::size
    - std::span
    linkageType: ''
    returnType: void
    signature: void Ed448_PrivateKey::Ed448_PrivateKey(const AlgorithmIdentifier&
      /*unused*/, std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: Botan::Ed448_PrivateKey::Ed448_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - random_vec
    linkageType: ''
    returnType: void
    signature: void Ed448_PrivateKey::Ed448_PrivateKey(RandomNumberGenerator& rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:72,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:73,1
    - Dst: assign
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:75,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:75,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:75,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:76,1
    - Dst: create_pk_from_sk
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:77,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:77,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - key_bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 79
    functionName: Botan::Ed448_PrivateKey::Ed448_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - assign
    - std::span<const uint8_t>::size
    - create_pk_from_sk
    - Botan::CT::scoped_poison
    - std::span<const uint8_t>::begin
    - std::span<const uint8_t>::end
    - Botan::CT::unpoison
    - std::span
    linkageType: ''
    returnType: void
    signature: void Ed448_PrivateKey::Ed448_PrivateKey(std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Ed448_PublicKey>
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp: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::Ed448_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Ed448_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> Ed448_PrivateKey::public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:86,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:86,1
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 88
    functionName: Botan::Ed448_PrivateKey::private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - size
    - DER_Encoder
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Ed448_PrivateKey::private_key_bits() const
  - 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::Ed448_PrivateKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Ed448_PrivateKey::check_key(RandomNumberGenerator& /*rng*/, bool
      /*strong*/) const
  - 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: Botan::Ed448_Message::Ed448_Message
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed448_Message()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: ~Ed448_Message()
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Ed448_Message()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: Botan::Ed448_Message::Ed448_Message
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed448_Message(const Ed448_Message&)
  - 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: '& operator=(const Ed448_Message&)'
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Ed448_Message
    signature: Ed448_Message & operator=(const Ed448_Message&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: Botan::Ed448_Message::Ed448_Message
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed448_Message(Ed448_Message&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: '& operator=(Ed448_Message&&)'
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Ed448_Message
    signature: Ed448_Message & operator=(Ed448_Message&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Prehashed_Ed448_Message::update
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: Botan::Prehashed_Ed448_Message::update
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 3
    functionsReached:
    - Botan::Prehashed_Ed448_Message::update
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> msg) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: final_stdvec
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp: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: Botan::Prehashed_Ed448_Message::get_and_clear
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - final_stdvec
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> get_and_clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - hash
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 3
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: Botan::Prehashed_Ed448_Message::Prehashed_Ed448_Message
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    linkageType: ''
    returnType: void
    signature: void Prehashed_Ed448_Message(std::string_view hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:124,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:124,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:124,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: Botan::Pure_Ed448_Message::update
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - end
    - insert
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> msg) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::exchange
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.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::Pure_Ed448_Message::get_and_clear
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - std::exchange
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> get_and_clear() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:139,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:139,1
    - Dst: std::make_unique<Prehashed_Ed448_Message>
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:141,1
    - Dst: std::make_unique<Pure_Ed448_Message>
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - Ed448_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 145
    functionName: Botan::Ed448_Verify_Operation::Ed448_Verify_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - raw_public_key_bits
    - std::move
    - std::make_unique<Pure_Ed448_Message>
    - std::make_unique<Prehashed_Ed448_Message>
    linkageType: ''
    returnType: void
    signature: "void Ed448_Verify_Operation(const Ed448_PublicKey& key,\n                                      std::optional<std::string>
      prehash_function = std::nullopt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed448_Verify_Operation::update
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 147
    functionName: Botan::Ed448_Verify_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 3
    functionsReached:
    - Botan::Ed448_Verify_Operation::update
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_and_clear
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:150,1
    - Dst: verify_signature
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:152,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:152,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 156
    functionName: Botan::Ed448_Verify_Operation::is_valid_signature
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - has_value
    - verify_signature
    - get_and_clear
    - std::span
    linkageType: ''
    returnType: bool
    signature: bool is_valid_signature(std::span<const uint8_t> sig) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value_or
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 158
    functionName: Botan::Ed448_Verify_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - value_or
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:173,1
    - Dst: raw_private_key_bits
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:174,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:175,1
    - Dst: std::make_unique<Prehashed_Ed448_Message>
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:177,1
    - Dst: std::make_unique<Pure_Ed448_Message>
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - Ed448_PrivateKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 181
    functionName: Botan::Ed448_Sign_Operation::Ed448_Sign_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_unique<Pure_Ed448_Message>
    - std::make_unique<Prehashed_Ed448_Message>
    - raw_public_key_bits
    - raw_private_key_bits
    linkageType: ''
    returnType: void
    signature: "void Ed448_Sign_Operation(const Ed448_PrivateKey& key,\n                                    std::optional<std::string>
      prehash_function = std::nullopt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed448_Sign_Operation::update
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 183
    functionName: Botan::Ed448_Sign_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 3
    functionsReached:
    - Botan::Ed448_Sign_Operation::update
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:186,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:186,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:187,1
    - Dst: sign_message
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:188,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:188,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:189,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:190,1
    - Dst: get_and_clear
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:192,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:193,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:194,1
    - Dst: auto::end
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 195
    functionName: Botan::Ed448_Sign_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - auto::end
    - size
    - Botan::CT::scoped_poison
    - sign_message
    - get_and_clear
    - Botan::CT::unpoison
    - has_value
    - auto::begin
    - std::span
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> sign(RandomNumberGenerator& /*rng*/) override
  - 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::Ed448_Sign_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value_or
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:201,1
    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::Ed448_Sign_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - value_or
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:211,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 212
    functionName: Botan::Ed448_Sign_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_string
    - AlgorithmIdentifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier Ed448_Sign_Operation::algorithm_identifier() const
  - 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: Botan::Ed448_Message::Ed448_Message
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed448_Message()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: ~Ed448_Message()
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Ed448_Message()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: Botan::Ed448_Message::Ed448_Message
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed448_Message(const Ed448_Message&)
  - 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: '& operator=(const Ed448_Message&)'
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Ed448_Message
    signature: Ed448_Message & operator=(const Ed448_Message&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 106
    functionName: Botan::Ed448_Message::Ed448_Message
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed448_Message(Ed448_Message&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: '& operator=(Ed448_Message&&)'
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Ed448_Message
    signature: Ed448_Message & operator=(Ed448_Message&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Prehashed_Ed448_Message::update
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 112
    functionName: Botan::Prehashed_Ed448_Message::update
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 4
    functionsReached:
    - Botan::Prehashed_Ed448_Message::update
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> msg) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: final_stdvec
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp: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: Botan::Prehashed_Ed448_Message::get_and_clear
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - final_stdvec
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> get_and_clear() override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - hash
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 3
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: Botan::Prehashed_Ed448_Message::Prehashed_Ed448_Message
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    linkageType: ''
    returnType: void
    signature: void Prehashed_Ed448_Message(std::string_view hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:124,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:124,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:124,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: Botan::Pure_Ed448_Message::update
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - end
    - insert
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> msg) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::exchange
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.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::Pure_Ed448_Message::get_and_clear
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - std::exchange
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> get_and_clear() override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:139,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:139,1
    - Dst: std::make_unique<Prehashed_Ed448_Message>
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:141,1
    - Dst: std::make_unique<Pure_Ed448_Message>
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - Ed448_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 145
    functionName: Botan::Ed448_Verify_Operation::Ed448_Verify_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - raw_public_key_bits
    - std::move
    - std::make_unique<Pure_Ed448_Message>
    - std::make_unique<Prehashed_Ed448_Message>
    linkageType: ''
    returnType: void
    signature: "void Ed448_Verify_Operation(const Ed448_PublicKey& key,\n                                      std::optional<std::string>
      prehash_function = std::nullopt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed448_Verify_Operation::update
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 147
    functionName: Botan::Ed448_Verify_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 4
    functionsReached:
    - Botan::Ed448_Verify_Operation::update
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_and_clear
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:150,1
    - Dst: verify_signature
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:152,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:152,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 156
    functionName: Botan::Ed448_Verify_Operation::is_valid_signature
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - has_value
    - verify_signature
    - get_and_clear
    - std::span
    linkageType: ''
    returnType: bool
    signature: bool is_valid_signature(std::span<const uint8_t> sig) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value_or
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 158
    functionName: Botan::Ed448_Verify_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - value_or
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:173,1
    - Dst: raw_private_key_bits
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:174,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:175,1
    - Dst: std::make_unique<Prehashed_Ed448_Message>
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:177,1
    - Dst: std::make_unique<Pure_Ed448_Message>
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - Ed448_PrivateKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 181
    functionName: Botan::Ed448_Sign_Operation::Ed448_Sign_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_unique<Pure_Ed448_Message>
    - std::make_unique<Prehashed_Ed448_Message>
    - raw_public_key_bits
    - raw_private_key_bits
    linkageType: ''
    returnType: void
    signature: "void Ed448_Sign_Operation(const Ed448_PrivateKey& key,\n                                    std::optional<std::string>
      prehash_function = std::nullopt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed448_Sign_Operation::update
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 183
    functionName: Botan::Ed448_Sign_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 4
    functionsReached:
    - Botan::Ed448_Sign_Operation::update
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> input) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:186,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:186,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:187,1
    - Dst: sign_message
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:188,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:188,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:189,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:190,1
    - Dst: get_and_clear
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:192,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:193,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:194,1
    - Dst: auto::end
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 195
    functionName: Botan::Ed448_Sign_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - auto::end
    - size
    - Botan::CT::scoped_poison
    - sign_message
    - get_and_clear
    - Botan::CT::unpoison
    - has_value
    - auto::begin
    - std::span
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> sign(RandomNumberGenerator& /*rng*/) override
  - 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::Ed448_Sign_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value_or
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:201,1
    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::Ed448_Sign_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - value_or
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:211,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 212
    functionName: Botan::Ed448_Sign_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_string
    - AlgorithmIdentifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier Ed448_Sign_Operation::algorithm_identifier() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:218,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:219,1
    - Dst: std::make_unique<Ed448_Verify_Operation>
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:220,1
    - Dst: std::make_unique<Ed448_Verify_Operation>
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:222,1
    - Dst: std::make_unique<Ed448_Verify_Operation>
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:224,1
    - Dst: std::string
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:224,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:227,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:227,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 228
    functionName: Botan::Ed448_PublicKey::create_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - std::string_view::empty
    - std::string
    - std::make_unique<Ed448_Verify_Operation>
    - algo_name
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> Ed448_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/curve448/ed448/ed448.cpp:232,1
    - Dst: Botan::Ed448_PublicKey::algorithm_identifier
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:233,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:234,1
    - Dst: std::make_unique<Ed448_Verify_Operation>
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:237,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:239,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:239,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - ' alg_id'
    - provider
    argTypes:
    - AlgorithmIdentifier
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 240
    functionName: Botan::Ed448_PublicKey::create_x509_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - Provider_Not_Found
    - std::string_view::empty
    - std::make_unique<Ed448_Verify_Operation>
    - Botan::Ed448_PublicKey::algorithm_identifier
    - algo_name
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> Ed448_PublicKey::create_x509_verification_op(const
      AlgorithmIdentifier& alg_id,\n                                                                                   std::string_view
      provider) const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:245,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:246,1
    - Dst: std::make_unique<Ed448_Sign_Operation>
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:247,1
    - Dst: std::make_unique<Ed448_Sign_Operation>
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:249,1
    - Dst: std::make_unique<Ed448_Sign_Operation>
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:251,1
    - Dst: std::string
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:251,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:254,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp:254,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 12
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 255
    functionName: Botan::Ed448_PrivateKey::create_signature_op
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - std::string_view::empty
    - std::string
    - std::make_unique<Ed448_Sign_Operation>
    - algo_name
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Signature>
    signature: "std::unique_ptr<PK_Ops::Signature> Ed448_PrivateKey::create_signature_op(RandomNumberGenerator&
      /*rng*/,\n                                                                         std::string_view
      params,\n                                                                         std::string_view
      provider) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:29,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:29,1
    - Dst: Botan::concat
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:30,1
    - Dst: Botan::store_le
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:31,1
    - Dst: Botan::store_le
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:32,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:32,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint8_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 34
    functionName: Botan::dom4
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::size
    - static_cast<uint8_t>
    - BOTAN_ARG_CHECK
    - Botan::concat
    - Botan::store_le
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> dom4(uint8_t x, std::span<const uint8_t> y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHAKE_256_XOF
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:38,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:39,1
    - Dst: Botan::dom4
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:39,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:39,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:40,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:40,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - f
    - context
    argTypes:
    - bool
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: Botan::shake
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - auto::output
    - SHAKE_256_XOF
    - static_cast<uint8_t>
    - Botan::dom4
    - std::span
    linkageType: ''
    returnType: std::array<uint8_t, 2 * ED448_LEN>
    signature: std::array<uint8_t, 2 * ED448_LEN> shake(bool f, std::span<const uint8_t>
      context, Ts... xs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:48,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arr
    argTypes:
    - std::span<const uint8_t, 114>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: Botan::split
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp
    functionUses: 0
    functionsReached:
    - BufferSlicer::take
    linkageType: ''
    returnType: std::pair<std::span<const uint8_t, 57>, std::span<const uint8_t, 57>>
    signature: std::pair<std::span<const uint8_t, 57>, std::span<const uint8_t, 57>>
      split(std::span<const uint8_t, 114> arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::output
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:60,1
    - Dst: Botan::Scalar448
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' shake_xof'
    argTypes:
    - XOF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 69
    functionName: Botan::scalar_from_xof
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp
    functionUses: 0
    functionsReached:
    - Botan::output
    - Botan::Scalar448
    linkageType: ''
    returnType: Scalar448
    signature: Scalar448 scalar_from_xof(XOF& shake_xof)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:29,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:29,1
    - Dst: Botan::concat
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:30,1
    - Dst: Botan::store_le
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:31,1
    - Dst: Botan::store_le
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:32,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:32,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint8_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 34
    functionName: Botan::dom4
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp
    functionUses: 1
    functionsReached:
    - std::span<const uint8_t>::size
    - static_cast<uint8_t>
    - BOTAN_ARG_CHECK
    - Botan::concat
    - Botan::store_le
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> dom4(uint8_t x, std::span<const uint8_t> y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHAKE_256_XOF
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:38,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:39,1
    - Dst: Botan::dom4
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:39,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:39,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:40,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:40,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - f
    - context
    argTypes:
    - bool
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: Botan::shake
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - auto::output
    - SHAKE_256_XOF
    - static_cast<uint8_t>
    - Botan::dom4
    - std::span
    linkageType: ''
    returnType: std::array<uint8_t, 2 * ED448_LEN>
    signature: std::array<uint8_t, 2 * ED448_LEN> shake(bool f, std::span<const uint8_t>
      context, Ts... xs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:48,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arr
    argTypes:
    - std::span<const uint8_t, 114>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: Botan::split
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp
    functionUses: 0
    functionsReached:
    - BufferSlicer::take
    linkageType: ''
    returnType: std::pair<std::span<const uint8_t, 57>, std::span<const uint8_t, 57>>
    signature: std::pair<std::span<const uint8_t, 57>, std::span<const uint8_t, 57>>
      split(std::span<const uint8_t, 114> arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::output
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:60,1
    - Dst: Botan::Scalar448
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' shake_xof'
    argTypes:
    - XOF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 69
    functionName: Botan::scalar_from_xof
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp
    functionUses: 0
    functionsReached:
    - Botan::output
    - Botan::Scalar448
    linkageType: ''
    returnType: Scalar448
    signature: Scalar448 scalar_from_xof(XOF& shake_xof)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t, ED448_LEN>::back
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:80,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:81,1
    - Dst: std::span<const uint8_t, ED448_LEN>::back
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:83,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:84,1
    - Dst: Botan::Gf448Elem::bytes_are_canonical_representation
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:85,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:86,1
    - Dst: Gf448Elem
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:88,1
    - Dst: Gf448Elem
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:99,1
    - Dst: square
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:100,1
    - Dst: Gf448Elem
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:100,1
    - Dst: Botan::Gf448Elem::one
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:100,1
    - Dst: square
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:101,1
    - Dst: Gf448Elem
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:101,1
    - Dst: Botan::Gf448Elem::one
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:101,1
    - Dst: square
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:102,1
    - Dst: root
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:102,1
    - Dst: square
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:102,1
    - Dst: square
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:102,1
    - Dst: square
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:102,1
    - Dst: square
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:106,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:107,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:112,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:113,1
    - Dst: auto::is_odd
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:115,1
    - Dst: Botan::CT::Mask::expand_bool
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:117,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:118,1
    - Dst: auto::words
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:118,1
    - Dst: words
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:118,1
    - Dst: Gf448Elem
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:120,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 1
    argNames:
    - enc
    argTypes:
    - std::span<const uint8_t, ED448_LEN>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 121
    functionName: Botan::Ed448Point::decode
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp
    functionUses: 6
    functionsReached:
    - Decoding_Error
    - auto::is_zero
    - Gf448Elem
    - auto::is_odd
    - std::array::data
    - words
    - Botan::CT::Mask::expand_bool
    - square
    - auto::words
    - Botan::Gf448Elem::bytes_are_canonical_representation
    - root
    - Botan::Gf448Elem::one
    - std::span
    - std::span<const uint8_t, ED448_LEN>::back
    linkageType: ''
    returnType: Ed448Point
    signature: Ed448Point Ed448Point::decode(std::span<const uint8_t, ED448_LEN> enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Ed448Point
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:138,1
    - Dst: Gf448Elem
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:138,1
    - Dst: Gf448Elem
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 139
    functionName: Botan::Ed448Point::base_point
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp
    functionUses: 0
    functionsReached:
    - Ed448Point
    - Gf448Elem
    linkageType: ''
    returnType: Ed448Point
    signature: Ed448Point Ed448Point::base_point()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: y
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:149,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:149,1
    - Dst: std::array::back
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:153,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:153,1
    - Dst: x
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 156
    functionName: Botan::Ed448Point::encode
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t>
    - std::array::back
    - x
    - y
    - std::span
    linkageType: ''
    returnType: std::array<uint8_t, ED448_LEN>
    signature: std::array<uint8_t, ED448_LEN> Ed448Point::encode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: square
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:161,1
    - Dst: Gf448Elem
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:164,1
    - Dst: Ed448Point
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Ed448Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 173
    functionName: Ed448Point::operator+(const Ed448Point& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp
    functionUses: 0
    functionsReached:
    - Ed448Point
    - Gf448Elem
    - square
    linkageType: ''
    returnType: Ed448Point
    signature: Ed448Point Ed448Point::operator+(const Ed448Point& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: square
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:177,1
    - Dst: square
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:178,1
    - Dst: square
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:179,1
    - Dst: square
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:181,1
    - Dst: Ed448Point
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 188
    functionName: Botan::Ed448Point::double_point
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp
    functionUses: 0
    functionsReached:
    - Ed448Point
    - square
    linkageType: ''
    returnType: Ed448Point
    signature: Ed448Point Ed448Point::double_point() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Fuzzer_TLS_Client_Creds::psk_identity
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:191,1
    - Dst: auto::double_point
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:198,1
    - Dst: auto::ct_conditional_assign
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:201,1
    - Dst: get_bit
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - Scalar448
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 204
    functionName: Botan::Ed448Point::scalar_mul
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp
    functionUses: 0
    functionsReached:
    - get_bit
    - Fuzzer_TLS_Client_Creds::psk_identity
    - auto::ct_conditional_assign
    - auto::double_point
    linkageType: ''
    returnType: Ed448Point
    signature: Ed448Point Ed448Point::scalar_mul(const Scalar448& s) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::Mask::expand_bool
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:208,1
    - Dst: x
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:208,1
    - Dst: x
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:208,1
    - Dst: Botan::CT::Mask::expand_bool
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:209,1
    - Dst: y
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:209,1
    - Dst: y
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:209,1
    - Dst: as_bool
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Ed448Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 212
    functionName: Ed448Point::operator==(const Ed448Point& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp
    functionUses: 0
    functionsReached:
    - x
    - Botan::CT::Mask::expand_bool
    - as_bool
    - y
    linkageType: ''
    returnType: bool
    signature: bool Ed448Point::operator==(const Ed448Point& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ct_cond_assign
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:215,1
    - Dst: ct_cond_assign
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:216,1
    - Dst: ct_cond_assign
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cond
    - ' other'
    argTypes:
    - bool
    - Ed448Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 218
    functionName: Botan::Ed448Point::ct_conditional_assign
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp
    functionUses: 0
    functionsReached:
    - ct_cond_assign
    linkageType: ''
    returnType: void
    signature: void Ed448Point::ct_conditional_assign(bool cond, const Ed448Point&
      other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scalar_mul
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Scalar448
    - Ed448Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 222
    functionName: operator*(const Scalar448& lhs, const Ed448Point& rhs)
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp
    functionUses: 0
    functionsReached:
    - scalar_mul
    linkageType: ''
    returnType: Ed448Point
    signature: Ed448Point operator*(const Scalar448& lhs, const Ed448Point& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHAKE_256_XOF
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:227,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:228,1
    - Dst: Botan::scalar_from_xof
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:230,1
    - Dst: Botan::Ed448Point::base_point
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:234,1
    - Dst: Botan::encode
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sk
    argTypes:
    - std::span<const uint8_t, ED448_LEN>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 224
    functionDepth: 3
    functionLinenumber: 224
    functionLinenumberEnd: 235
    functionName: Botan::create_pk_from_sk
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp
    functionUses: 4
    functionsReached:
    - Botan::Ed448Point::base_point
    - auto::update
    - SHAKE_256_XOF
    - Botan::encode
    - Botan::scalar_from_xof
    linkageType: ''
    returnType: std::array<uint8_t, ED448_LEN>
    signature: std::array<uint8_t, ED448_LEN> create_pk_from_sk(std::span<const uint8_t,
      ED448_LEN> sk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHAKE_256_XOF
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:251,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:252,1
    - Dst: Botan::scalar_from_xof
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:253,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:255,1
    - Dst: Botan::Ed448Point::base_point
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:264,1
    - Dst: Botan::encode
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:264,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:276,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:277,1
    - Dst: auto::to_bytes
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:277,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:278,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - sk
    - pk
    - pgflag
    - context
    - msg
    argTypes:
    - std::span<const uint8_t, ED448_LEN>
    - std::span<const uint8_t, ED448_LEN>
    - bool
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 237
    functionDepth: 3
    functionLinenumber: 237
    functionLinenumberEnd: 281
    functionName: Botan::sign_message
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp
    functionUses: 0
    functionsReached:
    - Botan::Ed448Point::base_point
    - auto::update
    - auto::output
    - BufferStuffer::append
    - SHAKE_256_XOF
    - auto::to_bytes
    - BufferStuffer::full
    - Botan::encode
    - Botan::scalar_from_xof
    - BOTAN_ASSERT
    linkageType: ''
    returnType: std::array<uint8_t, 2 * ED448_LEN>
    signature: "std::array<uint8_t, 2 * ED448_LEN> sign_message(std::span<const uint8_t,
      ED448_LEN> sk,\n                                                std::span<const
      uint8_t, ED448_LEN> pk,\n                                                bool
      pgflag,\n                                                std::span<const uint8_t>
      context,\n                                                std::span<const uint8_t>
      msg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:296,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:298,1
    - Dst: Botan::split
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:300,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:300,1
    - Dst: Botan::Ed448Point::decode
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:301,1
    - Dst: Botan::Scalar448::bytes_are_reduced
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:302,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:304,1
    - Dst: Botan::Ed448Point::base_point
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:312,1
    - Dst: Botan::Ed448Point::decode
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:312,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 5
    argNames:
    - pk
    - phflag
    - context
    - sig
    - msg
    argTypes:
    - std::span<const uint8_t, ED448_LEN>
    - bool
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 283
    functionDepth: 3
    functionLinenumber: 283
    functionLinenumberEnd: 313
    functionName: Botan::verify_signature
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp
    functionUses: 0
    functionsReached:
    - Botan::Ed448Point::base_point
    - Botan::Ed448Point::decode
    - std::span<const uint8_t>::size
    - Botan::Scalar448::bytes_are_reduced
    - Botan::split
    - Botan::Decoding_Error
    - std::span<const uint8_t>::first
    linkageType: ''
    returnType: bool
    signature: "bool verify_signature(std::span<const uint8_t, ED448_LEN> pk,\n                      bool
      phflag,\n                      std::span<const uint8_t> context,\n                      std::span<const
      uint8_t> sig,\n                      std::span<const uint8_t> msg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:29,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:29,1
    - Dst: Botan::concat
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:30,1
    - Dst: Botan::store_le
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:31,1
    - Dst: Botan::store_le
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:32,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:32,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint8_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 34
    functionName: Botan::dom4
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp
    functionUses: 2
    functionsReached:
    - std::span<const uint8_t>::size
    - static_cast<uint8_t>
    - BOTAN_ARG_CHECK
    - Botan::concat
    - Botan::store_le
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> dom4(uint8_t x, std::span<const uint8_t> y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHAKE_256_XOF
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:38,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:39,1
    - Dst: Botan::dom4
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:39,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:39,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:40,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:40,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - f
    - context
    argTypes:
    - bool
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: Botan::shake
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - auto::output
    - SHAKE_256_XOF
    - static_cast<uint8_t>
    - Botan::dom4
    - std::span
    linkageType: ''
    returnType: std::array<uint8_t, 2 * ED448_LEN>
    signature: std::array<uint8_t, 2 * ED448_LEN> shake(bool f, std::span<const uint8_t>
      context, Ts... xs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:48,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arr
    argTypes:
    - std::span<const uint8_t, 114>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: Botan::split
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp
    functionUses: 1
    functionsReached:
    - BufferSlicer::take
    linkageType: ''
    returnType: std::pair<std::span<const uint8_t, 57>, std::span<const uint8_t, 57>>
    signature: std::pair<std::span<const uint8_t, 57>, std::span<const uint8_t, 57>>
      split(std::span<const uint8_t, 114> arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::output
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:60,1
    - Dst: Botan::Scalar448
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' shake_xof'
    argTypes:
    - XOF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 69
    functionName: Botan::scalar_from_xof
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp
    functionUses: 2
    functionsReached:
    - Botan::output
    - Botan::Scalar448
    linkageType: ''
    returnType: Scalar448
    signature: Scalar448 scalar_from_xof(XOF& shake_xof)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:29,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:29,1
    - Dst: Botan::concat
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:30,1
    - Dst: Botan::store_le
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:31,1
    - Dst: Botan::store_le
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:32,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:32,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint8_t
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 34
    functionName: Botan::dom4
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp
    functionUses: 3
    functionsReached:
    - std::span<const uint8_t>::size
    - static_cast<uint8_t>
    - BOTAN_ARG_CHECK
    - Botan::concat
    - Botan::store_le
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> dom4(uint8_t x, std::span<const uint8_t> y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHAKE_256_XOF
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:38,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:39,1
    - Dst: Botan::dom4
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:39,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:39,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:40,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:40,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - f
    - context
    argTypes:
    - bool
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 44
    functionName: Botan::shake
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - auto::output
    - SHAKE_256_XOF
    - static_cast<uint8_t>
    - Botan::dom4
    - std::span
    linkageType: ''
    returnType: std::array<uint8_t, 2 * ED448_LEN>
    signature: std::array<uint8_t, 2 * ED448_LEN> shake(bool f, std::span<const uint8_t>
      context, Ts... xs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:48,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - arr
    argTypes:
    - std::span<const uint8_t, 114>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: Botan::split
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp
    functionUses: 1
    functionsReached:
    - BufferSlicer::take
    linkageType: ''
    returnType: std::pair<std::span<const uint8_t, 57>, std::span<const uint8_t, 57>>
    signature: std::pair<std::span<const uint8_t, 57>, std::span<const uint8_t, 57>>
      split(std::span<const uint8_t, 114> arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::output
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:60,1
    - Dst: Botan::Scalar448
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' shake_xof'
    argTypes:
    - XOF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 69
    functionName: Botan::scalar_from_xof
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp
    functionUses: 2
    functionsReached:
    - Botan::output
    - Botan::Scalar448
    linkageType: ''
    returnType: Scalar448
    signature: Scalar448 scalar_from_xof(XOF& shake_xof)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t, ED448_LEN>::back
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:80,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:81,1
    - Dst: std::span<const uint8_t, ED448_LEN>::back
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:83,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:84,1
    - Dst: Botan::Gf448Elem::bytes_are_canonical_representation
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:85,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:86,1
    - Dst: Gf448Elem
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:88,1
    - Dst: Gf448Elem
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:99,1
    - Dst: square
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:100,1
    - Dst: Gf448Elem
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:100,1
    - Dst: Botan::Gf448Elem::one
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:100,1
    - Dst: square
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:101,1
    - Dst: Gf448Elem
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:101,1
    - Dst: Botan::Gf448Elem::one
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:101,1
    - Dst: square
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:102,1
    - Dst: root
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:102,1
    - Dst: square
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:102,1
    - Dst: square
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:102,1
    - Dst: square
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:102,1
    - Dst: square
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:106,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:107,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:112,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:113,1
    - Dst: auto::is_odd
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:115,1
    - Dst: Botan::CT::Mask::expand_bool
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:117,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:118,1
    - Dst: auto::words
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:118,1
    - Dst: words
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:118,1
    - Dst: Gf448Elem
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:120,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 15
    argCount: 1
    argNames:
    - enc
    argTypes:
    - std::span<const uint8_t, ED448_LEN>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 73
    functionDepth: 2
    functionLinenumber: 73
    functionLinenumberEnd: 121
    functionName: Botan::Ed448Point::decode
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp
    functionUses: 7
    functionsReached:
    - Decoding_Error
    - auto::is_zero
    - Gf448Elem
    - auto::is_odd
    - std::array::data
    - words
    - Botan::CT::Mask::expand_bool
    - square
    - auto::words
    - Botan::Gf448Elem::bytes_are_canonical_representation
    - root
    - Botan::Gf448Elem::one
    - std::span
    - std::span<const uint8_t, ED448_LEN>::back
    linkageType: ''
    returnType: Ed448Point
    signature: Ed448Point Ed448Point::decode(std::span<const uint8_t, ED448_LEN> enc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Ed448Point
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:138,1
    - Dst: Gf448Elem
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:138,1
    - Dst: Gf448Elem
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 139
    functionName: Botan::Ed448Point::base_point
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp
    functionUses: 3
    functionsReached:
    - Ed448Point
    - Gf448Elem
    linkageType: ''
    returnType: Ed448Point
    signature: Ed448Point Ed448Point::base_point()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: y
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:149,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:149,1
    - Dst: std::array::back
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:153,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:153,1
    - Dst: x
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 156
    functionName: Botan::Ed448Point::encode
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t>
    - std::array::back
    - x
    - y
    - std::span
    linkageType: ''
    returnType: std::array<uint8_t, ED448_LEN>
    signature: std::array<uint8_t, ED448_LEN> Ed448Point::encode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: square
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:161,1
    - Dst: Gf448Elem
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:164,1
    - Dst: Ed448Point
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Ed448Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 173
    functionName: Ed448Point::operator+(const Ed448Point& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp
    functionUses: 0
    functionsReached:
    - Ed448Point
    - Gf448Elem
    - square
    linkageType: ''
    returnType: Ed448Point
    signature: Ed448Point Ed448Point::operator+(const Ed448Point& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: square
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:177,1
    - Dst: square
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:178,1
    - Dst: square
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:179,1
    - Dst: square
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:181,1
    - Dst: Ed448Point
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 188
    functionName: Botan::Ed448Point::double_point
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp
    functionUses: 0
    functionsReached:
    - Ed448Point
    - square
    linkageType: ''
    returnType: Ed448Point
    signature: Ed448Point Ed448Point::double_point() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Fuzzer_TLS_Client_Creds::psk_identity
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:191,1
    - Dst: auto::double_point
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:198,1
    - Dst: auto::ct_conditional_assign
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:201,1
    - Dst: get_bit
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - Scalar448
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 190
    functionDepth: 1
    functionLinenumber: 190
    functionLinenumberEnd: 204
    functionName: Botan::Ed448Point::scalar_mul
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp
    functionUses: 0
    functionsReached:
    - get_bit
    - Fuzzer_TLS_Client_Creds::psk_identity
    - auto::ct_conditional_assign
    - auto::double_point
    linkageType: ''
    returnType: Ed448Point
    signature: Ed448Point Ed448Point::scalar_mul(const Scalar448& s) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::Mask::expand_bool
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:208,1
    - Dst: x
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:208,1
    - Dst: x
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:208,1
    - Dst: Botan::CT::Mask::expand_bool
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:209,1
    - Dst: y
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:209,1
    - Dst: y
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:209,1
    - Dst: as_bool
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Ed448Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 212
    functionName: Ed448Point::operator==(const Ed448Point& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp
    functionUses: 0
    functionsReached:
    - x
    - Botan::CT::Mask::expand_bool
    - as_bool
    - y
    linkageType: ''
    returnType: bool
    signature: bool Ed448Point::operator==(const Ed448Point& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ct_cond_assign
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:215,1
    - Dst: ct_cond_assign
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:216,1
    - Dst: ct_cond_assign
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cond
    - ' other'
    argTypes:
    - bool
    - Ed448Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 218
    functionName: Botan::Ed448Point::ct_conditional_assign
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp
    functionUses: 0
    functionsReached:
    - ct_cond_assign
    linkageType: ''
    returnType: void
    signature: void Ed448Point::ct_conditional_assign(bool cond, const Ed448Point&
      other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scalar_mul
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Scalar448
    - Ed448Point
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 222
    functionName: operator*(const Scalar448& lhs, const Ed448Point& rhs)
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp
    functionUses: 0
    functionsReached:
    - scalar_mul
    linkageType: ''
    returnType: Ed448Point
    signature: Ed448Point operator*(const Scalar448& lhs, const Ed448Point& rhs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHAKE_256_XOF
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:227,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:228,1
    - Dst: Botan::scalar_from_xof
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:230,1
    - Dst: Botan::Ed448Point::base_point
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:234,1
    - Dst: Botan::encode
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sk
    argTypes:
    - std::span<const uint8_t, ED448_LEN>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 224
    functionDepth: 3
    functionLinenumber: 224
    functionLinenumberEnd: 235
    functionName: Botan::create_pk_from_sk
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp
    functionUses: 4
    functionsReached:
    - Botan::Ed448Point::base_point
    - auto::update
    - SHAKE_256_XOF
    - Botan::encode
    - Botan::scalar_from_xof
    linkageType: ''
    returnType: std::array<uint8_t, ED448_LEN>
    signature: std::array<uint8_t, ED448_LEN> create_pk_from_sk(std::span<const uint8_t,
      ED448_LEN> sk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHAKE_256_XOF
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:251,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:252,1
    - Dst: Botan::scalar_from_xof
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:253,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:255,1
    - Dst: Botan::Ed448Point::base_point
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:264,1
    - Dst: Botan::encode
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:264,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:276,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:277,1
    - Dst: auto::to_bytes
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:277,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:278,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 5
    argNames:
    - sk
    - pk
    - pgflag
    - context
    - msg
    argTypes:
    - std::span<const uint8_t, ED448_LEN>
    - std::span<const uint8_t, ED448_LEN>
    - bool
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 237
    functionDepth: 3
    functionLinenumber: 237
    functionLinenumberEnd: 281
    functionName: Botan::sign_message
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp
    functionUses: 0
    functionsReached:
    - Botan::Ed448Point::base_point
    - auto::update
    - auto::output
    - BufferStuffer::append
    - SHAKE_256_XOF
    - auto::to_bytes
    - BufferStuffer::full
    - Botan::encode
    - Botan::scalar_from_xof
    - BOTAN_ASSERT
    linkageType: ''
    returnType: std::array<uint8_t, 2 * ED448_LEN>
    signature: "std::array<uint8_t, 2 * ED448_LEN> sign_message(std::span<const uint8_t,
      ED448_LEN> sk,\n                                                std::span<const
      uint8_t, ED448_LEN> pk,\n                                                bool
      pgflag,\n                                                std::span<const uint8_t>
      context,\n                                                std::span<const uint8_t>
      msg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:296,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:298,1
    - Dst: Botan::split
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:300,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:300,1
    - Dst: Botan::Ed448Point::decode
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:301,1
    - Dst: Botan::Scalar448::bytes_are_reduced
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:302,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:304,1
    - Dst: Botan::Ed448Point::base_point
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:312,1
    - Dst: Botan::Ed448Point::decode
      Src: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp:312,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 5
    argNames:
    - pk
    - phflag
    - context
    - sig
    - msg
    argTypes:
    - std::span<const uint8_t, ED448_LEN>
    - bool
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 283
    functionDepth: 3
    functionLinenumber: 283
    functionLinenumberEnd: 313
    functionName: Botan::verify_signature
    functionSourceFile: /src/botan/src/lib/pubkey/curve448/ed448/ed448_internal.cpp
    functionUses: 0
    functionsReached:
    - Botan::Ed448Point::base_point
    - Botan::Ed448Point::decode
    - std::span<const uint8_t>::size
    - Botan::Scalar448::bytes_are_reduced
    - Botan::split
    - Botan::Decoding_Error
    - std::span<const uint8_t>::first
    linkageType: ''
    returnType: bool
    signature: "bool verify_signature(std::span<const uint8_t, ED448_LEN> pk,\n                      bool
      phflag,\n                      std::span<const uint8_t> context,\n                      std::span<const
      uint8_t> sig,\n                      std::span<const uint8_t> msg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<DL_PublicKey>
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:17,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: 18
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 18
    functionName: Botan::DH_PublicKey::DH_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<DL_PublicKey>
    linkageType: ''
    returnType: void
    signature: void DH_PublicKey::DH_PublicKey(const AlgorithmIdentifier& alg_id,
      std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<DL_PublicKey>
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' group'
    - ' y'
    argTypes:
    - DL_Group
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: Botan::DH_PublicKey::DH_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<DL_PublicKey>
    linkageType: ''
    returnType: void
    signature: void DH_PublicKey::DH_PublicKey(const DL_Group& group, const BigInt&
      y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DH_PublicKey::estimated_strength
      Src: /src/botan/src/lib/pubkey/dh/dh.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::DH_PublicKey::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 1
    functionsReached:
    - Botan::DH_PublicKey::estimated_strength
    linkageType: ''
    returnType: size_t
    signature: size_t DH_PublicKey::estimated_strength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p_bits
      Src: /src/botan/src/lib/pubkey/dh/dh.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::DH_PublicKey::key_length
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 0
    functionsReached:
    - p_bits
    linkageType: ''
    returnType: size_t
    signature: size_t DH_PublicKey::key_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_int_field
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:33,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - field
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: '& DH_PublicKey::get_int_field(std::string_view field) const'
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 0
    functionsReached:
    - get_int_field
    - algo_name
    linkageType: ''
    returnType: BigInt
    signature: BigInt & DH_PublicKey::get_int_field(std::string_view field) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dh/dh.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: '& DH_PublicKey::group() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 0
    functionsReached:
    - group
    linkageType: ''
    returnType: DL_Group
    signature: DL_Group & DH_PublicKey::group() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:41,1
    - Dst: object_identifier
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:41,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dh/dh.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::DH_PublicKey::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 0
    functionsReached:
    - AlgorithmIdentifier
    - object_identifier
    - group
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier DH_PublicKey::algorithm_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_key_as_bytes
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:45,1
    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::DH_PublicKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 0
    functionsReached:
    - public_key_as_bytes
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> DH_PublicKey::raw_public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_encode
      Src: /src/botan/src/lib/pubkey/dh/dh.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::DH_PublicKey::public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 0
    functionsReached:
    - DER_encode
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> DH_PublicKey::public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DH_PublicKey::check_key
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: Botan::DH_PublicKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 1
    functionsReached:
    - Botan::DH_PublicKey::check_key
    linkageType: ''
    returnType: bool
    signature: bool DH_PublicKey::check_key(RandomNumberGenerator& rng, bool strong)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<DH_PrivateKey>
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:57,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: Botan::DH_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<DH_PrivateKey>
    - group
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> DH_PublicKey::generate_another(RandomNumberGenerator&
      rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<DL_PrivateKey>
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:61,1
    - Dst: Botan::DH_PrivateKey::public_key
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' rng'
    - ' group'
    argTypes:
    - RandomNumberGenerator
    - DL_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: Botan::DH_PrivateKey::DH_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<DL_PrivateKey>
    - Botan::DH_PrivateKey::public_key
    linkageType: ''
    returnType: void
    signature: void DH_PrivateKey::DH_PrivateKey(RandomNumberGenerator& rng, const
      DL_Group& group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<DL_PrivateKey>
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:66,1
    - Dst: Botan::DH_PrivateKey::public_key
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' group'
    - ' x'
    argTypes:
    - DL_Group
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: Botan::DH_PrivateKey::DH_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<DL_PrivateKey>
    - Botan::DH_PrivateKey::public_key
    linkageType: ''
    returnType: void
    signature: void DH_PrivateKey::DH_PrivateKey(const DL_Group& group, const BigInt&
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<DL_PrivateKey>
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:71,1
    - Dst: Botan::DH_PrivateKey::public_key
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:72,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: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: Botan::DH_PrivateKey::DH_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<DL_PrivateKey>
    - Botan::DH_PrivateKey::public_key
    linkageType: ''
    returnType: void
    signature: void DH_PrivateKey::DH_PrivateKey(const AlgorithmIdentifier& alg_id,
      std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<DH_PublicKey>
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:76,1
    - Dst: DH_PublicKey::DH_PublicKey
      Src: /src/botan/src/lib/pubkey/dh/dh.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::DH_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 3
    functionsReached:
    - std::unique_ptr<DH_PublicKey>
    - DH_PublicKey::DH_PublicKey
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> DH_PrivateKey::public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/dh/dh.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::DH_PrivateKey::public_value
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 8
    functionsReached:
    - raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> DH_PrivateKey::public_value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_encode
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: Botan::DH_PrivateKey::private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 0
    functionsReached:
    - DER_encode
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> DH_PrivateKey::private_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DH_PrivateKey::raw_private_key_bits
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:88,1
    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::DH_PrivateKey::raw_private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 1
    functionsReached:
    - Botan::DH_PrivateKey::raw_private_key_bits
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> DH_PrivateKey::raw_private_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_int_field
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:92,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - field
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: '& DH_PrivateKey::get_int_field(std::string_view field) const'
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 0
    functionsReached:
    - get_int_field
    - algo_name
    linkageType: ''
    returnType: BigInt
    signature: BigInt & DH_PrivateKey::get_int_field(std::string_view field) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: private_key
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:107,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:109,1
    - Dst: Botan::DH_KA_Operation::powermod_x_p
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:112,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' key'
    - kdf
    - ' rng'
    argTypes:
    - std::shared_ptr<const DL_PrivateKey>
    - std::string_view
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 112
    functionName: Botan::DH_KA_Operation::DH_KA_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 0
    functionsReached:
    - private_key
    - group
    - Botan::DH_KA_Operation::powermod_x_p
    linkageType: ''
    returnType: void
    signature: "void DH_KA_Operation(const std::shared_ptr<const DL_PrivateKey>& key,\n
      \                     std::string_view kdf,\n                      RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp: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: Botan::DH_KA_Operation::agreed_value_size
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 0
    functionsReached:
    - group
    linkageType: ''
    returnType: size_t
    signature: size_t agreed_value_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::group
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp: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: '& group() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 0
    functionsReached:
    - Botan::group
    linkageType: ''
    returnType: DL_Group
    signature: DL_Group & group() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:121,1
    - Dst: private_key
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: Botan::DH_KA_Operation::powermod_x_p
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 1
    functionsReached:
    - private_key
    - group
    linkageType: ''
    returnType: BigInt
    signature: BigInt powermod_x_p(const BigInt& v) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:129,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:131,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:132,1
    - Dst: blind
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:135,1
    - Dst: Botan::DH_KA_Operation::powermod_x_p
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:136,1
    - Dst: unblind
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:137,1
    - Dst: BigInt::serialize
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:139,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - w
    - w_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 140
    functionName: Botan::DH_KA_Operation::raw_agree
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 0
    functionsReached:
    - unblind
    - Botan::DH_KA_Operation::powermod_x_p
    - group
    - Botan::BigInt::from_bytes
    - Invalid_Argument
    - BigInt::serialize
    - blind
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> DH_KA_Operation::raw_agree(const uint8_t w[],
      size_t w_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: private_key
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:107,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:109,1
    - Dst: Botan::DH_KA_Operation::powermod_x_p
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:112,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' key'
    - kdf
    - ' rng'
    argTypes:
    - std::shared_ptr<const DL_PrivateKey>
    - std::string_view
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 112
    functionName: Botan::DH_KA_Operation::DH_KA_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 0
    functionsReached:
    - private_key
    - group
    - Botan::DH_KA_Operation::powermod_x_p
    linkageType: ''
    returnType: void
    signature: "void DH_KA_Operation(const std::shared_ptr<const DL_PrivateKey>& key,\n
      \                     std::string_view kdf,\n                      RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp: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: Botan::DH_KA_Operation::agreed_value_size
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 0
    functionsReached:
    - group
    linkageType: ''
    returnType: size_t
    signature: size_t agreed_value_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::group
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp: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: '& group() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 0
    functionsReached:
    - Botan::group
    linkageType: ''
    returnType: DL_Group
    signature: DL_Group & group() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:121,1
    - Dst: private_key
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: Botan::DH_KA_Operation::powermod_x_p
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 3
    functionsReached:
    - private_key
    - group
    linkageType: ''
    returnType: BigInt
    signature: BigInt powermod_x_p(const BigInt& v) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:129,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:131,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:132,1
    - Dst: blind
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:135,1
    - Dst: Botan::DH_KA_Operation::powermod_x_p
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:136,1
    - Dst: unblind
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:137,1
    - Dst: BigInt::serialize
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:139,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - w
    - w_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 140
    functionName: Botan::DH_KA_Operation::raw_agree
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 0
    functionsReached:
    - unblind
    - Botan::DH_KA_Operation::powermod_x_p
    - group
    - Botan::BigInt::from_bytes
    - Invalid_Argument
    - BigInt::serialize
    - blind
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> DH_KA_Operation::raw_agree(const uint8_t w[],
      size_t w_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:147,1
    - Dst: std::make_unique<DH_KA_Operation>
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:148,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:150,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:150,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: 151
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 151
    functionName: Botan::DH_PrivateKey::create_key_agreement_op
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<DH_KA_Operation>
    - Provider_Not_Found
    - algo_name
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Key_Agreement>
    signature: "std::unique_ptr<PK_Ops::Key_Agreement> DH_PrivateKey::create_key_agreement_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/dh/dh.cpp:17,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: 18
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 18
    functionName: Botan::DH_PublicKey::DH_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<DL_PublicKey>
    linkageType: ''
    returnType: void
    signature: void DH_PublicKey::DH_PublicKey(const AlgorithmIdentifier& alg_id,
      std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<DL_PublicKey>
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' group'
    - ' y'
    argTypes:
    - DL_Group
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 22
    functionName: Botan::DH_PublicKey::DH_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<DL_PublicKey>
    linkageType: ''
    returnType: void
    signature: void DH_PublicKey::DH_PublicKey(const DL_Group& group, const BigInt&
      y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DH_PublicKey::estimated_strength
      Src: /src/botan/src/lib/pubkey/dh/dh.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::DH_PublicKey::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 2
    functionsReached:
    - Botan::DH_PublicKey::estimated_strength
    linkageType: ''
    returnType: size_t
    signature: size_t DH_PublicKey::estimated_strength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p_bits
      Src: /src/botan/src/lib/pubkey/dh/dh.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::DH_PublicKey::key_length
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 0
    functionsReached:
    - p_bits
    linkageType: ''
    returnType: size_t
    signature: size_t DH_PublicKey::key_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_int_field
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:33,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - field
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: '& DH_PublicKey::get_int_field(std::string_view field) const'
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 0
    functionsReached:
    - get_int_field
    - algo_name
    linkageType: ''
    returnType: BigInt
    signature: BigInt & DH_PublicKey::get_int_field(std::string_view field) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dh/dh.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: '& DH_PublicKey::group() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 0
    functionsReached:
    - group
    linkageType: ''
    returnType: DL_Group
    signature: DL_Group & DH_PublicKey::group() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:41,1
    - Dst: object_identifier
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:41,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dh/dh.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::DH_PublicKey::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 0
    functionsReached:
    - AlgorithmIdentifier
    - object_identifier
    - group
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier DH_PublicKey::algorithm_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_key_as_bytes
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:45,1
    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::DH_PublicKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 0
    functionsReached:
    - public_key_as_bytes
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> DH_PublicKey::raw_public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_encode
      Src: /src/botan/src/lib/pubkey/dh/dh.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::DH_PublicKey::public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 0
    functionsReached:
    - DER_encode
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> DH_PublicKey::public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DH_PublicKey::check_key
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: Botan::DH_PublicKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 2
    functionsReached:
    - Botan::DH_PublicKey::check_key
    linkageType: ''
    returnType: bool
    signature: bool DH_PublicKey::check_key(RandomNumberGenerator& rng, bool strong)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<DH_PrivateKey>
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:57,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: Botan::DH_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<DH_PrivateKey>
    - group
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> DH_PublicKey::generate_another(RandomNumberGenerator&
      rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<DL_PrivateKey>
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:61,1
    - Dst: Botan::DH_PrivateKey::public_key
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' rng'
    - ' group'
    argTypes:
    - RandomNumberGenerator
    - DL_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: Botan::DH_PrivateKey::DH_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<DL_PrivateKey>
    - Botan::DH_PrivateKey::public_key
    linkageType: ''
    returnType: void
    signature: void DH_PrivateKey::DH_PrivateKey(RandomNumberGenerator& rng, const
      DL_Group& group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<DL_PrivateKey>
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:66,1
    - Dst: Botan::DH_PrivateKey::public_key
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' group'
    - ' x'
    argTypes:
    - DL_Group
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: Botan::DH_PrivateKey::DH_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<DL_PrivateKey>
    - Botan::DH_PrivateKey::public_key
    linkageType: ''
    returnType: void
    signature: void DH_PrivateKey::DH_PrivateKey(const DL_Group& group, const BigInt&
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<DL_PrivateKey>
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:71,1
    - Dst: Botan::DH_PrivateKey::public_key
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:72,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: 73
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: Botan::DH_PrivateKey::DH_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<DL_PrivateKey>
    - Botan::DH_PrivateKey::public_key
    linkageType: ''
    returnType: void
    signature: void DH_PrivateKey::DH_PrivateKey(const AlgorithmIdentifier& alg_id,
      std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<DH_PublicKey>
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:76,1
    - Dst: DH_PublicKey::DH_PublicKey
      Src: /src/botan/src/lib/pubkey/dh/dh.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::DH_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 6
    functionsReached:
    - std::unique_ptr<DH_PublicKey>
    - DH_PublicKey::DH_PublicKey
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> DH_PrivateKey::public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/dh/dh.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::DH_PrivateKey::public_value
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 8
    functionsReached:
    - raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> DH_PrivateKey::public_value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_encode
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: Botan::DH_PrivateKey::private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 0
    functionsReached:
    - DER_encode
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> DH_PrivateKey::private_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DH_PrivateKey::raw_private_key_bits
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:88,1
    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::DH_PrivateKey::raw_private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 2
    functionsReached:
    - Botan::DH_PrivateKey::raw_private_key_bits
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> DH_PrivateKey::raw_private_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_int_field
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:92,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - field
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 93
    functionName: '& DH_PrivateKey::get_int_field(std::string_view field) const'
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 0
    functionsReached:
    - get_int_field
    - algo_name
    linkageType: ''
    returnType: BigInt
    signature: BigInt & DH_PrivateKey::get_int_field(std::string_view field) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: private_key
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:107,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:109,1
    - Dst: Botan::DH_KA_Operation::powermod_x_p
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:112,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' key'
    - kdf
    - ' rng'
    argTypes:
    - std::shared_ptr<const DL_PrivateKey>
    - std::string_view
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 112
    functionName: Botan::DH_KA_Operation::DH_KA_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 0
    functionsReached:
    - private_key
    - group
    - Botan::DH_KA_Operation::powermod_x_p
    linkageType: ''
    returnType: void
    signature: "void DH_KA_Operation(const std::shared_ptr<const DL_PrivateKey>& key,\n
      \                     std::string_view kdf,\n                      RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp: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: Botan::DH_KA_Operation::agreed_value_size
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 0
    functionsReached:
    - group
    linkageType: ''
    returnType: size_t
    signature: size_t agreed_value_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dh/dh.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: '& group() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 0
    functionsReached:
    - group
    linkageType: ''
    returnType: DL_Group
    signature: DL_Group & group() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:121,1
    - Dst: private_key
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: Botan::DH_KA_Operation::powermod_x_p
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 5
    functionsReached:
    - private_key
    - group
    linkageType: ''
    returnType: BigInt
    signature: BigInt powermod_x_p(const BigInt& v) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:129,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:131,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:132,1
    - Dst: blind
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:135,1
    - Dst: Botan::DH_KA_Operation::powermod_x_p
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:136,1
    - Dst: unblind
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:137,1
    - Dst: BigInt::serialize
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:139,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - w
    - w_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 140
    functionName: Botan::DH_KA_Operation::raw_agree
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 0
    functionsReached:
    - unblind
    - Botan::DH_KA_Operation::powermod_x_p
    - group
    - Botan::BigInt::from_bytes
    - Invalid_Argument
    - BigInt::serialize
    - blind
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> DH_KA_Operation::raw_agree(const uint8_t w[],
      size_t w_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: private_key
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:107,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:109,1
    - Dst: Botan::DH_KA_Operation::powermod_x_p
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:112,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' key'
    - kdf
    - ' rng'
    argTypes:
    - std::shared_ptr<const DL_PrivateKey>
    - std::string_view
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 112
    functionName: Botan::DH_KA_Operation::DH_KA_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 0
    functionsReached:
    - private_key
    - group
    - Botan::DH_KA_Operation::powermod_x_p
    linkageType: ''
    returnType: void
    signature: "void DH_KA_Operation(const std::shared_ptr<const DL_PrivateKey>& key,\n
      \                     std::string_view kdf,\n                      RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp: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: Botan::DH_KA_Operation::agreed_value_size
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 0
    functionsReached:
    - group
    linkageType: ''
    returnType: size_t
    signature: size_t agreed_value_size() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dh/dh.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: '& group() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 0
    functionsReached:
    - group
    linkageType: ''
    returnType: DL_Group
    signature: DL_Group & group() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:121,1
    - Dst: private_key
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: Botan::DH_KA_Operation::powermod_x_p
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 7
    functionsReached:
    - private_key
    - group
    linkageType: ''
    returnType: BigInt
    signature: BigInt powermod_x_p(const BigInt& v) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BigInt::from_bytes
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:129,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:131,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:132,1
    - Dst: blind
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:135,1
    - Dst: Botan::DH_KA_Operation::powermod_x_p
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:136,1
    - Dst: unblind
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:137,1
    - Dst: BigInt::serialize
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:139,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:139,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - w
    - w_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 140
    functionName: Botan::DH_KA_Operation::raw_agree
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 0
    functionsReached:
    - unblind
    - Botan::DH_KA_Operation::powermod_x_p
    - group
    - Botan::BigInt::from_bytes
    - Invalid_Argument
    - BigInt::serialize
    - blind
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> DH_KA_Operation::raw_agree(const uint8_t w[],
      size_t w_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:147,1
    - Dst: std::make_unique<DH_KA_Operation>
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:148,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:150,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/dh/dh.cpp:150,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: 151
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 151
    functionName: Botan::DH_PrivateKey::create_key_agreement_op
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<DH_KA_Operation>
    - Provider_Not_Found
    - algo_name
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Key_Agreement>
    signature: "std::unique_ptr<PK_Ops::Key_Agreement> DH_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/dh/dh.h: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::public_value
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.h
    functionUses: 4
    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: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: Botan::algo_name
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.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: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: Botan::supports_operation
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool supports_operation(PublicKeyOperation op) 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::DH_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DH_PublicKey()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dh/dh.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::shared_ptr<const DL_PublicKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: Botan::DH_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void DH_PublicKey(std::shared_ptr<const DL_PublicKey> key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/dh/dh.h: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::public_value
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.h
    functionUses: 4
    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: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: Botan::algo_name
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.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: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: Botan::supports_operation
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool supports_operation(PublicKeyOperation op) 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::DH_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DH_PublicKey()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dh/dh.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::shared_ptr<const DL_PublicKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: Botan::DH_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/dh/dh.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void DH_PublicKey(std::shared_ptr<const DL_PublicKey> key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::bit_size_to_byte_size
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:27,1
    - Dst: Botan::bit_size_to_byte_size
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:27,1
    - Dst: Botan::bit_size_to_byte_size
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:32,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:33,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:33,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:34,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:34,1
    - Dst: Botan::bit_size_to_byte_size
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:34,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:36,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:36,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:38,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:41,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:43,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - dimension
    - codimension
    argTypes:
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 49
    functionName: Botan::concat_vectors
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece.cpp
    functionUses: 0
    functionsReached:
    - Botan::data
    - static_cast<uint8_t>
    - Botan::copy_mem
    - Botan::bit_size_to_byte_size
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> concat_vectors(const secure_vector<uint8_t>&
      a,\n                                      const secure_vector<uint8_t>& b,\n
      \                                     size_t dimension,\n                                      size_t
      codimension)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ceil_log2
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:55,1
    - Dst: Botan::bit_size_to_32bit_size
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:58,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:60,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:65,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:65,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:65,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:67,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:73,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:73,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:73,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:75,1
    - Dst: Botan::concat_vectors
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:78,1
    - Dst: secure_vector::resize
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:79,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - ' cleartext'
    - ' public_matrix'
    - code_length
    - t
    argTypes:
    - secure_vector<uint8_t>
    - std::vector<uint8_t>
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 81
    functionName: Botan::mult_by_pubkey
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece.cpp
    functionUses: 0
    functionsReached:
    - Botan::ceil_log2
    - Botan::data
    - Botan::xor_buf
    - secure_vector::size
    - Botan::bit_size_to_32bit_size
    - secure_vector::resize
    - secure_vector::data
    - Botan::concat_vectors
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> mult_by_pubkey(const secure_vector<uint8_t>&
      cleartext,\n                                      const std::vector<uint8_t>&
      public_matrix,\n                                      size_t code_length,\n
      \                                     size_t t)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::random_code_element
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:89,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:89,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - code_length
    - error_weight
    - ' rng'
    argTypes:
    - size_t
    - size_t
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 105
    functionName: Botan::create_random_error_vector
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - Botan::random_code_element
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> create_random_error_vector(size_t code_length,
      size_t error_weight, RandomNumberGenerator& rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::bit_size_to_byte_size
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:27,1
    - Dst: Botan::bit_size_to_byte_size
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:27,1
    - Dst: Botan::bit_size_to_byte_size
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:32,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:33,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:33,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:34,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:34,1
    - Dst: Botan::bit_size_to_byte_size
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:34,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:36,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:36,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:38,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:41,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:43,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - dimension
    - codimension
    argTypes:
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 49
    functionName: Botan::concat_vectors
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece.cpp
    functionUses: 1
    functionsReached:
    - Botan::data
    - static_cast<uint8_t>
    - Botan::copy_mem
    - Botan::bit_size_to_byte_size
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> concat_vectors(const secure_vector<uint8_t>&
      a,\n                                      const secure_vector<uint8_t>& b,\n
      \                                     size_t dimension,\n                                      size_t
      codimension)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ceil_log2
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:55,1
    - Dst: Botan::bit_size_to_32bit_size
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:58,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:60,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:65,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:65,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:65,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:67,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:73,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:73,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:73,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:75,1
    - Dst: Botan::concat_vectors
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:78,1
    - Dst: secure_vector::resize
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:79,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - ' cleartext'
    - ' public_matrix'
    - code_length
    - t
    argTypes:
    - secure_vector<uint8_t>
    - std::vector<uint8_t>
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 81
    functionName: Botan::mult_by_pubkey
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece.cpp
    functionUses: 0
    functionsReached:
    - Botan::ceil_log2
    - Botan::data
    - Botan::xor_buf
    - secure_vector::size
    - Botan::bit_size_to_32bit_size
    - secure_vector::resize
    - secure_vector::data
    - Botan::concat_vectors
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> mult_by_pubkey(const secure_vector<uint8_t>&
      cleartext,\n                                      const std::vector<uint8_t>&
      public_matrix,\n                                      size_t code_length,\n
      \                                     size_t t)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::random_code_element
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:89,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:89,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - code_length
    - error_weight
    - ' rng'
    argTypes:
    - size_t
    - size_t
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 105
    functionName: Botan::create_random_error_vector
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - Botan::random_code_element
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> create_random_error_vector(size_t code_length,
      size_t error_weight, RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:114,1
    - Dst: Botan::get_code_length
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:114,1
    - Dst: Botan::create_random_error_vector
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:116,1
    - Dst: Botan::get_t
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:116,1
    - Dst: Botan::mult_by_pubkey
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:119,1
    - Dst: Botan::get_public_matrix
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:119,1
    - Dst: Botan::get_code_length
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:119,1
    - Dst: Botan::get_t
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:119,1
    - Dst: Botan::swap
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:123,1
    - Dst: Botan::swap
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - ' ciphertext_out'
    - ' error_mask_out'
    - ' plaintext'
    - ' key'
    - ' rng'
    argTypes:
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    - McEliece_PublicKey
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 109
    functionDepth: 3
    functionLinenumber: 109
    functionLinenumberEnd: 125
    functionName: Botan::mceliece_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece.cpp
    functionUses: 0
    functionsReached:
    - Botan::mult_by_pubkey
    - static_cast<uint16_t>
    - Botan::get_code_length
    - Botan::get_public_matrix
    - Botan::get_t
    - Botan::swap
    - Botan::create_random_error_vector
    linkageType: ''
    returnType: void
    signature: "void mceliece_encrypt(secure_vector<uint8_t>& ciphertext_out,\n                      secure_vector<uint8_t>&
      error_mask_out,\n                      const secure_vector<uint8_t>& plaintext,\n
      \                     const McEliece_PublicKey& key,\n                      RandomNumberGenerator&
      rng)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::bit_size_to_byte_size
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:27,1
    - Dst: Botan::bit_size_to_byte_size
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:27,1
    - Dst: Botan::bit_size_to_byte_size
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:32,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:33,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:33,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:34,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:34,1
    - Dst: Botan::bit_size_to_byte_size
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:34,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:36,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:36,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:38,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:41,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:43,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - dimension
    - codimension
    argTypes:
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 49
    functionName: Botan::concat_vectors
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece.cpp
    functionUses: 2
    functionsReached:
    - Botan::data
    - static_cast<uint8_t>
    - Botan::copy_mem
    - Botan::bit_size_to_byte_size
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> concat_vectors(const secure_vector<uint8_t>&
      a,\n                                      const secure_vector<uint8_t>& b,\n
      \                                     size_t dimension,\n                                      size_t
      codimension)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ceil_log2
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:55,1
    - Dst: Botan::bit_size_to_32bit_size
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:58,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:60,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:65,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:65,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:65,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:67,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:73,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:73,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:73,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:75,1
    - Dst: Botan::concat_vectors
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:78,1
    - Dst: secure_vector::resize
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:79,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - ' cleartext'
    - ' public_matrix'
    - code_length
    - t
    argTypes:
    - secure_vector<uint8_t>
    - std::vector<uint8_t>
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 81
    functionName: Botan::mult_by_pubkey
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece.cpp
    functionUses: 1
    functionsReached:
    - Botan::ceil_log2
    - Botan::data
    - Botan::xor_buf
    - secure_vector::size
    - Botan::bit_size_to_32bit_size
    - secure_vector::resize
    - secure_vector::data
    - Botan::concat_vectors
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> mult_by_pubkey(const secure_vector<uint8_t>&
      cleartext,\n                                      const std::vector<uint8_t>&
      public_matrix,\n                                      size_t code_length,\n
      \                                     size_t t)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::random_code_element
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:89,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:89,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - code_length
    - error_weight
    - ' rng'
    argTypes:
    - size_t
    - size_t
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 105
    functionName: Botan::create_random_error_vector
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece.cpp
    functionUses: 1
    functionsReached:
    - static_cast<uint16_t>
    - Botan::random_code_element
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> create_random_error_vector(size_t code_length,
      size_t error_weight, RandomNumberGenerator& rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::bit_size_to_byte_size
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:27,1
    - Dst: Botan::bit_size_to_byte_size
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:27,1
    - Dst: Botan::bit_size_to_byte_size
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:32,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:33,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:33,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:34,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:34,1
    - Dst: Botan::bit_size_to_byte_size
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:34,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:36,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:36,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:38,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:41,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:43,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - ' a'
    - ' b'
    - dimension
    - codimension
    argTypes:
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 49
    functionName: Botan::concat_vectors
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece.cpp
    functionUses: 3
    functionsReached:
    - Botan::data
    - static_cast<uint8_t>
    - Botan::copy_mem
    - Botan::bit_size_to_byte_size
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> concat_vectors(const secure_vector<uint8_t>&
      a,\n                                      const secure_vector<uint8_t>& b,\n
      \                                     size_t dimension,\n                                      size_t
      codimension)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ceil_log2
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:55,1
    - Dst: Botan::bit_size_to_32bit_size
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:58,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:60,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:65,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:65,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:65,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:67,1
    - Dst: Botan::xor_buf
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:73,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:73,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:73,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:75,1
    - Dst: Botan::concat_vectors
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:78,1
    - Dst: secure_vector::resize
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:79,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - ' cleartext'
    - ' public_matrix'
    - code_length
    - t
    argTypes:
    - secure_vector<uint8_t>
    - std::vector<uint8_t>
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 81
    functionName: Botan::mult_by_pubkey
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece.cpp
    functionUses: 1
    functionsReached:
    - Botan::ceil_log2
    - Botan::data
    - Botan::xor_buf
    - secure_vector::size
    - Botan::bit_size_to_32bit_size
    - secure_vector::resize
    - secure_vector::data
    - Botan::concat_vectors
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> mult_by_pubkey(const secure_vector<uint8_t>&
      cleartext,\n                                      const std::vector<uint8_t>&
      public_matrix,\n                                      size_t code_length,\n
      \                                     size_t t)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::random_code_element
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:89,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:89,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - code_length
    - error_weight
    - ' rng'
    argTypes:
    - size_t
    - size_t
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 105
    functionName: Botan::create_random_error_vector
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece.cpp
    functionUses: 1
    functionsReached:
    - static_cast<uint16_t>
    - Botan::random_code_element
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> create_random_error_vector(size_t code_length,
      size_t error_weight, RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:114,1
    - Dst: Botan::get_code_length
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:114,1
    - Dst: Botan::create_random_error_vector
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:116,1
    - Dst: Botan::get_t
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:116,1
    - Dst: Botan::mult_by_pubkey
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:119,1
    - Dst: Botan::get_public_matrix
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:119,1
    - Dst: Botan::get_code_length
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:119,1
    - Dst: Botan::get_t
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:119,1
    - Dst: Botan::swap
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:123,1
    - Dst: Botan::swap
      Src: /src/botan/src/lib/pubkey/mce/mceliece.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - ' ciphertext_out'
    - ' error_mask_out'
    - ' plaintext'
    - ' key'
    - ' rng'
    argTypes:
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    - McEliece_PublicKey
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 109
    functionDepth: 3
    functionLinenumber: 109
    functionLinenumberEnd: 125
    functionName: Botan::mceliece_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece.cpp
    functionUses: 0
    functionsReached:
    - Botan::mult_by_pubkey
    - static_cast<uint16_t>
    - Botan::get_code_length
    - Botan::get_public_matrix
    - Botan::get_t
    - Botan::swap
    - Botan::create_random_error_vector
    linkageType: ''
    returnType: void
    signature: "void mceliece_encrypt(secure_vector<uint8_t>& ciphertext_out,\n                      secure_vector<uint8_t>&
      error_mask_out,\n                      const secure_vector<uint8_t>& plaintext,\n
      \                     const McEliece_PublicKey& key,\n                      RandomNumberGenerator&
      rng)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 6
    argNames:
    - matrix
    - numo_rows
    - words_per_row
    - input_vec
    - output_vec
    - output_vec_len
    argTypes:
    - std::vector<uint32_t>
    - size_t
    - size_t
    - uint8_t[]
    - uint32_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 34
    functionName: Botan::matrix_arr_mul
    functionSourceFile: /src/botan/src/lib/pubkey/mce/goppa_code.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void matrix_arr_mul(std::vector<uint32_t> matrix,\n                    size_t
      numo_rows,\n                    size_t words_per_row,\n                    const
      uint8_t input_vec[],\n                    uint32_t output_vec[],\n                    size_t
      output_vec_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:43,1
    - Dst: get_degree
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:44,1
    - Dst: get_sp_field
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:46,1
    - Dst: Botan::polyn_gf2m::eea_with_coefficients
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:48,1
    - Dst: std::shared_ptr::gf_inv
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:51,1
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:51,1
    - Dst: std::shared_ptr::gf_log
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:52,1
    - Dst: get_degree
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:53,1
    - Dst: set_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:54,1
    - Dst: std::shared_ptr::gf_mul_zrz
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:54,1
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:54,1
    - Dst: add_to_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:58,1
    - Dst: get_sp_field
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:60,1
    - Dst: std::shared_ptr::gf_sqrt
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:63,1
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:63,1
    - Dst: polyn_gf2m::add_to_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:67,1
    - Dst: std::shared_ptr::gf_mul
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:67,1
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:67,1
    - Dst: polyn_gf2m::add_to_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:70,1
    - Dst: polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:74,1
    - Dst: Botan::polyn_gf2m::eea_with_coefficients
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:76,1
    - Dst: get_sp_field
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:81,1
    - Dst: get_degree
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:83,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:84,1
    - Dst: polyn_gf2m::set_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:86,1
    - Dst: std::shared_ptr::gf_square
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:86,1
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:86,1
    - Dst: get_degree
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:89,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:90,1
    - Dst: polyn_gf2m::set_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:92,1
    - Dst: std::shared_ptr::gf_square
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:92,1
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:92,1
    - Dst: Botan::find_roots_gf2m_decomp
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:95,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:96,1
    - Dst: Botan::gray_to_lex
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:102,1
    - Dst: static_cast<gf2m>
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:106,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 4
    argNames:
    - ' syndrome_polyn'
    - ' g'
    - ' sqrtmod'
    - ' Linv'
    argTypes:
    - polyn_gf2m
    - polyn_gf2m
    - std::vector<polyn_gf2m>
    - std::vector<gf2m>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 112
    functionName: Botan::goppa_decode
    functionSourceFile: /src/botan/src/lib/pubkey/mce/goppa_code.cpp
    functionUses: 0
    functionsReached:
    - polyn_gf2m::add_to_coef
    - static_cast<gf2m>
    - add_to_coef
    - polyn_gf2m::set_coef
    - std::shared_ptr::gf_sqrt
    - get_degree
    - get_coef
    - std::shared_ptr::gf_inv
    - polyn_gf2m::get_degree
    - BOTAN_ASSERT
    - set_coef
    - Botan::polyn_gf2m::eea_with_coefficients
    - get_sp_field
    - std::shared_ptr::gf_mul_zrz
    - std::shared_ptr::gf_square
    - std::shared_ptr::gf_log
    - secure_vector::size
    - std::shared_ptr::gf_mul
    - Botan::find_roots_gf2m_decomp
    - Botan::gray_to_lex
    - Botan::size
    linkageType: ''
    returnType: secure_vector<gf2m>
    signature: "secure_vector<gf2m> goppa_decode(const polyn_gf2m& syndrome_polyn,\n
      \                                const polyn_gf2m& g,\n                                 const
      std::vector<polyn_gf2m>& sqrtmod,\n                                 const std::vector<gf2m>&
      Linv)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 6
    argNames:
    - matrix
    - numo_rows
    - words_per_row
    - input_vec
    - output_vec
    - output_vec_len
    argTypes:
    - std::vector<uint32_t>
    - size_t
    - size_t
    - uint8_t[]
    - uint32_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 34
    functionName: Botan::matrix_arr_mul
    functionSourceFile: /src/botan/src/lib/pubkey/mce/goppa_code.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void matrix_arr_mul(std::vector<uint32_t> matrix,\n                    size_t
      numo_rows,\n                    size_t words_per_row,\n                    const
      uint8_t input_vec[],\n                    uint32_t output_vec[],\n                    size_t
      output_vec_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:43,1
    - Dst: get_degree
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:44,1
    - Dst: get_sp_field
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:46,1
    - Dst: Botan::polyn_gf2m::eea_with_coefficients
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:48,1
    - Dst: std::shared_ptr::gf_inv
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:51,1
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:51,1
    - Dst: std::shared_ptr::gf_log
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:52,1
    - Dst: get_degree
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:53,1
    - Dst: set_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:54,1
    - Dst: std::shared_ptr::gf_mul_zrz
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:54,1
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:54,1
    - Dst: add_to_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:58,1
    - Dst: get_sp_field
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:60,1
    - Dst: std::shared_ptr::gf_sqrt
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:63,1
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:63,1
    - Dst: polyn_gf2m::add_to_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:67,1
    - Dst: std::shared_ptr::gf_mul
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:67,1
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:67,1
    - Dst: polyn_gf2m::add_to_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:70,1
    - Dst: polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:74,1
    - Dst: Botan::polyn_gf2m::eea_with_coefficients
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:76,1
    - Dst: get_sp_field
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:81,1
    - Dst: get_degree
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:83,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:84,1
    - Dst: polyn_gf2m::set_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:86,1
    - Dst: std::shared_ptr::gf_square
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:86,1
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:86,1
    - Dst: get_degree
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:89,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:90,1
    - Dst: polyn_gf2m::set_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:92,1
    - Dst: std::shared_ptr::gf_square
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:92,1
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:92,1
    - Dst: Botan::find_roots_gf2m_decomp
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:95,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:96,1
    - Dst: Botan::gray_to_lex
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:102,1
    - Dst: static_cast<gf2m>
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:106,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 4
    argNames:
    - ' syndrome_polyn'
    - ' g'
    - ' sqrtmod'
    - ' Linv'
    argTypes:
    - polyn_gf2m
    - polyn_gf2m
    - std::vector<polyn_gf2m>
    - std::vector<gf2m>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 112
    functionName: Botan::goppa_decode
    functionSourceFile: /src/botan/src/lib/pubkey/mce/goppa_code.cpp
    functionUses: 0
    functionsReached:
    - polyn_gf2m::add_to_coef
    - static_cast<gf2m>
    - add_to_coef
    - polyn_gf2m::set_coef
    - std::shared_ptr::gf_sqrt
    - get_degree
    - get_coef
    - std::shared_ptr::gf_inv
    - polyn_gf2m::get_degree
    - BOTAN_ASSERT
    - set_coef
    - Botan::polyn_gf2m::eea_with_coefficients
    - get_sp_field
    - std::shared_ptr::gf_mul_zrz
    - std::shared_ptr::gf_square
    - std::shared_ptr::gf_log
    - secure_vector::size
    - std::shared_ptr::gf_mul
    - Botan::find_roots_gf2m_decomp
    - Botan::gray_to_lex
    - Botan::size
    linkageType: ''
    returnType: secure_vector<gf2m>
    signature: "secure_vector<gf2m> goppa_decode(const polyn_gf2m& syndrome_polyn,\n
      \                                const polyn_gf2m& g,\n                                 const
      std::vector<polyn_gf2m>& sqrtmod,\n                                 const std::vector<gf2m>&
      Linv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::mceliece_decrypt
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:119,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:119,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' plaintext_out'
    - ' error_mask_out'
    - ' ciphertext'
    - ' key'
    argTypes:
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    - McEliece_PrivateKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 120
    functionName: Botan::mceliece_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/mce/goppa_code.cpp
    functionUses: 1
    functionsReached:
    - Botan::data
    - Botan::size
    - Botan::mceliece_decrypt
    linkageType: ''
    returnType: void
    signature: "void mceliece_decrypt(secure_vector<uint8_t>& plaintext_out,\n                      secure_vector<uint8_t>&
      error_mask_out,\n                      const secure_vector<uint8_t>& ciphertext,\n
      \                     const McEliece_PrivateKey& key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::mceliece_decrypt
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:128,1
    - Dst: Botan::get_code_length
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:130,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:134,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 5
    argNames:
    - ' plaintext'
    - ' error_mask'
    - ciphertext
    - ciphertext_len
    - ' key'
    argTypes:
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    - uint8_t[]
    - size_t
    - McEliece_PrivateKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 140
    functionName: Botan::mceliece_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/mce/goppa_code.cpp
    functionUses: 2
    functionsReached:
    - Botan::get_code_length
    - Botan::Invalid_Argument
    - Botan::mceliece_decrypt
    linkageType: ''
    returnType: void
    signature: "void mceliece_decrypt(secure_vector<uint8_t>& plaintext,\n                      secure_vector<uint8_t>&
      error_mask,\n                      const uint8_t ciphertext[],\n                      size_t
      ciphertext_len,\n                      const McEliece_PrivateKey& key)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_dimension
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:150,1
    - Dst: get_codimension
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:151,1
    - Dst: get_goppa_polyn
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:152,1
    - Dst: get_goppa_polyn
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:153,1
    - Dst: Botan::get_code_length
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:157,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:158,1
    - Dst: get_message_word_bit_length
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:160,1
    - Dst: Botan::bit_size_to_byte_size
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:162,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:163,1
    - Dst: Botan::matrix_arr_mul
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:167,1
    - Dst: get_H_coeffs
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:167,1
    - Dst: Botan::get_code_length
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:168,1
    - Dst: Botan::bit_size_to_32bit_size
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:169,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:171,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:172,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:175,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:177,1
    - Dst: polyn_gf2m
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:180,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:181,1
    - Dst: Botan::bit_size_to_byte_size
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:181,1
    - Dst: get_goppa_polyn
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:181,1
    - Dst: polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:183,1
    - Dst: Botan::goppa_decode
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:184,1
    - Dst: get_goppa_polyn
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:184,1
    - Dst: get_sqrtmod
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:184,1
    - Dst: get_Linv
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:184,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:186,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:189,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:189,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 4
    argNames:
    - ' error_pos'
    - ciphertext
    - ciphertext_len
    - ' key'
    argTypes:
    - secure_vector<gf2m>
    - uint8_t*
    - size_t
    - McEliece_PrivateKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 206
    functionName: Botan::mceliece_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/mce/goppa_code.cpp
    functionUses: 2
    functionsReached:
    - polyn_gf2m
    - Botan::get_code_length
    - Botan::Invalid_Argument
    - get_H_coeffs
    - Botan::copy_mem
    - Botan::bit_size_to_byte_size
    - get_dimension
    - Botan::bit_size_to_32bit_size
    - Botan::matrix_arr_mul
    - get_sqrtmod
    - static_cast<uint8_t>
    - polyn_gf2m::get_degree
    - get_codimension
    - get_goppa_polyn
    - secure_vector::size
    - Botan::goppa_decode
    - get_message_word_bit_length
    - secure_vector::data
    - Botan::size
    - get_Linv
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> mceliece_decrypt(secure_vector<gf2m>& error_pos,\n
      \                                       const uint8_t* ciphertext,\n                                        size_t
      ciphertext_len,\n                                        const McEliece_PrivateKey&
      key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 6
    argNames:
    - matrix
    - numo_rows
    - words_per_row
    - input_vec
    - output_vec
    - output_vec_len
    argTypes:
    - std::vector<uint32_t>
    - size_t
    - size_t
    - uint8_t[]
    - uint32_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 34
    functionName: Botan::matrix_arr_mul
    functionSourceFile: /src/botan/src/lib/pubkey/mce/goppa_code.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void matrix_arr_mul(std::vector<uint32_t> matrix,\n                    size_t
      numo_rows,\n                    size_t words_per_row,\n                    const
      uint8_t input_vec[],\n                    uint32_t output_vec[],\n                    size_t
      output_vec_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:43,1
    - Dst: get_degree
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:44,1
    - Dst: get_sp_field
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:46,1
    - Dst: Botan::polyn_gf2m::eea_with_coefficients
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:48,1
    - Dst: std::shared_ptr::gf_inv
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:51,1
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:51,1
    - Dst: std::shared_ptr::gf_log
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:52,1
    - Dst: get_degree
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:53,1
    - Dst: set_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:54,1
    - Dst: std::shared_ptr::gf_mul_zrz
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:54,1
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:54,1
    - Dst: add_to_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:58,1
    - Dst: get_sp_field
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:60,1
    - Dst: std::shared_ptr::gf_sqrt
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:63,1
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:63,1
    - Dst: polyn_gf2m::add_to_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:67,1
    - Dst: std::shared_ptr::gf_mul
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:67,1
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:67,1
    - Dst: polyn_gf2m::add_to_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:70,1
    - Dst: polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:74,1
    - Dst: Botan::polyn_gf2m::eea_with_coefficients
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:76,1
    - Dst: get_sp_field
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:81,1
    - Dst: get_degree
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:83,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:84,1
    - Dst: polyn_gf2m::set_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:86,1
    - Dst: std::shared_ptr::gf_square
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:86,1
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:86,1
    - Dst: get_degree
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:89,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:90,1
    - Dst: polyn_gf2m::set_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:92,1
    - Dst: std::shared_ptr::gf_square
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:92,1
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:92,1
    - Dst: Botan::find_roots_gf2m_decomp
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:95,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:96,1
    - Dst: Botan::gray_to_lex
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:102,1
    - Dst: static_cast<gf2m>
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:106,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 4
    argNames:
    - ' syndrome_polyn'
    - ' g'
    - ' sqrtmod'
    - ' Linv'
    argTypes:
    - polyn_gf2m
    - polyn_gf2m
    - std::vector<polyn_gf2m>
    - std::vector<gf2m>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 112
    functionName: Botan::goppa_decode
    functionSourceFile: /src/botan/src/lib/pubkey/mce/goppa_code.cpp
    functionUses: 1
    functionsReached:
    - polyn_gf2m::add_to_coef
    - static_cast<gf2m>
    - add_to_coef
    - polyn_gf2m::set_coef
    - std::shared_ptr::gf_sqrt
    - get_degree
    - get_coef
    - std::shared_ptr::gf_inv
    - polyn_gf2m::get_degree
    - BOTAN_ASSERT
    - set_coef
    - Botan::polyn_gf2m::eea_with_coefficients
    - get_sp_field
    - std::shared_ptr::gf_mul_zrz
    - std::shared_ptr::gf_square
    - std::shared_ptr::gf_log
    - secure_vector::size
    - std::shared_ptr::gf_mul
    - Botan::find_roots_gf2m_decomp
    - Botan::gray_to_lex
    - Botan::size
    linkageType: ''
    returnType: secure_vector<gf2m>
    signature: "secure_vector<gf2m> goppa_decode(const polyn_gf2m& syndrome_polyn,\n
      \                                const polyn_gf2m& g,\n                                 const
      std::vector<polyn_gf2m>& sqrtmod,\n                                 const std::vector<gf2m>&
      Linv)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 6
    argNames:
    - matrix
    - numo_rows
    - words_per_row
    - input_vec
    - output_vec
    - output_vec_len
    argTypes:
    - std::vector<uint32_t>
    - size_t
    - size_t
    - uint8_t[]
    - uint32_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 34
    functionName: Botan::matrix_arr_mul
    functionSourceFile: /src/botan/src/lib/pubkey/mce/goppa_code.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void matrix_arr_mul(std::vector<uint32_t> matrix,\n                    size_t
      numo_rows,\n                    size_t words_per_row,\n                    const
      uint8_t input_vec[],\n                    uint32_t output_vec[],\n                    size_t
      output_vec_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:43,1
    - Dst: get_degree
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:44,1
    - Dst: get_sp_field
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:46,1
    - Dst: Botan::polyn_gf2m::eea_with_coefficients
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:48,1
    - Dst: std::shared_ptr::gf_inv
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:51,1
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:51,1
    - Dst: std::shared_ptr::gf_log
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:52,1
    - Dst: get_degree
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:53,1
    - Dst: set_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:54,1
    - Dst: std::shared_ptr::gf_mul_zrz
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:54,1
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:54,1
    - Dst: add_to_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:58,1
    - Dst: get_sp_field
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:60,1
    - Dst: std::shared_ptr::gf_sqrt
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:63,1
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:63,1
    - Dst: polyn_gf2m::add_to_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:67,1
    - Dst: std::shared_ptr::gf_mul
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:67,1
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:67,1
    - Dst: polyn_gf2m::add_to_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:70,1
    - Dst: polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:74,1
    - Dst: Botan::polyn_gf2m::eea_with_coefficients
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:76,1
    - Dst: get_sp_field
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:81,1
    - Dst: get_degree
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:83,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:84,1
    - Dst: polyn_gf2m::set_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:86,1
    - Dst: std::shared_ptr::gf_square
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:86,1
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:86,1
    - Dst: get_degree
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:89,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:90,1
    - Dst: polyn_gf2m::set_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:92,1
    - Dst: std::shared_ptr::gf_square
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:92,1
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:92,1
    - Dst: Botan::find_roots_gf2m_decomp
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:95,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:96,1
    - Dst: Botan::gray_to_lex
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:102,1
    - Dst: static_cast<gf2m>
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:106,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 4
    argNames:
    - ' syndrome_polyn'
    - ' g'
    - ' sqrtmod'
    - ' Linv'
    argTypes:
    - polyn_gf2m
    - polyn_gf2m
    - std::vector<polyn_gf2m>
    - std::vector<gf2m>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 112
    functionName: Botan::goppa_decode
    functionSourceFile: /src/botan/src/lib/pubkey/mce/goppa_code.cpp
    functionUses: 1
    functionsReached:
    - polyn_gf2m::add_to_coef
    - static_cast<gf2m>
    - add_to_coef
    - polyn_gf2m::set_coef
    - std::shared_ptr::gf_sqrt
    - get_degree
    - get_coef
    - std::shared_ptr::gf_inv
    - polyn_gf2m::get_degree
    - BOTAN_ASSERT
    - set_coef
    - Botan::polyn_gf2m::eea_with_coefficients
    - get_sp_field
    - std::shared_ptr::gf_mul_zrz
    - std::shared_ptr::gf_square
    - std::shared_ptr::gf_log
    - secure_vector::size
    - std::shared_ptr::gf_mul
    - Botan::find_roots_gf2m_decomp
    - Botan::gray_to_lex
    - Botan::size
    linkageType: ''
    returnType: secure_vector<gf2m>
    signature: "secure_vector<gf2m> goppa_decode(const polyn_gf2m& syndrome_polyn,\n
      \                                const polyn_gf2m& g,\n                                 const
      std::vector<polyn_gf2m>& sqrtmod,\n                                 const std::vector<gf2m>&
      Linv)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::mceliece_decrypt
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:119,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:119,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ' plaintext_out'
    - ' error_mask_out'
    - ' ciphertext'
    - ' key'
    argTypes:
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    - McEliece_PrivateKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 120
    functionName: Botan::mceliece_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/mce/goppa_code.cpp
    functionUses: 3
    functionsReached:
    - Botan::data
    - Botan::size
    - Botan::mceliece_decrypt
    linkageType: ''
    returnType: void
    signature: "void mceliece_decrypt(secure_vector<uint8_t>& plaintext_out,\n                      secure_vector<uint8_t>&
      error_mask_out,\n                      const secure_vector<uint8_t>& ciphertext,\n
      \                     const McEliece_PrivateKey& key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::mceliece_decrypt
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:128,1
    - Dst: Botan::get_code_length
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:130,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:134,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 5
    argNames:
    - ' plaintext'
    - ' error_mask'
    - ciphertext
    - ciphertext_len
    - ' key'
    argTypes:
    - secure_vector<uint8_t>
    - secure_vector<uint8_t>
    - uint8_t[]
    - size_t
    - McEliece_PrivateKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 140
    functionName: Botan::mceliece_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/mce/goppa_code.cpp
    functionUses: 4
    functionsReached:
    - Botan::get_code_length
    - Botan::Invalid_Argument
    - Botan::mceliece_decrypt
    linkageType: ''
    returnType: void
    signature: "void mceliece_decrypt(secure_vector<uint8_t>& plaintext,\n                      secure_vector<uint8_t>&
      error_mask,\n                      const uint8_t ciphertext[],\n                      size_t
      ciphertext_len,\n                      const McEliece_PrivateKey& key)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_dimension
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:150,1
    - Dst: get_codimension
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:151,1
    - Dst: get_goppa_polyn
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:152,1
    - Dst: get_goppa_polyn
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:153,1
    - Dst: Botan::get_code_length
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:157,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:158,1
    - Dst: get_message_word_bit_length
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:160,1
    - Dst: Botan::bit_size_to_byte_size
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:162,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:163,1
    - Dst: Botan::matrix_arr_mul
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:167,1
    - Dst: get_H_coeffs
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:167,1
    - Dst: Botan::get_code_length
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:168,1
    - Dst: Botan::bit_size_to_32bit_size
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:169,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:171,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:172,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:175,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:177,1
    - Dst: polyn_gf2m
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:180,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:181,1
    - Dst: Botan::bit_size_to_byte_size
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:181,1
    - Dst: get_goppa_polyn
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:181,1
    - Dst: polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:183,1
    - Dst: Botan::goppa_decode
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:184,1
    - Dst: get_goppa_polyn
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:184,1
    - Dst: get_sqrtmod
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:184,1
    - Dst: get_Linv
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:184,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:186,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:189,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/mce/goppa_code.cpp:189,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 4
    argNames:
    - ' error_pos'
    - ciphertext
    - ciphertext_len
    - ' key'
    argTypes:
    - secure_vector<gf2m>
    - uint8_t*
    - size_t
    - McEliece_PrivateKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 206
    functionName: Botan::mceliece_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/mce/goppa_code.cpp
    functionUses: 4
    functionsReached:
    - polyn_gf2m
    - Botan::get_code_length
    - Botan::Invalid_Argument
    - get_H_coeffs
    - Botan::copy_mem
    - Botan::bit_size_to_byte_size
    - get_dimension
    - Botan::bit_size_to_32bit_size
    - Botan::matrix_arr_mul
    - get_sqrtmod
    - static_cast<uint8_t>
    - polyn_gf2m::get_degree
    - get_codimension
    - get_goppa_polyn
    - secure_vector::size
    - Botan::goppa_decode
    - get_message_word_bit_length
    - secure_vector::data
    - Botan::size
    - get_Linv
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> mceliece_decrypt(secure_vector<gf2m>& error_pos,\n
      \                                       const uint8_t* ciphertext,\n                                        size_t
      ciphertext_len,\n                                        const McEliece_PrivateKey&
      key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_mul_fast
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:29,1
    - Dst: Botan::gf_exp
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:31,1
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:31,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:31,1
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:33,1
    - Dst: Botan::gf_exp
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:35,1
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:35,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:35,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:35,1
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:47,1
    - Dst: Botan::gf_mul_lll
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:47,1
    - Dst: Botan::gf_exp
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:49,1
    - Dst: Botan::gf_mul_rrr
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:49,1
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:51,1
    - Dst: Botan::gf_mul_lll
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:51,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:51,1
    - Dst: Botan::gf_mul_rrn
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:53,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:55,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:55,1
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:57,1
    - Dst: Botan::gf_mul_lnn
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:57,1
    - Dst: Botan::gf_exp
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:59,1
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:59,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:59,1
    - Dst: Botan::gf_mul_nrn
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:64,1
    - Dst: Botan::gf_mul_zrz
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:66,1
    - Dst: Botan::gf_mul_nrn
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:71,1
    - Dst: Botan::gf_exp
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:74,1
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:74,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:74,1
    - Dst: Botan::get_extension_degree
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:74,1
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:77,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:77,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:77,1
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:79,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:79,1
    - Dst: Botan::gf_exp
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:81,1
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:81,1
    - Dst: Botan::gf_exp
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:83,1
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:83,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:83,1
    - Dst: Botan::gf_exp
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:85,1
    - Dst: Botan::gf_ord
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:85,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:85,1
    - Dst: Botan::gf_ord
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:87,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:87,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:89,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:93,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:97,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:99,1
    - Dst: static_cast<gf2m>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:105,1
    - Dst: Botan::get_extension_degree
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:105,1
    - Dst: static_cast<gf2m>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:114,1
    - Dst: Botan::gf_ord
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:114,1
    - Dst: Botan::get_extension_degree
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 115
    functionName: Botan::GF2m_Field
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 0
    functionsReached:
    - Botan::gf_mul_rrr
    - static_cast<gf2m>
    - Botan::gf_exp
    - Botan::gf_mul_lll
    - Botan::gf_mul_fast
    - Botan::gf_mul_lnn
    - Botan::gf_ord
    - Botan::gf_log
    - Botan::gf_mul_rrn
    - Botan::get_extension_degree
    - Botan::gf_mul_nrn
    - Botan::gf_mul_zrz
    - _gf_modq_1
    - at
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API GF2m_Field
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_mul_fast
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - gf2m
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan::gf_mul
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 6
    functionsReached:
    - Botan::gf_mul_fast
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_mul(gf2m x, gf2m y) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_exp
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:31,1
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:31,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: Botan::gf_square
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 8
    functionsReached:
    - _gf_modq_1
    - Botan::gf_log
    - Botan::gf_exp
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_square(gf2m x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: Botan::square_rr
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 0
    functionsReached:
    - _gf_modq_1
    linkageType: ''
    returnType: gf2m
    signature: gf2m square_rr(gf2m x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_exp
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:35,1
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:35,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:35,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - gf2m
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: Botan::gf_mul_fast
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 2
    functionsReached:
    - _gf_modq_1
    - Botan::gf_log
    - Botan::gf_exp
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_mul_fast(gf2m x, gf2m y) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gf2m
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Botan::gf_mul_lll
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_mul_lll(gf2m a, gf2m b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:47,1
    - Dst: Botan::gf_mul_lll
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gf2m
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan::gf_mul_rrr
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 1
    functionsReached:
    - _gf_modq_1
    - Botan::gf_mul_lll
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_mul_rrr(gf2m a, gf2m b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_exp
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:49,1
    - Dst: Botan::gf_mul_rrr
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gf2m
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Botan::gf_mul_nrr
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 0
    functionsReached:
    - Botan::gf_mul_rrr
    - Botan::gf_exp
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_mul_nrr(gf2m a, gf2m b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:51,1
    - Dst: Botan::gf_mul_lll
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:51,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - y
    argTypes:
    - gf2m
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: Botan::gf_mul_rrn
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 1
    functionsReached:
    - Botan::gf_log
    - _gf_modq_1
    - Botan::gf_mul_lll
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_mul_rrn(gf2m a, gf2m y) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_mul_rrn
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - y
    - a
    argTypes:
    - gf2m
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan::gf_mul_rnr
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 0
    functionsReached:
    - Botan::gf_mul_rrn
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_mul_rnr(gf2m y, gf2m a) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:55,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - gf2m
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: Botan::gf_mul_lnn
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 1
    functionsReached:
    - Botan::gf_log
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_mul_lnn(gf2m x, gf2m y) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:57,1
    - Dst: Botan::gf_mul_lnn
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - gf2m
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: Botan::gf_mul_rnn
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 0
    functionsReached:
    - Botan::gf_mul_lnn
    - _gf_modq_1
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_mul_rnn(gf2m x, gf2m y) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_exp
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:59,1
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:59,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - y
    argTypes:
    - gf2m
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: Botan::gf_mul_nrn
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 1
    functionsReached:
    - _gf_modq_1
    - Botan::gf_log
    - Botan::gf_exp
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_mul_nrn(gf2m a, gf2m y) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_mul_nrn
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - y
    argTypes:
    - gf2m
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: Botan::gf_mul_zrz
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 1
    functionsReached:
    - Botan::gf_mul_nrn
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_mul_zrz(gf2m a, gf2m y) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_mul_zrz
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - y
    argTypes:
    - gf2m
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 3
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: Botan::gf_mul_zzr
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 0
    functionsReached:
    - Botan::gf_mul_zrz
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_mul_zzr(gf2m a, gf2m y) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_mul_nrn
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - y
    - a
    argTypes:
    - gf2m
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: Botan::gf_mul_nnr
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 0
    functionsReached:
    - Botan::gf_mul_nrn
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_mul_nnr(gf2m y, gf2m a) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_exp
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:74,1
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:74,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:74,1
    - Dst: Botan::get_extension_degree
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: Botan::gf_sqrt
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 0
    functionsReached:
    - _gf_modq_1
    - Botan::gf_log
    - Botan::gf_exp
    - Botan::get_extension_degree
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_sqrt(gf2m x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:77,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:77,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - gf2m
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: Botan::gf_div_rnn
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 0
    functionsReached:
    - Botan::gf_log
    - _gf_modq_1
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_div_rnn(gf2m x, gf2m y) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:79,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - b
    argTypes:
    - gf2m
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: Botan::gf_div_rnr
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 0
    functionsReached:
    - Botan::gf_log
    - _gf_modq_1
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_div_rnr(gf2m x, gf2m b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_exp
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:81,1
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gf2m
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: Botan::gf_div_nrr
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 0
    functionsReached:
    - _gf_modq_1
    - Botan::gf_exp
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_div_nrr(gf2m a, gf2m b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_exp
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:83,1
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:83,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - b
    argTypes:
    - gf2m
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: Botan::gf_div_zzr
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 0
    functionsReached:
    - _gf_modq_1
    - Botan::gf_log
    - Botan::gf_exp
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_div_zzr(gf2m x, gf2m b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_exp
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:85,1
    - Dst: Botan::gf_ord
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:85,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: Botan::gf_inv
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 0
    functionsReached:
    - Botan::gf_ord
    - Botan::gf_log
    - Botan::gf_exp
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_inv(gf2m x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_ord
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:87,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: Botan::gf_inv_rn
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 0
    functionsReached:
    - Botan::gf_ord
    - Botan::gf_log
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_inv_rn(gf2m x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: Botan::gf_square_ln
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 0
    functionsReached:
    - Botan::gf_log
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_square_ln(gf2m x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: Botan::gf_square_rr
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_square_rr(gf2m a) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 93
    functionName: Botan::gf_l_from_n
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 0
    functionsReached:
    - Botan::gf_log
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_l_from_n(gf2m x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: Botan::gf_exp
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 9
    functionsReached:
    - at
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_exp(gf2m i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: Botan::gf_log
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 14
    functionsReached:
    - at
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_log(gf2m i) 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::gf_ord
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_ord() 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::get_extension_degree
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t get_extension_degree() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<gf2m>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:105,1
    - Dst: Botan::get_extension_degree
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: Botan::get_cardinality
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 0
    functionsReached:
    - static_cast<gf2m>
    - Botan::get_extension_degree
    linkageType: ''
    returnType: gf2m
    signature: gf2m get_cardinality() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_mul_fast
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:29,1
    - Dst: Botan::gf_exp
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:31,1
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:31,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:31,1
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:33,1
    - Dst: Botan::gf_exp
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:35,1
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:35,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:35,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:35,1
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:47,1
    - Dst: Botan::gf_mul_lll
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:47,1
    - Dst: Botan::gf_exp
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:49,1
    - Dst: Botan::gf_mul_rrr
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:49,1
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:51,1
    - Dst: Botan::gf_mul_lll
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:51,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:51,1
    - Dst: Botan::gf_mul_rrn
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:53,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:55,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:55,1
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:57,1
    - Dst: Botan::gf_mul_lnn
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:57,1
    - Dst: Botan::gf_exp
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:59,1
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:59,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:59,1
    - Dst: Botan::gf_mul_nrn
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:64,1
    - Dst: Botan::gf_mul_zrz
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:66,1
    - Dst: Botan::gf_mul_nrn
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:71,1
    - Dst: Botan::gf_exp
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:74,1
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:74,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:74,1
    - Dst: Botan::get_extension_degree
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:74,1
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:77,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:77,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:77,1
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:79,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:79,1
    - Dst: Botan::gf_exp
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:81,1
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:81,1
    - Dst: Botan::gf_exp
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:83,1
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:83,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:83,1
    - Dst: Botan::gf_exp
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:85,1
    - Dst: Botan::gf_ord
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:85,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:85,1
    - Dst: Botan::gf_ord
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:87,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:87,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:89,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:93,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:97,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:99,1
    - Dst: static_cast<gf2m>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:105,1
    - Dst: Botan::get_extension_degree
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:105,1
    - Dst: static_cast<gf2m>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:114,1
    - Dst: Botan::gf_ord
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:114,1
    - Dst: Botan::get_extension_degree
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 25
    functionDepth: 3
    functionLinenumber: 25
    functionLinenumberEnd: 115
    functionName: Botan::GF2m_Field
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 0
    functionsReached:
    - Botan::gf_mul_rrr
    - static_cast<gf2m>
    - Botan::gf_exp
    - Botan::gf_mul_lll
    - Botan::gf_mul_fast
    - Botan::gf_mul_lnn
    - Botan::gf_ord
    - Botan::gf_log
    - Botan::gf_mul_rrn
    - Botan::get_extension_degree
    - Botan::gf_mul_nrn
    - Botan::gf_mul_zrz
    - _gf_modq_1
    - at
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API GF2m_Field
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_mul_fast
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - gf2m
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 2
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan::gf_mul
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 6
    functionsReached:
    - Botan::gf_mul_fast
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_mul(gf2m x, gf2m y) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_exp
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:31,1
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:31,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: Botan::gf_square
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 8
    functionsReached:
    - _gf_modq_1
    - Botan::gf_log
    - Botan::gf_exp
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_square(gf2m x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: Botan::square_rr
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 0
    functionsReached:
    - _gf_modq_1
    linkageType: ''
    returnType: gf2m
    signature: gf2m square_rr(gf2m x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_exp
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:35,1
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:35,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:35,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - gf2m
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: Botan::gf_mul_fast
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 4
    functionsReached:
    - _gf_modq_1
    - Botan::gf_log
    - Botan::gf_exp
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_mul_fast(gf2m x, gf2m y) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gf2m
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Botan::gf_mul_lll
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_mul_lll(gf2m a, gf2m b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:47,1
    - Dst: Botan::gf_mul_lll
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gf2m
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Botan::gf_mul_rrr
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 3
    functionsReached:
    - _gf_modq_1
    - Botan::gf_mul_lll
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_mul_rrr(gf2m a, gf2m b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_exp
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:49,1
    - Dst: Botan::gf_mul_rrr
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gf2m
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Botan::gf_mul_nrr
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 0
    functionsReached:
    - Botan::gf_mul_rrr
    - Botan::gf_exp
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_mul_nrr(gf2m a, gf2m b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:51,1
    - Dst: Botan::gf_mul_lll
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:51,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - y
    argTypes:
    - gf2m
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: Botan::gf_mul_rrn
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 3
    functionsReached:
    - Botan::gf_log
    - _gf_modq_1
    - Botan::gf_mul_lll
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_mul_rrn(gf2m a, gf2m y) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_mul_rrn
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - y
    - a
    argTypes:
    - gf2m
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 53
    functionName: Botan::gf_mul_rnr
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 0
    functionsReached:
    - Botan::gf_mul_rrn
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_mul_rnr(gf2m y, gf2m a) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:55,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - gf2m
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: Botan::gf_mul_lnn
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 3
    functionsReached:
    - Botan::gf_log
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_mul_lnn(gf2m x, gf2m y) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:57,1
    - Dst: Botan::gf_mul_lnn
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - gf2m
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 2
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: Botan::gf_mul_rnn
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 0
    functionsReached:
    - Botan::gf_mul_lnn
    - _gf_modq_1
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_mul_rnn(gf2m x, gf2m y) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_exp
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:59,1
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:59,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - y
    argTypes:
    - gf2m
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: Botan::gf_mul_nrn
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 4
    functionsReached:
    - _gf_modq_1
    - Botan::gf_log
    - Botan::gf_exp
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_mul_nrn(gf2m a, gf2m y) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_mul_nrn
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - y
    argTypes:
    - gf2m
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: Botan::gf_mul_zrz
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 3
    functionsReached:
    - Botan::gf_mul_nrn
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_mul_zrz(gf2m a, gf2m y) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_mul_zrz
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - y
    argTypes:
    - gf2m
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 3
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: Botan::gf_mul_zzr
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 0
    functionsReached:
    - Botan::gf_mul_zrz
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_mul_zzr(gf2m a, gf2m y) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_mul_nrn
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - y
    - a
    argTypes:
    - gf2m
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 71
    functionDepth: 2
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: Botan::gf_mul_nnr
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 0
    functionsReached:
    - Botan::gf_mul_nrn
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_mul_nnr(gf2m y, gf2m a) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_exp
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:74,1
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:74,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:74,1
    - Dst: Botan::get_extension_degree
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: Botan::gf_sqrt
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 0
    functionsReached:
    - _gf_modq_1
    - Botan::gf_log
    - Botan::gf_exp
    - Botan::get_extension_degree
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_sqrt(gf2m x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:77,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:77,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - gf2m
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: Botan::gf_div_rnn
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 0
    functionsReached:
    - Botan::gf_log
    - _gf_modq_1
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_div_rnn(gf2m x, gf2m y) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:79,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - b
    argTypes:
    - gf2m
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: Botan::gf_div_rnr
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 0
    functionsReached:
    - Botan::gf_log
    - _gf_modq_1
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_div_rnr(gf2m x, gf2m b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_exp
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:81,1
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - gf2m
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: Botan::gf_div_nrr
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 0
    functionsReached:
    - _gf_modq_1
    - Botan::gf_exp
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_div_nrr(gf2m a, gf2m b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_exp
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:83,1
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:83,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - b
    argTypes:
    - gf2m
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: Botan::gf_div_zzr
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 0
    functionsReached:
    - _gf_modq_1
    - Botan::gf_log
    - Botan::gf_exp
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_div_zzr(gf2m x, gf2m b) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_exp
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:85,1
    - Dst: Botan::gf_ord
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:85,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: Botan::gf_inv
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 0
    functionsReached:
    - Botan::gf_ord
    - Botan::gf_log
    - Botan::gf_exp
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_inv(gf2m x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_ord
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:87,1
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: Botan::gf_inv_rn
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 0
    functionsReached:
    - Botan::gf_ord
    - Botan::gf_log
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_inv_rn(gf2m x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: Botan::gf_square_ln
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 0
    functionsReached:
    - Botan::gf_log
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_square_ln(gf2m x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: Botan::gf_square_rr
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_square_rr(gf2m a) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 93
    functionName: Botan::gf_l_from_n
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 0
    functionsReached:
    - Botan::gf_log
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_l_from_n(gf2m x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: Botan::gf_exp
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 18
    functionsReached:
    - at
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_exp(gf2m i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: Botan::gf_log
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 28
    functionsReached:
    - at
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_log(gf2m i) 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::gf_ord
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf_ord() 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::get_extension_degree
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t get_extension_degree() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<gf2m>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:105,1
    - Dst: Botan::get_extension_degree
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: Botan::get_cardinality
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.h
    functionUses: 0
    functionsReached:
    - static_cast<gf2m>
    - Botan::get_extension_degree
    linkageType: ''
    returnType: gf2m
    signature: gf2m get_cardinality() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tst
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: Botan::expand_mask_16bit
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t expand_mask_16bit(T tst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - gray
    argTypes:
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 36
    functionName: Botan::gray_to_lex
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_util.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: gf2m
    signature: gf2m gray_to_lex(gf2m gray)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lex
    argTypes:
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: Botan::lex_to_gray
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gf2m
    signature: gf2m lex_to_gray(gf2m lex)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bit_size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: Botan::bit_size_to_byte_size
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_util.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t bit_size_to_byte_size(size_t bit_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bit_size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: Botan::bit_size_to_32bit_size
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_util.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t bit_size_to_32bit_size(size_t bit_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tst
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 28
    functionName: Botan::expand_mask_16bit
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t expand_mask_16bit(T tst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - gray
    argTypes:
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 36
    functionName: Botan::gray_to_lex
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_util.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: gf2m
    signature: gf2m gray_to_lex(gf2m gray)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - lex
    argTypes:
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: Botan::lex_to_gray
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_util.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gf2m
    signature: gf2m lex_to_gray(gf2m lex)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bit_size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: Botan::bit_size_to_byte_size
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_util.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t bit_size_to_byte_size(size_t bit_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bit_size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: Botan::bit_size_to_32bit_size
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_util.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t bit_size_to_32bit_size(size_t bit_size)
  - 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::polyn_gf2m::polyn_gf2m
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void polyn_gf2m()
  - 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: ~polyn_gf2m()
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~polyn_gf2m()
  - 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: '& operator=(const polyn_gf2m&)'
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: polyn_gf2m
    signature: polyn_gf2m & operator=(const polyn_gf2m&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - polyn_gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: operator!=(const polyn_gf2m& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const polyn_gf2m& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::polyn_gf2m::swap
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.h:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - polyn_gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: Botan::polyn_gf2m::polyn_gf2m
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.h
    functionUses: 0
    functionsReached:
    - Botan::polyn_gf2m::swap
    linkageType: ''
    returnType: void
    signature: void polyn_gf2m(polyn_gf2m&& other) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::swap
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.h:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - polyn_gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: '& operator=(polyn_gf2m&& other) noexcept'
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.h
    functionUses: 0
    functionsReached:
    - Botan::swap
    linkageType: ''
    returnType: polyn_gf2m
    signature: polyn_gf2m & operator=(polyn_gf2m&& other) noexcept
  - 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::polyn_gf2m::get_sp_field
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<GF2m_Field>
    signature: std::shared_ptr<GF2m_Field> get_sp_field() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: '& operator[](size_t i)'
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gf2m
    signature: gf2m & 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: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: operator[](size_t i) const
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gf2m
    signature: gf2m operator[](size_t i) 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::polyn_gf2m::get_lead_coef
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gf2m
    signature: gf2m get_lead_coef() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: Botan::polyn_gf2m::get_coef
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gf2m
    signature: gf2m get_coef(size_t i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - v
    argTypes:
    - size_t
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: Botan::polyn_gf2m::set_coef
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_coef(size_t i, gf2m v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - v
    argTypes:
    - size_t
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: Botan::polyn_gf2m::add_to_coef
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void add_to_coef(size_t i, gf2m v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: Botan::polyn_gf2m::set_degree
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_degree(int d)
  - 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::polyn_gf2m::polyn_gf2m
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void polyn_gf2m()
  - 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: ~polyn_gf2m()
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~polyn_gf2m()
  - 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: '& operator=(const polyn_gf2m&)'
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: polyn_gf2m
    signature: polyn_gf2m & operator=(const polyn_gf2m&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - polyn_gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: operator!=(const polyn_gf2m& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const polyn_gf2m& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::polyn_gf2m::swap
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.h:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - polyn_gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: Botan::polyn_gf2m::polyn_gf2m
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.h
    functionUses: 0
    functionsReached:
    - Botan::polyn_gf2m::swap
    linkageType: ''
    returnType: void
    signature: void polyn_gf2m(polyn_gf2m&& other) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: swap
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.h:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - polyn_gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 73
    functionName: '& operator=(polyn_gf2m&& other) noexcept'
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.h
    functionUses: 0
    functionsReached:
    - swap
    linkageType: ''
    returnType: polyn_gf2m
    signature: polyn_gf2m & operator=(polyn_gf2m&& other) noexcept
  - 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::polyn_gf2m::get_sp_field
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<GF2m_Field>
    signature: std::shared_ptr<GF2m_Field> get_sp_field() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 81
    functionName: '& operator[](size_t i)'
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gf2m
    signature: gf2m & 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: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: operator[](size_t i) const
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gf2m
    signature: gf2m operator[](size_t i) 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::polyn_gf2m::get_lead_coef
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gf2m
    signature: gf2m get_lead_coef() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 87
    functionName: Botan::polyn_gf2m::get_coef
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gf2m
    signature: gf2m get_coef(size_t i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - v
    argTypes:
    - size_t
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: Botan::polyn_gf2m::set_coef
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_coef(size_t i, gf2m v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - v
    argTypes:
    - size_t
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: Botan::polyn_gf2m::add_to_coef
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void add_to_coef(size_t i, gf2m v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - d
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 121
    functionName: Botan::polyn_gf2m::set_degree
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_degree(int d)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:45,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - deg
    - prime_poly
    argTypes:
    - size_t
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 54
    functionName: Botan::gf_exp_table
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp
    functionUses: 0
    functionsReached:
    - std::vector::size
    - static_cast<size_t>
    linkageType: ''
    returnType: std::vector<gf2m>
    signature: std::vector<gf2m> gf_exp_table(size_t deg, gf2m prime_poly)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:60,1
    - Dst: Botan::to_string
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:60,1
    - Dst: Botan::empty
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:63,1
    - Dst: Botan::gf_exp_table
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:64,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - deg
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 68
    functionName: Botan::exp_table
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp
    functionUses: 0
    functionsReached:
    - Botan::Invalid_Argument
    - Botan::to_string
    - Botan::empty
    - Botan::gf_exp_table
    linkageType: ''
    returnType: std::vector<gf2m>
    signature: std::vector<gf2m> & exp_table(size_t deg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:71,1
    - Dst: static_cast<gf2m>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:73,1
    - Dst: static_cast<gf2m>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:73,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:74,1
    - Dst: static_cast<gf2m>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - deg
    - ' exp'
    argTypes:
    - size_t
    - std::vector<gf2m>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: Botan::gf_log_table
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp
    functionUses: 0
    functionsReached:
    - static_cast<gf2m>
    - std::vector::size
    - static_cast<size_t>
    linkageType: ''
    returnType: std::vector<gf2m>
    signature: std::vector<gf2m> gf_log_table(size_t deg, const std::vector<gf2m>&
      exp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:84,1
    - Dst: Botan::to_string
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:84,1
    - Dst: Botan::empty
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:87,1
    - Dst: Botan::gf_log_table
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:88,1
    - Dst: Botan::exp_table
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:88,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - deg
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 92
    functionName: Botan::log_table
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp
    functionUses: 0
    functionsReached:
    - Botan::Invalid_Argument
    - Botan::gf_log_table
    - Botan::to_string
    - Botan::exp_table
    - Botan::empty
    linkageType: ''
    returnType: std::vector<gf2m>
    signature: std::vector<gf2m> & log_table(size_t deg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:45,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - deg
    - prime_poly
    argTypes:
    - size_t
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 54
    functionName: Botan::gf_exp_table
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp
    functionUses: 1
    functionsReached:
    - std::vector::size
    - static_cast<size_t>
    linkageType: ''
    returnType: std::vector<gf2m>
    signature: std::vector<gf2m> gf_exp_table(size_t deg, gf2m prime_poly)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:60,1
    - Dst: Botan::to_string
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:60,1
    - Dst: Botan::empty
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:63,1
    - Dst: Botan::gf_exp_table
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:64,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - deg
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 68
    functionName: Botan::exp_table
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp
    functionUses: 1
    functionsReached:
    - Botan::Invalid_Argument
    - Botan::to_string
    - Botan::empty
    - Botan::gf_exp_table
    linkageType: ''
    returnType: std::vector<gf2m>
    signature: std::vector<gf2m> & exp_table(size_t deg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:71,1
    - Dst: static_cast<gf2m>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:73,1
    - Dst: static_cast<gf2m>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:73,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:74,1
    - Dst: static_cast<gf2m>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - deg
    - ' exp'
    argTypes:
    - size_t
    - std::vector<gf2m>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: Botan::gf_log_table
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp
    functionUses: 1
    functionsReached:
    - static_cast<gf2m>
    - std::vector::size
    - static_cast<size_t>
    linkageType: ''
    returnType: std::vector<gf2m>
    signature: std::vector<gf2m> gf_log_table(size_t deg, const std::vector<gf2m>&
      exp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:84,1
    - Dst: Botan::to_string
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:84,1
    - Dst: Botan::empty
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:87,1
    - Dst: Botan::gf_log_table
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:88,1
    - Dst: Botan::exp_table
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:88,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - deg
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 92
    functionName: Botan::log_table
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp
    functionUses: 0
    functionsReached:
    - Botan::Invalid_Argument
    - Botan::gf_log_table
    - Botan::to_string
    - Botan::exp_table
    - Botan::empty
    linkageType: ''
    returnType: std::vector<gf2m>
    signature: std::vector<gf2m> & log_table(size_t deg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - to_enc
    - mem
    argTypes:
    - gf2m
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: Botan::encode_gf2m
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t encode_gf2m(gf2m to_enc, uint8_t* mem)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mem
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: Botan::decode_gf2m
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gf2m
    signature: gf2m decode_gf2m(const uint8_t* mem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_table
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:111,1
    - Dst: exp_table
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - extdeg
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 112
    functionName: Botan::GF2m_Field::GF2m_Field
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp
    functionUses: 0
    functionsReached:
    - log_table
    - exp_table
    linkageType: ''
    returnType: void
    signature: void GF2m_Field::GF2m_Field(size_t extdeg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:115,1
    - Dst: gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:115,1
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:115,1
    - Dst: gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:115,1
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:116,1
    - Dst: gf_exp
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:117,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:118,1
    - Dst: if_set_return
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - gf2m
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 119
    functionName: Botan::GF2m_Field::gf_div
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp
    functionUses: 0
    functionsReached:
    - if_set_return
    - gf_exp
    - static_cast<int32_t>
    - Botan::Sodium::sodium_is_zero
    - gf_log
    - _gf_modq_1
    linkageType: ''
    returnType: gf2m
    signature: gf2m GF2m_Field::gf_div(gf2m x, gf2m y) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:45,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - deg
    - prime_poly
    argTypes:
    - size_t
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 54
    functionName: Botan::gf_exp_table
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp
    functionUses: 2
    functionsReached:
    - std::vector::size
    - static_cast<size_t>
    linkageType: ''
    returnType: std::vector<gf2m>
    signature: std::vector<gf2m> gf_exp_table(size_t deg, gf2m prime_poly)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:60,1
    - Dst: Botan::to_string
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:60,1
    - Dst: Botan::empty
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:63,1
    - Dst: Botan::gf_exp_table
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:64,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - deg
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 68
    functionName: Botan::exp_table
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp
    functionUses: 2
    functionsReached:
    - Botan::Invalid_Argument
    - Botan::to_string
    - Botan::empty
    - Botan::gf_exp_table
    linkageType: ''
    returnType: std::vector<gf2m>
    signature: std::vector<gf2m> & exp_table(size_t deg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:71,1
    - Dst: static_cast<gf2m>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:73,1
    - Dst: static_cast<gf2m>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:73,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:74,1
    - Dst: static_cast<gf2m>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - deg
    - ' exp'
    argTypes:
    - size_t
    - std::vector<gf2m>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: Botan::gf_log_table
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp
    functionUses: 2
    functionsReached:
    - static_cast<gf2m>
    - std::vector::size
    - static_cast<size_t>
    linkageType: ''
    returnType: std::vector<gf2m>
    signature: std::vector<gf2m> gf_log_table(size_t deg, const std::vector<gf2m>&
      exp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:84,1
    - Dst: Botan::to_string
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:84,1
    - Dst: Botan::empty
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:87,1
    - Dst: Botan::gf_log_table
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:88,1
    - Dst: Botan::exp_table
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:88,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - deg
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 92
    functionName: Botan::log_table
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp
    functionUses: 0
    functionsReached:
    - Botan::Invalid_Argument
    - Botan::gf_log_table
    - Botan::to_string
    - Botan::exp_table
    - Botan::empty
    linkageType: ''
    returnType: std::vector<gf2m>
    signature: std::vector<gf2m> & log_table(size_t deg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:45,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - deg
    - prime_poly
    argTypes:
    - size_t
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 54
    functionName: Botan::gf_exp_table
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp
    functionUses: 3
    functionsReached:
    - std::vector::size
    - static_cast<size_t>
    linkageType: ''
    returnType: std::vector<gf2m>
    signature: std::vector<gf2m> gf_exp_table(size_t deg, gf2m prime_poly)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:60,1
    - Dst: Botan::to_string
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:60,1
    - Dst: Botan::empty
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:63,1
    - Dst: Botan::gf_exp_table
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:64,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - deg
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 68
    functionName: Botan::exp_table
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp
    functionUses: 3
    functionsReached:
    - Botan::Invalid_Argument
    - Botan::to_string
    - Botan::empty
    - Botan::gf_exp_table
    linkageType: ''
    returnType: std::vector<gf2m>
    signature: std::vector<gf2m> & exp_table(size_t deg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:71,1
    - Dst: static_cast<gf2m>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:73,1
    - Dst: static_cast<gf2m>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:73,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:74,1
    - Dst: static_cast<gf2m>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - deg
    - ' exp'
    argTypes:
    - size_t
    - std::vector<gf2m>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 78
    functionName: Botan::gf_log_table
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp
    functionUses: 3
    functionsReached:
    - static_cast<gf2m>
    - std::vector::size
    - static_cast<size_t>
    linkageType: ''
    returnType: std::vector<gf2m>
    signature: std::vector<gf2m> gf_log_table(size_t deg, const std::vector<gf2m>&
      exp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:84,1
    - Dst: Botan::to_string
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:84,1
    - Dst: Botan::empty
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:87,1
    - Dst: Botan::gf_log_table
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:88,1
    - Dst: Botan::exp_table
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:88,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - deg
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 92
    functionName: Botan::log_table
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp
    functionUses: 0
    functionsReached:
    - Botan::Invalid_Argument
    - Botan::gf_log_table
    - Botan::to_string
    - Botan::exp_table
    - Botan::empty
    linkageType: ''
    returnType: std::vector<gf2m>
    signature: std::vector<gf2m> & log_table(size_t deg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - to_enc
    - mem
    argTypes:
    - gf2m
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: Botan::encode_gf2m
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t encode_gf2m(gf2m to_enc, uint8_t* mem)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mem
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: Botan::decode_gf2m
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gf2m
    signature: gf2m decode_gf2m(const uint8_t* mem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log_table
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:111,1
    - Dst: exp_table
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - extdeg
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 112
    functionName: Botan::GF2m_Field::GF2m_Field
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp
    functionUses: 0
    functionsReached:
    - log_table
    - exp_table
    linkageType: ''
    returnType: void
    signature: void GF2m_Field::GF2m_Field(size_t extdeg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:115,1
    - Dst: gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:115,1
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:115,1
    - Dst: gf_log
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:115,1
    - Dst: _gf_modq_1
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:116,1
    - Dst: gf_exp
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:117,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:118,1
    - Dst: if_set_return
      Src: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - gf2m
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 119
    functionName: Botan::GF2m_Field::gf_div
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_small_m.cpp
    functionUses: 0
    functionsReached:
    - if_set_return
    - gf_exp
    - static_cast<int32_t>
    - Botan::Sodium::sodium_is_zero
    - gf_log
    - _gf_modq_1
    linkageType: ''
    returnType: gf2m
    signature: gf2m GF2m_Field::gf_div(gf2m x, gf2m y) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - j
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan::binary_matrix::coef
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t coef(size_t i, size_t j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - j
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: Botan::binary_matrix::set_coef_to_one
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: void
    signature: void set_coef_to_one(size_t i, size_t j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - j
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: Botan::binary_matrix::toggle_coeff
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: void
    signature: void toggle_coeff(size_t i, size_t j)
  - 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::binary_matrix::rows
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t rows() 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::binary_matrix::columns
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t columns() 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: '& elem() const'
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint32_t>
    signature: std::vector<uint32_t> & elem() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint32_t>
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rown
    - coln
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: Botan::binary_matrix::binary_matrix
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint32_t>
    linkageType: ''
    returnType: void
    signature: void binary_matrix::binary_matrix(size_t rown, size_t coln)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: Botan::binary_matrix::row_xor
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void binary_matrix::row_xor(size_t a, size_t b)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan::binary_matrix::coef
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:81,1
    - Dst: Botan::binary_matrix::row_xor
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:84,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:93,1
    - Dst: secure_vector::clear
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:96,1
    - Dst: Botan::binary_matrix::coef
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:103,1
    - Dst: Botan::binary_matrix::row_xor
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:104,1
    - Dst: Botan::binary_matrix::coef
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:110,1
    - Dst: Botan::binary_matrix::row_xor
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:111,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 117
    functionName: Botan::binary_matrix::row_reduced_echelon_form
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - Botan::binary_matrix::coef
    - secure_vector::clear
    - Botan::binary_matrix::row_xor
    linkageType: ''
    returnType: secure_vector<size_t>
    signature: secure_vector<size_t> binary_matrix::row_reduced_echelon_form()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:120,1
    - Dst: Botan::random_gf2m
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:121,1
    - Dst: Botan::swap
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:124,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' L'
    - ' rng'
    argTypes:
    - std::vector<gf2m>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 126
    functionName: Botan::randomize_support
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp
    functionUses: 0
    functionsReached:
    - Botan::random_gf2m
    - Botan::size
    - Botan::swap
    linkageType: ''
    returnType: void
    signature: void randomize_support(std::vector<gf2m>& L, RandomNumberGenerator&
      rng)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::get_extension_degree
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:136,1
    - Dst: polyn_gf2m*::eval
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:141,1
    - Dst: Botan::lex_to_gray
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:141,1
    - Dst: Botan::gf_inv
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:142,1
    - Dst: Botan::get_extension_degree
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:145,1
    - Dst: binary_matrix::set_coef_to_one
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:148,1
    - Dst: Botan::get_extension_degree
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:148,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:151,1
    - Dst: Botan::lex_to_gray
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:151,1
    - Dst: binary_matrix::row_reduced_echelon_form
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:155,1
    - Dst: secure_vector::empty
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:156,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:157,1
    - Dst: std::make_unique<binary_matrix>
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:160,1
    - Dst: auto::rows
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:161,1
    - Dst: auto::columns
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:162,1
    - Dst: binary_matrix::coef
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:163,1
    - Dst: auto::toggle_coeff
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:164,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 5
    argNames:
    - ' L'
    - g
    - ' sp_field'
    - code_length
    - t
    argTypes:
    - std::vector<gf2m>
    - polyn_gf2m*
    - GF2m_Field
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 178
    functionName: Botan::generate_R
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp
    functionUses: 0
    functionsReached:
    - secure_vector::empty
    - Invalid_State
    - binary_matrix::row_reduced_echelon_form
    - std::make_unique<binary_matrix>
    - binary_matrix::coef
    - auto::columns
    - polyn_gf2m*::eval
    - binary_matrix::set_coef_to_one
    - auto::toggle_coeff
    - Botan::get_extension_degree
    - Botan::lex_to_gray
    - auto::rows
    - Botan::gf_mul
    - Botan::gf_inv
    linkageType: ''
    returnType: std::unique_ptr<binary_matrix>
    signature: "std::unique_ptr<binary_matrix> generate_R(\n   std::vector<gf2m>&
      L, polyn_gf2m* g, const GF2m_Field& sp_field, size_t code_length, size_t t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - j
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan::binary_matrix::coef
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t coef(size_t i, size_t j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - j
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: Botan::binary_matrix::set_coef_to_one
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: void
    signature: void set_coef_to_one(size_t i, size_t j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - j
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: Botan::binary_matrix::toggle_coeff
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: void
    signature: void toggle_coeff(size_t i, size_t j)
  - 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::binary_matrix::rows
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t rows() 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::binary_matrix::columns
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t columns() 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: '& elem() const'
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint32_t>
    signature: std::vector<uint32_t> & elem() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint32_t>
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rown
    - coln
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: Botan::binary_matrix::binary_matrix
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint32_t>
    linkageType: ''
    returnType: void
    signature: void binary_matrix::binary_matrix(size_t rown, size_t coln)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: Botan::binary_matrix::row_xor
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void binary_matrix::row_xor(size_t a, size_t b)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan::binary_matrix::coef
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:81,1
    - Dst: Botan::binary_matrix::row_xor
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:84,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:93,1
    - Dst: secure_vector::clear
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:96,1
    - Dst: Botan::binary_matrix::coef
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:103,1
    - Dst: Botan::binary_matrix::row_xor
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:104,1
    - Dst: Botan::binary_matrix::coef
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:110,1
    - Dst: Botan::binary_matrix::row_xor
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:111,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 117
    functionName: Botan::binary_matrix::row_reduced_echelon_form
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - Botan::binary_matrix::coef
    - secure_vector::clear
    - Botan::binary_matrix::row_xor
    linkageType: ''
    returnType: secure_vector<size_t>
    signature: secure_vector<size_t> binary_matrix::row_reduced_echelon_form()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:120,1
    - Dst: Botan::random_gf2m
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:121,1
    - Dst: Botan::swap
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:124,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' L'
    - ' rng'
    argTypes:
    - std::vector<gf2m>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 126
    functionName: Botan::randomize_support
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp
    functionUses: 0
    functionsReached:
    - Botan::random_gf2m
    - Botan::size
    - Botan::swap
    linkageType: ''
    returnType: void
    signature: void randomize_support(std::vector<gf2m>& L, RandomNumberGenerator&
      rng)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::get_extension_degree
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:136,1
    - Dst: polyn_gf2m*::eval
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:141,1
    - Dst: Botan::lex_to_gray
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:141,1
    - Dst: Botan::gf_inv
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:142,1
    - Dst: Botan::get_extension_degree
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:145,1
    - Dst: binary_matrix::set_coef_to_one
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:148,1
    - Dst: Botan::get_extension_degree
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:148,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:151,1
    - Dst: Botan::lex_to_gray
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:151,1
    - Dst: binary_matrix::row_reduced_echelon_form
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:155,1
    - Dst: secure_vector::empty
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:156,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:157,1
    - Dst: std::make_unique<binary_matrix>
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:160,1
    - Dst: auto::rows
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:161,1
    - Dst: auto::columns
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:162,1
    - Dst: binary_matrix::coef
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:163,1
    - Dst: auto::toggle_coeff
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:164,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 5
    argNames:
    - ' L'
    - g
    - ' sp_field'
    - code_length
    - t
    argTypes:
    - std::vector<gf2m>
    - polyn_gf2m*
    - GF2m_Field
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 178
    functionName: Botan::generate_R
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp
    functionUses: 0
    functionsReached:
    - secure_vector::empty
    - Invalid_State
    - binary_matrix::row_reduced_echelon_form
    - std::make_unique<binary_matrix>
    - binary_matrix::coef
    - auto::columns
    - polyn_gf2m*::eval
    - binary_matrix::set_coef_to_one
    - auto::toggle_coeff
    - Botan::get_extension_degree
    - Botan::lex_to_gray
    - auto::rows
    - Botan::gf_mul
    - Botan::gf_inv
    linkageType: ''
    returnType: std::unique_ptr<binary_matrix>
    signature: "std::unique_ptr<binary_matrix> generate_R(\n   std::vector<gf2m>&
      L, polyn_gf2m* g, const GF2m_Field& sp_field, size_t code_length, size_t t)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:185,1
    - Dst: std::make_shared<GF2m_Field>
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:188,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:193,1
    - Dst: static_cast<gf2m>
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:194,1
    - Dst: Botan::randomize_support
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:196,1
    - Dst: polyn_gf2m
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:205,1
    - Dst: Botan::generate_R
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:208,1
    - Dst: Botan::polyn_gf2m::sqrt_mod_init
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:213,1
    - Dst: Botan::syndrome_init
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:214,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:214,1
    - Dst: Botan::bit_size_to_32bit_size
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:222,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:224,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:229,1
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:229,1
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:232,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:243,1
    - Dst: static_cast<gf2m>
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:244,1
    - Dst: std::unique_ptr::elem
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:246,1
    - Dst: std::unique_ptr::elem
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:247,1
    - Dst: Botan::store_le
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:248,1
    - Dst: std::unique_ptr::elem
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:248,1
    - Dst: McEliece_PrivateKey
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:251,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 4
    argNames:
    - ' rng'
    - ext_deg
    - code_length
    - t
    argTypes:
    - RandomNumberGenerator
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 252
    functionName: Botan::generate_mceliece_key
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp
    functionUses: 0
    functionsReached:
    - Botan::syndrome_init
    - polyn_gf2m
    - static_cast<gf2m>
    - get_coef
    - static_cast<uint32_t>
    - Botan::Invalid_Argument
    - static_cast<int>
    - McEliece_PrivateKey
    - std::vector::data
    - Botan::bit_size_to_32bit_size
    - Botan::polyn_gf2m::sqrt_mod_init
    - Botan::store_le
    - std::vector::size
    - std::unique_ptr::elem
    - Botan::randomize_support
    - std::make_shared<GF2m_Field>
    - Botan::generate_R
    linkageType: ''
    returnType: McEliece_PrivateKey
    signature: McEliece_PrivateKey generate_mceliece_key(RandomNumberGenerator& rng,
      size_t ext_deg, size_t code_length, size_t t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - j
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan::binary_matrix::coef
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t coef(size_t i, size_t j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - j
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: Botan::binary_matrix::set_coef_to_one
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: void
    signature: void set_coef_to_one(size_t i, size_t j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - j
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: Botan::binary_matrix::toggle_coeff
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: void
    signature: void toggle_coeff(size_t i, size_t j)
  - 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::binary_matrix::rows
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t rows() 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::binary_matrix::columns
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t columns() 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: '& elem() const'
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint32_t>
    signature: std::vector<uint32_t> & elem() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint32_t>
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rown
    - coln
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: Botan::binary_matrix::binary_matrix
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint32_t>
    linkageType: ''
    returnType: void
    signature: void binary_matrix::binary_matrix(size_t rown, size_t coln)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: Botan::binary_matrix::row_xor
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void binary_matrix::row_xor(size_t a, size_t b)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan::binary_matrix::coef
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:81,1
    - Dst: Botan::binary_matrix::row_xor
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:84,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:93,1
    - Dst: secure_vector::clear
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:96,1
    - Dst: Botan::binary_matrix::coef
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:103,1
    - Dst: Botan::binary_matrix::row_xor
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:104,1
    - Dst: Botan::binary_matrix::coef
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:110,1
    - Dst: Botan::binary_matrix::row_xor
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:111,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 117
    functionName: Botan::binary_matrix::row_reduced_echelon_form
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - Botan::binary_matrix::coef
    - secure_vector::clear
    - Botan::binary_matrix::row_xor
    linkageType: ''
    returnType: secure_vector<size_t>
    signature: secure_vector<size_t> binary_matrix::row_reduced_echelon_form()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:120,1
    - Dst: Botan::random_gf2m
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:121,1
    - Dst: Botan::swap
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:124,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' L'
    - ' rng'
    argTypes:
    - std::vector<gf2m>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 126
    functionName: Botan::randomize_support
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp
    functionUses: 1
    functionsReached:
    - Botan::random_gf2m
    - Botan::size
    - Botan::swap
    linkageType: ''
    returnType: void
    signature: void randomize_support(std::vector<gf2m>& L, RandomNumberGenerator&
      rng)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::get_extension_degree
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:136,1
    - Dst: polyn_gf2m*::eval
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:141,1
    - Dst: Botan::lex_to_gray
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:141,1
    - Dst: Botan::gf_inv
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:142,1
    - Dst: Botan::get_extension_degree
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:145,1
    - Dst: binary_matrix::set_coef_to_one
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:148,1
    - Dst: Botan::get_extension_degree
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:148,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:151,1
    - Dst: Botan::lex_to_gray
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:151,1
    - Dst: binary_matrix::row_reduced_echelon_form
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:155,1
    - Dst: secure_vector::empty
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:156,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:157,1
    - Dst: std::make_unique<binary_matrix>
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:160,1
    - Dst: auto::rows
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:161,1
    - Dst: auto::columns
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:162,1
    - Dst: binary_matrix::coef
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:163,1
    - Dst: auto::toggle_coeff
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:164,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 5
    argNames:
    - ' L'
    - g
    - ' sp_field'
    - code_length
    - t
    argTypes:
    - std::vector<gf2m>
    - polyn_gf2m*
    - GF2m_Field
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 178
    functionName: Botan::generate_R
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp
    functionUses: 1
    functionsReached:
    - secure_vector::empty
    - Invalid_State
    - binary_matrix::row_reduced_echelon_form
    - std::make_unique<binary_matrix>
    - binary_matrix::coef
    - auto::columns
    - polyn_gf2m*::eval
    - binary_matrix::set_coef_to_one
    - auto::toggle_coeff
    - Botan::get_extension_degree
    - Botan::lex_to_gray
    - auto::rows
    - Botan::gf_mul
    - Botan::gf_inv
    linkageType: ''
    returnType: std::unique_ptr<binary_matrix>
    signature: "std::unique_ptr<binary_matrix> generate_R(\n   std::vector<gf2m>&
      L, polyn_gf2m* g, const GF2m_Field& sp_field, size_t code_length, size_t t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - j
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: Botan::binary_matrix::coef
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t coef(size_t i, size_t j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - j
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: Botan::binary_matrix::set_coef_to_one
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: void
    signature: void set_coef_to_one(size_t i, size_t j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - j
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: Botan::binary_matrix::toggle_coeff
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: void
    signature: void toggle_coeff(size_t i, size_t j)
  - 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::binary_matrix::rows
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t rows() 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::binary_matrix::columns
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t columns() 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: '& elem() const'
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint32_t>
    signature: std::vector<uint32_t> & elem() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint32_t>
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rown
    - coln
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: Botan::binary_matrix::binary_matrix
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint32_t>
    linkageType: ''
    returnType: void
    signature: void binary_matrix::binary_matrix(size_t rown, size_t coln)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: Botan::binary_matrix::row_xor
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void binary_matrix::row_xor(size_t a, size_t b)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan::binary_matrix::coef
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:81,1
    - Dst: Botan::binary_matrix::row_xor
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:84,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:93,1
    - Dst: secure_vector::clear
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:96,1
    - Dst: Botan::binary_matrix::coef
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:103,1
    - Dst: Botan::binary_matrix::row_xor
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:104,1
    - Dst: Botan::binary_matrix::coef
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:110,1
    - Dst: Botan::binary_matrix::row_xor
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:111,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 117
    functionName: Botan::binary_matrix::row_reduced_echelon_form
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - Botan::binary_matrix::coef
    - secure_vector::clear
    - Botan::binary_matrix::row_xor
    linkageType: ''
    returnType: secure_vector<size_t>
    signature: secure_vector<size_t> binary_matrix::row_reduced_echelon_form()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:120,1
    - Dst: Botan::random_gf2m
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:121,1
    - Dst: Botan::swap
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:124,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' L'
    - ' rng'
    argTypes:
    - std::vector<gf2m>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 126
    functionName: Botan::randomize_support
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp
    functionUses: 1
    functionsReached:
    - Botan::random_gf2m
    - Botan::size
    - Botan::swap
    linkageType: ''
    returnType: void
    signature: void randomize_support(std::vector<gf2m>& L, RandomNumberGenerator&
      rng)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::get_extension_degree
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:136,1
    - Dst: polyn_gf2m*::eval
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:141,1
    - Dst: Botan::lex_to_gray
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:141,1
    - Dst: Botan::gf_inv
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:142,1
    - Dst: Botan::get_extension_degree
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:145,1
    - Dst: binary_matrix::set_coef_to_one
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:148,1
    - Dst: Botan::get_extension_degree
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:148,1
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:151,1
    - Dst: Botan::lex_to_gray
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:151,1
    - Dst: binary_matrix::row_reduced_echelon_form
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:155,1
    - Dst: secure_vector::empty
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:156,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:157,1
    - Dst: std::make_unique<binary_matrix>
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:160,1
    - Dst: auto::rows
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:161,1
    - Dst: auto::columns
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:162,1
    - Dst: binary_matrix::coef
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:163,1
    - Dst: auto::toggle_coeff
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:164,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 5
    argNames:
    - ' L'
    - g
    - ' sp_field'
    - code_length
    - t
    argTypes:
    - std::vector<gf2m>
    - polyn_gf2m*
    - GF2m_Field
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 178
    functionName: Botan::generate_R
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp
    functionUses: 1
    functionsReached:
    - secure_vector::empty
    - Invalid_State
    - binary_matrix::row_reduced_echelon_form
    - std::make_unique<binary_matrix>
    - binary_matrix::coef
    - auto::columns
    - polyn_gf2m*::eval
    - binary_matrix::set_coef_to_one
    - auto::toggle_coeff
    - Botan::get_extension_degree
    - Botan::lex_to_gray
    - auto::rows
    - Botan::gf_mul
    - Botan::gf_inv
    linkageType: ''
    returnType: std::unique_ptr<binary_matrix>
    signature: "std::unique_ptr<binary_matrix> generate_R(\n   std::vector<gf2m>&
      L, polyn_gf2m* g, const GF2m_Field& sp_field, size_t code_length, size_t t)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:185,1
    - Dst: std::make_shared<GF2m_Field>
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:188,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:193,1
    - Dst: static_cast<gf2m>
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:194,1
    - Dst: Botan::randomize_support
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:196,1
    - Dst: polyn_gf2m
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:205,1
    - Dst: Botan::generate_R
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:208,1
    - Dst: Botan::polyn_gf2m::sqrt_mod_init
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:213,1
    - Dst: Botan::syndrome_init
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:214,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:214,1
    - Dst: Botan::bit_size_to_32bit_size
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:222,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:224,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:229,1
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:229,1
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:232,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:243,1
    - Dst: static_cast<gf2m>
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:244,1
    - Dst: std::unique_ptr::elem
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:246,1
    - Dst: std::unique_ptr::elem
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:247,1
    - Dst: Botan::store_le
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:248,1
    - Dst: std::unique_ptr::elem
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:248,1
    - Dst: McEliece_PrivateKey
      Src: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp:251,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 4
    argNames:
    - ' rng'
    - ext_deg
    - code_length
    - t
    argTypes:
    - RandomNumberGenerator
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 252
    functionName: Botan::generate_mceliece_key
    functionSourceFile: /src/botan/src/lib/pubkey/mce/code_based_key_gen.cpp
    functionUses: 0
    functionsReached:
    - Botan::syndrome_init
    - polyn_gf2m
    - static_cast<gf2m>
    - get_coef
    - static_cast<uint32_t>
    - Botan::Invalid_Argument
    - static_cast<int>
    - McEliece_PrivateKey
    - std::vector::data
    - Botan::bit_size_to_32bit_size
    - Botan::polyn_gf2m::sqrt_mod_init
    - Botan::store_le
    - std::vector::size
    - std::unique_ptr::elem
    - Botan::randomize_support
    - std::make_shared<GF2m_Field>
    - Botan::generate_R
    linkageType: ''
    returnType: McEliece_PrivateKey
    signature: McEliece_PrivateKey generate_mceliece_key(RandomNumberGenerator& rng,
      size_t ext_deg, size_t code_length, size_t t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<gf2m>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:22,1
    - Dst: Botan::expand_mask_16bit
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:23,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - res_root_arr
    - res_root_arr_len
    - root_pos
    argTypes:
    - gf2m[]
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 31
    functionName: Botan::patch_root_array
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp
    functionUses: 0
    functionsReached:
    - static_cast<gf2m>
    - Botan::expand_mask_16bit
    linkageType: ''
    returnType: void
    signature: void patch_root_array(gf2m res_root_arr[], size_t res_root_arr_len,
      size_t root_pos)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - t
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 65
    functionName: Botan::brootf_decomp_calc_sum_limit
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t brootf_decomp_calc_sum_limit(uint32_t t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_sp_field
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:69,1
    - Dst: get_degree
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:70,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:72,1
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:75,1
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:76,1
    - Dst: std::shared_ptr::gf_l_from_n
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:78,1
    - Dst: std::shared_ptr::gf_l_from_n
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:82,1
    - Dst: brootf_decomp_calc_sum_limit
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:86,1
    - Dst: Botan::gf2m_decomp_rootfind_state::m_Lik::resize
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:87,1
    - Dst: std::shared_ptr::get_extension_degree
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:87,1
    - Dst: Botan::gf2m_decomp_rootfind_state::m_Aij::resize
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:88,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ' polyn'
    - code_length
    argTypes:
    - polyn_gf2m
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 89
    functionName: Botan::gf2m_decomp_rootfind_state::gf2m_decomp_rootfind_state
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp
    functionUses: 0
    functionsReached:
    - get_coef
    - std::shared_ptr::get_extension_degree
    - Botan::gf2m_decomp_rootfind_state::m_Lik::resize
    - get_sp_field
    - Botan::gf2m_decomp_rootfind_state::m_Aij::resize
    - Internal_Error
    - brootf_decomp_calc_sum_limit
    - std::shared_ptr::gf_l_from_n
    - get_degree
    linkageType: ''
    returnType: void
    signature: void gf2m_decomp_rootfind_state::gf2m_decomp_rootfind_state(const polyn_gf2m&
      polyn, size_t code_length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' sigma'
    argTypes:
    - polyn_gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 100
    functionName: Botan::gf2m_decomp_rootfind_state::calc_Ai_zero
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp
    functionUses: 0
    functionsReached:
    - get_coef
    linkageType: ''
    returnType: void
    signature: void gf2m_decomp_rootfind_state::calc_Ai_zero(const polyn_gf2m& sigma)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lex_to_gray
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:112,1
    - Dst: static_cast<gf2m>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:131,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 141
    functionName: Botan::gf2m_decomp_rootfind_state::calc_next_Aij
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp
    functionUses: 0
    functionsReached:
    - static_cast<gf2m>
    - lex_to_gray
    linkageType: ''
    returnType: void
    signature: void gf2m_decomp_rootfind_state::calc_next_Aij()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_sp_field
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:144,1
    - Dst: get_degree
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:145,1
    - Dst: std::shared_ptr::get_extension_degree
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:146,1
    - Dst: std::shared_ptr::gf_l_from_n
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:149,1
    - Dst: static_cast<gf2m>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:149,1
    - Dst: std::shared_ptr::gf_mul_rrr
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:150,1
    - Dst: std::shared_ptr::gf_mul_rrr
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:151,1
    - Dst: std::shared_ptr::gf_mul_rrr
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:153,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:159,1
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:163,1
    - Dst: std::shared_ptr::gf_mul_zrz
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:165,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - ' sigma'
    argTypes:
    - polyn_gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 170
    functionName: Botan::gf2m_decomp_rootfind_state::calc_LiK
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp
    functionUses: 0
    functionsReached:
    - get_coef
    - std::shared_ptr::get_extension_degree
    - static_cast<gf2m>
    - static_cast<uint32_t>
    - get_sp_field
    - std::shared_ptr::gf_mul_zrz
    - std::shared_ptr::gf_l_from_n
    - get_degree
    - std::shared_ptr::gf_mul_rrr
    linkageType: ''
    returnType: void
    signature: void gf2m_decomp_rootfind_state::calc_LiK(const polyn_gf2m& sigma)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_sp_field
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:175,1
    - Dst: std::shared_ptr::gf_l_from_n
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:176,1
    - Dst: std::shared_ptr::gf_square_rr
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:177,1
    - Dst: std::shared_ptr::gf_mul_rrr
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:178,1
    - Dst: std::shared_ptr::gf_mul_rrr
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:179,1
    - Dst: std::shared_ptr::gf_mul_nrr
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:181,1
    - Dst: std::shared_ptr::gf_mul_zrz
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:191,1
    - Dst: std::shared_ptr::gf_mul_rrr
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:198,1
    - Dst: std::shared_ptr::gf_mul_zrz
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - ' sigma'
    - j_gray
    argTypes:
    - polyn_gf2m
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 204
    functionName: Botan::gf2m_decomp_rootfind_state::calc_Fxj_j_neq_0
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::gf_mul_nrr
    - get_sp_field
    - std::shared_ptr::gf_mul_zrz
    - std::shared_ptr::gf_square_rr
    - std::shared_ptr::gf_l_from_n
    - std::shared_ptr::gf_mul_rrr
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf2m_decomp_rootfind_state::calc_Fxj_j_neq_0(const polyn_gf2m&
      sigma, gf2m j_gray)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_degree
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:207,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:208,1
    - Dst: Botan::gf2m_decomp_rootfind_state::calc_Ai_zero
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:212,1
    - Dst: Botan::gf2m_decomp_rootfind_state::calc_LiK
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:213,1
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:218,1
    - Dst: Botan::gf2m_decomp_rootfind_state::calc_Fxj_j_neq_0
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:220,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:228,1
    - Dst: Botan::gf2m_decomp_rootfind_state::calc_next_Aij
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:231,1
    - Dst: patch_root_array
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:235,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:235,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:235,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - ' sigma'
    argTypes:
    - polyn_gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 237
    functionName: Botan::gf2m_decomp_rootfind_state::find_roots
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp
    functionUses: 0
    functionsReached:
    - get_coef
    - Botan::gf2m_decomp_rootfind_state::calc_next_Aij
    - static_cast<uint32_t>
    - Botan::gf2m_decomp_rootfind_state::calc_LiK
    - patch_root_array
    - Botan::gf2m_decomp_rootfind_state::calc_Ai_zero
    - secure_vector::size
    - secure_vector::data
    - Botan::gf2m_decomp_rootfind_state::calc_Fxj_j_neq_0
    - BOTAN_ASSERT
    - get_degree
    linkageType: ''
    returnType: secure_vector<gf2m>
    signature: secure_vector<gf2m> gf2m_decomp_rootfind_state::find_roots(const polyn_gf2m&
      sigma)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<gf2m>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:22,1
    - Dst: Botan::expand_mask_16bit
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:23,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - res_root_arr
    - res_root_arr_len
    - root_pos
    argTypes:
    - gf2m[]
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 31
    functionName: Botan::patch_root_array
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp
    functionUses: 0
    functionsReached:
    - static_cast<gf2m>
    - Botan::expand_mask_16bit
    linkageType: ''
    returnType: void
    signature: void patch_root_array(gf2m res_root_arr[], size_t res_root_arr_len,
      size_t root_pos)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - t
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 65
    functionName: Botan::brootf_decomp_calc_sum_limit
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t brootf_decomp_calc_sum_limit(uint32_t t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_sp_field
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:69,1
    - Dst: get_degree
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:70,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:72,1
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:75,1
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:76,1
    - Dst: std::shared_ptr::gf_l_from_n
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:78,1
    - Dst: std::shared_ptr::gf_l_from_n
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:82,1
    - Dst: brootf_decomp_calc_sum_limit
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:86,1
    - Dst: Botan::gf2m_decomp_rootfind_state::m_Lik::resize
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:87,1
    - Dst: std::shared_ptr::get_extension_degree
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:87,1
    - Dst: Botan::gf2m_decomp_rootfind_state::m_Aij::resize
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:88,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ' polyn'
    - code_length
    argTypes:
    - polyn_gf2m
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 89
    functionName: Botan::gf2m_decomp_rootfind_state::gf2m_decomp_rootfind_state
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp
    functionUses: 0
    functionsReached:
    - get_coef
    - std::shared_ptr::get_extension_degree
    - Botan::gf2m_decomp_rootfind_state::m_Lik::resize
    - get_sp_field
    - Botan::gf2m_decomp_rootfind_state::m_Aij::resize
    - Internal_Error
    - brootf_decomp_calc_sum_limit
    - std::shared_ptr::gf_l_from_n
    - get_degree
    linkageType: ''
    returnType: void
    signature: void gf2m_decomp_rootfind_state::gf2m_decomp_rootfind_state(const polyn_gf2m&
      polyn, size_t code_length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' sigma'
    argTypes:
    - polyn_gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 100
    functionName: Botan::gf2m_decomp_rootfind_state::calc_Ai_zero
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp
    functionUses: 1
    functionsReached:
    - get_coef
    linkageType: ''
    returnType: void
    signature: void gf2m_decomp_rootfind_state::calc_Ai_zero(const polyn_gf2m& sigma)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lex_to_gray
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:112,1
    - Dst: static_cast<gf2m>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:131,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 141
    functionName: Botan::gf2m_decomp_rootfind_state::calc_next_Aij
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp
    functionUses: 1
    functionsReached:
    - static_cast<gf2m>
    - lex_to_gray
    linkageType: ''
    returnType: void
    signature: void gf2m_decomp_rootfind_state::calc_next_Aij()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_sp_field
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:144,1
    - Dst: get_degree
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:145,1
    - Dst: std::shared_ptr::get_extension_degree
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:146,1
    - Dst: std::shared_ptr::gf_l_from_n
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:149,1
    - Dst: static_cast<gf2m>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:149,1
    - Dst: std::shared_ptr::gf_mul_rrr
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:150,1
    - Dst: std::shared_ptr::gf_mul_rrr
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:151,1
    - Dst: std::shared_ptr::gf_mul_rrr
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:153,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:159,1
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:163,1
    - Dst: std::shared_ptr::gf_mul_zrz
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:165,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - ' sigma'
    argTypes:
    - polyn_gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 170
    functionName: Botan::gf2m_decomp_rootfind_state::calc_LiK
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp
    functionUses: 1
    functionsReached:
    - get_coef
    - std::shared_ptr::get_extension_degree
    - static_cast<gf2m>
    - static_cast<uint32_t>
    - get_sp_field
    - std::shared_ptr::gf_mul_zrz
    - std::shared_ptr::gf_l_from_n
    - get_degree
    - std::shared_ptr::gf_mul_rrr
    linkageType: ''
    returnType: void
    signature: void gf2m_decomp_rootfind_state::calc_LiK(const polyn_gf2m& sigma)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_sp_field
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:175,1
    - Dst: std::shared_ptr::gf_l_from_n
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:176,1
    - Dst: std::shared_ptr::gf_square_rr
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:177,1
    - Dst: std::shared_ptr::gf_mul_rrr
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:178,1
    - Dst: std::shared_ptr::gf_mul_rrr
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:179,1
    - Dst: std::shared_ptr::gf_mul_nrr
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:181,1
    - Dst: std::shared_ptr::gf_mul_zrz
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:191,1
    - Dst: std::shared_ptr::gf_mul_rrr
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:198,1
    - Dst: std::shared_ptr::gf_mul_zrz
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - ' sigma'
    - j_gray
    argTypes:
    - polyn_gf2m
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 204
    functionName: Botan::gf2m_decomp_rootfind_state::calc_Fxj_j_neq_0
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp
    functionUses: 1
    functionsReached:
    - std::shared_ptr::gf_mul_nrr
    - get_sp_field
    - std::shared_ptr::gf_mul_zrz
    - std::shared_ptr::gf_square_rr
    - std::shared_ptr::gf_l_from_n
    - std::shared_ptr::gf_mul_rrr
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf2m_decomp_rootfind_state::calc_Fxj_j_neq_0(const polyn_gf2m&
      sigma, gf2m j_gray)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_degree
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:207,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:208,1
    - Dst: Botan::gf2m_decomp_rootfind_state::calc_Ai_zero
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:212,1
    - Dst: Botan::gf2m_decomp_rootfind_state::calc_LiK
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:213,1
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:218,1
    - Dst: Botan::gf2m_decomp_rootfind_state::calc_Fxj_j_neq_0
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:220,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:228,1
    - Dst: Botan::gf2m_decomp_rootfind_state::calc_next_Aij
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:231,1
    - Dst: patch_root_array
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:235,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:235,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:235,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - ' sigma'
    argTypes:
    - polyn_gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 237
    functionName: Botan::gf2m_decomp_rootfind_state::find_roots
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp
    functionUses: 0
    functionsReached:
    - get_coef
    - Botan::gf2m_decomp_rootfind_state::calc_next_Aij
    - static_cast<uint32_t>
    - Botan::gf2m_decomp_rootfind_state::calc_LiK
    - patch_root_array
    - Botan::gf2m_decomp_rootfind_state::calc_Ai_zero
    - secure_vector::size
    - secure_vector::data
    - Botan::gf2m_decomp_rootfind_state::calc_Fxj_j_neq_0
    - BOTAN_ASSERT
    - get_degree
    linkageType: ''
    returnType: secure_vector<gf2m>
    signature: secure_vector<gf2m> gf2m_decomp_rootfind_state::find_roots(const polyn_gf2m&
      sigma)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf2m_decomp_rootfind_state::find_roots
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' polyn'
    - code_length
    argTypes:
    - polyn_gf2m
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 244
    functionName: Botan::find_roots_gf2m_decomp
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp
    functionUses: 4
    functionsReached:
    - gf2m_decomp_rootfind_state::find_roots
    linkageType: ''
    returnType: secure_vector<gf2m>
    signature: secure_vector<gf2m> find_roots_gf2m_decomp(const polyn_gf2m& polyn,
      size_t code_length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<gf2m>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:22,1
    - Dst: Botan::expand_mask_16bit
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:23,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - res_root_arr
    - res_root_arr_len
    - root_pos
    argTypes:
    - gf2m[]
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 31
    functionName: Botan::patch_root_array
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp
    functionUses: 0
    functionsReached:
    - static_cast<gf2m>
    - Botan::expand_mask_16bit
    linkageType: ''
    returnType: void
    signature: void patch_root_array(gf2m res_root_arr[], size_t res_root_arr_len,
      size_t root_pos)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - t
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 65
    functionName: Botan::brootf_decomp_calc_sum_limit
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t brootf_decomp_calc_sum_limit(uint32_t t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_sp_field
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:69,1
    - Dst: get_degree
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:70,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:72,1
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:75,1
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:76,1
    - Dst: std::shared_ptr::gf_l_from_n
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:78,1
    - Dst: std::shared_ptr::gf_l_from_n
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:82,1
    - Dst: brootf_decomp_calc_sum_limit
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:86,1
    - Dst: Botan::gf2m_decomp_rootfind_state::m_Lik::resize
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:87,1
    - Dst: std::shared_ptr::get_extension_degree
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:87,1
    - Dst: Botan::gf2m_decomp_rootfind_state::m_Aij::resize
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:88,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ' polyn'
    - code_length
    argTypes:
    - polyn_gf2m
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 89
    functionName: Botan::gf2m_decomp_rootfind_state::gf2m_decomp_rootfind_state
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp
    functionUses: 0
    functionsReached:
    - get_coef
    - std::shared_ptr::get_extension_degree
    - Botan::gf2m_decomp_rootfind_state::m_Lik::resize
    - get_sp_field
    - Botan::gf2m_decomp_rootfind_state::m_Aij::resize
    - Internal_Error
    - brootf_decomp_calc_sum_limit
    - std::shared_ptr::gf_l_from_n
    - get_degree
    linkageType: ''
    returnType: void
    signature: void gf2m_decomp_rootfind_state::gf2m_decomp_rootfind_state(const polyn_gf2m&
      polyn, size_t code_length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' sigma'
    argTypes:
    - polyn_gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 100
    functionName: Botan::gf2m_decomp_rootfind_state::calc_Ai_zero
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp
    functionUses: 2
    functionsReached:
    - get_coef
    linkageType: ''
    returnType: void
    signature: void gf2m_decomp_rootfind_state::calc_Ai_zero(const polyn_gf2m& sigma)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lex_to_gray
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:112,1
    - Dst: static_cast<gf2m>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:131,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 141
    functionName: Botan::gf2m_decomp_rootfind_state::calc_next_Aij
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp
    functionUses: 2
    functionsReached:
    - static_cast<gf2m>
    - lex_to_gray
    linkageType: ''
    returnType: void
    signature: void gf2m_decomp_rootfind_state::calc_next_Aij()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_sp_field
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:144,1
    - Dst: get_degree
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:145,1
    - Dst: std::shared_ptr::get_extension_degree
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:146,1
    - Dst: std::shared_ptr::gf_l_from_n
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:149,1
    - Dst: static_cast<gf2m>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:149,1
    - Dst: std::shared_ptr::gf_mul_rrr
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:150,1
    - Dst: std::shared_ptr::gf_mul_rrr
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:151,1
    - Dst: std::shared_ptr::gf_mul_rrr
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:153,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:159,1
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:163,1
    - Dst: std::shared_ptr::gf_mul_zrz
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:165,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - ' sigma'
    argTypes:
    - polyn_gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 170
    functionName: Botan::gf2m_decomp_rootfind_state::calc_LiK
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp
    functionUses: 2
    functionsReached:
    - get_coef
    - std::shared_ptr::get_extension_degree
    - static_cast<gf2m>
    - static_cast<uint32_t>
    - get_sp_field
    - std::shared_ptr::gf_mul_zrz
    - std::shared_ptr::gf_l_from_n
    - get_degree
    - std::shared_ptr::gf_mul_rrr
    linkageType: ''
    returnType: void
    signature: void gf2m_decomp_rootfind_state::calc_LiK(const polyn_gf2m& sigma)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_sp_field
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:175,1
    - Dst: std::shared_ptr::gf_l_from_n
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:176,1
    - Dst: std::shared_ptr::gf_square_rr
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:177,1
    - Dst: std::shared_ptr::gf_mul_rrr
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:178,1
    - Dst: std::shared_ptr::gf_mul_rrr
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:179,1
    - Dst: std::shared_ptr::gf_mul_nrr
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:181,1
    - Dst: std::shared_ptr::gf_mul_zrz
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:191,1
    - Dst: std::shared_ptr::gf_mul_rrr
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:198,1
    - Dst: std::shared_ptr::gf_mul_zrz
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - ' sigma'
    - j_gray
    argTypes:
    - polyn_gf2m
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 204
    functionName: Botan::gf2m_decomp_rootfind_state::calc_Fxj_j_neq_0
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp
    functionUses: 2
    functionsReached:
    - std::shared_ptr::gf_mul_nrr
    - get_sp_field
    - std::shared_ptr::gf_mul_zrz
    - std::shared_ptr::gf_square_rr
    - std::shared_ptr::gf_l_from_n
    - std::shared_ptr::gf_mul_rrr
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf2m_decomp_rootfind_state::calc_Fxj_j_neq_0(const polyn_gf2m&
      sigma, gf2m j_gray)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_degree
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:207,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:208,1
    - Dst: Botan::gf2m_decomp_rootfind_state::calc_Ai_zero
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:212,1
    - Dst: Botan::gf2m_decomp_rootfind_state::calc_LiK
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:213,1
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:218,1
    - Dst: Botan::gf2m_decomp_rootfind_state::calc_Fxj_j_neq_0
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:220,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:228,1
    - Dst: Botan::gf2m_decomp_rootfind_state::calc_next_Aij
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:231,1
    - Dst: patch_root_array
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:235,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:235,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:235,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - ' sigma'
    argTypes:
    - polyn_gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 237
    functionName: Botan::gf2m_decomp_rootfind_state::find_roots
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp
    functionUses: 0
    functionsReached:
    - get_coef
    - Botan::gf2m_decomp_rootfind_state::calc_next_Aij
    - static_cast<uint32_t>
    - Botan::gf2m_decomp_rootfind_state::calc_LiK
    - patch_root_array
    - Botan::gf2m_decomp_rootfind_state::calc_Ai_zero
    - secure_vector::size
    - secure_vector::data
    - Botan::gf2m_decomp_rootfind_state::calc_Fxj_j_neq_0
    - BOTAN_ASSERT
    - get_degree
    linkageType: ''
    returnType: secure_vector<gf2m>
    signature: secure_vector<gf2m> gf2m_decomp_rootfind_state::find_roots(const polyn_gf2m&
      sigma)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<gf2m>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:22,1
    - Dst: Botan::expand_mask_16bit
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:23,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - res_root_arr
    - res_root_arr_len
    - root_pos
    argTypes:
    - gf2m[]
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 31
    functionName: Botan::patch_root_array
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp
    functionUses: 0
    functionsReached:
    - static_cast<gf2m>
    - Botan::expand_mask_16bit
    linkageType: ''
    returnType: void
    signature: void patch_root_array(gf2m res_root_arr[], size_t res_root_arr_len,
      size_t root_pos)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - t
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 65
    functionName: Botan::brootf_decomp_calc_sum_limit
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t brootf_decomp_calc_sum_limit(uint32_t t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_sp_field
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:69,1
    - Dst: get_degree
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:70,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:72,1
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:75,1
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:76,1
    - Dst: std::shared_ptr::gf_l_from_n
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:78,1
    - Dst: std::shared_ptr::gf_l_from_n
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:82,1
    - Dst: brootf_decomp_calc_sum_limit
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:86,1
    - Dst: Botan::gf2m_decomp_rootfind_state::m_Lik::resize
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:87,1
    - Dst: std::shared_ptr::get_extension_degree
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:87,1
    - Dst: Botan::gf2m_decomp_rootfind_state::m_Aij::resize
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:88,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ' polyn'
    - code_length
    argTypes:
    - polyn_gf2m
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 89
    functionName: Botan::gf2m_decomp_rootfind_state::gf2m_decomp_rootfind_state
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp
    functionUses: 0
    functionsReached:
    - get_coef
    - std::shared_ptr::get_extension_degree
    - Botan::gf2m_decomp_rootfind_state::m_Lik::resize
    - get_sp_field
    - Botan::gf2m_decomp_rootfind_state::m_Aij::resize
    - Internal_Error
    - brootf_decomp_calc_sum_limit
    - std::shared_ptr::gf_l_from_n
    - get_degree
    linkageType: ''
    returnType: void
    signature: void gf2m_decomp_rootfind_state::gf2m_decomp_rootfind_state(const polyn_gf2m&
      polyn, size_t code_length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' sigma'
    argTypes:
    - polyn_gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 100
    functionName: Botan::gf2m_decomp_rootfind_state::calc_Ai_zero
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp
    functionUses: 3
    functionsReached:
    - get_coef
    linkageType: ''
    returnType: void
    signature: void gf2m_decomp_rootfind_state::calc_Ai_zero(const polyn_gf2m& sigma)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lex_to_gray
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:112,1
    - Dst: static_cast<gf2m>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:131,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 141
    functionName: Botan::gf2m_decomp_rootfind_state::calc_next_Aij
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp
    functionUses: 3
    functionsReached:
    - static_cast<gf2m>
    - lex_to_gray
    linkageType: ''
    returnType: void
    signature: void gf2m_decomp_rootfind_state::calc_next_Aij()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_sp_field
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:144,1
    - Dst: get_degree
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:145,1
    - Dst: std::shared_ptr::get_extension_degree
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:146,1
    - Dst: std::shared_ptr::gf_l_from_n
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:149,1
    - Dst: static_cast<gf2m>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:149,1
    - Dst: std::shared_ptr::gf_mul_rrr
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:150,1
    - Dst: std::shared_ptr::gf_mul_rrr
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:151,1
    - Dst: std::shared_ptr::gf_mul_rrr
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:153,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:159,1
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:163,1
    - Dst: std::shared_ptr::gf_mul_zrz
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:165,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - ' sigma'
    argTypes:
    - polyn_gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 170
    functionName: Botan::gf2m_decomp_rootfind_state::calc_LiK
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp
    functionUses: 3
    functionsReached:
    - get_coef
    - std::shared_ptr::get_extension_degree
    - static_cast<gf2m>
    - static_cast<uint32_t>
    - get_sp_field
    - std::shared_ptr::gf_mul_zrz
    - std::shared_ptr::gf_l_from_n
    - get_degree
    - std::shared_ptr::gf_mul_rrr
    linkageType: ''
    returnType: void
    signature: void gf2m_decomp_rootfind_state::calc_LiK(const polyn_gf2m& sigma)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_sp_field
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:175,1
    - Dst: std::shared_ptr::gf_l_from_n
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:176,1
    - Dst: std::shared_ptr::gf_square_rr
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:177,1
    - Dst: std::shared_ptr::gf_mul_rrr
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:178,1
    - Dst: std::shared_ptr::gf_mul_rrr
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:179,1
    - Dst: std::shared_ptr::gf_mul_nrr
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:181,1
    - Dst: std::shared_ptr::gf_mul_zrz
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:191,1
    - Dst: std::shared_ptr::gf_mul_rrr
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:198,1
    - Dst: std::shared_ptr::gf_mul_zrz
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - ' sigma'
    - j_gray
    argTypes:
    - polyn_gf2m
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 204
    functionName: Botan::gf2m_decomp_rootfind_state::calc_Fxj_j_neq_0
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp
    functionUses: 3
    functionsReached:
    - std::shared_ptr::gf_mul_nrr
    - get_sp_field
    - std::shared_ptr::gf_mul_zrz
    - std::shared_ptr::gf_square_rr
    - std::shared_ptr::gf_l_from_n
    - std::shared_ptr::gf_mul_rrr
    linkageType: ''
    returnType: gf2m
    signature: gf2m gf2m_decomp_rootfind_state::calc_Fxj_j_neq_0(const polyn_gf2m&
      sigma, gf2m j_gray)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_degree
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:207,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:208,1
    - Dst: Botan::gf2m_decomp_rootfind_state::calc_Ai_zero
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:212,1
    - Dst: Botan::gf2m_decomp_rootfind_state::calc_LiK
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:213,1
    - Dst: get_coef
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:218,1
    - Dst: Botan::gf2m_decomp_rootfind_state::calc_Fxj_j_neq_0
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:220,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:228,1
    - Dst: Botan::gf2m_decomp_rootfind_state::calc_next_Aij
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:231,1
    - Dst: patch_root_array
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:235,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:235,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:235,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - ' sigma'
    argTypes:
    - polyn_gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 237
    functionName: Botan::gf2m_decomp_rootfind_state::find_roots
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp
    functionUses: 0
    functionsReached:
    - get_coef
    - Botan::gf2m_decomp_rootfind_state::calc_next_Aij
    - static_cast<uint32_t>
    - Botan::gf2m_decomp_rootfind_state::calc_LiK
    - patch_root_array
    - Botan::gf2m_decomp_rootfind_state::calc_Ai_zero
    - secure_vector::size
    - secure_vector::data
    - Botan::gf2m_decomp_rootfind_state::calc_Fxj_j_neq_0
    - BOTAN_ASSERT
    - get_degree
    linkageType: ''
    returnType: secure_vector<gf2m>
    signature: secure_vector<gf2m> gf2m_decomp_rootfind_state::find_roots(const polyn_gf2m&
      sigma)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gf2m_decomp_rootfind_state::find_roots
      Src: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' polyn'
    - code_length
    argTypes:
    - polyn_gf2m
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 244
    functionName: Botan::find_roots_gf2m_decomp
    functionSourceFile: /src/botan/src/lib/pubkey/mce/gf2m_rootfind_dcmp.cpp
    functionUses: 4
    functionsReached:
    - gf2m_decomp_rootfind_state::find_roots
    linkageType: ''
    returnType: secure_vector<gf2m>
    signature: secure_vector<gf2m> find_roots_gf2m_decomp(const polyn_gf2m& polyn,
      size_t code_length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - n
    - k
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 29
    functionName: Botan::binomial
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double binomial(size_t n, size_t k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::log
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:35,1
    - Dst: std::log
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - n
    - k
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 40
    functionName: Botan::log_binomial
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp
    functionUses: 0
    functionsReached:
    - std::log
    linkageType: ''
    returnType: double
    signature: double log_binomial(size_t n, size_t k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::log_binomial
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:43,1
    - Dst: Botan::log_binomial
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:44,1
    - Dst: Botan::log_binomial
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - n
    - k
    - w
    - p
    - l
    argTypes:
    - size_t
    - size_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: Botan::nb_iter
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp
    functionUses: 0
    functionsReached:
    - Botan::log_binomial
    linkageType: ''
    returnType: double
    signature: double nb_iter(size_t n, size_t k, size_t w, size_t p, size_t l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::binomial
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:50,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:51,1
    - Dst: std::log
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:51,1
    - Dst: std::ldexp
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:52,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:52,1
    - Dst: std::log
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - n
    - k
    - p
    - l
    argTypes:
    - size_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 63
    functionName: Botan::cout_iter
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - std::log
    - static_cast<int>
    - std::ldexp
    - Botan::binomial
    linkageType: ''
    returnType: double
    signature: double cout_iter(size_t n, size_t k, size_t p, size_t l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::nb_iter
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:66,1
    - Dst: Botan::cout_iter
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - n
    - k
    - w
    - p
    - l
    argTypes:
    - size_t
    - size_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: Botan::cout_total
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp
    functionUses: 0
    functionsReached:
    - Botan::nb_iter
    - Botan::cout_iter
    linkageType: ''
    returnType: double
    signature: double cout_total(size_t n, size_t k, size_t w, size_t p, size_t l)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::cout_total
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:74,1
    - Dst: Botan::cout_total
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - n
    - k
    - w
    - p
    argTypes:
    - size_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 69
    functionDepth: 3
    functionLinenumber: 69
    functionLinenumberEnd: 86
    functionName: Botan::best_wf
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp
    functionUses: 0
    functionsReached:
    - Botan::cout_total
    linkageType: ''
    returnType: double
    signature: double best_wf(size_t n, size_t k, size_t w, size_t p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - n
    - k
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 29
    functionName: Botan::binomial
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double binomial(size_t n, size_t k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::log
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:35,1
    - Dst: std::log
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - n
    - k
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 40
    functionName: Botan::log_binomial
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp
    functionUses: 1
    functionsReached:
    - std::log
    linkageType: ''
    returnType: double
    signature: double log_binomial(size_t n, size_t k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::log_binomial
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:43,1
    - Dst: Botan::log_binomial
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:44,1
    - Dst: Botan::log_binomial
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - n
    - k
    - w
    - p
    - l
    argTypes:
    - size_t
    - size_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: Botan::nb_iter
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp
    functionUses: 1
    functionsReached:
    - Botan::log_binomial
    linkageType: ''
    returnType: double
    signature: double nb_iter(size_t n, size_t k, size_t w, size_t p, size_t l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::binomial
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:50,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:51,1
    - Dst: std::log
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:51,1
    - Dst: std::ldexp
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:52,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:52,1
    - Dst: std::log
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - n
    - k
    - p
    - l
    argTypes:
    - size_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 63
    functionName: Botan::cout_iter
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp
    functionUses: 1
    functionsReached:
    - static_cast<size_t>
    - std::log
    - static_cast<int>
    - std::ldexp
    - Botan::binomial
    linkageType: ''
    returnType: double
    signature: double cout_iter(size_t n, size_t k, size_t p, size_t l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::nb_iter
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:66,1
    - Dst: Botan::cout_iter
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - n
    - k
    - w
    - p
    - l
    argTypes:
    - size_t
    - size_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: Botan::cout_total
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp
    functionUses: 1
    functionsReached:
    - Botan::nb_iter
    - Botan::cout_iter
    linkageType: ''
    returnType: double
    signature: double cout_total(size_t n, size_t k, size_t w, size_t p, size_t l)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::cout_total
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:74,1
    - Dst: Botan::cout_total
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - n
    - k
    - w
    - p
    argTypes:
    - size_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 69
    functionDepth: 3
    functionLinenumber: 69
    functionLinenumberEnd: 86
    functionName: Botan::best_wf
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp
    functionUses: 0
    functionsReached:
    - Botan::cout_total
    linkageType: ''
    returnType: double
    signature: double best_wf(size_t n, size_t k, size_t w, size_t p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ceil_log2
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:91,1
    - Dst: Botan::cout_total
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:93,1
    - Dst: Botan::best_wf
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:95,1
    - Dst: min
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:100,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - n
    - t
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 90
    functionDepth: 4
    functionLinenumber: 90
    functionLinenumberEnd: 104
    functionName: Botan::mceliece_work_factor
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp
    functionUses: 0
    functionsReached:
    - Botan::cout_total
    - static_cast<size_t>
    - min
    - Botan::ceil_log2
    - Botan::best_wf
    linkageType: ''
    returnType: size_t
    signature: size_t mceliece_work_factor(size_t n, size_t t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - n
    - k
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 29
    functionName: Botan::binomial
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double binomial(size_t n, size_t k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::log
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:35,1
    - Dst: std::log
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - n
    - k
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 40
    functionName: Botan::log_binomial
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp
    functionUses: 2
    functionsReached:
    - std::log
    linkageType: ''
    returnType: double
    signature: double log_binomial(size_t n, size_t k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::log_binomial
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:43,1
    - Dst: Botan::log_binomial
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:44,1
    - Dst: Botan::log_binomial
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - n
    - k
    - w
    - p
    - l
    argTypes:
    - size_t
    - size_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: Botan::nb_iter
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp
    functionUses: 2
    functionsReached:
    - Botan::log_binomial
    linkageType: ''
    returnType: double
    signature: double nb_iter(size_t n, size_t k, size_t w, size_t p, size_t l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::binomial
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:50,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:51,1
    - Dst: std::log
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:51,1
    - Dst: std::ldexp
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:52,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:52,1
    - Dst: std::log
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - n
    - k
    - p
    - l
    argTypes:
    - size_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 63
    functionName: Botan::cout_iter
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp
    functionUses: 2
    functionsReached:
    - static_cast<size_t>
    - std::log
    - static_cast<int>
    - std::ldexp
    - Botan::binomial
    linkageType: ''
    returnType: double
    signature: double cout_iter(size_t n, size_t k, size_t p, size_t l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::nb_iter
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:66,1
    - Dst: Botan::cout_iter
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - n
    - k
    - w
    - p
    - l
    argTypes:
    - size_t
    - size_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: Botan::cout_total
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp
    functionUses: 3
    functionsReached:
    - Botan::nb_iter
    - Botan::cout_iter
    linkageType: ''
    returnType: double
    signature: double cout_total(size_t n, size_t k, size_t w, size_t p, size_t l)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::cout_total
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:74,1
    - Dst: Botan::cout_total
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - n
    - k
    - w
    - p
    argTypes:
    - size_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 69
    functionDepth: 3
    functionLinenumber: 69
    functionLinenumberEnd: 86
    functionName: Botan::best_wf
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp
    functionUses: 1
    functionsReached:
    - Botan::cout_total
    linkageType: ''
    returnType: double
    signature: double best_wf(size_t n, size_t k, size_t w, size_t p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - n
    - k
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 29
    functionName: Botan::binomial
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: double
    signature: double binomial(size_t n, size_t k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::log
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:35,1
    - Dst: std::log
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - n
    - k
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 40
    functionName: Botan::log_binomial
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp
    functionUses: 3
    functionsReached:
    - std::log
    linkageType: ''
    returnType: double
    signature: double log_binomial(size_t n, size_t k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::log_binomial
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:43,1
    - Dst: Botan::log_binomial
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:44,1
    - Dst: Botan::log_binomial
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - n
    - k
    - w
    - p
    - l
    argTypes:
    - size_t
    - size_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 47
    functionName: Botan::nb_iter
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp
    functionUses: 3
    functionsReached:
    - Botan::log_binomial
    linkageType: ''
    returnType: double
    signature: double nb_iter(size_t n, size_t k, size_t w, size_t p, size_t l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::binomial
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:50,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:51,1
    - Dst: std::log
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:51,1
    - Dst: std::ldexp
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:52,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:52,1
    - Dst: std::log
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - n
    - k
    - p
    - l
    argTypes:
    - size_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 63
    functionName: Botan::cout_iter
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp
    functionUses: 3
    functionsReached:
    - static_cast<size_t>
    - std::log
    - static_cast<int>
    - std::ldexp
    - Botan::binomial
    linkageType: ''
    returnType: double
    signature: double cout_iter(size_t n, size_t k, size_t p, size_t l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::nb_iter
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:66,1
    - Dst: Botan::cout_iter
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - n
    - k
    - w
    - p
    - l
    argTypes:
    - size_t
    - size_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: Botan::cout_total
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp
    functionUses: 4
    functionsReached:
    - Botan::nb_iter
    - Botan::cout_iter
    linkageType: ''
    returnType: double
    signature: double cout_total(size_t n, size_t k, size_t w, size_t p, size_t l)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::cout_total
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:74,1
    - Dst: Botan::cout_total
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - n
    - k
    - w
    - p
    argTypes:
    - size_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 69
    functionDepth: 3
    functionLinenumber: 69
    functionLinenumberEnd: 86
    functionName: Botan::best_wf
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp
    functionUses: 1
    functionsReached:
    - Botan::cout_total
    linkageType: ''
    returnType: double
    signature: double best_wf(size_t n, size_t k, size_t w, size_t p)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ceil_log2
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:91,1
    - Dst: Botan::cout_total
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:93,1
    - Dst: Botan::best_wf
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:95,1
    - Dst: min
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:100,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp:103,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - n
    - t
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 90
    functionDepth: 4
    functionLinenumber: 90
    functionLinenumberEnd: 104
    functionName: Botan::mceliece_work_factor
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mce_workfactor.cpp
    functionUses: 0
    functionsReached:
    - Botan::cout_total
    - static_cast<size_t>
    - min
    - Botan::ceil_log2
    - Botan::best_wf
    linkageType: ''
    returnType: size_t
    signature: size_t mceliece_work_factor(size_t n, size_t t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' pub_matrix'
    - t
    - the_code_length
    argTypes:
    - std::vector<uint8_t>
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: Botan::McEliece_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void McEliece_PublicKey(const std::vector<uint8_t>& pub_matrix, size_t
      t, size_t the_code_length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - McEliece_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: Botan::McEliece_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void McEliece_PublicKey(const McEliece_PublicKey& other)
  - 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: ~McEliece_PublicKey() override
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~McEliece_PublicKey() 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::algo_name
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece.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: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: Botan::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool check_key(RandomNumberGenerator& /*rng*/, bool /*strong*/) 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::get_t
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t get_t() 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::get_code_length
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t get_code_length() 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: Botan::get_public_matrix
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & get_public_matrix() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - McEliece_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: operator!=(const McEliece_PublicKey& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const McEliece_PublicKey& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PublicKeyOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: Botan::supports_operation
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece.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: 3
    argNames:
    - ' pub_matrix'
    - t
    - the_code_length
    argTypes:
    - std::vector<uint8_t>
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: Botan::McEliece_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void McEliece_PublicKey(const std::vector<uint8_t>& pub_matrix, size_t
      t, size_t the_code_length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - McEliece_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 32
    functionName: Botan::McEliece_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void McEliece_PublicKey(const McEliece_PublicKey& other)
  - 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: ~McEliece_PublicKey() override
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~McEliece_PublicKey() 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::algo_name
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece.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: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: Botan::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool check_key(RandomNumberGenerator& /*rng*/, bool /*strong*/) 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::get_t
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t get_t() 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::get_code_length
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t get_code_length() 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: Botan::get_public_matrix
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & get_public_matrix() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - McEliece_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: operator!=(const McEliece_PublicKey& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const McEliece_PublicKey& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PublicKeyOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: Botan::supports_operation
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool supports_operation(PublicKeyOperation op) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 119
    functionName: get_H_coeffs
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void get_H_coeffs() 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: get_Linv
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::vector<gf2m>
    signature: std::vector<gf2m> & get_Linv() 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: get_sqrtmod
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::vector<polyn_gf2m>
    signature: std::vector<polyn_gf2m> & get_sqrtmod() 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: get_dimension
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t get_dimension() 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: get_codimension
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t get_codimension() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - McEliece_PrivateKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: operator!=(const McEliece_PrivateKey& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const McEliece_PrivateKey& other) 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: Botan::McEliece_PrivateKey::McEliece_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void McEliece_PrivateKey::McEliece_PrivateKey(const McEliece_PrivateKey&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan::McEliece_PrivateKey::McEliece_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void McEliece_PrivateKey::McEliece_PrivateKey(McEliece_PrivateKey&&)
      noexcept
  - 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: McEliece_PrivateKey::~McEliece_PrivateKey()
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void McEliece_PrivateKey::~McEliece_PrivateKey()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_degree
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:39,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:39,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:44,1
    - Dst: ceil_log2
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:44,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:44,1
    - Dst: get_degree
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:44,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' goppa_polyn'
    - ' parity_check_matrix_coeffs'
    - ' square_root_matrix'
    - ' inverse_support'
    - ' public_matrix'
    argTypes:
    - polyn_gf2m
    - std::vector<uint32_t>
    - std::vector<polyn_gf2m>
    - std::vector<gf2m>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 45
    functionName: Botan::McEliece_PrivateKey::McEliece_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - ceil_log2
    - size
    - get_degree
    - static_cast<size_t>
    linkageType: ''
    returnType: void
    signature: "void McEliece_PrivateKey::McEliece_PrivateKey(const polyn_gf2m& goppa_polyn,\n
      \                                        const std::vector<uint32_t>& parity_check_matrix_coeffs,\n
      \                                        const std::vector<polyn_gf2m>& square_root_matrix,\n
      \                                        const std::vector<gf2m>& inverse_support,\n
      \                                        const std::vector<uint8_t>& public_matrix)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ceil_log2
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:49,1
    - Dst: generate_mceliece_key
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' rng'
    - code_length
    - t
    argTypes:
    - RandomNumberGenerator
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: Botan::McEliece_PrivateKey::McEliece_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - ceil_log2
    - generate_mceliece_key
    linkageType: ''
    returnType: void
    signature: void McEliece_PrivateKey::McEliece_PrivateKey(RandomNumberGenerator&
      rng, size_t code_length, size_t t)
  - 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: '& McEliece_PrivateKey::get_goppa_polyn() const'
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: polyn_gf2m
    signature: polyn_gf2m & McEliece_PrivateKey::get_goppa_polyn() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ceil_log2
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: Botan::McEliece_PublicKey::get_message_word_bit_length
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - ceil_log2
    linkageType: ''
    returnType: size_t
    signature: size_t McEliece_PublicKey::get_message_word_bit_length() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::McEliece_PublicKey::get_message_word_bit_length
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:63,1
    - Dst: randomize
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:66,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:66,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:66,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 75
    functionName: Botan::McEliece_PublicKey::random_plaintext_element
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - secure_vector::data
    - randomize
    - secure_vector::size
    - Botan::McEliece_PublicKey::get_message_word_bit_length
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> McEliece_PublicKey::random_plaintext_element(RandomNumberGenerator&
      rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:78,1
    - Dst: object_identifier
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: Botan::McEliece_PublicKey::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - AlgorithmIdentifier
    - object_identifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier McEliece_PublicKey::algorithm_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    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::McEliece_PublicKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> McEliece_PublicKey::raw_public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:87,1
    - Dst: get_code_length
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:90,1
    - Dst: get_t
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 96
    functionName: Botan::McEliece_PublicKey::public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - get_t
    - get_code_length
    - DER_Encoder
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> McEliece_PublicKey::public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: Botan::McEliece_PublicKey::key_length
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t McEliece_PublicKey::key_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mceliece_work_factor
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 104
    functionName: Botan::McEliece_PublicKey::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - mceliece_work_factor
    linkageType: ''
    returnType: size_t
    signature: size_t McEliece_PublicKey::estimated_strength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BER_Decoder::start_sequence
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - key_bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 119
    functionName: Botan::McEliece_PublicKey::McEliece_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - BER_Decoder::start_sequence
    linkageType: ''
    returnType: void
    signature: void McEliece_PublicKey::McEliece_PublicKey(std::span<const uint8_t>
      key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_Encoder::start_sequence
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:123,1
    - Dst: get_code_length
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:125,1
    - Dst: get_t
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:126,1
    - Dst: encode
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:129,1
    - Dst: DER_Encoder::start_sequence
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:130,1
    - Dst: DER_Encoder::encode
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:132,1
    - Dst: encode
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:132,1
    - Dst: DER_Encoder::end_cons
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:134,1
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:138,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:138,1
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:139,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:139,1
    - Dst: DER_Encoder::encode
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:141,1
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:144,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:144,1
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:145,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:145,1
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:146,1
    - Dst: get_byte<2>
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:146,1
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:147,1
    - Dst: get_byte<3>
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:147,1
    - Dst: DER_Encoder::encode
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:149,1
    - Dst: DER_Encoder::end_cons
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:150,1
    - Dst: DER_Encoder::get_contents
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 152
    functionName: Botan::McEliece_PrivateKey::private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 8
    functionsReached:
    - DER_Encoder::get_contents
    - get_byte<3>
    - encode
    - get_byte<0>
    - get_byte<2>
    - DER_Encoder::encode
    - DER_Encoder::start_sequence
    - DER_Encoder::end_cons
    - secure_vector::push_back
    - get_t
    - get_code_length
    - get_byte<1>
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> McEliece_PrivateKey::private_key_bits() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::McEliece_PrivateKey::random_plaintext_element
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:155,1
    - Dst: mceliece_encrypt
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:159,1
    - Dst: mceliece_decrypt
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 170
    functionName: Botan::McEliece_PrivateKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 4
    functionsReached:
    - mceliece_encrypt
    - Botan::McEliece_PrivateKey::random_plaintext_element
    - mceliece_decrypt
    linkageType: ''
    returnType: bool
    signature: bool McEliece_PrivateKey::check_key(RandomNumberGenerator& rng, bool
      /*unused*/) const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BER_Decoder::start_sequence
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:177,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:186,1
    - Dst: ceil_log2
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:189,1
    - Dst: std::make_shared<GF2m_Field>
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:195,1
    - Dst: polyn_gf2m
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:196,1
    - Dst: get_degree
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:197,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:197,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:198,1
    - Dst: BER_Decoder::start_sequence
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:200,1
    - Dst: BER_Decoder::decode
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:203,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:204,1
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:206,1
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:207,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:209,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:210,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:212,1
    - Dst: polyn_gf2m
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:212,1
    - Dst: BER_Decoder::end_cons
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:215,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:216,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:217,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:219,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:220,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:224,1
    - Dst: BER_Decoder::decode
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:227,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:228,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:229,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:231,1
    - Dst: bit_size_to_32bit_size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:231,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:232,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:235,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:237,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 42
    argCount: 1
    argNames:
    - key_bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 239
    functionName: Botan::McEliece_PrivateKey::McEliece_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - polyn_gf2m
    - Decoding_Error
    - BER_Decoder::end_cons
    - static_cast<int>
    - get_degree
    - secure_vector::size
    - BER_Decoder::decode
    - push_back
    - ceil_log2
    - secure_vector::push_back
    - bit_size_to_32bit_size
    - std::make_shared<GF2m_Field>
    - BER_Decoder::start_sequence
    linkageType: ''
    returnType: void
    signature: void McEliece_PrivateKey::McEliece_PrivateKey(std::span<const uint8_t>
      key_bits)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const McEliece_PublicKey*>
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:242,1
    - Dst: static_cast<const McEliece_PublicKey*>
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:242,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - McEliece_PrivateKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 264
    functionName: McEliece_PrivateKey::operator==(const McEliece_PrivateKey& other)
      const
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const McEliece_PublicKey*>
    linkageType: ''
    returnType: bool
    signature: bool McEliece_PrivateKey::operator==(const McEliece_PrivateKey& other)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<McEliece_PublicKey>
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:267,1
    - Dst: get_public_matrix
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:267,1
    - Dst: get_t
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:267,1
    - Dst: get_code_length
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.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::McEliece_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - get_t
    - std::make_unique<McEliece_PublicKey>
    - get_code_length
    - get_public_matrix
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> McEliece_PrivateKey::public_key() const
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - McEliece_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 281
    functionName: McEliece_PublicKey::operator==(const McEliece_PublicKey& other)
      const
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool McEliece_PublicKey::operator==(const McEliece_PublicKey& other)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' key'
    - kdf
    argTypes:
    - McEliece_PublicKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 288
    functionName: Botan::MCE_KEM_Encryptor::MCE_KEM_Encryptor
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MCE_KEM_Encryptor(const McEliece_PublicKey& key, std::string_view
      kdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_code_length
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:292,1
    - Dst: get_message_word_bit_length
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 295
    functionName: Botan::MCE_KEM_Encryptor::raw_kem_shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - get_message_word_bit_length
    - get_code_length
    linkageType: ''
    returnType: size_t
    signature: size_t raw_kem_shared_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_code_length
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp: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: Botan::MCE_KEM_Encryptor::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - get_code_length
    linkageType: ''
    returnType: size_t
    signature: size_t encapsulated_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random_plaintext_element
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:302,1
    - Dst: mceliece_encrypt
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:306,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:309,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:309,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:309,1
    - Dst: copy
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:310,1
    - Dst: secure_vector::begin
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:310,1
    - Dst: secure_vector::end
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:310,1
    - Dst: std::span<uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:310,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:312,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:312,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:312,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:312,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:314,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - out_encapsulated_key
    - raw_shared_key
    - ' rng'
    argTypes:
    - std::span<uint8_t>
    - std::span<uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 316
    functionName: Botan::MCE_KEM_Encryptor::raw_kem_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - BufferStuffer::append
    - mceliece_encrypt
    - copy
    - secure_vector::size
    - secure_vector::begin
    - random_plaintext_element
    - secure_vector::end
    - std::span<uint8_t>::begin
    - std::span<uint8_t>::size
    linkageType: ''
    returnType: void
    signature: "void raw_kem_encrypt(std::span<uint8_t> out_encapsulated_key,\n                           std::span<uint8_t>
      raw_shared_key,\n                           RandomNumberGenerator& rng) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' key'
    - kdf
    argTypes:
    - McEliece_PrivateKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 324
    functionName: Botan::MCE_KEM_Decryptor::MCE_KEM_Decryptor
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MCE_KEM_Decryptor(const McEliece_PrivateKey& key, std::string_view
      kdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_code_length
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:328,1
    - Dst: get_message_word_bit_length
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 331
    functionName: Botan::MCE_KEM_Decryptor::raw_kem_shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - get_message_word_bit_length
    - get_code_length
    linkageType: ''
    returnType: size_t
    signature: size_t raw_kem_shared_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_code_length
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:333,1
    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: Botan::MCE_KEM_Decryptor::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - get_code_length
    linkageType: ''
    returnType: size_t
    signature: size_t encapsulated_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mceliece_decrypt
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:338,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:338,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:338,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:341,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:341,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:341,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:341,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:343,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out_shared_key
    - encapsulated_key
    argTypes:
    - std::span<uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 345
    functionName: Botan::MCE_KEM_Decryptor::raw_kem_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::data
    - BufferStuffer::append
    - std::span<const uint8_t>::size
    - secure_vector::size
    - std::span<uint8_t>::size
    - mceliece_decrypt
    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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' key'
    - kdf
    argTypes:
    - McEliece_PublicKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 288
    functionName: Botan::MCE_KEM_Encryptor::MCE_KEM_Encryptor
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MCE_KEM_Encryptor(const McEliece_PublicKey& key, std::string_view
      kdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_code_length
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:292,1
    - Dst: get_message_word_bit_length
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 295
    functionName: Botan::MCE_KEM_Encryptor::raw_kem_shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - get_message_word_bit_length
    - get_code_length
    linkageType: ''
    returnType: size_t
    signature: size_t raw_kem_shared_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_code_length
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp: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: Botan::MCE_KEM_Encryptor::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - get_code_length
    linkageType: ''
    returnType: size_t
    signature: size_t encapsulated_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random_plaintext_element
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:302,1
    - Dst: mceliece_encrypt
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:306,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:309,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:309,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:309,1
    - Dst: copy
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:310,1
    - Dst: secure_vector::begin
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:310,1
    - Dst: secure_vector::end
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:310,1
    - Dst: std::span<uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:310,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:312,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:312,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:312,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:312,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:314,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - out_encapsulated_key
    - raw_shared_key
    - ' rng'
    argTypes:
    - std::span<uint8_t>
    - std::span<uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 316
    functionName: Botan::MCE_KEM_Encryptor::raw_kem_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - BufferStuffer::append
    - mceliece_encrypt
    - copy
    - secure_vector::size
    - secure_vector::begin
    - random_plaintext_element
    - secure_vector::end
    - std::span<uint8_t>::begin
    - std::span<uint8_t>::size
    linkageType: ''
    returnType: void
    signature: "void raw_kem_encrypt(std::span<uint8_t> out_encapsulated_key,\n                           std::span<uint8_t>
      raw_shared_key,\n                           RandomNumberGenerator& rng) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' key'
    - kdf
    argTypes:
    - McEliece_PrivateKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 324
    functionName: Botan::MCE_KEM_Decryptor::MCE_KEM_Decryptor
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MCE_KEM_Decryptor(const McEliece_PrivateKey& key, std::string_view
      kdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_code_length
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:328,1
    - Dst: get_message_word_bit_length
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 331
    functionName: Botan::MCE_KEM_Decryptor::raw_kem_shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - get_message_word_bit_length
    - get_code_length
    linkageType: ''
    returnType: size_t
    signature: size_t raw_kem_shared_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_code_length
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:333,1
    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: Botan::MCE_KEM_Decryptor::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - get_code_length
    linkageType: ''
    returnType: size_t
    signature: size_t encapsulated_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mceliece_decrypt
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:338,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:338,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:338,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:341,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:341,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:341,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:341,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:343,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out_shared_key
    - encapsulated_key
    argTypes:
    - std::span<uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 345
    functionName: Botan::MCE_KEM_Decryptor::raw_kem_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::data
    - BufferStuffer::append
    - std::span<const uint8_t>::size
    - secure_vector::size
    - std::span<uint8_t>::size
    - mceliece_decrypt
    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::make_unique<McEliece_PrivateKey>
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:353,1
    - Dst: get_code_length
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:353,1
    - Dst: get_t
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 354
    functionName: Botan::McEliece_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<McEliece_PrivateKey>
    - get_t
    - get_code_length
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> McEliece_PublicKey::generate_another(RandomNumberGenerator&
      rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:358,1
    - Dst: std::make_unique<MCE_KEM_Encryptor>
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:359,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:361,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:361,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 362
    functionName: Botan::McEliece_PublicKey::create_kem_encryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<MCE_KEM_Encryptor>
    - Provider_Not_Found
    - algo_name
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::KEM_Encryption>
    signature: "std::unique_ptr<PK_Ops::KEM_Encryption> McEliece_PublicKey::create_kem_encryption_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/mce/mceliece_key.cpp:367,1
    - Dst: std::make_unique<MCE_KEM_Decryptor>
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:368,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:370,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:370,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 371
    functionName: Botan::McEliece_PrivateKey::create_kem_decryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<MCE_KEM_Decryptor>
    - Provider_Not_Found
    - algo_name
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::KEM_Decryption>
    signature: "std::unique_ptr<PK_Ops::KEM_Decryption> McEliece_PrivateKey::create_kem_decryption_op(RandomNumberGenerator&
      /*rng*/,\n                                                                                      std::string_view
      params,\n                                                                                      std::string_view
      provider) 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: Botan::McEliece_PrivateKey::McEliece_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void McEliece_PrivateKey::McEliece_PrivateKey(const McEliece_PrivateKey&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: Botan::McEliece_PrivateKey::McEliece_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void McEliece_PrivateKey::McEliece_PrivateKey(McEliece_PrivateKey&&)
      noexcept
  - 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: McEliece_PrivateKey::~McEliece_PrivateKey()
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void McEliece_PrivateKey::~McEliece_PrivateKey()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_degree
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:39,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:39,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:44,1
    - Dst: ceil_log2
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:44,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:44,1
    - Dst: get_degree
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:44,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' goppa_polyn'
    - ' parity_check_matrix_coeffs'
    - ' square_root_matrix'
    - ' inverse_support'
    - ' public_matrix'
    argTypes:
    - polyn_gf2m
    - std::vector<uint32_t>
    - std::vector<polyn_gf2m>
    - std::vector<gf2m>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 45
    functionName: Botan::McEliece_PrivateKey::McEliece_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - ceil_log2
    - size
    - get_degree
    - static_cast<size_t>
    linkageType: ''
    returnType: void
    signature: "void McEliece_PrivateKey::McEliece_PrivateKey(const polyn_gf2m& goppa_polyn,\n
      \                                        const std::vector<uint32_t>& parity_check_matrix_coeffs,\n
      \                                        const std::vector<polyn_gf2m>& square_root_matrix,\n
      \                                        const std::vector<gf2m>& inverse_support,\n
      \                                        const std::vector<uint8_t>& public_matrix)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ceil_log2
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:49,1
    - Dst: generate_mceliece_key
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' rng'
    - code_length
    - t
    argTypes:
    - RandomNumberGenerator
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: Botan::McEliece_PrivateKey::McEliece_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - ceil_log2
    - generate_mceliece_key
    linkageType: ''
    returnType: void
    signature: void McEliece_PrivateKey::McEliece_PrivateKey(RandomNumberGenerator&
      rng, size_t code_length, size_t t)
  - 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: '& McEliece_PrivateKey::get_goppa_polyn() const'
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: polyn_gf2m
    signature: polyn_gf2m & McEliece_PrivateKey::get_goppa_polyn() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ceil_log2
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 60
    functionName: Botan::McEliece_PublicKey::get_message_word_bit_length
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 1
    functionsReached:
    - ceil_log2
    linkageType: ''
    returnType: size_t
    signature: size_t McEliece_PublicKey::get_message_word_bit_length() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::McEliece_PublicKey::get_message_word_bit_length
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:63,1
    - Dst: randomize
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:66,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:66,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:66,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 75
    functionName: Botan::McEliece_PublicKey::random_plaintext_element
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - secure_vector::data
    - randomize
    - secure_vector::size
    - Botan::McEliece_PublicKey::get_message_word_bit_length
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> McEliece_PublicKey::random_plaintext_element(RandomNumberGenerator&
      rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:78,1
    - Dst: object_identifier
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: Botan::McEliece_PublicKey::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - AlgorithmIdentifier
    - object_identifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier McEliece_PublicKey::algorithm_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    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::McEliece_PublicKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> McEliece_PublicKey::raw_public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:87,1
    - Dst: get_code_length
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:90,1
    - Dst: get_t
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 96
    functionName: Botan::McEliece_PublicKey::public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - get_t
    - get_code_length
    - DER_Encoder
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> McEliece_PublicKey::public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: Botan::McEliece_PublicKey::key_length
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t McEliece_PublicKey::key_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mceliece_work_factor
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 104
    functionName: Botan::McEliece_PublicKey::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - mceliece_work_factor
    linkageType: ''
    returnType: size_t
    signature: size_t McEliece_PublicKey::estimated_strength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BER_Decoder::start_sequence
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - key_bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 119
    functionName: Botan::McEliece_PublicKey::McEliece_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - BER_Decoder::start_sequence
    linkageType: ''
    returnType: void
    signature: void McEliece_PublicKey::McEliece_PublicKey(std::span<const uint8_t>
      key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_Encoder::start_sequence
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:123,1
    - Dst: get_code_length
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:125,1
    - Dst: get_t
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:126,1
    - Dst: encode
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:129,1
    - Dst: DER_Encoder::start_sequence
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:130,1
    - Dst: DER_Encoder::encode
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:132,1
    - Dst: encode
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:132,1
    - Dst: DER_Encoder::end_cons
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:134,1
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:138,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:138,1
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:139,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:139,1
    - Dst: DER_Encoder::encode
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:141,1
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:144,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:144,1
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:145,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:145,1
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:146,1
    - Dst: get_byte<2>
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:146,1
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:147,1
    - Dst: get_byte<3>
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:147,1
    - Dst: DER_Encoder::encode
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:149,1
    - Dst: DER_Encoder::end_cons
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:150,1
    - Dst: DER_Encoder::get_contents
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:151,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 152
    functionName: Botan::McEliece_PrivateKey::private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 8
    functionsReached:
    - DER_Encoder::get_contents
    - get_byte<3>
    - encode
    - get_byte<0>
    - get_byte<2>
    - DER_Encoder::encode
    - DER_Encoder::start_sequence
    - DER_Encoder::end_cons
    - secure_vector::push_back
    - get_t
    - get_code_length
    - get_byte<1>
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> McEliece_PrivateKey::private_key_bits() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::McEliece_PrivateKey::random_plaintext_element
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:155,1
    - Dst: mceliece_encrypt
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:159,1
    - Dst: mceliece_decrypt
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 170
    functionName: Botan::McEliece_PrivateKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 4
    functionsReached:
    - mceliece_encrypt
    - Botan::McEliece_PrivateKey::random_plaintext_element
    - mceliece_decrypt
    linkageType: ''
    returnType: bool
    signature: bool McEliece_PrivateKey::check_key(RandomNumberGenerator& rng, bool
      /*unused*/) const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: BER_Decoder::start_sequence
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:177,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:186,1
    - Dst: ceil_log2
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:189,1
    - Dst: std::make_shared<GF2m_Field>
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:195,1
    - Dst: polyn_gf2m
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:196,1
    - Dst: get_degree
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:197,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:197,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:198,1
    - Dst: BER_Decoder::start_sequence
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:200,1
    - Dst: BER_Decoder::decode
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:203,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:204,1
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:206,1
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:207,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:209,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:210,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:212,1
    - Dst: polyn_gf2m
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:212,1
    - Dst: BER_Decoder::end_cons
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:215,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:216,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:217,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:219,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:220,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:224,1
    - Dst: BER_Decoder::decode
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:227,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:228,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:229,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:231,1
    - Dst: bit_size_to_32bit_size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:231,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:232,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:235,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:237,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 42
    argCount: 1
    argNames:
    - key_bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 239
    functionName: Botan::McEliece_PrivateKey::McEliece_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - polyn_gf2m
    - Decoding_Error
    - BER_Decoder::end_cons
    - static_cast<int>
    - get_degree
    - secure_vector::size
    - BER_Decoder::decode
    - push_back
    - ceil_log2
    - secure_vector::push_back
    - bit_size_to_32bit_size
    - std::make_shared<GF2m_Field>
    - BER_Decoder::start_sequence
    linkageType: ''
    returnType: void
    signature: void McEliece_PrivateKey::McEliece_PrivateKey(std::span<const uint8_t>
      key_bits)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const McEliece_PublicKey*>
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:242,1
    - Dst: static_cast<const McEliece_PublicKey*>
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:242,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - McEliece_PrivateKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 264
    functionName: McEliece_PrivateKey::operator==(const McEliece_PrivateKey& other)
      const
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const McEliece_PublicKey*>
    linkageType: ''
    returnType: bool
    signature: bool McEliece_PrivateKey::operator==(const McEliece_PrivateKey& other)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<McEliece_PublicKey>
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:267,1
    - Dst: get_public_matrix
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:267,1
    - Dst: get_t
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:267,1
    - Dst: get_code_length
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.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::McEliece_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - get_t
    - std::make_unique<McEliece_PublicKey>
    - get_code_length
    - get_public_matrix
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> McEliece_PrivateKey::public_key() const
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - McEliece_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 281
    functionName: McEliece_PublicKey::operator==(const McEliece_PublicKey& other)
      const
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool McEliece_PublicKey::operator==(const McEliece_PublicKey& other)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' key'
    - kdf
    argTypes:
    - McEliece_PublicKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 288
    functionName: Botan::MCE_KEM_Encryptor::MCE_KEM_Encryptor
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MCE_KEM_Encryptor(const McEliece_PublicKey& key, std::string_view
      kdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_code_length
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:292,1
    - Dst: get_message_word_bit_length
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 295
    functionName: Botan::MCE_KEM_Encryptor::raw_kem_shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - get_message_word_bit_length
    - get_code_length
    linkageType: ''
    returnType: size_t
    signature: size_t raw_kem_shared_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_code_length
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp: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: Botan::MCE_KEM_Encryptor::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - get_code_length
    linkageType: ''
    returnType: size_t
    signature: size_t encapsulated_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random_plaintext_element
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:302,1
    - Dst: mceliece_encrypt
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:306,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:309,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:309,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:309,1
    - Dst: copy
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:310,1
    - Dst: secure_vector::begin
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:310,1
    - Dst: secure_vector::end
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:310,1
    - Dst: std::span<uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:310,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:312,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:312,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:312,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:312,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:314,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - out_encapsulated_key
    - raw_shared_key
    - ' rng'
    argTypes:
    - std::span<uint8_t>
    - std::span<uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 316
    functionName: Botan::MCE_KEM_Encryptor::raw_kem_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - BufferStuffer::append
    - mceliece_encrypt
    - copy
    - secure_vector::size
    - secure_vector::begin
    - random_plaintext_element
    - secure_vector::end
    - std::span<uint8_t>::begin
    - std::span<uint8_t>::size
    linkageType: ''
    returnType: void
    signature: "void raw_kem_encrypt(std::span<uint8_t> out_encapsulated_key,\n                           std::span<uint8_t>
      raw_shared_key,\n                           RandomNumberGenerator& rng) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' key'
    - kdf
    argTypes:
    - McEliece_PrivateKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 324
    functionName: Botan::MCE_KEM_Decryptor::MCE_KEM_Decryptor
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MCE_KEM_Decryptor(const McEliece_PrivateKey& key, std::string_view
      kdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_code_length
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:328,1
    - Dst: get_message_word_bit_length
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 331
    functionName: Botan::MCE_KEM_Decryptor::raw_kem_shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - get_message_word_bit_length
    - get_code_length
    linkageType: ''
    returnType: size_t
    signature: size_t raw_kem_shared_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_code_length
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:333,1
    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: Botan::MCE_KEM_Decryptor::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - get_code_length
    linkageType: ''
    returnType: size_t
    signature: size_t encapsulated_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mceliece_decrypt
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:338,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:338,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:338,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:341,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:341,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:341,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:341,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:343,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out_shared_key
    - encapsulated_key
    argTypes:
    - std::span<uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 345
    functionName: Botan::MCE_KEM_Decryptor::raw_kem_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::data
    - BufferStuffer::append
    - std::span<const uint8_t>::size
    - secure_vector::size
    - std::span<uint8_t>::size
    - mceliece_decrypt
    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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' key'
    - kdf
    argTypes:
    - McEliece_PublicKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 287
    functionDepth: 0
    functionLinenumber: 287
    functionLinenumberEnd: 288
    functionName: Botan::MCE_KEM_Encryptor::MCE_KEM_Encryptor
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MCE_KEM_Encryptor(const McEliece_PublicKey& key, std::string_view
      kdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_code_length
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:292,1
    - Dst: get_message_word_bit_length
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 295
    functionName: Botan::MCE_KEM_Encryptor::raw_kem_shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - get_message_word_bit_length
    - get_code_length
    linkageType: ''
    returnType: size_t
    signature: size_t raw_kem_shared_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_code_length
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp: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: Botan::MCE_KEM_Encryptor::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - get_code_length
    linkageType: ''
    returnType: size_t
    signature: size_t encapsulated_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random_plaintext_element
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:302,1
    - Dst: mceliece_encrypt
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:306,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:309,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:309,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:309,1
    - Dst: copy
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:310,1
    - Dst: secure_vector::begin
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:310,1
    - Dst: secure_vector::end
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:310,1
    - Dst: std::span<uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:310,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:312,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:312,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:312,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:312,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:314,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - out_encapsulated_key
    - raw_shared_key
    - ' rng'
    argTypes:
    - std::span<uint8_t>
    - std::span<uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 316
    functionName: Botan::MCE_KEM_Encryptor::raw_kem_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - BufferStuffer::append
    - mceliece_encrypt
    - copy
    - secure_vector::size
    - secure_vector::begin
    - random_plaintext_element
    - secure_vector::end
    - std::span<uint8_t>::begin
    - std::span<uint8_t>::size
    linkageType: ''
    returnType: void
    signature: "void raw_kem_encrypt(std::span<uint8_t> out_encapsulated_key,\n                           std::span<uint8_t>
      raw_shared_key,\n                           RandomNumberGenerator& rng) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' key'
    - kdf
    argTypes:
    - McEliece_PrivateKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 324
    functionName: Botan::MCE_KEM_Decryptor::MCE_KEM_Decryptor
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MCE_KEM_Decryptor(const McEliece_PrivateKey& key, std::string_view
      kdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_code_length
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:328,1
    - Dst: get_message_word_bit_length
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 331
    functionName: Botan::MCE_KEM_Decryptor::raw_kem_shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - get_message_word_bit_length
    - get_code_length
    linkageType: ''
    returnType: size_t
    signature: size_t raw_kem_shared_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_code_length
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:333,1
    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: Botan::MCE_KEM_Decryptor::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - get_code_length
    linkageType: ''
    returnType: size_t
    signature: size_t encapsulated_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mceliece_decrypt
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:338,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:338,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:338,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:341,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:341,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:341,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:341,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:343,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out_shared_key
    - encapsulated_key
    argTypes:
    - std::span<uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 345
    functionName: Botan::MCE_KEM_Decryptor::raw_kem_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::data
    - BufferStuffer::append
    - std::span<const uint8_t>::size
    - secure_vector::size
    - std::span<uint8_t>::size
    - mceliece_decrypt
    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::make_unique<McEliece_PrivateKey>
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:353,1
    - Dst: get_code_length
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:353,1
    - Dst: get_t
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:353,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 354
    functionName: Botan::McEliece_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<McEliece_PrivateKey>
    - get_t
    - get_code_length
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> McEliece_PublicKey::generate_another(RandomNumberGenerator&
      rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:358,1
    - Dst: std::make_unique<MCE_KEM_Encryptor>
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:359,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:361,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:361,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 356
    functionDepth: 0
    functionLinenumber: 356
    functionLinenumberEnd: 362
    functionName: Botan::McEliece_PublicKey::create_kem_encryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<MCE_KEM_Encryptor>
    - Provider_Not_Found
    - algo_name
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::KEM_Encryption>
    signature: "std::unique_ptr<PK_Ops::KEM_Encryption> McEliece_PublicKey::create_kem_encryption_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/mce/mceliece_key.cpp:367,1
    - Dst: std::make_unique<MCE_KEM_Decryptor>
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:368,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:370,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp:370,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 371
    functionName: Botan::McEliece_PrivateKey::create_kem_decryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/mce/mceliece_key.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<MCE_KEM_Decryptor>
    - Provider_Not_Found
    - algo_name
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::KEM_Decryption>
    signature: "std::unique_ptr<PK_Ops::KEM_Decryption> McEliece_PrivateKey::create_kem_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: 1
    argNames:
    - a
    argTypes:
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: Botan::generate_gf2m_mask
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gf2m
    signature: gf2m generate_gf2m_mask(gf2m a)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 56
    functionName: Botan::nlz_16bit
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned nlz_16bit(uint16_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: Botan::generate_gf2m_mask
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gf2m
    signature: gf2m generate_gf2m_mask(gf2m a)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 56
    functionName: Botan::nlz_16bit
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned nlz_16bit(uint16_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:61,1
    - Dst: Botan::polyn_gf2m::m_coeff::size
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:61,1
    - Dst: expand_mask_16bit
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:66,1
    - Dst: const_cast<polyn_gf2m*>
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 74
    functionName: Botan::polyn_gf2m::calc_degree_secure
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 0
    functionsReached:
    - expand_mask_16bit
    - static_cast<int>
    - Botan::polyn_gf2m::m_coeff::size
    - const_cast<polyn_gf2m*>
    linkageType: ''
    returnType: int
    signature: int polyn_gf2m::calc_degree_secure() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::randomize
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:78,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 80
    functionName: Botan::random_gf2m
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 4
    functionsReached:
    - Botan::randomize
    - Botan::make_uint16
    linkageType: ''
    returnType: gf2m
    signature: gf2m random_gf2m(RandomNumberGenerator& rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:84,1
    - Dst: Botan::nlz_16bit
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:86,1
    - Dst: Botan::random_gf2m
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:89,1
    - Dst: Botan::random_gf2m
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - code_length
    - ' rng'
    argTypes:
    - uint16_t
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 97
    functionName: Botan::random_code_element
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 4
    functionsReached:
    - Botan::random_gf2m
    - Botan::Invalid_Argument
    - Botan::nlz_16bit
    linkageType: ''
    returnType: gf2m
    signature: gf2m random_code_element(uint16_t code_length, RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - polyn_gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: Botan::polyn_gf2m::polyn_gf2m
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void polyn_gf2m::polyn_gf2m(const polyn_gf2m& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - d
    - ' sp_field'
    argTypes:
    - int
    - std::shared_ptr<GF2m_Field>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: Botan::polyn_gf2m::polyn_gf2m
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void polyn_gf2m::polyn_gf2m(int d, const std::shared_ptr<GF2m_Field>&
      sp_field)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: secure_vector<gf2m>
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - new_size
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: Botan::polyn_gf2m::realloc
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 0
    functionsReached:
    - secure_vector<gf2m>
    linkageType: ''
    returnType: void
    signature: void polyn_gf2m::realloc(uint32_t new_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:114,1
    - Dst: secure_vector<gf2m>
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:118,1
    - Dst: decode_gf2m
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:121,1
    - Dst: get_extension_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:125,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:126,1
    - Dst: Botan::polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:129,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - mem
    - mem_len
    - ' sp_field'
    argTypes:
    - uint8_t*
    - uint32_t
    - std::shared_ptr<GF2m_Field>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 130
    functionName: Botan::polyn_gf2m::polyn_gf2m
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 0
    functionsReached:
    - decode_gf2m
    - Decoding_Error
    - secure_vector<gf2m>
    - Botan::polyn_gf2m::get_degree
    - get_extension_degree
    linkageType: ''
    returnType: void
    signature: void polyn_gf2m::polyn_gf2m(const uint8_t* mem, uint32_t mem_len, const
      std::shared_ptr<GF2m_Field>& sp_field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' sp_field'
    argTypes:
    - std::shared_ptr<GF2m_Field>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: Botan::polyn_gf2m::polyn_gf2m
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void polyn_gf2m::polyn_gf2m(const std::shared_ptr<GF2m_Field>& sp_field)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_extension_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:140,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:141,1
    - Dst: secure_vector<gf2m>
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:143,1
    - Dst: static_cast<gf2m>
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:144,1
    - Dst: Botan::polyn_gf2m::m_sp_field::get_extension_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:144,1
    - Dst: Botan::polyn_gf2m::set_coef
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:157,1
    - Dst: Botan::polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:160,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - degree
    - mem
    - mem_byte_len
    - ' sp_field'
    argTypes:
    - int
    - uint8_t*
    - size_t
    - std::shared_ptr<GF2m_Field>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 161
    functionName: Botan::polyn_gf2m::polyn_gf2m
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - static_cast<gf2m>
    - Botan::polyn_gf2m::m_sp_field::get_extension_degree
    - secure_vector<gf2m>
    - Botan::polyn_gf2m::set_coef
    - Botan::polyn_gf2m::get_degree
    - get_extension_degree
    linkageType: ''
    returnType: void
    signature: "void polyn_gf2m::polyn_gf2m(int degree,\n                       const
      uint8_t* mem,\n                       size_t mem_byte_len,\n                       const
      std::shared_ptr<GF2m_Field>& sp_field)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_mem
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:164,1
    - Dst: Botan::polyn_gf2m::m_coeff::data
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:164,1
    - Dst: Botan::polyn_gf2m::m_coeff::size
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: Botan::polyn_gf2m::set_to_zero
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 0
    functionsReached:
    - Botan::polyn_gf2m::m_coeff::size
    - Botan::polyn_gf2m::m_coeff::data
    - clear_mem
    linkageType: ''
    returnType: void
    signature: void polyn_gf2m::set_to_zero()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:169,1
    - Dst: Botan::polyn_gf2m::m_coeff::size
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:169,1
    - Dst: const_cast<polyn_gf2m*>
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 175
    functionName: Botan::polyn_gf2m::get_degree
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - Botan::polyn_gf2m::m_coeff::size
    - const_cast<polyn_gf2m*>
    linkageType: ''
    returnType: int
    signature: int polyn_gf2m::get_degree() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - coeff
    - a
    - d
    - ' sp_field'
    argTypes:
    - gf2m*
    - gf2m
    - int
    - std::shared_ptr<GF2m_Field>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 189
    functionName: Botan::eval_aux
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 0
    functionsReached:
    - Botan::gf_mul
    linkageType: ''
    returnType: gf2m
    signature: gf2m eval_aux(const gf2m* /*restrict*/ coeff, gf2m a, int d, const
      std::shared_ptr<GF2m_Field>& sp_field)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - coeff
    - a
    - d
    - ' sp_field'
    argTypes:
    - gf2m*
    - gf2m
    - int
    - std::shared_ptr<GF2m_Field>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 189
    functionName: Botan::eval_aux
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 0
    functionsReached:
    - Botan::gf_mul
    linkageType: ''
    returnType: gf2m
    signature: gf2m eval_aux(const gf2m* /*restrict*/ coeff, gf2m a, int d, const
      std::shared_ptr<GF2m_Field>& sp_field)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eval_aux
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:194,1
    - Dst: Botan::polyn_gf2m::m_coeff::data
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 195
    functionName: Botan::polyn_gf2m::eval
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 0
    functionsReached:
    - Botan::polyn_gf2m::m_coeff::data
    - eval_aux
    linkageType: ''
    returnType: gf2m
    signature: gf2m polyn_gf2m::eval(gf2m a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:202,1
    - Dst: Botan::polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:202,1
    - Dst: std::shared_ptr::gf_inv_rn
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:204,1
    - Dst: Botan::polyn_gf2m::get_lead_coef
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:204,1
    - Dst: Botan::polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:206,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:208,1
    - Dst: std::shared_ptr::gf_mul_rrn
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:212,1
    - Dst: Botan::polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:213,1
    - Dst: std::shared_ptr::gf_mul_zrz
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:214,1
    - Dst: Botan::polyn_gf2m::set_coef
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:216,1
    - Dst: Botan::polyn_gf2m::set_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:219,1
    - Dst: Botan::polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:219,1
    - Dst: Botan::polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:220,1
    - Dst: Botan::polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:220,1
    - Dst: Botan::polyn_gf2m::set_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:221,1
    - Dst: Botan::polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:221,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - ' p'
    - ' g'
    argTypes:
    - polyn_gf2m
    - polyn_gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 224
    functionName: Botan::polyn_gf2m::remainder
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 0
    functionsReached:
    - Botan::polyn_gf2m::set_degree
    - Botan::polyn_gf2m::get_lead_coef
    - std::shared_ptr::gf_inv_rn
    - std::shared_ptr::gf_mul_zrz
    - Botan::polyn_gf2m::set_coef
    - std::shared_ptr::gf_mul_rrn
    - Botan::polyn_gf2m::get_degree
    - BOTAN_ASSERT
    linkageType: ''
    returnType: void
    signature: void polyn_gf2m::remainder(polyn_gf2m& p, const polyn_gf2m& g)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:228,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:230,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:233,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:238,1
    - Dst: Botan::polyn_gf2m::polyn_gf2m
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:238,1
    - Dst: Botan::polyn_gf2m::get_sp_field
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:238,1
    - Dst: Botan::polyn_gf2m::set_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:241,1
    - Dst: Botan::polyn_gf2m::set_coef
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:242,1
    - Dst: clear_mem
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:246,1
    - Dst: m_coeff::data
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:246,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:247,1
    - Dst: m_coeff::data
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:247,1
    - Dst: m_coeff::data
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:247,1
    - Dst: Botan::polyn_gf2m::set_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:248,1
    - Dst: Botan::polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:248,1
    - Dst: Botan::polyn_gf2m::remainder
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:249,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - ' g'
    argTypes:
    - polyn_gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 252
    functionName: Botan::polyn_gf2m::sqmod_init
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 0
    functionsReached:
    - Botan::polyn_gf2m::get_sp_field
    - std::vector::push_back
    - static_cast<uint32_t>
    - Botan::polyn_gf2m::set_degree
    - clear_mem
    - copy_mem
    - Botan::polyn_gf2m::polyn_gf2m
    - Botan::polyn_gf2m::set_coef
    - Invalid_Argument
    - Botan::polyn_gf2m::get_degree
    - m_coeff::data
    - Botan::polyn_gf2m::remainder
    linkageType: ''
    returnType: std::vector<polyn_gf2m>
    signature: std::vector<polyn_gf2m> polyn_gf2m::sqmod_init(const polyn_gf2m& g)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::polyn_gf2m::set_coef
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:264,1
    - Dst: std::shared_ptr::gf_square
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:264,1
    - Dst: std::shared_ptr::gf_log
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:271,1
    - Dst: std::shared_ptr::gf_mul_rrr
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:272,1
    - Dst: std::shared_ptr::gf_mul_zrz
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:274,1
    - Dst: polyn_gf2m::set_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:280,1
    - Dst: polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:281,1
    - Dst: polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:281,1
    - Dst: polyn_gf2m::set_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:282,1
    - Dst: polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:282,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - ' sq'
    - d
    argTypes:
    - std::vector<polyn_gf2m>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 285
    functionName: Botan::polyn_gf2m::sqmod
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::gf_mul_zrz
    - std::shared_ptr::gf_square
    - polyn_gf2m::set_degree
    - std::shared_ptr::gf_log
    - Botan::polyn_gf2m::set_coef
    - polyn_gf2m::get_degree
    - std::shared_ptr::gf_mul_rrr
    linkageType: ''
    returnType: polyn_gf2m
    signature: polyn_gf2m polyn_gf2m::sqmod(const std::vector<polyn_gf2m>& sq, int
      d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:289,1
    - Dst: Botan::polyn_gf2m::remainder
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:292,1
    - Dst: Botan::polyn_gf2m::gcd_aux
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' p1'
    - ' p2'
    argTypes:
    - polyn_gf2m
    - polyn_gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 288
    functionDepth: 2
    functionLinenumber: 288
    functionLinenumberEnd: 295
    functionName: Botan::polyn_gf2m::gcd_aux
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 1
    functionsReached:
    - Botan::polyn_gf2m::remainder
    - Botan::polyn_gf2m::get_degree
    - Botan::polyn_gf2m::gcd_aux
    linkageType: ''
    returnType: polyn_gf2m
    signature: polyn_gf2m polyn_gf2m::gcd_aux(polyn_gf2m& p1, polyn_gf2m& p2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:300,1
    - Dst: polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:300,1
    - Dst: Botan::polyn_gf2m::polyn_gf2m
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:301,1
    - Dst: Botan::polyn_gf2m::gcd_aux
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:301,1
    - Dst: Botan::polyn_gf2m::polyn_gf2m
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:303,1
    - Dst: Botan::polyn_gf2m::gcd_aux
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' p1'
    - ' p2'
    argTypes:
    - polyn_gf2m
    - polyn_gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 297
    functionDepth: 3
    functionLinenumber: 297
    functionLinenumberEnd: 305
    functionName: Botan::polyn_gf2m::gcd
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 0
    functionsReached:
    - Botan::polyn_gf2m::gcd_aux
    - Botan::polyn_gf2m::polyn_gf2m
    - polyn_gf2m::get_degree
    linkageType: ''
    returnType: polyn_gf2m
    signature: polyn_gf2m polyn_gf2m::gcd(const polyn_gf2m& p1, const polyn_gf2m&
      p2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::polyn_gf2m::get_sp_field
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:309,1
    - Dst: m_sp_field::get_extension_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:311,1
    - Dst: Botan::polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:312,1
    - Dst: Botan::polyn_gf2m::sqmod_init
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:313,1
    - Dst: polyn_gf2m::set_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:317,1
    - Dst: Botan::polyn_gf2m::set_coef
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:318,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:319,1
    - Dst: polyn_gf2m::sqmod
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:321,1
    - Dst: polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:324,1
    - Dst: Botan::polyn_gf2m::gcd
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:325,1
    - Dst: polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:327,1
    - Dst: polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:332,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - ' g'
    argTypes:
    - polyn_gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 308
    functionDepth: 4
    functionLinenumber: 308
    functionLinenumberEnd: 341
    functionName: Botan::polyn_gf2m::degppf
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 0
    functionsReached:
    - Botan::polyn_gf2m::get_sp_field
    - polyn_gf2m::sqmod
    - polyn_gf2m::set_degree
    - static_cast<size_t>
    - Botan::polyn_gf2m::set_coef
    - Botan::polyn_gf2m::get_degree
    - Botan::polyn_gf2m::gcd
    - polyn_gf2m::get_degree
    - Botan::polyn_gf2m::sqmod_init
    - m_sp_field::get_extension_degree
    linkageType: ''
    returnType: size_t
    signature: size_t polyn_gf2m::degppf(const polyn_gf2m& g)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::polyn_gf2m::m_coeff::size
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:344,1
    - Dst: Botan::polyn_gf2m::m_coeff::size
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:347,1
    - Dst: expand_mask_16bit
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:350,1
    - Dst: Botan::polyn_gf2m::calc_degree_secure
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:353,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - trgt_deg
    - patch_elem
    argTypes:
    - uint32_t
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 354
    functionName: Botan::polyn_gf2m::patchup_deg_secure
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 0
    functionsReached:
    - Botan::polyn_gf2m::calc_degree_secure
    - expand_mask_16bit
    - Botan::polyn_gf2m::m_coeff::size
    linkageType: ''
    returnType: void
    signature: void polyn_gf2m::patchup_deg_secure(uint32_t trgt_deg, gf2m patch_elem)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Botan::polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:366,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:368,1
    - Dst: polyn_gf2m::set_to_zero
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:377,1
    - Dst: polyn_gf2m::set_to_zero
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:378,1
    - Dst: Botan::polyn_gf2m::set_coef
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:379,1
    - Dst: polyn_gf2m::set_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:380,1
    - Dst: polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:389,1
    - Dst: polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:390,1
    - Dst: std::shared_ptr::gf_div
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:396,1
    - Dst: std::shared_ptr::gf_log
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:398,1
    - Dst: std::shared_ptr::gf_mul_zrz
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:401,1
    - Dst: std::shared_ptr::gf_mul_zrz
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:405,1
    - Dst: polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:419,1
    - Dst: polyn_gf2m::calc_degree_secure
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:420,1
    - Dst: polyn_gf2m::calc_degree_secure
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:421,1
    - Dst: Botan::polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:422,1
    - Dst: polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:424,1
    - Dst: polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:427,1
    - Dst: polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:428,1
    - Dst: generate_gf2m_mask
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:432,1
    - Dst: polyn_gf2m::patchup_deg_secure
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:434,1
    - Dst: polyn_gf2m::calc_degree_secure
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:440,1
    - Dst: polyn_gf2m::calc_degree_secure
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:441,1
    - Dst: polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:457,1
    - Dst: polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:462,1
    - Dst: std::shared_ptr::gf_mul
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:473,1
    - Dst: std::shared_ptr::gf_inv
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:473,1
    - Dst: expand_mask_16bit
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:480,1
    - Dst: polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:483,1
    - Dst: polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:485,1
    - Dst: std::shared_ptr::gf_mul
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:486,1
    - Dst: std::shared_ptr::gf_inv
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:486,1
    - Dst: expand_mask_16bit
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:492,1
    - Dst: polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:495,1
    - Dst: polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:497,1
    - Dst: std::shared_ptr::gf_mul
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:498,1
    - Dst: std::shared_ptr::gf_inv
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:498,1
    - Dst: expand_mask_16bit
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:506,1
    - Dst: polyn_gf2m::patchup_deg_secure
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:510,1
    - Dst: polyn_gf2m::set_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:529,1
    - Dst: polyn_gf2m::set_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:530,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:532,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 72
    argCount: 3
    argNames:
    - ' p'
    - ' g'
    - break_deg
    argTypes:
    - polyn_gf2m
    - polyn_gf2m
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 533
    functionName: Botan::polyn_gf2m::eea_with_coefficients
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 4
    functionsReached:
    - expand_mask_16bit
    - std::shared_ptr::gf_inv
    - polyn_gf2m::set_to_zero
    - polyn_gf2m::set_degree
    - std::shared_ptr::gf_mul_zrz
    - std::make_pair
    - std::shared_ptr::gf_log
    - polyn_gf2m::calc_degree_secure
    - Botan::polyn_gf2m::set_coef
    - generate_gf2m_mask
    - Botan::polyn_gf2m::get_degree
    - std::shared_ptr::gf_div
    - polyn_gf2m::get_degree
    - std::shared_ptr::gf_mul
    - polyn_gf2m::patchup_deg_secure
    - BOTAN_ASSERT
    linkageType: ''
    returnType: std::pair<polyn_gf2m, polyn_gf2m>
    signature: "std::pair<polyn_gf2m, polyn_gf2m> polyn_gf2m::eea_with_coefficients(const
      polyn_gf2m& p,\n                                                                    const
      polyn_gf2m& g,\n                                                                    int
      break_deg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:536,1
    - Dst: Botan::polyn_gf2m::set_coef
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:537,1
    - Dst: Botan::polyn_gf2m::set_coef
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:540,1
    - Dst: random_code_element
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:540,1
    - Dst: get_cardinality
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:540,1
    - Dst: Botan::polyn_gf2m::degppf
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:543,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - t
    - ' rng'
    - ' sp_field'
    argTypes:
    - size_t
    - RandomNumberGenerator
    - std::shared_ptr<GF2m_Field>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 535
    functionDepth: 5
    functionLinenumber: 535
    functionLinenumberEnd: 549
    functionName: Botan::polyn_gf2m::polyn_gf2m
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 2
    functionsReached:
    - static_cast<int>
    - Botan::polyn_gf2m::set_coef
    - random_code_element
    - Botan::polyn_gf2m::degppf
    - get_cardinality
    linkageType: ''
    returnType: void
    signature: void polyn_gf2m::polyn_gf2m(size_t t, RandomNumberGenerator& rng, const
      std::shared_ptr<GF2m_Field>& sp_field)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:552,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:553,1
    - Dst: Botan::polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:557,1
    - Dst: std::shared_ptr::gf_div
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:558,1
    - Dst: Botan::polyn_gf2m::m_sp_field::gf_mul
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:560,1
    - Dst: std::shared_ptr::gf_mul
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:562,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' g'
    argTypes:
    - polyn_gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 563
    functionName: Botan::polyn_gf2m::poly_shiftmod
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 0
    functionsReached:
    - Botan::polyn_gf2m::m_sp_field::gf_mul
    - Invalid_Argument
    - std::shared_ptr::gf_div
    - Botan::polyn_gf2m::get_degree
    - std::shared_ptr::gf_mul
    linkageType: ''
    returnType: void
    signature: void polyn_gf2m::poly_shiftmod(const polyn_gf2m& g)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:571,1
    - Dst: Botan::polyn_gf2m::sqmod_init
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:574,1
    - Dst: Botan::polyn_gf2m::get_sp_field
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:576,1
    - Dst: polyn_gf2m::set_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:577,1
    - Dst: Botan::polyn_gf2m::set_coef
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:579,1
    - Dst: std::shared_ptr::get_extension_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:581,1
    - Dst: polyn_gf2m::sqmod
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:583,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:592,1
    - Dst: Botan::polyn_gf2m::polyn_gf2m
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:592,1
    - Dst: Botan::polyn_gf2m::get_sp_field
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:592,1
    - Dst: Botan::polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:596,1
    - Dst: Botan::polyn_gf2m::poly_shiftmod
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:599,1
    - Dst: Botan::polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:600,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - ' g'
    argTypes:
    - polyn_gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 565
    functionDepth: 3
    functionLinenumber: 565
    functionLinenumberEnd: 604
    functionName: Botan::polyn_gf2m::sqrt_mod_init
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 2
    functionsReached:
    - Botan::polyn_gf2m::get_sp_field
    - std::shared_ptr::get_extension_degree
    - polyn_gf2m::sqmod
    - std::vector::push_back
    - polyn_gf2m::set_degree
    - Botan::polyn_gf2m::polyn_gf2m
    - Botan::polyn_gf2m::set_coef
    - Botan::polyn_gf2m::get_degree
    - Botan::polyn_gf2m::sqmod_init
    - Botan::polyn_gf2m::poly_shiftmod
    linkageType: ''
    returnType: std::vector<polyn_gf2m>
    signature: std::vector<polyn_gf2m> polyn_gf2m::sqrt_mod_init(const polyn_gf2m&
      g)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_sp_field
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:612,1
    - Dst: get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:615,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:621,1
    - Dst: polyn_gf2m
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:621,1
    - Dst: set_coef
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:623,1
    - Dst: set_coef
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:625,1
    - Dst: std::shared_ptr::gf_mul
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:625,1
    - Dst: Botan::lex_to_gray
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:625,1
    - Dst: std::shared_ptr::gf_mul
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:627,1
    - Dst: Botan::lex_to_gray
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:627,1
    - Dst: set_coef
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:629,1
    - Dst: std::shared_ptr::gf_div
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:629,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - ' generator'
    - ' support'
    - n
    argTypes:
    - polyn_gf2m
    - std::vector<gf2m>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 633
    functionName: Botan::syndrome_init
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 2
    functionsReached:
    - polyn_gf2m
    - std::vector::push_back
    - get_sp_field
    - get_degree
    - std::shared_ptr::gf_mul
    - std::shared_ptr::gf_div
    - Botan::lex_to_gray
    - set_coef
    linkageType: ''
    returnType: std::vector<polyn_gf2m>
    signature: std::vector<polyn_gf2m> syndrome_init(const polyn_gf2m& generator,
      const std::vector<gf2m>& support, int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:637,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:638,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:640,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:642,1
    - Dst: Botan::polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:644,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ' encoded'
    - ' sp_field'
    argTypes:
    - secure_vector<uint8_t>
    - std::shared_ptr<GF2m_Field>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 635
    functionDepth: 1
    functionLinenumber: 635
    functionLinenumberEnd: 645
    functionName: Botan::polyn_gf2m::polyn_gf2m
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 3
    functionsReached:
    - Decoding_Error
    - size
    - Botan::polyn_gf2m::get_degree
    - push_back
    linkageType: ''
    returnType: void
    signature: void polyn_gf2m::polyn_gf2m(const secure_vector<uint8_t>& encoded,
      const std::shared_ptr<GF2m_Field>& sp_field)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:651,1
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:652,1
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:659,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:659,1
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:660,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:660,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 663
    functionName: Botan::polyn_gf2m::encode
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 0
    functionsReached:
    - secure_vector::push_back
    - get_byte<0>
    - get_byte<1>
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> polyn_gf2m::encode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::polyn_gf2m::swap
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:666,1
    - Dst: Botan::polyn_gf2m::swap
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:667,1
    - Dst: Botan::polyn_gf2m::swap
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - polyn_gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 665
    functionDepth: 1
    functionLinenumber: 665
    functionLinenumberEnd: 669
    functionName: Botan::polyn_gf2m::swap
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 3
    functionsReached:
    - Botan::polyn_gf2m::swap
    linkageType: ''
    returnType: void
    signature: void polyn_gf2m::swap(polyn_gf2m& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - polyn_gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 671
    functionDepth: 0
    functionLinenumber: 671
    functionLinenumberEnd: 673
    functionName: polyn_gf2m::operator==(const polyn_gf2m& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool polyn_gf2m::operator==(const polyn_gf2m& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: Botan::generate_gf2m_mask
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gf2m
    signature: gf2m generate_gf2m_mask(gf2m a)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 56
    functionName: Botan::nlz_16bit
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned nlz_16bit(uint16_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 30
    functionName: Botan::generate_gf2m_mask
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: gf2m
    signature: gf2m generate_gf2m_mask(gf2m a)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 56
    functionName: Botan::nlz_16bit
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: unsigned
    signature: unsigned nlz_16bit(uint16_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:61,1
    - Dst: Botan::polyn_gf2m::m_coeff::size
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:61,1
    - Dst: expand_mask_16bit
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:66,1
    - Dst: const_cast<polyn_gf2m*>
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 74
    functionName: Botan::polyn_gf2m::calc_degree_secure
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 1
    functionsReached:
    - expand_mask_16bit
    - static_cast<int>
    - Botan::polyn_gf2m::m_coeff::size
    - const_cast<polyn_gf2m*>
    linkageType: ''
    returnType: int
    signature: int polyn_gf2m::calc_degree_secure() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::randomize
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:78,1
    - Dst: Botan::make_uint16
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 80
    functionName: Botan::random_gf2m
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 5
    functionsReached:
    - Botan::randomize
    - Botan::make_uint16
    linkageType: ''
    returnType: gf2m
    signature: gf2m random_gf2m(RandomNumberGenerator& rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:84,1
    - Dst: Botan::nlz_16bit
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:86,1
    - Dst: Botan::random_gf2m
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:89,1
    - Dst: Botan::random_gf2m
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - code_length
    - ' rng'
    argTypes:
    - uint16_t
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 97
    functionName: Botan::random_code_element
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 4
    functionsReached:
    - Botan::random_gf2m
    - Botan::Invalid_Argument
    - Botan::nlz_16bit
    linkageType: ''
    returnType: gf2m
    signature: gf2m random_code_element(uint16_t code_length, RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - polyn_gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 99
    functionName: Botan::polyn_gf2m::polyn_gf2m
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void polyn_gf2m::polyn_gf2m(const polyn_gf2m& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - d
    - ' sp_field'
    argTypes:
    - int
    - std::shared_ptr<GF2m_Field>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: Botan::polyn_gf2m::polyn_gf2m
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void polyn_gf2m::polyn_gf2m(int d, const std::shared_ptr<GF2m_Field>&
      sp_field)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: secure_vector<gf2m>
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - new_size
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: Botan::polyn_gf2m::realloc
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 0
    functionsReached:
    - secure_vector<gf2m>
    linkageType: ''
    returnType: void
    signature: void polyn_gf2m::realloc(uint32_t new_size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:114,1
    - Dst: secure_vector<gf2m>
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:118,1
    - Dst: decode_gf2m
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:121,1
    - Dst: get_extension_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:125,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:126,1
    - Dst: Botan::polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:129,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - mem
    - mem_len
    - ' sp_field'
    argTypes:
    - uint8_t*
    - uint32_t
    - std::shared_ptr<GF2m_Field>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 130
    functionName: Botan::polyn_gf2m::polyn_gf2m
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 3
    functionsReached:
    - decode_gf2m
    - Decoding_Error
    - secure_vector<gf2m>
    - Botan::polyn_gf2m::get_degree
    - get_extension_degree
    linkageType: ''
    returnType: void
    signature: void polyn_gf2m::polyn_gf2m(const uint8_t* mem, uint32_t mem_len, const
      std::shared_ptr<GF2m_Field>& sp_field)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' sp_field'
    argTypes:
    - std::shared_ptr<GF2m_Field>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: Botan::polyn_gf2m::polyn_gf2m
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void polyn_gf2m::polyn_gf2m(const std::shared_ptr<GF2m_Field>& sp_field)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_extension_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:140,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:141,1
    - Dst: secure_vector<gf2m>
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:143,1
    - Dst: static_cast<gf2m>
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:144,1
    - Dst: Botan::polyn_gf2m::m_sp_field::get_extension_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:144,1
    - Dst: Botan::polyn_gf2m::set_coef
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:157,1
    - Dst: Botan::polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:160,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 4
    argNames:
    - degree
    - mem
    - mem_byte_len
    - ' sp_field'
    argTypes:
    - int
    - uint8_t*
    - size_t
    - std::shared_ptr<GF2m_Field>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 161
    functionName: Botan::polyn_gf2m::polyn_gf2m
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 3
    functionsReached:
    - Decoding_Error
    - static_cast<gf2m>
    - Botan::polyn_gf2m::m_sp_field::get_extension_degree
    - secure_vector<gf2m>
    - Botan::polyn_gf2m::set_coef
    - Botan::polyn_gf2m::get_degree
    - get_extension_degree
    linkageType: ''
    returnType: void
    signature: "void polyn_gf2m::polyn_gf2m(int degree,\n                       const
      uint8_t* mem,\n                       size_t mem_byte_len,\n                       const
      std::shared_ptr<GF2m_Field>& sp_field)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_mem
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:164,1
    - Dst: Botan::polyn_gf2m::m_coeff::data
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:164,1
    - Dst: Botan::polyn_gf2m::m_coeff::size
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: Botan::polyn_gf2m::set_to_zero
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 0
    functionsReached:
    - Botan::polyn_gf2m::m_coeff::size
    - Botan::polyn_gf2m::m_coeff::data
    - clear_mem
    linkageType: ''
    returnType: void
    signature: void polyn_gf2m::set_to_zero()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:169,1
    - Dst: Botan::polyn_gf2m::m_coeff::size
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:169,1
    - Dst: const_cast<polyn_gf2m*>
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:173,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 175
    functionName: Botan::polyn_gf2m::get_degree
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 12
    functionsReached:
    - static_cast<int>
    - Botan::polyn_gf2m::m_coeff::size
    - const_cast<polyn_gf2m*>
    linkageType: ''
    returnType: int
    signature: int polyn_gf2m::get_degree() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - coeff
    - a
    - d
    - ' sp_field'
    argTypes:
    - gf2m*
    - gf2m
    - int
    - std::shared_ptr<GF2m_Field>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 189
    functionName: Botan::eval_aux
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 0
    functionsReached:
    - Botan::gf_mul
    linkageType: ''
    returnType: gf2m
    signature: gf2m eval_aux(const gf2m* /*restrict*/ coeff, gf2m a, int d, const
      std::shared_ptr<GF2m_Field>& sp_field)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::gf_mul
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:183,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - coeff
    - a
    - d
    - ' sp_field'
    argTypes:
    - gf2m*
    - gf2m
    - int
    - std::shared_ptr<GF2m_Field>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 189
    functionName: Botan::eval_aux
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 0
    functionsReached:
    - Botan::gf_mul
    linkageType: ''
    returnType: gf2m
    signature: gf2m eval_aux(const gf2m* /*restrict*/ coeff, gf2m a, int d, const
      std::shared_ptr<GF2m_Field>& sp_field)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eval_aux
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:194,1
    - Dst: Botan::polyn_gf2m::m_coeff::data
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 195
    functionName: Botan::polyn_gf2m::eval
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 0
    functionsReached:
    - Botan::polyn_gf2m::m_coeff::data
    - eval_aux
    linkageType: ''
    returnType: gf2m
    signature: gf2m polyn_gf2m::eval(gf2m a)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:202,1
    - Dst: Botan::polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:202,1
    - Dst: std::shared_ptr::gf_inv_rn
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:204,1
    - Dst: Botan::polyn_gf2m::get_lead_coef
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:204,1
    - Dst: Botan::polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:206,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:208,1
    - Dst: std::shared_ptr::gf_mul_rrn
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:212,1
    - Dst: Botan::polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:213,1
    - Dst: std::shared_ptr::gf_mul_zrz
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:214,1
    - Dst: Botan::polyn_gf2m::set_coef
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:216,1
    - Dst: Botan::polyn_gf2m::set_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:219,1
    - Dst: Botan::polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:219,1
    - Dst: Botan::polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:220,1
    - Dst: Botan::polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:220,1
    - Dst: Botan::polyn_gf2m::set_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:221,1
    - Dst: Botan::polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:221,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - ' p'
    - ' g'
    argTypes:
    - polyn_gf2m
    - polyn_gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 224
    functionName: Botan::polyn_gf2m::remainder
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 2
    functionsReached:
    - Botan::polyn_gf2m::set_degree
    - Botan::polyn_gf2m::get_lead_coef
    - std::shared_ptr::gf_inv_rn
    - std::shared_ptr::gf_mul_zrz
    - Botan::polyn_gf2m::set_coef
    - std::shared_ptr::gf_mul_rrn
    - Botan::polyn_gf2m::get_degree
    - BOTAN_ASSERT
    linkageType: ''
    returnType: void
    signature: void polyn_gf2m::remainder(polyn_gf2m& p, const polyn_gf2m& g)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:228,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:230,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:233,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:238,1
    - Dst: Botan::polyn_gf2m::polyn_gf2m
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:238,1
    - Dst: Botan::polyn_gf2m::get_sp_field
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:238,1
    - Dst: Botan::polyn_gf2m::set_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:241,1
    - Dst: Botan::polyn_gf2m::set_coef
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:242,1
    - Dst: clear_mem
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:246,1
    - Dst: m_coeff::data
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:246,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:247,1
    - Dst: m_coeff::data
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:247,1
    - Dst: m_coeff::data
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:247,1
    - Dst: Botan::polyn_gf2m::set_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:248,1
    - Dst: Botan::polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:248,1
    - Dst: Botan::polyn_gf2m::remainder
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:249,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - ' g'
    argTypes:
    - polyn_gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 252
    functionName: Botan::polyn_gf2m::sqmod_init
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 2
    functionsReached:
    - Botan::polyn_gf2m::get_sp_field
    - std::vector::push_back
    - static_cast<uint32_t>
    - Botan::polyn_gf2m::set_degree
    - clear_mem
    - copy_mem
    - Botan::polyn_gf2m::polyn_gf2m
    - Botan::polyn_gf2m::set_coef
    - Invalid_Argument
    - Botan::polyn_gf2m::get_degree
    - m_coeff::data
    - Botan::polyn_gf2m::remainder
    linkageType: ''
    returnType: std::vector<polyn_gf2m>
    signature: std::vector<polyn_gf2m> polyn_gf2m::sqmod_init(const polyn_gf2m& g)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::polyn_gf2m::set_coef
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:264,1
    - Dst: std::shared_ptr::gf_square
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:264,1
    - Dst: std::shared_ptr::gf_log
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:271,1
    - Dst: std::shared_ptr::gf_mul_rrr
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:272,1
    - Dst: std::shared_ptr::gf_mul_zrz
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:274,1
    - Dst: polyn_gf2m::set_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:280,1
    - Dst: polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:281,1
    - Dst: polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:281,1
    - Dst: polyn_gf2m::set_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:282,1
    - Dst: polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:282,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - ' sq'
    - d
    argTypes:
    - std::vector<polyn_gf2m>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 285
    functionName: Botan::polyn_gf2m::sqmod
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 0
    functionsReached:
    - std::shared_ptr::gf_mul_zrz
    - std::shared_ptr::gf_square
    - polyn_gf2m::set_degree
    - std::shared_ptr::gf_log
    - Botan::polyn_gf2m::set_coef
    - polyn_gf2m::get_degree
    - std::shared_ptr::gf_mul_rrr
    linkageType: ''
    returnType: polyn_gf2m
    signature: polyn_gf2m polyn_gf2m::sqmod(const std::vector<polyn_gf2m>& sq, int
      d)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:289,1
    - Dst: Botan::polyn_gf2m::remainder
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:292,1
    - Dst: Botan::polyn_gf2m::gcd_aux
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' p1'
    - ' p2'
    argTypes:
    - polyn_gf2m
    - polyn_gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 288
    functionDepth: 2
    functionLinenumber: 288
    functionLinenumberEnd: 295
    functionName: Botan::polyn_gf2m::gcd_aux
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 3
    functionsReached:
    - Botan::polyn_gf2m::remainder
    - Botan::polyn_gf2m::get_degree
    - Botan::polyn_gf2m::gcd_aux
    linkageType: ''
    returnType: polyn_gf2m
    signature: polyn_gf2m polyn_gf2m::gcd_aux(polyn_gf2m& p1, polyn_gf2m& p2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:300,1
    - Dst: polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:300,1
    - Dst: Botan::polyn_gf2m::polyn_gf2m
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:301,1
    - Dst: Botan::polyn_gf2m::gcd_aux
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:301,1
    - Dst: Botan::polyn_gf2m::polyn_gf2m
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:303,1
    - Dst: Botan::polyn_gf2m::gcd_aux
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' p1'
    - ' p2'
    argTypes:
    - polyn_gf2m
    - polyn_gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 297
    functionDepth: 3
    functionLinenumber: 297
    functionLinenumberEnd: 305
    functionName: Botan::polyn_gf2m::gcd
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 1
    functionsReached:
    - Botan::polyn_gf2m::gcd_aux
    - Botan::polyn_gf2m::polyn_gf2m
    - polyn_gf2m::get_degree
    linkageType: ''
    returnType: polyn_gf2m
    signature: polyn_gf2m polyn_gf2m::gcd(const polyn_gf2m& p1, const polyn_gf2m&
      p2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::polyn_gf2m::get_sp_field
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:309,1
    - Dst: m_sp_field::get_extension_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:311,1
    - Dst: Botan::polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:312,1
    - Dst: Botan::polyn_gf2m::sqmod_init
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:313,1
    - Dst: polyn_gf2m::set_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:317,1
    - Dst: Botan::polyn_gf2m::set_coef
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:318,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:319,1
    - Dst: polyn_gf2m::sqmod
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:321,1
    - Dst: polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:324,1
    - Dst: Botan::polyn_gf2m::gcd
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:325,1
    - Dst: polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:327,1
    - Dst: polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:332,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 1
    argNames:
    - ' g'
    argTypes:
    - polyn_gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 308
    functionDepth: 4
    functionLinenumber: 308
    functionLinenumberEnd: 341
    functionName: Botan::polyn_gf2m::degppf
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 1
    functionsReached:
    - Botan::polyn_gf2m::get_sp_field
    - polyn_gf2m::sqmod
    - polyn_gf2m::set_degree
    - static_cast<size_t>
    - Botan::polyn_gf2m::set_coef
    - Botan::polyn_gf2m::get_degree
    - Botan::polyn_gf2m::gcd
    - polyn_gf2m::get_degree
    - Botan::polyn_gf2m::sqmod_init
    - m_sp_field::get_extension_degree
    linkageType: ''
    returnType: size_t
    signature: size_t polyn_gf2m::degppf(const polyn_gf2m& g)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::polyn_gf2m::m_coeff::size
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:344,1
    - Dst: Botan::polyn_gf2m::m_coeff::size
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:347,1
    - Dst: expand_mask_16bit
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:350,1
    - Dst: Botan::polyn_gf2m::calc_degree_secure
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:353,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - trgt_deg
    - patch_elem
    argTypes:
    - uint32_t
    - gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 354
    functionName: Botan::polyn_gf2m::patchup_deg_secure
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 0
    functionsReached:
    - Botan::polyn_gf2m::calc_degree_secure
    - expand_mask_16bit
    - Botan::polyn_gf2m::m_coeff::size
    linkageType: ''
    returnType: void
    signature: void polyn_gf2m::patchup_deg_secure(uint32_t trgt_deg, gf2m patch_elem)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Botan::polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:366,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:368,1
    - Dst: polyn_gf2m::set_to_zero
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:377,1
    - Dst: polyn_gf2m::set_to_zero
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:378,1
    - Dst: Botan::polyn_gf2m::set_coef
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:379,1
    - Dst: polyn_gf2m::set_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:380,1
    - Dst: polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:389,1
    - Dst: polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:390,1
    - Dst: std::shared_ptr::gf_div
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:396,1
    - Dst: std::shared_ptr::gf_log
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:398,1
    - Dst: std::shared_ptr::gf_mul_zrz
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:401,1
    - Dst: std::shared_ptr::gf_mul_zrz
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:405,1
    - Dst: polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:419,1
    - Dst: polyn_gf2m::calc_degree_secure
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:420,1
    - Dst: polyn_gf2m::calc_degree_secure
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:421,1
    - Dst: Botan::polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:422,1
    - Dst: polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:424,1
    - Dst: polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:427,1
    - Dst: polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:428,1
    - Dst: generate_gf2m_mask
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:432,1
    - Dst: polyn_gf2m::patchup_deg_secure
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:434,1
    - Dst: polyn_gf2m::calc_degree_secure
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:440,1
    - Dst: polyn_gf2m::calc_degree_secure
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:441,1
    - Dst: polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:457,1
    - Dst: polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:462,1
    - Dst: std::shared_ptr::gf_mul
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:473,1
    - Dst: std::shared_ptr::gf_inv
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:473,1
    - Dst: expand_mask_16bit
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:480,1
    - Dst: polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:483,1
    - Dst: polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:485,1
    - Dst: std::shared_ptr::gf_mul
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:486,1
    - Dst: std::shared_ptr::gf_inv
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:486,1
    - Dst: expand_mask_16bit
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:492,1
    - Dst: polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:495,1
    - Dst: polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:497,1
    - Dst: std::shared_ptr::gf_mul
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:498,1
    - Dst: std::shared_ptr::gf_inv
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:498,1
    - Dst: expand_mask_16bit
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:506,1
    - Dst: polyn_gf2m::patchup_deg_secure
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:510,1
    - Dst: polyn_gf2m::set_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:529,1
    - Dst: polyn_gf2m::set_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:530,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:532,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 72
    argCount: 3
    argNames:
    - ' p'
    - ' g'
    - break_deg
    argTypes:
    - polyn_gf2m
    - polyn_gf2m
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 358
    functionDepth: 1
    functionLinenumber: 358
    functionLinenumberEnd: 533
    functionName: Botan::polyn_gf2m::eea_with_coefficients
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 4
    functionsReached:
    - expand_mask_16bit
    - std::shared_ptr::gf_inv
    - polyn_gf2m::set_to_zero
    - polyn_gf2m::set_degree
    - std::shared_ptr::gf_mul_zrz
    - std::make_pair
    - std::shared_ptr::gf_log
    - polyn_gf2m::calc_degree_secure
    - Botan::polyn_gf2m::set_coef
    - generate_gf2m_mask
    - Botan::polyn_gf2m::get_degree
    - std::shared_ptr::gf_div
    - polyn_gf2m::get_degree
    - std::shared_ptr::gf_mul
    - polyn_gf2m::patchup_deg_secure
    - BOTAN_ASSERT
    linkageType: ''
    returnType: std::pair<polyn_gf2m, polyn_gf2m>
    signature: "std::pair<polyn_gf2m, polyn_gf2m> polyn_gf2m::eea_with_coefficients(const
      polyn_gf2m& p,\n                                                                    const
      polyn_gf2m& g,\n                                                                    int
      break_deg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:536,1
    - Dst: Botan::polyn_gf2m::set_coef
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:537,1
    - Dst: Botan::polyn_gf2m::set_coef
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:540,1
    - Dst: random_code_element
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:540,1
    - Dst: get_cardinality
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:540,1
    - Dst: Botan::polyn_gf2m::degppf
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:543,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - t
    - ' rng'
    - ' sp_field'
    argTypes:
    - size_t
    - RandomNumberGenerator
    - std::shared_ptr<GF2m_Field>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 535
    functionDepth: 5
    functionLinenumber: 535
    functionLinenumberEnd: 549
    functionName: Botan::polyn_gf2m::polyn_gf2m
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 5
    functionsReached:
    - static_cast<int>
    - Botan::polyn_gf2m::set_coef
    - random_code_element
    - Botan::polyn_gf2m::degppf
    - get_cardinality
    linkageType: ''
    returnType: void
    signature: void polyn_gf2m::polyn_gf2m(size_t t, RandomNumberGenerator& rng, const
      std::shared_ptr<GF2m_Field>& sp_field)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:552,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:553,1
    - Dst: Botan::polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:557,1
    - Dst: std::shared_ptr::gf_div
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:558,1
    - Dst: Botan::polyn_gf2m::m_sp_field::gf_mul
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:560,1
    - Dst: std::shared_ptr::gf_mul
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:562,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' g'
    argTypes:
    - polyn_gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 563
    functionName: Botan::polyn_gf2m::poly_shiftmod
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 1
    functionsReached:
    - Botan::polyn_gf2m::m_sp_field::gf_mul
    - Invalid_Argument
    - std::shared_ptr::gf_div
    - Botan::polyn_gf2m::get_degree
    - std::shared_ptr::gf_mul
    linkageType: ''
    returnType: void
    signature: void polyn_gf2m::poly_shiftmod(const polyn_gf2m& g)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:571,1
    - Dst: Botan::polyn_gf2m::sqmod_init
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:574,1
    - Dst: Botan::polyn_gf2m::get_sp_field
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:576,1
    - Dst: polyn_gf2m::set_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:577,1
    - Dst: Botan::polyn_gf2m::set_coef
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:579,1
    - Dst: std::shared_ptr::get_extension_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:581,1
    - Dst: polyn_gf2m::sqmod
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:583,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:592,1
    - Dst: Botan::polyn_gf2m::polyn_gf2m
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:592,1
    - Dst: Botan::polyn_gf2m::get_sp_field
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:592,1
    - Dst: Botan::polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:596,1
    - Dst: Botan::polyn_gf2m::poly_shiftmod
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:599,1
    - Dst: Botan::polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:600,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 1
    argNames:
    - ' g'
    argTypes:
    - polyn_gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 565
    functionDepth: 3
    functionLinenumber: 565
    functionLinenumberEnd: 604
    functionName: Botan::polyn_gf2m::sqrt_mod_init
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 2
    functionsReached:
    - Botan::polyn_gf2m::get_sp_field
    - std::shared_ptr::get_extension_degree
    - polyn_gf2m::sqmod
    - std::vector::push_back
    - polyn_gf2m::set_degree
    - Botan::polyn_gf2m::polyn_gf2m
    - Botan::polyn_gf2m::set_coef
    - Botan::polyn_gf2m::get_degree
    - Botan::polyn_gf2m::sqmod_init
    - Botan::polyn_gf2m::poly_shiftmod
    linkageType: ''
    returnType: std::vector<polyn_gf2m>
    signature: std::vector<polyn_gf2m> polyn_gf2m::sqrt_mod_init(const polyn_gf2m&
      g)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_sp_field
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:612,1
    - Dst: get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:615,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:621,1
    - Dst: polyn_gf2m
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:621,1
    - Dst: set_coef
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:623,1
    - Dst: set_coef
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:625,1
    - Dst: std::shared_ptr::gf_mul
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:625,1
    - Dst: Botan::lex_to_gray
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:625,1
    - Dst: std::shared_ptr::gf_mul
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:627,1
    - Dst: Botan::lex_to_gray
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:627,1
    - Dst: set_coef
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:629,1
    - Dst: std::shared_ptr::gf_div
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:629,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - ' generator'
    - ' support'
    - n
    argTypes:
    - polyn_gf2m
    - std::vector<gf2m>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 606
    functionDepth: 1
    functionLinenumber: 606
    functionLinenumberEnd: 633
    functionName: Botan::syndrome_init
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 2
    functionsReached:
    - polyn_gf2m
    - std::vector::push_back
    - get_sp_field
    - get_degree
    - std::shared_ptr::gf_mul
    - std::shared_ptr::gf_div
    - Botan::lex_to_gray
    - set_coef
    linkageType: ''
    returnType: std::vector<polyn_gf2m>
    signature: std::vector<polyn_gf2m> syndrome_init(const polyn_gf2m& generator,
      const std::vector<gf2m>& support, int n)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:637,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:638,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:640,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:642,1
    - Dst: Botan::polyn_gf2m::get_degree
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:644,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ' encoded'
    - ' sp_field'
    argTypes:
    - secure_vector<uint8_t>
    - std::shared_ptr<GF2m_Field>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 635
    functionDepth: 1
    functionLinenumber: 635
    functionLinenumberEnd: 645
    functionName: Botan::polyn_gf2m::polyn_gf2m
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 6
    functionsReached:
    - Decoding_Error
    - size
    - Botan::polyn_gf2m::get_degree
    - push_back
    linkageType: ''
    returnType: void
    signature: void polyn_gf2m::polyn_gf2m(const secure_vector<uint8_t>& encoded,
      const std::shared_ptr<GF2m_Field>& sp_field)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:651,1
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:652,1
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:659,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:659,1
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:660,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:660,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 647
    functionDepth: 0
    functionLinenumber: 647
    functionLinenumberEnd: 663
    functionName: Botan::polyn_gf2m::encode
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 0
    functionsReached:
    - secure_vector::push_back
    - get_byte<0>
    - get_byte<1>
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> polyn_gf2m::encode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::polyn_gf2m::swap
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:666,1
    - Dst: Botan::polyn_gf2m::swap
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:667,1
    - Dst: Botan::polyn_gf2m::swap
      Src: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp:668,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - polyn_gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 665
    functionDepth: 1
    functionLinenumber: 665
    functionLinenumberEnd: 669
    functionName: Botan::polyn_gf2m::swap
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 4
    functionsReached:
    - Botan::polyn_gf2m::swap
    linkageType: ''
    returnType: void
    signature: void polyn_gf2m::swap(polyn_gf2m& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - polyn_gf2m
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 671
    functionDepth: 0
    functionLinenumber: 671
    functionLinenumberEnd: 673
    functionName: polyn_gf2m::operator==(const polyn_gf2m& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/mce/polyn_gf2m.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool polyn_gf2m::operator==(const polyn_gf2m& other) 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::ECDSA_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECDSA_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::ECDSA_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECDSA_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: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: Botan::algo_name
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::domain
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.h: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: Botan::_signature_element_size_for_DER_encoding
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.h
    functionUses: 0
    functionsReached:
    - Botan::domain
    linkageType: ''
    returnType: std::optional<size_t>
    signature: std::optional<size_t> _signature_element_size_for_DER_encoding() const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PublicKeyOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: Botan::supports_operation
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.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::ECDSA_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECDSA_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::ECDSA_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECDSA_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: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: Botan::algo_name
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::domain
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.h: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: Botan::_signature_element_size_for_DER_encoding
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.h
    functionUses: 0
    functionsReached:
    - Botan::domain
    linkageType: ''
    returnType: std::optional<size_t>
    signature: std::optional<size_t> _signature_element_size_for_DER_encoding() const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PublicKeyOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: Botan::supports_operation
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool supports_operation(PublicKeyOperation op) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' rng'
    - group
    argTypes:
    - RandomNumberGenerator
    - EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: ECDSA_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void ECDSA_PrivateKey(RandomNumberGenerator& rng, EC_Group group)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' rng'
    - ' group'
    - ' x'
    argTypes:
    - RandomNumberGenerator
    - EC_Group
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: ECDSA_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECDSA_PrivateKey(RandomNumberGenerator& rng, const EC_Group& group,
      const BigInt& x)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: has_cofactor
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:26,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:27,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:31,1
    - Dst: get_order
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:34,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:37,1
    - Dst: get_p_bytes
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:42,1
    - Dst: BigInt::bytes
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:50,1
    - Dst: BigInt::serialize_to
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:54,1
    - Dst: subspan
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:54,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:56,1
    - Dst: Botan::EC_Scalar::from_bytes_with_trunc
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:58,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:59,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:61,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:63,1
    - Dst: EC_Group::Mul2Table::mul2_vartime
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:64,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:65,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:70,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 23
    argCount: 5
    argNames:
    - ' group'
    - ' msg'
    - ' r'
    - ' s'
    - v
    argTypes:
    - EC_Group
    - std::vector<uint8_t>
    - BigInt
    - BigInt
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 24
    functionDepth: 3
    functionLinenumber: 24
    functionLinenumberEnd: 71
    functionName: Botan::recover_ecdsa_public_key
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_order
    - BigInt::bytes
    - Botan::Invalid_Argument
    - subspan
    - EC_Group::Mul2Table::mul2_vartime
    - get_p_bytes
    - auto::value
    - Botan::EC_Scalar::from_bigint
    - Botan::EC_AffinePoint::deserialize
    - has_cofactor
    - Botan::EC_Scalar::from_bytes_with_trunc
    - BigInt::serialize_to
    - Botan::Decoding_Error
    linkageType: ''
    returnType: EC_AffinePoint
    signature: "EC_AffinePoint recover_ecdsa_public_key(\n   const EC_Group& group,
      const std::vector<uint8_t>& msg, const BigInt& r, const BigInt& s, uint8_t v)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: has_cofactor
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:26,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:27,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:31,1
    - Dst: get_order
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:34,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:37,1
    - Dst: get_p_bytes
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:42,1
    - Dst: BigInt::bytes
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:50,1
    - Dst: BigInt::serialize_to
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:54,1
    - Dst: subspan
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:54,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:56,1
    - Dst: Botan::EC_Scalar::from_bytes_with_trunc
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:58,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:59,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:61,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:63,1
    - Dst: EC_Group::Mul2Table::mul2_vartime
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:64,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:65,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:70,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 23
    argCount: 5
    argNames:
    - ' group'
    - ' msg'
    - ' r'
    - ' s'
    - v
    argTypes:
    - EC_Group
    - std::vector<uint8_t>
    - BigInt
    - BigInt
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 24
    functionDepth: 3
    functionLinenumber: 24
    functionLinenumberEnd: 71
    functionName: Botan::recover_ecdsa_public_key
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_order
    - BigInt::bytes
    - Botan::Invalid_Argument
    - subspan
    - EC_Group::Mul2Table::mul2_vartime
    - get_p_bytes
    - auto::value
    - Botan::EC_Scalar::from_bigint
    - Botan::EC_AffinePoint::deserialize
    - has_cofactor
    - Botan::EC_Scalar::from_bytes_with_trunc
    - BigInt::serialize_to
    - Botan::Decoding_Error
    linkageType: ''
    returnType: EC_AffinePoint
    signature: "EC_AffinePoint recover_ecdsa_public_key(\n   const EC_Group& group,
      const std::vector<uint8_t>& msg, const BigInt& r, const BigInt& s, uint8_t v)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: recover_ecdsa_public_key
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' group'
    - ' msg'
    - ' r'
    - ' s'
    - v
    argTypes:
    - EC_Group
    - std::vector<uint8_t>
    - BigInt
    - BigInt
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: Botan::ECDSA_PublicKey::ECDSA_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 0
    functionsReached:
    - recover_ecdsa_public_key
    linkageType: ''
    returnType: void
    signature: "void ECDSA_PublicKey::ECDSA_PublicKey(\n   const EC_Group& group,
      const std::vector<uint8_t>& msg, const BigInt& r, const BigInt& s, uint8_t v)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ECDSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:80,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: Botan::ECDSA_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    - std::make_unique<ECDSA_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> ECDSA_PublicKey::generate_another(RandomNumberGenerator&
      rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ECDSA_PublicKey::_public_ec_point
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:84,1
    - Dst: recover_ecdsa_public_key
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:88,1
    - Dst: Botan::ECDSA_PublicKey::domain
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:88,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:90,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:98,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - ' msg'
    - ' r'
    - ' s'
    argTypes:
    - std::vector<uint8_t>
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 99
    functionName: Botan::ECDSA_PublicKey::recovery_param
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 1
    functionsReached:
    - auto::serialize_compressed
    - Botan::ECDSA_PublicKey::_public_ec_point
    - Internal_Error
    - Botan::ECDSA_PublicKey::domain
    - recover_ecdsa_public_key
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t ECDSA_PublicKey::recovery_param(const std::vector<uint8_t>&
      msg, const BigInt& r, const BigInt& s) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ECDSA_PublicKey>
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:102,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:102,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: Botan::ECDSA_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 3
    functionsReached:
    - domain
    - _public_ec_point
    - std::make_unique<ECDSA_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> ECDSA_PrivateKey::public_key() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_PrivateKey::check_key
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:106,1
    - Dst: Botan::KeyPair::signature_consistency_check
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 105
    functionDepth: 3
    functionLinenumber: 105
    functionLinenumberEnd: 115
    functionName: Botan::ECDSA_PrivateKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_PrivateKey::check_key
    - Botan::KeyPair::signature_consistency_check
    linkageType: ''
    returnType: bool
    signature: bool ECDSA_PrivateKey::check_key(RandomNumberGenerator& rng, bool strong)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:126,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:127,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:128,1
    - Dst: invert
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:129,1
    - Dst: std::make_unique<RFC6979_Nonce_Generator>
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:131,1
    - Dst: Botan::ECDSA_Signature_Operation::rfc6979_hash_function
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:132,1
    - Dst: get_order_bits
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:132,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' ecdsa'
    - padding
    - ' rng'
    argTypes:
    - ECDSA_PrivateKey
    - std::string_view
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 124
    functionDepth: 3
    functionLinenumber: 124
    functionLinenumberEnd: 134
    functionName: Botan::ECDSA_Signature_Operation::ECDSA_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    - invert
    - _private_key
    - get_order_bits
    - Botan::ECDSA_Signature_Operation::rfc6979_hash_function
    - Botan::EC_Scalar::random
    - std::make_unique<RFC6979_Nonce_Generator>
    linkageType: ''
    returnType: void
    signature: void ECDSA_Signature_Operation(const ECDSA_PrivateKey& ecdsa, std::string_view
      padding, RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:136,1
    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::ECDSA_Signature_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_order_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash_function
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:155,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:156,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 158
    functionName: Botan::ECDSA_Signature_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_string
    - AlgorithmIdentifier
    - hash_function
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier ECDSA_Signature_Operation::algorithm_identifier()
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::from_bytes_with_trunc
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:161,1
    - Dst: nonce_for
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:164,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:166,1
    - Dst: Botan::EC_Scalar::gk_x_mod_order
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:169,1
    - Dst: invert
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:172,1
    - Dst: square_self
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:177,1
    - Dst: square_self
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:178,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:185,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:185,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:186,1
    - Dst: Botan::EC_Scalar::deserialize_pair
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:189,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - msg
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 160
    functionDepth: 3
    functionLinenumber: 160
    functionLinenumberEnd: 190
    functionName: Botan::ECDSA_Signature_Operation::raw_sign
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 0
    functionsReached:
    - invert
    - auto::is_zero
    - square_self
    - nonce_for
    - Botan::EC_Scalar::random
    - Internal_Error
    - Botan::EC_Scalar::deserialize_pair
    - Botan::EC_Scalar::from_bytes_with_trunc
    - Botan::EC_Scalar::gk_x_mod_order
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> ECDSA_Signature_Operation::raw_sign(std::span<const
      uint8_t> msg, RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:198,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ecdsa'
    - padding
    argTypes:
    - ECDSA_PublicKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 198
    functionName: Botan::ECDSA_Verification_Operation::ECDSA_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _public_ec_point
    linkageType: ''
    returnType: void
    signature: void ECDSA_Verification_Operation(const ECDSA_PublicKey& ecdsa, std::string_view
      padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:202,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ecdsa'
    - ' alg_id'
    argTypes:
    - ECDSA_PublicKey
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: Botan::ECDSA_Verification_Operation::ECDSA_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _public_ec_point
    linkageType: ''
    returnType: void
    signature: void ECDSA_Verification_Operation(const ECDSA_PublicKey& ecdsa, const
      AlgorithmIdentifier& alg_id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::deserialize_pair
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:213,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:214,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:216,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:216,1
    - Dst: Botan::EC_Scalar::from_bytes_with_trunc
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:217,1
    - Dst: invert_vartime
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:219,1
    - Dst: mul2_vartime_x_mod_order_eq
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:222,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: 227
      start: 212
    functionDepth: 3
    functionLinenumber: 212
    functionLinenumberEnd: 227
    functionName: Botan::ECDSA_Verification_Operation::verify
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 0
    functionsReached:
    - mul2_vartime_x_mod_order_eq
    - invert_vartime
    - auto::value
    - Botan::EC_Scalar::deserialize_pair
    - Botan::EC_Scalar::from_bytes_with_trunc
    - is_nonzero
    linkageType: ''
    returnType: bool
    signature: bool ECDSA_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/ecdsa/ecdsa.cpp:126,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:127,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:128,1
    - Dst: invert
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:129,1
    - Dst: std::make_unique<RFC6979_Nonce_Generator>
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:131,1
    - Dst: Botan::ECDSA_Signature_Operation::rfc6979_hash_function
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:132,1
    - Dst: get_order_bits
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:132,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' ecdsa'
    - padding
    - ' rng'
    argTypes:
    - ECDSA_PrivateKey
    - std::string_view
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 124
    functionDepth: 3
    functionLinenumber: 124
    functionLinenumberEnd: 134
    functionName: Botan::ECDSA_Signature_Operation::ECDSA_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    - invert
    - _private_key
    - get_order_bits
    - Botan::ECDSA_Signature_Operation::rfc6979_hash_function
    - Botan::EC_Scalar::random
    - std::make_unique<RFC6979_Nonce_Generator>
    linkageType: ''
    returnType: void
    signature: void ECDSA_Signature_Operation(const ECDSA_PrivateKey& ecdsa, std::string_view
      padding, RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:136,1
    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::ECDSA_Signature_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_order_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash_function
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:155,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:156,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 158
    functionName: Botan::ECDSA_Signature_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_string
    - AlgorithmIdentifier
    - hash_function
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier ECDSA_Signature_Operation::algorithm_identifier()
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::from_bytes_with_trunc
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:161,1
    - Dst: nonce_for
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:164,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:166,1
    - Dst: Botan::EC_Scalar::gk_x_mod_order
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:169,1
    - Dst: invert
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:172,1
    - Dst: square_self
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:177,1
    - Dst: square_self
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:178,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:185,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:185,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:186,1
    - Dst: Botan::EC_Scalar::deserialize_pair
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:189,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - msg
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 160
    functionDepth: 3
    functionLinenumber: 160
    functionLinenumberEnd: 190
    functionName: Botan::ECDSA_Signature_Operation::raw_sign
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 0
    functionsReached:
    - invert
    - auto::is_zero
    - square_self
    - nonce_for
    - Botan::EC_Scalar::random
    - Internal_Error
    - Botan::EC_Scalar::deserialize_pair
    - Botan::EC_Scalar::from_bytes_with_trunc
    - Botan::EC_Scalar::gk_x_mod_order
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> ECDSA_Signature_Operation::raw_sign(std::span<const
      uint8_t> msg, RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:198,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ecdsa'
    - padding
    argTypes:
    - ECDSA_PublicKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 198
    functionName: Botan::ECDSA_Verification_Operation::ECDSA_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _public_ec_point
    linkageType: ''
    returnType: void
    signature: void ECDSA_Verification_Operation(const ECDSA_PublicKey& ecdsa, std::string_view
      padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:202,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ecdsa'
    - ' alg_id'
    argTypes:
    - ECDSA_PublicKey
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: Botan::ECDSA_Verification_Operation::ECDSA_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _public_ec_point
    linkageType: ''
    returnType: void
    signature: void ECDSA_Verification_Operation(const ECDSA_PublicKey& ecdsa, const
      AlgorithmIdentifier& alg_id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::deserialize_pair
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:213,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:214,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:216,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:216,1
    - Dst: Botan::EC_Scalar::from_bytes_with_trunc
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:217,1
    - Dst: invert_vartime
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:219,1
    - Dst: mul2_vartime_x_mod_order_eq
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:222,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: 227
      start: 212
    functionDepth: 3
    functionLinenumber: 212
    functionLinenumberEnd: 227
    functionName: Botan::ECDSA_Verification_Operation::verify
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 0
    functionsReached:
    - mul2_vartime_x_mod_order_eq
    - invert_vartime
    - auto::value
    - Botan::EC_Scalar::deserialize_pair
    - Botan::EC_Scalar::from_bytes_with_trunc
    - is_nonzero
    linkageType: ''
    returnType: bool
    signature: bool ECDSA_Verification_Operation::verify(std::span<const uint8_t>
      msg, std::span<const uint8_t> sig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:233,1
    - Dst: std::make_unique<ECDSA_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:234,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:237,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:237,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 238
    functionName: Botan::ECDSA_PublicKey::create_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<ECDSA_Verification_Operation>
    - Provider_Not_Found
    - algo_name
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> ECDSA_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/ecdsa/ecdsa.cpp:242,1
    - Dst: std::make_unique<ECDSA_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:243,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:246,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:246,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - ' signature_algorithm'
    - provider
    argTypes:
    - AlgorithmIdentifier
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 247
    functionName: Botan::ECDSA_PublicKey::create_x509_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<ECDSA_Verification_Operation>
    - Provider_Not_Found
    - algo_name
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> ECDSA_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/ecdsa/ecdsa.cpp:252,1
    - Dst: std::make_unique<ECDSA_Signature_Operation>
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:253,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:256,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:256,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: 257
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 257
    functionName: Botan::ECDSA_PrivateKey::create_signature_op
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - std::make_unique<ECDSA_Signature_Operation>
    - algo_name
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Signature>
    signature: "std::unique_ptr<PK_Ops::Signature> ECDSA_PrivateKey::create_signature_op(RandomNumberGenerator&
      rng,\n                                                                         std::string_view
      params,\n                                                                         std::string_view
      provider) const"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: has_cofactor
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:26,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:27,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:31,1
    - Dst: get_order
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:34,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:37,1
    - Dst: get_p_bytes
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:42,1
    - Dst: BigInt::bytes
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:50,1
    - Dst: BigInt::serialize_to
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:54,1
    - Dst: subspan
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:54,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:56,1
    - Dst: Botan::EC_Scalar::from_bytes_with_trunc
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:58,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:59,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:61,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:63,1
    - Dst: EC_Group::Mul2Table::mul2_vartime
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:64,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:65,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:70,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 23
    argCount: 5
    argNames:
    - ' group'
    - ' msg'
    - ' r'
    - ' s'
    - v
    argTypes:
    - EC_Group
    - std::vector<uint8_t>
    - BigInt
    - BigInt
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 24
    functionDepth: 3
    functionLinenumber: 24
    functionLinenumberEnd: 71
    functionName: Botan::recover_ecdsa_public_key
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_order
    - BigInt::bytes
    - Botan::Invalid_Argument
    - subspan
    - EC_Group::Mul2Table::mul2_vartime
    - get_p_bytes
    - auto::value
    - Botan::EC_Scalar::from_bigint
    - Botan::EC_AffinePoint::deserialize
    - has_cofactor
    - Botan::EC_Scalar::from_bytes_with_trunc
    - BigInt::serialize_to
    - Botan::Decoding_Error
    linkageType: ''
    returnType: EC_AffinePoint
    signature: "EC_AffinePoint recover_ecdsa_public_key(\n   const EC_Group& group,
      const std::vector<uint8_t>& msg, const BigInt& r, const BigInt& s, uint8_t v)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: has_cofactor
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:26,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:27,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:31,1
    - Dst: get_order
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:34,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:37,1
    - Dst: get_p_bytes
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:42,1
    - Dst: BigInt::bytes
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:50,1
    - Dst: BigInt::serialize_to
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:54,1
    - Dst: subspan
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:54,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:56,1
    - Dst: Botan::EC_Scalar::from_bytes_with_trunc
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:58,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:59,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:61,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:63,1
    - Dst: EC_Group::Mul2Table::mul2_vartime
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:64,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:65,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:70,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 23
    argCount: 5
    argNames:
    - ' group'
    - ' msg'
    - ' r'
    - ' s'
    - v
    argTypes:
    - EC_Group
    - std::vector<uint8_t>
    - BigInt
    - BigInt
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 24
    functionDepth: 3
    functionLinenumber: 24
    functionLinenumberEnd: 71
    functionName: Botan::recover_ecdsa_public_key
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_order
    - BigInt::bytes
    - Botan::Invalid_Argument
    - subspan
    - EC_Group::Mul2Table::mul2_vartime
    - get_p_bytes
    - auto::value
    - Botan::EC_Scalar::from_bigint
    - Botan::EC_AffinePoint::deserialize
    - has_cofactor
    - Botan::EC_Scalar::from_bytes_with_trunc
    - BigInt::serialize_to
    - Botan::Decoding_Error
    linkageType: ''
    returnType: EC_AffinePoint
    signature: "EC_AffinePoint recover_ecdsa_public_key(\n   const EC_Group& group,
      const std::vector<uint8_t>& msg, const BigInt& r, const BigInt& s, uint8_t v)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: recover_ecdsa_public_key
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' group'
    - ' msg'
    - ' r'
    - ' s'
    - v
    argTypes:
    - EC_Group
    - std::vector<uint8_t>
    - BigInt
    - BigInt
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: Botan::ECDSA_PublicKey::ECDSA_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 0
    functionsReached:
    - recover_ecdsa_public_key
    linkageType: ''
    returnType: void
    signature: "void ECDSA_PublicKey::ECDSA_PublicKey(\n   const EC_Group& group,
      const std::vector<uint8_t>& msg, const BigInt& r, const BigInt& s, uint8_t v)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ECDSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:80,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: Botan::ECDSA_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    - std::make_unique<ECDSA_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> ECDSA_PublicKey::generate_another(RandomNumberGenerator&
      rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ECDSA_PublicKey::_public_ec_point
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:84,1
    - Dst: recover_ecdsa_public_key
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:88,1
    - Dst: Botan::ECDSA_PublicKey::domain
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:88,1
    - Dst: auto::serialize_compressed
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:90,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:98,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - ' msg'
    - ' r'
    - ' s'
    argTypes:
    - std::vector<uint8_t>
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 99
    functionName: Botan::ECDSA_PublicKey::recovery_param
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 1
    functionsReached:
    - auto::serialize_compressed
    - Botan::ECDSA_PublicKey::_public_ec_point
    - Internal_Error
    - Botan::ECDSA_PublicKey::domain
    - recover_ecdsa_public_key
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t ECDSA_PublicKey::recovery_param(const std::vector<uint8_t>&
      msg, const BigInt& r, const BigInt& s) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ECDSA_PublicKey>
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:102,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:102,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 103
    functionName: Botan::ECDSA_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 3
    functionsReached:
    - domain
    - _public_ec_point
    - std::make_unique<ECDSA_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> ECDSA_PrivateKey::public_key() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_PrivateKey::check_key
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:106,1
    - Dst: Botan::KeyPair::signature_consistency_check
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:114,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 105
    functionDepth: 3
    functionLinenumber: 105
    functionLinenumberEnd: 115
    functionName: Botan::ECDSA_PrivateKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_PrivateKey::check_key
    - Botan::KeyPair::signature_consistency_check
    linkageType: ''
    returnType: bool
    signature: bool ECDSA_PrivateKey::check_key(RandomNumberGenerator& rng, bool strong)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:126,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:127,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:128,1
    - Dst: invert
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:129,1
    - Dst: std::make_unique<RFC6979_Nonce_Generator>
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:131,1
    - Dst: Botan::ECDSA_Signature_Operation::rfc6979_hash_function
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:132,1
    - Dst: get_order_bits
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:132,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' ecdsa'
    - padding
    - ' rng'
    argTypes:
    - ECDSA_PrivateKey
    - std::string_view
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 124
    functionDepth: 3
    functionLinenumber: 124
    functionLinenumberEnd: 134
    functionName: Botan::ECDSA_Signature_Operation::ECDSA_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    - invert
    - _private_key
    - get_order_bits
    - Botan::ECDSA_Signature_Operation::rfc6979_hash_function
    - Botan::EC_Scalar::random
    - std::make_unique<RFC6979_Nonce_Generator>
    linkageType: ''
    returnType: void
    signature: void ECDSA_Signature_Operation(const ECDSA_PrivateKey& ecdsa, std::string_view
      padding, RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:136,1
    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::ECDSA_Signature_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_order_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash_function
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:155,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:156,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 158
    functionName: Botan::ECDSA_Signature_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_string
    - AlgorithmIdentifier
    - hash_function
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier ECDSA_Signature_Operation::algorithm_identifier()
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::from_bytes_with_trunc
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:161,1
    - Dst: nonce_for
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:164,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:166,1
    - Dst: Botan::EC_Scalar::gk_x_mod_order
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:169,1
    - Dst: invert
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:172,1
    - Dst: square_self
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:177,1
    - Dst: square_self
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:178,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:185,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:185,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:186,1
    - Dst: Botan::EC_Scalar::deserialize_pair
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:189,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - msg
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 160
    functionDepth: 3
    functionLinenumber: 160
    functionLinenumberEnd: 190
    functionName: Botan::ECDSA_Signature_Operation::raw_sign
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 0
    functionsReached:
    - invert
    - auto::is_zero
    - square_self
    - nonce_for
    - Botan::EC_Scalar::random
    - Internal_Error
    - Botan::EC_Scalar::deserialize_pair
    - Botan::EC_Scalar::from_bytes_with_trunc
    - Botan::EC_Scalar::gk_x_mod_order
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> ECDSA_Signature_Operation::raw_sign(std::span<const
      uint8_t> msg, RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:198,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ecdsa'
    - padding
    argTypes:
    - ECDSA_PublicKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 198
    functionName: Botan::ECDSA_Verification_Operation::ECDSA_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _public_ec_point
    linkageType: ''
    returnType: void
    signature: void ECDSA_Verification_Operation(const ECDSA_PublicKey& ecdsa, std::string_view
      padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:202,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ecdsa'
    - ' alg_id'
    argTypes:
    - ECDSA_PublicKey
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: Botan::ECDSA_Verification_Operation::ECDSA_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _public_ec_point
    linkageType: ''
    returnType: void
    signature: void ECDSA_Verification_Operation(const ECDSA_PublicKey& ecdsa, const
      AlgorithmIdentifier& alg_id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::deserialize_pair
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:213,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:214,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:216,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:216,1
    - Dst: Botan::EC_Scalar::from_bytes_with_trunc
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:217,1
    - Dst: invert_vartime
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:219,1
    - Dst: mul2_vartime_x_mod_order_eq
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:222,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: 227
      start: 212
    functionDepth: 3
    functionLinenumber: 212
    functionLinenumberEnd: 227
    functionName: Botan::ECDSA_Verification_Operation::verify
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 0
    functionsReached:
    - mul2_vartime_x_mod_order_eq
    - invert_vartime
    - auto::value
    - Botan::EC_Scalar::deserialize_pair
    - Botan::EC_Scalar::from_bytes_with_trunc
    - is_nonzero
    linkageType: ''
    returnType: bool
    signature: bool ECDSA_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/ecdsa/ecdsa.cpp:126,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:127,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:128,1
    - Dst: invert
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:129,1
    - Dst: std::make_unique<RFC6979_Nonce_Generator>
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:131,1
    - Dst: Botan::ECDSA_Signature_Operation::rfc6979_hash_function
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:132,1
    - Dst: get_order_bits
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:132,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' ecdsa'
    - padding
    - ' rng'
    argTypes:
    - ECDSA_PrivateKey
    - std::string_view
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 124
    functionDepth: 3
    functionLinenumber: 124
    functionLinenumberEnd: 134
    functionName: Botan::ECDSA_Signature_Operation::ECDSA_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    - invert
    - _private_key
    - get_order_bits
    - Botan::ECDSA_Signature_Operation::rfc6979_hash_function
    - Botan::EC_Scalar::random
    - std::make_unique<RFC6979_Nonce_Generator>
    linkageType: ''
    returnType: void
    signature: void ECDSA_Signature_Operation(const ECDSA_PrivateKey& ecdsa, std::string_view
      padding, RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:136,1
    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::ECDSA_Signature_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 0
    functionsReached:
    - get_order_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash_function
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:155,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:156,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 158
    functionName: Botan::ECDSA_Signature_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_string
    - AlgorithmIdentifier
    - hash_function
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier ECDSA_Signature_Operation::algorithm_identifier()
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::from_bytes_with_trunc
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:161,1
    - Dst: nonce_for
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:164,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:166,1
    - Dst: Botan::EC_Scalar::gk_x_mod_order
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:169,1
    - Dst: invert
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:172,1
    - Dst: square_self
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:177,1
    - Dst: square_self
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:178,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:185,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:185,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:186,1
    - Dst: Botan::EC_Scalar::deserialize_pair
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:189,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - msg
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 160
    functionDepth: 3
    functionLinenumber: 160
    functionLinenumberEnd: 190
    functionName: Botan::ECDSA_Signature_Operation::raw_sign
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 0
    functionsReached:
    - invert
    - auto::is_zero
    - square_self
    - nonce_for
    - Botan::EC_Scalar::random
    - Internal_Error
    - Botan::EC_Scalar::deserialize_pair
    - Botan::EC_Scalar::from_bytes_with_trunc
    - Botan::EC_Scalar::gk_x_mod_order
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> ECDSA_Signature_Operation::raw_sign(std::span<const
      uint8_t> msg, RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:198,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ecdsa'
    - padding
    argTypes:
    - ECDSA_PublicKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 198
    functionName: Botan::ECDSA_Verification_Operation::ECDSA_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _public_ec_point
    linkageType: ''
    returnType: void
    signature: void ECDSA_Verification_Operation(const ECDSA_PublicKey& ecdsa, std::string_view
      padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:202,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ecdsa'
    - ' alg_id'
    argTypes:
    - ECDSA_PublicKey
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 203
    functionName: Botan::ECDSA_Verification_Operation::ECDSA_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _public_ec_point
    linkageType: ''
    returnType: void
    signature: void ECDSA_Verification_Operation(const ECDSA_PublicKey& ecdsa, const
      AlgorithmIdentifier& alg_id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::deserialize_pair
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:213,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:214,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:216,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:216,1
    - Dst: Botan::EC_Scalar::from_bytes_with_trunc
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:217,1
    - Dst: invert_vartime
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:219,1
    - Dst: mul2_vartime_x_mod_order_eq
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:222,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: 227
      start: 212
    functionDepth: 3
    functionLinenumber: 212
    functionLinenumberEnd: 227
    functionName: Botan::ECDSA_Verification_Operation::verify
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 0
    functionsReached:
    - mul2_vartime_x_mod_order_eq
    - invert_vartime
    - auto::value
    - Botan::EC_Scalar::deserialize_pair
    - Botan::EC_Scalar::from_bytes_with_trunc
    - is_nonzero
    linkageType: ''
    returnType: bool
    signature: bool ECDSA_Verification_Operation::verify(std::span<const uint8_t>
      msg, std::span<const uint8_t> sig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:233,1
    - Dst: std::make_unique<ECDSA_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:234,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:237,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:237,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 238
    functionName: Botan::ECDSA_PublicKey::create_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<ECDSA_Verification_Operation>
    - Provider_Not_Found
    - algo_name
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> ECDSA_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/ecdsa/ecdsa.cpp:242,1
    - Dst: std::make_unique<ECDSA_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:243,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:246,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:246,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - ' signature_algorithm'
    - provider
    argTypes:
    - AlgorithmIdentifier
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 240
    functionDepth: 0
    functionLinenumber: 240
    functionLinenumberEnd: 247
    functionName: Botan::ECDSA_PublicKey::create_x509_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<ECDSA_Verification_Operation>
    - Provider_Not_Found
    - algo_name
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> ECDSA_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/ecdsa/ecdsa.cpp:252,1
    - Dst: std::make_unique<ECDSA_Signature_Operation>
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:253,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:256,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp:256,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: 257
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 257
    functionName: Botan::ECDSA_PrivateKey::create_signature_op
    functionSourceFile: /src/botan/src/lib/pubkey/ecdsa/ecdsa.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - std::make_unique<ECDSA_Signature_Operation>
    - algo_name
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Signature>
    signature: "std::unique_ptr<PK_Ops::Signature> ECDSA_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: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: Botan::algo_name
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.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: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: Botan::DSA_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DSA_PublicKey()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dsa/dsa.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::shared_ptr<const DL_PublicKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: Botan::DSA_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void DSA_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: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: Botan::algo_name
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.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: 71
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 71
    functionName: Botan::DSA_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DSA_PublicKey()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dsa/dsa.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::shared_ptr<const DL_PublicKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: Botan::DSA_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void DSA_PublicKey(std::shared_ptr<const DL_PublicKey> key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:24,1
    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: Botan::DSA_PublicKey::_signature_element_size_for_DER_encoding
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - group
    linkageType: ''
    returnType: std::optional<size_t>
    signature: std::optional<size_t> DSA_PublicKey::_signature_element_size_for_DER_encoding()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DSA_PublicKey::estimated_strength
      Src: /src/botan/src/lib/pubkey/dsa/dsa.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::DSA_PublicKey::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 1
    functionsReached:
    - Botan::DSA_PublicKey::estimated_strength
    linkageType: ''
    returnType: size_t
    signature: size_t DSA_PublicKey::estimated_strength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p_bits
      Src: /src/botan/src/lib/pubkey/dsa/dsa.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::DSA_PublicKey::key_length
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - p_bits
    linkageType: ''
    returnType: size_t
    signature: size_t DSA_PublicKey::key_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_int_field
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:36,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - field
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: '& DSA_PublicKey::get_int_field(std::string_view field) const'
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - get_int_field
    - algo_name
    linkageType: ''
    returnType: BigInt
    signature: BigInt & DSA_PublicKey::get_int_field(std::string_view field) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:40,1
    - Dst: object_identifier
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:40,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dsa/dsa.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::DSA_PublicKey::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - AlgorithmIdentifier
    - object_identifier
    - group
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier DSA_PublicKey::algorithm_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_key_as_bytes
      Src: /src/botan/src/lib/pubkey/dsa/dsa.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::DSA_PublicKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - public_key_as_bytes
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> DSA_PublicKey::raw_public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_encode
      Src: /src/botan/src/lib/pubkey/dsa/dsa.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::DSA_PublicKey::public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - DER_encode
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> DSA_PublicKey::public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DSA_PublicKey::check_key
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: Botan::DSA_PublicKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 1
    functionsReached:
    - Botan::DSA_PublicKey::check_key
    linkageType: ''
    returnType: bool
    signature: bool DSA_PublicKey::check_key(RandomNumberGenerator& rng, bool strong)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<DSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:56,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: Botan::DSA_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - group
    - std::make_unique<DSA_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> DSA_PublicKey::generate_another(RandomNumberGenerator&
      rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<DL_PublicKey>
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:60,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:62,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:62,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: 63
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: Botan::DSA_PublicKey::DSA_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - group
    - std::make_shared<DL_PublicKey>
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: void
    signature: void DSA_PublicKey::DSA_PublicKey(const AlgorithmIdentifier& alg_id,
      std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<DL_PublicKey>
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:66,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:68,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' group'
    - ' y'
    argTypes:
    - DL_Group
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: Botan::DSA_PublicKey::DSA_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - group
    - std::make_shared<DL_PublicKey>
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: void
    signature: void DSA_PublicKey::DSA_PublicKey(const DL_Group& group, const BigInt&
      y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:72,1
    - Dst: has_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:72,1
    - Dst: std::make_shared<DL_PrivateKey>
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:74,1
    - Dst: Botan::DSA_PrivateKey::public_key
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' rng'
    - ' group'
    argTypes:
    - RandomNumberGenerator
    - DL_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: Botan::DSA_PrivateKey::DSA_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<DL_PrivateKey>
    - Botan::DSA_PrivateKey::public_key
    - has_q
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: void
    signature: void DSA_PrivateKey::DSA_PrivateKey(RandomNumberGenerator& rng, const
      DL_Group& group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:79,1
    - Dst: has_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:79,1
    - Dst: std::make_shared<DL_PrivateKey>
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:81,1
    - Dst: Botan::DSA_PrivateKey::public_key
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' group'
    - ' x'
    argTypes:
    - DL_Group
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: Botan::DSA_PrivateKey::DSA_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<DL_PrivateKey>
    - Botan::DSA_PrivateKey::public_key
    - has_q
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: void
    signature: void DSA_PrivateKey::DSA_PrivateKey(const DL_Group& group, const BigInt&
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<DL_PrivateKey>
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:86,1
    - Dst: Botan::DSA_PrivateKey::public_key
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:87,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:89,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' alg_id'
    - key_bits
    argTypes:
    - AlgorithmIdentifier
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: Botan::DSA_PrivateKey::DSA_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<DL_PrivateKey>
    - Botan::DSA_PrivateKey::public_key
    - group
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: void
    signature: void DSA_PrivateKey::DSA_PrivateKey(const AlgorithmIdentifier& alg_id,
      std::span<const uint8_t> key_bits)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DSA_PrivateKey::check_key
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:93,1
    - Dst: private_key
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:97,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:97,1
    - Dst: Botan::KeyPair::signature_consistency_check
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 102
    functionName: Botan::DSA_PrivateKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 1
    functionsReached:
    - private_key
    - group
    - Botan::DSA_PrivateKey::check_key
    - Botan::KeyPair::signature_consistency_check
    linkageType: ''
    returnType: bool
    signature: bool DSA_PrivateKey::check_key(RandomNumberGenerator& rng, bool strong)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_encode
      Src: /src/botan/src/lib/pubkey/dsa/dsa.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::DSA_PrivateKey::private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - DER_encode
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> DSA_PrivateKey::private_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DSA_PrivateKey::raw_private_key_bits
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: Botan::DSA_PrivateKey::raw_private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 1
    functionsReached:
    - Botan::DSA_PrivateKey::raw_private_key_bits
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> DSA_PrivateKey::raw_private_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_int_field
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:113,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - field
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 114
    functionName: '& DSA_PrivateKey::get_int_field(std::string_view field) const'
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - get_int_field
    - algo_name
    linkageType: ''
    returnType: BigInt
    signature: BigInt & DSA_PrivateKey::get_int_field(std::string_view field) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<DSA_PublicKey>
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:118,1
    - Dst: DSA_PublicKey::DSA_PublicKey
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: Botan::DSA_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 7
    functionsReached:
    - DSA_PublicKey::DSA_PublicKey
    - std::unique_ptr<DSA_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> DSA_PrivateKey::public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:132,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:132,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:132,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' key'
    - hash_fn
    - ' rng'
    argTypes:
    - std::shared_ptr<const DL_PrivateKey>
    - std::string_view
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 134
    functionName: Botan::DSA_Signature_Operation::DSA_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::from_s32
    - Botan::BigInt::random_integer
    - group
    linkageType: ''
    returnType: void
    signature: "void DSA_Signature_Operation(const std::shared_ptr<const DL_PrivateKey>&
      key,\n                              std::string_view hash_fn,\n                              RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:136,1
    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::DSA_Signature_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - group
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash_function
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:148,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:149,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: Botan::DSA_Signature_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_string
    - AlgorithmIdentifier
    - hash_function
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier DSA_Signature_Operation::algorithm_identifier()
      const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:154,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:155,1
    - Dst: Botan::BigInt::from_bytes_with_max_bits
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:157,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:157,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:157,1
    - Dst: q_bits
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:157,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:164,1
    - Dst: generate_rfc6979_nonce
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:165,1
    - Dst: private_key
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:165,1
    - Dst: Botan::DSA_Signature_Operation::rfc6979_hash_function
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:165,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:167,1
    - Dst: multiply_mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:170,1
    - Dst: inverse_mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:170,1
    - Dst: mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:170,1
    - Dst: ct_modulo
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:181,1
    - Dst: power_g_p
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:181,1
    - Dst: q_bits
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:181,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:181,1
    - Dst: square_mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:186,1
    - Dst: square_mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:187,1
    - Dst: multiply_mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:189,1
    - Dst: multiply_mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:190,1
    - Dst: private_key
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:190,1
    - Dst: multiply_mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:192,1
    - Dst: mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:192,1
    - Dst: BigInt::is_zero
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:195,1
    - Dst: BigInt::is_zero
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:195,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:196,1
    - Dst: unlock
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:199,1
    - Dst: Botan::BigInt::encode_fixed_length_int_pair
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:199,1
    - Dst: bytes
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - msg
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 200
    functionName: Botan::DSA_Signature_Operation::raw_sign
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::from_bytes_with_max_bits
    - private_key
    - Botan::BigInt::random_integer
    - mod_q
    - ct_modulo
    - BOTAN_UNUSED
    - Botan::BigInt::encode_fixed_length_int_pair
    - generate_rfc6979_nonce
    - bytes
    - q_bits
    - Internal_Error
    - multiply_mod_q
    - square_mod_q
    - group
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - power_g_p
    - get_q
    - Botan::DSA_Signature_Operation::rfc6979_hash_function
    - inverse_mod_q
    - BigInt::is_zero
    - unlock
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> DSA_Signature_Operation::raw_sign(std::span<const
      uint8_t> msg, RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' key'
    - hash_fn
    argTypes:
    - std::shared_ptr<const DL_PublicKey>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 208
    functionName: Botan::DSA_Verification_Operation::DSA_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DSA_Verification_Operation(const std::shared_ptr<const DL_PublicKey>&
      key, std::string_view hash_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' key'
    - ' alg_id'
    argTypes:
    - std::shared_ptr<const DL_PublicKey>
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 211
    functionName: Botan::DSA_Verification_Operation::DSA_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DSA_Verification_Operation(const std::shared_ptr<const DL_PublicKey>&
      key, const AlgorithmIdentifier& alg_id)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:220,1
    - Dst: auto::get_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:222,1
    - Dst: bytes
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:223,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:225,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:229,1
    - Dst: std::span<const uint8_t>::last
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:230,1
    - Dst: Botan::BigInt::from_bytes_with_max_bits
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:236,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:236,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:236,1
    - Dst: auto::q_bits
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:236,1
    - Dst: auto::inverse_mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:241,1
    - Dst: auto::multiply_mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:243,1
    - Dst: auto::multiply_mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:244,1
    - Dst: auto::multi_exponentiate
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:246,1
    - Dst: public_key
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:246,1
    - Dst: auto::get_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:249,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - input
    - sig
    argTypes:
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 250
    functionName: Botan::DSA_Verification_Operation::verify
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::from_bytes_with_max_bits
    - auto::inverse_mod_q
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - bytes
    - auto::q_bits
    - auto::multiply_mod_q
    - auto::multi_exponentiate
    - group
    - std::span<const uint8_t>::last
    - public_key
    - auto::get_q
    - std::span<const uint8_t>::first
    linkageType: ''
    returnType: bool
    signature: bool DSA_Verification_Operation::verify(std::span<const uint8_t> input,
      std::span<const uint8_t> sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:132,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:132,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:132,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' key'
    - hash_fn
    - ' rng'
    argTypes:
    - std::shared_ptr<const DL_PrivateKey>
    - std::string_view
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 134
    functionName: Botan::DSA_Signature_Operation::DSA_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::from_s32
    - Botan::BigInt::random_integer
    - group
    linkageType: ''
    returnType: void
    signature: "void DSA_Signature_Operation(const std::shared_ptr<const DL_PrivateKey>&
      key,\n                              std::string_view hash_fn,\n                              RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:136,1
    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::DSA_Signature_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - group
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash_function
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:148,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:149,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: Botan::DSA_Signature_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_string
    - AlgorithmIdentifier
    - hash_function
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier DSA_Signature_Operation::algorithm_identifier()
      const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:154,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:155,1
    - Dst: Botan::BigInt::from_bytes_with_max_bits
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:157,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:157,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:157,1
    - Dst: q_bits
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:157,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:164,1
    - Dst: generate_rfc6979_nonce
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:165,1
    - Dst: private_key
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:165,1
    - Dst: Botan::DSA_Signature_Operation::rfc6979_hash_function
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:165,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:167,1
    - Dst: multiply_mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:170,1
    - Dst: inverse_mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:170,1
    - Dst: mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:170,1
    - Dst: ct_modulo
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:181,1
    - Dst: power_g_p
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:181,1
    - Dst: q_bits
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:181,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:181,1
    - Dst: square_mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:186,1
    - Dst: square_mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:187,1
    - Dst: multiply_mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:189,1
    - Dst: multiply_mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:190,1
    - Dst: private_key
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:190,1
    - Dst: multiply_mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:192,1
    - Dst: mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:192,1
    - Dst: BigInt::is_zero
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:195,1
    - Dst: BigInt::is_zero
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:195,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:196,1
    - Dst: unlock
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:199,1
    - Dst: Botan::BigInt::encode_fixed_length_int_pair
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:199,1
    - Dst: bytes
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - msg
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 200
    functionName: Botan::DSA_Signature_Operation::raw_sign
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::from_bytes_with_max_bits
    - private_key
    - Botan::BigInt::random_integer
    - mod_q
    - ct_modulo
    - BOTAN_UNUSED
    - Botan::BigInt::encode_fixed_length_int_pair
    - generate_rfc6979_nonce
    - bytes
    - q_bits
    - Internal_Error
    - multiply_mod_q
    - square_mod_q
    - group
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - power_g_p
    - get_q
    - Botan::DSA_Signature_Operation::rfc6979_hash_function
    - inverse_mod_q
    - BigInt::is_zero
    - unlock
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> DSA_Signature_Operation::raw_sign(std::span<const
      uint8_t> msg, RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' key'
    - hash_fn
    argTypes:
    - std::shared_ptr<const DL_PublicKey>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 208
    functionName: Botan::DSA_Verification_Operation::DSA_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DSA_Verification_Operation(const std::shared_ptr<const DL_PublicKey>&
      key, std::string_view hash_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' key'
    - ' alg_id'
    argTypes:
    - std::shared_ptr<const DL_PublicKey>
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 211
    functionName: Botan::DSA_Verification_Operation::DSA_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DSA_Verification_Operation(const std::shared_ptr<const DL_PublicKey>&
      key, const AlgorithmIdentifier& alg_id)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:220,1
    - Dst: auto::get_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:222,1
    - Dst: bytes
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:223,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:225,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:229,1
    - Dst: std::span<const uint8_t>::last
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:230,1
    - Dst: Botan::BigInt::from_bytes_with_max_bits
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:236,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:236,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:236,1
    - Dst: auto::q_bits
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:236,1
    - Dst: auto::inverse_mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:241,1
    - Dst: auto::multiply_mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:243,1
    - Dst: auto::multiply_mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:244,1
    - Dst: auto::multi_exponentiate
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:246,1
    - Dst: public_key
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:246,1
    - Dst: auto::get_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:249,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - input
    - sig
    argTypes:
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 250
    functionName: Botan::DSA_Verification_Operation::verify
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::from_bytes_with_max_bits
    - auto::inverse_mod_q
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - bytes
    - auto::q_bits
    - auto::multiply_mod_q
    - auto::multi_exponentiate
    - group
    - std::span<const uint8_t>::last
    - public_key
    - auto::get_q
    - std::span<const uint8_t>::first
    linkageType: ''
    returnType: bool
    signature: bool DSA_Verification_Operation::verify(std::span<const uint8_t> input,
      std::span<const uint8_t> sig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:256,1
    - Dst: std::make_unique<DSA_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:257,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:259,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:259,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 260
    functionName: Botan::DSA_PublicKey::create_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<DSA_Verification_Operation>
    - Provider_Not_Found
    - algo_name
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> DSA_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/dsa/dsa.cpp:264,1
    - Dst: std::make_unique<DSA_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:265,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:268,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:268,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - ' signature_algorithm'
    - provider
    argTypes:
    - AlgorithmIdentifier
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 269
    functionName: Botan::DSA_PublicKey::create_x509_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<DSA_Verification_Operation>
    - Provider_Not_Found
    - algo_name
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> DSA_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/dsa/dsa.cpp:274,1
    - Dst: std::make_unique<DSA_Signature_Operation>
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:275,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:277,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:277,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: 278
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 278
    functionName: Botan::DSA_PrivateKey::create_signature_op
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - std::make_unique<DSA_Signature_Operation>
    - algo_name
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Signature>
    signature: "std::unique_ptr<PK_Ops::Signature> DSA_PrivateKey::create_signature_op(RandomNumberGenerator&
      rng,\n                                                                       std::string_view
      params,\n                                                                       std::string_view
      provider) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:24,1
    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: Botan::DSA_PublicKey::_signature_element_size_for_DER_encoding
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - group
    linkageType: ''
    returnType: std::optional<size_t>
    signature: std::optional<size_t> DSA_PublicKey::_signature_element_size_for_DER_encoding()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DSA_PublicKey::estimated_strength
      Src: /src/botan/src/lib/pubkey/dsa/dsa.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::DSA_PublicKey::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 2
    functionsReached:
    - Botan::DSA_PublicKey::estimated_strength
    linkageType: ''
    returnType: size_t
    signature: size_t DSA_PublicKey::estimated_strength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p_bits
      Src: /src/botan/src/lib/pubkey/dsa/dsa.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::DSA_PublicKey::key_length
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - p_bits
    linkageType: ''
    returnType: size_t
    signature: size_t DSA_PublicKey::key_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_int_field
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:36,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - field
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: '& DSA_PublicKey::get_int_field(std::string_view field) const'
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - get_int_field
    - algo_name
    linkageType: ''
    returnType: BigInt
    signature: BigInt & DSA_PublicKey::get_int_field(std::string_view field) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:40,1
    - Dst: object_identifier
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:40,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dsa/dsa.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::DSA_PublicKey::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - AlgorithmIdentifier
    - object_identifier
    - group
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier DSA_PublicKey::algorithm_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_key_as_bytes
      Src: /src/botan/src/lib/pubkey/dsa/dsa.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::DSA_PublicKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - public_key_as_bytes
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> DSA_PublicKey::raw_public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_encode
      Src: /src/botan/src/lib/pubkey/dsa/dsa.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::DSA_PublicKey::public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - DER_encode
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> DSA_PublicKey::public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DSA_PublicKey::check_key
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: Botan::DSA_PublicKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 2
    functionsReached:
    - Botan::DSA_PublicKey::check_key
    linkageType: ''
    returnType: bool
    signature: bool DSA_PublicKey::check_key(RandomNumberGenerator& rng, bool strong)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<DSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:56,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: Botan::DSA_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - group
    - std::make_unique<DSA_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> DSA_PublicKey::generate_another(RandomNumberGenerator&
      rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<DL_PublicKey>
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:60,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:62,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:62,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: 63
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: Botan::DSA_PublicKey::DSA_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - group
    - std::make_shared<DL_PublicKey>
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: void
    signature: void DSA_PublicKey::DSA_PublicKey(const AlgorithmIdentifier& alg_id,
      std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<DL_PublicKey>
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:66,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:68,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' group'
    - ' y'
    argTypes:
    - DL_Group
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: Botan::DSA_PublicKey::DSA_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - group
    - std::make_shared<DL_PublicKey>
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: void
    signature: void DSA_PublicKey::DSA_PublicKey(const DL_Group& group, const BigInt&
      y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:72,1
    - Dst: has_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:72,1
    - Dst: std::make_shared<DL_PrivateKey>
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:74,1
    - Dst: Botan::DSA_PrivateKey::public_key
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' rng'
    - ' group'
    argTypes:
    - RandomNumberGenerator
    - DL_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: Botan::DSA_PrivateKey::DSA_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<DL_PrivateKey>
    - Botan::DSA_PrivateKey::public_key
    - has_q
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: void
    signature: void DSA_PrivateKey::DSA_PrivateKey(RandomNumberGenerator& rng, const
      DL_Group& group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:79,1
    - Dst: has_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:79,1
    - Dst: std::make_shared<DL_PrivateKey>
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:81,1
    - Dst: Botan::DSA_PrivateKey::public_key
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' group'
    - ' x'
    argTypes:
    - DL_Group
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: Botan::DSA_PrivateKey::DSA_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<DL_PrivateKey>
    - Botan::DSA_PrivateKey::public_key
    - has_q
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: void
    signature: void DSA_PrivateKey::DSA_PrivateKey(const DL_Group& group, const BigInt&
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<DL_PrivateKey>
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:86,1
    - Dst: Botan::DSA_PrivateKey::public_key
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:87,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:89,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' alg_id'
    - key_bits
    argTypes:
    - AlgorithmIdentifier
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: Botan::DSA_PrivateKey::DSA_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<DL_PrivateKey>
    - Botan::DSA_PrivateKey::public_key
    - group
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: void
    signature: void DSA_PrivateKey::DSA_PrivateKey(const AlgorithmIdentifier& alg_id,
      std::span<const uint8_t> key_bits)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DSA_PrivateKey::check_key
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:93,1
    - Dst: private_key
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:97,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:97,1
    - Dst: Botan::KeyPair::signature_consistency_check
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:101,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 102
    functionName: Botan::DSA_PrivateKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 2
    functionsReached:
    - private_key
    - group
    - Botan::DSA_PrivateKey::check_key
    - Botan::KeyPair::signature_consistency_check
    linkageType: ''
    returnType: bool
    signature: bool DSA_PrivateKey::check_key(RandomNumberGenerator& rng, bool strong)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_encode
      Src: /src/botan/src/lib/pubkey/dsa/dsa.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::DSA_PrivateKey::private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - DER_encode
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> DSA_PrivateKey::private_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DSA_PrivateKey::raw_private_key_bits
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: Botan::DSA_PrivateKey::raw_private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 2
    functionsReached:
    - Botan::DSA_PrivateKey::raw_private_key_bits
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> DSA_PrivateKey::raw_private_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_int_field
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:113,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - field
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 114
    functionName: '& DSA_PrivateKey::get_int_field(std::string_view field) const'
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - get_int_field
    - algo_name
    linkageType: ''
    returnType: BigInt
    signature: BigInt & DSA_PrivateKey::get_int_field(std::string_view field) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<DSA_PublicKey>
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:118,1
    - Dst: DSA_PublicKey::DSA_PublicKey
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 119
    functionName: Botan::DSA_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 10
    functionsReached:
    - DSA_PublicKey::DSA_PublicKey
    - std::unique_ptr<DSA_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> DSA_PrivateKey::public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:132,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:132,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:132,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' key'
    - hash_fn
    - ' rng'
    argTypes:
    - std::shared_ptr<const DL_PrivateKey>
    - std::string_view
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 134
    functionName: Botan::DSA_Signature_Operation::DSA_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::from_s32
    - Botan::BigInt::random_integer
    - group
    linkageType: ''
    returnType: void
    signature: "void DSA_Signature_Operation(const std::shared_ptr<const DL_PrivateKey>&
      key,\n                              std::string_view hash_fn,\n                              RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:136,1
    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::DSA_Signature_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - group
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash_function
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:148,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:149,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: Botan::DSA_Signature_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_string
    - AlgorithmIdentifier
    - hash_function
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier DSA_Signature_Operation::algorithm_identifier()
      const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:154,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:155,1
    - Dst: Botan::BigInt::from_bytes_with_max_bits
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:157,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:157,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:157,1
    - Dst: q_bits
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:157,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:164,1
    - Dst: generate_rfc6979_nonce
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:165,1
    - Dst: private_key
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:165,1
    - Dst: Botan::DSA_Signature_Operation::rfc6979_hash_function
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:165,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:167,1
    - Dst: multiply_mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:170,1
    - Dst: inverse_mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:170,1
    - Dst: mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:170,1
    - Dst: ct_modulo
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:181,1
    - Dst: power_g_p
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:181,1
    - Dst: q_bits
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:181,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:181,1
    - Dst: square_mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:186,1
    - Dst: square_mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:187,1
    - Dst: multiply_mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:189,1
    - Dst: multiply_mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:190,1
    - Dst: private_key
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:190,1
    - Dst: multiply_mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:192,1
    - Dst: mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:192,1
    - Dst: BigInt::is_zero
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:195,1
    - Dst: BigInt::is_zero
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:195,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:196,1
    - Dst: unlock
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:199,1
    - Dst: Botan::BigInt::encode_fixed_length_int_pair
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:199,1
    - Dst: bytes
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - msg
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 200
    functionName: Botan::DSA_Signature_Operation::raw_sign
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::from_bytes_with_max_bits
    - private_key
    - Botan::BigInt::random_integer
    - mod_q
    - ct_modulo
    - BOTAN_UNUSED
    - Botan::BigInt::encode_fixed_length_int_pair
    - generate_rfc6979_nonce
    - bytes
    - q_bits
    - Internal_Error
    - multiply_mod_q
    - square_mod_q
    - group
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - power_g_p
    - get_q
    - Botan::DSA_Signature_Operation::rfc6979_hash_function
    - inverse_mod_q
    - BigInt::is_zero
    - unlock
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> DSA_Signature_Operation::raw_sign(std::span<const
      uint8_t> msg, RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' key'
    - hash_fn
    argTypes:
    - std::shared_ptr<const DL_PublicKey>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 208
    functionName: Botan::DSA_Verification_Operation::DSA_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DSA_Verification_Operation(const std::shared_ptr<const DL_PublicKey>&
      key, std::string_view hash_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' key'
    - ' alg_id'
    argTypes:
    - std::shared_ptr<const DL_PublicKey>
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 211
    functionName: Botan::DSA_Verification_Operation::DSA_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DSA_Verification_Operation(const std::shared_ptr<const DL_PublicKey>&
      key, const AlgorithmIdentifier& alg_id)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:220,1
    - Dst: auto::get_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:222,1
    - Dst: bytes
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:223,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:225,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:229,1
    - Dst: std::span<const uint8_t>::last
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:230,1
    - Dst: Botan::BigInt::from_bytes_with_max_bits
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:236,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:236,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:236,1
    - Dst: auto::q_bits
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:236,1
    - Dst: auto::inverse_mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:241,1
    - Dst: auto::multiply_mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:243,1
    - Dst: auto::multiply_mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:244,1
    - Dst: auto::multi_exponentiate
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:246,1
    - Dst: public_key
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:246,1
    - Dst: auto::get_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:249,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - input
    - sig
    argTypes:
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 250
    functionName: Botan::DSA_Verification_Operation::verify
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::from_bytes_with_max_bits
    - auto::inverse_mod_q
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - bytes
    - auto::q_bits
    - auto::multiply_mod_q
    - auto::multi_exponentiate
    - group
    - std::span<const uint8_t>::last
    - public_key
    - auto::get_q
    - std::span<const uint8_t>::first
    linkageType: ''
    returnType: bool
    signature: bool DSA_Verification_Operation::verify(std::span<const uint8_t> input,
      std::span<const uint8_t> sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:132,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:132,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:132,1
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' key'
    - hash_fn
    - ' rng'
    argTypes:
    - std::shared_ptr<const DL_PrivateKey>
    - std::string_view
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 134
    functionName: Botan::DSA_Signature_Operation::DSA_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::from_s32
    - Botan::BigInt::random_integer
    - group
    linkageType: ''
    returnType: void
    signature: "void DSA_Signature_Operation(const std::shared_ptr<const DL_PrivateKey>&
      key,\n                              std::string_view hash_fn,\n                              RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:136,1
    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::DSA_Signature_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - group
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash_function
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:148,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:149,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: Botan::DSA_Signature_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_string
    - AlgorithmIdentifier
    - hash_function
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier DSA_Signature_Operation::algorithm_identifier()
      const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:154,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:155,1
    - Dst: Botan::BigInt::from_bytes_with_max_bits
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:157,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:157,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:157,1
    - Dst: q_bits
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:157,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:164,1
    - Dst: generate_rfc6979_nonce
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:165,1
    - Dst: private_key
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:165,1
    - Dst: Botan::DSA_Signature_Operation::rfc6979_hash_function
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:165,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:167,1
    - Dst: multiply_mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:170,1
    - Dst: inverse_mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:170,1
    - Dst: mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:170,1
    - Dst: ct_modulo
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:181,1
    - Dst: power_g_p
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:181,1
    - Dst: q_bits
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:181,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:181,1
    - Dst: square_mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:186,1
    - Dst: square_mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:187,1
    - Dst: multiply_mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:189,1
    - Dst: multiply_mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:190,1
    - Dst: private_key
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:190,1
    - Dst: multiply_mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:192,1
    - Dst: mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:192,1
    - Dst: BigInt::is_zero
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:195,1
    - Dst: BigInt::is_zero
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:195,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:196,1
    - Dst: unlock
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:199,1
    - Dst: Botan::BigInt::encode_fixed_length_int_pair
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:199,1
    - Dst: bytes
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - msg
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 200
    functionName: Botan::DSA_Signature_Operation::raw_sign
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::from_bytes_with_max_bits
    - private_key
    - Botan::BigInt::random_integer
    - mod_q
    - ct_modulo
    - BOTAN_UNUSED
    - Botan::BigInt::encode_fixed_length_int_pair
    - generate_rfc6979_nonce
    - bytes
    - q_bits
    - Internal_Error
    - multiply_mod_q
    - square_mod_q
    - group
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - power_g_p
    - get_q
    - Botan::DSA_Signature_Operation::rfc6979_hash_function
    - inverse_mod_q
    - BigInt::is_zero
    - unlock
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> DSA_Signature_Operation::raw_sign(std::span<const
      uint8_t> msg, RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' key'
    - hash_fn
    argTypes:
    - std::shared_ptr<const DL_PublicKey>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 208
    functionName: Botan::DSA_Verification_Operation::DSA_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DSA_Verification_Operation(const std::shared_ptr<const DL_PublicKey>&
      key, std::string_view hash_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' key'
    - ' alg_id'
    argTypes:
    - std::shared_ptr<const DL_PublicKey>
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 211
    functionName: Botan::DSA_Verification_Operation::DSA_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DSA_Verification_Operation(const std::shared_ptr<const DL_PublicKey>&
      key, const AlgorithmIdentifier& alg_id)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: group
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:220,1
    - Dst: auto::get_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:222,1
    - Dst: bytes
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:223,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:225,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:229,1
    - Dst: std::span<const uint8_t>::last
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:230,1
    - Dst: Botan::BigInt::from_bytes_with_max_bits
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:236,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:236,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:236,1
    - Dst: auto::q_bits
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:236,1
    - Dst: auto::inverse_mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:241,1
    - Dst: auto::multiply_mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:243,1
    - Dst: auto::multiply_mod_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:244,1
    - Dst: auto::multi_exponentiate
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:246,1
    - Dst: public_key
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:246,1
    - Dst: auto::get_q
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:249,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - input
    - sig
    argTypes:
    - std::span<const uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 250
    functionName: Botan::DSA_Verification_Operation::verify
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt::from_bytes_with_max_bits
    - auto::inverse_mod_q
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - bytes
    - auto::q_bits
    - auto::multiply_mod_q
    - auto::multi_exponentiate
    - group
    - std::span<const uint8_t>::last
    - public_key
    - auto::get_q
    - std::span<const uint8_t>::first
    linkageType: ''
    returnType: bool
    signature: bool DSA_Verification_Operation::verify(std::span<const uint8_t> input,
      std::span<const uint8_t> sig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:256,1
    - Dst: std::make_unique<DSA_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:257,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:259,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:259,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 260
    functionName: Botan::DSA_PublicKey::create_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<DSA_Verification_Operation>
    - Provider_Not_Found
    - algo_name
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> DSA_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/dsa/dsa.cpp:264,1
    - Dst: std::make_unique<DSA_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:265,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:268,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:268,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - ' signature_algorithm'
    - provider
    argTypes:
    - AlgorithmIdentifier
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 269
    functionName: Botan::DSA_PublicKey::create_x509_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<DSA_Verification_Operation>
    - Provider_Not_Found
    - algo_name
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> DSA_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/dsa/dsa.cpp:274,1
    - Dst: std::make_unique<DSA_Signature_Operation>
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:275,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:277,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/dsa/dsa.cpp:277,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: 278
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 278
    functionName: Botan::DSA_PrivateKey::create_signature_op
    functionSourceFile: /src/botan/src/lib/pubkey/dsa/dsa.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - std::make_unique<DSA_Signature_Operation>
    - algo_name
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Signature>
    signature: "std::unique_ptr<PK_Ops::Signature> DSA_PrivateKey::create_signature_op(RandomNumberGenerator&
      rng,\n                                                                       std::string_view
      params,\n                                                                       std::string_view
      provider) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key_bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: Botan::decode_single_bigint
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp
    functionUses: 0
    functionsReached:
    - Botan::BER_Decoder
    linkageType: ''
    returnType: BigInt
    signature: BigInt decode_single_bigint(std::span<const uint8_t> key_bits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_q
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:24,1
    - Dst: q_bits
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:24,1
    - Dst: q_bits
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:24,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:25,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:25,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:25,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:27,1
    - Dst: exponent_bits
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:27,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ' group'
    - ' rng'
    argTypes:
    - DL_Group
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 29
    functionName: Botan::generate_private_dl_key
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt
    - exponent_bits
    - has_q
    - Botan::BigInt::random_integer
    - q_bits
    - get_q
    - Botan::BigInt::from_s32
    linkageType: ''
    returnType: BigInt
    signature: BigInt generate_private_dl_key(const DL_Group& group, RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:32,1
    - Dst: verify_private_element
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' x'
    - ' group'
    argTypes:
    - BigInt
    - DL_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: Botan::check_dl_private_key_input
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp
    functionUses: 0
    functionsReached:
    - verify_private_element
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: BigInt
    signature: BigInt check_dl_private_key_input(const BigInt& x, const DL_Group&
      group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key_bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: Botan::decode_single_bigint
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp
    functionUses: 0
    functionsReached:
    - Botan::BER_Decoder
    linkageType: ''
    returnType: BigInt
    signature: BigInt decode_single_bigint(std::span<const uint8_t> key_bits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_q
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:24,1
    - Dst: q_bits
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:24,1
    - Dst: q_bits
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:24,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:25,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:25,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:25,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:27,1
    - Dst: exponent_bits
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:27,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ' group'
    - ' rng'
    argTypes:
    - DL_Group
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 29
    functionName: Botan::generate_private_dl_key
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt
    - exponent_bits
    - has_q
    - Botan::BigInt::random_integer
    - q_bits
    - get_q
    - Botan::BigInt::from_s32
    linkageType: ''
    returnType: BigInt
    signature: BigInt generate_private_dl_key(const DL_Group& group, RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:32,1
    - Dst: verify_private_element
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' x'
    - ' group'
    argTypes:
    - BigInt
    - DL_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: Botan::check_dl_private_key_input
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp
    functionUses: 0
    functionsReached:
    - verify_private_element
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: BigInt
    signature: BigInt check_dl_private_key_input(const BigInt& x, const DL_Group&
      group)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' group'
    - ' public_key'
    argTypes:
    - DL_Group
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: Botan::DL_PublicKey::DL_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DL_PublicKey::DL_PublicKey(const DL_Group& group, const BigInt&
      public_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:44,1
    - Dst: decode_single_bigint
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' alg_id'
    - key_bits
    - format
    argTypes:
    - AlgorithmIdentifier
    - std::span<const uint8_t>
    - DL_Group_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: Botan::DL_PublicKey::DL_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp
    functionUses: 0
    functionsReached:
    - parameters
    - decode_single_bigint
    linkageType: ''
    returnType: void
    signature: "void DL_PublicKey::DL_PublicKey(const AlgorithmIdentifier& alg_id,\n
      \                          std::span<const uint8_t> key_bits,\n                           DL_Group_Format
      format)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: serialize
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:47,1
    - Dst: p_bytes
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.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::DL_PublicKey::public_key_as_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp
    functionUses: 0
    functionsReached:
    - serialize
    - p_bytes
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> DL_PublicKey::public_key_as_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: Botan::DL_PublicKey::DER_encode
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp
    functionUses: 0
    functionsReached:
    - DER_Encoder
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> DL_PublicKey::DER_encode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: verify_group
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:57,1
    - Dst: verify_public_element
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: Botan::DL_PublicKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp
    functionUses: 0
    functionsReached:
    - verify_group
    - verify_public_element
    linkageType: ''
    returnType: bool
    signature: bool DL_PublicKey::check_key(RandomNumberGenerator& rng, bool strong)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DL_PublicKey::estimated_strength
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: Botan::DL_PublicKey::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp
    functionUses: 1
    functionsReached:
    - Botan::DL_PublicKey::estimated_strength
    linkageType: ''
    returnType: size_t
    signature: size_t DL_PublicKey::estimated_strength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DL_PublicKey::p_bits
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.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::DL_PublicKey::p_bits
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp
    functionUses: 1
    functionsReached:
    - Botan::DL_PublicKey::p_bits
    linkageType: ''
    returnType: size_t
    signature: size_t DL_PublicKey::p_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_dl_private_key_input
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:70,1
    - Dst: power_g_p
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:71,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' group'
    - ' private_key'
    argTypes:
    - DL_Group
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: Botan::DL_PrivateKey::DL_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp
    functionUses: 0
    functionsReached:
    - check_dl_private_key_input
    - power_g_p
    - bits
    linkageType: ''
    returnType: void
    signature: void DL_PrivateKey::DL_PrivateKey(const DL_Group& group, const BigInt&
      private_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: generate_private_dl_key
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:75,1
    - Dst: power_g_p
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:76,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' group'
    - ' rng'
    argTypes:
    - DL_Group
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: Botan::DL_PrivateKey::DL_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp
    functionUses: 0
    functionsReached:
    - power_g_p
    - bits
    - generate_private_dl_key
    linkageType: ''
    returnType: void
    signature: void DL_PrivateKey::DL_PrivateKey(const DL_Group& group, RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:81,1
    - Dst: check_dl_private_key_input
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:82,1
    - Dst: decode_single_bigint
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:82,1
    - Dst: power_g_p
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:83,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' alg_id'
    - key_bits
    - format
    argTypes:
    - AlgorithmIdentifier
    - std::span<const uint8_t>
    - DL_Group_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: Botan::DL_PrivateKey::DL_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp
    functionUses: 0
    functionsReached:
    - check_dl_private_key_input
    - parameters
    - power_g_p
    - decode_single_bigint
    - bits
    linkageType: ''
    returnType: void
    signature: "void DL_PrivateKey::DL_PrivateKey(const AlgorithmIdentifier& alg_id,\n
      \                            std::span<const uint8_t> key_bits,\n                             DL_Group_Format
      format)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: Botan::DL_PrivateKey::DER_encode
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp
    functionUses: 0
    functionsReached:
    - DER_Encoder
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> DL_PrivateKey::DER_encode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: serialize
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.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::DL_PrivateKey::raw_private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp
    functionUses: 0
    functionsReached:
    - serialize
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> DL_PrivateKey::raw_private_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: verify_group
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:94,1
    - Dst: verify_private_element
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: Botan::DL_PrivateKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp
    functionUses: 0
    functionsReached:
    - verify_private_element
    - verify_group
    linkageType: ''
    returnType: bool
    signature: bool DL_PrivateKey::check_key(RandomNumberGenerator& rng, bool strong)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<DL_PublicKey>
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.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::DL_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<DL_PublicKey>
    linkageType: ''
    returnType: std::shared_ptr<DL_PublicKey>
    signature: std::shared_ptr<DL_PublicKey> DL_PrivateKey::public_key() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:103,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:105,1
    - Dst: get_g
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:107,1
    - Dst: Unknown_PK_Field_Name
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:111,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - algo
    - field
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 113
    functionName: '& DL_PublicKey::get_int_field(std::string_view algo, std::string_view
      field) const'
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp
    functionUses: 0
    functionsReached:
    - get_p
    - Unknown_PK_Field_Name
    - get_g
    - get_q
    linkageType: ''
    returnType: BigInt
    signature: BigInt & DL_PublicKey::get_int_field(std::string_view algo, std::string_view
      field) const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:117,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:119,1
    - Dst: get_g
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:121,1
    - Dst: Unknown_PK_Field_Name
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:127,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - algo
    - field
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 129
    functionName: '& DL_PrivateKey::get_int_field(std::string_view algo, std::string_view
      field) const'
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp
    functionUses: 0
    functionsReached:
    - get_p
    - Unknown_PK_Field_Name
    - get_g
    - get_q
    linkageType: ''
    returnType: BigInt
    signature: BigInt & DL_PrivateKey::get_int_field(std::string_view algo, std::string_view
      field) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key_bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: Botan::decode_single_bigint
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp
    functionUses: 0
    functionsReached:
    - Botan::BER_Decoder
    linkageType: ''
    returnType: BigInt
    signature: BigInt decode_single_bigint(std::span<const uint8_t> key_bits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_q
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:24,1
    - Dst: q_bits
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:24,1
    - Dst: q_bits
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:24,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:25,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:25,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:25,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:27,1
    - Dst: exponent_bits
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:27,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ' group'
    - ' rng'
    argTypes:
    - DL_Group
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 29
    functionName: Botan::generate_private_dl_key
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt
    - exponent_bits
    - has_q
    - Botan::BigInt::random_integer
    - q_bits
    - get_q
    - Botan::BigInt::from_s32
    linkageType: ''
    returnType: BigInt
    signature: BigInt generate_private_dl_key(const DL_Group& group, RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:32,1
    - Dst: verify_private_element
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' x'
    - ' group'
    argTypes:
    - BigInt
    - DL_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: Botan::check_dl_private_key_input
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp
    functionUses: 0
    functionsReached:
    - verify_private_element
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: BigInt
    signature: BigInt check_dl_private_key_input(const BigInt& x, const DL_Group&
      group)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key_bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: Botan::decode_single_bigint
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp
    functionUses: 0
    functionsReached:
    - Botan::BER_Decoder
    linkageType: ''
    returnType: BigInt
    signature: BigInt decode_single_bigint(std::span<const uint8_t> key_bits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_q
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:24,1
    - Dst: q_bits
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:24,1
    - Dst: q_bits
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:24,1
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:25,1
    - Dst: Botan::BigInt::from_s32
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:25,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:25,1
    - Dst: Botan::BigInt
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:27,1
    - Dst: exponent_bits
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:27,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ' group'
    - ' rng'
    argTypes:
    - DL_Group
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 29
    functionName: Botan::generate_private_dl_key
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp
    functionUses: 0
    functionsReached:
    - Botan::BigInt
    - exponent_bits
    - has_q
    - Botan::BigInt::random_integer
    - q_bits
    - get_q
    - Botan::BigInt::from_s32
    linkageType: ''
    returnType: BigInt
    signature: BigInt generate_private_dl_key(const DL_Group& group, RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:32,1
    - Dst: verify_private_element
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' x'
    - ' group'
    argTypes:
    - BigInt
    - DL_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: Botan::check_dl_private_key_input
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp
    functionUses: 0
    functionsReached:
    - verify_private_element
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: BigInt
    signature: BigInt check_dl_private_key_input(const BigInt& x, const DL_Group&
      group)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' group'
    - ' public_key'
    argTypes:
    - DL_Group
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 39
    functionName: Botan::DL_PublicKey::DL_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DL_PublicKey::DL_PublicKey(const DL_Group& group, const BigInt&
      public_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:44,1
    - Dst: decode_single_bigint
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' alg_id'
    - key_bits
    - format
    argTypes:
    - AlgorithmIdentifier
    - std::span<const uint8_t>
    - DL_Group_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: Botan::DL_PublicKey::DL_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp
    functionUses: 0
    functionsReached:
    - parameters
    - decode_single_bigint
    linkageType: ''
    returnType: void
    signature: "void DL_PublicKey::DL_PublicKey(const AlgorithmIdentifier& alg_id,\n
      \                          std::span<const uint8_t> key_bits,\n                           DL_Group_Format
      format)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: serialize
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:47,1
    - Dst: p_bytes
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.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::DL_PublicKey::public_key_as_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp
    functionUses: 0
    functionsReached:
    - serialize
    - p_bytes
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> DL_PublicKey::public_key_as_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 54
    functionName: Botan::DL_PublicKey::DER_encode
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp
    functionUses: 0
    functionsReached:
    - DER_Encoder
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> DL_PublicKey::DER_encode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: verify_group
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:57,1
    - Dst: verify_public_element
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: Botan::DL_PublicKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp
    functionUses: 0
    functionsReached:
    - verify_group
    - verify_public_element
    linkageType: ''
    returnType: bool
    signature: bool DL_PublicKey::check_key(RandomNumberGenerator& rng, bool strong)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DL_PublicKey::estimated_strength
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: Botan::DL_PublicKey::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp
    functionUses: 2
    functionsReached:
    - Botan::DL_PublicKey::estimated_strength
    linkageType: ''
    returnType: size_t
    signature: size_t DL_PublicKey::estimated_strength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DL_PublicKey::p_bits
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.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::DL_PublicKey::p_bits
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp
    functionUses: 2
    functionsReached:
    - Botan::DL_PublicKey::p_bits
    linkageType: ''
    returnType: size_t
    signature: size_t DL_PublicKey::p_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_dl_private_key_input
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:70,1
    - Dst: power_g_p
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:71,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' group'
    - ' private_key'
    argTypes:
    - DL_Group
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: Botan::DL_PrivateKey::DL_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp
    functionUses: 0
    functionsReached:
    - check_dl_private_key_input
    - power_g_p
    - bits
    linkageType: ''
    returnType: void
    signature: void DL_PrivateKey::DL_PrivateKey(const DL_Group& group, const BigInt&
      private_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: generate_private_dl_key
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:75,1
    - Dst: power_g_p
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:76,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' group'
    - ' rng'
    argTypes:
    - DL_Group
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: Botan::DL_PrivateKey::DL_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp
    functionUses: 0
    functionsReached:
    - power_g_p
    - bits
    - generate_private_dl_key
    linkageType: ''
    returnType: void
    signature: void DL_PrivateKey::DL_PrivateKey(const DL_Group& group, RandomNumberGenerator&
      rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parameters
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:81,1
    - Dst: check_dl_private_key_input
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:82,1
    - Dst: decode_single_bigint
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:82,1
    - Dst: power_g_p
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:83,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' alg_id'
    - key_bits
    - format
    argTypes:
    - AlgorithmIdentifier
    - std::span<const uint8_t>
    - DL_Group_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: Botan::DL_PrivateKey::DL_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp
    functionUses: 0
    functionsReached:
    - check_dl_private_key_input
    - parameters
    - power_g_p
    - decode_single_bigint
    - bits
    linkageType: ''
    returnType: void
    signature: "void DL_PrivateKey::DL_PrivateKey(const AlgorithmIdentifier& alg_id,\n
      \                            std::span<const uint8_t> key_bits,\n                             DL_Group_Format
      format)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: Botan::DL_PrivateKey::DER_encode
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp
    functionUses: 0
    functionsReached:
    - DER_Encoder
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> DL_PrivateKey::DER_encode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: serialize
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.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::DL_PrivateKey::raw_private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp
    functionUses: 0
    functionsReached:
    - serialize
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> DL_PrivateKey::raw_private_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: verify_group
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:94,1
    - Dst: verify_private_element
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 95
    functionName: Botan::DL_PrivateKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp
    functionUses: 0
    functionsReached:
    - verify_private_element
    - verify_group
    linkageType: ''
    returnType: bool
    signature: bool DL_PrivateKey::check_key(RandomNumberGenerator& rng, bool strong)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<DL_PublicKey>
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.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::DL_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<DL_PublicKey>
    linkageType: ''
    returnType: std::shared_ptr<DL_PublicKey>
    signature: std::shared_ptr<DL_PublicKey> DL_PrivateKey::public_key() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:103,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:105,1
    - Dst: get_g
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:107,1
    - Dst: Unknown_PK_Field_Name
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:111,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - algo
    - field
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 113
    functionName: '& DL_PublicKey::get_int_field(std::string_view algo, std::string_view
      field) const'
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp
    functionUses: 0
    functionsReached:
    - get_p
    - Unknown_PK_Field_Name
    - get_g
    - get_q
    linkageType: ''
    returnType: BigInt
    signature: BigInt & DL_PublicKey::get_int_field(std::string_view algo, std::string_view
      field) const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:117,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:119,1
    - Dst: get_g
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:121,1
    - Dst: Unknown_PK_Field_Name
      Src: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp:127,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - algo
    - field
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 129
    functionName: '& DL_PrivateKey::get_int_field(std::string_view algo, std::string_view
      field) const'
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.cpp
    functionUses: 0
    functionsReached:
    - get_p
    - Unknown_PK_Field_Name
    - get_g
    - get_q
    linkageType: ''
    returnType: BigInt
    signature: BigInt & DL_PrivateKey::get_int_field(std::string_view algo, std::string_view
      field) const
  - 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: '& group() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DL_Group
    signature: DL_Group & group() 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: '& public_key() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & public_key() 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: '& group() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DL_Group
    signature: DL_Group & group() 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: '& private_key() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & private_key() const
  - 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: '& group() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DL_Group
    signature: DL_Group & group() 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: '& public_key() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & public_key() 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: '& group() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DL_Group
    signature: DL_Group & group() 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: '& private_key() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dl_algo/dl_scheme.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & private_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_FieldElement::sqr
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:19,1
    - Dst: auto::sqr_iter
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:20,1
    - Dst: auto::sqr
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:23,1
    - Dst: auto::sqr_iter
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:25,1
    - Dst: auto::sqr_iter
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:27,1
    - Dst: auto::sqr_iter
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:29,1
    - Dst: auto::sqr_iter
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:31,1
    - Dst: auto::sqr_iter
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:33,1
    - Dst: auto::sqr_iter
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:35,1
    - Dst: auto::sqr_iter
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:37,1
    - Dst: auto::sqr_iter
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 43
    functionName: Botan::Ed25519_FieldElement::invert
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp
    functionUses: 0
    functionsReached:
    - auto::sqr
    - Botan::Ed25519_FieldElement::sqr
    - auto::sqr_iter
    linkageType: ''
    returnType: Ed25519_FieldElement
    signature: Ed25519_FieldElement Ed25519_FieldElement::invert() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_FieldElement::sqr
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:46,1
    - Dst: auto::sqr_iter
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:47,1
    - Dst: auto::sqr
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:50,1
    - Dst: auto::sqr_iter
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:52,1
    - Dst: auto::sqr_iter
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:54,1
    - Dst: auto::sqr_iter
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:56,1
    - Dst: auto::sqr_iter
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:58,1
    - Dst: auto::sqr_iter
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:60,1
    - Dst: auto::sqr_iter
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:62,1
    - Dst: auto::sqr_iter
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:64,1
    - Dst: auto::sqr_iter
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 70
    functionName: Botan::Ed25519_FieldElement::pow_22523
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp
    functionUses: 0
    functionsReached:
    - auto::sqr
    - Botan::Ed25519_FieldElement::sqr
    - auto::sqr_iter
    linkageType: ''
    returnType: Ed25519_FieldElement
    signature: Ed25519_FieldElement Ed25519_FieldElement::pow_22523() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:143,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:144,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:145,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:146,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:147,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:148,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:149,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:150,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:151,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:152,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:153,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:154,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:155,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:156,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:157,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:158,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:159,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:160,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:161,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:162,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:163,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:164,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:165,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:166,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:167,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:168,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:169,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:170,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:171,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:172,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:173,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:174,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:175,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:176,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:177,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:178,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:179,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:180,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:181,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:182,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:183,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:184,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:185,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:186,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:187,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:188,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:189,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:190,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:191,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:192,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:193,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:194,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:195,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:196,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:197,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:198,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:199,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:200,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:201,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:202,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:203,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:204,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:205,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:206,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:207,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:208,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:209,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:210,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:211,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:212,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:213,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:214,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:215,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:216,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:217,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:218,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:219,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:220,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:221,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:222,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:223,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:224,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:225,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:226,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:227,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:228,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:229,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:230,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:231,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:232,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:233,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:234,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:235,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:236,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:237,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:238,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:239,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:240,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:241,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:242,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:261,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:262,1
    - Dst: carry<25>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:269,1
    - Dst: carry<25>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:270,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:277,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:278,1
    - Dst: carry<25>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:284,1
    - Dst: carry<25>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:285,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:291,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:292,1
    - Dst: carry<25, 19>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:298,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:303,1
    - Dst: Botan::Ed25519_FieldElement::Ed25519_FieldElement
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - ' f'
    - ' g'
    argTypes:
    - Ed25519_FieldElement
    - Ed25519_FieldElement
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 308
    functionName: Botan::Ed25519_FieldElement::mul
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int64_t>
    - Botan::Ed25519_FieldElement::Ed25519_FieldElement
    - carry<25, 19>
    - carry<26>
    - carry<25>
    linkageType: ''
    returnType: Ed25519_FieldElement
    signature: Ed25519_FieldElement Ed25519_FieldElement::mul(const Ed25519_FieldElement&
      f, const Ed25519_FieldElement& g)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:353,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:354,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:355,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:356,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:357,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:358,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:359,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:360,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:361,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:362,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:363,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:364,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:365,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:366,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:367,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:368,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:369,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:370,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:371,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:372,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:373,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:374,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:375,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:376,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:377,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:378,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:379,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:380,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:381,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:382,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:383,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:384,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:385,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:386,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:387,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:388,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:389,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:390,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:391,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:392,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:393,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:394,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:395,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:396,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:397,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:398,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:399,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:400,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:401,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:402,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:403,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:404,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:405,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:406,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:407,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:420,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:421,1
    - Dst: carry<25>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:422,1
    - Dst: carry<25>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:423,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:424,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:425,1
    - Dst: carry<25>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:427,1
    - Dst: carry<25>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:428,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:430,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:431,1
    - Dst: carry<25, 19>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:432,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:433,1
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:435,1
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:436,1
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:437,1
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:438,1
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:439,1
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:440,1
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:441,1
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:442,1
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:443,1
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:444,1
    - Dst: Botan::Ed25519_FieldElement::Ed25519_FieldElement
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:447,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 1
    argNames:
    - iter
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 448
    functionName: Botan::Ed25519_FieldElement::sqr_iter
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int64_t>
    - Botan::Ed25519_FieldElement::Ed25519_FieldElement
    - static_cast<int32_t>
    - carry<25, 19>
    - carry<26>
    - carry<25>
    linkageType: ''
    returnType: Ed25519_FieldElement
    signature: Ed25519_FieldElement Ed25519_FieldElement::sqr_iter(size_t iter) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:491,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:492,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:493,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:494,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:495,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:496,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:497,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:498,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:499,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:500,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:501,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:502,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:503,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:504,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:505,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:506,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:507,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:508,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:509,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:510,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:511,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:512,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:513,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:514,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:515,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:516,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:517,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:518,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:519,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:520,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:521,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:522,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:523,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:524,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:525,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:526,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:527,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:528,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:529,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:530,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:531,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:532,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:533,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:534,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:535,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:536,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:537,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:538,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:539,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:540,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:541,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:542,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:543,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:544,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:545,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:569,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:570,1
    - Dst: carry<25>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:572,1
    - Dst: carry<25>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:573,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:575,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:576,1
    - Dst: carry<25>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:578,1
    - Dst: carry<25>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:579,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:580,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:581,1
    - Dst: carry<25, 19>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:582,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:583,1
    - Dst: Botan::Ed25519_FieldElement::Ed25519_FieldElement
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 466
    functionDepth: 1
    functionLinenumber: 466
    functionLinenumberEnd: 586
    functionName: Botan::Ed25519_FieldElement::sqr2
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int64_t>
    - Botan::Ed25519_FieldElement::Ed25519_FieldElement
    - carry<25, 19>
    - carry<26>
    - carry<25>
    linkageType: ''
    returnType: Ed25519_FieldElement
    signature: Ed25519_FieldElement Ed25519_FieldElement::sqr2() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_4
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:592,1
    - Dst: load_3
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:593,1
    - Dst: load_3
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:594,1
    - Dst: load_3
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:595,1
    - Dst: load_3
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:596,1
    - Dst: load_4
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:597,1
    - Dst: load_3
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:598,1
    - Dst: load_3
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:599,1
    - Dst: load_3
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:600,1
    - Dst: load_3
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:601,1
    - Dst: carry<25, 19>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:603,1
    - Dst: carry<25>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:604,1
    - Dst: carry<25>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:605,1
    - Dst: carry<25>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:606,1
    - Dst: carry<25>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:607,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:609,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:610,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:611,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:612,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:613,1
    - Dst: Botan::Ed25519_FieldElement::Ed25519_FieldElement
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - s
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 591
    functionDepth: 1
    functionLinenumber: 591
    functionLinenumberEnd: 616
    functionName: Botan::Ed25519_FieldElement::deserialize
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp
    functionUses: 0
    functionsReached:
    - Botan::Ed25519_FieldElement::Ed25519_FieldElement
    - carry<25, 19>
    - load_4
    - carry<26>
    - load_3
    - carry<25>
    linkageType: ''
    returnType: Ed25519_FieldElement
    signature: Ed25519_FieldElement Ed25519_FieldElement::deserialize(const uint8_t
      s[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:657,1
    - Dst: carry0<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:673,1
    - Dst: carry0<25>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:674,1
    - Dst: carry0<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:675,1
    - Dst: carry0<25>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:676,1
    - Dst: carry0<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:677,1
    - Dst: carry0<25>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:678,1
    - Dst: carry0<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:679,1
    - Dst: carry0<25>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:680,1
    - Dst: carry0<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:681,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:694,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:695,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:696,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:697,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:698,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:699,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:700,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:701,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:702,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:703,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:704,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:705,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:706,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:707,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:708,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:709,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:710,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:711,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:712,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:713,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:714,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:715,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:716,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:717,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:718,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:719,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:720,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:721,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:722,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:723,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:724,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 54
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::span<uint8_t, 32>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 726
    functionName: Botan::Ed25519_FieldElement::serialize_to
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp
    functionUses: 0
    functionsReached:
    - carry0<26>
    - static_cast<uint8_t>
    - carry0<25>
    - static_cast<int32_t>
    linkageType: ''
    returnType: void
    signature: void Ed25519_FieldElement::serialize_to(std::span<uint8_t, 32> s) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_FieldElement::sqr
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:19,1
    - Dst: auto::sqr_iter
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:20,1
    - Dst: auto::sqr
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:23,1
    - Dst: auto::sqr_iter
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:25,1
    - Dst: auto::sqr_iter
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:27,1
    - Dst: auto::sqr_iter
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:29,1
    - Dst: auto::sqr_iter
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:31,1
    - Dst: auto::sqr_iter
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:33,1
    - Dst: auto::sqr_iter
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:35,1
    - Dst: auto::sqr_iter
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:37,1
    - Dst: auto::sqr_iter
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 43
    functionName: Botan::Ed25519_FieldElement::invert
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp
    functionUses: 0
    functionsReached:
    - auto::sqr
    - Botan::Ed25519_FieldElement::sqr
    - auto::sqr_iter
    linkageType: ''
    returnType: Ed25519_FieldElement
    signature: Ed25519_FieldElement Ed25519_FieldElement::invert() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_FieldElement::sqr
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:46,1
    - Dst: auto::sqr_iter
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:47,1
    - Dst: auto::sqr
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:50,1
    - Dst: auto::sqr_iter
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:52,1
    - Dst: auto::sqr_iter
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:54,1
    - Dst: auto::sqr_iter
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:56,1
    - Dst: auto::sqr_iter
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:58,1
    - Dst: auto::sqr_iter
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:60,1
    - Dst: auto::sqr_iter
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:62,1
    - Dst: auto::sqr_iter
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:64,1
    - Dst: auto::sqr_iter
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 70
    functionName: Botan::Ed25519_FieldElement::pow_22523
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp
    functionUses: 0
    functionsReached:
    - auto::sqr
    - Botan::Ed25519_FieldElement::sqr
    - auto::sqr_iter
    linkageType: ''
    returnType: Ed25519_FieldElement
    signature: Ed25519_FieldElement Ed25519_FieldElement::pow_22523() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:143,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:144,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:145,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:146,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:147,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:148,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:149,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:150,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:151,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:152,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:153,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:154,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:155,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:156,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:157,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:158,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:159,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:160,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:161,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:162,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:163,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:164,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:165,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:166,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:167,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:168,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:169,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:170,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:171,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:172,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:173,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:174,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:175,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:176,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:177,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:178,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:179,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:180,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:181,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:182,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:183,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:184,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:185,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:186,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:187,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:188,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:189,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:190,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:191,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:192,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:193,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:194,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:195,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:196,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:197,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:198,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:199,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:200,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:201,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:202,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:203,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:204,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:205,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:206,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:207,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:208,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:209,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:210,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:211,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:212,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:213,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:214,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:215,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:216,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:217,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:218,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:219,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:220,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:221,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:222,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:223,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:224,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:225,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:226,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:227,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:228,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:229,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:230,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:231,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:232,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:233,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:234,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:235,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:236,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:237,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:238,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:239,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:240,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:241,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:242,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:261,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:262,1
    - Dst: carry<25>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:269,1
    - Dst: carry<25>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:270,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:277,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:278,1
    - Dst: carry<25>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:284,1
    - Dst: carry<25>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:285,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:291,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:292,1
    - Dst: carry<25, 19>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:298,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:303,1
    - Dst: Botan::Ed25519_FieldElement::Ed25519_FieldElement
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 2
    argNames:
    - ' f'
    - ' g'
    argTypes:
    - Ed25519_FieldElement
    - Ed25519_FieldElement
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 308
    functionName: Botan::Ed25519_FieldElement::mul
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int64_t>
    - Botan::Ed25519_FieldElement::Ed25519_FieldElement
    - carry<25, 19>
    - carry<26>
    - carry<25>
    linkageType: ''
    returnType: Ed25519_FieldElement
    signature: Ed25519_FieldElement Ed25519_FieldElement::mul(const Ed25519_FieldElement&
      f, const Ed25519_FieldElement& g)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:353,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:354,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:355,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:356,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:357,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:358,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:359,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:360,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:361,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:362,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:363,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:364,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:365,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:366,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:367,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:368,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:369,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:370,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:371,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:372,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:373,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:374,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:375,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:376,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:377,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:378,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:379,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:380,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:381,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:382,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:383,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:384,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:385,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:386,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:387,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:388,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:389,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:390,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:391,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:392,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:393,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:394,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:395,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:396,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:397,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:398,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:399,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:400,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:401,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:402,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:403,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:404,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:405,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:406,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:407,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:420,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:421,1
    - Dst: carry<25>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:422,1
    - Dst: carry<25>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:423,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:424,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:425,1
    - Dst: carry<25>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:427,1
    - Dst: carry<25>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:428,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:430,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:431,1
    - Dst: carry<25, 19>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:432,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:433,1
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:435,1
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:436,1
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:437,1
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:438,1
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:439,1
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:440,1
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:441,1
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:442,1
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:443,1
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:444,1
    - Dst: Botan::Ed25519_FieldElement::Ed25519_FieldElement
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:447,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 26
    argCount: 1
    argNames:
    - iter
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 326
    functionDepth: 1
    functionLinenumber: 326
    functionLinenumberEnd: 448
    functionName: Botan::Ed25519_FieldElement::sqr_iter
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int64_t>
    - Botan::Ed25519_FieldElement::Ed25519_FieldElement
    - static_cast<int32_t>
    - carry<25, 19>
    - carry<26>
    - carry<25>
    linkageType: ''
    returnType: Ed25519_FieldElement
    signature: Ed25519_FieldElement Ed25519_FieldElement::sqr_iter(size_t iter) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:491,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:492,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:493,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:494,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:495,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:496,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:497,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:498,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:499,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:500,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:501,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:502,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:503,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:504,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:505,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:506,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:507,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:508,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:509,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:510,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:511,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:512,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:513,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:514,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:515,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:516,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:517,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:518,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:519,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:520,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:521,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:522,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:523,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:524,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:525,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:526,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:527,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:528,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:529,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:530,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:531,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:532,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:533,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:534,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:535,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:536,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:537,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:538,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:539,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:540,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:541,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:542,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:543,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:544,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:545,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:569,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:570,1
    - Dst: carry<25>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:572,1
    - Dst: carry<25>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:573,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:575,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:576,1
    - Dst: carry<25>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:578,1
    - Dst: carry<25>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:579,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:580,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:581,1
    - Dst: carry<25, 19>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:582,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:583,1
    - Dst: Botan::Ed25519_FieldElement::Ed25519_FieldElement
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 466
    functionDepth: 1
    functionLinenumber: 466
    functionLinenumberEnd: 586
    functionName: Botan::Ed25519_FieldElement::sqr2
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp
    functionUses: 0
    functionsReached:
    - static_cast<int64_t>
    - Botan::Ed25519_FieldElement::Ed25519_FieldElement
    - carry<25, 19>
    - carry<26>
    - carry<25>
    linkageType: ''
    returnType: Ed25519_FieldElement
    signature: Ed25519_FieldElement Ed25519_FieldElement::sqr2() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_4
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:592,1
    - Dst: load_3
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:593,1
    - Dst: load_3
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:594,1
    - Dst: load_3
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:595,1
    - Dst: load_3
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:596,1
    - Dst: load_4
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:597,1
    - Dst: load_3
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:598,1
    - Dst: load_3
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:599,1
    - Dst: load_3
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:600,1
    - Dst: load_3
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:601,1
    - Dst: carry<25, 19>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:603,1
    - Dst: carry<25>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:604,1
    - Dst: carry<25>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:605,1
    - Dst: carry<25>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:606,1
    - Dst: carry<25>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:607,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:609,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:610,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:611,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:612,1
    - Dst: carry<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:613,1
    - Dst: Botan::Ed25519_FieldElement::Ed25519_FieldElement
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 1
    argNames:
    - s
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 591
    functionDepth: 1
    functionLinenumber: 591
    functionLinenumberEnd: 616
    functionName: Botan::Ed25519_FieldElement::deserialize
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp
    functionUses: 0
    functionsReached:
    - Botan::Ed25519_FieldElement::Ed25519_FieldElement
    - carry<25, 19>
    - load_4
    - carry<26>
    - load_3
    - carry<25>
    linkageType: ''
    returnType: Ed25519_FieldElement
    signature: Ed25519_FieldElement Ed25519_FieldElement::deserialize(const uint8_t
      s[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:657,1
    - Dst: carry0<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:673,1
    - Dst: carry0<25>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:674,1
    - Dst: carry0<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:675,1
    - Dst: carry0<25>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:676,1
    - Dst: carry0<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:677,1
    - Dst: carry0<25>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:678,1
    - Dst: carry0<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:679,1
    - Dst: carry0<25>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:680,1
    - Dst: carry0<26>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:681,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:694,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:695,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:696,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:697,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:698,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:699,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:700,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:701,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:702,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:703,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:704,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:705,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:706,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:707,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:708,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:709,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:710,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:711,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:712,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:713,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:714,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:715,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:716,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:717,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:718,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:719,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:720,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:721,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:722,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:723,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:724,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp:725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 54
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::span<uint8_t, 32>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 726
    functionName: Botan::Ed25519_FieldElement::serialize_to
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.cpp
    functionUses: 0
    functionsReached:
    - carry0<26>
    - static_cast<uint8_t>
    - carry0<25>
    - static_cast<int32_t>
    linkageType: ''
    returnType: void
    signature: void Ed25519_FieldElement::serialize_to(std::span<uint8_t, 32> s) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PublicKeyOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: Botan::supports_operation
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519.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: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: Botan::get_public_key
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & get_public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PublicKeyOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 35
    functionName: Botan::supports_operation
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519.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: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: Botan::get_public_key
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & get_public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    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: get_private_key
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> & get_private_key() 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: raw_private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519.h
    functionUses: 34
    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: 5
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - Ed25519_Point_Completed
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: Botan::Ed25519_Point_Projective::from
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Ed25519_Point_Projective
    signature: Ed25519_Point_Projective from(const Ed25519_Point_Completed& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_FieldElement::zero
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:66,1
    - Dst: Botan::Ed25519_FieldElement::one
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:67,1
    - Dst: Botan::Ed25519_FieldElement::one
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: Botan::Ed25519_Point_Projective::identity
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached:
    - Botan::Ed25519_FieldElement::one
    - Botan::Ed25519_FieldElement::zero
    linkageType: ''
    returnType: Ed25519_Point_Projective
    signature: Ed25519_Point_Projective identity()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_Point_Projective::Z::invert
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:73,1
    - Dst: auto::serialize_to
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:76,1
    - Dst: auto::is_negative
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::span<uint8_t, 32>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: Botan::Ed25519_Point_Projective::serialize_to
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached:
    - auto::is_negative
    - Botan::Ed25519_Point_Projective::Z::invert
    - auto::serialize_to
    linkageType: ''
    returnType: void
    signature: void serialize_to(std::span<uint8_t, 32> s) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqr
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:85,1
    - Dst: sqr
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:86,1
    - Dst: sqr2
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:87,1
    - Dst: Ed25519_Point_Completed::Y::sqr
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 95
    functionName: Botan::Ed25519_Point_Projective::dbl
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached:
    - Ed25519_Point_Completed::Y::sqr
    - sqr
    - sqr2
    linkageType: ''
    returnType: Ed25519_Point_Completed
    signature: Ed25519_Point_Completed Ed25519_Point_Projective::dbl() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_FieldElement::zero
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:111,1
    - Dst: Botan::Ed25519_FieldElement::one
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:112,1
    - Dst: Botan::Ed25519_FieldElement::one
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:113,1
    - Dst: Botan::Ed25519_FieldElement::zero
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 116
    functionName: Botan::Ed25519_Point_Extended::identity
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached:
    - Botan::Ed25519_FieldElement::one
    - Botan::Ed25519_FieldElement::zero
    linkageType: ''
    returnType: Ed25519_Point_Extended
    signature: Ed25519_Point_Extended identity()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Ed25519_Point_Projective::dbl
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 124
    functionName: Botan::Ed25519_Point_Extended::dbl
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached:
    - Ed25519_Point_Projective::dbl
    linkageType: ''
    returnType: Ed25519_Point_Completed
    signature: Ed25519_Point_Completed dbl() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - Ed25519_Point_Completed
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 136
    functionName: Botan::Ed25519_Point_Extended::from
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Ed25519_Point_Extended
    signature: Ed25519_Point_Extended from(const Ed25519_Point_Completed& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_Point_Extended::Z::invert
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:139,1
    - Dst: auto::serialize_to
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:142,1
    - Dst: auto::is_negative
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::span<uint8_t, 32>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: Botan::Ed25519_Point_Extended::serialize_to
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached:
    - Botan::Ed25519_Point_Extended::Z::invert
    - auto::is_negative
    - auto::serialize_to
    linkageType: ''
    returnType: void
    signature: void serialize_to(std::span<uint8_t, 32> out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_FieldElement::one
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:162,1
    - Dst: Botan::Ed25519_FieldElement::one
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:163,1
    - Dst: Botan::Ed25519_FieldElement::zero
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 166
    functionName: Botan::Ed25519_Point_Niels::identity
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached:
    - Botan::Ed25519_FieldElement::one
    - Botan::Ed25519_FieldElement::zero
    linkageType: ''
    returnType: Ed25519_Point_Niels
    signature: Ed25519_Point_Niels identity()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - Ed25519_Point_Extended
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 188
    functionName: Botan::Ed25519_Point_Cached::from
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Ed25519_Point_Cached
    signature: Ed25519_Point_Cached from(const Ed25519_Point_Extended& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_Point_Cached::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:194,1
    - Dst: Botan::Ed25519_Point_Extended::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - Ed25519_Point_Completed
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 195
    functionName: Botan::Ed25519_Point_Cached::from
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 1
    functionsReached:
    - Botan::Ed25519_Point_Cached::from
    - Botan::Ed25519_Point_Extended::from
    linkageType: ''
    returnType: Ed25519_Point_Cached
    signature: Ed25519_Point_Cached from(const Ed25519_Point_Completed& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - ' p'
    - ' q'
    argTypes:
    - Ed25519_Point_Extended
    - Ed25519_Point_Cached
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 215
    functionName: operator+(const Ed25519_Point_Extended& p, const Ed25519_Point_Cached&
      q)
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Ed25519_Point_Completed
    signature: Ed25519_Point_Completed operator+(const Ed25519_Point_Extended& p,
      const Ed25519_Point_Cached& q)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - ' p'
    - ' q'
    argTypes:
    - Ed25519_Point_Extended
    - Ed25519_Point_Niels
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 233
    functionName: operator+(const Ed25519_Point_Extended& p, const Ed25519_Point_Niels&
      q)
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Ed25519_Point_Completed
    signature: Ed25519_Point_Completed operator+(const Ed25519_Point_Extended& p,
      const Ed25519_Point_Niels& q)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - ' p'
    - ' q'
    argTypes:
    - Ed25519_Point_Extended
    - Ed25519_Point_Niels
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 251
    functionName: operator-(const Ed25519_Point_Extended& p, const Ed25519_Point_Niels&
      q)
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Ed25519_Point_Completed
    signature: Ed25519_Point_Completed operator-(const Ed25519_Point_Extended& p,
      const Ed25519_Point_Niels& q)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - ' p'
    - ' q'
    argTypes:
    - Ed25519_Point_Extended
    - Ed25519_Point_Cached
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 270
    functionName: operator-(const Ed25519_Point_Extended& p, const Ed25519_Point_Cached&
      q)
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Ed25519_Point_Completed
    signature: Ed25519_Point_Completed operator-(const Ed25519_Point_Extended& p,
      const Ed25519_Point_Cached& q)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 1
    argNames:
    - a
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 303
    functionName: Botan::slide
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::array<int8_t, 256>
    signature: std::array<int8_t, 256> slide(const uint8_t* a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_Point_Extended::identity
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:311,1
    - Dst: Botan::Ed25519_FieldElement::deserialize
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:312,1
    - Dst: std::span<const uint8_t, 32>::data
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:312,1
    - Dst: Botan::Ed25519_FieldElement::one
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:313,1
    - Dst: auto::Y::sqr
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:314,1
    - Dst: auto::sqr
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:319,1
    - Dst: auto::sqr
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:320,1
    - Dst: auto::X::pow_22523
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:324,1
    - Dst: auto::X::sqr
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:328,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:331,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:333,1
    - Dst: auto::X::is_negative
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:339,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::span<const uint8_t, 32>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 345
    functionName: Botan::frombytes_negate_vartime
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached:
    - auto::X::sqr
    - auto::is_zero
    - auto::sqr
    - std::span<const uint8_t, 32>::data
    - auto::Y::sqr
    - auto::X::pow_22523
    - auto::X::is_negative
    - Botan::Ed25519_Point_Extended::identity
    - Botan::Ed25519_FieldElement::deserialize
    - Botan::Ed25519_FieldElement::one
    linkageType: ''
    returnType: std::optional<Ed25519_Point_Extended>
    signature: std::optional<Ed25519_Point_Extended> frombytes_negate_vartime(std::span<const
      uint8_t, 32> s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Botan::slide
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:401,1
    - Dst: Botan::slide
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:402,1
    - Dst: Botan::Ed25519_Point_Cached::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:405,1
    - Dst: Botan::Ed25519_Point_Extended::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:406,1
    - Dst: dbl
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:406,1
    - Dst: Botan::Ed25519_Point_Cached::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:409,1
    - Dst: Botan::Ed25519_Point_Projective::identity
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:412,1
    - Dst: auto::dbl
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:427,1
    - Dst: Botan::Ed25519_Point_Extended::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:430,1
    - Dst: Botan::Ed25519_Point_Extended::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:432,1
    - Dst: Botan::Ed25519_Point_Extended::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:436,1
    - Dst: Botan::Ed25519_Point_Extended::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:438,1
    - Dst: Botan::Ed25519_Point_Projective::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:441,1
    - Dst: auto::serialize_to
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:444,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 4
    argNames:
    - out
    - a
    - ' A'
    - b
    argTypes:
    - std::span<uint8_t, 32>
    - uint8_t*
    - Ed25519_Point_Extended
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 354
    functionDepth: 2
    functionLinenumber: 354
    functionLinenumberEnd: 445
    functionName: Botan::ge_double_scalarmult_vartime
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached:
    - Botan::slide
    - auto::dbl
    - Botan::Ed25519_Point_Projective::from
    - Botan::Ed25519_Point_Cached::from
    - Botan::Ed25519_Point_Projective::identity
    - auto::serialize_to
    - Botan::Ed25519_Point_Extended::from
    - dbl
    linkageType: ''
    returnType: void
    signature: "void ge_double_scalarmult_vartime(std::span<uint8_t, 32> out,\n                                  const
      uint8_t* a,\n                                  const Ed25519_Point_Extended&
      A,\n                                  const uint8_t* b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - c
    argTypes:
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 449
    functionName: Botan::equal32
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached:
    - Botan::ct_is_equal
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t equal32(uint8_t b, uint8_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - int8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 453
    functionName: Botan::negative
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t negative(int8_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::negative
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:456,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:457,1
    - Dst: Botan::equal32
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:458,1
    - Dst: Botan::equal32
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:460,1
    - Dst: Botan::equal32
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:461,1
    - Dst: Botan::equal32
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:462,1
    - Dst: Botan::equal32
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:463,1
    - Dst: Botan::equal32
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:464,1
    - Dst: Botan::equal32
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:465,1
    - Dst: Botan::equal32
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:466,1
    - Dst: Botan::equal32
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:467,1
    - Dst: Botan::Ed25519_Point_Niels::identity
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:469,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - base
    - b
    argTypes:
    - Ed25519_Point_Niels[]
    - int8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 455
    functionDepth: 2
    functionLinenumber: 455
    functionLinenumberEnd: 503
    functionName: Botan::select
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 2
    functionsReached:
    - Botan::equal32
    - static_cast<int>
    - Botan::negative
    - Botan::Ed25519_Point_Niels::identity
    linkageType: ''
    returnType: Ed25519_Point_Niels
    signature: Ed25519_Point_Niels select(const Ed25519_Point_Niels base[8], int8_t
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - Ed25519_Point_Completed
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: Botan::Ed25519_Point_Projective::from
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Ed25519_Point_Projective
    signature: Ed25519_Point_Projective from(const Ed25519_Point_Completed& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_FieldElement::zero
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:66,1
    - Dst: Botan::Ed25519_FieldElement::one
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:67,1
    - Dst: Botan::Ed25519_FieldElement::one
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: Botan::Ed25519_Point_Projective::identity
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 1
    functionsReached:
    - Botan::Ed25519_FieldElement::one
    - Botan::Ed25519_FieldElement::zero
    linkageType: ''
    returnType: Ed25519_Point_Projective
    signature: Ed25519_Point_Projective identity()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_Point_Projective::Z::invert
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:73,1
    - Dst: auto::serialize_to
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:76,1
    - Dst: auto::is_negative
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::span<uint8_t, 32>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: Botan::Ed25519_Point_Projective::serialize_to
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached:
    - auto::is_negative
    - Botan::Ed25519_Point_Projective::Z::invert
    - auto::serialize_to
    linkageType: ''
    returnType: void
    signature: void serialize_to(std::span<uint8_t, 32> s) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqr
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:85,1
    - Dst: sqr
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:86,1
    - Dst: sqr2
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:87,1
    - Dst: Ed25519_Point_Completed::Y::sqr
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 95
    functionName: Botan::Ed25519_Point_Projective::dbl
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached:
    - Ed25519_Point_Completed::Y::sqr
    - sqr
    - sqr2
    linkageType: ''
    returnType: Ed25519_Point_Completed
    signature: Ed25519_Point_Completed Ed25519_Point_Projective::dbl() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_FieldElement::zero
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:111,1
    - Dst: Botan::Ed25519_FieldElement::one
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:112,1
    - Dst: Botan::Ed25519_FieldElement::one
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:113,1
    - Dst: Botan::Ed25519_FieldElement::zero
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 116
    functionName: Botan::Ed25519_Point_Extended::identity
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 1
    functionsReached:
    - Botan::Ed25519_FieldElement::one
    - Botan::Ed25519_FieldElement::zero
    linkageType: ''
    returnType: Ed25519_Point_Extended
    signature: Ed25519_Point_Extended identity()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Ed25519_Point_Projective::dbl
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 124
    functionName: Botan::Ed25519_Point_Extended::dbl
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached:
    - Ed25519_Point_Projective::dbl
    linkageType: ''
    returnType: Ed25519_Point_Completed
    signature: Ed25519_Point_Completed dbl() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - Ed25519_Point_Completed
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 136
    functionName: Botan::Ed25519_Point_Extended::from
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Ed25519_Point_Extended
    signature: Ed25519_Point_Extended from(const Ed25519_Point_Completed& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_Point_Extended::Z::invert
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:139,1
    - Dst: auto::serialize_to
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:142,1
    - Dst: auto::is_negative
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::span<uint8_t, 32>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: Botan::Ed25519_Point_Extended::serialize_to
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached:
    - Botan::Ed25519_Point_Extended::Z::invert
    - auto::is_negative
    - auto::serialize_to
    linkageType: ''
    returnType: void
    signature: void serialize_to(std::span<uint8_t, 32> out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_FieldElement::one
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:162,1
    - Dst: Botan::Ed25519_FieldElement::one
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:163,1
    - Dst: Botan::Ed25519_FieldElement::zero
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 166
    functionName: Botan::Ed25519_Point_Niels::identity
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 1
    functionsReached:
    - Botan::Ed25519_FieldElement::one
    - Botan::Ed25519_FieldElement::zero
    linkageType: ''
    returnType: Ed25519_Point_Niels
    signature: Ed25519_Point_Niels identity()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - Ed25519_Point_Extended
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 188
    functionName: Botan::Ed25519_Point_Cached::from
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Ed25519_Point_Cached
    signature: Ed25519_Point_Cached from(const Ed25519_Point_Extended& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_Point_Cached::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:194,1
    - Dst: Botan::Ed25519_Point_Extended::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - Ed25519_Point_Completed
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 195
    functionName: Botan::Ed25519_Point_Cached::from
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 3
    functionsReached:
    - Botan::Ed25519_Point_Cached::from
    - Botan::Ed25519_Point_Extended::from
    linkageType: ''
    returnType: Ed25519_Point_Cached
    signature: Ed25519_Point_Cached from(const Ed25519_Point_Completed& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - ' p'
    - ' q'
    argTypes:
    - Ed25519_Point_Extended
    - Ed25519_Point_Cached
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 215
    functionName: operator+(const Ed25519_Point_Extended& p, const Ed25519_Point_Cached&
      q)
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Ed25519_Point_Completed
    signature: Ed25519_Point_Completed operator+(const Ed25519_Point_Extended& p,
      const Ed25519_Point_Cached& q)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - ' p'
    - ' q'
    argTypes:
    - Ed25519_Point_Extended
    - Ed25519_Point_Niels
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 233
    functionName: operator+(const Ed25519_Point_Extended& p, const Ed25519_Point_Niels&
      q)
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Ed25519_Point_Completed
    signature: Ed25519_Point_Completed operator+(const Ed25519_Point_Extended& p,
      const Ed25519_Point_Niels& q)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - ' p'
    - ' q'
    argTypes:
    - Ed25519_Point_Extended
    - Ed25519_Point_Niels
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 251
    functionName: operator-(const Ed25519_Point_Extended& p, const Ed25519_Point_Niels&
      q)
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Ed25519_Point_Completed
    signature: Ed25519_Point_Completed operator-(const Ed25519_Point_Extended& p,
      const Ed25519_Point_Niels& q)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - ' p'
    - ' q'
    argTypes:
    - Ed25519_Point_Extended
    - Ed25519_Point_Cached
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 270
    functionName: operator-(const Ed25519_Point_Extended& p, const Ed25519_Point_Cached&
      q)
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Ed25519_Point_Completed
    signature: Ed25519_Point_Completed operator-(const Ed25519_Point_Extended& p,
      const Ed25519_Point_Cached& q)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 1
    argNames:
    - a
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 303
    functionName: Botan::slide
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::array<int8_t, 256>
    signature: std::array<int8_t, 256> slide(const uint8_t* a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_Point_Extended::identity
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:311,1
    - Dst: Botan::Ed25519_FieldElement::deserialize
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:312,1
    - Dst: std::span<const uint8_t, 32>::data
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:312,1
    - Dst: Botan::Ed25519_FieldElement::one
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:313,1
    - Dst: auto::Y::sqr
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:314,1
    - Dst: auto::sqr
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:319,1
    - Dst: auto::sqr
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:320,1
    - Dst: auto::X::pow_22523
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:324,1
    - Dst: auto::X::sqr
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:328,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:331,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:333,1
    - Dst: auto::X::is_negative
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:339,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::span<const uint8_t, 32>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 345
    functionName: Botan::frombytes_negate_vartime
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached:
    - auto::X::sqr
    - auto::is_zero
    - auto::sqr
    - std::span<const uint8_t, 32>::data
    - auto::Y::sqr
    - auto::X::pow_22523
    - auto::X::is_negative
    - Botan::Ed25519_Point_Extended::identity
    - Botan::Ed25519_FieldElement::deserialize
    - Botan::Ed25519_FieldElement::one
    linkageType: ''
    returnType: std::optional<Ed25519_Point_Extended>
    signature: std::optional<Ed25519_Point_Extended> frombytes_negate_vartime(std::span<const
      uint8_t, 32> s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Botan::slide
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:401,1
    - Dst: Botan::slide
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:402,1
    - Dst: Botan::Ed25519_Point_Cached::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:405,1
    - Dst: Botan::Ed25519_Point_Extended::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:406,1
    - Dst: dbl
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:406,1
    - Dst: Botan::Ed25519_Point_Cached::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:409,1
    - Dst: Botan::Ed25519_Point_Projective::identity
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:412,1
    - Dst: auto::dbl
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:427,1
    - Dst: Botan::Ed25519_Point_Extended::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:430,1
    - Dst: Botan::Ed25519_Point_Extended::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:432,1
    - Dst: Botan::Ed25519_Point_Extended::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:436,1
    - Dst: Botan::Ed25519_Point_Extended::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:438,1
    - Dst: Botan::Ed25519_Point_Projective::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:441,1
    - Dst: auto::serialize_to
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:444,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 4
    argNames:
    - out
    - a
    - ' A'
    - b
    argTypes:
    - std::span<uint8_t, 32>
    - uint8_t*
    - Ed25519_Point_Extended
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 354
    functionDepth: 2
    functionLinenumber: 354
    functionLinenumberEnd: 445
    functionName: Botan::ge_double_scalarmult_vartime
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached:
    - Botan::slide
    - auto::dbl
    - Botan::Ed25519_Point_Projective::from
    - Botan::Ed25519_Point_Cached::from
    - Botan::Ed25519_Point_Projective::identity
    - auto::serialize_to
    - Botan::Ed25519_Point_Extended::from
    - dbl
    linkageType: ''
    returnType: void
    signature: "void ge_double_scalarmult_vartime(std::span<uint8_t, 32> out,\n                                  const
      uint8_t* a,\n                                  const Ed25519_Point_Extended&
      A,\n                                  const uint8_t* b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - c
    argTypes:
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 449
    functionName: Botan::equal32
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 1
    functionsReached:
    - Botan::ct_is_equal
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t equal32(uint8_t b, uint8_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - int8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 453
    functionName: Botan::negative
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 1
    functionsReached:
    - static_cast<uint8_t>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t negative(int8_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::negative
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:456,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:457,1
    - Dst: Botan::equal32
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:458,1
    - Dst: Botan::equal32
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:460,1
    - Dst: Botan::equal32
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:461,1
    - Dst: Botan::equal32
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:462,1
    - Dst: Botan::equal32
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:463,1
    - Dst: Botan::equal32
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:464,1
    - Dst: Botan::equal32
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:465,1
    - Dst: Botan::equal32
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:466,1
    - Dst: Botan::equal32
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:467,1
    - Dst: Botan::Ed25519_Point_Niels::identity
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:469,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - base
    - b
    argTypes:
    - Ed25519_Point_Niels[]
    - int8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 455
    functionDepth: 2
    functionLinenumber: 455
    functionLinenumberEnd: 503
    functionName: Botan::select
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 2
    functionsReached:
    - Botan::equal32
    - static_cast<int>
    - Botan::negative
    - Botan::Ed25519_Point_Niels::identity
    linkageType: ''
    returnType: Ed25519_Point_Niels
    signature: Ed25519_Point_Niels select(const Ed25519_Point_Niels base[8], int8_t
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:1866,1
    - Dst: Botan::Ed25519_Point_Extended::identity
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:1884,1
    - Dst: Botan::Ed25519_Point_Extended::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:1886,1
    - Dst: Botan::select
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:1886,1
    - Dst: Botan::Ed25519_Point_Projective::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:1889,1
    - Dst: auto::dbl
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:1889,1
    - Dst: Botan::Ed25519_Point_Projective::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:1890,1
    - Dst: auto::dbl
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:1890,1
    - Dst: Botan::Ed25519_Point_Projective::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:1891,1
    - Dst: auto::dbl
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:1891,1
    - Dst: Botan::Ed25519_Point_Extended::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:1892,1
    - Dst: auto::dbl
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:1892,1
    - Dst: Botan::Ed25519_Point_Extended::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:1895,1
    - Dst: Botan::select
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:1895,1
    - Dst: auto::serialize_to
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:1898,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:1900,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:1901,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - out
    - a
    argTypes:
    - std::span<uint8_t, 32>
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1902
      start: 1863
    functionDepth: 2
    functionLinenumber: 1863
    functionLinenumberEnd: 1902
    functionName: Botan::ed25519_basepoint_mul
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::poison
    - auto::dbl
    - Botan::Ed25519_Point_Projective::from
    - Botan::select
    - auto::serialize_to
    - Botan::Ed25519_Point_Extended::from
    - Botan::CT::unpoison
    - Botan::Ed25519_Point_Extended::identity
    linkageType: ''
    returnType: void
    signature: void ed25519_basepoint_mul(std::span<uint8_t, 32> out, const uint8_t
      a[32])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::frombytes_negate_vartime
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:1905,1
    - Dst: Botan::ge_double_scalarmult_vartime
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:1907,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:1908,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:1908,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - pk
    - h
    - r
    - s
    argTypes:
    - std::span<const uint8_t, 32>
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1911
      start: 1904
    functionDepth: 3
    functionLinenumber: 1904
    functionLinenumberEnd: 1911
    functionName: Botan::signature_check
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached:
    - Botan::frombytes_negate_vartime
    - std::array::data
    - Botan::ge_double_scalarmult_vartime
    - Botan::CT::is_equal
    linkageType: ''
    returnType: bool
    signature: bool signature_check(std::span<const uint8_t, 32> pk, const uint8_t
      h[32], const uint8_t r[32], const uint8_t s[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - Ed25519_Point_Completed
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: Botan::Ed25519_Point_Projective::from
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: Ed25519_Point_Projective
    signature: Ed25519_Point_Projective from(const Ed25519_Point_Completed& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_FieldElement::zero
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:66,1
    - Dst: Botan::Ed25519_FieldElement::one
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:67,1
    - Dst: Botan::Ed25519_FieldElement::one
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: Botan::Ed25519_Point_Projective::identity
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 2
    functionsReached:
    - Botan::Ed25519_FieldElement::one
    - Botan::Ed25519_FieldElement::zero
    linkageType: ''
    returnType: Ed25519_Point_Projective
    signature: Ed25519_Point_Projective identity()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_Point_Projective::Z::invert
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:73,1
    - Dst: auto::serialize_to
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:76,1
    - Dst: auto::is_negative
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::span<uint8_t, 32>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: Botan::Ed25519_Point_Projective::serialize_to
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached:
    - auto::is_negative
    - Botan::Ed25519_Point_Projective::Z::invert
    - auto::serialize_to
    linkageType: ''
    returnType: void
    signature: void serialize_to(std::span<uint8_t, 32> s) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqr
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:85,1
    - Dst: sqr
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:86,1
    - Dst: sqr2
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:87,1
    - Dst: Ed25519_Point_Completed::Y::sqr
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 95
    functionName: Botan::Ed25519_Point_Projective::dbl
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached:
    - Ed25519_Point_Completed::Y::sqr
    - sqr
    - sqr2
    linkageType: ''
    returnType: Ed25519_Point_Completed
    signature: Ed25519_Point_Completed Ed25519_Point_Projective::dbl() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_FieldElement::zero
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:111,1
    - Dst: Botan::Ed25519_FieldElement::one
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:112,1
    - Dst: Botan::Ed25519_FieldElement::one
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:113,1
    - Dst: Botan::Ed25519_FieldElement::zero
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 116
    functionName: Botan::Ed25519_Point_Extended::identity
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 3
    functionsReached:
    - Botan::Ed25519_FieldElement::one
    - Botan::Ed25519_FieldElement::zero
    linkageType: ''
    returnType: Ed25519_Point_Extended
    signature: Ed25519_Point_Extended identity()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Ed25519_Point_Projective::dbl
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 124
    functionName: Botan::Ed25519_Point_Extended::dbl
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached:
    - Ed25519_Point_Projective::dbl
    linkageType: ''
    returnType: Ed25519_Point_Completed
    signature: Ed25519_Point_Completed dbl() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - Ed25519_Point_Completed
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 136
    functionName: Botan::Ed25519_Point_Extended::from
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: Ed25519_Point_Extended
    signature: Ed25519_Point_Extended from(const Ed25519_Point_Completed& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_Point_Extended::Z::invert
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:139,1
    - Dst: auto::serialize_to
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:142,1
    - Dst: auto::is_negative
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::span<uint8_t, 32>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: Botan::Ed25519_Point_Extended::serialize_to
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached:
    - Botan::Ed25519_Point_Extended::Z::invert
    - auto::is_negative
    - auto::serialize_to
    linkageType: ''
    returnType: void
    signature: void serialize_to(std::span<uint8_t, 32> out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_FieldElement::one
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:162,1
    - Dst: Botan::Ed25519_FieldElement::one
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:163,1
    - Dst: Botan::Ed25519_FieldElement::zero
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 166
    functionName: Botan::Ed25519_Point_Niels::identity
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 2
    functionsReached:
    - Botan::Ed25519_FieldElement::one
    - Botan::Ed25519_FieldElement::zero
    linkageType: ''
    returnType: Ed25519_Point_Niels
    signature: Ed25519_Point_Niels identity()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - Ed25519_Point_Extended
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 188
    functionName: Botan::Ed25519_Point_Cached::from
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: Ed25519_Point_Cached
    signature: Ed25519_Point_Cached from(const Ed25519_Point_Extended& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_Point_Cached::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:194,1
    - Dst: Botan::Ed25519_Point_Extended::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - Ed25519_Point_Completed
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 195
    functionName: Botan::Ed25519_Point_Cached::from
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 5
    functionsReached:
    - Botan::Ed25519_Point_Cached::from
    - Botan::Ed25519_Point_Extended::from
    linkageType: ''
    returnType: Ed25519_Point_Cached
    signature: Ed25519_Point_Cached from(const Ed25519_Point_Completed& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - ' p'
    - ' q'
    argTypes:
    - Ed25519_Point_Extended
    - Ed25519_Point_Cached
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 215
    functionName: operator+(const Ed25519_Point_Extended& p, const Ed25519_Point_Cached&
      q)
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Ed25519_Point_Completed
    signature: Ed25519_Point_Completed operator+(const Ed25519_Point_Extended& p,
      const Ed25519_Point_Cached& q)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - ' p'
    - ' q'
    argTypes:
    - Ed25519_Point_Extended
    - Ed25519_Point_Niels
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 233
    functionName: operator+(const Ed25519_Point_Extended& p, const Ed25519_Point_Niels&
      q)
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Ed25519_Point_Completed
    signature: Ed25519_Point_Completed operator+(const Ed25519_Point_Extended& p,
      const Ed25519_Point_Niels& q)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - ' p'
    - ' q'
    argTypes:
    - Ed25519_Point_Extended
    - Ed25519_Point_Niels
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 251
    functionName: operator-(const Ed25519_Point_Extended& p, const Ed25519_Point_Niels&
      q)
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Ed25519_Point_Completed
    signature: Ed25519_Point_Completed operator-(const Ed25519_Point_Extended& p,
      const Ed25519_Point_Niels& q)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - ' p'
    - ' q'
    argTypes:
    - Ed25519_Point_Extended
    - Ed25519_Point_Cached
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 270
    functionName: operator-(const Ed25519_Point_Extended& p, const Ed25519_Point_Cached&
      q)
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Ed25519_Point_Completed
    signature: Ed25519_Point_Completed operator-(const Ed25519_Point_Extended& p,
      const Ed25519_Point_Cached& q)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 1
    argNames:
    - a
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 303
    functionName: Botan::slide
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::array<int8_t, 256>
    signature: std::array<int8_t, 256> slide(const uint8_t* a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_Point_Extended::identity
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:311,1
    - Dst: Botan::Ed25519_FieldElement::deserialize
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:312,1
    - Dst: std::span<const uint8_t, 32>::data
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:312,1
    - Dst: Botan::Ed25519_FieldElement::one
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:313,1
    - Dst: auto::Y::sqr
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:314,1
    - Dst: auto::sqr
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:319,1
    - Dst: auto::sqr
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:320,1
    - Dst: auto::X::pow_22523
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:324,1
    - Dst: auto::X::sqr
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:328,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:331,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:333,1
    - Dst: auto::X::is_negative
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:339,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::span<const uint8_t, 32>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 345
    functionName: Botan::frombytes_negate_vartime
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 1
    functionsReached:
    - auto::X::sqr
    - auto::is_zero
    - auto::sqr
    - std::span<const uint8_t, 32>::data
    - auto::Y::sqr
    - auto::X::pow_22523
    - auto::X::is_negative
    - Botan::Ed25519_Point_Extended::identity
    - Botan::Ed25519_FieldElement::deserialize
    - Botan::Ed25519_FieldElement::one
    linkageType: ''
    returnType: std::optional<Ed25519_Point_Extended>
    signature: std::optional<Ed25519_Point_Extended> frombytes_negate_vartime(std::span<const
      uint8_t, 32> s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Botan::slide
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:401,1
    - Dst: Botan::slide
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:402,1
    - Dst: Botan::Ed25519_Point_Cached::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:405,1
    - Dst: Botan::Ed25519_Point_Extended::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:406,1
    - Dst: dbl
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:406,1
    - Dst: Botan::Ed25519_Point_Cached::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:409,1
    - Dst: Botan::Ed25519_Point_Projective::identity
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:412,1
    - Dst: auto::dbl
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:427,1
    - Dst: Botan::Ed25519_Point_Extended::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:430,1
    - Dst: Botan::Ed25519_Point_Extended::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:432,1
    - Dst: Botan::Ed25519_Point_Extended::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:436,1
    - Dst: Botan::Ed25519_Point_Extended::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:438,1
    - Dst: Botan::Ed25519_Point_Projective::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:441,1
    - Dst: auto::serialize_to
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:444,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 4
    argNames:
    - out
    - a
    - ' A'
    - b
    argTypes:
    - std::span<uint8_t, 32>
    - uint8_t*
    - Ed25519_Point_Extended
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 354
    functionDepth: 2
    functionLinenumber: 354
    functionLinenumberEnd: 445
    functionName: Botan::ge_double_scalarmult_vartime
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 1
    functionsReached:
    - Botan::slide
    - auto::dbl
    - Botan::Ed25519_Point_Projective::from
    - Botan::Ed25519_Point_Cached::from
    - Botan::Ed25519_Point_Projective::identity
    - auto::serialize_to
    - Botan::Ed25519_Point_Extended::from
    - dbl
    linkageType: ''
    returnType: void
    signature: "void ge_double_scalarmult_vartime(std::span<uint8_t, 32> out,\n                                  const
      uint8_t* a,\n                                  const Ed25519_Point_Extended&
      A,\n                                  const uint8_t* b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - c
    argTypes:
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 449
    functionName: Botan::equal32
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 2
    functionsReached:
    - Botan::ct_is_equal
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t equal32(uint8_t b, uint8_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - int8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 453
    functionName: Botan::negative
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 2
    functionsReached:
    - static_cast<uint8_t>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t negative(int8_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::negative
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:456,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:457,1
    - Dst: Botan::equal32
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:458,1
    - Dst: Botan::equal32
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:460,1
    - Dst: Botan::equal32
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:461,1
    - Dst: Botan::equal32
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:462,1
    - Dst: Botan::equal32
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:463,1
    - Dst: Botan::equal32
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:464,1
    - Dst: Botan::equal32
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:465,1
    - Dst: Botan::equal32
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:466,1
    - Dst: Botan::equal32
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:467,1
    - Dst: Botan::Ed25519_Point_Niels::identity
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:469,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - base
    - b
    argTypes:
    - Ed25519_Point_Niels[]
    - int8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 455
    functionDepth: 2
    functionLinenumber: 455
    functionLinenumberEnd: 503
    functionName: Botan::select
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 3
    functionsReached:
    - Botan::equal32
    - static_cast<int>
    - Botan::negative
    - Botan::Ed25519_Point_Niels::identity
    linkageType: ''
    returnType: Ed25519_Point_Niels
    signature: Ed25519_Point_Niels select(const Ed25519_Point_Niels base[8], int8_t
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - Ed25519_Point_Completed
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: Botan::Ed25519_Point_Projective::from
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: Ed25519_Point_Projective
    signature: Ed25519_Point_Projective from(const Ed25519_Point_Completed& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_FieldElement::zero
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:66,1
    - Dst: Botan::Ed25519_FieldElement::one
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:67,1
    - Dst: Botan::Ed25519_FieldElement::one
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: Botan::Ed25519_Point_Projective::identity
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 3
    functionsReached:
    - Botan::Ed25519_FieldElement::one
    - Botan::Ed25519_FieldElement::zero
    linkageType: ''
    returnType: Ed25519_Point_Projective
    signature: Ed25519_Point_Projective identity()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_Point_Projective::Z::invert
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:73,1
    - Dst: auto::serialize_to
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:76,1
    - Dst: auto::is_negative
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::span<uint8_t, 32>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 78
    functionName: Botan::Ed25519_Point_Projective::serialize_to
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached:
    - auto::is_negative
    - Botan::Ed25519_Point_Projective::Z::invert
    - auto::serialize_to
    linkageType: ''
    returnType: void
    signature: void serialize_to(std::span<uint8_t, 32> s) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sqr
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:85,1
    - Dst: sqr
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:86,1
    - Dst: sqr2
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:87,1
    - Dst: Ed25519_Point_Completed::Y::sqr
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 95
    functionName: Botan::Ed25519_Point_Projective::dbl
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached:
    - Ed25519_Point_Completed::Y::sqr
    - sqr
    - sqr2
    linkageType: ''
    returnType: Ed25519_Point_Completed
    signature: Ed25519_Point_Completed Ed25519_Point_Projective::dbl() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_FieldElement::zero
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:111,1
    - Dst: Botan::Ed25519_FieldElement::one
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:112,1
    - Dst: Botan::Ed25519_FieldElement::one
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:113,1
    - Dst: Botan::Ed25519_FieldElement::zero
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 109
    functionDepth: 1
    functionLinenumber: 109
    functionLinenumberEnd: 116
    functionName: Botan::Ed25519_Point_Extended::identity
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 4
    functionsReached:
    - Botan::Ed25519_FieldElement::one
    - Botan::Ed25519_FieldElement::zero
    linkageType: ''
    returnType: Ed25519_Point_Extended
    signature: Ed25519_Point_Extended identity()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Ed25519_Point_Projective::dbl
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 124
    functionName: Botan::Ed25519_Point_Extended::dbl
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached:
    - Ed25519_Point_Projective::dbl
    linkageType: ''
    returnType: Ed25519_Point_Completed
    signature: Ed25519_Point_Completed dbl() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - Ed25519_Point_Completed
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 136
    functionName: Botan::Ed25519_Point_Extended::from
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: Ed25519_Point_Extended
    signature: Ed25519_Point_Extended from(const Ed25519_Point_Completed& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_Point_Extended::Z::invert
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:139,1
    - Dst: auto::serialize_to
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:142,1
    - Dst: auto::is_negative
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - out
    argTypes:
    - std::span<uint8_t, 32>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: Botan::Ed25519_Point_Extended::serialize_to
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached:
    - Botan::Ed25519_Point_Extended::Z::invert
    - auto::is_negative
    - auto::serialize_to
    linkageType: ''
    returnType: void
    signature: void serialize_to(std::span<uint8_t, 32> out) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_FieldElement::one
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:162,1
    - Dst: Botan::Ed25519_FieldElement::one
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:163,1
    - Dst: Botan::Ed25519_FieldElement::zero
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 166
    functionName: Botan::Ed25519_Point_Niels::identity
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 3
    functionsReached:
    - Botan::Ed25519_FieldElement::one
    - Botan::Ed25519_FieldElement::zero
    linkageType: ''
    returnType: Ed25519_Point_Niels
    signature: Ed25519_Point_Niels identity()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - Ed25519_Point_Extended
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 188
    functionName: Botan::Ed25519_Point_Cached::from
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: Ed25519_Point_Cached
    signature: Ed25519_Point_Cached from(const Ed25519_Point_Extended& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_Point_Cached::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:194,1
    - Dst: Botan::Ed25519_Point_Extended::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' p'
    argTypes:
    - Ed25519_Point_Completed
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 195
    functionName: Botan::Ed25519_Point_Cached::from
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 7
    functionsReached:
    - Botan::Ed25519_Point_Cached::from
    - Botan::Ed25519_Point_Extended::from
    linkageType: ''
    returnType: Ed25519_Point_Cached
    signature: Ed25519_Point_Cached from(const Ed25519_Point_Completed& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - ' p'
    - ' q'
    argTypes:
    - Ed25519_Point_Extended
    - Ed25519_Point_Cached
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 215
    functionName: operator+(const Ed25519_Point_Extended& p, const Ed25519_Point_Cached&
      q)
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Ed25519_Point_Completed
    signature: Ed25519_Point_Completed operator+(const Ed25519_Point_Extended& p,
      const Ed25519_Point_Cached& q)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - ' p'
    - ' q'
    argTypes:
    - Ed25519_Point_Extended
    - Ed25519_Point_Niels
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 233
    functionName: operator+(const Ed25519_Point_Extended& p, const Ed25519_Point_Niels&
      q)
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Ed25519_Point_Completed
    signature: Ed25519_Point_Completed operator+(const Ed25519_Point_Extended& p,
      const Ed25519_Point_Niels& q)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 2
    argNames:
    - ' p'
    - ' q'
    argTypes:
    - Ed25519_Point_Extended
    - Ed25519_Point_Niels
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 251
    functionName: operator-(const Ed25519_Point_Extended& p, const Ed25519_Point_Niels&
      q)
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Ed25519_Point_Completed
    signature: Ed25519_Point_Completed operator-(const Ed25519_Point_Extended& p,
      const Ed25519_Point_Niels& q)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - ' p'
    - ' q'
    argTypes:
    - Ed25519_Point_Extended
    - Ed25519_Point_Cached
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 270
    functionName: operator-(const Ed25519_Point_Extended& p, const Ed25519_Point_Cached&
      q)
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Ed25519_Point_Completed
    signature: Ed25519_Point_Completed operator-(const Ed25519_Point_Extended& p,
      const Ed25519_Point_Cached& q)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 1
    argNames:
    - a
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 303
    functionName: Botan::slide
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: std::array<int8_t, 256>
    signature: std::array<int8_t, 256> slide(const uint8_t* a)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_Point_Extended::identity
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:311,1
    - Dst: Botan::Ed25519_FieldElement::deserialize
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:312,1
    - Dst: std::span<const uint8_t, 32>::data
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:312,1
    - Dst: Botan::Ed25519_FieldElement::one
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:313,1
    - Dst: auto::Y::sqr
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:314,1
    - Dst: auto::sqr
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:319,1
    - Dst: auto::sqr
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:320,1
    - Dst: auto::X::pow_22523
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:324,1
    - Dst: auto::X::sqr
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:328,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:331,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:333,1
    - Dst: auto::X::is_negative
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:339,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::span<const uint8_t, 32>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 345
    functionName: Botan::frombytes_negate_vartime
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 1
    functionsReached:
    - auto::X::sqr
    - auto::is_zero
    - auto::sqr
    - std::span<const uint8_t, 32>::data
    - auto::Y::sqr
    - auto::X::pow_22523
    - auto::X::is_negative
    - Botan::Ed25519_Point_Extended::identity
    - Botan::Ed25519_FieldElement::deserialize
    - Botan::Ed25519_FieldElement::one
    linkageType: ''
    returnType: std::optional<Ed25519_Point_Extended>
    signature: std::optional<Ed25519_Point_Extended> frombytes_negate_vartime(std::span<const
      uint8_t, 32> s)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Botan::slide
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:401,1
    - Dst: Botan::slide
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:402,1
    - Dst: Botan::Ed25519_Point_Cached::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:405,1
    - Dst: Botan::Ed25519_Point_Extended::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:406,1
    - Dst: dbl
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:406,1
    - Dst: Botan::Ed25519_Point_Cached::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:409,1
    - Dst: Botan::Ed25519_Point_Projective::identity
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:412,1
    - Dst: auto::dbl
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:427,1
    - Dst: Botan::Ed25519_Point_Extended::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:430,1
    - Dst: Botan::Ed25519_Point_Extended::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:432,1
    - Dst: Botan::Ed25519_Point_Extended::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:436,1
    - Dst: Botan::Ed25519_Point_Extended::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:438,1
    - Dst: Botan::Ed25519_Point_Projective::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:441,1
    - Dst: auto::serialize_to
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:444,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 4
    argNames:
    - out
    - a
    - ' A'
    - b
    argTypes:
    - std::span<uint8_t, 32>
    - uint8_t*
    - Ed25519_Point_Extended
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 354
    functionDepth: 2
    functionLinenumber: 354
    functionLinenumberEnd: 445
    functionName: Botan::ge_double_scalarmult_vartime
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 1
    functionsReached:
    - Botan::slide
    - auto::dbl
    - Botan::Ed25519_Point_Projective::from
    - Botan::Ed25519_Point_Cached::from
    - Botan::Ed25519_Point_Projective::identity
    - auto::serialize_to
    - Botan::Ed25519_Point_Extended::from
    - dbl
    linkageType: ''
    returnType: void
    signature: "void ge_double_scalarmult_vartime(std::span<uint8_t, 32> out,\n                                  const
      uint8_t* a,\n                                  const Ed25519_Point_Extended&
      A,\n                                  const uint8_t* b)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:448,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - b
    - c
    argTypes:
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 447
    functionDepth: 1
    functionLinenumber: 447
    functionLinenumberEnd: 449
    functionName: Botan::equal32
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 3
    functionsReached:
    - Botan::ct_is_equal
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t equal32(uint8_t b, uint8_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:452,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - int8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 453
    functionName: Botan::negative
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 3
    functionsReached:
    - static_cast<uint8_t>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t negative(int8_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::negative
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:456,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:457,1
    - Dst: Botan::equal32
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:458,1
    - Dst: Botan::equal32
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:460,1
    - Dst: Botan::equal32
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:461,1
    - Dst: Botan::equal32
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:462,1
    - Dst: Botan::equal32
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:463,1
    - Dst: Botan::equal32
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:464,1
    - Dst: Botan::equal32
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:465,1
    - Dst: Botan::equal32
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:466,1
    - Dst: Botan::equal32
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:467,1
    - Dst: Botan::Ed25519_Point_Niels::identity
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:469,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - base
    - b
    argTypes:
    - Ed25519_Point_Niels[]
    - int8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 455
    functionDepth: 2
    functionLinenumber: 455
    functionLinenumberEnd: 503
    functionName: Botan::select
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 3
    functionsReached:
    - Botan::equal32
    - static_cast<int>
    - Botan::negative
    - Botan::Ed25519_Point_Niels::identity
    linkageType: ''
    returnType: Ed25519_Point_Niels
    signature: Ed25519_Point_Niels select(const Ed25519_Point_Niels base[8], int8_t
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:1866,1
    - Dst: Botan::Ed25519_Point_Extended::identity
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:1884,1
    - Dst: Botan::Ed25519_Point_Extended::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:1886,1
    - Dst: Botan::select
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:1886,1
    - Dst: Botan::Ed25519_Point_Projective::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:1889,1
    - Dst: auto::dbl
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:1889,1
    - Dst: Botan::Ed25519_Point_Projective::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:1890,1
    - Dst: auto::dbl
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:1890,1
    - Dst: Botan::Ed25519_Point_Projective::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:1891,1
    - Dst: auto::dbl
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:1891,1
    - Dst: Botan::Ed25519_Point_Extended::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:1892,1
    - Dst: auto::dbl
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:1892,1
    - Dst: Botan::Ed25519_Point_Extended::from
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:1895,1
    - Dst: Botan::select
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:1895,1
    - Dst: auto::serialize_to
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:1898,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:1900,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:1901,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - out
    - a
    argTypes:
    - std::span<uint8_t, 32>
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1902
      start: 1863
    functionDepth: 2
    functionLinenumber: 1863
    functionLinenumberEnd: 1902
    functionName: Botan::ed25519_basepoint_mul
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::poison
    - auto::dbl
    - Botan::Ed25519_Point_Projective::from
    - Botan::select
    - auto::serialize_to
    - Botan::Ed25519_Point_Extended::from
    - Botan::CT::unpoison
    - Botan::Ed25519_Point_Extended::identity
    linkageType: ''
    returnType: void
    signature: void ed25519_basepoint_mul(std::span<uint8_t, 32> out, const uint8_t
      a[32])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::frombytes_negate_vartime
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:1905,1
    - Dst: Botan::ge_double_scalarmult_vartime
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:1907,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:1908,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/ed25519/ge.cpp:1908,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - pk
    - h
    - r
    - s
    argTypes:
    - std::span<const uint8_t, 32>
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1911
      start: 1904
    functionDepth: 3
    functionLinenumber: 1904
    functionLinenumberEnd: 1911
    functionName: Botan::signature_check
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ge.cpp
    functionUses: 0
    functionsReached:
    - Botan::frombytes_negate_vartime
    - std::array::data
    - Botan::ge_double_scalarmult_vartime
    - Botan::CT::is_equal
    linkageType: ''
    returnType: bool
    signature: bool signature_check(std::span<const uint8_t, 32> pk, const uint8_t
      h[32], const uint8_t r[32], const uint8_t s[32])
  - 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::Ed25519_FieldElement::Ed25519_FieldElement
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed25519_FieldElement()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_FieldElement::Ed25519_FieldElement
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.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::Ed25519_FieldElement::zero
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h
    functionUses: 12
    functionsReached:
    - Botan::Ed25519_FieldElement::Ed25519_FieldElement
    linkageType: ''
    returnType: Ed25519_FieldElement
    signature: Ed25519_FieldElement zero()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_FieldElement::Ed25519_FieldElement
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: Botan::Ed25519_FieldElement::one
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h
    functionUses: 16
    functionsReached:
    - Botan::Ed25519_FieldElement::Ed25519_FieldElement
    linkageType: ''
    returnType: Ed25519_FieldElement
    signature: Ed25519_FieldElement one()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:45,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:45,1
    - Dst: std::span<int32_t, 10>::data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fe
    argTypes:
    - std::span<int32_t, 10>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Botan::Ed25519_FieldElement::Ed25519_FieldElement
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h
    functionUses: 10
    functionsReached:
    - copy_mem
    - data
    - std::span<int32_t, 10>::data
    linkageType: ''
    returnType: void
    signature: void Ed25519_FieldElement(std::span<int32_t, 10> fe)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:58,1
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:59,1
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:60,1
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:61,1
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:62,1
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:63,1
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:64,1
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:65,1
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:66,1
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 10
    argNames:
    - h0
    - h1
    - h2
    - h3
    - h4
    - h5
    - h6
    - h7
    - h8
    - h9
    argTypes:
    - int64_t
    - int64_t
    - int64_t
    - int64_t
    - int64_t
    - int64_t
    - int64_t
    - int64_t
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 68
    functionName: Botan::Ed25519_FieldElement::Ed25519_FieldElement
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h
    functionUses: 10
    functionsReached:
    - static_cast<int32_t>
    linkageType: ''
    returnType: void
    signature: "void Ed25519_FieldElement(int64_t h0,\n                                     int64_t
      h1,\n                                     int64_t h2,\n                                     int64_t
      h3,\n                                     int64_t h4,\n                                     int64_t
      h5,\n                                     int64_t h6,\n                                     int64_t
      h7,\n                                     int64_t h8,\n                                     int64_t
      h9)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_FieldElement::serialize_to
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:76,1
    - Dst: Botan::CT::all_zeros
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:77,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:77,1
    - Dst: std::array::size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: Botan::Ed25519_FieldElement::is_zero
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h
    functionUses: 0
    functionsReached:
    - Botan::Ed25519_FieldElement::serialize_to
    - Botan::CT::all_zeros
    - std::array::data
    - std::array::size
    linkageType: ''
    returnType: bool
    signature: bool is_zero() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_FieldElement::serialize_to
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: Botan::Ed25519_FieldElement::is_negative
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h
    functionUses: 0
    functionsReached:
    - Botan::Ed25519_FieldElement::serialize_to
    linkageType: ''
    returnType: bool
    signature: bool is_negative() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - Ed25519_FieldElement
    - Ed25519_FieldElement
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 97
    functionName: Botan::Ed25519_FieldElement::add
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Ed25519_FieldElement
    signature: Ed25519_FieldElement add(const Ed25519_FieldElement& a, const Ed25519_FieldElement&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - Ed25519_FieldElement
    - Ed25519_FieldElement
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 105
    functionName: Botan::Ed25519_FieldElement::sub
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Ed25519_FieldElement
    signature: Ed25519_FieldElement sub(const Ed25519_FieldElement& a, const Ed25519_FieldElement&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - Ed25519_FieldElement
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 113
    functionName: Botan::Ed25519_FieldElement::negate
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Ed25519_FieldElement
    signature: Ed25519_FieldElement negate(const Ed25519_FieldElement& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_FieldElement::sqr_iter
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: Botan::Ed25519_FieldElement::sqr
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h
    functionUses: 4
    functionsReached:
    - Botan::Ed25519_FieldElement::sqr_iter
    linkageType: ''
    returnType: Ed25519_FieldElement
    signature: Ed25519_FieldElement sqr() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: operator[](size_t i) const
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t operator[](size_t i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: '& operator[](size_t i)'
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t & operator[](size_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_FieldElement::add
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - Ed25519_FieldElement
    - Ed25519_FieldElement
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: operator+(const Ed25519_FieldElement& x, const Ed25519_FieldElement&
      y)
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h
    functionUses: 0
    functionsReached:
    - Botan::Ed25519_FieldElement::add
    linkageType: ''
    returnType: Ed25519_FieldElement
    signature: Ed25519_FieldElement operator+(const Ed25519_FieldElement& x, const
      Ed25519_FieldElement& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_FieldElement::sub
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - Ed25519_FieldElement
    - Ed25519_FieldElement
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 143
    functionName: operator-(const Ed25519_FieldElement& x, const Ed25519_FieldElement&
      y)
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h
    functionUses: 0
    functionsReached:
    - Botan::Ed25519_FieldElement::sub
    linkageType: ''
    returnType: Ed25519_FieldElement
    signature: Ed25519_FieldElement operator-(const Ed25519_FieldElement& x, const
      Ed25519_FieldElement& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_FieldElement::mul
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - Ed25519_FieldElement
    - Ed25519_FieldElement
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: operator*(const Ed25519_FieldElement& x, const Ed25519_FieldElement&
      y)
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h
    functionUses: 0
    functionsReached:
    - Botan::Ed25519_FieldElement::mul
    linkageType: ''
    returnType: Ed25519_FieldElement
    signature: Ed25519_FieldElement operator*(const Ed25519_FieldElement& x, const
      Ed25519_FieldElement& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_FieldElement::negate
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - Ed25519_FieldElement
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: operator-(const Ed25519_FieldElement& x)
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h
    functionUses: 0
    functionsReached:
    - Botan::Ed25519_FieldElement::negate
    linkageType: ''
    returnType: Ed25519_FieldElement
    signature: Ed25519_FieldElement operator-(const Ed25519_FieldElement& x)
  - 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::Ed25519_FieldElement::Ed25519_FieldElement
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed25519_FieldElement()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_FieldElement::Ed25519_FieldElement
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.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::Ed25519_FieldElement::zero
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h
    functionUses: 12
    functionsReached:
    - Botan::Ed25519_FieldElement::Ed25519_FieldElement
    linkageType: ''
    returnType: Ed25519_FieldElement
    signature: Ed25519_FieldElement zero()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_FieldElement::Ed25519_FieldElement
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 42
    functionName: Botan::Ed25519_FieldElement::one
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h
    functionUses: 16
    functionsReached:
    - Botan::Ed25519_FieldElement::Ed25519_FieldElement
    linkageType: ''
    returnType: Ed25519_FieldElement
    signature: Ed25519_FieldElement one()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:45,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:45,1
    - Dst: std::span<int32_t, 10>::data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fe
    argTypes:
    - std::span<int32_t, 10>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Botan::Ed25519_FieldElement::Ed25519_FieldElement
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h
    functionUses: 12
    functionsReached:
    - copy_mem
    - data
    - std::span<int32_t, 10>::data
    linkageType: ''
    returnType: void
    signature: void Ed25519_FieldElement(std::span<int32_t, 10> fe)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:58,1
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:59,1
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:60,1
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:61,1
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:62,1
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:63,1
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:64,1
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:65,1
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:66,1
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 10
    argNames:
    - h0
    - h1
    - h2
    - h3
    - h4
    - h5
    - h6
    - h7
    - h8
    - h9
    argTypes:
    - int64_t
    - int64_t
    - int64_t
    - int64_t
    - int64_t
    - int64_t
    - int64_t
    - int64_t
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 68
    functionName: Botan::Ed25519_FieldElement::Ed25519_FieldElement
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h
    functionUses: 12
    functionsReached:
    - static_cast<int32_t>
    linkageType: ''
    returnType: void
    signature: "void Ed25519_FieldElement(int64_t h0,\n                                     int64_t
      h1,\n                                     int64_t h2,\n                                     int64_t
      h3,\n                                     int64_t h4,\n                                     int64_t
      h5,\n                                     int64_t h6,\n                                     int64_t
      h7,\n                                     int64_t h8,\n                                     int64_t
      h9)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_FieldElement::serialize_to
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:76,1
    - Dst: Botan::CT::all_zeros
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:77,1
    - Dst: std::array::data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:77,1
    - Dst: std::array::size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: Botan::Ed25519_FieldElement::is_zero
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h
    functionUses: 0
    functionsReached:
    - Botan::Ed25519_FieldElement::serialize_to
    - Botan::CT::all_zeros
    - std::array::data
    - std::array::size
    linkageType: ''
    returnType: bool
    signature: bool is_zero() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_FieldElement::serialize_to
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: Botan::Ed25519_FieldElement::is_negative
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h
    functionUses: 0
    functionsReached:
    - Botan::Ed25519_FieldElement::serialize_to
    linkageType: ''
    returnType: bool
    signature: bool is_negative() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - Ed25519_FieldElement
    - Ed25519_FieldElement
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 97
    functionName: Botan::Ed25519_FieldElement::add
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Ed25519_FieldElement
    signature: Ed25519_FieldElement add(const Ed25519_FieldElement& a, const Ed25519_FieldElement&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - Ed25519_FieldElement
    - Ed25519_FieldElement
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 105
    functionName: Botan::Ed25519_FieldElement::sub
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Ed25519_FieldElement
    signature: Ed25519_FieldElement sub(const Ed25519_FieldElement& a, const Ed25519_FieldElement&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' a'
    argTypes:
    - Ed25519_FieldElement
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 113
    functionName: Botan::Ed25519_FieldElement::negate
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: Ed25519_FieldElement
    signature: Ed25519_FieldElement negate(const Ed25519_FieldElement& a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_FieldElement::sqr_iter
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: Botan::Ed25519_FieldElement::sqr
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h
    functionUses: 4
    functionsReached:
    - Botan::Ed25519_FieldElement::sqr_iter
    linkageType: ''
    returnType: Ed25519_FieldElement
    signature: Ed25519_FieldElement sqr() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: operator[](size_t i) const
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t operator[](size_t i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 131
    functionName: '& operator[](size_t i)'
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int32_t
    signature: int32_t & operator[](size_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_FieldElement::add
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - Ed25519_FieldElement
    - Ed25519_FieldElement
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: operator+(const Ed25519_FieldElement& x, const Ed25519_FieldElement&
      y)
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h
    functionUses: 0
    functionsReached:
    - Botan::Ed25519_FieldElement::add
    linkageType: ''
    returnType: Ed25519_FieldElement
    signature: Ed25519_FieldElement operator+(const Ed25519_FieldElement& x, const
      Ed25519_FieldElement& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_FieldElement::sub
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - Ed25519_FieldElement
    - Ed25519_FieldElement
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 143
    functionName: operator-(const Ed25519_FieldElement& x, const Ed25519_FieldElement&
      y)
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h
    functionUses: 0
    functionsReached:
    - Botan::Ed25519_FieldElement::sub
    linkageType: ''
    returnType: Ed25519_FieldElement
    signature: Ed25519_FieldElement operator-(const Ed25519_FieldElement& x, const
      Ed25519_FieldElement& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_FieldElement::mul
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - Ed25519_FieldElement
    - Ed25519_FieldElement
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: operator*(const Ed25519_FieldElement& x, const Ed25519_FieldElement&
      y)
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h
    functionUses: 0
    functionsReached:
    - Botan::Ed25519_FieldElement::mul
    linkageType: ''
    returnType: Ed25519_FieldElement
    signature: Ed25519_FieldElement operator*(const Ed25519_FieldElement& x, const
      Ed25519_FieldElement& y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_FieldElement::negate
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - Ed25519_FieldElement
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: operator-(const Ed25519_FieldElement& x)
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_fe.h
    functionUses: 0
    functionsReached:
    - Botan::Ed25519_FieldElement::negate
    linkageType: ''
    returnType: Ed25519_FieldElement
    signature: Ed25519_FieldElement operator-(const Ed25519_FieldElement& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_internal.h:19,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_internal.h:19,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_internal.h:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: Botan::load_3
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_internal.h
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t load_3(const uint8_t in[3])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_internal.h:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: Botan::load_4
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_internal.h
    functionUses: 0
    functionsReached:
    - Botan::load_le
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t load_4(const uint8_t* in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_internal.h:30,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_internal.h:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' h0'
    - ' h1'
    argTypes:
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 35
    functionName: Botan::carry
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_internal.h
    functionUses: 0
    functionsReached:
    - static_cast<int64_t>
    linkageType: ''
    returnType: void
    signature: "void carry(int64_t& h0, int64_t& h1)\n   requires(S > 0 && S < 64)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_internal.h:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' h0'
    - ' h1'
    argTypes:
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 45
    functionName: Botan::carry0
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_internal.h
    functionUses: 0
    functionsReached:
    - static_cast<int64_t>
    linkageType: ''
    returnType: void
    signature: "void carry0(int64_t& h0, int64_t& h1)\n   requires(S > 0 && S < 64)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_internal.h:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' h0'
    - ' h1'
    argTypes:
    - int32_t
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 55
    functionName: Botan::carry0
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_internal.h
    functionUses: 0
    functionsReached:
    - static_cast<int64_t>
    linkageType: ''
    returnType: void
    signature: "void carry0(int32_t& h0, int32_t& h1)\n   requires(S > 0 && S < 32)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 7
    argNames:
    - ' s1'
    - ' s2'
    - ' s3'
    - ' s4'
    - ' s5'
    - ' s6'
    - ' X'
    argTypes:
    - int64_t
    - int64_t
    - int64_t
    - int64_t
    - int64_t
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 65
    functionName: Botan::redc_mul
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void redc_mul(int64_t& s1, int64_t& s2, int64_t& s3, int64_t& s4, int64_t&
      s5, int64_t& s6, int64_t& X)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_internal.h:19,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_internal.h:19,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_internal.h:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: Botan::load_3
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_internal.h
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t load_3(const uint8_t in[3])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_internal.h:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - in
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: Botan::load_4
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_internal.h
    functionUses: 0
    functionsReached:
    - Botan::load_le
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t load_4(const uint8_t* in)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_internal.h:30,1
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_internal.h:31,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' h0'
    - ' h1'
    argTypes:
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 35
    functionName: Botan::carry
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_internal.h
    functionUses: 0
    functionsReached:
    - static_cast<int64_t>
    linkageType: ''
    returnType: void
    signature: "void carry(int64_t& h0, int64_t& h1)\n   requires(S > 0 && S < 64)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_internal.h:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' h0'
    - ' h1'
    argTypes:
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 45
    functionName: Botan::carry0
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_internal.h
    functionUses: 0
    functionsReached:
    - static_cast<int64_t>
    linkageType: ''
    returnType: void
    signature: "void carry0(int64_t& h0, int64_t& h1)\n   requires(S > 0 && S < 64)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int64_t>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_internal.h:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' h0'
    - ' h1'
    argTypes:
    - int32_t
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 55
    functionName: Botan::carry0
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_internal.h
    functionUses: 0
    functionsReached:
    - static_cast<int64_t>
    linkageType: ''
    returnType: void
    signature: "void carry0(int32_t& h0, int32_t& h1)\n   requires(S > 0 && S < 32)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 7
    argNames:
    - ' s1'
    - ' s2'
    - ' s3'
    - ' s4'
    - ' s5'
    - ' s6'
    - ' X'
    argTypes:
    - int64_t
    - int64_t
    - int64_t
    - int64_t
    - int64_t
    - int64_t
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 65
    functionName: Botan::redc_mul
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void redc_mul(int64_t& s1, int64_t& s2, int64_t& s3, int64_t& s4, int64_t&
      s5, int64_t& s6, int64_t& X)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:23,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:24,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:25,1
    - Dst: Botan::ed25519_basepoint_mul
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:30,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:32,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - pk
    - sk
    - seed
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 20
    functionDepth: 3
    functionLinenumber: 20
    functionLinenumberEnd: 34
    functionName: Botan::ed25519_gen_keypair
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - Botan::ed25519_basepoint_mul
    - Botan::HashFunction::create_or_throw
    - Botan::copy_mem
    - auto::final
    linkageType: ''
    returnType: void
    signature: void ed25519_gen_keypair(uint8_t pk[32], uint8_t sk[64], const uint8_t
      seed[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:46,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:48,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:49,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:54,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:55,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:56,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:57,1
    - Dst: Botan::sc_reduce
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:59,1
    - Dst: Botan::ed25519_basepoint_mul
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:60,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:62,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:63,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:64,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:65,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:66,1
    - Dst: Botan::sc_reduce
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:68,1
    - Dst: Botan::sc_muladd
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 6
    argNames:
    - sig
    - m
    - mlen
    - sk
    - domain_sep
    - domain_sep_len
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 70
    functionName: Botan::ed25519_sign
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - Botan::ed25519_basepoint_mul
    - Botan::sc_muladd
    - Botan::sc_reduce
    - Botan::HashFunction::create_or_throw
    - auto::final
    linkageType: ''
    returnType: void
    signature: "void ed25519_sign(uint8_t sig[64],\n                  const uint8_t
      m[],\n                  size_t mlen,\n                  const uint8_t sk[64],\n
      \                 const uint8_t domain_sep[],\n                  size_t domain_sep_len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:89,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:90,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:91,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:92,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:109,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:111,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:112,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:113,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:114,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:115,1
    - Dst: Botan::sc_reduce
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:116,1
    - Dst: Botan::signature_check
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:118,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 6
    argNames:
    - m
    - mlen
    - sig
    - pk
    - domain_sep
    - domain_sep_len
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t[]
    - uint8_t*
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 72
    functionDepth: 4
    functionLinenumber: 72
    functionLinenumberEnd: 119
    functionName: Botan::ed25519_verify
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - Botan::sc_reduce
    - Botan::signature_check
    - Botan::HashFunction::create_or_throw
    - Botan::load_le
    - auto::final
    linkageType: ''
    returnType: bool
    signature: "bool ed25519_verify(const uint8_t* m,\n                    size_t
      mlen,\n                    const uint8_t sig[64],\n                    const
      uint8_t* pk,\n                    const uint8_t domain_sep[],\n                    size_t
      domain_sep_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:23,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:24,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:25,1
    - Dst: Botan::ed25519_basepoint_mul
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:30,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:32,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - pk
    - sk
    - seed
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 20
    functionDepth: 3
    functionLinenumber: 20
    functionLinenumberEnd: 34
    functionName: Botan::ed25519_gen_keypair
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - Botan::ed25519_basepoint_mul
    - Botan::HashFunction::create_or_throw
    - Botan::copy_mem
    - auto::final
    linkageType: ''
    returnType: void
    signature: void ed25519_gen_keypair(uint8_t pk[32], uint8_t sk[64], const uint8_t
      seed[32])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:46,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:48,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:49,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:54,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:55,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:56,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:57,1
    - Dst: Botan::sc_reduce
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:59,1
    - Dst: Botan::ed25519_basepoint_mul
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:60,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:62,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:63,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:64,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:65,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:66,1
    - Dst: Botan::sc_reduce
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:68,1
    - Dst: Botan::sc_muladd
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 6
    argNames:
    - sig
    - m
    - mlen
    - sk
    - domain_sep
    - domain_sep_len
    argTypes:
    - uint8_t[]
    - uint8_t[]
    - size_t
    - uint8_t[]
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 70
    functionName: Botan::ed25519_sign
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - Botan::ed25519_basepoint_mul
    - Botan::sc_muladd
    - Botan::sc_reduce
    - Botan::HashFunction::create_or_throw
    - auto::final
    linkageType: ''
    returnType: void
    signature: "void ed25519_sign(uint8_t sig[64],\n                  const uint8_t
      m[],\n                  size_t mlen,\n                  const uint8_t sk[64],\n
      \                 const uint8_t domain_sep[],\n                  size_t domain_sep_len)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:89,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:90,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:91,1
    - Dst: Botan::load_le
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:92,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:109,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:111,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:112,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:113,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:114,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:115,1
    - Dst: Botan::sc_reduce
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:116,1
    - Dst: Botan::signature_check
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp:118,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 6
    argNames:
    - m
    - mlen
    - sig
    - pk
    - domain_sep
    - domain_sep_len
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t[]
    - uint8_t*
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 72
    functionDepth: 4
    functionLinenumber: 72
    functionLinenumberEnd: 119
    functionName: Botan::ed25519_verify
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - Botan::sc_reduce
    - Botan::signature_check
    - Botan::HashFunction::create_or_throw
    - Botan::load_le
    - auto::final
    linkageType: ''
    returnType: bool
    signature: "bool ed25519_verify(const uint8_t* m,\n                    size_t
      mlen,\n                    const uint8_t sig[64],\n                    const
      uint8_t* pk,\n                    const uint8_t domain_sep[],\n                    size_t
      domain_sep_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:28,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:29,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:30,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:31,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:32,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:33,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:34,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:35,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:36,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:37,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:38,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:39,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:40,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:41,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:42,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:43,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:44,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:45,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:46,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:47,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:48,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:49,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:50,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:51,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:53,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:54,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:55,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:56,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:57,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:58,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:60,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:61,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:62,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:63,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:64,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:65,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:67,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:68,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:69,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:70,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:71,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:73,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:74,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:75,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:76,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:77,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:78,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:80,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:81,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:82,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:83,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:84,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:85,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:87,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:88,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:89,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:90,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:91,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:92,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:94,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:96,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:97,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:98,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:99,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:100,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:101,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:102,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:103,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:104,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:105,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:106,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:107,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:109,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:111,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:112,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:113,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:114,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:115,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:116,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:117,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:118,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:119,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:120,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:121,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:122,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:124,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:125,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:126,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:127,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:128,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:129,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:130,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:131,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:132,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:133,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:134,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:135,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:136,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:137,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:138,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:139,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:140,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:141,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:142,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:143,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:144,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:145,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:146,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:147,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:148,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:149,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:150,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:151,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:152,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:153,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:154,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 94
    argCount: 1
    argNames:
    - s
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 156
    functionName: Botan::sc_reduce
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp
    functionUses: 4
    functionsReached:
    - Botan::carry0
    - Botan::carry
    - Botan::load_4
    - Botan::load_3
    - static_cast<uint8_t>
    - Botan::redc_mul
    linkageType: ''
    returnType: void
    signature: void sc_reduce(uint8_t* s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:28,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:29,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:30,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:31,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:32,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:33,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:34,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:35,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:36,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:37,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:38,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:39,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:40,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:41,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:42,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:43,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:44,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:45,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:46,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:47,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:48,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:49,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:50,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:51,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:53,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:54,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:55,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:56,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:57,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:58,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:60,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:61,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:62,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:63,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:64,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:65,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:67,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:68,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:69,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:70,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:71,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:73,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:74,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:75,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:76,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:77,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:78,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:80,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:81,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:82,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:83,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:84,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:85,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:87,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:88,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:89,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:90,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:91,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:92,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:94,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:96,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:97,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:98,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:99,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:100,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:101,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:102,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:103,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:104,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:105,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:106,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:107,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:109,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:111,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:112,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:113,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:114,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:115,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:116,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:117,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:118,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:119,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:120,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:121,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:122,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:124,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:125,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:126,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:127,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:128,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:129,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:130,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:131,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:132,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:133,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:134,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:135,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:136,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:137,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:138,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:139,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:140,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:141,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:142,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:143,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:144,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:145,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:146,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:147,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:148,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:149,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:150,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:151,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:152,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:153,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:154,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 94
    argCount: 1
    argNames:
    - s
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 25
    functionDepth: 2
    functionLinenumber: 25
    functionLinenumberEnd: 156
    functionName: Botan::sc_reduce
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/sc_reduce.cpp
    functionUses: 4
    functionsReached:
    - Botan::carry0
    - Botan::carry
    - Botan::load_4
    - Botan::load_3
    - static_cast<uint8_t>
    - Botan::redc_mul
    linkageType: ''
    returnType: void
    signature: void sc_reduce(uint8_t* s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:29,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:30,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:31,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:32,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:33,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:34,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:35,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:36,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:37,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:38,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:39,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:40,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:41,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:42,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:43,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:44,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:45,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:46,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:47,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:48,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:49,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:50,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:51,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:52,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:53,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:54,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:55,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:56,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:57,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:58,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:59,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:60,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:61,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:62,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:63,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:64,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:94,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:95,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:96,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:97,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:98,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:99,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:100,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:101,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:102,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:103,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:104,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:105,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:107,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:108,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:109,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:110,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:111,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:112,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:113,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:114,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:115,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:116,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:117,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:119,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:120,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:121,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:122,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:123,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:124,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:126,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:127,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:128,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:129,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:130,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:131,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:133,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:134,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:135,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:136,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:137,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:139,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:140,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:141,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:142,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:143,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:144,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:146,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:147,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:148,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:149,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:150,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:151,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:153,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:154,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:155,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:156,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:157,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:158,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:160,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:162,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:163,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:164,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:165,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:166,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:167,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:168,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:169,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:170,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:171,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:172,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:173,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:175,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:177,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:178,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:179,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:180,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:181,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:182,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:183,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:184,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:185,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:186,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:187,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:189,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:190,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:191,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:192,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:193,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:194,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:195,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:196,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:197,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:198,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:199,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:200,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:201,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:202,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:203,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:204,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:205,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:206,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:207,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:208,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:209,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:210,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:211,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:212,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:213,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:214,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:215,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:216,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:217,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:218,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:219,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 116
    argCount: 4
    argNames:
    - s
    - a
    - b
    - c
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 221
    functionName: Botan::sc_muladd
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp
    functionUses: 2
    functionsReached:
    - Botan::carry0
    - Botan::carry
    - Botan::load_4
    - Botan::load_3
    - static_cast<uint8_t>
    - Botan::redc_mul
    linkageType: ''
    returnType: void
    signature: void sc_muladd(uint8_t* s, const uint8_t* a, const uint8_t* b, const
      uint8_t* c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:29,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:30,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:31,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:32,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:33,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:34,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:35,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:36,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:37,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:38,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:39,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:40,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:41,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:42,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:43,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:44,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:45,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:46,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:47,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:48,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:49,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:50,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:51,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:52,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:53,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:54,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:55,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:56,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:57,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:58,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:59,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:60,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:61,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:62,1
    - Dst: Botan::load_3
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:63,1
    - Dst: Botan::load_4
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:64,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:94,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:95,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:96,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:97,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:98,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:99,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:100,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:101,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:102,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:103,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:104,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:105,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:107,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:108,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:109,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:110,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:111,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:112,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:113,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:114,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:115,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:116,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:117,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:119,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:120,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:121,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:122,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:123,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:124,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:126,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:127,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:128,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:129,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:130,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:131,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:133,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:134,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:135,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:136,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:137,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:139,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:140,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:141,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:142,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:143,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:144,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:146,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:147,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:148,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:149,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:150,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:151,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:153,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:154,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:155,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:156,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:157,1
    - Dst: Botan::carry
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:158,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:160,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:162,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:163,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:164,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:165,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:166,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:167,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:168,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:169,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:170,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:171,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:172,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:173,1
    - Dst: Botan::redc_mul
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:175,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:177,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:178,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:179,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:180,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:181,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:182,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:183,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:184,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:185,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:186,1
    - Dst: Botan::carry0
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:187,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:189,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:190,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:191,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:192,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:193,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:194,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:195,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:196,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:197,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:198,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:199,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:200,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:201,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:202,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:203,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:204,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:205,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:206,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:207,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:208,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:209,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:210,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:211,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:212,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:213,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:214,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:215,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:216,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:217,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:218,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:219,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 116
    argCount: 4
    argNames:
    - s
    - a
    - b
    - c
    argTypes:
    - uint8_t*
    - uint8_t*
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 221
    functionName: Botan::sc_muladd
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/sc_muladd.cpp
    functionUses: 2
    functionsReached:
    - Botan::carry0
    - Botan::carry
    - Botan::load_4
    - Botan::load_3
    - static_cast<uint8_t>
    - Botan::redc_mul
    linkageType: ''
    returnType: void
    signature: void sc_muladd(uint8_t* s, const uint8_t* a, const uint8_t* b, const
      uint8_t* c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:22,1
    - Dst: object_identifier
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: Botan::Ed25519_PublicKey::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - AlgorithmIdentifier
    - object_identifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier Ed25519_PublicKey::algorithm_identifier() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:26,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:35,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:35,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:48,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:48,1
    - Dst: signature_check
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 52
    functionName: Botan::Ed25519_PublicKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::is_equal
    - signature_check
    - data
    - copy_mem
    - size
    linkageType: ''
    returnType: bool
    signature: bool Ed25519_PublicKey::check_key(RandomNumberGenerator& /*rng*/, bool
      /*strong*/) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:56,1
    - Dst: assign
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - pub_key
    - pub_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: Botan::Ed25519_PublicKey::Ed25519_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 6
    functionsReached:
    - Decoding_Error
    - assign
    linkageType: ''
    returnType: void
    signature: void Ed25519_PublicKey::Ed25519_PublicKey(const uint8_t pub_key[],
      size_t pub_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:62,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:62,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:62,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:64,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - key_bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 67
    functionName: Botan::Ed25519_PublicKey::Ed25519_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 6
    functionsReached:
    - Decoding_Error
    - assign
    - size
    - std::span<const uint8_t>::begin
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void Ed25519_PublicKey::Ed25519_PublicKey(const AlgorithmIdentifier&
      /*unused*/, 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: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: Botan::Ed25519_PublicKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Ed25519_PublicKey::raw_public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_PublicKey::raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.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::Ed25519_PublicKey::public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - Botan::Ed25519_PublicKey::raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Ed25519_PublicKey::public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Ed25519_PrivateKey>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: Botan::Ed25519_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Ed25519_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> Ed25519_PublicKey::generate_another(RandomNumberGenerator&
      rng) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:82,1
    - Dst: assign
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:83,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:83,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:83,1
    - Dst: assign
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:84,1
    - Dst: begin
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:84,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:84,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:85,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:86,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:87,1
    - Dst: ed25519_gen_keypair
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:88,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:88,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:88,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:88,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:90,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - secret_key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 92
    functionName: Botan::Ed25519_PrivateKey::Ed25519_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - begin
    - resize
    - Decoding_Error
    - assign
    - std::span<const uint8_t>::data
    - data
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    - ed25519_gen_keypair
    linkageType: ''
    returnType: void
    signature: void Ed25519_PrivateKey::Ed25519_PrivateKey(std::span<const uint8_t>
      secret_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:96,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:96,1
    - Dst: Botan::Ed25519_PrivateKey::Ed25519_PrivateKey
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - seed
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: Botan::Ed25519_PrivateKey::from_seed
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 4
    functionsReached:
    - Botan::Ed25519_PrivateKey::Ed25519_PrivateKey
    - BOTAN_ARG_CHECK
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: Ed25519_PrivateKey
    signature: Ed25519_PrivateKey Ed25519_PrivateKey::from_seed(std::span<const uint8_t>
      seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:102,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:102,1
    - Dst: Botan::Ed25519_PrivateKey::Ed25519_PrivateKey
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: Botan::Ed25519_PrivateKey::from_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - Botan::Ed25519_PrivateKey::Ed25519_PrivateKey
    - BOTAN_ARG_CHECK
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: Ed25519_PrivateKey
    signature: Ed25519_PrivateKey Ed25519_PrivateKey::from_bytes(std::span<const uint8_t>
      bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:107,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:108,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:109,1
    - Dst: ed25519_gen_keypair
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:110,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:110,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:110,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 111
    functionName: Botan::Ed25519_PrivateKey::Ed25519_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 2
    functionsReached:
    - resize
    - data
    - random_vec
    - secure_vector::data
    - ed25519_gen_keypair
    linkageType: ''
    returnType: void
    signature: void Ed25519_PrivateKey::Ed25519_PrivateKey(RandomNumberGenerator&
      rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BER_Decoder
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:115,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:117,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:118,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:120,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:121,1
    - Dst: ed25519_gen_keypair
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:122,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:122,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:122,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - key_bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 123
    functionName: Botan::Ed25519_PrivateKey::Ed25519_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 2
    functionsReached:
    - BER_Decoder
    - Decoding_Error
    - resize
    - data
    - secure_vector::size
    - secure_vector::data
    - ed25519_gen_keypair
    linkageType: ''
    returnType: void
    signature: void Ed25519_PrivateKey::Ed25519_PrivateKey(const AlgorithmIdentifier&
      /*unused*/, std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Ed25519_PublicKey>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:126,1
    - Dst: get_public_key
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:126,1
    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::Ed25519_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Ed25519_PublicKey>
    - get_public_key
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> Ed25519_PrivateKey::public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:130,1
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: Botan::Ed25519_PrivateKey::private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - data
    - DER_Encoder
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Ed25519_PrivateKey::private_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    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: Botan::Ed25519_PrivateKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Ed25519_PrivateKey::check_key(RandomNumberGenerator& /*rng*/,
      bool /*strong*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_public_key
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - Ed25519_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: Botan::Ed25519_Pure_Verify_Operation::Ed25519_Pure_Verify_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - get_public_key
    linkageType: ''
    returnType: void
    signature: void Ed25519_Pure_Verify_Operation(const Ed25519_PublicKey& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:147,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:147,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:147,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 147
    functionName: Botan::Ed25519_Pure_Verify_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - end
    - insert
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> msg) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:150,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:154,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:154,1
    - Dst: ed25519_verify
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:155,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:155,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:155,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:155,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:155,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 158
    functionName: Botan::Ed25519_Pure_Verify_Operation::is_valid_signature
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::data
    - data
    - std::span<const uint8_t>::size
    - size
    - clear
    - ed25519_verify
    - BOTAN_ASSERT_EQUAL
    linkageType: ''
    returnType: bool
    signature: bool is_valid_signature(std::span<const uint8_t> sig) override
  - 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::Ed25519_Pure_Verify_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_public_key
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:173,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' key'
    - hash
    - rfc8032
    argTypes:
    - Ed25519_PublicKey
    - std::string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 172
    functionDepth: 3
    functionLinenumber: 172
    functionLinenumberEnd: 181
    functionName: Botan::Ed25519_Hashed_Verify_Operation::Ed25519_Hashed_Verify_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    - get_public_key
    linkageType: ''
    returnType: void
    signature: void Ed25519_Hashed_Verify_Operation(const Ed25519_PublicKey& key,
      std::string_view hash, bool rfc8032)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_Hashed_Verify_Operation::update
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 183
    functionName: Botan::Ed25519_Hashed_Verify_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 1
    functionsReached:
    - Botan::Ed25519_Hashed_Verify_Operation::update
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> msg) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:186,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:189,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:190,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:190,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:192,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:192,1
    - Dst: ed25519_verify
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:193,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:194,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:194,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:194,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:194,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:194,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 195
    functionName: Botan::Ed25519_Hashed_Verify_Operation::is_valid_signature
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - final
    - std::span<const uint8_t>::data
    - data
    - std::span<const uint8_t>::size
    - size
    - std::vector::data
    - ed25519_verify
    - BOTAN_ASSERT_EQUAL
    - std::vector::size
    - output_length
    linkageType: ''
    returnType: bool
    signature: bool is_valid_signature(std::span<const uint8_t> sig) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp: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::Ed25519_Hashed_Verify_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raw_private_key_bits
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - Ed25519_PrivateKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 210
    functionName: Botan::Ed25519_Pure_Sign_Operation::Ed25519_Pure_Sign_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - raw_private_key_bits
    linkageType: ''
    returnType: void
    signature: void Ed25519_Pure_Sign_Operation(const Ed25519_PrivateKey& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:212,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:212,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:212,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 212
    functionName: Botan::Ed25519_Pure_Sign_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - end
    - insert
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> msg) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ed25519_sign
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:216,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:216,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:216,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:216,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:216,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 219
    functionName: Botan::Ed25519_Pure_Sign_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - data
    - ed25519_sign
    - size
    - clear
    - std::vector::data
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> sign(RandomNumberGenerator& /*rng*/) override
  - 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::Ed25519_Pure_Sign_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - 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::Ed25519_Pure_Sign_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:233,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 234
    functionName: Botan::Ed25519_Pure_Sign_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_string
    - AlgorithmIdentifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier Ed25519_Pure_Sign_Operation::algorithm_identifier()
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raw_private_key_bits
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:242,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' key'
    - hash
    - rfc8032
    argTypes:
    - Ed25519_PrivateKey
    - std::string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 241
    functionDepth: 3
    functionLinenumber: 241
    functionLinenumberEnd: 250
    functionName: Botan::Ed25519_Hashed_Sign_Operation::Ed25519_Hashed_Sign_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    - raw_private_key_bits
    linkageType: ''
    returnType: void
    signature: void Ed25519_Hashed_Sign_Operation(const Ed25519_PrivateKey& key, std::string_view
      hash, bool rfc8032)
  - 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::Ed25519_Hashed_Sign_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_Hashed_Sign_Operation::update
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 254
    functionName: Botan::Ed25519_Hashed_Sign_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 1
    functionsReached:
    - Botan::Ed25519_Hashed_Sign_Operation::update
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> msg) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:258,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:259,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:259,1
    - Dst: ed25519_sign
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:260,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:261,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:261,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:261,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:261,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:261,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 263
    functionName: Botan::Ed25519_Hashed_Sign_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - final
    - data
    - ed25519_sign
    - size
    - std::vector::data
    - std::vector::size
    - output_length
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> sign(RandomNumberGenerator& /*rng*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 265
    functionName: Botan::Ed25519_Hashed_Sign_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_public_key
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - Ed25519_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: Botan::Ed25519_Pure_Verify_Operation::Ed25519_Pure_Verify_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - get_public_key
    linkageType: ''
    returnType: void
    signature: void Ed25519_Pure_Verify_Operation(const Ed25519_PublicKey& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:147,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:147,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:147,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 147
    functionName: Botan::Ed25519_Pure_Verify_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - end
    - insert
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> msg) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:150,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:154,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:154,1
    - Dst: ed25519_verify
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:155,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:155,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:155,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:155,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:155,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 158
    functionName: Botan::Ed25519_Pure_Verify_Operation::is_valid_signature
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::data
    - data
    - std::span<const uint8_t>::size
    - size
    - clear
    - ed25519_verify
    - BOTAN_ASSERT_EQUAL
    linkageType: ''
    returnType: bool
    signature: bool is_valid_signature(std::span<const uint8_t> sig) override
  - 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::Ed25519_Pure_Verify_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_public_key
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:173,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' key'
    - hash
    - rfc8032
    argTypes:
    - Ed25519_PublicKey
    - std::string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 172
    functionDepth: 3
    functionLinenumber: 172
    functionLinenumberEnd: 181
    functionName: Botan::Ed25519_Hashed_Verify_Operation::Ed25519_Hashed_Verify_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    - get_public_key
    linkageType: ''
    returnType: void
    signature: void Ed25519_Hashed_Verify_Operation(const Ed25519_PublicKey& key,
      std::string_view hash, bool rfc8032)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_Hashed_Verify_Operation::update
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 183
    functionName: Botan::Ed25519_Hashed_Verify_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 2
    functionsReached:
    - Botan::Ed25519_Hashed_Verify_Operation::update
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> msg) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:186,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:189,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:190,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:190,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:192,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:192,1
    - Dst: ed25519_verify
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:193,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:194,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:194,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:194,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:194,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:194,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 195
    functionName: Botan::Ed25519_Hashed_Verify_Operation::is_valid_signature
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - final
    - std::span<const uint8_t>::data
    - data
    - std::span<const uint8_t>::size
    - size
    - std::vector::data
    - ed25519_verify
    - BOTAN_ASSERT_EQUAL
    - std::vector::size
    - output_length
    linkageType: ''
    returnType: bool
    signature: bool is_valid_signature(std::span<const uint8_t> sig) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp: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::Ed25519_Hashed_Verify_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raw_private_key_bits
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - Ed25519_PrivateKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 210
    functionName: Botan::Ed25519_Pure_Sign_Operation::Ed25519_Pure_Sign_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - raw_private_key_bits
    linkageType: ''
    returnType: void
    signature: void Ed25519_Pure_Sign_Operation(const Ed25519_PrivateKey& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:212,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:212,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:212,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 212
    functionName: Botan::Ed25519_Pure_Sign_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - end
    - insert
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> msg) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ed25519_sign
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:216,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:216,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:216,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:216,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:216,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 219
    functionName: Botan::Ed25519_Pure_Sign_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - data
    - ed25519_sign
    - size
    - clear
    - std::vector::data
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> sign(RandomNumberGenerator& /*rng*/) override
  - 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::Ed25519_Pure_Sign_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - 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::Ed25519_Pure_Sign_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:233,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 234
    functionName: Botan::Ed25519_Pure_Sign_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_string
    - AlgorithmIdentifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier Ed25519_Pure_Sign_Operation::algorithm_identifier()
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raw_private_key_bits
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:242,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' key'
    - hash
    - rfc8032
    argTypes:
    - Ed25519_PrivateKey
    - std::string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 241
    functionDepth: 3
    functionLinenumber: 241
    functionLinenumberEnd: 250
    functionName: Botan::Ed25519_Hashed_Sign_Operation::Ed25519_Hashed_Sign_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    - raw_private_key_bits
    linkageType: ''
    returnType: void
    signature: void Ed25519_Hashed_Sign_Operation(const Ed25519_PrivateKey& key, std::string_view
      hash, bool rfc8032)
  - 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::Ed25519_Hashed_Sign_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_Hashed_Sign_Operation::update
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 254
    functionName: Botan::Ed25519_Hashed_Sign_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 2
    functionsReached:
    - Botan::Ed25519_Hashed_Sign_Operation::update
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> msg) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:258,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:259,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:259,1
    - Dst: ed25519_sign
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:260,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:261,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:261,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:261,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:261,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:261,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 263
    functionName: Botan::Ed25519_Hashed_Sign_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - final
    - data
    - ed25519_sign
    - size
    - std::vector::data
    - std::vector::size
    - output_length
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> sign(RandomNumberGenerator& /*rng*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 265
    functionName: Botan::Ed25519_Hashed_Sign_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:277,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:278,1
    - Dst: std::make_unique<Ed25519_Pure_Verify_Operation>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:279,1
    - Dst: std::make_unique<Ed25519_Hashed_Verify_Operation>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:281,1
    - Dst: std::make_unique<Ed25519_Hashed_Verify_Operation>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:283,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:286,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:286,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 287
    functionName: Botan::Ed25519_PublicKey::create_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - std::make_unique<Ed25519_Hashed_Verify_Operation>
    - std::string_view::empty
    - algo_name
    - std::make_unique<Ed25519_Pure_Verify_Operation>
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> Ed25519_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/ed25519/ed25519_key.cpp:291,1
    - Dst: Botan::Ed25519_PublicKey::algorithm_identifier
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:292,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:293,1
    - Dst: std::make_unique<Ed25519_Pure_Verify_Operation>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:296,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:298,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:298,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - ' alg_id'
    - provider
    argTypes:
    - AlgorithmIdentifier
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 289
    functionDepth: 2
    functionLinenumber: 289
    functionLinenumberEnd: 299
    functionName: Botan::Ed25519_PublicKey::create_x509_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - Provider_Not_Found
    - std::string_view::empty
    - Botan::Ed25519_PublicKey::algorithm_identifier
    - algo_name
    - std::make_unique<Ed25519_Pure_Verify_Operation>
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> Ed25519_PublicKey::create_x509_verification_op(const
      AlgorithmIdentifier& alg_id,\n                                                                                     std::string_view
      provider) const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:304,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:305,1
    - Dst: std::make_unique<Ed25519_Pure_Sign_Operation>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:306,1
    - Dst: std::make_unique<Ed25519_Hashed_Sign_Operation>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:308,1
    - Dst: std::make_unique<Ed25519_Hashed_Sign_Operation>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:310,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:313,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:313,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 314
    functionName: Botan::Ed25519_PrivateKey::create_signature_op
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Ed25519_Hashed_Sign_Operation>
    - Provider_Not_Found
    - std::string_view::empty
    - algo_name
    - std::make_unique<Ed25519_Pure_Sign_Operation>
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Signature>
    signature: "std::unique_ptr<PK_Ops::Signature> Ed25519_PrivateKey::create_signature_op(RandomNumberGenerator&
      /*rng*/,\n                                                                           std::string_view
      params,\n                                                                           std::string_view
      provider) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:22,1
    - Dst: object_identifier
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: Botan::Ed25519_PublicKey::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 1
    functionsReached:
    - AlgorithmIdentifier
    - object_identifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier Ed25519_PublicKey::algorithm_identifier() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:26,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:35,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:35,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:48,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:48,1
    - Dst: signature_check
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 52
    functionName: Botan::Ed25519_PublicKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::is_equal
    - signature_check
    - data
    - copy_mem
    - size
    linkageType: ''
    returnType: bool
    signature: bool Ed25519_PublicKey::check_key(RandomNumberGenerator& /*rng*/, bool
      /*strong*/) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:56,1
    - Dst: assign
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:58,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - pub_key
    - pub_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 59
    functionName: Botan::Ed25519_PublicKey::Ed25519_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 6
    functionsReached:
    - Decoding_Error
    - assign
    linkageType: ''
    returnType: void
    signature: void Ed25519_PublicKey::Ed25519_PublicKey(const uint8_t pub_key[],
      size_t pub_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:62,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:62,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:62,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:64,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - key_bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 67
    functionName: Botan::Ed25519_PublicKey::Ed25519_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 6
    functionsReached:
    - Decoding_Error
    - assign
    - size
    - std::span<const uint8_t>::begin
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: void Ed25519_PublicKey::Ed25519_PublicKey(const AlgorithmIdentifier&
      /*unused*/, 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: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: Botan::Ed25519_PublicKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Ed25519_PublicKey::raw_public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_PublicKey::raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.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::Ed25519_PublicKey::public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - Botan::Ed25519_PublicKey::raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Ed25519_PublicKey::public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Ed25519_PrivateKey>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: Botan::Ed25519_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Ed25519_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> Ed25519_PublicKey::generate_another(RandomNumberGenerator&
      rng) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:82,1
    - Dst: assign
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:83,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:83,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:83,1
    - Dst: assign
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:84,1
    - Dst: begin
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:84,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:84,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:85,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:86,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:87,1
    - Dst: ed25519_gen_keypair
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:88,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:88,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:88,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:88,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:90,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - secret_key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 92
    functionName: Botan::Ed25519_PrivateKey::Ed25519_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 2
    functionsReached:
    - begin
    - resize
    - Decoding_Error
    - assign
    - std::span<const uint8_t>::data
    - data
    - std::span<const uint8_t>::size
    - std::span<const uint8_t>::begin
    - end
    - std::span<const uint8_t>::end
    - ed25519_gen_keypair
    linkageType: ''
    returnType: void
    signature: void Ed25519_PrivateKey::Ed25519_PrivateKey(std::span<const uint8_t>
      secret_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:96,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:96,1
    - Dst: Botan::Ed25519_PrivateKey::Ed25519_PrivateKey
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - seed
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: Botan::Ed25519_PrivateKey::from_seed
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 4
    functionsReached:
    - Botan::Ed25519_PrivateKey::Ed25519_PrivateKey
    - BOTAN_ARG_CHECK
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: Ed25519_PrivateKey
    signature: Ed25519_PrivateKey Ed25519_PrivateKey::from_seed(std::span<const uint8_t>
      seed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:102,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:102,1
    - Dst: Botan::Ed25519_PrivateKey::Ed25519_PrivateKey
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 101
    functionDepth: 2
    functionLinenumber: 101
    functionLinenumberEnd: 104
    functionName: Botan::Ed25519_PrivateKey::from_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - Botan::Ed25519_PrivateKey::Ed25519_PrivateKey
    - BOTAN_ARG_CHECK
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: Ed25519_PrivateKey
    signature: Ed25519_PrivateKey Ed25519_PrivateKey::from_bytes(std::span<const uint8_t>
      bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:107,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:108,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:109,1
    - Dst: ed25519_gen_keypair
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:110,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:110,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:110,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 111
    functionName: Botan::Ed25519_PrivateKey::Ed25519_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 4
    functionsReached:
    - resize
    - data
    - random_vec
    - secure_vector::data
    - ed25519_gen_keypair
    linkageType: ''
    returnType: void
    signature: void Ed25519_PrivateKey::Ed25519_PrivateKey(RandomNumberGenerator&
      rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BER_Decoder
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:115,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:117,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:118,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:120,1
    - Dst: resize
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:121,1
    - Dst: ed25519_gen_keypair
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:122,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:122,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:122,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - key_bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 123
    functionName: Botan::Ed25519_PrivateKey::Ed25519_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 4
    functionsReached:
    - BER_Decoder
    - Decoding_Error
    - resize
    - data
    - secure_vector::size
    - secure_vector::data
    - ed25519_gen_keypair
    linkageType: ''
    returnType: void
    signature: void Ed25519_PrivateKey::Ed25519_PrivateKey(const AlgorithmIdentifier&
      /*unused*/, std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Ed25519_PublicKey>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:126,1
    - Dst: get_public_key
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:126,1
    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::Ed25519_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Ed25519_PublicKey>
    - get_public_key
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> Ed25519_PrivateKey::public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:130,1
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: Botan::Ed25519_PrivateKey::private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - data
    - DER_Encoder
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Ed25519_PrivateKey::private_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    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: Botan::Ed25519_PrivateKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Ed25519_PrivateKey::check_key(RandomNumberGenerator& /*rng*/,
      bool /*strong*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_public_key
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - Ed25519_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: Botan::Ed25519_Pure_Verify_Operation::Ed25519_Pure_Verify_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - get_public_key
    linkageType: ''
    returnType: void
    signature: void Ed25519_Pure_Verify_Operation(const Ed25519_PublicKey& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:147,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:147,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:147,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 147
    functionName: Botan::Ed25519_Pure_Verify_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - end
    - insert
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> msg) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:150,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:154,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:154,1
    - Dst: ed25519_verify
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:155,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:155,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:155,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:155,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:155,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 158
    functionName: Botan::Ed25519_Pure_Verify_Operation::is_valid_signature
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::data
    - data
    - std::span<const uint8_t>::size
    - size
    - clear
    - ed25519_verify
    - BOTAN_ASSERT_EQUAL
    linkageType: ''
    returnType: bool
    signature: bool is_valid_signature(std::span<const uint8_t> sig) override
  - 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::Ed25519_Pure_Verify_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_public_key
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:173,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' key'
    - hash
    - rfc8032
    argTypes:
    - Ed25519_PublicKey
    - std::string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 172
    functionDepth: 3
    functionLinenumber: 172
    functionLinenumberEnd: 181
    functionName: Botan::Ed25519_Hashed_Verify_Operation::Ed25519_Hashed_Verify_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    - get_public_key
    linkageType: ''
    returnType: void
    signature: void Ed25519_Hashed_Verify_Operation(const Ed25519_PublicKey& key,
      std::string_view hash, bool rfc8032)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_Hashed_Verify_Operation::update
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 183
    functionName: Botan::Ed25519_Hashed_Verify_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 3
    functionsReached:
    - Botan::Ed25519_Hashed_Verify_Operation::update
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> msg) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:186,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:189,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:190,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:190,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:192,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:192,1
    - Dst: ed25519_verify
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:193,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:194,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:194,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:194,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:194,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:194,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 195
    functionName: Botan::Ed25519_Hashed_Verify_Operation::is_valid_signature
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - final
    - std::span<const uint8_t>::data
    - data
    - std::span<const uint8_t>::size
    - size
    - std::vector::data
    - ed25519_verify
    - BOTAN_ASSERT_EQUAL
    - std::vector::size
    - output_length
    linkageType: ''
    returnType: bool
    signature: bool is_valid_signature(std::span<const uint8_t> sig) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp: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::Ed25519_Hashed_Verify_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raw_private_key_bits
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - Ed25519_PrivateKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 210
    functionName: Botan::Ed25519_Pure_Sign_Operation::Ed25519_Pure_Sign_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - raw_private_key_bits
    linkageType: ''
    returnType: void
    signature: void Ed25519_Pure_Sign_Operation(const Ed25519_PrivateKey& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:212,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:212,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:212,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 212
    functionName: Botan::Ed25519_Pure_Sign_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - end
    - insert
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> msg) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ed25519_sign
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:216,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:216,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:216,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:216,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:216,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 219
    functionName: Botan::Ed25519_Pure_Sign_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - data
    - ed25519_sign
    - size
    - clear
    - std::vector::data
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> sign(RandomNumberGenerator& /*rng*/) override
  - 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::Ed25519_Pure_Sign_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - 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::Ed25519_Pure_Sign_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:233,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 234
    functionName: Botan::Ed25519_Pure_Sign_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_string
    - AlgorithmIdentifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier Ed25519_Pure_Sign_Operation::algorithm_identifier()
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raw_private_key_bits
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:242,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' key'
    - hash
    - rfc8032
    argTypes:
    - Ed25519_PrivateKey
    - std::string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 241
    functionDepth: 3
    functionLinenumber: 241
    functionLinenumberEnd: 250
    functionName: Botan::Ed25519_Hashed_Sign_Operation::Ed25519_Hashed_Sign_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    - raw_private_key_bits
    linkageType: ''
    returnType: void
    signature: void Ed25519_Hashed_Sign_Operation(const Ed25519_PrivateKey& key, std::string_view
      hash, bool rfc8032)
  - 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::Ed25519_Hashed_Sign_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_Hashed_Sign_Operation::update
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 254
    functionName: Botan::Ed25519_Hashed_Sign_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 3
    functionsReached:
    - Botan::Ed25519_Hashed_Sign_Operation::update
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> msg) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:258,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:259,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:259,1
    - Dst: ed25519_sign
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:260,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:261,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:261,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:261,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:261,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:261,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 263
    functionName: Botan::Ed25519_Hashed_Sign_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - final
    - data
    - ed25519_sign
    - size
    - std::vector::data
    - std::vector::size
    - output_length
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> sign(RandomNumberGenerator& /*rng*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 265
    functionName: Botan::Ed25519_Hashed_Sign_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_public_key
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - Ed25519_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: Botan::Ed25519_Pure_Verify_Operation::Ed25519_Pure_Verify_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - get_public_key
    linkageType: ''
    returnType: void
    signature: void Ed25519_Pure_Verify_Operation(const Ed25519_PublicKey& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:147,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:147,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:147,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 147
    functionName: Botan::Ed25519_Pure_Verify_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - end
    - insert
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> msg) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:150,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:154,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:154,1
    - Dst: ed25519_verify
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:155,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:155,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:155,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:155,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:155,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 158
    functionName: Botan::Ed25519_Pure_Verify_Operation::is_valid_signature
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::data
    - data
    - std::span<const uint8_t>::size
    - size
    - clear
    - ed25519_verify
    - BOTAN_ASSERT_EQUAL
    linkageType: ''
    returnType: bool
    signature: bool is_valid_signature(std::span<const uint8_t> sig) override
  - 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::Ed25519_Pure_Verify_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_public_key
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:173,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' key'
    - hash
    - rfc8032
    argTypes:
    - Ed25519_PublicKey
    - std::string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 172
    functionDepth: 3
    functionLinenumber: 172
    functionLinenumberEnd: 181
    functionName: Botan::Ed25519_Hashed_Verify_Operation::Ed25519_Hashed_Verify_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    - get_public_key
    linkageType: ''
    returnType: void
    signature: void Ed25519_Hashed_Verify_Operation(const Ed25519_PublicKey& key,
      std::string_view hash, bool rfc8032)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_Hashed_Verify_Operation::update
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 183
    functionName: Botan::Ed25519_Hashed_Verify_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 4
    functionsReached:
    - Botan::Ed25519_Hashed_Verify_Operation::update
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> msg) override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:186,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:189,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:190,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:190,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:192,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:192,1
    - Dst: ed25519_verify
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:193,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:194,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:194,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:194,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:194,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:194,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 195
    functionName: Botan::Ed25519_Hashed_Verify_Operation::is_valid_signature
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - final
    - std::span<const uint8_t>::data
    - data
    - std::span<const uint8_t>::size
    - size
    - std::vector::data
    - ed25519_verify
    - BOTAN_ASSERT_EQUAL
    - std::vector::size
    - output_length
    linkageType: ''
    returnType: bool
    signature: bool is_valid_signature(std::span<const uint8_t> sig) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp: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::Ed25519_Hashed_Verify_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raw_private_key_bits
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - Ed25519_PrivateKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 210
    functionName: Botan::Ed25519_Pure_Sign_Operation::Ed25519_Pure_Sign_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - raw_private_key_bits
    linkageType: ''
    returnType: void
    signature: void Ed25519_Pure_Sign_Operation(const Ed25519_PrivateKey& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:212,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:212,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:212,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 212
    functionName: Botan::Ed25519_Pure_Sign_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - end
    - insert
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> msg) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ed25519_sign
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:216,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:216,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:216,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:216,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:216,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 219
    functionName: Botan::Ed25519_Pure_Sign_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - data
    - ed25519_sign
    - size
    - clear
    - std::vector::data
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> sign(RandomNumberGenerator& /*rng*/) override
  - 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::Ed25519_Pure_Sign_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - 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::Ed25519_Pure_Sign_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:233,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 234
    functionName: Botan::Ed25519_Pure_Sign_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_string
    - AlgorithmIdentifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier Ed25519_Pure_Sign_Operation::algorithm_identifier()
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raw_private_key_bits
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:242,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:243,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ' key'
    - hash
    - rfc8032
    argTypes:
    - Ed25519_PrivateKey
    - std::string_view
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 241
    functionDepth: 3
    functionLinenumber: 241
    functionLinenumberEnd: 250
    functionName: Botan::Ed25519_Hashed_Sign_Operation::Ed25519_Hashed_Sign_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    - raw_private_key_bits
    linkageType: ''
    returnType: void
    signature: void Ed25519_Hashed_Sign_Operation(const Ed25519_PrivateKey& key, std::string_view
      hash, bool rfc8032)
  - 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::Ed25519_Hashed_Sign_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_Hashed_Sign_Operation::update
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 254
    functionName: Botan::Ed25519_Hashed_Sign_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 4
    functionsReached:
    - Botan::Ed25519_Hashed_Sign_Operation::update
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> msg) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:258,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:259,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:259,1
    - Dst: ed25519_sign
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:260,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:261,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:261,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:261,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:261,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:261,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 256
    functionDepth: 1
    functionLinenumber: 256
    functionLinenumberEnd: 263
    functionName: Botan::Ed25519_Hashed_Sign_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - final
    - data
    - ed25519_sign
    - size
    - std::vector::data
    - std::vector::size
    - output_length
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> sign(RandomNumberGenerator& /*rng*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 265
    functionDepth: 0
    functionLinenumber: 265
    functionLinenumberEnd: 265
    functionName: Botan::Ed25519_Hashed_Sign_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:277,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:278,1
    - Dst: std::make_unique<Ed25519_Pure_Verify_Operation>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:279,1
    - Dst: std::make_unique<Ed25519_Hashed_Verify_Operation>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:281,1
    - Dst: std::make_unique<Ed25519_Hashed_Verify_Operation>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:283,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:286,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:286,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 287
    functionName: Botan::Ed25519_PublicKey::create_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - std::make_unique<Ed25519_Hashed_Verify_Operation>
    - std::string_view::empty
    - algo_name
    - std::make_unique<Ed25519_Pure_Verify_Operation>
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> Ed25519_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/ed25519/ed25519_key.cpp:291,1
    - Dst: Botan::Ed25519_PublicKey::algorithm_identifier
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:292,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:293,1
    - Dst: std::make_unique<Ed25519_Pure_Verify_Operation>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:296,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:298,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:298,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - ' alg_id'
    - provider
    argTypes:
    - AlgorithmIdentifier
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 289
    functionDepth: 2
    functionLinenumber: 289
    functionLinenumberEnd: 299
    functionName: Botan::Ed25519_PublicKey::create_x509_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - Provider_Not_Found
    - std::string_view::empty
    - Botan::Ed25519_PublicKey::algorithm_identifier
    - algo_name
    - std::make_unique<Ed25519_Pure_Verify_Operation>
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> Ed25519_PublicKey::create_x509_verification_op(const
      AlgorithmIdentifier& alg_id,\n                                                                                     std::string_view
      provider) const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:304,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:305,1
    - Dst: std::make_unique<Ed25519_Pure_Sign_Operation>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:306,1
    - Dst: std::make_unique<Ed25519_Hashed_Sign_Operation>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:308,1
    - Dst: std::make_unique<Ed25519_Hashed_Sign_Operation>
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:310,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:313,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp:313,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 314
    functionName: Botan::Ed25519_PrivateKey::create_signature_op
    functionSourceFile: /src/botan/src/lib/pubkey/ed25519/ed25519_key.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Ed25519_Hashed_Sign_Operation>
    - Provider_Not_Found
    - std::string_view::empty
    - algo_name
    - std::make_unique<Ed25519_Pure_Sign_Operation>
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Signature>
    signature: "std::unique_ptr<PK_Ops::Signature> Ed25519_PrivateKey::create_signature_op(RandomNumberGenerator&
      /*rng*/,\n                                                                           std::string_view
      params,\n                                                                           std::string_view
      provider) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK_Encryptor_EME::maximum_input_size
      Src: /src/botan/src/lib/pubkey/keypair/keypair.cpp:29,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/keypair/keypair.cpp:34,1
    - Dst: PK_Encryptor_EME::maximum_input_size
      Src: /src/botan/src/lib/pubkey/keypair/keypair.cpp:34,1
    - Dst: PK_Encryptor_EME::encrypt
      Src: /src/botan/src/lib/pubkey/keypair/keypair.cpp:36,1
    - Dst: unlock
      Src: /src/botan/src/lib/pubkey/keypair/keypair.cpp:41,1
    - Dst: PK_Decryptor_EME::decrypt
      Src: /src/botan/src/lib/pubkey/keypair/keypair.cpp:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - ' rng'
    - ' private_key'
    - ' public_key'
    - padding
    argTypes:
    - RandomNumberGenerator
    - Private_Key
    - Public_Key
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 44
    functionName: Botan::KeyPair::encryption_consistency_check
    functionSourceFile: /src/botan/src/lib/pubkey/keypair/keypair.cpp
    functionUses: 2
    functionsReached:
    - PK_Encryptor_EME::encrypt
    - PK_Encryptor_EME::maximum_input_size
    - random_vec
    - PK_Decryptor_EME::decrypt
    - unlock
    linkageType: ''
    returnType: bool
    signature: "bool encryption_consistency_check(RandomNumberGenerator& rng,\n                                  const
      Private_Key& private_key,\n                                  const Public_Key&
      public_key,\n                                  std::string_view padding)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: randomize
      Src: /src/botan/src/lib/pubkey/keypair/keypair.cpp:57,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/keypair/keypair.cpp:57,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/keypair/keypair.cpp:57,1
    - Dst: PK_Signer::sign_message
      Src: /src/botan/src/lib/pubkey/keypair/keypair.cpp:62,1
    - Dst: PK_Verifier::verify_message
      Src: /src/botan/src/lib/pubkey/keypair/keypair.cpp:67,1
    - Dst: PK_Verifier::verify_message
      Src: /src/botan/src/lib/pubkey/keypair/keypair.cpp:74,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - ' rng'
    - ' private_key'
    - ' public_key'
    - padding
    argTypes:
    - RandomNumberGenerator
    - Private_Key
    - Public_Key
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 79
    functionName: Botan::KeyPair::signature_consistency_check
    functionSourceFile: /src/botan/src/lib/pubkey/keypair/keypair.cpp
    functionUses: 8
    functionsReached:
    - PK_Signer::sign_message
    - randomize
    - std::vector::data
    - PK_Verifier::verify_message
    - std::vector::size
    linkageType: ''
    returnType: bool
    signature: "bool signature_consistency_check(RandomNumberGenerator& rng,\n                                 const
      Private_Key& private_key,\n                                 const Public_Key&
      public_key,\n                                 std::string_view padding)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PK_Encryptor_EME::maximum_input_size
      Src: /src/botan/src/lib/pubkey/keypair/keypair.cpp:29,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/keypair/keypair.cpp:34,1
    - Dst: PK_Encryptor_EME::maximum_input_size
      Src: /src/botan/src/lib/pubkey/keypair/keypair.cpp:34,1
    - Dst: PK_Encryptor_EME::encrypt
      Src: /src/botan/src/lib/pubkey/keypair/keypair.cpp:36,1
    - Dst: unlock
      Src: /src/botan/src/lib/pubkey/keypair/keypair.cpp:41,1
    - Dst: PK_Decryptor_EME::decrypt
      Src: /src/botan/src/lib/pubkey/keypair/keypair.cpp:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - ' rng'
    - ' private_key'
    - ' public_key'
    - padding
    argTypes:
    - RandomNumberGenerator
    - Private_Key
    - Public_Key
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 44
    functionName: Botan::KeyPair::encryption_consistency_check
    functionSourceFile: /src/botan/src/lib/pubkey/keypair/keypair.cpp
    functionUses: 2
    functionsReached:
    - PK_Encryptor_EME::encrypt
    - PK_Encryptor_EME::maximum_input_size
    - random_vec
    - PK_Decryptor_EME::decrypt
    - unlock
    linkageType: ''
    returnType: bool
    signature: "bool encryption_consistency_check(RandomNumberGenerator& rng,\n                                  const
      Private_Key& private_key,\n                                  const Public_Key&
      public_key,\n                                  std::string_view padding)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: randomize
      Src: /src/botan/src/lib/pubkey/keypair/keypair.cpp:57,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/keypair/keypair.cpp:57,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/keypair/keypair.cpp:57,1
    - Dst: PK_Signer::sign_message
      Src: /src/botan/src/lib/pubkey/keypair/keypair.cpp:62,1
    - Dst: PK_Verifier::verify_message
      Src: /src/botan/src/lib/pubkey/keypair/keypair.cpp:67,1
    - Dst: PK_Verifier::verify_message
      Src: /src/botan/src/lib/pubkey/keypair/keypair.cpp:74,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 4
    argNames:
    - ' rng'
    - ' private_key'
    - ' public_key'
    - padding
    argTypes:
    - RandomNumberGenerator
    - Private_Key
    - Public_Key
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 79
    functionName: Botan::KeyPair::signature_consistency_check
    functionSourceFile: /src/botan/src/lib/pubkey/keypair/keypair.cpp
    functionUses: 8
    functionsReached:
    - PK_Signer::sign_message
    - randomize
    - std::vector::data
    - PK_Verifier::verify_message
    - std::vector::size
    linkageType: ''
    returnType: bool
    signature: "bool signature_consistency_check(RandomNumberGenerator& rng,\n                                 const
      Private_Key& private_key,\n                                 const Public_Key&
      public_key,\n                                 std::string_view padding)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_key
      Src: /src/botan/src/lib/pubkey/keypair/keypair.h:52,1
    - Dst: Botan::KeyPair::encryption_consistency_check
      Src: /src/botan/src/lib/pubkey/keypair/keypair.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' rng'
    - ' sk'
    - padding
    argTypes:
    - RandomNumberGenerator
    - Private_Key
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: Botan::KeyPair::encryption_consistency_check
    functionSourceFile: /src/botan/src/lib/pubkey/keypair/keypair.h
    functionUses: 3
    functionsReached:
    - Botan::KeyPair::encryption_consistency_check
    - public_key
    linkageType: ''
    returnType: bool
    signature: bool encryption_consistency_check(RandomNumberGenerator& rng, const
      Private_Key& sk, std::string_view padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_key
      Src: /src/botan/src/lib/pubkey/keypair/keypair.h:65,1
    - Dst: Botan::KeyPair::signature_consistency_check
      Src: /src/botan/src/lib/pubkey/keypair/keypair.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' rng'
    - ' sk'
    - padding
    argTypes:
    - RandomNumberGenerator
    - Private_Key
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: Botan::KeyPair::signature_consistency_check
    functionSourceFile: /src/botan/src/lib/pubkey/keypair/keypair.h
    functionUses: 9
    functionsReached:
    - Botan::KeyPair::signature_consistency_check
    - public_key
    linkageType: ''
    returnType: bool
    signature: bool signature_consistency_check(RandomNumberGenerator& rng, const
      Private_Key& sk, std::string_view padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_key
      Src: /src/botan/src/lib/pubkey/keypair/keypair.h:52,1
    - Dst: Botan::KeyPair::encryption_consistency_check
      Src: /src/botan/src/lib/pubkey/keypair/keypair.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' rng'
    - ' sk'
    - padding
    argTypes:
    - RandomNumberGenerator
    - Private_Key
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 54
    functionName: Botan::KeyPair::encryption_consistency_check
    functionSourceFile: /src/botan/src/lib/pubkey/keypair/keypair.h
    functionUses: 4
    functionsReached:
    - Botan::KeyPair::encryption_consistency_check
    - public_key
    linkageType: ''
    returnType: bool
    signature: bool encryption_consistency_check(RandomNumberGenerator& rng, const
      Private_Key& sk, std::string_view padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_key
      Src: /src/botan/src/lib/pubkey/keypair/keypair.h:65,1
    - Dst: Botan::KeyPair::signature_consistency_check
      Src: /src/botan/src/lib/pubkey/keypair/keypair.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' rng'
    - ' sk'
    - padding
    argTypes:
    - RandomNumberGenerator
    - Private_Key
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: Botan::KeyPair::signature_consistency_check
    functionSourceFile: /src/botan/src/lib/pubkey/keypair/keypair.h
    functionUses: 10
    functionsReached:
    - Botan::KeyPair::signature_consistency_check
    - public_key
    linkageType: ''
    returnType: bool
    signature: bool signature_consistency_check(RandomNumberGenerator& rng, const
      Private_Key& sk, std::string_view padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_q
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:29,1
    - Dst: LMS_Tree_Node_Idx::get
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' identifier'
    - q
    argTypes:
    - LMS_Identifier
    - LMS_Tree_Node_Idx
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: Botan::Chain_Generator::Chain_Generator
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp
    functionUses: 0
    functionsReached:
    - set_q
    - LMS_Tree_Node_Idx::get
    linkageType: ''
    returnType: void
    signature: void Chain_Generator(const LMS_Identifier& identifier, LMS_Tree_Node_Idx
      q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:38,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:40,1
    - Dst: set_i
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:41,1
    - Dst: set_j
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:44,1
    - Dst: gen
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 6
    argNames:
    - ' hash'
    - chain_idx
    - start
    - end
    - in
    - out
    argTypes:
    - HashFunction
    - uint16_t
    - uint8_t
    - uint8_t
    - std::span<const uint8_t>
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 47
    functionName: Botan::Chain_Generator::process
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp
    functionUses: 0
    functionsReached:
    - gen
    - copy_mem
    - BOTAN_ARG_CHECK
    - set_j
    - set_i
    linkageType: ''
    returnType: void
    signature: "void process(HashFunction& hash,\n                   uint16_t chain_idx,\n
      \                  uint8_t start,\n                   uint8_t end,\n                   std::span<const
      uint8_t> in,\n                   std::span<uint8_t> out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:55,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - S
    - i
    argTypes:
    - std::span<const uint8_t>
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: Botan::byte
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t byte(std::span<const uint8_t> S, uint32_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::coef_max
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:61,1
    - Dst: Botan::byte
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:62,1
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:62,1
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:63,1
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:63,1
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - S
    - i
    - ' params'
    argTypes:
    - std::span<const uint8_t>
    - uint32_t
    - LMOTS_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: Botan::coef
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp
    functionUses: 0
    functionsReached:
    - Botan::byte
    - Botan::w
    - Botan::coef_max
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t coef(std::span<const uint8_t> S, uint32_t i, const LMOTS_Params&
      params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:71,1
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:71,1
    - Dst: Botan::coef_max
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:72,1
    - Dst: Botan::coef
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:72,1
    - Dst: Botan::checked_cast_to
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:74,1
    - Dst: Botan::ls
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' params'
    - S
    argTypes:
    - LMOTS_Params
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: Botan::checksum
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp
    functionUses: 0
    functionsReached:
    - Botan::checked_cast_to
    - Botan::ls
    - Botan::coef
    - Botan::w
    - Botan::n
    - Botan::coef_max
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t checksum(const LMOTS_Params& params, std::span<const uint8_t>
      S)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:82,1
    - Dst: Botan::hash
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:84,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:85,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:86,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:86,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:87,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:87,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:88,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:89,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:90,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:90,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:91,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:93,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:93,1
    - Dst: Botan::checksum
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 5
    argNames:
    - ' params'
    - ' identifier'
    - ' q'
    - C
    - ' msg'
    argTypes:
    - LMOTS_Params
    - LMS_Identifier
    - LMS_Tree_Node_Idx
    - std::span<const uint8_t>
    - LMS_Message
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 96
    functionName: Botan::gen_Q_with_cksm
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - BufferStuffer::append
    - Botan::store_be
    - BufferStuffer::next
    - Botan::checksum
    - Botan::hash
    - Botan::n
    - auto::final
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> gen_Q_with_cksm(const LMOTS_Params& params,\n
      \                                    const LMS_Identifier& identifier,\n                                     const
      LMS_Tree_Node_Idx& q,\n                                     std::span<const
      uint8_t> C,\n                                     const LMS_Message& msg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_q
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:29,1
    - Dst: LMS_Tree_Node_Idx::get
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' identifier'
    - q
    argTypes:
    - LMS_Identifier
    - LMS_Tree_Node_Idx
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: Botan::Chain_Generator::Chain_Generator
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp
    functionUses: 0
    functionsReached:
    - set_q
    - LMS_Tree_Node_Idx::get
    linkageType: ''
    returnType: void
    signature: void Chain_Generator(const LMS_Identifier& identifier, LMS_Tree_Node_Idx
      q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:38,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:40,1
    - Dst: set_i
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:41,1
    - Dst: set_j
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:44,1
    - Dst: gen
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 6
    argNames:
    - ' hash'
    - chain_idx
    - start
    - end
    - in
    - out
    argTypes:
    - HashFunction
    - uint16_t
    - uint8_t
    - uint8_t
    - std::span<const uint8_t>
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 47
    functionName: Botan::Chain_Generator::process
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp
    functionUses: 0
    functionsReached:
    - gen
    - copy_mem
    - BOTAN_ARG_CHECK
    - set_j
    - set_i
    linkageType: ''
    returnType: void
    signature: "void process(HashFunction& hash,\n                   uint16_t chain_idx,\n
      \                  uint8_t start,\n                   uint8_t end,\n                   std::span<const
      uint8_t> in,\n                   std::span<uint8_t> out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:55,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - S
    - i
    argTypes:
    - std::span<const uint8_t>
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: Botan::byte
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ARG_CHECK
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t byte(std::span<const uint8_t> S, uint32_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::coef_max
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:61,1
    - Dst: Botan::byte
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:62,1
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:62,1
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:63,1
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:63,1
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - S
    - i
    - ' params'
    argTypes:
    - std::span<const uint8_t>
    - uint32_t
    - LMOTS_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: Botan::coef
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp
    functionUses: 1
    functionsReached:
    - Botan::byte
    - Botan::w
    - Botan::coef_max
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t coef(std::span<const uint8_t> S, uint32_t i, const LMOTS_Params&
      params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:71,1
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:71,1
    - Dst: Botan::coef_max
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:72,1
    - Dst: Botan::coef
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:72,1
    - Dst: Botan::checked_cast_to
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:74,1
    - Dst: Botan::ls
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' params'
    - S
    argTypes:
    - LMOTS_Params
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: Botan::checksum
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp
    functionUses: 1
    functionsReached:
    - Botan::checked_cast_to
    - Botan::ls
    - Botan::coef
    - Botan::w
    - Botan::n
    - Botan::coef_max
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t checksum(const LMOTS_Params& params, std::span<const uint8_t>
      S)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:82,1
    - Dst: Botan::hash
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:84,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:85,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:86,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:86,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:87,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:87,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:88,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:89,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:90,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:90,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:91,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:93,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:93,1
    - Dst: Botan::checksum
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 5
    argNames:
    - ' params'
    - ' identifier'
    - ' q'
    - C
    - ' msg'
    argTypes:
    - LMOTS_Params
    - LMS_Identifier
    - LMS_Tree_Node_Idx
    - std::span<const uint8_t>
    - LMS_Message
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 96
    functionName: Botan::gen_Q_with_cksm
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - BufferStuffer::append
    - Botan::store_be
    - BufferStuffer::next
    - Botan::checksum
    - Botan::hash
    - Botan::n
    - auto::final
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> gen_Q_with_cksm(const LMOTS_Params& params,\n
      \                                    const LMS_Identifier& identifier,\n                                     const
      LMS_Tree_Node_Idx& q,\n                                     std::span<const
      uint8_t> C,\n                                     const LMS_Message& msg)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:104,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:106,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:108,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:110,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:112,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:114,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:116,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:118,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:120,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:122,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:124,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:126,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:128,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:130,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:132,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:134,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:136,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:138,1
    - Dst: Botan::LMOTS_Params::LMOTS_Params
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:141,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 1
    argNames:
    - type
    argTypes:
    - LMOTS_Algorithm_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 142
    functionName: Botan::LMOTS_Params::create_or_throw
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp
    functionUses: 4
    functionsReached:
    - Decoding_Error
    - static_cast<uint8_t>
    - Botan::LMOTS_Params::LMOTS_Params
    linkageType: ''
    returnType: LMOTS_Params
    signature: LMOTS_Params LMOTS_Params::create_or_throw(LMOTS_Algorithm_Type type)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:146,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:160,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:174,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:188,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:202,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:205,1
    - Dst: Botan::LMOTS_Params::LMOTS_Params
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:208,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 63
    argCount: 2
    argNames:
    - hash_name
    - w
    argTypes:
    - std::string_view
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 209
    functionName: Botan::LMOTS_Params::create_or_throw
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp
    functionUses: 4
    functionsReached:
    - Decoding_Error
    - Botan::LMOTS_Params::LMOTS_Params
    linkageType: ''
    returnType: LMOTS_Params
    signature: LMOTS_Params LMOTS_Params::create_or_throw(std::string_view hash_name,
      uint8_t w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:213,1
    - Dst: auto::output_length
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:214,1
    - Dst: ceil_division<size_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:216,1
    - Dst: ceil_division<size_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:217,1
    - Dst: high_bit
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:217,1
    - Dst: checked_cast_to<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:218,1
    - Dst: checked_cast_to<uint16_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - algorithm_type
    - hash_name
    - w
    argTypes:
    - LMOTS_Algorithm_Type
    - std::string_view
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 211
    functionDepth: 3
    functionLinenumber: 211
    functionLinenumberEnd: 220
    functionName: Botan::LMOTS_Params::LMOTS_Params
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp
    functionUses: 2
    functionsReached:
    - ceil_division<size_t>
    - high_bit
    - auto::output_length
    - Botan::HashFunction::create_or_throw
    - checked_cast_to<uint16_t>
    - checked_cast_to<uint8_t>
    linkageType: ''
    returnType: void
    signature: void LMOTS_Params::LMOTS_Params(LMOTS_Algorithm_Type algorithm_type,
      std::string_view hash_name, uint8_t w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:225,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:225,1
    - Dst: Botan::LMOTS_Params::create_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:226,1
    - Dst: LMOTS_Params::p
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:229,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:230,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:230,1
    - Dst: LMOTS_Params::n
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:230,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:232,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - lmots_type
    - C
    - y_buffer
    argTypes:
    - LMOTS_Algorithm_Type
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 233
    functionName: Botan::LMOTS_Signature::LMOTS_Signature
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::move
    - Botan::LMOTS_Params::create_or_throw
    - BufferSlicer::empty
    - LMOTS_Params::n
    - LMOTS_Params::p
    - push_back
    - BufferSlicer::take
    linkageType: ''
    returnType: void
    signature: "void LMOTS_Signature::LMOTS_Signature(LMOTS_Algorithm_Type lmots_type,\n
      \                                std::vector<uint8_t> C,\n                                 std::vector<uint8_t>
      y_buffer)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: remaining
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:236,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:239,1
    - Dst: load_be<LMOTS_Algorithm_Type>
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:242,1
    - Dst: take
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:242,1
    - Dst: Botan::LMOTS_Params::create_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:245,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:247,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:248,1
    - Dst: copy_as_vector
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:252,1
    - Dst: LMOTS_Params::n
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:252,1
    - Dst: copy_as_vector
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:254,1
    - Dst: LMOTS_Params::p
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:254,1
    - Dst: LMOTS_Params::n
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:254,1
    - Dst: Botan::LMOTS_Signature::LMOTS_Signature
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:256,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:256,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:256,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ' slicer'
    argTypes:
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 235
    functionDepth: 3
    functionLinenumber: 235
    functionLinenumberEnd: 257
    functionName: Botan::LMOTS_Signature::from_bytes_or_throw
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp
    functionUses: 4
    functionsReached:
    - Decoding_Error
    - Botan::LMOTS_Params::create_or_throw
    - std::move
    - load_be<LMOTS_Algorithm_Type>
    - LMOTS_Params::n
    - size
    - Botan::LMOTS_Signature::LMOTS_Signature
    - LMOTS_Params::p
    - take
    - copy_as_vector
    - remaining
    linkageType: ''
    returnType: LMOTS_Signature
    signature: LMOTS_Signature LMOTS_Signature::from_bytes_or_throw(BufferSlicer&
      slicer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:265,1
    - Dst: PseudorandomKeyGeneration::set_q
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:267,1
    - Dst: LMS_Tree_Node_Idx::get
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:267,1
    - Dst: PseudorandomKeyGeneration::set_j
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:268,1
    - Dst: p
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:270,1
    - Dst: PseudorandomKeyGeneration::set_i
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:271,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:272,1
    - Dst: PseudorandomKeyGeneration::gen
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ' params'
    - ' identifier'
    - q
    - ' seed'
    argTypes:
    - LMOTS_Params
    - LMS_Identifier
    - LMS_Tree_Node_Idx
    - LMS_Seed
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 274
    functionName: Botan::LMOTS_Private_Key::LMOTS_Private_Key
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp
    functionUses: 0
    functionsReached:
    - p
    - PseudorandomKeyGeneration::set_q
    - LMS_Tree_Node_Idx::get
    - PseudorandomKeyGeneration::gen
    - PseudorandomKeyGeneration::set_j
    - hash
    - push_back
    - PseudorandomKeyGeneration::set_i
    linkageType: ''
    returnType: void
    signature: "void LMOTS_Private_Key::LMOTS_Private_Key(const LMOTS_Params& params,\n
      \                                    const LMS_Identifier& identifier,\n                                     LMS_Tree_Node_Idx
      q,\n                                     const LMS_Seed& seed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:277,1
    - Dst: StrongSpan<LMOTS_Signature_Bytes>::size
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:277,1
    - Dst: Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::block_size
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:277,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:277,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:279,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:280,1
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:280,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:280,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:281,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:281,1
    - Dst: Botan::LMOTS_Private_Key::derive_random_C
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:286,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:287,1
    - Dst: gen_Q_with_cksm
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:289,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:289,1
    - Dst: identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:289,1
    - Dst: q
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:289,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:292,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:293,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:293,1
    - Dst: coef
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:294,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:294,1
    - Dst: Chain_Generator::process
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:295,1
    - Dst: chain_input
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:295,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:297,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - out_sig
    - ' msg'
    argTypes:
    - StrongSpan<LMOTS_Signature_Bytes>
    - LMS_Message
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 298
    functionName: Botan::LMOTS_Private_Key::sign
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - BufferStuffer::append
    - BufferStuffer::full
    - params
    - store_be
    - BOTAN_ARG_CHECK
    - BufferStuffer::next
    - Chain_Generator::process
    - identifier
    - Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::block_size
    - coef
    - Botan::CT::unpoison
    - chain_input
    - Botan::LMOTS_Private_Key::derive_random_C
    - StrongSpan<LMOTS_Signature_Bytes>::size
    - q
    - gen_Q_with_cksm
    linkageType: ''
    returnType: void
    signature: void LMOTS_Private_Key::sign(StrongSpan<LMOTS_Signature_Bytes> out_sig,
      const LMS_Message& msg) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PseudorandomKeyGeneration::set_q
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:303,1
    - Dst: q
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:303,1
    - Dst: PseudorandomKeyGeneration::set_i
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:304,1
    - Dst: PseudorandomKeyGeneration::set_j
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:305,1
    - Dst: PseudorandomKeyGeneration::gen
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - ' hash'
    argTypes:
    - std::span<uint8_t>
    - HashFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 308
    functionName: Botan::LMOTS_Private_Key::derive_random_C
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp
    functionUses: 1
    functionsReached:
    - PseudorandomKeyGeneration::set_q
    - PseudorandomKeyGeneration::gen
    - PseudorandomKeyGeneration::set_j
    - PseudorandomKeyGeneration::set_i
    - q
    linkageType: ''
    returnType: void
    signature: void LMOTS_Private_Key::derive_random_C(std::span<uint8_t> out, HashFunction&
      hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: params
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:311,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:312,1
    - Dst: identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:312,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:313,1
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:313,1
    - Dst: q
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:313,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:314,1
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:314,1
    - Dst: identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:316,1
    - Dst: q
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:316,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:317,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:318,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:319,1
    - Dst: Chain_Generator::process
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:320,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:320,1
    - Dst: chain_input
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:320,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:321,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' lmots_sk'
    argTypes:
    - LMOTS_Private_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 310
    functionDepth: 2
    functionLinenumber: 310
    functionLinenumberEnd: 325
    functionName: Botan::LMOTS_Public_Key::LMOTS_Public_Key
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - params
    - store_be
    - auto::final
    - Chain_Generator::process
    - identifier
    - chain_input
    - q
    linkageType: ''
    returnType: void
    signature: void LMOTS_Public_Key::LMOTS_Public_Key(const LMOTS_Private_Key& lmots_sk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::LMOTS_Params::create_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:331,1
    - Dst: Botan::algorithm_type
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:331,1
    - Dst: Botan::gen_Q_with_cksm
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:335,1
    - Dst: Botan::C
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:335,1
    - Dst: auto::hash
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:338,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:339,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:340,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:340,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:341,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:341,1
    - Dst: auto::hash
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:344,1
    - Dst: auto::n
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:345,1
    - Dst: auto::p
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:346,1
    - Dst: Botan::coef
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:347,1
    - Dst: Chain_Generator::process
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:348,1
    - Dst: auto::coef_max
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:348,1
    - Dst: Botan::y
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:348,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:349,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - ' sig'
    - ' msg'
    - ' identifier'
    - q
    argTypes:
    - LMOTS_Signature
    - LMS_Message
    - LMS_Identifier
    - LMS_Tree_Node_Idx
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 327
    functionDepth: 3
    functionLinenumber: 327
    functionLinenumberEnd: 353
    functionName: Botan::lmots_compute_pubkey_from_sig
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp
    functionUses: 4
    functionsReached:
    - auto::update
    - Botan::LMOTS_Params::create_or_throw
    - Botan::algorithm_type
    - auto::coef_max
    - auto::n
    - Botan::y
    - auto::hash
    - Botan::store_be
    - Botan::gen_Q_with_cksm
    - Chain_Generator::process
    - Botan::C
    - Botan::coef
    - auto::p
    - auto::final
    linkageType: ''
    returnType: LMOTS_K
    signature: "LMOTS_K lmots_compute_pubkey_from_sig(const LMOTS_Signature& sig,\n
      \                                     const LMS_Message& msg,\n                                      const
      LMS_Identifier& identifier,\n                                      LMS_Tree_Node_Idx
      q)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_q
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:29,1
    - Dst: LMS_Tree_Node_Idx::get
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' identifier'
    - q
    argTypes:
    - LMS_Identifier
    - LMS_Tree_Node_Idx
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: Botan::Chain_Generator::Chain_Generator
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp
    functionUses: 0
    functionsReached:
    - set_q
    - LMS_Tree_Node_Idx::get
    linkageType: ''
    returnType: void
    signature: void Chain_Generator(const LMS_Identifier& identifier, LMS_Tree_Node_Idx
      q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:38,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:40,1
    - Dst: set_i
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:41,1
    - Dst: set_j
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:44,1
    - Dst: gen
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 6
    argNames:
    - ' hash'
    - chain_idx
    - start
    - end
    - in
    - out
    argTypes:
    - HashFunction
    - uint16_t
    - uint8_t
    - uint8_t
    - std::span<const uint8_t>
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 47
    functionName: Botan::Chain_Generator::process
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp
    functionUses: 0
    functionsReached:
    - gen
    - copy_mem
    - BOTAN_ARG_CHECK
    - set_j
    - set_i
    linkageType: ''
    returnType: void
    signature: "void process(HashFunction& hash,\n                   uint16_t chain_idx,\n
      \                  uint8_t start,\n                   uint8_t end,\n                   std::span<const
      uint8_t> in,\n                   std::span<uint8_t> out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:55,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - S
    - i
    argTypes:
    - std::span<const uint8_t>
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: Botan::byte
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ARG_CHECK
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t byte(std::span<const uint8_t> S, uint32_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::coef_max
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:61,1
    - Dst: Botan::byte
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:62,1
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:62,1
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:63,1
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:63,1
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - S
    - i
    - ' params'
    argTypes:
    - std::span<const uint8_t>
    - uint32_t
    - LMOTS_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: Botan::coef
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp
    functionUses: 3
    functionsReached:
    - Botan::byte
    - Botan::w
    - Botan::coef_max
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t coef(std::span<const uint8_t> S, uint32_t i, const LMOTS_Params&
      params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:71,1
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:71,1
    - Dst: Botan::coef_max
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:72,1
    - Dst: Botan::coef
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:72,1
    - Dst: Botan::checked_cast_to
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:74,1
    - Dst: Botan::ls
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' params'
    - S
    argTypes:
    - LMOTS_Params
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: Botan::checksum
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp
    functionUses: 2
    functionsReached:
    - Botan::checked_cast_to
    - Botan::ls
    - Botan::coef
    - Botan::w
    - Botan::n
    - Botan::coef_max
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t checksum(const LMOTS_Params& params, std::span<const uint8_t>
      S)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:82,1
    - Dst: Botan::hash
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:84,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:85,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:86,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:86,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:87,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:87,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:88,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:89,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:90,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:90,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:91,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:93,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:93,1
    - Dst: Botan::checksum
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 5
    argNames:
    - ' params'
    - ' identifier'
    - ' q'
    - C
    - ' msg'
    argTypes:
    - LMOTS_Params
    - LMS_Identifier
    - LMS_Tree_Node_Idx
    - std::span<const uint8_t>
    - LMS_Message
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 96
    functionName: Botan::gen_Q_with_cksm
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp
    functionUses: 1
    functionsReached:
    - auto::update
    - BufferStuffer::append
    - Botan::store_be
    - BufferStuffer::next
    - Botan::checksum
    - Botan::hash
    - Botan::n
    - auto::final
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> gen_Q_with_cksm(const LMOTS_Params& params,\n
      \                                    const LMS_Identifier& identifier,\n                                     const
      LMS_Tree_Node_Idx& q,\n                                     std::span<const
      uint8_t> C,\n                                     const LMS_Message& msg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_q
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:29,1
    - Dst: LMS_Tree_Node_Idx::get
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' identifier'
    - q
    argTypes:
    - LMS_Identifier
    - LMS_Tree_Node_Idx
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: Botan::Chain_Generator::Chain_Generator
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp
    functionUses: 0
    functionsReached:
    - set_q
    - LMS_Tree_Node_Idx::get
    linkageType: ''
    returnType: void
    signature: void Chain_Generator(const LMS_Identifier& identifier, LMS_Tree_Node_Idx
      q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:38,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:40,1
    - Dst: set_i
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:41,1
    - Dst: set_j
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:44,1
    - Dst: gen
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 6
    argNames:
    - ' hash'
    - chain_idx
    - start
    - end
    - in
    - out
    argTypes:
    - HashFunction
    - uint16_t
    - uint8_t
    - uint8_t
    - std::span<const uint8_t>
    - std::span<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 47
    functionName: Botan::Chain_Generator::process
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp
    functionUses: 0
    functionsReached:
    - gen
    - copy_mem
    - BOTAN_ARG_CHECK
    - set_j
    - set_i
    linkageType: ''
    returnType: void
    signature: "void process(HashFunction& hash,\n                   uint16_t chain_idx,\n
      \                  uint8_t start,\n                   uint8_t end,\n                   std::span<const
      uint8_t> in,\n                   std::span<uint8_t> out)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:55,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - S
    - i
    argTypes:
    - std::span<const uint8_t>
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 57
    functionName: Botan::byte
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp
    functionUses: 3
    functionsReached:
    - BOTAN_ARG_CHECK
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t byte(std::span<const uint8_t> S, uint32_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::coef_max
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:61,1
    - Dst: Botan::byte
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:62,1
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:62,1
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:63,1
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:63,1
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - S
    - i
    - ' params'
    argTypes:
    - std::span<const uint8_t>
    - uint32_t
    - LMOTS_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: Botan::coef
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp
    functionUses: 4
    functionsReached:
    - Botan::byte
    - Botan::w
    - Botan::coef_max
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t coef(std::span<const uint8_t> S, uint32_t i, const LMOTS_Params&
      params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:71,1
    - Dst: Botan::w
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:71,1
    - Dst: Botan::coef_max
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:72,1
    - Dst: Botan::coef
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:72,1
    - Dst: Botan::checked_cast_to
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:74,1
    - Dst: Botan::ls
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' params'
    - S
    argTypes:
    - LMOTS_Params
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: Botan::checksum
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp
    functionUses: 3
    functionsReached:
    - Botan::checked_cast_to
    - Botan::ls
    - Botan::coef
    - Botan::w
    - Botan::n
    - Botan::coef_max
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t checksum(const LMOTS_Params& params, std::span<const uint8_t>
      S)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:82,1
    - Dst: Botan::hash
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:84,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:85,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:86,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:86,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:87,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:87,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:88,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:89,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:90,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:90,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:91,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:93,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:93,1
    - Dst: Botan::checksum
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 5
    argNames:
    - ' params'
    - ' identifier'
    - ' q'
    - C
    - ' msg'
    argTypes:
    - LMOTS_Params
    - LMS_Identifier
    - LMS_Tree_Node_Idx
    - std::span<const uint8_t>
    - LMS_Message
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 96
    functionName: Botan::gen_Q_with_cksm
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp
    functionUses: 1
    functionsReached:
    - auto::update
    - BufferStuffer::append
    - Botan::store_be
    - BufferStuffer::next
    - Botan::checksum
    - Botan::hash
    - Botan::n
    - auto::final
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> gen_Q_with_cksm(const LMOTS_Params& params,\n
      \                                    const LMS_Identifier& identifier,\n                                     const
      LMS_Tree_Node_Idx& q,\n                                     std::span<const
      uint8_t> C,\n                                     const LMS_Message& msg)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:104,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:106,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:108,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:110,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:112,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:114,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:116,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:118,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:120,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:122,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:124,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:126,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:128,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:130,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:132,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:134,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:136,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:138,1
    - Dst: Botan::LMOTS_Params::LMOTS_Params
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:141,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 40
    argCount: 1
    argNames:
    - type
    argTypes:
    - LMOTS_Algorithm_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 100
    functionDepth: 4
    functionLinenumber: 100
    functionLinenumberEnd: 142
    functionName: Botan::LMOTS_Params::create_or_throw
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp
    functionUses: 7
    functionsReached:
    - Decoding_Error
    - static_cast<uint8_t>
    - Botan::LMOTS_Params::LMOTS_Params
    linkageType: ''
    returnType: LMOTS_Params
    signature: LMOTS_Params LMOTS_Params::create_or_throw(LMOTS_Algorithm_Type type)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:146,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:160,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:174,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:188,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:202,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:205,1
    - Dst: Botan::LMOTS_Params::LMOTS_Params
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:208,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 63
    argCount: 2
    argNames:
    - hash_name
    - w
    argTypes:
    - std::string_view
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 144
    functionDepth: 4
    functionLinenumber: 144
    functionLinenumberEnd: 209
    functionName: Botan::LMOTS_Params::create_or_throw
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp
    functionUses: 7
    functionsReached:
    - Decoding_Error
    - Botan::LMOTS_Params::LMOTS_Params
    linkageType: ''
    returnType: LMOTS_Params
    signature: LMOTS_Params LMOTS_Params::create_or_throw(std::string_view hash_name,
      uint8_t w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:213,1
    - Dst: auto::output_length
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:214,1
    - Dst: ceil_division<size_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:216,1
    - Dst: ceil_division<size_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:217,1
    - Dst: high_bit
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:217,1
    - Dst: checked_cast_to<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:218,1
    - Dst: checked_cast_to<uint16_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - algorithm_type
    - hash_name
    - w
    argTypes:
    - LMOTS_Algorithm_Type
    - std::string_view
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 211
    functionDepth: 3
    functionLinenumber: 211
    functionLinenumberEnd: 220
    functionName: Botan::LMOTS_Params::LMOTS_Params
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp
    functionUses: 4
    functionsReached:
    - ceil_division<size_t>
    - high_bit
    - auto::output_length
    - Botan::HashFunction::create_or_throw
    - checked_cast_to<uint16_t>
    - checked_cast_to<uint8_t>
    linkageType: ''
    returnType: void
    signature: void LMOTS_Params::LMOTS_Params(LMOTS_Algorithm_Type algorithm_type,
      std::string_view hash_name, uint8_t w)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:225,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:225,1
    - Dst: Botan::LMOTS_Params::create_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:226,1
    - Dst: LMOTS_Params::p
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:229,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:230,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:230,1
    - Dst: LMOTS_Params::n
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:230,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:232,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - lmots_type
    - C
    - y_buffer
    argTypes:
    - LMOTS_Algorithm_Type
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 233
    functionName: Botan::LMOTS_Signature::LMOTS_Signature
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::move
    - Botan::LMOTS_Params::create_or_throw
    - BufferSlicer::empty
    - LMOTS_Params::n
    - LMOTS_Params::p
    - push_back
    - BufferSlicer::take
    linkageType: ''
    returnType: void
    signature: "void LMOTS_Signature::LMOTS_Signature(LMOTS_Algorithm_Type lmots_type,\n
      \                                std::vector<uint8_t> C,\n                                 std::vector<uint8_t>
      y_buffer)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: remaining
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:236,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:239,1
    - Dst: load_be<LMOTS_Algorithm_Type>
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:242,1
    - Dst: take
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:242,1
    - Dst: Botan::LMOTS_Params::create_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:245,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:247,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:248,1
    - Dst: copy_as_vector
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:252,1
    - Dst: LMOTS_Params::n
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:252,1
    - Dst: copy_as_vector
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:254,1
    - Dst: LMOTS_Params::p
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:254,1
    - Dst: LMOTS_Params::n
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:254,1
    - Dst: Botan::LMOTS_Signature::LMOTS_Signature
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:256,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:256,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:256,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ' slicer'
    argTypes:
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 235
    functionDepth: 3
    functionLinenumber: 235
    functionLinenumberEnd: 257
    functionName: Botan::LMOTS_Signature::from_bytes_or_throw
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp
    functionUses: 4
    functionsReached:
    - Decoding_Error
    - Botan::LMOTS_Params::create_or_throw
    - std::move
    - load_be<LMOTS_Algorithm_Type>
    - LMOTS_Params::n
    - size
    - Botan::LMOTS_Signature::LMOTS_Signature
    - LMOTS_Params::p
    - take
    - copy_as_vector
    - remaining
    linkageType: ''
    returnType: LMOTS_Signature
    signature: LMOTS_Signature LMOTS_Signature::from_bytes_or_throw(BufferSlicer&
      slicer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:265,1
    - Dst: PseudorandomKeyGeneration::set_q
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:267,1
    - Dst: LMS_Tree_Node_Idx::get
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:267,1
    - Dst: PseudorandomKeyGeneration::set_j
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:268,1
    - Dst: p
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:270,1
    - Dst: PseudorandomKeyGeneration::set_i
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:271,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:272,1
    - Dst: PseudorandomKeyGeneration::gen
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - ' params'
    - ' identifier'
    - q
    - ' seed'
    argTypes:
    - LMOTS_Params
    - LMS_Identifier
    - LMS_Tree_Node_Idx
    - LMS_Seed
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 274
    functionName: Botan::LMOTS_Private_Key::LMOTS_Private_Key
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp
    functionUses: 0
    functionsReached:
    - p
    - PseudorandomKeyGeneration::set_q
    - LMS_Tree_Node_Idx::get
    - PseudorandomKeyGeneration::gen
    - PseudorandomKeyGeneration::set_j
    - hash
    - push_back
    - PseudorandomKeyGeneration::set_i
    linkageType: ''
    returnType: void
    signature: "void LMOTS_Private_Key::LMOTS_Private_Key(const LMOTS_Params& params,\n
      \                                    const LMS_Identifier& identifier,\n                                     LMS_Tree_Node_Idx
      q,\n                                     const LMS_Seed& seed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:277,1
    - Dst: StrongSpan<LMOTS_Signature_Bytes>::size
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:277,1
    - Dst: Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::block_size
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:277,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:277,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:279,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:280,1
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:280,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:280,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:281,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:281,1
    - Dst: Botan::LMOTS_Private_Key::derive_random_C
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:286,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:287,1
    - Dst: gen_Q_with_cksm
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:289,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:289,1
    - Dst: identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:289,1
    - Dst: q
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:289,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:292,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:293,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:293,1
    - Dst: coef
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:294,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:294,1
    - Dst: Chain_Generator::process
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:295,1
    - Dst: chain_input
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:295,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:297,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:297,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - out_sig
    - ' msg'
    argTypes:
    - StrongSpan<LMOTS_Signature_Bytes>
    - LMS_Message
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 298
    functionName: Botan::LMOTS_Private_Key::sign
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - BufferStuffer::append
    - BufferStuffer::full
    - params
    - store_be
    - BOTAN_ARG_CHECK
    - BufferStuffer::next
    - Chain_Generator::process
    - identifier
    - Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::block_size
    - coef
    - Botan::CT::unpoison
    - chain_input
    - Botan::LMOTS_Private_Key::derive_random_C
    - StrongSpan<LMOTS_Signature_Bytes>::size
    - q
    - gen_Q_with_cksm
    linkageType: ''
    returnType: void
    signature: void LMOTS_Private_Key::sign(StrongSpan<LMOTS_Signature_Bytes> out_sig,
      const LMS_Message& msg) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PseudorandomKeyGeneration::set_q
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:303,1
    - Dst: q
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:303,1
    - Dst: PseudorandomKeyGeneration::set_i
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:304,1
    - Dst: PseudorandomKeyGeneration::set_j
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:305,1
    - Dst: PseudorandomKeyGeneration::gen
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:307,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - ' hash'
    argTypes:
    - std::span<uint8_t>
    - HashFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 308
    functionName: Botan::LMOTS_Private_Key::derive_random_C
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp
    functionUses: 2
    functionsReached:
    - PseudorandomKeyGeneration::set_q
    - PseudorandomKeyGeneration::gen
    - PseudorandomKeyGeneration::set_j
    - PseudorandomKeyGeneration::set_i
    - q
    linkageType: ''
    returnType: void
    signature: void LMOTS_Private_Key::derive_random_C(std::span<uint8_t> out, HashFunction&
      hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: params
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:311,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:312,1
    - Dst: identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:312,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:313,1
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:313,1
    - Dst: q
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:313,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:314,1
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:314,1
    - Dst: identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:316,1
    - Dst: q
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:316,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:317,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:318,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:319,1
    - Dst: Chain_Generator::process
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:320,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:320,1
    - Dst: chain_input
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:320,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:321,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:324,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - ' lmots_sk'
    argTypes:
    - LMOTS_Private_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 310
    functionDepth: 2
    functionLinenumber: 310
    functionLinenumberEnd: 325
    functionName: Botan::LMOTS_Public_Key::LMOTS_Public_Key
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - params
    - store_be
    - auto::final
    - Chain_Generator::process
    - identifier
    - chain_input
    - q
    linkageType: ''
    returnType: void
    signature: void LMOTS_Public_Key::LMOTS_Public_Key(const LMOTS_Private_Key& lmots_sk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::LMOTS_Params::create_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:331,1
    - Dst: Botan::algorithm_type
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:331,1
    - Dst: Botan::gen_Q_with_cksm
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:335,1
    - Dst: Botan::C
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:335,1
    - Dst: auto::hash
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:338,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:339,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:340,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:340,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:341,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:341,1
    - Dst: auto::hash
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:344,1
    - Dst: auto::n
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:345,1
    - Dst: auto::p
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:346,1
    - Dst: Botan::coef
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:347,1
    - Dst: Chain_Generator::process
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:348,1
    - Dst: auto::coef_max
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:348,1
    - Dst: Botan::y
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:348,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:349,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp:352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - ' sig'
    - ' msg'
    - ' identifier'
    - q
    argTypes:
    - LMOTS_Signature
    - LMS_Message
    - LMS_Identifier
    - LMS_Tree_Node_Idx
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 327
    functionDepth: 3
    functionLinenumber: 327
    functionLinenumberEnd: 353
    functionName: Botan::lmots_compute_pubkey_from_sig
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.cpp
    functionUses: 4
    functionsReached:
    - auto::update
    - Botan::LMOTS_Params::create_or_throw
    - Botan::algorithm_type
    - auto::coef_max
    - auto::n
    - Botan::y
    - auto::hash
    - Botan::store_be
    - Botan::gen_Q_with_cksm
    - Chain_Generator::process
    - Botan::C
    - Botan::coef
    - auto::p
    - auto::final
    linkageType: ''
    returnType: LMOTS_K
    signature: "LMOTS_K lmots_compute_pubkey_from_sig(const LMOTS_Signature& sig,\n
      \                                     const LMS_Message& msg,\n                                      const
      LMS_Identifier& identifier,\n                                      LMS_Tree_Node_Idx
      q)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms_utils.cpp:19,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms_utils.cpp:20,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms_utils.cpp:21,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms_utils.cpp:22,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms_utils.cpp:23,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms_utils.cpp:23,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms_utils.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - identifier
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 24
    functionName: Botan::PseudorandomKeyGeneration::PseudorandomKeyGeneration
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms_utils.cpp
    functionUses: 0
    functionsReached:
    - copy_mem
    - std::span
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void PseudorandomKeyGeneration::PseudorandomKeyGeneration(std::span<const
      uint8_t> identifier)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms_utils.cpp:27,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms_utils.cpp:28,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms_utils.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - out
    - ' hash'
    - seed
    argTypes:
    - std::span<uint8_t>
    - HashFunction
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: Botan::PseudorandomKeyGeneration::gen
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms_utils.cpp
    functionUses: 0
    functionsReached:
    - final
    - update
    linkageType: ''
    returnType: void
    signature: void PseudorandomKeyGeneration::gen(std::span<uint8_t> out, HashFunction&
      hash, std::span<const uint8_t> seed) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms_utils.cpp:19,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms_utils.cpp:20,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms_utils.cpp:21,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms_utils.cpp:22,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms_utils.cpp:23,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms_utils.cpp:23,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms_utils.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - identifier
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 24
    functionName: Botan::PseudorandomKeyGeneration::PseudorandomKeyGeneration
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms_utils.cpp
    functionUses: 0
    functionsReached:
    - copy_mem
    - std::span
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void PseudorandomKeyGeneration::PseudorandomKeyGeneration(std::span<const
      uint8_t> identifier)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms_utils.cpp:27,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms_utils.cpp:28,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms_utils.cpp:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - out
    - ' hash'
    - seed
    argTypes:
    - std::span<uint8_t>
    - HashFunction
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: Botan::PseudorandomKeyGeneration::gen
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms_utils.cpp
    functionUses: 0
    functionsReached:
    - final
    - update
    linkageType: ''
    returnType: void
    signature: void PseudorandomKeyGeneration::gen(std::span<uint8_t> out, HashFunction&
      hash, std::span<const uint8_t> seed) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:62,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:62,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:98,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:98,1
    - Dst: Botan::checked_cast_to
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:103,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 118
    functionName: Botan::HSS_LMS_Params
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.h
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::checked_cast_to
    - Botan::get
    - Botan::size
    - at
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API HSS_LMS_Params
  - 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: '& lms_params() const'
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LMS_Params
    signature: LMS_Params & lms_params() 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: '& lmots_params() const'
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LMOTS_Params
    signature: LMOTS_Params & lmots_params() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:62,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - p_lms_params
    - p_lmots_params
    argTypes:
    - LMS_Params
    - LMOTS_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: Botan::LMS_LMOTS_Params_Pair::LMS_LMOTS_Params_Pair
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void LMS_LMOTS_Params_Pair(LMS_Params p_lms_params, LMOTS_Params p_lmots_params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:98,1
    - Dst: HSS_Level::get
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - level
    argTypes:
    - HSS_Level
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: Botan::params_at_level
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.h
    functionUses: 0
    functionsReached:
    - HSS_Level::get
    - at
    linkageType: ''
    returnType: LMS_LMOTS_Params_Pair
    signature: LMS_LMOTS_Params_Pair & params_at_level(HSS_Level level) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::checked_cast_to
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:103,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: Botan::L
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.h
    functionUses: 0
    functionsReached:
    - Botan::checked_cast_to
    - Botan::size
    linkageType: ''
    returnType: HSS_Level
    signature: HSS_Level L() 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::max_sig_count
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HSS_Sig_Idx
    signature: HSS_Sig_Idx max_sig_count() const
  - 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: '& hss_params() const'
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HSS_LMS_Params
    signature: HSS_LMS_Params & hss_params() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 158
    functionName: Botan::HSS_LMS_PrivateKeyInternal::get_idx
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HSS_Sig_Idx
    signature: HSS_Sig_Idx get_idx() 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::HSS_LMS_PrivateKeyInternal::signature_size
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t signature_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 197
    functionName: Botan::HSS_LMS_PrivateKeyInternal::_const_time_poison
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.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/hss_lms/hss.h:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 199
    functionName: Botan::HSS_LMS_PrivateKeyInternal::_const_time_unpoison
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.h
    functionUses: 0
    functionsReached:
    - Botan::CT::unpoison
    linkageType: ''
    returnType: void
    signature: void _const_time_unpoison() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - L
    - top_lms_pub_key
    argTypes:
    - HSS_Level
    - LMS_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 265
    functionName: Botan::HSS_LMS_PublicKeyInternal::HSS_LMS_PublicKeyInternal
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void HSS_LMS_PublicKeyInternal(HSS_Level L, LMS_PublicKey top_lms_pub_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 275
    functionName: '& lms_pub_key() const'
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LMS_PublicKey
    signature: LMS_PublicKey & lms_pub_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 295
    functionName: Botan::HSS_LMS_PublicKeyInternal::algo_name
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 308
    functionName: Botan::HSS_LMS_PublicKeyInternal::_const_time_unpoison
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.h
    functionUses: 0
    functionsReached:
    - Botan::CT::unpoison
    linkageType: ''
    returnType: void
    signature: void _const_time_unpoison() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HSS_Level
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:371,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:371,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:371,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:379,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:379,1
    - Dst: Botan::HSS_Signature
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 395
    functionName: Botan::HSS_Signature
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.h
    functionUses: 1
    functionsReached:
    - static_cast<uint32_t>
    - HSS_Level
    - Botan::HSS_Signature
    - Botan::get
    - Botan::size
    - at
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API HSS_Signature
  - 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: '& signature() const'
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LMS_Signature
    signature: LMS_Signature & signature() const
  - 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: '& public_key() const'
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LMS_PublicKey
    signature: LMS_PublicKey & public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HSS_Level
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:371,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:371,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:371,1
    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::Nspk
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.h
    functionUses: 0
    functionsReached:
    - HSS_Level
    - Botan::size
    - static_cast<uint32_t>
    linkageType: ''
    returnType: HSS_Level
    signature: HSS_Level Nspk() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:379,1
    - Dst: HSS_Level::get
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - layer
    argTypes:
    - HSS_Level
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 379
    functionName: Botan::signed_pub_key
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.h
    functionUses: 0
    functionsReached:
    - HSS_Level::get
    - at
    linkageType: ''
    returnType: Signed_Pub_Key
    signature: Signed_Pub_Key & signed_pub_key(HSS_Level layer) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 384
    functionName: Botan::bottom_sig
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LMS_Signature
    signature: LMS_Signature & bottom_sig() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:62,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:62,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:98,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:98,1
    - Dst: Botan::checked_cast_to
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:103,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 118
    functionName: Botan::HSS_LMS_Params
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.h
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::checked_cast_to
    - Botan::get
    - Botan::size
    - at
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API HSS_LMS_Params
  - 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: '& lms_params() const'
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LMS_Params
    signature: LMS_Params & lms_params() 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: '& lmots_params() const'
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LMOTS_Params
    signature: LMOTS_Params & lmots_params() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:62,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - p_lms_params
    - p_lmots_params
    argTypes:
    - LMS_Params
    - LMOTS_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: Botan::LMS_LMOTS_Params_Pair::LMS_LMOTS_Params_Pair
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void LMS_LMOTS_Params_Pair(LMS_Params p_lms_params, LMOTS_Params p_lmots_params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:98,1
    - Dst: HSS_Level::get
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - level
    argTypes:
    - HSS_Level
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: Botan::params_at_level
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.h
    functionUses: 0
    functionsReached:
    - HSS_Level::get
    - at
    linkageType: ''
    returnType: LMS_LMOTS_Params_Pair
    signature: LMS_LMOTS_Params_Pair & params_at_level(HSS_Level level) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::checked_cast_to
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:103,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: Botan::L
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.h
    functionUses: 0
    functionsReached:
    - Botan::checked_cast_to
    - Botan::size
    linkageType: ''
    returnType: HSS_Level
    signature: HSS_Level L() 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::max_sig_count
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HSS_Sig_Idx
    signature: HSS_Sig_Idx max_sig_count() const
  - 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: '& hss_params() const'
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HSS_LMS_Params
    signature: HSS_LMS_Params & hss_params() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 158
    functionName: Botan::HSS_LMS_PrivateKeyInternal::get_idx
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: HSS_Sig_Idx
    signature: HSS_Sig_Idx get_idx() 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::HSS_LMS_PrivateKeyInternal::signature_size
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t signature_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 197
    functionName: Botan::HSS_LMS_PrivateKeyInternal::_const_time_poison
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.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/hss_lms/hss.h:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 199
    functionName: Botan::HSS_LMS_PrivateKeyInternal::_const_time_unpoison
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.h
    functionUses: 0
    functionsReached:
    - Botan::CT::unpoison
    linkageType: ''
    returnType: void
    signature: void _const_time_unpoison() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - L
    - top_lms_pub_key
    argTypes:
    - HSS_Level
    - LMS_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 265
    functionName: Botan::HSS_LMS_PublicKeyInternal::HSS_LMS_PublicKeyInternal
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void HSS_LMS_PublicKeyInternal(HSS_Level L, LMS_PublicKey top_lms_pub_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 275
    functionName: '& lms_pub_key() const'
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LMS_PublicKey
    signature: LMS_PublicKey & lms_pub_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 295
    functionName: Botan::HSS_LMS_PublicKeyInternal::algo_name
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 308
    functionName: Botan::HSS_LMS_PublicKeyInternal::_const_time_unpoison
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.h
    functionUses: 0
    functionsReached:
    - Botan::CT::unpoison
    linkageType: ''
    returnType: void
    signature: void _const_time_unpoison() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HSS_Level
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:371,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:371,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:371,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:379,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:379,1
    - Dst: Botan::HSS_Signature
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 395
    functionName: Botan::HSS_Signature
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.h
    functionUses: 2
    functionsReached:
    - static_cast<uint32_t>
    - HSS_Level
    - Botan::HSS_Signature
    - Botan::get
    - Botan::size
    - at
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API HSS_Signature
  - 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: '& signature() const'
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LMS_Signature
    signature: LMS_Signature & signature() const
  - 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: '& public_key() const'
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LMS_PublicKey
    signature: LMS_PublicKey & public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HSS_Level
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:371,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:371,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:371,1
    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::Nspk
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.h
    functionUses: 0
    functionsReached:
    - HSS_Level
    - Botan::size
    - static_cast<uint32_t>
    linkageType: ''
    returnType: HSS_Level
    signature: HSS_Level Nspk() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:379,1
    - Dst: HSS_Level::get
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.h:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - layer
    argTypes:
    - HSS_Level
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 379
    functionName: Botan::signed_pub_key
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.h
    functionUses: 0
    functionsReached:
    - HSS_Level::get
    - at
    linkageType: ''
    returnType: Signed_Pub_Key
    signature: Signed_Pub_Key & signed_pub_key(HSS_Level layer) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 384
    functionName: Botan::bottom_sig
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LMS_Signature
    signature: LMS_Signature & bottom_sig() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - total_tree_height
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: Botan::TreeAddress::TreeAddress
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: void
    signature: void TreeAddress(uint32_t total_tree_height)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:38,1
    - Dst: LMS_Tree_Node_Idx::get
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:38,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:39,1
    - Dst: LMS_TreeLayerIndex::get
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:39,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:40,1
    - Dst: LMS_Tree_Node_Idx::get
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - tree_layer
    - tree_index
    argTypes:
    - LMS_TreeLayerIndex
    - LMS_Tree_Node_Idx
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: '& set_address(LMS_TreeLayerIndex tree_layer, LMS_Tree_Node_Idx
      tree_index)'
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 0
    functionsReached:
    - Botan::get
    - LMS_TreeLayerIndex::get
    - BOTAN_ARG_CHECK
    - LMS_Tree_Node_Idx::get
    linkageType: ''
    returnType: TreeAddress
    signature: TreeAddress & set_address(LMS_TreeLayerIndex tree_layer, LMS_Tree_Node_Idx
      tree_index)
  - 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::TreeAddress::r
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t r() 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::TreeAddress::is_leaf
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_leaf() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:49,1
    - Dst: Botan::TreeAddress::is_leaf
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:49,1
    - Dst: LMS_Tree_Node_Idx
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:50,1
    - Dst: get
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: Botan::TreeAddress::q
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - LMS_Tree_Node_Idx
    - Botan::TreeAddress::is_leaf
    - get
    linkageType: ''
    returnType: LMS_Tree_Node_Idx
    signature: LMS_Tree_Node_Idx q() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hash
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:59,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:59,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:63,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:64,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:64,1
    - Dst: r
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:64,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:65,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:65,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:66,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:67,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - ' lms_params'
    - identifier
    argTypes:
    - LMS_Params
    - LMS_Identifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 70
    functionName: Botan::get_hash_pair_func_for_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - r
    - Botan::store_be
    - Botan::hash
    - Botan::final
    - Botan::update
    linkageType: ''
    returnType: auto
    signature: auto get_hash_pair_func_for_identifier(const LMS_Params& lms_params,
      LMS_Identifier identifier)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:76,1
    - Dst: Botan::identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:76,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:77,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:77,1
    - Dst: r
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:77,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:78,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:78,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:79,1
    - Dst: Botan::K
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:79,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - out
    - ' lmots_pk'
    - ' tree_address'
    - ' hash'
    argTypes:
    - StrongSpan<LMS_Tree_Node>
    - LMOTS_Public_Key
    - TreeAddress
    - HashFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 81
    functionName: Botan::lms_gen_leaf
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 0
    functionsReached:
    - Botan::K
    - Botan::identifier
    - r
    - Botan::store_be
    - Botan::final
    - Botan::update
    linkageType: ''
    returnType: void
    signature: "void lms_gen_leaf(StrongSpan<LMS_Tree_Node> out,\n                  const
      LMOTS_Public_Key& lmots_pk,\n                  const TreeAddress& tree_address,\n
      \                 HashFunction& hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:84,1
    - Dst: Botan::LMOTS_Private_Key
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:85,1
    - Dst: Botan::lmots_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:85,1
    - Dst: Botan::identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:85,1
    - Dst: Botan::q
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:85,1
    - Dst: Botan::seed
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:85,1
    - Dst: Botan::LMOTS_Public_Key
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:86,1
    - Dst: Botan::lms_gen_leaf
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' lms_sk'
    argTypes:
    - LMS_PrivateKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: Botan::lms_gen_leaf_func
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 0
    functionsReached:
    - Botan::q
    - Botan::lms_params
    - Botan::identifier
    - Botan::LMOTS_Public_Key
    - Botan::seed
    - Botan::lms_gen_leaf
    - Botan::lmots_params
    - Botan::LMOTS_Private_Key
    linkageType: ''
    returnType: auto
    signature: auto lms_gen_leaf_func(const LMS_PrivateKey& lms_sk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::get_hash_pair_func_for_identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:95,1
    - Dst: Botan::lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:95,1
    - Dst: Botan::identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:95,1
    - Dst: Botan::lms_gen_leaf_func
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:96,1
    - Dst: Botan::lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:97,1
    - Dst: Botan::treehash
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:99,1
    - Dst: Botan::lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:102,1
    - Dst: LMS_TreeLayerIndex
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:103,1
    - Dst: Botan::lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:103,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:105,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - out_root
    - out_auth_path
    - leaf_idx
    - ' lms_sk'
    argTypes:
    - StrongSpan<LMS_Tree_Node>
    - std::optional<StrongSpan<LMS_AuthenticationPath>>
    - std::optional<LMS_Tree_Node_Idx>
    - LMS_PrivateKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 108
    functionName: Botan::lms_treehash
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 0
    functionsReached:
    - Botan::treehash
    - std::move
    - Botan::lms_gen_leaf_func
    - Botan::lms_params
    - Botan::identifier
    - Botan::get_hash_pair_func_for_identifier
    - LMS_TreeLayerIndex
    linkageType: ''
    returnType: void
    signature: "void lms_treehash(StrongSpan<LMS_Tree_Node> out_root,\n                  std::optional<StrongSpan<LMS_AuthenticationPath>>
      out_auth_path,\n                  std::optional<LMS_Tree_Node_Idx> leaf_idx,\n
      \                 const LMS_PrivateKey& lms_sk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - total_tree_height
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: Botan::TreeAddress::TreeAddress
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: void
    signature: void TreeAddress(uint32_t total_tree_height)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:38,1
    - Dst: LMS_Tree_Node_Idx::get
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:38,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:39,1
    - Dst: LMS_TreeLayerIndex::get
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:39,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:40,1
    - Dst: LMS_Tree_Node_Idx::get
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - tree_layer
    - tree_index
    argTypes:
    - LMS_TreeLayerIndex
    - LMS_Tree_Node_Idx
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: '& set_address(LMS_TreeLayerIndex tree_layer, LMS_Tree_Node_Idx
      tree_index)'
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 0
    functionsReached:
    - Botan::get
    - LMS_TreeLayerIndex::get
    - BOTAN_ARG_CHECK
    - LMS_Tree_Node_Idx::get
    linkageType: ''
    returnType: TreeAddress
    signature: TreeAddress & set_address(LMS_TreeLayerIndex tree_layer, LMS_Tree_Node_Idx
      tree_index)
  - 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::TreeAddress::r
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t r() 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::TreeAddress::is_leaf
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_leaf() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:49,1
    - Dst: Botan::TreeAddress::is_leaf
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:49,1
    - Dst: LMS_Tree_Node_Idx
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:50,1
    - Dst: get
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: Botan::TreeAddress::q
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - LMS_Tree_Node_Idx
    - Botan::TreeAddress::is_leaf
    - get
    linkageType: ''
    returnType: LMS_Tree_Node_Idx
    signature: LMS_Tree_Node_Idx q() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hash
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:59,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:59,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:63,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:64,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:64,1
    - Dst: r
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:64,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:65,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:65,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:66,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:67,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - ' lms_params'
    - identifier
    argTypes:
    - LMS_Params
    - LMS_Identifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 70
    functionName: Botan::get_hash_pair_func_for_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 1
    functionsReached:
    - std::move
    - r
    - Botan::store_be
    - Botan::hash
    - Botan::final
    - Botan::update
    linkageType: ''
    returnType: auto
    signature: auto get_hash_pair_func_for_identifier(const LMS_Params& lms_params,
      LMS_Identifier identifier)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:76,1
    - Dst: Botan::identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:76,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:77,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:77,1
    - Dst: r
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:77,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:78,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:78,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:79,1
    - Dst: Botan::K
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:79,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - out
    - ' lmots_pk'
    - ' tree_address'
    - ' hash'
    argTypes:
    - StrongSpan<LMS_Tree_Node>
    - LMOTS_Public_Key
    - TreeAddress
    - HashFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 81
    functionName: Botan::lms_gen_leaf
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 1
    functionsReached:
    - Botan::K
    - Botan::identifier
    - r
    - Botan::store_be
    - Botan::final
    - Botan::update
    linkageType: ''
    returnType: void
    signature: "void lms_gen_leaf(StrongSpan<LMS_Tree_Node> out,\n                  const
      LMOTS_Public_Key& lmots_pk,\n                  const TreeAddress& tree_address,\n
      \                 HashFunction& hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:84,1
    - Dst: Botan::LMOTS_Private_Key
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:85,1
    - Dst: Botan::lmots_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:85,1
    - Dst: Botan::identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:85,1
    - Dst: Botan::q
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:85,1
    - Dst: Botan::seed
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:85,1
    - Dst: Botan::LMOTS_Public_Key
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:86,1
    - Dst: Botan::lms_gen_leaf
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' lms_sk'
    argTypes:
    - LMS_PrivateKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: Botan::lms_gen_leaf_func
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 1
    functionsReached:
    - Botan::q
    - Botan::lms_params
    - Botan::identifier
    - Botan::LMOTS_Public_Key
    - Botan::seed
    - Botan::lms_gen_leaf
    - Botan::lmots_params
    - Botan::LMOTS_Private_Key
    linkageType: ''
    returnType: auto
    signature: auto lms_gen_leaf_func(const LMS_PrivateKey& lms_sk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::get_hash_pair_func_for_identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:95,1
    - Dst: Botan::lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:95,1
    - Dst: Botan::identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:95,1
    - Dst: Botan::lms_gen_leaf_func
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:96,1
    - Dst: Botan::lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:97,1
    - Dst: Botan::treehash
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:99,1
    - Dst: Botan::lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:102,1
    - Dst: LMS_TreeLayerIndex
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:103,1
    - Dst: Botan::lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:103,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:105,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - out_root
    - out_auth_path
    - leaf_idx
    - ' lms_sk'
    argTypes:
    - StrongSpan<LMS_Tree_Node>
    - std::optional<StrongSpan<LMS_AuthenticationPath>>
    - std::optional<LMS_Tree_Node_Idx>
    - LMS_PrivateKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 108
    functionName: Botan::lms_treehash
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 0
    functionsReached:
    - Botan::treehash
    - std::move
    - Botan::lms_gen_leaf_func
    - Botan::lms_params
    - Botan::identifier
    - Botan::get_hash_pair_func_for_identifier
    - LMS_TreeLayerIndex
    linkageType: ''
    returnType: void
    signature: "void lms_treehash(StrongSpan<LMS_Tree_Node> out_root,\n                  std::optional<StrongSpan<LMS_AuthenticationPath>>
      out_auth_path,\n                  std::optional<LMS_Tree_Node_Idx> leaf_idx,\n
      \                 const LMS_PrivateKey& lms_sk)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:116,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:118,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:120,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:122,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:124,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:126,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:128,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:130,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:132,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:134,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:136,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:138,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:140,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:142,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:144,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:146,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:148,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:150,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:152,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:154,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:156,1
    - Dst: Botan::LMS_Params::LMS_Params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 47
    argCount: 1
    argNames:
    - type
    argTypes:
    - LMS_Algorithm_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 161
    functionName: Botan::LMS_Params::create_or_throw
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - Botan::LMS_Params::LMS_Params
    - static_cast<uint8_t>
    linkageType: ''
    returnType: LMS_Params
    signature: LMS_Params LMS_Params::create_or_throw(LMS_Algorithm_Type type)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:178,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:194,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:210,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:226,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:229,1
    - Dst: Botan::LMS_Params::LMS_Params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:232,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 68
    argCount: 2
    argNames:
    - hash_name
    - height
    argTypes:
    - std::string_view
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 233
    functionName: Botan::LMS_Params::create_or_throw
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - Botan::LMS_Params::LMS_Params
    linkageType: ''
    returnType: LMS_Params
    signature: LMS_Params LMS_Params::create_or_throw(std::string_view hash_name,
      uint8_t height)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:237,1
    - Dst: auto::output_length
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - algorithm_type
    - hash_name
    - h
    argTypes:
    - LMS_Algorithm_Type
    - std::string_view
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 235
    functionDepth: 3
    functionLinenumber: 235
    functionLinenumberEnd: 239
    functionName: Botan::LMS_Params::LMS_Params
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 2
    functionsReached:
    - Botan::HashFunction::create_or_throw
    - auto::output_length
    linkageType: ''
    returnType: void
    signature: void LMS_Params::LMS_Params(LMS_Algorithm_Type algorithm_type, std::string_view
      hash_name, uint8_t h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:245,1
    - Dst: StrongSpan<LMS_Signature_Bytes>::size
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:245,1
    - Dst: Botan::LMS_Signature::size
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:245,1
    - Dst: lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:245,1
    - Dst: lmots_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:245,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:248,1
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:248,1
    - Dst: LMOTS_Private_Key::sign
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:250,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:250,1
    - Dst: Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::block_size
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:250,1
    - Dst: lmots_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:250,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:251,1
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:251,1
    - Dst: lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:251,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:252,1
    - Dst: lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:252,1
    - Dst: lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:252,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:254,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:254,1
    - Dst: lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:256,1
    - Dst: lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:257,1
    - Dst: lms_treehash
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:258,1
    - Dst: StrongSpan<LMS_Tree_Node>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:258,1
    - Dst: LMS_Tree_Node::get
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:258,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:260,1
    - Dst: LMS_PublicKey
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:261,1
    - Dst: lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:261,1
    - Dst: lmots_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:261,1
    - Dst: identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:261,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - out_sig
    - q
    - ' msg'
    argTypes:
    - StrongSpan<LMS_Signature_Bytes>
    - LMS_Tree_Node_Idx
    - LMS_Message
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 262
    functionName: Botan::LMS_PrivateKey::sign_and_get_pk
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - BufferStuffer::append
    - BufferStuffer::full
    - BOTAN_ARG_CHECK
    - LMS_PublicKey
    - Botan::CT::unpoison
    - LMS_Tree_Node::get
    - lms_treehash
    - Botan::LMS_Signature::size
    - store_be
    - identifier
    - Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::block_size
    - std::move
    - lms_params
    - lmots_params
    - LMOTS_Private_Key::sign
    - BufferStuffer::next
    - StrongSpan<LMS_Tree_Node>
    - StrongSpan<LMS_Signature_Bytes>::size
    linkageType: ''
    returnType: LMS_PublicKey
    signature: "LMS_PublicKey LMS_PrivateKey::sign_and_get_pk(StrongSpan<LMS_Signature_Bytes>
      out_sig,\n                                              LMS_Tree_Node_Idx q,\n
      \                                             const LMS_Message& msg) const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: remaining
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:265,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:268,1
    - Dst: load_be<LMS_Algorithm_Type>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:271,1
    - Dst: take
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:271,1
    - Dst: Botan::LMS_Params::create_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:273,1
    - Dst: Botan::LMS_PublicKey::size
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:275,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:276,1
    - Dst: load_be<LMOTS_Algorithm_Type>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:279,1
    - Dst: take
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:279,1
    - Dst: Botan::LMOTS_Params::create_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:280,1
    - Dst: auto::hash_name
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:282,1
    - Dst: auto::hash_name
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:282,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:283,1
    - Dst: copy
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:287,1
    - Dst: copy
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:289,1
    - Dst: auto::m
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:289,1
    - Dst: Botan::LMS_PublicKey::LMS_PublicKey
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:291,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:291,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:291,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:291,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:291,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - ' slicer'
    argTypes:
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 292
    functionName: Botan::LMS_PublicKey::from_bytes_or_throw
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 4
    functionsReached:
    - auto::m
    - Decoding_Error
    - Botan::LMOTS_Params::create_or_throw
    - std::move
    - auto::hash_name
    - Botan::LMS_PublicKey::size
    - load_be<LMOTS_Algorithm_Type>
    - copy
    - Botan::LMS_Params::create_or_throw
    - take
    - remaining
    - Botan::LMS_PublicKey::LMS_PublicKey
    - load_be<LMS_Algorithm_Type>
    linkageType: ''
    returnType: LMS_PublicKey
    signature: LMS_PublicKey LMS_PublicKey::from_bytes_or_throw(BufferSlicer& slicer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:296,1
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:297,1
    - Dst: lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:297,1
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:298,1
    - Dst: lmots_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:298,1
    - Dst: identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 302
    functionName: Botan::LMS_PublicKey::to_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 0
    functionsReached:
    - concat
    - lms_params
    - lmots_params
    - store_be
    - identifier
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> LMS_PublicKey::to_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:308,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:308,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:308,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:308,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:309,1
    - Dst: identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:309,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:310,1
    - Dst: Botan::LMS_PublicKey::size
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:310,1
    - Dst: Botan::LMS_PublicKey::lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - lms_params
    - lmots_params
    - I
    - lms_root
    argTypes:
    - LMS_Params
    - LMOTS_Params
    - LMS_Identifier
    - LMS_Tree_Node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 311
    functionName: Botan::LMS_PublicKey::LMS_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 1
    functionsReached:
    - std::move
    - Botan::LMS_PublicKey::size
    - BOTAN_ARG_CHECK
    - Botan::LMS_PublicKey::lms_params
    - identifier
    linkageType: ''
    returnType: void
    signature: "void LMS_PublicKey::LMS_PublicKey(LMS_Params lms_params,\n                             LMOTS_Params
      lmots_params,\n                             LMS_Identifier I,\n                             LMS_Tree_Node
      lms_root)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' lms_params'
    argTypes:
    - LMS_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 315
    functionName: Botan::LMS_PublicKey::size
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 2
    functionsReached:
    - m
    linkageType: ''
    returnType: size_t
    signature: size_t LMS_PublicKey::size(const LMS_Params& lms_params)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: remaining
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:318,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:321,1
    - Dst: load_be<LMS_Tree_Node_Idx>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:324,1
    - Dst: take
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:324,1
    - Dst: Botan::LMOTS_Signature::from_bytes_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:327,1
    - Dst: Botan::LMOTS_Params::create_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:328,1
    - Dst: auto::algorithm_type
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:328,1
    - Dst: remaining
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:330,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:331,1
    - Dst: load_be<LMS_Algorithm_Type>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:334,1
    - Dst: take
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:334,1
    - Dst: Botan::LMS_Params::create_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:336,1
    - Dst: Botan::LMS_Signature::size
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:338,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:339,1
    - Dst: copy
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:343,1
    - Dst: LMS_Params::m
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:343,1
    - Dst: LMS_Params::h
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:343,1
    - Dst: LMS_Signature
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:345,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:345,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:345,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - ' slicer'
    argTypes:
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 317
    functionDepth: 4
    functionLinenumber: 317
    functionLinenumberEnd: 346
    functionName: Botan::LMS_Signature::from_bytes_or_throw
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 4
    functionsReached:
    - LMS_Signature
    - Botan::LMS_Signature::size
    - Decoding_Error
    - Botan::LMOTS_Signature::from_bytes_or_throw
    - Botan::LMOTS_Params::create_or_throw
    - std::move
    - load_be<LMS_Tree_Node_Idx>
    - copy
    - Botan::LMS_Params::create_or_throw
    - take
    - remaining
    - LMS_Params::m
    - LMS_Params::h
    - auto::algorithm_type
    - load_be<LMS_Algorithm_Type>
    linkageType: ''
    returnType: LMS_Signature
    signature: LMS_Signature LMS_Signature::from_bytes_or_throw(BufferSlicer& slicer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:349,1
    - Dst: lms_treehash
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:350,1
    - Dst: StrongSpan<LMS_Tree_Node>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' sk'
    argTypes:
    - LMS_PrivateKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 351
    functionName: Botan::LMS_PublicKey::LMS_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 1
    functionsReached:
    - StrongSpan<LMS_Tree_Node>
    - lms_params
    - lms_treehash
    linkageType: ''
    returnType: void
    signature: void LMS_PublicKey::LMS_PublicKey(const LMS_PrivateKey& sk)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lms_root
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:354,1
    - Dst: lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:354,1
    - Dst: lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:358,1
    - Dst: lms_type
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:358,1
    - Dst: lmots_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:363,1
    - Dst: lmots_sig
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:363,1
    - Dst: q
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:368,1
    - Dst: lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:368,1
    - Dst: Botan::LMS_PublicKey::lms_compute_root_from_sig
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:372,1
    - Dst: std::optional::has_value
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:373,1
    - Dst: std::optional::value
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:377,1
    - Dst: lms_root
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:377,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - ' msg'
    - ' sig'
    argTypes:
    - LMS_Message
    - LMS_Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 378
    functionName: Botan::LMS_PublicKey::verify_signature
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 0
    functionsReached:
    - lms_type
    - lmots_sig
    - lms_root
    - lms_params
    - std::optional::value
    - lmots_params
    - std::optional::has_value
    - Botan::LMS_PublicKey::lms_compute_root_from_sig
    - q
    linkageType: ''
    returnType: bool
    signature: bool LMS_PublicKey::verify_signature(const LMS_Message& msg, const
      LMS_Signature& sig) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:383,1
    - Dst: lms_type
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:383,1
    - Dst: lmots_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:384,1
    - Dst: lmots_sig
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:384,1
    - Dst: Botan::LMS_Params::create_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:388,1
    - Dst: lms_type
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:388,1
    - Dst: lmots_sig
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:389,1
    - Dst: Botan::LMOTS_Params::create_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:390,1
    - Dst: algorithm_type
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:390,1
    - Dst: lmots_compute_pubkey_from_sig
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:391,1
    - Dst: identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:391,1
    - Dst: q
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:391,1
    - Dst: LMS_Params::hash
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:392,1
    - Dst: get_hash_pair_func_for_identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:394,1
    - Dst: identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:394,1
    - Dst: TreeAddress
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:396,1
    - Dst: LMS_Params::h
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:396,1
    - Dst: auto::set_address
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:397,1
    - Dst: LMS_TreeLayerIndex
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:397,1
    - Dst: LMS_Tree_Node_Idx
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:397,1
    - Dst: q
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:397,1
    - Dst: identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:399,1
    - Dst: q
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:399,1
    - Dst: LMS_Params::m
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:400,1
    - Dst: lms_gen_leaf
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:401,1
    - Dst: LMS_Params::m
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:403,1
    - Dst: compute_root
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:405,1
    - Dst: StrongSpan<LMS_Tree_Node>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:405,1
    - Dst: auth_path
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:406,1
    - Dst: q
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:407,1
    - Dst: StrongSpan<const LMS_Tree_Node>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:408,1
    - Dst: LMS_Params::m
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:409,1
    - Dst: LMS_TreeLayerIndex
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:410,1
    - Dst: LMS_Params::h
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:410,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:412,1
    - Dst: LMS_Tree_Node
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:414,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ' msg'
    - ' sig'
    argTypes:
    - LMS_Message
    - LMS_Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 380
    functionDepth: 2
    functionLinenumber: 380
    functionLinenumberEnd: 418
    functionName: Botan::LMS_PublicKey::lms_compute_root_from_sig
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 1
    functionsReached:
    - lms_type
    - lmots_sig
    - LMS_Params::hash
    - Botan::LMS_Params::create_or_throw
    - LMS_TreeLayerIndex
    - compute_root
    - Botan::LMOTS_Params::create_or_throw
    - lmots_compute_pubkey_from_sig
    - TreeAddress
    - StrongSpan<const LMS_Tree_Node>
    - get_hash_pair_func_for_identifier
    - identifier
    - LMS_Params::h
    - LMS_Tree_Node
    - lms_gen_leaf
    - q
    - auth_path
    - std::move
    - lms_params
    - algorithm_type
    - lmots_params
    - LMS_Tree_Node_Idx
    - auto::set_address
    - LMS_Params::m
    - StrongSpan<LMS_Tree_Node>
    linkageType: ''
    returnType: std::optional<LMS_Tree_Node>
    signature: "std::optional<LMS_Tree_Node> LMS_PublicKey::lms_compute_root_from_sig(const
      LMS_Message& msg,\n                                                                      const
      LMS_Signature& sig) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::block_size
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:421,1
    - Dst: h
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:421,1
    - Dst: m
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lms_params'
    - ' lmots_params'
    argTypes:
    - LMS_Params
    - LMOTS_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 422
    functionName: Botan::LMS_Signature::size
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 6
    functionsReached:
    - m
    - h
    - Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::block_size
    linkageType: ''
    returnType: size_t
    signature: size_t LMS_Signature::size(const LMS_Params& lms_params, const LMOTS_Params&
      lmots_params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - total_tree_height
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: Botan::TreeAddress::TreeAddress
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: void
    signature: void TreeAddress(uint32_t total_tree_height)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:38,1
    - Dst: LMS_Tree_Node_Idx::get
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:38,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:39,1
    - Dst: LMS_TreeLayerIndex::get
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:39,1
    - Dst: get
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:40,1
    - Dst: LMS_Tree_Node_Idx::get
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - tree_layer
    - tree_index
    argTypes:
    - LMS_TreeLayerIndex
    - LMS_Tree_Node_Idx
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: '& set_address(LMS_TreeLayerIndex tree_layer, LMS_Tree_Node_Idx
      tree_index)'
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 0
    functionsReached:
    - LMS_TreeLayerIndex::get
    - get
    - BOTAN_ARG_CHECK
    - LMS_Tree_Node_Idx::get
    linkageType: ''
    returnType: TreeAddress
    signature: TreeAddress & set_address(LMS_TreeLayerIndex tree_layer, LMS_Tree_Node_Idx
      tree_index)
  - 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::TreeAddress::r
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t r() 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::TreeAddress::is_leaf
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_leaf() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:49,1
    - Dst: Botan::TreeAddress::is_leaf
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:49,1
    - Dst: LMS_Tree_Node_Idx
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:50,1
    - Dst: get
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: Botan::TreeAddress::q
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - LMS_Tree_Node_Idx
    - Botan::TreeAddress::is_leaf
    - get
    linkageType: ''
    returnType: LMS_Tree_Node_Idx
    signature: LMS_Tree_Node_Idx q() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hash
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:59,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:59,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:63,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:64,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:64,1
    - Dst: r
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:64,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:65,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:65,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:66,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:67,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - ' lms_params'
    - identifier
    argTypes:
    - LMS_Params
    - LMS_Identifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 70
    functionName: Botan::get_hash_pair_func_for_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 2
    functionsReached:
    - std::move
    - r
    - Botan::store_be
    - Botan::hash
    - Botan::final
    - Botan::update
    linkageType: ''
    returnType: auto
    signature: auto get_hash_pair_func_for_identifier(const LMS_Params& lms_params,
      LMS_Identifier identifier)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:76,1
    - Dst: Botan::identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:76,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:77,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:77,1
    - Dst: r
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:77,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:78,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:78,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:79,1
    - Dst: Botan::K
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:79,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - out
    - ' lmots_pk'
    - ' tree_address'
    - ' hash'
    argTypes:
    - StrongSpan<LMS_Tree_Node>
    - LMOTS_Public_Key
    - TreeAddress
    - HashFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 81
    functionName: Botan::lms_gen_leaf
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 2
    functionsReached:
    - Botan::K
    - Botan::identifier
    - r
    - Botan::store_be
    - Botan::final
    - Botan::update
    linkageType: ''
    returnType: void
    signature: "void lms_gen_leaf(StrongSpan<LMS_Tree_Node> out,\n                  const
      LMOTS_Public_Key& lmots_pk,\n                  const TreeAddress& tree_address,\n
      \                 HashFunction& hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:84,1
    - Dst: Botan::LMOTS_Private_Key
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:85,1
    - Dst: Botan::lmots_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:85,1
    - Dst: Botan::identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:85,1
    - Dst: Botan::q
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:85,1
    - Dst: Botan::seed
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:85,1
    - Dst: Botan::LMOTS_Public_Key
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:86,1
    - Dst: Botan::lms_gen_leaf
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' lms_sk'
    argTypes:
    - LMS_PrivateKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: Botan::lms_gen_leaf_func
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 2
    functionsReached:
    - Botan::q
    - Botan::lms_params
    - Botan::identifier
    - Botan::LMOTS_Public_Key
    - Botan::seed
    - Botan::lms_gen_leaf
    - Botan::lmots_params
    - Botan::LMOTS_Private_Key
    linkageType: ''
    returnType: auto
    signature: auto lms_gen_leaf_func(const LMS_PrivateKey& lms_sk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::get_hash_pair_func_for_identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:95,1
    - Dst: Botan::lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:95,1
    - Dst: Botan::identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:95,1
    - Dst: Botan::lms_gen_leaf_func
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:96,1
    - Dst: Botan::lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:97,1
    - Dst: Botan::treehash
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:99,1
    - Dst: Botan::lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:102,1
    - Dst: LMS_TreeLayerIndex
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:103,1
    - Dst: Botan::lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:103,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:105,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - out_root
    - out_auth_path
    - leaf_idx
    - ' lms_sk'
    argTypes:
    - StrongSpan<LMS_Tree_Node>
    - std::optional<StrongSpan<LMS_AuthenticationPath>>
    - std::optional<LMS_Tree_Node_Idx>
    - LMS_PrivateKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 108
    functionName: Botan::lms_treehash
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 0
    functionsReached:
    - Botan::treehash
    - std::move
    - Botan::lms_gen_leaf_func
    - Botan::lms_params
    - Botan::identifier
    - Botan::get_hash_pair_func_for_identifier
    - LMS_TreeLayerIndex
    linkageType: ''
    returnType: void
    signature: "void lms_treehash(StrongSpan<LMS_Tree_Node> out_root,\n                  std::optional<StrongSpan<LMS_AuthenticationPath>>
      out_auth_path,\n                  std::optional<LMS_Tree_Node_Idx> leaf_idx,\n
      \                 const LMS_PrivateKey& lms_sk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - total_tree_height
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: Botan::TreeAddress::TreeAddress
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: void
    signature: void TreeAddress(uint32_t total_tree_height)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:38,1
    - Dst: LMS_Tree_Node_Idx::get
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:38,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:39,1
    - Dst: LMS_TreeLayerIndex::get
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:39,1
    - Dst: get
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:40,1
    - Dst: LMS_Tree_Node_Idx::get
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - tree_layer
    - tree_index
    argTypes:
    - LMS_TreeLayerIndex
    - LMS_Tree_Node_Idx
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 42
    functionName: '& set_address(LMS_TreeLayerIndex tree_layer, LMS_Tree_Node_Idx
      tree_index)'
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 0
    functionsReached:
    - LMS_TreeLayerIndex::get
    - get
    - BOTAN_ARG_CHECK
    - LMS_Tree_Node_Idx::get
    linkageType: ''
    returnType: TreeAddress
    signature: TreeAddress & set_address(LMS_TreeLayerIndex tree_layer, LMS_Tree_Node_Idx
      tree_index)
  - 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::TreeAddress::r
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t r() 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::TreeAddress::is_leaf
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_leaf() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:49,1
    - Dst: Botan::TreeAddress::is_leaf
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:49,1
    - Dst: LMS_Tree_Node_Idx
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:50,1
    - Dst: get
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: Botan::TreeAddress::q
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    - LMS_Tree_Node_Idx
    - Botan::TreeAddress::is_leaf
    - get
    linkageType: ''
    returnType: LMS_Tree_Node_Idx
    signature: LMS_Tree_Node_Idx q() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::hash
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:59,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:59,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:63,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:64,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:64,1
    - Dst: r
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:64,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:65,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:65,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:66,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:67,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - ' lms_params'
    - identifier
    argTypes:
    - LMS_Params
    - LMS_Identifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 70
    functionName: Botan::get_hash_pair_func_for_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 3
    functionsReached:
    - std::move
    - r
    - Botan::store_be
    - Botan::hash
    - Botan::final
    - Botan::update
    linkageType: ''
    returnType: auto
    signature: auto get_hash_pair_func_for_identifier(const LMS_Params& lms_params,
      LMS_Identifier identifier)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:76,1
    - Dst: Botan::identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:76,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:77,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:77,1
    - Dst: r
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:77,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:78,1
    - Dst: Botan::store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:78,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:79,1
    - Dst: Botan::K
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:79,1
    - Dst: Botan::final
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - out
    - ' lmots_pk'
    - ' tree_address'
    - ' hash'
    argTypes:
    - StrongSpan<LMS_Tree_Node>
    - LMOTS_Public_Key
    - TreeAddress
    - HashFunction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 81
    functionName: Botan::lms_gen_leaf
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 3
    functionsReached:
    - Botan::K
    - Botan::identifier
    - r
    - Botan::store_be
    - Botan::final
    - Botan::update
    linkageType: ''
    returnType: void
    signature: "void lms_gen_leaf(StrongSpan<LMS_Tree_Node> out,\n                  const
      LMOTS_Public_Key& lmots_pk,\n                  const TreeAddress& tree_address,\n
      \                 HashFunction& hash)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:84,1
    - Dst: Botan::LMOTS_Private_Key
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:85,1
    - Dst: Botan::lmots_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:85,1
    - Dst: Botan::identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:85,1
    - Dst: Botan::q
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:85,1
    - Dst: Botan::seed
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:85,1
    - Dst: Botan::LMOTS_Public_Key
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:86,1
    - Dst: Botan::lms_gen_leaf
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' lms_sk'
    argTypes:
    - LMS_PrivateKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: Botan::lms_gen_leaf_func
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 3
    functionsReached:
    - Botan::q
    - Botan::lms_params
    - Botan::identifier
    - Botan::LMOTS_Public_Key
    - Botan::seed
    - Botan::lms_gen_leaf
    - Botan::lmots_params
    - Botan::LMOTS_Private_Key
    linkageType: ''
    returnType: auto
    signature: auto lms_gen_leaf_func(const LMS_PrivateKey& lms_sk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::get_hash_pair_func_for_identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:95,1
    - Dst: Botan::lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:95,1
    - Dst: Botan::identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:95,1
    - Dst: Botan::lms_gen_leaf_func
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:96,1
    - Dst: Botan::lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:97,1
    - Dst: Botan::treehash
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:99,1
    - Dst: Botan::lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:102,1
    - Dst: LMS_TreeLayerIndex
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:103,1
    - Dst: Botan::lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:103,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:105,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - out_root
    - out_auth_path
    - leaf_idx
    - ' lms_sk'
    argTypes:
    - StrongSpan<LMS_Tree_Node>
    - std::optional<StrongSpan<LMS_AuthenticationPath>>
    - std::optional<LMS_Tree_Node_Idx>
    - LMS_PrivateKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 91
    functionDepth: 3
    functionLinenumber: 91
    functionLinenumberEnd: 108
    functionName: Botan::lms_treehash
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 0
    functionsReached:
    - Botan::treehash
    - std::move
    - Botan::lms_gen_leaf_func
    - Botan::lms_params
    - Botan::identifier
    - Botan::get_hash_pair_func_for_identifier
    - LMS_TreeLayerIndex
    linkageType: ''
    returnType: void
    signature: "void lms_treehash(StrongSpan<LMS_Tree_Node> out_root,\n                  std::optional<StrongSpan<LMS_AuthenticationPath>>
      out_auth_path,\n                  std::optional<LMS_Tree_Node_Idx> leaf_idx,\n
      \                 const LMS_PrivateKey& lms_sk)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:116,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:118,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:120,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:122,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:124,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:126,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:128,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:130,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:132,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:134,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:136,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:138,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:140,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:142,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:144,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:146,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:148,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:150,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:152,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:154,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:156,1
    - Dst: Botan::LMS_Params::LMS_Params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:160,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 47
    argCount: 1
    argNames:
    - type
    argTypes:
    - LMS_Algorithm_Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 112
    functionDepth: 4
    functionLinenumber: 112
    functionLinenumberEnd: 161
    functionName: Botan::LMS_Params::create_or_throw
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 3
    functionsReached:
    - Decoding_Error
    - Botan::LMS_Params::LMS_Params
    - static_cast<uint8_t>
    linkageType: ''
    returnType: LMS_Params
    signature: LMS_Params LMS_Params::create_or_throw(LMS_Algorithm_Type type)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:178,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:194,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:210,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:226,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:229,1
    - Dst: Botan::LMS_Params::LMS_Params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:232,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 68
    argCount: 2
    argNames:
    - hash_name
    - height
    argTypes:
    - std::string_view
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 163
    functionDepth: 4
    functionLinenumber: 163
    functionLinenumberEnd: 233
    functionName: Botan::LMS_Params::create_or_throw
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 3
    functionsReached:
    - Decoding_Error
    - Botan::LMS_Params::LMS_Params
    linkageType: ''
    returnType: LMS_Params
    signature: LMS_Params LMS_Params::create_or_throw(std::string_view hash_name,
      uint8_t height)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:237,1
    - Dst: auto::output_length
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - algorithm_type
    - hash_name
    - h
    argTypes:
    - LMS_Algorithm_Type
    - std::string_view
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 235
    functionDepth: 3
    functionLinenumber: 235
    functionLinenumberEnd: 239
    functionName: Botan::LMS_Params::LMS_Params
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 4
    functionsReached:
    - Botan::HashFunction::create_or_throw
    - auto::output_length
    linkageType: ''
    returnType: void
    signature: void LMS_Params::LMS_Params(LMS_Algorithm_Type algorithm_type, std::string_view
      hash_name, uint8_t h)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:245,1
    - Dst: StrongSpan<LMS_Signature_Bytes>::size
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:245,1
    - Dst: Botan::LMS_Signature::size
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:245,1
    - Dst: lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:245,1
    - Dst: lmots_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:245,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:248,1
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:248,1
    - Dst: LMOTS_Private_Key::sign
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:250,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:250,1
    - Dst: Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::block_size
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:250,1
    - Dst: lmots_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:250,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:251,1
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:251,1
    - Dst: lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:251,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:252,1
    - Dst: lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:252,1
    - Dst: lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:252,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:254,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:254,1
    - Dst: lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:256,1
    - Dst: lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:257,1
    - Dst: lms_treehash
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:258,1
    - Dst: StrongSpan<LMS_Tree_Node>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:258,1
    - Dst: LMS_Tree_Node::get
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:258,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:260,1
    - Dst: LMS_PublicKey
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:261,1
    - Dst: lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:261,1
    - Dst: lmots_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:261,1
    - Dst: identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:261,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 3
    argNames:
    - out_sig
    - q
    - ' msg'
    argTypes:
    - StrongSpan<LMS_Signature_Bytes>
    - LMS_Tree_Node_Idx
    - LMS_Message
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 262
    functionName: Botan::LMS_PrivateKey::sign_and_get_pk
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - BufferStuffer::append
    - BufferStuffer::full
    - BOTAN_ARG_CHECK
    - LMS_PublicKey
    - Botan::CT::unpoison
    - LMS_Tree_Node::get
    - lms_treehash
    - Botan::LMS_Signature::size
    - store_be
    - identifier
    - Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::block_size
    - std::move
    - lms_params
    - lmots_params
    - LMOTS_Private_Key::sign
    - BufferStuffer::next
    - StrongSpan<LMS_Tree_Node>
    - StrongSpan<LMS_Signature_Bytes>::size
    linkageType: ''
    returnType: LMS_PublicKey
    signature: "LMS_PublicKey LMS_PrivateKey::sign_and_get_pk(StrongSpan<LMS_Signature_Bytes>
      out_sig,\n                                              LMS_Tree_Node_Idx q,\n
      \                                             const LMS_Message& msg) const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: remaining
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:265,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:268,1
    - Dst: load_be<LMS_Algorithm_Type>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:271,1
    - Dst: take
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:271,1
    - Dst: Botan::LMS_Params::create_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:273,1
    - Dst: Botan::LMS_PublicKey::size
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:275,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:276,1
    - Dst: load_be<LMOTS_Algorithm_Type>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:279,1
    - Dst: take
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:279,1
    - Dst: Botan::LMOTS_Params::create_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:280,1
    - Dst: auto::hash_name
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:282,1
    - Dst: auto::hash_name
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:282,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:283,1
    - Dst: copy
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:287,1
    - Dst: copy
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:289,1
    - Dst: auto::m
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:289,1
    - Dst: Botan::LMS_PublicKey::LMS_PublicKey
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:291,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:291,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:291,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:291,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:291,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - ' slicer'
    argTypes:
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 292
    functionName: Botan::LMS_PublicKey::from_bytes_or_throw
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 4
    functionsReached:
    - auto::m
    - Decoding_Error
    - Botan::LMOTS_Params::create_or_throw
    - std::move
    - auto::hash_name
    - Botan::LMS_PublicKey::size
    - load_be<LMOTS_Algorithm_Type>
    - copy
    - Botan::LMS_Params::create_or_throw
    - take
    - remaining
    - Botan::LMS_PublicKey::LMS_PublicKey
    - load_be<LMS_Algorithm_Type>
    linkageType: ''
    returnType: LMS_PublicKey
    signature: LMS_PublicKey LMS_PublicKey::from_bytes_or_throw(BufferSlicer& slicer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:296,1
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:297,1
    - Dst: lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:297,1
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:298,1
    - Dst: lmots_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:298,1
    - Dst: identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:299,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 294
    functionDepth: 1
    functionLinenumber: 294
    functionLinenumberEnd: 302
    functionName: Botan::LMS_PublicKey::to_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 0
    functionsReached:
    - concat
    - lms_params
    - lmots_params
    - store_be
    - identifier
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> LMS_PublicKey::to_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:308,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:308,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:308,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:308,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:309,1
    - Dst: identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:309,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:310,1
    - Dst: Botan::LMS_PublicKey::size
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:310,1
    - Dst: Botan::LMS_PublicKey::lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - lms_params
    - lmots_params
    - I
    - lms_root
    argTypes:
    - LMS_Params
    - LMOTS_Params
    - LMS_Identifier
    - LMS_Tree_Node
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 311
    functionName: Botan::LMS_PublicKey::LMS_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 2
    functionsReached:
    - std::move
    - Botan::LMS_PublicKey::size
    - BOTAN_ARG_CHECK
    - Botan::LMS_PublicKey::lms_params
    - identifier
    linkageType: ''
    returnType: void
    signature: "void LMS_PublicKey::LMS_PublicKey(LMS_Params lms_params,\n                             LMOTS_Params
      lmots_params,\n                             LMS_Identifier I,\n                             LMS_Tree_Node
      lms_root)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' lms_params'
    argTypes:
    - LMS_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 315
    functionName: Botan::LMS_PublicKey::size
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 4
    functionsReached:
    - m
    linkageType: ''
    returnType: size_t
    signature: size_t LMS_PublicKey::size(const LMS_Params& lms_params)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: remaining
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:318,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:321,1
    - Dst: load_be<LMS_Tree_Node_Idx>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:324,1
    - Dst: take
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:324,1
    - Dst: Botan::LMOTS_Signature::from_bytes_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:327,1
    - Dst: Botan::LMOTS_Params::create_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:328,1
    - Dst: auto::algorithm_type
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:328,1
    - Dst: remaining
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:330,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:331,1
    - Dst: load_be<LMS_Algorithm_Type>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:334,1
    - Dst: take
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:334,1
    - Dst: Botan::LMS_Params::create_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:336,1
    - Dst: Botan::LMS_Signature::size
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:338,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:339,1
    - Dst: copy
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:343,1
    - Dst: LMS_Params::m
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:343,1
    - Dst: LMS_Params::h
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:343,1
    - Dst: LMS_Signature
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:345,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:345,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:345,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - ' slicer'
    argTypes:
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 317
    functionDepth: 4
    functionLinenumber: 317
    functionLinenumberEnd: 346
    functionName: Botan::LMS_Signature::from_bytes_or_throw
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 4
    functionsReached:
    - LMS_Signature
    - Botan::LMS_Signature::size
    - Decoding_Error
    - Botan::LMOTS_Signature::from_bytes_or_throw
    - Botan::LMOTS_Params::create_or_throw
    - std::move
    - load_be<LMS_Tree_Node_Idx>
    - copy
    - Botan::LMS_Params::create_or_throw
    - take
    - remaining
    - LMS_Params::m
    - LMS_Params::h
    - auto::algorithm_type
    - load_be<LMS_Algorithm_Type>
    linkageType: ''
    returnType: LMS_Signature
    signature: LMS_Signature LMS_Signature::from_bytes_or_throw(BufferSlicer& slicer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:349,1
    - Dst: lms_treehash
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:350,1
    - Dst: StrongSpan<LMS_Tree_Node>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' sk'
    argTypes:
    - LMS_PrivateKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 351
    functionName: Botan::LMS_PublicKey::LMS_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 2
    functionsReached:
    - StrongSpan<LMS_Tree_Node>
    - lms_params
    - lms_treehash
    linkageType: ''
    returnType: void
    signature: void LMS_PublicKey::LMS_PublicKey(const LMS_PrivateKey& sk)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: lms_root
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:354,1
    - Dst: lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:354,1
    - Dst: lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:358,1
    - Dst: lms_type
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:358,1
    - Dst: lmots_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:363,1
    - Dst: lmots_sig
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:363,1
    - Dst: q
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:368,1
    - Dst: lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:368,1
    - Dst: Botan::LMS_PublicKey::lms_compute_root_from_sig
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:372,1
    - Dst: std::optional::has_value
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:373,1
    - Dst: std::optional::value
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:377,1
    - Dst: lms_root
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:377,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - ' msg'
    - ' sig'
    argTypes:
    - LMS_Message
    - LMS_Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 353
    functionDepth: 3
    functionLinenumber: 353
    functionLinenumberEnd: 378
    functionName: Botan::LMS_PublicKey::verify_signature
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 0
    functionsReached:
    - lms_type
    - lmots_sig
    - lms_root
    - lms_params
    - std::optional::value
    - lmots_params
    - std::optional::has_value
    - Botan::LMS_PublicKey::lms_compute_root_from_sig
    - q
    linkageType: ''
    returnType: bool
    signature: bool LMS_PublicKey::verify_signature(const LMS_Message& msg, const
      LMS_Signature& sig) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:383,1
    - Dst: lms_type
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:383,1
    - Dst: lmots_params
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:384,1
    - Dst: lmots_sig
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:384,1
    - Dst: Botan::LMS_Params::create_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:388,1
    - Dst: lms_type
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:388,1
    - Dst: lmots_sig
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:389,1
    - Dst: Botan::LMOTS_Params::create_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:390,1
    - Dst: algorithm_type
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:390,1
    - Dst: lmots_compute_pubkey_from_sig
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:391,1
    - Dst: identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:391,1
    - Dst: q
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:391,1
    - Dst: LMS_Params::hash
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:392,1
    - Dst: get_hash_pair_func_for_identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:394,1
    - Dst: identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:394,1
    - Dst: TreeAddress
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:396,1
    - Dst: LMS_Params::h
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:396,1
    - Dst: auto::set_address
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:397,1
    - Dst: LMS_TreeLayerIndex
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:397,1
    - Dst: LMS_Tree_Node_Idx
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:397,1
    - Dst: q
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:397,1
    - Dst: identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:399,1
    - Dst: q
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:399,1
    - Dst: LMS_Params::m
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:400,1
    - Dst: lms_gen_leaf
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:401,1
    - Dst: LMS_Params::m
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:403,1
    - Dst: compute_root
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:405,1
    - Dst: StrongSpan<LMS_Tree_Node>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:405,1
    - Dst: auth_path
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:406,1
    - Dst: q
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:407,1
    - Dst: StrongSpan<const LMS_Tree_Node>
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:408,1
    - Dst: LMS_Params::m
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:409,1
    - Dst: LMS_TreeLayerIndex
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:410,1
    - Dst: LMS_Params::h
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:410,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:412,1
    - Dst: LMS_Tree_Node
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:414,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - ' msg'
    - ' sig'
    argTypes:
    - LMS_Message
    - LMS_Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 380
    functionDepth: 2
    functionLinenumber: 380
    functionLinenumberEnd: 418
    functionName: Botan::LMS_PublicKey::lms_compute_root_from_sig
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 2
    functionsReached:
    - lms_type
    - lmots_sig
    - LMS_Params::hash
    - Botan::LMS_Params::create_or_throw
    - LMS_TreeLayerIndex
    - compute_root
    - Botan::LMOTS_Params::create_or_throw
    - lmots_compute_pubkey_from_sig
    - TreeAddress
    - StrongSpan<const LMS_Tree_Node>
    - get_hash_pair_func_for_identifier
    - identifier
    - LMS_Params::h
    - LMS_Tree_Node
    - lms_gen_leaf
    - q
    - auth_path
    - std::move
    - lms_params
    - algorithm_type
    - lmots_params
    - LMS_Tree_Node_Idx
    - auto::set_address
    - LMS_Params::m
    - StrongSpan<LMS_Tree_Node>
    linkageType: ''
    returnType: std::optional<LMS_Tree_Node>
    signature: "std::optional<LMS_Tree_Node> LMS_PublicKey::lms_compute_root_from_sig(const
      LMS_Message& msg,\n                                                                      const
      LMS_Signature& sig) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::block_size
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:421,1
    - Dst: h
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:421,1
    - Dst: m
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.cpp:421,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lms_params'
    - ' lmots_params'
    argTypes:
    - LMS_Params
    - LMOTS_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 422
    functionName: Botan::LMS_Signature::size
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.cpp
    functionUses: 8
    functionsReached:
    - m
    - h
    - Botan_Tests::TLS_CBC_Tests::Noop_Block_Cipher::block_size
    linkageType: ''
    returnType: size_t
    signature: size_t LMS_Signature::size(const LMS_Params& lms_params, const LMOTS_Params&
      lmots_params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms_utils.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - q
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: Botan::PseudorandomKeyGeneration::set_q
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms_utils.h
    functionUses: 0
    functionsReached:
    - store_be
    linkageType: ''
    returnType: void
    signature: void set_q(uint32_t q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms_utils.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: Botan::PseudorandomKeyGeneration::set_i
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms_utils.h
    functionUses: 0
    functionsReached:
    - store_be
    linkageType: ''
    returnType: void
    signature: void set_i(uint16_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms_utils.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - j
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: Botan::PseudorandomKeyGeneration::set_j
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms_utils.h
    functionUses: 0
    functionsReached:
    - store_be
    linkageType: ''
    returnType: void
    signature: void set_j(uint8_t j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms_utils.h:55,1
    - Dst: Botan::PseudorandomKeyGeneration::gen
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms_utils.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' hash'
    - seed
    argTypes:
    - HashFunction
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: Botan::PseudorandomKeyGeneration::gen
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms_utils.h
    functionUses: 1
    functionsReached:
    - output_length
    - Botan::PseudorandomKeyGeneration::gen
    linkageType: ''
    returnType: T
    signature: T gen(HashFunction& hash, std::span<const uint8_t> seed) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms_utils.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - q
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 38
    functionName: Botan::PseudorandomKeyGeneration::set_q
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms_utils.h
    functionUses: 0
    functionsReached:
    - store_be
    linkageType: ''
    returnType: void
    signature: void set_q(uint32_t q)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms_utils.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: Botan::PseudorandomKeyGeneration::set_i
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms_utils.h
    functionUses: 0
    functionsReached:
    - store_be
    linkageType: ''
    returnType: void
    signature: void set_i(uint16_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms_utils.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - j
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: Botan::PseudorandomKeyGeneration::set_j
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms_utils.h
    functionUses: 0
    functionsReached:
    - store_be
    linkageType: ''
    returnType: void
    signature: void set_j(uint8_t j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms_utils.h:55,1
    - Dst: Botan::PseudorandomKeyGeneration::gen
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms_utils.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' hash'
    - seed
    argTypes:
    - HashFunction
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: Botan::PseudorandomKeyGeneration::gen
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms_utils.h
    functionUses: 2
    functionsReached:
    - output_length
    - Botan::PseudorandomKeyGeneration::gen
    linkageType: ''
    returnType: T
    signature: T gen(HashFunction& hash, std::span<const uint8_t> seed) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - hash_name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: Botan::is_supported_hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_supported_hash_function(std::string_view hash_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::L
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:61,1
    - Dst: Botan::L
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:62,1
    - Dst: Botan::params_at_level
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:64,1
    - Dst: Botan::lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:65,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:66,1
    - Dst: HSS_Level::get
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:66,1
    - Dst: Botan::checked_cast_to
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:67,1
    - Dst: HSS_Sig_Idx::get
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:67,1
    - Dst: Botan::checked_cast_to
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:67,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:70,1
    - Dst: HSS_Sig_Idx
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - hss_idx
    - ' hss_params'
    argTypes:
    - HSS_Sig_Idx
    - HSS_LMS_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 73
    functionName: Botan::derive_lms_leaf_indices_from_hss_index
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 0
    functionsReached:
    - Botan::params_at_level
    - std::vector::at
    - Botan::lms_params
    - HSS_Level::get
    - Botan::checked_cast_to
    - BOTAN_ARG_CHECK
    - HSS_Sig_Idx::get
    - HSS_Sig_Idx
    - Botan::L
    linkageType: ''
    returnType: std::vector<LMS_Tree_Node_Idx>
    signature: "std::vector<LMS_Tree_Node_Idx> derive_lms_leaf_indices_from_hss_index(HSS_Sig_Idx
      hss_idx,\n                                                                      const
      HSS_LMS_Params& hss_params)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - hash_name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: Botan::is_supported_hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_supported_hash_function(std::string_view hash_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::L
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:61,1
    - Dst: Botan::L
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:62,1
    - Dst: Botan::params_at_level
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:64,1
    - Dst: Botan::lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:65,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:66,1
    - Dst: HSS_Level::get
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:66,1
    - Dst: Botan::checked_cast_to
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:67,1
    - Dst: HSS_Sig_Idx::get
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:67,1
    - Dst: Botan::checked_cast_to
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:67,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:70,1
    - Dst: HSS_Sig_Idx
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - hss_idx
    - ' hss_params'
    argTypes:
    - HSS_Sig_Idx
    - HSS_LMS_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 73
    functionName: Botan::derive_lms_leaf_indices_from_hss_index
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 0
    functionsReached:
    - Botan::params_at_level
    - std::vector::at
    - Botan::lms_params
    - HSS_Level::get
    - Botan::checked_cast_to
    - BOTAN_ARG_CHECK
    - HSS_Sig_Idx::get
    - HSS_Sig_Idx
    - Botan::L
    linkageType: ''
    returnType: std::vector<LMS_Tree_Node_Idx>
    signature: "std::vector<LMS_Tree_Node_Idx> derive_lms_leaf_indices_from_hss_index(HSS_Sig_Idx
      hss_idx,\n                                                                      const
      HSS_LMS_Params& hss_params)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:78,1
    - Dst: Botan::HSS_LMS_Params::calc_max_sig_count
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:78,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:79,1
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:79,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - lm_lmots_params
    argTypes:
    - std::vector<LMS_LMOTS_Params_Pair>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: Botan::HSS_LMS_Params::HSS_LMS_Params
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::HSS_LMS_Params::calc_max_sig_count
    - size
    - BOTAN_ARG_CHECK
    - empty
    linkageType: ''
    returnType: void
    signature: void HSS_LMS_Params::HSS_LMS_Params(std::vector<LMS_LMOTS_Params_Pair>
      lm_lmots_params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:85,1
    - Dst: std::string
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:86,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:88,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:93,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:93,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:93,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:94,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:95,1
    - Dst: is_supported_hash_function
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:95,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:97,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:98,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:99,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:99,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:100,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:100,1
    - Dst: checked_cast_to_or_throw<uint8_t, Invalid_Argument>
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:102,1
    - Dst: SCAN_Name::arg_as_integer
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:102,1
    - Dst: checked_cast_to_or_throw<uint8_t, Invalid_Argument>
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:103,1
    - Dst: SCAN_Name::arg_as_integer
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:103,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:105,1
    - Dst: Botan::LMS_Params::create_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:105,1
    - Dst: Botan::LMOTS_Params::create_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:105,1
    - Dst: Botan::HSS_LMS_Params::calc_max_sig_count
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - algo_params
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 108
    functionName: Botan::HSS_LMS_Params::HSS_LMS_Params
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::starts_with
    - Botan::LMOTS_Params::create_or_throw
    - Botan::HSS_LMS_Params::calc_max_sig_count
    - SCAN_Name::arg_count
    - checked_cast_to_or_throw<uint8_t, Invalid_Argument>
    - std::string
    - BOTAN_ARG_CHECK
    - Botan::LMS_Params::create_or_throw
    - SCAN_Name::arg
    - push_back
    - SCAN_Name::algo_name
    - SCAN_Name::arg_as_integer
    - is_supported_hash_function
    - fmt
    linkageType: ''
    returnType: void
    signature: void HSS_LMS_Params::HSS_LMS_Params(std::string_view algo_params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: L
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:112,1
    - Dst: params_at_level
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:113,1
    - Dst: HSS_Sig_Idx
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:116,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:116,1
    - Dst: HSS_Sig_Idx
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 119
    functionName: Botan::HSS_LMS_Params::calc_max_sig_count
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::random_bit_generator::max
    - L
    - params_at_level
    - HSS_Sig_Idx
    linkageType: ''
    returnType: HSS_Sig_Idx
    signature: HSS_Sig_Idx HSS_LMS_Params::calc_max_sig_count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HSS_Signature::size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:122,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:123,1
    - Dst: params_at_level
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:123,1
    - Dst: HSS_Level
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:123,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' hss_params'
    - ' rng'
    argTypes:
    - HSS_LMS_Params
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: Botan::HSS_LMS_PrivateKeyInternal::HSS_LMS_PrivateKeyInternal
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 0
    functionsReached:
    - HSS_Level
    - Botan::HSS_Signature::size
    - params_at_level
    - random_vec
    linkageType: ''
    returnType: void
    signature: void HSS_LMS_PrivateKeyInternal::HSS_LMS_PrivateKeyInternal(const HSS_LMS_Params&
      hss_params, RandomNumberGenerator& rng)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:129,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:130,1
    - Dst: load_be<HSS_Level>
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:134,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:134,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:136,1
    - Dst: load_be<HSS_Sig_Idx>
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:139,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:139,1
    - Dst: BufferSlicer::remaining
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:143,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:144,1
    - Dst: load_be<LMS_Algorithm_Type>
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:146,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:146,1
    - Dst: load_be<LMOTS_Algorithm_Type>
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:147,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:147,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:148,1
    - Dst: Botan::LMS_Params::create_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:148,1
    - Dst: Botan::LMOTS_Params::create_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:148,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:150,1
    - Dst: std::any_of
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:151,1
    - Dst: std::vector::begin
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:151,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:151,1
    - Dst: lmots_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:152,1
    - Dst: lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:153,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:156,1
    - Dst: BufferSlicer::remaining
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:159,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:159,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:160,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:162,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:162,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:163,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:165,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:166,1
    - Dst: std::shared_ptr<HSS_LMS_PrivateKeyInternal>
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:168,1
    - Dst: HSS_LMS_Params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:169,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:169,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:169,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:169,1
    - Dst: HSS_LMS_PrivateKeyInternal::HSS_LMS_PrivateKeyInternal
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:169,1
    - Dst: auto::set_idx
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:171,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 26
    argCount: 1
    argNames:
    - key_bytes
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 173
    functionName: Botan::HSS_LMS_PrivateKeyInternal::from_bytes_or_throw
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 0
    functionsReached:
    - load_be<LMOTS_Algorithm_Type>
    - Botan::LMS_Params::create_or_throw
    - std::vector::end
    - BufferSlicer::take
    - BufferSlicer::copy
    - std::vector::begin
    - Botan::LMOTS_Params::create_or_throw
    - BufferSlicer::empty
    - std::shared_ptr<HSS_LMS_PrivateKeyInternal>
    - BufferSlicer::remaining
    - HSS_LMS_PrivateKeyInternal::HSS_LMS_PrivateKeyInternal
    - load_be<LMS_Algorithm_Type>
    - load_be<HSS_Level>
    - auto::set_idx
    - Decoding_Error
    - std::vector::push_back
    - std::span<const uint8_t>::size
    - std::vector::at
    - std::any_of
    - load_be<HSS_Sig_Idx>
    - std::move
    - lms_params
    - lmots_params
    - HSS_LMS_Params
    linkageType: ''
    returnType: std::shared_ptr<HSS_LMS_PrivateKeyInternal>
    signature: "std::shared_ptr<HSS_LMS_PrivateKeyInternal> HSS_LMS_PrivateKeyInternal::from_bytes_or_throw(\n
      \  std::span<const uint8_t> key_bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:179,1
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:179,1
    - Dst: hss_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:179,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:180,1
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:180,1
    - Dst: Botan::HSS_LMS_PrivateKeyInternal::get_idx
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:180,1
    - Dst: hss_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:182,1
    - Dst: hss_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:183,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:184,1
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:184,1
    - Dst: lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:184,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:185,1
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:185,1
    - Dst: lmots_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:185,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:187,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:188,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:189,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 192
    functionName: Botan::HSS_LMS_PrivateKeyInternal::to_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - lms_params
    - BufferStuffer::append
    - BufferStuffer::full
    - lmots_params
    - store_be
    - Botan::HSS_LMS_PrivateKeyInternal::get_idx
    - hss_params
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> HSS_LMS_PrivateKeyInternal::to_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - HSS_Sig_Idx
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 196
    functionName: Botan::HSS_LMS_PrivateKeyInternal::set_idx
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HSS_LMS_PrivateKeyInternal::set_idx(HSS_Sig_Idx idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: max_sig_count
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:200,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:201,1
    - Dst: Botan::HSS_LMS_PrivateKeyInternal::set_idx
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 205
    functionName: Botan::HSS_LMS_PrivateKeyInternal::reserve_next_idx
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 0
    functionsReached:
    - max_sig_count
    - Decoding_Error
    - Botan::HSS_LMS_PrivateKeyInternal::set_idx
    linkageType: ''
    returnType: HSS_Sig_Idx
    signature: HSS_Sig_Idx HSS_LMS_PrivateKeyInternal::reserve_next_idx()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hss_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:210,1
    - Dst: Botan::HSS_LMS_PrivateKeyInternal::size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:211,1
    - Dst: Botan::HSS_LMS_PrivateKeyInternal::size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 213
    functionName: Botan::HSS_LMS_PrivateKeyInternal::size
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 1
    functionsReached:
    - Botan::HSS_LMS_PrivateKeyInternal::size
    - hss_params
    linkageType: ''
    returnType: size_t
    signature: size_t HSS_LMS_PrivateKeyInternal::size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:218,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:219,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:220,1
    - Dst: Botan::HSS_Signature::size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:222,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:223,1
    - Dst: Botan::HSS_LMS_PrivateKeyInternal::size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:223,1
    - Dst: params_at_level
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:223,1
    - Dst: HSS_Level
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:223,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:225,1
    - Dst: Botan::HSS_LMS_PrivateKeyInternal::size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hss_params
    - hss_seed
    - identifier
    argTypes:
    - HSS_LMS_Params
    - LMS_Seed
    - LMS_Identifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 226
    functionName: Botan::HSS_LMS_PrivateKeyInternal::HSS_LMS_PrivateKeyInternal
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 0
    functionsReached:
    - Botan::HSS_LMS_PrivateKeyInternal::size
    - std::move
    - HSS_Level
    - BOTAN_ARG_CHECK
    - params_at_level
    - Botan::HSS_Signature::size
    linkageType: ''
    returnType: void
    signature: "void HSS_LMS_PrivateKeyInternal::HSS_LMS_PrivateKeyInternal(HSS_LMS_Params
      hss_params,\n                                                       LMS_Seed
      hss_seed,\n                                                       LMS_Identifier
      identifier)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:231,1
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:231,1
    - Dst: hss_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:231,1
    - Dst: derive_lms_leaf_indices_from_hss_index
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:233,1
    - Dst: Botan::HSS_LMS_PrivateKeyInternal::reserve_next_idx
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:233,1
    - Dst: hss_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:233,1
    - Dst: hss_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:239,1
    - Dst: hss_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:241,1
    - Dst: HSS_Level
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:242,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:243,1
    - Dst: Botan::HSS_LMS_PrivateKeyInternal::hss_derive_root_lms_private_key
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:243,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:245,1
    - Dst: Botan::HSS_LMS_PrivateKeyInternal::hss_derive_child_lms_private_key
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:246,1
    - Dst: std::vector::back
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:246,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:246,1
    - Dst: HSS_Level::get
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:246,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:247,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:247,1
    - Dst: Botan::LMS_PublicKey::size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:247,1
    - Dst: lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:247,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:249,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:249,1
    - Dst: Botan::LMS_Signature::size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:250,1
    - Dst: lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:250,1
    - Dst: lmots_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:250,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:252,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:252,1
    - Dst: hss_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:256,1
    - Dst: hss_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:258,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:260,1
    - Dst: HSS_Level::get
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:260,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:261,1
    - Dst: HSS_Level::get
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:261,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:261,1
    - Dst: HSS_Level::get
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:261,1
    - Dst: LMS_Message
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:261,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:264,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:264,1
    - Dst: HSS_Level::get
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:264,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:266,1
    - Dst: HSS_Level::get
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:266,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:267,1
    - Dst: HSS_Level::get
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:267,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:267,1
    - Dst: HSS_Level::get
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:267,1
    - Dst: LMS_Message
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:267,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 228
    functionDepth: 2
    functionLinenumber: 228
    functionLinenumberEnd: 273
    functionName: Botan::HSS_LMS_PrivateKeyInternal::sign
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - BufferStuffer::append
    - BufferStuffer::full
    - Botan::HSS_LMS_PrivateKeyInternal::reserve_next_idx
    - LMS_Message
    - HSS_Level
    - copy_mem
    - derive_lms_leaf_indices_from_hss_index
    - std::vector::back
    - Botan::LMS_Signature::size
    - std::vector::push_back
    - std::vector::at
    - store_be
    - lms_params
    - Botan::LMS_PublicKey::size
    - lmots_params
    - HSS_Level::get
    - Botan::HSS_LMS_PrivateKeyInternal::hss_derive_root_lms_private_key
    - Botan::HSS_LMS_PrivateKeyInternal::hss_derive_child_lms_private_key
    - BufferStuffer::next
    - hss_params
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> HSS_LMS_PrivateKeyInternal::sign(std::span<const
      uint8_t> msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hss_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:276,1
    - Dst: HSS_Level
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:276,1
    - Dst: LMS_PrivateKey
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:277,1
    - Dst: lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:277,1
    - Dst: lmots_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 278
    functionName: Botan::HSS_LMS_PrivateKeyInternal::hss_derive_root_lms_private_key
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 1
    functionsReached:
    - lms_params
    - LMS_PrivateKey
    - HSS_Level
    - lmots_params
    - hss_params
    linkageType: ''
    returnType: LMS_PrivateKey
    signature: LMS_PrivateKey HSS_LMS_PrivateKeyInternal::hss_derive_root_lms_private_key()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:284,1
    - Dst: lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:284,1
    - Dst: identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:287,1
    - Dst: PseudorandomKeyGeneration::set_q
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:288,1
    - Dst: LMS_Tree_Node_Idx::get
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:288,1
    - Dst: PseudorandomKeyGeneration::set_i
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:289,1
    - Dst: PseudorandomKeyGeneration::set_j
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:290,1
    - Dst: PseudorandomKeyGeneration::gen
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:291,1
    - Dst: seed
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:291,1
    - Dst: PseudorandomKeyGeneration::set_i
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:294,1
    - Dst: PseudorandomKeyGeneration::gen
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:295,1
    - Dst: seed
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:295,1
    - Dst: auto::resize
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:296,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:297,1
    - Dst: LMS_PrivateKey
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:299,1
    - Dst: lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:299,1
    - Dst: lmots_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:300,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:301,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - ' child_lms_lmots_params'
    - ' parent_sk'
    - parent_q
    argTypes:
    - HSS_LMS_Params::LMS_LMOTS_Params_Pair
    - LMS_PrivateKey
    - LMS_Tree_Node_Idx
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 280
    functionDepth: 3
    functionLinenumber: 280
    functionLinenumberEnd: 303
    functionName: Botan::HSS_LMS_PrivateKeyInternal::hss_derive_child_lms_private_key
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 1
    functionsReached:
    - std::move
    - PseudorandomKeyGeneration::set_q
    - lms_params
    - LMS_Tree_Node_Idx::get
    - LMS_PrivateKey
    - PseudorandomKeyGeneration::gen
    - PseudorandomKeyGeneration::set_j
    - lmots_params
    - Botan::HashFunction::create_or_throw
    - auto::resize
    - identifier
    - PseudorandomKeyGeneration::set_i
    - seed
    - Botan::CT::unpoison
    linkageType: ''
    returnType: LMS_PrivateKey
    signature: "LMS_PrivateKey HSS_LMS_PrivateKeyInternal::hss_derive_child_lms_private_key(\n
      \  const HSS_LMS_Params::LMS_LMOTS_Params_Pair& child_lms_lmots_params,\n   const
      LMS_PrivateKey& parent_sk,\n   LMS_Tree_Node_Idx parent_q)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hss_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:306,1
    - Dst: hss_derive_root_lms_private_key
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:308,1
    - Dst: LMS_PublicKey
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:309,1
    - Dst: Botan::HSS_LMS_PublicKeyInternal::HSS_LMS_PublicKeyInternal
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:311,1
    - Dst: L
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:311,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' hss_sk'
    argTypes:
    - HSS_LMS_PrivateKeyInternal
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 312
    functionName: Botan::HSS_LMS_PublicKeyInternal::create
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 0
    functionsReached:
    - Botan::HSS_LMS_PublicKeyInternal::HSS_LMS_PublicKeyInternal
    - std::move
    - hss_derive_root_lms_private_key
    - L
    - LMS_PublicKey
    - hss_params
    linkageType: ''
    returnType: HSS_LMS_PublicKeyInternal
    signature: HSS_LMS_PublicKeyInternal HSS_LMS_PublicKeyInternal::create(const HSS_LMS_PrivateKeyInternal&
      hss_sk)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:316,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:317,1
    - Dst: load_be<HSS_Level>
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:321,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:321,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:323,1
    - Dst: Botan::LMS_PublicKey::from_bytes_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:326,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:328,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:329,1
    - Dst: std::make_shared<HSS_LMS_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:331,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:331,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - key_bytes
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 314
    functionDepth: 3
    functionLinenumber: 314
    functionLinenumberEnd: 332
    functionName: Botan::HSS_LMS_PublicKeyInternal::from_bytes_or_throw
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - std::move
    - BufferSlicer::empty
    - std::span<const uint8_t>::size
    - std::make_shared<HSS_LMS_PublicKeyInternal>
    - BufferSlicer::take
    - Botan::LMS_PublicKey::from_bytes_or_throw
    - load_be<HSS_Level>
    linkageType: ''
    returnType: std::shared_ptr<HSS_LMS_PublicKeyInternal>
    signature: "std::shared_ptr<HSS_LMS_PublicKeyInternal> HSS_LMS_PublicKeyInternal::from_bytes_or_throw(\n
      \  std::span<const uint8_t> key_bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:335,1
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:335,1
    - Dst: Botan::HSS_LMS_PublicKeyInternal::to_bytes
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 336
    functionName: Botan::HSS_LMS_PublicKeyInternal::to_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 1
    functionsReached:
    - concat
    - store_be
    - Botan::HSS_LMS_PublicKeyInternal::to_bytes
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> HSS_LMS_PublicKeyInternal::to_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:339,1
    - Dst: Botan::HSS_LMS_PublicKeyInternal::object_identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 340
    functionName: Botan::HSS_LMS_PublicKeyInternal::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 0
    functionsReached:
    - AlgorithmIdentifier
    - Botan::HSS_LMS_PublicKeyInternal::object_identifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier HSS_LMS_PublicKeyInternal::algorithm_identifier()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:343,1
    - Dst: Botan::HSS_LMS_PublicKeyInternal::algo_name
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 344
    functionName: Botan::HSS_LMS_PublicKeyInternal::object_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 1
    functionsReached:
    - Botan::OID::from_string
    - Botan::HSS_LMS_PublicKeyInternal::algo_name
    linkageType: ''
    returnType: OID
    signature: OID HSS_LMS_PublicKeyInternal::object_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::LMS_PublicKey::size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:347,1
    - Dst: lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 348
    functionName: Botan::HSS_LMS_PublicKeyInternal::size
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 0
    functionsReached:
    - lms_params
    - Botan::LMS_PublicKey::size
    linkageType: ''
    returnType: size_t
    signature: size_t HSS_LMS_PublicKeyInternal::size() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: checked_cast_to<HSS_Level>
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:351,1
    - Dst: Nspk
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:351,1
    - Dst: lms_pub_key
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:356,1
    - Dst: LMS_PublicKey*::lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:357,1
    - Dst: Nspk
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:360,1
    - Dst: signed_pub_key
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:361,1
    - Dst: public_key
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:362,1
    - Dst: public_key
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:363,1
    - Dst: LMS_PublicKey*::verify_signature
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:367,1
    - Dst: LMS_Message
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:367,1
    - Dst: public_key
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:367,1
    - Dst: signature
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:367,1
    - Dst: public_key
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:370,1
    - Dst: LMS_PublicKey*::verify_signature
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:374,1
    - Dst: LMS_Message
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:374,1
    - Dst: bottom_sig
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:374,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - msg
    - ' sig'
    argTypes:
    - std::span<const uint8_t>
    - HSS_Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 375
    functionName: Botan::HSS_LMS_PublicKeyInternal::verify_signature
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 0
    functionsReached:
    - LMS_PublicKey*::lms_params
    - bottom_sig
    - lms_pub_key
    - checked_cast_to<HSS_Level>
    - LMS_PublicKey*::verify_signature
    - LMS_Message
    - signature
    - Nspk
    - public_key
    - signed_pub_key
    linkageType: ''
    returnType: bool
    signature: bool HSS_LMS_PublicKeyInternal::verify_signature(std::span<const uint8_t>
      msg, const HSS_Signature& sig) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:378,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - sig
    - pub
    argTypes:
    - LMS_Signature
    - LMS_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 378
    functionName: HSS_Signature::Signed_Pub_Key::Signed_Pub_Key(LMS_Signature sig,
      LMS_PublicKey pub)
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void HSS_Signature::Signed_Pub_Key::Signed_Pub_Key(LMS_Signature sig,
      LMS_PublicKey pub)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:381,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:382,1
    - Dst: load_be
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:386,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:386,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:388,1
    - Dst: Botan::LMS_Signature::from_bytes_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:393,1
    - Dst: Botan::LMS_PublicKey::from_bytes_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:394,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:395,1
    - Dst: Signed_Pub_Key
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:395,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:395,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:395,1
    - Dst: Botan::LMS_Signature::from_bytes_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:398,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:400,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:401,1
    - Dst: HSS_Signature
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:403,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:403,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:403,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - sig_bytes
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 380
    functionDepth: 5
    functionLinenumber: 380
    functionLinenumberEnd: 404
    functionName: Botan::HSS_Signature::from_bytes_or_throw
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 4
    functionsReached:
    - Decoding_Error
    - std::move
    - std::vector::push_back
    - BufferSlicer::empty
    - std::span<const uint8_t>::size
    - load_be
    - Signed_Pub_Key
    - HSS_Signature
    - Botan::LMS_Signature::from_bytes_or_throw
    - BufferSlicer::take
    - Botan::LMS_PublicKey::from_bytes_or_throw
    linkageType: ''
    returnType: HSS_Signature
    signature: HSS_Signature HSS_Signature::from_bytes_or_throw(std::span<const uint8_t>
      sig_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::LMS_Signature::size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:408,1
    - Dst: params_at_level
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:408,1
    - Dst: HSS_Level
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:408,1
    - Dst: params_at_level
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:409,1
    - Dst: HSS_Level
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:409,1
    - Dst: L
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:410,1
    - Dst: params_at_level
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:411,1
    - Dst: Botan::LMS_PublicKey::size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:412,1
    - Dst: lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:412,1
    - Dst: Botan::LMS_Signature::size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:413,1
    - Dst: lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:413,1
    - Dst: lmots_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' params'
    argTypes:
    - HSS_LMS_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 416
    functionName: Botan::HSS_Signature::size
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 2
    functionsReached:
    - Botan::LMS_Signature::size
    - lms_params
    - Botan::LMS_PublicKey::size
    - HSS_Level
    - lmots_params
    - L
    - params_at_level
    linkageType: ''
    returnType: size_t
    signature: size_t HSS_Signature::size(const HSS_LMS_Params& params)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - hash_name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: Botan::is_supported_hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_supported_hash_function(std::string_view hash_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::L
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:61,1
    - Dst: Botan::L
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:62,1
    - Dst: Botan::params_at_level
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:64,1
    - Dst: Botan::lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:65,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:66,1
    - Dst: HSS_Level::get
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:66,1
    - Dst: Botan::checked_cast_to
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:67,1
    - Dst: HSS_Sig_Idx::get
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:67,1
    - Dst: Botan::checked_cast_to
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:67,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:70,1
    - Dst: HSS_Sig_Idx
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - hss_idx
    - ' hss_params'
    argTypes:
    - HSS_Sig_Idx
    - HSS_LMS_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 73
    functionName: Botan::derive_lms_leaf_indices_from_hss_index
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 0
    functionsReached:
    - Botan::params_at_level
    - std::vector::at
    - Botan::lms_params
    - HSS_Level::get
    - Botan::checked_cast_to
    - BOTAN_ARG_CHECK
    - HSS_Sig_Idx::get
    - HSS_Sig_Idx
    - Botan::L
    linkageType: ''
    returnType: std::vector<LMS_Tree_Node_Idx>
    signature: "std::vector<LMS_Tree_Node_Idx> derive_lms_leaf_indices_from_hss_index(HSS_Sig_Idx
      hss_idx,\n                                                                      const
      HSS_LMS_Params& hss_params)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - hash_name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: Botan::is_supported_hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_supported_hash_function(std::string_view hash_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::L
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:61,1
    - Dst: Botan::L
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:62,1
    - Dst: Botan::params_at_level
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:64,1
    - Dst: Botan::lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:65,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:66,1
    - Dst: HSS_Level::get
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:66,1
    - Dst: Botan::checked_cast_to
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:67,1
    - Dst: HSS_Sig_Idx::get
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:67,1
    - Dst: Botan::checked_cast_to
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:67,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:70,1
    - Dst: HSS_Sig_Idx
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - hss_idx
    - ' hss_params'
    argTypes:
    - HSS_Sig_Idx
    - HSS_LMS_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 73
    functionName: Botan::derive_lms_leaf_indices_from_hss_index
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 0
    functionsReached:
    - Botan::params_at_level
    - std::vector::at
    - Botan::lms_params
    - HSS_Level::get
    - Botan::checked_cast_to
    - BOTAN_ARG_CHECK
    - HSS_Sig_Idx::get
    - HSS_Sig_Idx
    - Botan::L
    linkageType: ''
    returnType: std::vector<LMS_Tree_Node_Idx>
    signature: "std::vector<LMS_Tree_Node_Idx> derive_lms_leaf_indices_from_hss_index(HSS_Sig_Idx
      hss_idx,\n                                                                      const
      HSS_LMS_Params& hss_params)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:78,1
    - Dst: Botan::HSS_LMS_Params::calc_max_sig_count
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:78,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:79,1
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:79,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:79,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - lm_lmots_params
    argTypes:
    - std::vector<LMS_LMOTS_Params_Pair>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: Botan::HSS_LMS_Params::HSS_LMS_Params
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::HSS_LMS_Params::calc_max_sig_count
    - size
    - BOTAN_ARG_CHECK
    - empty
    linkageType: ''
    returnType: void
    signature: void HSS_LMS_Params::HSS_LMS_Params(std::vector<LMS_LMOTS_Params_Pair>
      lm_lmots_params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::starts_with
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:85,1
    - Dst: std::string
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:86,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:88,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:93,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:93,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:93,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:94,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:95,1
    - Dst: is_supported_hash_function
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:95,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:97,1
    - Dst: SCAN_Name::arg
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:98,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:99,1
    - Dst: SCAN_Name::algo_name
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:99,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:100,1
    - Dst: SCAN_Name::arg_count
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:100,1
    - Dst: checked_cast_to_or_throw<uint8_t, Invalid_Argument>
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:102,1
    - Dst: SCAN_Name::arg_as_integer
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:102,1
    - Dst: checked_cast_to_or_throw<uint8_t, Invalid_Argument>
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:103,1
    - Dst: SCAN_Name::arg_as_integer
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:103,1
    - Dst: push_back
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:105,1
    - Dst: Botan::LMS_Params::create_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:105,1
    - Dst: Botan::LMOTS_Params::create_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:105,1
    - Dst: Botan::HSS_LMS_Params::calc_max_sig_count
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - algo_params
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 108
    functionName: Botan::HSS_LMS_Params::HSS_LMS_Params
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 0
    functionsReached:
    - std::string_view::starts_with
    - Botan::LMOTS_Params::create_or_throw
    - Botan::HSS_LMS_Params::calc_max_sig_count
    - SCAN_Name::arg_count
    - checked_cast_to_or_throw<uint8_t, Invalid_Argument>
    - std::string
    - BOTAN_ARG_CHECK
    - Botan::LMS_Params::create_or_throw
    - SCAN_Name::arg
    - push_back
    - SCAN_Name::algo_name
    - SCAN_Name::arg_as_integer
    - is_supported_hash_function
    - fmt
    linkageType: ''
    returnType: void
    signature: void HSS_LMS_Params::HSS_LMS_Params(std::string_view algo_params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: L
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:112,1
    - Dst: params_at_level
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:113,1
    - Dst: HSS_Sig_Idx
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:116,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:116,1
    - Dst: HSS_Sig_Idx
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 119
    functionName: Botan::HSS_LMS_Params::calc_max_sig_count
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 4
    functionsReached:
    - Botan_Tests::random_bit_generator::max
    - L
    - params_at_level
    - HSS_Sig_Idx
    linkageType: ''
    returnType: HSS_Sig_Idx
    signature: HSS_Sig_Idx HSS_LMS_Params::calc_max_sig_count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HSS_Signature::size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:122,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:123,1
    - Dst: params_at_level
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:123,1
    - Dst: HSS_Level
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:123,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' hss_params'
    - ' rng'
    argTypes:
    - HSS_LMS_Params
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: Botan::HSS_LMS_PrivateKeyInternal::HSS_LMS_PrivateKeyInternal
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 0
    functionsReached:
    - HSS_Level
    - Botan::HSS_Signature::size
    - params_at_level
    - random_vec
    linkageType: ''
    returnType: void
    signature: void HSS_LMS_PrivateKeyInternal::HSS_LMS_PrivateKeyInternal(const HSS_LMS_Params&
      hss_params, RandomNumberGenerator& rng)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:129,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:130,1
    - Dst: load_be<HSS_Level>
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:134,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:134,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:136,1
    - Dst: load_be<HSS_Sig_Idx>
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:139,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:139,1
    - Dst: BufferSlicer::remaining
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:143,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:144,1
    - Dst: load_be<LMS_Algorithm_Type>
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:146,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:146,1
    - Dst: load_be<LMOTS_Algorithm_Type>
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:147,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:147,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:148,1
    - Dst: Botan::LMS_Params::create_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:148,1
    - Dst: Botan::LMOTS_Params::create_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:148,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:150,1
    - Dst: std::any_of
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:151,1
    - Dst: std::vector::begin
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:151,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:151,1
    - Dst: lmots_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:152,1
    - Dst: lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:153,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:156,1
    - Dst: BufferSlicer::remaining
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:159,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:159,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:160,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:162,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:162,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:163,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:165,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:166,1
    - Dst: std::shared_ptr<HSS_LMS_PrivateKeyInternal>
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:168,1
    - Dst: HSS_LMS_Params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:169,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:169,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:169,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:169,1
    - Dst: HSS_LMS_PrivateKeyInternal::HSS_LMS_PrivateKeyInternal
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:169,1
    - Dst: auto::set_idx
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:171,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 26
    argCount: 1
    argNames:
    - key_bytes
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 173
    functionName: Botan::HSS_LMS_PrivateKeyInternal::from_bytes_or_throw
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 0
    functionsReached:
    - load_be<LMOTS_Algorithm_Type>
    - Botan::LMS_Params::create_or_throw
    - std::vector::end
    - BufferSlicer::take
    - BufferSlicer::copy
    - std::vector::begin
    - Botan::LMOTS_Params::create_or_throw
    - BufferSlicer::empty
    - std::shared_ptr<HSS_LMS_PrivateKeyInternal>
    - BufferSlicer::remaining
    - HSS_LMS_PrivateKeyInternal::HSS_LMS_PrivateKeyInternal
    - load_be<LMS_Algorithm_Type>
    - load_be<HSS_Level>
    - auto::set_idx
    - Decoding_Error
    - std::vector::push_back
    - std::span<const uint8_t>::size
    - std::vector::at
    - std::any_of
    - load_be<HSS_Sig_Idx>
    - std::move
    - lms_params
    - lmots_params
    - HSS_LMS_Params
    linkageType: ''
    returnType: std::shared_ptr<HSS_LMS_PrivateKeyInternal>
    signature: "std::shared_ptr<HSS_LMS_PrivateKeyInternal> HSS_LMS_PrivateKeyInternal::from_bytes_or_throw(\n
      \  std::span<const uint8_t> key_bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:179,1
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:179,1
    - Dst: hss_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:179,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:180,1
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:180,1
    - Dst: Botan::HSS_LMS_PrivateKeyInternal::get_idx
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:180,1
    - Dst: hss_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:182,1
    - Dst: hss_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:183,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:184,1
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:184,1
    - Dst: lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:184,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:185,1
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:185,1
    - Dst: lmots_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:185,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:187,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:188,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:189,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 192
    functionName: Botan::HSS_LMS_PrivateKeyInternal::to_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - lms_params
    - BufferStuffer::append
    - BufferStuffer::full
    - lmots_params
    - store_be
    - Botan::HSS_LMS_PrivateKeyInternal::get_idx
    - hss_params
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> HSS_LMS_PrivateKeyInternal::to_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - HSS_Sig_Idx
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 196
    functionName: Botan::HSS_LMS_PrivateKeyInternal::set_idx
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HSS_LMS_PrivateKeyInternal::set_idx(HSS_Sig_Idx idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: max_sig_count
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:200,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:201,1
    - Dst: Botan::HSS_LMS_PrivateKeyInternal::set_idx
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:203,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 205
    functionName: Botan::HSS_LMS_PrivateKeyInternal::reserve_next_idx
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 1
    functionsReached:
    - max_sig_count
    - Decoding_Error
    - Botan::HSS_LMS_PrivateKeyInternal::set_idx
    linkageType: ''
    returnType: HSS_Sig_Idx
    signature: HSS_Sig_Idx HSS_LMS_PrivateKeyInternal::reserve_next_idx()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hss_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:210,1
    - Dst: Botan::HSS_LMS_PrivateKeyInternal::size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:211,1
    - Dst: Botan::HSS_LMS_PrivateKeyInternal::size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 213
    functionName: Botan::HSS_LMS_PrivateKeyInternal::size
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 3
    functionsReached:
    - Botan::HSS_LMS_PrivateKeyInternal::size
    - hss_params
    linkageType: ''
    returnType: size_t
    signature: size_t HSS_LMS_PrivateKeyInternal::size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:218,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:219,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:220,1
    - Dst: Botan::HSS_Signature::size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:222,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:223,1
    - Dst: Botan::HSS_LMS_PrivateKeyInternal::size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:223,1
    - Dst: params_at_level
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:223,1
    - Dst: HSS_Level
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:223,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:225,1
    - Dst: Botan::HSS_LMS_PrivateKeyInternal::size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - hss_params
    - hss_seed
    - identifier
    argTypes:
    - HSS_LMS_Params
    - LMS_Seed
    - LMS_Identifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 226
    functionName: Botan::HSS_LMS_PrivateKeyInternal::HSS_LMS_PrivateKeyInternal
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 0
    functionsReached:
    - Botan::HSS_LMS_PrivateKeyInternal::size
    - std::move
    - HSS_Level
    - BOTAN_ARG_CHECK
    - params_at_level
    - Botan::HSS_Signature::size
    linkageType: ''
    returnType: void
    signature: "void HSS_LMS_PrivateKeyInternal::HSS_LMS_PrivateKeyInternal(HSS_LMS_Params
      hss_params,\n                                                       LMS_Seed
      hss_seed,\n                                                       LMS_Identifier
      identifier)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:231,1
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:231,1
    - Dst: hss_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:231,1
    - Dst: derive_lms_leaf_indices_from_hss_index
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:233,1
    - Dst: Botan::HSS_LMS_PrivateKeyInternal::reserve_next_idx
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:233,1
    - Dst: hss_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:233,1
    - Dst: hss_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:239,1
    - Dst: hss_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:241,1
    - Dst: HSS_Level
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:242,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:243,1
    - Dst: Botan::HSS_LMS_PrivateKeyInternal::hss_derive_root_lms_private_key
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:243,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:245,1
    - Dst: Botan::HSS_LMS_PrivateKeyInternal::hss_derive_child_lms_private_key
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:246,1
    - Dst: std::vector::back
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:246,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:246,1
    - Dst: HSS_Level::get
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:246,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:247,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:247,1
    - Dst: Botan::LMS_PublicKey::size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:247,1
    - Dst: lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:247,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:249,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:249,1
    - Dst: Botan::LMS_Signature::size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:250,1
    - Dst: lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:250,1
    - Dst: lmots_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:250,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:252,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:252,1
    - Dst: hss_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:256,1
    - Dst: hss_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:258,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:260,1
    - Dst: HSS_Level::get
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:260,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:261,1
    - Dst: HSS_Level::get
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:261,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:261,1
    - Dst: HSS_Level::get
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:261,1
    - Dst: LMS_Message
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:261,1
    - Dst: copy_mem
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:264,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:264,1
    - Dst: HSS_Level::get
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:264,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:266,1
    - Dst: HSS_Level::get
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:266,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:267,1
    - Dst: HSS_Level::get
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:267,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:267,1
    - Dst: HSS_Level::get
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:267,1
    - Dst: LMS_Message
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:267,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 228
    functionDepth: 4
    functionLinenumber: 228
    functionLinenumberEnd: 273
    functionName: Botan::HSS_LMS_PrivateKeyInternal::sign
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - BufferStuffer::append
    - BufferStuffer::full
    - Botan::HSS_LMS_PrivateKeyInternal::reserve_next_idx
    - LMS_Message
    - HSS_Level
    - copy_mem
    - derive_lms_leaf_indices_from_hss_index
    - std::vector::back
    - Botan::LMS_Signature::size
    - std::vector::push_back
    - std::vector::at
    - store_be
    - lms_params
    - Botan::LMS_PublicKey::size
    - lmots_params
    - HSS_Level::get
    - Botan::HSS_LMS_PrivateKeyInternal::hss_derive_root_lms_private_key
    - Botan::HSS_LMS_PrivateKeyInternal::hss_derive_child_lms_private_key
    - BufferStuffer::next
    - hss_params
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> HSS_LMS_PrivateKeyInternal::sign(std::span<const
      uint8_t> msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hss_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:276,1
    - Dst: HSS_Level
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:276,1
    - Dst: LMS_PrivateKey
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:277,1
    - Dst: lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:277,1
    - Dst: lmots_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 278
    functionName: Botan::HSS_LMS_PrivateKeyInternal::hss_derive_root_lms_private_key
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 2
    functionsReached:
    - lms_params
    - LMS_PrivateKey
    - HSS_Level
    - lmots_params
    - hss_params
    linkageType: ''
    returnType: LMS_PrivateKey
    signature: LMS_PrivateKey HSS_LMS_PrivateKeyInternal::hss_derive_root_lms_private_key()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:284,1
    - Dst: lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:284,1
    - Dst: identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:287,1
    - Dst: PseudorandomKeyGeneration::set_q
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:288,1
    - Dst: LMS_Tree_Node_Idx::get
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:288,1
    - Dst: PseudorandomKeyGeneration::set_i
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:289,1
    - Dst: PseudorandomKeyGeneration::set_j
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:290,1
    - Dst: PseudorandomKeyGeneration::gen
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:291,1
    - Dst: seed
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:291,1
    - Dst: PseudorandomKeyGeneration::set_i
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:294,1
    - Dst: PseudorandomKeyGeneration::gen
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:295,1
    - Dst: seed
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:295,1
    - Dst: auto::resize
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:296,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:297,1
    - Dst: LMS_PrivateKey
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:299,1
    - Dst: lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:299,1
    - Dst: lmots_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:300,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:301,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - ' child_lms_lmots_params'
    - ' parent_sk'
    - parent_q
    argTypes:
    - HSS_LMS_Params::LMS_LMOTS_Params_Pair
    - LMS_PrivateKey
    - LMS_Tree_Node_Idx
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 280
    functionDepth: 3
    functionLinenumber: 280
    functionLinenumberEnd: 303
    functionName: Botan::HSS_LMS_PrivateKeyInternal::hss_derive_child_lms_private_key
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 2
    functionsReached:
    - std::move
    - PseudorandomKeyGeneration::set_q
    - lms_params
    - LMS_Tree_Node_Idx::get
    - LMS_PrivateKey
    - PseudorandomKeyGeneration::gen
    - PseudorandomKeyGeneration::set_j
    - lmots_params
    - Botan::HashFunction::create_or_throw
    - auto::resize
    - identifier
    - PseudorandomKeyGeneration::set_i
    - seed
    - Botan::CT::unpoison
    linkageType: ''
    returnType: LMS_PrivateKey
    signature: "LMS_PrivateKey HSS_LMS_PrivateKeyInternal::hss_derive_child_lms_private_key(\n
      \  const HSS_LMS_Params::LMS_LMOTS_Params_Pair& child_lms_lmots_params,\n   const
      LMS_PrivateKey& parent_sk,\n   LMS_Tree_Node_Idx parent_q)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hss_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:306,1
    - Dst: hss_derive_root_lms_private_key
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:308,1
    - Dst: LMS_PublicKey
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:309,1
    - Dst: Botan::HSS_LMS_PublicKeyInternal::HSS_LMS_PublicKeyInternal
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:311,1
    - Dst: L
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:311,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' hss_sk'
    argTypes:
    - HSS_LMS_PrivateKeyInternal
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 312
    functionName: Botan::HSS_LMS_PublicKeyInternal::create
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 0
    functionsReached:
    - Botan::HSS_LMS_PublicKeyInternal::HSS_LMS_PublicKeyInternal
    - std::move
    - hss_derive_root_lms_private_key
    - L
    - LMS_PublicKey
    - hss_params
    linkageType: ''
    returnType: HSS_LMS_PublicKeyInternal
    signature: HSS_LMS_PublicKeyInternal HSS_LMS_PublicKeyInternal::create(const HSS_LMS_PrivateKeyInternal&
      hss_sk)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:316,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:317,1
    - Dst: load_be<HSS_Level>
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:321,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:321,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:323,1
    - Dst: Botan::LMS_PublicKey::from_bytes_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:326,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:328,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:329,1
    - Dst: std::make_shared<HSS_LMS_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:331,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:331,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - key_bytes
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 314
    functionDepth: 3
    functionLinenumber: 314
    functionLinenumberEnd: 332
    functionName: Botan::HSS_LMS_PublicKeyInternal::from_bytes_or_throw
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - std::move
    - BufferSlicer::empty
    - std::span<const uint8_t>::size
    - std::make_shared<HSS_LMS_PublicKeyInternal>
    - BufferSlicer::take
    - Botan::LMS_PublicKey::from_bytes_or_throw
    - load_be<HSS_Level>
    linkageType: ''
    returnType: std::shared_ptr<HSS_LMS_PublicKeyInternal>
    signature: "std::shared_ptr<HSS_LMS_PublicKeyInternal> HSS_LMS_PublicKeyInternal::from_bytes_or_throw(\n
      \  std::span<const uint8_t> key_bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:335,1
    - Dst: store_be
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:335,1
    - Dst: Botan::HSS_LMS_PublicKeyInternal::to_bytes
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 334
    functionDepth: 1
    functionLinenumber: 334
    functionLinenumberEnd: 336
    functionName: Botan::HSS_LMS_PublicKeyInternal::to_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 2
    functionsReached:
    - concat
    - store_be
    - Botan::HSS_LMS_PublicKeyInternal::to_bytes
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> HSS_LMS_PublicKeyInternal::to_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:339,1
    - Dst: Botan::HSS_LMS_PublicKeyInternal::object_identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 338
    functionDepth: 2
    functionLinenumber: 338
    functionLinenumberEnd: 340
    functionName: Botan::HSS_LMS_PublicKeyInternal::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 0
    functionsReached:
    - AlgorithmIdentifier
    - Botan::HSS_LMS_PublicKeyInternal::object_identifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier HSS_LMS_PublicKeyInternal::algorithm_identifier()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:343,1
    - Dst: Botan::HSS_LMS_PublicKeyInternal::algo_name
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 344
    functionName: Botan::HSS_LMS_PublicKeyInternal::object_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 2
    functionsReached:
    - Botan::OID::from_string
    - Botan::HSS_LMS_PublicKeyInternal::algo_name
    linkageType: ''
    returnType: OID
    signature: OID HSS_LMS_PublicKeyInternal::object_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::LMS_PublicKey::size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:347,1
    - Dst: lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 348
    functionName: Botan::HSS_LMS_PublicKeyInternal::size
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 0
    functionsReached:
    - lms_params
    - Botan::LMS_PublicKey::size
    linkageType: ''
    returnType: size_t
    signature: size_t HSS_LMS_PublicKeyInternal::size() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: checked_cast_to<HSS_Level>
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:351,1
    - Dst: Nspk
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:351,1
    - Dst: lms_pub_key
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:356,1
    - Dst: LMS_PublicKey*::lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:357,1
    - Dst: Nspk
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:360,1
    - Dst: signed_pub_key
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:361,1
    - Dst: public_key
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:362,1
    - Dst: public_key
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:363,1
    - Dst: LMS_PublicKey*::verify_signature
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:367,1
    - Dst: LMS_Message
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:367,1
    - Dst: public_key
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:367,1
    - Dst: signature
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:367,1
    - Dst: public_key
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:370,1
    - Dst: LMS_PublicKey*::verify_signature
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:374,1
    - Dst: LMS_Message
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:374,1
    - Dst: bottom_sig
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:374,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - msg
    - ' sig'
    argTypes:
    - std::span<const uint8_t>
    - HSS_Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 375
    functionName: Botan::HSS_LMS_PublicKeyInternal::verify_signature
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 0
    functionsReached:
    - LMS_PublicKey*::lms_params
    - bottom_sig
    - lms_pub_key
    - checked_cast_to<HSS_Level>
    - LMS_PublicKey*::verify_signature
    - LMS_Message
    - signature
    - Nspk
    - public_key
    - signed_pub_key
    linkageType: ''
    returnType: bool
    signature: bool HSS_LMS_PublicKeyInternal::verify_signature(std::span<const uint8_t>
      msg, const HSS_Signature& sig) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:378,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - sig
    - pub
    argTypes:
    - LMS_Signature
    - LMS_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 378
      start: 377
    functionDepth: 0
    functionLinenumber: 377
    functionLinenumberEnd: 378
    functionName: HSS_Signature::Signed_Pub_Key::Signed_Pub_Key(LMS_Signature sig,
      LMS_PublicKey pub)
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void HSS_Signature::Signed_Pub_Key::Signed_Pub_Key(LMS_Signature sig,
      LMS_PublicKey pub)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:381,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:382,1
    - Dst: load_be
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:386,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:386,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:388,1
    - Dst: Botan::LMS_Signature::from_bytes_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:393,1
    - Dst: Botan::LMS_PublicKey::from_bytes_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:394,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:395,1
    - Dst: Signed_Pub_Key
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:395,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:395,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:395,1
    - Dst: Botan::LMS_Signature::from_bytes_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:398,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:400,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:401,1
    - Dst: HSS_Signature
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:403,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:403,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:403,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 1
    argNames:
    - sig_bytes
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 380
    functionDepth: 5
    functionLinenumber: 380
    functionLinenumberEnd: 404
    functionName: Botan::HSS_Signature::from_bytes_or_throw
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 4
    functionsReached:
    - Decoding_Error
    - std::move
    - std::vector::push_back
    - BufferSlicer::empty
    - std::span<const uint8_t>::size
    - load_be
    - Signed_Pub_Key
    - HSS_Signature
    - Botan::LMS_Signature::from_bytes_or_throw
    - BufferSlicer::take
    - Botan::LMS_PublicKey::from_bytes_or_throw
    linkageType: ''
    returnType: HSS_Signature
    signature: HSS_Signature HSS_Signature::from_bytes_or_throw(std::span<const uint8_t>
      sig_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::LMS_Signature::size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:408,1
    - Dst: params_at_level
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:408,1
    - Dst: HSS_Level
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:408,1
    - Dst: params_at_level
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:409,1
    - Dst: HSS_Level
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:409,1
    - Dst: L
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:410,1
    - Dst: params_at_level
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:411,1
    - Dst: Botan::LMS_PublicKey::size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:412,1
    - Dst: lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:412,1
    - Dst: Botan::LMS_Signature::size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:413,1
    - Dst: lms_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:413,1
    - Dst: lmots_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss.cpp:413,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' params'
    argTypes:
    - HSS_LMS_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 416
    functionName: Botan::HSS_Signature::size
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss.cpp
    functionUses: 4
    functionsReached:
    - Botan::LMS_Signature::size
    - lms_params
    - Botan::LMS_PublicKey::size
    - HSS_Level
    - lmots_params
    - L
    - params_at_level
    linkageType: ''
    returnType: size_t
    signature: size_t HSS_Signature::size(const HSS_LMS_Params& params)
  - 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::LMS_Params::algorithm_type
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LMS_Algorithm_Type
    signature: LMS_Algorithm_Type algorithm_type() 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: Botan::LMS_Params::h
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t h() 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: Botan::LMS_Params::m
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.h
    functionUses: 0
    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: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: '& hash_name() const'
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & hash_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.h:129,1
    - Dst: hash_name
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: Botan::LMS_Params::hash
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.h
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    - hash_name
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> hash() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::LMS_Instance
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.h:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 180
    functionName: Botan::LMS_Instance
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.h
    functionUses: 1
    functionsReached:
    - Botan::LMS_Instance
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API LMS_Instance
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 164
    functionName: Botan::lms_params
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: LMS_Params
    signature: LMS_Params & lms_params() 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::lmots_params
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: LMOTS_Params
    signature: LMOTS_Params & lmots_params() const
  - 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::identifier
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: LMS_Identifier
    signature: LMS_Identifier & identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::LMS_PrivateKey
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.h:195,1
    - Dst: Botan::LMS_Instance
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.h:196,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.h:196,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.h:196,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.h:196,1
    - Dst: m_seed
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.h:196,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.h:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 215
    functionName: Botan::LMS_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.h
    functionUses: 5
    functionsReached:
    - Botan::LMS_Instance
    - Botan::LMS_PrivateKey
    - std::move
    - m_seed
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API LMS_PrivateKey
  - 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::seed
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: LMS_Seed
    signature: LMS_Seed & seed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.h:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 286
    functionName: Botan::LMS_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.h
    functionUses: 4
    functionsReached:
    - Botan::CT::unpoison
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API LMS_PublicKey
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.h:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 269
    functionName: Botan::_const_time_unpoison
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.h
    functionUses: 0
    functionsReached:
    - Botan::CT::unpoison
    linkageType: ''
    returnType: void
    signature: void _const_time_unpoison() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 283
    functionName: Botan::lms_root
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LMS_Tree_Node
    signature: LMS_Tree_Node & lms_root() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::LMS_Signature
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.h:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 346
    functionName: Botan::LMS_Signature
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.h
    functionUses: 1
    functionsReached:
    - Botan::LMS_Signature
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API LMS_Signature
  - 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::q
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: LMS_Tree_Node_Idx
    signature: LMS_Tree_Node_Idx q() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 313
    functionName: Botan::lmots_sig
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LMOTS_Signature
    signature: LMOTS_Signature & lmots_sig() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    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::lms_type
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LMS_Algorithm_Type
    signature: LMS_Algorithm_Type lms_type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 325
    functionName: Botan::auth_path
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StrongSpan<const LMS_AuthenticationPath>
    signature: StrongSpan<const LMS_AuthenticationPath> auth_path() 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: Botan::LMS_Params::algorithm_type
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LMS_Algorithm_Type
    signature: LMS_Algorithm_Type algorithm_type() 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: Botan::LMS_Params::h
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t h() 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: Botan::LMS_Params::m
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.h
    functionUses: 0
    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: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: '& hash_name() const'
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & hash_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.h:129,1
    - Dst: hash_name
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 129
    functionName: Botan::LMS_Params::hash
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.h
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    - hash_name
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> hash() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::LMS_Instance
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.h:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 180
    functionName: Botan::LMS_Instance
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.h
    functionUses: 3
    functionsReached:
    - Botan::LMS_Instance
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API LMS_Instance
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 164
    functionName: Botan::lms_params
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: LMS_Params
    signature: LMS_Params & lms_params() 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::lmots_params
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: LMOTS_Params
    signature: LMOTS_Params & lmots_params() const
  - 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::identifier
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: LMS_Identifier
    signature: LMS_Identifier & identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::LMS_PrivateKey
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.h:195,1
    - Dst: Botan::LMS_Instance
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.h:196,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.h:196,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.h:196,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.h:196,1
    - Dst: m_seed
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.h:196,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.h:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 215
    functionName: Botan::LMS_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.h
    functionUses: 6
    functionsReached:
    - Botan::LMS_Instance
    - Botan::LMS_PrivateKey
    - std::move
    - m_seed
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API LMS_PrivateKey
  - 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::seed
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: LMS_Seed
    signature: LMS_Seed & seed() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.h:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 286
    functionName: Botan::LMS_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.h
    functionUses: 4
    functionsReached:
    - Botan::CT::unpoison
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API LMS_PublicKey
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.h:269,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 269
    functionName: Botan::_const_time_unpoison
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.h
    functionUses: 0
    functionsReached:
    - Botan::CT::unpoison
    linkageType: ''
    returnType: void
    signature: void _const_time_unpoison() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 283
    functionName: Botan::lms_root
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LMS_Tree_Node
    signature: LMS_Tree_Node & lms_root() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::LMS_Signature
      Src: /src/botan/src/lib/pubkey/hss_lms/lms.h:336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 346
    functionName: Botan::LMS_Signature
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.h
    functionUses: 2
    functionsReached:
    - Botan::LMS_Signature
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API LMS_Signature
  - 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::q
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: LMS_Tree_Node_Idx
    signature: LMS_Tree_Node_Idx q() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 313
    functionName: Botan::lmots_sig
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LMOTS_Signature
    signature: LMOTS_Signature & lmots_sig() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    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::lms_type
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LMS_Algorithm_Type
    signature: LMS_Algorithm_Type lms_type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 325
    functionName: Botan::auth_path
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lms.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StrongSpan<const LMS_AuthenticationPath>
    signature: StrongSpan<const LMS_AuthenticationPath> auth_path() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - HSS_LMS_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: Botan::HSS_LMS_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HSS_LMS_PublicKey(const HSS_LMS_PublicKey& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - HSS_LMS_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: Botan::HSS_LMS_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HSS_LMS_PublicKey(HSS_LMS_PublicKey&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - HSS_LMS_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: Botan::HSS_LMS_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HSS_LMS_PublicKey(const HSS_LMS_PublicKey& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - HSS_LMS_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: Botan::HSS_LMS_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HSS_LMS_PublicKey(HSS_LMS_PublicKey&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - HSS_LMS_PrivateKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 137
    functionName: HSS_LMS_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HSS_LMS_PrivateKey(const HSS_LMS_PrivateKey& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - HSS_LMS_PrivateKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: HSS_LMS_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HSS_LMS_PrivateKey(HSS_LMS_PrivateKey&& other)
  - 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: stateful_operation
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool stateful_operation() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h:155,1
    - Dst: Botan::hash_name
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h:155,1
    - Dst: Botan::LMOTS_Params
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 173
    functionName: Botan::LMOTS_Params
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h
    functionUses: 1
    functionsReached:
    - Botan::HashFunction::create_or_throw
    - Botan::LMOTS_Params
    - Botan::hash_name
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API LMOTS_Params
  - 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::algorithm_type
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: LMOTS_Algorithm_Type
    signature: LMOTS_Algorithm_Type algorithm_type() 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: Botan::n
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h
    functionUses: 33
    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: 130
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 130
    functionName: Botan::w
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t w() 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::coef_max
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t coef_max() 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::p
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t p() 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::ls
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t ls() 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::hash_name
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & hash_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h:155,1
    - Dst: Botan::hash_name
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 155
    functionDepth: 3
    functionLinenumber: 155
    functionLinenumberEnd: 155
    functionName: Botan::hash
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h
    functionUses: 8
    functionsReached:
    - Botan::HashFunction::create_or_throw
    - Botan::hash_name
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> hash() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h:202,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h:207,1
    - Dst: Botan::p
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h:207,1
    - Dst: Botan::LMOTS_Signature
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 216
    functionName: Botan::LMOTS_Signature
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h
    functionUses: 1
    functionsReached:
    - Botan::LMOTS_Signature
    - Botan::p
    - Botan::n
    - at
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API LMOTS_Signature
  - 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: Botan::algorithm_type
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: LMOTS_Algorithm_Type
    signature: LMOTS_Algorithm_Type algorithm_type() 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::C
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::span<const uint8_t>
    signature: std::span<const uint8_t> C() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - chain_idx
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 202
    functionName: Botan::y
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h
    functionUses: 2
    functionsReached:
    - at
    linkageType: ''
    returnType: StrongSpan<const LMOTS_Node>
    signature: StrongSpan<const LMOTS_Node> y(uint16_t chain_idx) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h:207,1
    - Dst: Botan::p
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' params'
    argTypes:
    - LMOTS_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 207
    functionName: Botan::size
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h
    functionUses: 77
    functionsReached:
    - Botan::n
    - Botan::p
    linkageType: ''
    returnType: size_t
    signature: size_t size(const LMOTS_Params& params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OTS_Instance
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 249
    functionName: Botan::OTS_Instance
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h
    functionUses: 1
    functionsReached:
    - Botan::OTS_Instance
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API OTS_Instance
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 233
    functionName: Botan::params
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LMOTS_Params
    signature: LMOTS_Params & params() 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::identifier
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: LMS_Identifier
    signature: LMS_Identifier & identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 243
    functionName: Botan::q
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: LMS_Tree_Node_Idx
    signature: LMS_Tree_Node_Idx q() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::LMOTS_Private_Key
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h:264,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 296
    functionName: Botan::LMOTS_Private_Key
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h
    functionUses: 9
    functionsReached:
    - Botan::LMOTS_Private_Key
    - at
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API LMOTS_Private_Key
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - chain_idx
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 272
    functionName: Botan::chain_input
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h
    functionUses: 0
    functionsReached:
    - at
    linkageType: ''
    returnType: LMOTS_Node
    signature: LMOTS_Node & chain_input(uint16_t chain_idx) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 332
    functionName: Botan::LMOTS_Public_Key
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h
    functionUses: 8
    functionsReached:
    - std::move
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API LMOTS_Public_Key
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' params'
    - ' identifier'
    - q
    - K
    argTypes:
    - LMOTS_Params
    - LMS_Identifier
    - LMS_Tree_Node_Idx
    - LMOTS_K
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 321
    functionName: Botan::LMOTS_Public_Key
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h
    functionUses: 8
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void LMOTS_Public_Key(const LMOTS_Params& params, const LMS_Identifier&
      identifier, LMS_Tree_Node_Idx q, LMOTS_K K)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 328
    functionName: Botan::K
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: LMOTS_K
    signature: LMOTS_K & K() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h:155,1
    - Dst: Botan::hash_name
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h:155,1
    - Dst: Botan::LMOTS_Params
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 173
    functionName: Botan::LMOTS_Params
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h
    functionUses: 2
    functionsReached:
    - Botan::HashFunction::create_or_throw
    - Botan::LMOTS_Params
    - Botan::hash_name
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API LMOTS_Params
  - 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::algorithm_type
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: LMOTS_Algorithm_Type
    signature: LMOTS_Algorithm_Type algorithm_type() 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: Botan::n
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h
    functionUses: 35
    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: 130
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 130
    functionName: Botan::w
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t w() 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::coef_max
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t coef_max() 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::p
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t p() 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::ls
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t ls() 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::hash_name
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string & hash_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h:155,1
    - Dst: Botan::hash_name
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 155
    functionDepth: 3
    functionLinenumber: 155
    functionLinenumberEnd: 155
    functionName: Botan::hash
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h
    functionUses: 8
    functionsReached:
    - Botan::HashFunction::create_or_throw
    - Botan::hash_name
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> hash() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h:202,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h:207,1
    - Dst: Botan::p
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h:207,1
    - Dst: Botan::LMOTS_Signature
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 216
    functionName: Botan::LMOTS_Signature
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h
    functionUses: 2
    functionsReached:
    - Botan::LMOTS_Signature
    - Botan::p
    - Botan::n
    - at
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API LMOTS_Signature
  - 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: Botan::algorithm_type
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: LMOTS_Algorithm_Type
    signature: LMOTS_Algorithm_Type algorithm_type() 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::C
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::span<const uint8_t>
    signature: std::span<const uint8_t> C() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - chain_idx
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 202
    functionName: Botan::y
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h
    functionUses: 2
    functionsReached:
    - at
    linkageType: ''
    returnType: StrongSpan<const LMOTS_Node>
    signature: StrongSpan<const LMOTS_Node> y(uint16_t chain_idx) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h:207,1
    - Dst: Botan::p
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' params'
    argTypes:
    - LMOTS_Params
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 207
    functionName: Botan::size
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h
    functionUses: 77
    functionsReached:
    - Botan::n
    - Botan::p
    linkageType: ''
    returnType: size_t
    signature: size_t size(const LMOTS_Params& params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OTS_Instance
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 249
    functionName: Botan::OTS_Instance
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h
    functionUses: 2
    functionsReached:
    - Botan::OTS_Instance
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API OTS_Instance
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 233
    functionName: Botan::params
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: LMOTS_Params
    signature: LMOTS_Params & params() 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::identifier
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: LMS_Identifier
    signature: LMS_Identifier & identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 243
    functionName: Botan::q
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: LMS_Tree_Node_Idx
    signature: LMS_Tree_Node_Idx q() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::LMOTS_Private_Key
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h:264,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 296
    functionName: Botan::LMOTS_Private_Key
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h
    functionUses: 10
    functionsReached:
    - Botan::LMOTS_Private_Key
    - at
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API LMOTS_Private_Key
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - chain_idx
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 272
    functionName: Botan::chain_input
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h
    functionUses: 0
    functionsReached:
    - at
    linkageType: ''
    returnType: LMOTS_Node
    signature: LMOTS_Node & chain_input(uint16_t chain_idx) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 332
    functionName: Botan::LMOTS_Public_Key
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h
    functionUses: 8
    functionsReached:
    - std::move
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API LMOTS_Public_Key
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' params'
    - ' identifier'
    - q
    - K
    argTypes:
    - LMOTS_Params
    - LMS_Identifier
    - LMS_Tree_Node_Idx
    - LMOTS_K
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 321
    functionName: Botan::LMOTS_Public_Key
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h
    functionUses: 8
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void LMOTS_Public_Key(const LMOTS_Params& params, const LMS_Identifier&
      identifier, LMS_Tree_Node_Idx q, LMOTS_K K)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 328
    functionName: Botan::K
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/lm_ots.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: LMOTS_K
    signature: LMOTS_K & K() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HSS_LMS_PublicKeyInternal::from_bytes_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pub_key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 4
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: Botan::HSS_LMS_PublicKey::HSS_LMS_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - Botan::HSS_LMS_PublicKeyInternal::from_bytes_or_throw
    linkageType: ''
    returnType: void
    signature: void HSS_LMS_PublicKey::HSS_LMS_PublicKey(std::span<const uint8_t>
      pub_key)
  - 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: HSS_LMS_PublicKey::~HSS_LMS_PublicKey()
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HSS_LMS_PublicKey::~HSS_LMS_PublicKey()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.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::HSS_LMS_PublicKey::key_length
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t HSS_LMS_PublicKey::key_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lms_pub_key
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: Botan::HSS_LMS_PublicKey::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - lms_pub_key
    linkageType: ''
    returnType: size_t
    signature: size_t HSS_LMS_PublicKey::estimated_strength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HSS_LMS_PublicKey::algo_name
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:35,1
    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::HSS_LMS_PublicKey::algo_name
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 1
    functionsReached:
    - Botan::HSS_LMS_PublicKey::algo_name
    linkageType: ''
    returnType: std::string
    signature: std::string HSS_LMS_PublicKey::algo_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HSS_LMS_PublicKey::algorithm_identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: Botan::HSS_LMS_PublicKey::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 1
    functionsReached:
    - Botan::HSS_LMS_PublicKey::algorithm_identifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier HSS_LMS_PublicKey::algorithm_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HSS_LMS_PublicKey::object_identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: Botan::HSS_LMS_PublicKey::object_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 1
    functionsReached:
    - Botan::HSS_LMS_PublicKey::object_identifier
    linkageType: ''
    returnType: OID
    signature: OID HSS_LMS_PublicKey::object_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    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::HSS_LMS_PublicKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool HSS_LMS_PublicKey::check_key(RandomNumberGenerator& /*rng*/, bool
      /*strong*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_bytes
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.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::HSS_LMS_PublicKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - to_bytes
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> HSS_LMS_PublicKey::raw_public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HSS_LMS_PublicKey::raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: Botan::HSS_LMS_PublicKey::public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - Botan::HSS_LMS_PublicKey::raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> HSS_LMS_PublicKey::public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pub_key
    argTypes:
    - std::shared_ptr<HSS_LMS_PublicKeyInternal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: Botan::HSS_LMS_Verification_Operation::HSS_LMS_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void HSS_LMS_Verification_Operation(std::shared_ptr<HSS_LMS_PublicKeyInternal>
      pub_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:67,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:67,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:67,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: Botan::HSS_LMS_Verification_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - end
    - insert
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> msg) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::exchange
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:71,1
    - Dst: Botan::HSS_Signature::from_bytes_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:73,1
    - Dst: verify_signature
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 70
    functionDepth: 6
    functionLinenumber: 70
    functionLinenumberEnd: 79
    functionName: Botan::HSS_LMS_Verification_Operation::is_valid_signature
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - verify_signature
    - Botan::HSS_Signature::from_bytes_or_throw
    - std::exchange
    linkageType: ''
    returnType: bool
    signature: bool is_valid_signature(std::span<const uint8_t> sig) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lms_pub_key
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp: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::HSS_LMS_Verification_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - lms_pub_key
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:90,1
    - Dst: std::make_unique<HSS_LMS_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:91,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:93,1
    - Dst: Botan::HSS_LMS_PublicKey::algo_name
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - provider
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: Botan::HSS_LMS_PublicKey::create_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - std::make_unique<HSS_LMS_Verification_Operation>
    - Botan::HSS_LMS_PublicKey::algo_name
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> HSS_LMS_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/hss_lms/hss_lms.cpp:98,1
    - Dst: Botan::HSS_LMS_PublicKey::algorithm_identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:99,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:100,1
    - Dst: std::make_unique<HSS_LMS_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:102,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:104,1
    - Dst: Botan::HSS_LMS_PublicKey::algo_name
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:104,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - ' signature_algorithm'
    - provider
    argTypes:
    - AlgorithmIdentifier
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 105
    functionName: Botan::HSS_LMS_PublicKey::create_x509_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - Provider_Not_Found
    - std::make_unique<HSS_LMS_Verification_Operation>
    - std::string_view::empty
    - Botan::HSS_LMS_PublicKey::algorithm_identifier
    - Botan::HSS_LMS_PublicKey::algo_name
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> HSS_LMS_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: 109
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: Botan::HSS_LMS_PublicKey::supports_operation
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool HSS_LMS_PublicKey::supports_operation(PublicKeyOperation op) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: Botan::HSS_LMS_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - Not_Implemented
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> HSS_LMS_PublicKey::generate_another(RandomNumberGenerator&
      /*rng*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HSS_LMS_PrivateKeyInternal::from_bytes_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:118,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:119,1
    - Dst: std::make_shared<HSS_LMS_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:120,1
    - Dst: Botan::HSS_LMS_PublicKeyInternal::create
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:120,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - private_key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 117
    functionDepth: 3
    functionLinenumber: 117
    functionLinenumberEnd: 122
    functionName: Botan::HSS_LMS_PrivateKey::HSS_LMS_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - Botan::HSS_LMS_PublicKeyInternal::create
    - Botan::HSS_LMS_PrivateKeyInternal::from_bytes_or_throw
    - Botan::CT::scoped_poison
    - std::make_shared<HSS_LMS_PublicKeyInternal>
    - Botan::CT::unpoison
    linkageType: ''
    returnType: void
    signature: void HSS_LMS_PrivateKey::HSS_LMS_PrivateKey(std::span<const uint8_t>
      private_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<HSS_LMS_PrivateKeyInternal>
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:126,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:127,1
    - Dst: std::make_shared<HSS_LMS_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:128,1
    - Dst: Botan::HSS_LMS_PublicKeyInternal::create
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:128,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' rng'
    - algo_params
    argTypes:
    - RandomNumberGenerator
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 130
    functionName: Botan::HSS_LMS_PrivateKey::HSS_LMS_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - Botan::HSS_LMS_PublicKeyInternal::create
    - Botan::CT::scoped_poison
    - std::make_shared<HSS_LMS_PublicKeyInternal>
    - std::make_shared<HSS_LMS_PrivateKeyInternal>
    - Botan::CT::unpoison
    linkageType: ''
    returnType: void
    signature: void HSS_LMS_PrivateKey::HSS_LMS_PrivateKey(RandomNumberGenerator&
      rng, std::string_view algo_params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:132,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:133,1
    - Dst: std::make_shared<HSS_LMS_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:134,1
    - Dst: Botan::HSS_LMS_PublicKeyInternal::create
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:134,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sk
    argTypes:
    - std::shared_ptr<HSS_LMS_PrivateKeyInternal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: Botan::HSS_LMS_PrivateKey::HSS_LMS_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::HSS_LMS_PublicKeyInternal::create
    - Botan::CT::scoped_poison
    - std::make_shared<HSS_LMS_PublicKeyInternal>
    - Botan::CT::unpoison
    linkageType: ''
    returnType: void
    signature: void HSS_LMS_PrivateKey::HSS_LMS_PrivateKey(std::shared_ptr<HSS_LMS_PrivateKeyInternal>
      sk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: HSS_LMS_PrivateKey::~HSS_LMS_PrivateKey()
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HSS_LMS_PrivateKey::~HSS_LMS_PrivateKey()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:141,1
    - Dst: Botan::CT::driveby_unpoison
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:142,1
    - Dst: to_bytes
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 143
    functionName: Botan::HSS_LMS_PrivateKey::private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::driveby_unpoison
    - to_bytes
    - Botan::CT::scoped_poison
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> HSS_LMS_PrivateKey::private_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HSS_LMS_PrivateKey::private_key_bits
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: Botan::HSS_LMS_PrivateKey::raw_private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - Botan::HSS_LMS_PrivateKey::private_key_bits
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> HSS_LMS_PrivateKey::raw_private_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<HSS_LMS_PublicKey>
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.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::HSS_LMS_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<HSS_LMS_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> HSS_LMS_PrivateKey::public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:157,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.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::HSS_LMS_PrivateKey::pkcs8_algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_string
    - AlgorithmIdentifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier HSS_LMS_PrivateKey::pkcs8_algorithm_identifier()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hss_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:161,1
    - Dst: get_idx
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:161,1
    - Dst: get
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:161,1
    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::HSS_LMS_PrivateKey::remaining_operations
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - get_idx
    - hss_params
    - get
    linkageType: ''
    returnType: std::optional<uint64_t>
    signature: std::optional<uint64_t> HSS_LMS_PrivateKey::remaining_operations()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<HSS_LMS_PrivateKey>
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:166,1
    - Dst: std::make_shared<HSS_LMS_PrivateKeyInternal>
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:167,1
    - Dst: hss_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:167,1
    - Dst: HSS_LMS_PrivateKey::HSS_LMS_PrivateKey
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 168
    functionName: Botan::HSS_LMS_PrivateKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<HSS_LMS_PrivateKey>
    - hss_params
    - std::make_shared<HSS_LMS_PrivateKeyInternal>
    - HSS_LMS_PrivateKey::HSS_LMS_PrivateKey
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> HSS_LMS_PrivateKey::generate_another(RandomNumberGenerator&
      rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:174,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - private_key
    - public_key
    argTypes:
    - std::shared_ptr<HSS_LMS_PrivateKeyInternal>
    - std::shared_ptr<HSS_LMS_PublicKeyInternal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 174
    functionName: Botan::HSS_LMS_Signature_Operation::HSS_LMS_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void HSS_LMS_Signature_Operation(std::shared_ptr<HSS_LMS_PrivateKeyInternal>
      private_key,\n                                  std::shared_ptr<HSS_LMS_PublicKeyInternal>
      public_key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:177,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:177,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:177,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 178
    functionName: Botan::HSS_LMS_Signature_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - end
    - insert
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> msg) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::exchange
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:181,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:182,1
    - Dst: Botan::CT::driveby_unpoison
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:183,1
    - Dst: Botan::HSS_LMS_Signature_Operation::sign
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 184
    functionName: Botan::HSS_LMS_Signature_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 1
    functionsReached:
    - Botan::CT::driveby_unpoison
    - std::exchange
    - Botan::HSS_LMS_Signature_Operation::sign
    - Botan::CT::scoped_poison
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> sign(RandomNumberGenerator& /*rng*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: signature_size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:186,1
    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::HSS_LMS_Signature_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - signature_size
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HSS_LMS_Signature_Operation::algorithm_identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 188
    functionName: Botan::HSS_LMS_Signature_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 1
    functionsReached:
    - Botan::HSS_LMS_Signature_Operation::algorithm_identifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier algorithm_identifier() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lms_pub_key
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:190,1
    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: Botan::HSS_LMS_Signature_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - lms_pub_key
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:201,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:202,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:202,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:204,1
    - Dst: std::make_unique<HSS_LMS_Signature_Operation>
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:205,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:207,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:207,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - ' rng'
    - params
    - provider
    argTypes:
    - RandomNumberGenerator
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 208
    functionName: Botan::HSS_LMS_PrivateKey::create_signature_op
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<HSS_LMS_Signature_Operation>
    - Provider_Not_Found
    - std::string_view::empty
    - BOTAN_ARG_CHECK
    - algo_name
    - BOTAN_UNUSED
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Signature>
    signature: "std::unique_ptr<PK_Ops::Signature> HSS_LMS_PrivateKey::create_signature_op(RandomNumberGenerator&
      rng,\n                                                                           std::string_view
      params,\n                                                                           std::string_view
      provider) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HSS_LMS_PublicKeyInternal::from_bytes_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pub_key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 17
    functionDepth: 4
    functionLinenumber: 17
    functionLinenumberEnd: 18
    functionName: Botan::HSS_LMS_PublicKey::HSS_LMS_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - Botan::HSS_LMS_PublicKeyInternal::from_bytes_or_throw
    linkageType: ''
    returnType: void
    signature: void HSS_LMS_PublicKey::HSS_LMS_PublicKey(std::span<const uint8_t>
      pub_key)
  - 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: HSS_LMS_PublicKey::~HSS_LMS_PublicKey()
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HSS_LMS_PublicKey::~HSS_LMS_PublicKey()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.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::HSS_LMS_PublicKey::key_length
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t HSS_LMS_PublicKey::key_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lms_pub_key
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 32
    functionName: Botan::HSS_LMS_PublicKey::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - lms_pub_key
    linkageType: ''
    returnType: size_t
    signature: size_t HSS_LMS_PublicKey::estimated_strength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HSS_LMS_PublicKey::algo_name
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:35,1
    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::HSS_LMS_PublicKey::algo_name
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 4
    functionsReached:
    - Botan::HSS_LMS_PublicKey::algo_name
    linkageType: ''
    returnType: std::string
    signature: std::string HSS_LMS_PublicKey::algo_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HSS_LMS_PublicKey::algorithm_identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: Botan::HSS_LMS_PublicKey::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 3
    functionsReached:
    - Botan::HSS_LMS_PublicKey::algorithm_identifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier HSS_LMS_PublicKey::algorithm_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HSS_LMS_PublicKey::object_identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: Botan::HSS_LMS_PublicKey::object_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 2
    functionsReached:
    - Botan::HSS_LMS_PublicKey::object_identifier
    linkageType: ''
    returnType: OID
    signature: OID HSS_LMS_PublicKey::object_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    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::HSS_LMS_PublicKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool HSS_LMS_PublicKey::check_key(RandomNumberGenerator& /*rng*/, bool
      /*strong*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_bytes
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.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::HSS_LMS_PublicKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 1
    functionsReached:
    - to_bytes
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> HSS_LMS_PublicKey::raw_public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HSS_LMS_PublicKey::raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: Botan::HSS_LMS_PublicKey::public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - Botan::HSS_LMS_PublicKey::raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> HSS_LMS_PublicKey::public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pub_key
    argTypes:
    - std::shared_ptr<HSS_LMS_PublicKeyInternal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: Botan::HSS_LMS_Verification_Operation::HSS_LMS_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void HSS_LMS_Verification_Operation(std::shared_ptr<HSS_LMS_PublicKeyInternal>
      pub_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:67,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:67,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:67,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: Botan::HSS_LMS_Verification_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - end
    - insert
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> msg) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::exchange
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:71,1
    - Dst: Botan::HSS_Signature::from_bytes_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:73,1
    - Dst: verify_signature
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 70
    functionDepth: 6
    functionLinenumber: 70
    functionLinenumberEnd: 79
    functionName: Botan::HSS_LMS_Verification_Operation::is_valid_signature
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - verify_signature
    - Botan::HSS_Signature::from_bytes_or_throw
    - std::exchange
    linkageType: ''
    returnType: bool
    signature: bool is_valid_signature(std::span<const uint8_t> sig) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lms_pub_key
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp: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::HSS_LMS_Verification_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - lms_pub_key
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:90,1
    - Dst: std::make_unique<HSS_LMS_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:91,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:93,1
    - Dst: Botan::HSS_LMS_PublicKey::algo_name
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - provider
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: Botan::HSS_LMS_PublicKey::create_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - std::make_unique<HSS_LMS_Verification_Operation>
    - Botan::HSS_LMS_PublicKey::algo_name
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> HSS_LMS_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/hss_lms/hss_lms.cpp:98,1
    - Dst: Botan::HSS_LMS_PublicKey::algorithm_identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:99,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:100,1
    - Dst: std::make_unique<HSS_LMS_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:102,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:104,1
    - Dst: Botan::HSS_LMS_PublicKey::algo_name
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:104,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - ' signature_algorithm'
    - provider
    argTypes:
    - AlgorithmIdentifier
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 105
    functionName: Botan::HSS_LMS_PublicKey::create_x509_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - Provider_Not_Found
    - std::make_unique<HSS_LMS_Verification_Operation>
    - std::string_view::empty
    - Botan::HSS_LMS_PublicKey::algorithm_identifier
    - Botan::HSS_LMS_PublicKey::algo_name
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> HSS_LMS_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: 109
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: Botan::HSS_LMS_PublicKey::supports_operation
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool HSS_LMS_PublicKey::supports_operation(PublicKeyOperation op) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: Botan::HSS_LMS_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - Not_Implemented
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> HSS_LMS_PublicKey::generate_another(RandomNumberGenerator&
      /*rng*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HSS_LMS_PrivateKeyInternal::from_bytes_or_throw
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:118,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:119,1
    - Dst: std::make_shared<HSS_LMS_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:120,1
    - Dst: Botan::HSS_LMS_PublicKeyInternal::create
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:120,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - private_key
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 117
    functionDepth: 3
    functionLinenumber: 117
    functionLinenumberEnd: 122
    functionName: Botan::HSS_LMS_PrivateKey::HSS_LMS_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - Botan::HSS_LMS_PublicKeyInternal::create
    - Botan::HSS_LMS_PrivateKeyInternal::from_bytes_or_throw
    - Botan::CT::scoped_poison
    - std::make_shared<HSS_LMS_PublicKeyInternal>
    - Botan::CT::unpoison
    linkageType: ''
    returnType: void
    signature: void HSS_LMS_PrivateKey::HSS_LMS_PrivateKey(std::span<const uint8_t>
      private_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<HSS_LMS_PrivateKeyInternal>
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:126,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:127,1
    - Dst: std::make_shared<HSS_LMS_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:128,1
    - Dst: Botan::HSS_LMS_PublicKeyInternal::create
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:128,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' rng'
    - algo_params
    argTypes:
    - RandomNumberGenerator
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 130
    functionName: Botan::HSS_LMS_PrivateKey::HSS_LMS_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - Botan::HSS_LMS_PublicKeyInternal::create
    - Botan::CT::scoped_poison
    - std::make_shared<HSS_LMS_PublicKeyInternal>
    - std::make_shared<HSS_LMS_PrivateKeyInternal>
    - Botan::CT::unpoison
    linkageType: ''
    returnType: void
    signature: void HSS_LMS_PrivateKey::HSS_LMS_PrivateKey(RandomNumberGenerator&
      rng, std::string_view algo_params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:132,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:133,1
    - Dst: std::make_shared<HSS_LMS_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:134,1
    - Dst: Botan::HSS_LMS_PublicKeyInternal::create
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:134,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sk
    argTypes:
    - std::shared_ptr<HSS_LMS_PrivateKeyInternal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: Botan::HSS_LMS_PrivateKey::HSS_LMS_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::HSS_LMS_PublicKeyInternal::create
    - Botan::CT::scoped_poison
    - std::make_shared<HSS_LMS_PublicKeyInternal>
    - Botan::CT::unpoison
    linkageType: ''
    returnType: void
    signature: void HSS_LMS_PrivateKey::HSS_LMS_PrivateKey(std::shared_ptr<HSS_LMS_PrivateKeyInternal>
      sk)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: HSS_LMS_PrivateKey::~HSS_LMS_PrivateKey()
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void HSS_LMS_PrivateKey::~HSS_LMS_PrivateKey()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:141,1
    - Dst: Botan::CT::driveby_unpoison
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:142,1
    - Dst: to_bytes
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 143
    functionName: Botan::HSS_LMS_PrivateKey::private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 1
    functionsReached:
    - Botan::CT::driveby_unpoison
    - to_bytes
    - Botan::CT::scoped_poison
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> HSS_LMS_PrivateKey::private_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HSS_LMS_PrivateKey::private_key_bits
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: Botan::HSS_LMS_PrivateKey::raw_private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - Botan::HSS_LMS_PrivateKey::private_key_bits
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> HSS_LMS_PrivateKey::raw_private_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<HSS_LMS_PublicKey>
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.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::HSS_LMS_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<HSS_LMS_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> HSS_LMS_PrivateKey::public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:157,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.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::HSS_LMS_PrivateKey::pkcs8_algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_string
    - AlgorithmIdentifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier HSS_LMS_PrivateKey::pkcs8_algorithm_identifier()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hss_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:161,1
    - Dst: get_idx
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:161,1
    - Dst: get
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:161,1
    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::HSS_LMS_PrivateKey::remaining_operations
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - get_idx
    - hss_params
    - get
    linkageType: ''
    returnType: std::optional<uint64_t>
    signature: std::optional<uint64_t> HSS_LMS_PrivateKey::remaining_operations()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<HSS_LMS_PrivateKey>
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:166,1
    - Dst: std::make_shared<HSS_LMS_PrivateKeyInternal>
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:167,1
    - Dst: hss_params
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:167,1
    - Dst: HSS_LMS_PrivateKey::HSS_LMS_PrivateKey
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 168
    functionName: Botan::HSS_LMS_PrivateKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<HSS_LMS_PrivateKey>
    - hss_params
    - std::make_shared<HSS_LMS_PrivateKeyInternal>
    - HSS_LMS_PrivateKey::HSS_LMS_PrivateKey
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> HSS_LMS_PrivateKey::generate_another(RandomNumberGenerator&
      rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:174,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - private_key
    - public_key
    argTypes:
    - std::shared_ptr<HSS_LMS_PrivateKeyInternal>
    - std::shared_ptr<HSS_LMS_PublicKeyInternal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 174
    functionName: Botan::HSS_LMS_Signature_Operation::HSS_LMS_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void HSS_LMS_Signature_Operation(std::shared_ptr<HSS_LMS_PrivateKeyInternal>
      private_key,\n                                  std::shared_ptr<HSS_LMS_PublicKeyInternal>
      public_key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:177,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:177,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:177,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 178
    functionName: Botan::HSS_LMS_Signature_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::end
    - std::span<const uint8_t>::begin
    - end
    - insert
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> msg) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::exchange
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:181,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:182,1
    - Dst: Botan::CT::driveby_unpoison
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:183,1
    - Dst: Botan::HSS_LMS_Signature_Operation::sign
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 184
    functionName: Botan::HSS_LMS_Signature_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 2
    functionsReached:
    - Botan::CT::driveby_unpoison
    - std::exchange
    - Botan::HSS_LMS_Signature_Operation::sign
    - Botan::CT::scoped_poison
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> sign(RandomNumberGenerator& /*rng*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: signature_size
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:186,1
    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::HSS_LMS_Signature_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - signature_size
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HSS_LMS_Signature_Operation::algorithm_identifier
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 188
    functionName: Botan::HSS_LMS_Signature_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 2
    functionsReached:
    - Botan::HSS_LMS_Signature_Operation::algorithm_identifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier algorithm_identifier() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lms_pub_key
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:190,1
    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: Botan::HSS_LMS_Signature_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - lms_pub_key
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:201,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:202,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:202,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:204,1
    - Dst: std::make_unique<HSS_LMS_Signature_Operation>
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:205,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:207,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp:207,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - ' rng'
    - params
    - provider
    argTypes:
    - RandomNumberGenerator
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 198
    functionDepth: 1
    functionLinenumber: 198
    functionLinenumberEnd: 208
    functionName: Botan::HSS_LMS_PrivateKey::create_signature_op
    functionSourceFile: /src/botan/src/lib/pubkey/hss_lms/hss_lms.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<HSS_LMS_Signature_Operation>
    - Provider_Not_Found
    - std::string_view::empty
    - BOTAN_ARG_CHECK
    - algo_name
    - BOTAN_UNUSED
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Signature>
    signature: "std::unique_ptr<PK_Ops::Signature> HSS_LMS_PrivateKey::create_signature_op(RandomNumberGenerator&
      rng,\n                                                                           std::string_view
      params,\n                                                                           std::string_view
      provider) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Parameter_Set::from_oid
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:26,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:26,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: 26
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: Botan::Classic_McEliece_PublicKey::Classic_McEliece_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp
    functionUses: 0
    functionsReached:
    - Botan::Classic_McEliece_Parameter_Set::from_oid
    - oid
    linkageType: ''
    returnType: void
    signature: "void Classic_McEliece_PublicKey::Classic_McEliece_PublicKey(const
      AlgorithmIdentifier& alg_id,\n                                                       std::span<const
      uint8_t> key_bits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Parameters::create
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:30,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:31,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:31,1
    - Dst: auto::pk_size_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:31,1
    - Dst: std::make_shared<Classic_McEliece_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:32,1
    - Dst: Classic_McEliece_Matrix
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:33,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:33,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key_bits
    - param_set
    argTypes:
    - std::span<const uint8_t>
    - Classic_McEliece_Parameter_Set
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: Botan::Classic_McEliece_PublicKey::Classic_McEliece_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp
    functionUses: 0
    functionsReached:
    - Botan::Classic_McEliece_Parameters::create
    - std::span<const uint8_t>::size
    - BOTAN_ARG_CHECK
    - std::make_shared<Classic_McEliece_PublicKeyInternal>
    - Classic_McEliece_Matrix
    - auto::pk_size_bytes
    - std::span<const uint8_t>::begin
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: "void Classic_McEliece_PublicKey::Classic_McEliece_PublicKey(std::span<const
      uint8_t> key_bits,\n                                                       Classic_McEliece_Parameter_Set
      param_set)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Classic_McEliece_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Classic_McEliece_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: Botan::Classic_McEliece_PublicKey::Classic_McEliece_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<Classic_McEliece_PublicKeyInternal>
    linkageType: ''
    returnType: void
    signature: void Classic_McEliece_PublicKey::Classic_McEliece_PublicKey(const Classic_McEliece_PublicKey&
      other)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Classic_McEliece_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Classic_McEliece_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: '& Classic_McEliece_PublicKey::operator=(const Classic_McEliece_PublicKey&
      other)'
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<Classic_McEliece_PublicKeyInternal>
    linkageType: ''
    returnType: Classic_McEliece_PublicKey
    signature: Classic_McEliece_PublicKey & Classic_McEliece_PublicKey::operator=(const
      Classic_McEliece_PublicKey& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:48,1
    - Dst: Botan::Classic_McEliece_PublicKey::object_identifier
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.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::Classic_McEliece_PublicKey::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp
    functionUses: 0
    functionsReached:
    - AlgorithmIdentifier
    - Botan::Classic_McEliece_PublicKey::object_identifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier Classic_McEliece_PublicKey::algorithm_identifier()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.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::Classic_McEliece_PublicKey::object_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp
    functionUses: 1
    functionsReached:
    - params
    linkageType: ''
    returnType: OID
    signature: OID Classic_McEliece_PublicKey::object_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: Botan::Classic_McEliece_PublicKey::key_length
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp
    functionUses: 0
    functionsReached:
    - params
    linkageType: ''
    returnType: size_t
    signature: size_t Classic_McEliece_PublicKey::key_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: Botan::Classic_McEliece_PublicKey::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp
    functionUses: 0
    functionsReached:
    - params
    linkageType: ''
    returnType: size_t
    signature: size_t Classic_McEliece_PublicKey::estimated_strength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_PublicKey::raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.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: Botan::Classic_McEliece_PublicKey::public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp
    functionUses: 0
    functionsReached:
    - Botan::Classic_McEliece_PublicKey::raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Classic_McEliece_PublicKey::public_key_bits()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: matrix
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: Botan::Classic_McEliece_PublicKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp
    functionUses: 1
    functionsReached:
    - matrix
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Classic_McEliece_PublicKey::raw_public_key_bits()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    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::Classic_McEliece_PublicKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Classic_McEliece_PublicKey::check_key(RandomNumberGenerator& /*rng*/,
      bool /*strong*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Classic_McEliece_PrivateKey>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:77,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 78
    functionName: Botan::Classic_McEliece_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp
    functionUses: 0
    functionsReached:
    - params
    - std::make_unique<Classic_McEliece_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> Classic_McEliece_PublicKey::generate_another(RandomNumberGenerator&
      rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:82,1
    - Dst: std::make_unique<Classic_McEliece_Encryptor>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:83,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:85,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:85,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 86
    functionName: Botan::Classic_McEliece_PublicKey::create_kem_encryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - std::make_unique<Classic_McEliece_Encryptor>
    - algo_name
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::KEM_Encryption>
    signature: "std::unique_ptr<PK_Ops::KEM_Encryption> Classic_McEliece_PublicKey::create_kem_encryption_op(\n
      \  std::string_view params, std::string_view provider) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Parameters::create
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:90,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:91,1
    - Dst: auto::seed_len
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:91,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:92,1
    - Dst: std::tie
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:93,1
    - Dst: Botan::Classic_McEliece_KeyPair_Internal::generate
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:93,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:95,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:96,1
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' rng'
    - param_set
    argTypes:
    - RandomNumberGenerator
    - Classic_McEliece_Parameter_Set
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 98
    functionName: Botan::Classic_McEliece_PrivateKey::Classic_McEliece_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp
    functionUses: 0
    functionsReached:
    - std::tie
    - Botan::Classic_McEliece_Parameters::create
    - Botan::CT::poison
    - Botan::Classic_McEliece_KeyPair_Internal::generate
    - BOTAN_ASSERT_NONNULL
    - Botan::CT::unpoison_all
    - auto::seed_len
    - random_vec
    linkageType: ''
    returnType: void
    signature: "void Classic_McEliece_PrivateKey::Classic_McEliece_PrivateKey(RandomNumberGenerator&
      rng,\n                                                         Classic_McEliece_Parameter_Set
      param_set)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:102,1
    - Dst: Botan::Classic_McEliece_Parameters::create
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:103,1
    - Dst: Botan::Classic_McEliece_PrivateKeyInternal::from_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:104,1
    - Dst: std::make_shared<Classic_McEliece_PrivateKeyInternal>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:105,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:105,1
    - Dst: Botan::Classic_McEliece_PublicKeyInternal::create_from_private_key
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:109,1
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - sk
    - param_set
    argTypes:
    - std::span<const uint8_t>
    - Classic_McEliece_Parameter_Set
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 111
    functionName: Botan::Classic_McEliece_PrivateKey::Classic_McEliece_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::Classic_McEliece_Parameters::create
    - Botan::Classic_McEliece_PrivateKeyInternal::from_bytes
    - Botan::Classic_McEliece_PublicKeyInternal::create_from_private_key
    - Botan::CT::scoped_poison
    - std::make_shared<Classic_McEliece_PrivateKeyInternal>
    - Botan::CT::unpoison_all
    linkageType: ''
    returnType: void
    signature: "void Classic_McEliece_PrivateKey::Classic_McEliece_PrivateKey(std::span<const
      uint8_t> sk,\n                                                         Classic_McEliece_Parameter_Set
      param_set)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Parameter_Set::from_oid
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:115,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:115,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: 115
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 115
    functionName: Botan::Classic_McEliece_PrivateKey::Classic_McEliece_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp
    functionUses: 0
    functionsReached:
    - Botan::Classic_McEliece_Parameter_Set::from_oid
    - oid
    linkageType: ''
    returnType: void
    signature: "void Classic_McEliece_PrivateKey::Classic_McEliece_PrivateKey(const
      AlgorithmIdentifier& alg_id,\n                                                         std::span<const
      uint8_t> key_bits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Classic_McEliece_PublicKey>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:118,1
    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::Classic_McEliece_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Classic_McEliece_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> Classic_McEliece_PrivateKey::public_key()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_PrivateKey::raw_private_key_bits
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.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::Classic_McEliece_PrivateKey::private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp
    functionUses: 0
    functionsReached:
    - Botan::Classic_McEliece_PrivateKey::raw_private_key_bits
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Classic_McEliece_PrivateKey::private_key_bits()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: serialize
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:126,1
    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::Classic_McEliece_PrivateKey::raw_private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp
    functionUses: 1
    functionsReached:
    - serialize
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Classic_McEliece_PrivateKey::raw_private_key_bits()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_PrivateKey::check_key
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.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::Classic_McEliece_PrivateKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp
    functionUses: 1
    functionsReached:
    - Botan::Classic_McEliece_PrivateKey::check_key
    linkageType: ''
    returnType: bool
    signature: bool Classic_McEliece_PrivateKey::check_key(RandomNumberGenerator&
      /*rng*/, bool /*strong*/) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:135,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:136,1
    - Dst: std::make_unique<Classic_McEliece_Decryptor>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:137,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:139,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:139,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: 140
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 140
    functionName: Botan::Classic_McEliece_PrivateKey::create_kem_decryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - std::string_view::empty
    - algo_name
    - std::make_unique<Classic_McEliece_Decryptor>
    - BOTAN_UNUSED
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::KEM_Decryption>
    signature: "std::unique_ptr<PK_Ops::KEM_Decryption> Classic_McEliece_PrivateKey::create_kem_decryption_op(\n
      \  RandomNumberGenerator& rng, std::string_view params, std::string_view provider)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Parameter_Set::from_oid
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:26,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:26,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: 26
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: Botan::Classic_McEliece_PublicKey::Classic_McEliece_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp
    functionUses: 0
    functionsReached:
    - Botan::Classic_McEliece_Parameter_Set::from_oid
    - oid
    linkageType: ''
    returnType: void
    signature: "void Classic_McEliece_PublicKey::Classic_McEliece_PublicKey(const
      AlgorithmIdentifier& alg_id,\n                                                       std::span<const
      uint8_t> key_bits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Parameters::create
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:30,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:31,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:31,1
    - Dst: auto::pk_size_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:31,1
    - Dst: std::make_shared<Classic_McEliece_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:32,1
    - Dst: Classic_McEliece_Matrix
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:33,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:33,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key_bits
    - param_set
    argTypes:
    - std::span<const uint8_t>
    - Classic_McEliece_Parameter_Set
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: Botan::Classic_McEliece_PublicKey::Classic_McEliece_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp
    functionUses: 0
    functionsReached:
    - Botan::Classic_McEliece_Parameters::create
    - std::span<const uint8_t>::size
    - BOTAN_ARG_CHECK
    - std::make_shared<Classic_McEliece_PublicKeyInternal>
    - Classic_McEliece_Matrix
    - auto::pk_size_bytes
    - std::span<const uint8_t>::begin
    - std::span<const uint8_t>::end
    linkageType: ''
    returnType: void
    signature: "void Classic_McEliece_PublicKey::Classic_McEliece_PublicKey(std::span<const
      uint8_t> key_bits,\n                                                       Classic_McEliece_Parameter_Set
      param_set)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Classic_McEliece_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:37,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Classic_McEliece_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: Botan::Classic_McEliece_PublicKey::Classic_McEliece_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<Classic_McEliece_PublicKeyInternal>
    linkageType: ''
    returnType: void
    signature: void Classic_McEliece_PublicKey::Classic_McEliece_PublicKey(const Classic_McEliece_PublicKey&
      other)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<Classic_McEliece_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Classic_McEliece_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: '& Classic_McEliece_PublicKey::operator=(const Classic_McEliece_PublicKey&
      other)'
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<Classic_McEliece_PublicKeyInternal>
    linkageType: ''
    returnType: Classic_McEliece_PublicKey
    signature: Classic_McEliece_PublicKey & Classic_McEliece_PublicKey::operator=(const
      Classic_McEliece_PublicKey& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:48,1
    - Dst: Botan::Classic_McEliece_PublicKey::object_identifier
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.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::Classic_McEliece_PublicKey::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp
    functionUses: 0
    functionsReached:
    - AlgorithmIdentifier
    - Botan::Classic_McEliece_PublicKey::object_identifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier Classic_McEliece_PublicKey::algorithm_identifier()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.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::Classic_McEliece_PublicKey::object_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp
    functionUses: 2
    functionsReached:
    - params
    linkageType: ''
    returnType: OID
    signature: OID Classic_McEliece_PublicKey::object_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 58
    functionName: Botan::Classic_McEliece_PublicKey::key_length
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp
    functionUses: 0
    functionsReached:
    - params
    linkageType: ''
    returnType: size_t
    signature: size_t Classic_McEliece_PublicKey::key_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: Botan::Classic_McEliece_PublicKey::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp
    functionUses: 0
    functionsReached:
    - params
    linkageType: ''
    returnType: size_t
    signature: size_t Classic_McEliece_PublicKey::estimated_strength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_PublicKey::raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.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: Botan::Classic_McEliece_PublicKey::public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp
    functionUses: 0
    functionsReached:
    - Botan::Classic_McEliece_PublicKey::raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Classic_McEliece_PublicKey::public_key_bits()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: matrix
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: Botan::Classic_McEliece_PublicKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp
    functionUses: 2
    functionsReached:
    - matrix
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Classic_McEliece_PublicKey::raw_public_key_bits()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    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::Classic_McEliece_PublicKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Classic_McEliece_PublicKey::check_key(RandomNumberGenerator& /*rng*/,
      bool /*strong*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Classic_McEliece_PrivateKey>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:77,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 78
    functionName: Botan::Classic_McEliece_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp
    functionUses: 0
    functionsReached:
    - params
    - std::make_unique<Classic_McEliece_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> Classic_McEliece_PublicKey::generate_another(RandomNumberGenerator&
      rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:82,1
    - Dst: std::make_unique<Classic_McEliece_Encryptor>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:83,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:85,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:85,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 86
    functionName: Botan::Classic_McEliece_PublicKey::create_kem_encryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - std::make_unique<Classic_McEliece_Encryptor>
    - algo_name
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::KEM_Encryption>
    signature: "std::unique_ptr<PK_Ops::KEM_Encryption> Classic_McEliece_PublicKey::create_kem_encryption_op(\n
      \  std::string_view params, std::string_view provider) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Parameters::create
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:90,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:91,1
    - Dst: auto::seed_len
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:91,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:92,1
    - Dst: std::tie
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:93,1
    - Dst: Botan::Classic_McEliece_KeyPair_Internal::generate
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:93,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:95,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:96,1
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' rng'
    - param_set
    argTypes:
    - RandomNumberGenerator
    - Classic_McEliece_Parameter_Set
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 98
    functionName: Botan::Classic_McEliece_PrivateKey::Classic_McEliece_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp
    functionUses: 0
    functionsReached:
    - std::tie
    - Botan::Classic_McEliece_Parameters::create
    - Botan::CT::poison
    - Botan::Classic_McEliece_KeyPair_Internal::generate
    - BOTAN_ASSERT_NONNULL
    - Botan::CT::unpoison_all
    - auto::seed_len
    - random_vec
    linkageType: ''
    returnType: void
    signature: "void Classic_McEliece_PrivateKey::Classic_McEliece_PrivateKey(RandomNumberGenerator&
      rng,\n                                                         Classic_McEliece_Parameter_Set
      param_set)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:102,1
    - Dst: Botan::Classic_McEliece_Parameters::create
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:103,1
    - Dst: Botan::Classic_McEliece_PrivateKeyInternal::from_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:104,1
    - Dst: std::make_shared<Classic_McEliece_PrivateKeyInternal>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:105,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:105,1
    - Dst: Botan::Classic_McEliece_PublicKeyInternal::create_from_private_key
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:109,1
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - sk
    - param_set
    argTypes:
    - std::span<const uint8_t>
    - Classic_McEliece_Parameter_Set
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 111
    functionName: Botan::Classic_McEliece_PrivateKey::Classic_McEliece_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::Classic_McEliece_Parameters::create
    - Botan::Classic_McEliece_PrivateKeyInternal::from_bytes
    - Botan::Classic_McEliece_PublicKeyInternal::create_from_private_key
    - Botan::CT::scoped_poison
    - std::make_shared<Classic_McEliece_PrivateKeyInternal>
    - Botan::CT::unpoison_all
    linkageType: ''
    returnType: void
    signature: "void Classic_McEliece_PrivateKey::Classic_McEliece_PrivateKey(std::span<const
      uint8_t> sk,\n                                                         Classic_McEliece_Parameter_Set
      param_set)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Parameter_Set::from_oid
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:115,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:115,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: 115
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 115
    functionName: Botan::Classic_McEliece_PrivateKey::Classic_McEliece_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp
    functionUses: 0
    functionsReached:
    - Botan::Classic_McEliece_Parameter_Set::from_oid
    - oid
    linkageType: ''
    returnType: void
    signature: "void Classic_McEliece_PrivateKey::Classic_McEliece_PrivateKey(const
      AlgorithmIdentifier& alg_id,\n                                                         std::span<const
      uint8_t> key_bits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Classic_McEliece_PublicKey>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:118,1
    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::Classic_McEliece_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Classic_McEliece_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> Classic_McEliece_PrivateKey::public_key()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_PrivateKey::raw_private_key_bits
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.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::Classic_McEliece_PrivateKey::private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp
    functionUses: 0
    functionsReached:
    - Botan::Classic_McEliece_PrivateKey::raw_private_key_bits
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Classic_McEliece_PrivateKey::private_key_bits()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: serialize
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:126,1
    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::Classic_McEliece_PrivateKey::raw_private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp
    functionUses: 2
    functionsReached:
    - serialize
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Classic_McEliece_PrivateKey::raw_private_key_bits()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_PrivateKey::check_key
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.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::Classic_McEliece_PrivateKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp
    functionUses: 2
    functionsReached:
    - Botan::Classic_McEliece_PrivateKey::check_key
    linkageType: ''
    returnType: bool
    signature: bool Classic_McEliece_PrivateKey::check_key(RandomNumberGenerator&
      /*rng*/, bool /*strong*/) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:135,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:136,1
    - Dst: std::make_unique<Classic_McEliece_Decryptor>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:137,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:139,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp:139,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: 140
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 140
    functionName: Botan::Classic_McEliece_PrivateKey::create_kem_decryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - std::string_view::empty
    - algo_name
    - std::make_unique<Classic_McEliece_Decryptor>
    - BOTAN_UNUSED
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::KEM_Decryption>
    signature: "std::unique_ptr<PK_Ops::KEM_Decryption> Classic_McEliece_PrivateKey::create_kem_decryption_op(\n
      \  RandomNumberGenerator& rng, std::string_view params, std::string_view provider)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mul
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' params'
    - ' e'
    - ' mat'
    argTypes:
    - Classic_McEliece_Parameters
    - CmceErrorVector
    - Classic_McEliece_Matrix
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: Botan::Classic_McEliece_Encryptor::encode
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp
    functionUses: 0
    functionsReached:
    - mul
    linkageType: ''
    returnType: CmceCodeWord
    signature: "CmceCodeWord Classic_McEliece_Encryptor::encode(const Classic_McEliece_Parameters&
      params,\n                                                const CmceErrorVector&
      e,\n                                                const Classic_McEliece_Matrix&
      mat) const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:25,1
    - Dst: sigma1
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:25,1
    - Dst: tau
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:25,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:26,1
    - Dst: m
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:27,1
    - Dst: secure_vector::reserve
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:29,1
    - Dst: tau
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:29,1
    - Dst: tau
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:34,1
    - Dst: load_le<uint16_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:35,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:35,1
    - Dst: sigma1
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:35,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:40,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:41,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:42,1
    - Dst: t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:42,1
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:43,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:46,1
    - Dst: t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:46,1
    - Dst: t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:52,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:54,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:54,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:55,1
    - Dst: t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:62,1
    - Dst: ceil_tobytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:63,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:63,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:68,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:72,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:73,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:76,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:76,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:76,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:77,1
    - Dst: CmceErrorVector
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:81,1
    - Dst: secure_bitvector
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:81,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:81,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 2
    argNames:
    - ' params'
    - ' rng'
    argTypes:
    - Classic_McEliece_Parameters
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 82
    functionName: Botan::Classic_McEliece_Encryptor::fixed_weight_vector_gen
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - Botan::CT::poison
    - secure_vector::reserve
    - ceil_tobytes
    - tau
    - m
    - Botan::CT::unpoison
    - BufferSlicer::take
    - load_le<uint16_t>
    - secure_vector::push_back
    - t
    - auto::if_set_return
    - n
    - secure_vector::at
    - sigma1
    - CmceErrorVector
    - secure_vector::size
    - Botan::ct_is_equal
    - random_vec
    - secure_bitvector
    linkageType: ''
    returnType: std::optional<CmceErrorVector>
    signature: "std::optional<CmceErrorVector> Classic_McEliece_Encryptor::fixed_weight_vector_gen(\n
      \  const Classic_McEliece_Parameters& params, RandomNumberGenerator& rng) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:87,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:87,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:87,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:89,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:89,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:89,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:91,1
    - Dst: Botan::Classic_McEliece_Encryptor::fixed_weight_vector_gen
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:101,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:102,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:105,1
    - Dst: hash_func
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:108,1
    - Dst: CmceErrorVector::get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:111,1
    - Dst: Botan::Classic_McEliece_Encryptor::encode
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:113,1
    - Dst: matrix
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:113,1
    - Dst: auto::to_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:114,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:114,1
    - Dst: ceil_tobytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:114,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:114,1
    - Dst: is_pc
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:115,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:117,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:118,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:119,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:119,1
    - Dst: auto::output_length
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:119,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:121,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:121,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:124,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:125,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:126,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:127,1
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:128,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    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: 129
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 129
    functionName: Botan::Classic_McEliece_Encryptor::raw_kem_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - BOTAN_ASSERT_NOMSG
    - BufferStuffer::full
    - params
    - BOTAN_ARG_CHECK
    - ceil_tobytes
    - auto::size
    - std::span<uint8_t>::size
    - is_pc
    - Internal_Error
    - matrix
    - auto::to_bytes
    - auto::value
    - Botan::Classic_McEliece_Encryptor::encode
    - hash_func
    - auto::final
    - CmceErrorVector::get
    - auto::output_length
    - Botan::CT::unpoison_all
    - BufferStuffer::next
    - Botan::Classic_McEliece_Encryptor::fixed_weight_vector_gen
    linkageType: ''
    returnType: void
    signature: "void Classic_McEliece_Encryptor::raw_kem_encrypt(std::span<uint8_t>
      out_encapsulated_key,\n                                                 std::span<uint8_t>
      out_shared_key,\n                                                 RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mul
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' params'
    - ' e'
    - ' mat'
    argTypes:
    - Classic_McEliece_Parameters
    - CmceErrorVector
    - Classic_McEliece_Matrix
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 21
    functionName: Botan::Classic_McEliece_Encryptor::encode
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp
    functionUses: 1
    functionsReached:
    - mul
    linkageType: ''
    returnType: CmceCodeWord
    signature: "CmceCodeWord Classic_McEliece_Encryptor::encode(const Classic_McEliece_Parameters&
      params,\n                                                const CmceErrorVector&
      e,\n                                                const Classic_McEliece_Matrix&
      mat) const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:25,1
    - Dst: sigma1
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:25,1
    - Dst: tau
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:25,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:26,1
    - Dst: m
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:27,1
    - Dst: secure_vector::reserve
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:29,1
    - Dst: tau
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:29,1
    - Dst: tau
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:34,1
    - Dst: load_le<uint16_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:35,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:35,1
    - Dst: sigma1
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:35,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:40,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:41,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:42,1
    - Dst: t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:42,1
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:43,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:46,1
    - Dst: t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:46,1
    - Dst: t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:52,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:54,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:54,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:55,1
    - Dst: t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:62,1
    - Dst: ceil_tobytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:63,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:63,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:68,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:72,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:73,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:76,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:76,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:76,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:77,1
    - Dst: CmceErrorVector
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:81,1
    - Dst: secure_bitvector
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:81,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:81,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 2
    argNames:
    - ' params'
    - ' rng'
    argTypes:
    - Classic_McEliece_Parameters
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 23
    functionDepth: 2
    functionLinenumber: 23
    functionLinenumberEnd: 82
    functionName: Botan::Classic_McEliece_Encryptor::fixed_weight_vector_gen
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp
    functionUses: 1
    functionsReached:
    - static_cast<uint16_t>
    - Botan::CT::poison
    - secure_vector::reserve
    - ceil_tobytes
    - tau
    - m
    - Botan::CT::unpoison
    - BufferSlicer::take
    - load_le<uint16_t>
    - secure_vector::push_back
    - t
    - auto::if_set_return
    - n
    - secure_vector::at
    - sigma1
    - CmceErrorVector
    - secure_vector::size
    - Botan::ct_is_equal
    - random_vec
    - secure_bitvector
    linkageType: ''
    returnType: std::optional<CmceErrorVector>
    signature: "std::optional<CmceErrorVector> Classic_McEliece_Encryptor::fixed_weight_vector_gen(\n
      \  const Classic_McEliece_Parameters& params, RandomNumberGenerator& rng) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:87,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:87,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:87,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:89,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:89,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:89,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:91,1
    - Dst: Botan::Classic_McEliece_Encryptor::fixed_weight_vector_gen
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:101,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:102,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:105,1
    - Dst: hash_func
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:108,1
    - Dst: CmceErrorVector::get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:111,1
    - Dst: Botan::Classic_McEliece_Encryptor::encode
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:113,1
    - Dst: matrix
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:113,1
    - Dst: auto::to_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:114,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:114,1
    - Dst: ceil_tobytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:114,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:114,1
    - Dst: is_pc
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:115,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:117,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:118,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:119,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:119,1
    - Dst: auto::output_length
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:119,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:121,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:121,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:124,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:125,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:126,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:127,1
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp:128,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    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: 129
      start: 84
    functionDepth: 3
    functionLinenumber: 84
    functionLinenumberEnd: 129
    functionName: Botan::Classic_McEliece_Encryptor::raw_kem_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - BOTAN_ASSERT_NOMSG
    - BufferStuffer::full
    - params
    - BOTAN_ARG_CHECK
    - ceil_tobytes
    - auto::size
    - std::span<uint8_t>::size
    - is_pc
    - Internal_Error
    - matrix
    - auto::to_bytes
    - auto::value
    - Botan::Classic_McEliece_Encryptor::encode
    - hash_func
    - auto::final
    - CmceErrorVector::get
    - auto::output_length
    - Botan::CT::unpoison_all
    - BufferStuffer::next
    - Botan::Classic_McEliece_Encryptor::fixed_weight_vector_gen
    linkageType: ''
    returnType: void
    signature: "void Classic_McEliece_Encryptor::raw_kem_encrypt(std::span<uint8_t>
      out_encapsulated_key,\n                                                 std::span<uint8_t>
      out_shared_key,\n                                                 RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.h:49,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.h:54,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.h:66,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.h:68,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 74
    functionName: Botan::Classic_McEliece_Polynomial
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.h
    functionUses: 4
    functionsReached:
    - Botan::CT::unpoison
    - Botan::size
    - at
    - Botan::CT::poison
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API Classic_McEliece_Polynomial
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Botan::coef_at
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.h
    functionUses: 0
    functionsReached:
    - at
    linkageType: ''
    returnType: Classic_McEliece_GF
    signature: Classic_McEliece_GF & coef_at(size_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: Botan::coef_at
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.h
    functionUses: 0
    functionsReached:
    - at
    linkageType: ''
    returnType: Classic_McEliece_GF
    signature: Classic_McEliece_GF & coef_at(size_t i) 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::coef
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Classic_McEliece_GF>
    signature: std::vector<Classic_McEliece_GF> & coef() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.h:66,1
    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::degree
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.h
    functionUses: 0
    functionsReached:
    - Botan::size
    linkageType: ''
    returnType: size_t
    signature: size_t degree() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.h: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::_const_time_poison
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.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/classic_mceliece/cmce_poly.h: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::_const_time_unpoison
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.h
    functionUses: 0
    functionsReached:
    - Botan::CT::unpoison
    linkageType: ''
    returnType: void
    signature: void _const_time_unpoison() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 95
    functionName: Botan::Classic_McEliece_Minimal_Polynomial
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API Classic_McEliece_Minimal_Polynomial
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 114
    functionName: Botan::Classic_McEliece_Polynomial_Ring
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API Classic_McEliece_Polynomial_Ring
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.h:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - poly_big_f_coef
    - poly_f
    - t
    argTypes:
    - std::vector<Big_F_Coefficient>
    - CmceGfMod
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 128
    functionName: Botan::Classic_McEliece_Polynomial_Ring
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Classic_McEliece_Polynomial_Ring(std::vector<Big_F_Coefficient>
      poly_big_f_coef, CmceGfMod poly_f, size_t t)
  - 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::poly_f
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CmceGfMod
    signature: CmceGfMod poly_f() 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::degree
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t degree() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.h:49,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.h:54,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.h:66,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.h:68,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 74
    functionName: Botan::Classic_McEliece_Polynomial
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.h
    functionUses: 4
    functionsReached:
    - Botan::CT::unpoison
    - Botan::size
    - at
    - Botan::CT::poison
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API Classic_McEliece_Polynomial
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.h:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Botan::coef_at
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.h
    functionUses: 0
    functionsReached:
    - at
    linkageType: ''
    returnType: Classic_McEliece_GF
    signature: Classic_McEliece_GF & coef_at(size_t i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: Botan::coef_at
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.h
    functionUses: 0
    functionsReached:
    - at
    linkageType: ''
    returnType: Classic_McEliece_GF
    signature: Classic_McEliece_GF & coef_at(size_t i) 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::coef
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: std::vector<Classic_McEliece_GF>
    signature: std::vector<Classic_McEliece_GF> & coef() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.h:66,1
    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::degree
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.h
    functionUses: 0
    functionsReached:
    - Botan::size
    linkageType: ''
    returnType: size_t
    signature: size_t degree() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.h: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::_const_time_poison
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.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/classic_mceliece/cmce_poly.h: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::_const_time_unpoison
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.h
    functionUses: 0
    functionsReached:
    - Botan::CT::unpoison
    linkageType: ''
    returnType: void
    signature: void _const_time_unpoison() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 95
    functionName: Botan::Classic_McEliece_Minimal_Polynomial
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API Classic_McEliece_Minimal_Polynomial
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 114
    functionName: Botan::Classic_McEliece_Polynomial_Ring
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API Classic_McEliece_Polynomial_Ring
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.h:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - poly_big_f_coef
    - poly_f
    - t
    argTypes:
    - std::vector<Big_F_Coefficient>
    - CmceGfMod
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 128
    functionName: Botan::Classic_McEliece_Polynomial_Ring
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Classic_McEliece_Polynomial_Ring(std::vector<Big_F_Coefficient>
      poly_big_f_coef, CmceGfMod poly_f, size_t t)
  - 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::poly_f
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CmceGfMod
    signature: CmceGfMod poly_f() 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::degree
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t degree() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Classic_McEliece_Decryptor
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.h:33,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.h:36,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 81
    functionName: Botan::Classic_McEliece_Decryptor::KEM_Decryption_with_KDF
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.h
    functionUses: 0
    functionsReached:
    - params
    - Classic_McEliece_Decryptor
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: 'class BOTAN_TEST_API Classic_McEliece_Decryptor final : public PK_Ops::KEM_Decryption_with_KDF'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.h:36,1
    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::raw_kem_shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.h
    functionUses: 0
    functionsReached:
    - Botan::params
    linkageType: ''
    returnType: size_t
    signature: size_t raw_kem_shared_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.h:38,1
    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::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.h
    functionUses: 0
    functionsReached:
    - Botan::params
    linkageType: ''
    returnType: size_t
    signature: size_t encapsulated_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Classic_McEliece_Decryptor
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.h:33,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.h:36,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 81
    functionName: Botan::Classic_McEliece_Decryptor::KEM_Decryption_with_KDF
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.h
    functionUses: 0
    functionsReached:
    - params
    - Classic_McEliece_Decryptor
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: 'class BOTAN_TEST_API Classic_McEliece_Decryptor final : public PK_Ops::KEM_Decryption_with_KDF'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.h:36,1
    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::raw_kem_shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.h
    functionUses: 0
    functionsReached:
    - Botan::params
    linkageType: ''
    returnType: size_t
    signature: size_t raw_kem_shared_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.h:38,1
    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::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.h
    functionUses: 0
    functionsReached:
    - Botan::params
    linkageType: ''
    returnType: size_t
    signature: size_t encapsulated_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:21,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:21,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:21,1
    - Dst: t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:22,1
    - Dst: gf
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:22,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:22,1
    - Dst: alphas
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:24,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:24,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:26,1
    - Dst: goppa_poly
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:27,1
    - Dst: inv
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:28,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:30,1
    - Dst: static_cast<bool>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:30,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:30,1
    - Dst: t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:32,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:33,1
    - Dst: Classic_McEliece_Polynomial
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - ' params'
    - ' goppa_poly'
    - ' ordering'
    - ' code_word'
    argTypes:
    - Classic_McEliece_Parameters
    - Classic_McEliece_Minimal_Polynomial
    - Classic_McEliece_Field_Ordering
    - secure_bitvector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 39
    functionName: Botan::Classic_McEliece_Decryptor::compute_goppa_syndrome
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp
    functionUses: 0
    functionsReached:
    - alphas
    - static_cast<bool>
    - inv
    - gf
    - n
    - CmceGfElem
    - size
    - goppa_poly
    - Classic_McEliece_Polynomial
    - t
    - BOTAN_ASSERT
    - at
    - auto::if_set_return
    - Botan::sha512_msg_expand
    linkageType: ''
    returnType: Classic_McEliece_Polynomial
    signature: "Classic_McEliece_Polynomial Classic_McEliece_Decryptor::compute_goppa_syndrome(\n
      \  const Classic_McEliece_Parameters& params,\n   const Classic_McEliece_Minimal_Polynomial&
      goppa_poly,\n   const Classic_McEliece_Field_Ordering& ordering,\n   const secure_bitvector&
      code_word) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:44,1
    - Dst: gf
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:44,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:44,1
    - Dst: t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:45,1
    - Dst: gf
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:45,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:45,1
    - Dst: gf
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:47,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:47,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:50,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:50,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:51,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:51,1
    - Dst: t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:53,1
    - Dst: gf
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:54,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:54,1
    - Dst: min
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:55,1
    - Dst: t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:55,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:56,1
    - Dst: coef_at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:56,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:60,1
    - Dst: GF_Mask
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:63,1
    - Dst: is_lte
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:63,1
    - Dst: t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:69,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:71,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:71,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:71,1
    - Dst: auto::select
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:74,1
    - Dst: t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:76,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:77,1
    - Dst: auto::select
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:77,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:77,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:77,1
    - Dst: auto::select
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:80,1
    - Dst: std::rotate
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:83,1
    - Dst: std::vector::rbegin
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:83,1
    - Dst: std::vector::rbegin
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:83,1
    - Dst: std::vector::rend
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:83,1
    - Dst: std::reverse
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:86,1
    - Dst: std::vector::begin
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:86,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:86,1
    - Dst: Classic_McEliece_Polynomial
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:88,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - ' params'
    - ' syndrome'
    argTypes:
    - Classic_McEliece_Parameters
    - Classic_McEliece_Polynomial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 89
    functionName: Botan::Classic_McEliece_Decryptor::berlekamp_massey
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp
    functionUses: 0
    functionsReached:
    - std::reverse
    - CmceGfElem
    - std::vector::end
    - std::vector::begin
    - auto::at
    - min
    - t
    - std::rotate
    - std::vector::rend
    - auto::if_set_return
    - Botan::sha512_msg_expand
    - auto::select
    - std::vector::at
    - GF_Mask
    - is_lte
    - coef_at
    - gf
    - Classic_McEliece_Polynomial
    - std::vector::rbegin
    linkageType: ''
    returnType: Classic_McEliece_Polynomial
    signature: "Classic_McEliece_Polynomial Classic_McEliece_Decryptor::berlekamp_massey(\n
      \  const Classic_McEliece_Parameters& params, const Classic_McEliece_Polynomial&
      syndrome) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:92,1
    - Dst: CmceCodeWord::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:92,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:92,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:92,1
    - Dst: CmceCodeWord::resize
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:93,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:93,1
    - Dst: Botan::Classic_McEliece_Decryptor::compute_goppa_syndrome
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:96,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:96,1
    - Dst: g
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:96,1
    - Dst: field_ordering
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:96,1
    - Dst: CmceCodeWord::as
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:96,1
    - Dst: Botan::Classic_McEliece_Decryptor::berlekamp_massey
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:97,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:97,1
    - Dst: field_ordering
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:100,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:100,1
    - Dst: transform
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:101,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:102,1
    - Dst: auto::end
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:102,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:102,1
    - Dst: locator
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:102,1
    - Dst: CmceErrorVector::get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:106,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:106,1
    - Dst: Botan_Tests::test_other_key_not_set
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:107,1
    - Dst: CmceErrorVector::push_back
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:109,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:109,1
    - Dst: CT::Mask<uint8_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:111,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:111,1
    - Dst: CmceErrorVector::hamming_weight
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:111,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:111,1
    - Dst: Botan::Classic_McEliece_Decryptor::compute_goppa_syndrome
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:114,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:114,1
    - Dst: g
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:114,1
    - Dst: field_ordering
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:114,1
    - Dst: CmceErrorVector::get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:114,1
    - Dst: Botan_Tests::test_other_key_not_set
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:115,1
    - Dst: auto::degree
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:116,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:117,1
    - Dst: auto::coef_at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:117,1
    - Dst: auto::coef_at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:117,1
    - Dst: CT::Mask<uint8_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:120,1
    - Dst: auto::elem_mask
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:120,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - big_c
    argTypes:
    - CmceCodeWord
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 123
    functionName: Botan::Classic_McEliece_Decryptor::decode
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::test_other_key_not_set
    - params
    - auto::end
    - CmceErrorVector::push_back
    - transform
    - Botan::Sodium::sodium_is_zero
    - g
    - CmceCodeWord::as
    - CmceCodeWord::size
    - CmceErrorVector::hamming_weight
    - auto::degree
    - auto::coef_at
    - auto::elem_mask
    - Botan::Classic_McEliece_Decryptor::compute_goppa_syndrome
    - std::back_inserter
    - field_ordering
    - locator
    - BOTAN_ASSERT
    - auto::begin
    - std::move
    - CmceErrorVector::get
    - CmceCodeWord::resize
    - Botan::Classic_McEliece_Decryptor::berlekamp_massey
    - Botan::ct_is_equal
    - CT::Mask<uint8_t>
    linkageType: ''
    returnType: std::pair<CT::Mask<uint8_t>, CmceErrorVector>
    signature: std::pair<CT::Mask<uint8_t>, CmceErrorVector> Classic_McEliece_Decryptor::decode(CmceCodeWord
      big_c) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:127,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:127,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:127,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:128,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:128,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:128,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:130,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:133,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:135,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:135,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:136,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:136,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:137,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:137,1
    - Dst: CmceCodeWord
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:138,1
    - Dst: secure_bitvector
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:138,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:138,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:138,1
    - Dst: CmceCodeWord
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:140,1
    - Dst: secure_bitvector
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:140,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:140,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:140,1
    - Dst: Botan::Classic_McEliece_Decryptor::decode
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:144,1
    - Dst: s
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:146,1
    - Dst: select_n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:147,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:147,1
    - Dst: get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:147,1
    - Dst: s
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:147,1
    - Dst: s
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:147,1
    - Dst: select
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:148,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:150,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:152,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:153,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:154,1
    - Dst: auto::final_stdvec
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:155,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:156,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:156,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:156,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:156,1
    - Dst: CT::Mask::select_n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:157,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:157,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:157,1
    - Dst: s
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:157,1
    - Dst: s
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:157,1
    - Dst: CT::Mask::select
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:158,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:161,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:162,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:163,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:164,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 2
    argNames:
    - out_shared_key
    - encapsulated_key
    argTypes:
    - std::span<uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 166
    functionName: Botan::Classic_McEliece_Decryptor::raw_kem_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - auto::update
    - Botan::CT::is_equal
    - select_n
    - params
    - BOTAN_ARG_CHECK
    - Botan::CT::scoped_poison
    - BufferSlicer::take
    - Botan::CT::unpoison
    - std::span<uint8_t>::size
    - BufferSlicer::empty
    - data
    - Botan::Classic_McEliece_Decryptor::decode
    - secure_vector::data
    - auto::data
    - std::span<const uint8_t>::size
    - CT::Mask::select_n
    - get
    - auto::final
    - auto::final_stdvec
    - size
    - s
    - CmceCodeWord
    - CT::Mask::select
    - secure_bitvector
    - select
    linkageType: ''
    returnType: void
    signature: "void Classic_McEliece_Decryptor::raw_kem_decrypt(std::span<uint8_t>
      out_shared_key,\n                                                 std::span<const
      uint8_t> encapsulated_key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:21,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:21,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:21,1
    - Dst: t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:22,1
    - Dst: gf
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:22,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:22,1
    - Dst: alphas
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:24,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:24,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:26,1
    - Dst: goppa_poly
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:27,1
    - Dst: inv
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:28,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:30,1
    - Dst: static_cast<bool>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:30,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:30,1
    - Dst: t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:32,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:33,1
    - Dst: Classic_McEliece_Polynomial
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:38,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - ' params'
    - ' goppa_poly'
    - ' ordering'
    - ' code_word'
    argTypes:
    - Classic_McEliece_Parameters
    - Classic_McEliece_Minimal_Polynomial
    - Classic_McEliece_Field_Ordering
    - secure_bitvector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 39
    functionName: Botan::Classic_McEliece_Decryptor::compute_goppa_syndrome
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp
    functionUses: 1
    functionsReached:
    - alphas
    - static_cast<bool>
    - inv
    - gf
    - n
    - CmceGfElem
    - size
    - goppa_poly
    - Classic_McEliece_Polynomial
    - t
    - BOTAN_ASSERT
    - at
    - auto::if_set_return
    - Botan::sha512_msg_expand
    linkageType: ''
    returnType: Classic_McEliece_Polynomial
    signature: "Classic_McEliece_Polynomial Classic_McEliece_Decryptor::compute_goppa_syndrome(\n
      \  const Classic_McEliece_Parameters& params,\n   const Classic_McEliece_Minimal_Polynomial&
      goppa_poly,\n   const Classic_McEliece_Field_Ordering& ordering,\n   const secure_bitvector&
      code_word) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:44,1
    - Dst: gf
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:44,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:44,1
    - Dst: t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:45,1
    - Dst: gf
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:45,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:45,1
    - Dst: gf
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:47,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:47,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:50,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:50,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:51,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:51,1
    - Dst: t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:53,1
    - Dst: gf
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:54,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:54,1
    - Dst: min
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:55,1
    - Dst: t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:55,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:56,1
    - Dst: coef_at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:56,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:60,1
    - Dst: GF_Mask
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:63,1
    - Dst: is_lte
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:63,1
    - Dst: t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:69,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:71,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:71,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:71,1
    - Dst: auto::select
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:74,1
    - Dst: t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:76,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:77,1
    - Dst: auto::select
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:77,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:77,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:77,1
    - Dst: auto::select
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:80,1
    - Dst: std::rotate
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:83,1
    - Dst: std::vector::rbegin
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:83,1
    - Dst: std::vector::rbegin
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:83,1
    - Dst: std::vector::rend
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:83,1
    - Dst: std::reverse
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:86,1
    - Dst: std::vector::begin
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:86,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:86,1
    - Dst: Classic_McEliece_Polynomial
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:88,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - ' params'
    - ' syndrome'
    argTypes:
    - Classic_McEliece_Parameters
    - Classic_McEliece_Polynomial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 89
    functionName: Botan::Classic_McEliece_Decryptor::berlekamp_massey
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp
    functionUses: 1
    functionsReached:
    - std::reverse
    - CmceGfElem
    - std::vector::end
    - std::vector::begin
    - auto::at
    - min
    - t
    - std::rotate
    - std::vector::rend
    - auto::if_set_return
    - Botan::sha512_msg_expand
    - auto::select
    - std::vector::at
    - GF_Mask
    - is_lte
    - coef_at
    - gf
    - Classic_McEliece_Polynomial
    - std::vector::rbegin
    linkageType: ''
    returnType: Classic_McEliece_Polynomial
    signature: "Classic_McEliece_Polynomial Classic_McEliece_Decryptor::berlekamp_massey(\n
      \  const Classic_McEliece_Parameters& params, const Classic_McEliece_Polynomial&
      syndrome) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:92,1
    - Dst: CmceCodeWord::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:92,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:92,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:92,1
    - Dst: CmceCodeWord::resize
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:93,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:93,1
    - Dst: Botan::Classic_McEliece_Decryptor::compute_goppa_syndrome
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:96,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:96,1
    - Dst: g
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:96,1
    - Dst: field_ordering
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:96,1
    - Dst: CmceCodeWord::as
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:96,1
    - Dst: Botan::Classic_McEliece_Decryptor::berlekamp_massey
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:97,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:97,1
    - Dst: field_ordering
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:100,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:100,1
    - Dst: transform
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:101,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:102,1
    - Dst: auto::end
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:102,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:102,1
    - Dst: locator
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:102,1
    - Dst: CmceErrorVector::get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:106,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:106,1
    - Dst: Botan_Tests::test_other_key_not_set
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:107,1
    - Dst: CmceErrorVector::push_back
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:109,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:109,1
    - Dst: CT::Mask<uint8_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:111,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:111,1
    - Dst: CmceErrorVector::hamming_weight
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:111,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:111,1
    - Dst: Botan::Classic_McEliece_Decryptor::compute_goppa_syndrome
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:114,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:114,1
    - Dst: g
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:114,1
    - Dst: field_ordering
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:114,1
    - Dst: CmceErrorVector::get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:114,1
    - Dst: Botan_Tests::test_other_key_not_set
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:115,1
    - Dst: auto::degree
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:116,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:117,1
    - Dst: auto::coef_at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:117,1
    - Dst: auto::coef_at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:117,1
    - Dst: CT::Mask<uint8_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:120,1
    - Dst: auto::elem_mask
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:120,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - big_c
    argTypes:
    - CmceCodeWord
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 91
    functionDepth: 2
    functionLinenumber: 91
    functionLinenumberEnd: 123
    functionName: Botan::Classic_McEliece_Decryptor::decode
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::test_other_key_not_set
    - params
    - auto::end
    - CmceErrorVector::push_back
    - transform
    - Botan::Sodium::sodium_is_zero
    - g
    - CmceCodeWord::as
    - CmceCodeWord::size
    - CmceErrorVector::hamming_weight
    - auto::degree
    - auto::coef_at
    - auto::elem_mask
    - Botan::Classic_McEliece_Decryptor::compute_goppa_syndrome
    - std::back_inserter
    - field_ordering
    - locator
    - BOTAN_ASSERT
    - auto::begin
    - std::move
    - CmceErrorVector::get
    - CmceCodeWord::resize
    - Botan::Classic_McEliece_Decryptor::berlekamp_massey
    - Botan::ct_is_equal
    - CT::Mask<uint8_t>
    linkageType: ''
    returnType: std::pair<CT::Mask<uint8_t>, CmceErrorVector>
    signature: std::pair<CT::Mask<uint8_t>, CmceErrorVector> Classic_McEliece_Decryptor::decode(CmceCodeWord
      big_c) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:127,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:127,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:127,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:128,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:128,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:128,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:130,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:133,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:135,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:135,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:136,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:136,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:137,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:137,1
    - Dst: CmceCodeWord
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:138,1
    - Dst: secure_bitvector
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:138,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:138,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:138,1
    - Dst: CmceCodeWord
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:140,1
    - Dst: secure_bitvector
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:140,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:140,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:140,1
    - Dst: Botan::Classic_McEliece_Decryptor::decode
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:144,1
    - Dst: s
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:146,1
    - Dst: select_n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:147,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:147,1
    - Dst: get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:147,1
    - Dst: s
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:147,1
    - Dst: s
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:147,1
    - Dst: select
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:148,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:150,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:152,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:153,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:154,1
    - Dst: auto::final_stdvec
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:155,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:156,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:156,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:156,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:156,1
    - Dst: CT::Mask::select_n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:157,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:157,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:157,1
    - Dst: s
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:157,1
    - Dst: s
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:157,1
    - Dst: CT::Mask::select
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:158,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:161,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:162,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:163,1
    - Dst: auto::final
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:164,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp:165,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 2
    argNames:
    - out_shared_key
    - encapsulated_key
    argTypes:
    - std::span<uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 125
    functionDepth: 3
    functionLinenumber: 125
    functionLinenumberEnd: 166
    functionName: Botan::Classic_McEliece_Decryptor::raw_kem_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_decaps.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - auto::update
    - Botan::CT::is_equal
    - select_n
    - params
    - BOTAN_ARG_CHECK
    - Botan::CT::scoped_poison
    - BufferSlicer::take
    - Botan::CT::unpoison
    - std::span<uint8_t>::size
    - BufferSlicer::empty
    - data
    - Botan::Classic_McEliece_Decryptor::decode
    - secure_vector::data
    - auto::data
    - std::span<const uint8_t>::size
    - CT::Mask::select_n
    - get
    - auto::final
    - auto::final_stdvec
    - size
    - s
    - CmceCodeWord
    - CT::Mask::select
    - secure_bitvector
    - select
    linkageType: ''
    returnType: void
    signature: "void Classic_McEliece_Decryptor::raw_kem_decrypt(std::span<uint8_t>
      out_shared_key,\n                                                 std::span<const
      uint8_t> encapsulated_key)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:26,1
    - Dst: CmceKeyGenSeed::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:26,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:27,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:27,1
    - Dst: prg
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:29,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:31,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:31,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:32,1
    - Dst: Botan::sigma2
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:32,1
    - Dst: Botan::q
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:32,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:33,1
    - Dst: Botan::sigma1
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:33,1
    - Dst: Botan::t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:33,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:34,1
    - Dst: Botan::Classic_McEliece_Field_Ordering::create_field_ordering
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:37,1
    - Dst: Botan::poly_ring
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:43,1
    - Dst: Botan::Classic_McEliece_Matrix::create_matrix_and_apply_pivots
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:50,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:50,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:50,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:54,1
    - Dst: std::make_shared<Classic_McEliece_PrivateKeyInternal>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:58,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:59,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:59,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:59,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:59,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:59,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:59,1
    - Dst: std::make_shared<Classic_McEliece_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:60,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - out_next_seed
    - ' params'
    - seed
    argTypes:
    - std::span<uint8_t>
    - Classic_McEliece_Parameters
    - CmceKeyGenSeed
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 61
    functionName: Botan::try_generate_keypair
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp
    functionUses: 0
    functionsReached:
    - Botan::q
    - CmceKeyGenSeed::size
    - Botan::t
    - std::move
    - auto::output
    - Botan::poly_ring
    - Botan::Classic_McEliece_Matrix::create_matrix_and_apply_pivots
    - std::make_shared<Classic_McEliece_PublicKeyInternal>
    - auto::value
    - std::make_shared<Classic_McEliece_PrivateKeyInternal>
    - Botan::Classic_McEliece_Field_Ordering::create_field_ordering
    - BOTAN_ASSERT_EQUAL
    - prg
    - Botan::sigma2
    - Botan::n
    - std::span<uint8_t>::size
    - Botan::sigma1
    linkageType: ''
    returnType: std::optional<Classic_McEliece_KeyPair_Internal>
    signature: "std::optional<Classic_McEliece_KeyPair_Internal> try_generate_keypair(std::span<uint8_t>
      out_next_seed,\n                                                                      const
      Classic_McEliece_Parameters& params,\n                                                                      CmceKeyGenSeed
      seed)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:26,1
    - Dst: CmceKeyGenSeed::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:26,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:27,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:27,1
    - Dst: prg
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:29,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:31,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:31,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:32,1
    - Dst: Botan::sigma2
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:32,1
    - Dst: Botan::q
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:32,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:33,1
    - Dst: Botan::sigma1
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:33,1
    - Dst: Botan::t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:33,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:34,1
    - Dst: Botan::Classic_McEliece_Field_Ordering::create_field_ordering
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:37,1
    - Dst: Botan::poly_ring
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:43,1
    - Dst: Botan::Classic_McEliece_Matrix::create_matrix_and_apply_pivots
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:50,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:50,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:50,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:54,1
    - Dst: std::make_shared<Classic_McEliece_PrivateKeyInternal>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:58,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:59,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:59,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:59,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:59,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:59,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:59,1
    - Dst: std::make_shared<Classic_McEliece_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:60,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - out_next_seed
    - ' params'
    - seed
    argTypes:
    - std::span<uint8_t>
    - Classic_McEliece_Parameters
    - CmceKeyGenSeed
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 61
    functionName: Botan::try_generate_keypair
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp
    functionUses: 0
    functionsReached:
    - Botan::q
    - CmceKeyGenSeed::size
    - Botan::t
    - std::move
    - auto::output
    - Botan::poly_ring
    - Botan::Classic_McEliece_Matrix::create_matrix_and_apply_pivots
    - std::make_shared<Classic_McEliece_PublicKeyInternal>
    - auto::value
    - std::make_shared<Classic_McEliece_PrivateKeyInternal>
    - Botan::Classic_McEliece_Field_Ordering::create_field_ordering
    - BOTAN_ASSERT_EQUAL
    - prg
    - Botan::sigma2
    - Botan::n
    - std::span<uint8_t>::size
    - Botan::sigma1
    linkageType: ''
    returnType: std::optional<Classic_McEliece_KeyPair_Internal>
    signature: "std::optional<Classic_McEliece_KeyPair_Internal> try_generate_keypair(std::span<uint8_t>
      out_next_seed,\n                                                                      const
      Classic_McEliece_Parameters& params,\n                                                                      CmceKeyGenSeed
      seed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:67,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:67,1
    - Dst: sk_size_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:67,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:70,1
    - Dst: seed_len
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:70,1
    - Dst: CmceColumnSelection
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:71,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:71,1
    - Dst: sk_c_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:71,1
    - Dst: Botan::Classic_McEliece_Minimal_Polynomial::from_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:72,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:72,1
    - Dst: sk_poly_g_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:72,1
    - Dst: poly_f
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:72,1
    - Dst: Botan::Classic_McEliece_Field_Ordering::create_from_control_bits
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:73,1
    - Dst: secure_bitvector
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:74,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:74,1
    - Dst: sk_alpha_control_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:74,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:75,1
    - Dst: sk_s_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:75,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:76,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:76,1
    - Dst: Classic_McEliece_PrivateKeyInternal
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:78,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:79,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:79,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:79,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:79,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' params'
    - sk_bytes
    argTypes:
    - Classic_McEliece_Parameters
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 80
    functionName: Botan::Classic_McEliece_PrivateKeyInternal::from_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - sk_size_bytes
    - seed_len
    - sk_c_bytes
    - Botan::Classic_McEliece_Minimal_Polynomial::from_bytes
    - BufferSlicer::take
    - BufferSlicer::copy
    - Classic_McEliece_PrivateKeyInternal
    - BufferSlicer::empty
    - sk_s_bytes
    - poly_f
    - Botan::Classic_McEliece_Field_Ordering::create_from_control_bits
    - CmceColumnSelection
    - std::span<const uint8_t>::size
    - sk_alpha_control_bytes
    - BOTAN_ASSERT
    - sk_poly_g_bytes
    - std::move
    - secure_bitvector
    linkageType: ''
    returnType: Classic_McEliece_PrivateKeyInternal
    signature: "Classic_McEliece_PrivateKeyInternal Classic_McEliece_PrivateKeyInternal::from_bytes(\n
      \  const Classic_McEliece_Parameters& params, std::span<const uint8_t> sk_bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alphas_control_bits
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:83,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:92,1
    - Dst: Botan::Classic_McEliece_Field_Ordering::create_from_control_bits
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:92,1
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:97,1
    - Dst: get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:97,1
    - Dst: get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:97,1
    - Dst: Botan::Classic_McEliece_PrivateKeyInternal::serialize
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:97,1
    - Dst: auto::to_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 98
    functionName: Botan::Classic_McEliece_PrivateKeyInternal::serialize
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp
    functionUses: 1
    functionsReached:
    - Botan::Classic_McEliece_Field_Ordering::create_from_control_bits
    - concat
    - auto::to_bytes
    - alphas_control_bits
    - Botan::Classic_McEliece_PrivateKeyInternal::serialize
    - get
    - BOTAN_ASSERT
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Classic_McEliece_PrivateKeyInternal::serialize()
      const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: prg
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:101,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:103,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:103,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:104,1
    - Dst: sigma2
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:104,1
    - Dst: q
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:104,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:105,1
    - Dst: sigma1
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:105,1
    - Dst: t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:105,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:108,1
    - Dst: CT::is_equal<uint8_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:108,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:108,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:108,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:108,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:111,1
    - Dst: c
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:111,1
    - Dst: poly_ring
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:113,1
    - Dst: auto::degree
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:114,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:115,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:115,1
    - Dst: auto::coef_at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:115,1
    - Dst: coef_at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:115,1
    - Dst: Botan::CT::Mask::cleared
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:118,1
    - Dst: Botan::Classic_McEliece_Field_Ordering::create_field_ordering
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:122,1
    - Dst: auto::permute_with_pivots
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:123,1
    - Dst: c
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:123,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:124,1
    - Dst: auto::ct_is_equal
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:124,1
    - Dst: field_ordering
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:124,1
    - Dst: Botan::CT::Mask::cleared
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:126,1
    - Dst: auto::as_bool
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 130
    functionName: Botan::Classic_McEliece_PrivateKeyInternal::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp
    functionUses: 0
    functionsReached:
    - sigma2
    - Botan::CT::Mask::cleared
    - c
    - data
    - auto::degree
    - auto::coef_at
    - t
    - Botan::sha512_msg_expand
    - auto::data
    - n
    - auto::permute_with_pivots
    - field_ordering
    - prg
    - sigma1
    - q
    - poly_ring
    - coef_at
    - auto::output
    - CT::is_equal<uint8_t>
    - auto::ct_is_equal
    - auto::as_bool
    - Botan::ct_is_equal
    - Botan::Classic_McEliece_Field_Ordering::create_field_ordering
    linkageType: ''
    returnType: bool
    signature: bool Classic_McEliece_PrivateKeyInternal::check_key() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Matrix::create_matrix
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:134,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:134,1
    - Dst: field_ordering
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:134,1
    - Dst: g
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:134,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:135,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:136,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:138,1
    - Dst: Botan::CT::driveby_unpoison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:142,1
    - Dst: equals
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:142,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:143,1
    - Dst: std::make_shared<Classic_McEliece_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:146,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:146,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:146,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ' sk'
    argTypes:
    - Classic_McEliece_PrivateKeyInternal
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 147
    functionName: Botan::Classic_McEliece_PublicKeyInternal::create_from_private_key
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp
    functionUses: 2
    functionsReached:
    - Botan::CT::driveby_unpoison
    - Decoding_Error
    - std::move
    - params
    - auto::has_value
    - std::make_shared<Classic_McEliece_PublicKeyInternal>
    - auto::value
    - field_ordering
    - g
    - equals
    - Botan::Classic_McEliece_Matrix::create_matrix
    linkageType: ''
    returnType: std::shared_ptr<Classic_McEliece_PublicKeyInternal>
    signature: "std::shared_ptr<Classic_McEliece_PublicKeyInternal> Classic_McEliece_PublicKeyInternal::create_from_private_key(\n
      \  const Classic_McEliece_PrivateKeyInternal& sk)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:151,1
    - Dst: StrongSpan<const CmceInitialSeed>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:151,1
    - Dst: seed_len
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:151,1
    - Dst: StrongSpan<const CmceInitialSeed>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:153,1
    - Dst: StrongSpan<const CmceInitialSeed>::begin
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:154,1
    - Dst: StrongSpan<const CmceInitialSeed>::end
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:154,1
    - Dst: try_generate_keypair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:157,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:157,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' params'
    - seed
    argTypes:
    - Classic_McEliece_Parameters
    - StrongSpan<const CmceInitialSeed>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 162
    functionName: Botan::Classic_McEliece_KeyPair_Internal::generate
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp
    functionUses: 2
    functionsReached:
    - StrongSpan<const CmceInitialSeed>::size
    - std::move
    - seed_len
    - auto::value
    - StrongSpan<const CmceInitialSeed>::begin
    - StrongSpan<const CmceInitialSeed>::end
    - BOTAN_ASSERT_EQUAL
    - try_generate_keypair
    linkageType: ''
    returnType: Classic_McEliece_KeyPair_Internal
    signature: "Classic_McEliece_KeyPair_Internal Classic_McEliece_KeyPair_Internal::generate(const
      Classic_McEliece_Parameters& params,\n                                                                              StrongSpan<const
      CmceInitialSeed> seed)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:26,1
    - Dst: CmceKeyGenSeed::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:26,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:27,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:27,1
    - Dst: prg
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:29,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:31,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:31,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:32,1
    - Dst: Botan::sigma2
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:32,1
    - Dst: Botan::q
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:32,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:33,1
    - Dst: Botan::sigma1
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:33,1
    - Dst: Botan::t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:33,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:34,1
    - Dst: Botan::Classic_McEliece_Field_Ordering::create_field_ordering
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:37,1
    - Dst: Botan::poly_ring
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:43,1
    - Dst: Botan::Classic_McEliece_Matrix::create_matrix_and_apply_pivots
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:50,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:50,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:50,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:54,1
    - Dst: std::make_shared<Classic_McEliece_PrivateKeyInternal>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:58,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:59,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:59,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:59,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:59,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:59,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:59,1
    - Dst: std::make_shared<Classic_McEliece_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:60,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - out_next_seed
    - ' params'
    - seed
    argTypes:
    - std::span<uint8_t>
    - Classic_McEliece_Parameters
    - CmceKeyGenSeed
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 61
    functionName: Botan::try_generate_keypair
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp
    functionUses: 0
    functionsReached:
    - Botan::q
    - CmceKeyGenSeed::size
    - Botan::t
    - std::move
    - auto::output
    - Botan::poly_ring
    - Botan::Classic_McEliece_Matrix::create_matrix_and_apply_pivots
    - std::make_shared<Classic_McEliece_PublicKeyInternal>
    - auto::value
    - std::make_shared<Classic_McEliece_PrivateKeyInternal>
    - Botan::Classic_McEliece_Field_Ordering::create_field_ordering
    - BOTAN_ASSERT_EQUAL
    - prg
    - Botan::sigma2
    - Botan::n
    - std::span<uint8_t>::size
    - Botan::sigma1
    linkageType: ''
    returnType: std::optional<Classic_McEliece_KeyPair_Internal>
    signature: "std::optional<Classic_McEliece_KeyPair_Internal> try_generate_keypair(std::span<uint8_t>
      out_next_seed,\n                                                                      const
      Classic_McEliece_Parameters& params,\n                                                                      CmceKeyGenSeed
      seed)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:26,1
    - Dst: CmceKeyGenSeed::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:26,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:27,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:27,1
    - Dst: prg
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:29,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:31,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:31,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:32,1
    - Dst: Botan::sigma2
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:32,1
    - Dst: Botan::q
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:32,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:33,1
    - Dst: Botan::sigma1
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:33,1
    - Dst: Botan::t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:33,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:34,1
    - Dst: Botan::Classic_McEliece_Field_Ordering::create_field_ordering
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:37,1
    - Dst: Botan::poly_ring
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:43,1
    - Dst: Botan::Classic_McEliece_Matrix::create_matrix_and_apply_pivots
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:50,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:50,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:50,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:54,1
    - Dst: std::make_shared<Classic_McEliece_PrivateKeyInternal>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:58,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:59,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:59,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:59,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:59,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:59,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:59,1
    - Dst: std::make_shared<Classic_McEliece_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:60,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:60,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - out_next_seed
    - ' params'
    - seed
    argTypes:
    - std::span<uint8_t>
    - Classic_McEliece_Parameters
    - CmceKeyGenSeed
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 61
    functionName: Botan::try_generate_keypair
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp
    functionUses: 0
    functionsReached:
    - Botan::q
    - CmceKeyGenSeed::size
    - Botan::t
    - std::move
    - auto::output
    - Botan::poly_ring
    - Botan::Classic_McEliece_Matrix::create_matrix_and_apply_pivots
    - std::make_shared<Classic_McEliece_PublicKeyInternal>
    - auto::value
    - std::make_shared<Classic_McEliece_PrivateKeyInternal>
    - Botan::Classic_McEliece_Field_Ordering::create_field_ordering
    - BOTAN_ASSERT_EQUAL
    - prg
    - Botan::sigma2
    - Botan::n
    - std::span<uint8_t>::size
    - Botan::sigma1
    linkageType: ''
    returnType: std::optional<Classic_McEliece_KeyPair_Internal>
    signature: "std::optional<Classic_McEliece_KeyPair_Internal> try_generate_keypair(std::span<uint8_t>
      out_next_seed,\n                                                                      const
      Classic_McEliece_Parameters& params,\n                                                                      CmceKeyGenSeed
      seed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:67,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:67,1
    - Dst: sk_size_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:67,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:70,1
    - Dst: seed_len
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:70,1
    - Dst: CmceColumnSelection
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:71,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:71,1
    - Dst: sk_c_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:71,1
    - Dst: Botan::Classic_McEliece_Minimal_Polynomial::from_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:72,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:72,1
    - Dst: sk_poly_g_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:72,1
    - Dst: poly_f
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:72,1
    - Dst: Botan::Classic_McEliece_Field_Ordering::create_from_control_bits
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:73,1
    - Dst: secure_bitvector
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:74,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:74,1
    - Dst: sk_alpha_control_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:74,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:75,1
    - Dst: sk_s_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:75,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:76,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:76,1
    - Dst: Classic_McEliece_PrivateKeyInternal
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:78,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:79,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:79,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:79,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:79,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' params'
    - sk_bytes
    argTypes:
    - Classic_McEliece_Parameters
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 65
    functionDepth: 2
    functionLinenumber: 65
    functionLinenumberEnd: 80
    functionName: Botan::Classic_McEliece_PrivateKeyInternal::from_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - sk_size_bytes
    - seed_len
    - sk_c_bytes
    - Botan::Classic_McEliece_Minimal_Polynomial::from_bytes
    - BufferSlicer::take
    - BufferSlicer::copy
    - Classic_McEliece_PrivateKeyInternal
    - BufferSlicer::empty
    - sk_s_bytes
    - poly_f
    - Botan::Classic_McEliece_Field_Ordering::create_from_control_bits
    - CmceColumnSelection
    - std::span<const uint8_t>::size
    - sk_alpha_control_bytes
    - BOTAN_ASSERT
    - sk_poly_g_bytes
    - std::move
    - secure_bitvector
    linkageType: ''
    returnType: Classic_McEliece_PrivateKeyInternal
    signature: "Classic_McEliece_PrivateKeyInternal Classic_McEliece_PrivateKeyInternal::from_bytes(\n
      \  const Classic_McEliece_Parameters& params, std::span<const uint8_t> sk_bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alphas_control_bits
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:83,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:92,1
    - Dst: Botan::Classic_McEliece_Field_Ordering::create_from_control_bits
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:92,1
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:97,1
    - Dst: get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:97,1
    - Dst: get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:97,1
    - Dst: Botan::Classic_McEliece_PrivateKeyInternal::serialize
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:97,1
    - Dst: auto::to_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 98
    functionName: Botan::Classic_McEliece_PrivateKeyInternal::serialize
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp
    functionUses: 2
    functionsReached:
    - Botan::Classic_McEliece_Field_Ordering::create_from_control_bits
    - concat
    - auto::to_bytes
    - alphas_control_bits
    - Botan::Classic_McEliece_PrivateKeyInternal::serialize
    - get
    - BOTAN_ASSERT
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Classic_McEliece_PrivateKeyInternal::serialize()
      const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: prg
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:101,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:103,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:103,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:104,1
    - Dst: sigma2
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:104,1
    - Dst: q
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:104,1
    - Dst: auto::output
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:105,1
    - Dst: sigma1
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:105,1
    - Dst: t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:105,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:108,1
    - Dst: CT::is_equal<uint8_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:108,1
    - Dst: auto::data
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:108,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:108,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:108,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:111,1
    - Dst: c
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:111,1
    - Dst: poly_ring
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:113,1
    - Dst: auto::degree
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:114,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:115,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:115,1
    - Dst: auto::coef_at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:115,1
    - Dst: coef_at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:115,1
    - Dst: Botan::CT::Mask::cleared
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:118,1
    - Dst: Botan::Classic_McEliece_Field_Ordering::create_field_ordering
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:122,1
    - Dst: auto::permute_with_pivots
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:123,1
    - Dst: c
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:123,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:124,1
    - Dst: auto::ct_is_equal
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:124,1
    - Dst: field_ordering
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:124,1
    - Dst: Botan::CT::Mask::cleared
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:126,1
    - Dst: auto::as_bool
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 130
    functionName: Botan::Classic_McEliece_PrivateKeyInternal::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp
    functionUses: 0
    functionsReached:
    - sigma2
    - Botan::CT::Mask::cleared
    - c
    - data
    - auto::degree
    - auto::coef_at
    - t
    - Botan::sha512_msg_expand
    - auto::data
    - n
    - auto::permute_with_pivots
    - field_ordering
    - prg
    - sigma1
    - q
    - poly_ring
    - coef_at
    - auto::output
    - CT::is_equal<uint8_t>
    - auto::ct_is_equal
    - auto::as_bool
    - Botan::ct_is_equal
    - Botan::Classic_McEliece_Field_Ordering::create_field_ordering
    linkageType: ''
    returnType: bool
    signature: bool Classic_McEliece_PrivateKeyInternal::check_key() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Matrix::create_matrix
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:134,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:134,1
    - Dst: field_ordering
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:134,1
    - Dst: g
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:134,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:135,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:136,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:138,1
    - Dst: Botan::CT::driveby_unpoison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:142,1
    - Dst: equals
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:142,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:143,1
    - Dst: std::make_shared<Classic_McEliece_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:146,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:146,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:146,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ' sk'
    argTypes:
    - Classic_McEliece_PrivateKeyInternal
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 147
    functionName: Botan::Classic_McEliece_PublicKeyInternal::create_from_private_key
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp
    functionUses: 2
    functionsReached:
    - Botan::CT::driveby_unpoison
    - Decoding_Error
    - std::move
    - params
    - auto::has_value
    - std::make_shared<Classic_McEliece_PublicKeyInternal>
    - auto::value
    - field_ordering
    - g
    - equals
    - Botan::Classic_McEliece_Matrix::create_matrix
    linkageType: ''
    returnType: std::shared_ptr<Classic_McEliece_PublicKeyInternal>
    signature: "std::shared_ptr<Classic_McEliece_PublicKeyInternal> Classic_McEliece_PublicKeyInternal::create_from_private_key(\n
      \  const Classic_McEliece_PrivateKeyInternal& sk)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:151,1
    - Dst: StrongSpan<const CmceInitialSeed>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:151,1
    - Dst: seed_len
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:151,1
    - Dst: StrongSpan<const CmceInitialSeed>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:153,1
    - Dst: StrongSpan<const CmceInitialSeed>::begin
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:154,1
    - Dst: StrongSpan<const CmceInitialSeed>::end
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:154,1
    - Dst: try_generate_keypair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:157,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:157,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp:158,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' params'
    - seed
    argTypes:
    - Classic_McEliece_Parameters
    - StrongSpan<const CmceInitialSeed>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 162
    functionName: Botan::Classic_McEliece_KeyPair_Internal::generate
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.cpp
    functionUses: 2
    functionsReached:
    - StrongSpan<const CmceInitialSeed>::size
    - std::move
    - seed_len
    - auto::value
    - StrongSpan<const CmceInitialSeed>::begin
    - StrongSpan<const CmceInitialSeed>::end
    - BOTAN_ASSERT_EQUAL
    - try_generate_keypair
    linkageType: ''
    returnType: Classic_McEliece_KeyPair_Internal
    signature: "Classic_McEliece_KeyPair_Internal Classic_McEliece_KeyPair_Internal::generate(const
      Classic_McEliece_Parameters& params,\n                                                                              StrongSpan<const
      CmceInitialSeed> seed)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:85,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:86,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:86,1
    - Dst: Botan::pk_size_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:86,1
    - Dst: Botan::pk_no_cols
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:87,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:91,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:91,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:91,1
    - Dst: Botan::pk_row_size_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:91,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:92,1
    - Dst: Botan::pk_row_size_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:93,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:94,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:95,1
    - Dst: Botan::pk_no_cols
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:95,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 113
    functionName: Botan::Classic_McEliece_Matrix
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::move
    - Botan::size
    - BOTAN_ARG_CHECK
    - Botan::pk_no_rows
    - Botan::pk_no_cols
    - Botan::CT::unpoison
    - Botan::pk_size_bytes
    - Botan::pk_row_size_bytes
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API Classic_McEliece_Matrix
  - 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::bytes
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & bytes() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:85,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:86,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:86,1
    - Dst: Botan::pk_size_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:86,1
    - Dst: Botan::pk_no_cols
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:87,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:91,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:91,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:91,1
    - Dst: Botan::pk_row_size_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:91,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:92,1
    - Dst: Botan::pk_row_size_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:93,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:94,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:95,1
    - Dst: Botan::pk_no_cols
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ' params'
    - mat_bytes
    argTypes:
    - Classic_McEliece_Parameters
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 97
    functionName: Botan::Classic_McEliece_Matrix
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::move
    - Botan::size
    - BOTAN_ARG_CHECK
    - Botan::pk_no_rows
    - Botan::pk_no_cols
    - Botan::CT::unpoison
    - Botan::pk_size_bytes
    - Botan::pk_row_size_bytes
    linkageType: ''
    returnType: void
    signature: void Classic_McEliece_Matrix(const Classic_McEliece_Parameters& params,
      std::vector<uint8_t> mat_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.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::_const_time_unpoison
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h
    functionUses: 0
    functionsReached:
    - Botan::CT::unpoison
    linkageType: ''
    returnType: void
    signature: void _const_time_unpoison() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:85,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:86,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:86,1
    - Dst: Botan::pk_size_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:86,1
    - Dst: Botan::pk_no_cols
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:87,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:91,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:91,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:91,1
    - Dst: Botan::pk_row_size_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:91,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:92,1
    - Dst: Botan::pk_row_size_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:93,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:94,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:95,1
    - Dst: Botan::pk_no_cols
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:95,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 113
    functionName: Botan::Classic_McEliece_Matrix
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::move
    - Botan::size
    - BOTAN_ARG_CHECK
    - Botan::pk_no_rows
    - Botan::pk_no_cols
    - Botan::CT::unpoison
    - Botan::pk_size_bytes
    - Botan::pk_row_size_bytes
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API Classic_McEliece_Matrix
  - 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::bytes
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> & bytes() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:85,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:86,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:86,1
    - Dst: Botan::pk_size_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:86,1
    - Dst: Botan::pk_no_cols
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:87,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:91,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:91,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:91,1
    - Dst: Botan::pk_row_size_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:91,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:92,1
    - Dst: Botan::pk_row_size_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:93,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:94,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:95,1
    - Dst: Botan::pk_no_cols
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ' params'
    - mat_bytes
    argTypes:
    - Classic_McEliece_Parameters
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 97
    functionName: Botan::Classic_McEliece_Matrix
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::move
    - Botan::size
    - BOTAN_ARG_CHECK
    - Botan::pk_no_rows
    - Botan::pk_no_cols
    - Botan::CT::unpoison
    - Botan::pk_size_bytes
    - Botan::pk_row_size_bytes
    linkageType: ''
    returnType: void
    signature: void Classic_McEliece_Matrix(const Classic_McEliece_Parameters& params,
      std::vector<uint8_t> mat_bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.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::_const_time_unpoison
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.h
    functionUses: 0
    functionsReached:
    - Botan::CT::unpoison
    linkageType: ''
    returnType: void
    signature: void _const_time_unpoison() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Classic_McEliece_Encryptor
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.h:30,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.h:33,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.h:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 56
    functionName: Botan::Classic_McEliece_Encryptor::KEM_Encryption_with_KDF
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.h
    functionUses: 0
    functionsReached:
    - params
    - Classic_McEliece_Encryptor
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: 'class BOTAN_TEST_API Classic_McEliece_Encryptor final : public PK_Ops::KEM_Encryption_with_KDF'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.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::raw_kem_shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.h
    functionUses: 0
    functionsReached:
    - Botan::params
    linkageType: ''
    returnType: size_t
    signature: size_t raw_kem_shared_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.h:35,1
    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::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.h
    functionUses: 0
    functionsReached:
    - Botan::params
    linkageType: ''
    returnType: size_t
    signature: size_t encapsulated_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Classic_McEliece_Encryptor
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.h:30,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.h:33,1
    - Dst: params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.h:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 56
    functionName: Botan::Classic_McEliece_Encryptor::KEM_Encryption_with_KDF
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.h
    functionUses: 0
    functionsReached:
    - params
    - Classic_McEliece_Encryptor
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: 'class BOTAN_TEST_API Classic_McEliece_Encryptor final : public PK_Ops::KEM_Encryption_with_KDF'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.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::raw_kem_shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.h
    functionUses: 0
    functionsReached:
    - Botan::params
    linkageType: ''
    returnType: size_t
    signature: size_t raw_kem_shared_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::params
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.h:35,1
    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::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_encaps.h
    functionUses: 0
    functionsReached:
    - Botan::params
    linkageType: ''
    returnType: size_t
    signature: size_t encapsulated_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: Botan::Classic_McEliece_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Classic_McEliece_PublicKey(Classic_McEliece_PublicKey&&)
  - 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: ~Classic_McEliece_PublicKey() override
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Classic_McEliece_PublicKey() 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::algo_name
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.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: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: Botan::supports_operation
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.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: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: Botan::Classic_McEliece_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Classic_McEliece_PublicKey(Classic_McEliece_PublicKey&&)
  - 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: ~Classic_McEliece_PublicKey() override
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Classic_McEliece_PublicKey() 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::algo_name
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.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: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: Botan::supports_operation
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool supports_operation(PublicKeyOperation op) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.h:84,1
    - Dst: Botan::pi_ref
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.h:84,1
    - Dst: Botan::pi_ref
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.h:84,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.h:85,1
    - Dst: Botan::pi_ref
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.h:85,1
    - Dst: Botan::pi_ref
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.h:85,1
    - Dst: Botan::pi_ref
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.h:85,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.h:102,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.h:104,1
    - Dst: Botan::Classic_McEliece_Field_Ordering
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 112
    functionName: Botan::Classic_McEliece_Field_Ordering
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.h
    functionUses: 1
    functionsReached:
    - Botan::CT::is_equal
    - Botan::CT::poison
    - BOTAN_ARG_CHECK
    - Botan::pi_ref
    - Botan::CT::unpoison
    - Botan::Classic_McEliece_Field_Ordering
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API Classic_McEliece_Field_Ordering
  - 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::pi_ref
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: CmcePermutation
    signature: CmcePermutation & pi_ref()
  - 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::pi_ref
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: CmcePermutation
    signature: CmcePermutation & pi_ref() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.h:84,1
    - Dst: Botan::pi_ref
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.h:84,1
    - Dst: Botan::pi_ref
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.h:84,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.h:85,1
    - Dst: Botan::pi_ref
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.h:85,1
    - Dst: Botan::pi_ref
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.h:85,1
    - Dst: Botan::pi_ref
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Classic_McEliece_Field_Ordering
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: Botan::ct_is_equal
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.h
    functionUses: 36
    functionsReached:
    - Botan::CT::is_equal
    - BOTAN_ARG_CHECK
    - Botan::pi_ref
    linkageType: ''
    returnType: CT::Mask<uint16_t>
    signature: CT::Mask<uint16_t> ct_is_equal(const Classic_McEliece_Field_Ordering&
      other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.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::_const_time_poison
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.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/classic_mceliece/cmce_field_ordering.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::_const_time_unpoison
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.h
    functionUses: 0
    functionsReached:
    - Botan::CT::unpoison
    linkageType: ''
    returnType: void
    signature: void _const_time_unpoison() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.h:84,1
    - Dst: Botan::pi_ref
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.h:84,1
    - Dst: Botan::pi_ref
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.h:84,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.h:85,1
    - Dst: Botan::pi_ref
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.h:85,1
    - Dst: Botan::pi_ref
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.h:85,1
    - Dst: Botan::pi_ref
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.h:85,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.h:102,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.h:104,1
    - Dst: Botan::Classic_McEliece_Field_Ordering
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 112
    functionName: Botan::Classic_McEliece_Field_Ordering
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.h
    functionUses: 2
    functionsReached:
    - Botan::CT::is_equal
    - Botan::CT::poison
    - BOTAN_ARG_CHECK
    - Botan::pi_ref
    - Botan::CT::unpoison
    - Botan::Classic_McEliece_Field_Ordering
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API Classic_McEliece_Field_Ordering
  - 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::pi_ref
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: CmcePermutation
    signature: CmcePermutation & pi_ref()
  - 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::pi_ref
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: CmcePermutation
    signature: CmcePermutation & pi_ref() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.h:84,1
    - Dst: Botan::pi_ref
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.h:84,1
    - Dst: Botan::pi_ref
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.h:84,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.h:85,1
    - Dst: Botan::pi_ref
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.h:85,1
    - Dst: Botan::pi_ref
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.h:85,1
    - Dst: Botan::pi_ref
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Classic_McEliece_Field_Ordering
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: Botan::ct_is_equal
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.h
    functionUses: 36
    functionsReached:
    - Botan::CT::is_equal
    - BOTAN_ARG_CHECK
    - Botan::pi_ref
    linkageType: ''
    returnType: CT::Mask<uint16_t>
    signature: CT::Mask<uint16_t> ct_is_equal(const Classic_McEliece_Field_Ordering&
      other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.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::_const_time_poison
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.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/classic_mceliece/cmce_field_ordering.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::_const_time_unpoison
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.h
    functionUses: 0
    functionsReached:
    - Botan::CT::unpoison
    linkageType: ''
    returnType: void
    signature: void _const_time_unpoison() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CT::Mask<uint64_t>::conditional_swap
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:30,1
    - Dst: CT::Mask<uint64_t>::conditional_swap
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - cond_mask
    - ' a'
    - ' b'
    argTypes:
    - CT::Mask<uint64_t>
    - std::pair<T1, T2>
    - std::pair<T1, T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: Botan::CMCE_CT::cond_swap_pair
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 0
    functionsReached:
    - CT::Mask<uint64_t>::conditional_swap
    linkageType: ''
    returnType: void
    signature: void cond_swap_pair(CT::Mask<uint64_t> cond_mask, std::pair<T1, T2>&
      a, std::pair<T1, T2>& b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:39,1
    - Dst: Botan::CMCE_CT::cond_swap_pair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:40,1
    - Dst: Botan::CT::Mask::is_gt
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:42,1
    - Dst: Botan::CMCE_CT::cond_swap_pair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - a
    - i
    - k
    - l
    argTypes:
    - std::span<std::pair<T1, T2>>
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 45
    functionName: Botan::CMCE_CT::compare_and_swap_pair
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 0
    functionsReached:
    - Botan::CMCE_CT::cond_swap_pair
    - Botan::CT::Mask::is_gt
    - Botan::bigint_ct_is_lt
    linkageType: ''
    returnType: void
    signature: void compare_and_swap_pair(std::span<std::pair<T1, T2>> a, size_t i,
      size_t k, size_t l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<std::pair<T1, T2>>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:50,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:51,1
    - Dst: is_power_of_2
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:51,1
    - Dst: Botan::CMCE_CT::compare_and_swap_pair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:58,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - a
    argTypes:
    - std::span<std::pair<T1, T2>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 63
    functionName: Botan::CMCE_CT::bitonic_sort_pair
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 0
    functionsReached:
    - is_power_of_2
    - std::span<std::pair<T1, T2>>::size
    - Botan::CMCE_CT::compare_and_swap_pair
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: void
    signature: void bitonic_sort_pair(std::span<std::pair<T1, T2>> a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:67,1
    - Dst: auto::select
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: Botan::CMCE_CT::min
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 0
    functionsReached:
    - auto::select
    - Botan::bigint_ct_is_lt
    linkageType: ''
    returnType: T
    signature: T min(const T& a, const T& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CT::Mask<uint64_t>::conditional_swap
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:30,1
    - Dst: CT::Mask<uint64_t>::conditional_swap
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - cond_mask
    - ' a'
    - ' b'
    argTypes:
    - CT::Mask<uint64_t>
    - std::pair<T1, T2>
    - std::pair<T1, T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: Botan::CMCE_CT::cond_swap_pair
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 1
    functionsReached:
    - CT::Mask<uint64_t>::conditional_swap
    linkageType: ''
    returnType: void
    signature: void cond_swap_pair(CT::Mask<uint64_t> cond_mask, std::pair<T1, T2>&
      a, std::pair<T1, T2>& b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:39,1
    - Dst: Botan::CMCE_CT::cond_swap_pair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:40,1
    - Dst: Botan::CT::Mask::is_gt
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:42,1
    - Dst: Botan::CMCE_CT::cond_swap_pair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - a
    - i
    - k
    - l
    argTypes:
    - std::span<std::pair<T1, T2>>
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 45
    functionName: Botan::CMCE_CT::compare_and_swap_pair
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 1
    functionsReached:
    - Botan::CMCE_CT::cond_swap_pair
    - Botan::CT::Mask::is_gt
    - Botan::bigint_ct_is_lt
    linkageType: ''
    returnType: void
    signature: void compare_and_swap_pair(std::span<std::pair<T1, T2>> a, size_t i,
      size_t k, size_t l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<std::pair<T1, T2>>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:50,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:51,1
    - Dst: is_power_of_2
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:51,1
    - Dst: Botan::CMCE_CT::compare_and_swap_pair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:58,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - a
    argTypes:
    - std::span<std::pair<T1, T2>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 63
    functionName: Botan::CMCE_CT::bitonic_sort_pair
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 0
    functionsReached:
    - is_power_of_2
    - std::span<std::pair<T1, T2>>::size
    - Botan::CMCE_CT::compare_and_swap_pair
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: void
    signature: void bitonic_sort_pair(std::span<std::pair<T1, T2>> a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:67,1
    - Dst: auto::select
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: Botan::CMCE_CT::min
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 0
    functionsReached:
    - auto::select
    - Botan::bigint_ct_is_lt
    linkageType: ''
    returnType: T
    signature: T min(const T& a, const T& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CT::Mask<uint64_t>::conditional_swap
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:30,1
    - Dst: CT::Mask<uint64_t>::conditional_swap
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - cond_mask
    - ' a'
    - ' b'
    argTypes:
    - CT::Mask<uint64_t>
    - std::pair<T1, T2>
    - std::pair<T1, T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: Botan::CMCE_CT::cond_swap_pair
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 2
    functionsReached:
    - CT::Mask<uint64_t>::conditional_swap
    linkageType: ''
    returnType: void
    signature: void cond_swap_pair(CT::Mask<uint64_t> cond_mask, std::pair<T1, T2>&
      a, std::pair<T1, T2>& b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:39,1
    - Dst: Botan::CMCE_CT::cond_swap_pair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:40,1
    - Dst: Botan::CT::Mask::is_gt
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:42,1
    - Dst: Botan::CMCE_CT::cond_swap_pair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - a
    - i
    - k
    - l
    argTypes:
    - std::span<std::pair<T1, T2>>
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 45
    functionName: Botan::CMCE_CT::compare_and_swap_pair
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 2
    functionsReached:
    - Botan::CMCE_CT::cond_swap_pair
    - Botan::CT::Mask::is_gt
    - Botan::bigint_ct_is_lt
    linkageType: ''
    returnType: void
    signature: void compare_and_swap_pair(std::span<std::pair<T1, T2>> a, size_t i,
      size_t k, size_t l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<std::pair<T1, T2>>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:50,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:51,1
    - Dst: is_power_of_2
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:51,1
    - Dst: Botan::CMCE_CT::compare_and_swap_pair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:58,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - a
    argTypes:
    - std::span<std::pair<T1, T2>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 63
    functionName: Botan::CMCE_CT::bitonic_sort_pair
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 0
    functionsReached:
    - is_power_of_2
    - std::span<std::pair<T1, T2>>::size
    - Botan::CMCE_CT::compare_and_swap_pair
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: void
    signature: void bitonic_sort_pair(std::span<std::pair<T1, T2>> a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:67,1
    - Dst: auto::select
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: Botan::CMCE_CT::min
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 0
    functionsReached:
    - auto::select
    - Botan::bigint_ct_is_lt
    linkageType: ''
    returnType: T
    signature: T min(const T& a, const T& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CT::Mask<uint64_t>::conditional_swap
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:30,1
    - Dst: CT::Mask<uint64_t>::conditional_swap
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - cond_mask
    - ' a'
    - ' b'
    argTypes:
    - CT::Mask<uint64_t>
    - std::pair<T1, T2>
    - std::pair<T1, T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: Botan::CMCE_CT::cond_swap_pair
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 3
    functionsReached:
    - CT::Mask<uint64_t>::conditional_swap
    linkageType: ''
    returnType: void
    signature: void cond_swap_pair(CT::Mask<uint64_t> cond_mask, std::pair<T1, T2>&
      a, std::pair<T1, T2>& b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:39,1
    - Dst: Botan::CMCE_CT::cond_swap_pair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:40,1
    - Dst: Botan::CT::Mask::is_gt
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:42,1
    - Dst: Botan::CMCE_CT::cond_swap_pair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - a
    - i
    - k
    - l
    argTypes:
    - std::span<std::pair<T1, T2>>
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 45
    functionName: Botan::CMCE_CT::compare_and_swap_pair
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 3
    functionsReached:
    - Botan::CMCE_CT::cond_swap_pair
    - Botan::CT::Mask::is_gt
    - Botan::bigint_ct_is_lt
    linkageType: ''
    returnType: void
    signature: void compare_and_swap_pair(std::span<std::pair<T1, T2>> a, size_t i,
      size_t k, size_t l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<std::pair<T1, T2>>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:50,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:51,1
    - Dst: is_power_of_2
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:51,1
    - Dst: Botan::CMCE_CT::compare_and_swap_pair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:58,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - a
    argTypes:
    - std::span<std::pair<T1, T2>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 63
    functionName: Botan::CMCE_CT::bitonic_sort_pair
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 0
    functionsReached:
    - is_power_of_2
    - std::span<std::pair<T1, T2>>::size
    - Botan::CMCE_CT::compare_and_swap_pair
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: void
    signature: void bitonic_sort_pair(std::span<std::pair<T1, T2>> a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:67,1
    - Dst: auto::select
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: Botan::CMCE_CT::min
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 0
    functionsReached:
    - auto::select
    - Botan::bigint_ct_is_lt
    linkageType: ''
    returnType: T
    signature: T min(const T& a, const T& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:78,1
    - Dst: std::span<const T1>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:78,1
    - Dst: std::span<const T2>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:78,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:80,1
    - Dst: std::span<const T1>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:80,1
    - Dst: std::span<const T1>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:81,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:82,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - vec_1
    - vec_2
    argTypes:
    - std::span<const T1>
    - std::span<const T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 85
    functionName: Botan::zip
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 0
    functionsReached:
    - std::span<const T2>::size
    - std::vector::push_back
    - std::span<const T1>::size
    - std::make_pair
    - BOTAN_ARG_CHECK
    - std::vector::reserve
    linkageType: ''
    returnType: std::vector<std::pair<T1, T2>>
    signature: std::vector<std::pair<T1, T2>> zip(std::span<const T1> vec_1, std::span<const
      T2> vec_2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::pair::first::reserve
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:91,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:91,1
    - Dst: std::pair::second::reserve
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:92,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:92,1
    - Dst: std::pair::first::push_back
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:95,1
    - Dst: std::pair::second::push_back
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' vec_zipped'
    argTypes:
    - std::span<std::pair<T1, T2>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 99
    functionName: Botan::unzip
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 0
    functionsReached:
    - std::pair::second::reserve
    - std::pair::first::push_back
    - std::pair::second::push_back
    - std::pair::first::reserve
    - Botan::size
    linkageType: ''
    returnType: std::pair<secure_vector<T1>, secure_vector<T2>>
    signature: std::pair<secure_vector<T1>, secure_vector<T2>> unzip(const std::span<std::pair<T1,
      T2>>& vec_zipped)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:103,1
    - Dst: std::span<const uint32_t>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:103,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:103,1
    - Dst: transform
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:107,1
    - Dst: std::span<const uint32_t>::begin
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:107,1
    - Dst: std::span<const uint32_t>::end
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:107,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:107,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - vec
    argTypes:
    - std::span<const uint32_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 112
    functionName: Botan::enumerate
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 0
    functionsReached:
    - Botan_Tests::random_bit_generator::max
    - std::span<const uint32_t>::begin
    - std::make_pair
    - BOTAN_DEBUG_ASSERT
    - std::back_inserter
    - std::span<const uint32_t>::size
    - transform
    - std::span<const uint32_t>::end
    linkageType: ''
    returnType: std::vector<std::pair<uint32_t, uint16_t>>
    signature: std::vector<std::pair<uint32_t, uint16_t>> enumerate(std::span<const
      uint32_t> vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::enumerate
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:122,1
    - Dst: Botan::CMCE_CT::bitonic_sort_pair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:123,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:123,1
    - Dst: std::tie
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:126,1
    - Dst: CmcePermutation::get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:126,1
    - Dst: Botan::unzip
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:126,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:126,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - secure_vector<uint32_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 129
    functionName: Botan::create_pi
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 0
    functionsReached:
    - Botan::unzip
    - std::tie
    - std::make_pair
    - Botan::enumerate
    - Botan::CMCE_CT::bitonic_sort_pair
    - CmcePermutation::get
    - std::span
    linkageType: ''
    returnType: std::pair<secure_vector<uint32_t>, CmcePermutation>
    signature: std::pair<secure_vector<uint32_t>, CmcePermutation> create_pi(secure_vector<uint32_t>
      a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ct_reverse_bits
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:136,1
    - Dst: CmcePermutationElement::get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:136,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:138,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pi_elem
    - modulus
    - m
    argTypes:
    - CmcePermutationElement
    - CmceGfMod
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 139
    functionName: Botan::from_pi
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 0
    functionsReached:
    - Botan::Classic_McEliece_GF
    - Botan::ct_reverse_bits
    - CmcePermutationElement::get
    - CmceGfElem
    linkageType: ''
    returnType: Classic_McEliece_GF
    signature: Classic_McEliece_GF from_pi(CmcePermutationElement pi_elem, CmceGfMod
      modulus, size_t m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::zip
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:145,1
    - Dst: Botan::CMCE_CT::bitonic_sort_pair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:146,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:146,1
    - Dst: transform
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:149,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:149,1
    - Dst: auto::end
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:149,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - c
    - pi
    argTypes:
    - std::span<const uint16_t>
    - std::span<const uint16_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 144
    functionDepth: 3
    functionLinenumber: 144
    functionLinenumberEnd: 154
    functionName: Botan::composeinv
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 0
    functionsReached:
    - auto::end
    - std::back_inserter
    - Botan::zip
    - transform
    - Botan::CMCE_CT::bitonic_sort_pair
    - auto::begin
    - std::span
    linkageType: ''
    returnType: secure_vector<uint16_t>
    signature: secure_vector<uint16_t> composeinv(std::span<const uint16_t> c, std::span<const
      uint16_t> pi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::composeinv
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:158,1
    - Dst: Botan::composeinv
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:159,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' p'
    - ' q'
    argTypes:
    - secure_vector<uint16_t>
    - secure_vector<uint16_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 157
    functionDepth: 4
    functionLinenumber: 157
    functionLinenumberEnd: 161
    functionName: Botan::simultaneous_composeinv
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::composeinv
    linkageType: ''
    returnType: void
    signature: void simultaneous_composeinv(secure_vector<uint16_t>& p, secure_vector<uint16_t>&
      q)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:169,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:170,1
    - Dst: Botan::is_power_of_2
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:170,1
    - Dst: Botan::ceil_log2
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:171,1
    - Dst: secure_vector<uint16_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:174,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:174,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:178,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:178,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:182,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:182,1
    - Dst: std::iota
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:186,1
    - Dst: secure_vector::begin
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:186,1
    - Dst: secure_vector::end
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:186,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:186,1
    - Dst: Botan::composeinv
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:187,1
    - Dst: Botan::simultaneous_composeinv
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:189,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:192,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:193,1
    - Dst: Botan::CMCE_CT::min
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:193,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:193,1
    - Dst: Botan::simultaneous_composeinv
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:196,1
    - Dst: Botan::composeinv
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:199,1
    - Dst: Botan::simultaneous_composeinv
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:200,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:202,1
    - Dst: Botan::CMCE_CT::min
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:202,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:202,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:202,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:208,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:208,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:213,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:213,1
    - Dst: Botan::composeinv
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:216,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:220,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:220,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:225,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:225,1
    - Dst: Botan::composeinv
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:228,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:233,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:233,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:234,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:234,1
    - Dst: Botan::generate_control_bits_internal
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:237,1
    - Dst: Botan::generate_control_bits_internal
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:238,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:240,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:240,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:241,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:242,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:242,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:243,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:243,1
    - Dst: Botan::concat
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:246,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 1
    argNames:
    - ' pi'
    argTypes:
    - secure_vector<uint16_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 168
    functionDepth: 5
    functionLinenumber: 168
    functionLinenumberEnd: 247
    functionName: Botan::generate_control_bits_internal
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - static_cast<uint16_t>
    - static_cast<size_t>
    - auto::size
    - auto::at
    - Botan::CMCE_CT::min
    - Botan::simultaneous_composeinv
    - Botan::ceil_log2
    - Botan::composeinv
    - secure_vector::begin
    - secure_vector::at
    - std::iota
    - secure_vector<uint16_t>
    - Botan::generate_control_bits_internal
    - Botan::concat
    - secure_vector::end
    - Botan::is_power_of_2
    - Botan::size
    - at
    linkageType: ''
    returnType: secure_vector<uint16_t>
    signature: secure_vector<uint16_t> generate_control_bits_internal(const secure_vector<uint16_t>&
      pi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::Mask::cleared
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:250,1
    - Dst: std::span<const uint32_t>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:251,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:252,1
    - Dst: CT::Mask::as_choice
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - vec
    argTypes:
    - std::span<const uint32_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 255
    functionName: Botan::ct_has_adjacent_duplicates
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint32_t>::size
    - CT::Mask::as_choice
    - Botan::ct_is_equal
    - Botan::CT::Mask::cleared
    linkageType: ''
    returnType: CT::Choice
    signature: CT::Choice ct_has_adjacent_duplicates(std::span<const uint32_t> vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:78,1
    - Dst: std::span<const T1>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:78,1
    - Dst: std::span<const T2>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:78,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:80,1
    - Dst: std::span<const T1>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:80,1
    - Dst: std::span<const T1>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:81,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:82,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - vec_1
    - vec_2
    argTypes:
    - std::span<const T1>
    - std::span<const T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 85
    functionName: Botan::zip
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 1
    functionsReached:
    - std::span<const T2>::size
    - std::vector::push_back
    - std::span<const T1>::size
    - std::make_pair
    - BOTAN_ARG_CHECK
    - std::vector::reserve
    linkageType: ''
    returnType: std::vector<std::pair<T1, T2>>
    signature: std::vector<std::pair<T1, T2>> zip(std::span<const T1> vec_1, std::span<const
      T2> vec_2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::pair::first::reserve
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:91,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:91,1
    - Dst: std::pair::second::reserve
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:92,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:92,1
    - Dst: std::pair::first::push_back
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:95,1
    - Dst: std::pair::second::push_back
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' vec_zipped'
    argTypes:
    - std::span<std::pair<T1, T2>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 99
    functionName: Botan::unzip
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 1
    functionsReached:
    - std::pair::second::reserve
    - std::pair::first::push_back
    - std::pair::second::push_back
    - std::pair::first::reserve
    - Botan::size
    linkageType: ''
    returnType: std::pair<secure_vector<T1>, secure_vector<T2>>
    signature: std::pair<secure_vector<T1>, secure_vector<T2>> unzip(const std::span<std::pair<T1,
      T2>>& vec_zipped)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:103,1
    - Dst: std::span<const uint32_t>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:103,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:103,1
    - Dst: transform
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:107,1
    - Dst: std::span<const uint32_t>::begin
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:107,1
    - Dst: std::span<const uint32_t>::end
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:107,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:107,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - vec
    argTypes:
    - std::span<const uint32_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 112
    functionName: Botan::enumerate
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 1
    functionsReached:
    - Botan_Tests::random_bit_generator::max
    - std::span<const uint32_t>::begin
    - std::make_pair
    - BOTAN_DEBUG_ASSERT
    - std::back_inserter
    - std::span<const uint32_t>::size
    - transform
    - std::span<const uint32_t>::end
    linkageType: ''
    returnType: std::vector<std::pair<uint32_t, uint16_t>>
    signature: std::vector<std::pair<uint32_t, uint16_t>> enumerate(std::span<const
      uint32_t> vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::enumerate
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:122,1
    - Dst: Botan::CMCE_CT::bitonic_sort_pair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:123,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:123,1
    - Dst: std::tie
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:126,1
    - Dst: CmcePermutation::get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:126,1
    - Dst: Botan::unzip
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:126,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:126,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - secure_vector<uint32_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 129
    functionName: Botan::create_pi
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 0
    functionsReached:
    - Botan::unzip
    - std::tie
    - std::make_pair
    - Botan::enumerate
    - Botan::CMCE_CT::bitonic_sort_pair
    - CmcePermutation::get
    - std::span
    linkageType: ''
    returnType: std::pair<secure_vector<uint32_t>, CmcePermutation>
    signature: std::pair<secure_vector<uint32_t>, CmcePermutation> create_pi(secure_vector<uint32_t>
      a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ct_reverse_bits
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:136,1
    - Dst: CmcePermutationElement::get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:136,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:138,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pi_elem
    - modulus
    - m
    argTypes:
    - CmcePermutationElement
    - CmceGfMod
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 139
    functionName: Botan::from_pi
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 0
    functionsReached:
    - Botan::Classic_McEliece_GF
    - Botan::ct_reverse_bits
    - CmcePermutationElement::get
    - CmceGfElem
    linkageType: ''
    returnType: Classic_McEliece_GF
    signature: Classic_McEliece_GF from_pi(CmcePermutationElement pi_elem, CmceGfMod
      modulus, size_t m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::zip
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:145,1
    - Dst: Botan::CMCE_CT::bitonic_sort_pair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:146,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:146,1
    - Dst: transform
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:149,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:149,1
    - Dst: auto::end
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:149,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - c
    - pi
    argTypes:
    - std::span<const uint16_t>
    - std::span<const uint16_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 144
    functionDepth: 3
    functionLinenumber: 144
    functionLinenumberEnd: 154
    functionName: Botan::composeinv
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 2
    functionsReached:
    - auto::end
    - std::back_inserter
    - Botan::zip
    - transform
    - Botan::CMCE_CT::bitonic_sort_pair
    - auto::begin
    - std::span
    linkageType: ''
    returnType: secure_vector<uint16_t>
    signature: secure_vector<uint16_t> composeinv(std::span<const uint16_t> c, std::span<const
      uint16_t> pi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::composeinv
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:158,1
    - Dst: Botan::composeinv
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:159,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' p'
    - ' q'
    argTypes:
    - secure_vector<uint16_t>
    - secure_vector<uint16_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 157
    functionDepth: 4
    functionLinenumber: 157
    functionLinenumberEnd: 161
    functionName: Botan::simultaneous_composeinv
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 1
    functionsReached:
    - std::move
    - Botan::composeinv
    linkageType: ''
    returnType: void
    signature: void simultaneous_composeinv(secure_vector<uint16_t>& p, secure_vector<uint16_t>&
      q)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:169,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:170,1
    - Dst: Botan::is_power_of_2
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:170,1
    - Dst: Botan::ceil_log2
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:171,1
    - Dst: secure_vector<uint16_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:174,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:174,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:178,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:178,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:182,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:182,1
    - Dst: std::iota
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:186,1
    - Dst: secure_vector::begin
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:186,1
    - Dst: secure_vector::end
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:186,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:186,1
    - Dst: Botan::composeinv
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:187,1
    - Dst: Botan::simultaneous_composeinv
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:189,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:192,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:193,1
    - Dst: Botan::CMCE_CT::min
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:193,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:193,1
    - Dst: Botan::simultaneous_composeinv
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:196,1
    - Dst: Botan::composeinv
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:199,1
    - Dst: Botan::simultaneous_composeinv
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:200,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:202,1
    - Dst: Botan::CMCE_CT::min
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:202,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:202,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:202,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:208,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:208,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:213,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:213,1
    - Dst: Botan::composeinv
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:216,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:220,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:220,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:225,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:225,1
    - Dst: Botan::composeinv
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:228,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:233,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:233,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:234,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:234,1
    - Dst: Botan::generate_control_bits_internal
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:237,1
    - Dst: Botan::generate_control_bits_internal
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:238,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:240,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:240,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:241,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:242,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:242,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:243,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:243,1
    - Dst: Botan::concat
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:246,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 1
    argNames:
    - ' pi'
    argTypes:
    - secure_vector<uint16_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 168
    functionDepth: 5
    functionLinenumber: 168
    functionLinenumberEnd: 247
    functionName: Botan::generate_control_bits_internal
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - static_cast<uint16_t>
    - static_cast<size_t>
    - auto::size
    - auto::at
    - Botan::CMCE_CT::min
    - Botan::simultaneous_composeinv
    - Botan::ceil_log2
    - Botan::composeinv
    - secure_vector::begin
    - secure_vector::at
    - std::iota
    - secure_vector<uint16_t>
    - Botan::generate_control_bits_internal
    - Botan::concat
    - secure_vector::end
    - Botan::is_power_of_2
    - Botan::size
    - at
    linkageType: ''
    returnType: secure_vector<uint16_t>
    signature: secure_vector<uint16_t> generate_control_bits_internal(const secure_vector<uint16_t>&
      pi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::Mask::cleared
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:250,1
    - Dst: std::span<const uint32_t>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:251,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:252,1
    - Dst: CT::Mask::as_choice
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - vec
    argTypes:
    - std::span<const uint32_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 255
    functionName: Botan::ct_has_adjacent_duplicates
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint32_t>::size
    - CT::Mask::as_choice
    - Botan::ct_is_equal
    - Botan::CT::Mask::cleared
    linkageType: ''
    returnType: CT::Choice
    signature: CT::Choice ct_has_adjacent_duplicates(std::span<const uint32_t> vec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:261,1
    - Dst: StrongSpan<const CmceOrderingBits>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:261,1
    - Dst: sigma2
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:261,1
    - Dst: q
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:261,1
    - Dst: load_le<secure_vector<uint32_t>>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:263,1
    - Dst: create_pi
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:264,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:264,1
    - Dst: ct_has_adjacent_duplicates
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:265,1
    - Dst: Classic_McEliece_Field_Ordering
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:269,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:269,1
    - Dst: poly_f
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' params'
    - random_bits
    argTypes:
    - Classic_McEliece_Parameters
    - StrongSpan<const CmceOrderingBits>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 270
    functionName: Botan::Classic_McEliece_Field_Ordering::create_field_ordering
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 6
    functionsReached:
    - std::move
    - BOTAN_ARG_CHECK
    - ct_has_adjacent_duplicates
    - sigma2
    - create_pi
    - Classic_McEliece_Field_Ordering
    - poly_f
    - StrongSpan<const CmceOrderingBits>::size
    - load_le<secure_vector<uint32_t>>
    - q
    linkageType: ''
    returnType: std::optional<Classic_McEliece_Field_Ordering>
    signature: "std::optional<Classic_McEliece_Field_Ordering> Classic_McEliece_Field_Ordering::create_field_ordering(\n
      \  const Classic_McEliece_Parameters& params, StrongSpan<const CmceOrderingBits>
      random_bits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:273,1
    - Dst: get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:273,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:274,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:274,1
    - Dst: transform
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:278,1
    - Dst: begin
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:278,1
    - Dst: begin
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:278,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:278,1
    - Dst: from_pi
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:279,1
    - Dst: CmcePermutationElement
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:279,1
    - Dst: Botan::log_q_from_mod
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 283
    functionName: Botan::Classic_McEliece_Field_Ordering::alphas
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::log_q_from_mod
    - size
    - std::back_inserter
    - transform
    - get
    - CmcePermutationElement
    - begin
    - from_pi
    linkageType: ''
    returnType: std::vector<Classic_McEliece_GF>
    signature: std::vector<Classic_McEliece_GF> Classic_McEliece_Field_Ordering::alphas(size_t
      n) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: generate_control_bits_internal
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:287,1
    - Dst: get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:287,1
    - Dst: secure_bitvector
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:288,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:288,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:289,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:290,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 294
    functionName: Botan::Classic_McEliece_Field_Ordering::alphas_control_bits
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 0
    functionsReached:
    - generate_control_bits_internal
    - auto::at
    - secure_bitvector
    - get
    - auto::size
    linkageType: ''
    returnType: secure_bitvector
    signature: secure_bitvector Classic_McEliece_Field_Ordering::alphas_control_bits()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:300,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:300,1
    - Dst: m
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:300,1
    - Dst: m
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:300,1
    - Dst: m
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:301,1
    - Dst: std::iota
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:303,1
    - Dst: CmcePermutation::begin
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:303,1
    - Dst: CmcePermutation::end
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:303,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:303,1
    - Dst: m
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:304,1
    - Dst: min
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:305,1
    - Dst: m
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:305,1
    - Dst: Botan::CT::Mask::expand_bool
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:308,1
    - Dst: auto::conditional_swap
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:309,1
    - Dst: Classic_McEliece_Field_Ordering
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:313,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:313,1
    - Dst: poly_f
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:313,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' params'
    - ' control_bits'
    argTypes:
    - Classic_McEliece_Parameters
    - secure_bitvector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 314
    functionName: Botan::Classic_McEliece_Field_Ordering::create_from_control_bits
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 4
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - static_cast<uint16_t>
    - std::move
    - min
    - size
    - CmcePermutation::begin
    - Classic_McEliece_Field_Ordering
    - poly_f
    - std::iota
    - CmcePermutation::end
    - m
    - Botan::CT::Mask::expand_bool
    - auto::conditional_swap
    linkageType: ''
    returnType: Classic_McEliece_Field_Ordering
    signature: "Classic_McEliece_Field_Ordering Classic_McEliece_Field_Ordering::create_from_control_bits(\n
      \  const Classic_McEliece_Parameters& params, const secure_bitvector& control_bits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:318,1
    - Dst: Botan::mu
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:318,1
    - Dst: Botan::mu
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:320,1
    - Dst: Botan::EC_Group_Data::point_hash_to_curve_nu
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:322,1
    - Dst: Botan::CT::Mask::expand_bool
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:323,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:323,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:324,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:325,1
    - Dst: conditional_swap
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:326,1
    - Dst: get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:327,1
    - Dst: get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' params'
    - ' pivots'
    argTypes:
    - Classic_McEliece_Parameters
    - CmceColumnSelection
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 330
    functionName: Botan::Classic_McEliece_Field_Ordering::permute_with_pivots
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 0
    functionsReached:
    - conditional_swap
    - Botan::mu
    - Botan::EC_Group_Data::point_hash_to_curve_nu
    - pk_no_rows
    - Botan::ct_is_equal
    - get
    - Botan::CT::Mask::expand_bool
    - at
    - auto::if_set_return
    linkageType: ''
    returnType: void
    signature: "void Classic_McEliece_Field_Ordering::permute_with_pivots(const Classic_McEliece_Parameters&
      params,\n                                                          const CmceColumnSelection&
      pivots)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CT::Mask<uint64_t>::conditional_swap
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:30,1
    - Dst: CT::Mask<uint64_t>::conditional_swap
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - cond_mask
    - ' a'
    - ' b'
    argTypes:
    - CT::Mask<uint64_t>
    - std::pair<T1, T2>
    - std::pair<T1, T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: Botan::CMCE_CT::cond_swap_pair
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 4
    functionsReached:
    - CT::Mask<uint64_t>::conditional_swap
    linkageType: ''
    returnType: void
    signature: void cond_swap_pair(CT::Mask<uint64_t> cond_mask, std::pair<T1, T2>&
      a, std::pair<T1, T2>& b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:39,1
    - Dst: Botan::CMCE_CT::cond_swap_pair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:40,1
    - Dst: Botan::CT::Mask::is_gt
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:42,1
    - Dst: Botan::CMCE_CT::cond_swap_pair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - a
    - i
    - k
    - l
    argTypes:
    - std::span<std::pair<T1, T2>>
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 45
    functionName: Botan::CMCE_CT::compare_and_swap_pair
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 4
    functionsReached:
    - Botan::CMCE_CT::cond_swap_pair
    - Botan::CT::Mask::is_gt
    - Botan::bigint_ct_is_lt
    linkageType: ''
    returnType: void
    signature: void compare_and_swap_pair(std::span<std::pair<T1, T2>> a, size_t i,
      size_t k, size_t l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<std::pair<T1, T2>>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:50,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:51,1
    - Dst: is_power_of_2
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:51,1
    - Dst: Botan::CMCE_CT::compare_and_swap_pair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:58,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - a
    argTypes:
    - std::span<std::pair<T1, T2>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 63
    functionName: Botan::CMCE_CT::bitonic_sort_pair
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 4
    functionsReached:
    - is_power_of_2
    - std::span<std::pair<T1, T2>>::size
    - Botan::CMCE_CT::compare_and_swap_pair
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: void
    signature: void bitonic_sort_pair(std::span<std::pair<T1, T2>> a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:67,1
    - Dst: auto::select
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: Botan::CMCE_CT::min
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 2
    functionsReached:
    - auto::select
    - Botan::bigint_ct_is_lt
    linkageType: ''
    returnType: T
    signature: T min(const T& a, const T& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CT::Mask<uint64_t>::conditional_swap
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:30,1
    - Dst: CT::Mask<uint64_t>::conditional_swap
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - cond_mask
    - ' a'
    - ' b'
    argTypes:
    - CT::Mask<uint64_t>
    - std::pair<T1, T2>
    - std::pair<T1, T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: Botan::CMCE_CT::cond_swap_pair
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 5
    functionsReached:
    - CT::Mask<uint64_t>::conditional_swap
    linkageType: ''
    returnType: void
    signature: void cond_swap_pair(CT::Mask<uint64_t> cond_mask, std::pair<T1, T2>&
      a, std::pair<T1, T2>& b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:39,1
    - Dst: Botan::CMCE_CT::cond_swap_pair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:40,1
    - Dst: Botan::CT::Mask::is_gt
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:42,1
    - Dst: Botan::CMCE_CT::cond_swap_pair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - a
    - i
    - k
    - l
    argTypes:
    - std::span<std::pair<T1, T2>>
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 45
    functionName: Botan::CMCE_CT::compare_and_swap_pair
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 5
    functionsReached:
    - Botan::CMCE_CT::cond_swap_pair
    - Botan::CT::Mask::is_gt
    - Botan::bigint_ct_is_lt
    linkageType: ''
    returnType: void
    signature: void compare_and_swap_pair(std::span<std::pair<T1, T2>> a, size_t i,
      size_t k, size_t l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<std::pair<T1, T2>>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:50,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:51,1
    - Dst: is_power_of_2
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:51,1
    - Dst: Botan::CMCE_CT::compare_and_swap_pair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:58,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - a
    argTypes:
    - std::span<std::pair<T1, T2>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 63
    functionName: Botan::CMCE_CT::bitonic_sort_pair
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 4
    functionsReached:
    - is_power_of_2
    - std::span<std::pair<T1, T2>>::size
    - Botan::CMCE_CT::compare_and_swap_pair
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: void
    signature: void bitonic_sort_pair(std::span<std::pair<T1, T2>> a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:67,1
    - Dst: auto::select
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: Botan::CMCE_CT::min
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 2
    functionsReached:
    - auto::select
    - Botan::bigint_ct_is_lt
    linkageType: ''
    returnType: T
    signature: T min(const T& a, const T& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CT::Mask<uint64_t>::conditional_swap
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:30,1
    - Dst: CT::Mask<uint64_t>::conditional_swap
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - cond_mask
    - ' a'
    - ' b'
    argTypes:
    - CT::Mask<uint64_t>
    - std::pair<T1, T2>
    - std::pair<T1, T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: Botan::CMCE_CT::cond_swap_pair
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 6
    functionsReached:
    - CT::Mask<uint64_t>::conditional_swap
    linkageType: ''
    returnType: void
    signature: void cond_swap_pair(CT::Mask<uint64_t> cond_mask, std::pair<T1, T2>&
      a, std::pair<T1, T2>& b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:39,1
    - Dst: Botan::CMCE_CT::cond_swap_pair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:40,1
    - Dst: Botan::CT::Mask::is_gt
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:42,1
    - Dst: Botan::CMCE_CT::cond_swap_pair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - a
    - i
    - k
    - l
    argTypes:
    - std::span<std::pair<T1, T2>>
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 45
    functionName: Botan::CMCE_CT::compare_and_swap_pair
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 6
    functionsReached:
    - Botan::CMCE_CT::cond_swap_pair
    - Botan::CT::Mask::is_gt
    - Botan::bigint_ct_is_lt
    linkageType: ''
    returnType: void
    signature: void compare_and_swap_pair(std::span<std::pair<T1, T2>> a, size_t i,
      size_t k, size_t l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<std::pair<T1, T2>>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:50,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:51,1
    - Dst: is_power_of_2
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:51,1
    - Dst: Botan::CMCE_CT::compare_and_swap_pair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:58,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - a
    argTypes:
    - std::span<std::pair<T1, T2>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 63
    functionName: Botan::CMCE_CT::bitonic_sort_pair
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 4
    functionsReached:
    - is_power_of_2
    - std::span<std::pair<T1, T2>>::size
    - Botan::CMCE_CT::compare_and_swap_pair
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: void
    signature: void bitonic_sort_pair(std::span<std::pair<T1, T2>> a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:67,1
    - Dst: auto::select
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: Botan::CMCE_CT::min
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 2
    functionsReached:
    - auto::select
    - Botan::bigint_ct_is_lt
    linkageType: ''
    returnType: T
    signature: T min(const T& a, const T& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CT::Mask<uint64_t>::conditional_swap
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:30,1
    - Dst: CT::Mask<uint64_t>::conditional_swap
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - cond_mask
    - ' a'
    - ' b'
    argTypes:
    - CT::Mask<uint64_t>
    - std::pair<T1, T2>
    - std::pair<T1, T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: Botan::CMCE_CT::cond_swap_pair
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 7
    functionsReached:
    - CT::Mask<uint64_t>::conditional_swap
    linkageType: ''
    returnType: void
    signature: void cond_swap_pair(CT::Mask<uint64_t> cond_mask, std::pair<T1, T2>&
      a, std::pair<T1, T2>& b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:39,1
    - Dst: Botan::CMCE_CT::cond_swap_pair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:40,1
    - Dst: Botan::CT::Mask::is_gt
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:42,1
    - Dst: Botan::CMCE_CT::cond_swap_pair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - a
    - i
    - k
    - l
    argTypes:
    - std::span<std::pair<T1, T2>>
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 45
    functionName: Botan::CMCE_CT::compare_and_swap_pair
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 7
    functionsReached:
    - Botan::CMCE_CT::cond_swap_pair
    - Botan::CT::Mask::is_gt
    - Botan::bigint_ct_is_lt
    linkageType: ''
    returnType: void
    signature: void compare_and_swap_pair(std::span<std::pair<T1, T2>> a, size_t i,
      size_t k, size_t l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::span<std::pair<T1, T2>>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:50,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:51,1
    - Dst: is_power_of_2
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:51,1
    - Dst: Botan::CMCE_CT::compare_and_swap_pair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:58,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - a
    argTypes:
    - std::span<std::pair<T1, T2>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 63
    functionName: Botan::CMCE_CT::bitonic_sort_pair
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 4
    functionsReached:
    - is_power_of_2
    - std::span<std::pair<T1, T2>>::size
    - Botan::CMCE_CT::compare_and_swap_pair
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: void
    signature: void bitonic_sort_pair(std::span<std::pair<T1, T2>> a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::bigint_ct_is_lt
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:67,1
    - Dst: auto::select
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: Botan::CMCE_CT::min
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 2
    functionsReached:
    - auto::select
    - Botan::bigint_ct_is_lt
    linkageType: ''
    returnType: T
    signature: T min(const T& a, const T& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:78,1
    - Dst: std::span<const T1>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:78,1
    - Dst: std::span<const T2>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:78,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:80,1
    - Dst: std::span<const T1>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:80,1
    - Dst: std::span<const T1>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:81,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:82,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - vec_1
    - vec_2
    argTypes:
    - std::span<const T1>
    - std::span<const T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 85
    functionName: Botan::zip
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 2
    functionsReached:
    - std::span<const T2>::size
    - std::vector::push_back
    - std::span<const T1>::size
    - std::make_pair
    - BOTAN_ARG_CHECK
    - std::vector::reserve
    linkageType: ''
    returnType: std::vector<std::pair<T1, T2>>
    signature: std::vector<std::pair<T1, T2>> zip(std::span<const T1> vec_1, std::span<const
      T2> vec_2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::pair::first::reserve
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:91,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:91,1
    - Dst: std::pair::second::reserve
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:92,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:92,1
    - Dst: std::pair::first::push_back
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:95,1
    - Dst: std::pair::second::push_back
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' vec_zipped'
    argTypes:
    - std::span<std::pair<T1, T2>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 99
    functionName: Botan::unzip
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 2
    functionsReached:
    - std::pair::second::reserve
    - std::pair::first::push_back
    - std::pair::second::push_back
    - std::pair::first::reserve
    - Botan::size
    linkageType: ''
    returnType: std::pair<secure_vector<T1>, secure_vector<T2>>
    signature: std::pair<secure_vector<T1>, secure_vector<T2>> unzip(const std::span<std::pair<T1,
      T2>>& vec_zipped)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:103,1
    - Dst: std::span<const uint32_t>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:103,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:103,1
    - Dst: transform
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:107,1
    - Dst: std::span<const uint32_t>::begin
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:107,1
    - Dst: std::span<const uint32_t>::end
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:107,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:107,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - vec
    argTypes:
    - std::span<const uint32_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 112
    functionName: Botan::enumerate
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 2
    functionsReached:
    - Botan_Tests::random_bit_generator::max
    - std::span<const uint32_t>::begin
    - std::make_pair
    - BOTAN_DEBUG_ASSERT
    - std::back_inserter
    - std::span<const uint32_t>::size
    - transform
    - std::span<const uint32_t>::end
    linkageType: ''
    returnType: std::vector<std::pair<uint32_t, uint16_t>>
    signature: std::vector<std::pair<uint32_t, uint16_t>> enumerate(std::span<const
      uint32_t> vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::enumerate
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:122,1
    - Dst: Botan::CMCE_CT::bitonic_sort_pair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:123,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:123,1
    - Dst: std::tie
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:126,1
    - Dst: CmcePermutation::get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:126,1
    - Dst: Botan::unzip
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:126,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:126,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - secure_vector<uint32_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 129
    functionName: Botan::create_pi
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 0
    functionsReached:
    - Botan::unzip
    - std::tie
    - std::make_pair
    - Botan::enumerate
    - Botan::CMCE_CT::bitonic_sort_pair
    - CmcePermutation::get
    - std::span
    linkageType: ''
    returnType: std::pair<secure_vector<uint32_t>, CmcePermutation>
    signature: std::pair<secure_vector<uint32_t>, CmcePermutation> create_pi(secure_vector<uint32_t>
      a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ct_reverse_bits
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:136,1
    - Dst: CmcePermutationElement::get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:136,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:138,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pi_elem
    - modulus
    - m
    argTypes:
    - CmcePermutationElement
    - CmceGfMod
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 139
    functionName: Botan::from_pi
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 0
    functionsReached:
    - Botan::Classic_McEliece_GF
    - Botan::ct_reverse_bits
    - CmcePermutationElement::get
    - CmceGfElem
    linkageType: ''
    returnType: Classic_McEliece_GF
    signature: Classic_McEliece_GF from_pi(CmcePermutationElement pi_elem, CmceGfMod
      modulus, size_t m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::zip
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:145,1
    - Dst: Botan::CMCE_CT::bitonic_sort_pair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:146,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:146,1
    - Dst: transform
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:149,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:149,1
    - Dst: auto::end
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:149,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - c
    - pi
    argTypes:
    - std::span<const uint16_t>
    - std::span<const uint16_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 144
    functionDepth: 3
    functionLinenumber: 144
    functionLinenumberEnd: 154
    functionName: Botan::composeinv
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 4
    functionsReached:
    - auto::end
    - std::back_inserter
    - Botan::zip
    - transform
    - Botan::CMCE_CT::bitonic_sort_pair
    - auto::begin
    - std::span
    linkageType: ''
    returnType: secure_vector<uint16_t>
    signature: secure_vector<uint16_t> composeinv(std::span<const uint16_t> c, std::span<const
      uint16_t> pi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::composeinv
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:158,1
    - Dst: Botan::composeinv
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:159,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' p'
    - ' q'
    argTypes:
    - secure_vector<uint16_t>
    - secure_vector<uint16_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 157
    functionDepth: 4
    functionLinenumber: 157
    functionLinenumberEnd: 161
    functionName: Botan::simultaneous_composeinv
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 2
    functionsReached:
    - std::move
    - Botan::composeinv
    linkageType: ''
    returnType: void
    signature: void simultaneous_composeinv(secure_vector<uint16_t>& p, secure_vector<uint16_t>&
      q)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:169,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:170,1
    - Dst: Botan::is_power_of_2
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:170,1
    - Dst: Botan::ceil_log2
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:171,1
    - Dst: secure_vector<uint16_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:174,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:174,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:178,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:178,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:182,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:182,1
    - Dst: std::iota
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:186,1
    - Dst: secure_vector::begin
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:186,1
    - Dst: secure_vector::end
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:186,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:186,1
    - Dst: Botan::composeinv
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:187,1
    - Dst: Botan::simultaneous_composeinv
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:189,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:192,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:193,1
    - Dst: Botan::CMCE_CT::min
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:193,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:193,1
    - Dst: Botan::simultaneous_composeinv
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:196,1
    - Dst: Botan::composeinv
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:199,1
    - Dst: Botan::simultaneous_composeinv
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:200,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:202,1
    - Dst: Botan::CMCE_CT::min
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:202,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:202,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:202,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:208,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:208,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:213,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:213,1
    - Dst: Botan::composeinv
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:216,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:220,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:220,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:225,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:225,1
    - Dst: Botan::composeinv
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:228,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:233,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:233,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:234,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:234,1
    - Dst: Botan::generate_control_bits_internal
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:237,1
    - Dst: Botan::generate_control_bits_internal
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:238,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:240,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:240,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:241,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:242,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:242,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:243,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:243,1
    - Dst: Botan::concat
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:246,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 1
    argNames:
    - ' pi'
    argTypes:
    - secure_vector<uint16_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 168
    functionDepth: 5
    functionLinenumber: 168
    functionLinenumberEnd: 247
    functionName: Botan::generate_control_bits_internal
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 3
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - static_cast<uint16_t>
    - static_cast<size_t>
    - auto::size
    - auto::at
    - Botan::CMCE_CT::min
    - Botan::simultaneous_composeinv
    - Botan::ceil_log2
    - Botan::composeinv
    - secure_vector::begin
    - secure_vector::at
    - std::iota
    - secure_vector<uint16_t>
    - Botan::generate_control_bits_internal
    - Botan::concat
    - secure_vector::end
    - Botan::is_power_of_2
    - Botan::size
    - at
    linkageType: ''
    returnType: secure_vector<uint16_t>
    signature: secure_vector<uint16_t> generate_control_bits_internal(const secure_vector<uint16_t>&
      pi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::Mask::cleared
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:250,1
    - Dst: std::span<const uint32_t>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:251,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:252,1
    - Dst: CT::Mask::as_choice
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - vec
    argTypes:
    - std::span<const uint32_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 255
    functionName: Botan::ct_has_adjacent_duplicates
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint32_t>::size
    - CT::Mask::as_choice
    - Botan::ct_is_equal
    - Botan::CT::Mask::cleared
    linkageType: ''
    returnType: CT::Choice
    signature: CT::Choice ct_has_adjacent_duplicates(std::span<const uint32_t> vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:78,1
    - Dst: std::span<const T1>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:78,1
    - Dst: std::span<const T2>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:78,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:80,1
    - Dst: std::span<const T1>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:80,1
    - Dst: std::span<const T1>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:81,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:82,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:82,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - vec_1
    - vec_2
    argTypes:
    - std::span<const T1>
    - std::span<const T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 85
    functionName: Botan::zip
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 3
    functionsReached:
    - std::span<const T2>::size
    - std::vector::push_back
    - std::span<const T1>::size
    - std::make_pair
    - BOTAN_ARG_CHECK
    - std::vector::reserve
    linkageType: ''
    returnType: std::vector<std::pair<T1, T2>>
    signature: std::vector<std::pair<T1, T2>> zip(std::span<const T1> vec_1, std::span<const
      T2> vec_2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::pair::first::reserve
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:91,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:91,1
    - Dst: std::pair::second::reserve
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:92,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:92,1
    - Dst: std::pair::first::push_back
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:95,1
    - Dst: std::pair::second::push_back
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' vec_zipped'
    argTypes:
    - std::span<std::pair<T1, T2>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 99
    functionName: Botan::unzip
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 3
    functionsReached:
    - std::pair::second::reserve
    - std::pair::first::push_back
    - std::pair::second::push_back
    - std::pair::first::reserve
    - Botan::size
    linkageType: ''
    returnType: std::pair<secure_vector<T1>, secure_vector<T2>>
    signature: std::pair<secure_vector<T1>, secure_vector<T2>> unzip(const std::span<std::pair<T1,
      T2>>& vec_zipped)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:103,1
    - Dst: std::span<const uint32_t>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:103,1
    - Dst: Botan_Tests::random_bit_generator::max
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:103,1
    - Dst: transform
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:107,1
    - Dst: std::span<const uint32_t>::begin
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:107,1
    - Dst: std::span<const uint32_t>::end
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:107,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:107,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - vec
    argTypes:
    - std::span<const uint32_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 112
    functionName: Botan::enumerate
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 3
    functionsReached:
    - Botan_Tests::random_bit_generator::max
    - std::span<const uint32_t>::begin
    - std::make_pair
    - BOTAN_DEBUG_ASSERT
    - std::back_inserter
    - std::span<const uint32_t>::size
    - transform
    - std::span<const uint32_t>::end
    linkageType: ''
    returnType: std::vector<std::pair<uint32_t, uint16_t>>
    signature: std::vector<std::pair<uint32_t, uint16_t>> enumerate(std::span<const
      uint32_t> vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::enumerate
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:122,1
    - Dst: Botan::CMCE_CT::bitonic_sort_pair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:123,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:123,1
    - Dst: std::tie
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:126,1
    - Dst: CmcePermutation::get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:126,1
    - Dst: Botan::unzip
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:126,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:126,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - secure_vector<uint32_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 121
    functionDepth: 3
    functionLinenumber: 121
    functionLinenumberEnd: 129
    functionName: Botan::create_pi
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 0
    functionsReached:
    - Botan::unzip
    - std::tie
    - std::make_pair
    - Botan::enumerate
    - Botan::CMCE_CT::bitonic_sort_pair
    - CmcePermutation::get
    - std::span
    linkageType: ''
    returnType: std::pair<secure_vector<uint32_t>, CmcePermutation>
    signature: std::pair<secure_vector<uint32_t>, CmcePermutation> create_pi(secure_vector<uint32_t>
      a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ct_reverse_bits
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:136,1
    - Dst: CmcePermutationElement::get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:136,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:138,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - pi_elem
    - modulus
    - m
    argTypes:
    - CmcePermutationElement
    - CmceGfMod
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 139
    functionName: Botan::from_pi
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 0
    functionsReached:
    - Botan::Classic_McEliece_GF
    - Botan::ct_reverse_bits
    - CmcePermutationElement::get
    - CmceGfElem
    linkageType: ''
    returnType: Classic_McEliece_GF
    signature: Classic_McEliece_GF from_pi(CmcePermutationElement pi_elem, CmceGfMod
      modulus, size_t m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::zip
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:145,1
    - Dst: Botan::CMCE_CT::bitonic_sort_pair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:146,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:146,1
    - Dst: transform
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:149,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:149,1
    - Dst: auto::end
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:149,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - c
    - pi
    argTypes:
    - std::span<const uint16_t>
    - std::span<const uint16_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 144
    functionDepth: 3
    functionLinenumber: 144
    functionLinenumberEnd: 154
    functionName: Botan::composeinv
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 6
    functionsReached:
    - auto::end
    - std::back_inserter
    - Botan::zip
    - transform
    - Botan::CMCE_CT::bitonic_sort_pair
    - auto::begin
    - std::span
    linkageType: ''
    returnType: secure_vector<uint16_t>
    signature: secure_vector<uint16_t> composeinv(std::span<const uint16_t> c, std::span<const
      uint16_t> pi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::composeinv
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:158,1
    - Dst: Botan::composeinv
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:159,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' p'
    - ' q'
    argTypes:
    - secure_vector<uint16_t>
    - secure_vector<uint16_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 157
    functionDepth: 4
    functionLinenumber: 157
    functionLinenumberEnd: 161
    functionName: Botan::simultaneous_composeinv
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 3
    functionsReached:
    - std::move
    - Botan::composeinv
    linkageType: ''
    returnType: void
    signature: void simultaneous_composeinv(secure_vector<uint16_t>& p, secure_vector<uint16_t>&
      q)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:169,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:170,1
    - Dst: Botan::is_power_of_2
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:170,1
    - Dst: Botan::ceil_log2
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:171,1
    - Dst: secure_vector<uint16_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:174,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:174,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:178,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:178,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:182,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:182,1
    - Dst: std::iota
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:186,1
    - Dst: secure_vector::begin
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:186,1
    - Dst: secure_vector::end
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:186,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:186,1
    - Dst: Botan::composeinv
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:187,1
    - Dst: Botan::simultaneous_composeinv
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:189,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:192,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:193,1
    - Dst: Botan::CMCE_CT::min
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:193,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:193,1
    - Dst: Botan::simultaneous_composeinv
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:196,1
    - Dst: Botan::composeinv
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:199,1
    - Dst: Botan::simultaneous_composeinv
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:200,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:202,1
    - Dst: Botan::CMCE_CT::min
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:202,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:202,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:202,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:208,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:208,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:213,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:213,1
    - Dst: Botan::composeinv
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:216,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:220,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:220,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:225,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:225,1
    - Dst: Botan::composeinv
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:228,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:233,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:233,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:234,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:234,1
    - Dst: Botan::generate_control_bits_internal
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:237,1
    - Dst: Botan::generate_control_bits_internal
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:238,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:240,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:240,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:241,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:242,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:242,1
    - Dst: secure_vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:243,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:243,1
    - Dst: Botan::concat
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:246,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 1
    argNames:
    - ' pi'
    argTypes:
    - secure_vector<uint16_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 168
    functionDepth: 5
    functionLinenumber: 168
    functionLinenumberEnd: 247
    functionName: Botan::generate_control_bits_internal
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 4
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - static_cast<uint16_t>
    - static_cast<size_t>
    - auto::size
    - auto::at
    - Botan::CMCE_CT::min
    - Botan::simultaneous_composeinv
    - Botan::ceil_log2
    - Botan::composeinv
    - secure_vector::begin
    - secure_vector::at
    - std::iota
    - secure_vector<uint16_t>
    - Botan::generate_control_bits_internal
    - Botan::concat
    - secure_vector::end
    - Botan::is_power_of_2
    - Botan::size
    - at
    linkageType: ''
    returnType: secure_vector<uint16_t>
    signature: secure_vector<uint16_t> generate_control_bits_internal(const secure_vector<uint16_t>&
      pi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::Mask::cleared
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:250,1
    - Dst: std::span<const uint32_t>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:251,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:252,1
    - Dst: CT::Mask::as_choice
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - vec
    argTypes:
    - std::span<const uint32_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 249
    functionDepth: 2
    functionLinenumber: 249
    functionLinenumberEnd: 255
    functionName: Botan::ct_has_adjacent_duplicates
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint32_t>::size
    - CT::Mask::as_choice
    - Botan::ct_is_equal
    - Botan::CT::Mask::cleared
    linkageType: ''
    returnType: CT::Choice
    signature: CT::Choice ct_has_adjacent_duplicates(std::span<const uint32_t> vec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:261,1
    - Dst: StrongSpan<const CmceOrderingBits>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:261,1
    - Dst: sigma2
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:261,1
    - Dst: q
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:261,1
    - Dst: load_le<secure_vector<uint32_t>>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:263,1
    - Dst: create_pi
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:264,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:264,1
    - Dst: ct_has_adjacent_duplicates
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:265,1
    - Dst: Classic_McEliece_Field_Ordering
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:269,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:269,1
    - Dst: poly_f
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:269,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' params'
    - random_bits
    argTypes:
    - Classic_McEliece_Parameters
    - StrongSpan<const CmceOrderingBits>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 270
    functionName: Botan::Classic_McEliece_Field_Ordering::create_field_ordering
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 6
    functionsReached:
    - std::move
    - BOTAN_ARG_CHECK
    - ct_has_adjacent_duplicates
    - sigma2
    - create_pi
    - Classic_McEliece_Field_Ordering
    - poly_f
    - StrongSpan<const CmceOrderingBits>::size
    - load_le<secure_vector<uint32_t>>
    - q
    linkageType: ''
    returnType: std::optional<Classic_McEliece_Field_Ordering>
    signature: "std::optional<Classic_McEliece_Field_Ordering> Classic_McEliece_Field_Ordering::create_field_ordering(\n
      \  const Classic_McEliece_Parameters& params, StrongSpan<const CmceOrderingBits>
      random_bits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:273,1
    - Dst: get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:273,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:274,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:274,1
    - Dst: transform
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:278,1
    - Dst: begin
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:278,1
    - Dst: begin
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:278,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:278,1
    - Dst: from_pi
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:279,1
    - Dst: CmcePermutationElement
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:279,1
    - Dst: Botan::log_q_from_mod
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - n
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 283
    functionName: Botan::Classic_McEliece_Field_Ordering::alphas
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::log_q_from_mod
    - size
    - std::back_inserter
    - transform
    - get
    - CmcePermutationElement
    - begin
    - from_pi
    linkageType: ''
    returnType: std::vector<Classic_McEliece_GF>
    signature: std::vector<Classic_McEliece_GF> Classic_McEliece_Field_Ordering::alphas(size_t
      n) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: generate_control_bits_internal
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:287,1
    - Dst: get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:287,1
    - Dst: secure_bitvector
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:288,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:288,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:289,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:290,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:290,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 294
    functionName: Botan::Classic_McEliece_Field_Ordering::alphas_control_bits
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 0
    functionsReached:
    - generate_control_bits_internal
    - auto::at
    - secure_bitvector
    - get
    - auto::size
    linkageType: ''
    returnType: secure_bitvector
    signature: secure_bitvector Classic_McEliece_Field_Ordering::alphas_control_bits()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:300,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:300,1
    - Dst: m
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:300,1
    - Dst: m
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:300,1
    - Dst: m
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:301,1
    - Dst: std::iota
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:303,1
    - Dst: CmcePermutation::begin
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:303,1
    - Dst: CmcePermutation::end
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:303,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:303,1
    - Dst: m
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:304,1
    - Dst: min
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:305,1
    - Dst: m
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:305,1
    - Dst: Botan::CT::Mask::expand_bool
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:308,1
    - Dst: auto::conditional_swap
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:309,1
    - Dst: Classic_McEliece_Field_Ordering
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:313,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:313,1
    - Dst: poly_f
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:313,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - ' params'
    - ' control_bits'
    argTypes:
    - Classic_McEliece_Parameters
    - secure_bitvector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 314
    functionName: Botan::Classic_McEliece_Field_Ordering::create_from_control_bits
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 4
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - static_cast<uint16_t>
    - std::move
    - min
    - size
    - CmcePermutation::begin
    - Classic_McEliece_Field_Ordering
    - poly_f
    - std::iota
    - CmcePermutation::end
    - m
    - Botan::CT::Mask::expand_bool
    - auto::conditional_swap
    linkageType: ''
    returnType: Classic_McEliece_Field_Ordering
    signature: "Classic_McEliece_Field_Ordering Classic_McEliece_Field_Ordering::create_from_control_bits(\n
      \  const Classic_McEliece_Parameters& params, const secure_bitvector& control_bits)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:318,1
    - Dst: Botan::mu
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:318,1
    - Dst: Botan::mu
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:320,1
    - Dst: Botan::EC_Group_Data::point_hash_to_curve_nu
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:322,1
    - Dst: Botan::CT::Mask::expand_bool
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:323,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:323,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:324,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:325,1
    - Dst: conditional_swap
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:326,1
    - Dst: get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:327,1
    - Dst: get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp:327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ' params'
    - ' pivots'
    argTypes:
    - Classic_McEliece_Parameters
    - CmceColumnSelection
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 316
    functionDepth: 2
    functionLinenumber: 316
    functionLinenumberEnd: 330
    functionName: Botan::Classic_McEliece_Field_Ordering::permute_with_pivots
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_field_ordering.cpp
    functionUses: 0
    functionsReached:
    - conditional_swap
    - Botan::mu
    - Botan::EC_Group_Data::point_hash_to_curve_nu
    - pk_no_rows
    - Botan::ct_is_equal
    - get
    - Botan::CT::Mask::expand_bool
    - at
    - auto::if_set_return
    linkageType: ''
    returnType: void
    signature: "void Classic_McEliece_Field_Ordering::permute_with_pivots(const Classic_McEliece_Parameters&
      params,\n                                                          const CmceColumnSelection&
      pivots)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:30,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - pos
    argTypes:
    - uint64_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: Botan::bit_at_mask
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint64_t>
    - Botan::sha512_msg_expand
    linkageType: ''
    returnType: CT::Mask<uint64_t>
    signature: CT::Mask<uint64_t> bit_at_mask(uint64_t val, size_t pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CT::value_barrier<uint64_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:35,1
    - Dst: CT::value_barrier<uint64_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' val'
    - i
    - j
    argTypes:
    - uint64_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: Botan::swap_bits
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp
    functionUses: 0
    functionsReached:
    - CT::value_barrier<uint64_t>
    linkageType: ''
    returnType: void
    signature: void swap_bits(uint64_t& val, size_t i, size_t j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::test_other_key_not_set
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:44,1
    - Dst: Botan::bit_at_mask
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:46,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:48,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 52
    functionName: Botan::count_lsb_zeros
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - Botan::bit_at_mask
    - auto::if_set_return
    - Botan_Tests::test_other_key_not_set
    linkageType: ''
    returnType: size_t
    signature: size_t count_lsb_zeros(uint64_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alphas
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:57,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:57,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:59,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:59,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:61,1
    - Dst: g
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:61,1
    - Dst: std::vector<CmceMatrixRow>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:63,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:63,1
    - Dst: CmceMatrixRow
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:63,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:63,1
    - Dst: Botan::t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:65,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:66,1
    - Dst: Botan::elem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:67,1
    - Dst: Botan::m
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:68,1
    - Dst: Botan::m
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:69,1
    - Dst: static_cast<bool>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:69,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:74,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:75,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:75,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - ' params'
    - ' field_ordering'
    - ' g'
    argTypes:
    - Classic_McEliece_Parameters
    - Classic_McEliece_Field_Ordering
    - Classic_McEliece_Minimal_Polynomial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 80
    functionName: Botan::init_matrix_with_alphas
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp
    functionUses: 0
    functionsReached:
    - Botan::m
    - alphas
    - static_cast<bool>
    - Botan::t
    - std::vector::push_back
    - auto::at
    - std::vector::at
    - CmceMatrixRow
    - Botan::pk_no_rows
    - Botan::elem
    - g
    - Botan::n
    - std::vector<CmceMatrixRow>
    - std::vector::reserve
    linkageType: ''
    returnType: CmceMatrix
    signature: "CmceMatrix init_matrix_with_alphas(const Classic_McEliece_Parameters&
      params,\n                                   const Classic_McEliece_Field_Ordering&
      field_ordering,\n                                   const Classic_McEliece_Minimal_Polynomial&
      g)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:83,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:83,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:83,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:84,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:84,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:84,1
    - Dst: Botan::EC_Group_Data::point_hash_to_curve_nu
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:85,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:87,1
    - Dst: Botan::mu
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:87,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:94,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:94,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:95,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:96,1
    - Dst: subvector
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:96,1
    - Dst: Botan::mu
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:104,1
    - Dst: Botan::mu
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:113,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:115,1
    - Dst: Botan::mu
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:116,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:117,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:120,1
    - Dst: auto::as_choice
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:121,1
    - Dst: Botan::count_lsb_zeros
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:130,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:131,1
    - Dst: Botan::mu
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:135,1
    - Dst: Botan::bit_at_mask
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:137,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:137,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:138,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:138,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:138,1
    - Dst: Botan::mu
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:147,1
    - Dst: Botan::bit_at_mask
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:149,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:149,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:150,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:150,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:150,1
    - Dst: Botan::EC_Group_Data::point_hash_to_curve_nu
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:157,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:158,1
    - Dst: CmceColumnSelection::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:159,1
    - Dst: static_cast<bool>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:159,1
    - Dst: auto::select
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:159,1
    - Dst: CmceColumnSelection::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:159,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:164,1
    - Dst: Botan::mu
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:165,1
    - Dst: Botan::swap_bits
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:166,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:166,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:166,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:171,1
    - Dst: subvector_replace
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:172,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 2
    argNames:
    - ' mat'
    - ' params'
    argTypes:
    - CmceMatrix
    - Classic_McEliece_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 82
    functionDepth: 3
    functionLinenumber: 82
    functionLinenumberEnd: 176
    functionName: Botan::move_columns
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group_Data::point_hash_to_curve_nu
    - Botan::bit_at_mask
    - Botan::Sodium::sodium_is_zero
    - std::vector::reserve
    - Botan::mu
    - Botan::count_lsb_zeros
    - subvector
    - Botan::n
    - auto::if_set_return
    - CmceColumnSelection::at
    - auto::select
    - std::vector::push_back
    - std::vector::at
    - std::array::at
    - Botan::get
    - BOTAN_ASSERT
    - static_cast<bool>
    - Botan::pk_no_rows
    - Botan::ct_is_equal
    - auto::as_choice
    - Botan::swap_bits
    - Botan::size
    - subvector_replace
    linkageType: ''
    returnType: std::optional<CmceColumnSelection>
    signature: std::optional<CmceColumnSelection> move_columns(CmceMatrix& mat, const
      Classic_McEliece_Parameters& params)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:179,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:179,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:179,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:180,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:180,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:180,1
    - Dst: CmceColumnSelection
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:183,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:186,1
    - Dst: Botan::is_f
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:187,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:187,1
    - Dst: Botan::mu
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:187,1
    - Dst: Botan::move_columns
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:188,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:189,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:190,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:194,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:194,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:202,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:203,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:203,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:203,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:208,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:209,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:217,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:219,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:219,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:219,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - ' params'
    - ' mat'
    argTypes:
    - Classic_McEliece_Parameters
    - CmceMatrix
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 178
    functionDepth: 4
    functionLinenumber: 178
    functionLinenumberEnd: 225
    functionName: Botan::apply_gauss
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::mu
    - CmceColumnSelection
    - Botan::move_columns
    - Botan::is_f
    - auto::has_value
    - Botan::size
    - Botan::pk_no_rows
    - auto::value
    - Botan::CT::unpoison
    - Botan::get
    - BOTAN_ASSERT
    - Botan::n
    - at
    linkageType: ''
    returnType: std::optional<CmceColumnSelection>
    signature: std::optional<CmceColumnSelection> apply_gauss(const Classic_McEliece_Parameters&
      params, CmceMatrix& mat)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::pk_size_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:230,1
    - Dst: BufferStuffer
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:231,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:233,1
    - Dst: subvector
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:234,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:234,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:234,1
    - Dst: Botan::pk_row_size_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:234,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:237,1
    - Dst: auto::full
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' params'
    - ' mat'
    argTypes:
    - Classic_McEliece_Parameters
    - CmceMatrix
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 240
    functionName: Botan::extract_pk_bytes_from_matrix
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - auto::full
    - Botan::pk_no_rows
    - auto::next
    - BufferStuffer
    - subvector
    - Botan::pk_size_bytes
    - Botan::pk_row_size_bytes
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> extract_pk_bytes_from_matrix(const Classic_McEliece_Parameters&
      params, const CmceMatrix& mat)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:30,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - pos
    argTypes:
    - uint64_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: Botan::bit_at_mask
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp
    functionUses: 2
    functionsReached:
    - static_cast<uint64_t>
    - Botan::sha512_msg_expand
    linkageType: ''
    returnType: CT::Mask<uint64_t>
    signature: CT::Mask<uint64_t> bit_at_mask(uint64_t val, size_t pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CT::value_barrier<uint64_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:35,1
    - Dst: CT::value_barrier<uint64_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' val'
    - i
    - j
    argTypes:
    - uint64_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: Botan::swap_bits
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp
    functionUses: 1
    functionsReached:
    - CT::value_barrier<uint64_t>
    linkageType: ''
    returnType: void
    signature: void swap_bits(uint64_t& val, size_t i, size_t j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::test_other_key_not_set
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:44,1
    - Dst: Botan::bit_at_mask
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:46,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:48,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 52
    functionName: Botan::count_lsb_zeros
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp
    functionUses: 1
    functionsReached:
    - static_cast<size_t>
    - Botan::bit_at_mask
    - auto::if_set_return
    - Botan_Tests::test_other_key_not_set
    linkageType: ''
    returnType: size_t
    signature: size_t count_lsb_zeros(uint64_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alphas
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:57,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:57,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:59,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:59,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:61,1
    - Dst: g
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:61,1
    - Dst: std::vector<CmceMatrixRow>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:63,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:63,1
    - Dst: CmceMatrixRow
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:63,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:63,1
    - Dst: Botan::t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:65,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:66,1
    - Dst: Botan::elem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:67,1
    - Dst: Botan::m
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:68,1
    - Dst: Botan::m
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:69,1
    - Dst: static_cast<bool>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:69,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:74,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:75,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:75,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - ' params'
    - ' field_ordering'
    - ' g'
    argTypes:
    - Classic_McEliece_Parameters
    - Classic_McEliece_Field_Ordering
    - Classic_McEliece_Minimal_Polynomial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 80
    functionName: Botan::init_matrix_with_alphas
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp
    functionUses: 0
    functionsReached:
    - Botan::m
    - alphas
    - static_cast<bool>
    - Botan::t
    - std::vector::push_back
    - auto::at
    - std::vector::at
    - CmceMatrixRow
    - Botan::pk_no_rows
    - Botan::elem
    - g
    - Botan::n
    - std::vector<CmceMatrixRow>
    - std::vector::reserve
    linkageType: ''
    returnType: CmceMatrix
    signature: "CmceMatrix init_matrix_with_alphas(const Classic_McEliece_Parameters&
      params,\n                                   const Classic_McEliece_Field_Ordering&
      field_ordering,\n                                   const Classic_McEliece_Minimal_Polynomial&
      g)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:83,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:83,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:83,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:84,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:84,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:84,1
    - Dst: Botan::EC_Group_Data::point_hash_to_curve_nu
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:85,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:87,1
    - Dst: Botan::mu
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:87,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:94,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:94,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:95,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:96,1
    - Dst: subvector
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:96,1
    - Dst: Botan::mu
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:104,1
    - Dst: Botan::mu
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:113,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:115,1
    - Dst: Botan::mu
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:116,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:117,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:120,1
    - Dst: auto::as_choice
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:121,1
    - Dst: Botan::count_lsb_zeros
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:130,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:131,1
    - Dst: Botan::mu
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:135,1
    - Dst: Botan::bit_at_mask
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:137,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:137,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:138,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:138,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:138,1
    - Dst: Botan::mu
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:147,1
    - Dst: Botan::bit_at_mask
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:149,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:149,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:150,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:150,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:150,1
    - Dst: Botan::EC_Group_Data::point_hash_to_curve_nu
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:157,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:158,1
    - Dst: CmceColumnSelection::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:159,1
    - Dst: static_cast<bool>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:159,1
    - Dst: auto::select
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:159,1
    - Dst: CmceColumnSelection::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:159,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:164,1
    - Dst: Botan::mu
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:165,1
    - Dst: Botan::swap_bits
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:166,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:166,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:166,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:171,1
    - Dst: subvector_replace
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:172,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 2
    argNames:
    - ' mat'
    - ' params'
    argTypes:
    - CmceMatrix
    - Classic_McEliece_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 82
    functionDepth: 3
    functionLinenumber: 82
    functionLinenumberEnd: 176
    functionName: Botan::move_columns
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp
    functionUses: 1
    functionsReached:
    - Botan::EC_Group_Data::point_hash_to_curve_nu
    - Botan::bit_at_mask
    - Botan::Sodium::sodium_is_zero
    - std::vector::reserve
    - Botan::mu
    - Botan::count_lsb_zeros
    - subvector
    - Botan::n
    - auto::if_set_return
    - CmceColumnSelection::at
    - auto::select
    - std::vector::push_back
    - std::vector::at
    - std::array::at
    - Botan::get
    - BOTAN_ASSERT
    - static_cast<bool>
    - Botan::pk_no_rows
    - Botan::ct_is_equal
    - auto::as_choice
    - Botan::swap_bits
    - Botan::size
    - subvector_replace
    linkageType: ''
    returnType: std::optional<CmceColumnSelection>
    signature: std::optional<CmceColumnSelection> move_columns(CmceMatrix& mat, const
      Classic_McEliece_Parameters& params)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:179,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:179,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:179,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:180,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:180,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:180,1
    - Dst: CmceColumnSelection
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:183,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:186,1
    - Dst: Botan::is_f
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:187,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:187,1
    - Dst: Botan::mu
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:187,1
    - Dst: Botan::move_columns
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:188,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:189,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:190,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:194,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:194,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:202,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:203,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:203,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:203,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:208,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:209,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:217,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:219,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:219,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:219,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - ' params'
    - ' mat'
    argTypes:
    - Classic_McEliece_Parameters
    - CmceMatrix
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 178
    functionDepth: 4
    functionLinenumber: 178
    functionLinenumberEnd: 225
    functionName: Botan::apply_gauss
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::mu
    - CmceColumnSelection
    - Botan::move_columns
    - Botan::is_f
    - auto::has_value
    - Botan::size
    - Botan::pk_no_rows
    - auto::value
    - Botan::CT::unpoison
    - Botan::get
    - BOTAN_ASSERT
    - Botan::n
    - at
    linkageType: ''
    returnType: std::optional<CmceColumnSelection>
    signature: std::optional<CmceColumnSelection> apply_gauss(const Classic_McEliece_Parameters&
      params, CmceMatrix& mat)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::pk_size_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:230,1
    - Dst: BufferStuffer
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:231,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:233,1
    - Dst: subvector
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:234,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:234,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:234,1
    - Dst: Botan::pk_row_size_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:234,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:237,1
    - Dst: auto::full
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' params'
    - ' mat'
    argTypes:
    - Classic_McEliece_Parameters
    - CmceMatrix
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 240
    functionName: Botan::extract_pk_bytes_from_matrix
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - auto::full
    - Botan::pk_no_rows
    - auto::next
    - BufferStuffer
    - subvector
    - Botan::pk_size_bytes
    - Botan::pk_row_size_bytes
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> extract_pk_bytes_from_matrix(const Classic_McEliece_Parameters&
      params, const CmceMatrix& mat)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_matrix_with_alphas
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:248,1
    - Dst: apply_gauss
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:249,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:251,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:252,1
    - Dst: extract_pk_bytes_from_matrix
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:257,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:258,1
    - Dst: Classic_McEliece_Matrix
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:258,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:258,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' params'
    - ' field_ordering'
    - ' g'
    argTypes:
    - Classic_McEliece_Parameters
    - Classic_McEliece_Field_Ordering
    - Classic_McEliece_Minimal_Polynomial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 259
    functionName: Botan::Classic_McEliece_Matrix::create_matrix
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp
    functionUses: 2
    functionsReached:
    - extract_pk_bytes_from_matrix
    - std::move
    - auto::has_value
    - std::make_pair
    - auto::value
    - Classic_McEliece_Matrix
    - Botan::CT::unpoison
    - init_matrix_with_alphas
    - apply_gauss
    linkageType: ''
    returnType: std::optional<std::pair<Classic_McEliece_Matrix, CmceColumnSelection>>
    signature: "std::optional<std::pair<Classic_McEliece_Matrix, CmceColumnSelection>>
      Classic_McEliece_Matrix::create_matrix(\n   const Classic_McEliece_Parameters&
      params,\n   const Classic_McEliece_Field_Ordering& field_ordering,\n   const
      Classic_McEliece_Minimal_Polynomial& g)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Matrix::create_matrix
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:265,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:267,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:268,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:273,1
    - Dst: is_f
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:275,1
    - Dst: permute_with_pivots
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:276,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' params'
    - ' field_ordering'
    - ' g'
    argTypes:
    - Classic_McEliece_Parameters
    - Classic_McEliece_Field_Ordering
    - Classic_McEliece_Minimal_Polynomial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 280
    functionName: Botan::Classic_McEliece_Matrix::create_matrix_and_apply_pivots
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp
    functionUses: 4
    functionsReached:
    - auto::has_value
    - auto::value
    - permute_with_pivots
    - is_f
    - Botan::CT::unpoison
    - Botan::Classic_McEliece_Matrix::create_matrix
    linkageType: ''
    returnType: std::optional<std::pair<Classic_McEliece_Matrix, CmceColumnSelection>>
    signature: "std::optional<std::pair<Classic_McEliece_Matrix, CmceColumnSelection>>
      Classic_McEliece_Matrix::create_matrix_and_apply_pivots(const Classic_McEliece_Parameters&
      params,\n                                                        Classic_McEliece_Field_Ordering&
      field_ordering,\n                                                        const
      Classic_McEliece_Minimal_Polynomial& g)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subvector
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:283,1
    - Dst: pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:283,1
    - Dst: subvector
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:284,1
    - Dst: pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:284,1
    - Dst: BufferSlicer
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:285,1
    - Dst: pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:287,1
    - Dst: auto::take
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:288,1
    - Dst: pk_row_size_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:288,1
    - Dst: secure_bitvector
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:289,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:289,1
    - Dst: pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:289,1
    - Dst: auto::has_odd_hamming_weight
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:291,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:294,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' params'
    - ' e'
    argTypes:
    - Classic_McEliece_Parameters
    - CmceErrorVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 296
    functionName: Botan::Classic_McEliece_Matrix::mul
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - auto::has_odd_hamming_weight
    - auto::empty
    - n
    - pk_no_rows
    - auto::take
    - pk_row_size_bytes
    - secure_bitvector
    - subvector
    - BufferSlicer
    linkageType: ''
    returnType: CmceCodeWord
    signature: CmceCodeWord Classic_McEliece_Matrix::mul(const Classic_McEliece_Parameters&
      params, const CmceErrorVector& e) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:30,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - pos
    argTypes:
    - uint64_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: Botan::bit_at_mask
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp
    functionUses: 4
    functionsReached:
    - static_cast<uint64_t>
    - Botan::sha512_msg_expand
    linkageType: ''
    returnType: CT::Mask<uint64_t>
    signature: CT::Mask<uint64_t> bit_at_mask(uint64_t val, size_t pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CT::value_barrier<uint64_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:35,1
    - Dst: CT::value_barrier<uint64_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' val'
    - i
    - j
    argTypes:
    - uint64_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: Botan::swap_bits
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp
    functionUses: 2
    functionsReached:
    - CT::value_barrier<uint64_t>
    linkageType: ''
    returnType: void
    signature: void swap_bits(uint64_t& val, size_t i, size_t j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::test_other_key_not_set
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:44,1
    - Dst: Botan::bit_at_mask
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:46,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:48,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 52
    functionName: Botan::count_lsb_zeros
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp
    functionUses: 2
    functionsReached:
    - static_cast<size_t>
    - Botan::bit_at_mask
    - auto::if_set_return
    - Botan_Tests::test_other_key_not_set
    linkageType: ''
    returnType: size_t
    signature: size_t count_lsb_zeros(uint64_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alphas
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:57,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:57,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:59,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:59,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:61,1
    - Dst: g
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:61,1
    - Dst: std::vector<CmceMatrixRow>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:63,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:63,1
    - Dst: CmceMatrixRow
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:63,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:63,1
    - Dst: Botan::t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:65,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:66,1
    - Dst: Botan::elem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:67,1
    - Dst: Botan::m
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:68,1
    - Dst: Botan::m
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:69,1
    - Dst: static_cast<bool>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:69,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:74,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:75,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:75,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - ' params'
    - ' field_ordering'
    - ' g'
    argTypes:
    - Classic_McEliece_Parameters
    - Classic_McEliece_Field_Ordering
    - Classic_McEliece_Minimal_Polynomial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 80
    functionName: Botan::init_matrix_with_alphas
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp
    functionUses: 0
    functionsReached:
    - Botan::m
    - alphas
    - static_cast<bool>
    - Botan::t
    - std::vector::push_back
    - auto::at
    - std::vector::at
    - CmceMatrixRow
    - Botan::pk_no_rows
    - Botan::elem
    - g
    - Botan::n
    - std::vector<CmceMatrixRow>
    - std::vector::reserve
    linkageType: ''
    returnType: CmceMatrix
    signature: "CmceMatrix init_matrix_with_alphas(const Classic_McEliece_Parameters&
      params,\n                                   const Classic_McEliece_Field_Ordering&
      field_ordering,\n                                   const Classic_McEliece_Minimal_Polynomial&
      g)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:83,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:83,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:83,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:84,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:84,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:84,1
    - Dst: Botan::EC_Group_Data::point_hash_to_curve_nu
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:85,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:87,1
    - Dst: Botan::mu
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:87,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:94,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:94,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:95,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:96,1
    - Dst: subvector
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:96,1
    - Dst: Botan::mu
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:104,1
    - Dst: Botan::mu
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:113,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:115,1
    - Dst: Botan::mu
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:116,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:117,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:120,1
    - Dst: auto::as_choice
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:121,1
    - Dst: Botan::count_lsb_zeros
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:130,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:131,1
    - Dst: Botan::mu
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:135,1
    - Dst: Botan::bit_at_mask
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:137,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:137,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:138,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:138,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:138,1
    - Dst: Botan::mu
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:147,1
    - Dst: Botan::bit_at_mask
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:149,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:149,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:150,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:150,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:150,1
    - Dst: Botan::EC_Group_Data::point_hash_to_curve_nu
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:157,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:158,1
    - Dst: CmceColumnSelection::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:159,1
    - Dst: static_cast<bool>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:159,1
    - Dst: auto::select
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:159,1
    - Dst: CmceColumnSelection::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:159,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:164,1
    - Dst: Botan::mu
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:165,1
    - Dst: Botan::swap_bits
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:166,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:166,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:166,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:171,1
    - Dst: subvector_replace
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:172,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 2
    argNames:
    - ' mat'
    - ' params'
    argTypes:
    - CmceMatrix
    - Classic_McEliece_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 82
    functionDepth: 3
    functionLinenumber: 82
    functionLinenumberEnd: 176
    functionName: Botan::move_columns
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp
    functionUses: 2
    functionsReached:
    - Botan::EC_Group_Data::point_hash_to_curve_nu
    - Botan::bit_at_mask
    - Botan::Sodium::sodium_is_zero
    - std::vector::reserve
    - Botan::mu
    - Botan::count_lsb_zeros
    - subvector
    - Botan::n
    - auto::if_set_return
    - CmceColumnSelection::at
    - auto::select
    - std::vector::push_back
    - std::vector::at
    - std::array::at
    - Botan::get
    - BOTAN_ASSERT
    - static_cast<bool>
    - Botan::pk_no_rows
    - Botan::ct_is_equal
    - auto::as_choice
    - Botan::swap_bits
    - Botan::size
    - subvector_replace
    linkageType: ''
    returnType: std::optional<CmceColumnSelection>
    signature: std::optional<CmceColumnSelection> move_columns(CmceMatrix& mat, const
      Classic_McEliece_Parameters& params)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:179,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:179,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:179,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:180,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:180,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:180,1
    - Dst: CmceColumnSelection
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:183,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:186,1
    - Dst: Botan::is_f
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:187,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:187,1
    - Dst: Botan::mu
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:187,1
    - Dst: Botan::move_columns
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:188,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:189,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:190,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:194,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:194,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:202,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:203,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:203,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:203,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:208,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:209,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:217,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:219,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:219,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:219,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - ' params'
    - ' mat'
    argTypes:
    - Classic_McEliece_Parameters
    - CmceMatrix
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 178
    functionDepth: 4
    functionLinenumber: 178
    functionLinenumberEnd: 225
    functionName: Botan::apply_gauss
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::mu
    - CmceColumnSelection
    - Botan::move_columns
    - Botan::is_f
    - auto::has_value
    - Botan::size
    - Botan::pk_no_rows
    - auto::value
    - Botan::CT::unpoison
    - Botan::get
    - BOTAN_ASSERT
    - Botan::n
    - at
    linkageType: ''
    returnType: std::optional<CmceColumnSelection>
    signature: std::optional<CmceColumnSelection> apply_gauss(const Classic_McEliece_Parameters&
      params, CmceMatrix& mat)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::pk_size_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:230,1
    - Dst: BufferStuffer
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:231,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:233,1
    - Dst: subvector
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:234,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:234,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:234,1
    - Dst: Botan::pk_row_size_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:234,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:237,1
    - Dst: auto::full
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' params'
    - ' mat'
    argTypes:
    - Classic_McEliece_Parameters
    - CmceMatrix
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 240
    functionName: Botan::extract_pk_bytes_from_matrix
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - auto::full
    - Botan::pk_no_rows
    - auto::next
    - BufferStuffer
    - subvector
    - Botan::pk_size_bytes
    - Botan::pk_row_size_bytes
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> extract_pk_bytes_from_matrix(const Classic_McEliece_Parameters&
      params, const CmceMatrix& mat)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:30,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - pos
    argTypes:
    - uint64_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: Botan::bit_at_mask
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp
    functionUses: 6
    functionsReached:
    - static_cast<uint64_t>
    - Botan::sha512_msg_expand
    linkageType: ''
    returnType: CT::Mask<uint64_t>
    signature: CT::Mask<uint64_t> bit_at_mask(uint64_t val, size_t pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CT::value_barrier<uint64_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:35,1
    - Dst: CT::value_barrier<uint64_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' val'
    - i
    - j
    argTypes:
    - uint64_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 40
    functionName: Botan::swap_bits
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp
    functionUses: 3
    functionsReached:
    - CT::value_barrier<uint64_t>
    linkageType: ''
    returnType: void
    signature: void swap_bits(uint64_t& val, size_t i, size_t j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan_Tests::test_other_key_not_set
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:44,1
    - Dst: Botan::bit_at_mask
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:46,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:48,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 52
    functionName: Botan::count_lsb_zeros
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp
    functionUses: 3
    functionsReached:
    - static_cast<size_t>
    - Botan::bit_at_mask
    - auto::if_set_return
    - Botan_Tests::test_other_key_not_set
    linkageType: ''
    returnType: size_t
    signature: size_t count_lsb_zeros(uint64_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alphas
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:57,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:57,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:59,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:59,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:61,1
    - Dst: g
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:61,1
    - Dst: std::vector<CmceMatrixRow>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:63,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:63,1
    - Dst: CmceMatrixRow
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:63,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:63,1
    - Dst: Botan::t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:65,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:66,1
    - Dst: Botan::elem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:67,1
    - Dst: Botan::m
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:68,1
    - Dst: Botan::m
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:69,1
    - Dst: static_cast<bool>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:69,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:74,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:75,1
    - Dst: auto::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:75,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - ' params'
    - ' field_ordering'
    - ' g'
    argTypes:
    - Classic_McEliece_Parameters
    - Classic_McEliece_Field_Ordering
    - Classic_McEliece_Minimal_Polynomial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 80
    functionName: Botan::init_matrix_with_alphas
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp
    functionUses: 0
    functionsReached:
    - Botan::m
    - alphas
    - static_cast<bool>
    - Botan::t
    - std::vector::push_back
    - auto::at
    - std::vector::at
    - CmceMatrixRow
    - Botan::pk_no_rows
    - Botan::elem
    - g
    - Botan::n
    - std::vector<CmceMatrixRow>
    - std::vector::reserve
    linkageType: ''
    returnType: CmceMatrix
    signature: "CmceMatrix init_matrix_with_alphas(const Classic_McEliece_Parameters&
      params,\n                                   const Classic_McEliece_Field_Ordering&
      field_ordering,\n                                   const Classic_McEliece_Minimal_Polynomial&
      g)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:83,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:83,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:83,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:84,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:84,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:84,1
    - Dst: Botan::EC_Group_Data::point_hash_to_curve_nu
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:85,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:87,1
    - Dst: Botan::mu
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:87,1
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:94,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:94,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:95,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:96,1
    - Dst: subvector
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:96,1
    - Dst: Botan::mu
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:104,1
    - Dst: Botan::mu
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:113,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:115,1
    - Dst: Botan::mu
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:116,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:117,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:120,1
    - Dst: auto::as_choice
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:121,1
    - Dst: Botan::count_lsb_zeros
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:130,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:131,1
    - Dst: Botan::mu
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:135,1
    - Dst: Botan::bit_at_mask
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:137,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:137,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:138,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:138,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:138,1
    - Dst: Botan::mu
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:147,1
    - Dst: Botan::bit_at_mask
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:149,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:149,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:150,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:150,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:150,1
    - Dst: Botan::EC_Group_Data::point_hash_to_curve_nu
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:157,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:158,1
    - Dst: CmceColumnSelection::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:159,1
    - Dst: static_cast<bool>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:159,1
    - Dst: auto::select
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:159,1
    - Dst: CmceColumnSelection::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:159,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:164,1
    - Dst: Botan::mu
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:165,1
    - Dst: Botan::swap_bits
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:166,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:166,1
    - Dst: std::array::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:166,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:171,1
    - Dst: subvector_replace
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:172,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 2
    argNames:
    - ' mat'
    - ' params'
    argTypes:
    - CmceMatrix
    - Classic_McEliece_Parameters
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 82
    functionDepth: 3
    functionLinenumber: 82
    functionLinenumberEnd: 176
    functionName: Botan::move_columns
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp
    functionUses: 3
    functionsReached:
    - Botan::EC_Group_Data::point_hash_to_curve_nu
    - Botan::bit_at_mask
    - Botan::Sodium::sodium_is_zero
    - std::vector::reserve
    - Botan::mu
    - Botan::count_lsb_zeros
    - subvector
    - Botan::n
    - auto::if_set_return
    - CmceColumnSelection::at
    - auto::select
    - std::vector::push_back
    - std::vector::at
    - std::array::at
    - Botan::get
    - BOTAN_ASSERT
    - static_cast<bool>
    - Botan::pk_no_rows
    - Botan::ct_is_equal
    - auto::as_choice
    - Botan::swap_bits
    - Botan::size
    - subvector_replace
    linkageType: ''
    returnType: std::optional<CmceColumnSelection>
    signature: std::optional<CmceColumnSelection> move_columns(CmceMatrix& mat, const
      Classic_McEliece_Parameters& params)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:179,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:179,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:179,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:180,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:180,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:180,1
    - Dst: CmceColumnSelection
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:183,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:186,1
    - Dst: Botan::is_f
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:187,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:187,1
    - Dst: Botan::mu
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:187,1
    - Dst: Botan::move_columns
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:188,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:189,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:190,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:194,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:194,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:202,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:203,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:203,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:203,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:208,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:209,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:217,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:219,1
    - Dst: at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:219,1
    - Dst: Botan::get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:219,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 2
    argNames:
    - ' params'
    - ' mat'
    argTypes:
    - Classic_McEliece_Parameters
    - CmceMatrix
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 178
    functionDepth: 4
    functionLinenumber: 178
    functionLinenumberEnd: 225
    functionName: Botan::apply_gauss
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::mu
    - CmceColumnSelection
    - Botan::move_columns
    - Botan::is_f
    - auto::has_value
    - Botan::size
    - Botan::pk_no_rows
    - auto::value
    - Botan::CT::unpoison
    - Botan::get
    - BOTAN_ASSERT
    - Botan::n
    - at
    linkageType: ''
    returnType: std::optional<CmceColumnSelection>
    signature: std::optional<CmceColumnSelection> apply_gauss(const Classic_McEliece_Parameters&
      params, CmceMatrix& mat)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::pk_size_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:230,1
    - Dst: BufferStuffer
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:231,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:233,1
    - Dst: subvector
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:234,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:234,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:234,1
    - Dst: Botan::pk_row_size_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:234,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:237,1
    - Dst: auto::full
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' params'
    - ' mat'
    argTypes:
    - Classic_McEliece_Parameters
    - CmceMatrix
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 240
    functionName: Botan::extract_pk_bytes_from_matrix
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - auto::full
    - Botan::pk_no_rows
    - auto::next
    - BufferStuffer
    - subvector
    - Botan::pk_size_bytes
    - Botan::pk_row_size_bytes
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> extract_pk_bytes_from_matrix(const Classic_McEliece_Parameters&
      params, const CmceMatrix& mat)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_matrix_with_alphas
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:248,1
    - Dst: apply_gauss
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:249,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:251,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:252,1
    - Dst: extract_pk_bytes_from_matrix
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:257,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:258,1
    - Dst: Classic_McEliece_Matrix
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:258,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:258,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' params'
    - ' field_ordering'
    - ' g'
    argTypes:
    - Classic_McEliece_Parameters
    - Classic_McEliece_Field_Ordering
    - Classic_McEliece_Minimal_Polynomial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 259
    functionName: Botan::Classic_McEliece_Matrix::create_matrix
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp
    functionUses: 3
    functionsReached:
    - extract_pk_bytes_from_matrix
    - std::move
    - auto::has_value
    - std::make_pair
    - auto::value
    - Classic_McEliece_Matrix
    - Botan::CT::unpoison
    - init_matrix_with_alphas
    - apply_gauss
    linkageType: ''
    returnType: std::optional<std::pair<Classic_McEliece_Matrix, CmceColumnSelection>>
    signature: "std::optional<std::pair<Classic_McEliece_Matrix, CmceColumnSelection>>
      Classic_McEliece_Matrix::create_matrix(\n   const Classic_McEliece_Parameters&
      params,\n   const Classic_McEliece_Field_Ordering& field_ordering,\n   const
      Classic_McEliece_Minimal_Polynomial& g)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Matrix::create_matrix
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:265,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:267,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:268,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:273,1
    - Dst: is_f
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:275,1
    - Dst: permute_with_pivots
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:276,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ' params'
    - ' field_ordering'
    - ' g'
    argTypes:
    - Classic_McEliece_Parameters
    - Classic_McEliece_Field_Ordering
    - Classic_McEliece_Minimal_Polynomial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 261
    functionDepth: 2
    functionLinenumber: 261
    functionLinenumberEnd: 280
    functionName: Botan::Classic_McEliece_Matrix::create_matrix_and_apply_pivots
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp
    functionUses: 4
    functionsReached:
    - auto::has_value
    - auto::value
    - permute_with_pivots
    - is_f
    - Botan::CT::unpoison
    - Botan::Classic_McEliece_Matrix::create_matrix
    linkageType: ''
    returnType: std::optional<std::pair<Classic_McEliece_Matrix, CmceColumnSelection>>
    signature: "std::optional<std::pair<Classic_McEliece_Matrix, CmceColumnSelection>>
      Classic_McEliece_Matrix::create_matrix_and_apply_pivots(const Classic_McEliece_Parameters&
      params,\n                                                        Classic_McEliece_Field_Ordering&
      field_ordering,\n                                                        const
      Classic_McEliece_Minimal_Polynomial& g)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: subvector
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:283,1
    - Dst: pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:283,1
    - Dst: subvector
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:284,1
    - Dst: pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:284,1
    - Dst: BufferSlicer
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:285,1
    - Dst: pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:287,1
    - Dst: auto::take
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:288,1
    - Dst: pk_row_size_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:288,1
    - Dst: secure_bitvector
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:289,1
    - Dst: n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:289,1
    - Dst: pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:289,1
    - Dst: auto::has_odd_hamming_weight
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:291,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:294,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp:294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ' params'
    - ' e'
    argTypes:
    - Classic_McEliece_Parameters
    - CmceErrorVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 296
    functionName: Botan::Classic_McEliece_Matrix::mul
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_matrix.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - auto::has_odd_hamming_weight
    - auto::empty
    - n
    - pk_no_rows
    - auto::take
    - pk_row_size_bytes
    - secure_bitvector
    - subvector
    - BufferSlicer
    linkageType: ''
    returnType: CmceCodeWord
    signature: CmceCodeWord Classic_McEliece_Matrix::mul(const Classic_McEliece_Parameters&
      params, const CmceErrorVector& e) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:41,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:42,1
    - Dst: Botan::log_q
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 43
    functionName: Botan::Classic_McEliece_GF
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h
    functionUses: 9
    functionsReached:
    - Botan::log_q
    - Botan::Classic_McEliece_GF
    - BOTAN_DEBUG_ASSERT
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API Classic_McEliece_GF
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::floor_log2
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:54,1
    - Dst: CmceGfMod::get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - modulus
    argTypes:
    - CmceGfMod
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: Botan::log_q_from_mod
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h
    functionUses: 2
    functionsReached:
    - CmceGfMod::get
    - Botan::floor_log2
    linkageType: ''
    returnType: size_t
    signature: size_t log_q_from_mod(CmceGfMod modulus)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::log_q_from_mod
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: Botan::log_q
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h
    functionUses: 1
    functionsReached:
    - Botan::log_q_from_mod
    linkageType: ''
    returnType: size_t
    signature: size_t log_q() 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::elem
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: CmceGfElem
    signature: CmceGfElem elem() 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::modulus
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CmceGfMod
    signature: CmceGfMod modulus() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:81,1
    - Dst: Botan::log_q
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - elem
    argTypes:
    - CmceGfElem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 3
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: '& operator=(const CmceGfElem elem)'
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h
    functionUses: 0
    functionsReached:
    - Botan::log_q
    - CmceGfElem
    linkageType: ''
    returnType: Classic_McEliece_GF
    signature: Classic_McEliece_GF & operator=(const CmceGfElem elem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:89,1
    - Dst: Classic_McEliece_GF::inv
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - Classic_McEliece_GF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: operator/(Classic_McEliece_GF other) const
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h
    functionUses: 0
    functionsReached:
    - Classic_McEliece_GF::inv
    - BOTAN_DEBUG_ASSERT
    linkageType: ''
    returnType: Classic_McEliece_GF
    signature: Classic_McEliece_GF operator/(Classic_McEliece_GF other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:97,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - Classic_McEliece_GF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: operator+(Classic_McEliece_GF other) const
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h
    functionUses: 0
    functionsReached:
    - Botan::Classic_McEliece_GF
    - BOTAN_DEBUG_ASSERT
    linkageType: ''
    returnType: Classic_McEliece_GF
    signature: Classic_McEliece_GF operator+(Classic_McEliece_GF other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - other
    argTypes:
    - Classic_McEliece_GF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: '& operator+=(Classic_McEliece_GF other)'
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h
    functionUses: 0
    functionsReached:
    - BOTAN_DEBUG_ASSERT
    linkageType: ''
    returnType: Classic_McEliece_GF
    signature: Classic_McEliece_GF & operator+=(Classic_McEliece_GF other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - other
    argTypes:
    - Classic_McEliece_GF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: '& operator*=(Classic_McEliece_GF other)'
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h
    functionUses: 0
    functionsReached:
    - BOTAN_DEBUG_ASSERT
    linkageType: ''
    returnType: Classic_McEliece_GF
    signature: Classic_McEliece_GF & operator*=(Classic_McEliece_GF other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::elem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:127,1
    - Dst: Classic_McEliece_GF::elem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - Classic_McEliece_GF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 127
    functionName: operator==(Classic_McEliece_GF other) const
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h
    functionUses: 0
    functionsReached:
    - Botan::elem
    - Classic_McEliece_GF::elem
    linkageType: ''
    returnType: bool
    signature: bool operator==(Classic_McEliece_GF other) 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::square
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Classic_McEliece_GF
    signature: Classic_McEliece_GF square() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::elem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.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::is_zero
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h
    functionUses: 10
    functionsReached:
    - Botan::elem
    linkageType: ''
    returnType: bool
    signature: bool is_zero() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:41,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:42,1
    - Dst: Botan::log_q
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 30
    functionDepth: 3
    functionLinenumber: 30
    functionLinenumberEnd: 43
    functionName: Botan::Classic_McEliece_GF
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h
    functionUses: 11
    functionsReached:
    - Botan::log_q
    - Botan::Classic_McEliece_GF
    - BOTAN_DEBUG_ASSERT
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API Classic_McEliece_GF
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::floor_log2
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:54,1
    - Dst: CmceGfMod::get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - modulus
    argTypes:
    - CmceGfMod
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: Botan::log_q_from_mod
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h
    functionUses: 3
    functionsReached:
    - CmceGfMod::get
    - Botan::floor_log2
    linkageType: ''
    returnType: size_t
    signature: size_t log_q_from_mod(CmceGfMod modulus)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::log_q_from_mod
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 2
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: Botan::log_q
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h
    functionUses: 3
    functionsReached:
    - Botan::log_q_from_mod
    linkageType: ''
    returnType: size_t
    signature: size_t log_q() 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::elem
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: CmceGfElem
    signature: CmceGfElem elem() 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::modulus
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CmceGfMod
    signature: CmceGfMod modulus() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:81,1
    - Dst: log_q
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - elem
    argTypes:
    - CmceGfElem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: '& operator=(const CmceGfElem elem)'
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h
    functionUses: 0
    functionsReached:
    - log_q
    - CmceGfElem
    linkageType: ''
    returnType: Classic_McEliece_GF
    signature: Classic_McEliece_GF & operator=(const CmceGfElem elem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:89,1
    - Dst: Classic_McEliece_GF::inv
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - Classic_McEliece_GF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: operator/(Classic_McEliece_GF other) const
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h
    functionUses: 0
    functionsReached:
    - Classic_McEliece_GF::inv
    - BOTAN_DEBUG_ASSERT
    linkageType: ''
    returnType: Classic_McEliece_GF
    signature: Classic_McEliece_GF operator/(Classic_McEliece_GF other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:97,1
    - Dst: Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - other
    argTypes:
    - Classic_McEliece_GF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: operator+(Classic_McEliece_GF other) const
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h
    functionUses: 0
    functionsReached:
    - BOTAN_DEBUG_ASSERT
    - Classic_McEliece_GF
    linkageType: ''
    returnType: Classic_McEliece_GF
    signature: Classic_McEliece_GF operator+(Classic_McEliece_GF other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - other
    argTypes:
    - Classic_McEliece_GF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: '& operator+=(Classic_McEliece_GF other)'
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h
    functionUses: 0
    functionsReached:
    - BOTAN_DEBUG_ASSERT
    linkageType: ''
    returnType: Classic_McEliece_GF
    signature: Classic_McEliece_GF & operator+=(Classic_McEliece_GF other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - other
    argTypes:
    - Classic_McEliece_GF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: '& operator*=(Classic_McEliece_GF other)'
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h
    functionUses: 0
    functionsReached:
    - BOTAN_DEBUG_ASSERT
    linkageType: ''
    returnType: Classic_McEliece_GF
    signature: Classic_McEliece_GF & operator*=(Classic_McEliece_GF other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: elem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:127,1
    - Dst: Classic_McEliece_GF::elem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - Classic_McEliece_GF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 127
    functionName: operator==(Classic_McEliece_GF other) const
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h
    functionUses: 0
    functionsReached:
    - Classic_McEliece_GF::elem
    - elem
    linkageType: ''
    returnType: bool
    signature: bool operator==(Classic_McEliece_GF other) 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::square
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Classic_McEliece_GF
    signature: Classic_McEliece_GF square() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::elem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.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::is_zero
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h
    functionUses: 10
    functionsReached:
    - Botan::elem
    linkageType: ''
    returnType: bool
    signature: bool is_zero() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GF_Mask
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:157,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:157,1
    - Dst: expand
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:160,1
    - Dst: elem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:160,1
    - Dst: GF_Mask
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:162,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:162,1
    - Dst: elem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:162,1
    - Dst: GF_Mask
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:165,1
    - Dst: is_lte
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:165,1
    - Dst: elem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:165,1
    - Dst: elem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:165,1
    - Dst: GF_Mask
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:169,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:169,1
    - Dst: elem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:169,1
    - Dst: elem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:169,1
    - Dst: GF_Mask
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:172,1
    - Dst: Botan_Tests::test_other_key_not_set
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:172,1
    - Dst: Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:177,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:177,1
    - Dst: if_set_return
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:177,1
    - Dst: elem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:177,1
    - Dst: modulus
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:177,1
    - Dst: Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:181,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:181,1
    - Dst: select
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:181,1
    - Dst: elem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:181,1
    - Dst: elem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:181,1
    - Dst: modulus
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:181,1
    - Dst: Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:185,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:185,1
    - Dst: select
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:185,1
    - Dst: elem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:185,1
    - Dst: get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:185,1
    - Dst: modulus
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:185,1
    - Dst: select
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:188,1
    - Dst: as_bool
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 201
    functionName: GF_Mask
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h
    functionUses: 3
    functionsReached:
    - if_set_return
    - Botan_Tests::test_other_key_not_set
    - Classic_McEliece_GF
    - CmceGfElem
    - select
    - Botan::ct_is_equal
    - modulus
    - elem
    - Botan::Sodium::sodium_is_zero
    - is_lte
    - get
    - GF_Mask
    - expand
    - as_bool
    - Botan::sha512_msg_expand
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API GF_Mask
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GF_Mask
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:157,1
    - Dst: Botan::sha512_msg_expand
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 154
    functionDepth: 3
    functionLinenumber: 154
    functionLinenumberEnd: 158
    functionName: expand
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h
    functionUses: 36
    functionsReached:
    - Botan::sha512_msg_expand
    - GF_Mask
    linkageType: ''
    returnType: "public:\n      template <std::unsigned_integral T>"
    signature: "public:\n      template <std::unsigned_integral T> expand(T v)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: expand
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:160,1
    - Dst: Classic_McEliece_GF::elem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - Classic_McEliece_GF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 160
    functionName: expand
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h
    functionUses: 37
    functionsReached:
    - Classic_McEliece_GF::elem
    - expand
    linkageType: ''
    returnType: GF_Mask
    signature: GF_Mask expand(Classic_McEliece_GF v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GF_Mask
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:162,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:162,1
    - Dst: Classic_McEliece_GF::elem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - Classic_McEliece_GF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 162
    functionDepth: 3
    functionLinenumber: 162
    functionLinenumberEnd: 162
    functionName: is_zero
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h
    functionUses: 138
    functionsReached:
    - Botan::Sodium::sodium_is_zero
    - Classic_McEliece_GF::elem
    - GF_Mask
    linkageType: ''
    returnType: GF_Mask
    signature: GF_Mask is_zero(Classic_McEliece_GF v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GF_Mask
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:165,1
    - Dst: is_lte
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:165,1
    - Dst: Classic_McEliece_GF::elem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:165,1
    - Dst: Classic_McEliece_GF::elem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Classic_McEliece_GF
    - Classic_McEliece_GF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 164
    functionDepth: 3
    functionLinenumber: 164
    functionLinenumberEnd: 166
    functionName: is_lte
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h
    functionUses: 8
    functionsReached:
    - is_lte
    - Classic_McEliece_GF::elem
    - GF_Mask
    linkageType: ''
    returnType: GF_Mask
    signature: GF_Mask is_lte(Classic_McEliece_GF a, Classic_McEliece_GF b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GF_Mask
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:169,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:169,1
    - Dst: Classic_McEliece_GF::elem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:169,1
    - Dst: Classic_McEliece_GF::elem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Classic_McEliece_GF
    - Classic_McEliece_GF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 168
    functionDepth: 3
    functionLinenumber: 168
    functionLinenumberEnd: 170
    functionName: is_equal
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h
    functionUses: 113
    functionsReached:
    - Classic_McEliece_GF::elem
    - Botan::ct_is_equal
    - GF_Mask
    linkageType: ''
    returnType: GF_Mask
    signature: GF_Mask is_equal(Classic_McEliece_GF a, Classic_McEliece_GF b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GF_Mask
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:172,1
    - Dst: Botan_Tests::test_other_key_not_set
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 172
    functionDepth: 3
    functionLinenumber: 172
    functionLinenumberEnd: 172
    functionName: set
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h
    functionUses: 393
    functionsReached:
    - Botan_Tests::test_other_key_not_set
    - GF_Mask
    linkageType: ''
    returnType: GF_Mask
    signature: GF_Mask set()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - underlying_mask
    argTypes:
    - CT::Mask<uint16_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 174
    functionName: GF_Mask
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void GF_Mask(CT::Mask<uint16_t> underlying_mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:177,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:177,1
    - Dst: if_set_return
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:177,1
    - Dst: Classic_McEliece_GF::elem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:177,1
    - Dst: Classic_McEliece_GF::modulus
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - Classic_McEliece_GF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 178
    functionName: if_set_return
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h
    functionUses: 32
    functionsReached:
    - Classic_McEliece_GF::modulus
    - if_set_return
    - CmceGfElem
    - Classic_McEliece_GF
    - Classic_McEliece_GF::elem
    linkageType: ''
    returnType: Classic_McEliece_GF
    signature: Classic_McEliece_GF if_set_return(const Classic_McEliece_GF x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:181,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:181,1
    - Dst: select
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:181,1
    - Dst: Classic_McEliece_GF::elem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:181,1
    - Dst: Classic_McEliece_GF::elem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:181,1
    - Dst: Classic_McEliece_GF::modulus
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - Classic_McEliece_GF
    - Classic_McEliece_GF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 182
    functionName: select
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h
    functionUses: 46
    functionsReached:
    - Classic_McEliece_GF::modulus
    - CmceGfElem
    - Classic_McEliece_GF
    - select
    - Classic_McEliece_GF::elem
    linkageType: ''
    returnType: Classic_McEliece_GF
    signature: Classic_McEliece_GF select(const Classic_McEliece_GF x, const Classic_McEliece_GF
      y) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:185,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:185,1
    - Dst: select
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:185,1
    - Dst: Classic_McEliece_GF::elem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:185,1
    - Dst: CmceGfElem::get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:185,1
    - Dst: Classic_McEliece_GF::modulus
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - Classic_McEliece_GF
    - CmceGfElem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 186
    functionName: select
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h
    functionUses: 47
    functionsReached:
    - Classic_McEliece_GF::modulus
    - CmceGfElem
    - Classic_McEliece_GF
    - CmceGfElem::get
    - select
    - Classic_McEliece_GF::elem
    linkageType: ''
    returnType: Classic_McEliece_GF
    signature: Classic_McEliece_GF select(const Classic_McEliece_GF x, CmceGfElem
      y) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: select
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint16_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 188
    functionName: select
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h
    functionUses: 48
    functionsReached:
    - select
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t select(uint16_t x, uint16_t y) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - GF_Mask
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 193
    functionName: '& operator&=(const GF_Mask& o)'
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: GF_Mask
    signature: GF_Mask & operator&=(const GF_Mask& o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: as_bool
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 195
    functionName: as_bool
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h
    functionUses: 22
    functionsReached:
    - as_bool
    linkageType: ''
    returnType: bool
    signature: bool as_bool() 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: elem_mask
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: CT::Mask<uint16_t>
    signature: CT::Mask<uint16_t> & elem_mask()
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: Classic_McEliece_Parameter_Set::code
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:17,1
    - Dst: CmceGfMod
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:21,1
    - Dst: CmceGfMod
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:37,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - param_set
    argTypes:
    - Classic_McEliece_Parameter_Set
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 40
    functionName: Botan::determine_poly_f
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp
    functionUses: 0
    functionsReached:
    - Classic_McEliece_Parameter_Set::code
    - CmceGfMod
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: CmceGfMod
    signature: CmceGfMod determine_poly_f(Classic_McEliece_Parameter_Set param_set)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: Botan::determine_poly_f
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:43,1
    - Dst: Classic_McEliece_Parameter_Set::code
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:45,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:49,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:49,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:50,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:50,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:51,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:51,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:57,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:57,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:58,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:58,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:59,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:59,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:60,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:60,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:69,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:69,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:70,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:70,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:83,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:83,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:84,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:84,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:85,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:85,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:86,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:86,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 1
    argNames:
    - param_set
    argTypes:
    - Classic_McEliece_Parameter_Set
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 91
    functionName: Botan::determine_poly_ring
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_UNREACHABLE
    - CmceGfElem
    - Botan::determine_poly_f
    - Botan::Classic_McEliece_GF
    - Classic_McEliece_Parameter_Set::code
    linkageType: ''
    returnType: Classic_McEliece_Polynomial_Ring
    signature: Classic_McEliece_Polynomial_Ring determine_poly_ring(Classic_McEliece_Parameter_Set
      param_set)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: Classic_McEliece_Parameter_Set::code
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:17,1
    - Dst: CmceGfMod
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:21,1
    - Dst: CmceGfMod
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:37,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - param_set
    argTypes:
    - Classic_McEliece_Parameter_Set
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 40
    functionName: Botan::determine_poly_f
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp
    functionUses: 1
    functionsReached:
    - Classic_McEliece_Parameter_Set::code
    - CmceGfMod
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: CmceGfMod
    signature: CmceGfMod determine_poly_f(Classic_McEliece_Parameter_Set param_set)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: Botan::determine_poly_f
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:43,1
    - Dst: Classic_McEliece_Parameter_Set::code
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:45,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:49,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:49,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:50,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:50,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:51,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:51,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:57,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:57,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:58,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:58,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:59,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:59,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:60,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:60,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:69,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:69,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:70,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:70,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:83,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:83,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:84,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:84,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:85,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:85,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:86,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:86,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 1
    argNames:
    - param_set
    argTypes:
    - Classic_McEliece_Parameter_Set
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 91
    functionName: Botan::determine_poly_ring
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_UNREACHABLE
    - CmceGfElem
    - Botan::determine_poly_f
    - Botan::Classic_McEliece_GF
    - Classic_McEliece_Parameter_Set::code
    linkageType: ''
    returnType: Classic_McEliece_Polynomial_Ring
    signature: Classic_McEliece_Polynomial_Ring determine_poly_ring(Classic_McEliece_Parameter_Set
      param_set)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: determine_poly_ring
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:96,1
    - Dst: Classic_McEliece_Parameter_Set::code
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:98,1
    - Dst: Botan::Classic_McEliece_Parameters::Classic_McEliece_Parameters
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:101,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:101,1
    - Dst: Botan::Classic_McEliece_Parameters::Classic_McEliece_Parameters
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:105,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:105,1
    - Dst: Botan::Classic_McEliece_Parameters::Classic_McEliece_Parameters
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:111,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:111,1
    - Dst: Botan::Classic_McEliece_Parameters::Classic_McEliece_Parameters
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:117,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:117,1
    - Dst: Botan::Classic_McEliece_Parameters::Classic_McEliece_Parameters
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:123,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:123,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - set
    argTypes:
    - Classic_McEliece_Parameter_Set
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 126
    functionName: Botan::Classic_McEliece_Parameters::create
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp
    functionUses: 22
    functionsReached:
    - std::move
    - BOTAN_ASSERT_UNREACHABLE
    - determine_poly_ring
    - Botan::Classic_McEliece_Parameters::Classic_McEliece_Parameters
    - Classic_McEliece_Parameter_Set::code
    linkageType: ''
    returnType: Classic_McEliece_Parameters
    signature: Classic_McEliece_Parameters Classic_McEliece_Parameters::create(Classic_McEliece_Parameter_Set
      set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Parameters::create
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:129,1
    - Dst: Botan::Classic_McEliece_Parameter_Set::from_string
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 130
    functionName: Botan::Classic_McEliece_Parameters::create
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp
    functionUses: 23
    functionsReached:
    - Botan::Classic_McEliece_Parameter_Set::from_string
    - Botan::Classic_McEliece_Parameters::create
    linkageType: ''
    returnType: Classic_McEliece_Parameters
    signature: Classic_McEliece_Parameters Classic_McEliece_Parameters::create(std::string_view
      name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Parameters::create
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:133,1
    - Dst: Botan::Classic_McEliece_Parameter_Set::from_oid
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 134
    functionName: Botan::Classic_McEliece_Parameters::create
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp
    functionUses: 24
    functionsReached:
    - Botan::Classic_McEliece_Parameter_Set::from_oid
    - Botan::Classic_McEliece_Parameters::create
    linkageType: ''
    returnType: Classic_McEliece_Parameters
    signature: Classic_McEliece_Parameters Classic_McEliece_Parameters::create(const
      OID& oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:137,1
    - Dst: to_string
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 138
    functionName: Botan::Classic_McEliece_Parameters::object_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_string
    - to_string
    linkageType: ''
    returnType: OID
    signature: OID Classic_McEliece_Parameters::object_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:144,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - param_set
    - m
    - n
    - poly_ring
    argTypes:
    - Classic_McEliece_Parameter_Set
    - size_t
    - size_t
    - Classic_McEliece_Polynomial_Ring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: Botan::Classic_McEliece_Parameters::Classic_McEliece_Parameters
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp
    functionUses: 1
    functionsReached:
    - std::move
    - BOTAN_ASSERT
    linkageType: ''
    returnType: void
    signature: "void Classic_McEliece_Parameters::Classic_McEliece_Parameters(Classic_McEliece_Parameter_Set
      param_set,\n                                                         size_t
      m,\n                                                         size_t n,\n                                                         Classic_McEliece_Polynomial_Ring
      poly_ring)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: code
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:153,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 177
    functionName: Botan::Classic_McEliece_Parameters::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp
    functionUses: 0
    functionsReached:
    - code
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: size_t
    signature: size_t Classic_McEliece_Parameters::estimated_strength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:180,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:180,1
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:181,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:183,1
    - Dst: std::array<uint8_t, 1>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:183,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - seed
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 187
    functionName: Botan::Classic_McEliece_Parameters::prg
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - std::span<const uint8_t>::size
    - Botan::XOF::create_or_throw
    - BOTAN_ASSERT_EQUAL
    - std::array<uint8_t, 1>
    linkageType: ''
    returnType: std::unique_ptr<XOF>
    signature: std::unique_ptr<XOF> Classic_McEliece_Parameters::prg(std::span<const
      uint8_t> seed) const
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: Classic_McEliece_Parameter_Set::code
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:17,1
    - Dst: CmceGfMod
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:21,1
    - Dst: CmceGfMod
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:37,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - param_set
    argTypes:
    - Classic_McEliece_Parameter_Set
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 40
    functionName: Botan::determine_poly_f
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp
    functionUses: 2
    functionsReached:
    - Classic_McEliece_Parameter_Set::code
    - CmceGfMod
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: CmceGfMod
    signature: CmceGfMod determine_poly_f(Classic_McEliece_Parameter_Set param_set)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: Botan::determine_poly_f
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:43,1
    - Dst: Classic_McEliece_Parameter_Set::code
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:45,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:49,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:49,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:50,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:50,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:51,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:51,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:57,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:57,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:58,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:58,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:59,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:59,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:60,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:60,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:69,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:69,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:70,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:70,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:83,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:83,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:84,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:84,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:85,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:85,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:86,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:86,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 1
    argNames:
    - param_set
    argTypes:
    - Classic_McEliece_Parameter_Set
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 91
    functionName: Botan::determine_poly_ring
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_UNREACHABLE
    - CmceGfElem
    - Botan::determine_poly_f
    - Botan::Classic_McEliece_GF
    - Classic_McEliece_Parameter_Set::code
    linkageType: ''
    returnType: Classic_McEliece_Polynomial_Ring
    signature: Classic_McEliece_Polynomial_Ring determine_poly_ring(Classic_McEliece_Parameter_Set
      param_set)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: Classic_McEliece_Parameter_Set::code
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:17,1
    - Dst: CmceGfMod
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:21,1
    - Dst: CmceGfMod
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:37,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 1
    argNames:
    - param_set
    argTypes:
    - Classic_McEliece_Parameter_Set
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 40
    functionName: Botan::determine_poly_f
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp
    functionUses: 3
    functionsReached:
    - Classic_McEliece_Parameter_Set::code
    - CmceGfMod
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: CmceGfMod
    signature: CmceGfMod determine_poly_f(Classic_McEliece_Parameter_Set param_set)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: Botan::determine_poly_f
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:43,1
    - Dst: Classic_McEliece_Parameter_Set::code
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:45,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:49,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:49,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:50,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:50,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:51,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:51,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:57,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:57,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:58,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:58,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:59,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:59,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:60,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:60,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:69,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:69,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:70,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:70,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:83,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:83,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:84,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:84,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:85,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:85,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:86,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:86,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 1
    argNames:
    - param_set
    argTypes:
    - Classic_McEliece_Parameter_Set
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 91
    functionName: Botan::determine_poly_ring
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_UNREACHABLE
    - CmceGfElem
    - Botan::determine_poly_f
    - Botan::Classic_McEliece_GF
    - Classic_McEliece_Parameter_Set::code
    linkageType: ''
    returnType: Classic_McEliece_Polynomial_Ring
    signature: Classic_McEliece_Polynomial_Ring determine_poly_ring(Classic_McEliece_Parameter_Set
      param_set)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: determine_poly_ring
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:96,1
    - Dst: Classic_McEliece_Parameter_Set::code
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:98,1
    - Dst: Botan::Classic_McEliece_Parameters::Classic_McEliece_Parameters
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:101,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:101,1
    - Dst: Botan::Classic_McEliece_Parameters::Classic_McEliece_Parameters
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:105,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:105,1
    - Dst: Botan::Classic_McEliece_Parameters::Classic_McEliece_Parameters
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:111,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:111,1
    - Dst: Botan::Classic_McEliece_Parameters::Classic_McEliece_Parameters
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:117,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:117,1
    - Dst: Botan::Classic_McEliece_Parameters::Classic_McEliece_Parameters
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:123,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:123,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - set
    argTypes:
    - Classic_McEliece_Parameter_Set
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 126
    functionName: Botan::Classic_McEliece_Parameters::create
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp
    functionUses: 24
    functionsReached:
    - std::move
    - BOTAN_ASSERT_UNREACHABLE
    - determine_poly_ring
    - Botan::Classic_McEliece_Parameters::Classic_McEliece_Parameters
    - Classic_McEliece_Parameter_Set::code
    linkageType: ''
    returnType: Classic_McEliece_Parameters
    signature: Classic_McEliece_Parameters Classic_McEliece_Parameters::create(Classic_McEliece_Parameter_Set
      set)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Parameters::create
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:129,1
    - Dst: Botan::Classic_McEliece_Parameter_Set::from_string
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 130
    functionName: Botan::Classic_McEliece_Parameters::create
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp
    functionUses: 25
    functionsReached:
    - Botan::Classic_McEliece_Parameter_Set::from_string
    - Botan::Classic_McEliece_Parameters::create
    linkageType: ''
    returnType: Classic_McEliece_Parameters
    signature: Classic_McEliece_Parameters Classic_McEliece_Parameters::create(std::string_view
      name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Parameters::create
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:133,1
    - Dst: Botan::Classic_McEliece_Parameter_Set::from_oid
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 134
    functionName: Botan::Classic_McEliece_Parameters::create
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp
    functionUses: 26
    functionsReached:
    - Botan::Classic_McEliece_Parameter_Set::from_oid
    - Botan::Classic_McEliece_Parameters::create
    linkageType: ''
    returnType: Classic_McEliece_Parameters
    signature: Classic_McEliece_Parameters Classic_McEliece_Parameters::create(const
      OID& oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:137,1
    - Dst: to_string
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 138
    functionName: Botan::Classic_McEliece_Parameters::object_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_string
    - to_string
    linkageType: ''
    returnType: OID
    signature: OID Classic_McEliece_Parameters::object_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:144,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - param_set
    - m
    - n
    - poly_ring
    argTypes:
    - Classic_McEliece_Parameter_Set
    - size_t
    - size_t
    - Classic_McEliece_Polynomial_Ring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 146
    functionName: Botan::Classic_McEliece_Parameters::Classic_McEliece_Parameters
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp
    functionUses: 2
    functionsReached:
    - std::move
    - BOTAN_ASSERT
    linkageType: ''
    returnType: void
    signature: "void Classic_McEliece_Parameters::Classic_McEliece_Parameters(Classic_McEliece_Parameter_Set
      param_set,\n                                                         size_t
      m,\n                                                         size_t n,\n                                                         Classic_McEliece_Polynomial_Ring
      poly_ring)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: code
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:153,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 177
    functionName: Botan::Classic_McEliece_Parameters::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp
    functionUses: 0
    functionsReached:
    - code
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: size_t
    signature: size_t Classic_McEliece_Parameters::estimated_strength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:180,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:180,1
    - Dst: Botan::XOF::create_or_throw
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:181,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:183,1
    - Dst: std::array<uint8_t, 1>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:183,1
    - Dst: auto::update
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - seed
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 187
    functionName: Botan::Classic_McEliece_Parameters::prg
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.cpp
    functionUses: 0
    functionsReached:
    - auto::update
    - std::span<const uint8_t>::size
    - Botan::XOF::create_or_throw
    - BOTAN_ASSERT_EQUAL
    - std::array<uint8_t, 1>
    linkageType: ''
    returnType: std::unique_ptr<XOF>
    signature: std::unique_ptr<XOF> Classic_McEliece_Parameters::prg(std::span<const
      uint8_t> seed) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:19,1
    - Dst: Classic_McEliece_GF::modulus
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:19,1
    - Dst: coef_at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:19,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:21,1
    - Dst: Classic_McEliece_GF::modulus
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:21,1
    - Dst: rbegin
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:24,1
    - Dst: rend
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - a
    argTypes:
    - Classic_McEliece_GF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 30
    functionName: Classic_McEliece_Polynomial::operator()(Classic_McEliece_GF a) const
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp
    functionUses: 0
    functionsReached:
    - rbegin
    - coef_at
    - Classic_McEliece_GF::modulus
    - CmceGfElem
    - BOTAN_DEBUG_ASSERT
    - rend
    linkageType: ''
    returnType: Classic_McEliece_GF
    signature: Classic_McEliece_GF Classic_McEliece_Polynomial::operator()(Classic_McEliece_GF
      a) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:34,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:38,1
    - Dst: coef_at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:38,1
    - Dst: coef_at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:38,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:44,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:44,1
    - Dst: std::vector::erase
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:48,1
    - Dst: std::vector::begin
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:48,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:48,1
    - Dst: Classic_McEliece_Polynomial
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:50,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:50,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - Classic_McEliece_Polynomial
    - Classic_McEliece_Polynomial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 51
    functionName: Botan::Classic_McEliece_Polynomial_Ring::multiply
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp
    functionUses: 0
    functionsReached:
    - std::vector::begin
    - std::move
    - coef_at
    - std::vector::at
    - CmceGfElem
    - Classic_McEliece_Polynomial
    - std::vector::erase
    - std::vector::end
    linkageType: ''
    returnType: Classic_McEliece_Polynomial
    signature: "Classic_McEliece_Polynomial Classic_McEliece_Polynomial_Ring::multiply(const
      Classic_McEliece_Polynomial& a,\n                                                                       const
      Classic_McEliece_Polynomial& b) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:55,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:55,1
    - Dst: Botan::Classic_McEliece_Polynomial_Ring::create_element_from_coef
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:56,1
    - Dst: load_le<std::vector<CmceGfElem>>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: Botan::Classic_McEliece_Polynomial_Ring::create_element_from_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp
    functionUses: 0
    functionsReached:
    - Botan::Classic_McEliece_Polynomial_Ring::create_element_from_coef
    - load_le<std::vector<CmceGfElem>>
    - BOTAN_ARG_CHECK
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: Classic_McEliece_Polynomial
    signature: "Classic_McEliece_Polynomial Classic_McEliece_Polynomial_Ring::create_element_from_bytes(\n
      \  std::span<const uint8_t> bytes) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:62,1
    - Dst: Botan::log_q_from_mod
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:62,1
    - Dst: transform
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:63,1
    - Dst: begin
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:63,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:63,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:63,1
    - Dst: Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:64,1
    - Dst: Classic_McEliece_Polynomial
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' coeff_vec'
    argTypes:
    - std::vector<CmceGfElem>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 67
    functionName: Botan::Classic_McEliece_Polynomial_Ring::create_element_from_coef
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp
    functionUses: 1
    functionsReached:
    - Botan::log_q_from_mod
    - CmceGfElem
    - Classic_McEliece_GF
    - Classic_McEliece_Polynomial
    - std::back_inserter
    - transform
    - end
    - begin
    linkageType: ''
    returnType: Classic_McEliece_Polynomial
    signature: "Classic_McEliece_Polynomial Classic_McEliece_Polynomial_Ring::create_element_from_coef(\n
      \  const std::vector<CmceGfElem>& coeff_vec) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Classic_McEliece_Polynomial_Ring::Big_F_Coefficient
    - Classic_McEliece_Polynomial_Ring::Big_F_Coefficient
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: "operator==(const Classic_McEliece_Polynomial_Ring::Big_F_Coefficient&
      lhs,\n                const Classic_McEliece_Polynomial_Ring::Big_F_Coefficient&
      rhs)"
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool operator==(const Classic_McEliece_Polynomial_Ring::Big_F_Coefficient&
      lhs,\n                const Classic_McEliece_Polynomial_Ring::Big_F_Coefficient&
      rhs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Polynomial_Ring::create_element_from_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:76,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:79,1
    - Dst: Botan::Classic_McEliece_Polynomial_Ring::create_element_from_coef
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:79,1
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:79,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:80,1
    - Dst: std::vector<CmceGfElem>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:80,1
    - Dst: degree
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:80,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:80,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:82,1
    - Dst: degree
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:84,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:85,1
    - Dst: Botan::Classic_McEliece_Polynomial_Ring::multiply
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:85,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:85,1
    - Dst: degree
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:89,1
    - Dst: degree
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:90,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:91,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:91,1
    - Dst: degree
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:93,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:94,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:94,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:94,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:98,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:99,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:105,1
    - Dst: degree
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:107,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:108,1
    - Dst: degree
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:111,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:113,1
    - Dst: degree
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:115,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:116,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:116,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:122,1
    - Dst: degree
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:122,1
    - Dst: auto::emplace_back
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:124,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:124,1
    - Dst: poly_f
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:124,1
    - Dst: Classic_McEliece_Minimal_Polynomial
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:126,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:126,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 1
    argNames:
    - seed
    argTypes:
    - StrongSpan<const CmceIrreducibleBits>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 127
    functionName: Botan::Classic_McEliece_Polynomial_Ring::compute_minimal_polynomial
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp
    functionUses: 0
    functionsReached:
    - concat
    - auto::emplace_back
    - std::move
    - std::vector::push_back
    - degree
    - CmceGfElem
    - Botan::Classic_McEliece_Polynomial_Ring::multiply
    - std::vector::at
    - Botan::Classic_McEliece_Polynomial_Ring::create_element_from_coef
    - Botan::Classic_McEliece_Polynomial_Ring::create_element_from_bytes
    - Classic_McEliece_Minimal_Polynomial
    - poly_f
    - Botan::Sodium::sodium_is_zero
    - Botan::CT::unpoison
    - std::vector<CmceGfElem>
    - auto::if_set_return
    linkageType: ''
    returnType: std::optional<Classic_McEliece_Minimal_Polynomial>
    signature: "std::optional<Classic_McEliece_Minimal_Polynomial> Classic_McEliece_Polynomial_Ring::compute_minimal_polynomial(\n
      \  StrongSpan<const CmceIrreducibleBits> seed) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:130,1
    - Dst: coef
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:130,1
    - Dst: coef
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:131,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:133,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:133,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:134,1
    - Dst: store_le
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:137,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:137,1
    - Dst: elem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:137,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:139,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 141
    functionName: Botan::Classic_McEliece_Minimal_Polynomial::serialize
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - store_le
    - BufferStuffer::full
    - size
    - BufferStuffer::next
    - coef
    - elem
    - auto::size
    - std::span
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Classic_McEliece_Minimal_Polynomial::serialize()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:145,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:145,1
    - Dst: load_le<std::vector<CmceGfElem>>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:146,1
    - Dst: transform
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:148,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:148,1
    - Dst: auto::end
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:148,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:148,1
    - Dst: Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:149,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:152,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:152,1
    - Dst: Classic_McEliece_Minimal_Polynomial
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - bytes
    - poly_f
    argTypes:
    - std::span<const uint8_t>
    - CmceGfMod
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 155
    functionName: Botan::Classic_McEliece_Minimal_Polynomial::from_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp
    functionUses: 4
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    - Classic_McEliece_GF
    - auto::end
    - std::vector::emplace_back
    - CmceGfElem
    - load_le<std::vector<CmceGfElem>>
    - std::back_inserter
    - Classic_McEliece_Minimal_Polynomial
    - transform
    - auto::begin
    linkageType: ''
    returnType: Classic_McEliece_Minimal_Polynomial
    signature: "Classic_McEliece_Minimal_Polynomial Classic_McEliece_Minimal_Polynomial::from_bytes(std::span<const
      uint8_t> bytes,\n                                                                                    CmceGfMod
      poly_f)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:19,1
    - Dst: Classic_McEliece_GF::modulus
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:19,1
    - Dst: coef_at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:19,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:21,1
    - Dst: Classic_McEliece_GF::modulus
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:21,1
    - Dst: rbegin
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:24,1
    - Dst: rend
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:24,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - a
    argTypes:
    - Classic_McEliece_GF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 30
    functionName: Classic_McEliece_Polynomial::operator()(Classic_McEliece_GF a) const
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp
    functionUses: 0
    functionsReached:
    - rbegin
    - coef_at
    - Classic_McEliece_GF::modulus
    - CmceGfElem
    - BOTAN_DEBUG_ASSERT
    - rend
    linkageType: ''
    returnType: Classic_McEliece_GF
    signature: Classic_McEliece_GF Classic_McEliece_Polynomial::operator()(Classic_McEliece_GF
      a) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:34,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:38,1
    - Dst: coef_at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:38,1
    - Dst: coef_at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:38,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:44,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:44,1
    - Dst: std::vector::erase
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:48,1
    - Dst: std::vector::begin
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:48,1
    - Dst: std::vector::end
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:48,1
    - Dst: Classic_McEliece_Polynomial
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:50,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:50,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - ' a'
    - ' b'
    argTypes:
    - Classic_McEliece_Polynomial
    - Classic_McEliece_Polynomial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 51
    functionName: Botan::Classic_McEliece_Polynomial_Ring::multiply
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp
    functionUses: 1
    functionsReached:
    - std::vector::begin
    - std::move
    - coef_at
    - std::vector::at
    - CmceGfElem
    - Classic_McEliece_Polynomial
    - std::vector::erase
    - std::vector::end
    linkageType: ''
    returnType: Classic_McEliece_Polynomial
    signature: "Classic_McEliece_Polynomial Classic_McEliece_Polynomial_Ring::multiply(const
      Classic_McEliece_Polynomial& a,\n                                                                       const
      Classic_McEliece_Polynomial& b) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:55,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:55,1
    - Dst: Botan::Classic_McEliece_Polynomial_Ring::create_element_from_coef
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:56,1
    - Dst: load_le<std::vector<CmceGfElem>>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 3
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: Botan::Classic_McEliece_Polynomial_Ring::create_element_from_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp
    functionUses: 1
    functionsReached:
    - Botan::Classic_McEliece_Polynomial_Ring::create_element_from_coef
    - load_le<std::vector<CmceGfElem>>
    - BOTAN_ARG_CHECK
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: Classic_McEliece_Polynomial
    signature: "Classic_McEliece_Polynomial Classic_McEliece_Polynomial_Ring::create_element_from_bytes(\n
      \  std::span<const uint8_t> bytes) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:62,1
    - Dst: Botan::log_q_from_mod
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:62,1
    - Dst: transform
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:63,1
    - Dst: begin
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:63,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:63,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:63,1
    - Dst: Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:64,1
    - Dst: Classic_McEliece_Polynomial
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' coeff_vec'
    argTypes:
    - std::vector<CmceGfElem>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 67
    functionName: Botan::Classic_McEliece_Polynomial_Ring::create_element_from_coef
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp
    functionUses: 3
    functionsReached:
    - Botan::log_q_from_mod
    - CmceGfElem
    - Classic_McEliece_GF
    - Classic_McEliece_Polynomial
    - std::back_inserter
    - transform
    - end
    - begin
    linkageType: ''
    returnType: Classic_McEliece_Polynomial
    signature: "Classic_McEliece_Polynomial Classic_McEliece_Polynomial_Ring::create_element_from_coef(\n
      \  const std::vector<CmceGfElem>& coeff_vec) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - Classic_McEliece_Polynomial_Ring::Big_F_Coefficient
    - Classic_McEliece_Polynomial_Ring::Big_F_Coefficient
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: "operator==(const Classic_McEliece_Polynomial_Ring::Big_F_Coefficient&
      lhs,\n                const Classic_McEliece_Polynomial_Ring::Big_F_Coefficient&
      rhs)"
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool operator==(const Classic_McEliece_Polynomial_Ring::Big_F_Coefficient&
      lhs,\n                const Classic_McEliece_Polynomial_Ring::Big_F_Coefficient&
      rhs)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Polynomial_Ring::create_element_from_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:76,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:79,1
    - Dst: Botan::Classic_McEliece_Polynomial_Ring::create_element_from_coef
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:79,1
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:79,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:80,1
    - Dst: std::vector<CmceGfElem>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:80,1
    - Dst: degree
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:80,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:80,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:82,1
    - Dst: degree
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:84,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:85,1
    - Dst: Botan::Classic_McEliece_Polynomial_Ring::multiply
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:85,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:85,1
    - Dst: degree
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:89,1
    - Dst: degree
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:90,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:91,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:91,1
    - Dst: degree
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:93,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:94,1
    - Dst: auto::if_set_return
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:94,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:94,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:98,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:99,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:105,1
    - Dst: degree
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:107,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:108,1
    - Dst: degree
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:111,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:113,1
    - Dst: degree
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:115,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:116,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:116,1
    - Dst: std::vector::at
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:122,1
    - Dst: degree
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:122,1
    - Dst: auto::emplace_back
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:124,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:124,1
    - Dst: poly_f
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:124,1
    - Dst: Classic_McEliece_Minimal_Polynomial
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:126,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:126,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 1
    argNames:
    - seed
    argTypes:
    - StrongSpan<const CmceIrreducibleBits>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 127
    functionName: Botan::Classic_McEliece_Polynomial_Ring::compute_minimal_polynomial
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp
    functionUses: 0
    functionsReached:
    - concat
    - auto::emplace_back
    - std::move
    - std::vector::push_back
    - degree
    - CmceGfElem
    - Botan::Classic_McEliece_Polynomial_Ring::multiply
    - std::vector::at
    - Botan::Classic_McEliece_Polynomial_Ring::create_element_from_coef
    - Botan::Classic_McEliece_Polynomial_Ring::create_element_from_bytes
    - Classic_McEliece_Minimal_Polynomial
    - poly_f
    - Botan::Sodium::sodium_is_zero
    - Botan::CT::unpoison
    - std::vector<CmceGfElem>
    - auto::if_set_return
    linkageType: ''
    returnType: std::optional<Classic_McEliece_Minimal_Polynomial>
    signature: "std::optional<Classic_McEliece_Minimal_Polynomial> Classic_McEliece_Polynomial_Ring::compute_minimal_polynomial(\n
      \  StrongSpan<const CmceIrreducibleBits> seed) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:130,1
    - Dst: coef
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:130,1
    - Dst: coef
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:131,1
    - Dst: std::span
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:133,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:133,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:134,1
    - Dst: store_le
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:137,1
    - Dst: BufferStuffer::next
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:137,1
    - Dst: elem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:137,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:139,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 141
    functionName: Botan::Classic_McEliece_Minimal_Polynomial::serialize
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - store_le
    - BufferStuffer::full
    - size
    - BufferStuffer::next
    - coef
    - elem
    - auto::size
    - std::span
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Classic_McEliece_Minimal_Polynomial::serialize()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:145,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:145,1
    - Dst: load_le<std::vector<CmceGfElem>>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:146,1
    - Dst: transform
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:148,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:148,1
    - Dst: auto::end
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:148,1
    - Dst: std::back_inserter
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:148,1
    - Dst: Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:149,1
    - Dst: std::vector::emplace_back
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:152,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:152,1
    - Dst: Classic_McEliece_Minimal_Polynomial
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - bytes
    - poly_f
    argTypes:
    - std::span<const uint8_t>
    - CmceGfMod
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 155
    functionName: Botan::Classic_McEliece_Minimal_Polynomial::from_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_poly.cpp
    functionUses: 4
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::span<const uint8_t>::size
    - Classic_McEliece_GF
    - auto::end
    - std::vector::emplace_back
    - CmceGfElem
    - load_le<std::vector<CmceGfElem>>
    - std::back_inserter
    - Classic_McEliece_Minimal_Polynomial
    - transform
    - auto::begin
    linkageType: ''
    returnType: Classic_McEliece_Minimal_Polynomial
    signature: "Classic_McEliece_Minimal_Polynomial Classic_McEliece_Minimal_Polynomial::from_bytes(std::span<const
      uint8_t> bytes,\n                                                                                    CmceGfMod
      poly_f)"
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameter_set.cpp:67,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameter_set.cpp:67,1
    - Dst: Classic_McEliece_Parameter_Set
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameter_set.cpp:69,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 52
    argCount: 1
    argNames:
    - nm
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 70
    functionName: Botan::Classic_McEliece_Parameter_Set::from_string
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameter_set.cpp
    functionUses: 8
    functionsReached:
    - Classic_McEliece_Parameter_Set
    - Invalid_Argument
    - fmt
    linkageType: ''
    returnType: Classic_McEliece_Parameter_Set
    signature: Classic_McEliece_Parameter_Set Classic_McEliece_Parameter_Set::from_string(std::string_view
      nm)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameter_set.cpp:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 108
    functionName: Botan::Classic_McEliece_Parameter_Set::to_string
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameter_set.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: std::string
    signature: std::string Classic_McEliece_Parameter_Set::to_string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Parameter_Set::from_string
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameter_set.cpp:111,1
    - Dst: to_formatted_string
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameter_set.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: Botan::Classic_McEliece_Parameter_Set::from_oid
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameter_set.cpp
    functionUses: 6
    functionsReached:
    - Botan::Classic_McEliece_Parameter_Set::from_string
    - to_formatted_string
    linkageType: ''
    returnType: Classic_McEliece_Parameter_Set
    signature: Classic_McEliece_Parameter_Set Classic_McEliece_Parameter_Set::from_oid(const
      OID& oid)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameter_set.cpp:67,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameter_set.cpp:67,1
    - Dst: Classic_McEliece_Parameter_Set
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameter_set.cpp:69,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 52
    argCount: 1
    argNames:
    - nm
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 70
    functionName: Botan::Classic_McEliece_Parameter_Set::from_string
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameter_set.cpp
    functionUses: 9
    functionsReached:
    - Classic_McEliece_Parameter_Set
    - Invalid_Argument
    - fmt
    linkageType: ''
    returnType: Classic_McEliece_Parameter_Set
    signature: Classic_McEliece_Parameter_Set Classic_McEliece_Parameter_Set::from_string(std::string_view
      nm)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameter_set.cpp:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 108
    functionName: Botan::Classic_McEliece_Parameter_Set::to_string
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameter_set.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: std::string
    signature: std::string Classic_McEliece_Parameter_Set::to_string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_Parameter_Set::from_string
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameter_set.cpp:111,1
    - Dst: to_formatted_string
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameter_set.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: Botan::Classic_McEliece_Parameter_Set::from_oid
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameter_set.cpp
    functionUses: 6
    functionsReached:
    - Botan::Classic_McEliece_Parameter_Set::from_string
    - to_formatted_string
    linkageType: ''
    returnType: Classic_McEliece_Parameter_Set
    signature: Classic_McEliece_Parameter_Set Classic_McEliece_Parameter_Set::from_oid(const
      OID& oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - code
    argTypes:
    - Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: Botan::Classic_McEliece_Parameter_Set
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameter_set.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Classic_McEliece_Parameter_Set(Code code)
  - 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::code
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameter_set.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Code
    signature: Code code() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Classic_McEliece_Parameter_Set
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: operator==(const Classic_McEliece_Parameter_Set& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameter_set.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Classic_McEliece_Parameter_Set& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - code
    argTypes:
    - Code
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: Botan::Classic_McEliece_Parameter_Set
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameter_set.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Classic_McEliece_Parameter_Set(Code code)
  - 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::code
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameter_set.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Code
    signature: Code code() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Classic_McEliece_Parameter_Set
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: operator==(const Classic_McEliece_Parameter_Set& other) const
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameter_set.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const Classic_McEliece_Parameter_Set& other) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::degree
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:105,1
    - Dst: Botan::m
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:138,1
    - Dst: Botan::floor_log2
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:138,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:138,1
    - Dst: Botan::t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:139,1
    - Dst: Botan::poly_f
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:146,1
    - Dst: Botan::ell
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:158,1
    - Dst: Botan::t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:168,1
    - Dst: Botan::m
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:173,1
    - Dst: Botan::m
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:173,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:178,1
    - Dst: Botan::seed_len
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:185,1
    - Dst: Botan::sk_c_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:185,1
    - Dst: Botan::sk_poly_g_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:185,1
    - Dst: Botan::sk_alpha_control_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:185,1
    - Dst: Botan::sk_s_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:185,1
    - Dst: Botan::t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:191,1
    - Dst: Botan::m
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:191,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:200,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:200,1
    - Dst: Botan::pk_no_cols
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:205,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:212,1
    - Dst: Botan::pk_row_size_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:212,1
    - Dst: Botan::ceil_division
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:217,1
    - Dst: Botan::m
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:217,1
    - Dst: Botan::t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:217,1
    - Dst: Botan::ell
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:224,1
    - Dst: Botan::is_pc
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:230,1
    - Dst: Botan::encode_out_size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:232,1
    - Dst: Botan::hash_out_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:232,1
    - Dst: Botan::encode_out_size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:234,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:257,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:265,1
    - Dst: Botan::poly_f
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:265,1
    - Dst: Botan::Classic_McEliece_Parameters
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:268,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 29
    functionDepth: 3
    functionLinenumber: 29
    functionLinenumberEnd: 277
    functionName: Botan::Classic_McEliece_Parameters
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 1
    functionsReached:
    - Botan::seed_len
    - Botan::Classic_McEliece_Parameters
    - Botan::sk_c_bytes
    - Botan::t
    - Botan::degree
    - Botan::n
    - Botan::pk_row_size_bytes
    - Botan::m
    - Botan::sk_alpha_control_bytes
    - Botan::floor_log2
    - Botan::ell
    - Botan::hash_out_bytes
    - Botan::HashFunction::create_or_throw
    - Botan::sk_poly_g_bytes
    - Botan::Classic_McEliece_GF
    - Botan::is_pc
    - Botan::poly_f
    - Botan::sk_s_bytes
    - Botan::encode_out_size
    - Botan::pk_no_rows
    - Botan::pk_no_cols
    - Botan::ceil_division
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API Classic_McEliece_Parameters
  - 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::parameter_set
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Classic_McEliece_Parameter_Set
    signature: Classic_McEliece_Parameter_Set parameter_set() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 66
    functionName: Botan::is_pc
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_pc() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 81
    functionName: Botan::is_f
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_f() 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::m
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 5
    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: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: Botan::q
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t q() 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::n
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 54
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t n() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::degree
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: Botan::t
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 13
    functionsReached:
    - Botan::degree
    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: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: Botan::ell
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ell()
  - 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::sigma1
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t sigma1()
  - 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::sigma2
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t sigma2()
  - 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: Botan::mu
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t mu()
  - 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::nu
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t nu()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::m
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:138,1
    - Dst: Botan::floor_log2
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:138,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:138,1
    - Dst: Botan::t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 140
    functionName: Botan::tau
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 0
    functionsReached:
    - Botan::m
    - Botan::t
    - Botan::n
    - Botan::floor_log2
    linkageType: ''
    returnType: size_t
    signature: size_t tau() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::poly_f
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h: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::poly_f
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 2
    functionsReached:
    - Botan::poly_f
    linkageType: ''
    returnType: CmceGfMod
    signature: CmceGfMod poly_f() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ell
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 158
    functionName: Botan::seed_len
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 3
    functionsReached:
    - Botan::ell
    linkageType: ''
    returnType: size_t
    signature: size_t seed_len()
  - 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::sk_c_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t sk_c_bytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:168,1
    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::sk_poly_g_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 1
    functionsReached:
    - Botan::t
    linkageType: ''
    returnType: size_t
    signature: size_t sk_poly_g_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::m
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:173,1
    - Dst: Botan::m
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 173
    functionName: Botan::sk_alpha_control_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 1
    functionsReached:
    - Botan::m
    linkageType: ''
    returnType: size_t
    signature: size_t sk_alpha_control_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 178
    functionName: Botan::sk_s_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 1
    functionsReached:
    - Botan::n
    linkageType: ''
    returnType: size_t
    signature: size_t sk_s_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::seed_len
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:185,1
    - Dst: Botan::sk_c_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:185,1
    - Dst: Botan::sk_poly_g_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:185,1
    - Dst: Botan::sk_alpha_control_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:185,1
    - Dst: Botan::sk_s_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: Botan::sk_size_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 0
    functionsReached:
    - Botan::sk_alpha_control_bytes
    - Botan::sk_s_bytes
    - Botan::seed_len
    - Botan::sk_poly_g_bytes
    - Botan::sk_c_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t sk_size_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:191,1
    - Dst: Botan::m
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 191
    functionName: Botan::pk_no_rows
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 21
    functionsReached:
    - Botan::m
    - Botan::t
    linkageType: ''
    returnType: size_t
    signature: size_t pk_no_rows() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:200,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 200
    functionName: Botan::pk_no_cols
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 5
    functionsReached:
    - Botan::n
    - Botan::pk_no_rows
    linkageType: ''
    returnType: size_t
    signature: size_t pk_no_cols() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::pk_no_cols
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 205
    functionName: Botan::pk_row_size_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 9
    functionsReached:
    - Botan::pk_no_cols
    linkageType: ''
    returnType: size_t
    signature: size_t pk_row_size_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:212,1
    - Dst: Botan::pk_row_size_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 212
    functionDepth: 4
    functionLinenumber: 212
    functionLinenumberEnd: 212
    functionName: Botan::pk_size_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 8
    functionsReached:
    - Botan::pk_no_rows
    - Botan::pk_row_size_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t pk_size_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ceil_division
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:217,1
    - Dst: Botan::m
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:217,1
    - Dst: Botan::t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 217
    functionName: Botan::encode_out_size
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 1
    functionsReached:
    - Botan::m
    - Botan::t
    - Botan::ceil_division
    linkageType: ''
    returnType: size_t
    signature: size_t encode_out_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ell
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 224
    functionName: Botan::hash_out_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 1
    functionsReached:
    - Botan::ell
    linkageType: ''
    returnType: size_t
    signature: size_t hash_out_bytes()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::is_pc
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:230,1
    - Dst: Botan::encode_out_size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:232,1
    - Dst: Botan::hash_out_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:232,1
    - Dst: Botan::encode_out_size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 236
    functionName: Botan::ciphertext_size
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 0
    functionsReached:
    - Botan::hash_out_bytes
    - Botan::encode_out_size
    - Botan::is_pc
    linkageType: ''
    returnType: size_t
    signature: size_t ciphertext_size() const
  - 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::poly_ring
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: Classic_McEliece_Polynomial_Ring
    signature: Classic_McEliece_Polynomial_Ring & poly_ring() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 257
    functionDepth: 3
    functionLinenumber: 257
    functionLinenumberEnd: 257
    functionName: Botan::hash_func
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> hash_func() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:265,1
    - Dst: Botan::poly_f
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - elem
    argTypes:
    - CmceGfElem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 265
    functionName: Botan::gf
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 0
    functionsReached:
    - Botan::poly_f
    - Botan::Classic_McEliece_GF
    linkageType: ''
    returnType: Classic_McEliece_GF
    signature: Classic_McEliece_GF gf(CmceGfElem elem) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::degree
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:105,1
    - Dst: Botan::m
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:138,1
    - Dst: Botan::floor_log2
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:138,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:138,1
    - Dst: Botan::t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:139,1
    - Dst: Botan::poly_f
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:146,1
    - Dst: Botan::ell
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:158,1
    - Dst: Botan::t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:168,1
    - Dst: Botan::m
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:173,1
    - Dst: Botan::m
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:173,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:178,1
    - Dst: Botan::seed_len
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:185,1
    - Dst: Botan::sk_c_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:185,1
    - Dst: Botan::sk_poly_g_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:185,1
    - Dst: Botan::sk_alpha_control_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:185,1
    - Dst: Botan::sk_s_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:185,1
    - Dst: Botan::t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:191,1
    - Dst: Botan::m
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:191,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:200,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:200,1
    - Dst: Botan::pk_no_cols
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:205,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:212,1
    - Dst: Botan::pk_row_size_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:212,1
    - Dst: Botan::ceil_division
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:217,1
    - Dst: Botan::m
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:217,1
    - Dst: Botan::t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:217,1
    - Dst: Botan::ell
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:224,1
    - Dst: Botan::is_pc
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:230,1
    - Dst: Botan::encode_out_size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:232,1
    - Dst: Botan::hash_out_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:232,1
    - Dst: Botan::encode_out_size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:234,1
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:257,1
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:265,1
    - Dst: Botan::poly_f
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:265,1
    - Dst: Botan::Classic_McEliece_Parameters
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:268,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 29
    functionDepth: 4
    functionLinenumber: 29
    functionLinenumberEnd: 277
    functionName: Botan::Classic_McEliece_Parameters
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 2
    functionsReached:
    - Botan::seed_len
    - Botan::Classic_McEliece_Parameters
    - Botan::sk_c_bytes
    - Botan::t
    - Botan::degree
    - Botan::n
    - Botan::pk_row_size_bytes
    - Botan::m
    - Botan::sk_alpha_control_bytes
    - Botan::floor_log2
    - Botan::ell
    - Botan::hash_out_bytes
    - Botan::HashFunction::create_or_throw
    - Botan::sk_poly_g_bytes
    - Botan::Classic_McEliece_GF
    - Botan::is_pc
    - Botan::poly_f
    - Botan::sk_s_bytes
    - Botan::encode_out_size
    - Botan::pk_no_rows
    - Botan::pk_no_cols
    - Botan::ceil_division
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API Classic_McEliece_Parameters
  - 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::parameter_set
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Classic_McEliece_Parameter_Set
    signature: Classic_McEliece_Parameter_Set parameter_set() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 66
    functionName: Botan::is_pc
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_pc() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 81
    functionName: Botan::is_f
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_f() 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::m
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 10
    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: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: Botan::q
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t q() 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::n
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 58
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t n() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::degree
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 105
    functionName: Botan::t
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 18
    functionsReached:
    - Botan::degree
    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: 110
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 110
    functionName: Botan::ell
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ell()
  - 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::sigma1
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t sigma1()
  - 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::sigma2
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t sigma2()
  - 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: Botan::mu
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t mu()
  - 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::nu
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t nu()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::m
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:138,1
    - Dst: Botan::floor_log2
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:138,1
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:138,1
    - Dst: Botan::t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 140
    functionName: Botan::tau
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 0
    functionsReached:
    - Botan::m
    - Botan::t
    - Botan::n
    - Botan::floor_log2
    linkageType: ''
    returnType: size_t
    signature: size_t tau() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::poly_f
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h: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::poly_f
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 5
    functionsReached:
    - Botan::poly_f
    linkageType: ''
    returnType: CmceGfMod
    signature: CmceGfMod poly_f() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ell
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 158
    functionName: Botan::seed_len
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 5
    functionsReached:
    - Botan::ell
    linkageType: ''
    returnType: size_t
    signature: size_t seed_len()
  - 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::sk_c_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t sk_c_bytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:168,1
    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::sk_poly_g_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 3
    functionsReached:
    - Botan::t
    linkageType: ''
    returnType: size_t
    signature: size_t sk_poly_g_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::m
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:173,1
    - Dst: Botan::m
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 173
    functionName: Botan::sk_alpha_control_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 3
    functionsReached:
    - Botan::m
    linkageType: ''
    returnType: size_t
    signature: size_t sk_alpha_control_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 178
    functionName: Botan::sk_s_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 3
    functionsReached:
    - Botan::n
    linkageType: ''
    returnType: size_t
    signature: size_t sk_s_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::seed_len
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:185,1
    - Dst: Botan::sk_c_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:185,1
    - Dst: Botan::sk_poly_g_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:185,1
    - Dst: Botan::sk_alpha_control_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:185,1
    - Dst: Botan::sk_s_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: Botan::sk_size_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 0
    functionsReached:
    - Botan::sk_alpha_control_bytes
    - Botan::sk_s_bytes
    - Botan::seed_len
    - Botan::sk_poly_g_bytes
    - Botan::sk_c_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t sk_size_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:191,1
    - Dst: Botan::m
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 191
    functionName: Botan::pk_no_rows
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 24
    functionsReached:
    - Botan::m
    - Botan::t
    linkageType: ''
    returnType: size_t
    signature: size_t pk_no_rows() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::n
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:200,1
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 200
    functionDepth: 2
    functionLinenumber: 200
    functionLinenumberEnd: 200
    functionName: Botan::pk_no_cols
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 7
    functionsReached:
    - Botan::n
    - Botan::pk_no_rows
    linkageType: ''
    returnType: size_t
    signature: size_t pk_no_cols() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::pk_no_cols
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 205
    functionDepth: 3
    functionLinenumber: 205
    functionLinenumberEnd: 205
    functionName: Botan::pk_row_size_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 11
    functionsReached:
    - Botan::pk_no_cols
    linkageType: ''
    returnType: size_t
    signature: size_t pk_row_size_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::pk_no_rows
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:212,1
    - Dst: Botan::pk_row_size_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 212
    functionDepth: 4
    functionLinenumber: 212
    functionLinenumberEnd: 212
    functionName: Botan::pk_size_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 8
    functionsReached:
    - Botan::pk_no_rows
    - Botan::pk_row_size_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t pk_size_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ceil_division
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:217,1
    - Dst: Botan::m
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:217,1
    - Dst: Botan::t
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 217
    functionName: Botan::encode_out_size
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 3
    functionsReached:
    - Botan::m
    - Botan::t
    - Botan::ceil_division
    linkageType: ''
    returnType: size_t
    signature: size_t encode_out_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ell
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 224
    functionDepth: 1
    functionLinenumber: 224
    functionLinenumberEnd: 224
    functionName: Botan::hash_out_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 3
    functionsReached:
    - Botan::ell
    linkageType: ''
    returnType: size_t
    signature: size_t hash_out_bytes()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::is_pc
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:230,1
    - Dst: Botan::encode_out_size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:232,1
    - Dst: Botan::hash_out_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:232,1
    - Dst: Botan::encode_out_size
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:234,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 236
    functionName: Botan::ciphertext_size
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 0
    functionsReached:
    - Botan::hash_out_bytes
    - Botan::encode_out_size
    - Botan::is_pc
    linkageType: ''
    returnType: size_t
    signature: size_t ciphertext_size() const
  - 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::poly_ring
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: Classic_McEliece_Polynomial_Ring
    signature: Classic_McEliece_Polynomial_Ring & poly_ring() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::HashFunction::create_or_throw
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 257
    functionDepth: 3
    functionLinenumber: 257
    functionLinenumberEnd: 257
    functionName: Botan::hash_func
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 0
    functionsReached:
    - Botan::HashFunction::create_or_throw
    linkageType: ''
    returnType: std::unique_ptr<HashFunction>
    signature: std::unique_ptr<HashFunction> hash_func() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:265,1
    - Dst: Botan::poly_f
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h:265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - elem
    argTypes:
    - CmceGfElem
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 265
    functionName: Botan::gf
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_parameters.h
    functionUses: 0
    functionsReached:
    - Botan::poly_f
    - Botan::Classic_McEliece_GF
    linkageType: ''
    returnType: Classic_McEliece_GF
    signature: Classic_McEliece_GF gf(CmceGfElem elem) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.cpp:28,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.cpp:40,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.cpp:40,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.cpp:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - x
    - mod
    argTypes:
    - uint32_t
    - CmceGfMod
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 43
    functionName: Botan::internal_reduce
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - BOTAN_ASSERT_UNREACHABLE
    - CmceGfElem
    linkageType: ''
    returnType: CmceGfElem
    signature: CmceGfElem internal_reduce(uint32_t x, CmceGfMod mod)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.cpp:28,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.cpp:40,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.cpp:40,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.cpp:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - x
    - mod
    argTypes:
    - uint32_t
    - CmceGfMod
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 43
    functionName: Botan::internal_reduce
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - BOTAN_ASSERT_UNREACHABLE
    - CmceGfElem
    linkageType: ''
    returnType: CmceGfElem
    signature: CmceGfElem internal_reduce(uint32_t x, CmceGfMod mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.cpp:48,1
    - Dst: get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.cpp:50,1
    - Dst: Classic_McEliece_GF::m_elem::get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.cpp:51,1
    - Dst: CT::value_barrier<uint32_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.cpp:53,1
    - Dst: log_q
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.cpp:55,1
    - Dst: Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.cpp:59,1
    - Dst: internal_reduce
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.cpp:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - other
    argTypes:
    - Classic_McEliece_GF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 60
    functionName: Classic_McEliece_GF::operator*(Classic_McEliece_GF other) const
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - CT::value_barrier<uint32_t>
    - Classic_McEliece_GF
    - log_q
    - get
    - Classic_McEliece_GF::m_elem::get
    - internal_reduce
    linkageType: ''
    returnType: Classic_McEliece_GF
    signature: Classic_McEliece_GF Classic_McEliece_GF::operator*(Classic_McEliece_GF
      other) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_q
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.cpp:66,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.cpp:70,1
    - Dst: Classic_McEliece_GF::square
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.cpp:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 82
    functionName: Botan::Classic_McEliece_GF::inv
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.cpp
    functionUses: 0
    functionsReached:
    - Classic_McEliece_GF::square
    - log_q
    - CmceGfElem
    linkageType: ''
    returnType: Classic_McEliece_GF
    signature: Classic_McEliece_GF Classic_McEliece_GF::inv() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.cpp:28,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.cpp:40,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.cpp:40,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.cpp:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - x
    - mod
    argTypes:
    - uint32_t
    - CmceGfMod
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 43
    functionName: Botan::internal_reduce
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - BOTAN_ASSERT_UNREACHABLE
    - CmceGfElem
    linkageType: ''
    returnType: CmceGfElem
    signature: CmceGfElem internal_reduce(uint32_t x, CmceGfMod mod)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.cpp:28,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.cpp:40,1
    - Dst: static_cast<uint16_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.cpp:40,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.cpp:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 2
    argNames:
    - x
    - mod
    argTypes:
    - uint32_t
    - CmceGfMod
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 43
    functionName: Botan::internal_reduce
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint16_t>
    - BOTAN_ASSERT_UNREACHABLE
    - CmceGfElem
    linkageType: ''
    returnType: CmceGfElem
    signature: CmceGfElem internal_reduce(uint32_t x, CmceGfMod mod)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.cpp:48,1
    - Dst: get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.cpp:50,1
    - Dst: Classic_McEliece_GF::m_elem::get
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.cpp:51,1
    - Dst: CT::value_barrier<uint32_t>
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.cpp:53,1
    - Dst: log_q
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.cpp:55,1
    - Dst: Classic_McEliece_GF
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.cpp:59,1
    - Dst: internal_reduce
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.cpp:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - other
    argTypes:
    - Classic_McEliece_GF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 60
    functionName: Classic_McEliece_GF::operator*(Classic_McEliece_GF other) const
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - CT::value_barrier<uint32_t>
    - Classic_McEliece_GF
    - log_q
    - get
    - Classic_McEliece_GF::m_elem::get
    - internal_reduce
    linkageType: ''
    returnType: Classic_McEliece_GF
    signature: Classic_McEliece_GF Classic_McEliece_GF::operator*(Classic_McEliece_GF
      other) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log_q
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.cpp:66,1
    - Dst: CmceGfElem
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.cpp:70,1
    - Dst: Classic_McEliece_GF::square
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.cpp:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 82
    functionName: Botan::Classic_McEliece_GF::inv
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_gf.cpp
    functionUses: 0
    functionsReached:
    - Classic_McEliece_GF::square
    - log_q
    - CmceGfElem
    linkageType: ''
    returnType: Classic_McEliece_GF
    signature: Classic_McEliece_GF Classic_McEliece_GF::inv() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_PublicKeyInternal
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.h:38,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.h:40,1
    - Dst: Botan::bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.h:40,1
    - Dst: Botan::pk_size_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 30
    functionDepth: 5
    functionLinenumber: 30
    functionLinenumberEnd: 41
    functionName: Botan::Classic_McEliece_PublicKeyInternal
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.h
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::pk_size_bytes
    - Botan::bytes
    - Botan::Classic_McEliece_PublicKeyInternal
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API Classic_McEliece_PublicKeyInternal
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: Botan::serialize
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.h
    functionUses: 2
    functionsReached:
    - Botan::bytes
    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: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: Botan::matrix
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Classic_McEliece_Matrix
    signature: Classic_McEliece_Matrix & matrix() 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::params
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: Classic_McEliece_Parameters
    signature: Classic_McEliece_Parameters & params() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.h: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::_const_time_unpoison
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.h
    functionUses: 0
    functionsReached:
    - Botan::CT::unpoison
    linkageType: ''
    returnType: void
    signature: void _const_time_unpoison() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Classic_McEliece_PublicKeyInternal
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.h:38,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.h:40,1
    - Dst: Botan::bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.h:40,1
    - Dst: Botan::pk_size_bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 30
    functionDepth: 5
    functionLinenumber: 30
    functionLinenumberEnd: 41
    functionName: Botan::Classic_McEliece_PublicKeyInternal
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.h
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::pk_size_bytes
    - Botan::bytes
    - Botan::Classic_McEliece_PublicKeyInternal
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API Classic_McEliece_PublicKeyInternal
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::bytes
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.h:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: Botan::serialize
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.h
    functionUses: 2
    functionsReached:
    - Botan::bytes
    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: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: Botan::matrix
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Classic_McEliece_Matrix
    signature: Classic_McEliece_Matrix & matrix() 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::params
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: Classic_McEliece_Parameters
    signature: Classic_McEliece_Parameters & params() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.h: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::_const_time_unpoison
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.h
    functionUses: 0
    functionsReached:
    - Botan::CT::unpoison
    linkageType: ''
    returnType: void
    signature: void _const_time_unpoison() 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: delta
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: CmceKeyGenSeed
    signature: CmceKeyGenSeed & delta() 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: c
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.h
    functionUses: 589
    functionsReached: []
    linkageType: ''
    returnType: CmceColumnSelection
    signature: CmceColumnSelection & c() 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: g
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.h
    functionUses: 2249
    functionsReached: []
    linkageType: ''
    returnType: Classic_McEliece_Minimal_Polynomial
    signature: Classic_McEliece_Minimal_Polynomial & g() const
  - 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: field_ordering
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: Classic_McEliece_Field_Ordering
    signature: Classic_McEliece_Field_Ordering & field_ordering() const
  - 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: s
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.h
    functionUses: 3889
    functionsReached: []
    linkageType: ''
    returnType: CmceRejectionSeed
    signature: CmceRejectionSeed & s() const
  - 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: params
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.h
    functionUses: 156
    functionsReached: []
    linkageType: ''
    returnType: Classic_McEliece_Parameters
    signature: Classic_McEliece_Parameters & params() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::poison_all
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.h:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 173
    functionName: _const_time_poison
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.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/classic_mceliece/cmce_keys_internal.h:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 175
    functionName: _const_time_unpoison
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.h
    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/classic_mceliece/cmce_keys_internal.h:206,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.h:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 208
    functionName: Classic_McEliece_KeyPair_Internal
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: struct BOTAN_TEST_API
    signature: struct BOTAN_TEST_API Classic_McEliece_KeyPair_Internal
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.h:206,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.h:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 207
    functionName: decompose_to_pair
    functionSourceFile: /src/botan/src/lib/pubkey/classic_mceliece/cmce_keys_internal.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: "std::pair<std::shared_ptr<Classic_McEliece_PrivateKeyInternal>,\n
      \               std::shared_ptr<Classic_McEliece_PublicKeyInternal>>"
    signature: "std::pair<std::shared_ptr<Classic_McEliece_PrivateKeyInternal>,\n
      \               std::shared_ptr<Classic_McEliece_PublicKeyInternal>> decompose_to_pair()
      &&"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ECDH_PublicKey>
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:18,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:18,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 19
    functionName: Botan::ECDH_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _public_ec_point
    - std::make_unique<ECDH_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> ECDH_PrivateKey::public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:30,1
    - Dst: Botan::ECDH_KA_Operation::mul_cofactor_inv
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:31,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' key'
    - kdf
    - ' rng'
    argTypes:
    - ECDH_PrivateKey
    - std::string_view
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: Botan::ECDH_KA_Operation::ECDH_KA_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _private_key
    - Botan::ECDH_KA_Operation::mul_cofactor_inv
    linkageType: ''
    returnType: void
    signature: void ECDH_KA_Operation(const ECDH_PrivateKey& key, std::string_view
      kdf, RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_p_bytes
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.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::ECDH_KA_Operation::agreed_value_size
    functionSourceFile: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp
    functionUses: 0
    functionsReached:
    - get_p_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t agreed_value_size() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: has_cofactor
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:38,1
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:40,1
    - Dst: get_cofactor
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:40,1
    - Dst: OS2ECP
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:40,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:42,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:46,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:49,1
    - Dst: auto::is_identity
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:59,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:60,1
    - Dst: auto::mul_x_only
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:63,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - w
    - w_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 64
    functionName: Botan::ECDH_KA_Operation::raw_agree
    functionSourceFile: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - EC_AffinePoint
    - auto::mul_x_only
    - auto::is_identity
    - OS2ECP
    - Botan::EC_AffinePoint::deserialize
    - has_cofactor
    - get_cofactor
    - Not_Implemented
    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: has_cofactor
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:71,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:73,1
    - Dst: get_cofactor
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' group'
    - ' x'
    argTypes:
    - EC_Group
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 77
    functionName: Botan::ECDH_KA_Operation::mul_cofactor_inv
    functionSourceFile: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp
    functionUses: 1
    functionsReached:
    - Botan::EC_Scalar::from_bigint
    - get_cofactor
    - has_cofactor
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar mul_cofactor_inv(const EC_Group& group, const EC_Scalar&
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:30,1
    - Dst: Botan::ECDH_KA_Operation::mul_cofactor_inv
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:31,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' key'
    - kdf
    - ' rng'
    argTypes:
    - ECDH_PrivateKey
    - std::string_view
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 4
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: Botan::ECDH_KA_Operation::ECDH_KA_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _private_key
    - Botan::ECDH_KA_Operation::mul_cofactor_inv
    linkageType: ''
    returnType: void
    signature: void ECDH_KA_Operation(const ECDH_PrivateKey& key, std::string_view
      kdf, RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_p_bytes
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.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::ECDH_KA_Operation::agreed_value_size
    functionSourceFile: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp
    functionUses: 0
    functionsReached:
    - get_p_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t agreed_value_size() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: has_cofactor
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:38,1
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:40,1
    - Dst: get_cofactor
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:40,1
    - Dst: OS2ECP
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:40,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:42,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:46,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:49,1
    - Dst: auto::is_identity
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:59,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:60,1
    - Dst: auto::mul_x_only
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:63,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - w
    - w_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 64
    functionName: Botan::ECDH_KA_Operation::raw_agree
    functionSourceFile: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - EC_AffinePoint
    - auto::mul_x_only
    - auto::is_identity
    - OS2ECP
    - Botan::EC_AffinePoint::deserialize
    - has_cofactor
    - get_cofactor
    - Not_Implemented
    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: has_cofactor
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:71,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:73,1
    - Dst: get_cofactor
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' group'
    - ' x'
    argTypes:
    - EC_Group
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 77
    functionName: Botan::ECDH_KA_Operation::mul_cofactor_inv
    functionSourceFile: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp
    functionUses: 2
    functionsReached:
    - Botan::EC_Scalar::from_bigint
    - get_cofactor
    - has_cofactor
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar mul_cofactor_inv(const EC_Group& group, const EC_Scalar&
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ECDH_PrivateKey>
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:87,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: Botan::ECDH_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp
    functionUses: 0
    functionsReached:
    - domain
    - std::make_unique<ECDH_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> ECDH_PublicKey::generate_another(RandomNumberGenerator&
      rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - format
    argTypes:
    - EC_Point_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: Botan::ECDH_PublicKey::public_value
    functionSourceFile: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp
    functionUses: 4
    functionsReached:
    - _public_ec_point
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> ECDH_PublicKey::public_value(EC_Point_Format format)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:97,1
    - Dst: std::make_unique<ECDH_KA_Operation>
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:98,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:101,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:101,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: 102
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 102
    functionName: Botan::ECDH_PrivateKey::create_key_agreement_op
    functionSourceFile: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<ECDH_KA_Operation>
    - Provider_Not_Found
    - algo_name
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Key_Agreement>
    signature: "std::unique_ptr<PK_Ops::Key_Agreement> ECDH_PrivateKey::create_key_agreement_op(RandomNumberGenerator&
      rng,\n                                                                                std::string_view
      params,\n                                                                                std::string_view
      provider) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ECDH_PublicKey>
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:18,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:18,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 17
    functionDepth: 1
    functionLinenumber: 17
    functionLinenumberEnd: 19
    functionName: Botan::ECDH_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _public_ec_point
    - std::make_unique<ECDH_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> ECDH_PrivateKey::public_key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:30,1
    - Dst: Botan::ECDH_KA_Operation::mul_cofactor_inv
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:31,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' key'
    - kdf
    - ' rng'
    argTypes:
    - ECDH_PrivateKey
    - std::string_view
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 4
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: Botan::ECDH_KA_Operation::ECDH_KA_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _private_key
    - Botan::ECDH_KA_Operation::mul_cofactor_inv
    linkageType: ''
    returnType: void
    signature: void ECDH_KA_Operation(const ECDH_PrivateKey& key, std::string_view
      kdf, RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_p_bytes
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.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::ECDH_KA_Operation::agreed_value_size
    functionSourceFile: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp
    functionUses: 0
    functionsReached:
    - get_p_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t agreed_value_size() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: has_cofactor
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:38,1
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:40,1
    - Dst: get_cofactor
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:40,1
    - Dst: OS2ECP
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:40,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:42,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:46,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:49,1
    - Dst: auto::is_identity
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:59,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:60,1
    - Dst: auto::mul_x_only
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:63,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - w
    - w_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 64
    functionName: Botan::ECDH_KA_Operation::raw_agree
    functionSourceFile: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - EC_AffinePoint
    - auto::mul_x_only
    - auto::is_identity
    - OS2ECP
    - Botan::EC_AffinePoint::deserialize
    - has_cofactor
    - get_cofactor
    - Not_Implemented
    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: has_cofactor
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:71,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:73,1
    - Dst: get_cofactor
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' group'
    - ' x'
    argTypes:
    - EC_Group
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 77
    functionName: Botan::ECDH_KA_Operation::mul_cofactor_inv
    functionSourceFile: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp
    functionUses: 3
    functionsReached:
    - Botan::EC_Scalar::from_bigint
    - get_cofactor
    - has_cofactor
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar mul_cofactor_inv(const EC_Group& group, const EC_Scalar&
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:30,1
    - Dst: Botan::ECDH_KA_Operation::mul_cofactor_inv
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:31,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' key'
    - kdf
    - ' rng'
    argTypes:
    - ECDH_PrivateKey
    - std::string_view
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 28
    functionDepth: 4
    functionLinenumber: 28
    functionLinenumberEnd: 32
    functionName: Botan::ECDH_KA_Operation::ECDH_KA_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _private_key
    - Botan::ECDH_KA_Operation::mul_cofactor_inv
    linkageType: ''
    returnType: void
    signature: void ECDH_KA_Operation(const ECDH_PrivateKey& key, std::string_view
      kdf, RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_p_bytes
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.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::ECDH_KA_Operation::agreed_value_size
    functionSourceFile: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp
    functionUses: 0
    functionsReached:
    - get_p_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t agreed_value_size() const override
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: has_cofactor
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:38,1
    - Dst: EC_AffinePoint
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:40,1
    - Dst: get_cofactor
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:40,1
    - Dst: OS2ECP
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:40,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:42,1
    - Dst: Botan::EC_AffinePoint::deserialize
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:46,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:49,1
    - Dst: auto::is_identity
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:59,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:60,1
    - Dst: auto::mul_x_only
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:63,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - w
    - w_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 36
    functionDepth: 3
    functionLinenumber: 36
    functionLinenumberEnd: 64
    functionName: Botan::ECDH_KA_Operation::raw_agree
    functionSourceFile: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - EC_AffinePoint
    - auto::mul_x_only
    - auto::is_identity
    - OS2ECP
    - Botan::EC_AffinePoint::deserialize
    - has_cofactor
    - get_cofactor
    - Not_Implemented
    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: has_cofactor
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:71,1
    - Dst: Botan::EC_Scalar::from_bigint
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:73,1
    - Dst: get_cofactor
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' group'
    - ' x'
    argTypes:
    - EC_Group
    - EC_Scalar
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 77
    functionName: Botan::ECDH_KA_Operation::mul_cofactor_inv
    functionSourceFile: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp
    functionUses: 4
    functionsReached:
    - Botan::EC_Scalar::from_bigint
    - get_cofactor
    - has_cofactor
    linkageType: ''
    returnType: EC_Scalar
    signature: EC_Scalar mul_cofactor_inv(const EC_Group& group, const EC_Scalar&
      x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ECDH_PrivateKey>
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:87,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 88
    functionName: Botan::ECDH_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp
    functionUses: 0
    functionsReached:
    - domain
    - std::make_unique<ECDH_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> ECDH_PublicKey::generate_another(RandomNumberGenerator&
      rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - format
    argTypes:
    - EC_Point_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: Botan::ECDH_PublicKey::public_value
    functionSourceFile: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp
    functionUses: 4
    functionsReached:
    - _public_ec_point
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> ECDH_PublicKey::public_value(EC_Point_Format format)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:97,1
    - Dst: std::make_unique<ECDH_KA_Operation>
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:98,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:101,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp:101,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: 102
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 102
    functionName: Botan::ECDH_PrivateKey::create_key_agreement_op
    functionSourceFile: /src/botan/src/lib/pubkey/ecdh/ecdh.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<ECDH_KA_Operation>
    - Provider_Not_Found
    - algo_name
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Key_Agreement>
    signature: "std::unique_ptr<PK_Ops::Key_Agreement> ECDH_PrivateKey::create_key_agreement_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: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan::ECDH_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/ecdh/ecdh.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECDH_PublicKey(const EC_Group& group, const EC_Point& public_point)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' group'
    - ' public_key'
    argTypes:
    - EC_Group
    - EC_AffinePoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: Botan::ECDH_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/ecdh/ecdh.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECDH_PublicKey(const EC_Group& group, const EC_AffinePoint& public_key)
  - 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::algo_name
    functionSourceFile: /src/botan/src/lib/pubkey/ecdh/ecdh.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::public_value
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.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::public_value
    functionSourceFile: /src/botan/src/lib/pubkey/ecdh/ecdh.h
    functionUses: 5
    functionsReached:
    - Botan::public_value
    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: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: Botan::supports_operation
    functionSourceFile: /src/botan/src/lib/pubkey/ecdh/ecdh.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: 36
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 36
    functionName: Botan::ECDH_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/ecdh/ecdh.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECDH_PublicKey(const EC_Group& group, const EC_Point& public_point)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' group'
    - ' public_key'
    argTypes:
    - EC_Group
    - EC_AffinePoint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: Botan::ECDH_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/ecdh/ecdh.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECDH_PublicKey(const EC_Group& group, const EC_AffinePoint& public_key)
  - 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::algo_name
    functionSourceFile: /src/botan/src/lib/pubkey/ecdh/ecdh.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::public_value
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.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::public_value
    functionSourceFile: /src/botan/src/lib/pubkey/ecdh/ecdh.h
    functionUses: 6
    functionsReached:
    - Botan::public_value
    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: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: Botan::supports_operation
    functionSourceFile: /src/botan/src/lib/pubkey/ecdh/ecdh.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool supports_operation(PublicKeyOperation op) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' rng'
    - group
    argTypes:
    - RandomNumberGenerator
    - EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: ECDH_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/ecdh/ecdh.h
    functionUses: 9
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void ECDH_PrivateKey(RandomNumberGenerator& rng, EC_Group group)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' rng'
    - ' group'
    - ' x'
    argTypes:
    - RandomNumberGenerator
    - EC_Group
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 111
    functionName: ECDH_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/ecdh/ecdh.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECDH_PrivateKey(RandomNumberGenerator& rng, const EC_Group& group,
      const BigInt& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ECDH_PublicKey::public_value
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.h: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: public_value
    functionSourceFile: /src/botan/src/lib/pubkey/ecdh/ecdh.h
    functionUses: 70
    functionsReached:
    - Botan::ECDH_PublicKey::public_value
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> public_value() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::ECDH_PublicKey::public_value
      Src: /src/botan/src/lib/pubkey/ecdh/ecdh.h:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - EC_Point_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: public_value
    functionSourceFile: /src/botan/src/lib/pubkey/ecdh/ecdh.h
    functionUses: 71
    functionsReached:
    - Botan::ECDH_PublicKey::public_value
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> public_value(EC_Point_Format type) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.cpp:16,1
    - Dst: DilithiumInternalKeypair::second::seed
      Src: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.cpp:17,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.cpp:18,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.cpp:18,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.cpp:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - keypair
    argTypes:
    - DilithiumInternalKeypair
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: Botan::ML_DSA_Expanding_Keypair_Codec::encode_keypair
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    - BOTAN_ARG_CHECK
    - DilithiumInternalKeypair::second::seed
    - has_value
    - value
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> ML_DSA_Expanding_Keypair_Codec::encode_keypair(DilithiumInternalKeypair
      keypair) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Dilithium_Algos::expand_keypair
      Src: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.cpp:24,1
    - Dst: DilithiumSeedRandomness
      Src: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.cpp:24,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - private_key_seed
    - mode
    argTypes:
    - std::span<const uint8_t>
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: Botan::ML_DSA_Expanding_Keypair_Codec::decode_keypair
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.cpp
    functionUses: 0
    functionsReached:
    - DilithiumSeedRandomness
    - std::move
    - Botan::Dilithium_Algos::expand_keypair
    linkageType: ''
    returnType: DilithiumInternalKeypair
    signature: "DilithiumInternalKeypair ML_DSA_Expanding_Keypair_Codec::decode_keypair(std::span<const
      uint8_t> private_key_seed,\n                                                                        DilithiumConstants
      mode) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.cpp:16,1
    - Dst: DilithiumInternalKeypair::second::seed
      Src: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.cpp:17,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.cpp:18,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.cpp:18,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.cpp:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - keypair
    argTypes:
    - DilithiumInternalKeypair
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 15
    functionDepth: 1
    functionLinenumber: 15
    functionLinenumberEnd: 20
    functionName: Botan::ML_DSA_Expanding_Keypair_Codec::encode_keypair
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    - BOTAN_ARG_CHECK
    - DilithiumInternalKeypair::second::seed
    - has_value
    - value
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> ML_DSA_Expanding_Keypair_Codec::encode_keypair(DilithiumInternalKeypair
      keypair) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Dilithium_Algos::expand_keypair
      Src: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.cpp:24,1
    - Dst: DilithiumSeedRandomness
      Src: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.cpp:24,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - private_key_seed
    - mode
    argTypes:
    - std::span<const uint8_t>
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: Botan::ML_DSA_Expanding_Keypair_Codec::decode_keypair
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.cpp
    functionUses: 0
    functionsReached:
    - DilithiumSeedRandomness
    - std::move
    - Botan::Dilithium_Algos::expand_keypair
    linkageType: ''
    returnType: DilithiumInternalKeypair
    signature: "DilithiumInternalKeypair ML_DSA_Expanding_Keypair_Codec::decode_keypair(std::span<const
      uint8_t> private_key_seed,\n                                                                        DilithiumConstants
      mode) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - user_context
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: Botan::ML_DSA_MessageHash::is_valid_user_context
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.h
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: bool
    signature: bool is_valid_user_context(std::span<const uint8_t> user_context) const
      final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DilithiumMessageHash::start
      Src: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.h:46,1
    - Dst: checked_cast_to<uint8_t>
      Src: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.h:48,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.h:48,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.h:49,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - user_context
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 51
    functionName: Botan::ML_DSA_MessageHash::start
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.h
    functionUses: 0
    functionsReached:
    - checked_cast_to<uint8_t>
    - Botan::DilithiumMessageHash::start
    - update
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void start(std::span<const uint8_t> user_context) final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H_256<DilithiumSeedRhoPrime>
      Src: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - k
    - rnd
    - mu
    argTypes:
    - StrongSpan<const DilithiumSigningSeedK>
    - StrongSpan<const DilithiumOptionalRandomness>
    - StrongSpan<const DilithiumMessageRepresentative>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: Botan::ML_DSA_Symmetric_Primitives::H
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.h
    functionUses: 0
    functionsReached:
    - H_256<DilithiumSeedRhoPrime>
    linkageType: ''
    returnType: DilithiumSeedRhoPrime
    signature: "DilithiumSeedRhoPrime H(StrongSpan<const DilithiumSigningSeedK> k,\n
      \                             StrongSpan<const DilithiumOptionalRandomness>
      rnd,\n                              StrongSpan<const DilithiumMessageRepresentative>
      mu) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<DilithiumShakeXOF>
      Src: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.h:65,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.h:66,1
    - Dst: l
      Src: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: Botan::ML_DSA_Symmetric_Primitives::ML_DSA_Symmetric_Primitives
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.h
    functionUses: 0
    functionsReached:
    - std::make_unique<DilithiumShakeXOF>
    - k
    - l
    linkageType: ''
    returnType: void
    signature: void ML_DSA_Symmetric_Primitives(const DilithiumConstants& mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::optional<std::reference_wrapper<RandomNumberGenerator>>::has_value
      Src: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.h:75,1
    - Dst: std::optional<std::reference_wrapper<RandomNumberGenerator>>::get
      Src: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.h:76,1
    - Dst: Botan::ML_DSA_Symmetric_Primitives::H
      Src: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.h:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - k
    - mu
    - rng
    argTypes:
    - StrongSpan<const DilithiumSigningSeedK>
    - StrongSpan<const DilithiumMessageRepresentative>
    - std::optional<std::reference_wrapper<RandomNumberGenerator>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 81
    functionName: Botan::ML_DSA_Symmetric_Primitives::H_maybe_randomized
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.h
    functionUses: 0
    functionsReached:
    - Botan::ML_DSA_Symmetric_Primitives::H
    - std::optional<std::reference_wrapper<RandomNumberGenerator>>::get
    - std::optional<std::reference_wrapper<RandomNumberGenerator>>::has_value
    linkageType: ''
    returnType: DilithiumSeedRhoPrime
    signature: "DilithiumSeedRhoPrime H_maybe_randomized(\n         StrongSpan<const
      DilithiumSigningSeedK> k,\n         StrongSpan<const DilithiumMessageRepresentative>
      mu,\n         std::optional<std::reference_wrapper<RandomNumberGenerator>> rng)
      const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seed
    argTypes:
    - StrongSpan<const DilithiumCommitmentHash>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: Botan::ML_DSA_Symmetric_Primitives::truncate_commitment_hash
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StrongSpan<const DilithiumCommitmentHash>
    signature: "StrongSpan<const DilithiumCommitmentHash> truncate_commitment_hash(\n
      \        StrongSpan<const DilithiumCommitmentHash> seed) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ML_DSA_MessageHash>
      Src: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.h:89,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tr
    argTypes:
    - DilithiumHashedPublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: Botan::ML_DSA_Symmetric_Primitives::get_message_hash
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.h
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_unique<ML_DSA_MessageHash>
    linkageType: ''
    returnType: std::unique_ptr<DilithiumMessageHash>
    signature: std::unique_ptr<DilithiumMessageHash> get_message_hash(DilithiumHashedPublicKey
      tr) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: Botan::ML_DSA_Symmetric_Primitives::seed_expansion_domain_separator
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<std::array<uint8_t, 2>>
    signature: std::optional<std::array<uint8_t, 2>> seed_expansion_domain_separator()
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - user_context
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 34
    functionName: Botan::ML_DSA_MessageHash::is_valid_user_context
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.h
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: bool
    signature: bool is_valid_user_context(std::span<const uint8_t> user_context) const
      final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DilithiumMessageHash::start
      Src: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.h:46,1
    - Dst: checked_cast_to<uint8_t>
      Src: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.h:48,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.h:48,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.h:49,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - user_context
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 51
    functionName: Botan::ML_DSA_MessageHash::start
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.h
    functionUses: 0
    functionsReached:
    - checked_cast_to<uint8_t>
    - Botan::DilithiumMessageHash::start
    - update
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void start(std::span<const uint8_t> user_context) final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H_256<DilithiumSeedRhoPrime>
      Src: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - k
    - rnd
    - mu
    argTypes:
    - StrongSpan<const DilithiumSigningSeedK>
    - StrongSpan<const DilithiumOptionalRandomness>
    - StrongSpan<const DilithiumMessageRepresentative>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: Botan::ML_DSA_Symmetric_Primitives::H
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.h
    functionUses: 1
    functionsReached:
    - H_256<DilithiumSeedRhoPrime>
    linkageType: ''
    returnType: DilithiumSeedRhoPrime
    signature: "DilithiumSeedRhoPrime H(StrongSpan<const DilithiumSigningSeedK> k,\n
      \                             StrongSpan<const DilithiumOptionalRandomness>
      rnd,\n                              StrongSpan<const DilithiumMessageRepresentative>
      mu) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<DilithiumShakeXOF>
      Src: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.h:65,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.h:66,1
    - Dst: l
      Src: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: Botan::ML_DSA_Symmetric_Primitives::ML_DSA_Symmetric_Primitives
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.h
    functionUses: 0
    functionsReached:
    - std::make_unique<DilithiumShakeXOF>
    - k
    - l
    linkageType: ''
    returnType: void
    signature: void ML_DSA_Symmetric_Primitives(const DilithiumConstants& mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::optional<std::reference_wrapper<RandomNumberGenerator>>::has_value
      Src: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.h:75,1
    - Dst: std::optional<std::reference_wrapper<RandomNumberGenerator>>::get
      Src: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.h:76,1
    - Dst: Botan::ML_DSA_Symmetric_Primitives::H
      Src: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.h:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - k
    - mu
    - rng
    argTypes:
    - StrongSpan<const DilithiumSigningSeedK>
    - StrongSpan<const DilithiumMessageRepresentative>
    - std::optional<std::reference_wrapper<RandomNumberGenerator>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 81
    functionName: Botan::ML_DSA_Symmetric_Primitives::H_maybe_randomized
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.h
    functionUses: 0
    functionsReached:
    - Botan::ML_DSA_Symmetric_Primitives::H
    - std::optional<std::reference_wrapper<RandomNumberGenerator>>::get
    - std::optional<std::reference_wrapper<RandomNumberGenerator>>::has_value
    linkageType: ''
    returnType: DilithiumSeedRhoPrime
    signature: "DilithiumSeedRhoPrime H_maybe_randomized(\n         StrongSpan<const
      DilithiumSigningSeedK> k,\n         StrongSpan<const DilithiumMessageRepresentative>
      mu,\n         std::optional<std::reference_wrapper<RandomNumberGenerator>> rng)
      const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seed
    argTypes:
    - StrongSpan<const DilithiumCommitmentHash>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: Botan::ML_DSA_Symmetric_Primitives::truncate_commitment_hash
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: StrongSpan<const DilithiumCommitmentHash>
    signature: "StrongSpan<const DilithiumCommitmentHash> truncate_commitment_hash(\n
      \        StrongSpan<const DilithiumCommitmentHash> seed) const override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ML_DSA_MessageHash>
      Src: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.h:89,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tr
    argTypes:
    - DilithiumHashedPublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: Botan::ML_DSA_Symmetric_Primitives::get_message_hash
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.h
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_unique<ML_DSA_MessageHash>
    linkageType: ''
    returnType: std::unique_ptr<DilithiumMessageHash>
    signature: std::unique_ptr<DilithiumMessageHash> get_message_hash(DilithiumHashedPublicKey
      tr) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: Botan::ML_DSA_Symmetric_Primitives::seed_expansion_domain_separator
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/ml_dsa/ml_dsa_impl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<std::array<uint8_t, 2>>
    signature: std::optional<std::array<uint8_t, 2>> seed_expansion_domain_separator()
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Dilithium_Algos::encode_keypair
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_round3_symmetric_primitives.cpp:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keypair
    argTypes:
    - DilithiumInternalKeypair
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: Botan::Dilithium_Expanded_Keypair_Codec::encode_keypair
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_round3_symmetric_primitives.cpp
    functionUses: 0
    functionsReached:
    - Botan::Dilithium_Algos::encode_keypair
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Dilithium_Expanded_Keypair_Codec::encode_keypair(DilithiumInternalKeypair
      keypair) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_round3_symmetric_primitives.cpp:24,1
    - Dst: DilithiumConstants::mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_round3_symmetric_primitives.cpp:24,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_round3_symmetric_primitives.cpp:25,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_round3_symmetric_primitives.cpp:25,1
    - Dst: DilithiumConstants::private_key_bytes
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_round3_symmetric_primitives.cpp:25,1
    - Dst: Botan::Dilithium_Algos::decode_keypair
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_round3_symmetric_primitives.cpp:27,1
    - Dst: StrongSpan<const DilithiumSerializedPrivateKey>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_round3_symmetric_primitives.cpp:27,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_round3_symmetric_primitives.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - private_key
    - mode
    argTypes:
    - std::span<const uint8_t>
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 29
    functionName: Botan::Dilithium_Expanded_Keypair_Codec::decode_keypair
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_round3_symmetric_primitives.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::span<const uint8_t>::size
    - BOTAN_ARG_CHECK
    - StrongSpan<const DilithiumSerializedPrivateKey>
    - DilithiumConstants::mode
    - Botan::Dilithium_Algos::decode_keypair
    - DilithiumConstants::private_key_bytes
    linkageType: ''
    returnType: DilithiumInternalKeypair
    signature: "DilithiumInternalKeypair Dilithium_Expanded_Keypair_Codec::decode_keypair(std::span<const
      uint8_t> private_key,\n                                                                          DilithiumConstants
      mode) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Dilithium_Algos::encode_keypair
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_round3_symmetric_primitives.cpp:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keypair
    argTypes:
    - DilithiumInternalKeypair
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: Botan::Dilithium_Expanded_Keypair_Codec::encode_keypair
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_round3_symmetric_primitives.cpp
    functionUses: 0
    functionsReached:
    - Botan::Dilithium_Algos::encode_keypair
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Dilithium_Expanded_Keypair_Codec::encode_keypair(DilithiumInternalKeypair
      keypair) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_round3_symmetric_primitives.cpp:24,1
    - Dst: DilithiumConstants::mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_round3_symmetric_primitives.cpp:24,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_round3_symmetric_primitives.cpp:25,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_round3_symmetric_primitives.cpp:25,1
    - Dst: DilithiumConstants::private_key_bytes
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_round3_symmetric_primitives.cpp:25,1
    - Dst: Botan::Dilithium_Algos::decode_keypair
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_round3_symmetric_primitives.cpp:27,1
    - Dst: StrongSpan<const DilithiumSerializedPrivateKey>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_round3_symmetric_primitives.cpp:27,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_round3_symmetric_primitives.cpp:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - private_key
    - mode
    argTypes:
    - std::span<const uint8_t>
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 22
    functionDepth: 2
    functionLinenumber: 22
    functionLinenumberEnd: 29
    functionName: Botan::Dilithium_Expanded_Keypair_Codec::decode_keypair
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_round3_symmetric_primitives.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - std::span<const uint8_t>::size
    - BOTAN_ARG_CHECK
    - StrongSpan<const DilithiumSerializedPrivateKey>
    - DilithiumConstants::mode
    - Botan::Dilithium_Algos::decode_keypair
    - DilithiumConstants::private_key_bytes
    linkageType: ''
    returnType: DilithiumInternalKeypair
    signature: "DilithiumInternalKeypair Dilithium_Expanded_Keypair_Codec::decode_keypair(std::span<const
      uint8_t> private_key,\n                                                                          DilithiumConstants
      mode) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H_256<DilithiumSeedRhoPrime>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_round3_symmetric_primitives.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - k
    - mu
    argTypes:
    - StrongSpan<const DilithiumSigningSeedK>
    - StrongSpan<const DilithiumMessageRepresentative>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: Botan::Dilithium_Round3_Symmetric_Primitives::H
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_round3_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - H_256<DilithiumSeedRhoPrime>
    linkageType: ''
    returnType: DilithiumSeedRhoPrime
    signature: "DilithiumSeedRhoPrime H(StrongSpan<const DilithiumSigningSeedK> k,\n
      \                             StrongSpan<const DilithiumMessageRepresentative>
      mu) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::optional<std::reference_wrapper<RandomNumberGenerator>>::has_value
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_round3_symmetric_primitives.h:44,1
    - Dst: std::optional<std::reference_wrapper<RandomNumberGenerator>>::get
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_round3_symmetric_primitives.h:45,1
    - Dst: Botan::Dilithium_Round3_Symmetric_Primitives::H
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_round3_symmetric_primitives.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - k
    - mu
    - rng
    argTypes:
    - StrongSpan<const DilithiumSigningSeedK>
    - StrongSpan<const DilithiumMessageRepresentative>
    - std::optional<std::reference_wrapper<RandomNumberGenerator>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 47
    functionName: Botan::Dilithium_Round3_Symmetric_Primitives::H_maybe_randomized
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_round3_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - std::optional<std::reference_wrapper<RandomNumberGenerator>>::get
    - Botan::Dilithium_Round3_Symmetric_Primitives::H
    - std::optional<std::reference_wrapper<RandomNumberGenerator>>::has_value
    linkageType: ''
    returnType: DilithiumSeedRhoPrime
    signature: "DilithiumSeedRhoPrime H_maybe_randomized(\n         StrongSpan<const
      DilithiumSigningSeedK> k,\n         StrongSpan<const DilithiumMessageRepresentative>
      mu,\n         std::optional<std::reference_wrapper<RandomNumberGenerator>> rng)
      const final"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrongSpan<const DilithiumCommitmentHash>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_round3_symmetric_primitives.h:51,1
    - Dst: StrongSpan<const DilithiumCommitmentHash>::get
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_round3_symmetric_primitives.h:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seed
    argTypes:
    - StrongSpan<const DilithiumCommitmentHash>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: Botan::Dilithium_Round3_Symmetric_Primitives::truncate_commitment_hash
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_round3_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - StrongSpan<const DilithiumCommitmentHash>
    - StrongSpan<const DilithiumCommitmentHash>::get
    linkageType: ''
    returnType: StrongSpan<const DilithiumCommitmentHash>
    signature: "StrongSpan<const DilithiumCommitmentHash> truncate_commitment_hash(\n
      \        StrongSpan<const DilithiumCommitmentHash> seed) const final"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: Botan::Dilithium_Round3_Symmetric_Primitives::seed_expansion_domain_separator
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_round3_symmetric_primitives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<std::array<uint8_t, 2>>
    signature: std::optional<std::array<uint8_t, 2>> seed_expansion_domain_separator()
      const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: H_256<DilithiumSeedRhoPrime>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_round3_symmetric_primitives.h:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - k
    - mu
    argTypes:
    - StrongSpan<const DilithiumSigningSeedK>
    - StrongSpan<const DilithiumMessageRepresentative>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: Botan::Dilithium_Round3_Symmetric_Primitives::H
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_round3_symmetric_primitives.h
    functionUses: 1
    functionsReached:
    - H_256<DilithiumSeedRhoPrime>
    linkageType: ''
    returnType: DilithiumSeedRhoPrime
    signature: "DilithiumSeedRhoPrime H(StrongSpan<const DilithiumSigningSeedK> k,\n
      \                             StrongSpan<const DilithiumMessageRepresentative>
      mu) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::optional<std::reference_wrapper<RandomNumberGenerator>>::has_value
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_round3_symmetric_primitives.h:44,1
    - Dst: std::optional<std::reference_wrapper<RandomNumberGenerator>>::get
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_round3_symmetric_primitives.h:45,1
    - Dst: Botan::Dilithium_Round3_Symmetric_Primitives::H
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_round3_symmetric_primitives.h:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - k
    - mu
    - rng
    argTypes:
    - StrongSpan<const DilithiumSigningSeedK>
    - StrongSpan<const DilithiumMessageRepresentative>
    - std::optional<std::reference_wrapper<RandomNumberGenerator>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 47
    functionName: Botan::Dilithium_Round3_Symmetric_Primitives::H_maybe_randomized
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_round3_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - std::optional<std::reference_wrapper<RandomNumberGenerator>>::get
    - Botan::Dilithium_Round3_Symmetric_Primitives::H
    - std::optional<std::reference_wrapper<RandomNumberGenerator>>::has_value
    linkageType: ''
    returnType: DilithiumSeedRhoPrime
    signature: "DilithiumSeedRhoPrime H_maybe_randomized(\n         StrongSpan<const
      DilithiumSigningSeedK> k,\n         StrongSpan<const DilithiumMessageRepresentative>
      mu,\n         std::optional<std::reference_wrapper<RandomNumberGenerator>> rng)
      const final"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: StrongSpan<const DilithiumCommitmentHash>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_round3_symmetric_primitives.h:51,1
    - Dst: StrongSpan<const DilithiumCommitmentHash>::get
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_round3_symmetric_primitives.h:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - seed
    argTypes:
    - StrongSpan<const DilithiumCommitmentHash>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: Botan::Dilithium_Round3_Symmetric_Primitives::truncate_commitment_hash
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_round3_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - StrongSpan<const DilithiumCommitmentHash>
    - StrongSpan<const DilithiumCommitmentHash>::get
    linkageType: ''
    returnType: StrongSpan<const DilithiumCommitmentHash>
    signature: "StrongSpan<const DilithiumCommitmentHash> truncate_commitment_hash(\n
      \        StrongSpan<const DilithiumCommitmentHash> seed) const final"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 59
    functionName: Botan::Dilithium_Round3_Symmetric_Primitives::seed_expansion_domain_separator
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_round3_symmetric_primitives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<std::array<uint8_t, 2>>
    signature: std::optional<std::array<uint8_t, 2>> seed_expansion_domain_separator()
      const final
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<DilithiumShakeXOF>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium/dilithium_round3.h:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: Botan::Dilithium_Symmetric_Primitives::Dilithium_Symmetric_Primitives
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium/dilithium_round3.h
    functionUses: 0
    functionsReached:
    - std::make_unique<DilithiumShakeXOF>
    linkageType: ''
    returnType: void
    signature: void Dilithium_Symmetric_Primitives(const DilithiumConstants& mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<DilithiumShakeXOF>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium/dilithium_round3.h:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: Botan::Dilithium_Symmetric_Primitives::Dilithium_Symmetric_Primitives
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium/dilithium_round3.h
    functionUses: 0
    functionsReached:
    - std::make_unique<DilithiumShakeXOF>
    linkageType: ''
    returnType: void
    signature: void Dilithium_Symmetric_Primitives(const DilithiumConstants& mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XOF
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - seed
    - nonce
    argTypes:
    - std::span<const uint8_t>
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: '& XOF128(std::span<const uint8_t> seed, uint16_t nonce) const override'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp
    functionUses: 0
    functionsReached:
    - XOF
    linkageType: ''
    returnType: Botan::XOF
    signature: Botan::XOF & XOF128(std::span<const uint8_t> seed, uint16_t nonce)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XOF
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - seed
    - nonce
    argTypes:
    - std::span<const uint8_t>
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: '& XOF256(std::span<const uint8_t> seed, uint16_t nonce) const override'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp
    functionUses: 0
    functionsReached:
    - XOF
    linkageType: ''
    returnType: Botan::XOF
    signature: Botan::XOF & XOF256(std::span<const uint8_t> seed, uint16_t nonce)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp:39,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp:39,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp:41,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp:41,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp:42,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp:44,1
    - Dst: start
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' xof'
    - seed
    - nonce
    argTypes:
    - Botan::XOF
    - std::span<const uint8_t>
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 47
    functionName: '& XOF(Botan::XOF& xof, std::span<const uint8_t> seed, uint16_t
      nonce)'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - start
    - std::span<const uint8_t>::size
    - clear
    - get_byte<0>
    - std::span<const uint8_t>::first
    - get_byte<1>
    linkageType: ''
    returnType: Botan::XOF
    signature: Botan::XOF & XOF(Botan::XOF& xof, std::span<const uint8_t> seed, uint16_t
      nonce)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XOF
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - seed
    - nonce
    argTypes:
    - std::span<const uint8_t>
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: '& XOF128(std::span<const uint8_t> seed, uint16_t nonce) const override'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp
    functionUses: 0
    functionsReached:
    - XOF
    linkageType: ''
    returnType: Botan::XOF
    signature: Botan::XOF & XOF128(std::span<const uint8_t> seed, uint16_t nonce)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XOF
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - seed
    - nonce
    argTypes:
    - std::span<const uint8_t>
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: '& XOF256(std::span<const uint8_t> seed, uint16_t nonce) const override'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp
    functionUses: 0
    functionsReached:
    - XOF
    linkageType: ''
    returnType: Botan::XOF
    signature: Botan::XOF & XOF256(std::span<const uint8_t> seed, uint16_t nonce)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp:39,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp:39,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp:41,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp:41,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp:42,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp:44,1
    - Dst: start
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' xof'
    - seed
    - nonce
    argTypes:
    - Botan::XOF
    - std::span<const uint8_t>
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 47
    functionName: '& XOF(Botan::XOF& xof, std::span<const uint8_t> seed, uint16_t
      nonce)'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - start
    - std::span<const uint8_t>::size
    - clear
    - get_byte<0>
    - std::span<const uint8_t>::first
    - get_byte<1>
    linkageType: ''
    returnType: Botan::XOF
    signature: Botan::XOF & XOF(Botan::XOF& xof, std::span<const uint8_t> seed, uint16_t
      nonce)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<AES_XOF>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: Botan::Dilithium_AES_Symmetric_Primitives::Dilithium_AES_Symmetric_Primitives
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<AES_XOF>
    linkageType: ''
    returnType: void
    signature: void Dilithium_AES_Symmetric_Primitives::Dilithium_AES_Symmetric_Primitives(const
      DilithiumConstants& mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XOF
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - seed
    - nonce
    argTypes:
    - std::span<const uint8_t>
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: '& XOF128(std::span<const uint8_t> seed, uint16_t nonce) const override'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp
    functionUses: 0
    functionsReached:
    - XOF
    linkageType: ''
    returnType: Botan::XOF
    signature: Botan::XOF & XOF128(std::span<const uint8_t> seed, uint16_t nonce)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XOF
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - seed
    - nonce
    argTypes:
    - std::span<const uint8_t>
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: '& XOF256(std::span<const uint8_t> seed, uint16_t nonce) const override'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp
    functionUses: 0
    functionsReached:
    - XOF
    linkageType: ''
    returnType: Botan::XOF
    signature: Botan::XOF & XOF256(std::span<const uint8_t> seed, uint16_t nonce)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp:39,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp:39,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp:41,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp:41,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp:42,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp:44,1
    - Dst: start
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' xof'
    - seed
    - nonce
    argTypes:
    - Botan::XOF
    - std::span<const uint8_t>
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 47
    functionName: '& XOF(Botan::XOF& xof, std::span<const uint8_t> seed, uint16_t
      nonce)'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - start
    - std::span<const uint8_t>::size
    - clear
    - get_byte<0>
    - std::span<const uint8_t>::first
    - get_byte<1>
    linkageType: ''
    returnType: Botan::XOF
    signature: Botan::XOF & XOF(Botan::XOF& xof, std::span<const uint8_t> seed, uint16_t
      nonce)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XOF
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp:23,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - seed
    - nonce
    argTypes:
    - std::span<const uint8_t>
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 24
    functionName: '& XOF128(std::span<const uint8_t> seed, uint16_t nonce) const override'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp
    functionUses: 0
    functionsReached:
    - XOF
    linkageType: ''
    returnType: Botan::XOF
    signature: Botan::XOF & XOF128(std::span<const uint8_t> seed, uint16_t nonce)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XOF
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - seed
    - nonce
    argTypes:
    - std::span<const uint8_t>
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: '& XOF256(std::span<const uint8_t> seed, uint16_t nonce) const override'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp
    functionUses: 0
    functionsReached:
    - XOF
    linkageType: ''
    returnType: Botan::XOF
    signature: Botan::XOF & XOF256(std::span<const uint8_t> seed, uint16_t nonce)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp:39,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp:39,1
    - Dst: get_byte<1>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp:41,1
    - Dst: get_byte<0>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp:41,1
    - Dst: std::span<const uint8_t>::first
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp:42,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp:44,1
    - Dst: start
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' xof'
    - seed
    - nonce
    argTypes:
    - Botan::XOF
    - std::span<const uint8_t>
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 47
    functionName: '& XOF(Botan::XOF& xof, std::span<const uint8_t> seed, uint16_t
      nonce)'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - start
    - std::span<const uint8_t>::size
    - clear
    - get_byte<0>
    - std::span<const uint8_t>::first
    - get_byte<1>
    linkageType: ''
    returnType: Botan::XOF
    signature: Botan::XOF & XOF(Botan::XOF& xof, std::span<const uint8_t> seed, uint16_t
      nonce)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<AES_XOF>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: Botan::Dilithium_AES_Symmetric_Primitives::Dilithium_AES_Symmetric_Primitives
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_round3/dilithium_aes/dilithium_aes.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<AES_XOF>
    linkageType: ''
    returnType: void
    signature: void Dilithium_AES_Symmetric_Primitives::Dilithium_AES_Symmetric_Primitives(const
      DilithiumConstants& mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_ml_dsa
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.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::is_dilithium_round3
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.h
    functionUses: 0
    functionsReached:
    - is_ml_dsa
    linkageType: ''
    returnType: bool
    signature: bool is_dilithium_round3() 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::mode
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: Mode
    signature: Mode mode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_ml_dsa
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.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::is_dilithium_round3
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.h
    functionUses: 0
    functionsReached:
    - is_ml_dsa
    linkageType: ''
    returnType: bool
    signature: bool is_dilithium_round3() 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::mode
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: Mode
    signature: Mode mode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_polynomial.h:27,1
    - Dst: static_cast<T2>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_polynomial.h:27,1
    - Dst: static_cast<T>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_polynomial.h:27,1
    - Dst: static_cast<T>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_polynomial.h:28,1
    - Dst: static_cast<T2>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_polynomial.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - T2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: Botan::DilithiumPolyTraits::montgomery_reduce_coefficient
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_polynomial.h
    functionUses: 0
    functionsReached:
    - static_cast<T>
    - static_cast<T2>
    linkageType: ''
    returnType: T
    signature: T montgomery_reduce_coefficient(T2 a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - a
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: Botan::DilithiumPolyTraits::barrett_reduce_coefficient
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_polynomial.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T barrett_reduce_coefficient(T a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fqmul
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_polynomial.h:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - coeffs
    argTypes:
    - std::span<T, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 65
    functionName: Botan::DilithiumPolyTraits::ntt
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_polynomial.h
    functionUses: 0
    functionsReached:
    - fqmul
    linkageType: ''
    returnType: void
    signature: void ntt(std::span<T, N> coeffs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fqmul
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_polynomial.h:89,1
    - Dst: fqmul
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_polynomial.h:95,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - coeffs
    argTypes:
    - std::span<T, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 97
    functionName: Botan::DilithiumPolyTraits::inverse_ntt
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_polynomial.h
    functionUses: 0
    functionsReached:
    - fqmul
    linkageType: ''
    returnType: void
    signature: void inverse_ntt(std::span<T, N> coeffs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fqmul
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_polynomial.h:109,1
    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: 111
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: Botan::DilithiumPolyTraits::poly_pointwise_montgomery
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_polynomial.h
    functionUses: 0
    functionsReached:
    - fqmul
    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/dilithium/dilithium_common/dilithium_polynomial.h:27,1
    - Dst: static_cast<T2>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_polynomial.h:27,1
    - Dst: static_cast<T>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_polynomial.h:27,1
    - Dst: static_cast<T>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_polynomial.h:28,1
    - Dst: static_cast<T2>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_polynomial.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - T2
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: Botan::DilithiumPolyTraits::montgomery_reduce_coefficient
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_polynomial.h
    functionUses: 0
    functionsReached:
    - static_cast<T>
    - static_cast<T2>
    linkageType: ''
    returnType: T
    signature: T montgomery_reduce_coefficient(T2 a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - a
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: Botan::DilithiumPolyTraits::barrett_reduce_coefficient
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_polynomial.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T barrett_reduce_coefficient(T a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fqmul
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_polynomial.h:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - coeffs
    argTypes:
    - std::span<T, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 65
    functionName: Botan::DilithiumPolyTraits::ntt
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_polynomial.h
    functionUses: 0
    functionsReached:
    - fqmul
    linkageType: ''
    returnType: void
    signature: void ntt(std::span<T, N> coeffs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fqmul
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_polynomial.h:89,1
    - Dst: fqmul
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_polynomial.h:95,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - coeffs
    argTypes:
    - std::span<T, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 97
    functionName: Botan::DilithiumPolyTraits::inverse_ntt
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_polynomial.h
    functionUses: 0
    functionsReached:
    - fqmul
    linkageType: ''
    returnType: void
    signature: void inverse_ntt(std::span<T, N> coeffs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fqmul
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_polynomial.h:109,1
    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: 111
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: Botan::DilithiumPolyTraits::poly_pointwise_montgomery
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_polynomial.h
    functionUses: 0
    functionsReached:
    - fqmul
    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: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: ~Dilithium_Keypair_Codec()
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Dilithium_Keypair_Codec()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Dilithium_Algos::decode_public_key
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:37,1
    - Dst: std::make_shared<Dilithium_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:38,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:38,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:38,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mode
    - raw_pk
    argTypes:
    - DilithiumConstants
    - StrongSpan<const DilithiumSerializedPublicKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: Botan::Dilithium_PublicKeyInternal::decode
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_shared<Dilithium_PublicKeyInternal>
    - Botan::Dilithium_Algos::decode_public_key
    linkageType: ''
    returnType: std::shared_ptr<Dilithium_PublicKeyInternal>
    signature: "std::shared_ptr<Dilithium_PublicKeyInternal> decode(\n         DilithiumConstants
      mode, StrongSpan<const DilithiumSerializedPublicKey> raw_pk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:42,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:43,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:44,1
    - Dst: symmetric_primitives
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:45,1
    - Dst: Botan::Dilithium_PublicKeyInternal::raw_pk
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:45,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:46,1
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:46,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:47,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - mode
    - rho
    - t1
    argTypes:
    - DilithiumConstants
    - DilithiumSeedRho
    - DilithiumPolyVec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 48
    functionName: Botan::Dilithium_PublicKeyInternal::Dilithium_PublicKeyInternal
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::move
    - size
    - empty
    - symmetric_primitives
    - Botan::Dilithium_PublicKeyInternal::raw_pk
    linkageType: ''
    returnType: void
    signature: void Dilithium_PublicKeyInternal(DilithiumConstants mode, DilithiumSeedRho
      rho, DilithiumPolyVec t1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Dilithium_Algos::encode_public_key
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: Botan::Dilithium_PublicKeyInternal::raw_pk
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h
    functionUses: 1
    functionsReached:
    - Botan::Dilithium_Algos::encode_public_key
    linkageType: ''
    returnType: DilithiumSerializedPublicKey
    signature: DilithiumSerializedPublicKey raw_pk() 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: '& tr() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DilithiumHashedPublicKey
    signature: DilithiumHashedPublicKey & tr() 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: '& t1() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DilithiumPolyVec
    signature: DilithiumPolyVec & t1() 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: '& rho() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DilithiumSeedRho
    signature: DilithiumSeedRho & rho() 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: '& mode() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DilithiumConstants
    signature: DilithiumConstants & mode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:76,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:77,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:78,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:79,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:80,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 6
    argNames:
    - mode
    - seed
    - signing_seed
    - s1
    - s2
    - t0
    argTypes:
    - DilithiumConstants
    - std::optional<DilithiumSeedRandomness>
    - DilithiumSigningSeedK
    - DilithiumPolyVec
    - DilithiumPolyVec
    - DilithiumPolyVec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 81
    functionName: Botan::Dilithium_PrivateKeyInternal::Dilithium_PrivateKeyInternal
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void Dilithium_PrivateKeyInternal(DilithiumConstants mode,\n                                   std::optional<DilithiumSeedRandomness>
      seed,\n                                   DilithiumSigningSeedK signing_seed,\n
      \                                  DilithiumPolyVec s1,\n                                   DilithiumPolyVec
      s2,\n                                   DilithiumPolyVec t0)"
  - 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: '& mode() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DilithiumConstants
    signature: DilithiumConstants & mode() 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: '& seed() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<DilithiumSeedRandomness>
    signature: std::optional<DilithiumSeedRandomness> & seed() 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: '& signing_seed() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DilithiumSigningSeedK
    signature: DilithiumSigningSeedK & signing_seed() 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: '& s1() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DilithiumPolyVec
    signature: DilithiumPolyVec & s1() const
  - 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: '& s2() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DilithiumPolyVec
    signature: DilithiumPolyVec & s2() 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: '& t0() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DilithiumPolyVec
    signature: DilithiumPolyVec & t0() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::poison_all
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:98,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:99,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:100,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 102
    functionName: Botan::Dilithium_PrivateKeyInternal::_const_time_poison
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h
    functionUses: 0
    functionsReached:
    - has_value
    - value
    - Botan::CT::poison_all
    - Botan::CT::poison
    linkageType: ''
    returnType: void
    signature: void _const_time_poison() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:105,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:106,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:107,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 109
    functionName: Botan::Dilithium_PrivateKeyInternal::_const_time_unpoison
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h
    functionUses: 0
    functionsReached:
    - Botan::CT::unpoison_all
    - has_value
    - value
    - Botan::CT::unpoison
    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: 27
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 27
    functionName: ~Dilithium_Keypair_Codec()
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Dilithium_Keypair_Codec()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Dilithium_Algos::decode_public_key
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:37,1
    - Dst: std::make_shared<Dilithium_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:38,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:38,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:38,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mode
    - raw_pk
    argTypes:
    - DilithiumConstants
    - StrongSpan<const DilithiumSerializedPublicKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: Botan::Dilithium_PublicKeyInternal::decode
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_shared<Dilithium_PublicKeyInternal>
    - Botan::Dilithium_Algos::decode_public_key
    linkageType: ''
    returnType: std::shared_ptr<Dilithium_PublicKeyInternal>
    signature: "std::shared_ptr<Dilithium_PublicKeyInternal> decode(\n         DilithiumConstants
      mode, StrongSpan<const DilithiumSerializedPublicKey> raw_pk)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:42,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:43,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:44,1
    - Dst: symmetric_primitives
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:45,1
    - Dst: Botan::Dilithium_PublicKeyInternal::raw_pk
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:45,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:46,1
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:46,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:47,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - mode
    - rho
    - t1
    argTypes:
    - DilithiumConstants
    - DilithiumSeedRho
    - DilithiumPolyVec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 41
    functionDepth: 2
    functionLinenumber: 41
    functionLinenumberEnd: 48
    functionName: Botan::Dilithium_PublicKeyInternal::Dilithium_PublicKeyInternal
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::move
    - size
    - empty
    - symmetric_primitives
    - Botan::Dilithium_PublicKeyInternal::raw_pk
    linkageType: ''
    returnType: void
    signature: void Dilithium_PublicKeyInternal(DilithiumConstants mode, DilithiumSeedRho
      rho, DilithiumPolyVec t1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Dilithium_Algos::encode_public_key
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 51
    functionName: Botan::Dilithium_PublicKeyInternal::raw_pk
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h
    functionUses: 2
    functionsReached:
    - Botan::Dilithium_Algos::encode_public_key
    linkageType: ''
    returnType: DilithiumSerializedPublicKey
    signature: DilithiumSerializedPublicKey raw_pk() 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: '& tr() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DilithiumHashedPublicKey
    signature: DilithiumHashedPublicKey & tr() 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: '& t1() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DilithiumPolyVec
    signature: DilithiumPolyVec & t1() 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: '& rho() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DilithiumSeedRho
    signature: DilithiumSeedRho & rho() 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: '& mode() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DilithiumConstants
    signature: DilithiumConstants & mode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:76,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:77,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:78,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:79,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:80,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:81,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 6
    argNames:
    - mode
    - seed
    - signing_seed
    - s1
    - s2
    - t0
    argTypes:
    - DilithiumConstants
    - std::optional<DilithiumSeedRandomness>
    - DilithiumSigningSeedK
    - DilithiumPolyVec
    - DilithiumPolyVec
    - DilithiumPolyVec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 81
    functionName: Botan::Dilithium_PrivateKeyInternal::Dilithium_PrivateKeyInternal
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void Dilithium_PrivateKeyInternal(DilithiumConstants mode,\n                                   std::optional<DilithiumSeedRandomness>
      seed,\n                                   DilithiumSigningSeedK signing_seed,\n
      \                                  DilithiumPolyVec s1,\n                                   DilithiumPolyVec
      s2,\n                                   DilithiumPolyVec t0)"
  - 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: '& mode() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DilithiumConstants
    signature: DilithiumConstants & mode() 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: '& seed() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::optional<DilithiumSeedRandomness>
    signature: std::optional<DilithiumSeedRandomness> & seed() 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: '& signing_seed() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DilithiumSigningSeedK
    signature: DilithiumSigningSeedK & signing_seed() 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: '& s1() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DilithiumPolyVec
    signature: DilithiumPolyVec & s1() const
  - 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: '& s2() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DilithiumPolyVec
    signature: DilithiumPolyVec & s2() 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: '& t0() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DilithiumPolyVec
    signature: DilithiumPolyVec & t0() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::poison_all
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:98,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:99,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:100,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 102
    functionName: Botan::Dilithium_PrivateKeyInternal::_const_time_poison
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h
    functionUses: 0
    functionsReached:
    - has_value
    - value
    - Botan::CT::poison_all
    - Botan::CT::poison
    linkageType: ''
    returnType: void
    signature: void _const_time_poison() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::unpoison_all
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:105,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:106,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:107,1
    - Dst: value
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 109
    functionName: Botan::Dilithium_PrivateKeyInternal::_const_time_unpoison
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.h
    functionUses: 0
    functionsReached:
    - Botan::CT::unpoison_all
    - has_value
    - value
    - Botan::CT::unpoison
    linkageType: ''
    returnType: void
    signature: void _const_time_unpoison() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: Botan::DilithiumConstants::DilithiumConstants
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DilithiumConstants(const DilithiumConstants& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: Botan::DilithiumConstants::DilithiumConstants
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DilithiumConstants(DilithiumConstants&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 93
    functionName: '& operator=(const DilithiumConstants& other)'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DilithiumConstants
    signature: DilithiumConstants & operator=(const DilithiumConstants& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: '& operator=(DilithiumConstants&& other)'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DilithiumConstants
    signature: DilithiumConstants & operator=(DilithiumConstants&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DilithiumConstants::is_modern
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.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::DilithiumConstants::is_modern
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 1
    functionsReached:
    - Botan::DilithiumConstants::is_modern
    linkageType: ''
    returnType: bool
    signature: bool is_modern() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DilithiumConstants::is_aes
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: Botan::DilithiumConstants::is_aes
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 1
    functionsReached:
    - Botan::DilithiumConstants::is_aes
    linkageType: ''
    returnType: bool
    signature: bool is_aes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DilithiumConstants::is_ml_dsa
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 100
    functionName: Botan::DilithiumConstants::is_ml_dsa
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 1
    functionsReached:
    - Botan::DilithiumConstants::is_ml_dsa
    linkageType: ''
    returnType: bool
    signature: bool is_ml_dsa() 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::DilithiumConstants::tau
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DilithiumTau
    signature: DilithiumTau tau() 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::DilithiumConstants::lambda
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DilithiumLambda
    signature: DilithiumLambda lambda() 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::DilithiumConstants::gamma1
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DilithiumGamma1
    signature: DilithiumGamma1 gamma1() 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::DilithiumConstants::gamma2
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DilithiumGamma2
    signature: DilithiumGamma2 gamma2() 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: Botan::DilithiumConstants::k
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 0
    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: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: Botan::DilithiumConstants::l
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t l() 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: Botan::DilithiumConstants::eta
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DilithiumEta
    signature: DilithiumEta eta() 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::DilithiumConstants::beta
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DilithiumBeta
    signature: DilithiumBeta beta() 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::DilithiumConstants::omega
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DilithiumOmega
    signature: DilithiumOmega omega() 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::DilithiumConstants::public_key_hash_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t public_key_hash_bytes() 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::DilithiumConstants::commitment_hash_full_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t commitment_hash_full_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: Botan::DilithiumConstants::signature_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t signature_bytes() const
  - 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::DilithiumConstants::public_key_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 0
    functionsReached: []
    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: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: Botan::DilithiumConstants::private_key_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t private_key_bytes() const
  - 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::DilithiumConstants::serialized_commitment_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t serialized_commitment_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 158
    functionName: Botan::DilithiumConstants::mode
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DilithiumMode
    signature: DilithiumMode mode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DilithiumConstants::k
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h:161,1
    - Dst: Botan::DilithiumConstants::l
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 161
    functionName: Botan::DilithiumConstants::canonical_parameter_set_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 0
    functionsReached:
    - Botan::DilithiumConstants::l
    - Botan::DilithiumConstants::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: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: '& symmetric_primitives() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Dilithium_Symmetric_Primitives_Base
    signature: Dilithium_Symmetric_Primitives_Base & symmetric_primitives() 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: '& keypair_codec() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Dilithium_Keypair_Codec
    signature: Dilithium_Keypair_Codec & keypair_codec() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: Botan::DilithiumConstants::DilithiumConstants
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DilithiumConstants(const DilithiumConstants& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: Botan::DilithiumConstants::DilithiumConstants
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DilithiumConstants(DilithiumConstants&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 93
    functionName: '& operator=(const DilithiumConstants& other)'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DilithiumConstants
    signature: DilithiumConstants & operator=(const DilithiumConstants& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 94
    functionName: '& operator=(DilithiumConstants&& other)'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DilithiumConstants
    signature: DilithiumConstants & operator=(DilithiumConstants&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DilithiumConstants::is_modern
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.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::DilithiumConstants::is_modern
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 2
    functionsReached:
    - Botan::DilithiumConstants::is_modern
    linkageType: ''
    returnType: bool
    signature: bool is_modern() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DilithiumConstants::is_aes
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: Botan::DilithiumConstants::is_aes
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 2
    functionsReached:
    - Botan::DilithiumConstants::is_aes
    linkageType: ''
    returnType: bool
    signature: bool is_aes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DilithiumConstants::is_ml_dsa
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 100
    functionName: Botan::DilithiumConstants::is_ml_dsa
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 2
    functionsReached:
    - Botan::DilithiumConstants::is_ml_dsa
    linkageType: ''
    returnType: bool
    signature: bool is_ml_dsa() 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::DilithiumConstants::tau
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DilithiumTau
    signature: DilithiumTau tau() 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::DilithiumConstants::lambda
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DilithiumLambda
    signature: DilithiumLambda lambda() 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::DilithiumConstants::gamma1
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DilithiumGamma1
    signature: DilithiumGamma1 gamma1() 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::DilithiumConstants::gamma2
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DilithiumGamma2
    signature: DilithiumGamma2 gamma2() 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: Botan::DilithiumConstants::k
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 1
    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: 122
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 122
    functionName: Botan::DilithiumConstants::l
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t l() 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: Botan::DilithiumConstants::eta
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DilithiumEta
    signature: DilithiumEta eta() 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::DilithiumConstants::beta
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DilithiumBeta
    signature: DilithiumBeta beta() 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::DilithiumConstants::omega
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DilithiumOmega
    signature: DilithiumOmega omega() 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::DilithiumConstants::public_key_hash_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t public_key_hash_bytes() 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::DilithiumConstants::commitment_hash_full_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t commitment_hash_full_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: Botan::DilithiumConstants::signature_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t signature_bytes() const
  - 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::DilithiumConstants::public_key_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 0
    functionsReached: []
    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: 151
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 151
    functionName: Botan::DilithiumConstants::private_key_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t private_key_bytes() const
  - 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::DilithiumConstants::serialized_commitment_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t serialized_commitment_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 158
    functionName: Botan::DilithiumConstants::mode
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DilithiumMode
    signature: DilithiumMode mode() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DilithiumConstants::k
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h:161,1
    - Dst: Botan::DilithiumConstants::l
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 161
    functionName: Botan::DilithiumConstants::canonical_parameter_set_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 0
    functionsReached:
    - Botan::DilithiumConstants::l
    - Botan::DilithiumConstants::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: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: '& symmetric_primitives() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Dilithium_Symmetric_Primitives_Base
    signature: Dilithium_Symmetric_Primitives_Base & symmetric_primitives() 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: '& keypair_codec() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Dilithium_Keypair_Codec
    signature: Dilithium_Keypair_Codec & keypair_codec() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - tr
    argTypes:
    - DilithiumHashedPublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: Botan::DilithiumMessageHash::DilithiumMessageHash
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void DilithiumMessageHash(DilithiumHashedPublicKey tr)
  - 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: ~DilithiumMessageHash()
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~DilithiumMessageHash()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:38,1
    - Dst: Botan::DilithiumMessageHash::name
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h: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::DilithiumMessageHash::name
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 1
    functionsReached:
    - Botan::fmt
    - Botan::DilithiumMessageHash::name
    linkageType: ''
    returnType: std::string
    signature: std::string name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - user_context
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: Botan::DilithiumMessageHash::is_valid_user_context
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::empty
    linkageType: ''
    returnType: bool
    signature: bool is_valid_user_context(std::span<const uint8_t> user_context) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:47,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:48,1
    - Dst: Botan::DilithiumMessageHash::is_valid_user_context
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:48,1
    - Dst: Botan::DilithiumMessageHash::update
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - user_context
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: Botan::DilithiumMessageHash::start
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 2
    functionsReached:
    - BOTAN_STATE_CHECK
    - Botan::DilithiumMessageHash::update
    - Botan::DilithiumMessageHash::is_valid_user_context
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: void
    signature: void start(std::span<const uint8_t> user_context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DilithiumMessageHash::ensure_started
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:54,1
    - Dst: Botan::DilithiumMessageHash::update
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: Botan::DilithiumMessageHash::update
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 2
    functionsReached:
    - Botan::DilithiumMessageHash::update
    - Botan::DilithiumMessageHash::ensure_started
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DilithiumMessageHash::ensure_started
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:59,1
    - Dst: Botan::DilithiumMessageHash::clear
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:60,1
    - Dst: output
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: Botan::DilithiumMessageHash::final
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - output
    - Botan::DilithiumMessageHash::clear
    - Botan::DilithiumMessageHash::ensure_started
    linkageType: ''
    returnType: DilithiumMessageRepresentative
    signature: DilithiumMessageRepresentative final()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DilithiumMessageHash::clear
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: Botan::DilithiumMessageHash::clear
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 2
    functionsReached:
    - Botan::DilithiumMessageHash::clear
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DilithiumMessageHash::start
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 75
    functionName: Botan::DilithiumMessageHash::ensure_started
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 2
    functionsReached:
    - Botan::DilithiumMessageHash::start
    linkageType: ''
    returnType: void
    signature: void ensure_started()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: ~DilithiumXOF()
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~DilithiumXOF()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: commitment_hash_full_bytes
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:104,1
    - Dst: public_key_hash_bytes
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:105,1
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:106,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' mode'
    - xof_adapter
    argTypes:
    - DilithiumConstants
    - std::unique_ptr<DilithiumXOF>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 107
    functionName: Botan::Dilithium_Symmetric_Primitives_Base::Dilithium_Symmetric_Primitives_Base
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - public_key_hash_bytes
    - commitment_hash_full_bytes
    - mode
    - std::move
    linkageType: ''
    returnType: void
    signature: void Dilithium_Symmetric_Primitives_Base(const DilithiumConstants&
      mode, std::unique_ptr<DilithiumXOF> xof_adapter)
  - 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: ~Dilithium_Symmetric_Primitives_Base()
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Dilithium_Symmetric_Primitives_Base()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: Botan::Dilithium_Symmetric_Primitives_Base::Dilithium_Symmetric_Primitives_Base
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Dilithium_Symmetric_Primitives_Base(const Dilithium_Symmetric_Primitives_Base&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: '& operator=(const Dilithium_Symmetric_Primitives_Base&)'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Dilithium_Symmetric_Primitives_Base
    signature: Dilithium_Symmetric_Primitives_Base & operator=(const Dilithium_Symmetric_Primitives_Base&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: Botan::Dilithium_Symmetric_Primitives_Base::Dilithium_Symmetric_Primitives_Base
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Dilithium_Symmetric_Primitives_Base(Dilithium_Symmetric_Primitives_Base&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: '& operator=(Dilithium_Symmetric_Primitives_Base&&)'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Dilithium_Symmetric_Primitives_Base
    signature: Dilithium_Symmetric_Primitives_Base & operator=(Dilithium_Symmetric_Primitives_Base&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<DilithiumMessageHash>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:119,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tr
    argTypes:
    - DilithiumHashedPublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: Botan::Dilithium_Symmetric_Primitives_Base::get_message_hash
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_unique<DilithiumMessageHash>
    linkageType: ''
    returnType: std::unique_ptr<DilithiumMessageHash>
    signature: std::unique_ptr<DilithiumMessageHash> get_message_hash(DilithiumHashedPublicKey
      tr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Dilithium_Symmetric_Primitives_Base::H_256
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pk
    argTypes:
    - StrongSpan<const DilithiumSerializedPublicKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 131
    functionName: Botan::Dilithium_Symmetric_Primitives_Base::H
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - Botan::Dilithium_Symmetric_Primitives_Base::H_256
    linkageType: ''
    returnType: DilithiumHashedPublicKey
    signature: DilithiumHashedPublicKey H(StrongSpan<const DilithiumSerializedPublicKey>
      pk) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:135,1
    - Dst: seed_expansion_domain_separator
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:136,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:137,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:137,1
    - Dst: output
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:143,1
    - Dst: output
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:144,1
    - Dst: output
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:145,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:146,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:148,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:148,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - seed
    argTypes:
    - StrongSpan<const DilithiumSeedRandomness>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 149
    functionName: Botan::Dilithium_Symmetric_Primitives_Base::H
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - update
    - std::move
    - clear
    - seed_expansion_domain_separator
    - auto::value
    - output
    linkageType: ''
    returnType: std::tuple<DilithiumSeedRho, DilithiumSeedRhoPrime, DilithiumSigningSeedK>
    signature: "std::tuple<DilithiumSeedRho, DilithiumSeedRhoPrime, DilithiumSigningSeedK>
      H(\n         StrongSpan<const DilithiumSeedRandomness> seed) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Dilithium_Symmetric_Primitives_Base::H_256
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mu
    - w1
    argTypes:
    - StrongSpan<const DilithiumMessageRepresentative>
    - StrongSpan<const DilithiumSerializedCommitment>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: Botan::Dilithium_Symmetric_Primitives_Base::H
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - Botan::Dilithium_Symmetric_Primitives_Base::H_256
    linkageType: ''
    returnType: DilithiumCommitmentHash
    signature: "DilithiumCommitmentHash H(StrongSpan<const DilithiumMessageRepresentative>
      mu,\n                                StrongSpan<const DilithiumSerializedCommitment>
      w1) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::clear
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:157,1
    - Dst: Botan::update
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:158,1
    - Dst: truncate_commitment_hash
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - seed
    argTypes:
    - StrongSpan<const DilithiumCommitmentHash>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 160
    functionName: '& H(StrongSpan<const DilithiumCommitmentHash> seed) const'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - truncate_commitment_hash
    - Botan::clear
    - Botan::update
    linkageType: ''
    returnType: SHAKE_256_XOF
    signature: SHAKE_256_XOF & H(StrongSpan<const DilithiumCommitmentHash> seed) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XOF128
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - seed
    - nonce
    argTypes:
    - StrongSpan<const DilithiumSeedRho>
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 166
    functionName: '& H(StrongSpan<const DilithiumSeedRho> seed, uint16_t nonce) const'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - XOF128
    linkageType: ''
    returnType: Botan::XOF
    signature: Botan::XOF & H(StrongSpan<const DilithiumSeedRho> seed, uint16_t nonce)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XOF256
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - seed
    - nonce
    argTypes:
    - StrongSpan<const DilithiumSeedRhoPrime>
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 172
    functionName: '& H(StrongSpan<const DilithiumSeedRhoPrime> seed, uint16_t nonce)
      const'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - XOF256
    linkageType: ''
    returnType: Botan::XOF
    signature: Botan::XOF & H(StrongSpan<const DilithiumSeedRhoPrime> seed, uint16_t
      nonce) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:192,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:193,1
    - Dst: output
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - outbytes
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 195
    functionName: Botan::Dilithium_Symmetric_Primitives_Base::H_256
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 2
    functionsReached:
    - update
    - clear
    - output
    linkageType: ''
    returnType: OutT
    signature: OutT H_256(size_t outbytes, const InTs&... ins) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - tr
    argTypes:
    - DilithiumHashedPublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: Botan::DilithiumMessageHash::DilithiumMessageHash
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void DilithiumMessageHash(DilithiumHashedPublicKey tr)
  - 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: ~DilithiumMessageHash()
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~DilithiumMessageHash()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:38,1
    - Dst: Botan::DilithiumMessageHash::name
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h: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::DilithiumMessageHash::name
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 2
    functionsReached:
    - Botan::fmt
    - Botan::DilithiumMessageHash::name
    linkageType: ''
    returnType: std::string
    signature: std::string name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - user_context
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: Botan::DilithiumMessageHash::is_valid_user_context
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 1
    functionsReached:
    - std::span<const uint8_t>::empty
    linkageType: ''
    returnType: bool
    signature: bool is_valid_user_context(std::span<const uint8_t> user_context) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:47,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:48,1
    - Dst: Botan::DilithiumMessageHash::is_valid_user_context
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:48,1
    - Dst: Botan::DilithiumMessageHash::update
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - user_context
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: Botan::DilithiumMessageHash::start
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 3
    functionsReached:
    - BOTAN_STATE_CHECK
    - Botan::DilithiumMessageHash::update
    - Botan::DilithiumMessageHash::is_valid_user_context
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: void
    signature: void start(std::span<const uint8_t> user_context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DilithiumMessageHash::ensure_started
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:54,1
    - Dst: Botan::DilithiumMessageHash::update
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: Botan::DilithiumMessageHash::update
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 4
    functionsReached:
    - Botan::DilithiumMessageHash::update
    - Botan::DilithiumMessageHash::ensure_started
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DilithiumMessageHash::ensure_started
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:59,1
    - Dst: Botan::DilithiumMessageHash::clear
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:60,1
    - Dst: output
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: Botan::DilithiumMessageHash::final
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - output
    - Botan::DilithiumMessageHash::clear
    - Botan::DilithiumMessageHash::ensure_started
    linkageType: ''
    returnType: DilithiumMessageRepresentative
    signature: DilithiumMessageRepresentative final()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DilithiumMessageHash::clear
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 68
    functionName: Botan::DilithiumMessageHash::clear
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 4
    functionsReached:
    - Botan::DilithiumMessageHash::clear
    linkageType: ''
    returnType: void
    signature: void clear()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DilithiumMessageHash::start
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:73,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 75
    functionName: Botan::DilithiumMessageHash::ensure_started
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 4
    functionsReached:
    - Botan::DilithiumMessageHash::start
    linkageType: ''
    returnType: void
    signature: void ensure_started()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 91
    functionName: ~DilithiumXOF()
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~DilithiumXOF()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: commitment_hash_full_bytes
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:104,1
    - Dst: public_key_hash_bytes
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:105,1
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:106,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' mode'
    - xof_adapter
    argTypes:
    - DilithiumConstants
    - std::unique_ptr<DilithiumXOF>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 107
    functionName: Botan::Dilithium_Symmetric_Primitives_Base::Dilithium_Symmetric_Primitives_Base
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - public_key_hash_bytes
    - commitment_hash_full_bytes
    - mode
    - std::move
    linkageType: ''
    returnType: void
    signature: void Dilithium_Symmetric_Primitives_Base(const DilithiumConstants&
      mode, std::unique_ptr<DilithiumXOF> xof_adapter)
  - 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: ~Dilithium_Symmetric_Primitives_Base()
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~Dilithium_Symmetric_Primitives_Base()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 113
    functionName: Botan::Dilithium_Symmetric_Primitives_Base::Dilithium_Symmetric_Primitives_Base
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Dilithium_Symmetric_Primitives_Base(const Dilithium_Symmetric_Primitives_Base&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 114
    functionName: '& operator=(const Dilithium_Symmetric_Primitives_Base&)'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Dilithium_Symmetric_Primitives_Base
    signature: Dilithium_Symmetric_Primitives_Base & operator=(const Dilithium_Symmetric_Primitives_Base&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 115
    functionName: Botan::Dilithium_Symmetric_Primitives_Base::Dilithium_Symmetric_Primitives_Base
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Dilithium_Symmetric_Primitives_Base(Dilithium_Symmetric_Primitives_Base&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: '& operator=(Dilithium_Symmetric_Primitives_Base&&)'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Dilithium_Symmetric_Primitives_Base
    signature: Dilithium_Symmetric_Primitives_Base & operator=(Dilithium_Symmetric_Primitives_Base&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<DilithiumMessageHash>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:119,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tr
    argTypes:
    - DilithiumHashedPublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: Botan::Dilithium_Symmetric_Primitives_Base::get_message_hash
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - std::move
    - std::make_unique<DilithiumMessageHash>
    linkageType: ''
    returnType: std::unique_ptr<DilithiumMessageHash>
    signature: std::unique_ptr<DilithiumMessageHash> get_message_hash(DilithiumHashedPublicKey
      tr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Dilithium_Symmetric_Primitives_Base::H_256
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pk
    argTypes:
    - StrongSpan<const DilithiumSerializedPublicKey>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 131
    functionName: Botan::Dilithium_Symmetric_Primitives_Base::H
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - Botan::Dilithium_Symmetric_Primitives_Base::H_256
    linkageType: ''
    returnType: DilithiumHashedPublicKey
    signature: DilithiumHashedPublicKey H(StrongSpan<const DilithiumSerializedPublicKey>
      pk) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:135,1
    - Dst: seed_expansion_domain_separator
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:136,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:137,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:137,1
    - Dst: output
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:143,1
    - Dst: output
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:144,1
    - Dst: output
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:145,1
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:146,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:148,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:148,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:148,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - seed
    argTypes:
    - StrongSpan<const DilithiumSeedRandomness>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 149
    functionName: Botan::Dilithium_Symmetric_Primitives_Base::H
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - update
    - std::move
    - clear
    - seed_expansion_domain_separator
    - auto::value
    - output
    linkageType: ''
    returnType: std::tuple<DilithiumSeedRho, DilithiumSeedRhoPrime, DilithiumSigningSeedK>
    signature: "std::tuple<DilithiumSeedRho, DilithiumSeedRhoPrime, DilithiumSigningSeedK>
      H(\n         StrongSpan<const DilithiumSeedRandomness> seed) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Dilithium_Symmetric_Primitives_Base::H_256
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - mu
    - w1
    argTypes:
    - StrongSpan<const DilithiumMessageRepresentative>
    - StrongSpan<const DilithiumSerializedCommitment>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: Botan::Dilithium_Symmetric_Primitives_Base::H
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - Botan::Dilithium_Symmetric_Primitives_Base::H_256
    linkageType: ''
    returnType: DilithiumCommitmentHash
    signature: "DilithiumCommitmentHash H(StrongSpan<const DilithiumMessageRepresentative>
      mu,\n                                StrongSpan<const DilithiumSerializedCommitment>
      w1) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:157,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:158,1
    - Dst: truncate_commitment_hash
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - seed
    argTypes:
    - StrongSpan<const DilithiumCommitmentHash>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 160
    functionName: '& H(StrongSpan<const DilithiumCommitmentHash> seed) const'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - update
    - clear
    - truncate_commitment_hash
    linkageType: ''
    returnType: SHAKE_256_XOF
    signature: SHAKE_256_XOF & H(StrongSpan<const DilithiumCommitmentHash> seed) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XOF128
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - seed
    - nonce
    argTypes:
    - StrongSpan<const DilithiumSeedRho>
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 166
    functionName: '& H(StrongSpan<const DilithiumSeedRho> seed, uint16_t nonce) const'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - XOF128
    linkageType: ''
    returnType: Botan::XOF
    signature: Botan::XOF & H(StrongSpan<const DilithiumSeedRho> seed, uint16_t nonce)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XOF256
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:171,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - seed
    - nonce
    argTypes:
    - StrongSpan<const DilithiumSeedRhoPrime>
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 172
    functionName: '& H(StrongSpan<const DilithiumSeedRhoPrime> seed, uint16_t nonce)
      const'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 0
    functionsReached:
    - XOF256
    linkageType: ''
    returnType: Botan::XOF
    signature: Botan::XOF & H(StrongSpan<const DilithiumSeedRhoPrime> seed, uint16_t
      nonce) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:192,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:193,1
    - Dst: output
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - outbytes
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 195
    functionName: Botan::Dilithium_Symmetric_Primitives_Base::H_256
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.h
    functionUses: 4
    functionsReached:
    - update
    - clear
    - output
    linkageType: ''
    returnType: OutT
    signature: OutT H_256(size_t outbytes, const InTs&... ins) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::Mask::expand_top_bit
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:42,1
    - Dst: static_cast<unsigned_T>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: Botan::Dilithium_Algos::is_negative_mask
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::Mask::expand_top_bit
    - static_cast<unsigned_T>
    linkageType: ''
    returnType: auto
    signature: auto is_negative_mask(T x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - DilithiumConstants::T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: Botan::Dilithium_Algos::map_range
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_DEBUG_ASSERT
    linkageType: ''
    returnType: std::make_unsigned_t<DilithiumConstants::T>
    signature: std::make_unsigned_t<DilithiumConstants::T> map_range(DilithiumConstants::T
      c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DilithiumConstants::T>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - std::make_unsigned_t<DilithiumConstants::T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: Botan::Dilithium_Algos::unmap_range
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - static_cast<DilithiumConstants::T>
    linkageType: ''
    returnType: DilithiumConstants::T
    signature: DilithiumConstants::T unmap_range(std::make_unsigned_t<DilithiumConstants::T>
      c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYSTALS::pack<b>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:65,1
    - Dst: CRYSTALS::pack<a + b>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' p'
    - ' stuffer'
    argTypes:
    - CRYSTALS::Polynomial<PolyTrait, D>
    - BufferStuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 71
    functionName: Botan::Dilithium_Algos::poly_pack
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - CRYSTALS::pack<b>
    - CRYSTALS::pack<a + b>
    linkageType: ''
    returnType: void
    signature: void poly_pack(const CRYSTALS::Polynomial<PolyTrait, D>& p, BufferStuffer&
      stuffer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYSTALS::unpack<b>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:82,1
    - Dst: CRYSTALS::unpack<a + b>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:86,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:91,1
    - Dst: is_power_of_2
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:92,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:92,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:92,1
    - Dst: ct_validate_value_range
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:94,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:95,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - ' p'
    - ' get_bytes'
    argTypes:
    - CRYSTALS::Polynomial<PolyTrait, D>
    - ByteSourceT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 97
    functionName: Botan::Dilithium_Algos::poly_unpack
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - CRYSTALS::unpack<a + b>
    - Decoding_Error
    - is_power_of_2
    - ct_validate_value_range
    - BOTAN_DEBUG_ASSERT
    - CRYSTALS::unpack<b>
    - static_cast<uint64_t>
    linkageType: ''
    returnType: void
    signature: void poly_unpack(CRYSTALS::Polynomial<PolyTrait, D>& p, ByteSourceT&
      get_bytes, bool check_range = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitlen
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:104,1
    - Dst: Botan::Dilithium_Algos::poly_pack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - ' stuffer'
    argTypes:
    - DilithiumPoly
    - BufferStuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: Botan::Dilithium_Algos::poly_pack_t1
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - bitlen
    - Botan::Dilithium_Algos::poly_pack
    linkageType: ''
    returnType: void
    signature: void poly_pack_t1(const DilithiumPoly& p, BufferStuffer& stuffer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gamma2
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:115,1
    - Dst: Botan::Dilithium_Algos::poly_pack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:117,1
    - Dst: Botan::Dilithium_Algos::poly_pack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:119,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - ' p'
    - ' stuffer'
    - ' mode'
    argTypes:
    - DilithiumPoly
    - BufferStuffer
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 123
    functionName: Botan::Dilithium_Algos::poly_pack_w1
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - Botan::Dilithium_Algos::poly_pack
    - gamma2
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void poly_pack_w1(const DilithiumPoly& p, BufferStuffer& stuffer, const
      DilithiumConstants& mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gamma1
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:131,1
    - Dst: Botan::Dilithium_Algos::poly_pack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:133,1
    - Dst: Botan::Dilithium_Algos::poly_pack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:135,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' p'
    - ' stuffer'
    - ' mode'
    argTypes:
    - DilithiumPoly
    - BufferStuffer
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 139
    functionName: Botan::Dilithium_Algos::poly_pack_gamma1
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - gamma1
    - Botan::Dilithium_Algos::poly_pack
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void poly_pack_gamma1(const DilithiumPoly& p, BufferStuffer& stuffer,
      const DilithiumConstants& mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: eta
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:149,1
    - Dst: Botan::Dilithium_Algos::poly_pack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:151,1
    - Dst: Botan::Dilithium_Algos::poly_pack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:153,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' p'
    - ' stuffer'
    - ' mode'
    argTypes:
    - DilithiumPoly
    - BufferStuffer
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 157
    functionName: Botan::Dilithium_Algos::poly_pack_eta
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - eta
    - Botan::Dilithium_Algos::poly_pack
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void poly_pack_eta(const DilithiumPoly& p, BufferStuffer& stuffer,
      const DilithiumConstants& mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Dilithium_Algos::poly_pack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - ' stuffer'
    argTypes:
    - DilithiumPoly
    - BufferStuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: Botan::Dilithium_Algos::poly_pack_t0
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - Botan::Dilithium_Algos::poly_pack
    linkageType: ''
    returnType: void
    signature: void poly_pack_t0(const DilithiumPoly& p, BufferStuffer& stuffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitlen
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:175,1
    - Dst: is_power_of_2
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:179,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:179,1
    - Dst: Botan::Dilithium_Algos::poly_unpack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - ' slicer'
    argTypes:
    - DilithiumPoly
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 181
    functionName: Botan::Dilithium_Algos::poly_unpack_t1
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - bitlen
    - is_power_of_2
    - static_cast<uint32_t>
    - Botan::Dilithium_Algos::poly_unpack
    linkageType: ''
    returnType: void
    signature: void poly_unpack_t1(DilithiumPoly& p, BufferSlicer& slicer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gamma1
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:190,1
    - Dst: Botan::Dilithium_Algos::poly_unpack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:192,1
    - Dst: Botan::Dilithium_Algos::poly_unpack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:194,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' p'
    - ' byte_source'
    - ' mode'
    argTypes:
    - DilithiumPoly
    - ByteSourceT
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 198
    functionName: Botan::Dilithium_Algos::poly_unpack_gamma1
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - gamma1
    - BOTAN_ASSERT_UNREACHABLE
    - Botan::Dilithium_Algos::poly_unpack
    linkageType: ''
    returnType: void
    signature: void poly_unpack_gamma1(DilithiumPoly& p, ByteSourceT& byte_source,
      const DilithiumConstants& mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: eta
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:208,1
    - Dst: Botan::Dilithium_Algos::poly_unpack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:210,1
    - Dst: Botan::Dilithium_Algos::poly_unpack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:212,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' p'
    - ' slicer'
    - ' mode'
    argTypes:
    - DilithiumPoly
    - BufferSlicer
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 216
    functionName: Botan::Dilithium_Algos::poly_unpack_eta
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - eta
    - BOTAN_ASSERT_UNREACHABLE
    - Botan::Dilithium_Algos::poly_unpack
    linkageType: ''
    returnType: void
    signature: void poly_unpack_eta(DilithiumPoly& p, BufferSlicer& slicer, const
      DilithiumConstants& mode, bool check_range = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Dilithium_Algos::poly_unpack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - ' slicer'
    argTypes:
    - DilithiumPoly
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: Botan::Dilithium_Algos::poly_unpack_t0
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - Botan::Dilithium_Algos::poly_unpack
    linkageType: ''
    returnType: void
    signature: void poly_unpack_t0(DilithiumPoly& p, BufferSlicer& slicer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:233,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:233,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:233,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:234,1
    - Dst: ct_validate_value_range
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:234,1
    - Dst: next
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:236,1
    - Dst: omega
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:236,1
    - Dst: next
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:237,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:237,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:241,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:243,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:243,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:247,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:251,1
    - Dst: BufferStuffer::remaining_capacity
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:251,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - ' h'
    - ' stuffer'
    - ' mode'
    argTypes:
    - DilithiumPolyVec
    - BufferStuffer
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 252
    functionName: Botan::Dilithium_Algos::hint_pack
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - BufferStuffer::append
    - k
    - size
    - ct_validate_value_range
    - static_cast<uint8_t>
    - BOTAN_DEBUG_ASSERT
    - next
    - BufferStuffer::remaining_capacity
    - omega
    linkageType: ''
    returnType: void
    signature: void hint_pack(const DilithiumPolyVec& h, BufferStuffer& stuffer, const
      DilithiumConstants& mode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:258,1
    - Dst: omega
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:258,1
    - Dst: take
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:259,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:259,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:261,1
    - Dst: BufferSlicer::take_byte
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:264,1
    - Dst: omega
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:267,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:271,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:275,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:290,1
    - Dst: BufferSlicer::remaining
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:290,1
    - Dst: std::all_of
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:291,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:291,1
    - Dst: auto::end
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:291,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:295,1
    - Dst: DilithiumPolyVec::ct_validate_value_range
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:295,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - ' slicer'
    - ' mode'
    argTypes:
    - BufferSlicer
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 297
    functionName: Botan::Dilithium_Algos::hint_unpack
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - auto::end
    - k
    - std::all_of
    - BOTAN_DEBUG_ASSERT
    - BufferSlicer::remaining
    - take
    - omega
    - DilithiumPolyVec::ct_validate_value_range
    - BufferSlicer::take
    - auto::size
    - auto::begin
    - BufferSlicer::take_byte
    linkageType: ''
    returnType: std::optional<DilithiumPolyVec>
    signature: std::optional<DilithiumPolyVec> hint_unpack(BufferSlicer& slicer, const
      DilithiumConstants& mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ntt
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:313,1
    - Dst: clone
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:313,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:314,1
    - Dst: inverse_ntt
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:315,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:315,1
    - Dst: auto::conditional_add_q
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:317,1
    - Dst: Botan::Dilithium_Algos::power2round
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' A'
    - ' s1'
    - ' s2'
    argTypes:
    - DilithiumPolyMatNTT
    - DilithiumPolyVec
    - DilithiumPolyVec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 320
    functionName: Botan::Dilithium_Algos::compute_t1_and_t0
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - clone
    - Botan::Dilithium_Algos::power2round
    - auto::reduce
    - ntt
    - inverse_ntt
    - auto::conditional_add_q
    linkageType: ''
    returnType: std::pair<DilithiumPolyVec, DilithiumPolyVec>
    signature: "std::pair<DilithiumPolyVec, DilithiumPolyVec> compute_t1_and_t0(const
      DilithiumPolyMatNTT& A,\n                                                                const
      DilithiumPolyVec& s1,\n                                                                const
      DilithiumPolyVec& s2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::Mask::expand_top_bit
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:42,1
    - Dst: static_cast<unsigned_T>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: Botan::Dilithium_Algos::is_negative_mask
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::Mask::expand_top_bit
    - static_cast<unsigned_T>
    linkageType: ''
    returnType: auto
    signature: auto is_negative_mask(T x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - DilithiumConstants::T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: Botan::Dilithium_Algos::map_range
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_DEBUG_ASSERT
    linkageType: ''
    returnType: std::make_unsigned_t<DilithiumConstants::T>
    signature: std::make_unsigned_t<DilithiumConstants::T> map_range(DilithiumConstants::T
      c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DilithiumConstants::T>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - std::make_unsigned_t<DilithiumConstants::T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: Botan::Dilithium_Algos::unmap_range
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - static_cast<DilithiumConstants::T>
    linkageType: ''
    returnType: DilithiumConstants::T
    signature: DilithiumConstants::T unmap_range(std::make_unsigned_t<DilithiumConstants::T>
      c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYSTALS::pack<b>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:65,1
    - Dst: CRYSTALS::pack<a + b>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' p'
    - ' stuffer'
    argTypes:
    - CRYSTALS::Polynomial<PolyTrait, D>
    - BufferStuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 71
    functionName: Botan::Dilithium_Algos::poly_pack
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 5
    functionsReached:
    - CRYSTALS::pack<b>
    - CRYSTALS::pack<a + b>
    linkageType: ''
    returnType: void
    signature: void poly_pack(const CRYSTALS::Polynomial<PolyTrait, D>& p, BufferStuffer&
      stuffer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYSTALS::unpack<b>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:82,1
    - Dst: CRYSTALS::unpack<a + b>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:86,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:91,1
    - Dst: is_power_of_2
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:92,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:92,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:92,1
    - Dst: ct_validate_value_range
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:94,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:95,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - ' p'
    - ' get_bytes'
    argTypes:
    - CRYSTALS::Polynomial<PolyTrait, D>
    - ByteSourceT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 97
    functionName: Botan::Dilithium_Algos::poly_unpack
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 4
    functionsReached:
    - CRYSTALS::unpack<a + b>
    - Decoding_Error
    - is_power_of_2
    - ct_validate_value_range
    - BOTAN_DEBUG_ASSERT
    - CRYSTALS::unpack<b>
    - static_cast<uint64_t>
    linkageType: ''
    returnType: void
    signature: void poly_unpack(CRYSTALS::Polynomial<PolyTrait, D>& p, ByteSourceT&
      get_bytes, bool check_range = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitlen
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:104,1
    - Dst: Botan::Dilithium_Algos::poly_pack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - ' stuffer'
    argTypes:
    - DilithiumPoly
    - BufferStuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: Botan::Dilithium_Algos::poly_pack_t1
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - bitlen
    - Botan::Dilithium_Algos::poly_pack
    linkageType: ''
    returnType: void
    signature: void poly_pack_t1(const DilithiumPoly& p, BufferStuffer& stuffer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gamma2
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:115,1
    - Dst: Botan::Dilithium_Algos::poly_pack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:117,1
    - Dst: Botan::Dilithium_Algos::poly_pack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:119,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - ' p'
    - ' stuffer'
    - ' mode'
    argTypes:
    - DilithiumPoly
    - BufferStuffer
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 123
    functionName: Botan::Dilithium_Algos::poly_pack_w1
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - Botan::Dilithium_Algos::poly_pack
    - gamma2
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void poly_pack_w1(const DilithiumPoly& p, BufferStuffer& stuffer, const
      DilithiumConstants& mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gamma1
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:131,1
    - Dst: Botan::Dilithium_Algos::poly_pack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:133,1
    - Dst: Botan::Dilithium_Algos::poly_pack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:135,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' p'
    - ' stuffer'
    - ' mode'
    argTypes:
    - DilithiumPoly
    - BufferStuffer
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 139
    functionName: Botan::Dilithium_Algos::poly_pack_gamma1
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - gamma1
    - Botan::Dilithium_Algos::poly_pack
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void poly_pack_gamma1(const DilithiumPoly& p, BufferStuffer& stuffer,
      const DilithiumConstants& mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: eta
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:149,1
    - Dst: Botan::Dilithium_Algos::poly_pack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:151,1
    - Dst: Botan::Dilithium_Algos::poly_pack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:153,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' p'
    - ' stuffer'
    - ' mode'
    argTypes:
    - DilithiumPoly
    - BufferStuffer
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 157
    functionName: Botan::Dilithium_Algos::poly_pack_eta
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - eta
    - Botan::Dilithium_Algos::poly_pack
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void poly_pack_eta(const DilithiumPoly& p, BufferStuffer& stuffer,
      const DilithiumConstants& mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Dilithium_Algos::poly_pack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - ' stuffer'
    argTypes:
    - DilithiumPoly
    - BufferStuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: Botan::Dilithium_Algos::poly_pack_t0
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - Botan::Dilithium_Algos::poly_pack
    linkageType: ''
    returnType: void
    signature: void poly_pack_t0(const DilithiumPoly& p, BufferStuffer& stuffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitlen
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:175,1
    - Dst: is_power_of_2
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:179,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:179,1
    - Dst: Botan::Dilithium_Algos::poly_unpack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - ' slicer'
    argTypes:
    - DilithiumPoly
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 181
    functionName: Botan::Dilithium_Algos::poly_unpack_t1
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - bitlen
    - is_power_of_2
    - static_cast<uint32_t>
    - Botan::Dilithium_Algos::poly_unpack
    linkageType: ''
    returnType: void
    signature: void poly_unpack_t1(DilithiumPoly& p, BufferSlicer& slicer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gamma1
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:190,1
    - Dst: Botan::Dilithium_Algos::poly_unpack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:192,1
    - Dst: Botan::Dilithium_Algos::poly_unpack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:194,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' p'
    - ' byte_source'
    - ' mode'
    argTypes:
    - DilithiumPoly
    - ByteSourceT
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 198
    functionName: Botan::Dilithium_Algos::poly_unpack_gamma1
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - gamma1
    - BOTAN_ASSERT_UNREACHABLE
    - Botan::Dilithium_Algos::poly_unpack
    linkageType: ''
    returnType: void
    signature: void poly_unpack_gamma1(DilithiumPoly& p, ByteSourceT& byte_source,
      const DilithiumConstants& mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: eta
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:208,1
    - Dst: Botan::Dilithium_Algos::poly_unpack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:210,1
    - Dst: Botan::Dilithium_Algos::poly_unpack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:212,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' p'
    - ' slicer'
    - ' mode'
    argTypes:
    - DilithiumPoly
    - BufferSlicer
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 216
    functionName: Botan::Dilithium_Algos::poly_unpack_eta
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - eta
    - BOTAN_ASSERT_UNREACHABLE
    - Botan::Dilithium_Algos::poly_unpack
    linkageType: ''
    returnType: void
    signature: void poly_unpack_eta(DilithiumPoly& p, BufferSlicer& slicer, const
      DilithiumConstants& mode, bool check_range = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Dilithium_Algos::poly_unpack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - ' slicer'
    argTypes:
    - DilithiumPoly
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: Botan::Dilithium_Algos::poly_unpack_t0
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - Botan::Dilithium_Algos::poly_unpack
    linkageType: ''
    returnType: void
    signature: void poly_unpack_t0(DilithiumPoly& p, BufferSlicer& slicer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:233,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:233,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:233,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:234,1
    - Dst: ct_validate_value_range
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:234,1
    - Dst: next
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:236,1
    - Dst: omega
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:236,1
    - Dst: next
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:237,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:237,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:241,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:243,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:243,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:247,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:251,1
    - Dst: BufferStuffer::remaining_capacity
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:251,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - ' h'
    - ' stuffer'
    - ' mode'
    argTypes:
    - DilithiumPolyVec
    - BufferStuffer
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 252
    functionName: Botan::Dilithium_Algos::hint_pack
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - BufferStuffer::append
    - k
    - size
    - ct_validate_value_range
    - static_cast<uint8_t>
    - BOTAN_DEBUG_ASSERT
    - next
    - BufferStuffer::remaining_capacity
    - omega
    linkageType: ''
    returnType: void
    signature: void hint_pack(const DilithiumPolyVec& h, BufferStuffer& stuffer, const
      DilithiumConstants& mode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:258,1
    - Dst: omega
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:258,1
    - Dst: take
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:259,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:259,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:261,1
    - Dst: BufferSlicer::take_byte
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:264,1
    - Dst: omega
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:267,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:271,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:275,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:290,1
    - Dst: BufferSlicer::remaining
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:290,1
    - Dst: std::all_of
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:291,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:291,1
    - Dst: auto::end
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:291,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:295,1
    - Dst: DilithiumPolyVec::ct_validate_value_range
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:295,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - ' slicer'
    - ' mode'
    argTypes:
    - BufferSlicer
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 297
    functionName: Botan::Dilithium_Algos::hint_unpack
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - auto::end
    - k
    - std::all_of
    - BOTAN_DEBUG_ASSERT
    - BufferSlicer::remaining
    - take
    - omega
    - DilithiumPolyVec::ct_validate_value_range
    - BufferSlicer::take
    - auto::size
    - auto::begin
    - BufferSlicer::take_byte
    linkageType: ''
    returnType: std::optional<DilithiumPolyVec>
    signature: std::optional<DilithiumPolyVec> hint_unpack(BufferSlicer& slicer, const
      DilithiumConstants& mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ntt
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:313,1
    - Dst: clone
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:313,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:314,1
    - Dst: inverse_ntt
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:315,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:315,1
    - Dst: auto::conditional_add_q
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:317,1
    - Dst: Botan::Dilithium_Algos::power2round
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' A'
    - ' s1'
    - ' s2'
    argTypes:
    - DilithiumPolyMatNTT
    - DilithiumPolyVec
    - DilithiumPolyVec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 320
    functionName: Botan::Dilithium_Algos::compute_t1_and_t0
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - clone
    - Botan::Dilithium_Algos::power2round
    - auto::reduce
    - ntt
    - inverse_ntt
    - auto::conditional_add_q
    linkageType: ''
    returnType: std::pair<DilithiumPolyVec, DilithiumPolyVec>
    signature: "std::pair<DilithiumPolyVec, DilithiumPolyVec> compute_t1_and_t0(const
      DilithiumPolyMatNTT& A,\n                                                                const
      DilithiumPolyVec& s1,\n                                                                const
      DilithiumPolyVec& s2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_key_bytes
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:330,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:333,1
    - Dst: Botan::Dilithium_Algos::poly_pack_t1
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:335,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:338,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - rho
    - ' t1'
    - ' mode'
    argTypes:
    - StrongSpan<const DilithiumSeedRho>
    - DilithiumPolyVec
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 327
    functionDepth: 2
    functionLinenumber: 327
    functionLinenumberEnd: 340
    functionName: Botan::Dilithium_Algos::encode_public_key
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::Dilithium_Algos::poly_pack_t1
    - BufferStuffer::full
    - public_key_bytes
    - BufferStuffer::append
    linkageType: ''
    returnType: DilithiumSerializedPublicKey
    signature: "DilithiumSerializedPublicKey encode_public_key(StrongSpan<const DilithiumSeedRho>
      rho,\n                                               const DilithiumPolyVec&
      t1,\n                                               const DilithiumConstants&
      mode)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: StrongSpan<const DilithiumSerializedPublicKey>::size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:347,1
    - Dst: public_key_bytes
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:347,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:348,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:352,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:354,1
    - Dst: Botan::Dilithium_Algos::poly_unpack_t1
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:356,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:358,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:358,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:360,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:360,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - pk
    - ' mode'
    argTypes:
    - StrongSpan<const DilithiumSerializedPublicKey>
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 345
    functionDepth: 3
    functionLinenumber: 345
    functionLinenumberEnd: 361
    functionName: Botan::Dilithium_Algos::decode_public_key
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::Dilithium_Algos::poly_unpack_t1
    - Decoding_Error
    - std::move
    - BufferSlicer::empty
    - public_key_bytes
    - k
    - StrongSpan<const DilithiumSerializedPublicKey>::size
    - BufferSlicer::copy
    linkageType: ''
    returnType: std::pair<DilithiumSeedRho, DilithiumPolyVec>
    signature: "std::pair<DilithiumSeedRho, DilithiumPolyVec> decode_public_key(StrongSpan<const
      DilithiumSerializedPublicKey> pk,\n                                                                const
      DilithiumConstants& mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:370,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:371,1
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:372,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:373,1
    - Dst: private_key_bytes
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:375,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:378,1
    - Dst: rho
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:378,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:379,1
    - Dst: signing_seed
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:379,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:380,1
    - Dst: tr
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:380,1
    - Dst: s1
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:382,1
    - Dst: Botan::Dilithium_Algos::poly_pack_eta
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:383,1
    - Dst: s2
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:386,1
    - Dst: Botan::Dilithium_Algos::poly_pack_eta
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:387,1
    - Dst: t0
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:390,1
    - Dst: Botan::Dilithium_Algos::poly_pack_t0
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:391,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:394,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:394,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:395,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - ' keypair'
    argTypes:
    - DilithiumInternalKeypair
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 368
    functionDepth: 2
    functionLinenumber: 368
    functionLinenumberEnd: 398
    functionName: Botan::Dilithium_Algos::encode_keypair
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - t0
    - BufferStuffer::append
    - private_key_bytes
    - s1
    - BufferStuffer::full
    - Botan::Dilithium_Algos::poly_pack_t0
    - tr
    - BOTAN_ASSERT_NONNULL
    - Botan::CT::scoped_poison
    - rho
    - Botan::Dilithium_Algos::poly_pack_eta
    - Botan::CT::unpoison
    - s2
    - signing_seed
    - mode
    linkageType: ''
    returnType: DilithiumSerializedPrivateKey
    signature: DilithiumSerializedPrivateKey encode_keypair(const DilithiumInternalKeypair&
      keypair)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:410,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:412,1
    - Dst: StrongSpan<const DilithiumSerializedPrivateKey>::size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:412,1
    - Dst: DilithiumConstants::private_key_bytes
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:412,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:416,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:417,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:418,1
    - Dst: DilithiumConstants::public_key_hash_bytes
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:418,1
    - Dst: DilithiumConstants::l
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:420,1
    - Dst: Botan::Dilithium_Algos::poly_unpack_eta
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:422,1
    - Dst: DilithiumConstants::k
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:425,1
    - Dst: Botan::Dilithium_Algos::poly_unpack_eta
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:427,1
    - Dst: DilithiumConstants::k
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:430,1
    - Dst: Botan::Dilithium_Algos::poly_unpack_t0
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:432,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:435,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:435,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:441,1
    - Dst: Botan::Dilithium_Algos::expand_A
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:443,1
    - Dst: Botan::Dilithium_Algos::compute_t1_and_t0
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:444,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:446,1
    - Dst: std::make_shared<Dilithium_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:449,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:449,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:449,1
    - Dst: std::make_shared<Dilithium_PrivateKeyInternal>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:450,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:450,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:452,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:453,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:454,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:455,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:458,1
    - Dst: DilithiumInternalKeypair::first::tr
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:460,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:461,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:464,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - sk
    - mode
    argTypes:
    - StrongSpan<const DilithiumSerializedPrivateKey>
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 409
    functionDepth: 3
    functionLinenumber: 409
    functionLinenumberEnd: 467
    functionName: Botan::Dilithium_Algos::decode_keypair
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::CT::scoped_poison
    - std::make_shared<Dilithium_PrivateKeyInternal>
    - Botan::CT::unpoison
    - DilithiumConstants::k
    - Botan::Dilithium_Algos::compute_t1_and_t0
    - BufferSlicer::copy
    - DilithiumConstants::private_key_bytes
    - DilithiumConstants::public_key_hash_bytes
    - BufferSlicer::empty
    - Botan::Dilithium_Algos::poly_unpack_t0
    - DilithiumInternalKeypair::first::tr
    - Botan::Dilithium_Algos::expand_A
    - Decoding_Error
    - DilithiumConstants::l
    - StrongSpan<const DilithiumSerializedPrivateKey>::size
    - std::move
    - Botan::Dilithium_Algos::poly_unpack_eta
    - std::make_shared<Dilithium_PublicKeyInternal>
    linkageType: ''
    returnType: DilithiumInternalKeypair
    signature: DilithiumInternalKeypair decode_keypair(StrongSpan<const DilithiumSerializedPrivateKey>
      sk, DilithiumConstants mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: signature_bytes
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:478,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:481,1
    - Dst: Botan::Dilithium_Algos::poly_pack_gamma1
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:483,1
    - Dst: Botan::Dilithium_Algos::hint_pack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - c
    - ' response'
    - ' hint'
    - ' mode'
    argTypes:
    - StrongSpan<const DilithiumCommitmentHash>
    - DilithiumPolyVec
    - DilithiumPolyVec
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 474
    functionDepth: 2
    functionLinenumber: 474
    functionLinenumberEnd: 488
    functionName: Botan::Dilithium_Algos::encode_signature
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - Botan::Dilithium_Algos::poly_pack_gamma1
    - Botan::Dilithium_Algos::hint_pack
    - signature_bytes
    - BufferStuffer::append
    linkageType: ''
    returnType: DilithiumSerializedSignature
    signature: "DilithiumSerializedSignature encode_signature(StrongSpan<const DilithiumCommitmentHash>
      c,\n                                              const DilithiumPolyVec& response,\n
      \                                             const DilithiumPolyVec& hint,\n
      \                                             const DilithiumConstants& mode)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:496,1
    - Dst: BufferSlicer::remaining
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:496,1
    - Dst: signature_bytes
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:496,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:498,1
    - Dst: commitment_hash_full_bytes
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:498,1
    - Dst: l
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:500,1
    - Dst: Botan::Dilithium_Algos::poly_unpack_gamma1
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:502,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:504,1
    - Dst: BufferSlicer::remaining
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:504,1
    - Dst: omega
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:504,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:504,1
    - Dst: Botan::Dilithium_Algos::hint_unpack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:506,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:507,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:507,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:508,1
    - Dst: std::make_tuple
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:512,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:512,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:512,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:512,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:512,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - sig
    - ' mode'
    argTypes:
    - StrongSpan<const DilithiumSerializedSignature>
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 493
    functionDepth: 3
    functionLinenumber: 493
    functionLinenumberEnd: 513
    functionName: Botan::Dilithium_Algos::decode_signature
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::move
    - l
    - commitment_hash_full_bytes
    - signature_bytes
    - Botan::Dilithium_Algos::hint_unpack
    - BufferSlicer::empty
    - auto::has_value
    - k
    - auto::value
    - BufferSlicer::remaining
    - omega
    - Botan::Dilithium_Algos::poly_unpack_gamma1
    - std::make_tuple
    - BufferSlicer::copy
    linkageType: ''
    returnType: std::optional<std::tuple<DilithiumCommitmentHash, DilithiumPolyVec,
      DilithiumPolyVec>>
    signature: "std::optional<std::tuple<DilithiumCommitmentHash, DilithiumPolyVec,
      DilithiumPolyVec>> decode_signature(\n   StrongSpan<const DilithiumSerializedSignature>
      sig, const DilithiumConstants& mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: serialized_commitment_bytes
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:519,1
    - Dst: Botan::Dilithium_Algos::poly_pack_w1
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:523,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' w1'
    - ' mode'
    argTypes:
    - DilithiumPolyVec
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 518
    functionDepth: 2
    functionLinenumber: 518
    functionLinenumberEnd: 527
    functionName: Botan::Dilithium_Algos::encode_commitment
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - serialized_commitment_bytes
    - Botan::Dilithium_Algos::poly_pack_w1
    linkageType: ''
    returnType: DilithiumSerializedCommitment
    signature: DilithiumSerializedCommitment encode_commitment(const DilithiumPolyVec&
      w1, const DilithiumConstants& mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: symmetric_primitives
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:534,1
    - Dst: Bounded_XOF<DilithiumConstants::SAMPLE_IN_BALL_XOF_BOUND + 8>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:535,1
    - Dst: load_le
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:538,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:538,1
    - Dst: DilithiumPoly::size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:539,1
    - Dst: tau
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:539,1
    - Dst: DilithiumPoly::size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:539,1
    - Dst: auto::next_byte
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:540,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:546,1
    - Dst: DilithiumPoly::ct_validate_value_range
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:546,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:547,1
    - Dst: DilithiumPoly::hamming_weight
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:547,1
    - Dst: tau
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:547,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - seed
    - ' mode'
    argTypes:
    - StrongSpan<const DilithiumCommitmentHash>
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 550
    functionName: Botan::Dilithium_Algos::sample_in_ball
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_DEBUG_ASSERT
    - auto::next
    - DilithiumPoly::hamming_weight
    - Bounded_XOF<DilithiumConstants::SAMPLE_IN_BALL_XOF_BOUND + 8>
    - load_le
    - tau
    - symmetric_primitives
    - DilithiumPoly::size
    - DilithiumPoly::ct_validate_value_range
    - auto::next_byte
    linkageType: ''
    returnType: DilithiumPoly
    signature: DilithiumPoly sample_in_ball(StrongSpan<const DilithiumCommitmentHash>
      seed, const DilithiumConstants& mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: symmetric_primitives
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:565,1
    - Dst: Bounded_XOF<DilithiumConstants::SAMPLE_NTT_POLY_FROM_XOF_BOUND>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:566,1
    - Dst: make_uint32
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:570,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:574,1
    - Dst: ct_validate_value_range
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:574,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - rho
    - ' p'
    - nonce
    - ' mode'
    argTypes:
    - StrongSpan<const DilithiumSeedRho>
    - DilithiumPolyNTT
    - uint16_t
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 557
    functionDepth: 1
    functionLinenumber: 557
    functionLinenumberEnd: 575
    functionName: Botan::Dilithium_Algos::sample_ntt_uniform
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - ct_validate_value_range
    - make_uint32
    - BOTAN_DEBUG_ASSERT
    - Bounded_XOF<DilithiumConstants::SAMPLE_NTT_POLY_FROM_XOF_BOUND>
    - symmetric_primitives
    linkageType: ''
    returnType: void
    signature: "void sample_ntt_uniform(StrongSpan<const DilithiumSeedRho> rho,\n
      \                       DilithiumPolyNTT& p,\n                        uint16_t
      nonce,\n                        const DilithiumConstants& mode)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:584,1
    - Dst: Botan::CT::driveby_unpoison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:587,1
    - Dst: Botan::CT::driveby_unpoison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:592,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - b
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 598
    functionName: Botan::Dilithium_Algos::coeff_from_halfbyte
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::driveby_unpoison
    - BOTAN_DEBUG_ASSERT
    linkageType: ''
    returnType: std::optional<int32_t>
    signature: std::optional<int32_t> coeff_from_halfbyte(uint8_t b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Bounded_XOF<DilithiumConstants::SAMPLE_POLY_FROM_XOF_BOUND>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:605,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:607,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:611,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:611,1
    - Dst: next_byte
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:613,1
    - Dst: Botan::Dilithium_Algos::coeff_from_halfbyte
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:614,1
    - Dst: Botan::Dilithium_Algos::coeff_from_halfbyte
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:615,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:617,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:620,1
    - Dst: next_coeff
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:628,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - ' p'
    - ' xof'
    argTypes:
    - DilithiumPoly
    - Botan::XOF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 601
    functionDepth: 2
    functionLinenumber: 601
    functionLinenumberEnd: 630
    functionName: Botan::Dilithium_Algos::sample_uniform_eta
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - next_byte
    - auto::has_value
    - std::exchange
    - Botan::Dilithium_Algos::coeff_from_halfbyte
    - BOTAN_DEBUG_ASSERT
    - Bounded_XOF<DilithiumConstants::SAMPLE_POLY_FROM_XOF_BOUND>
    - has_value
    - next_coeff
    linkageType: ''
    returnType: void
    signature: void sample_uniform_eta(DilithiumPoly& p, Botan::XOF& xof)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: symmetric_primitives
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:641,1
    - Dst: eta
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:642,1
    - Dst: Botan::Dilithium_Algos::sample_uniform_eta
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:644,1
    - Dst: Botan::Dilithium_Algos::sample_uniform_eta
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:647,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:652,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:654,1
    - Dst: ct_validate_value_range
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:654,1
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:654,1
    - Dst: eta
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:654,1
    - Dst: eta
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:654,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - rhoprime
    - ' p'
    - nonce
    - ' mode'
    argTypes:
    - StrongSpan<const DilithiumSeedRhoPrime>
    - DilithiumPoly
    - uint16_t
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 635
    functionDepth: 1
    functionLinenumber: 635
    functionLinenumberEnd: 655
    functionName: Botan::Dilithium_Algos::sample_uniform_eta
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 1
    functionsReached:
    - Botan::CT::poison
    - eta
    - Botan::Dilithium_Algos::sample_uniform_eta
    - ct_validate_value_range
    - BOTAN_DEBUG_ASSERT
    - static_cast<int32_t>
    - symmetric_primitives
    linkageType: ''
    returnType: void
    signature: "void sample_uniform_eta(StrongSpan<const DilithiumSeedRhoPrime> rhoprime,\n
      \                       DilithiumPoly& p,\n                        uint16_t
      nonce,\n                        const DilithiumConstants& mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: symmetric_primitives
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:565,1
    - Dst: Bounded_XOF<DilithiumConstants::SAMPLE_NTT_POLY_FROM_XOF_BOUND>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:566,1
    - Dst: make_uint32
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:570,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:574,1
    - Dst: ct_validate_value_range
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:574,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - rho
    - ' p'
    - nonce
    - ' mode'
    argTypes:
    - StrongSpan<const DilithiumSeedRho>
    - DilithiumPolyNTT
    - uint16_t
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 557
    functionDepth: 1
    functionLinenumber: 557
    functionLinenumberEnd: 575
    functionName: Botan::Dilithium_Algos::sample_ntt_uniform
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - ct_validate_value_range
    - make_uint32
    - BOTAN_DEBUG_ASSERT
    - Bounded_XOF<DilithiumConstants::SAMPLE_NTT_POLY_FROM_XOF_BOUND>
    - symmetric_primitives
    linkageType: ''
    returnType: void
    signature: "void sample_ntt_uniform(StrongSpan<const DilithiumSeedRho> rho,\n
      \                       DilithiumPolyNTT& p,\n                        uint16_t
      nonce,\n                        const DilithiumConstants& mode)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:584,1
    - Dst: Botan::CT::driveby_unpoison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:587,1
    - Dst: Botan::CT::driveby_unpoison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:592,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - b
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 598
    functionName: Botan::Dilithium_Algos::coeff_from_halfbyte
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 1
    functionsReached:
    - Botan::CT::driveby_unpoison
    - BOTAN_DEBUG_ASSERT
    linkageType: ''
    returnType: std::optional<int32_t>
    signature: std::optional<int32_t> coeff_from_halfbyte(uint8_t b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Bounded_XOF<DilithiumConstants::SAMPLE_POLY_FROM_XOF_BOUND>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:605,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:607,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:611,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:611,1
    - Dst: next_byte
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:613,1
    - Dst: Botan::Dilithium_Algos::coeff_from_halfbyte
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:614,1
    - Dst: Botan::Dilithium_Algos::coeff_from_halfbyte
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:615,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:617,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:620,1
    - Dst: next_coeff
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:628,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - ' p'
    - ' xof'
    argTypes:
    - DilithiumPoly
    - Botan::XOF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 601
    functionDepth: 2
    functionLinenumber: 601
    functionLinenumberEnd: 630
    functionName: Botan::Dilithium_Algos::sample_uniform_eta
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 1
    functionsReached:
    - next_byte
    - auto::has_value
    - std::exchange
    - Botan::Dilithium_Algos::coeff_from_halfbyte
    - BOTAN_DEBUG_ASSERT
    - Bounded_XOF<DilithiumConstants::SAMPLE_POLY_FROM_XOF_BOUND>
    - has_value
    - next_coeff
    linkageType: ''
    returnType: void
    signature: void sample_uniform_eta(DilithiumPoly& p, Botan::XOF& xof)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: symmetric_primitives
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:641,1
    - Dst: eta
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:642,1
    - Dst: Botan::Dilithium_Algos::sample_uniform_eta
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:644,1
    - Dst: Botan::Dilithium_Algos::sample_uniform_eta
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:647,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:652,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:654,1
    - Dst: ct_validate_value_range
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:654,1
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:654,1
    - Dst: eta
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:654,1
    - Dst: eta
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:654,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - rhoprime
    - ' p'
    - nonce
    - ' mode'
    argTypes:
    - StrongSpan<const DilithiumSeedRhoPrime>
    - DilithiumPoly
    - uint16_t
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 635
    functionDepth: 1
    functionLinenumber: 635
    functionLinenumberEnd: 655
    functionName: Botan::Dilithium_Algos::sample_uniform_eta
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 2
    functionsReached:
    - Botan::CT::poison
    - eta
    - Botan::Dilithium_Algos::sample_uniform_eta
    - ct_validate_value_range
    - BOTAN_DEBUG_ASSERT
    - static_cast<int32_t>
    - symmetric_primitives
    linkageType: ''
    returnType: void
    signature: "void sample_uniform_eta(StrongSpan<const DilithiumSeedRhoPrime> rhoprime,\n
      \                       DilithiumPoly& p,\n                        uint16_t
      nonce,\n                        const DilithiumConstants& mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DilithiumConstants::symmetric_primitives
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:666,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:667,1
    - Dst: H
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:669,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:670,1
    - Dst: Botan::Dilithium_Algos::expand_A
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:672,1
    - Dst: Botan::Dilithium_Algos::expand_s
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:673,1
    - Dst: Botan::Dilithium_Algos::compute_t1_and_t0
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:674,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:676,1
    - Dst: std::make_shared<Dilithium_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:679,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:679,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:679,1
    - Dst: std::make_shared<Dilithium_PrivateKeyInternal>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:680,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:681,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:681,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:681,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:681,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:681,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:681,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - xi
    - mode
    argTypes:
    - DilithiumSeedRandomness
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 665
    functionDepth: 2
    functionLinenumber: 665
    functionLinenumberEnd: 687
    functionName: Botan::Dilithium_Algos::expand_keypair
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 2
    functionsReached:
    - H
    - std::move
    - Botan::CT::poison
    - Botan::Dilithium_Algos::expand_s
    - DilithiumConstants::symmetric_primitives
    - std::make_shared<Dilithium_PrivateKeyInternal>
    - std::make_shared<Dilithium_PublicKeyInternal>
    - Botan::CT::unpoison
    - Botan::Dilithium_Algos::compute_t1_and_t0
    - Botan::Dilithium_Algos::expand_A
    linkageType: ''
    returnType: DilithiumInternalKeypair
    signature: DilithiumInternalKeypair expand_keypair(DilithiumSeedRandomness xi,
      DilithiumConstants mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: k
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:696,1
    - Dst: l
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:696,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:697,1
    - Dst: l
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:698,1
    - Dst: Botan::Dilithium_Algos::sample_ntt_uniform
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:699,1
    - Dst: load_le
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:699,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - rho
    - ' mode'
    argTypes:
    - StrongSpan<const DilithiumSeedRho>
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 695
    functionDepth: 2
    functionLinenumber: 695
    functionLinenumberEnd: 703
    functionName: Botan::Dilithium_Algos::expand_A
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 2
    functionsReached:
    - load_le
    - k
    - l
    - Botan::Dilithium_Algos::sample_ntt_uniform
    linkageType: ''
    returnType: DilithiumPolyMatNTT
    signature: DilithiumPolyMatNTT expand_A(StrongSpan<const DilithiumSeedRho> rho,
      const DilithiumConstants& mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:710,1
    - Dst: DilithiumPolyVec
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:710,1
    - Dst: l
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:710,1
    - Dst: DilithiumPolyVec
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:710,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:710,1
    - Dst: Botan::Dilithium_Algos::sample_uniform_eta
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:715,1
    - Dst: Botan::Dilithium_Algos::sample_uniform_eta
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:719,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - rhoprime
    - ' mode'
    argTypes:
    - StrongSpan<const DilithiumSeedRhoPrime>
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 708
    functionDepth: 3
    functionLinenumber: 708
    functionLinenumberEnd: 723
    functionName: Botan::Dilithium_Algos::expand_s
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 1
    functionsReached:
    - DilithiumPolyVec
    - l
    - Botan::Dilithium_Algos::sample_uniform_eta
    - k
    - std::make_pair
    linkageType: ''
    returnType: std::pair<DilithiumPolyVec, DilithiumPolyVec>
    signature: "std::pair<DilithiumPolyVec, DilithiumPolyVec> expand_s(StrongSpan<const
      DilithiumSeedRhoPrime> rhoprime,\n                                                       const
      DilithiumConstants& mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: l
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:731,1
    - Dst: symmetric_primitives
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:733,1
    - Dst: Botan::Dilithium_Algos::poly_unpack_gamma1
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:734,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - rhoprime
    - nonce
    - ' mode'
    argTypes:
    - StrongSpan<const DilithiumSeedRhoPrime>
    - uint16_t
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 728
    functionDepth: 3
    functionLinenumber: 728
    functionLinenumberEnd: 737
    functionName: Botan::Dilithium_Algos::expand_mask
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - l
    - symmetric_primitives
    - Botan::Dilithium_Algos::poly_unpack_gamma1
    linkageType: ''
    returnType: DilithiumPolyVec
    signature: "DilithiumPolyVec expand_mask(StrongSpan<const DilithiumSeedRhoPrime>
      rhoprime,\n                             uint16_t nonce,\n                             const
      DilithiumConstants& mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:754,1
    - Dst: DilithiumPolyVec
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:754,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:754,1
    - Dst: DilithiumPolyVec
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:754,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:754,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:756,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:757,1
    - Dst: std::tie
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:758,1
    - Dst: Botan::Dilithium_Algos::power2round
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:758,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' vec'
    argTypes:
    - DilithiumPolyVec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 746
    functionDepth: 1
    functionLinenumber: 746
    functionLinenumberEnd: 763
    functionName: Botan::Dilithium_Algos::power2round
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 3
    functionsReached:
    - DilithiumPolyVec
    - std::tie
    - Botan::Dilithium_Algos::power2round
    - size
    - std::make_pair
    linkageType: ''
    returnType: std::pair<DilithiumPolyVec, DilithiumPolyVec>
    signature: std::pair<DilithiumPolyVec, DilithiumPolyVec> power2round(const DilithiumPolyVec&
      vec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Dilithium_Algos::is_negative_mask
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:783,1
    - Dst: Botan::Dilithium_Algos::is_negative_mask
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:789,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - r
    argTypes:
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 775
    functionDepth: 2
    functionLinenumber: 775
    functionLinenumberEnd: 792
    functionName: Botan::Dilithium_Algos::decompose
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - Botan::Dilithium_Algos::is_negative_mask
    linkageType: ''
    returnType: std::pair<int32_t, int32_t>
    signature: std::pair<int32_t, int32_t> decompose(int32_t r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:800,1
    - Dst: DilithiumPolyVec
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:800,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:800,1
    - Dst: DilithiumPolyVec
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:800,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:800,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:802,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:803,1
    - Dst: std::tie
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:804,1
    - Dst: Botan::Dilithium_Algos::decompose
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:804,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' vec'
    argTypes:
    - DilithiumPolyVec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 799
    functionDepth: 3
    functionLinenumber: 799
    functionLinenumberEnd: 809
    functionName: Botan::Dilithium_Algos::decompose_all_coefficients
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - DilithiumPolyVec
    - std::tie
    - size
    - std::make_pair
    - Botan::Dilithium_Algos::decompose
    linkageType: ''
    returnType: std::pair<DilithiumPolyVec, DilithiumPolyVec>
    signature: std::pair<DilithiumPolyVec, DilithiumPolyVec> decompose_all_coefficients(const
      DilithiumPolyVec& vec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Dilithium_Algos::is_negative_mask
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:783,1
    - Dst: Botan::Dilithium_Algos::is_negative_mask
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:789,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - r
    argTypes:
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 775
    functionDepth: 2
    functionLinenumber: 775
    functionLinenumberEnd: 792
    functionName: Botan::Dilithium_Algos::decompose
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 1
    functionsReached:
    - Botan::Dilithium_Algos::is_negative_mask
    linkageType: ''
    returnType: std::pair<int32_t, int32_t>
    signature: std::pair<int32_t, int32_t> decompose(int32_t r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:800,1
    - Dst: DilithiumPolyVec
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:800,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:800,1
    - Dst: DilithiumPolyVec
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:800,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:800,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:802,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:803,1
    - Dst: std::tie
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:804,1
    - Dst: Botan::Dilithium_Algos::decompose
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:804,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' vec'
    argTypes:
    - DilithiumPolyVec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 799
    functionDepth: 3
    functionLinenumber: 799
    functionLinenumberEnd: 809
    functionName: Botan::Dilithium_Algos::decompose_all_coefficients
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - DilithiumPolyVec
    - std::tie
    - size
    - std::make_pair
    - Botan::Dilithium_Algos::decompose
    linkageType: ''
    returnType: std::pair<DilithiumPolyVec, DilithiumPolyVec>
    signature: std::pair<DilithiumPolyVec, DilithiumPolyVec> decompose_all_coefficients(const
      DilithiumPolyVec& vec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gamma2
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:821,1
    - Dst: Botan::Dilithium_Algos::decompose_all_coefficients
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:823,1
    - Dst: Botan::Dilithium_Algos::decompose_all_coefficients
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:826,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:830,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ' vec'
    - ' mode'
    argTypes:
    - DilithiumPolyVec
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 819
    functionDepth: 4
    functionLinenumber: 819
    functionLinenumberEnd: 831
    functionName: Botan::Dilithium_Algos::decompose
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 2
    functionsReached:
    - Botan::Dilithium_Algos::decompose_all_coefficients
    - gamma2
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: std::pair<DilithiumPolyVec, DilithiumPolyVec>
    signature: std::pair<DilithiumPolyVec, DilithiumPolyVec> decompose(const DilithiumPolyVec&
      vec, const DilithiumConstants& mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:844,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:844,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:844,1
    - Dst: gamma2
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:846,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:847,1
    - Dst: gamma2
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:847,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:849,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:850,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:852,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:853,1
    - Dst: Botan::CT::Mask::is_gt
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:855,1
    - Dst: is_lte
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:855,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:856,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:856,1
    - Dst: as_choice
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:855,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:860,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:862,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:863,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:864,1
    - Dst: Botan::Dilithium_Algos::make_hint
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:864,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:868,1
    - Dst: DilithiumPolyVec::ct_validate_value_range
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:868,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - ' z'
    - ' r'
    - ' mode'
    argTypes:
    - DilithiumPolyVec
    - DilithiumPolyVec
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 843
    functionDepth: 4
    functionLinenumber: 843
    functionLinenumberEnd: 871
    functionName: Botan::Dilithium_Algos::make_hint
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 1
    functionsReached:
    - Botan::Dilithium_Algos::make_hint
    - static_cast<uint32_t>
    - gamma2
    - as_choice
    - static_cast<int>
    - size
    - BOTAN_DEBUG_ASSERT
    - Botan::ct_is_equal
    - Botan::CT::Mask::is_gt
    - DilithiumPolyVec::ct_validate_value_range
    - Botan::Sodium::sodium_is_zero
    - is_lte
    linkageType: ''
    returnType: DilithiumPolyVec
    signature: DilithiumPolyVec make_hint(const DilithiumPolyVec& z, const DilithiumPolyVec&
      r, const DilithiumConstants& mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:884,1
    - Dst: static_cast<decltype(r1)>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:884,1
    - Dst: static_cast<decltype(r1)>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:884,1
    - Dst: Botan::Dilithium_Algos::decompose
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:889,1
    - Dst: modulo_m
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:896,1
    - Dst: modulo_m
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:898,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:902,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:903,1
    - Dst: Botan::Dilithium_Algos::use_hint
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:904,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - ' hints'
    - ' vec'
    argTypes:
    - DilithiumPolyVec
    - DilithiumPolyVec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 880
    functionDepth: 3
    functionLinenumber: 880
    functionLinenumberEnd: 907
    functionName: Botan::Dilithium_Algos::use_hint_on_coefficients
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - static_cast<decltype(r1)>
    - size
    - BOTAN_DEBUG_ASSERT
    - Botan::Dilithium_Algos::decompose
    - modulo_m
    - Botan::Dilithium_Algos::use_hint
    linkageType: ''
    returnType: void
    signature: void use_hint_on_coefficients(const DilithiumPolyVec& hints, DilithiumPolyVec&
      vec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:884,1
    - Dst: static_cast<decltype(r1)>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:884,1
    - Dst: static_cast<decltype(r1)>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:884,1
    - Dst: Botan::Dilithium_Algos::decompose
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:889,1
    - Dst: modulo_m
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:896,1
    - Dst: modulo_m
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:898,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:902,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:903,1
    - Dst: Botan::Dilithium_Algos::use_hint
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:904,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - ' hints'
    - ' vec'
    argTypes:
    - DilithiumPolyVec
    - DilithiumPolyVec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 880
    functionDepth: 3
    functionLinenumber: 880
    functionLinenumberEnd: 907
    functionName: Botan::Dilithium_Algos::use_hint_on_coefficients
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - static_cast<decltype(r1)>
    - size
    - BOTAN_DEBUG_ASSERT
    - Botan::Dilithium_Algos::decompose
    - modulo_m
    - Botan::Dilithium_Algos::use_hint
    linkageType: ''
    returnType: void
    signature: void use_hint_on_coefficients(const DilithiumPolyVec& hints, DilithiumPolyVec&
      vec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:919,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:919,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:919,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:920,1
    - Dst: ct_validate_value_range
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:920,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:921,1
    - Dst: ct_validate_value_range
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:921,1
    - Dst: gamma2
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:924,1
    - Dst: Botan::Dilithium_Algos::use_hint_on_coefficients
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:926,1
    - Dst: Botan::Dilithium_Algos::use_hint_on_coefficients
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:929,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:933,1
    - Dst: ct_validate_value_range
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:933,1
    - Dst: gamma2
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:933,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - ' vec'
    - ' hints'
    - ' mode'
    argTypes:
    - DilithiumPolyVec
    - DilithiumPolyVec
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 918
    functionDepth: 4
    functionLinenumber: 918
    functionLinenumberEnd: 934
    functionName: Botan::Dilithium_Algos::use_hint
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 2
    functionsReached:
    - gamma2
    - size
    - ct_validate_value_range
    - BOTAN_DEBUG_ASSERT
    - Botan::Dilithium_Algos::use_hint_on_coefficients
    linkageType: ''
    returnType: void
    signature: void use_hint(DilithiumPolyVec& vec, const DilithiumPolyVec& hints,
      const DilithiumConstants& mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:937,1
    - Dst: Botan::Dilithium_Algos::is_negative_mask
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:944,1
    - Dst: Botan::CT::driveby_unpoison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:945,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ' vec'
    - bound
    argTypes:
    - DilithiumPolyVec
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 936
    functionDepth: 2
    functionLinenumber: 936
    functionLinenumberEnd: 952
    functionName: Botan::Dilithium_Algos::infinity_norm_within_bound
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::driveby_unpoison
    - Botan::Dilithium_Algos::is_negative_mask
    - BOTAN_DEBUG_ASSERT
    linkageType: ''
    returnType: bool
    signature: bool infinity_norm_within_bound(const DilithiumPolyVec& vec, size_t
      bound)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::Mask::expand_top_bit
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:42,1
    - Dst: static_cast<unsigned_T>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: Botan::Dilithium_Algos::is_negative_mask
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 3
    functionsReached:
    - Botan::CT::Mask::expand_top_bit
    - static_cast<unsigned_T>
    linkageType: ''
    returnType: auto
    signature: auto is_negative_mask(T x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - DilithiumConstants::T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: Botan::Dilithium_Algos::map_range
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_DEBUG_ASSERT
    linkageType: ''
    returnType: std::make_unsigned_t<DilithiumConstants::T>
    signature: std::make_unsigned_t<DilithiumConstants::T> map_range(DilithiumConstants::T
      c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DilithiumConstants::T>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - std::make_unsigned_t<DilithiumConstants::T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: Botan::Dilithium_Algos::unmap_range
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - static_cast<DilithiumConstants::T>
    linkageType: ''
    returnType: DilithiumConstants::T
    signature: DilithiumConstants::T unmap_range(std::make_unsigned_t<DilithiumConstants::T>
      c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYSTALS::pack<b>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:65,1
    - Dst: CRYSTALS::pack<a + b>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' p'
    - ' stuffer'
    argTypes:
    - CRYSTALS::Polynomial<PolyTrait, D>
    - BufferStuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 71
    functionName: Botan::Dilithium_Algos::poly_pack
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 10
    functionsReached:
    - CRYSTALS::pack<b>
    - CRYSTALS::pack<a + b>
    linkageType: ''
    returnType: void
    signature: void poly_pack(const CRYSTALS::Polynomial<PolyTrait, D>& p, BufferStuffer&
      stuffer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYSTALS::unpack<b>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:82,1
    - Dst: CRYSTALS::unpack<a + b>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:86,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:91,1
    - Dst: is_power_of_2
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:92,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:92,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:92,1
    - Dst: ct_validate_value_range
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:94,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:95,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - ' p'
    - ' get_bytes'
    argTypes:
    - CRYSTALS::Polynomial<PolyTrait, D>
    - ByteSourceT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 97
    functionName: Botan::Dilithium_Algos::poly_unpack
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 8
    functionsReached:
    - CRYSTALS::unpack<a + b>
    - Decoding_Error
    - is_power_of_2
    - ct_validate_value_range
    - BOTAN_DEBUG_ASSERT
    - CRYSTALS::unpack<b>
    - static_cast<uint64_t>
    linkageType: ''
    returnType: void
    signature: void poly_unpack(CRYSTALS::Polynomial<PolyTrait, D>& p, ByteSourceT&
      get_bytes, bool check_range = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitlen
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:104,1
    - Dst: Botan::Dilithium_Algos::poly_pack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - ' stuffer'
    argTypes:
    - DilithiumPoly
    - BufferStuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: Botan::Dilithium_Algos::poly_pack_t1
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 1
    functionsReached:
    - bitlen
    - Botan::Dilithium_Algos::poly_pack
    linkageType: ''
    returnType: void
    signature: void poly_pack_t1(const DilithiumPoly& p, BufferStuffer& stuffer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gamma2
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:115,1
    - Dst: Botan::Dilithium_Algos::poly_pack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:117,1
    - Dst: Botan::Dilithium_Algos::poly_pack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:119,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - ' p'
    - ' stuffer'
    - ' mode'
    argTypes:
    - DilithiumPoly
    - BufferStuffer
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 123
    functionName: Botan::Dilithium_Algos::poly_pack_w1
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 1
    functionsReached:
    - Botan::Dilithium_Algos::poly_pack
    - gamma2
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void poly_pack_w1(const DilithiumPoly& p, BufferStuffer& stuffer, const
      DilithiumConstants& mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gamma1
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:131,1
    - Dst: Botan::Dilithium_Algos::poly_pack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:133,1
    - Dst: Botan::Dilithium_Algos::poly_pack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:135,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' p'
    - ' stuffer'
    - ' mode'
    argTypes:
    - DilithiumPoly
    - BufferStuffer
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 139
    functionName: Botan::Dilithium_Algos::poly_pack_gamma1
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 1
    functionsReached:
    - gamma1
    - Botan::Dilithium_Algos::poly_pack
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void poly_pack_gamma1(const DilithiumPoly& p, BufferStuffer& stuffer,
      const DilithiumConstants& mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: eta
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:149,1
    - Dst: Botan::Dilithium_Algos::poly_pack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:151,1
    - Dst: Botan::Dilithium_Algos::poly_pack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:153,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' p'
    - ' stuffer'
    - ' mode'
    argTypes:
    - DilithiumPoly
    - BufferStuffer
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 157
    functionName: Botan::Dilithium_Algos::poly_pack_eta
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 1
    functionsReached:
    - eta
    - Botan::Dilithium_Algos::poly_pack
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void poly_pack_eta(const DilithiumPoly& p, BufferStuffer& stuffer,
      const DilithiumConstants& mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Dilithium_Algos::poly_pack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - ' stuffer'
    argTypes:
    - DilithiumPoly
    - BufferStuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: Botan::Dilithium_Algos::poly_pack_t0
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 1
    functionsReached:
    - Botan::Dilithium_Algos::poly_pack
    linkageType: ''
    returnType: void
    signature: void poly_pack_t0(const DilithiumPoly& p, BufferStuffer& stuffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitlen
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:175,1
    - Dst: is_power_of_2
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:179,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:179,1
    - Dst: Botan::Dilithium_Algos::poly_unpack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - ' slicer'
    argTypes:
    - DilithiumPoly
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 181
    functionName: Botan::Dilithium_Algos::poly_unpack_t1
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 1
    functionsReached:
    - bitlen
    - is_power_of_2
    - static_cast<uint32_t>
    - Botan::Dilithium_Algos::poly_unpack
    linkageType: ''
    returnType: void
    signature: void poly_unpack_t1(DilithiumPoly& p, BufferSlicer& slicer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gamma1
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:190,1
    - Dst: Botan::Dilithium_Algos::poly_unpack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:192,1
    - Dst: Botan::Dilithium_Algos::poly_unpack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:194,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' p'
    - ' byte_source'
    - ' mode'
    argTypes:
    - DilithiumPoly
    - ByteSourceT
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 198
    functionName: Botan::Dilithium_Algos::poly_unpack_gamma1
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 2
    functionsReached:
    - gamma1
    - BOTAN_ASSERT_UNREACHABLE
    - Botan::Dilithium_Algos::poly_unpack
    linkageType: ''
    returnType: void
    signature: void poly_unpack_gamma1(DilithiumPoly& p, ByteSourceT& byte_source,
      const DilithiumConstants& mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: eta
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:208,1
    - Dst: Botan::Dilithium_Algos::poly_unpack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:210,1
    - Dst: Botan::Dilithium_Algos::poly_unpack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:212,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' p'
    - ' slicer'
    - ' mode'
    argTypes:
    - DilithiumPoly
    - BufferSlicer
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 216
    functionName: Botan::Dilithium_Algos::poly_unpack_eta
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 1
    functionsReached:
    - eta
    - BOTAN_ASSERT_UNREACHABLE
    - Botan::Dilithium_Algos::poly_unpack
    linkageType: ''
    returnType: void
    signature: void poly_unpack_eta(DilithiumPoly& p, BufferSlicer& slicer, const
      DilithiumConstants& mode, bool check_range = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Dilithium_Algos::poly_unpack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - ' slicer'
    argTypes:
    - DilithiumPoly
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: Botan::Dilithium_Algos::poly_unpack_t0
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 1
    functionsReached:
    - Botan::Dilithium_Algos::poly_unpack
    linkageType: ''
    returnType: void
    signature: void poly_unpack_t0(DilithiumPoly& p, BufferSlicer& slicer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:233,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:233,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:233,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:234,1
    - Dst: ct_validate_value_range
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:234,1
    - Dst: next
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:236,1
    - Dst: omega
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:236,1
    - Dst: next
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:237,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:237,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:241,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:243,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:243,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:247,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:251,1
    - Dst: BufferStuffer::remaining_capacity
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:251,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - ' h'
    - ' stuffer'
    - ' mode'
    argTypes:
    - DilithiumPolyVec
    - BufferStuffer
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 252
    functionName: Botan::Dilithium_Algos::hint_pack
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - BufferStuffer::append
    - k
    - size
    - ct_validate_value_range
    - static_cast<uint8_t>
    - BOTAN_DEBUG_ASSERT
    - next
    - BufferStuffer::remaining_capacity
    - omega
    linkageType: ''
    returnType: void
    signature: void hint_pack(const DilithiumPolyVec& h, BufferStuffer& stuffer, const
      DilithiumConstants& mode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:258,1
    - Dst: omega
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:258,1
    - Dst: take
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:259,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:259,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:261,1
    - Dst: BufferSlicer::take_byte
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:264,1
    - Dst: omega
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:267,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:271,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:275,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:290,1
    - Dst: BufferSlicer::remaining
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:290,1
    - Dst: std::all_of
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:291,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:291,1
    - Dst: auto::end
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:291,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:295,1
    - Dst: DilithiumPolyVec::ct_validate_value_range
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:295,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - ' slicer'
    - ' mode'
    argTypes:
    - BufferSlicer
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 297
    functionName: Botan::Dilithium_Algos::hint_unpack
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 1
    functionsReached:
    - auto::end
    - k
    - std::all_of
    - BOTAN_DEBUG_ASSERT
    - BufferSlicer::remaining
    - take
    - omega
    - DilithiumPolyVec::ct_validate_value_range
    - BufferSlicer::take
    - auto::size
    - auto::begin
    - BufferSlicer::take_byte
    linkageType: ''
    returnType: std::optional<DilithiumPolyVec>
    signature: std::optional<DilithiumPolyVec> hint_unpack(BufferSlicer& slicer, const
      DilithiumConstants& mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ntt
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:313,1
    - Dst: clone
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:313,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:314,1
    - Dst: inverse_ntt
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:315,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:315,1
    - Dst: auto::conditional_add_q
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:317,1
    - Dst: Botan::Dilithium_Algos::power2round
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' A'
    - ' s1'
    - ' s2'
    argTypes:
    - DilithiumPolyMatNTT
    - DilithiumPolyVec
    - DilithiumPolyVec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 310
    functionDepth: 2
    functionLinenumber: 310
    functionLinenumberEnd: 320
    functionName: Botan::Dilithium_Algos::compute_t1_and_t0
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 2
    functionsReached:
    - std::move
    - clone
    - Botan::Dilithium_Algos::power2round
    - auto::reduce
    - ntt
    - inverse_ntt
    - auto::conditional_add_q
    linkageType: ''
    returnType: std::pair<DilithiumPolyVec, DilithiumPolyVec>
    signature: "std::pair<DilithiumPolyVec, DilithiumPolyVec> compute_t1_and_t0(const
      DilithiumPolyMatNTT& A,\n                                                                const
      DilithiumPolyVec& s1,\n                                                                const
      DilithiumPolyVec& s2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::Mask::expand_top_bit
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:42,1
    - Dst: static_cast<unsigned_T>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: Botan::Dilithium_Algos::is_negative_mask
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 3
    functionsReached:
    - Botan::CT::Mask::expand_top_bit
    - static_cast<unsigned_T>
    linkageType: ''
    returnType: auto
    signature: auto is_negative_mask(T x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - DilithiumConstants::T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 51
    functionName: Botan::Dilithium_Algos::map_range
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_DEBUG_ASSERT
    linkageType: ''
    returnType: std::make_unsigned_t<DilithiumConstants::T>
    signature: std::make_unsigned_t<DilithiumConstants::T> map_range(DilithiumConstants::T
      c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<DilithiumConstants::T>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - std::make_unsigned_t<DilithiumConstants::T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: Botan::Dilithium_Algos::unmap_range
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - static_cast<DilithiumConstants::T>
    linkageType: ''
    returnType: DilithiumConstants::T
    signature: DilithiumConstants::T unmap_range(std::make_unsigned_t<DilithiumConstants::T>
      c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CRYSTALS::pack<b>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:65,1
    - Dst: CRYSTALS::pack<a + b>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' p'
    - ' stuffer'
    argTypes:
    - CRYSTALS::Polynomial<PolyTrait, D>
    - BufferStuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 71
    functionName: Botan::Dilithium_Algos::poly_pack
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 15
    functionsReached:
    - CRYSTALS::pack<b>
    - CRYSTALS::pack<a + b>
    linkageType: ''
    returnType: void
    signature: void poly_pack(const CRYSTALS::Polynomial<PolyTrait, D>& p, BufferStuffer&
      stuffer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYSTALS::unpack<b>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:82,1
    - Dst: CRYSTALS::unpack<a + b>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:86,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:91,1
    - Dst: is_power_of_2
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:92,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:92,1
    - Dst: static_cast<uint64_t>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:92,1
    - Dst: ct_validate_value_range
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:94,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:95,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 10
    argCount: 2
    argNames:
    - ' p'
    - ' get_bytes'
    argTypes:
    - CRYSTALS::Polynomial<PolyTrait, D>
    - ByteSourceT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 97
    functionName: Botan::Dilithium_Algos::poly_unpack
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 12
    functionsReached:
    - CRYSTALS::unpack<a + b>
    - Decoding_Error
    - is_power_of_2
    - ct_validate_value_range
    - BOTAN_DEBUG_ASSERT
    - CRYSTALS::unpack<b>
    - static_cast<uint64_t>
    linkageType: ''
    returnType: void
    signature: void poly_unpack(CRYSTALS::Polynomial<PolyTrait, D>& p, ByteSourceT&
      get_bytes, bool check_range = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitlen
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:104,1
    - Dst: Botan::Dilithium_Algos::poly_pack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - ' stuffer'
    argTypes:
    - DilithiumPoly
    - BufferStuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: Botan::Dilithium_Algos::poly_pack_t1
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 1
    functionsReached:
    - bitlen
    - Botan::Dilithium_Algos::poly_pack
    linkageType: ''
    returnType: void
    signature: void poly_pack_t1(const DilithiumPoly& p, BufferStuffer& stuffer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gamma2
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:115,1
    - Dst: Botan::Dilithium_Algos::poly_pack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:117,1
    - Dst: Botan::Dilithium_Algos::poly_pack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:119,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - ' p'
    - ' stuffer'
    - ' mode'
    argTypes:
    - DilithiumPoly
    - BufferStuffer
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 123
    functionName: Botan::Dilithium_Algos::poly_pack_w1
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 1
    functionsReached:
    - Botan::Dilithium_Algos::poly_pack
    - gamma2
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void poly_pack_w1(const DilithiumPoly& p, BufferStuffer& stuffer, const
      DilithiumConstants& mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gamma1
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:131,1
    - Dst: Botan::Dilithium_Algos::poly_pack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:133,1
    - Dst: Botan::Dilithium_Algos::poly_pack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:135,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' p'
    - ' stuffer'
    - ' mode'
    argTypes:
    - DilithiumPoly
    - BufferStuffer
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 139
    functionName: Botan::Dilithium_Algos::poly_pack_gamma1
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 1
    functionsReached:
    - gamma1
    - Botan::Dilithium_Algos::poly_pack
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void poly_pack_gamma1(const DilithiumPoly& p, BufferStuffer& stuffer,
      const DilithiumConstants& mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: eta
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:149,1
    - Dst: Botan::Dilithium_Algos::poly_pack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:151,1
    - Dst: Botan::Dilithium_Algos::poly_pack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:153,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' p'
    - ' stuffer'
    - ' mode'
    argTypes:
    - DilithiumPoly
    - BufferStuffer
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 157
    functionName: Botan::Dilithium_Algos::poly_pack_eta
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 1
    functionsReached:
    - eta
    - Botan::Dilithium_Algos::poly_pack
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: void
    signature: void poly_pack_eta(const DilithiumPoly& p, BufferStuffer& stuffer,
      const DilithiumConstants& mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Dilithium_Algos::poly_pack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - ' stuffer'
    argTypes:
    - DilithiumPoly
    - BufferStuffer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: Botan::Dilithium_Algos::poly_pack_t0
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 1
    functionsReached:
    - Botan::Dilithium_Algos::poly_pack
    linkageType: ''
    returnType: void
    signature: void poly_pack_t0(const DilithiumPoly& p, BufferStuffer& stuffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bitlen
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:175,1
    - Dst: is_power_of_2
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:179,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:179,1
    - Dst: Botan::Dilithium_Algos::poly_unpack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - ' slicer'
    argTypes:
    - DilithiumPoly
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 181
    functionName: Botan::Dilithium_Algos::poly_unpack_t1
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 1
    functionsReached:
    - bitlen
    - is_power_of_2
    - static_cast<uint32_t>
    - Botan::Dilithium_Algos::poly_unpack
    linkageType: ''
    returnType: void
    signature: void poly_unpack_t1(DilithiumPoly& p, BufferSlicer& slicer)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gamma1
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:190,1
    - Dst: Botan::Dilithium_Algos::poly_unpack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:192,1
    - Dst: Botan::Dilithium_Algos::poly_unpack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:194,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' p'
    - ' byte_source'
    - ' mode'
    argTypes:
    - DilithiumPoly
    - ByteSourceT
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 198
    functionName: Botan::Dilithium_Algos::poly_unpack_gamma1
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 2
    functionsReached:
    - gamma1
    - BOTAN_ASSERT_UNREACHABLE
    - Botan::Dilithium_Algos::poly_unpack
    linkageType: ''
    returnType: void
    signature: void poly_unpack_gamma1(DilithiumPoly& p, ByteSourceT& byte_source,
      const DilithiumConstants& mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: eta
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:208,1
    - Dst: Botan::Dilithium_Algos::poly_unpack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:210,1
    - Dst: Botan::Dilithium_Algos::poly_unpack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:212,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - ' p'
    - ' slicer'
    - ' mode'
    argTypes:
    - DilithiumPoly
    - BufferSlicer
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 216
    functionName: Botan::Dilithium_Algos::poly_unpack_eta
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 1
    functionsReached:
    - eta
    - BOTAN_ASSERT_UNREACHABLE
    - Botan::Dilithium_Algos::poly_unpack
    linkageType: ''
    returnType: void
    signature: void poly_unpack_eta(DilithiumPoly& p, BufferSlicer& slicer, const
      DilithiumConstants& mode, bool check_range = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Dilithium_Algos::poly_unpack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - ' slicer'
    argTypes:
    - DilithiumPoly
    - BufferSlicer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: Botan::Dilithium_Algos::poly_unpack_t0
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 1
    functionsReached:
    - Botan::Dilithium_Algos::poly_unpack
    linkageType: ''
    returnType: void
    signature: void poly_unpack_t0(DilithiumPoly& p, BufferSlicer& slicer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:233,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:233,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:233,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:234,1
    - Dst: ct_validate_value_range
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:234,1
    - Dst: next
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:236,1
    - Dst: omega
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:236,1
    - Dst: next
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:237,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:237,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:241,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:243,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:243,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:247,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:251,1
    - Dst: BufferStuffer::remaining_capacity
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:251,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - ' h'
    - ' stuffer'
    - ' mode'
    argTypes:
    - DilithiumPolyVec
    - BufferStuffer
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 252
    functionName: Botan::Dilithium_Algos::hint_pack
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 1
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - BufferStuffer::append
    - k
    - size
    - ct_validate_value_range
    - static_cast<uint8_t>
    - BOTAN_DEBUG_ASSERT
    - next
    - BufferStuffer::remaining_capacity
    - omega
    linkageType: ''
    returnType: void
    signature: void hint_pack(const DilithiumPolyVec& h, BufferStuffer& stuffer, const
      DilithiumConstants& mode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: take
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:258,1
    - Dst: omega
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:258,1
    - Dst: take
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:259,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:259,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:261,1
    - Dst: BufferSlicer::take_byte
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:264,1
    - Dst: omega
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:267,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:271,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:275,1
    - Dst: BufferSlicer::take
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:290,1
    - Dst: BufferSlicer::remaining
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:290,1
    - Dst: std::all_of
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:291,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:291,1
    - Dst: auto::end
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:291,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:295,1
    - Dst: DilithiumPolyVec::ct_validate_value_range
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:295,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - ' slicer'
    - ' mode'
    argTypes:
    - BufferSlicer
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 297
    functionName: Botan::Dilithium_Algos::hint_unpack
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 1
    functionsReached:
    - auto::end
    - k
    - std::all_of
    - BOTAN_DEBUG_ASSERT
    - BufferSlicer::remaining
    - take
    - omega
    - DilithiumPolyVec::ct_validate_value_range
    - BufferSlicer::take
    - auto::size
    - auto::begin
    - BufferSlicer::take_byte
    linkageType: ''
    returnType: std::optional<DilithiumPolyVec>
    signature: std::optional<DilithiumPolyVec> hint_unpack(BufferSlicer& slicer, const
      DilithiumConstants& mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ntt
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:313,1
    - Dst: clone
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:313,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:314,1
    - Dst: inverse_ntt
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:315,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:315,1
    - Dst: auto::conditional_add_q
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:317,1
    - Dst: Botan::Dilithium_Algos::power2round
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' A'
    - ' s1'
    - ' s2'
    argTypes:
    - DilithiumPolyMatNTT
    - DilithiumPolyVec
    - DilithiumPolyVec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 310
    functionDepth: 2
    functionLinenumber: 310
    functionLinenumberEnd: 320
    functionName: Botan::Dilithium_Algos::compute_t1_and_t0
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 2
    functionsReached:
    - std::move
    - clone
    - Botan::Dilithium_Algos::power2round
    - auto::reduce
    - ntt
    - inverse_ntt
    - auto::conditional_add_q
    linkageType: ''
    returnType: std::pair<DilithiumPolyVec, DilithiumPolyVec>
    signature: "std::pair<DilithiumPolyVec, DilithiumPolyVec> compute_t1_and_t0(const
      DilithiumPolyMatNTT& A,\n                                                                const
      DilithiumPolyVec& s1,\n                                                                const
      DilithiumPolyVec& s2)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_key_bytes
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:330,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:333,1
    - Dst: Botan::Dilithium_Algos::poly_pack_t1
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:335,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:338,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - rho
    - ' t1'
    - ' mode'
    argTypes:
    - StrongSpan<const DilithiumSeedRho>
    - DilithiumPolyVec
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 327
    functionDepth: 2
    functionLinenumber: 327
    functionLinenumberEnd: 340
    functionName: Botan::Dilithium_Algos::encode_public_key
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::Dilithium_Algos::poly_pack_t1
    - BufferStuffer::full
    - public_key_bytes
    - BufferStuffer::append
    linkageType: ''
    returnType: DilithiumSerializedPublicKey
    signature: "DilithiumSerializedPublicKey encode_public_key(StrongSpan<const DilithiumSeedRho>
      rho,\n                                               const DilithiumPolyVec&
      t1,\n                                               const DilithiumConstants&
      mode)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: StrongSpan<const DilithiumSerializedPublicKey>::size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:347,1
    - Dst: public_key_bytes
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:347,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:348,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:352,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:354,1
    - Dst: Botan::Dilithium_Algos::poly_unpack_t1
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:356,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:358,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:358,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:360,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:360,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - pk
    - ' mode'
    argTypes:
    - StrongSpan<const DilithiumSerializedPublicKey>
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 345
    functionDepth: 3
    functionLinenumber: 345
    functionLinenumberEnd: 361
    functionName: Botan::Dilithium_Algos::decode_public_key
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::Dilithium_Algos::poly_unpack_t1
    - Decoding_Error
    - std::move
    - BufferSlicer::empty
    - public_key_bytes
    - k
    - StrongSpan<const DilithiumSerializedPublicKey>::size
    - BufferSlicer::copy
    linkageType: ''
    returnType: std::pair<DilithiumSeedRho, DilithiumPolyVec>
    signature: "std::pair<DilithiumSeedRho, DilithiumPolyVec> decode_public_key(StrongSpan<const
      DilithiumSerializedPublicKey> pk,\n                                                                const
      DilithiumConstants& mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:370,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:371,1
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:372,1
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:373,1
    - Dst: private_key_bytes
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:375,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:378,1
    - Dst: rho
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:378,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:379,1
    - Dst: signing_seed
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:379,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:380,1
    - Dst: tr
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:380,1
    - Dst: s1
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:382,1
    - Dst: Botan::Dilithium_Algos::poly_pack_eta
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:383,1
    - Dst: s2
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:386,1
    - Dst: Botan::Dilithium_Algos::poly_pack_eta
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:387,1
    - Dst: t0
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:390,1
    - Dst: Botan::Dilithium_Algos::poly_pack_t0
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:391,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:394,1
    - Dst: BufferStuffer::full
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:394,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:395,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - ' keypair'
    argTypes:
    - DilithiumInternalKeypair
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 368
    functionDepth: 2
    functionLinenumber: 368
    functionLinenumberEnd: 398
    functionName: Botan::Dilithium_Algos::encode_keypair
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - t0
    - BufferStuffer::append
    - private_key_bytes
    - s1
    - BufferStuffer::full
    - Botan::Dilithium_Algos::poly_pack_t0
    - tr
    - BOTAN_ASSERT_NONNULL
    - Botan::CT::scoped_poison
    - rho
    - Botan::Dilithium_Algos::poly_pack_eta
    - Botan::CT::unpoison
    - s2
    - signing_seed
    - mode
    linkageType: ''
    returnType: DilithiumSerializedPrivateKey
    signature: DilithiumSerializedPrivateKey encode_keypair(const DilithiumInternalKeypair&
      keypair)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:410,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:412,1
    - Dst: StrongSpan<const DilithiumSerializedPrivateKey>::size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:412,1
    - Dst: DilithiumConstants::private_key_bytes
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:412,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:416,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:417,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:418,1
    - Dst: DilithiumConstants::public_key_hash_bytes
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:418,1
    - Dst: DilithiumConstants::l
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:420,1
    - Dst: Botan::Dilithium_Algos::poly_unpack_eta
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:422,1
    - Dst: DilithiumConstants::k
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:425,1
    - Dst: Botan::Dilithium_Algos::poly_unpack_eta
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:427,1
    - Dst: DilithiumConstants::k
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:430,1
    - Dst: Botan::Dilithium_Algos::poly_unpack_t0
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:432,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:435,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:435,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:441,1
    - Dst: Botan::Dilithium_Algos::expand_A
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:443,1
    - Dst: Botan::Dilithium_Algos::compute_t1_and_t0
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:444,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:446,1
    - Dst: std::make_shared<Dilithium_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:449,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:449,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:449,1
    - Dst: std::make_shared<Dilithium_PrivateKeyInternal>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:450,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:450,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:452,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:453,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:454,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:455,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:458,1
    - Dst: DilithiumInternalKeypair::first::tr
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:460,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:461,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:464,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - sk
    - mode
    argTypes:
    - StrongSpan<const DilithiumSerializedPrivateKey>
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 409
    functionDepth: 3
    functionLinenumber: 409
    functionLinenumberEnd: 467
    functionName: Botan::Dilithium_Algos::decode_keypair
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 2
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::CT::scoped_poison
    - std::make_shared<Dilithium_PrivateKeyInternal>
    - Botan::CT::unpoison
    - DilithiumConstants::k
    - Botan::Dilithium_Algos::compute_t1_and_t0
    - BufferSlicer::copy
    - DilithiumConstants::private_key_bytes
    - DilithiumConstants::public_key_hash_bytes
    - BufferSlicer::empty
    - Botan::Dilithium_Algos::poly_unpack_t0
    - DilithiumInternalKeypair::first::tr
    - Botan::Dilithium_Algos::expand_A
    - Decoding_Error
    - DilithiumConstants::l
    - StrongSpan<const DilithiumSerializedPrivateKey>::size
    - std::move
    - Botan::Dilithium_Algos::poly_unpack_eta
    - std::make_shared<Dilithium_PublicKeyInternal>
    linkageType: ''
    returnType: DilithiumInternalKeypair
    signature: DilithiumInternalKeypair decode_keypair(StrongSpan<const DilithiumSerializedPrivateKey>
      sk, DilithiumConstants mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: signature_bytes
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:478,1
    - Dst: BufferStuffer::append
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:481,1
    - Dst: Botan::Dilithium_Algos::poly_pack_gamma1
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:483,1
    - Dst: Botan::Dilithium_Algos::hint_pack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - c
    - ' response'
    - ' hint'
    - ' mode'
    argTypes:
    - StrongSpan<const DilithiumCommitmentHash>
    - DilithiumPolyVec
    - DilithiumPolyVec
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 474
    functionDepth: 2
    functionLinenumber: 474
    functionLinenumberEnd: 488
    functionName: Botan::Dilithium_Algos::encode_signature
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - Botan::Dilithium_Algos::poly_pack_gamma1
    - Botan::Dilithium_Algos::hint_pack
    - signature_bytes
    - BufferStuffer::append
    linkageType: ''
    returnType: DilithiumSerializedSignature
    signature: "DilithiumSerializedSignature encode_signature(StrongSpan<const DilithiumCommitmentHash>
      c,\n                                              const DilithiumPolyVec& response,\n
      \                                             const DilithiumPolyVec& hint,\n
      \                                             const DilithiumConstants& mode)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:496,1
    - Dst: BufferSlicer::remaining
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:496,1
    - Dst: signature_bytes
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:496,1
    - Dst: BufferSlicer::copy
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:498,1
    - Dst: commitment_hash_full_bytes
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:498,1
    - Dst: l
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:500,1
    - Dst: Botan::Dilithium_Algos::poly_unpack_gamma1
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:502,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:504,1
    - Dst: BufferSlicer::remaining
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:504,1
    - Dst: omega
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:504,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:504,1
    - Dst: Botan::Dilithium_Algos::hint_unpack
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:506,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:507,1
    - Dst: BufferSlicer::empty
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:507,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:508,1
    - Dst: std::make_tuple
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:512,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:512,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:512,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:512,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:512,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - sig
    - ' mode'
    argTypes:
    - StrongSpan<const DilithiumSerializedSignature>
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 493
    functionDepth: 3
    functionLinenumber: 493
    functionLinenumberEnd: 513
    functionName: Botan::Dilithium_Algos::decode_signature
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - std::move
    - l
    - commitment_hash_full_bytes
    - signature_bytes
    - Botan::Dilithium_Algos::hint_unpack
    - BufferSlicer::empty
    - auto::has_value
    - k
    - auto::value
    - BufferSlicer::remaining
    - omega
    - Botan::Dilithium_Algos::poly_unpack_gamma1
    - std::make_tuple
    - BufferSlicer::copy
    linkageType: ''
    returnType: std::optional<std::tuple<DilithiumCommitmentHash, DilithiumPolyVec,
      DilithiumPolyVec>>
    signature: "std::optional<std::tuple<DilithiumCommitmentHash, DilithiumPolyVec,
      DilithiumPolyVec>> decode_signature(\n   StrongSpan<const DilithiumSerializedSignature>
      sig, const DilithiumConstants& mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: serialized_commitment_bytes
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:519,1
    - Dst: Botan::Dilithium_Algos::poly_pack_w1
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:523,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' w1'
    - ' mode'
    argTypes:
    - DilithiumPolyVec
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 518
    functionDepth: 2
    functionLinenumber: 518
    functionLinenumberEnd: 527
    functionName: Botan::Dilithium_Algos::encode_commitment
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - serialized_commitment_bytes
    - Botan::Dilithium_Algos::poly_pack_w1
    linkageType: ''
    returnType: DilithiumSerializedCommitment
    signature: DilithiumSerializedCommitment encode_commitment(const DilithiumPolyVec&
      w1, const DilithiumConstants& mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: symmetric_primitives
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:534,1
    - Dst: Bounded_XOF<DilithiumConstants::SAMPLE_IN_BALL_XOF_BOUND + 8>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:535,1
    - Dst: load_le
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:538,1
    - Dst: auto::next
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:538,1
    - Dst: DilithiumPoly::size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:539,1
    - Dst: tau
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:539,1
    - Dst: DilithiumPoly::size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:539,1
    - Dst: auto::next_byte
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:540,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:546,1
    - Dst: DilithiumPoly::ct_validate_value_range
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:546,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:547,1
    - Dst: DilithiumPoly::hamming_weight
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:547,1
    - Dst: tau
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:547,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - seed
    - ' mode'
    argTypes:
    - StrongSpan<const DilithiumCommitmentHash>
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 550
    functionName: Botan::Dilithium_Algos::sample_in_ball
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_DEBUG_ASSERT
    - auto::next
    - DilithiumPoly::hamming_weight
    - Bounded_XOF<DilithiumConstants::SAMPLE_IN_BALL_XOF_BOUND + 8>
    - load_le
    - tau
    - symmetric_primitives
    - DilithiumPoly::size
    - DilithiumPoly::ct_validate_value_range
    - auto::next_byte
    linkageType: ''
    returnType: DilithiumPoly
    signature: DilithiumPoly sample_in_ball(StrongSpan<const DilithiumCommitmentHash>
      seed, const DilithiumConstants& mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: symmetric_primitives
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:565,1
    - Dst: Bounded_XOF<DilithiumConstants::SAMPLE_NTT_POLY_FROM_XOF_BOUND>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:566,1
    - Dst: make_uint32
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:570,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:574,1
    - Dst: ct_validate_value_range
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:574,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - rho
    - ' p'
    - nonce
    - ' mode'
    argTypes:
    - StrongSpan<const DilithiumSeedRho>
    - DilithiumPolyNTT
    - uint16_t
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 557
    functionDepth: 1
    functionLinenumber: 557
    functionLinenumberEnd: 575
    functionName: Botan::Dilithium_Algos::sample_ntt_uniform
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 1
    functionsReached:
    - ct_validate_value_range
    - make_uint32
    - BOTAN_DEBUG_ASSERT
    - Bounded_XOF<DilithiumConstants::SAMPLE_NTT_POLY_FROM_XOF_BOUND>
    - symmetric_primitives
    linkageType: ''
    returnType: void
    signature: "void sample_ntt_uniform(StrongSpan<const DilithiumSeedRho> rho,\n
      \                       DilithiumPolyNTT& p,\n                        uint16_t
      nonce,\n                        const DilithiumConstants& mode)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:584,1
    - Dst: Botan::CT::driveby_unpoison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:587,1
    - Dst: Botan::CT::driveby_unpoison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:592,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - b
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 598
    functionName: Botan::Dilithium_Algos::coeff_from_halfbyte
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 2
    functionsReached:
    - Botan::CT::driveby_unpoison
    - BOTAN_DEBUG_ASSERT
    linkageType: ''
    returnType: std::optional<int32_t>
    signature: std::optional<int32_t> coeff_from_halfbyte(uint8_t b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Bounded_XOF<DilithiumConstants::SAMPLE_POLY_FROM_XOF_BOUND>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:605,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:607,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:611,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:611,1
    - Dst: next_byte
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:613,1
    - Dst: Botan::Dilithium_Algos::coeff_from_halfbyte
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:614,1
    - Dst: Botan::Dilithium_Algos::coeff_from_halfbyte
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:615,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:617,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:620,1
    - Dst: next_coeff
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:628,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - ' p'
    - ' xof'
    argTypes:
    - DilithiumPoly
    - Botan::XOF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 601
    functionDepth: 2
    functionLinenumber: 601
    functionLinenumberEnd: 630
    functionName: Botan::Dilithium_Algos::sample_uniform_eta
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 3
    functionsReached:
    - next_byte
    - auto::has_value
    - std::exchange
    - Botan::Dilithium_Algos::coeff_from_halfbyte
    - BOTAN_DEBUG_ASSERT
    - Bounded_XOF<DilithiumConstants::SAMPLE_POLY_FROM_XOF_BOUND>
    - has_value
    - next_coeff
    linkageType: ''
    returnType: void
    signature: void sample_uniform_eta(DilithiumPoly& p, Botan::XOF& xof)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: symmetric_primitives
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:641,1
    - Dst: eta
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:642,1
    - Dst: Botan::Dilithium_Algos::sample_uniform_eta
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:644,1
    - Dst: Botan::Dilithium_Algos::sample_uniform_eta
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:647,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:652,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:654,1
    - Dst: ct_validate_value_range
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:654,1
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:654,1
    - Dst: eta
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:654,1
    - Dst: eta
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:654,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - rhoprime
    - ' p'
    - nonce
    - ' mode'
    argTypes:
    - StrongSpan<const DilithiumSeedRhoPrime>
    - DilithiumPoly
    - uint16_t
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 635
    functionDepth: 1
    functionLinenumber: 635
    functionLinenumberEnd: 655
    functionName: Botan::Dilithium_Algos::sample_uniform_eta
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 4
    functionsReached:
    - Botan::CT::poison
    - eta
    - Botan::Dilithium_Algos::sample_uniform_eta
    - ct_validate_value_range
    - BOTAN_DEBUG_ASSERT
    - static_cast<int32_t>
    - symmetric_primitives
    linkageType: ''
    returnType: void
    signature: "void sample_uniform_eta(StrongSpan<const DilithiumSeedRhoPrime> rhoprime,\n
      \                       DilithiumPoly& p,\n                        uint16_t
      nonce,\n                        const DilithiumConstants& mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: symmetric_primitives
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:565,1
    - Dst: Bounded_XOF<DilithiumConstants::SAMPLE_NTT_POLY_FROM_XOF_BOUND>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:566,1
    - Dst: make_uint32
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:570,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:574,1
    - Dst: ct_validate_value_range
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:574,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - rho
    - ' p'
    - nonce
    - ' mode'
    argTypes:
    - StrongSpan<const DilithiumSeedRho>
    - DilithiumPolyNTT
    - uint16_t
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 557
    functionDepth: 1
    functionLinenumber: 557
    functionLinenumberEnd: 575
    functionName: Botan::Dilithium_Algos::sample_ntt_uniform
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 1
    functionsReached:
    - ct_validate_value_range
    - make_uint32
    - BOTAN_DEBUG_ASSERT
    - Bounded_XOF<DilithiumConstants::SAMPLE_NTT_POLY_FROM_XOF_BOUND>
    - symmetric_primitives
    linkageType: ''
    returnType: void
    signature: "void sample_ntt_uniform(StrongSpan<const DilithiumSeedRho> rho,\n
      \                       DilithiumPolyNTT& p,\n                        uint16_t
      nonce,\n                        const DilithiumConstants& mode)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:584,1
    - Dst: Botan::CT::driveby_unpoison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:587,1
    - Dst: Botan::CT::driveby_unpoison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:592,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - b
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 598
    functionName: Botan::Dilithium_Algos::coeff_from_halfbyte
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 3
    functionsReached:
    - Botan::CT::driveby_unpoison
    - BOTAN_DEBUG_ASSERT
    linkageType: ''
    returnType: std::optional<int32_t>
    signature: std::optional<int32_t> coeff_from_halfbyte(uint8_t b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Bounded_XOF<DilithiumConstants::SAMPLE_POLY_FROM_XOF_BOUND>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:605,1
    - Dst: std::exchange
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:607,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:611,1
    - Dst: has_value
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:611,1
    - Dst: next_byte
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:613,1
    - Dst: Botan::Dilithium_Algos::coeff_from_halfbyte
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:614,1
    - Dst: Botan::Dilithium_Algos::coeff_from_halfbyte
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:615,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:617,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:620,1
    - Dst: next_coeff
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:628,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - ' p'
    - ' xof'
    argTypes:
    - DilithiumPoly
    - Botan::XOF
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 601
    functionDepth: 2
    functionLinenumber: 601
    functionLinenumberEnd: 630
    functionName: Botan::Dilithium_Algos::sample_uniform_eta
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 4
    functionsReached:
    - next_byte
    - auto::has_value
    - std::exchange
    - Botan::Dilithium_Algos::coeff_from_halfbyte
    - BOTAN_DEBUG_ASSERT
    - Bounded_XOF<DilithiumConstants::SAMPLE_POLY_FROM_XOF_BOUND>
    - has_value
    - next_coeff
    linkageType: ''
    returnType: void
    signature: void sample_uniform_eta(DilithiumPoly& p, Botan::XOF& xof)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: symmetric_primitives
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:641,1
    - Dst: eta
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:642,1
    - Dst: Botan::Dilithium_Algos::sample_uniform_eta
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:644,1
    - Dst: Botan::Dilithium_Algos::sample_uniform_eta
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:647,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:652,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:654,1
    - Dst: ct_validate_value_range
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:654,1
    - Dst: static_cast<int32_t>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:654,1
    - Dst: eta
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:654,1
    - Dst: eta
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:654,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - rhoprime
    - ' p'
    - nonce
    - ' mode'
    argTypes:
    - StrongSpan<const DilithiumSeedRhoPrime>
    - DilithiumPoly
    - uint16_t
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 635
    functionDepth: 1
    functionLinenumber: 635
    functionLinenumberEnd: 655
    functionName: Botan::Dilithium_Algos::sample_uniform_eta
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 5
    functionsReached:
    - Botan::CT::poison
    - eta
    - Botan::Dilithium_Algos::sample_uniform_eta
    - ct_validate_value_range
    - BOTAN_DEBUG_ASSERT
    - static_cast<int32_t>
    - symmetric_primitives
    linkageType: ''
    returnType: void
    signature: "void sample_uniform_eta(StrongSpan<const DilithiumSeedRhoPrime> rhoprime,\n
      \                       DilithiumPoly& p,\n                        uint16_t
      nonce,\n                        const DilithiumConstants& mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DilithiumConstants::symmetric_primitives
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:666,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:667,1
    - Dst: H
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:669,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:670,1
    - Dst: Botan::Dilithium_Algos::expand_A
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:672,1
    - Dst: Botan::Dilithium_Algos::expand_s
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:673,1
    - Dst: Botan::Dilithium_Algos::compute_t1_and_t0
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:674,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:676,1
    - Dst: std::make_shared<Dilithium_PublicKeyInternal>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:679,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:679,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:679,1
    - Dst: std::make_shared<Dilithium_PrivateKeyInternal>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:680,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:681,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:681,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:681,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:681,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:681,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:681,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - xi
    - mode
    argTypes:
    - DilithiumSeedRandomness
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 665
    functionDepth: 4
    functionLinenumber: 665
    functionLinenumberEnd: 687
    functionName: Botan::Dilithium_Algos::expand_keypair
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 2
    functionsReached:
    - H
    - std::move
    - Botan::CT::poison
    - Botan::Dilithium_Algos::expand_s
    - DilithiumConstants::symmetric_primitives
    - std::make_shared<Dilithium_PrivateKeyInternal>
    - std::make_shared<Dilithium_PublicKeyInternal>
    - Botan::CT::unpoison
    - Botan::Dilithium_Algos::compute_t1_and_t0
    - Botan::Dilithium_Algos::expand_A
    linkageType: ''
    returnType: DilithiumInternalKeypair
    signature: DilithiumInternalKeypair expand_keypair(DilithiumSeedRandomness xi,
      DilithiumConstants mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: k
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:696,1
    - Dst: l
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:696,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:697,1
    - Dst: l
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:698,1
    - Dst: Botan::Dilithium_Algos::sample_ntt_uniform
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:699,1
    - Dst: load_le
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:699,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - rho
    - ' mode'
    argTypes:
    - StrongSpan<const DilithiumSeedRho>
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 695
    functionDepth: 2
    functionLinenumber: 695
    functionLinenumberEnd: 703
    functionName: Botan::Dilithium_Algos::expand_A
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 4
    functionsReached:
    - load_le
    - k
    - l
    - Botan::Dilithium_Algos::sample_ntt_uniform
    linkageType: ''
    returnType: DilithiumPolyMatNTT
    signature: DilithiumPolyMatNTT expand_A(StrongSpan<const DilithiumSeedRho> rho,
      const DilithiumConstants& mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:710,1
    - Dst: DilithiumPolyVec
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:710,1
    - Dst: l
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:710,1
    - Dst: DilithiumPolyVec
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:710,1
    - Dst: k
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:710,1
    - Dst: Botan::Dilithium_Algos::sample_uniform_eta
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:715,1
    - Dst: Botan::Dilithium_Algos::sample_uniform_eta
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:719,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - rhoprime
    - ' mode'
    argTypes:
    - StrongSpan<const DilithiumSeedRhoPrime>
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 708
    functionDepth: 3
    functionLinenumber: 708
    functionLinenumberEnd: 723
    functionName: Botan::Dilithium_Algos::expand_s
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 2
    functionsReached:
    - DilithiumPolyVec
    - l
    - Botan::Dilithium_Algos::sample_uniform_eta
    - k
    - std::make_pair
    linkageType: ''
    returnType: std::pair<DilithiumPolyVec, DilithiumPolyVec>
    signature: "std::pair<DilithiumPolyVec, DilithiumPolyVec> expand_s(StrongSpan<const
      DilithiumSeedRhoPrime> rhoprime,\n                                                       const
      DilithiumConstants& mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: l
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:731,1
    - Dst: symmetric_primitives
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:733,1
    - Dst: Botan::Dilithium_Algos::poly_unpack_gamma1
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:734,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - rhoprime
    - nonce
    - ' mode'
    argTypes:
    - StrongSpan<const DilithiumSeedRhoPrime>
    - uint16_t
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 728
    functionDepth: 3
    functionLinenumber: 728
    functionLinenumberEnd: 737
    functionName: Botan::Dilithium_Algos::expand_mask
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - l
    - symmetric_primitives
    - Botan::Dilithium_Algos::poly_unpack_gamma1
    linkageType: ''
    returnType: DilithiumPolyVec
    signature: "DilithiumPolyVec expand_mask(StrongSpan<const DilithiumSeedRhoPrime>
      rhoprime,\n                             uint16_t nonce,\n                             const
      DilithiumConstants& mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:754,1
    - Dst: DilithiumPolyVec
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:754,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:754,1
    - Dst: DilithiumPolyVec
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:754,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:754,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:756,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:757,1
    - Dst: std::tie
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:758,1
    - Dst: Botan::Dilithium_Algos::power2round
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:758,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ' vec'
    argTypes:
    - DilithiumPolyVec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 746
    functionDepth: 1
    functionLinenumber: 746
    functionLinenumberEnd: 763
    functionName: Botan::Dilithium_Algos::power2round
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 6
    functionsReached:
    - DilithiumPolyVec
    - std::tie
    - Botan::Dilithium_Algos::power2round
    - size
    - std::make_pair
    linkageType: ''
    returnType: std::pair<DilithiumPolyVec, DilithiumPolyVec>
    signature: std::pair<DilithiumPolyVec, DilithiumPolyVec> power2round(const DilithiumPolyVec&
      vec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Dilithium_Algos::is_negative_mask
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:783,1
    - Dst: Botan::Dilithium_Algos::is_negative_mask
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:789,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - r
    argTypes:
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 775
    functionDepth: 2
    functionLinenumber: 775
    functionLinenumberEnd: 792
    functionName: Botan::Dilithium_Algos::decompose
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 4
    functionsReached:
    - Botan::Dilithium_Algos::is_negative_mask
    linkageType: ''
    returnType: std::pair<int32_t, int32_t>
    signature: std::pair<int32_t, int32_t> decompose(int32_t r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:800,1
    - Dst: DilithiumPolyVec
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:800,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:800,1
    - Dst: DilithiumPolyVec
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:800,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:800,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:802,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:803,1
    - Dst: std::tie
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:804,1
    - Dst: Botan::Dilithium_Algos::decompose
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:804,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' vec'
    argTypes:
    - DilithiumPolyVec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 799
    functionDepth: 3
    functionLinenumber: 799
    functionLinenumberEnd: 809
    functionName: Botan::Dilithium_Algos::decompose_all_coefficients
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 1
    functionsReached:
    - DilithiumPolyVec
    - std::tie
    - size
    - std::make_pair
    - Botan::Dilithium_Algos::decompose
    linkageType: ''
    returnType: std::pair<DilithiumPolyVec, DilithiumPolyVec>
    signature: std::pair<DilithiumPolyVec, DilithiumPolyVec> decompose_all_coefficients(const
      DilithiumPolyVec& vec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Dilithium_Algos::is_negative_mask
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:783,1
    - Dst: Botan::Dilithium_Algos::is_negative_mask
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:789,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - r
    argTypes:
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 775
    functionDepth: 2
    functionLinenumber: 775
    functionLinenumberEnd: 792
    functionName: Botan::Dilithium_Algos::decompose
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 5
    functionsReached:
    - Botan::Dilithium_Algos::is_negative_mask
    linkageType: ''
    returnType: std::pair<int32_t, int32_t>
    signature: std::pair<int32_t, int32_t> decompose(int32_t r)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:800,1
    - Dst: DilithiumPolyVec
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:800,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:800,1
    - Dst: DilithiumPolyVec
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:800,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:800,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:802,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:803,1
    - Dst: std::tie
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:804,1
    - Dst: Botan::Dilithium_Algos::decompose
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:804,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' vec'
    argTypes:
    - DilithiumPolyVec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 799
    functionDepth: 3
    functionLinenumber: 799
    functionLinenumberEnd: 809
    functionName: Botan::Dilithium_Algos::decompose_all_coefficients
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 1
    functionsReached:
    - DilithiumPolyVec
    - std::tie
    - size
    - std::make_pair
    - Botan::Dilithium_Algos::decompose
    linkageType: ''
    returnType: std::pair<DilithiumPolyVec, DilithiumPolyVec>
    signature: std::pair<DilithiumPolyVec, DilithiumPolyVec> decompose_all_coefficients(const
      DilithiumPolyVec& vec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gamma2
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:821,1
    - Dst: Botan::Dilithium_Algos::decompose_all_coefficients
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:823,1
    - Dst: Botan::Dilithium_Algos::decompose_all_coefficients
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:826,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:830,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ' vec'
    - ' mode'
    argTypes:
    - DilithiumPolyVec
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 819
    functionDepth: 4
    functionLinenumber: 819
    functionLinenumberEnd: 831
    functionName: Botan::Dilithium_Algos::decompose
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 6
    functionsReached:
    - Botan::Dilithium_Algos::decompose_all_coefficients
    - gamma2
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: std::pair<DilithiumPolyVec, DilithiumPolyVec>
    signature: std::pair<DilithiumPolyVec, DilithiumPolyVec> decompose(const DilithiumPolyVec&
      vec, const DilithiumConstants& mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:844,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:844,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:844,1
    - Dst: gamma2
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:846,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:847,1
    - Dst: gamma2
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:847,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:849,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:850,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:852,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:853,1
    - Dst: Botan::CT::Mask::is_gt
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:855,1
    - Dst: is_lte
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:855,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:856,1
    - Dst: Botan::Sodium::sodium_is_zero
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:856,1
    - Dst: as_choice
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:855,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:860,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:862,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:863,1
    - Dst: static_cast<int>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:864,1
    - Dst: Botan::Dilithium_Algos::make_hint
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:864,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:868,1
    - Dst: DilithiumPolyVec::ct_validate_value_range
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:868,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - ' z'
    - ' r'
    - ' mode'
    argTypes:
    - DilithiumPolyVec
    - DilithiumPolyVec
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 843
    functionDepth: 4
    functionLinenumber: 843
    functionLinenumberEnd: 871
    functionName: Botan::Dilithium_Algos::make_hint
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 2
    functionsReached:
    - Botan::Dilithium_Algos::make_hint
    - static_cast<uint32_t>
    - gamma2
    - as_choice
    - static_cast<int>
    - size
    - BOTAN_DEBUG_ASSERT
    - Botan::ct_is_equal
    - Botan::CT::Mask::is_gt
    - DilithiumPolyVec::ct_validate_value_range
    - Botan::Sodium::sodium_is_zero
    - is_lte
    linkageType: ''
    returnType: DilithiumPolyVec
    signature: DilithiumPolyVec make_hint(const DilithiumPolyVec& z, const DilithiumPolyVec&
      r, const DilithiumConstants& mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:884,1
    - Dst: static_cast<decltype(r1)>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:884,1
    - Dst: static_cast<decltype(r1)>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:884,1
    - Dst: Botan::Dilithium_Algos::decompose
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:889,1
    - Dst: modulo_m
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:896,1
    - Dst: modulo_m
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:898,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:902,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:903,1
    - Dst: Botan::Dilithium_Algos::use_hint
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:904,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - ' hints'
    - ' vec'
    argTypes:
    - DilithiumPolyVec
    - DilithiumPolyVec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 880
    functionDepth: 5
    functionLinenumber: 880
    functionLinenumberEnd: 907
    functionName: Botan::Dilithium_Algos::use_hint_on_coefficients
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 1
    functionsReached:
    - static_cast<decltype(r1)>
    - size
    - BOTAN_DEBUG_ASSERT
    - Botan::Dilithium_Algos::decompose
    - modulo_m
    - Botan::Dilithium_Algos::use_hint
    linkageType: ''
    returnType: void
    signature: void use_hint_on_coefficients(const DilithiumPolyVec& hints, DilithiumPolyVec&
      vec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:884,1
    - Dst: static_cast<decltype(r1)>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:884,1
    - Dst: static_cast<decltype(r1)>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:884,1
    - Dst: Botan::Dilithium_Algos::decompose
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:889,1
    - Dst: modulo_m
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:896,1
    - Dst: modulo_m
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:898,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:902,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:903,1
    - Dst: Botan::Dilithium_Algos::use_hint
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:904,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - ' hints'
    - ' vec'
    argTypes:
    - DilithiumPolyVec
    - DilithiumPolyVec
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 880
    functionDepth: 5
    functionLinenumber: 880
    functionLinenumberEnd: 907
    functionName: Botan::Dilithium_Algos::use_hint_on_coefficients
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 1
    functionsReached:
    - static_cast<decltype(r1)>
    - size
    - BOTAN_DEBUG_ASSERT
    - Botan::Dilithium_Algos::decompose
    - modulo_m
    - Botan::Dilithium_Algos::use_hint
    linkageType: ''
    returnType: void
    signature: void use_hint_on_coefficients(const DilithiumPolyVec& hints, DilithiumPolyVec&
      vec)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:919,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:919,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:919,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:920,1
    - Dst: ct_validate_value_range
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:920,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:921,1
    - Dst: ct_validate_value_range
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:921,1
    - Dst: gamma2
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:924,1
    - Dst: Botan::Dilithium_Algos::use_hint_on_coefficients
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:926,1
    - Dst: Botan::Dilithium_Algos::use_hint_on_coefficients
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:929,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:933,1
    - Dst: ct_validate_value_range
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:933,1
    - Dst: gamma2
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:933,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - ' vec'
    - ' hints'
    - ' mode'
    argTypes:
    - DilithiumPolyVec
    - DilithiumPolyVec
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 918
    functionDepth: 4
    functionLinenumber: 918
    functionLinenumberEnd: 934
    functionName: Botan::Dilithium_Algos::use_hint
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 4
    functionsReached:
    - gamma2
    - size
    - ct_validate_value_range
    - BOTAN_DEBUG_ASSERT
    - Botan::Dilithium_Algos::use_hint_on_coefficients
    linkageType: ''
    returnType: void
    signature: void use_hint(DilithiumPolyVec& vec, const DilithiumPolyVec& hints,
      const DilithiumConstants& mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:937,1
    - Dst: Botan::Dilithium_Algos::is_negative_mask
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:944,1
    - Dst: Botan::CT::driveby_unpoison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp:945,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ' vec'
    - bound
    argTypes:
    - DilithiumPolyVec
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 936
    functionDepth: 2
    functionLinenumber: 936
    functionLinenumberEnd: 952
    functionName: Botan::Dilithium_Algos::infinity_norm_within_bound
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_algos.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::driveby_unpoison
    - Botan::Dilithium_Algos::is_negative_mask
    - BOTAN_DEBUG_ASSERT
    linkageType: ''
    returnType: bool
    signature: bool infinity_norm_within_bound(const DilithiumPolyVec& vec, size_t
      bound)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_modern
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.cpp:31,1
    - Dst: is_ml_dsa
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.cpp:31,1
    - Dst: std::make_unique<Dilithium_Symmetric_Primitives>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.cpp:32,1
    - Dst: is_aes
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.cpp:37,1
    - Dst: std::make_unique<Dilithium_AES_Symmetric_Primitives>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.cpp:38,1
    - Dst: is_ml_dsa
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.cpp:43,1
    - Dst: std::make_unique<ML_DSA_Symmetric_Primitives>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.cpp:44,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.cpp:48,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 49
    functionName: Botan::Dilithium_Symmetric_Primitives_Base::create
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<ML_DSA_Symmetric_Primitives>
    - is_aes
    - std::make_unique<Dilithium_AES_Symmetric_Primitives>
    - is_modern
    - is_ml_dsa
    - std::make_unique<Dilithium_Symmetric_Primitives>
    - Not_Implemented
    linkageType: ''
    returnType: std::unique_ptr<Dilithium_Symmetric_Primitives_Base>
    signature: "std::unique_ptr<Dilithium_Symmetric_Primitives_Base> Dilithium_Symmetric_Primitives_Base::create(\n
      \  const DilithiumConstants& mode)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_modern
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.cpp:31,1
    - Dst: is_ml_dsa
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.cpp:31,1
    - Dst: std::make_unique<Dilithium_Symmetric_Primitives>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.cpp:32,1
    - Dst: is_aes
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.cpp:37,1
    - Dst: std::make_unique<Dilithium_AES_Symmetric_Primitives>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.cpp:38,1
    - Dst: is_ml_dsa
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.cpp:43,1
    - Dst: std::make_unique<ML_DSA_Symmetric_Primitives>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.cpp:44,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.cpp:48,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - ' mode'
    argTypes:
    - DilithiumConstants
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 49
    functionName: Botan::Dilithium_Symmetric_Primitives_Base::create
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_symmetric_primitives.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<ML_DSA_Symmetric_Primitives>
    - is_aes
    - std::make_unique<Dilithium_AES_Symmetric_Primitives>
    - is_modern
    - is_ml_dsa
    - std::make_unique<Dilithium_Symmetric_Primitives>
    - Not_Implemented
    linkageType: ''
    returnType: std::unique_ptr<Dilithium_Symmetric_Primitives_Base>
    signature: "std::unique_ptr<Dilithium_Symmetric_Primitives_Base> Dilithium_Symmetric_Primitives_Base::create(\n
      \  const DilithiumConstants& mode)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DilithiumMode::is_dilithium_round3
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.cpp:24,1
    - Dst: std::make_unique<Dilithium_Expanded_Keypair_Codec>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.cpp:25,1
    - Dst: DilithiumMode::is_ml_dsa
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.cpp:30,1
    - Dst: std::make_unique<ML_DSA_Expanding_Keypair_Codec>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.cpp:31,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.cpp:35,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - mode
    argTypes:
    - DilithiumMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 36
    functionName: Botan::Dilithium_Keypair_Codec::create
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Dilithium_Expanded_Keypair_Codec>
    - DilithiumMode::is_dilithium_round3
    - DilithiumMode::is_ml_dsa
    - Not_Implemented
    - std::make_unique<ML_DSA_Expanding_Keypair_Codec>
    linkageType: ''
    returnType: std::unique_ptr<Dilithium_Keypair_Codec>
    signature: std::unique_ptr<Dilithium_Keypair_Codec> Dilithium_Keypair_Codec::create(DilithiumMode
      mode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DilithiumMode::is_dilithium_round3
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.cpp:24,1
    - Dst: std::make_unique<Dilithium_Expanded_Keypair_Codec>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.cpp:25,1
    - Dst: DilithiumMode::is_ml_dsa
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.cpp:30,1
    - Dst: std::make_unique<ML_DSA_Expanding_Keypair_Codec>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.cpp:31,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.cpp:35,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - mode
    argTypes:
    - DilithiumMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 36
    functionName: Botan::Dilithium_Keypair_Codec::create
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_keys.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Dilithium_Expanded_Keypair_Codec>
    - DilithiumMode::is_dilithium_round3
    - DilithiumMode::is_ml_dsa
    - Not_Implemented
    - std::make_unique<ML_DSA_Expanding_Keypair_Codec>
    linkageType: ''
    returnType: std::unique_ptr<Dilithium_Keypair_Codec>
    signature: std::unique_ptr<Dilithium_Keypair_Codec> Dilithium_Keypair_Codec::create(DilithiumMode
      mode)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:60,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:60,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 61
    functionName: Botan::dilithium_mode_from_string
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - Botan::Invalid_Argument
    - Botan::fmt
    linkageType: ''
    returnType: DilithiumMode::Mode
    signature: DilithiumMode::Mode dilithium_mode_from_string(std::string_view str)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:60,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:60,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 61
    functionName: Botan::dilithium_mode_from_string
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - Botan::Invalid_Argument
    - Botan::fmt
    linkageType: ''
    returnType: DilithiumMode::Mode
    signature: DilithiumMode::Mode dilithium_mode_from_string(std::string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dilithium_mode_from_string
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:65,1
    - Dst: to_formatted_string
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: Botan::DilithiumMode::DilithiumMode
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 4
    functionsReached:
    - to_formatted_string
    - dilithium_mode_from_string
    linkageType: ''
    returnType: void
    signature: void DilithiumMode::DilithiumMode(const OID& oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dilithium_mode_from_string
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: Botan::DilithiumMode::DilithiumMode
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 4
    functionsReached:
    - dilithium_mode_from_string
    linkageType: ''
    returnType: void
    signature: void DilithiumMode::DilithiumMode(std::string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:70,1
    - Dst: Botan::DilithiumMode::to_string
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: Botan::DilithiumMode::object_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_string
    - Botan::DilithiumMode::to_string
    linkageType: ''
    returnType: OID
    signature: OID DilithiumMode::object_identifier() const
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 96
    functionName: Botan::DilithiumMode::to_string
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 3
    functionsReached:
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: std::string
    signature: std::string DilithiumMode::to_string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: Botan::DilithiumMode::is_aes
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool DilithiumMode::is_aes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DilithiumMode::is_aes
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.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::DilithiumMode::is_modern
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - Botan::DilithiumMode::is_aes
    linkageType: ''
    returnType: bool
    signature: bool DilithiumMode::is_modern() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 108
    functionName: Botan::DilithiumMode::is_ml_dsa
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool DilithiumMode::is_ml_dsa() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_dilithium_round3
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:112,1
    - Dst: Botan::DilithiumMode::is_aes
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:112,1
    - Dst: is_dilithium_round3
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:117,1
    - Dst: Botan::DilithiumMode::is_modern
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:117,1
    - Dst: Botan::DilithiumMode::is_ml_dsa
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:122,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 127
    functionName: Botan::DilithiumMode::is_available
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 2
    functionsReached:
    - is_dilithium_round3
    - Botan::DilithiumMode::is_modern
    - Botan::DilithiumMode::is_aes
    - Botan::DilithiumMode::is_ml_dsa
    linkageType: ''
    returnType: bool
    signature: bool DilithiumMode::is_available() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:132,1
    - Dst: second::mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:134,1
    - Dst: first::tr
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:134,1
    - Dst: ntt
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:135,1
    - Dst: second::s1
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:135,1
    - Dst: ntt
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:136,1
    - Dst: second::s2
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:136,1
    - Dst: ntt
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:137,1
    - Dst: second::t0
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:137,1
    - Dst: Botan::Dilithium_Algos::expand_A
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:138,1
    - Dst: first::rho
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:138,1
    - Dst: second::mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - keypair
    - randomized
    argTypes:
    - DilithiumInternalKeypair
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 138
    functionName: Botan::Dilithium_Signature_Operation::Dilithium_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - second::s1
    - first::rho
    - second::s2
    - ntt
    - first::tr
    - second::t0
    - second::mode
    - Botan::Dilithium_Algos::expand_A
    linkageType: ''
    returnType: void
    signature: void Dilithium_Signature_Operation(DilithiumInternalKeypair keypair,
      bool randomized)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Dilithium_Signature_Operation::update
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: Botan::Dilithium_Signature_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 1
    functionsReached:
    - Botan::Dilithium_Signature_Operation::update
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> input) override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:154,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:156,1
    - Dst: second::mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:157,1
    - Dst: symmetric_primitives
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:158,1
    - Dst: H_maybe_randomized
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:160,1
    - Dst: second::signing_seed
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:160,1
    - Dst: Botan::Dilithium_Signature_Operation::maybe
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:160,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:161,1
    - Dst: l
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:163,1
    - Dst: Botan::Dilithium_Algos::expand_mask
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:164,1
    - Dst: ntt
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:166,1
    - Dst: auto::clone
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:166,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:167,1
    - Dst: inverse_ntt
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:168,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:168,1
    - Dst: auto::conditional_add_q
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:169,1
    - Dst: Botan::Dilithium_Algos::decompose
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:171,1
    - Dst: Botan::CT::driveby_unpoison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:172,1
    - Dst: H
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:172,1
    - Dst: Botan::Dilithium_Algos::encode_commitment
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:172,1
    - Dst: ntt
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:174,1
    - Dst: Botan::Dilithium_Algos::sample_in_ball
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:174,1
    - Dst: inverse_ntt
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:175,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:177,1
    - Dst: Botan::Dilithium_Algos::infinity_norm_within_bound
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:180,1
    - Dst: to_underlying
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:180,1
    - Dst: gamma1
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:180,1
    - Dst: beta
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:180,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:183,1
    - Dst: inverse_ntt
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:185,1
    - Dst: reduce
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:191,1
    - Dst: Botan::Dilithium_Algos::infinity_norm_within_bound
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:193,1
    - Dst: to_underlying
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:193,1
    - Dst: gamma2
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:193,1
    - Dst: beta
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:193,1
    - Dst: inverse_ntt
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:197,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:198,1
    - Dst: Botan::Dilithium_Algos::infinity_norm_within_bound
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:200,1
    - Dst: gamma2
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:200,1
    - Dst: conditional_add_q
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:205,1
    - Dst: Botan::Dilithium_Algos::make_hint
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:208,1
    - Dst: Botan::CT::driveby_unpoison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:209,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:209,1
    - Dst: omega
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:209,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:212,1
    - Dst: Botan::Dilithium_Algos::encode_signature
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:214,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:217,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 153
    functionDepth: 5
    functionLinenumber: 153
    functionLinenumberEnd: 218
    functionName: Botan::Dilithium_Signature_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - l
    - Botan::Dilithium_Algos::make_hint
    - Botan::CT::poison
    - H_maybe_randomized
    - gamma1
    - Botan::CT::scoped_poison
    - Botan::Dilithium_Algos::expand_mask
    - Botan::CT::unpoison
    - final
    - Botan::Dilithium_Algos::infinity_norm_within_bound
    - second::signing_seed
    - conditional_add_q
    - auto::hamming_weight
    - Internal_Error
    - inverse_ntt
    - ntt
    - auto::conditional_add_q
    - Botan::CT::driveby_unpoison
    - H
    - gamma2
    - symmetric_primitives
    - reduce
    - Botan::Dilithium_Algos::decompose
    - second::mode
    - beta
    - std::move
    - Botan::Dilithium_Signature_Operation::maybe
    - Botan::Dilithium_Algos::encode_commitment
    - Botan::Dilithium_Algos::sample_in_ball
    - auto::reduce
    - auto::clone
    - omega
    - Botan::Dilithium_Algos::encode_signature
    - to_underlying
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> sign(RandomNumberGenerator& rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: second::mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 220
    functionName: Botan::Dilithium_Signature_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - second::mode
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:223,1
    - Dst: second::mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: Botan::Dilithium_Signature_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - AlgorithmIdentifier
    - second::mode
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier algorithm_identifier() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 227
    functionName: Botan::Dilithium_Signature_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 236
    functionName: Botan::Dilithium_Signature_Operation::maybe
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::optional<std::reference_wrapper<RandomNumberGenerator>>
    signature: std::optional<std::reference_wrapper<RandomNumberGenerator>> maybe(RandomNumberGenerator&
      rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:252,1
    - Dst: Botan::Dilithium_Algos::expand_A
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:253,1
    - Dst: rho
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:253,1
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:253,1
    - Dst: ntt
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:254,1
    - Dst: t1
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:254,1
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:255,1
    - Dst: tr
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pubkey
    argTypes:
    - std::shared_ptr<Dilithium_PublicKeyInternal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 251
    functionDepth: 3
    functionLinenumber: 251
    functionLinenumberEnd: 255
    functionName: Botan::Dilithium_Verification_Operation::Dilithium_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - tr
    - ntt
    - rho
    - Botan::Dilithium_Algos::expand_A
    - mode
    - t1
    linkageType: ''
    returnType: void
    signature: void Dilithium_Verification_Operation(std::shared_ptr<Dilithium_PublicKeyInternal>
      pubkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Dilithium_Verification_Operation::update
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 257
    functionName: Botan::Dilithium_Verification_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 1
    functionsReached:
    - Botan::Dilithium_Verification_Operation::update
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> input) override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:270,1
    - Dst: symmetric_primitives
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:271,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:274,1
    - Dst: StrongSpan::size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:276,1
    - Dst: signature_bytes
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:276,1
    - Dst: Botan::Dilithium_Algos::decode_signature
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:280,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:281,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:284,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:284,1
    - Dst: is_ml_dsa
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:287,1
    - Dst: hamming_weight
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:287,1
    - Dst: omega
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:287,1
    - Dst: Botan::Dilithium_Algos::infinity_norm_within_bound
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:291,1
    - Dst: to_underlying
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:291,1
    - Dst: gamma1
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:291,1
    - Dst: beta
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:291,1
    - Dst: ntt
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:295,1
    - Dst: Botan::Dilithium_Algos::sample_in_ball
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:295,1
    - Dst: ntt
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:296,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:296,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:298,1
    - Dst: inverse_ntt
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:299,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:299,1
    - Dst: auto::conditional_add_q
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:300,1
    - Dst: Botan::Dilithium_Algos::use_hint
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:301,1
    - Dst: H
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:303,1
    - Dst: Botan::Dilithium_Algos::encode_commitment
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:303,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:305,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:305,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:305,1
    - Dst: std::equal
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:306,1
    - Dst: begin
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:306,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:306,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:306,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 269
    functionDepth: 5
    functionLinenumber: 269
    functionLinenumberEnd: 307
    functionName: Botan::Dilithium_Verification_Operation::is_valid_signature
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - gamma1
    - hamming_weight
    - begin
    - auto::size
    - Botan::Dilithium_Algos::decode_signature
    - final
    - Botan::Dilithium_Algos::infinity_norm_within_bound
    - auto::has_value
    - std::equal
    - inverse_ntt
    - ntt
    - StrongSpan::size
    - mode
    - auto::conditional_add_q
    - H
    - auto::value
    - is_ml_dsa
    - symmetric_primitives
    - auto::begin
    - beta
    - std::move
    - signature_bytes
    - Botan::Dilithium_Algos::encode_commitment
    - size
    - Botan::Dilithium_Algos::sample_in_ball
    - auto::reduce
    - omega
    - end
    - Botan::Dilithium_Algos::use_hint
    - to_underlying
    linkageType: ''
    returnType: bool
    signature: bool is_valid_signature(std::span<const uint8_t> sig) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:309,1
    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::Dilithium_Verification_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DilithiumMode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:319,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' alg_id'
    - pk
    argTypes:
    - AlgorithmIdentifier
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 319
    functionName: Botan::Dilithium_PublicKey::Dilithium_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - oid
    - DilithiumMode
    linkageType: ''
    returnType: void
    signature: void Dilithium_PublicKey::Dilithium_PublicKey(const AlgorithmIdentifier&
      alg_id, std::span<const uint8_t> pk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:323,1
    - Dst: DilithiumConstants::mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:323,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:324,1
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:324,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:324,1
    - Dst: DilithiumConstants::public_key_bytes
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:324,1
    - Dst: Botan::Dilithium_PublicKeyInternal::decode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:327,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:327,1
    - Dst: StrongSpan<const DilithiumSerializedPublicKey>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:327,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pk
    - m
    argTypes:
    - std::span<const uint8_t>
    - DilithiumMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 321
    functionDepth: 2
    functionLinenumber: 321
    functionLinenumberEnd: 328
    functionName: Botan::Dilithium_PublicKey::Dilithium_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::empty
    - std::move
    - StrongSpan<const DilithiumSerializedPublicKey>
    - std::span<const uint8_t>::size
    - BOTAN_ARG_CHECK
    - DilithiumConstants::mode
    - Botan::Dilithium_PublicKeyInternal::decode
    - DilithiumConstants::public_key_bytes
    linkageType: ''
    returnType: void
    signature: void Dilithium_PublicKey::Dilithium_PublicKey(std::span<const uint8_t>
      pk, DilithiumMode m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:339,1
    - Dst: std::string
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:339,1
    - Dst: Botan::Dilithium_PublicKey::object_identifier
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 340
    functionName: Botan::Dilithium_PublicKey::algo_name
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - Botan::Dilithium_PublicKey::object_identifier
    - std::string
    - mode
    linkageType: ''
    returnType: std::string
    signature: std::string Dilithium_PublicKey::algo_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:343,1
    - Dst: Botan::Dilithium_PublicKey::object_identifier
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 344
    functionName: Botan::Dilithium_PublicKey::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - AlgorithmIdentifier
    - Botan::Dilithium_PublicKey::object_identifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier Dilithium_PublicKey::algorithm_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 348
    functionName: Botan::Dilithium_PublicKey::object_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 2
    functionsReached:
    - mode
    linkageType: ''
    returnType: OID
    signature: OID Dilithium_PublicKey::object_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 352
    functionName: Botan::Dilithium_PublicKey::key_length
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - mode
    linkageType: ''
    returnType: size_t
    signature: size_t Dilithium_PublicKey::key_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 356
    functionName: Botan::Dilithium_PublicKey::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - mode
    linkageType: ''
    returnType: size_t
    signature: size_t Dilithium_PublicKey::estimated_strength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raw_pk
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 360
    functionName: Botan::Dilithium_PublicKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - raw_pk
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Dilithium_PublicKey::raw_public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Dilithium_PublicKey::raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 366
    functionName: Botan::Dilithium_PublicKey::public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - Botan::Dilithium_PublicKey::raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Dilithium_PublicKey::public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 370
    functionName: Botan::Dilithium_PublicKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Dilithium_PublicKey::check_key(RandomNumberGenerator& /*rng*/,
      bool /*strong*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Dilithium_PrivateKey>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:373,1
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 374
    functionName: Botan::Dilithium_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Dilithium_PrivateKey>
    - mode
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> Dilithium_PublicKey::generate_another(RandomNumberGenerator&
      rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:378,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:378,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:379,1
    - Dst: std::make_unique<Dilithium_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:380,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:382,1
    - Dst: Botan::Dilithium_PublicKey::algo_name
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:382,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 383
    functionName: Botan::Dilithium_PublicKey::create_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - std::string_view::empty
    - BOTAN_ARG_CHECK
    - std::make_unique<Dilithium_Verification_Operation>
    - Botan::Dilithium_PublicKey::algo_name
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> Dilithium_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/dilithium/dilithium_common/dilithium.cpp:387,1
    - Dst: Botan::Dilithium_PublicKey::algorithm_identifier
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:388,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:389,1
    - Dst: std::make_unique<Dilithium_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:391,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:393,1
    - Dst: Botan::Dilithium_PublicKey::algo_name
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:393,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - ' alg_id'
    - provider
    argTypes:
    - AlgorithmIdentifier
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 385
    functionDepth: 2
    functionLinenumber: 385
    functionLinenumberEnd: 394
    functionName: Botan::Dilithium_PublicKey::create_x509_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - Provider_Not_Found
    - std::string_view::empty
    - Botan::Dilithium_PublicKey::algorithm_identifier
    - std::make_unique<Dilithium_Verification_Operation>
    - Botan::Dilithium_PublicKey::algo_name
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> Dilithium_PublicKey::create_x509_verification_op(\n
      \  const AlgorithmIdentifier& alg_id, std::string_view provider) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:408,1
    - Dst: DilithiumConstants::mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:408,1
    - Dst: std::tie
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:409,1
    - Dst: Botan::Dilithium_Algos::expand_keypair
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:409,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:410,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' rng'
    - m
    argTypes:
    - RandomNumberGenerator
    - DilithiumMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 406
    functionDepth: 3
    functionLinenumber: 406
    functionLinenumberEnd: 411
    functionName: Botan::Dilithium_PrivateKey::Dilithium_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - std::tie
    - std::move
    - BOTAN_ARG_CHECK
    - Botan::Dilithium_Algos::expand_keypair
    - DilithiumConstants::mode
    - random_vec
    linkageType: ''
    returnType: void
    signature: void Dilithium_PrivateKey::Dilithium_PrivateKey(RandomNumberGenerator&
      rng, DilithiumMode m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DilithiumMode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:414,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' alg_id'
    - sk
    argTypes:
    - AlgorithmIdentifier
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 414
    functionName: Botan::Dilithium_PrivateKey::Dilithium_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - oid
    - DilithiumMode
    linkageType: ''
    returnType: void
    signature: void Dilithium_PrivateKey::Dilithium_PrivateKey(const AlgorithmIdentifier&
      alg_id, std::span<const uint8_t> sk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DilithiumConstants::keypair_codec
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:418,1
    - Dst: std::tie
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:419,1
    - Dst: decode_keypair
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:419,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sk
    - m
    argTypes:
    - std::span<const uint8_t>
    - DilithiumMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 420
    functionName: Botan::Dilithium_PrivateKey::Dilithium_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - decode_keypair
    - std::tie
    - DilithiumConstants::keypair_codec
    - std::move
    linkageType: ''
    returnType: void
    signature: void Dilithium_PrivateKey::Dilithium_PrivateKey(std::span<const uint8_t>
      sk, DilithiumMode m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Dilithium_PrivateKey::private_key_bits
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:423,1
    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: Botan::Dilithium_PrivateKey::raw_private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - Botan::Dilithium_PrivateKey::private_key_bits
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Dilithium_PrivateKey::raw_private_key_bits()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:427,1
    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: Botan::Dilithium_PrivateKey::private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 5
    functionsReached:
    - mode
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Dilithium_PrivateKey::private_key_bits() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:433,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:435,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:435,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:442,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:443,1
    - Dst: std::make_unique<Dilithium_Signature_Operation>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:444,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:446,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:446,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: 447
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 447
    functionName: Botan::Dilithium_PrivateKey::create_signature_op
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - std::string_view::empty
    - BOTAN_ARG_CHECK
    - std::make_unique<Dilithium_Signature_Operation>
    - algo_name
    - BOTAN_UNUSED
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Signature>
    signature: "std::unique_ptr<PK_Ops::Signature> Dilithium_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<Dilithium_PublicKey>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 451
    functionName: Botan::Dilithium_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Dilithium_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> Dilithium_PrivateKey::public_key() const
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:60,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:60,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 61
    functionName: Botan::dilithium_mode_from_string
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - Botan::Invalid_Argument
    - Botan::fmt
    linkageType: ''
    returnType: DilithiumMode::Mode
    signature: DilithiumMode::Mode dilithium_mode_from_string(std::string_view str)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:60,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:60,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 61
    functionName: Botan::dilithium_mode_from_string
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - Botan::Invalid_Argument
    - Botan::fmt
    linkageType: ''
    returnType: DilithiumMode::Mode
    signature: DilithiumMode::Mode dilithium_mode_from_string(std::string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dilithium_mode_from_string
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:65,1
    - Dst: to_formatted_string
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: Botan::DilithiumMode::DilithiumMode
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 4
    functionsReached:
    - to_formatted_string
    - dilithium_mode_from_string
    linkageType: ''
    returnType: void
    signature: void DilithiumMode::DilithiumMode(const OID& oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dilithium_mode_from_string
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: Botan::DilithiumMode::DilithiumMode
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 4
    functionsReached:
    - dilithium_mode_from_string
    linkageType: ''
    returnType: void
    signature: void DilithiumMode::DilithiumMode(std::string_view str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:70,1
    - Dst: Botan::DilithiumMode::to_string
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 2
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: Botan::DilithiumMode::object_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_string
    - Botan::DilithiumMode::to_string
    linkageType: ''
    returnType: OID
    signature: OID DilithiumMode::object_identifier() const
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 96
    functionName: Botan::DilithiumMode::to_string
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 4
    functionsReached:
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: std::string
    signature: std::string DilithiumMode::to_string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: Botan::DilithiumMode::is_aes
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool DilithiumMode::is_aes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DilithiumMode::is_aes
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.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::DilithiumMode::is_modern
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 1
    functionsReached:
    - Botan::DilithiumMode::is_aes
    linkageType: ''
    returnType: bool
    signature: bool DilithiumMode::is_modern() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 108
    functionName: Botan::DilithiumMode::is_ml_dsa
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool DilithiumMode::is_ml_dsa() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_dilithium_round3
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:112,1
    - Dst: Botan::DilithiumMode::is_aes
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:112,1
    - Dst: is_dilithium_round3
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:117,1
    - Dst: Botan::DilithiumMode::is_modern
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:117,1
    - Dst: Botan::DilithiumMode::is_ml_dsa
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:122,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 127
    functionName: Botan::DilithiumMode::is_available
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 2
    functionsReached:
    - is_dilithium_round3
    - Botan::DilithiumMode::is_modern
    - Botan::DilithiumMode::is_aes
    - Botan::DilithiumMode::is_ml_dsa
    linkageType: ''
    returnType: bool
    signature: bool DilithiumMode::is_available() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:132,1
    - Dst: second::mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:134,1
    - Dst: first::tr
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:134,1
    - Dst: ntt
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:135,1
    - Dst: second::s1
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:135,1
    - Dst: ntt
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:136,1
    - Dst: second::s2
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:136,1
    - Dst: ntt
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:137,1
    - Dst: second::t0
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:137,1
    - Dst: Botan::Dilithium_Algos::expand_A
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:138,1
    - Dst: first::rho
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:138,1
    - Dst: second::mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - keypair
    - randomized
    argTypes:
    - DilithiumInternalKeypair
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 138
    functionName: Botan::Dilithium_Signature_Operation::Dilithium_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - second::s1
    - first::rho
    - second::s2
    - ntt
    - first::tr
    - second::t0
    - second::mode
    - Botan::Dilithium_Algos::expand_A
    linkageType: ''
    returnType: void
    signature: void Dilithium_Signature_Operation(DilithiumInternalKeypair keypair,
      bool randomized)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Dilithium_Signature_Operation::update
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: Botan::Dilithium_Signature_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 2
    functionsReached:
    - Botan::Dilithium_Signature_Operation::update
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> input) override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::scoped_poison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:154,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:156,1
    - Dst: second::mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:157,1
    - Dst: symmetric_primitives
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:158,1
    - Dst: H_maybe_randomized
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:160,1
    - Dst: second::signing_seed
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:160,1
    - Dst: Botan::Dilithium_Signature_Operation::maybe
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:160,1
    - Dst: Botan::CT::poison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:161,1
    - Dst: l
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:163,1
    - Dst: Botan::Dilithium_Algos::expand_mask
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:164,1
    - Dst: ntt
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:166,1
    - Dst: auto::clone
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:166,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:167,1
    - Dst: inverse_ntt
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:168,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:168,1
    - Dst: auto::conditional_add_q
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:169,1
    - Dst: Botan::Dilithium_Algos::decompose
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:171,1
    - Dst: Botan::CT::driveby_unpoison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:172,1
    - Dst: H
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:172,1
    - Dst: Botan::Dilithium_Algos::encode_commitment
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:172,1
    - Dst: ntt
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:174,1
    - Dst: Botan::Dilithium_Algos::sample_in_ball
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:174,1
    - Dst: inverse_ntt
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:175,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:177,1
    - Dst: Botan::Dilithium_Algos::infinity_norm_within_bound
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:180,1
    - Dst: to_underlying
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:180,1
    - Dst: gamma1
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:180,1
    - Dst: beta
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:180,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:183,1
    - Dst: inverse_ntt
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:185,1
    - Dst: reduce
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:191,1
    - Dst: Botan::Dilithium_Algos::infinity_norm_within_bound
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:193,1
    - Dst: to_underlying
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:193,1
    - Dst: gamma2
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:193,1
    - Dst: beta
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:193,1
    - Dst: inverse_ntt
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:197,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:198,1
    - Dst: Botan::Dilithium_Algos::infinity_norm_within_bound
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:200,1
    - Dst: gamma2
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:200,1
    - Dst: conditional_add_q
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:205,1
    - Dst: Botan::Dilithium_Algos::make_hint
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:208,1
    - Dst: Botan::CT::driveby_unpoison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:209,1
    - Dst: auto::hamming_weight
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:209,1
    - Dst: omega
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:209,1
    - Dst: Botan::CT::unpoison
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:212,1
    - Dst: Botan::Dilithium_Algos::encode_signature
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:214,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:217,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 153
    functionDepth: 5
    functionLinenumber: 153
    functionLinenumberEnd: 218
    functionName: Botan::Dilithium_Signature_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - l
    - Botan::Dilithium_Algos::make_hint
    - Botan::CT::poison
    - H_maybe_randomized
    - gamma1
    - Botan::CT::scoped_poison
    - Botan::Dilithium_Algos::expand_mask
    - Botan::CT::unpoison
    - final
    - Botan::Dilithium_Algos::infinity_norm_within_bound
    - second::signing_seed
    - conditional_add_q
    - auto::hamming_weight
    - Internal_Error
    - inverse_ntt
    - ntt
    - auto::conditional_add_q
    - Botan::CT::driveby_unpoison
    - H
    - gamma2
    - symmetric_primitives
    - reduce
    - Botan::Dilithium_Algos::decompose
    - second::mode
    - beta
    - std::move
    - Botan::Dilithium_Signature_Operation::maybe
    - Botan::Dilithium_Algos::encode_commitment
    - Botan::Dilithium_Algos::sample_in_ball
    - auto::reduce
    - auto::clone
    - omega
    - Botan::Dilithium_Algos::encode_signature
    - to_underlying
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> sign(RandomNumberGenerator& rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: second::mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 220
    functionName: Botan::Dilithium_Signature_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - second::mode
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:223,1
    - Dst: second::mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:223,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 225
    functionName: Botan::Dilithium_Signature_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - AlgorithmIdentifier
    - second::mode
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier algorithm_identifier() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 227
    functionName: Botan::Dilithium_Signature_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 236
    functionName: Botan::Dilithium_Signature_Operation::maybe
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::optional<std::reference_wrapper<RandomNumberGenerator>>
    signature: std::optional<std::reference_wrapper<RandomNumberGenerator>> maybe(RandomNumberGenerator&
      rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:252,1
    - Dst: Botan::Dilithium_Algos::expand_A
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:253,1
    - Dst: rho
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:253,1
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:253,1
    - Dst: ntt
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:254,1
    - Dst: t1
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:254,1
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:255,1
    - Dst: tr
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - pubkey
    argTypes:
    - std::shared_ptr<Dilithium_PublicKeyInternal>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 251
    functionDepth: 3
    functionLinenumber: 251
    functionLinenumberEnd: 255
    functionName: Botan::Dilithium_Verification_Operation::Dilithium_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - tr
    - ntt
    - rho
    - Botan::Dilithium_Algos::expand_A
    - mode
    - t1
    linkageType: ''
    returnType: void
    signature: void Dilithium_Verification_Operation(std::shared_ptr<Dilithium_PublicKeyInternal>
      pubkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Dilithium_Verification_Operation::update
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 257
    functionName: Botan::Dilithium_Verification_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 2
    functionsReached:
    - Botan::Dilithium_Verification_Operation::update
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> input) override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:270,1
    - Dst: symmetric_primitives
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:271,1
    - Dst: final
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:274,1
    - Dst: StrongSpan::size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:276,1
    - Dst: signature_bytes
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:276,1
    - Dst: Botan::Dilithium_Algos::decode_signature
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:280,1
    - Dst: auto::has_value
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:281,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:284,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:284,1
    - Dst: is_ml_dsa
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:287,1
    - Dst: hamming_weight
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:287,1
    - Dst: omega
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:287,1
    - Dst: Botan::Dilithium_Algos::infinity_norm_within_bound
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:291,1
    - Dst: to_underlying
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:291,1
    - Dst: gamma1
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:291,1
    - Dst: beta
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:291,1
    - Dst: ntt
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:295,1
    - Dst: Botan::Dilithium_Algos::sample_in_ball
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:295,1
    - Dst: ntt
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:296,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:296,1
    - Dst: auto::reduce
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:298,1
    - Dst: inverse_ntt
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:299,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:299,1
    - Dst: auto::conditional_add_q
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:300,1
    - Dst: Botan::Dilithium_Algos::use_hint
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:301,1
    - Dst: H
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:303,1
    - Dst: Botan::Dilithium_Algos::encode_commitment
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:303,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:305,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:305,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:305,1
    - Dst: std::equal
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:306,1
    - Dst: begin
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:306,1
    - Dst: end
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:306,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:306,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 269
    functionDepth: 5
    functionLinenumber: 269
    functionLinenumberEnd: 307
    functionName: Botan::Dilithium_Verification_Operation::is_valid_signature
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - gamma1
    - hamming_weight
    - begin
    - auto::size
    - Botan::Dilithium_Algos::decode_signature
    - final
    - Botan::Dilithium_Algos::infinity_norm_within_bound
    - auto::has_value
    - std::equal
    - inverse_ntt
    - ntt
    - StrongSpan::size
    - mode
    - auto::conditional_add_q
    - H
    - auto::value
    - is_ml_dsa
    - symmetric_primitives
    - auto::begin
    - beta
    - std::move
    - signature_bytes
    - Botan::Dilithium_Algos::encode_commitment
    - size
    - Botan::Dilithium_Algos::sample_in_ball
    - auto::reduce
    - omega
    - end
    - Botan::Dilithium_Algos::use_hint
    - to_underlying
    linkageType: ''
    returnType: bool
    signature: bool is_valid_signature(std::span<const uint8_t> sig) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:309,1
    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::Dilithium_Verification_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - name
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DilithiumMode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:319,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:319,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' alg_id'
    - pk
    argTypes:
    - AlgorithmIdentifier
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 319
    functionName: Botan::Dilithium_PublicKey::Dilithium_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - oid
    - DilithiumMode
    linkageType: ''
    returnType: void
    signature: void Dilithium_PublicKey::Dilithium_PublicKey(const AlgorithmIdentifier&
      alg_id, std::span<const uint8_t> pk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:323,1
    - Dst: DilithiumConstants::mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:323,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:324,1
    - Dst: std::span<const uint8_t>::empty
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:324,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:324,1
    - Dst: DilithiumConstants::public_key_bytes
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:324,1
    - Dst: Botan::Dilithium_PublicKeyInternal::decode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:327,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:327,1
    - Dst: StrongSpan<const DilithiumSerializedPublicKey>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:327,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - pk
    - m
    argTypes:
    - std::span<const uint8_t>
    - DilithiumMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 321
    functionDepth: 2
    functionLinenumber: 321
    functionLinenumberEnd: 328
    functionName: Botan::Dilithium_PublicKey::Dilithium_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::empty
    - std::move
    - StrongSpan<const DilithiumSerializedPublicKey>
    - std::span<const uint8_t>::size
    - BOTAN_ARG_CHECK
    - DilithiumConstants::mode
    - Botan::Dilithium_PublicKeyInternal::decode
    - DilithiumConstants::public_key_bytes
    linkageType: ''
    returnType: void
    signature: void Dilithium_PublicKey::Dilithium_PublicKey(std::span<const uint8_t>
      pk, DilithiumMode m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:339,1
    - Dst: std::string
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:339,1
    - Dst: Botan::Dilithium_PublicKey::object_identifier
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:339,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 330
    functionDepth: 1
    functionLinenumber: 330
    functionLinenumberEnd: 340
    functionName: Botan::Dilithium_PublicKey::algo_name
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 2
    functionsReached:
    - Botan::Dilithium_PublicKey::object_identifier
    - std::string
    - mode
    linkageType: ''
    returnType: std::string
    signature: std::string Dilithium_PublicKey::algo_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:343,1
    - Dst: Botan::Dilithium_PublicKey::object_identifier
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 344
    functionName: Botan::Dilithium_PublicKey::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 1
    functionsReached:
    - AlgorithmIdentifier
    - Botan::Dilithium_PublicKey::object_identifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier Dilithium_PublicKey::algorithm_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:347,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 348
    functionName: Botan::Dilithium_PublicKey::object_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 4
    functionsReached:
    - mode
    linkageType: ''
    returnType: OID
    signature: OID Dilithium_PublicKey::object_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 352
    functionName: Botan::Dilithium_PublicKey::key_length
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - mode
    linkageType: ''
    returnType: size_t
    signature: size_t Dilithium_PublicKey::key_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:355,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 354
    functionDepth: 0
    functionLinenumber: 354
    functionLinenumberEnd: 356
    functionName: Botan::Dilithium_PublicKey::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - mode
    linkageType: ''
    returnType: size_t
    signature: size_t Dilithium_PublicKey::estimated_strength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raw_pk
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 360
    functionName: Botan::Dilithium_PublicKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 1
    functionsReached:
    - raw_pk
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Dilithium_PublicKey::raw_public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Dilithium_PublicKey::raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 366
    functionName: Botan::Dilithium_PublicKey::public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - Botan::Dilithium_PublicKey::raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Dilithium_PublicKey::public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 370
    functionName: Botan::Dilithium_PublicKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Dilithium_PublicKey::check_key(RandomNumberGenerator& /*rng*/,
      bool /*strong*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<Dilithium_PrivateKey>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:373,1
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 374
    functionName: Botan::Dilithium_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Dilithium_PrivateKey>
    - mode
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> Dilithium_PublicKey::generate_another(RandomNumberGenerator&
      rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:378,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:378,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:379,1
    - Dst: std::make_unique<Dilithium_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:380,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:382,1
    - Dst: Botan::Dilithium_PublicKey::algo_name
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:382,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 383
    functionName: Botan::Dilithium_PublicKey::create_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - std::string_view::empty
    - BOTAN_ARG_CHECK
    - std::make_unique<Dilithium_Verification_Operation>
    - Botan::Dilithium_PublicKey::algo_name
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> Dilithium_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/dilithium/dilithium_common/dilithium.cpp:387,1
    - Dst: Botan::Dilithium_PublicKey::algorithm_identifier
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:388,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:389,1
    - Dst: std::make_unique<Dilithium_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:391,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:393,1
    - Dst: Botan::Dilithium_PublicKey::algo_name
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:393,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - ' alg_id'
    - provider
    argTypes:
    - AlgorithmIdentifier
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 385
    functionDepth: 2
    functionLinenumber: 385
    functionLinenumberEnd: 394
    functionName: Botan::Dilithium_PublicKey::create_x509_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - Provider_Not_Found
    - std::string_view::empty
    - Botan::Dilithium_PublicKey::algorithm_identifier
    - std::make_unique<Dilithium_Verification_Operation>
    - Botan::Dilithium_PublicKey::algo_name
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> Dilithium_PublicKey::create_x509_verification_op(\n
      \  const AlgorithmIdentifier& alg_id, std::string_view provider) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:408,1
    - Dst: DilithiumConstants::mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:408,1
    - Dst: std::tie
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:409,1
    - Dst: Botan::Dilithium_Algos::expand_keypair
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:409,1
    - Dst: random_vec
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:410,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' rng'
    - m
    argTypes:
    - RandomNumberGenerator
    - DilithiumMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 406
    functionDepth: 3
    functionLinenumber: 406
    functionLinenumberEnd: 411
    functionName: Botan::Dilithium_PrivateKey::Dilithium_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - std::tie
    - std::move
    - BOTAN_ARG_CHECK
    - Botan::Dilithium_Algos::expand_keypair
    - DilithiumConstants::mode
    - random_vec
    linkageType: ''
    returnType: void
    signature: void Dilithium_PrivateKey::Dilithium_PrivateKey(RandomNumberGenerator&
      rng, DilithiumMode m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DilithiumMode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:414,1
    - Dst: oid
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' alg_id'
    - sk
    argTypes:
    - AlgorithmIdentifier
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 414
    functionName: Botan::Dilithium_PrivateKey::Dilithium_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - oid
    - DilithiumMode
    linkageType: ''
    returnType: void
    signature: void Dilithium_PrivateKey::Dilithium_PrivateKey(const AlgorithmIdentifier&
      alg_id, std::span<const uint8_t> sk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DilithiumConstants::keypair_codec
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:418,1
    - Dst: std::tie
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:419,1
    - Dst: decode_keypair
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:419,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sk
    - m
    argTypes:
    - std::span<const uint8_t>
    - DilithiumMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 420
    functionName: Botan::Dilithium_PrivateKey::Dilithium_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - decode_keypair
    - std::tie
    - DilithiumConstants::keypair_codec
    - std::move
    linkageType: ''
    returnType: void
    signature: void Dilithium_PrivateKey::Dilithium_PrivateKey(std::span<const uint8_t>
      sk, DilithiumMode m)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Dilithium_PrivateKey::private_key_bits
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:423,1
    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: Botan::Dilithium_PrivateKey::raw_private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - Botan::Dilithium_PrivateKey::private_key_bits
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Dilithium_PrivateKey::raw_private_key_bits()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:427,1
    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: Botan::Dilithium_PrivateKey::private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 6
    functionsReached:
    - mode
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Dilithium_PrivateKey::private_key_bits() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:433,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:435,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:435,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:442,1
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:443,1
    - Dst: std::make_unique<Dilithium_Signature_Operation>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:444,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:446,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:446,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: 447
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 447
    functionName: Botan::Dilithium_PrivateKey::create_signature_op
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - std::string_view::empty
    - BOTAN_ARG_CHECK
    - std::make_unique<Dilithium_Signature_Operation>
    - algo_name
    - BOTAN_UNUSED
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Signature>
    signature: "std::unique_ptr<PK_Ops::Signature> Dilithium_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<Dilithium_PublicKey>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp:450,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 451
    functionName: Botan::Dilithium_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<Dilithium_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> Dilithium_PrivateKey::public_key() const
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: DilithiumMode::mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp:21,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - mode
    argTypes:
    - DilithiumMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 35
    functionName: Botan::public_key_hash_size
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp
    functionUses: 0
    functionsReached:
    - DilithiumMode::mode
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t public_key_hash_size(DilithiumMode mode)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: DilithiumMode::mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp:38,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - mode
    argTypes:
    - DilithiumMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 53
    functionName: Botan::commitment_hash_full_size
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp
    functionUses: 0
    functionsReached:
    - DilithiumMode::mode
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t commitment_hash_full_size(DilithiumMode mode)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: DilithiumMode::mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp:21,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - mode
    argTypes:
    - DilithiumMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 35
    functionName: Botan::public_key_hash_size
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp
    functionUses: 0
    functionsReached:
    - DilithiumMode::mode
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t public_key_hash_size(DilithiumMode mode)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: DilithiumMode::mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp:38,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - mode
    argTypes:
    - DilithiumMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 53
    functionName: Botan::commitment_hash_full_size
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp
    functionUses: 0
    functionsReached:
    - DilithiumMode::mode
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t commitment_hash_full_size(DilithiumMode mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: DilithiumConstants::~DilithiumConstants()
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DilithiumConstants::~DilithiumConstants()
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: public_key_hash_size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp:61,1
    - Dst: commitment_hash_full_size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp:62,1
    - Dst: Botan::DilithiumConstants::mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp:63,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp:104,1
    - Dst: bitlen
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp:107,1
    - Dst: bitlen
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp:108,1
    - Dst: bitlen
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp:110,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp:110,1
    - Dst: bitlen
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp:111,1
    - Dst: bitlen
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp:118,1
    - Dst: Botan::Dilithium_Symmetric_Primitives_Base::create
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp:120,1
    - Dst: Botan::Dilithium_Keypair_Codec::create
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp:121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 50
    argCount: 1
    argNames:
    - mode
    argTypes:
    - DilithiumMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 122
    functionName: Botan::DilithiumConstants::DilithiumConstants
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp
    functionUses: 0
    functionsReached:
    - public_key_hash_size
    - static_cast<uint32_t>
    - BOTAN_ASSERT_UNREACHABLE
    - Botan::DilithiumConstants::mode
    - Botan::Dilithium_Keypair_Codec::create
    - commitment_hash_full_size
    - bitlen
    - Botan::Dilithium_Symmetric_Primitives_Base::create
    linkageType: ''
    returnType: void
    signature: void DilithiumConstants::DilithiumConstants(DilithiumMode mode)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: DilithiumMode::mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp:21,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - mode
    argTypes:
    - DilithiumMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 35
    functionName: Botan::public_key_hash_size
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp
    functionUses: 0
    functionsReached:
    - DilithiumMode::mode
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t public_key_hash_size(DilithiumMode mode)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: DilithiumMode::mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp:38,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - mode
    argTypes:
    - DilithiumMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 53
    functionName: Botan::commitment_hash_full_size
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp
    functionUses: 0
    functionsReached:
    - DilithiumMode::mode
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t commitment_hash_full_size(DilithiumMode mode)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: DilithiumMode::mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp:21,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - mode
    argTypes:
    - DilithiumMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 20
    functionDepth: 1
    functionLinenumber: 20
    functionLinenumberEnd: 35
    functionName: Botan::public_key_hash_size
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp
    functionUses: 0
    functionsReached:
    - DilithiumMode::mode
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t public_key_hash_size(DilithiumMode mode)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: DilithiumMode::mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp:38,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - mode
    argTypes:
    - DilithiumMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 53
    functionName: Botan::commitment_hash_full_size
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp
    functionUses: 0
    functionsReached:
    - DilithiumMode::mode
    - BOTAN_ASSERT_UNREACHABLE
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t commitment_hash_full_size(DilithiumMode mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: DilithiumConstants::~DilithiumConstants()
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DilithiumConstants::~DilithiumConstants()
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: public_key_hash_size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp:61,1
    - Dst: commitment_hash_full_size
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp:62,1
    - Dst: Botan::DilithiumConstants::mode
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp:63,1
    - Dst: BOTAN_ASSERT_UNREACHABLE
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp:104,1
    - Dst: bitlen
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp:107,1
    - Dst: bitlen
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp:108,1
    - Dst: bitlen
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp:110,1
    - Dst: static_cast<uint32_t>
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp:110,1
    - Dst: bitlen
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp:111,1
    - Dst: bitlen
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp:118,1
    - Dst: Botan::Dilithium_Symmetric_Primitives_Base::create
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp:120,1
    - Dst: Botan::Dilithium_Keypair_Codec::create
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp:121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 50
    argCount: 1
    argNames:
    - mode
    argTypes:
    - DilithiumMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 122
    functionName: Botan::DilithiumConstants::DilithiumConstants
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_constants.cpp
    functionUses: 0
    functionsReached:
    - public_key_hash_size
    - static_cast<uint32_t>
    - BOTAN_ASSERT_UNREACHABLE
    - Botan::DilithiumConstants::mode
    - Botan::Dilithium_Keypair_Codec::create
    - commitment_hash_full_size
    - bitlen
    - Botan::Dilithium_Symmetric_Primitives_Base::create
    linkageType: ''
    returnType: void
    signature: void DilithiumConstants::DilithiumConstants(DilithiumMode mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XOF
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_shake/dilithium_shake_xof.h:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - seed
    - nonce
    argTypes:
    - std::span<const uint8_t>
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: '& XOF128(std::span<const uint8_t> seed, uint16_t nonce) const override'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_shake/dilithium_shake_xof.h
    functionUses: 0
    functionsReached:
    - XOF
    linkageType: ''
    returnType: Botan::XOF
    signature: Botan::XOF & XOF128(std::span<const uint8_t> seed, uint16_t nonce)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XOF
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_shake/dilithium_shake_xof.h:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - seed
    - nonce
    argTypes:
    - std::span<const uint8_t>
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: '& XOF256(std::span<const uint8_t> seed, uint16_t nonce) const override'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_shake/dilithium_shake_xof.h
    functionUses: 0
    functionsReached:
    - XOF
    linkageType: ''
    returnType: Botan::XOF
    signature: Botan::XOF & XOF256(std::span<const uint8_t> seed, uint16_t nonce)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_shake/dilithium_shake_xof.h:31,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_shake/dilithium_shake_xof.h:32,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_shake/dilithium_shake_xof.h:33,1
    - Dst: store_le
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_shake/dilithium_shake_xof.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' xof'
    - seed
    - nonce
    argTypes:
    - Botan::XOF
    - std::span<const uint8_t>
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: '& XOF(Botan::XOF& xof, std::span<const uint8_t> seed, uint16_t
      nonce)'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_shake/dilithium_shake_xof.h
    functionUses: 0
    functionsReached:
    - update
    - clear
    - store_le
    linkageType: ''
    returnType: Botan::XOF
    signature: Botan::XOF & XOF(Botan::XOF& xof, std::span<const uint8_t> seed, uint16_t
      nonce)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XOF
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_shake/dilithium_shake_xof.h:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - seed
    - nonce
    argTypes:
    - std::span<const uint8_t>
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: '& XOF128(std::span<const uint8_t> seed, uint16_t nonce) const override'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_shake/dilithium_shake_xof.h
    functionUses: 0
    functionsReached:
    - XOF
    linkageType: ''
    returnType: Botan::XOF
    signature: Botan::XOF & XOF128(std::span<const uint8_t> seed, uint16_t nonce)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: XOF
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_shake/dilithium_shake_xof.h:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - seed
    - nonce
    argTypes:
    - std::span<const uint8_t>
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: '& XOF256(std::span<const uint8_t> seed, uint16_t nonce) const override'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_shake/dilithium_shake_xof.h
    functionUses: 0
    functionsReached:
    - XOF
    linkageType: ''
    returnType: Botan::XOF
    signature: Botan::XOF & XOF256(std::span<const uint8_t> seed, uint16_t nonce)
      const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_shake/dilithium_shake_xof.h:31,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_shake/dilithium_shake_xof.h:32,1
    - Dst: update
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_shake/dilithium_shake_xof.h:33,1
    - Dst: store_le
      Src: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_shake/dilithium_shake_xof.h:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - ' xof'
    - seed
    - nonce
    argTypes:
    - Botan::XOF
    - std::span<const uint8_t>
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 35
    functionName: '& XOF(Botan::XOF& xof, std::span<const uint8_t> seed, uint16_t
      nonce)'
    functionSourceFile: /src/botan/src/lib/pubkey/dilithium/dilithium_common/dilithium_shake/dilithium_shake_xof.h
    functionUses: 0
    functionsReached:
    - update
    - clear
    - store_le
    linkageType: ''
    returnType: Botan::XOF
    signature: Botan::XOF & XOF(Botan::XOF& xof, std::span<const uint8_t> seed, uint16_t
      nonce)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DL_Group::load_DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp:17,1
    - Dst: Botan::DL_Group::load_DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp:23,1
    - Dst: Botan::DL_Group::load_DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp:29,1
    - Dst: Botan::DL_Group::load_DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp:35,1
    - Dst: Botan::DL_Group::load_DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp:41,1
    - Dst: Botan::DL_Group::load_DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp:48,1
    - Dst: Botan::DL_Group::load_DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp:54,1
    - Dst: Botan::DL_Group::load_DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp:60,1
    - Dst: Botan::DL_Group::load_DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp:66,1
    - Dst: Botan::DL_Group::load_DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp:72,1
    - Dst: Botan::DL_Group::load_DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp:78,1
    - Dst: Botan::DL_Group::load_DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp:84,1
    - Dst: Botan::DL_Group::load_DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp:98,1
    - Dst: Botan::DL_Group::load_DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp:105,1
    - Dst: Botan::DL_Group::load_DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp:112,1
    - Dst: Botan::DL_Group::load_DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp:119,1
    - Dst: Botan::DL_Group::load_DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp:126,1
    - Dst: Botan::DL_Group::load_DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp:133,1
    - Dst: Botan::DL_Group::load_DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp:140,1
    - Dst: Botan::DL_Group::load_DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp:147,1
    - Dst: Botan::DL_Group::load_DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp:154,1
    - Dst: Botan::DL_Group::load_DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp:161,1
    - Dst: std::shared_ptr<DL_Group_Data>
      Src: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp:164,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 68
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 165
    functionName: Botan::DL_Group::DL_group_info
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp
    functionUses: 0
    functionsReached:
    - Botan::DL_Group::load_DL_group_info
    - std::shared_ptr<DL_Group_Data>
    linkageType: ''
    returnType: std::shared_ptr<DL_Group_Data>
    signature: std::shared_ptr<DL_Group_Data> DL_Group::DL_group_info(std::string_view
      name)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DL_Group::load_DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp:17,1
    - Dst: Botan::DL_Group::load_DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp:23,1
    - Dst: Botan::DL_Group::load_DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp:29,1
    - Dst: Botan::DL_Group::load_DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp:35,1
    - Dst: Botan::DL_Group::load_DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp:41,1
    - Dst: Botan::DL_Group::load_DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp:48,1
    - Dst: Botan::DL_Group::load_DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp:54,1
    - Dst: Botan::DL_Group::load_DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp:60,1
    - Dst: Botan::DL_Group::load_DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp:66,1
    - Dst: Botan::DL_Group::load_DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp:72,1
    - Dst: Botan::DL_Group::load_DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp:78,1
    - Dst: Botan::DL_Group::load_DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp:84,1
    - Dst: Botan::DL_Group::load_DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp:98,1
    - Dst: Botan::DL_Group::load_DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp:105,1
    - Dst: Botan::DL_Group::load_DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp:112,1
    - Dst: Botan::DL_Group::load_DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp:119,1
    - Dst: Botan::DL_Group::load_DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp:126,1
    - Dst: Botan::DL_Group::load_DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp:133,1
    - Dst: Botan::DL_Group::load_DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp:140,1
    - Dst: Botan::DL_Group::load_DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp:147,1
    - Dst: Botan::DL_Group::load_DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp:154,1
    - Dst: Botan::DL_Group::load_DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp:161,1
    - Dst: std::shared_ptr<DL_Group_Data>
      Src: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp:164,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 68
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 165
    functionName: Botan::DL_Group::DL_group_info
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_named.cpp
    functionUses: 0
    functionsReached:
    - Botan::DL_Group::load_DL_group_info
    - std::shared_ptr<DL_Group_Data>
    linkageType: ''
    returnType: std::shared_ptr<DL_Group_Data>
    signature: std::shared_ptr<DL_Group_Data> DL_Group::DL_group_info(std::string_view
      name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:32,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:33,1
    - Dst: monty_precompute
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:35,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:36,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:37,1
    - Dst: dl_work_factor
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:38,1
    - Dst: dl_exponent_size
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' p'
    - ' q'
    - ' g'
    - source
    argTypes:
    - BigInt
    - BigInt
    - BigInt
    - DL_Group_Source
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 40
    functionName: Botan::DL_Group_Data::DL_Group_Data
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - dl_work_factor
    - dl_exponent_size
    - Botan::Barrett_Reduction::for_public_modulus
    - bits
    - monty_precompute
    linkageType: ''
    returnType: void
    signature: void DL_Group_Data(const BigInt& p, const BigInt& q, const BigInt&
      g, DL_Group_Source source)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:45,1
    - Dst: monty_precompute
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:47,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:48,1
    - Dst: dl_work_factor
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:50,1
    - Dst: dl_exponent_size
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' p'
    - ' g'
    - source
    argTypes:
    - BigInt
    - BigInt
    - DL_Group_Source
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 52
    functionName: Botan::DL_Group_Data::DL_Group_Data
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - dl_work_factor
    - dl_exponent_size
    - Botan::Barrett_Reduction::for_public_modulus
    - bits
    - monty_precompute
    linkageType: ''
    returnType: void
    signature: void DL_Group_Data(const BigInt& p, const BigInt& g, DL_Group_Source
      source)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: ~DL_Group_Data()
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~DL_Group_Data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - DL_Group_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: Botan::DL_Group_Data::DL_Group_Data
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DL_Group_Data(const DL_Group_Data& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - DL_Group_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: Botan::DL_Group_Data::DL_Group_Data
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DL_Group_Data(DL_Group_Data&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - DL_Group_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: '& operator=(const DL_Group_Data& other)'
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DL_Group_Data
    signature: DL_Group_Data & operator=(const DL_Group_Data& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - DL_Group_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: '& operator=(DL_Group_Data&& other)'
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DL_Group_Data
    signature: DL_Group_Data & operator=(DL_Group_Data&& other)
  - 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: '& p() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    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: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: '& q() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & q() 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: '& g() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & g() 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: '& reducer_mod_p() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Barrett_Reduction
    signature: Barrett_Reduction & reducer_mod_p() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: '& reducer_mod_q() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: Barrett_Reduction
    signature: Barrett_Reduction & reducer_mod_q() 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: '& monty_params_p() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Montgomery_Params
    signature: Montgomery_Params & monty_params_p() 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::DL_Group_Data::p_bits
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    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: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: Botan::DL_Group_Data::q_bits
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t q_bits() 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::DL_Group_Data::p_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    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: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: Botan::DL_Group_Data::q_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t q_bytes() 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::DL_Group_Data::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    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: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: Botan::DL_Group_Data::exponent_bits
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t exponent_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty_execute
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' k'
    - max_k_bits
    argTypes:
    - BigInt
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: Botan::DL_Group_Data::power_g_p
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - monty_execute
    linkageType: ''
    returnType: BigInt
    signature: BigInt power_g_p(const BigInt& k, size_t max_k_bits) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty_execute_vartime
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' k'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: Botan::DL_Group_Data::power_g_p_vartime
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - monty_execute_vartime
    linkageType: ''
    returnType: BigInt
    signature: BigInt power_g_p_vartime(const BigInt& k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty_exp
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' b'
    - ' k'
    - max_k_bits
    argTypes:
    - BigInt
    - BigInt
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: Botan::DL_Group_Data::power_b_p
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - monty_exp
    linkageType: ''
    returnType: BigInt
    signature: BigInt power_b_p(const BigInt& b, const BigInt& k, size_t max_k_bits)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty_exp_vartime
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' b'
    - ' k'
    argTypes:
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: Botan::DL_Group_Data::power_b_p_vartime
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - monty_exp_vartime
    linkageType: ''
    returnType: BigInt
    signature: BigInt power_b_p_vartime(const BigInt& b, const BigInt& k) 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::DL_Group_Data::q_is_set
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool q_is_set() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DL_Group_Data::q_is_set
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:105,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:106,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - function
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: Botan::DL_Group_Data::assert_q_is_set
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - Invalid_State
    - fmt
    - Botan::DL_Group_Data::q_is_set
    linkageType: ''
    returnType: void
    signature: void assert_q_is_set(std::string_view function) 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::DL_Group_Data::source
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DL_Group_Source
    signature: DL_Group_Source source() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BER_Decoder::start_sequence
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:133,1
    - Dst: BER_Decoder::decode
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:139,1
    - Dst: std::make_shared<DL_Group_Data>
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:140,1
    - Dst: BER_Decoder::decode
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:145,1
    - Dst: std::make_shared<DL_Group_Data>
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:146,1
    - Dst: BER_Decoder::decode
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:150,1
    - Dst: std::make_shared<DL_Group_Data>
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:151,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:153,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - data
    - data_len
    - format
    - source
    argTypes:
    - uint8_t[]
    - size_t
    - DL_Group_Format
    - DL_Group_Source
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 155
    functionName: Botan::DL_Group::BER_decode_DL_group
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<DL_Group_Data>
    - Invalid_Argument
    - BER_Decoder::start_sequence
    - BER_Decoder::decode
    linkageType: ''
    returnType: std::shared_ptr<DL_Group_Data>
    signature: "std::shared_ptr<DL_Group_Data> DL_Group::BER_decode_DL_group(const
      uint8_t data[],\n                                                             size_t
      data_len,\n                                                             DL_Group_Format
      format,\n                                                             DL_Group_Source
      source)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BigInt::is_zero
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:163,1
    - Dst: std::make_shared<DL_Group_Data>
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:164,1
    - Dst: std::make_shared<DL_Group_Data>
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - p_str
    - q_str
    - g_str
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 158
    functionDepth: 4
    functionLinenumber: 158
    functionLinenumberEnd: 168
    functionName: Botan::DL_Group::load_DL_group_info
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 2
    functionsReached:
    - std::make_shared<DL_Group_Data>
    - BigInt::is_zero
    linkageType: ''
    returnType: std::shared_ptr<DL_Group_Data>
    signature: std::shared_ptr<DL_Group_Data> DL_Group::load_DL_group_info(const char*
      p_str, const char* q_str, const char* g_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<DL_Group_Data>
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p_str
    - g_str
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 177
    functionName: Botan::DL_Group::load_DL_group_info
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 2
    functionsReached:
    - std::make_shared<DL_Group_Data>
    linkageType: ''
    returnType: std::shared_ptr<DL_Group_Data>
    signature: std::shared_ptr<DL_Group_Data> DL_Group::load_DL_group_info(const char*
      p_str, const char* g_str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:189,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:189,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - label
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 191
    functionName: Botan::pem_label_to_dl_format
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::Decoding_Error
    linkageType: ''
    returnType: DL_Group_Format
    signature: DL_Group_Format pem_label_to_dl_format(std::string_view label)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:189,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:189,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - label
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 191
    functionName: Botan::pem_label_to_dl_format
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::Decoding_Error
    linkageType: ''
    returnType: DL_Group_Format
    signature: DL_Group_Format pem_label_to_dl_format(std::string_view label)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DL_Group::DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:200,1
    - Dst: unlock
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:205,1
    - Dst: Botan::PEM_Code::decode
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:205,1
    - Dst: pem_label_to_dl_format
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:206,1
    - Dst: Botan::DL_Group::BER_decode_DL_group
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:208,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:208,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:208,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:213,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:213,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 215
    functionName: Botan::DL_Group::DL_Group
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 4
    functionsReached:
    - Botan::DL_Group::DL_group_info
    - fmt
    - Botan::DL_Group::BER_decode_DL_group
    - std::vector::data
    - Invalid_Argument
    - unlock
    - std::vector::size
    - Botan::PEM_Code::decode
    - pem_label_to_dl_format
    linkageType: ''
    returnType: void
    signature: void DL_Group::DL_Group(std::string_view str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DL_Group::DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:218,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:221,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:221,1
    - Dst: Botan::DL_Group::DL_Group
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 217
    functionDepth: 3
    functionLinenumber: 217
    functionLinenumberEnd: 225
    functionName: Botan::DL_Group::from_name
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 48
    functionsReached:
    - Botan::DL_Group::DL_group_info
    - Botan::DL_Group::DL_Group
    - Invalid_Argument
    - fmt
    linkageType: ''
    returnType: DL_Group
    signature: DL_Group DL_Group::from_name(std::string_view name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlock
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:230,1
    - Dst: Botan::PEM_Code::decode
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:230,1
    - Dst: pem_label_to_dl_format
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:231,1
    - Dst: Botan::DL_Group::DL_Group
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pem
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 228
    functionDepth: 3
    functionLinenumber: 228
    functionLinenumberEnd: 233
    functionName: Botan::DL_Group::from_PEM
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 4
    functionsReached:
    - unlock
    - Botan::DL_Group::DL_Group
    - Botan::PEM_Code::decode
    - pem_label_to_dl_format
    linkageType: ''
    returnType: DL_Group
    signature: DL_Group DL_Group::from_PEM(std::string_view pem)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::vartime_divide
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:243,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:246,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:250,1
    - Dst: Botan::monty_exp_vartime
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:254,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:254,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:260,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - ' p'
    - ' q'
    argTypes:
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 261
    functionName: Botan::make_dsa_generator
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - Botan::Invalid_Argument
    - Botan::BigInt::from_word
    - Internal_Error
    - Botan::Barrett_Reduction::for_public_modulus
    - Botan::vartime_divide
    - Botan::monty_exp_vartime
    linkageType: ''
    returnType: BigInt
    signature: BigInt make_dsa_generator(const BigInt& p, const BigInt& q)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::vartime_divide
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:243,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:246,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:250,1
    - Dst: Botan::monty_exp_vartime
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:254,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:254,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:260,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - ' p'
    - ' q'
    argTypes:
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 261
    functionName: Botan::make_dsa_generator
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - Botan::Invalid_Argument
    - Botan::BigInt::from_word
    - Internal_Error
    - Botan::Barrett_Reduction::for_public_modulus
    - Botan::vartime_divide
    - Botan::monty_exp_vartime
    linkageType: ''
    returnType: BigInt
    signature: BigInt make_dsa_generator(const BigInt& p, const BigInt& q)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:270,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:270,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:274,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:274,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:279,1
    - Dst: random_safe_prime
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:282,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:292,1
    - Dst: jacobi
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:293,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:294,1
    - Dst: std::make_shared<DL_Group_Data>
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:297,1
    - Dst: dl_exponent_size
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:300,1
    - Dst: random_prime
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:303,1
    - Dst: BigInt::bits
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:307,1
    - Dst: is_prime
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:307,1
    - Dst: BigInt::randomize
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:308,1
    - Dst: make_dsa_generator
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:313,1
    - Dst: std::make_shared<DL_Group_Data>
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:314,1
    - Dst: generate_dsa_primes
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:322,1
    - Dst: make_dsa_generator
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:323,1
    - Dst: std::make_shared<DL_Group_Data>
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:324,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:326,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 35
    argCount: 4
    argNames:
    - ' rng'
    - type
    - pbits
    - qbits
    argTypes:
    - RandomNumberGenerator
    - PrimeType
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 328
    functionName: Botan::DL_Group::DL_Group
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 6
    functionsReached:
    - std::make_shared<DL_Group_Data>
    - random_safe_prime
    - BigInt::randomize
    - BigInt::bits
    - dl_exponent_size
    - Botan::BigInt::from_word
    - is_prime
    - jacobi
    - random_prime
    - Invalid_Argument
    - make_dsa_generator
    - generate_dsa_primes
    - fmt
    linkageType: ''
    returnType: void
    signature: void DL_Group::DL_Group(RandomNumberGenerator& rng, PrimeType type,
      size_t pbits, size_t qbits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: generate_dsa_primes
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:337,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:338,1
    - Dst: make_dsa_generator
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:341,1
    - Dst: std::make_shared<DL_Group_Data>
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:343,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - ' rng'
    - ' seed'
    - pbits
    - qbits
    argTypes:
    - RandomNumberGenerator
    - std::vector<uint8_t>
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 344
    functionName: Botan::DL_Group::DL_Group
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 6
    functionsReached:
    - std::make_shared<DL_Group_Data>
    - make_dsa_generator
    - generate_dsa_primes
    - Invalid_Argument
    linkageType: ''
    returnType: void
    signature: void DL_Group::DL_Group(RandomNumberGenerator& rng, const std::vector<uint8_t>&
      seed, size_t pbits, size_t qbits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<DL_Group_Data>
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - ' g'
    argTypes:
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 351
    functionName: Botan::DL_Group::DL_Group
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 6
    functionsReached:
    - std::make_shared<DL_Group_Data>
    linkageType: ''
    returnType: void
    signature: void DL_Group::DL_Group(const BigInt& p, const BigInt& g)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:357,1
    - Dst: std::make_shared<DL_Group_Data>
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:358,1
    - Dst: std::make_shared<DL_Group_Data>
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' p'
    - ' q'
    - ' g'
    argTypes:
    - BigInt
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 356
    functionDepth: 4
    functionLinenumber: 356
    functionLinenumberEnd: 362
    functionName: Botan::DL_Group::DL_Group
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 6
    functionsReached:
    - std::make_shared<DL_Group_Data>
    - is_zero
    linkageType: ''
    returnType: void
    signature: void DL_Group::DL_Group(const BigInt& p, const BigInt& q, const BigInt&
      g)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:369,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 370
    functionName: '& DL_Group::data() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - Invalid_State
    linkageType: ''
    returnType: DL_Group_Data
    signature: DL_Group_Data & DL_Group::data() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:373,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:374,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:380,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:381,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - ' y'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 372
    functionDepth: 4
    functionLinenumber: 372
    functionLinenumberEnd: 387
    functionName: Botan::DL_Group::verify_public_element
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - get_p
    - is_zero
    - data
    - get_q
    linkageType: ''
    returnType: bool
    signature: bool DL_Group::verify_public_element(const BigInt& y) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:390,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:391,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 402
    functionName: Botan::DL_Group::verify_private_element
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - get_p
    - get_q
    linkageType: ''
    returnType: bool
    signature: bool DL_Group::verify_private_element(const BigInt& x) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:405,1
    - Dst: Botan::DL_Group::power_g_p
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:411,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:411,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - ' y'
    - ' x'
    argTypes:
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 404
    functionDepth: 1
    functionLinenumber: 404
    functionLinenumberEnd: 416
    functionName: Botan::DL_Group::verify_element_pair
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - Botan::DL_Group::power_g_p
    - get_p
    - bits
    linkageType: ''
    returnType: bool
    signature: bool DL_Group::verify_element_pair(const BigInt& y, const BigInt& x)
      const
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DL_Group::source
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:422,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:428,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:429,1
    - Dst: get_g
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:430,1
    - Dst: Botan::DL_Group::source
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:437,1
    - Dst: is_prime
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:439,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:447,1
    - Dst: is_prime
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:450,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:461,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:461,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 421
    functionDepth: 1
    functionLinenumber: 421
    functionLinenumberEnd: 469
    functionName: Botan::DL_Group::verify_group
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 4
    functionsReached:
    - data
    - Botan::BigInt::from_word
    - get_p
    - Botan::DL_Group::source
    - is_prime
    - get_q
    - get_g
    linkageType: ''
    returnType: bool
    signature: bool DL_Group::verify_group(RandomNumberGenerator& rng, bool strong)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 476
    functionName: '& DL_Group::get_p() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: BigInt
    signature: BigInt & DL_Group::get_p() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 483
    functionName: '& DL_Group::get_g() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: BigInt
    signature: BigInt & DL_Group::get_g() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 490
    functionName: '& DL_Group::get_q() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: BigInt
    signature: BigInt & DL_Group::get_q() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 494
    functionName: '& DL_Group::_monty_params_p() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: Montgomery_Params
    signature: Montgomery_Params & DL_Group::_monty_params_p() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 498
    functionName: Botan::DL_Group::has_q
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: bool
    signature: bool DL_Group::has_q() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 502
    functionName: Botan::DL_Group::p_bits
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: size_t
    signature: size_t DL_Group::p_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 506
    functionName: Botan::DL_Group::p_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: size_t
    signature: size_t DL_Group::p_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:509,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 511
    functionName: Botan::DL_Group::q_bits
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: size_t
    signature: size_t DL_Group::q_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:514,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 516
    functionName: Botan::DL_Group::q_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: size_t
    signature: size_t DL_Group::q_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 520
    functionName: Botan::DL_Group::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: size_t
    signature: size_t DL_Group::estimated_strength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 522
    functionDepth: 1
    functionLinenumber: 522
    functionLinenumberEnd: 524
    functionName: Botan::DL_Group::exponent_bits
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: size_t
    signature: size_t DL_Group::exponent_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inverse_mod_public_prime
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:528,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 529
    functionName: Botan::DL_Group::inverse_mod_p
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - inverse_mod_public_prime
    - get_p
    linkageType: ''
    returnType: BigInt
    signature: BigInt DL_Group::inverse_mod_p(const BigInt& x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 533
    functionName: Botan::DL_Group::mod_p
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: BigInt
    signature: BigInt DL_Group::mod_p(const BigInt& x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 537
    functionName: Botan::DL_Group::multiply_mod_p
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: BigInt
    signature: BigInt DL_Group::multiply_mod_p(const BigInt& x, const BigInt& y) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 541
    functionName: '& DL_Group::_reducer_mod_p() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: Barrett_Reduction
    signature: Barrett_Reduction & DL_Group::_reducer_mod_p() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:544,1
    - Dst: inverse_mod_public_prime
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:546,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 547
    functionName: Botan::DL_Group::inverse_mod_q
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - inverse_mod_public_prime
    - data
    - get_q
    linkageType: ''
    returnType: BigInt
    signature: BigInt DL_Group::inverse_mod_q(const BigInt& x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:550,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 552
    functionName: Botan::DL_Group::mod_q
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: BigInt
    signature: BigInt DL_Group::mod_q(const BigInt& x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:555,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 557
    functionName: Botan::DL_Group::multiply_mod_q
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: BigInt
    signature: BigInt DL_Group::multiply_mod_q(const BigInt& x, const BigInt& y) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:560,1
    - Dst: Botan::DL_Group::multiply_mod_q
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:561,1
    - Dst: Botan::DL_Group::multiply_mod_q
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' x'
    - ' y'
    - ' z'
    argTypes:
    - BigInt
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 559
    functionDepth: 1
    functionLinenumber: 559
    functionLinenumberEnd: 562
    functionName: Botan::DL_Group::multiply_mod_q
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 1
    functionsReached:
    - Botan::DL_Group::multiply_mod_q
    - data
    linkageType: ''
    returnType: BigInt
    signature: BigInt DL_Group::multiply_mod_q(const BigInt& x, const BigInt& y, const
      BigInt& z) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:565,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 567
    functionName: Botan::DL_Group::square_mod_q
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: BigInt
    signature: BigInt DL_Group::square_mod_q(const BigInt& x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty_multi_exp
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:570,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:570,1
    - Dst: get_g
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' x'
    - ' y'
    - ' z'
    argTypes:
    - BigInt
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 569
    functionDepth: 1
    functionLinenumber: 569
    functionLinenumberEnd: 571
    functionName: Botan::DL_Group::multi_exponentiate
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - monty_multi_exp
    - data
    - get_g
    linkageType: ''
    returnType: BigInt
    signature: BigInt DL_Group::multi_exponentiate(const BigInt& x, const BigInt&
      y, const BigInt& z) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - max_x_bits
    argTypes:
    - BigInt
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 575
    functionName: Botan::DL_Group::power_g_p
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 1
    functionsReached:
    - data
    linkageType: ''
    returnType: BigInt
    signature: BigInt DL_Group::power_g_p(const BigInt& x, size_t max_x_bits) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DL_Group::power_b_p
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:578,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' b'
    - ' x'
    argTypes:
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 579
    functionName: Botan::DL_Group::power_b_p
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 1
    functionsReached:
    - data
    - Botan::DL_Group::power_b_p
    linkageType: ''
    returnType: BigInt
    signature: BigInt DL_Group::power_b_p(const BigInt& b, const BigInt& x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' b'
    - ' x'
    - max_x_bits
    argTypes:
    - BigInt
    - BigInt
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 581
    functionDepth: 1
    functionLinenumber: 581
    functionLinenumberEnd: 583
    functionName: Botan::DL_Group::power_b_p
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 1
    functionsReached:
    - data
    linkageType: ''
    returnType: BigInt
    signature: BigInt DL_Group::power_b_p(const BigInt& b, const BigInt& x, size_t
      max_x_bits) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 587
    functionName: Botan::DL_Group::source
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 1
    functionsReached:
    - data
    linkageType: ''
    returnType: DL_Group_Source
    signature: DL_Group_Source DL_Group::source() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:593,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:594,1
    - Dst: DER_Encoder::start_sequence
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:601,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:601,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:601,1
    - Dst: get_g
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:601,1
    - Dst: DER_Encoder::start_sequence
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:603,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:603,1
    - Dst: get_g
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:603,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:603,1
    - Dst: DER_Encoder::start_sequence
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:605,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:605,1
    - Dst: get_g
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:605,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:607,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - format
    argTypes:
    - DL_Group_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 592
    functionDepth: 1
    functionLinenumber: 592
    functionLinenumberEnd: 611
    functionName: Botan::DL_Group::DER_encode
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - Encoding_Error
    - get_p
    - get_q
    - Invalid_Argument
    - DER_Encoder::start_sequence
    - get_g
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> DL_Group::DER_encode(DL_Group_Format format) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DL_Group::DER_encode
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:617,1
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:620,1
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:622,1
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:624,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:626,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - format
    argTypes:
    - DL_Group_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 616
    functionDepth: 2
    functionLinenumber: 616
    functionLinenumberEnd: 628
    functionName: Botan::DL_Group::PEM_encode
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 2
    functionsReached:
    - Invalid_Argument
    - Botan::DL_Group::DER_encode
    - Botan::PEM_Code::encode
    linkageType: ''
    returnType: std::string
    signature: std::string DL_Group::PEM_encode(DL_Group_Format format) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DL_Group::BER_decode_DL_group
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ber
    - ber_len
    - format
    argTypes:
    - uint8_t[]
    - size_t
    - DL_Group_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 630
    functionDepth: 2
    functionLinenumber: 630
    functionLinenumberEnd: 632
    functionName: Botan::DL_Group::DL_Group
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 6
    functionsReached:
    - Botan::DL_Group::BER_decode_DL_group
    linkageType: ''
    returnType: void
    signature: void DL_Group::DL_Group(const uint8_t ber[], size_t ber_len, DL_Group_Format
      format)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:32,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:33,1
    - Dst: monty_precompute
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:35,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:36,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:37,1
    - Dst: dl_work_factor
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:38,1
    - Dst: dl_exponent_size
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' p'
    - ' q'
    - ' g'
    - source
    argTypes:
    - BigInt
    - BigInt
    - BigInt
    - DL_Group_Source
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 40
    functionName: Botan::DL_Group_Data::DL_Group_Data
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - dl_work_factor
    - dl_exponent_size
    - Botan::Barrett_Reduction::for_public_modulus
    - bits
    - monty_precompute
    linkageType: ''
    returnType: void
    signature: void DL_Group_Data(const BigInt& p, const BigInt& q, const BigInt&
      g, DL_Group_Source source)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:45,1
    - Dst: monty_precompute
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:47,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:48,1
    - Dst: dl_work_factor
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:50,1
    - Dst: dl_exponent_size
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' p'
    - ' g'
    - source
    argTypes:
    - BigInt
    - BigInt
    - DL_Group_Source
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 52
    functionName: Botan::DL_Group_Data::DL_Group_Data
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - dl_work_factor
    - dl_exponent_size
    - Botan::Barrett_Reduction::for_public_modulus
    - bits
    - monty_precompute
    linkageType: ''
    returnType: void
    signature: void DL_Group_Data(const BigInt& p, const BigInt& g, DL_Group_Source
      source)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: ~DL_Group_Data()
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~DL_Group_Data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - DL_Group_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: Botan::DL_Group_Data::DL_Group_Data
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DL_Group_Data(const DL_Group_Data& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - DL_Group_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: Botan::DL_Group_Data::DL_Group_Data
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DL_Group_Data(DL_Group_Data&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - DL_Group_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: '& operator=(const DL_Group_Data& other)'
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DL_Group_Data
    signature: DL_Group_Data & operator=(const DL_Group_Data& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - DL_Group_Data
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: '& operator=(DL_Group_Data&& other)'
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DL_Group_Data
    signature: DL_Group_Data & operator=(DL_Group_Data&& other)
  - 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: '& p() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    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: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: '& q() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & q() 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: '& g() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & g() 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: '& reducer_mod_p() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Barrett_Reduction
    signature: Barrett_Reduction & reducer_mod_p() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_STATE_CHECK
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: '& reducer_mod_q() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_STATE_CHECK
    linkageType: ''
    returnType: Barrett_Reduction
    signature: Barrett_Reduction & reducer_mod_q() 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: '& monty_params_p() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Montgomery_Params
    signature: Montgomery_Params & monty_params_p() 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::DL_Group_Data::p_bits
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    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: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: Botan::DL_Group_Data::q_bits
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t q_bits() 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::DL_Group_Data::p_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    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: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: Botan::DL_Group_Data::q_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t q_bytes() 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::DL_Group_Data::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    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: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: Botan::DL_Group_Data::exponent_bits
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t exponent_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty_execute
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' k'
    - max_k_bits
    argTypes:
    - BigInt
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: Botan::DL_Group_Data::power_g_p
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - monty_execute
    linkageType: ''
    returnType: BigInt
    signature: BigInt power_g_p(const BigInt& k, size_t max_k_bits) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty_execute_vartime
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' k'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: Botan::DL_Group_Data::power_g_p_vartime
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - monty_execute_vartime
    linkageType: ''
    returnType: BigInt
    signature: BigInt power_g_p_vartime(const BigInt& k) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty_exp
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' b'
    - ' k'
    - max_k_bits
    argTypes:
    - BigInt
    - BigInt
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: Botan::DL_Group_Data::power_b_p
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - monty_exp
    linkageType: ''
    returnType: BigInt
    signature: BigInt power_b_p(const BigInt& b, const BigInt& k, size_t max_k_bits)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty_exp_vartime
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' b'
    - ' k'
    argTypes:
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: Botan::DL_Group_Data::power_b_p_vartime
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - monty_exp_vartime
    linkageType: ''
    returnType: BigInt
    signature: BigInt power_b_p_vartime(const BigInt& b, const BigInt& k) 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::DL_Group_Data::q_is_set
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool q_is_set() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DL_Group_Data::q_is_set
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:105,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:106,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - function
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: Botan::DL_Group_Data::assert_q_is_set
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - Invalid_State
    - fmt
    - Botan::DL_Group_Data::q_is_set
    linkageType: ''
    returnType: void
    signature: void assert_q_is_set(std::string_view function) 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::DL_Group_Data::source
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: DL_Group_Source
    signature: DL_Group_Source source() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: BER_Decoder::start_sequence
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:133,1
    - Dst: BER_Decoder::decode
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:139,1
    - Dst: std::make_shared<DL_Group_Data>
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:140,1
    - Dst: BER_Decoder::decode
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:145,1
    - Dst: std::make_shared<DL_Group_Data>
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:146,1
    - Dst: BER_Decoder::decode
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:150,1
    - Dst: std::make_shared<DL_Group_Data>
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:151,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:153,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - data
    - data_len
    - format
    - source
    argTypes:
    - uint8_t[]
    - size_t
    - DL_Group_Format
    - DL_Group_Source
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 155
    functionName: Botan::DL_Group::BER_decode_DL_group
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 2
    functionsReached:
    - std::make_shared<DL_Group_Data>
    - Invalid_Argument
    - BER_Decoder::start_sequence
    - BER_Decoder::decode
    linkageType: ''
    returnType: std::shared_ptr<DL_Group_Data>
    signature: "std::shared_ptr<DL_Group_Data> DL_Group::BER_decode_DL_group(const
      uint8_t data[],\n                                                             size_t
      data_len,\n                                                             DL_Group_Format
      format,\n                                                             DL_Group_Source
      source)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BigInt::is_zero
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:163,1
    - Dst: std::make_shared<DL_Group_Data>
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:164,1
    - Dst: std::make_shared<DL_Group_Data>
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - p_str
    - q_str
    - g_str
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 158
    functionDepth: 4
    functionLinenumber: 158
    functionLinenumberEnd: 168
    functionName: Botan::DL_Group::load_DL_group_info
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 2
    functionsReached:
    - std::make_shared<DL_Group_Data>
    - BigInt::is_zero
    linkageType: ''
    returnType: std::shared_ptr<DL_Group_Data>
    signature: std::shared_ptr<DL_Group_Data> DL_Group::load_DL_group_info(const char*
      p_str, const char* q_str, const char* g_str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<DL_Group_Data>
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - p_str
    - g_str
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 177
    functionName: Botan::DL_Group::load_DL_group_info
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 2
    functionsReached:
    - std::make_shared<DL_Group_Data>
    linkageType: ''
    returnType: std::shared_ptr<DL_Group_Data>
    signature: std::shared_ptr<DL_Group_Data> DL_Group::load_DL_group_info(const char*
      p_str, const char* g_str)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:189,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:189,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - label
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 191
    functionName: Botan::pem_label_to_dl_format
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::Decoding_Error
    linkageType: ''
    returnType: DL_Group_Format
    signature: DL_Group_Format pem_label_to_dl_format(std::string_view label)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:189,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:189,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - label
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 191
    functionName: Botan::pem_label_to_dl_format
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - Botan::fmt
    - Botan::Decoding_Error
    linkageType: ''
    returnType: DL_Group_Format
    signature: DL_Group_Format pem_label_to_dl_format(std::string_view label)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DL_Group::DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:200,1
    - Dst: unlock
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:205,1
    - Dst: Botan::PEM_Code::decode
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:205,1
    - Dst: pem_label_to_dl_format
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:206,1
    - Dst: Botan::DL_Group::BER_decode_DL_group
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:208,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:208,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:208,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:213,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:213,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 215
    functionName: Botan::DL_Group::DL_Group
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 6
    functionsReached:
    - Botan::DL_Group::DL_group_info
    - fmt
    - Botan::DL_Group::BER_decode_DL_group
    - std::vector::data
    - Invalid_Argument
    - unlock
    - std::vector::size
    - Botan::PEM_Code::decode
    - pem_label_to_dl_format
    linkageType: ''
    returnType: void
    signature: void DL_Group::DL_Group(std::string_view str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DL_Group::DL_group_info
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:218,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:221,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:221,1
    - Dst: Botan::DL_Group::DL_Group
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 217
    functionDepth: 3
    functionLinenumber: 217
    functionLinenumberEnd: 225
    functionName: Botan::DL_Group::from_name
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 48
    functionsReached:
    - Botan::DL_Group::DL_group_info
    - Botan::DL_Group::DL_Group
    - Invalid_Argument
    - fmt
    linkageType: ''
    returnType: DL_Group
    signature: DL_Group DL_Group::from_name(std::string_view name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlock
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:230,1
    - Dst: Botan::PEM_Code::decode
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:230,1
    - Dst: pem_label_to_dl_format
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:231,1
    - Dst: Botan::DL_Group::DL_Group
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pem
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 228
    functionDepth: 3
    functionLinenumber: 228
    functionLinenumberEnd: 233
    functionName: Botan::DL_Group::from_PEM
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 4
    functionsReached:
    - unlock
    - Botan::DL_Group::DL_Group
    - Botan::PEM_Code::decode
    - pem_label_to_dl_format
    linkageType: ''
    returnType: DL_Group
    signature: DL_Group DL_Group::from_PEM(std::string_view pem)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::vartime_divide
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:243,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:246,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:250,1
    - Dst: Botan::monty_exp_vartime
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:254,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:254,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:260,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - ' p'
    - ' q'
    argTypes:
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 261
    functionName: Botan::make_dsa_generator
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - Botan::Invalid_Argument
    - Botan::BigInt::from_word
    - Internal_Error
    - Botan::Barrett_Reduction::for_public_modulus
    - Botan::vartime_divide
    - Botan::monty_exp_vartime
    linkageType: ''
    returnType: BigInt
    signature: BigInt make_dsa_generator(const BigInt& p, const BigInt& q)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::vartime_divide
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:243,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:246,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:250,1
    - Dst: Botan::monty_exp_vartime
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:254,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:254,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:260,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - ' p'
    - ' q'
    argTypes:
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 261
    functionName: Botan::make_dsa_generator
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - Botan::Invalid_Argument
    - Botan::BigInt::from_word
    - Internal_Error
    - Botan::Barrett_Reduction::for_public_modulus
    - Botan::vartime_divide
    - Botan::monty_exp_vartime
    linkageType: ''
    returnType: BigInt
    signature: BigInt make_dsa_generator(const BigInt& p, const BigInt& q)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:270,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:270,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:274,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:274,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:279,1
    - Dst: random_safe_prime
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:282,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:292,1
    - Dst: jacobi
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:293,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:294,1
    - Dst: std::make_shared<DL_Group_Data>
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:297,1
    - Dst: dl_exponent_size
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:300,1
    - Dst: random_prime
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:303,1
    - Dst: BigInt::bits
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:307,1
    - Dst: is_prime
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:307,1
    - Dst: BigInt::randomize
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:308,1
    - Dst: make_dsa_generator
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:313,1
    - Dst: std::make_shared<DL_Group_Data>
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:314,1
    - Dst: generate_dsa_primes
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:322,1
    - Dst: make_dsa_generator
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:323,1
    - Dst: std::make_shared<DL_Group_Data>
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:324,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:326,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 35
    argCount: 4
    argNames:
    - ' rng'
    - type
    - pbits
    - qbits
    argTypes:
    - RandomNumberGenerator
    - PrimeType
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 328
    functionName: Botan::DL_Group::DL_Group
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 8
    functionsReached:
    - std::make_shared<DL_Group_Data>
    - random_safe_prime
    - BigInt::randomize
    - BigInt::bits
    - dl_exponent_size
    - Botan::BigInt::from_word
    - is_prime
    - jacobi
    - random_prime
    - Invalid_Argument
    - make_dsa_generator
    - generate_dsa_primes
    - fmt
    linkageType: ''
    returnType: void
    signature: void DL_Group::DL_Group(RandomNumberGenerator& rng, PrimeType type,
      size_t pbits, size_t qbits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: generate_dsa_primes
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:337,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:338,1
    - Dst: make_dsa_generator
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:341,1
    - Dst: std::make_shared<DL_Group_Data>
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:343,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - ' rng'
    - ' seed'
    - pbits
    - qbits
    argTypes:
    - RandomNumberGenerator
    - std::vector<uint8_t>
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 344
    functionName: Botan::DL_Group::DL_Group
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 8
    functionsReached:
    - std::make_shared<DL_Group_Data>
    - make_dsa_generator
    - generate_dsa_primes
    - Invalid_Argument
    linkageType: ''
    returnType: void
    signature: void DL_Group::DL_Group(RandomNumberGenerator& rng, const std::vector<uint8_t>&
      seed, size_t pbits, size_t qbits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<DL_Group_Data>
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' p'
    - ' g'
    argTypes:
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 351
    functionName: Botan::DL_Group::DL_Group
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 8
    functionsReached:
    - std::make_shared<DL_Group_Data>
    linkageType: ''
    returnType: void
    signature: void DL_Group::DL_Group(const BigInt& p, const BigInt& g)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:357,1
    - Dst: std::make_shared<DL_Group_Data>
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:358,1
    - Dst: std::make_shared<DL_Group_Data>
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ' p'
    - ' q'
    - ' g'
    argTypes:
    - BigInt
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 356
    functionDepth: 4
    functionLinenumber: 356
    functionLinenumberEnd: 362
    functionName: Botan::DL_Group::DL_Group
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 8
    functionsReached:
    - std::make_shared<DL_Group_Data>
    - is_zero
    linkageType: ''
    returnType: void
    signature: void DL_Group::DL_Group(const BigInt& p, const BigInt& q, const BigInt&
      g)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:369,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 370
    functionName: '& DL_Group::data() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - Invalid_State
    linkageType: ''
    returnType: DL_Group_Data
    signature: DL_Group_Data & DL_Group::data() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:373,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:374,1
    - Dst: is_zero
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:380,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:381,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - ' y'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 372
    functionDepth: 4
    functionLinenumber: 372
    functionLinenumberEnd: 387
    functionName: Botan::DL_Group::verify_public_element
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - get_p
    - is_zero
    - data
    - get_q
    linkageType: ''
    returnType: bool
    signature: bool DL_Group::verify_public_element(const BigInt& y) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:390,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:391,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 389
    functionDepth: 0
    functionLinenumber: 389
    functionLinenumberEnd: 402
    functionName: Botan::DL_Group::verify_private_element
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - get_p
    - get_q
    linkageType: ''
    returnType: bool
    signature: bool DL_Group::verify_private_element(const BigInt& x) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:405,1
    - Dst: Botan::DL_Group::power_g_p
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:411,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:411,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - ' y'
    - ' x'
    argTypes:
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 404
    functionDepth: 2
    functionLinenumber: 404
    functionLinenumberEnd: 416
    functionName: Botan::DL_Group::verify_element_pair
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - Botan::DL_Group::power_g_p
    - get_p
    - bits
    linkageType: ''
    returnType: bool
    signature: bool DL_Group::verify_element_pair(const BigInt& y, const BigInt& x)
      const
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DL_Group::source
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:422,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:428,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:429,1
    - Dst: get_g
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:430,1
    - Dst: Botan::DL_Group::source
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:437,1
    - Dst: is_prime
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:439,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:447,1
    - Dst: is_prime
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:450,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:461,1
    - Dst: Botan::BigInt::from_word
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:461,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 30
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 421
    functionDepth: 2
    functionLinenumber: 421
    functionLinenumberEnd: 469
    functionName: Botan::DL_Group::verify_group
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 4
    functionsReached:
    - data
    - Botan::BigInt::from_word
    - get_p
    - Botan::DL_Group::source
    - is_prime
    - get_q
    - get_g
    linkageType: ''
    returnType: bool
    signature: bool DL_Group::verify_group(RandomNumberGenerator& rng, bool strong)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 476
    functionName: '& DL_Group::get_p() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: BigInt
    signature: BigInt & DL_Group::get_p() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 481
    functionDepth: 1
    functionLinenumber: 481
    functionLinenumberEnd: 483
    functionName: '& DL_Group::get_g() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: BigInt
    signature: BigInt & DL_Group::get_g() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 490
    functionName: '& DL_Group::get_q() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: BigInt
    signature: BigInt & DL_Group::get_q() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:493,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 492
    functionDepth: 1
    functionLinenumber: 492
    functionLinenumberEnd: 494
    functionName: '& DL_Group::_monty_params_p() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: Montgomery_Params
    signature: Montgomery_Params & DL_Group::_monty_params_p() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 496
    functionDepth: 1
    functionLinenumber: 496
    functionLinenumberEnd: 498
    functionName: Botan::DL_Group::has_q
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: bool
    signature: bool DL_Group::has_q() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 500
    functionDepth: 1
    functionLinenumber: 500
    functionLinenumberEnd: 502
    functionName: Botan::DL_Group::p_bits
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: size_t
    signature: size_t DL_Group::p_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 506
    functionName: Botan::DL_Group::p_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: size_t
    signature: size_t DL_Group::p_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:509,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 508
    functionDepth: 1
    functionLinenumber: 508
    functionLinenumberEnd: 511
    functionName: Botan::DL_Group::q_bits
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: size_t
    signature: size_t DL_Group::q_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:514,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 516
    functionName: Botan::DL_Group::q_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: size_t
    signature: size_t DL_Group::q_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 520
    functionName: Botan::DL_Group::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: size_t
    signature: size_t DL_Group::estimated_strength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:523,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 522
    functionDepth: 1
    functionLinenumber: 522
    functionLinenumberEnd: 524
    functionName: Botan::DL_Group::exponent_bits
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: size_t
    signature: size_t DL_Group::exponent_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inverse_mod_public_prime
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:528,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 529
    functionName: Botan::DL_Group::inverse_mod_p
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - inverse_mod_public_prime
    - get_p
    linkageType: ''
    returnType: BigInt
    signature: BigInt DL_Group::inverse_mod_p(const BigInt& x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 533
    functionName: Botan::DL_Group::mod_p
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: BigInt
    signature: BigInt DL_Group::mod_p(const BigInt& x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:536,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 535
    functionDepth: 1
    functionLinenumber: 535
    functionLinenumberEnd: 537
    functionName: Botan::DL_Group::multiply_mod_p
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: BigInt
    signature: BigInt DL_Group::multiply_mod_p(const BigInt& x, const BigInt& y) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:540,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 541
    functionName: '& DL_Group::_reducer_mod_p() const'
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: Barrett_Reduction
    signature: Barrett_Reduction & DL_Group::_reducer_mod_p() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:544,1
    - Dst: inverse_mod_public_prime
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:546,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 543
    functionDepth: 1
    functionLinenumber: 543
    functionLinenumberEnd: 547
    functionName: Botan::DL_Group::inverse_mod_q
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - inverse_mod_public_prime
    - data
    - get_q
    linkageType: ''
    returnType: BigInt
    signature: BigInt DL_Group::inverse_mod_q(const BigInt& x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:550,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:551,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 552
      start: 549
    functionDepth: 1
    functionLinenumber: 549
    functionLinenumberEnd: 552
    functionName: Botan::DL_Group::mod_q
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: BigInt
    signature: BigInt DL_Group::mod_q(const BigInt& x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:555,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 554
    functionDepth: 1
    functionLinenumber: 554
    functionLinenumberEnd: 557
    functionName: Botan::DL_Group::multiply_mod_q
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 1
    functionsReached:
    - data
    linkageType: ''
    returnType: BigInt
    signature: BigInt DL_Group::multiply_mod_q(const BigInt& x, const BigInt& y) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:560,1
    - Dst: Botan::DL_Group::multiply_mod_q
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:561,1
    - Dst: Botan::DL_Group::multiply_mod_q
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ' x'
    - ' y'
    - ' z'
    argTypes:
    - BigInt
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 559
    functionDepth: 1
    functionLinenumber: 559
    functionLinenumberEnd: 562
    functionName: Botan::DL_Group::multiply_mod_q
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 2
    functionsReached:
    - Botan::DL_Group::multiply_mod_q
    - data
    linkageType: ''
    returnType: BigInt
    signature: BigInt DL_Group::multiply_mod_q(const BigInt& x, const BigInt& y, const
      BigInt& z) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:565,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 567
    functionName: Botan::DL_Group::square_mod_q
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - data
    linkageType: ''
    returnType: BigInt
    signature: BigInt DL_Group::square_mod_q(const BigInt& x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty_multi_exp
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:570,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:570,1
    - Dst: get_g
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:570,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' x'
    - ' y'
    - ' z'
    argTypes:
    - BigInt
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 569
    functionDepth: 1
    functionLinenumber: 569
    functionLinenumberEnd: 571
    functionName: Botan::DL_Group::multi_exponentiate
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 0
    functionsReached:
    - monty_multi_exp
    - data
    - get_g
    linkageType: ''
    returnType: BigInt
    signature: BigInt DL_Group::multi_exponentiate(const BigInt& x, const BigInt&
      y, const BigInt& z) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' x'
    - max_x_bits
    argTypes:
    - BigInt
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 573
    functionDepth: 1
    functionLinenumber: 573
    functionLinenumberEnd: 575
    functionName: Botan::DL_Group::power_g_p
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 2
    functionsReached:
    - data
    linkageType: ''
    returnType: BigInt
    signature: BigInt DL_Group::power_g_p(const BigInt& x, size_t max_x_bits) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DL_Group::power_b_p
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:578,1
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' b'
    - ' x'
    argTypes:
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 579
    functionName: Botan::DL_Group::power_b_p
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 2
    functionsReached:
    - data
    - Botan::DL_Group::power_b_p
    linkageType: ''
    returnType: BigInt
    signature: BigInt DL_Group::power_b_p(const BigInt& b, const BigInt& x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' b'
    - ' x'
    - max_x_bits
    argTypes:
    - BigInt
    - BigInt
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 581
    functionDepth: 1
    functionLinenumber: 581
    functionLinenumberEnd: 583
    functionName: Botan::DL_Group::power_b_p
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 2
    functionsReached:
    - data
    linkageType: ''
    returnType: BigInt
    signature: BigInt DL_Group::power_b_p(const BigInt& b, const BigInt& x, size_t
      max_x_bits) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:586,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 585
    functionDepth: 1
    functionLinenumber: 585
    functionLinenumberEnd: 587
    functionName: Botan::DL_Group::source
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 2
    functionsReached:
    - data
    linkageType: ''
    returnType: DL_Group_Source
    signature: DL_Group_Source DL_Group::source() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:593,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:594,1
    - Dst: DER_Encoder::start_sequence
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:601,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:601,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:601,1
    - Dst: get_g
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:601,1
    - Dst: DER_Encoder::start_sequence
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:603,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:603,1
    - Dst: get_g
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:603,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:603,1
    - Dst: DER_Encoder::start_sequence
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:605,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:605,1
    - Dst: get_g
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:605,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:607,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - format
    argTypes:
    - DL_Group_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 592
    functionDepth: 1
    functionLinenumber: 592
    functionLinenumberEnd: 611
    functionName: Botan::DL_Group::DER_encode
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 1
    functionsReached:
    - Encoding_Error
    - get_p
    - get_q
    - Invalid_Argument
    - DER_Encoder::start_sequence
    - get_g
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> DL_Group::DER_encode(DL_Group_Format format) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DL_Group::DER_encode
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:617,1
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:620,1
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:622,1
    - Dst: Botan::PEM_Code::encode
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:624,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:626,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - format
    argTypes:
    - DL_Group_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 616
    functionDepth: 2
    functionLinenumber: 616
    functionLinenumberEnd: 628
    functionName: Botan::DL_Group::PEM_encode
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 2
    functionsReached:
    - Invalid_Argument
    - Botan::DL_Group::DER_encode
    - Botan::PEM_Code::encode
    linkageType: ''
    returnType: std::string
    signature: std::string DL_Group::PEM_encode(DL_Group_Format format) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DL_Group::BER_decode_DL_group
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp:631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ber
    - ber_len
    - format
    argTypes:
    - uint8_t[]
    - size_t
    - DL_Group_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 630
    functionDepth: 2
    functionLinenumber: 630
    functionLinenumberEnd: 632
    functionName: Botan::DL_Group::DL_Group
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.cpp
    functionUses: 8
    functionsReached:
    - Botan::DL_Group::BER_decode_DL_group
    linkageType: ''
    returnType: void
    signature: void DL_Group::DL_Group(const uint8_t ber[], size_t ber_len, DL_Group_Format
      format)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.h:58,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.h:68,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.h:85,1
    - Dst: Botan::DL_Group::from_PEM
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.h:86,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.h:138,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.h:138,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.h:187,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.h:263,1
    - Dst: Botan::power_g_p
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.h:264,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.h:264,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.h:361,1
    - Dst: Botan::DL_Group
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.h:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 46
    functionDepth: 4
    functionLinenumber: 46
    functionLinenumberEnd: 400
    functionName: Botan::final
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.h
    functionUses: 36
    functionsReached:
    - Botan::data
    - Botan::DL_Group
    - Botan::power_g_p
    - Botan::DL_Group::from_PEM
    - bits
    - Botan::size
    - BOTAN_DEPRECATED
    linkageType: ''
    returnType: DL_Group
    signature: DL_Group final
  - 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::DL_Group
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DL_Group()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DL_Group::from_PEM
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.h:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pem
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 4
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: Botan::DL_Group_from_PEM
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.h
    functionUses: 0
    functionsReached:
    - Botan::DL_Group::from_PEM
    linkageType: ''
    returnType: DL_Group
    signature: DL_Group DL_Group_from_PEM(std::string_view pem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.h:138,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.h:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ber'
    - format
    argTypes:
    - std::vector<uint8_t, Alloc>
    - DL_Group_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 138
    functionName: Botan::DL_Group
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.h
    functionUses: 9
    functionsReached:
    - Botan::data
    - Botan::size
    linkageType: ''
    returnType: void
    signature: void DL_Group(const std::vector<uint8_t, Alloc>& ber, DL_Group_Format
      format)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::power_g_p
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.h:264,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.h:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 265
    functionName: Botan::power_g_p
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.h
    functionUses: 2
    functionsReached:
    - Botan::power_g_p
    - bits
    linkageType: ''
    returnType: BigInt
    signature: BigInt power_g_p(const BigInt& x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DL_Group
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.h:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' ber'
    - format
    argTypes:
    - std::vector<uint8_t>
    - DL_Group_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 364
    functionName: Botan::BER_decode
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.h
    functionUses: 0
    functionsReached:
    - Botan::DL_Group
    linkageType: ''
    returnType: void
    signature: void BER_decode(const std::vector<uint8_t>& ber, DL_Group_Format format)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.h:58,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.h:68,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.h:85,1
    - Dst: Botan::DL_Group::from_PEM
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.h:86,1
    - Dst: Botan::data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.h:138,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.h:138,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.h:187,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.h:263,1
    - Dst: Botan::power_g_p
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.h:264,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.h:264,1
    - Dst: BOTAN_DEPRECATED
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.h:361,1
    - Dst: Botan::DL_Group
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.h:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 46
    functionDepth: 4
    functionLinenumber: 46
    functionLinenumberEnd: 400
    functionName: Botan::final
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.h
    functionUses: 36
    functionsReached:
    - Botan::data
    - Botan::DL_Group
    - Botan::power_g_p
    - Botan::DL_Group::from_PEM
    - bits
    - Botan::size
    - BOTAN_DEPRECATED
    linkageType: ''
    returnType: DL_Group
    signature: DL_Group final
  - 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::DL_Group
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DL_Group()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DL_Group::from_PEM
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.h:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pem
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 85
    functionDepth: 4
    functionLinenumber: 85
    functionLinenumberEnd: 87
    functionName: Botan::DL_Group_from_PEM
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.h
    functionUses: 0
    functionsReached:
    - Botan::DL_Group::from_PEM
    linkageType: ''
    returnType: DL_Group
    signature: DL_Group DL_Group_from_PEM(std::string_view pem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::data
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.h:138,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.h:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ber'
    - format
    argTypes:
    - std::vector<uint8_t, Alloc>
    - DL_Group_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 138
    functionName: Botan::DL_Group
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.h
    functionUses: 11
    functionsReached:
    - Botan::data
    - Botan::size
    linkageType: ''
    returnType: void
    signature: void DL_Group(const std::vector<uint8_t, Alloc>& ber, DL_Group_Format
      format)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::power_g_p
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.h:264,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.h:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' x'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 265
    functionName: Botan::power_g_p
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.h
    functionUses: 4
    functionsReached:
    - Botan::power_g_p
    - bits
    linkageType: ''
    returnType: BigInt
    signature: BigInt power_g_p(const BigInt& x) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::DL_Group
      Src: /src/botan/src/lib/pubkey/dl_group/dl_group.h:363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' ber'
    - format
    argTypes:
    - std::vector<uint8_t>
    - DL_Group_Format
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 364
    functionName: Botan::BER_decode
    functionSourceFile: /src/botan/src/lib/pubkey/dl_group/dl_group.h
    functionUses: 0
    functionsReached:
    - Botan::DL_Group
    linkageType: ''
    returnType: void
    signature: void BER_decode(const std::vector<uint8_t>& ber, DL_Group_Format format)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: Botan::known_pbes_cipher_mode
    functionSourceFile: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool known_pbes_cipher_mode(std::string_view mode)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:31,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:31,1
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:37,1
    - Dst: Botan::parameters
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:37,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:45,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:48,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:49,1
    - Dst: AlgorithmIdentifier::oid
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:56,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:57,1
    - Dst: std::string::starts_with
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:57,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:58,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:58,1
    - Dst: AlgorithmIdentifier::oid
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:58,1
    - Dst: Botan::PasswordHashFamily::create_or_throw
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:61,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:61,1
    - Dst: auto::from_params
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:62,1
    - Dst: auto::hash
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:65,1
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:67,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:67,1
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:75,1
    - Dst: Botan::parameters
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:75,1
    - Dst: Botan::PasswordHashFamily::create_or_throw
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:90,1
    - Dst: auto::from_params
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:91,1
    - Dst: auto::hash
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:92,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:96,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:96,1
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:96,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 3
    argNames:
    - passphrase
    - ' kdf_algo'
    - default_key_size
    argTypes:
    - std::string_view
    - AlgorithmIdentifier
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 28
    functionDepth: 3
    functionLinenumber: 28
    functionLinenumberEnd: 98
    functionName: Botan::derive_key
    functionSourceFile: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp
    functionUses: 4
    functionsReached:
    - Botan::PasswordHashFamily::create_or_throw
    - auto::from_params
    - Botan::fmt
    - auto::hash
    - secure_vector::size
    - Botan::oid
    - AlgorithmIdentifier
    - std::string::empty
    - std::string::starts_with
    - AlgorithmIdentifier::oid
    - Botan::OID::from_string
    - Botan::BER_Decoder
    - Botan::parameters
    - Botan::Decoding_Error
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> derive_key(std::string_view passphrase,\n                                  const
      AlgorithmIdentifier& kdf_algo,\n                                  size_t default_key_size)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan::random_vec
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:109,1
    - Dst: Botan::PasswordHashFamily::create_or_throw
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:112,1
    - Dst: auto::tune
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:118,1
    - Dst: auto::from_iterations
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:120,1
    - Dst: std::unique_ptr::hash
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:124,1
    - Dst: std::unique_ptr::memory_param
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:126,1
    - Dst: std::unique_ptr::iterations
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:127,1
    - Dst: std::unique_ptr::parallelism
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:128,1
    - Dst: Botan::DER_Encoder
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:135,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:144,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:144,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:147,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:148,1
    - Dst: Botan::PasswordHashFamily::create
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:150,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:152,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:152,1
    - Dst: auto::tune
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:159,1
    - Dst: auto::from_iterations
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:161,1
    - Dst: std::unique_ptr::hash
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:165,1
    - Dst: std::unique_ptr::iterations
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:169,1
    - Dst: Botan::DER_Encoder
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:175,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:180,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:183,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 8
    argNames:
    - passphrase
    - digest
    - ' rng'
    - msec_in_iterations_out
    - iterations_if_msec_null
    - key_length
    - include_key_length_in_struct
    - ' kdf_algo'
    argTypes:
    - std::string_view
    - std::string_view
    - RandomNumberGenerator
    - size_t*
    - size_t
    - size_t
    - bool
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 186
    functionName: Botan::derive_key
    functionSourceFile: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp
    functionUses: 4
    functionsReached:
    - Botan::PasswordHashFamily::create_or_throw
    - auto::from_iterations
    - std::unique_ptr::iterations
    - Botan::DER_Encoder
    - Botan::fmt
    - std::unique_ptr::hash
    - Botan::Invalid_Argument
    - std::unique_ptr::parallelism
    - auto::tune
    - std::unique_ptr::memory_param
    - AlgorithmIdentifier
    - Botan::PasswordHashFamily::create
    - Botan::random_vec
    - Botan::OID::from_string
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> derive_key(std::string_view passphrase,\n                                  std::string_view
      digest,\n                                  RandomNumberGenerator& rng,\n                                  size_t*
      msec_in_iterations_out,\n                                  size_t iterations_if_msec_null,\n
      \                                 size_t key_length,\n                                  bool
      include_key_length_in_struct,\n                                  AlgorithmIdentifier&
      kdf_algo)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:198,1
    - Dst: Botan::split_on
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:200,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:202,1
    - Dst: Botan::known_pbes_cipher_mode
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:202,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:203,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:203,1
    - Dst: auto::key_spec
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:206,1
    - Dst: Botan::random_vec
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:208,1
    - Dst: auto::default_nonce_length
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:208,1
    - Dst: auto::key_spec
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:212,1
    - Dst: auto::key_spec
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:212,1
    - Dst: Botan::derive_key
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:214,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:223,1
    - Dst: auto::start
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:224,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:225,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:225,1
    - Dst: auto::finish
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:226,1
    - Dst: Botan::DER_Encoder
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:229,1
    - Dst: Botan::DER_Encoder
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:232,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:235,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:238,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:240,1
    - Dst: Botan::unlock
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:240,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 7
    argNames:
    - key_bits
    - passphrase
    - msec_in_iterations_out
    - iterations_if_msec_null
    - cipher
    - prf
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - std::string_view
    - size_t*
    - size_t
    - std::string_view
    - std::string_view
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 241
    functionName: Botan::pbes2_encrypt_shared
    functionSourceFile: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp
    functionUses: 0
    functionsReached:
    - Botan::unlock
    - auto::set_key
    - AlgorithmIdentifier
    - auto::default_nonce_length
    - Botan::Cipher_Mode::create
    - std::span<const uint8_t>::end
    - auto::size
    - Botan::OID::from_string
    - Botan::derive_key
    - Botan::DER_Encoder
    - Encoding_Error
    - Botan::split_on
    - std::span<const uint8_t>::begin
    - auto::finish
    - Botan::fmt
    - std::make_pair
    - auto::key_spec
    - auto::start
    - Botan::random_vec
    - Botan::known_pbes_cipher_mode
    linkageType: ''
    returnType: std::pair<AlgorithmIdentifier, std::vector<uint8_t>>
    signature: "std::pair<AlgorithmIdentifier, std::vector<uint8_t>> pbes2_encrypt_shared(std::span<const
      uint8_t> key_bits,\n                                                                          std::string_view
      passphrase,\n                                                                          size_t*
      msec_in_iterations_out,\n                                                                          size_t
      iterations_if_msec_null,\n                                                                          std::string_view
      cipher,\n                                                                          std::string_view
      prf,\n                                                                          RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: Botan::known_pbes_cipher_mode
    functionSourceFile: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool known_pbes_cipher_mode(std::string_view mode)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:31,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:31,1
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:37,1
    - Dst: Botan::parameters
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:37,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:45,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:48,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:49,1
    - Dst: AlgorithmIdentifier::oid
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:56,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:57,1
    - Dst: std::string::starts_with
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:57,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:58,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:58,1
    - Dst: AlgorithmIdentifier::oid
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:58,1
    - Dst: Botan::PasswordHashFamily::create_or_throw
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:61,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:61,1
    - Dst: auto::from_params
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:62,1
    - Dst: auto::hash
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:65,1
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:67,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:67,1
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:75,1
    - Dst: Botan::parameters
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:75,1
    - Dst: Botan::PasswordHashFamily::create_or_throw
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:90,1
    - Dst: auto::from_params
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:91,1
    - Dst: auto::hash
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:92,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:96,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:96,1
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:96,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 3
    argNames:
    - passphrase
    - ' kdf_algo'
    - default_key_size
    argTypes:
    - std::string_view
    - AlgorithmIdentifier
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 28
    functionDepth: 3
    functionLinenumber: 28
    functionLinenumberEnd: 98
    functionName: Botan::derive_key
    functionSourceFile: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp
    functionUses: 5
    functionsReached:
    - Botan::PasswordHashFamily::create_or_throw
    - auto::from_params
    - Botan::fmt
    - auto::hash
    - secure_vector::size
    - Botan::oid
    - AlgorithmIdentifier
    - std::string::empty
    - std::string::starts_with
    - AlgorithmIdentifier::oid
    - Botan::OID::from_string
    - Botan::BER_Decoder
    - Botan::parameters
    - Botan::Decoding_Error
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> derive_key(std::string_view passphrase,\n                                  const
      AlgorithmIdentifier& kdf_algo,\n                                  size_t default_key_size)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan::random_vec
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:109,1
    - Dst: Botan::PasswordHashFamily::create_or_throw
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:112,1
    - Dst: auto::tune
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:118,1
    - Dst: auto::from_iterations
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:120,1
    - Dst: std::unique_ptr::hash
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:124,1
    - Dst: std::unique_ptr::memory_param
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:126,1
    - Dst: std::unique_ptr::iterations
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:127,1
    - Dst: std::unique_ptr::parallelism
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:128,1
    - Dst: Botan::DER_Encoder
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:135,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:144,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:144,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:147,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:148,1
    - Dst: Botan::PasswordHashFamily::create
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:150,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:152,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:152,1
    - Dst: auto::tune
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:159,1
    - Dst: auto::from_iterations
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:161,1
    - Dst: std::unique_ptr::hash
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:165,1
    - Dst: std::unique_ptr::iterations
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:169,1
    - Dst: Botan::DER_Encoder
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:175,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:180,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:183,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 8
    argNames:
    - passphrase
    - digest
    - ' rng'
    - msec_in_iterations_out
    - iterations_if_msec_null
    - key_length
    - include_key_length_in_struct
    - ' kdf_algo'
    argTypes:
    - std::string_view
    - std::string_view
    - RandomNumberGenerator
    - size_t*
    - size_t
    - size_t
    - bool
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 186
    functionName: Botan::derive_key
    functionSourceFile: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp
    functionUses: 5
    functionsReached:
    - Botan::PasswordHashFamily::create_or_throw
    - auto::from_iterations
    - std::unique_ptr::iterations
    - Botan::DER_Encoder
    - Botan::fmt
    - std::unique_ptr::hash
    - Botan::Invalid_Argument
    - std::unique_ptr::parallelism
    - auto::tune
    - std::unique_ptr::memory_param
    - AlgorithmIdentifier
    - Botan::PasswordHashFamily::create
    - Botan::random_vec
    - Botan::OID::from_string
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> derive_key(std::string_view passphrase,\n                                  std::string_view
      digest,\n                                  RandomNumberGenerator& rng,\n                                  size_t*
      msec_in_iterations_out,\n                                  size_t iterations_if_msec_null,\n
      \                                 size_t key_length,\n                                  bool
      include_key_length_in_struct,\n                                  AlgorithmIdentifier&
      kdf_algo)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:198,1
    - Dst: Botan::split_on
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:200,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:202,1
    - Dst: Botan::known_pbes_cipher_mode
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:202,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:203,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:203,1
    - Dst: auto::key_spec
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:206,1
    - Dst: Botan::random_vec
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:208,1
    - Dst: auto::default_nonce_length
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:208,1
    - Dst: auto::key_spec
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:212,1
    - Dst: auto::key_spec
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:212,1
    - Dst: Botan::derive_key
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:214,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:223,1
    - Dst: auto::start
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:224,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:225,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:225,1
    - Dst: auto::finish
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:226,1
    - Dst: Botan::DER_Encoder
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:229,1
    - Dst: Botan::DER_Encoder
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:232,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:235,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:238,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:240,1
    - Dst: Botan::unlock
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:240,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 7
    argNames:
    - key_bits
    - passphrase
    - msec_in_iterations_out
    - iterations_if_msec_null
    - cipher
    - prf
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - std::string_view
    - size_t*
    - size_t
    - std::string_view
    - std::string_view
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 241
    functionName: Botan::pbes2_encrypt_shared
    functionSourceFile: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp
    functionUses: 0
    functionsReached:
    - Botan::unlock
    - auto::set_key
    - AlgorithmIdentifier
    - auto::default_nonce_length
    - Botan::Cipher_Mode::create
    - std::span<const uint8_t>::end
    - auto::size
    - Botan::OID::from_string
    - Botan::derive_key
    - Botan::DER_Encoder
    - Encoding_Error
    - Botan::split_on
    - std::span<const uint8_t>::begin
    - auto::finish
    - Botan::fmt
    - std::make_pair
    - auto::key_spec
    - auto::start
    - Botan::random_vec
    - Botan::known_pbes_cipher_mode
    linkageType: ''
    returnType: std::pair<AlgorithmIdentifier, std::vector<uint8_t>>
    signature: "std::pair<AlgorithmIdentifier, std::vector<uint8_t>> pbes2_encrypt_shared(std::span<const
      uint8_t> key_bits,\n                                                                          std::string_view
      passphrase,\n                                                                          size_t*
      msec_in_iterations_out,\n                                                                          size_t
      iterations_if_msec_null,\n                                                                          std::string_view
      cipher,\n                                                                          std::string_view
      prf,\n                                                                          RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:251,1
    - Dst: std::chrono::milliseconds::count
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:251,1
    - Dst: Botan::pbes2_encrypt_shared
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - key_bits
    - passphrase
    - msec
    - cipher
    - digest
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - std::string_view
    - std::chrono::milliseconds
    - std::string_view
    - std::string_view
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 245
    functionDepth: 3
    functionLinenumber: 245
    functionLinenumberEnd: 254
    functionName: Botan::pbes2_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp
    functionUses: 0
    functionsReached:
    - std::chrono::milliseconds::count
    - Botan::pbes2_encrypt_shared
    - static_cast<size_t>
    linkageType: ''
    returnType: std::pair<AlgorithmIdentifier, std::vector<uint8_t>>
    signature: "std::pair<AlgorithmIdentifier, std::vector<uint8_t>> pbes2_encrypt(std::span<const
      uint8_t> key_bits,\n                                                                   std::string_view
      passphrase,\n                                                                   std::chrono::milliseconds
      msec,\n                                                                   std::string_view
      cipher,\n                                                                   std::string_view
      digest,\n                                                                   RandomNumberGenerator&
      rng)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:263,1
    - Dst: std::chrono::milliseconds::count
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:263,1
    - Dst: Botan::pbes2_encrypt_shared
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 7
    argNames:
    - key_bits
    - passphrase
    - msec
    - out_iterations_if_nonnull
    - cipher
    - digest
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - std::string_view
    - std::chrono::milliseconds
    - size_t*
    - std::string_view
    - std::string_view
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 256
    functionDepth: 3
    functionLinenumber: 256
    functionLinenumberEnd: 272
    functionName: Botan::pbes2_encrypt_msec
    functionSourceFile: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp
    functionUses: 0
    functionsReached:
    - std::chrono::milliseconds::count
    - Botan::pbes2_encrypt_shared
    - static_cast<size_t>
    linkageType: ''
    returnType: std::pair<AlgorithmIdentifier, std::vector<uint8_t>>
    signature: "std::pair<AlgorithmIdentifier, std::vector<uint8_t>> pbes2_encrypt_msec(std::span<const
      uint8_t> key_bits,\n                                                                        std::string_view
      passphrase,\n                                                                        std::chrono::milliseconds
      msec,\n                                                                        size_t*
      out_iterations_if_nonnull,\n                                                                        std::string_view
      cipher,\n                                                                        std::string_view
      digest,\n                                                                        RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::pbes2_encrypt_shared
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - key_bits
    - passphrase
    - pbkdf_iter
    - cipher
    - digest
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - std::string_view
    - size_t
    - std::string_view
    - std::string_view
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 274
    functionDepth: 3
    functionLinenumber: 274
    functionLinenumberEnd: 281
    functionName: Botan::pbes2_encrypt_iter
    functionSourceFile: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp
    functionUses: 0
    functionsReached:
    - Botan::pbes2_encrypt_shared
    linkageType: ''
    returnType: std::pair<AlgorithmIdentifier, std::vector<uint8_t>>
    signature: "std::pair<AlgorithmIdentifier, std::vector<uint8_t>> pbes2_encrypt_iter(std::span<const
      uint8_t> key_bits,\n                                                                        std::string_view
      passphrase,\n                                                                        size_t
      pbkdf_iter,\n                                                                        std::string_view
      cipher,\n                                                                        std::string_view
      digest,\n                                                                        RandomNumberGenerator&
      rng)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:289,1
    - Dst: AlgorithmIdentifier::oid
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:291,1
    - Dst: Botan::split_on
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:292,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:293,1
    - Dst: Botan::known_pbes_cipher_mode
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:293,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:294,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:294,1
    - Dst: AlgorithmIdentifier::oid
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:294,1
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:298,1
    - Dst: AlgorithmIdentifier::parameters
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:298,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:300,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:302,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:302,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:305,1
    - Dst: Botan::derive_key
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:305,1
    - Dst: auto::key_spec
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:305,1
    - Dst: auto::start
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:307,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:309,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:309,1
    - Dst: auto::finish
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:310,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - key_bits
    - passphrase
    - ' params'
    argTypes:
    - std::span<const uint8_t>
    - std::string_view
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 283
    functionDepth: 2
    functionLinenumber: 283
    functionLinenumberEnd: 313
    functionName: Botan::pbes2_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp
    functionUses: 0
    functionsReached:
    - AlgorithmIdentifier::parameters
    - Botan::fmt
    - auto::set_key
    - Botan::derive_key
    - Botan::split_on
    - auto::key_spec
    - Botan::Decoding_Error
    - auto::start
    - AlgorithmIdentifier::oid
    - Botan::Cipher_Mode::create
    - std::span<const uint8_t>::begin
    - std::span<const uint8_t>::end
    - Botan::BER_Decoder
    - auto::size
    - auto::finish
    - Botan::known_pbes_cipher_mode
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> pbes2_decrypt(std::span<const uint8_t> key_bits,\n
      \                                    std::string_view passphrase,\n                                     const
      std::vector<uint8_t>& params)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: Botan::known_pbes_cipher_mode
    functionSourceFile: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool known_pbes_cipher_mode(std::string_view mode)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:31,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:31,1
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:37,1
    - Dst: Botan::parameters
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:37,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:45,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:48,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:49,1
    - Dst: AlgorithmIdentifier::oid
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:56,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:57,1
    - Dst: std::string::starts_with
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:57,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:58,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:58,1
    - Dst: AlgorithmIdentifier::oid
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:58,1
    - Dst: Botan::PasswordHashFamily::create_or_throw
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:61,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:61,1
    - Dst: auto::from_params
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:62,1
    - Dst: auto::hash
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:65,1
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:67,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:67,1
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:75,1
    - Dst: Botan::parameters
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:75,1
    - Dst: Botan::PasswordHashFamily::create_or_throw
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:90,1
    - Dst: auto::from_params
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:91,1
    - Dst: auto::hash
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:92,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:96,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:96,1
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:96,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 3
    argNames:
    - passphrase
    - ' kdf_algo'
    - default_key_size
    argTypes:
    - std::string_view
    - AlgorithmIdentifier
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 28
    functionDepth: 3
    functionLinenumber: 28
    functionLinenumberEnd: 98
    functionName: Botan::derive_key
    functionSourceFile: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp
    functionUses: 7
    functionsReached:
    - Botan::PasswordHashFamily::create_or_throw
    - auto::from_params
    - Botan::fmt
    - auto::hash
    - secure_vector::size
    - Botan::oid
    - AlgorithmIdentifier
    - std::string::empty
    - std::string::starts_with
    - AlgorithmIdentifier::oid
    - Botan::OID::from_string
    - Botan::BER_Decoder
    - Botan::parameters
    - Botan::Decoding_Error
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> derive_key(std::string_view passphrase,\n                                  const
      AlgorithmIdentifier& kdf_algo,\n                                  size_t default_key_size)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan::random_vec
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:109,1
    - Dst: Botan::PasswordHashFamily::create_or_throw
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:112,1
    - Dst: auto::tune
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:118,1
    - Dst: auto::from_iterations
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:120,1
    - Dst: std::unique_ptr::hash
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:124,1
    - Dst: std::unique_ptr::memory_param
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:126,1
    - Dst: std::unique_ptr::iterations
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:127,1
    - Dst: std::unique_ptr::parallelism
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:128,1
    - Dst: Botan::DER_Encoder
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:135,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:144,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:144,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:147,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:148,1
    - Dst: Botan::PasswordHashFamily::create
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:150,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:152,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:152,1
    - Dst: auto::tune
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:159,1
    - Dst: auto::from_iterations
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:161,1
    - Dst: std::unique_ptr::hash
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:165,1
    - Dst: std::unique_ptr::iterations
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:169,1
    - Dst: Botan::DER_Encoder
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:175,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:180,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:183,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 8
    argNames:
    - passphrase
    - digest
    - ' rng'
    - msec_in_iterations_out
    - iterations_if_msec_null
    - key_length
    - include_key_length_in_struct
    - ' kdf_algo'
    argTypes:
    - std::string_view
    - std::string_view
    - RandomNumberGenerator
    - size_t*
    - size_t
    - size_t
    - bool
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 186
    functionName: Botan::derive_key
    functionSourceFile: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp
    functionUses: 7
    functionsReached:
    - Botan::PasswordHashFamily::create_or_throw
    - auto::from_iterations
    - std::unique_ptr::iterations
    - Botan::DER_Encoder
    - Botan::fmt
    - std::unique_ptr::hash
    - Botan::Invalid_Argument
    - std::unique_ptr::parallelism
    - auto::tune
    - std::unique_ptr::memory_param
    - AlgorithmIdentifier
    - Botan::PasswordHashFamily::create
    - Botan::random_vec
    - Botan::OID::from_string
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> derive_key(std::string_view passphrase,\n                                  std::string_view
      digest,\n                                  RandomNumberGenerator& rng,\n                                  size_t*
      msec_in_iterations_out,\n                                  size_t iterations_if_msec_null,\n
      \                                 size_t key_length,\n                                  bool
      include_key_length_in_struct,\n                                  AlgorithmIdentifier&
      kdf_algo)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:198,1
    - Dst: Botan::split_on
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:200,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:202,1
    - Dst: Botan::known_pbes_cipher_mode
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:202,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:203,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:203,1
    - Dst: auto::key_spec
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:206,1
    - Dst: Botan::random_vec
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:208,1
    - Dst: auto::default_nonce_length
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:208,1
    - Dst: auto::key_spec
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:212,1
    - Dst: auto::key_spec
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:212,1
    - Dst: Botan::derive_key
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:214,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:223,1
    - Dst: auto::start
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:224,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:225,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:225,1
    - Dst: auto::finish
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:226,1
    - Dst: Botan::DER_Encoder
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:229,1
    - Dst: Botan::DER_Encoder
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:232,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:235,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:238,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:240,1
    - Dst: Botan::unlock
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:240,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 7
    argNames:
    - key_bits
    - passphrase
    - msec_in_iterations_out
    - iterations_if_msec_null
    - cipher
    - prf
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - std::string_view
    - size_t*
    - size_t
    - std::string_view
    - std::string_view
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 241
    functionName: Botan::pbes2_encrypt_shared
    functionSourceFile: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp
    functionUses: 3
    functionsReached:
    - Botan::unlock
    - auto::set_key
    - AlgorithmIdentifier
    - auto::default_nonce_length
    - Botan::Cipher_Mode::create
    - std::span<const uint8_t>::end
    - auto::size
    - Botan::OID::from_string
    - Botan::derive_key
    - Botan::DER_Encoder
    - Encoding_Error
    - Botan::split_on
    - std::span<const uint8_t>::begin
    - auto::finish
    - Botan::fmt
    - std::make_pair
    - auto::key_spec
    - auto::start
    - Botan::random_vec
    - Botan::known_pbes_cipher_mode
    linkageType: ''
    returnType: std::pair<AlgorithmIdentifier, std::vector<uint8_t>>
    signature: "std::pair<AlgorithmIdentifier, std::vector<uint8_t>> pbes2_encrypt_shared(std::span<const
      uint8_t> key_bits,\n                                                                          std::string_view
      passphrase,\n                                                                          size_t*
      msec_in_iterations_out,\n                                                                          size_t
      iterations_if_msec_null,\n                                                                          std::string_view
      cipher,\n                                                                          std::string_view
      prf,\n                                                                          RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 26
    functionName: Botan::known_pbes_cipher_mode
    functionSourceFile: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool known_pbes_cipher_mode(std::string_view mode)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:31,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:31,1
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:37,1
    - Dst: Botan::parameters
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:37,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:45,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:48,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:49,1
    - Dst: AlgorithmIdentifier::oid
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:56,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:57,1
    - Dst: std::string::starts_with
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:57,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:58,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:58,1
    - Dst: AlgorithmIdentifier::oid
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:58,1
    - Dst: Botan::PasswordHashFamily::create_or_throw
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:61,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:61,1
    - Dst: auto::from_params
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:62,1
    - Dst: auto::hash
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:65,1
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:67,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:67,1
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:75,1
    - Dst: Botan::parameters
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:75,1
    - Dst: Botan::PasswordHashFamily::create_or_throw
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:90,1
    - Dst: auto::from_params
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:91,1
    - Dst: auto::hash
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:92,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:96,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:96,1
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:96,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 3
    argNames:
    - passphrase
    - ' kdf_algo'
    - default_key_size
    argTypes:
    - std::string_view
    - AlgorithmIdentifier
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 28
    functionDepth: 3
    functionLinenumber: 28
    functionLinenumberEnd: 98
    functionName: Botan::derive_key
    functionSourceFile: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp
    functionUses: 8
    functionsReached:
    - Botan::PasswordHashFamily::create_or_throw
    - auto::from_params
    - Botan::fmt
    - auto::hash
    - secure_vector::size
    - Botan::oid
    - AlgorithmIdentifier
    - std::string::empty
    - std::string::starts_with
    - AlgorithmIdentifier::oid
    - Botan::OID::from_string
    - Botan::BER_Decoder
    - Botan::parameters
    - Botan::Decoding_Error
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> derive_key(std::string_view passphrase,\n                                  const
      AlgorithmIdentifier& kdf_algo,\n                                  size_t default_key_size)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan::random_vec
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:109,1
    - Dst: Botan::PasswordHashFamily::create_or_throw
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:112,1
    - Dst: auto::tune
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:118,1
    - Dst: auto::from_iterations
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:120,1
    - Dst: std::unique_ptr::hash
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:124,1
    - Dst: std::unique_ptr::memory_param
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:126,1
    - Dst: std::unique_ptr::iterations
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:127,1
    - Dst: std::unique_ptr::parallelism
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:128,1
    - Dst: Botan::DER_Encoder
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:135,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:144,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:144,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:147,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:148,1
    - Dst: Botan::PasswordHashFamily::create
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:150,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:152,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:152,1
    - Dst: auto::tune
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:159,1
    - Dst: auto::from_iterations
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:161,1
    - Dst: std::unique_ptr::hash
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:165,1
    - Dst: std::unique_ptr::iterations
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:169,1
    - Dst: Botan::DER_Encoder
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:175,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:180,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:183,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 8
    argNames:
    - passphrase
    - digest
    - ' rng'
    - msec_in_iterations_out
    - iterations_if_msec_null
    - key_length
    - include_key_length_in_struct
    - ' kdf_algo'
    argTypes:
    - std::string_view
    - std::string_view
    - RandomNumberGenerator
    - size_t*
    - size_t
    - size_t
    - bool
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 100
    functionDepth: 3
    functionLinenumber: 100
    functionLinenumberEnd: 186
    functionName: Botan::derive_key
    functionSourceFile: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp
    functionUses: 8
    functionsReached:
    - Botan::PasswordHashFamily::create_or_throw
    - auto::from_iterations
    - std::unique_ptr::iterations
    - Botan::DER_Encoder
    - Botan::fmt
    - std::unique_ptr::hash
    - Botan::Invalid_Argument
    - std::unique_ptr::parallelism
    - auto::tune
    - std::unique_ptr::memory_param
    - AlgorithmIdentifier
    - Botan::PasswordHashFamily::create
    - Botan::random_vec
    - Botan::OID::from_string
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> derive_key(std::string_view passphrase,\n                                  std::string_view
      digest,\n                                  RandomNumberGenerator& rng,\n                                  size_t*
      msec_in_iterations_out,\n                                  size_t iterations_if_msec_null,\n
      \                                 size_t key_length,\n                                  bool
      include_key_length_in_struct,\n                                  AlgorithmIdentifier&
      kdf_algo)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:198,1
    - Dst: Botan::split_on
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:200,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:202,1
    - Dst: Botan::known_pbes_cipher_mode
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:202,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:203,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:203,1
    - Dst: auto::key_spec
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:206,1
    - Dst: Botan::random_vec
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:208,1
    - Dst: auto::default_nonce_length
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:208,1
    - Dst: auto::key_spec
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:212,1
    - Dst: auto::key_spec
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:212,1
    - Dst: Botan::derive_key
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:214,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:223,1
    - Dst: auto::start
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:224,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:225,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:225,1
    - Dst: auto::finish
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:226,1
    - Dst: Botan::DER_Encoder
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:229,1
    - Dst: Botan::DER_Encoder
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:232,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:235,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:238,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:240,1
    - Dst: Botan::unlock
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:240,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 7
    argNames:
    - key_bits
    - passphrase
    - msec_in_iterations_out
    - iterations_if_msec_null
    - cipher
    - prf
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - std::string_view
    - size_t*
    - size_t
    - std::string_view
    - std::string_view
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 191
    functionDepth: 2
    functionLinenumber: 191
    functionLinenumberEnd: 241
    functionName: Botan::pbes2_encrypt_shared
    functionSourceFile: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp
    functionUses: 3
    functionsReached:
    - Botan::unlock
    - auto::set_key
    - AlgorithmIdentifier
    - auto::default_nonce_length
    - Botan::Cipher_Mode::create
    - std::span<const uint8_t>::end
    - auto::size
    - Botan::OID::from_string
    - Botan::derive_key
    - Botan::DER_Encoder
    - Encoding_Error
    - Botan::split_on
    - std::span<const uint8_t>::begin
    - auto::finish
    - Botan::fmt
    - std::make_pair
    - auto::key_spec
    - auto::start
    - Botan::random_vec
    - Botan::known_pbes_cipher_mode
    linkageType: ''
    returnType: std::pair<AlgorithmIdentifier, std::vector<uint8_t>>
    signature: "std::pair<AlgorithmIdentifier, std::vector<uint8_t>> pbes2_encrypt_shared(std::span<const
      uint8_t> key_bits,\n                                                                          std::string_view
      passphrase,\n                                                                          size_t*
      msec_in_iterations_out,\n                                                                          size_t
      iterations_if_msec_null,\n                                                                          std::string_view
      cipher,\n                                                                          std::string_view
      prf,\n                                                                          RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:251,1
    - Dst: std::chrono::milliseconds::count
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:251,1
    - Dst: Botan::pbes2_encrypt_shared
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - key_bits
    - passphrase
    - msec
    - cipher
    - digest
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - std::string_view
    - std::chrono::milliseconds
    - std::string_view
    - std::string_view
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 245
    functionDepth: 3
    functionLinenumber: 245
    functionLinenumberEnd: 254
    functionName: Botan::pbes2_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp
    functionUses: 0
    functionsReached:
    - std::chrono::milliseconds::count
    - Botan::pbes2_encrypt_shared
    - static_cast<size_t>
    linkageType: ''
    returnType: std::pair<AlgorithmIdentifier, std::vector<uint8_t>>
    signature: "std::pair<AlgorithmIdentifier, std::vector<uint8_t>> pbes2_encrypt(std::span<const
      uint8_t> key_bits,\n                                                                   std::string_view
      passphrase,\n                                                                   std::chrono::milliseconds
      msec,\n                                                                   std::string_view
      cipher,\n                                                                   std::string_view
      digest,\n                                                                   RandomNumberGenerator&
      rng)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:263,1
    - Dst: std::chrono::milliseconds::count
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:263,1
    - Dst: Botan::pbes2_encrypt_shared
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 7
    argNames:
    - key_bits
    - passphrase
    - msec
    - out_iterations_if_nonnull
    - cipher
    - digest
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - std::string_view
    - std::chrono::milliseconds
    - size_t*
    - std::string_view
    - std::string_view
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 256
    functionDepth: 3
    functionLinenumber: 256
    functionLinenumberEnd: 272
    functionName: Botan::pbes2_encrypt_msec
    functionSourceFile: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp
    functionUses: 0
    functionsReached:
    - std::chrono::milliseconds::count
    - Botan::pbes2_encrypt_shared
    - static_cast<size_t>
    linkageType: ''
    returnType: std::pair<AlgorithmIdentifier, std::vector<uint8_t>>
    signature: "std::pair<AlgorithmIdentifier, std::vector<uint8_t>> pbes2_encrypt_msec(std::span<const
      uint8_t> key_bits,\n                                                                        std::string_view
      passphrase,\n                                                                        std::chrono::milliseconds
      msec,\n                                                                        size_t*
      out_iterations_if_nonnull,\n                                                                        std::string_view
      cipher,\n                                                                        std::string_view
      digest,\n                                                                        RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::pbes2_encrypt_shared
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - key_bits
    - passphrase
    - pbkdf_iter
    - cipher
    - digest
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - std::string_view
    - size_t
    - std::string_view
    - std::string_view
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 274
    functionDepth: 3
    functionLinenumber: 274
    functionLinenumberEnd: 281
    functionName: Botan::pbes2_encrypt_iter
    functionSourceFile: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp
    functionUses: 0
    functionsReached:
    - Botan::pbes2_encrypt_shared
    linkageType: ''
    returnType: std::pair<AlgorithmIdentifier, std::vector<uint8_t>>
    signature: "std::pair<AlgorithmIdentifier, std::vector<uint8_t>> pbes2_encrypt_iter(std::span<const
      uint8_t> key_bits,\n                                                                        std::string_view
      passphrase,\n                                                                        size_t
      pbkdf_iter,\n                                                                        std::string_view
      cipher,\n                                                                        std::string_view
      digest,\n                                                                        RandomNumberGenerator&
      rng)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:289,1
    - Dst: AlgorithmIdentifier::oid
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:291,1
    - Dst: Botan::split_on
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:292,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:293,1
    - Dst: Botan::known_pbes_cipher_mode
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:293,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:294,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:294,1
    - Dst: AlgorithmIdentifier::oid
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:294,1
    - Dst: Botan::BER_Decoder
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:298,1
    - Dst: AlgorithmIdentifier::parameters
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:298,1
    - Dst: Botan::Cipher_Mode::create
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:300,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:302,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:302,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:305,1
    - Dst: Botan::derive_key
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:305,1
    - Dst: auto::key_spec
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:305,1
    - Dst: auto::start
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:307,1
    - Dst: std::span<const uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:309,1
    - Dst: std::span<const uint8_t>::end
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:309,1
    - Dst: auto::finish
      Src: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp:310,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - key_bits
    - passphrase
    - ' params'
    argTypes:
    - std::span<const uint8_t>
    - std::string_view
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 283
    functionDepth: 2
    functionLinenumber: 283
    functionLinenumberEnd: 313
    functionName: Botan::pbes2_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/pbes2/pbes2.cpp
    functionUses: 0
    functionsReached:
    - AlgorithmIdentifier::parameters
    - Botan::fmt
    - auto::set_key
    - Botan::derive_key
    - Botan::split_on
    - auto::key_spec
    - Botan::Decoding_Error
    - auto::start
    - AlgorithmIdentifier::oid
    - Botan::Cipher_Mode::create
    - std::span<const uint8_t>::begin
    - std::span<const uint8_t>::end
    - Botan::BER_Decoder
    - auto::size
    - auto::finish
    - Botan::known_pbes_cipher_mode
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: "secure_vector<uint8_t> pbes2_decrypt(std::span<const uint8_t> key_bits,\n
      \                                    std::string_view passphrase,\n                                     const
      std::vector<uint8_t>& params)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DLIES_Encryptor
      Src: /src/botan/src/lib/pubkey/dlies/dlies.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 87
    functionName: Botan::PK_Encryptor
    functionSourceFile: /src/botan/src/lib/pubkey/dlies/dlies.h
    functionUses: 0
    functionsReached:
    - DLIES_Encryptor
    linkageType: ''
    returnType: DLIES_Encryptor
    signature: DLIES_Encryptor PK_Encryptor
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other_pub_key'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: Botan::set_other_key
    functionSourceFile: /src/botan/src/lib/pubkey/dlies/dlies.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_other_key(const std::vector<uint8_t>& other_pub_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' iv'
    argTypes:
    - InitializationVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: Botan::set_initialization_vector
    functionSourceFile: /src/botan/src/lib/pubkey/dlies/dlies.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_initialization_vector(const InitializationVector& iv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DLIES_Decryptor
      Src: /src/botan/src/lib/pubkey/dlies/dlies.h:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 148
    functionName: Botan::PK_Decryptor
    functionSourceFile: /src/botan/src/lib/pubkey/dlies/dlies.h
    functionUses: 0
    functionsReached:
    - DLIES_Decryptor
    linkageType: ''
    returnType: DLIES_Decryptor
    signature: DLIES_Decryptor PK_Decryptor
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' iv'
    argTypes:
    - InitializationVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: Botan::set_initialization_vector
    functionSourceFile: /src/botan/src/lib/pubkey/dlies/dlies.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_initialization_vector(const InitializationVector& iv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DLIES_Encryptor
      Src: /src/botan/src/lib/pubkey/dlies/dlies.h:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 87
    functionName: Botan::PK_Encryptor
    functionSourceFile: /src/botan/src/lib/pubkey/dlies/dlies.h
    functionUses: 0
    functionsReached:
    - DLIES_Encryptor
    linkageType: ''
    returnType: DLIES_Encryptor
    signature: DLIES_Encryptor PK_Encryptor
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other_pub_key'
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: Botan::set_other_key
    functionSourceFile: /src/botan/src/lib/pubkey/dlies/dlies.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_other_key(const std::vector<uint8_t>& other_pub_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' iv'
    argTypes:
    - InitializationVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: Botan::set_initialization_vector
    functionSourceFile: /src/botan/src/lib/pubkey/dlies/dlies.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_initialization_vector(const InitializationVector& iv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DLIES_Decryptor
      Src: /src/botan/src/lib/pubkey/dlies/dlies.h:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 148
    functionName: Botan::PK_Decryptor
    functionSourceFile: /src/botan/src/lib/pubkey/dlies/dlies.h
    functionUses: 0
    functionsReached:
    - DLIES_Decryptor
    linkageType: ''
    returnType: DLIES_Decryptor
    signature: DLIES_Decryptor PK_Decryptor
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' iv'
    argTypes:
    - InitializationVector
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: Botan::set_initialization_vector
    functionSourceFile: /src/botan/src/lib/pubkey/dlies/dlies.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_initialization_vector(const InitializationVector& iv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:22,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' own_priv_key'
    - ' rng'
    - kdf
    - mac
    - mac_key_length
    argTypes:
    - DH_PrivateKey
    - RandomNumberGenerator
    - std::unique_ptr<KDF>
    - std::unique_ptr<MessageAuthenticationCode>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 22
    functionName: Botan::DLIES_Encryptor::DLIES_Encryptor
    functionSourceFile: /src/botan/src/lib/pubkey/dlies/dlies.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void DLIES_Encryptor::DLIES_Encryptor(const DH_PrivateKey& own_priv_key,\n
      \                                RandomNumberGenerator& rng,\n                                 std::unique_ptr<KDF>
      kdf,\n                                 std::unique_ptr<MessageAuthenticationCode>
      mac,\n                                 size_t mac_key_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_value
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:32,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:34,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:35,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:37,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:39,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - ' own_priv_key'
    - ' rng'
    - kdf
    - cipher
    - cipher_key_len
    - mac
    - mac_key_length
    argTypes:
    - DH_PrivateKey
    - RandomNumberGenerator
    - std::unique_ptr<KDF>
    - std::unique_ptr<Cipher_Mode>
    - size_t
    - std::unique_ptr<MessageAuthenticationCode>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 41
    functionName: Botan::DLIES_Encryptor::DLIES_Encryptor
    functionSourceFile: /src/botan/src/lib/pubkey/dlies/dlies.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - public_value
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: void
    signature: "void DLIES_Encryptor::DLIES_Encryptor(const DH_PrivateKey& own_priv_key,\n
      \                                RandomNumberGenerator& rng,\n                                 std::unique_ptr<KDF>
      kdf,\n                                 std::unique_ptr<Cipher_Mode> cipher,\n
      \                                size_t cipher_key_len,\n                                 std::unique_ptr<MessageAuthenticationCode>
      mac,\n                                 size_t mac_key_length)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:44,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:45,1
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:49,1
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:53,1
    - Dst: SymmetricKey::bits_of
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:53,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:55,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:56,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:63,1
    - Dst: set_key
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:64,1
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:66,1
    - Dst: valid_nonce_length
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:66,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:66,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:67,1
    - Dst: name
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:67,1
    - Dst: start
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:69,1
    - Dst: bits_of
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:69,1
    - Dst: finish
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:70,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:72,1
    - Dst: set_key
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:76,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:76,1
    - Dst: process
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:77,1
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:80,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - in
    - length
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 81
    functionName: Botan::DLIES_Encryptor::enc
    functionSourceFile: /src/botan/src/lib/pubkey/dlies/dlies.cpp
    functionUses: 0
    functionsReached:
    - start
    - concat
    - valid_nonce_length
    - SymmetricKey::bits_of
    - finish
    - process
    - Encoding_Error
    - Invalid_State
    - derive_key
    - size
    - secure_vector::size
    - name
    - set_key
    - bits_of
    - empty
    - Invalid_Argument
    - xor_buf
    - secure_vector::data
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> DLIES_Encryptor::enc(const uint8_t in[], size_t
      length, RandomNumberGenerator& /*unused*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: Botan::DLIES_Encryptor::maximum_input_size
    functionSourceFile: /src/botan/src/lib/pubkey/dlies/dlies.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t DLIES_Encryptor::maximum_input_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:93,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:93,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptext_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: Botan::DLIES_Encryptor::ciphertext_length
    functionSourceFile: /src/botan/src/lib/pubkey/dlies/dlies.cpp
    functionUses: 0
    functionsReached:
    - size
    - output_length
    linkageType: ''
    returnType: size_t
    signature: size_t DLIES_Encryptor::ciphertext_length(size_t ptext_len) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_value
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:103,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:105,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:106,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:108,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:110,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - ' own_priv_key'
    - ' rng'
    - kdf
    - cipher
    - cipher_key_len
    - mac
    - mac_key_length
    argTypes:
    - DH_PrivateKey
    - RandomNumberGenerator
    - std::unique_ptr<KDF>
    - std::unique_ptr<Cipher_Mode>
    - size_t
    - std::unique_ptr<MessageAuthenticationCode>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 112
    functionName: Botan::DLIES_Decryptor::DLIES_Decryptor
    functionSourceFile: /src/botan/src/lib/pubkey/dlies/dlies.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - public_value
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: void
    signature: "void DLIES_Decryptor::DLIES_Decryptor(const DH_PrivateKey& own_priv_key,\n
      \                                RandomNumberGenerator& rng,\n                                 std::unique_ptr<KDF>
      kdf,\n                                 std::unique_ptr<Cipher_Mode> cipher,\n
      \                                size_t cipher_key_len,\n                                 std::unique_ptr<MessageAuthenticationCode>
      mac,\n                                 size_t mac_key_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:119,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' own_priv_key'
    - ' rng'
    - kdf
    - mac
    - mac_key_length
    argTypes:
    - DH_PrivateKey
    - RandomNumberGenerator
    - std::unique_ptr<KDF>
    - std::unique_ptr<MessageAuthenticationCode>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 119
    functionName: Botan::DLIES_Decryptor::DLIES_Decryptor
    functionSourceFile: /src/botan/src/lib/pubkey/dlies/dlies.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void DLIES_Decryptor::DLIES_Decryptor(const DH_PrivateKey& own_priv_key,\n
      \                                RandomNumberGenerator& rng,\n                                 std::unique_ptr<KDF>
      kdf,\n                                 std::unique_ptr<MessageAuthenticationCode>
      mac,\n                                 size_t mac_key_length)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:122,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctext_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 127
    functionName: Botan::DLIES_Decryptor::plaintext_length
    functionSourceFile: /src/botan/src/lib/pubkey/dlies/dlies.cpp
    functionUses: 0
    functionsReached:
    - output_length
    linkageType: ''
    returnType: size_t
    signature: size_t DLIES_Decryptor::plaintext_length(size_t ctext_len) const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:130,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:131,1
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:136,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:138,1
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:143,1
    - Dst: SymmetricKey::bits_of
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:143,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:145,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:146,1
    - Dst: set_key
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:152,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:152,1
    - Dst: process
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:153,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:157,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:159,1
    - Dst: std::span::data
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:159,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:159,1
    - Dst: std::span::size
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:159,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:164,1
    - Dst: set_key
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:165,1
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:171,1
    - Dst: valid_nonce_length
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:171,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:171,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:172,1
    - Dst: name
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:172,1
    - Dst: start
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:174,1
    - Dst: bits_of
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:174,1
    - Dst: finish
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:175,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:181,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:184,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:184,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - ' valid_mask'
    - msg
    - length
    argTypes:
    - uint8_t
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 188
    functionName: Botan::DLIES_Decryptor::do_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/dlies/dlies.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::is_equal
    - std::span::size
    - process
    - set_key
    - output_length
    - name
    - secure_vector<uint8_t>
    - bits_of
    - Decoding_Error
    - SymmetricKey::bits_of
    - finish
    - Encoding_Error
    - derive_key
    - std::span::data
    - Invalid_Argument
    - xor_buf
    - start
    - valid_nonce_length
    - size
    - secure_vector::size
    - empty
    - secure_vector::data
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> DLIES_Decryptor::do_decrypt(uint8_t& valid_mask,
      const uint8_t msg[], size_t length) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:22,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' own_priv_key'
    - ' rng'
    - kdf
    - mac
    - mac_key_length
    argTypes:
    - DH_PrivateKey
    - RandomNumberGenerator
    - std::unique_ptr<KDF>
    - std::unique_ptr<MessageAuthenticationCode>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 22
    functionName: Botan::DLIES_Encryptor::DLIES_Encryptor
    functionSourceFile: /src/botan/src/lib/pubkey/dlies/dlies.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void DLIES_Encryptor::DLIES_Encryptor(const DH_PrivateKey& own_priv_key,\n
      \                                RandomNumberGenerator& rng,\n                                 std::unique_ptr<KDF>
      kdf,\n                                 std::unique_ptr<MessageAuthenticationCode>
      mac,\n                                 size_t mac_key_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_value
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:32,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:34,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:35,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:37,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:39,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - ' own_priv_key'
    - ' rng'
    - kdf
    - cipher
    - cipher_key_len
    - mac
    - mac_key_length
    argTypes:
    - DH_PrivateKey
    - RandomNumberGenerator
    - std::unique_ptr<KDF>
    - std::unique_ptr<Cipher_Mode>
    - size_t
    - std::unique_ptr<MessageAuthenticationCode>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 24
    functionDepth: 1
    functionLinenumber: 24
    functionLinenumberEnd: 41
    functionName: Botan::DLIES_Encryptor::DLIES_Encryptor
    functionSourceFile: /src/botan/src/lib/pubkey/dlies/dlies.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - public_value
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: void
    signature: "void DLIES_Encryptor::DLIES_Encryptor(const DH_PrivateKey& own_priv_key,\n
      \                                RandomNumberGenerator& rng,\n                                 std::unique_ptr<KDF>
      kdf,\n                                 std::unique_ptr<Cipher_Mode> cipher,\n
      \                                size_t cipher_key_len,\n                                 std::unique_ptr<MessageAuthenticationCode>
      mac,\n                                 size_t mac_key_length)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:44,1
    - Dst: Invalid_State
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:45,1
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:49,1
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:53,1
    - Dst: SymmetricKey::bits_of
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:53,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:55,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:56,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:63,1
    - Dst: set_key
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:64,1
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:66,1
    - Dst: valid_nonce_length
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:66,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:66,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:67,1
    - Dst: name
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:67,1
    - Dst: start
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:69,1
    - Dst: bits_of
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:69,1
    - Dst: finish
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:70,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:72,1
    - Dst: set_key
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:76,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:76,1
    - Dst: process
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:77,1
    - Dst: concat
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:80,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 2
    argNames:
    - in
    - length
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 81
    functionName: Botan::DLIES_Encryptor::enc
    functionSourceFile: /src/botan/src/lib/pubkey/dlies/dlies.cpp
    functionUses: 0
    functionsReached:
    - start
    - concat
    - valid_nonce_length
    - SymmetricKey::bits_of
    - finish
    - process
    - Encoding_Error
    - Invalid_State
    - derive_key
    - size
    - secure_vector::size
    - name
    - set_key
    - bits_of
    - empty
    - Invalid_Argument
    - xor_buf
    - secure_vector::data
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> DLIES_Encryptor::enc(const uint8_t in[], size_t
      length, RandomNumberGenerator& /*unused*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 90
    functionName: Botan::DLIES_Encryptor::maximum_input_size
    functionSourceFile: /src/botan/src/lib/pubkey/dlies/dlies.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t DLIES_Encryptor::maximum_input_size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:93,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:93,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptext_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: Botan::DLIES_Encryptor::ciphertext_length
    functionSourceFile: /src/botan/src/lib/pubkey/dlies/dlies.cpp
    functionUses: 0
    functionsReached:
    - size
    - output_length
    linkageType: ''
    returnType: size_t
    signature: size_t DLIES_Encryptor::ciphertext_length(size_t ptext_len) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_value
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:103,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:105,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:106,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:108,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:110,1
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - ' own_priv_key'
    - ' rng'
    - kdf
    - cipher
    - cipher_key_len
    - mac
    - mac_key_length
    argTypes:
    - DH_PrivateKey
    - RandomNumberGenerator
    - std::unique_ptr<KDF>
    - std::unique_ptr<Cipher_Mode>
    - size_t
    - std::unique_ptr<MessageAuthenticationCode>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 112
    functionName: Botan::DLIES_Decryptor::DLIES_Decryptor
    functionSourceFile: /src/botan/src/lib/pubkey/dlies/dlies.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - public_value
    - BOTAN_ASSERT_NONNULL
    linkageType: ''
    returnType: void
    signature: "void DLIES_Decryptor::DLIES_Decryptor(const DH_PrivateKey& own_priv_key,\n
      \                                RandomNumberGenerator& rng,\n                                 std::unique_ptr<KDF>
      kdf,\n                                 std::unique_ptr<Cipher_Mode> cipher,\n
      \                                size_t cipher_key_len,\n                                 std::unique_ptr<MessageAuthenticationCode>
      mac,\n                                 size_t mac_key_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:119,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - ' own_priv_key'
    - ' rng'
    - kdf
    - mac
    - mac_key_length
    argTypes:
    - DH_PrivateKey
    - RandomNumberGenerator
    - std::unique_ptr<KDF>
    - std::unique_ptr<MessageAuthenticationCode>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 119
    functionName: Botan::DLIES_Decryptor::DLIES_Decryptor
    functionSourceFile: /src/botan/src/lib/pubkey/dlies/dlies.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void DLIES_Decryptor::DLIES_Decryptor(const DH_PrivateKey& own_priv_key,\n
      \                                RandomNumberGenerator& rng,\n                                 std::unique_ptr<KDF>
      kdf,\n                                 std::unique_ptr<MessageAuthenticationCode>
      mac,\n                                 size_t mac_key_length)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:122,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ctext_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 127
    functionName: Botan::DLIES_Decryptor::plaintext_length
    functionSourceFile: /src/botan/src/lib/pubkey/dlies/dlies.cpp
    functionUses: 0
    functionsReached:
    - output_length
    linkageType: ''
    returnType: size_t
    signature: size_t DLIES_Decryptor::plaintext_length(size_t ctext_len) const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:130,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:131,1
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:136,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:138,1
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:143,1
    - Dst: SymmetricKey::bits_of
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:143,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:145,1
    - Dst: Encoding_Error
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:146,1
    - Dst: set_key
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:152,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:152,1
    - Dst: process
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:153,1
    - Dst: output_length
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:157,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:159,1
    - Dst: std::span::data
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:159,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:159,1
    - Dst: std::span::size
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:159,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:164,1
    - Dst: set_key
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:165,1
    - Dst: empty
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:171,1
    - Dst: valid_nonce_length
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:171,1
    - Dst: size
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:171,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:172,1
    - Dst: name
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:172,1
    - Dst: start
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:174,1
    - Dst: bits_of
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:174,1
    - Dst: finish
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:175,1
    - Dst: secure_vector<uint8_t>
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:181,1
    - Dst: xor_buf
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:184,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/dlies/dlies.cpp:184,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - ' valid_mask'
    - msg
    - length
    argTypes:
    - uint8_t
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 188
    functionName: Botan::DLIES_Decryptor::do_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/dlies/dlies.cpp
    functionUses: 0
    functionsReached:
    - Botan::CT::is_equal
    - std::span::size
    - process
    - set_key
    - output_length
    - name
    - secure_vector<uint8_t>
    - bits_of
    - Decoding_Error
    - SymmetricKey::bits_of
    - finish
    - Encoding_Error
    - derive_key
    - std::span::data
    - Invalid_Argument
    - xor_buf
    - start
    - valid_nonce_length
    - size
    - secure_vector::size
    - empty
    - secure_vector::data
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> DLIES_Decryptor::do_decrypt(uint8_t& valid_mask,
      const uint8_t msg[], size_t length) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ECGDSA_PublicKey>
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:17,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:17,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 18
    functionName: Botan::ECGDSA_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _public_ec_point
    - std::make_unique<ECGDSA_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> ECGDSA_PrivateKey::public_key() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_PrivateKey::check_key
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:21,1
    - Dst: Botan::KeyPair::signature_consistency_check
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 20
    functionDepth: 3
    functionLinenumber: 20
    functionLinenumberEnd: 30
    functionName: Botan::ECGDSA_PrivateKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_PrivateKey::check_key
    - Botan::KeyPair::signature_consistency_check
    linkageType: ''
    returnType: bool
    signature: bool ECGDSA_PrivateKey::check_key(RandomNumberGenerator& rng, bool
      strong) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:40,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ecgdsa'
    - hash_fn
    argTypes:
    - ECGDSA_PrivateKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: Botan::ECGDSA_Signature_Operation::ECGDSA_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _private_key
    linkageType: ''
    returnType: void
    signature: void ECGDSA_Signature_Operation(const ECGDSA_PrivateKey& ecgdsa, std::string_view
      hash_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp: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::ECGDSA_Signature_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - get_order_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash_function
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:54,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:55,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: Botan::ECGDSA_Signature_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_string
    - AlgorithmIdentifier
    - hash_function
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier ECGDSA_Signature_Operation::algorithm_identifier()
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::from_bytes_with_trunc
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:60,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:62,1
    - Dst: Botan::EC_Scalar::gk_x_mod_order
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:64,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:69,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:69,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:70,1
    - Dst: Botan::EC_Scalar::deserialize_pair
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - msg
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 59
    functionDepth: 4
    functionLinenumber: 59
    functionLinenumberEnd: 74
    functionName: Botan::ECGDSA_Signature_Operation::raw_sign
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - auto::is_zero
    - Botan::EC_Scalar::random
    - Internal_Error
    - Botan::EC_Scalar::deserialize_pair
    - Botan::EC_Scalar::from_bytes_with_trunc
    - Botan::EC_Scalar::gk_x_mod_order
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> ECGDSA_Signature_Operation::raw_sign(std::span<const
      uint8_t> msg, RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:82,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ecgdsa'
    - padding
    argTypes:
    - ECGDSA_PublicKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: Botan::ECGDSA_Verification_Operation::ECGDSA_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _public_ec_point
    linkageType: ''
    returnType: void
    signature: void ECGDSA_Verification_Operation(const ECGDSA_PublicKey& ecgdsa,
      std::string_view padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:86,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ecgdsa'
    - ' alg_id'
    argTypes:
    - ECGDSA_PublicKey
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: Botan::ECGDSA_Verification_Operation::ECGDSA_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _public_ec_point
    linkageType: ''
    returnType: void
    signature: void ECGDSA_Verification_Operation(const ECGDSA_PublicKey& ecgdsa,
      const AlgorithmIdentifier& alg_id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::deserialize_pair
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:97,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:98,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:100,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:100,1
    - Dst: Botan::EC_Scalar::from_bytes_with_trunc
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:101,1
    - Dst: invert_vartime
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:103,1
    - Dst: mul2_vartime_x_mod_order_eq
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:106,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: 111
      start: 96
    functionDepth: 3
    functionLinenumber: 96
    functionLinenumberEnd: 111
    functionName: Botan::ECGDSA_Verification_Operation::verify
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - mul2_vartime_x_mod_order_eq
    - invert_vartime
    - auto::value
    - Botan::EC_Scalar::deserialize_pair
    - Botan::EC_Scalar::from_bytes_with_trunc
    - is_nonzero
    linkageType: ''
    returnType: bool
    signature: bool ECGDSA_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/ecgdsa/ecgdsa.cpp:40,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ecgdsa'
    - hash_fn
    argTypes:
    - ECGDSA_PrivateKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: Botan::ECGDSA_Signature_Operation::ECGDSA_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _private_key
    linkageType: ''
    returnType: void
    signature: void ECGDSA_Signature_Operation(const ECGDSA_PrivateKey& ecgdsa, std::string_view
      hash_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp: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::ECGDSA_Signature_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - get_order_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash_function
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:54,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:55,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: Botan::ECGDSA_Signature_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_string
    - AlgorithmIdentifier
    - hash_function
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier ECGDSA_Signature_Operation::algorithm_identifier()
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::from_bytes_with_trunc
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:60,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:62,1
    - Dst: Botan::EC_Scalar::gk_x_mod_order
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:64,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:69,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:69,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:70,1
    - Dst: Botan::EC_Scalar::deserialize_pair
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - msg
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 59
    functionDepth: 4
    functionLinenumber: 59
    functionLinenumberEnd: 74
    functionName: Botan::ECGDSA_Signature_Operation::raw_sign
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - auto::is_zero
    - Botan::EC_Scalar::random
    - Internal_Error
    - Botan::EC_Scalar::deserialize_pair
    - Botan::EC_Scalar::from_bytes_with_trunc
    - Botan::EC_Scalar::gk_x_mod_order
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> ECGDSA_Signature_Operation::raw_sign(std::span<const
      uint8_t> msg, RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:82,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ecgdsa'
    - padding
    argTypes:
    - ECGDSA_PublicKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: Botan::ECGDSA_Verification_Operation::ECGDSA_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _public_ec_point
    linkageType: ''
    returnType: void
    signature: void ECGDSA_Verification_Operation(const ECGDSA_PublicKey& ecgdsa,
      std::string_view padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:86,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ecgdsa'
    - ' alg_id'
    argTypes:
    - ECGDSA_PublicKey
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: Botan::ECGDSA_Verification_Operation::ECGDSA_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _public_ec_point
    linkageType: ''
    returnType: void
    signature: void ECGDSA_Verification_Operation(const ECGDSA_PublicKey& ecgdsa,
      const AlgorithmIdentifier& alg_id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::deserialize_pair
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:97,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:98,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:100,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:100,1
    - Dst: Botan::EC_Scalar::from_bytes_with_trunc
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:101,1
    - Dst: invert_vartime
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:103,1
    - Dst: mul2_vartime_x_mod_order_eq
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:106,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: 111
      start: 96
    functionDepth: 3
    functionLinenumber: 96
    functionLinenumberEnd: 111
    functionName: Botan::ECGDSA_Verification_Operation::verify
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - mul2_vartime_x_mod_order_eq
    - invert_vartime
    - auto::value
    - Botan::EC_Scalar::deserialize_pair
    - Botan::EC_Scalar::from_bytes_with_trunc
    - is_nonzero
    linkageType: ''
    returnType: bool
    signature: bool ECGDSA_Verification_Operation::verify(std::span<const uint8_t>
      msg, std::span<const uint8_t> sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ECGDSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:116,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 117
    functionName: Botan::ECGDSA_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    - std::make_unique<ECGDSA_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> ECGDSA_PublicKey::generate_another(RandomNumberGenerator&
      rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:121,1
    - Dst: std::make_unique<ECGDSA_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:122,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:124,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 125
    functionName: Botan::ECGDSA_PublicKey::create_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - std::make_unique<ECGDSA_Verification_Operation>
    - algo_name
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> ECGDSA_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/ecgdsa/ecgdsa.cpp:129,1
    - Dst: std::make_unique<ECGDSA_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:130,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:133,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:133,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - ' signature_algorithm'
    - provider
    argTypes:
    - AlgorithmIdentifier
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 134
    functionName: Botan::ECGDSA_PublicKey::create_x509_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - std::make_unique<ECGDSA_Verification_Operation>
    - algo_name
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> ECGDSA_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/ecgdsa/ecgdsa.cpp:139,1
    - Dst: std::make_unique<ECGDSA_Signature_Operation>
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:140,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:142,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:142,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 143
    functionName: Botan::ECGDSA_PrivateKey::create_signature_op
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - std::make_unique<ECGDSA_Signature_Operation>
    - algo_name
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Signature>
    signature: "std::unique_ptr<PK_Ops::Signature> ECGDSA_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<ECGDSA_PublicKey>
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:17,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:17,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 18
    functionName: Botan::ECGDSA_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _public_ec_point
    - std::make_unique<ECGDSA_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> ECGDSA_PrivateKey::public_key() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_PrivateKey::check_key
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:21,1
    - Dst: Botan::KeyPair::signature_consistency_check
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:29,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 20
    functionDepth: 3
    functionLinenumber: 20
    functionLinenumberEnd: 30
    functionName: Botan::ECGDSA_PrivateKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_PrivateKey::check_key
    - Botan::KeyPair::signature_consistency_check
    linkageType: ''
    returnType: bool
    signature: bool ECGDSA_PrivateKey::check_key(RandomNumberGenerator& rng, bool
      strong) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:40,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ecgdsa'
    - hash_fn
    argTypes:
    - ECGDSA_PrivateKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: Botan::ECGDSA_Signature_Operation::ECGDSA_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _private_key
    linkageType: ''
    returnType: void
    signature: void ECGDSA_Signature_Operation(const ECGDSA_PrivateKey& ecgdsa, std::string_view
      hash_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp: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::ECGDSA_Signature_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - get_order_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash_function
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:54,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:55,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: Botan::ECGDSA_Signature_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_string
    - AlgorithmIdentifier
    - hash_function
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier ECGDSA_Signature_Operation::algorithm_identifier()
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::from_bytes_with_trunc
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:60,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:62,1
    - Dst: Botan::EC_Scalar::gk_x_mod_order
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:64,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:69,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:69,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:70,1
    - Dst: Botan::EC_Scalar::deserialize_pair
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - msg
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 59
    functionDepth: 4
    functionLinenumber: 59
    functionLinenumberEnd: 74
    functionName: Botan::ECGDSA_Signature_Operation::raw_sign
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - auto::is_zero
    - Botan::EC_Scalar::random
    - Internal_Error
    - Botan::EC_Scalar::deserialize_pair
    - Botan::EC_Scalar::from_bytes_with_trunc
    - Botan::EC_Scalar::gk_x_mod_order
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> ECGDSA_Signature_Operation::raw_sign(std::span<const
      uint8_t> msg, RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:82,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ecgdsa'
    - padding
    argTypes:
    - ECGDSA_PublicKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: Botan::ECGDSA_Verification_Operation::ECGDSA_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _public_ec_point
    linkageType: ''
    returnType: void
    signature: void ECGDSA_Verification_Operation(const ECGDSA_PublicKey& ecgdsa,
      std::string_view padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:86,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ecgdsa'
    - ' alg_id'
    argTypes:
    - ECGDSA_PublicKey
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: Botan::ECGDSA_Verification_Operation::ECGDSA_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _public_ec_point
    linkageType: ''
    returnType: void
    signature: void ECGDSA_Verification_Operation(const ECGDSA_PublicKey& ecgdsa,
      const AlgorithmIdentifier& alg_id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::deserialize_pair
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:97,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:98,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:100,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:100,1
    - Dst: Botan::EC_Scalar::from_bytes_with_trunc
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:101,1
    - Dst: invert_vartime
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:103,1
    - Dst: mul2_vartime_x_mod_order_eq
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:106,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: 111
      start: 96
    functionDepth: 3
    functionLinenumber: 96
    functionLinenumberEnd: 111
    functionName: Botan::ECGDSA_Verification_Operation::verify
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - mul2_vartime_x_mod_order_eq
    - invert_vartime
    - auto::value
    - Botan::EC_Scalar::deserialize_pair
    - Botan::EC_Scalar::from_bytes_with_trunc
    - is_nonzero
    linkageType: ''
    returnType: bool
    signature: bool ECGDSA_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/ecgdsa/ecgdsa.cpp:40,1
    - Dst: _private_key
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ecgdsa'
    - hash_fn
    argTypes:
    - ECGDSA_PrivateKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: Botan::ECGDSA_Signature_Operation::ECGDSA_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _private_key
    linkageType: ''
    returnType: void
    signature: void ECGDSA_Signature_Operation(const ECGDSA_PrivateKey& ecgdsa, std::string_view
      hash_fn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_order_bytes
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp: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::ECGDSA_Signature_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - get_order_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hash_function
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:54,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:55,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: Botan::ECGDSA_Signature_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::OID::from_string
    - AlgorithmIdentifier
    - hash_function
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier ECGDSA_Signature_Operation::algorithm_identifier()
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::from_bytes_with_trunc
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:60,1
    - Dst: Botan::EC_Scalar::random
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:62,1
    - Dst: Botan::EC_Scalar::gk_x_mod_order
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:64,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:69,1
    - Dst: auto::is_zero
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:69,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:70,1
    - Dst: Botan::EC_Scalar::deserialize_pair
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:73,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - msg
    - ' rng'
    argTypes:
    - std::span<const uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 59
    functionDepth: 4
    functionLinenumber: 59
    functionLinenumberEnd: 74
    functionName: Botan::ECGDSA_Signature_Operation::raw_sign
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - auto::is_zero
    - Botan::EC_Scalar::random
    - Internal_Error
    - Botan::EC_Scalar::deserialize_pair
    - Botan::EC_Scalar::from_bytes_with_trunc
    - Botan::EC_Scalar::gk_x_mod_order
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> ECGDSA_Signature_Operation::raw_sign(std::span<const
      uint8_t> msg, RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:82,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ecgdsa'
    - padding
    argTypes:
    - ECGDSA_PublicKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: Botan::ECGDSA_Verification_Operation::ECGDSA_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _public_ec_point
    linkageType: ''
    returnType: void
    signature: void ECGDSA_Verification_Operation(const ECGDSA_PublicKey& ecgdsa,
      std::string_view padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:86,1
    - Dst: _public_ec_point
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' ecgdsa'
    - ' alg_id'
    argTypes:
    - ECGDSA_PublicKey
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: Botan::ECGDSA_Verification_Operation::ECGDSA_Verification_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    - _public_ec_point
    linkageType: ''
    returnType: void
    signature: void ECGDSA_Verification_Operation(const ECGDSA_PublicKey& ecgdsa,
      const AlgorithmIdentifier& alg_id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::EC_Scalar::deserialize_pair
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:97,1
    - Dst: auto::value
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:98,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:100,1
    - Dst: is_nonzero
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:100,1
    - Dst: Botan::EC_Scalar::from_bytes_with_trunc
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:101,1
    - Dst: invert_vartime
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:103,1
    - Dst: mul2_vartime_x_mod_order_eq
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:106,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: 111
      start: 96
    functionDepth: 3
    functionLinenumber: 96
    functionLinenumberEnd: 111
    functionName: Botan::ECGDSA_Verification_Operation::verify
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - mul2_vartime_x_mod_order_eq
    - invert_vartime
    - auto::value
    - Botan::EC_Scalar::deserialize_pair
    - Botan::EC_Scalar::from_bytes_with_trunc
    - is_nonzero
    linkageType: ''
    returnType: bool
    signature: bool ECGDSA_Verification_Operation::verify(std::span<const uint8_t>
      msg, std::span<const uint8_t> sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<ECGDSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:116,1
    - Dst: domain
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 117
    functionName: Botan::ECGDSA_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - domain
    - std::make_unique<ECGDSA_PrivateKey>
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> ECGDSA_PublicKey::generate_another(RandomNumberGenerator&
      rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:121,1
    - Dst: std::make_unique<ECGDSA_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:122,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:124,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 125
    functionName: Botan::ECGDSA_PublicKey::create_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - std::make_unique<ECGDSA_Verification_Operation>
    - algo_name
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> ECGDSA_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/ecgdsa/ecgdsa.cpp:129,1
    - Dst: std::make_unique<ECGDSA_Verification_Operation>
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:130,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:133,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:133,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - ' signature_algorithm'
    - provider
    argTypes:
    - AlgorithmIdentifier
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 134
    functionName: Botan::ECGDSA_PublicKey::create_x509_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - std::make_unique<ECGDSA_Verification_Operation>
    - algo_name
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> ECGDSA_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/ecgdsa/ecgdsa.cpp:139,1
    - Dst: std::make_unique<ECGDSA_Signature_Operation>
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:140,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:142,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp:142,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 143
    functionName: Botan::ECGDSA_PrivateKey::create_signature_op
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - std::make_unique<ECGDSA_Signature_Operation>
    - algo_name
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Signature>
    signature: "std::unique_ptr<PK_Ops::Signature> ECGDSA_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: 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::ECGDSA_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECGDSA_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::ECGDSA_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECGDSA_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: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: Botan::algo_name
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::domain
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.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: Botan::_signature_element_size_for_DER_encoding
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.h
    functionUses: 0
    functionsReached:
    - Botan::domain
    linkageType: ''
    returnType: std::optional<size_t>
    signature: std::optional<size_t> _signature_element_size_for_DER_encoding() const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PublicKeyOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: Botan::supports_operation
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.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::ECGDSA_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECGDSA_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::ECGDSA_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECGDSA_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: 48
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: Botan::algo_name
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::domain
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.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: Botan::_signature_element_size_for_DER_encoding
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.h
    functionUses: 0
    functionsReached:
    - Botan::domain
    linkageType: ''
    returnType: std::optional<size_t>
    signature: std::optional<size_t> _signature_element_size_for_DER_encoding() const
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PublicKeyOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: Botan::supports_operation
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool supports_operation(PublicKeyOperation op) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.h:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' rng'
    - group
    argTypes:
    - RandomNumberGenerator
    - EC_Group
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: ECGDSA_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void ECGDSA_PrivateKey(RandomNumberGenerator& rng, EC_Group group)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' rng'
    - ' group'
    - ' x'
    argTypes:
    - RandomNumberGenerator
    - EC_Group
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 108
    functionName: ECGDSA_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/ecgdsa/ecgdsa.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECGDSA_PrivateKey(RandomNumberGenerator& rng, const EC_Group&
      group, const BigInt& x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 44
    functionName: Botan::KEX_to_KEM_Adapter_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API KEX_to_KEM_Adapter_PublicKey
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 44
    functionName: Botan::KEX_to_KEM_Adapter_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: class BOTAN_TEST_API
    signature: class BOTAN_TEST_API KEX_to_KEM_Adapter_PublicKey
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:49,1
    - Dst: Botan::supports_operation
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:49,1
    - Dst: dynamic_cast<const ECDH_PublicKey*>
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:52,1
    - Dst: auto*::domain
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:53,1
    - Dst: dynamic_cast<const DH_PublicKey*>
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:58,1
    - Dst: auto*::group
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:59,1
    - Dst: dynamic_cast<const X25519_PublicKey*>
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:64,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:65,1
    - Dst: dynamic_cast<const X448_PublicKey*>
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:71,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:72,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:77,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:78,1
    - Dst: Botan::algo_name
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:79,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - ' kex_public_key'
    argTypes:
    - Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 80
    functionName: Botan::kex_shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - dynamic_cast<const X25519_PublicKey*>
    - auto*::domain
    - Botan::fmt
    - Botan::algo_name
    - dynamic_cast<const X448_PublicKey*>
    - dynamic_cast<const DH_PublicKey*>
    - auto*::group
    - BOTAN_UNUSED
    - Botan::supports_operation
    - dynamic_cast<const ECDH_PublicKey*>
    - Not_Implemented
    linkageType: ''
    returnType: size_t
    signature: size_t kex_shared_key_length(const Public_Key& kex_public_key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:88,1
    - Dst: Botan::supports_operation
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:88,1
    - Dst: Botan::generate_another
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:91,1
    - Dst: dynamic_cast<PK_Key_Agreement_Key*>
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:92,1
    - Dst: auto::get
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:92,1
    - Dst: auto::release
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:97,1
    - Dst: std::unique_ptr<PK_Key_Agreement_Key>
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:99,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ' kex_public_key'
    - ' rng'
    argTypes:
    - Public_Key
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 104
    functionName: Botan::generate_key_agreement_private_key
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - dynamic_cast<PK_Key_Agreement_Key*>
    - std::unique_ptr<PK_Key_Agreement_Key>
    - auto::get
    - auto::release
    - Botan::supports_operation
    - Botan::generate_another
    - BOTAN_ASSERT
    linkageType: ''
    returnType: std::unique_ptr<PK_Key_Agreement_Key>
    signature: "std::unique_ptr<PK_Key_Agreement_Key> generate_key_agreement_private_key(const
      Public_Key& kex_public_key,\n                                                                         RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:107,1
    - Dst: Botan::public_key
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' private_key'
    argTypes:
    - std::unique_ptr<Private_Key>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: Botan::maybe_get_public_key
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    - Botan::public_key
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> maybe_get_public_key(const std::unique_ptr<Private_Key>&
      private_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' key'
    - kdf
    - provider
    argTypes:
    - Public_Key
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: Botan::KEX_to_KEM_Adapter_Encryption_Operation::KEX_to_KEM_Adapter_Encryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KEX_to_KEM_Adapter_Encryption_Operation(const Public_Key& key,
      std::string_view kdf, std::string_view provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kex_shared_key_length
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp: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: Botan::KEX_to_KEM_Adapter_Encryption_Operation::raw_kem_shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - kex_shared_key_length
    linkageType: ''
    returnType: size_t
    signature: size_t raw_kem_shared_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 125
    functionName: Botan::KEX_to_KEM_Adapter_Encryption_Operation::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - raw_public_key_bits
    linkageType: ''
    returnType: size_t
    signature: size_t encapsulated_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: generate_key_agreement_private_key
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:130,1
    - Dst: PK_Key_Agreement
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:131,1
    - Dst: raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:132,1
    - Dst: auto::public_value
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:135,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:140,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:140,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:141,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:143,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:144,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:144,1
    - Dst: copy
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:145,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:145,1
    - Dst: auto::end
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:145,1
    - Dst: std::span<uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:145,1
    - Dst: copy
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:146,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:146,1
    - Dst: auto::end
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:146,1
    - Dst: std::span<uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - out_encapsulated_key
    - raw_shared_key
    - ' rng'
    argTypes:
    - std::span<uint8_t>
    - std::span<uint8_t>
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 147
    functionName: Botan::KEX_to_KEM_Adapter_Encryption_Operation::raw_kem_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - auto::end
    - auto::public_value
    - copy
    - raw_public_key_bits
    - PK_Key_Agreement
    - BOTAN_ASSERT_EQUAL
    - std::span<uint8_t>::begin
    - auto::size
    - generate_key_agreement_private_key
    - std::span<uint8_t>::size
    - auto::begin
    linkageType: ''
    returnType: void
    signature: "void raw_kem_encrypt(std::span<uint8_t> out_encapsulated_key,\n                           std::span<uint8_t>
      raw_shared_key,\n                           Botan::RandomNumberGenerator& rng)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_value
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' key'
    - ' rng'
    - kdf
    - provider
    argTypes:
    - PK_Key_Agreement_Key
    - RandomNumberGenerator
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 162
    functionName: Botan::KEX_to_KEM_Decryption_Operation::KEX_to_KEM_Decryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - public_value
    linkageType: ''
    returnType: void
    signature: "void KEX_to_KEM_Decryption_Operation(const PK_Key_Agreement_Key& key,\n
      \                                     RandomNumberGenerator& rng,\n                                      const
      std::string_view kdf,\n                                      const std::string_view
      provider)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:165,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:166,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:167,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:167,1
    - Dst: copy
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:168,1
    - Dst: secure_vector::begin
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:168,1
    - Dst: secure_vector::end
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:168,1
    - Dst: std::span<uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out_shared_key
    - encap_key
    argTypes:
    - std::span<uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 169
    functionName: Botan::KEX_to_KEM_Decryption_Operation::raw_kem_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - derive_key
    - copy
    - secure_vector::size
    - secure_vector::begin
    - secure_vector::end
    - BOTAN_ASSERT_EQUAL
    - std::span<uint8_t>::begin
    - std::span<uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void raw_kem_decrypt(std::span<uint8_t> out_shared_key, std::span<const
      uint8_t> encap_key) 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::KEX_to_KEM_Decryption_Operation::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t encapsulated_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: agreed_value_size
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:173,1
    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::KEX_to_KEM_Decryption_Operation::raw_kem_shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - agreed_value_size
    linkageType: ''
    returnType: size_t
    signature: size_t raw_kem_shared_key_length() const override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:49,1
    - Dst: Botan::supports_operation
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:49,1
    - Dst: dynamic_cast<const ECDH_PublicKey*>
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:52,1
    - Dst: auto*::domain
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:53,1
    - Dst: dynamic_cast<const DH_PublicKey*>
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:58,1
    - Dst: auto*::group
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:59,1
    - Dst: dynamic_cast<const X25519_PublicKey*>
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:64,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:65,1
    - Dst: dynamic_cast<const X448_PublicKey*>
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:71,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:72,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:77,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:78,1
    - Dst: Botan::algo_name
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:79,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - ' kex_public_key'
    argTypes:
    - Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 80
    functionName: Botan::kex_shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - dynamic_cast<const X25519_PublicKey*>
    - auto*::domain
    - Botan::fmt
    - Botan::algo_name
    - dynamic_cast<const X448_PublicKey*>
    - dynamic_cast<const DH_PublicKey*>
    - auto*::group
    - BOTAN_UNUSED
    - Botan::supports_operation
    - dynamic_cast<const ECDH_PublicKey*>
    - Not_Implemented
    linkageType: ''
    returnType: size_t
    signature: size_t kex_shared_key_length(const Public_Key& kex_public_key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:88,1
    - Dst: Botan::supports_operation
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:88,1
    - Dst: Botan::generate_another
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:91,1
    - Dst: dynamic_cast<PK_Key_Agreement_Key*>
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:92,1
    - Dst: auto::get
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:92,1
    - Dst: auto::release
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:97,1
    - Dst: std::unique_ptr<PK_Key_Agreement_Key>
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:99,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ' kex_public_key'
    - ' rng'
    argTypes:
    - Public_Key
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 104
    functionName: Botan::generate_key_agreement_private_key
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - dynamic_cast<PK_Key_Agreement_Key*>
    - std::unique_ptr<PK_Key_Agreement_Key>
    - auto::get
    - auto::release
    - Botan::supports_operation
    - Botan::generate_another
    - BOTAN_ASSERT
    linkageType: ''
    returnType: std::unique_ptr<PK_Key_Agreement_Key>
    signature: "std::unique_ptr<PK_Key_Agreement_Key> generate_key_agreement_private_key(const
      Public_Key& kex_public_key,\n                                                                         RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:107,1
    - Dst: Botan::public_key
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' private_key'
    argTypes:
    - std::unique_ptr<Private_Key>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: Botan::maybe_get_public_key
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    - Botan::public_key
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> maybe_get_public_key(const std::unique_ptr<Private_Key>&
      private_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' key'
    - kdf
    - provider
    argTypes:
    - Public_Key
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: Botan::KEX_to_KEM_Adapter_Encryption_Operation::KEX_to_KEM_Adapter_Encryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KEX_to_KEM_Adapter_Encryption_Operation(const Public_Key& key,
      std::string_view kdf, std::string_view provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kex_shared_key_length
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp: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: Botan::KEX_to_KEM_Adapter_Encryption_Operation::raw_kem_shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - kex_shared_key_length
    linkageType: ''
    returnType: size_t
    signature: size_t raw_kem_shared_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 125
    functionName: Botan::KEX_to_KEM_Adapter_Encryption_Operation::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - raw_public_key_bits
    linkageType: ''
    returnType: size_t
    signature: size_t encapsulated_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: generate_key_agreement_private_key
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:130,1
    - Dst: PK_Key_Agreement
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:131,1
    - Dst: raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:132,1
    - Dst: auto::public_value
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:135,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:140,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:140,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:141,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:143,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:144,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:144,1
    - Dst: copy
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:145,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:145,1
    - Dst: auto::end
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:145,1
    - Dst: std::span<uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:145,1
    - Dst: copy
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:146,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:146,1
    - Dst: auto::end
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:146,1
    - Dst: std::span<uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - out_encapsulated_key
    - raw_shared_key
    - ' rng'
    argTypes:
    - std::span<uint8_t>
    - std::span<uint8_t>
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 147
    functionName: Botan::KEX_to_KEM_Adapter_Encryption_Operation::raw_kem_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - auto::end
    - auto::public_value
    - copy
    - raw_public_key_bits
    - PK_Key_Agreement
    - BOTAN_ASSERT_EQUAL
    - std::span<uint8_t>::begin
    - auto::size
    - generate_key_agreement_private_key
    - std::span<uint8_t>::size
    - auto::begin
    linkageType: ''
    returnType: void
    signature: "void raw_kem_encrypt(std::span<uint8_t> out_encapsulated_key,\n                           std::span<uint8_t>
      raw_shared_key,\n                           Botan::RandomNumberGenerator& rng)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_value
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' key'
    - ' rng'
    - kdf
    - provider
    argTypes:
    - PK_Key_Agreement_Key
    - RandomNumberGenerator
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 162
    functionName: Botan::KEX_to_KEM_Decryption_Operation::KEX_to_KEM_Decryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - public_value
    linkageType: ''
    returnType: void
    signature: "void KEX_to_KEM_Decryption_Operation(const PK_Key_Agreement_Key& key,\n
      \                                     RandomNumberGenerator& rng,\n                                      const
      std::string_view kdf,\n                                      const std::string_view
      provider)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:165,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:166,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:167,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:167,1
    - Dst: copy
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:168,1
    - Dst: secure_vector::begin
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:168,1
    - Dst: secure_vector::end
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:168,1
    - Dst: std::span<uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out_shared_key
    - encap_key
    argTypes:
    - std::span<uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 169
    functionName: Botan::KEX_to_KEM_Decryption_Operation::raw_kem_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - derive_key
    - copy
    - secure_vector::size
    - secure_vector::begin
    - secure_vector::end
    - BOTAN_ASSERT_EQUAL
    - std::span<uint8_t>::begin
    - std::span<uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void raw_kem_decrypt(std::span<uint8_t> out_shared_key, std::span<const
      uint8_t> encap_key) 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::KEX_to_KEM_Decryption_Operation::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t encapsulated_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: agreed_value_size
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:173,1
    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::KEX_to_KEM_Decryption_Operation::raw_kem_shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - agreed_value_size
    linkageType: ''
    returnType: size_t
    signature: size_t raw_kem_shared_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:183,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:184,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:185,1
    - Dst: Botan::KEX_to_KEM_Adapter_PublicKey::supports_operation
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - public_key
    argTypes:
    - std::unique_ptr<Public_Key>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 186
    functionName: Botan::KEX_to_KEM_Adapter_PublicKey::KEX_to_KEM_Adapter_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::KEX_to_KEM_Adapter_PublicKey::supports_operation
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: void
    signature: void KEX_to_KEM_Adapter_PublicKey::KEX_to_KEM_Adapter_PublicKey(std::unique_ptr<Public_Key>
      public_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:189,1
    - Dst: Botan::KEX_to_KEM_Adapter_PublicKey::algo_name
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.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::KEX_to_KEM_Adapter_PublicKey::algo_name
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 1
    functionsReached:
    - Botan::KEX_to_KEM_Adapter_PublicKey::algo_name
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string KEX_to_KEM_Adapter_PublicKey::algo_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::KEX_to_KEM_Adapter_PublicKey::estimated_strength
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 194
    functionName: Botan::KEX_to_KEM_Adapter_PublicKey::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 1
    functionsReached:
    - Botan::KEX_to_KEM_Adapter_PublicKey::estimated_strength
    linkageType: ''
    returnType: size_t
    signature: size_t KEX_to_KEM_Adapter_PublicKey::estimated_strength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::KEX_to_KEM_Adapter_PublicKey::key_length
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 198
    functionName: Botan::KEX_to_KEM_Adapter_PublicKey::key_length
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 1
    functionsReached:
    - Botan::KEX_to_KEM_Adapter_PublicKey::key_length
    linkageType: ''
    returnType: size_t
    signature: size_t KEX_to_KEM_Adapter_PublicKey::key_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::KEX_to_KEM_Adapter_PublicKey::check_key
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 202
    functionName: Botan::KEX_to_KEM_Adapter_PublicKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 1
    functionsReached:
    - Botan::KEX_to_KEM_Adapter_PublicKey::check_key
    linkageType: ''
    returnType: bool
    signature: bool KEX_to_KEM_Adapter_PublicKey::check_key(RandomNumberGenerator&
      rng, bool strong) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::KEX_to_KEM_Adapter_PublicKey::algorithm_identifier
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 206
    functionName: Botan::KEX_to_KEM_Adapter_PublicKey::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 1
    functionsReached:
    - Botan::KEX_to_KEM_Adapter_PublicKey::algorithm_identifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier KEX_to_KEM_Adapter_PublicKey::algorithm_identifier()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::KEX_to_KEM_Adapter_PublicKey::raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 210
    functionName: Botan::KEX_to_KEM_Adapter_PublicKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 1
    functionsReached:
    - Botan::KEX_to_KEM_Adapter_PublicKey::raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> KEX_to_KEM_Adapter_PublicKey::raw_public_key_bits()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::KEX_to_KEM_Adapter_PublicKey::public_key_bits
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 214
    functionName: Botan::KEX_to_KEM_Adapter_PublicKey::public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 1
    functionsReached:
    - Botan::KEX_to_KEM_Adapter_PublicKey::public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> KEX_to_KEM_Adapter_PublicKey::public_key_bits()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<KEX_to_KEM_Adapter_PrivateKey>
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:217,1
    - Dst: generate_key_agreement_private_key
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 218
    functionName: Botan::KEX_to_KEM_Adapter_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<KEX_to_KEM_Adapter_PrivateKey>
    - generate_key_agreement_private_key
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> KEX_to_KEM_Adapter_PublicKey::generate_another(RandomNumberGenerator&
      rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PublicKeyOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 222
    functionName: Botan::KEX_to_KEM_Adapter_PublicKey::supports_operation
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool KEX_to_KEM_Adapter_PublicKey::supports_operation(PublicKeyOperation
      op) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<Private_Key>::release
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:227,1
    - Dst: dynamic_cast<PK_Key_Agreement_Key*>
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:228,1
    - Dst: std::unique_ptr<PK_Key_Agreement_Key>
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:229,1
    - Dst: Botan::throw_invalid_argument
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - private_key
    argTypes:
    - std::unique_ptr<Private_Key>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 235
    functionName: Botan::capture_as_ka_key
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<Private_Key>::release
    - dynamic_cast<PK_Key_Agreement_Key*>
    - Botan::throw_invalid_argument
    - std::unique_ptr<PK_Key_Agreement_Key>
    linkageType: ''
    returnType: std::unique_ptr<PK_Key_Agreement_Key>
    signature: std::unique_ptr<PK_Key_Agreement_Key> capture_as_ka_key(std::unique_ptr<Private_Key>
      private_key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<Private_Key>::release
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:227,1
    - Dst: dynamic_cast<PK_Key_Agreement_Key*>
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:228,1
    - Dst: std::unique_ptr<PK_Key_Agreement_Key>
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:229,1
    - Dst: Botan::throw_invalid_argument
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - private_key
    argTypes:
    - std::unique_ptr<Private_Key>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 235
    functionName: Botan::capture_as_ka_key
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<Private_Key>::release
    - dynamic_cast<PK_Key_Agreement_Key*>
    - Botan::throw_invalid_argument
    - std::unique_ptr<PK_Key_Agreement_Key>
    linkageType: ''
    returnType: std::unique_ptr<PK_Key_Agreement_Key>
    signature: std::unique_ptr<PK_Key_Agreement_Key> capture_as_ka_key(std::unique_ptr<Private_Key>
      private_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: maybe_get_public_key
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:240,1
    - Dst: capture_as_ka_key
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:241,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - private_key
    argTypes:
    - std::unique_ptr<Private_Key>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 241
    functionName: Botan::KEX_to_KEM_Adapter_PrivateKey::KEX_to_KEM_Adapter_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 4
    functionsReached:
    - std::move
    - capture_as_ka_key
    - maybe_get_public_key
    linkageType: ''
    returnType: void
    signature: void KEX_to_KEM_Adapter_PrivateKey::KEX_to_KEM_Adapter_PrivateKey(std::unique_ptr<Private_Key>
      private_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::KEX_to_KEM_Adapter_PrivateKey::private_key_bits
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.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::KEX_to_KEM_Adapter_PrivateKey::private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 1
    functionsReached:
    - Botan::KEX_to_KEM_Adapter_PrivateKey::private_key_bits
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> KEX_to_KEM_Adapter_PrivateKey::private_key_bits()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::KEX_to_KEM_Adapter_PrivateKey::raw_private_key_bits
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.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::KEX_to_KEM_Adapter_PrivateKey::raw_private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 1
    functionsReached:
    - Botan::KEX_to_KEM_Adapter_PrivateKey::raw_private_key_bits
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> KEX_to_KEM_Adapter_PrivateKey::raw_private_key_bits()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<KEX_to_KEM_Adapter_PublicKey>
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:252,1
    - Dst: Botan::KEX_to_KEM_Adapter_PrivateKey::public_key
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 253
    functionName: Botan::KEX_to_KEM_Adapter_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 1
    functionsReached:
    - Botan::KEX_to_KEM_Adapter_PrivateKey::public_key
    - std::make_unique<KEX_to_KEM_Adapter_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> KEX_to_KEM_Adapter_PrivateKey::public_key()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::KEX_to_KEM_Adapter_PrivateKey::check_key
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 257
    functionName: Botan::KEX_to_KEM_Adapter_PrivateKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 1
    functionsReached:
    - Botan::KEX_to_KEM_Adapter_PrivateKey::check_key
    linkageType: ''
    returnType: bool
    signature: bool KEX_to_KEM_Adapter_PrivateKey::check_key(RandomNumberGenerator&
      rng, bool strong) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<KEX_to_KEM_Adapter_Encryption_Operation>
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - kdf
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 262
    functionName: Botan::KEX_to_KEM_Adapter_PublicKey::create_kem_encryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<KEX_to_KEM_Adapter_Encryption_Operation>
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::KEM_Encryption>
    signature: "std::unique_ptr<PK_Ops::KEM_Encryption> KEX_to_KEM_Adapter_PublicKey::create_kem_encryption_op(\n
      \  std::string_view kdf, std::string_view provider) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<KEX_to_KEM_Decryption_Operation>
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' rng'
    - kdf
    - provider
    argTypes:
    - RandomNumberGenerator
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 267
    functionName: Botan::KEX_to_KEM_Adapter_PrivateKey::create_kem_decryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<KEX_to_KEM_Decryption_Operation>
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::KEM_Decryption>
    signature: "std::unique_ptr<PK_Ops::KEM_Decryption> KEX_to_KEM_Adapter_PrivateKey::create_kem_decryption_op(\n
      \  RandomNumberGenerator& rng, std::string_view kdf, std::string_view provider)
      const"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:49,1
    - Dst: Botan::supports_operation
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:49,1
    - Dst: dynamic_cast<const ECDH_PublicKey*>
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:52,1
    - Dst: auto*::domain
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:53,1
    - Dst: dynamic_cast<const DH_PublicKey*>
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:58,1
    - Dst: auto*::group
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:59,1
    - Dst: dynamic_cast<const X25519_PublicKey*>
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:64,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:65,1
    - Dst: dynamic_cast<const X448_PublicKey*>
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:71,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:72,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:77,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:78,1
    - Dst: Botan::algo_name
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:79,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - ' kex_public_key'
    argTypes:
    - Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 80
    functionName: Botan::kex_shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - dynamic_cast<const X25519_PublicKey*>
    - auto*::domain
    - Botan::fmt
    - Botan::algo_name
    - dynamic_cast<const X448_PublicKey*>
    - dynamic_cast<const DH_PublicKey*>
    - auto*::group
    - BOTAN_UNUSED
    - Botan::supports_operation
    - dynamic_cast<const ECDH_PublicKey*>
    - Not_Implemented
    linkageType: ''
    returnType: size_t
    signature: size_t kex_shared_key_length(const Public_Key& kex_public_key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:88,1
    - Dst: Botan::supports_operation
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:88,1
    - Dst: Botan::generate_another
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:91,1
    - Dst: dynamic_cast<PK_Key_Agreement_Key*>
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:92,1
    - Dst: auto::get
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:92,1
    - Dst: auto::release
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:97,1
    - Dst: std::unique_ptr<PK_Key_Agreement_Key>
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:99,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ' kex_public_key'
    - ' rng'
    argTypes:
    - Public_Key
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 104
    functionName: Botan::generate_key_agreement_private_key
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - dynamic_cast<PK_Key_Agreement_Key*>
    - std::unique_ptr<PK_Key_Agreement_Key>
    - auto::get
    - auto::release
    - Botan::supports_operation
    - Botan::generate_another
    - BOTAN_ASSERT
    linkageType: ''
    returnType: std::unique_ptr<PK_Key_Agreement_Key>
    signature: "std::unique_ptr<PK_Key_Agreement_Key> generate_key_agreement_private_key(const
      Public_Key& kex_public_key,\n                                                                         RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:107,1
    - Dst: Botan::public_key
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' private_key'
    argTypes:
    - std::unique_ptr<Private_Key>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: Botan::maybe_get_public_key
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    - Botan::public_key
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> maybe_get_public_key(const std::unique_ptr<Private_Key>&
      private_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' key'
    - kdf
    - provider
    argTypes:
    - Public_Key
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: Botan::KEX_to_KEM_Adapter_Encryption_Operation::KEX_to_KEM_Adapter_Encryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KEX_to_KEM_Adapter_Encryption_Operation(const Public_Key& key,
      std::string_view kdf, std::string_view provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kex_shared_key_length
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp: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: Botan::KEX_to_KEM_Adapter_Encryption_Operation::raw_kem_shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - kex_shared_key_length
    linkageType: ''
    returnType: size_t
    signature: size_t raw_kem_shared_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 125
    functionName: Botan::KEX_to_KEM_Adapter_Encryption_Operation::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - raw_public_key_bits
    linkageType: ''
    returnType: size_t
    signature: size_t encapsulated_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: generate_key_agreement_private_key
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:130,1
    - Dst: PK_Key_Agreement
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:131,1
    - Dst: raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:132,1
    - Dst: auto::public_value
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:135,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:140,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:140,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:141,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:143,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:144,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:144,1
    - Dst: copy
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:145,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:145,1
    - Dst: auto::end
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:145,1
    - Dst: std::span<uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:145,1
    - Dst: copy
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:146,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:146,1
    - Dst: auto::end
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:146,1
    - Dst: std::span<uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - out_encapsulated_key
    - raw_shared_key
    - ' rng'
    argTypes:
    - std::span<uint8_t>
    - std::span<uint8_t>
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 147
    functionName: Botan::KEX_to_KEM_Adapter_Encryption_Operation::raw_kem_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - auto::end
    - auto::public_value
    - copy
    - raw_public_key_bits
    - PK_Key_Agreement
    - BOTAN_ASSERT_EQUAL
    - std::span<uint8_t>::begin
    - auto::size
    - generate_key_agreement_private_key
    - std::span<uint8_t>::size
    - auto::begin
    linkageType: ''
    returnType: void
    signature: "void raw_kem_encrypt(std::span<uint8_t> out_encapsulated_key,\n                           std::span<uint8_t>
      raw_shared_key,\n                           Botan::RandomNumberGenerator& rng)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_value
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' key'
    - ' rng'
    - kdf
    - provider
    argTypes:
    - PK_Key_Agreement_Key
    - RandomNumberGenerator
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 162
    functionName: Botan::KEX_to_KEM_Decryption_Operation::KEX_to_KEM_Decryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - public_value
    linkageType: ''
    returnType: void
    signature: "void KEX_to_KEM_Decryption_Operation(const PK_Key_Agreement_Key& key,\n
      \                                     RandomNumberGenerator& rng,\n                                      const
      std::string_view kdf,\n                                      const std::string_view
      provider)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:165,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:166,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:167,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:167,1
    - Dst: copy
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:168,1
    - Dst: secure_vector::begin
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:168,1
    - Dst: secure_vector::end
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:168,1
    - Dst: std::span<uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out_shared_key
    - encap_key
    argTypes:
    - std::span<uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 169
    functionName: Botan::KEX_to_KEM_Decryption_Operation::raw_kem_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - derive_key
    - copy
    - secure_vector::size
    - secure_vector::begin
    - secure_vector::end
    - BOTAN_ASSERT_EQUAL
    - std::span<uint8_t>::begin
    - std::span<uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void raw_kem_decrypt(std::span<uint8_t> out_shared_key, std::span<const
      uint8_t> encap_key) 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::KEX_to_KEM_Decryption_Operation::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t encapsulated_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: agreed_value_size
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:173,1
    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::KEX_to_KEM_Decryption_Operation::raw_kem_shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - agreed_value_size
    linkageType: ''
    returnType: size_t
    signature: size_t raw_kem_shared_key_length() const override
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:49,1
    - Dst: Botan::supports_operation
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:49,1
    - Dst: dynamic_cast<const ECDH_PublicKey*>
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:52,1
    - Dst: auto*::domain
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:53,1
    - Dst: dynamic_cast<const DH_PublicKey*>
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:58,1
    - Dst: auto*::group
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:59,1
    - Dst: dynamic_cast<const X25519_PublicKey*>
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:64,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:65,1
    - Dst: dynamic_cast<const X448_PublicKey*>
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:71,1
    - Dst: BOTAN_UNUSED
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:72,1
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:77,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:78,1
    - Dst: Botan::algo_name
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:79,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - ' kex_public_key'
    argTypes:
    - Public_Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 80
    functionName: Botan::kex_shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - dynamic_cast<const X25519_PublicKey*>
    - auto*::domain
    - Botan::fmt
    - Botan::algo_name
    - dynamic_cast<const X448_PublicKey*>
    - dynamic_cast<const DH_PublicKey*>
    - auto*::group
    - BOTAN_UNUSED
    - Botan::supports_operation
    - dynamic_cast<const ECDH_PublicKey*>
    - Not_Implemented
    linkageType: ''
    returnType: size_t
    signature: size_t kex_shared_key_length(const Public_Key& kex_public_key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:88,1
    - Dst: Botan::supports_operation
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:88,1
    - Dst: Botan::generate_another
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:91,1
    - Dst: dynamic_cast<PK_Key_Agreement_Key*>
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:92,1
    - Dst: auto::get
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:92,1
    - Dst: auto::release
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:97,1
    - Dst: std::unique_ptr<PK_Key_Agreement_Key>
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:99,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ' kex_public_key'
    - ' rng'
    argTypes:
    - Public_Key
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 104
    functionName: Botan::generate_key_agreement_private_key
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - dynamic_cast<PK_Key_Agreement_Key*>
    - std::unique_ptr<PK_Key_Agreement_Key>
    - auto::get
    - auto::release
    - Botan::supports_operation
    - Botan::generate_another
    - BOTAN_ASSERT
    linkageType: ''
    returnType: std::unique_ptr<PK_Key_Agreement_Key>
    signature: "std::unique_ptr<PK_Key_Agreement_Key> generate_key_agreement_private_key(const
      Public_Key& kex_public_key,\n                                                                         RandomNumberGenerator&
      rng)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:107,1
    - Dst: Botan::public_key
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' private_key'
    argTypes:
    - std::unique_ptr<Private_Key>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 109
    functionName: Botan::maybe_get_public_key
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ARG_CHECK
    - Botan::public_key
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> maybe_get_public_key(const std::unique_ptr<Private_Key>&
      private_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' key'
    - kdf
    - provider
    argTypes:
    - Public_Key
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 114
    functionName: Botan::KEX_to_KEM_Adapter_Encryption_Operation::KEX_to_KEM_Adapter_Encryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KEX_to_KEM_Adapter_Encryption_Operation(const Public_Key& key,
      std::string_view kdf, std::string_view provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kex_shared_key_length
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp: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: Botan::KEX_to_KEM_Adapter_Encryption_Operation::raw_kem_shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - kex_shared_key_length
    linkageType: ''
    returnType: size_t
    signature: size_t raw_kem_shared_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 125
    functionName: Botan::KEX_to_KEM_Adapter_Encryption_Operation::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - raw_public_key_bits
    linkageType: ''
    returnType: size_t
    signature: size_t encapsulated_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: generate_key_agreement_private_key
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:130,1
    - Dst: PK_Key_Agreement
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:131,1
    - Dst: raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:132,1
    - Dst: auto::public_value
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:135,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:140,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:140,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:141,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:143,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:144,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:144,1
    - Dst: copy
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:145,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:145,1
    - Dst: auto::end
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:145,1
    - Dst: std::span<uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:145,1
    - Dst: copy
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:146,1
    - Dst: auto::begin
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:146,1
    - Dst: auto::end
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:146,1
    - Dst: std::span<uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - out_encapsulated_key
    - raw_shared_key
    - ' rng'
    argTypes:
    - std::span<uint8_t>
    - std::span<uint8_t>
    - Botan::RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 147
    functionName: Botan::KEX_to_KEM_Adapter_Encryption_Operation::raw_kem_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - auto::end
    - auto::public_value
    - copy
    - raw_public_key_bits
    - PK_Key_Agreement
    - BOTAN_ASSERT_EQUAL
    - std::span<uint8_t>::begin
    - auto::size
    - generate_key_agreement_private_key
    - std::span<uint8_t>::size
    - auto::begin
    linkageType: ''
    returnType: void
    signature: "void raw_kem_encrypt(std::span<uint8_t> out_encapsulated_key,\n                           std::span<uint8_t>
      raw_shared_key,\n                           Botan::RandomNumberGenerator& rng)
      override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_value
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - ' key'
    - ' rng'
    - kdf
    - provider
    argTypes:
    - PK_Key_Agreement_Key
    - RandomNumberGenerator
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 162
    functionName: Botan::KEX_to_KEM_Decryption_Operation::KEX_to_KEM_Decryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - public_value
    linkageType: ''
    returnType: void
    signature: "void KEX_to_KEM_Decryption_Operation(const PK_Key_Agreement_Key& key,\n
      \                                     RandomNumberGenerator& rng,\n                                      const
      std::string_view kdf,\n                                      const std::string_view
      provider)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: derive_key
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:165,1
    - Dst: BOTAN_ASSERT_EQUAL
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:166,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:167,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:167,1
    - Dst: copy
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:168,1
    - Dst: secure_vector::begin
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:168,1
    - Dst: secure_vector::end
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:168,1
    - Dst: std::span<uint8_t>::begin
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - out_shared_key
    - encap_key
    argTypes:
    - std::span<uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 169
    functionName: Botan::KEX_to_KEM_Decryption_Operation::raw_kem_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - derive_key
    - copy
    - secure_vector::size
    - secure_vector::begin
    - secure_vector::end
    - BOTAN_ASSERT_EQUAL
    - std::span<uint8_t>::begin
    - std::span<uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void raw_kem_decrypt(std::span<uint8_t> out_shared_key, std::span<const
      uint8_t> encap_key) 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::KEX_to_KEM_Decryption_Operation::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t encapsulated_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: agreed_value_size
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:173,1
    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::KEX_to_KEM_Decryption_Operation::raw_kem_shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - agreed_value_size
    linkageType: ''
    returnType: size_t
    signature: size_t raw_kem_shared_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:183,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:184,1
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:185,1
    - Dst: Botan::KEX_to_KEM_Adapter_PublicKey::supports_operation
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - public_key
    argTypes:
    - std::unique_ptr<Public_Key>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 186
    functionName: Botan::KEX_to_KEM_Adapter_PublicKey::KEX_to_KEM_Adapter_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - Botan::KEX_to_KEM_Adapter_PublicKey::supports_operation
    - BOTAN_ARG_CHECK
    linkageType: ''
    returnType: void
    signature: void KEX_to_KEM_Adapter_PublicKey::KEX_to_KEM_Adapter_PublicKey(std::unique_ptr<Public_Key>
      public_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:189,1
    - Dst: Botan::KEX_to_KEM_Adapter_PublicKey::algo_name
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.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::KEX_to_KEM_Adapter_PublicKey::algo_name
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 2
    functionsReached:
    - Botan::KEX_to_KEM_Adapter_PublicKey::algo_name
    - fmt
    linkageType: ''
    returnType: std::string
    signature: std::string KEX_to_KEM_Adapter_PublicKey::algo_name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::KEX_to_KEM_Adapter_PublicKey::estimated_strength
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 194
    functionName: Botan::KEX_to_KEM_Adapter_PublicKey::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 2
    functionsReached:
    - Botan::KEX_to_KEM_Adapter_PublicKey::estimated_strength
    linkageType: ''
    returnType: size_t
    signature: size_t KEX_to_KEM_Adapter_PublicKey::estimated_strength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::KEX_to_KEM_Adapter_PublicKey::key_length
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 198
    functionName: Botan::KEX_to_KEM_Adapter_PublicKey::key_length
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 2
    functionsReached:
    - Botan::KEX_to_KEM_Adapter_PublicKey::key_length
    linkageType: ''
    returnType: size_t
    signature: size_t KEX_to_KEM_Adapter_PublicKey::key_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::KEX_to_KEM_Adapter_PublicKey::check_key
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 202
    functionName: Botan::KEX_to_KEM_Adapter_PublicKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 2
    functionsReached:
    - Botan::KEX_to_KEM_Adapter_PublicKey::check_key
    linkageType: ''
    returnType: bool
    signature: bool KEX_to_KEM_Adapter_PublicKey::check_key(RandomNumberGenerator&
      rng, bool strong) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::KEX_to_KEM_Adapter_PublicKey::algorithm_identifier
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 206
    functionName: Botan::KEX_to_KEM_Adapter_PublicKey::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 2
    functionsReached:
    - Botan::KEX_to_KEM_Adapter_PublicKey::algorithm_identifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier KEX_to_KEM_Adapter_PublicKey::algorithm_identifier()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::KEX_to_KEM_Adapter_PublicKey::raw_public_key_bits
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 210
    functionName: Botan::KEX_to_KEM_Adapter_PublicKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 2
    functionsReached:
    - Botan::KEX_to_KEM_Adapter_PublicKey::raw_public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> KEX_to_KEM_Adapter_PublicKey::raw_public_key_bits()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::KEX_to_KEM_Adapter_PublicKey::public_key_bits
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 214
    functionName: Botan::KEX_to_KEM_Adapter_PublicKey::public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 2
    functionsReached:
    - Botan::KEX_to_KEM_Adapter_PublicKey::public_key_bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> KEX_to_KEM_Adapter_PublicKey::public_key_bits()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<KEX_to_KEM_Adapter_PrivateKey>
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:217,1
    - Dst: generate_key_agreement_private_key
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 218
    functionName: Botan::KEX_to_KEM_Adapter_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<KEX_to_KEM_Adapter_PrivateKey>
    - generate_key_agreement_private_key
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> KEX_to_KEM_Adapter_PublicKey::generate_another(RandomNumberGenerator&
      rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PublicKeyOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 222
    functionName: Botan::KEX_to_KEM_Adapter_PublicKey::supports_operation
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool KEX_to_KEM_Adapter_PublicKey::supports_operation(PublicKeyOperation
      op) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<Private_Key>::release
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:227,1
    - Dst: dynamic_cast<PK_Key_Agreement_Key*>
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:228,1
    - Dst: std::unique_ptr<PK_Key_Agreement_Key>
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:229,1
    - Dst: Botan::throw_invalid_argument
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - private_key
    argTypes:
    - std::unique_ptr<Private_Key>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 235
    functionName: Botan::capture_as_ka_key
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<Private_Key>::release
    - dynamic_cast<PK_Key_Agreement_Key*>
    - Botan::throw_invalid_argument
    - std::unique_ptr<PK_Key_Agreement_Key>
    linkageType: ''
    returnType: std::unique_ptr<PK_Key_Agreement_Key>
    signature: std::unique_ptr<PK_Key_Agreement_Key> capture_as_ka_key(std::unique_ptr<Private_Key>
      private_key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<Private_Key>::release
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:227,1
    - Dst: dynamic_cast<PK_Key_Agreement_Key*>
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:228,1
    - Dst: std::unique_ptr<PK_Key_Agreement_Key>
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:229,1
    - Dst: Botan::throw_invalid_argument
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - private_key
    argTypes:
    - std::unique_ptr<Private_Key>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 235
    functionName: Botan::capture_as_ka_key
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<Private_Key>::release
    - dynamic_cast<PK_Key_Agreement_Key*>
    - Botan::throw_invalid_argument
    - std::unique_ptr<PK_Key_Agreement_Key>
    linkageType: ''
    returnType: std::unique_ptr<PK_Key_Agreement_Key>
    signature: std::unique_ptr<PK_Key_Agreement_Key> capture_as_ka_key(std::unique_ptr<Private_Key>
      private_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: maybe_get_public_key
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:240,1
    - Dst: capture_as_ka_key
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:241,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - private_key
    argTypes:
    - std::unique_ptr<Private_Key>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 241
    functionName: Botan::KEX_to_KEM_Adapter_PrivateKey::KEX_to_KEM_Adapter_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 4
    functionsReached:
    - std::move
    - capture_as_ka_key
    - maybe_get_public_key
    linkageType: ''
    returnType: void
    signature: void KEX_to_KEM_Adapter_PrivateKey::KEX_to_KEM_Adapter_PrivateKey(std::unique_ptr<Private_Key>
      private_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::KEX_to_KEM_Adapter_PrivateKey::private_key_bits
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.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::KEX_to_KEM_Adapter_PrivateKey::private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 2
    functionsReached:
    - Botan::KEX_to_KEM_Adapter_PrivateKey::private_key_bits
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> KEX_to_KEM_Adapter_PrivateKey::private_key_bits()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::KEX_to_KEM_Adapter_PrivateKey::raw_private_key_bits
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.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::KEX_to_KEM_Adapter_PrivateKey::raw_private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 2
    functionsReached:
    - Botan::KEX_to_KEM_Adapter_PrivateKey::raw_private_key_bits
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> KEX_to_KEM_Adapter_PrivateKey::raw_private_key_bits()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<KEX_to_KEM_Adapter_PublicKey>
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:252,1
    - Dst: Botan::KEX_to_KEM_Adapter_PrivateKey::public_key
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 253
    functionName: Botan::KEX_to_KEM_Adapter_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 2
    functionsReached:
    - Botan::KEX_to_KEM_Adapter_PrivateKey::public_key
    - std::make_unique<KEX_to_KEM_Adapter_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> KEX_to_KEM_Adapter_PrivateKey::public_key()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::KEX_to_KEM_Adapter_PrivateKey::check_key
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 257
    functionName: Botan::KEX_to_KEM_Adapter_PrivateKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 2
    functionsReached:
    - Botan::KEX_to_KEM_Adapter_PrivateKey::check_key
    linkageType: ''
    returnType: bool
    signature: bool KEX_to_KEM_Adapter_PrivateKey::check_key(RandomNumberGenerator&
      rng, bool strong) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<KEX_to_KEM_Adapter_Encryption_Operation>
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - kdf
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 262
    functionName: Botan::KEX_to_KEM_Adapter_PublicKey::create_kem_encryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<KEX_to_KEM_Adapter_Encryption_Operation>
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::KEM_Encryption>
    signature: "std::unique_ptr<PK_Ops::KEM_Encryption> KEX_to_KEM_Adapter_PublicKey::create_kem_encryption_op(\n
      \  std::string_view kdf, std::string_view provider) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<KEX_to_KEM_Decryption_Operation>
      Src: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' rng'
    - kdf
    - provider
    argTypes:
    - RandomNumberGenerator
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 267
    functionName: Botan::KEX_to_KEM_Adapter_PrivateKey::create_kem_decryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/kex_to_kem_adapter/kex_to_kem_adapter.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<KEX_to_KEM_Decryption_Operation>
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::KEM_Decryption>
    signature: "std::unique_ptr<PK_Ops::KEM_Decryption> KEX_to_KEM_Adapter_PrivateKey::create_kem_decryption_op(\n
      \  RandomNumberGenerator& rng, std::string_view kdf, std::string_view provider)
      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: Botan::algo_name
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() 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::algo_name
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string algo_name() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:38,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:39,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:40,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:42,1
    - Dst: bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 2
    argNames:
    - ' n'
    - ' e'
    argTypes:
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: Botan::RSA_Public_Data::RSA_Public_Data
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::Barrett_Reduction::for_public_modulus
    - std::move
    - bits
    - bytes
    linkageType: ''
    returnType: void
    signature: void RSA_Public_Data(BigInt&& n, BigInt&& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty_precompute
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:47,1
    - Dst: monty_execute_vartime
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: Botan::RSA_Public_Data::public_op
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - monty_precompute
    - monty_execute_vartime
    linkageType: ''
    returnType: BigInt
    signature: BigInt public_op(const BigInt& m) 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: '& get_n() const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & get_n() 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: '& get_e() const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & get_e() 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::RSA_Public_Data::public_modulus_bits
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t public_modulus_bits() 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::RSA_Public_Data::public_modulus_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t public_modulus_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: '& monty_n() const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Montgomery_Params
    signature: Montgomery_Params & monty_n() 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: '& reducer_mod_n() const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Barrett_Reduction
    signature: Barrett_Reduction & reducer_mod_n() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:75,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:76,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:77,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:78,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:79,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:80,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:84,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:85,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 1
    argCount: 6
    argNames:
    - ' d'
    - ' p'
    - ' q'
    - ' d1'
    - ' d2'
    - ' c'
    argTypes:
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 85
    functionName: Botan::RSA_Private_Data::RSA_Private_Data
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - bits
    linkageType: ''
    returnType: void
    signature: void RSA_Private_Data(BigInt&& d, BigInt&& p, BigInt&& q, BigInt&&
      d1, BigInt&& d2, BigInt&& c)
  - 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: '& get_d() const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & get_d() 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_p() const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & get_p() 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: '& get_q() const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & get_q() 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: '& get_d1() const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & get_d1() 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: '& get_d2() const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & get_d2() 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: '& get_c() const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & get_c() 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: '& get_c_monty() const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Montgomery_Int
    signature: Montgomery_Int & get_c_monty() 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: '& monty_p() const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Montgomery_Params
    signature: Montgomery_Params & monty_p() 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: '& monty_q() const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Montgomery_Params
    signature: Montgomery_Params & monty_q() 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::RSA_Private_Data::p_bits
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    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: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: Botan::RSA_Private_Data::q_bits
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t q_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RSA_Private_Data::p_bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:109,1
    - Dst: Botan::RSA_Private_Data::q_bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp: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::RSA_Private_Data::primes_imbalanced
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::RSA_Private_Data::q_bits
    - Botan::RSA_Private_Data::p_bits
    linkageType: ''
    returnType: bool
    signature: bool primes_imbalanced() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    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: Botan::RSA_PublicKey::public_data
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<const RSA_Public_Data>
    signature: std::shared_ptr<const RSA_Public_Data> RSA_PublicKey::public_data()
      const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:132,1
    - Dst: get_e
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:134,1
    - Dst: Public_Key::get_int_field
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - field
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 138
    functionName: '& RSA_PublicKey::get_int_field(std::string_view field) const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - get_n
    - Public_Key::get_int_field
    - get_e
    linkageType: ''
    returnType: BigInt
    signature: BigInt & RSA_PublicKey::get_int_field(std::string_view field) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<RSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:141,1
    - Dst: public_modulus_bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:141,1
    - Dst: get_e
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 142
    functionName: Botan::RSA_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_modulus_bits
    - std::make_unique<RSA_PrivateKey>
    - get_e
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> RSA_PublicKey::generate_another(RandomNumberGenerator&
      rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.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: '& RSA_PublicKey::get_n() const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - get_n
    linkageType: ''
    returnType: BigInt
    signature: BigInt & RSA_PublicKey::get_n() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_e
      Src: /src/botan/src/lib/pubkey/rsa/rsa.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: '& RSA_PublicKey::get_e() const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - get_e
    linkageType: ''
    returnType: BigInt
    signature: BigInt & RSA_PublicKey::get_e() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_negative
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:153,1
    - Dst: is_even
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:153,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:153,1
    - Dst: is_negative
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:153,1
    - Dst: is_even
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:153,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:154,1
    - Dst: std::make_shared<RSA_Public_Data>
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:156,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:156,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:156,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 5
    argCount: 2
    argNames:
    - ' n'
    - ' e'
    argTypes:
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 157
    functionName: Botan::RSA_PublicKey::init
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<RSA_Public_Data>
    - Decoding_Error
    - std::move
    - is_negative
    - bits
    - is_even
    linkageType: ''
    returnType: void
    signature: void RSA_PublicKey::init(BigInt&& n, BigInt&& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BER_Decoder
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:162,1
    - Dst: Botan::RSA_PublicKey::init
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:164,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:164,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key_bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 165
    functionName: Botan::RSA_PublicKey::RSA_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 4
    functionsReached:
    - BER_Decoder
    - std::move
    - Botan::RSA_PublicKey::init
    linkageType: ''
    returnType: void
    signature: void RSA_PublicKey::RSA_PublicKey(const AlgorithmIdentifier& /*unused*/,
      std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PublicKeyOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 170
    functionName: Botan::RSA_PublicKey::supports_operation
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RSA_PublicKey::supports_operation(PublicKeyOperation op) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RSA_PublicKey::init
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:175,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:175,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' modulus'
    - ' exponent'
    argTypes:
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 176
    functionName: Botan::RSA_PublicKey::RSA_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 4
    functionsReached:
    - std::move
    - Botan::RSA_PublicKey::init
    linkageType: ''
    returnType: void
    signature: void RSA_PublicKey::RSA_PublicKey(const BigInt& modulus, const BigInt&
      exponent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_modulus_bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.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::RSA_PublicKey::key_length
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_modulus_bits
    linkageType: ''
    returnType: size_t
    signature: size_t RSA_PublicKey::key_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: if_work_factor
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:183,1
    - Dst: Botan::RSA_PublicKey::key_length
      Src: /src/botan/src/lib/pubkey/rsa/rsa.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::RSA_PublicKey::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - if_work_factor
    - Botan::RSA_PublicKey::key_length
    linkageType: ''
    returnType: size_t
    signature: size_t RSA_PublicKey::estimated_strength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:187,1
    - Dst: object_identifier
      Src: /src/botan/src/lib/pubkey/rsa/rsa.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::RSA_PublicKey::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - AlgorithmIdentifier
    - object_identifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier RSA_PublicKey::algorithm_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 192
    functionName: Botan::RSA_PublicKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - Not_Implemented
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> RSA_PublicKey::raw_public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_Encoder::start_sequence
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:197,1
    - Dst: get_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:197,1
    - Dst: get_e
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 200
    functionName: Botan::RSA_PublicKey::public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - get_n
    - get_e
    - DER_Encoder::start_sequence
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> RSA_PublicKey::public_key_bits() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:206,1
    - Dst: get_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:206,1
    - Dst: get_e
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:206,1
    - Dst: get_e
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:206,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 210
    functionName: Botan::RSA_PublicKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - get_n
    - get_e
    linkageType: ''
    returnType: bool
    signature: bool RSA_PublicKey::check_key(RandomNumberGenerator& /*rng*/, bool
      /*strong*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 214
    functionName: Botan::RSA_PrivateKey::private_data
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<const RSA_Private_Data>
    signature: std::shared_ptr<const RSA_Private_Data> RSA_PrivateKey::private_data()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:217,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:219,1
    - Dst: get_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:220,1
    - Dst: get_e
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:221,1
    - Dst: get_d
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:222,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:223,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:224,1
    - Dst: get_d1
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:225,1
    - Dst: get_d2
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:226,1
    - Dst: get_c
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 230
    functionName: Botan::RSA_PrivateKey::private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - get_p
    - get_d2
    - get_q
    - get_c
    - get_n
    - get_e
    - DER_Encoder
    - get_d
    - get_d1
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> RSA_PrivateKey::private_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 234
    functionName: '& RSA_PrivateKey::get_p() const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - get_p
    linkageType: ''
    returnType: BigInt
    signature: BigInt & RSA_PrivateKey::get_p() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:237,1
    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: '& RSA_PrivateKey::get_q() const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - get_q
    linkageType: ''
    returnType: BigInt
    signature: BigInt & RSA_PrivateKey::get_q() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_d
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:241,1
    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: '& RSA_PrivateKey::get_d() const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - get_d
    linkageType: ''
    returnType: BigInt
    signature: BigInt & RSA_PrivateKey::get_d() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_c
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:245,1
    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: '& RSA_PrivateKey::get_c() const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - get_c
    linkageType: ''
    returnType: BigInt
    signature: BigInt & RSA_PrivateKey::get_c() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_d1
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 250
    functionName: '& RSA_PrivateKey::get_d1() const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - get_d1
    linkageType: ''
    returnType: BigInt
    signature: BigInt & RSA_PrivateKey::get_d1() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_d2
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 254
    functionName: '& RSA_PrivateKey::get_d2() const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - get_d2
    linkageType: ''
    returnType: BigInt
    signature: BigInt & RSA_PrivateKey::get_d2() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<RSA_Private_Data>
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:257,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:258,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:258,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:258,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:258,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:258,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:258,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 6
    argNames:
    - ' d'
    - ' p'
    - ' q'
    - ' d1'
    - ' d2'
    - ' c'
    argTypes:
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 259
    functionName: Botan::RSA_PrivateKey::init
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<RSA_Private_Data>
    - std::move
    linkageType: ''
    returnType: void
    signature: void RSA_PrivateKey::init(BigInt&& d, BigInt&& p, BigInt&& q, BigInt&&
      d1, BigInt&& d2, BigInt&& c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BER_Decoder
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:271,1
    - Dst: Botan::RSA_PublicKey::init
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:284,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:284,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:284,1
    - Dst: Botan::RSA_PrivateKey::init
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:286,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:286,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:286,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:286,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:286,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:286,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - key_bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 287
    functionName: Botan::RSA_PrivateKey::RSA_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 4
    functionsReached:
    - BER_Decoder
    - std::move
    - Botan::RSA_PublicKey::init
    - Botan::RSA_PrivateKey::init
    linkageType: ''
    returnType: void
    signature: void RSA_PrivateKey::RSA_PrivateKey(const AlgorithmIdentifier& /*unused*/,
      std::span<const uint8_t> key_bits)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BigInt::is_zero
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:294,1
    - Dst: BigInt::is_zero
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:305,1
    - Dst: lcm
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:306,1
    - Dst: compute_rsa_secret_exponent
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:307,1
    - Dst: ct_modulo
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:310,1
    - Dst: ct_modulo
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:311,1
    - Dst: inverse_mod_secret_prime
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:312,1
    - Dst: ct_modulo
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:312,1
    - Dst: Botan::RSA_PublicKey::init
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:314,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:314,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:314,1
    - Dst: Botan::RSA_PrivateKey::init
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:316,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:316,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:316,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:316,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:316,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:316,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - ' prime1'
    - ' prime2'
    - ' exp'
    - ' d_exp'
    - ' mod'
    argTypes:
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 289
    functionDepth: 4
    functionLinenumber: 289
    functionLinenumberEnd: 317
    functionName: Botan::RSA_PrivateKey::RSA_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 4
    functionsReached:
    - std::move
    - inverse_mod_secret_prime
    - Botan::RSA_PrivateKey::init
    - BigInt::is_zero
    - ct_modulo
    - compute_rsa_secret_exponent
    - Botan::RSA_PublicKey::init
    - lcm
    linkageType: ''
    returnType: void
    signature: "void RSA_PrivateKey::RSA_PrivateKey(\n   const BigInt& prime1, const
      BigInt& prime2, const BigInt& exp, const BigInt& d_exp, const BigInt& mod)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:324,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:324,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:328,1
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:337,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:341,1
    - Dst: generate_rsa_prime
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:345,1
    - Dst: generate_rsa_prime
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:346,1
    - Dst: BigInt::bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:349,1
    - Dst: BigInt::bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:355,1
    - Dst: lcm
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:365,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:367,1
    - Dst: low_zero_bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:367,1
    - Dst: compute_rsa_secret_exponent
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:369,1
    - Dst: ct_modulo
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:370,1
    - Dst: ct_modulo
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:371,1
    - Dst: inverse_mod_secret_prime
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:372,1
    - Dst: ct_modulo
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:372,1
    - Dst: Botan::RSA_PublicKey::init
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:374,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:374,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:374,1
    - Dst: Botan::RSA_PrivateKey::init
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:376,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:376,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:376,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:376,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:376,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:376,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:376,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 3
    argNames:
    - ' rng'
    - bits
    - exp
    argTypes:
    - RandomNumberGenerator
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 377
    functionName: Botan::RSA_PrivateKey::RSA_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 4
    functionsReached:
    - std::move
    - BigInt::bits
    - lcm
    - inverse_mod_secret_prime
    - Botan::RSA_PrivateKey::init
    - BOTAN_DEBUG_ASSERT
    - generate_rsa_prime
    - Internal_Error
    - Botan::BigInt::from_u64
    - low_zero_bits
    - compute_rsa_secret_exponent
    - Invalid_Argument
    - ct_modulo
    - Botan::RSA_PublicKey::init
    - fmt
    linkageType: ''
    returnType: void
    signature: void RSA_PrivateKey::RSA_PrivateKey(RandomNumberGenerator& rng, size_t
      bits, size_t exp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:381,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:383,1
    - Dst: get_d
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:385,1
    - Dst: get_c
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:387,1
    - Dst: get_d1
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:389,1
    - Dst: get_d2
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:391,1
    - Dst: RSA_PublicKey::get_int_field
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:393,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - field
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 395
    functionName: '& RSA_PrivateKey::get_int_field(std::string_view field) const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - RSA_PublicKey::get_int_field
    - get_p
    - get_d2
    - get_c
    - get_q
    - get_d
    - get_d1
    linkageType: ''
    returnType: BigInt
    signature: BigInt & RSA_PrivateKey::get_int_field(std::string_view field) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<RSA_PublicKey>
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:398,1
    - Dst: get_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:398,1
    - Dst: get_e
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 399
    functionName: Botan::RSA_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - get_n
    - get_e
    - std::make_unique<RSA_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> RSA_PrivateKey::public_key() const
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: get_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:405,1
    - Dst: get_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:405,1
    - Dst: get_e
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:405,1
    - Dst: get_e
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:405,1
    - Dst: get_d
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:409,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:409,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:409,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:413,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:413,1
    - Dst: get_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:413,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:417,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:417,1
    - Dst: get_d1
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:421,1
    - Dst: ct_modulo
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:421,1
    - Dst: get_d
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:421,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:421,1
    - Dst: get_d2
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:424,1
    - Dst: ct_modulo
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:424,1
    - Dst: get_d
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:424,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:424,1
    - Dst: get_c
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:427,1
    - Dst: inverse_mod_secret_prime
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:427,1
    - Dst: ct_modulo
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:427,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:427,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:427,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:427,1
    - Dst: is_prime
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:433,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:433,1
    - Dst: is_prime
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:436,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:436,1
    - Dst: ct_modulo
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:441,1
    - Dst: get_e
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:441,1
    - Dst: get_d
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:441,1
    - Dst: lcm
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:441,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:441,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:441,1
    - Dst: Botan::KeyPair::signature_consistency_check
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:451,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 35
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 455
    functionName: Botan::RSA_PrivateKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::KeyPair::signature_consistency_check
    - lcm
    - inverse_mod_secret_prime
    - get_p
    - is_prime
    - get_d2
    - get_q
    - get_c
    - get_n
    - ct_modulo
    - get_e
    - get_d
    - get_d1
    linkageType: ''
    returnType: bool
    signature: bool RSA_PrivateKey::check_key(RandomNumberGenerator& rng, bool strong)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::sig_words
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:473,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:474,1
    - Dst: Botan::sig_words
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:474,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:479,1
    - Dst: Botan::repr
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:479,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:480,1
    - Dst: Botan::repr
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:480,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:481,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:481,1
    - Dst: Botan::mul
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:492,1
    - Dst: Montgomery_Int::value
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:494,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:496,1
    - Dst: BigInt::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:496,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:497,1
    - Dst: BigInt::sig_words
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:497,1
    - Dst: Botan::bigint_mul
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:502,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:502,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:502,1
    - Dst: BigInt::_data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:502,1
    - Dst: BigInt::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:502,1
    - Dst: Botan::_data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:502,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:502,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:502,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:502,1
    - Dst: Botan::bigint_add2
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:505,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:505,1
    - Dst: Botan::_data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:505,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:506,1
    - Dst: Botan::_from_words
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 6
    argNames:
    - ' j1'
    - ' j2_p'
    - ' j2'
    - ' c_monty'
    - ' p'
    - ' q'
    argTypes:
    - Montgomery_Int
    - Montgomery_Int
    - BigInt
    - Montgomery_Int
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 466
    functionDepth: 1
    functionLinenumber: 466
    functionLinenumberEnd: 509
    functionName: Botan::crt_recombine
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::bigint_add2
    - Botan::bigint_mul
    - Botan::sig_words
    - Botan::mul
    - BigInt::_data
    - Montgomery_Int::value
    - BOTAN_DEBUG_ASSERT
    - secure_vector::size
    - Botan::_data
    - BigInt::size
    - Botan::_from_words
    - secure_vector::data
    - Botan::size
    - Botan::repr
    - BigInt::sig_words
    linkageType: ''
    returnType: BigInt
    signature: "BigInt crt_recombine(const Montgomery_Int& j1,\n                     const
      Montgomery_Int& j2_p,\n                     const BigInt& j2,\n                     const
      Montgomery_Int& c_monty,\n                     const BigInt& p,\n                     const
      BigInt& q)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RSA_Private_Operation::public_modulus_bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 516
    functionName: Botan::RSA_Private_Operation::public_modulus_bits
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 1
    functionsReached:
    - Botan::RSA_Private_Operation::public_modulus_bits
    linkageType: ''
    returnType: size_t
    signature: size_t public_modulus_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RSA_Private_Operation::public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 518
    functionName: Botan::RSA_Private_Operation::public_modulus_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 1
    functionsReached:
    - Botan::RSA_Private_Operation::public_modulus_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t public_modulus_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:521,1
    - Dst: private_data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:522,1
    - Dst: reducer_mod_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:524,1
    - Dst: public_op
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:526,1
    - Dst: inverse_mod_rsa_public_modulus
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:527,1
    - Dst: get_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:527,1
    - Dst: p_bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:529,1
    - Dst: q_bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' rsa'
    - ' rng'
    argTypes:
    - RSA_PrivateKey
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 530
    functionName: Botan::RSA_Private_Operation::RSA_Private_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - inverse_mod_rsa_public_modulus
    - public_op
    - q_bits
    - get_n
    - reducer_mod_n
    - p_bits
    - public_data
    - private_data
    linkageType: ''
    returnType: void
    signature: void RSA_Private_Operation(const RSA_PrivateKey& rsa, RandomNumberGenerator&
      rng)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:533,1
    - Dst: Botan::RSA_Private_Operation::public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:533,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:534,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:536,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:536,1
    - Dst: get_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:537,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:538,1
    - Dst: unblind
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:543,1
    - Dst: Botan::RSA_Private_Operation::rsa_private_op
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:543,1
    - Dst: blind
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:543,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:544,1
    - Dst: public_op
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:544,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:545,1
    - Dst: Botan::RSA_Private_Operation::public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:545,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:545,1
    - Dst: BigInt::serialize_to
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:546,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - out
    - input
    argTypes:
    - std::span<uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 532
    functionDepth: 2
    functionLinenumber: 532
    functionLinenumberEnd: 547
    functionName: Botan::RSA_Private_Operation::raw_op
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - unblind
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - public_op
    - Botan::RSA_Private_Operation::rsa_private_op
    - get_n
    - BOTAN_ASSERT
    - BigInt::serialize_to
    - blind
    - Botan::RSA_Private_Operation::public_modulus_bytes
    - std::span<uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void raw_op(std::span<uint8_t> out, std::span<const uint8_t> input)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: primes_imbalanced
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:555,1
    - Dst: monty_exp
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:556,1
    - Dst: monty_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:556,1
    - Dst: get_d
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:556,1
    - Dst: get_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:556,1
    - Dst: rng
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:562,1
    - Dst: sig_words
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:574,1
    - Dst: Thread_Pool::global_instance
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:576,1
    - Dst: get_d1
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:578,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:578,1
    - Dst: monty_precompute
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:579,1
    - Dst: Botan::Montgomery_Int::from_wide_int
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:579,1
    - Dst: monty_p
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:579,1
    - Dst: monty_execute
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:580,1
    - Dst: rng
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:587,1
    - Dst: get_d2
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:588,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:588,1
    - Dst: monty_precompute
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:589,1
    - Dst: Botan::Montgomery_Int::from_wide_int
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:589,1
    - Dst: monty_q
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:589,1
    - Dst: monty_execute
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:590,1
    - Dst: auto::get
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:593,1
    - Dst: Botan::Montgomery_Int::from_wide_int
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:597,1
    - Dst: monty_p
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:597,1
    - Dst: crt_recombine
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:599,1
    - Dst: get_c_monty
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:599,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:599,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:599,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 600
    functionName: Botan::RSA_Private_Operation::rsa_private_op
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 1
    functionsReached:
    - primes_imbalanced
    - monty_n
    - get_p
    - auto::get
    - monty_execute
    - rng
    - monty_q
    - monty_exp
    - Thread_Pool::global_instance
    - crt_recombine
    - get_q
    - get_n
    - Botan::Montgomery_Int::from_wide_int
    - get_d
    - monty_precompute
    - sig_words
    - get_d2
    - monty_p
    - get_c_monty
    - get_d1
    linkageType: ''
    returnType: BigInt
    signature: BigInt rsa_private_op(const BigInt& m) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RSA_Signature_Operation::update
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:615,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:615,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 615
    functionDepth: 1
    functionLinenumber: 615
    functionLinenumberEnd: 615
    functionName: Botan::RSA_Signature_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 1
    functionsReached:
    - std::span<const uint8_t>::data
    - Botan::RSA_Signature_Operation::update
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> msg) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_modulus_bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:618,1
    - Dst: raw_data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:619,1
    - Dst: encoding_of
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:620,1
    - Dst: raw_op
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 625
    functionName: Botan::RSA_Signature_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_modulus_bits
    - raw_op
    - raw_data
    - encoding_of
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> sign(RandomNumberGenerator& rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 627
    functionName: Botan::RSA_Signature_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_modulus_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RSA_Signature_Operation::hash_function
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 631
    functionName: Botan::RSA_Signature_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 1
    functionsReached:
    - Botan::RSA_Signature_Operation::hash_function
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SignaturePaddingScheme::create_or_throw
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' rsa'
    - padding
    - ' rng'
    argTypes:
    - RSA_PrivateKey
    - std::string_view
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 634
    functionName: Botan::RSA_Signature_Operation::RSA_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::SignaturePaddingScheme::create_or_throw
    linkageType: ''
    returnType: void
    signature: void RSA_Signature_Operation(const RSA_PrivateKey& rsa, std::string_view
      padding, RandomNumberGenerator& rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:641,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:645,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:646,1
    - Dst: std::string::starts_with
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:649,1
    - Dst: Botan::PSS_Params::from_padding_name
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:650,1
    - Dst: name
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:650,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:651,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:654,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:654,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 640
    functionDepth: 1
    functionLinenumber: 640
    functionLinenumberEnd: 655
    functionName: Botan::RSA_Signature_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - name
    - AlgorithmIdentifier
    - std::string::starts_with
    - Invalid_Argument
    - Botan::OID::from_string
    - Botan::PSS_Params::from_padding_name
    - fmt
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier RSA_Signature_Operation::algorithm_identifier()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' rsa'
    - padding
    - ' rng'
    argTypes:
    - RSA_PrivateKey
    - std::string_view
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 661
    functionName: Botan::RSA_Decryption_Operation::RSA_Decryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_Decryption_Operation(const RSA_PrivateKey& rsa, std::string_view
      padding, RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 663
    functionDepth: 0
    functionLinenumber: 663
    functionLinenumberEnd: 663
    functionName: Botan::RSA_Decryption_Operation::plaintext_length
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_modulus_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t plaintext_length(size_t /*ctext_len*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raw_op
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 669
    functionName: Botan::RSA_Decryption_Operation::raw_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - raw_op
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> raw_decrypt(std::span<const uint8_t> input)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' key'
    - kdf
    - ' rng'
    argTypes:
    - RSA_PrivateKey
    - std::string_view
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 676
    functionName: Botan::RSA_KEM_Decryption_Operation::RSA_KEM_Decryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_KEM_Decryption_Operation(const RSA_PrivateKey& key, std::string_view
      kdf, RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:678,1
    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::RSA_KEM_Decryption_Operation::raw_kem_shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_modulus_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t raw_kem_shared_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:680,1
    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::RSA_KEM_Decryption_Operation::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_modulus_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t encapsulated_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raw_op
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:683,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: 684
      start: 682
    functionDepth: 0
    functionLinenumber: 682
    functionLinenumberEnd: 684
    functionName: Botan::RSA_KEM_Decryption_Operation::raw_kem_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - raw_op
    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: public_data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' rsa'
    argTypes:
    - RSA_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 692
    functionDepth: 0
    functionLinenumber: 692
    functionLinenumberEnd: 692
    functionName: Botan::RSA_Public_Operation::RSA_Public_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_data
    linkageType: ''
    returnType: void
    signature: void RSA_Public_Operation(const RSA_PublicKey& rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RSA_Public_Operation::public_modulus_bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 694
    functionDepth: 1
    functionLinenumber: 694
    functionLinenumberEnd: 694
    functionName: Botan::RSA_Public_Operation::public_modulus_bits
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 1
    functionsReached:
    - Botan::RSA_Public_Operation::public_modulus_bits
    linkageType: ''
    returnType: size_t
    signature: size_t public_modulus_bits() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:698,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:699,1
    - Dst: Botan::RSA_Public_Operation::public_op
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:702,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 697
    functionDepth: 1
    functionLinenumber: 697
    functionLinenumberEnd: 703
    functionName: Botan::RSA_Public_Operation::public_op
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 1
    functionsReached:
    - Botan::RSA_Public_Operation::public_op
    - get_n
    - Decoding_Error
    linkageType: ''
    returnType: BigInt
    signature: BigInt public_op(const BigInt& m) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RSA_Public_Operation::public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 705
    functionDepth: 1
    functionLinenumber: 705
    functionLinenumberEnd: 705
    functionName: Botan::RSA_Public_Operation::public_modulus_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 1
    functionsReached:
    - Botan::RSA_Public_Operation::public_modulus_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t public_modulus_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 707
    functionDepth: 0
    functionLinenumber: 707
    functionLinenumberEnd: 707
    functionName: '& get_n() const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - get_n
    linkageType: ''
    returnType: BigInt
    signature: BigInt & get_n() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' rsa'
    - padding
    argTypes:
    - RSA_PublicKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 717
    functionName: Botan::RSA_Encryption_Operation::RSA_Encryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_Encryption_Operation(const RSA_PublicKey& rsa, std::string_view
      padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 719
    functionName: Botan::RSA_Encryption_Operation::ciphertext_length
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_modulus_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t ciphertext_length(size_t /*ptext_len*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_modulus_bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 721
    functionName: Botan::RSA_Encryption_Operation::max_ptext_input_bits
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_modulus_bits
    linkageType: ''
    returnType: size_t
    signature: size_t max_ptext_input_bits() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_op
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:725,1
    - Dst: public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 723
    functionDepth: 0
    functionLinenumber: 723
    functionLinenumberEnd: 726
    functionName: Botan::RSA_Encryption_Operation::raw_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_op
    - public_modulus_bytes
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> raw_encrypt(std::span<const uint8_t> input, RandomNumberGenerator&
      /*rng*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RSA_Verify_Operation::update
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:732,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:732,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 732
    functionDepth: 1
    functionLinenumber: 732
    functionLinenumberEnd: 732
    functionName: Botan::RSA_Verify_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 1
    functionsReached:
    - Botan::RSA_Verify_Operation::update
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> msg) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raw_data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:735,1
    - Dst: Botan::RSA_Verify_Operation::recover_message_repr
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:736,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:736,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:736,1
    - Dst: verify
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:737,1
    - Dst: public_modulus_bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 734
    functionDepth: 1
    functionLinenumber: 734
    functionLinenumberEnd: 738
    functionName: Botan::RSA_Verify_Operation::is_valid_signature
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::RSA_Verify_Operation::recover_message_repr
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - raw_data
    - public_modulus_bits
    - verify
    linkageType: ''
    returnType: bool
    signature: bool is_valid_signature(std::span<const uint8_t> sig) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SignaturePaddingScheme::create_or_throw
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' rsa'
    - padding
    argTypes:
    - RSA_PublicKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 740
    functionDepth: 1
    functionLinenumber: 740
    functionLinenumberEnd: 741
    functionName: Botan::RSA_Verify_Operation::RSA_Verify_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::SignaturePaddingScheme::create_or_throw
    linkageType: ''
    returnType: void
    signature: void RSA_Verify_Operation(const RSA_PublicKey& rsa, std::string_view
      padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RSA_Verify_Operation::hash_function
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 743
    functionDepth: 1
    functionLinenumber: 743
    functionLinenumberEnd: 743
    functionName: Botan::RSA_Verify_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 1
    functionsReached:
    - Botan::RSA_Verify_Operation::hash_function
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:747,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:748,1
    - Dst: public_op
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:751,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - input
    - input_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 752
    functionName: Botan::RSA_Verify_Operation::recover_message_repr
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 1
    functionsReached:
    - public_op
    - Decoding_Error
    - public_modulus_bytes
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> recover_message_repr(const uint8_t input[], size_t
      input_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' key'
    - kdf
    argTypes:
    - RSA_PublicKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 761
    functionName: Botan::RSA_KEM_Encryption_Operation::RSA_KEM_Encryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_KEM_Encryption_Operation(const RSA_PublicKey& key, std::string_view
      kdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 764
    functionName: Botan::RSA_KEM_Encryption_Operation::raw_kem_shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_modulus_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t raw_kem_shared_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 766
    functionDepth: 0
    functionLinenumber: 766
    functionLinenumberEnd: 766
    functionName: Botan::RSA_KEM_Encryption_Operation::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_modulus_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t encapsulated_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:771,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::retrieve_one
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:771,1
    - Dst: get_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:771,1
    - Dst: public_op
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:772,1
    - Dst: BigInt::serialize_to
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:774,1
    - Dst: BigInt::serialize_to
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - out_encapsulated_key
    - raw_shared_key
    - ' rng'
    argTypes:
    - std::span<uint8_t>
    - std::span<uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 768
    functionDepth: 3
    functionLinenumber: 768
    functionLinenumberEnd: 776
    functionName: Botan::RSA_KEM_Encryption_Operation::raw_kem_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_op
    - Botan::BigInt::random_integer
    - Botan_Tests::RFC8448_Session_Manager::retrieve_one
    - get_n
    - BigInt::serialize_to
    linkageType: ''
    returnType: void
    signature: "void raw_kem_encrypt(std::span<uint8_t> out_encapsulated_key,\n                           std::span<uint8_t>
      raw_shared_key,\n                           RandomNumberGenerator& rng) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::sig_words
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:473,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:474,1
    - Dst: Botan::sig_words
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:474,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:479,1
    - Dst: Botan::repr
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:479,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:480,1
    - Dst: Botan::repr
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:480,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:481,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:481,1
    - Dst: Botan::mul
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:492,1
    - Dst: Montgomery_Int::value
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:494,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:496,1
    - Dst: BigInt::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:496,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:497,1
    - Dst: BigInt::sig_words
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:497,1
    - Dst: Botan::bigint_mul
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:502,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:502,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:502,1
    - Dst: BigInt::_data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:502,1
    - Dst: BigInt::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:502,1
    - Dst: Botan::_data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:502,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:502,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:502,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:502,1
    - Dst: Botan::bigint_add2
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:505,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:505,1
    - Dst: Botan::_data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:505,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:506,1
    - Dst: Botan::_from_words
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 6
    argNames:
    - ' j1'
    - ' j2_p'
    - ' j2'
    - ' c_monty'
    - ' p'
    - ' q'
    argTypes:
    - Montgomery_Int
    - Montgomery_Int
    - BigInt
    - Montgomery_Int
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 466
    functionDepth: 1
    functionLinenumber: 466
    functionLinenumberEnd: 509
    functionName: Botan::crt_recombine
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::bigint_add2
    - Botan::bigint_mul
    - Botan::sig_words
    - Botan::mul
    - BigInt::_data
    - Montgomery_Int::value
    - BOTAN_DEBUG_ASSERT
    - secure_vector::size
    - Botan::_data
    - BigInt::size
    - Botan::_from_words
    - secure_vector::data
    - Botan::size
    - Botan::repr
    - BigInt::sig_words
    linkageType: ''
    returnType: BigInt
    signature: "BigInt crt_recombine(const Montgomery_Int& j1,\n                     const
      Montgomery_Int& j2_p,\n                     const BigInt& j2,\n                     const
      Montgomery_Int& c_monty,\n                     const BigInt& p,\n                     const
      BigInt& q)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RSA_Private_Operation::public_modulus_bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 516
    functionName: Botan::RSA_Private_Operation::public_modulus_bits
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 2
    functionsReached:
    - Botan::RSA_Private_Operation::public_modulus_bits
    linkageType: ''
    returnType: size_t
    signature: size_t public_modulus_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RSA_Private_Operation::public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 518
    functionName: Botan::RSA_Private_Operation::public_modulus_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 3
    functionsReached:
    - Botan::RSA_Private_Operation::public_modulus_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t public_modulus_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:521,1
    - Dst: private_data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:522,1
    - Dst: reducer_mod_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:524,1
    - Dst: public_op
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:526,1
    - Dst: inverse_mod_rsa_public_modulus
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:527,1
    - Dst: get_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:527,1
    - Dst: p_bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:529,1
    - Dst: q_bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' rsa'
    - ' rng'
    argTypes:
    - RSA_PrivateKey
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 530
    functionName: Botan::RSA_Private_Operation::RSA_Private_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - inverse_mod_rsa_public_modulus
    - public_op
    - q_bits
    - get_n
    - reducer_mod_n
    - p_bits
    - public_data
    - private_data
    linkageType: ''
    returnType: void
    signature: void RSA_Private_Operation(const RSA_PrivateKey& rsa, RandomNumberGenerator&
      rng)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:533,1
    - Dst: Botan::RSA_Private_Operation::public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:533,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:534,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:536,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:536,1
    - Dst: get_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:537,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:538,1
    - Dst: unblind
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:543,1
    - Dst: Botan::RSA_Private_Operation::rsa_private_op
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:543,1
    - Dst: blind
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:543,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:544,1
    - Dst: public_op
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:544,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:545,1
    - Dst: Botan::RSA_Private_Operation::public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:545,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:545,1
    - Dst: BigInt::serialize_to
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:546,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - out
    - input
    argTypes:
    - std::span<uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 532
    functionDepth: 2
    functionLinenumber: 532
    functionLinenumberEnd: 547
    functionName: Botan::RSA_Private_Operation::raw_op
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - unblind
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - public_op
    - Botan::RSA_Private_Operation::rsa_private_op
    - get_n
    - BOTAN_ASSERT
    - BigInt::serialize_to
    - blind
    - Botan::RSA_Private_Operation::public_modulus_bytes
    - std::span<uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void raw_op(std::span<uint8_t> out, std::span<const uint8_t> input)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: primes_imbalanced
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:555,1
    - Dst: monty_exp
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:556,1
    - Dst: monty_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:556,1
    - Dst: get_d
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:556,1
    - Dst: get_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:556,1
    - Dst: rng
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:562,1
    - Dst: sig_words
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:574,1
    - Dst: Thread_Pool::global_instance
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:576,1
    - Dst: get_d1
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:578,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:578,1
    - Dst: monty_precompute
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:579,1
    - Dst: Botan::Montgomery_Int::from_wide_int
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:579,1
    - Dst: monty_p
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:579,1
    - Dst: monty_execute
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:580,1
    - Dst: rng
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:587,1
    - Dst: get_d2
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:588,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:588,1
    - Dst: monty_precompute
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:589,1
    - Dst: Botan::Montgomery_Int::from_wide_int
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:589,1
    - Dst: monty_q
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:589,1
    - Dst: monty_execute
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:590,1
    - Dst: auto::get
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:593,1
    - Dst: Botan::Montgomery_Int::from_wide_int
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:597,1
    - Dst: monty_p
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:597,1
    - Dst: crt_recombine
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:599,1
    - Dst: get_c_monty
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:599,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:599,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:599,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 600
    functionName: Botan::RSA_Private_Operation::rsa_private_op
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 2
    functionsReached:
    - primes_imbalanced
    - monty_n
    - get_p
    - auto::get
    - monty_execute
    - rng
    - monty_q
    - monty_exp
    - Thread_Pool::global_instance
    - crt_recombine
    - get_q
    - get_n
    - Botan::Montgomery_Int::from_wide_int
    - get_d
    - monty_precompute
    - sig_words
    - get_d2
    - monty_p
    - get_c_monty
    - get_d1
    linkageType: ''
    returnType: BigInt
    signature: BigInt rsa_private_op(const BigInt& m) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RSA_Signature_Operation::update
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:615,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:615,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 615
    functionDepth: 1
    functionLinenumber: 615
    functionLinenumberEnd: 615
    functionName: Botan::RSA_Signature_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 2
    functionsReached:
    - std::span<const uint8_t>::data
    - Botan::RSA_Signature_Operation::update
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> msg) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_modulus_bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:618,1
    - Dst: raw_data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:619,1
    - Dst: encoding_of
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:620,1
    - Dst: raw_op
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 625
    functionName: Botan::RSA_Signature_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_modulus_bits
    - raw_op
    - raw_data
    - encoding_of
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> sign(RandomNumberGenerator& rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 627
    functionName: Botan::RSA_Signature_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_modulus_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RSA_Signature_Operation::hash_function
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 631
    functionName: Botan::RSA_Signature_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 2
    functionsReached:
    - Botan::RSA_Signature_Operation::hash_function
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SignaturePaddingScheme::create_or_throw
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' rsa'
    - padding
    - ' rng'
    argTypes:
    - RSA_PrivateKey
    - std::string_view
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 634
    functionName: Botan::RSA_Signature_Operation::RSA_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::SignaturePaddingScheme::create_or_throw
    linkageType: ''
    returnType: void
    signature: void RSA_Signature_Operation(const RSA_PrivateKey& rsa, std::string_view
      padding, RandomNumberGenerator& rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:641,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:645,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:646,1
    - Dst: std::string::starts_with
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:649,1
    - Dst: Botan::PSS_Params::from_padding_name
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:650,1
    - Dst: name
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:650,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:651,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:654,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:654,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 640
    functionDepth: 1
    functionLinenumber: 640
    functionLinenumberEnd: 655
    functionName: Botan::RSA_Signature_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - name
    - AlgorithmIdentifier
    - std::string::starts_with
    - Invalid_Argument
    - Botan::OID::from_string
    - Botan::PSS_Params::from_padding_name
    - fmt
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier RSA_Signature_Operation::algorithm_identifier()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' rsa'
    - padding
    - ' rng'
    argTypes:
    - RSA_PrivateKey
    - std::string_view
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 661
    functionName: Botan::RSA_Decryption_Operation::RSA_Decryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_Decryption_Operation(const RSA_PrivateKey& rsa, std::string_view
      padding, RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 663
    functionDepth: 0
    functionLinenumber: 663
    functionLinenumberEnd: 663
    functionName: Botan::RSA_Decryption_Operation::plaintext_length
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_modulus_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t plaintext_length(size_t /*ctext_len*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raw_op
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 669
    functionName: Botan::RSA_Decryption_Operation::raw_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - raw_op
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> raw_decrypt(std::span<const uint8_t> input)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' key'
    - kdf
    - ' rng'
    argTypes:
    - RSA_PrivateKey
    - std::string_view
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 676
    functionName: Botan::RSA_KEM_Decryption_Operation::RSA_KEM_Decryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_KEM_Decryption_Operation(const RSA_PrivateKey& key, std::string_view
      kdf, RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:678,1
    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::RSA_KEM_Decryption_Operation::raw_kem_shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_modulus_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t raw_kem_shared_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:680,1
    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::RSA_KEM_Decryption_Operation::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_modulus_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t encapsulated_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raw_op
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:683,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: 684
      start: 682
    functionDepth: 0
    functionLinenumber: 682
    functionLinenumberEnd: 684
    functionName: Botan::RSA_KEM_Decryption_Operation::raw_kem_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - raw_op
    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: public_data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' rsa'
    argTypes:
    - RSA_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 692
    functionDepth: 0
    functionLinenumber: 692
    functionLinenumberEnd: 692
    functionName: Botan::RSA_Public_Operation::RSA_Public_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_data
    linkageType: ''
    returnType: void
    signature: void RSA_Public_Operation(const RSA_PublicKey& rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RSA_Public_Operation::public_modulus_bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 694
    functionDepth: 1
    functionLinenumber: 694
    functionLinenumberEnd: 694
    functionName: Botan::RSA_Public_Operation::public_modulus_bits
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 2
    functionsReached:
    - Botan::RSA_Public_Operation::public_modulus_bits
    linkageType: ''
    returnType: size_t
    signature: size_t public_modulus_bits() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:698,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:699,1
    - Dst: Botan::RSA_Public_Operation::public_op
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:702,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 697
    functionDepth: 1
    functionLinenumber: 697
    functionLinenumberEnd: 703
    functionName: Botan::RSA_Public_Operation::public_op
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 2
    functionsReached:
    - Botan::RSA_Public_Operation::public_op
    - get_n
    - Decoding_Error
    linkageType: ''
    returnType: BigInt
    signature: BigInt public_op(const BigInt& m) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RSA_Public_Operation::public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 705
    functionDepth: 1
    functionLinenumber: 705
    functionLinenumberEnd: 705
    functionName: Botan::RSA_Public_Operation::public_modulus_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 2
    functionsReached:
    - Botan::RSA_Public_Operation::public_modulus_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t public_modulus_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 707
    functionDepth: 0
    functionLinenumber: 707
    functionLinenumberEnd: 707
    functionName: '& get_n() const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - get_n
    linkageType: ''
    returnType: BigInt
    signature: BigInt & get_n() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' rsa'
    - padding
    argTypes:
    - RSA_PublicKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 717
    functionName: Botan::RSA_Encryption_Operation::RSA_Encryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_Encryption_Operation(const RSA_PublicKey& rsa, std::string_view
      padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 719
    functionName: Botan::RSA_Encryption_Operation::ciphertext_length
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_modulus_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t ciphertext_length(size_t /*ptext_len*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_modulus_bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 721
    functionName: Botan::RSA_Encryption_Operation::max_ptext_input_bits
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_modulus_bits
    linkageType: ''
    returnType: size_t
    signature: size_t max_ptext_input_bits() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_op
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:725,1
    - Dst: public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 723
    functionDepth: 0
    functionLinenumber: 723
    functionLinenumberEnd: 726
    functionName: Botan::RSA_Encryption_Operation::raw_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_op
    - public_modulus_bytes
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> raw_encrypt(std::span<const uint8_t> input, RandomNumberGenerator&
      /*rng*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RSA_Verify_Operation::update
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:732,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:732,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 732
    functionDepth: 1
    functionLinenumber: 732
    functionLinenumberEnd: 732
    functionName: Botan::RSA_Verify_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 2
    functionsReached:
    - Botan::RSA_Verify_Operation::update
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> msg) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raw_data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:735,1
    - Dst: Botan::RSA_Verify_Operation::recover_message_repr
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:736,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:736,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:736,1
    - Dst: verify
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:737,1
    - Dst: public_modulus_bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 734
    functionDepth: 1
    functionLinenumber: 734
    functionLinenumberEnd: 738
    functionName: Botan::RSA_Verify_Operation::is_valid_signature
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::RSA_Verify_Operation::recover_message_repr
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - raw_data
    - public_modulus_bits
    - verify
    linkageType: ''
    returnType: bool
    signature: bool is_valid_signature(std::span<const uint8_t> sig) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SignaturePaddingScheme::create_or_throw
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' rsa'
    - padding
    argTypes:
    - RSA_PublicKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 740
    functionDepth: 1
    functionLinenumber: 740
    functionLinenumberEnd: 741
    functionName: Botan::RSA_Verify_Operation::RSA_Verify_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::SignaturePaddingScheme::create_or_throw
    linkageType: ''
    returnType: void
    signature: void RSA_Verify_Operation(const RSA_PublicKey& rsa, std::string_view
      padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RSA_Verify_Operation::hash_function
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 743
    functionDepth: 1
    functionLinenumber: 743
    functionLinenumberEnd: 743
    functionName: Botan::RSA_Verify_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 2
    functionsReached:
    - Botan::RSA_Verify_Operation::hash_function
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:747,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:748,1
    - Dst: public_op
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:751,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - input
    - input_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 752
    functionName: Botan::RSA_Verify_Operation::recover_message_repr
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 2
    functionsReached:
    - public_op
    - Decoding_Error
    - public_modulus_bytes
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> recover_message_repr(const uint8_t input[], size_t
      input_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' key'
    - kdf
    argTypes:
    - RSA_PublicKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 761
    functionName: Botan::RSA_KEM_Encryption_Operation::RSA_KEM_Encryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_KEM_Encryption_Operation(const RSA_PublicKey& key, std::string_view
      kdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 764
    functionName: Botan::RSA_KEM_Encryption_Operation::raw_kem_shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_modulus_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t raw_kem_shared_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 766
    functionDepth: 0
    functionLinenumber: 766
    functionLinenumberEnd: 766
    functionName: Botan::RSA_KEM_Encryption_Operation::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_modulus_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t encapsulated_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:771,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::retrieve_one
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:771,1
    - Dst: get_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:771,1
    - Dst: public_op
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:772,1
    - Dst: BigInt::serialize_to
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:774,1
    - Dst: BigInt::serialize_to
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - out_encapsulated_key
    - raw_shared_key
    - ' rng'
    argTypes:
    - std::span<uint8_t>
    - std::span<uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 768
    functionDepth: 3
    functionLinenumber: 768
    functionLinenumberEnd: 776
    functionName: Botan::RSA_KEM_Encryption_Operation::raw_kem_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_op
    - Botan::BigInt::random_integer
    - Botan_Tests::RFC8448_Session_Manager::retrieve_one
    - get_n
    - BigInt::serialize_to
    linkageType: ''
    returnType: void
    signature: "void raw_kem_encrypt(std::span<uint8_t> out_encapsulated_key,\n                           std::span<uint8_t>
      raw_shared_key,\n                           RandomNumberGenerator& rng) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:784,1
    - Dst: std::make_unique<RSA_Encryption_Operation>
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:785,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:787,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:787,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 781
    functionDepth: 0
    functionLinenumber: 781
    functionLinenumberEnd: 788
    functionName: Botan::RSA_PublicKey::create_encryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - std::make_unique<RSA_Encryption_Operation>
    - algo_name
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Encryption>
    signature: "std::unique_ptr<PK_Ops::Encryption> RSA_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/rsa/rsa.cpp:792,1
    - Dst: std::make_unique<RSA_KEM_Encryption_Operation>
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:793,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:795,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:795,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 790
    functionDepth: 0
    functionLinenumber: 790
    functionLinenumberEnd: 796
    functionName: Botan::RSA_PublicKey::create_kem_encryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - algo_name
    - Provider_Not_Found
    - std::make_unique<RSA_KEM_Encryption_Operation>
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::KEM_Encryption>
    signature: "std::unique_ptr<PK_Ops::KEM_Encryption> RSA_PublicKey::create_kem_encryption_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/rsa/rsa.cpp:800,1
    - Dst: std::make_unique<RSA_Verify_Operation>
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:801,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:804,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:804,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 805
    functionName: Botan::RSA_PublicKey::create_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - algo_name
    - Provider_Not_Found
    - std::make_unique<RSA_Verify_Operation>
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> RSA_PublicKey::create_verification_op(std::string_view
      params,\n                                                                            std::string_view
      provider) const"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Botan::split_on
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:810,1
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:810,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:812,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:812,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:813,1
    - Dst: Botan::parameters
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:820,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:821,1
    - Dst: Botan::parameters
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:824,1
    - Dst: PSS_Params::hash_function
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:828,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:832,1
    - Dst: PSS_Params::mgf_function
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:835,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:836,1
    - Dst: PSS_Params::hash_algid
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:841,1
    - Dst: PSS_Params::mgf_hash_algid
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:841,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:842,1
    - Dst: PSS_Params::trailer_field
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:845,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:846,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:849,1
    - Dst: PSS_Params::salt_length
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:849,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 23
    argCount: 1
    argNames:
    - ' alg_id'
    argTypes:
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 853
    functionName: Botan::parse_rsa_signature_algorithm
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - auto::empty
    - Botan::fmt
    - PSS_Params::mgf_hash_algid
    - Botan::split_on
    - Botan::oid
    - PSS_Params::trailer_field
    - PSS_Params::salt_length
    - PSS_Params::mgf_function
    - PSS_Params::hash_algid
    - PSS_Params::hash_function
    - auto::size
    - Botan::Decoding_Error
    - Botan::parameters
    linkageType: ''
    returnType: std::string
    signature: std::string parse_rsa_signature_algorithm(const AlgorithmIdentifier&
      alg_id)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Botan::split_on
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:810,1
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:810,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:812,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:812,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:813,1
    - Dst: Botan::parameters
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:820,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:821,1
    - Dst: Botan::parameters
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:824,1
    - Dst: PSS_Params::hash_function
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:828,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:832,1
    - Dst: PSS_Params::mgf_function
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:835,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:836,1
    - Dst: PSS_Params::hash_algid
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:841,1
    - Dst: PSS_Params::mgf_hash_algid
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:841,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:842,1
    - Dst: PSS_Params::trailer_field
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:845,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:846,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:849,1
    - Dst: PSS_Params::salt_length
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:849,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 23
    argCount: 1
    argNames:
    - ' alg_id'
    argTypes:
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 853
    functionName: Botan::parse_rsa_signature_algorithm
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - auto::empty
    - Botan::fmt
    - PSS_Params::mgf_hash_algid
    - Botan::split_on
    - Botan::oid
    - PSS_Params::trailer_field
    - PSS_Params::salt_length
    - PSS_Params::mgf_function
    - PSS_Params::hash_algid
    - PSS_Params::hash_function
    - auto::size
    - Botan::Decoding_Error
    - Botan::parameters
    linkageType: ''
    returnType: std::string
    signature: std::string parse_rsa_signature_algorithm(const AlgorithmIdentifier&
      alg_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:859,1
    - Dst: std::make_unique<RSA_Verify_Operation>
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:860,1
    - Dst: parse_rsa_signature_algorithm
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:860,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:863,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:863,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - ' alg_id'
    - provider
    argTypes:
    - AlgorithmIdentifier
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 857
    functionDepth: 0
    functionLinenumber: 857
    functionLinenumberEnd: 864
    functionName: Botan::RSA_PublicKey::create_x509_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - std::make_unique<RSA_Verify_Operation>
    - std::string_view::empty
    - parse_rsa_signature_algorithm
    - algo_name
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> RSA_PublicKey::create_x509_verification_op(const
      AlgorithmIdentifier& alg_id,\n                                                                                 std::string_view
      provider) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:869,1
    - Dst: std::make_unique<RSA_Decryption_Operation>
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:870,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:873,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:873,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: 874
      start: 866
    functionDepth: 0
    functionLinenumber: 866
    functionLinenumberEnd: 874
    functionName: Botan::RSA_PrivateKey::create_decryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - algo_name
    - Provider_Not_Found
    - std::make_unique<RSA_Decryption_Operation>
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Decryption>
    signature: "std::unique_ptr<PK_Ops::Decryption> RSA_PrivateKey::create_decryption_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/rsa/rsa.cpp:879,1
    - Dst: std::make_unique<RSA_KEM_Decryption_Operation>
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:880,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:883,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:883,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: 884
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 884
    functionName: Botan::RSA_PrivateKey::create_kem_decryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - std::make_unique<RSA_KEM_Decryption_Operation>
    - algo_name
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::KEM_Decryption>
    signature: "std::unique_ptr<PK_Ops::KEM_Decryption> RSA_PrivateKey::create_kem_decryption_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/rsa/rsa.cpp:889,1
    - Dst: std::make_unique<RSA_Signature_Operation>
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:890,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:893,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:893,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: 894
      start: 886
    functionDepth: 0
    functionLinenumber: 886
    functionLinenumberEnd: 894
    functionName: Botan::RSA_PrivateKey::create_signature_op
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<RSA_Signature_Operation>
    - Provider_Not_Found
    - algo_name
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Signature>
    signature: "std::unique_ptr<PK_Ops::Signature> RSA_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/rsa/rsa.cpp:38,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:39,1
    - Dst: Botan::Barrett_Reduction::for_public_modulus
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:40,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:42,1
    - Dst: bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:43,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 2
    argNames:
    - ' n'
    - ' e'
    argTypes:
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 43
    functionName: Botan::RSA_Public_Data::RSA_Public_Data
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::Barrett_Reduction::for_public_modulus
    - std::move
    - bits
    - bytes
    linkageType: ''
    returnType: void
    signature: void RSA_Public_Data(BigInt&& n, BigInt&& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: monty_precompute
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:47,1
    - Dst: monty_execute_vartime
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: Botan::RSA_Public_Data::public_op
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - monty_precompute
    - monty_execute_vartime
    linkageType: ''
    returnType: BigInt
    signature: BigInt public_op(const BigInt& m) 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: '& get_n() const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & get_n() 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: '& get_e() const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & get_e() 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::RSA_Public_Data::public_modulus_bits
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t public_modulus_bits() 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::RSA_Public_Data::public_modulus_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t public_modulus_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: '& monty_n() const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Montgomery_Params
    signature: Montgomery_Params & monty_n() 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: '& reducer_mod_n() const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Barrett_Reduction
    signature: Barrett_Reduction & reducer_mod_n() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:75,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:76,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:77,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:78,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:79,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:80,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:84,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:85,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 1
    argCount: 6
    argNames:
    - ' d'
    - ' p'
    - ' q'
    - ' d1'
    - ' d2'
    - ' c'
    argTypes:
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 85
    functionName: Botan::RSA_Private_Data::RSA_Private_Data
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - std::move
    - bits
    linkageType: ''
    returnType: void
    signature: void RSA_Private_Data(BigInt&& d, BigInt&& p, BigInt&& q, BigInt&&
      d1, BigInt&& d2, BigInt&& c)
  - 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: '& get_d() const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & get_d() 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_p() const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & get_p() 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: '& get_q() const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & get_q() 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: '& get_d1() const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & get_d1() 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: '& get_d2() const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & get_d2() 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: '& get_c() const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BigInt
    signature: BigInt & get_c() 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: '& get_c_monty() const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Montgomery_Int
    signature: Montgomery_Int & get_c_monty() 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: '& monty_p() const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Montgomery_Params
    signature: Montgomery_Params & monty_p() 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: '& monty_q() const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Montgomery_Params
    signature: Montgomery_Params & monty_q() 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::RSA_Private_Data::p_bits
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 1
    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: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: Botan::RSA_Private_Data::q_bits
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t q_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RSA_Private_Data::p_bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:109,1
    - Dst: Botan::RSA_Private_Data::q_bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp: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::RSA_Private_Data::primes_imbalanced
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::RSA_Private_Data::q_bits
    - Botan::RSA_Private_Data::p_bits
    linkageType: ''
    returnType: bool
    signature: bool primes_imbalanced() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    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: Botan::RSA_PublicKey::public_data
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<const RSA_Public_Data>
    signature: std::shared_ptr<const RSA_Public_Data> RSA_PublicKey::public_data()
      const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:132,1
    - Dst: get_e
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:134,1
    - Dst: Public_Key::get_int_field
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:136,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - field
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 138
    functionName: '& RSA_PublicKey::get_int_field(std::string_view field) const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - get_n
    - Public_Key::get_int_field
    - get_e
    linkageType: ''
    returnType: BigInt
    signature: BigInt & RSA_PublicKey::get_int_field(std::string_view field) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<RSA_PrivateKey>
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:141,1
    - Dst: public_modulus_bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:141,1
    - Dst: get_e
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 142
    functionName: Botan::RSA_PublicKey::generate_another
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_modulus_bits
    - std::make_unique<RSA_PrivateKey>
    - get_e
    linkageType: ''
    returnType: std::unique_ptr<Private_Key>
    signature: std::unique_ptr<Private_Key> RSA_PublicKey::generate_another(RandomNumberGenerator&
      rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.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: '& RSA_PublicKey::get_n() const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - get_n
    linkageType: ''
    returnType: BigInt
    signature: BigInt & RSA_PublicKey::get_n() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_e
      Src: /src/botan/src/lib/pubkey/rsa/rsa.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: '& RSA_PublicKey::get_e() const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - get_e
    linkageType: ''
    returnType: BigInt
    signature: BigInt & RSA_PublicKey::get_e() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_negative
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:153,1
    - Dst: is_even
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:153,1
    - Dst: bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:153,1
    - Dst: is_negative
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:153,1
    - Dst: is_even
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:153,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:154,1
    - Dst: std::make_shared<RSA_Public_Data>
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:156,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:156,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:156,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 5
    argCount: 2
    argNames:
    - ' n'
    - ' e'
    argTypes:
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 157
    functionName: Botan::RSA_PublicKey::init
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 5
    functionsReached:
    - std::make_shared<RSA_Public_Data>
    - Decoding_Error
    - std::move
    - is_negative
    - bits
    - is_even
    linkageType: ''
    returnType: void
    signature: void RSA_PublicKey::init(BigInt&& n, BigInt&& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BER_Decoder
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:162,1
    - Dst: Botan::RSA_PublicKey::init
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:164,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:164,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key_bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 165
    functionName: Botan::RSA_PublicKey::RSA_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 4
    functionsReached:
    - BER_Decoder
    - std::move
    - Botan::RSA_PublicKey::init
    linkageType: ''
    returnType: void
    signature: void RSA_PublicKey::RSA_PublicKey(const AlgorithmIdentifier& /*unused*/,
      std::span<const uint8_t> key_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - op
    argTypes:
    - PublicKeyOperation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 170
    functionName: Botan::RSA_PublicKey::supports_operation
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RSA_PublicKey::supports_operation(PublicKeyOperation op) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RSA_PublicKey::init
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:175,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:175,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' modulus'
    - ' exponent'
    argTypes:
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 176
    functionName: Botan::RSA_PublicKey::RSA_PublicKey
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 4
    functionsReached:
    - std::move
    - Botan::RSA_PublicKey::init
    linkageType: ''
    returnType: void
    signature: void RSA_PublicKey::RSA_PublicKey(const BigInt& modulus, const BigInt&
      exponent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_modulus_bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.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::RSA_PublicKey::key_length
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 1
    functionsReached:
    - public_modulus_bits
    linkageType: ''
    returnType: size_t
    signature: size_t RSA_PublicKey::key_length() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: if_work_factor
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:183,1
    - Dst: Botan::RSA_PublicKey::key_length
      Src: /src/botan/src/lib/pubkey/rsa/rsa.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::RSA_PublicKey::estimated_strength
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - if_work_factor
    - Botan::RSA_PublicKey::key_length
    linkageType: ''
    returnType: size_t
    signature: size_t RSA_PublicKey::estimated_strength() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:187,1
    - Dst: object_identifier
      Src: /src/botan/src/lib/pubkey/rsa/rsa.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::RSA_PublicKey::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - AlgorithmIdentifier
    - object_identifier
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier RSA_PublicKey::algorithm_identifier() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 190
    functionDepth: 0
    functionLinenumber: 190
    functionLinenumberEnd: 192
    functionName: Botan::RSA_PublicKey::raw_public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - Not_Implemented
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> RSA_PublicKey::raw_public_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_Encoder::start_sequence
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:197,1
    - Dst: get_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:197,1
    - Dst: get_e
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 200
    functionName: Botan::RSA_PublicKey::public_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - get_n
    - get_e
    - DER_Encoder::start_sequence
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> RSA_PublicKey::public_key_bits() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:206,1
    - Dst: get_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:206,1
    - Dst: get_e
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:206,1
    - Dst: get_e
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:206,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 210
    functionName: Botan::RSA_PublicKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - get_n
    - get_e
    linkageType: ''
    returnType: bool
    signature: bool RSA_PublicKey::check_key(RandomNumberGenerator& /*rng*/, bool
      /*strong*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 214
    functionName: Botan::RSA_PrivateKey::private_data
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::shared_ptr<const RSA_Private_Data>
    signature: std::shared_ptr<const RSA_Private_Data> RSA_PrivateKey::private_data()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DER_Encoder
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:217,1
    - Dst: static_cast<size_t>
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:219,1
    - Dst: get_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:220,1
    - Dst: get_e
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:221,1
    - Dst: get_d
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:222,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:223,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:224,1
    - Dst: get_d1
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:225,1
    - Dst: get_d2
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:226,1
    - Dst: get_c
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 230
    functionName: Botan::RSA_PrivateKey::private_key_bits
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - static_cast<size_t>
    - get_p
    - get_d2
    - get_q
    - get_c
    - get_n
    - get_e
    - DER_Encoder
    - get_d
    - get_d1
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> RSA_PrivateKey::private_key_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 234
    functionName: '& RSA_PrivateKey::get_p() const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - get_p
    linkageType: ''
    returnType: BigInt
    signature: BigInt & RSA_PrivateKey::get_p() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:237,1
    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: '& RSA_PrivateKey::get_q() const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - get_q
    linkageType: ''
    returnType: BigInt
    signature: BigInt & RSA_PrivateKey::get_q() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_d
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:241,1
    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: '& RSA_PrivateKey::get_d() const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - get_d
    linkageType: ''
    returnType: BigInt
    signature: BigInt & RSA_PrivateKey::get_d() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_c
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:245,1
    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: '& RSA_PrivateKey::get_c() const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - get_c
    linkageType: ''
    returnType: BigInt
    signature: BigInt & RSA_PrivateKey::get_c() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_d1
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 250
    functionName: '& RSA_PrivateKey::get_d1() const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - get_d1
    linkageType: ''
    returnType: BigInt
    signature: BigInt & RSA_PrivateKey::get_d1() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_d2
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 254
    functionName: '& RSA_PrivateKey::get_d2() const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - get_d2
    linkageType: ''
    returnType: BigInt
    signature: BigInt & RSA_PrivateKey::get_d2() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<RSA_Private_Data>
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:257,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:258,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:258,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:258,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:258,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:258,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:258,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 2
    argCount: 6
    argNames:
    - ' d'
    - ' p'
    - ' q'
    - ' d1'
    - ' d2'
    - ' c'
    argTypes:
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 259
    functionName: Botan::RSA_PrivateKey::init
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 3
    functionsReached:
    - std::make_shared<RSA_Private_Data>
    - std::move
    linkageType: ''
    returnType: void
    signature: void RSA_PrivateKey::init(BigInt&& d, BigInt&& p, BigInt&& q, BigInt&&
      d1, BigInt&& d2, BigInt&& c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BER_Decoder
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:271,1
    - Dst: Botan::RSA_PublicKey::init
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:284,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:284,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:284,1
    - Dst: Botan::RSA_PrivateKey::init
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:286,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:286,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:286,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:286,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:286,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:286,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - key_bits
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 287
    functionName: Botan::RSA_PrivateKey::RSA_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 4
    functionsReached:
    - BER_Decoder
    - std::move
    - Botan::RSA_PublicKey::init
    - Botan::RSA_PrivateKey::init
    linkageType: ''
    returnType: void
    signature: void RSA_PrivateKey::RSA_PrivateKey(const AlgorithmIdentifier& /*unused*/,
      std::span<const uint8_t> key_bits)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BigInt::is_zero
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:294,1
    - Dst: BigInt::is_zero
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:305,1
    - Dst: lcm
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:306,1
    - Dst: compute_rsa_secret_exponent
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:307,1
    - Dst: ct_modulo
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:310,1
    - Dst: ct_modulo
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:311,1
    - Dst: inverse_mod_secret_prime
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:312,1
    - Dst: ct_modulo
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:312,1
    - Dst: Botan::RSA_PublicKey::init
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:314,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:314,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:314,1
    - Dst: Botan::RSA_PrivateKey::init
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:316,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:316,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:316,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:316,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:316,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:316,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:316,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - ' prime1'
    - ' prime2'
    - ' exp'
    - ' d_exp'
    - ' mod'
    argTypes:
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 289
    functionDepth: 4
    functionLinenumber: 289
    functionLinenumberEnd: 317
    functionName: Botan::RSA_PrivateKey::RSA_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 4
    functionsReached:
    - std::move
    - inverse_mod_secret_prime
    - Botan::RSA_PrivateKey::init
    - BigInt::is_zero
    - ct_modulo
    - compute_rsa_secret_exponent
    - Botan::RSA_PublicKey::init
    - lcm
    linkageType: ''
    returnType: void
    signature: "void RSA_PrivateKey::RSA_PrivateKey(\n   const BigInt& prime1, const
      BigInt& prime2, const BigInt& exp, const BigInt& d_exp, const BigInt& mod)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:324,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:324,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:328,1
    - Dst: Botan::BigInt::from_u64
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:337,1
    - Dst: Internal_Error
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:341,1
    - Dst: generate_rsa_prime
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:345,1
    - Dst: generate_rsa_prime
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:346,1
    - Dst: BigInt::bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:349,1
    - Dst: BigInt::bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:355,1
    - Dst: lcm
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:365,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:367,1
    - Dst: low_zero_bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:367,1
    - Dst: compute_rsa_secret_exponent
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:369,1
    - Dst: ct_modulo
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:370,1
    - Dst: ct_modulo
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:371,1
    - Dst: inverse_mod_secret_prime
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:372,1
    - Dst: ct_modulo
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:372,1
    - Dst: Botan::RSA_PublicKey::init
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:374,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:374,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:374,1
    - Dst: Botan::RSA_PrivateKey::init
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:376,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:376,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:376,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:376,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:376,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:376,1
    - Dst: std::move
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:376,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 3
    argNames:
    - ' rng'
    - bits
    - exp
    argTypes:
    - RandomNumberGenerator
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 377
    functionName: Botan::RSA_PrivateKey::RSA_PrivateKey
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 4
    functionsReached:
    - std::move
    - BigInt::bits
    - lcm
    - inverse_mod_secret_prime
    - Botan::RSA_PrivateKey::init
    - BOTAN_DEBUG_ASSERT
    - generate_rsa_prime
    - Internal_Error
    - Botan::BigInt::from_u64
    - low_zero_bits
    - compute_rsa_secret_exponent
    - Invalid_Argument
    - ct_modulo
    - Botan::RSA_PublicKey::init
    - fmt
    linkageType: ''
    returnType: void
    signature: void RSA_PrivateKey::RSA_PrivateKey(RandomNumberGenerator& rng, size_t
      bits, size_t exp)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:381,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:383,1
    - Dst: get_d
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:385,1
    - Dst: get_c
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:387,1
    - Dst: get_d1
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:389,1
    - Dst: get_d2
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:391,1
    - Dst: RSA_PublicKey::get_int_field
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:393,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - field
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 395
    functionName: '& RSA_PrivateKey::get_int_field(std::string_view field) const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - RSA_PublicKey::get_int_field
    - get_p
    - get_d2
    - get_c
    - get_q
    - get_d
    - get_d1
    linkageType: ''
    returnType: BigInt
    signature: BigInt & RSA_PrivateKey::get_int_field(std::string_view field) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_unique<RSA_PublicKey>
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:398,1
    - Dst: get_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:398,1
    - Dst: get_e
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:398,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 399
    functionName: Botan::RSA_PrivateKey::public_key
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - get_n
    - get_e
    - std::make_unique<RSA_PublicKey>
    linkageType: ''
    returnType: std::unique_ptr<Public_Key>
    signature: std::unique_ptr<Public_Key> RSA_PrivateKey::public_key() const
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: get_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:405,1
    - Dst: get_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:405,1
    - Dst: get_e
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:405,1
    - Dst: get_e
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:405,1
    - Dst: get_d
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:409,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:409,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:409,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:413,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:413,1
    - Dst: get_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:413,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:417,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:417,1
    - Dst: get_d1
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:421,1
    - Dst: ct_modulo
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:421,1
    - Dst: get_d
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:421,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:421,1
    - Dst: get_d2
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:424,1
    - Dst: ct_modulo
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:424,1
    - Dst: get_d
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:424,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:424,1
    - Dst: get_c
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:427,1
    - Dst: inverse_mod_secret_prime
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:427,1
    - Dst: ct_modulo
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:427,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:427,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:427,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:427,1
    - Dst: is_prime
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:433,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:433,1
    - Dst: is_prime
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:436,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:436,1
    - Dst: ct_modulo
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:441,1
    - Dst: get_e
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:441,1
    - Dst: get_d
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:441,1
    - Dst: lcm
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:441,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:441,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:441,1
    - Dst: Botan::KeyPair::signature_consistency_check
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:451,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 35
    argCount: 2
    argNames:
    - ' rng'
    - strong
    argTypes:
    - RandomNumberGenerator
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 455
    functionName: Botan::RSA_PrivateKey::check_key
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::KeyPair::signature_consistency_check
    - lcm
    - inverse_mod_secret_prime
    - get_p
    - is_prime
    - get_d2
    - get_q
    - get_c
    - get_n
    - ct_modulo
    - get_e
    - get_d
    - get_d1
    linkageType: ''
    returnType: bool
    signature: bool RSA_PrivateKey::check_key(RandomNumberGenerator& rng, bool strong)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::sig_words
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:473,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:474,1
    - Dst: Botan::sig_words
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:474,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:479,1
    - Dst: Botan::repr
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:479,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:480,1
    - Dst: Botan::repr
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:480,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:481,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:481,1
    - Dst: Botan::mul
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:492,1
    - Dst: Montgomery_Int::value
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:494,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:496,1
    - Dst: BigInt::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:496,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:497,1
    - Dst: BigInt::sig_words
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:497,1
    - Dst: Botan::bigint_mul
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:502,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:502,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:502,1
    - Dst: BigInt::_data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:502,1
    - Dst: BigInt::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:502,1
    - Dst: Botan::_data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:502,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:502,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:502,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:502,1
    - Dst: Botan::bigint_add2
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:505,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:505,1
    - Dst: Botan::_data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:505,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:506,1
    - Dst: Botan::_from_words
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 6
    argNames:
    - ' j1'
    - ' j2_p'
    - ' j2'
    - ' c_monty'
    - ' p'
    - ' q'
    argTypes:
    - Montgomery_Int
    - Montgomery_Int
    - BigInt
    - Montgomery_Int
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 466
    functionDepth: 1
    functionLinenumber: 466
    functionLinenumberEnd: 509
    functionName: Botan::crt_recombine
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::bigint_add2
    - Botan::bigint_mul
    - Botan::sig_words
    - Botan::mul
    - BigInt::_data
    - Montgomery_Int::value
    - BOTAN_DEBUG_ASSERT
    - secure_vector::size
    - Botan::_data
    - BigInt::size
    - Botan::_from_words
    - secure_vector::data
    - Botan::size
    - Botan::repr
    - BigInt::sig_words
    linkageType: ''
    returnType: BigInt
    signature: "BigInt crt_recombine(const Montgomery_Int& j1,\n                     const
      Montgomery_Int& j2_p,\n                     const BigInt& j2,\n                     const
      Montgomery_Int& c_monty,\n                     const BigInt& p,\n                     const
      BigInt& q)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RSA_Private_Operation::public_modulus_bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 516
    functionName: Botan::RSA_Private_Operation::public_modulus_bits
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 3
    functionsReached:
    - Botan::RSA_Private_Operation::public_modulus_bits
    linkageType: ''
    returnType: size_t
    signature: size_t public_modulus_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RSA_Private_Operation::public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 518
    functionName: Botan::RSA_Private_Operation::public_modulus_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 5
    functionsReached:
    - Botan::RSA_Private_Operation::public_modulus_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t public_modulus_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:521,1
    - Dst: private_data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:522,1
    - Dst: reducer_mod_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:524,1
    - Dst: public_op
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:526,1
    - Dst: inverse_mod_rsa_public_modulus
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:527,1
    - Dst: get_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:527,1
    - Dst: p_bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:529,1
    - Dst: q_bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' rsa'
    - ' rng'
    argTypes:
    - RSA_PrivateKey
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 530
    functionName: Botan::RSA_Private_Operation::RSA_Private_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - inverse_mod_rsa_public_modulus
    - public_op
    - q_bits
    - get_n
    - reducer_mod_n
    - p_bits
    - public_data
    - private_data
    linkageType: ''
    returnType: void
    signature: void RSA_Private_Operation(const RSA_PrivateKey& rsa, RandomNumberGenerator&
      rng)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:533,1
    - Dst: Botan::RSA_Private_Operation::public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:533,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:534,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:536,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:536,1
    - Dst: get_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:537,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:538,1
    - Dst: unblind
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:543,1
    - Dst: Botan::RSA_Private_Operation::rsa_private_op
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:543,1
    - Dst: blind
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:543,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:544,1
    - Dst: public_op
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:544,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:545,1
    - Dst: Botan::RSA_Private_Operation::public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:545,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:545,1
    - Dst: BigInt::serialize_to
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:546,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - out
    - input
    argTypes:
    - std::span<uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 532
    functionDepth: 2
    functionLinenumber: 532
    functionLinenumberEnd: 547
    functionName: Botan::RSA_Private_Operation::raw_op
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - unblind
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - public_op
    - Botan::RSA_Private_Operation::rsa_private_op
    - get_n
    - BOTAN_ASSERT
    - BigInt::serialize_to
    - blind
    - Botan::RSA_Private_Operation::public_modulus_bytes
    - std::span<uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void raw_op(std::span<uint8_t> out, std::span<const uint8_t> input)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: primes_imbalanced
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:555,1
    - Dst: monty_exp
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:556,1
    - Dst: monty_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:556,1
    - Dst: get_d
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:556,1
    - Dst: get_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:556,1
    - Dst: rng
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:562,1
    - Dst: sig_words
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:574,1
    - Dst: Thread_Pool::global_instance
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:576,1
    - Dst: get_d1
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:578,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:578,1
    - Dst: monty_precompute
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:579,1
    - Dst: Botan::Montgomery_Int::from_wide_int
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:579,1
    - Dst: monty_p
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:579,1
    - Dst: monty_execute
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:580,1
    - Dst: rng
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:587,1
    - Dst: get_d2
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:588,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:588,1
    - Dst: monty_precompute
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:589,1
    - Dst: Botan::Montgomery_Int::from_wide_int
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:589,1
    - Dst: monty_q
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:589,1
    - Dst: monty_execute
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:590,1
    - Dst: auto::get
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:593,1
    - Dst: Botan::Montgomery_Int::from_wide_int
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:597,1
    - Dst: monty_p
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:597,1
    - Dst: crt_recombine
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:599,1
    - Dst: get_c_monty
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:599,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:599,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:599,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 600
    functionName: Botan::RSA_Private_Operation::rsa_private_op
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 3
    functionsReached:
    - primes_imbalanced
    - monty_n
    - get_p
    - auto::get
    - monty_execute
    - rng
    - monty_q
    - monty_exp
    - Thread_Pool::global_instance
    - crt_recombine
    - get_q
    - get_n
    - Botan::Montgomery_Int::from_wide_int
    - get_d
    - monty_precompute
    - sig_words
    - get_d2
    - monty_p
    - get_c_monty
    - get_d1
    linkageType: ''
    returnType: BigInt
    signature: BigInt rsa_private_op(const BigInt& m) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RSA_Signature_Operation::update
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:615,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:615,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 615
    functionDepth: 1
    functionLinenumber: 615
    functionLinenumberEnd: 615
    functionName: Botan::RSA_Signature_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 3
    functionsReached:
    - std::span<const uint8_t>::data
    - Botan::RSA_Signature_Operation::update
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> msg) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_modulus_bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:618,1
    - Dst: raw_data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:619,1
    - Dst: encoding_of
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:620,1
    - Dst: raw_op
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 625
    functionName: Botan::RSA_Signature_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_modulus_bits
    - raw_op
    - raw_data
    - encoding_of
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> sign(RandomNumberGenerator& rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 627
    functionName: Botan::RSA_Signature_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_modulus_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RSA_Signature_Operation::hash_function
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 631
    functionName: Botan::RSA_Signature_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 3
    functionsReached:
    - Botan::RSA_Signature_Operation::hash_function
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SignaturePaddingScheme::create_or_throw
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' rsa'
    - padding
    - ' rng'
    argTypes:
    - RSA_PrivateKey
    - std::string_view
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 634
    functionName: Botan::RSA_Signature_Operation::RSA_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::SignaturePaddingScheme::create_or_throw
    linkageType: ''
    returnType: void
    signature: void RSA_Signature_Operation(const RSA_PrivateKey& rsa, std::string_view
      padding, RandomNumberGenerator& rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:641,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:645,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:646,1
    - Dst: std::string::starts_with
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:649,1
    - Dst: Botan::PSS_Params::from_padding_name
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:650,1
    - Dst: name
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:650,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:651,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:654,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:654,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 640
    functionDepth: 1
    functionLinenumber: 640
    functionLinenumberEnd: 655
    functionName: Botan::RSA_Signature_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - name
    - AlgorithmIdentifier
    - std::string::starts_with
    - Invalid_Argument
    - Botan::OID::from_string
    - Botan::PSS_Params::from_padding_name
    - fmt
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier RSA_Signature_Operation::algorithm_identifier()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' rsa'
    - padding
    - ' rng'
    argTypes:
    - RSA_PrivateKey
    - std::string_view
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 661
    functionName: Botan::RSA_Decryption_Operation::RSA_Decryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_Decryption_Operation(const RSA_PrivateKey& rsa, std::string_view
      padding, RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 663
    functionDepth: 0
    functionLinenumber: 663
    functionLinenumberEnd: 663
    functionName: Botan::RSA_Decryption_Operation::plaintext_length
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_modulus_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t plaintext_length(size_t /*ctext_len*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raw_op
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 669
    functionName: Botan::RSA_Decryption_Operation::raw_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - raw_op
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> raw_decrypt(std::span<const uint8_t> input)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' key'
    - kdf
    - ' rng'
    argTypes:
    - RSA_PrivateKey
    - std::string_view
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 676
    functionName: Botan::RSA_KEM_Decryption_Operation::RSA_KEM_Decryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_KEM_Decryption_Operation(const RSA_PrivateKey& key, std::string_view
      kdf, RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:678,1
    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::RSA_KEM_Decryption_Operation::raw_kem_shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_modulus_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t raw_kem_shared_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:680,1
    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::RSA_KEM_Decryption_Operation::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_modulus_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t encapsulated_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raw_op
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:683,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: 684
      start: 682
    functionDepth: 0
    functionLinenumber: 682
    functionLinenumberEnd: 684
    functionName: Botan::RSA_KEM_Decryption_Operation::raw_kem_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - raw_op
    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: public_data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' rsa'
    argTypes:
    - RSA_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 692
    functionDepth: 0
    functionLinenumber: 692
    functionLinenumberEnd: 692
    functionName: Botan::RSA_Public_Operation::RSA_Public_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_data
    linkageType: ''
    returnType: void
    signature: void RSA_Public_Operation(const RSA_PublicKey& rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RSA_Public_Operation::public_modulus_bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 694
    functionDepth: 1
    functionLinenumber: 694
    functionLinenumberEnd: 694
    functionName: Botan::RSA_Public_Operation::public_modulus_bits
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 3
    functionsReached:
    - Botan::RSA_Public_Operation::public_modulus_bits
    linkageType: ''
    returnType: size_t
    signature: size_t public_modulus_bits() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:698,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:699,1
    - Dst: Botan::RSA_Public_Operation::public_op
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:702,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 697
    functionDepth: 1
    functionLinenumber: 697
    functionLinenumberEnd: 703
    functionName: Botan::RSA_Public_Operation::public_op
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 3
    functionsReached:
    - Botan::RSA_Public_Operation::public_op
    - get_n
    - Decoding_Error
    linkageType: ''
    returnType: BigInt
    signature: BigInt public_op(const BigInt& m) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RSA_Public_Operation::public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 705
    functionDepth: 1
    functionLinenumber: 705
    functionLinenumberEnd: 705
    functionName: Botan::RSA_Public_Operation::public_modulus_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 3
    functionsReached:
    - Botan::RSA_Public_Operation::public_modulus_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t public_modulus_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 707
    functionDepth: 0
    functionLinenumber: 707
    functionLinenumberEnd: 707
    functionName: '& get_n() const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - get_n
    linkageType: ''
    returnType: BigInt
    signature: BigInt & get_n() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' rsa'
    - padding
    argTypes:
    - RSA_PublicKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 717
    functionName: Botan::RSA_Encryption_Operation::RSA_Encryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_Encryption_Operation(const RSA_PublicKey& rsa, std::string_view
      padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 719
    functionName: Botan::RSA_Encryption_Operation::ciphertext_length
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_modulus_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t ciphertext_length(size_t /*ptext_len*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_modulus_bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 721
    functionName: Botan::RSA_Encryption_Operation::max_ptext_input_bits
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_modulus_bits
    linkageType: ''
    returnType: size_t
    signature: size_t max_ptext_input_bits() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_op
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:725,1
    - Dst: public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 723
    functionDepth: 0
    functionLinenumber: 723
    functionLinenumberEnd: 726
    functionName: Botan::RSA_Encryption_Operation::raw_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_op
    - public_modulus_bytes
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> raw_encrypt(std::span<const uint8_t> input, RandomNumberGenerator&
      /*rng*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RSA_Verify_Operation::update
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:732,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:732,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 732
    functionDepth: 1
    functionLinenumber: 732
    functionLinenumberEnd: 732
    functionName: Botan::RSA_Verify_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 3
    functionsReached:
    - Botan::RSA_Verify_Operation::update
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> msg) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raw_data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:735,1
    - Dst: Botan::RSA_Verify_Operation::recover_message_repr
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:736,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:736,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:736,1
    - Dst: verify
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:737,1
    - Dst: public_modulus_bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 734
    functionDepth: 1
    functionLinenumber: 734
    functionLinenumberEnd: 738
    functionName: Botan::RSA_Verify_Operation::is_valid_signature
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::RSA_Verify_Operation::recover_message_repr
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - raw_data
    - public_modulus_bits
    - verify
    linkageType: ''
    returnType: bool
    signature: bool is_valid_signature(std::span<const uint8_t> sig) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SignaturePaddingScheme::create_or_throw
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' rsa'
    - padding
    argTypes:
    - RSA_PublicKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 740
    functionDepth: 1
    functionLinenumber: 740
    functionLinenumberEnd: 741
    functionName: Botan::RSA_Verify_Operation::RSA_Verify_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::SignaturePaddingScheme::create_or_throw
    linkageType: ''
    returnType: void
    signature: void RSA_Verify_Operation(const RSA_PublicKey& rsa, std::string_view
      padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RSA_Verify_Operation::hash_function
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 743
    functionDepth: 1
    functionLinenumber: 743
    functionLinenumberEnd: 743
    functionName: Botan::RSA_Verify_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 3
    functionsReached:
    - Botan::RSA_Verify_Operation::hash_function
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:747,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:748,1
    - Dst: public_op
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:751,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - input
    - input_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 752
    functionName: Botan::RSA_Verify_Operation::recover_message_repr
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 3
    functionsReached:
    - public_op
    - Decoding_Error
    - public_modulus_bytes
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> recover_message_repr(const uint8_t input[], size_t
      input_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' key'
    - kdf
    argTypes:
    - RSA_PublicKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 761
    functionName: Botan::RSA_KEM_Encryption_Operation::RSA_KEM_Encryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_KEM_Encryption_Operation(const RSA_PublicKey& key, std::string_view
      kdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 764
    functionName: Botan::RSA_KEM_Encryption_Operation::raw_kem_shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_modulus_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t raw_kem_shared_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 766
    functionDepth: 0
    functionLinenumber: 766
    functionLinenumberEnd: 766
    functionName: Botan::RSA_KEM_Encryption_Operation::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_modulus_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t encapsulated_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:771,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::retrieve_one
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:771,1
    - Dst: get_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:771,1
    - Dst: public_op
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:772,1
    - Dst: BigInt::serialize_to
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:774,1
    - Dst: BigInt::serialize_to
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - out_encapsulated_key
    - raw_shared_key
    - ' rng'
    argTypes:
    - std::span<uint8_t>
    - std::span<uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 768
    functionDepth: 3
    functionLinenumber: 768
    functionLinenumberEnd: 776
    functionName: Botan::RSA_KEM_Encryption_Operation::raw_kem_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_op
    - Botan::BigInt::random_integer
    - Botan_Tests::RFC8448_Session_Manager::retrieve_one
    - get_n
    - BigInt::serialize_to
    linkageType: ''
    returnType: void
    signature: "void raw_kem_encrypt(std::span<uint8_t> out_encapsulated_key,\n                           std::span<uint8_t>
      raw_shared_key,\n                           RandomNumberGenerator& rng) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::sig_words
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:473,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:474,1
    - Dst: Botan::sig_words
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:474,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:479,1
    - Dst: Botan::repr
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:479,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:480,1
    - Dst: Botan::repr
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:480,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:481,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:481,1
    - Dst: Botan::mul
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:492,1
    - Dst: Montgomery_Int::value
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:494,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:496,1
    - Dst: BigInt::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:496,1
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:497,1
    - Dst: BigInt::sig_words
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:497,1
    - Dst: Botan::bigint_mul
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:502,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:502,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:502,1
    - Dst: BigInt::_data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:502,1
    - Dst: BigInt::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:502,1
    - Dst: Botan::_data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:502,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:502,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:502,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:502,1
    - Dst: Botan::bigint_add2
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:505,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:505,1
    - Dst: Botan::_data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:505,1
    - Dst: BOTAN_ASSERT_NOMSG
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:506,1
    - Dst: Botan::_from_words
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 6
    argNames:
    - ' j1'
    - ' j2_p'
    - ' j2'
    - ' c_monty'
    - ' p'
    - ' q'
    argTypes:
    - Montgomery_Int
    - Montgomery_Int
    - BigInt
    - Montgomery_Int
    - BigInt
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 466
    functionDepth: 1
    functionLinenumber: 466
    functionLinenumberEnd: 509
    functionName: Botan::crt_recombine
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NOMSG
    - Botan::bigint_add2
    - Botan::bigint_mul
    - Botan::sig_words
    - Botan::mul
    - BigInt::_data
    - Montgomery_Int::value
    - BOTAN_DEBUG_ASSERT
    - secure_vector::size
    - Botan::_data
    - BigInt::size
    - Botan::_from_words
    - secure_vector::data
    - Botan::size
    - Botan::repr
    - BigInt::sig_words
    linkageType: ''
    returnType: BigInt
    signature: "BigInt crt_recombine(const Montgomery_Int& j1,\n                     const
      Montgomery_Int& j2_p,\n                     const BigInt& j2,\n                     const
      Montgomery_Int& c_monty,\n                     const BigInt& p,\n                     const
      BigInt& q)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RSA_Private_Operation::public_modulus_bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 516
    functionName: Botan::RSA_Private_Operation::public_modulus_bits
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 4
    functionsReached:
    - Botan::RSA_Private_Operation::public_modulus_bits
    linkageType: ''
    returnType: size_t
    signature: size_t public_modulus_bits() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RSA_Private_Operation::public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 518
    functionDepth: 1
    functionLinenumber: 518
    functionLinenumberEnd: 518
    functionName: Botan::RSA_Private_Operation::public_modulus_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 7
    functionsReached:
    - Botan::RSA_Private_Operation::public_modulus_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t public_modulus_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:521,1
    - Dst: private_data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:522,1
    - Dst: reducer_mod_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:524,1
    - Dst: public_op
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:526,1
    - Dst: inverse_mod_rsa_public_modulus
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:527,1
    - Dst: get_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:527,1
    - Dst: p_bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:529,1
    - Dst: q_bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' rsa'
    - ' rng'
    argTypes:
    - RSA_PrivateKey
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 520
    functionDepth: 0
    functionLinenumber: 520
    functionLinenumberEnd: 530
    functionName: Botan::RSA_Private_Operation::RSA_Private_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - inverse_mod_rsa_public_modulus
    - public_op
    - q_bits
    - get_n
    - reducer_mod_n
    - p_bits
    - public_data
    - private_data
    linkageType: ''
    returnType: void
    signature: void RSA_Private_Operation(const RSA_PrivateKey& rsa, RandomNumberGenerator&
      rng)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:533,1
    - Dst: Botan::RSA_Private_Operation::public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:533,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:534,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:536,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:536,1
    - Dst: get_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:537,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:538,1
    - Dst: unblind
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:543,1
    - Dst: Botan::RSA_Private_Operation::rsa_private_op
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:543,1
    - Dst: blind
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:543,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:544,1
    - Dst: public_op
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:544,1
    - Dst: BOTAN_ASSERT
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:545,1
    - Dst: Botan::RSA_Private_Operation::public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:545,1
    - Dst: std::span<uint8_t>::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:545,1
    - Dst: BigInt::serialize_to
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:546,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - out
    - input
    argTypes:
    - std::span<uint8_t>
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 532
    functionDepth: 2
    functionLinenumber: 532
    functionLinenumberEnd: 547
    functionName: Botan::RSA_Private_Operation::raw_op
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - Decoding_Error
    - unblind
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - public_op
    - Botan::RSA_Private_Operation::rsa_private_op
    - get_n
    - BOTAN_ASSERT
    - BigInt::serialize_to
    - blind
    - Botan::RSA_Private_Operation::public_modulus_bytes
    - std::span<uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void raw_op(std::span<uint8_t> out, std::span<const uint8_t> input)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: primes_imbalanced
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:555,1
    - Dst: monty_exp
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:556,1
    - Dst: monty_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:556,1
    - Dst: get_d
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:556,1
    - Dst: get_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:556,1
    - Dst: rng
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:562,1
    - Dst: sig_words
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:574,1
    - Dst: Thread_Pool::global_instance
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:576,1
    - Dst: get_d1
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:578,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:578,1
    - Dst: monty_precompute
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:579,1
    - Dst: Botan::Montgomery_Int::from_wide_int
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:579,1
    - Dst: monty_p
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:579,1
    - Dst: monty_execute
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:580,1
    - Dst: rng
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:587,1
    - Dst: get_d2
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:588,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:588,1
    - Dst: monty_precompute
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:589,1
    - Dst: Botan::Montgomery_Int::from_wide_int
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:589,1
    - Dst: monty_q
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:589,1
    - Dst: monty_execute
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:590,1
    - Dst: auto::get
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:593,1
    - Dst: Botan::Montgomery_Int::from_wide_int
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:597,1
    - Dst: monty_p
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:597,1
    - Dst: crt_recombine
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:599,1
    - Dst: get_c_monty
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:599,1
    - Dst: get_p
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:599,1
    - Dst: get_q
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:599,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 600
    functionName: Botan::RSA_Private_Operation::rsa_private_op
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 4
    functionsReached:
    - primes_imbalanced
    - monty_n
    - get_p
    - auto::get
    - monty_execute
    - rng
    - monty_q
    - monty_exp
    - Thread_Pool::global_instance
    - crt_recombine
    - get_q
    - get_n
    - Botan::Montgomery_Int::from_wide_int
    - get_d
    - monty_precompute
    - sig_words
    - get_d2
    - monty_p
    - get_c_monty
    - get_d1
    linkageType: ''
    returnType: BigInt
    signature: BigInt rsa_private_op(const BigInt& m) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RSA_Signature_Operation::update
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:615,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:615,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 615
    functionDepth: 1
    functionLinenumber: 615
    functionLinenumberEnd: 615
    functionName: Botan::RSA_Signature_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 4
    functionsReached:
    - std::span<const uint8_t>::data
    - Botan::RSA_Signature_Operation::update
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> msg) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_modulus_bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:618,1
    - Dst: raw_data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:619,1
    - Dst: encoding_of
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:620,1
    - Dst: raw_op
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' rng'
    argTypes:
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 617
    functionDepth: 0
    functionLinenumber: 617
    functionLinenumberEnd: 625
    functionName: Botan::RSA_Signature_Operation::sign
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_modulus_bits
    - raw_op
    - raw_data
    - encoding_of
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> sign(RandomNumberGenerator& rng) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 627
    functionName: Botan::RSA_Signature_Operation::signature_length
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_modulus_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t signature_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RSA_Signature_Operation::hash_function
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 631
    functionDepth: 1
    functionLinenumber: 631
    functionLinenumberEnd: 631
    functionName: Botan::RSA_Signature_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 4
    functionsReached:
    - Botan::RSA_Signature_Operation::hash_function
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SignaturePaddingScheme::create_or_throw
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' rsa'
    - padding
    - ' rng'
    argTypes:
    - RSA_PrivateKey
    - std::string_view
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 634
    functionName: Botan::RSA_Signature_Operation::RSA_Signature_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::SignaturePaddingScheme::create_or_throw
    linkageType: ''
    returnType: void
    signature: void RSA_Signature_Operation(const RSA_PrivateKey& rsa, std::string_view
      padding, RandomNumberGenerator& rng)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: name
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:641,1
    - Dst: Botan::OID::from_string
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:645,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:646,1
    - Dst: std::string::starts_with
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:649,1
    - Dst: Botan::PSS_Params::from_padding_name
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:650,1
    - Dst: name
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:650,1
    - Dst: AlgorithmIdentifier
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:651,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:654,1
    - Dst: fmt
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:654,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 655
      start: 640
    functionDepth: 1
    functionLinenumber: 640
    functionLinenumberEnd: 655
    functionName: Botan::RSA_Signature_Operation::algorithm_identifier
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - name
    - AlgorithmIdentifier
    - std::string::starts_with
    - Invalid_Argument
    - Botan::OID::from_string
    - Botan::PSS_Params::from_padding_name
    - fmt
    linkageType: ''
    returnType: AlgorithmIdentifier
    signature: AlgorithmIdentifier RSA_Signature_Operation::algorithm_identifier()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' rsa'
    - padding
    - ' rng'
    argTypes:
    - RSA_PrivateKey
    - std::string_view
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 661
    functionName: Botan::RSA_Decryption_Operation::RSA_Decryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_Decryption_Operation(const RSA_PrivateKey& rsa, std::string_view
      padding, RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 663
    functionDepth: 0
    functionLinenumber: 663
    functionLinenumberEnd: 663
    functionName: Botan::RSA_Decryption_Operation::plaintext_length
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_modulus_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t plaintext_length(size_t /*ctext_len*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raw_op
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:667,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 665
    functionDepth: 0
    functionLinenumber: 665
    functionLinenumberEnd: 669
    functionName: Botan::RSA_Decryption_Operation::raw_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - raw_op
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> raw_decrypt(std::span<const uint8_t> input)
      override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ' key'
    - kdf
    - ' rng'
    argTypes:
    - RSA_PrivateKey
    - std::string_view
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 676
    functionName: Botan::RSA_KEM_Decryption_Operation::RSA_KEM_Decryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_KEM_Decryption_Operation(const RSA_PrivateKey& key, std::string_view
      kdf, RandomNumberGenerator& rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:678,1
    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::RSA_KEM_Decryption_Operation::raw_kem_shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_modulus_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t raw_kem_shared_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:680,1
    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::RSA_KEM_Decryption_Operation::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_modulus_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t encapsulated_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raw_op
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:683,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: 684
      start: 682
    functionDepth: 0
    functionLinenumber: 682
    functionLinenumberEnd: 684
    functionName: Botan::RSA_KEM_Decryption_Operation::raw_kem_decrypt
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - raw_op
    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: public_data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' rsa'
    argTypes:
    - RSA_PublicKey
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 692
    functionDepth: 0
    functionLinenumber: 692
    functionLinenumberEnd: 692
    functionName: Botan::RSA_Public_Operation::RSA_Public_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_data
    linkageType: ''
    returnType: void
    signature: void RSA_Public_Operation(const RSA_PublicKey& rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RSA_Public_Operation::public_modulus_bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 694
    functionDepth: 1
    functionLinenumber: 694
    functionLinenumberEnd: 694
    functionName: Botan::RSA_Public_Operation::public_modulus_bits
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 4
    functionsReached:
    - Botan::RSA_Public_Operation::public_modulus_bits
    linkageType: ''
    returnType: size_t
    signature: size_t public_modulus_bits() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:698,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:699,1
    - Dst: Botan::RSA_Public_Operation::public_op
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:702,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' m'
    argTypes:
    - BigInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 697
    functionDepth: 1
    functionLinenumber: 697
    functionLinenumberEnd: 703
    functionName: Botan::RSA_Public_Operation::public_op
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 4
    functionsReached:
    - Botan::RSA_Public_Operation::public_op
    - get_n
    - Decoding_Error
    linkageType: ''
    returnType: BigInt
    signature: BigInt public_op(const BigInt& m) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RSA_Public_Operation::public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 705
    functionDepth: 1
    functionLinenumber: 705
    functionLinenumberEnd: 705
    functionName: Botan::RSA_Public_Operation::public_modulus_bytes
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 4
    functionsReached:
    - Botan::RSA_Public_Operation::public_modulus_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t public_modulus_bytes() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 707
    functionDepth: 0
    functionLinenumber: 707
    functionLinenumberEnd: 707
    functionName: '& get_n() const'
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - get_n
    linkageType: ''
    returnType: BigInt
    signature: BigInt & get_n() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' rsa'
    - padding
    argTypes:
    - RSA_PublicKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 717
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 717
    functionName: Botan::RSA_Encryption_Operation::RSA_Encryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_Encryption_Operation(const RSA_PublicKey& rsa, std::string_view
      padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:719,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 719
    functionDepth: 0
    functionLinenumber: 719
    functionLinenumberEnd: 719
    functionName: Botan::RSA_Encryption_Operation::ciphertext_length
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_modulus_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t ciphertext_length(size_t /*ptext_len*/) const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_modulus_bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 721
    functionDepth: 0
    functionLinenumber: 721
    functionLinenumberEnd: 721
    functionName: Botan::RSA_Encryption_Operation::max_ptext_input_bits
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_modulus_bits
    linkageType: ''
    returnType: size_t
    signature: size_t max_ptext_input_bits() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_op
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:725,1
    - Dst: public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:725,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 723
    functionDepth: 0
    functionLinenumber: 723
    functionLinenumberEnd: 726
    functionName: Botan::RSA_Encryption_Operation::raw_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_op
    - public_modulus_bytes
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> raw_encrypt(std::span<const uint8_t> input, RandomNumberGenerator&
      /*rng*/) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RSA_Verify_Operation::update
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:732,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:732,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 732
    functionDepth: 1
    functionLinenumber: 732
    functionLinenumberEnd: 732
    functionName: Botan::RSA_Verify_Operation::update
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 4
    functionsReached:
    - Botan::RSA_Verify_Operation::update
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void update(std::span<const uint8_t> msg) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: raw_data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:735,1
    - Dst: Botan::RSA_Verify_Operation::recover_message_repr
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:736,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:736,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:736,1
    - Dst: verify
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:737,1
    - Dst: public_modulus_bits
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:737,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 738
      start: 734
    functionDepth: 1
    functionLinenumber: 734
    functionLinenumberEnd: 738
    functionName: Botan::RSA_Verify_Operation::is_valid_signature
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::RSA_Verify_Operation::recover_message_repr
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    - raw_data
    - public_modulus_bits
    - verify
    linkageType: ''
    returnType: bool
    signature: bool is_valid_signature(std::span<const uint8_t> sig) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SignaturePaddingScheme::create_or_throw
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' rsa'
    - padding
    argTypes:
    - RSA_PublicKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 740
    functionDepth: 1
    functionLinenumber: 740
    functionLinenumberEnd: 741
    functionName: Botan::RSA_Verify_Operation::RSA_Verify_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - Botan::SignaturePaddingScheme::create_or_throw
    linkageType: ''
    returnType: void
    signature: void RSA_Verify_Operation(const RSA_PublicKey& rsa, std::string_view
      padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::RSA_Verify_Operation::hash_function
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 743
      start: 743
    functionDepth: 1
    functionLinenumber: 743
    functionLinenumberEnd: 743
    functionName: Botan::RSA_Verify_Operation::hash_function
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 4
    functionsReached:
    - Botan::RSA_Verify_Operation::hash_function
    linkageType: ''
    returnType: std::string
    signature: std::string hash_function() const override
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:747,1
    - Dst: Decoding_Error
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:748,1
    - Dst: public_op
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:751,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - input
    - input_len
    argTypes:
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 752
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 752
    functionName: Botan::RSA_Verify_Operation::recover_message_repr
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 4
    functionsReached:
    - public_op
    - Decoding_Error
    - public_modulus_bytes
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> recover_message_repr(const uint8_t input[], size_t
      input_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' key'
    - kdf
    argTypes:
    - RSA_PublicKey
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 761
      start: 760
    functionDepth: 0
    functionLinenumber: 760
    functionLinenumberEnd: 761
    functionName: Botan::RSA_KEM_Encryption_Operation::RSA_KEM_Encryption_Operation
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSA_KEM_Encryption_Operation(const RSA_PublicKey& key, std::string_view
      kdf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 764
    functionDepth: 0
    functionLinenumber: 764
    functionLinenumberEnd: 764
    functionName: Botan::RSA_KEM_Encryption_Operation::raw_kem_shared_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_modulus_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t raw_kem_shared_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: public_modulus_bytes
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:766,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 766
    functionDepth: 0
    functionLinenumber: 766
    functionLinenumberEnd: 766
    functionName: Botan::RSA_KEM_Encryption_Operation::encapsulated_key_length
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_modulus_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t encapsulated_key_length() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BigInt::random_integer
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:771,1
    - Dst: Botan_Tests::RFC8448_Session_Manager::retrieve_one
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:771,1
    - Dst: get_n
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:771,1
    - Dst: public_op
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:772,1
    - Dst: BigInt::serialize_to
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:774,1
    - Dst: BigInt::serialize_to
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - out_encapsulated_key
    - raw_shared_key
    - ' rng'
    argTypes:
    - std::span<uint8_t>
    - std::span<uint8_t>
    - RandomNumberGenerator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 776
      start: 768
    functionDepth: 3
    functionLinenumber: 768
    functionLinenumberEnd: 776
    functionName: Botan::RSA_KEM_Encryption_Operation::raw_kem_encrypt
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - public_op
    - Botan::BigInt::random_integer
    - Botan_Tests::RFC8448_Session_Manager::retrieve_one
    - get_n
    - BigInt::serialize_to
    linkageType: ''
    returnType: void
    signature: "void raw_kem_encrypt(std::span<uint8_t> out_encapsulated_key,\n                           std::span<uint8_t>
      raw_shared_key,\n                           RandomNumberGenerator& rng) override"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:784,1
    - Dst: std::make_unique<RSA_Encryption_Operation>
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:785,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:787,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:787,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 781
    functionDepth: 0
    functionLinenumber: 781
    functionLinenumberEnd: 788
    functionName: Botan::RSA_PublicKey::create_encryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - std::make_unique<RSA_Encryption_Operation>
    - algo_name
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Encryption>
    signature: "std::unique_ptr<PK_Ops::Encryption> RSA_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/rsa/rsa.cpp:792,1
    - Dst: std::make_unique<RSA_KEM_Encryption_Operation>
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:793,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:795,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:795,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 790
    functionDepth: 0
    functionLinenumber: 790
    functionLinenumberEnd: 796
    functionName: Botan::RSA_PublicKey::create_kem_encryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - algo_name
    - Provider_Not_Found
    - std::make_unique<RSA_KEM_Encryption_Operation>
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::KEM_Encryption>
    signature: "std::unique_ptr<PK_Ops::KEM_Encryption> RSA_PublicKey::create_kem_encryption_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/rsa/rsa.cpp:800,1
    - Dst: std::make_unique<RSA_Verify_Operation>
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:801,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:804,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:804,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - params
    - provider
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 798
    functionDepth: 0
    functionLinenumber: 798
    functionLinenumberEnd: 805
    functionName: Botan::RSA_PublicKey::create_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - algo_name
    - Provider_Not_Found
    - std::make_unique<RSA_Verify_Operation>
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> RSA_PublicKey::create_verification_op(std::string_view
      params,\n                                                                            std::string_view
      provider) const"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Botan::split_on
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:810,1
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:810,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:812,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:812,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:813,1
    - Dst: Botan::parameters
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:820,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:821,1
    - Dst: Botan::parameters
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:824,1
    - Dst: PSS_Params::hash_function
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:828,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:832,1
    - Dst: PSS_Params::mgf_function
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:835,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:836,1
    - Dst: PSS_Params::hash_algid
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:841,1
    - Dst: PSS_Params::mgf_hash_algid
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:841,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:842,1
    - Dst: PSS_Params::trailer_field
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:845,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:846,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:849,1
    - Dst: PSS_Params::salt_length
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:849,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 23
    argCount: 1
    argNames:
    - ' alg_id'
    argTypes:
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 853
    functionName: Botan::parse_rsa_signature_algorithm
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - auto::empty
    - Botan::fmt
    - PSS_Params::mgf_hash_algid
    - Botan::split_on
    - Botan::oid
    - PSS_Params::trailer_field
    - PSS_Params::salt_length
    - PSS_Params::mgf_function
    - PSS_Params::hash_algid
    - PSS_Params::hash_function
    - auto::size
    - Botan::Decoding_Error
    - Botan::parameters
    linkageType: ''
    returnType: std::string
    signature: std::string parse_rsa_signature_algorithm(const AlgorithmIdentifier&
      alg_id)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Botan::split_on
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:810,1
    - Dst: Botan::oid
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:810,1
    - Dst: auto::empty
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:812,1
    - Dst: auto::size
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:812,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:813,1
    - Dst: Botan::parameters
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:820,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:821,1
    - Dst: Botan::parameters
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:824,1
    - Dst: PSS_Params::hash_function
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:828,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:832,1
    - Dst: PSS_Params::mgf_function
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:835,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:836,1
    - Dst: PSS_Params::hash_algid
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:841,1
    - Dst: PSS_Params::mgf_hash_algid
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:841,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:842,1
    - Dst: PSS_Params::trailer_field
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:845,1
    - Dst: Botan::Decoding_Error
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:846,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:849,1
    - Dst: PSS_Params::salt_length
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:849,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 23
    argCount: 1
    argNames:
    - ' alg_id'
    argTypes:
    - AlgorithmIdentifier
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 853
    functionName: Botan::parse_rsa_signature_algorithm
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - auto::empty
    - Botan::fmt
    - PSS_Params::mgf_hash_algid
    - Botan::split_on
    - Botan::oid
    - PSS_Params::trailer_field
    - PSS_Params::salt_length
    - PSS_Params::mgf_function
    - PSS_Params::hash_algid
    - PSS_Params::hash_function
    - auto::size
    - Botan::Decoding_Error
    - Botan::parameters
    linkageType: ''
    returnType: std::string
    signature: std::string parse_rsa_signature_algorithm(const AlgorithmIdentifier&
      alg_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:859,1
    - Dst: std::make_unique<RSA_Verify_Operation>
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:860,1
    - Dst: parse_rsa_signature_algorithm
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:860,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:863,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:863,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - ' alg_id'
    - provider
    argTypes:
    - AlgorithmIdentifier
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 857
    functionDepth: 0
    functionLinenumber: 857
    functionLinenumberEnd: 864
    functionName: Botan::RSA_PublicKey::create_x509_verification_op
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - std::make_unique<RSA_Verify_Operation>
    - std::string_view::empty
    - parse_rsa_signature_algorithm
    - algo_name
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Verification>
    signature: "std::unique_ptr<PK_Ops::Verification> RSA_PublicKey::create_x509_verification_op(const
      AlgorithmIdentifier& alg_id,\n                                                                                 std::string_view
      provider) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::empty
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:869,1
    - Dst: std::make_unique<RSA_Decryption_Operation>
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:870,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:873,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:873,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: 874
      start: 866
    functionDepth: 0
    functionLinenumber: 866
    functionLinenumberEnd: 874
    functionName: Botan::RSA_PrivateKey::create_decryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - algo_name
    - Provider_Not_Found
    - std::make_unique<RSA_Decryption_Operation>
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Decryption>
    signature: "std::unique_ptr<PK_Ops::Decryption> RSA_PrivateKey::create_decryption_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/rsa/rsa.cpp:879,1
    - Dst: std::make_unique<RSA_KEM_Decryption_Operation>
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:880,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:883,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:883,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: 884
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 884
    functionName: Botan::RSA_PrivateKey::create_kem_decryption_op
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - Provider_Not_Found
    - std::make_unique<RSA_KEM_Decryption_Operation>
    - algo_name
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::KEM_Decryption>
    signature: "std::unique_ptr<PK_Ops::KEM_Decryption> RSA_PrivateKey::create_kem_decryption_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/rsa/rsa.cpp:889,1
    - Dst: std::make_unique<RSA_Signature_Operation>
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:890,1
    - Dst: Provider_Not_Found
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:893,1
    - Dst: algo_name
      Src: /src/botan/src/lib/pubkey/rsa/rsa.cpp:893,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: 894
      start: 886
    functionDepth: 0
    functionLinenumber: 886
    functionLinenumberEnd: 894
    functionName: Botan::RSA_PrivateKey::create_signature_op
    functionSourceFile: /src/botan/src/lib/pubkey/rsa/rsa.cpp
    functionUses: 0
    functionsReached:
    - std::make_unique<RSA_Signature_Operation>
    - Provider_Not_Found
    - algo_name
    - std::string_view::empty
    linkageType: ''
    returnType: std::unique_ptr<PK_Ops::Signature>
    signature: "std::unique_ptr<PK_Ops::Signature> RSA_PrivateKey::create_signature_op(RandomNumberGenerator&
      rng,\n                                                                       std::string_view
      params,\n                                                                       std::string_view
      provider) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set
      Src: /src/botan/src/lib/psk_db/psk_db.h:69,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/psk_db/psk_db.h:69,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/psk_db/psk_db.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - psk
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 4
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: Botan::set_vec
    functionSourceFile: /src/botan/src/lib/psk_db/psk_db.h
    functionUses: 0
    functionsReached:
    - set
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void set_vec(std::string_view name, std::span<const uint8_t> psk)
  - 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: ~PSK_Database()
    functionSourceFile: /src/botan/src/lib/psk_db/psk_db.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~PSK_Database()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set
      Src: /src/botan/src/lib/psk_db/psk_db.h:69,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/psk_db/psk_db.h:69,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/psk_db/psk_db.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - psk
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 4
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: Botan::set_vec
    functionSourceFile: /src/botan/src/lib/psk_db/psk_db.h
    functionUses: 0
    functionsReached:
    - set
    - std::span<const uint8_t>::data
    - std::span<const uint8_t>::size
    linkageType: ''
    returnType: void
    signature: void set_vec(std::string_view name, std::span<const uint8_t> psk)
  - 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: ~PSK_Database()
    functionSourceFile: /src/botan/src/lib/psk_db/psk_db.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~PSK_Database()
  - 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: is_encrypted
    functionSourceFile: /src/botan/src/lib/psk_db/psk_db.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_encrypted() const override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Encrypted_PSK_Database_SQL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 174
    functionName: Encrypted_PSK_Database_SQL
    functionSourceFile: /src/botan/src/lib/psk_db/psk_db.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Encrypted_PSK_Database_SQL(const Encrypted_PSK_Database_SQL& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - Encrypted_PSK_Database_SQL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 175
    functionName: Encrypted_PSK_Database_SQL
    functionSourceFile: /src/botan/src/lib/psk_db/psk_db.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Encrypted_PSK_Database_SQL(Encrypted_PSK_Database_SQL&& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bytes_to_string
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:19,1
    - Dst: Botan::PSK_Database::get
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: Botan::PSK_Database::get_str
    functionSourceFile: /src/botan/src/lib/psk_db/psk_db.cpp
    functionUses: 0
    functionsReached:
    - Botan::PSK_Database::get
    - bytes_to_string
    linkageType: ''
    returnType: std::string
    signature: std::string PSK_Database::get_str(std::string_view name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:23,1
    - Dst: Botan::PSK_Database::set
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:24,1
    - Dst: auto::data
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:24,1
    - Dst: auto::size
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - psk
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 4
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: Botan::PSK_Database::set_str
    functionSourceFile: /src/botan/src/lib/psk_db/psk_db.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - Botan::PSK_Database::set
    - as_span_of_bytes
    - auto::size
    linkageType: ''
    returnType: void
    signature: void PSK_Database::set_str(std::string_view name, std::string_view
      psk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BlockCipher::create_or_throw
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:28,1
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:29,1
    - Dst: set_key
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:30,1
    - Dst: set_key
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:32,1
    - Dst: process
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:32,1
    - Dst: set_key
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:33,1
    - Dst: process
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' master_key'
    argTypes:
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 34
    functionName: Botan::Encrypted_PSK_Database::Encrypted_PSK_Database
    functionSourceFile: /src/botan/src/lib/psk_db/psk_db.cpp
    functionUses: 0
    functionsReached:
    - set_key
    - Botan::BlockCipher::create_or_throw
    - process
    - Botan::MessageAuthenticationCode::create_or_throw
    linkageType: ''
    returnType: void
    signature: void Encrypted_PSK_Database::Encrypted_PSK_Database(const secure_vector<uint8_t>&
      master_key)
  - 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: Encrypted_PSK_Database::~Encrypted_PSK_Database()
    functionSourceFile: /src/botan/src/lib/psk_db/psk_db.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Encrypted_PSK_Database::~Encrypted_PSK_Database()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kv_get_all
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:39,1
    - Dst: base64_decode
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:45,1
    - Dst: nist_key_unwrap_padded
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:46,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:46,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:46,1
    - Dst: bytes_to_string
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:48,1
    - Dst: std::set::insert
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 54
    functionName: Botan::Encrypted_PSK_Database::list_names
    functionSourceFile: /src/botan/src/lib/psk_db/psk_db.cpp
    functionUses: 0
    functionsReached:
    - bytes_to_string
    - secure_vector::size
    - nist_key_unwrap_padded
    - kv_get_all
    - std::set::insert
    - secure_vector::data
    - base64_decode
    linkageType: ''
    returnType: std::set<std::string>
    signature: std::set<std::string> Encrypted_PSK_Database::list_names() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nist_key_wrap_padded
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:57,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:57,1
    - Dst: Botan::Encrypted_PSK_Database::kv_del
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:59,1
    - Dst: base64_encode
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: Botan::Encrypted_PSK_Database::remove
    functionSourceFile: /src/botan/src/lib/psk_db/psk_db.cpp
    functionUses: 0
    functionsReached:
    - base64_encode
    - as_span_of_bytes
    - Botan::Encrypted_PSK_Database::kv_del
    - nist_key_wrap_padded
    linkageType: ''
    returnType: void
    signature: void Encrypted_PSK_Database::remove(std::string_view name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nist_key_wrap_padded
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:63,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:63,1
    - Dst: kv_get
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:65,1
    - Dst: base64_encode
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:65,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:67,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:68,1
    - Dst: base64_decode
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:71,1
    - Dst: new_object
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:73,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:74,1
    - Dst: process
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:74,1
    - Dst: nist_key_unwrap_padded
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:76,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:76,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 77
    functionName: Botan::Encrypted_PSK_Database::get
    functionSourceFile: /src/botan/src/lib/psk_db/psk_db.cpp
    functionUses: 0
    functionsReached:
    - base64_encode
    - process
    - auto::set_key
    - secure_vector::size
    - kv_get
    - std::string::empty
    - as_span_of_bytes
    - Invalid_Argument
    - new_object
    - nist_key_unwrap_padded
    - secure_vector::data
    - base64_decode
    - nist_key_wrap_padded
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Encrypted_PSK_Database::get(std::string_view
      name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nist_key_wrap_padded
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:85,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:85,1
    - Dst: new_object
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:87,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:88,1
    - Dst: process
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:88,1
    - Dst: nist_key_wrap_padded
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:89,1
    - Dst: Botan::Encrypted_PSK_Database::kv_set
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:91,1
    - Dst: base64_encode
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:91,1
    - Dst: base64_encode
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - name
    - val
    - len
    argTypes:
    - std::string_view
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 92
    functionName: Botan::Encrypted_PSK_Database::set
    functionSourceFile: /src/botan/src/lib/psk_db/psk_db.cpp
    functionUses: 0
    functionsReached:
    - Botan::Encrypted_PSK_Database::kv_set
    - base64_encode
    - process
    - auto::set_key
    - as_span_of_bytes
    - new_object
    - nist_key_wrap_padded
    linkageType: ''
    returnType: void
    signature: void Encrypted_PSK_Database::set(std::string_view name, const uint8_t
      val[], size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bytes_to_string
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:19,1
    - Dst: Botan::PSK_Database::get
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 20
    functionName: Botan::PSK_Database::get_str
    functionSourceFile: /src/botan/src/lib/psk_db/psk_db.cpp
    functionUses: 0
    functionsReached:
    - Botan::PSK_Database::get
    - bytes_to_string
    linkageType: ''
    returnType: std::string
    signature: std::string PSK_Database::get_str(std::string_view name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:23,1
    - Dst: Botan::PSK_Database::set
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:24,1
    - Dst: auto::data
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:24,1
    - Dst: auto::size
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - psk
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 22
    functionDepth: 4
    functionLinenumber: 22
    functionLinenumberEnd: 25
    functionName: Botan::PSK_Database::set_str
    functionSourceFile: /src/botan/src/lib/psk_db/psk_db.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - Botan::PSK_Database::set
    - as_span_of_bytes
    - auto::size
    linkageType: ''
    returnType: void
    signature: void PSK_Database::set_str(std::string_view name, std::string_view
      psk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::BlockCipher::create_or_throw
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:28,1
    - Dst: Botan::MessageAuthenticationCode::create_or_throw
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:29,1
    - Dst: set_key
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:30,1
    - Dst: set_key
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:32,1
    - Dst: process
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:32,1
    - Dst: set_key
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:33,1
    - Dst: process
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:33,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - ' master_key'
    argTypes:
    - secure_vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 27
    functionDepth: 2
    functionLinenumber: 27
    functionLinenumberEnd: 34
    functionName: Botan::Encrypted_PSK_Database::Encrypted_PSK_Database
    functionSourceFile: /src/botan/src/lib/psk_db/psk_db.cpp
    functionUses: 0
    functionsReached:
    - set_key
    - Botan::BlockCipher::create_or_throw
    - process
    - Botan::MessageAuthenticationCode::create_or_throw
    linkageType: ''
    returnType: void
    signature: void Encrypted_PSK_Database::Encrypted_PSK_Database(const secure_vector<uint8_t>&
      master_key)
  - 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: Encrypted_PSK_Database::~Encrypted_PSK_Database()
    functionSourceFile: /src/botan/src/lib/psk_db/psk_db.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Encrypted_PSK_Database::~Encrypted_PSK_Database()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kv_get_all
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:39,1
    - Dst: base64_decode
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:45,1
    - Dst: nist_key_unwrap_padded
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:46,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:46,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:46,1
    - Dst: bytes_to_string
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:48,1
    - Dst: std::set::insert
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 54
    functionName: Botan::Encrypted_PSK_Database::list_names
    functionSourceFile: /src/botan/src/lib/psk_db/psk_db.cpp
    functionUses: 0
    functionsReached:
    - bytes_to_string
    - secure_vector::size
    - nist_key_unwrap_padded
    - kv_get_all
    - std::set::insert
    - secure_vector::data
    - base64_decode
    linkageType: ''
    returnType: std::set<std::string>
    signature: std::set<std::string> Encrypted_PSK_Database::list_names() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nist_key_wrap_padded
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:57,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:57,1
    - Dst: Botan::Encrypted_PSK_Database::kv_del
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:59,1
    - Dst: base64_encode
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: Botan::Encrypted_PSK_Database::remove
    functionSourceFile: /src/botan/src/lib/psk_db/psk_db.cpp
    functionUses: 0
    functionsReached:
    - base64_encode
    - as_span_of_bytes
    - Botan::Encrypted_PSK_Database::kv_del
    - nist_key_wrap_padded
    linkageType: ''
    returnType: void
    signature: void Encrypted_PSK_Database::remove(std::string_view name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nist_key_wrap_padded
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:63,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:63,1
    - Dst: kv_get
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:65,1
    - Dst: base64_encode
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:65,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:67,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:68,1
    - Dst: base64_decode
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:71,1
    - Dst: new_object
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:73,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:74,1
    - Dst: process
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:74,1
    - Dst: nist_key_unwrap_padded
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:76,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:76,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 77
    functionName: Botan::Encrypted_PSK_Database::get
    functionSourceFile: /src/botan/src/lib/psk_db/psk_db.cpp
    functionUses: 0
    functionsReached:
    - base64_encode
    - process
    - auto::set_key
    - secure_vector::size
    - kv_get
    - std::string::empty
    - as_span_of_bytes
    - Invalid_Argument
    - new_object
    - nist_key_unwrap_padded
    - secure_vector::data
    - base64_decode
    - nist_key_wrap_padded
    linkageType: ''
    returnType: secure_vector<uint8_t>
    signature: secure_vector<uint8_t> Encrypted_PSK_Database::get(std::string_view
      name) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nist_key_wrap_padded
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:85,1
    - Dst: as_span_of_bytes
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:85,1
    - Dst: new_object
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:87,1
    - Dst: auto::set_key
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:88,1
    - Dst: process
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:88,1
    - Dst: nist_key_wrap_padded
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:89,1
    - Dst: Botan::Encrypted_PSK_Database::kv_set
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:91,1
    - Dst: base64_encode
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:91,1
    - Dst: base64_encode
      Src: /src/botan/src/lib/psk_db/psk_db.cpp:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - name
    - val
    - len
    argTypes:
    - std::string_view
    - uint8_t[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 92
    functionName: Botan::Encrypted_PSK_Database::set
    functionSourceFile: /src/botan/src/lib/psk_db/psk_db.cpp
    functionUses: 0
    functionsReached:
    - Botan::Encrypted_PSK_Database::kv_set
    - base64_encode
    - process
    - auto::set_key
    - as_span_of_bytes
    - new_object
    - nist_key_wrap_padded
    linkageType: ''
    returnType: void
    signature: void Encrypted_PSK_Database::set(std::string_view name, const uint8_t
      val[], size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/psk_db/psk_db_sql.cpp:16,1
    - Dst: create_table
      Src: /src/botan/src/lib/psk_db/psk_db_sql.cpp:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' master_key'
    - db
    - table_name
    argTypes:
    - secure_vector<uint8_t>
    - std::shared_ptr<SQL_Database>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 18
    functionName: Botan::Encrypted_PSK_Database_SQL::Encrypted_PSK_Database_SQL
    functionSourceFile: /src/botan/src/lib/psk_db/psk_db_sql.cpp
    functionUses: 0
    functionsReached:
    - create_table
    - std::move
    linkageType: ''
    returnType: void
    signature: "void Encrypted_PSK_Database_SQL::Encrypted_PSK_Database_SQL(const
      secure_vector<uint8_t>& master_key,\n                                                       std::shared_ptr<SQL_Database>
      db,\n                                                       std::string_view
      table_name)"
  - 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: Encrypted_PSK_Database_SQL::~Encrypted_PSK_Database_SQL()
    functionSourceFile: /src/botan/src/lib/psk_db/psk_db_sql.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Encrypted_PSK_Database_SQL::~Encrypted_PSK_Database_SQL()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_statement
      Src: /src/botan/src/lib/psk_db/psk_db_sql.cpp:23,1
    - Dst: auto::bind
      Src: /src/botan/src/lib/psk_db/psk_db_sql.cpp:24,1
    - Dst: auto::spin
      Src: /src/botan/src/lib/psk_db/psk_db_sql.cpp:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: Botan::Encrypted_PSK_Database_SQL::kv_del
    functionSourceFile: /src/botan/src/lib/psk_db/psk_db_sql.cpp
    functionUses: 0
    functionsReached:
    - auto::spin
    - auto::bind
    - new_statement
    linkageType: ''
    returnType: void
    signature: void Encrypted_PSK_Database_SQL::kv_del(std::string_view name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_statement
      Src: /src/botan/src/lib/psk_db/psk_db_sql.cpp:29,1
    - Dst: auto::bind
      Src: /src/botan/src/lib/psk_db/psk_db_sql.cpp:31,1
    - Dst: auto::bind
      Src: /src/botan/src/lib/psk_db/psk_db_sql.cpp:32,1
    - Dst: auto::spin
      Src: /src/botan/src/lib/psk_db/psk_db_sql.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 35
    functionName: Botan::Encrypted_PSK_Database_SQL::kv_set
    functionSourceFile: /src/botan/src/lib/psk_db/psk_db_sql.cpp
    functionUses: 0
    functionsReached:
    - auto::spin
    - auto::bind
    - new_statement
    linkageType: ''
    returnType: void
    signature: void Encrypted_PSK_Database_SQL::kv_set(std::string_view name, std::string_view
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_statement
      Src: /src/botan/src/lib/psk_db/psk_db_sql.cpp:38,1
    - Dst: auto::bind
      Src: /src/botan/src/lib/psk_db/psk_db_sql.cpp:40,1
    - Dst: auto::step
      Src: /src/botan/src/lib/psk_db/psk_db_sql.cpp:42,1
    - Dst: auto::get_str
      Src: /src/botan/src/lib/psk_db/psk_db_sql.cpp:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 46
    functionName: Botan::Encrypted_PSK_Database_SQL::kv_get
    functionSourceFile: /src/botan/src/lib/psk_db/psk_db_sql.cpp
    functionUses: 0
    functionsReached:
    - auto::get_str
    - auto::bind
    - auto::step
    - new_statement
    linkageType: ''
    returnType: std::string
    signature: std::string Encrypted_PSK_Database_SQL::kv_get(std::string_view name)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_statement
      Src: /src/botan/src/lib/psk_db/psk_db_sql.cpp:51,1
    - Dst: auto::step
      Src: /src/botan/src/lib/psk_db/psk_db_sql.cpp:53,1
    - Dst: std::set::insert
      Src: /src/botan/src/lib/psk_db/psk_db_sql.cpp:54,1
    - Dst: auto::get_str
      Src: /src/botan/src/lib/psk_db/psk_db_sql.cpp:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 58
    functionName: Botan::Encrypted_PSK_Database_SQL::kv_get_all
    functionSourceFile: /src/botan/src/lib/psk_db/psk_db_sql.cpp
    functionUses: 0
    functionsReached:
    - auto::get_str
    - auto::step
    - std::set::insert
    - new_statement
    linkageType: ''
    returnType: std::set<std::string>
    signature: std::set<std::string> Encrypted_PSK_Database_SQL::kv_get_all() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/botan/src/lib/psk_db/psk_db_sql.cpp:16,1
    - Dst: create_table
      Src: /src/botan/src/lib/psk_db/psk_db_sql.cpp:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' master_key'
    - db
    - table_name
    argTypes:
    - secure_vector<uint8_t>
    - std::shared_ptr<SQL_Database>
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 18
    functionName: Botan::Encrypted_PSK_Database_SQL::Encrypted_PSK_Database_SQL
    functionSourceFile: /src/botan/src/lib/psk_db/psk_db_sql.cpp
    functionUses: 0
    functionsReached:
    - create_table
    - std::move
    linkageType: ''
    returnType: void
    signature: "void Encrypted_PSK_Database_SQL::Encrypted_PSK_Database_SQL(const
      secure_vector<uint8_t>& master_key,\n                                                       std::shared_ptr<SQL_Database>
      db,\n                                                       std::string_view
      table_name)"
  - 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: Encrypted_PSK_Database_SQL::~Encrypted_PSK_Database_SQL()
    functionSourceFile: /src/botan/src/lib/psk_db/psk_db_sql.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Encrypted_PSK_Database_SQL::~Encrypted_PSK_Database_SQL()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_statement
      Src: /src/botan/src/lib/psk_db/psk_db_sql.cpp:23,1
    - Dst: auto::bind
      Src: /src/botan/src/lib/psk_db/psk_db_sql.cpp:24,1
    - Dst: auto::spin
      Src: /src/botan/src/lib/psk_db/psk_db_sql.cpp:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: Botan::Encrypted_PSK_Database_SQL::kv_del
    functionSourceFile: /src/botan/src/lib/psk_db/psk_db_sql.cpp
    functionUses: 0
    functionsReached:
    - auto::spin
    - auto::bind
    - new_statement
    linkageType: ''
    returnType: void
    signature: void Encrypted_PSK_Database_SQL::kv_del(std::string_view name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_statement
      Src: /src/botan/src/lib/psk_db/psk_db_sql.cpp:29,1
    - Dst: auto::bind
      Src: /src/botan/src/lib/psk_db/psk_db_sql.cpp:31,1
    - Dst: auto::bind
      Src: /src/botan/src/lib/psk_db/psk_db_sql.cpp:32,1
    - Dst: auto::spin
      Src: /src/botan/src/lib/psk_db/psk_db_sql.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 35
    functionName: Botan::Encrypted_PSK_Database_SQL::kv_set
    functionSourceFile: /src/botan/src/lib/psk_db/psk_db_sql.cpp
    functionUses: 0
    functionsReached:
    - auto::spin
    - auto::bind
    - new_statement
    linkageType: ''
    returnType: void
    signature: void Encrypted_PSK_Database_SQL::kv_set(std::string_view name, std::string_view
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_statement
      Src: /src/botan/src/lib/psk_db/psk_db_sql.cpp:38,1
    - Dst: auto::bind
      Src: /src/botan/src/lib/psk_db/psk_db_sql.cpp:40,1
    - Dst: auto::step
      Src: /src/botan/src/lib/psk_db/psk_db_sql.cpp:42,1
    - Dst: auto::get_str
      Src: /src/botan/src/lib/psk_db/psk_db_sql.cpp:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 46
    functionName: Botan::Encrypted_PSK_Database_SQL::kv_get
    functionSourceFile: /src/botan/src/lib/psk_db/psk_db_sql.cpp
    functionUses: 0
    functionsReached:
    - auto::get_str
    - auto::bind
    - auto::step
    - new_statement
    linkageType: ''
    returnType: std::string
    signature: std::string Encrypted_PSK_Database_SQL::kv_get(std::string_view name)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: new_statement
      Src: /src/botan/src/lib/psk_db/psk_db_sql.cpp:51,1
    - Dst: auto::step
      Src: /src/botan/src/lib/psk_db/psk_db_sql.cpp:53,1
    - Dst: std::set::insert
      Src: /src/botan/src/lib/psk_db/psk_db_sql.cpp:54,1
    - Dst: auto::get_str
      Src: /src/botan/src/lib/psk_db/psk_db_sql.cpp:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 58
    functionName: Botan::Encrypted_PSK_Database_SQL::kv_get_all
    functionSourceFile: /src/botan/src/lib/psk_db/psk_db_sql.cpp
    functionUses: 0
    functionsReached:
    - auto::get_str
    - auto::step
    - std::set::insert
    - new_statement
    linkageType: ''
    returnType: std::set<std::string>
    signature: std::set<std::string> Encrypted_PSK_Database_SQL::kv_get_all() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:31,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:33,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:35,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:37,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:39,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - alg_id
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 42
    functionName: Botan::get_pbkdf_prf
    functionSourceFile: /src/botan/src/lib/passhash/passhash9/passhash9.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create
    linkageType: ''
    returnType: std::unique_ptr<MessageAuthenticationCode>
    signature: std::unique_ptr<MessageAuthenticationCode> get_pbkdf_prf(uint8_t alg_id)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:31,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:33,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:35,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:37,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:39,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - alg_id
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 42
    functionName: Botan::get_pbkdf_prf
    functionSourceFile: /src/botan/src/lib/passhash/passhash9/passhash9.cpp
    functionUses: 0
    functionsReached:
    - Botan::MessageAuthenticationCode::create
    linkageType: ''
    returnType: std::unique_ptr<MessageAuthenticationCode>
    signature: std::unique_ptr<MessageAuthenticationCode> get_pbkdf_prf(uint8_t alg_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:50,1
    - Dst: Botan::get_pbkdf_prf
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:52,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:55,1
    - Dst: Botan::to_string
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:55,1
    - Dst: Botan::randomize
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:61,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:61,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:61,1
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:66,1
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:67,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:67,1
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:68,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:68,1
    - Dst: PKCS5_PBKDF2::derive_key
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:70,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:70,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:70,1
    - Dst: std::string
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:72,1
    - Dst: Botan::base64_encode
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - pass
    - ' rng'
    - work_factor
    - alg_id
    argTypes:
    - std::string_view
    - RandomNumberGenerator
    - uint16_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 73
    functionName: Botan::generate_passhash9
    functionSourceFile: /src/botan/src/lib/passhash/passhash9/passhash9.cpp
    functionUses: 10
    functionsReached:
    - Botan::get_byte
    - Botan::base64_encode
    - Botan::Invalid_Argument
    - std::string
    - BOTAN_ARG_CHECK
    - secure_vector::size
    - Botan::to_string
    - PKCS5_PBKDF2::derive_key
    - secure_vector::push_back
    - secure_vector::data
    - Botan::randomize
    - Botan::get_pbkdf_prf
    linkageType: ''
    returnType: std::string
    signature: "std::string generate_passhash9(std::string_view pass,\n                               RandomNumberGenerator&
      rng,\n                               uint16_t work_factor,\n                               uint8_t
      alg_id)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan::size
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:78,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:80,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:84,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:90,1
    - Dst: std::string_view::data
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:90,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:90,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:92,1
    - Dst: Botan::load_be
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:98,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:106,1
    - Dst: Botan::to_string
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:106,1
    - Dst: Botan::get_pbkdf_prf
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:111,1
    - Dst: PKCS5_PBKDF2::derive_key
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:120,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:125,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:125,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - pass
    - hash
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 126
    functionName: Botan::check_passhash9
    functionSourceFile: /src/botan/src/lib/passhash/passhash9/passhash9.cpp
    functionUses: 8
    functionsReached:
    - Botan::CT::is_equal
    - Botan::Invalid_Argument
    - Botan::size
    - secure_vector::size
    - std::string_view::size
    - Botan::to_string
    - PKCS5_PBKDF2::derive_key
    - Botan::get_pbkdf_prf
    - secure_vector::data
    - Botan::base64_decode
    - std::string_view::data
    - Botan::load_be
    linkageType: ''
    returnType: bool
    signature: bool check_passhash9(std::string_view pass, std::string_view hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::get_pbkdf_prf
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - alg_id
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 133
    functionName: Botan::is_passhash9_alg_supported
    functionSourceFile: /src/botan/src/lib/passhash/passhash9/passhash9.cpp
    functionUses: 10
    functionsReached:
    - Botan::get_pbkdf_prf
    linkageType: ''
    returnType: bool
    signature: bool is_passhash9_alg_supported(uint8_t alg_id)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:31,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:33,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:35,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:37,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:39,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - alg_id
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 42
    functionName: Botan::get_pbkdf_prf
    functionSourceFile: /src/botan/src/lib/passhash/passhash9/passhash9.cpp
    functionUses: 3
    functionsReached:
    - Botan::MessageAuthenticationCode::create
    linkageType: ''
    returnType: std::unique_ptr<MessageAuthenticationCode>
    signature: std::unique_ptr<MessageAuthenticationCode> get_pbkdf_prf(uint8_t alg_id)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:31,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:33,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:35,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:37,1
    - Dst: Botan::MessageAuthenticationCode::create
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:39,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - alg_id
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 42
    functionName: Botan::get_pbkdf_prf
    functionSourceFile: /src/botan/src/lib/passhash/passhash9/passhash9.cpp
    functionUses: 3
    functionsReached:
    - Botan::MessageAuthenticationCode::create
    linkageType: ''
    returnType: std::unique_ptr<MessageAuthenticationCode>
    signature: std::unique_ptr<MessageAuthenticationCode> get_pbkdf_prf(uint8_t alg_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:50,1
    - Dst: Botan::get_pbkdf_prf
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:52,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:55,1
    - Dst: Botan::to_string
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:55,1
    - Dst: Botan::randomize
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:61,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:61,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:61,1
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:66,1
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:67,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:67,1
    - Dst: secure_vector::push_back
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:68,1
    - Dst: Botan::get_byte
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:68,1
    - Dst: PKCS5_PBKDF2::derive_key
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:70,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:70,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:70,1
    - Dst: std::string
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:72,1
    - Dst: Botan::base64_encode
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 4
    argNames:
    - pass
    - ' rng'
    - work_factor
    - alg_id
    argTypes:
    - std::string_view
    - RandomNumberGenerator
    - uint16_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 46
    functionDepth: 2
    functionLinenumber: 46
    functionLinenumberEnd: 73
    functionName: Botan::generate_passhash9
    functionSourceFile: /src/botan/src/lib/passhash/passhash9/passhash9.cpp
    functionUses: 10
    functionsReached:
    - Botan::get_byte
    - Botan::base64_encode
    - Botan::Invalid_Argument
    - std::string
    - BOTAN_ARG_CHECK
    - secure_vector::size
    - Botan::to_string
    - PKCS5_PBKDF2::derive_key
    - secure_vector::push_back
    - secure_vector::data
    - Botan::randomize
    - Botan::get_pbkdf_prf
    linkageType: ''
    returnType: std::string
    signature: "std::string generate_passhash9(std::string_view pass,\n                               RandomNumberGenerator&
      rng,\n                               uint16_t work_factor,\n                               uint8_t
      alg_id)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Botan::size
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:78,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:80,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:84,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:90,1
    - Dst: std::string_view::data
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:90,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:90,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:92,1
    - Dst: Botan::load_be
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:98,1
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:106,1
    - Dst: Botan::to_string
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:106,1
    - Dst: Botan::get_pbkdf_prf
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:111,1
    - Dst: PKCS5_PBKDF2::derive_key
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:120,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:125,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:125,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 2
    argNames:
    - pass
    - hash
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 126
    functionName: Botan::check_passhash9
    functionSourceFile: /src/botan/src/lib/passhash/passhash9/passhash9.cpp
    functionUses: 8
    functionsReached:
    - Botan::CT::is_equal
    - Botan::Invalid_Argument
    - Botan::size
    - secure_vector::size
    - std::string_view::size
    - Botan::to_string
    - PKCS5_PBKDF2::derive_key
    - Botan::get_pbkdf_prf
    - secure_vector::data
    - Botan::base64_decode
    - std::string_view::data
    - Botan::load_be
    linkageType: ''
    returnType: bool
    signature: bool check_passhash9(std::string_view pass, std::string_view hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::get_pbkdf_prf
      Src: /src/botan/src/lib/passhash/passhash9/passhash9.cpp:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - alg_id
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 133
    functionName: Botan::is_passhash9_alg_supported
    functionSourceFile: /src/botan/src/lib/passhash/passhash9/passhash9.cpp
    functionUses: 10
    functionsReached:
    - Botan::get_pbkdf_prf
    linkageType: ''
    returnType: bool
    signature: bool is_passhash9_alg_supported(uint8_t alg_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::Mask::is_within_range
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:25,1
    - Dst: Botan::CT::Mask::is_within_range
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:26,1
    - Dst: Botan::CT::Mask::is_within_range
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:27,1
    - Dst: Botan::CT::Mask::is_within_range
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:29,1
    - Dst: Botan::CT::Mask::is_within_range
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:30,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:32,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:33,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:34,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:35,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:38,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:39,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:40,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:41,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:42,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:43,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:44,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:45,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - c
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 49
    functionName: Botan::base64_to_bcrypt_encoding
    functionSourceFile: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp
    functionUses: 0
    functionsReached:
    - auto::select
    - Botan::CT::Mask::is_within_range
    - Botan::ct_is_equal
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t base64_to_bcrypt_encoding(uint8_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::Mask::is_within_range
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:52,1
    - Dst: Botan::CT::Mask::is_within_range
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:53,1
    - Dst: Botan::CT::Mask::is_within_range
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:55,1
    - Dst: Botan::CT::Mask::is_within_range
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:56,1
    - Dst: Botan::CT::Mask::is_within_range
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:57,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:59,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:60,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:61,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:62,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:65,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:66,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:67,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:68,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:69,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:70,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:71,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:72,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - c
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 76
    functionName: Botan::bcrypt_encoding_to_base64
    functionSourceFile: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp
    functionUses: 0
    functionsReached:
    - auto::select
    - Botan::CT::Mask::is_within_range
    - Botan::ct_is_equal
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t bcrypt_encoding_to_base64(uint8_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::base64_encode
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:79,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:81,1
    - Dst: std::string::back
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:81,1
    - Dst: std::string::pop_back
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:82,1
    - Dst: static_cast<char>
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:86,1
    - Dst: Botan::base64_to_bcrypt_encoding
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:86,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:86,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 90
    functionName: Botan::bcrypt_base64_encode
    functionSourceFile: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp
    functionUses: 0
    functionsReached:
    - Botan::base64_encode
    - static_cast<char>
    - Botan::base64_to_bcrypt_encoding
    - static_cast<uint8_t>
    - std::string::empty
    - std::string::back
    - std::string::pop_back
    linkageType: ''
    returnType: std::string
    signature: std::string bcrypt_base64_encode(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::push_back
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:95,1
    - Dst: Botan::bcrypt_encoding_to_base64
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:95,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:95,1
    - Dst: Botan::unlock
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:98,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 92
    functionDepth: 3
    functionLinenumber: 92
    functionLinenumberEnd: 99
    functionName: Botan::bcrypt_base64_decode
    functionSourceFile: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp
    functionUses: 0
    functionsReached:
    - Botan::unlock
    - static_cast<uint8_t>
    - Botan::bcrypt_encoding_to_base64
    - std::string::push_back
    - Botan::base64_decode
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> bcrypt_base64_decode(std::string_view input)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:108,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:118,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:119,1
    - Dst: first
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:119,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:119,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:119,1
    - Dst: Blowfish::salted_set_key
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:121,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:121,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:121,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:121,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:121,1
    - Dst: Blowfish::encrypt_n
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:126,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:126,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:126,1
    - Dst: Botan::bcrypt_base64_encode
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:129,1
    - Dst: Botan::to_string
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:131,1
    - Dst: std::string::length
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:132,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:136,1
    - Dst: std::string::substr
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:139,1
    - Dst: Botan::bcrypt_base64_encode
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:140,1
    - Dst: first
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:140,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - pass
    - salt
    - work_factor
    - version
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    - uint16_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 101
    functionDepth: 4
    functionLinenumber: 101
    functionLinenumberEnd: 141
    functionName: Botan::make_bcrypt
    functionSourceFile: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::data
    - Botan::fmt
    - std::span<const uint8_t>::size
    - Botan::bcrypt_base64_encode
    - Blowfish::salted_set_key
    - Botan::as_span_of_bytes
    - BOTAN_ARG_CHECK
    - std::string_view::size
    - secure_vector::size
    - std::vector::data
    - Botan::to_string
    - Botan::copy_mem
    - Blowfish::encrypt_n
    - secure_vector::data
    - std::string::substr
    - std::vector::size
    - first
    - std::string::length
    linkageType: ''
    returnType: std::string
    signature: std::string make_bcrypt(std::string_view pass, std::span<const uint8_t>
      salt, uint16_t work_factor, char version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::Mask::is_within_range
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:25,1
    - Dst: Botan::CT::Mask::is_within_range
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:26,1
    - Dst: Botan::CT::Mask::is_within_range
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:27,1
    - Dst: Botan::CT::Mask::is_within_range
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:29,1
    - Dst: Botan::CT::Mask::is_within_range
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:30,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:32,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:33,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:34,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:35,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:38,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:39,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:40,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:41,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:42,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:43,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:44,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:45,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - c
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 49
    functionName: Botan::base64_to_bcrypt_encoding
    functionSourceFile: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp
    functionUses: 1
    functionsReached:
    - auto::select
    - Botan::CT::Mask::is_within_range
    - Botan::ct_is_equal
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t base64_to_bcrypt_encoding(uint8_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::Mask::is_within_range
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:52,1
    - Dst: Botan::CT::Mask::is_within_range
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:53,1
    - Dst: Botan::CT::Mask::is_within_range
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:55,1
    - Dst: Botan::CT::Mask::is_within_range
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:56,1
    - Dst: Botan::CT::Mask::is_within_range
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:57,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:59,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:60,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:61,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:62,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:65,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:66,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:67,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:68,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:69,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:70,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:71,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:72,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - c
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 76
    functionName: Botan::bcrypt_encoding_to_base64
    functionSourceFile: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp
    functionUses: 1
    functionsReached:
    - auto::select
    - Botan::CT::Mask::is_within_range
    - Botan::ct_is_equal
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t bcrypt_encoding_to_base64(uint8_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::base64_encode
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:79,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:81,1
    - Dst: std::string::back
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:81,1
    - Dst: std::string::pop_back
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:82,1
    - Dst: static_cast<char>
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:86,1
    - Dst: Botan::base64_to_bcrypt_encoding
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:86,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:86,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 90
    functionName: Botan::bcrypt_base64_encode
    functionSourceFile: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp
    functionUses: 1
    functionsReached:
    - Botan::base64_encode
    - static_cast<char>
    - Botan::base64_to_bcrypt_encoding
    - static_cast<uint8_t>
    - std::string::empty
    - std::string::back
    - std::string::pop_back
    linkageType: ''
    returnType: std::string
    signature: std::string bcrypt_base64_encode(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::push_back
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:95,1
    - Dst: Botan::bcrypt_encoding_to_base64
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:95,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:95,1
    - Dst: Botan::unlock
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:98,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 92
    functionDepth: 3
    functionLinenumber: 92
    functionLinenumberEnd: 99
    functionName: Botan::bcrypt_base64_decode
    functionSourceFile: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp
    functionUses: 0
    functionsReached:
    - Botan::unlock
    - static_cast<uint8_t>
    - Botan::bcrypt_encoding_to_base64
    - std::string::push_back
    - Botan::base64_decode
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> bcrypt_base64_decode(std::string_view input)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:108,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:118,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:119,1
    - Dst: first
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:119,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:119,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:119,1
    - Dst: Blowfish::salted_set_key
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:121,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:121,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:121,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:121,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:121,1
    - Dst: Blowfish::encrypt_n
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:126,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:126,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:126,1
    - Dst: Botan::bcrypt_base64_encode
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:129,1
    - Dst: Botan::to_string
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:131,1
    - Dst: std::string::length
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:132,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:136,1
    - Dst: std::string::substr
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:139,1
    - Dst: Botan::bcrypt_base64_encode
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:140,1
    - Dst: first
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:140,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - pass
    - salt
    - work_factor
    - version
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    - uint16_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 101
    functionDepth: 4
    functionLinenumber: 101
    functionLinenumberEnd: 141
    functionName: Botan::make_bcrypt
    functionSourceFile: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp
    functionUses: 0
    functionsReached:
    - std::span<const uint8_t>::data
    - Botan::fmt
    - std::span<const uint8_t>::size
    - Botan::bcrypt_base64_encode
    - Blowfish::salted_set_key
    - Botan::as_span_of_bytes
    - BOTAN_ARG_CHECK
    - std::string_view::size
    - secure_vector::size
    - std::vector::data
    - Botan::to_string
    - Botan::copy_mem
    - Blowfish::encrypt_n
    - secure_vector::data
    - std::string::substr
    - std::vector::size
    - first
    - std::string::length
    linkageType: ''
    returnType: std::string
    signature: std::string make_bcrypt(std::string_view pass, std::span<const uint8_t>
      salt, uint16_t work_factor, char version)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:152,1
    - Dst: std::string
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:152,1
    - Dst: Botan::random_vec
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:156,1
    - Dst: Botan::make_bcrypt
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:157,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 4
    argNames:
    - pass
    - ' rng'
    - work_factor
    - version
    argTypes:
    - std::string_view
    - RandomNumberGenerator
    - uint16_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 145
    functionDepth: 5
    functionLinenumber: 145
    functionLinenumberEnd: 158
    functionName: Botan::generate_bcrypt
    functionSourceFile: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp
    functionUses: 12
    functionsReached:
    - Botan::Invalid_Argument
    - Botan::make_bcrypt
    - std::string
    - Botan::random_vec
    linkageType: ''
    returnType: std::string
    signature: std::string generate_bcrypt(std::string_view pass, RandomNumberGenerator&
      rng, uint16_t work_factor, char version)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:161,1
    - Dst: Botan::to_uint16
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:171,1
    - Dst: std::string_view::substr
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:171,1
    - Dst: Botan::bcrypt_base64_decode
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:173,1
    - Dst: std::string_view::substr
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:173,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:174,1
    - Dst: Botan::make_bcrypt
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:178,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:180,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:180,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:180,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 2
    argNames:
    - pass
    - hash
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 160
    functionDepth: 5
    functionLinenumber: 160
    functionLinenumberEnd: 181
    functionName: Botan::check_bcrypt
    functionSourceFile: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp
    functionUses: 10
    functionsReached:
    - Botan::CT::is_equal
    - Botan::bcrypt_base64_decode
    - Botan::as_span_of_bytes
    - std::string_view::size
    - Botan::to_uint16
    - Botan::make_bcrypt
    - std::vector::size
    - std::string_view::substr
    linkageType: ''
    returnType: bool
    signature: bool check_bcrypt(std::string_view pass, std::string_view hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::Mask::is_within_range
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:25,1
    - Dst: Botan::CT::Mask::is_within_range
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:26,1
    - Dst: Botan::CT::Mask::is_within_range
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:27,1
    - Dst: Botan::CT::Mask::is_within_range
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:29,1
    - Dst: Botan::CT::Mask::is_within_range
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:30,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:32,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:33,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:34,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:35,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:38,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:39,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:40,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:41,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:42,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:43,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:44,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:45,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - c
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 49
    functionName: Botan::base64_to_bcrypt_encoding
    functionSourceFile: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp
    functionUses: 2
    functionsReached:
    - auto::select
    - Botan::CT::Mask::is_within_range
    - Botan::ct_is_equal
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t base64_to_bcrypt_encoding(uint8_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::Mask::is_within_range
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:52,1
    - Dst: Botan::CT::Mask::is_within_range
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:53,1
    - Dst: Botan::CT::Mask::is_within_range
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:55,1
    - Dst: Botan::CT::Mask::is_within_range
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:56,1
    - Dst: Botan::CT::Mask::is_within_range
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:57,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:59,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:60,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:61,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:62,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:65,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:66,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:67,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:68,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:69,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:70,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:71,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:72,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - c
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 76
    functionName: Botan::bcrypt_encoding_to_base64
    functionSourceFile: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp
    functionUses: 2
    functionsReached:
    - auto::select
    - Botan::CT::Mask::is_within_range
    - Botan::ct_is_equal
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t bcrypt_encoding_to_base64(uint8_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::base64_encode
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:79,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:81,1
    - Dst: std::string::back
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:81,1
    - Dst: std::string::pop_back
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:82,1
    - Dst: static_cast<char>
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:86,1
    - Dst: Botan::base64_to_bcrypt_encoding
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:86,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:86,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 90
    functionName: Botan::bcrypt_base64_encode
    functionSourceFile: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp
    functionUses: 2
    functionsReached:
    - Botan::base64_encode
    - static_cast<char>
    - Botan::base64_to_bcrypt_encoding
    - static_cast<uint8_t>
    - std::string::empty
    - std::string::back
    - std::string::pop_back
    linkageType: ''
    returnType: std::string
    signature: std::string bcrypt_base64_encode(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::push_back
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:95,1
    - Dst: Botan::bcrypt_encoding_to_base64
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:95,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:95,1
    - Dst: Botan::unlock
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:98,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 92
    functionDepth: 3
    functionLinenumber: 92
    functionLinenumberEnd: 99
    functionName: Botan::bcrypt_base64_decode
    functionSourceFile: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp
    functionUses: 1
    functionsReached:
    - Botan::unlock
    - static_cast<uint8_t>
    - Botan::bcrypt_encoding_to_base64
    - std::string::push_back
    - Botan::base64_decode
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> bcrypt_base64_decode(std::string_view input)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:108,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:118,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:119,1
    - Dst: first
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:119,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:119,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:119,1
    - Dst: Blowfish::salted_set_key
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:121,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:121,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:121,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:121,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:121,1
    - Dst: Blowfish::encrypt_n
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:126,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:126,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:126,1
    - Dst: Botan::bcrypt_base64_encode
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:129,1
    - Dst: Botan::to_string
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:131,1
    - Dst: std::string::length
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:132,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:136,1
    - Dst: std::string::substr
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:139,1
    - Dst: Botan::bcrypt_base64_encode
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:140,1
    - Dst: first
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:140,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - pass
    - salt
    - work_factor
    - version
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    - uint16_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 101
    functionDepth: 4
    functionLinenumber: 101
    functionLinenumberEnd: 141
    functionName: Botan::make_bcrypt
    functionSourceFile: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp
    functionUses: 2
    functionsReached:
    - std::span<const uint8_t>::data
    - Botan::fmt
    - std::span<const uint8_t>::size
    - Botan::bcrypt_base64_encode
    - Blowfish::salted_set_key
    - Botan::as_span_of_bytes
    - BOTAN_ARG_CHECK
    - std::string_view::size
    - secure_vector::size
    - std::vector::data
    - Botan::to_string
    - Botan::copy_mem
    - Blowfish::encrypt_n
    - secure_vector::data
    - std::string::substr
    - std::vector::size
    - first
    - std::string::length
    linkageType: ''
    returnType: std::string
    signature: std::string make_bcrypt(std::string_view pass, std::span<const uint8_t>
      salt, uint16_t work_factor, char version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::Mask::is_within_range
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:25,1
    - Dst: Botan::CT::Mask::is_within_range
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:26,1
    - Dst: Botan::CT::Mask::is_within_range
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:27,1
    - Dst: Botan::CT::Mask::is_within_range
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:29,1
    - Dst: Botan::CT::Mask::is_within_range
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:30,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:32,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:33,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:34,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:35,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:38,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:39,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:40,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:41,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:42,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:43,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:44,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:45,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - c
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 24
    functionDepth: 2
    functionLinenumber: 24
    functionLinenumberEnd: 49
    functionName: Botan::base64_to_bcrypt_encoding
    functionSourceFile: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp
    functionUses: 3
    functionsReached:
    - auto::select
    - Botan::CT::Mask::is_within_range
    - Botan::ct_is_equal
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t base64_to_bcrypt_encoding(uint8_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::CT::Mask::is_within_range
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:52,1
    - Dst: Botan::CT::Mask::is_within_range
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:53,1
    - Dst: Botan::CT::Mask::is_within_range
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:55,1
    - Dst: Botan::CT::Mask::is_within_range
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:56,1
    - Dst: Botan::CT::Mask::is_within_range
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:57,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:59,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:60,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:61,1
    - Dst: Botan::ct_is_equal
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:62,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:65,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:66,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:67,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:68,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:69,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:70,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:71,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:72,1
    - Dst: auto::select
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 1
    argNames:
    - c
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 76
    functionName: Botan::bcrypt_encoding_to_base64
    functionSourceFile: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp
    functionUses: 3
    functionsReached:
    - auto::select
    - Botan::CT::Mask::is_within_range
    - Botan::ct_is_equal
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t bcrypt_encoding_to_base64(uint8_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::base64_encode
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:79,1
    - Dst: std::string::empty
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:81,1
    - Dst: std::string::back
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:81,1
    - Dst: std::string::pop_back
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:82,1
    - Dst: static_cast<char>
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:86,1
    - Dst: Botan::base64_to_bcrypt_encoding
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:86,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:86,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::span<const uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 78
    functionDepth: 3
    functionLinenumber: 78
    functionLinenumberEnd: 90
    functionName: Botan::bcrypt_base64_encode
    functionSourceFile: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp
    functionUses: 3
    functionsReached:
    - Botan::base64_encode
    - static_cast<char>
    - Botan::base64_to_bcrypt_encoding
    - static_cast<uint8_t>
    - std::string::empty
    - std::string::back
    - std::string::pop_back
    linkageType: ''
    returnType: std::string
    signature: std::string bcrypt_base64_encode(std::span<const uint8_t> input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::push_back
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:95,1
    - Dst: Botan::bcrypt_encoding_to_base64
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:95,1
    - Dst: static_cast<uint8_t>
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:95,1
    - Dst: Botan::unlock
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:98,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - input
    argTypes:
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 92
    functionDepth: 3
    functionLinenumber: 92
    functionLinenumberEnd: 99
    functionName: Botan::bcrypt_base64_decode
    functionSourceFile: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp
    functionUses: 1
    functionsReached:
    - Botan::unlock
    - static_cast<uint8_t>
    - Botan::bcrypt_encoding_to_base64
    - std::string::push_back
    - Botan::base64_decode
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> bcrypt_base64_decode(std::string_view input)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ARG_CHECK
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:108,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:118,1
    - Dst: Botan::copy_mem
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:119,1
    - Dst: first
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:119,1
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:119,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:119,1
    - Dst: Blowfish::salted_set_key
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:121,1
    - Dst: secure_vector::data
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:121,1
    - Dst: secure_vector::size
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:121,1
    - Dst: std::span<const uint8_t>::data
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:121,1
    - Dst: std::span<const uint8_t>::size
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:121,1
    - Dst: Blowfish::encrypt_n
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:126,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:126,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:126,1
    - Dst: Botan::bcrypt_base64_encode
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:129,1
    - Dst: Botan::to_string
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:131,1
    - Dst: std::string::length
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:132,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:136,1
    - Dst: std::string::substr
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:139,1
    - Dst: Botan::bcrypt_base64_encode
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:140,1
    - Dst: first
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:140,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - pass
    - salt
    - work_factor
    - version
    argTypes:
    - std::string_view
    - std::span<const uint8_t>
    - uint16_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 101
    functionDepth: 4
    functionLinenumber: 101
    functionLinenumberEnd: 141
    functionName: Botan::make_bcrypt
    functionSourceFile: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp
    functionUses: 2
    functionsReached:
    - std::span<const uint8_t>::data
    - Botan::fmt
    - std::span<const uint8_t>::size
    - Botan::bcrypt_base64_encode
    - Blowfish::salted_set_key
    - Botan::as_span_of_bytes
    - BOTAN_ARG_CHECK
    - std::string_view::size
    - secure_vector::size
    - std::vector::data
    - Botan::to_string
    - Botan::copy_mem
    - Blowfish::encrypt_n
    - secure_vector::data
    - std::string::substr
    - std::vector::size
    - first
    - std::string::length
    linkageType: ''
    returnType: std::string
    signature: std::string make_bcrypt(std::string_view pass, std::span<const uint8_t>
      salt, uint16_t work_factor, char version)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Invalid_Argument
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:152,1
    - Dst: std::string
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:152,1
    - Dst: Botan::random_vec
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:156,1
    - Dst: Botan::make_bcrypt
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:157,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 4
    argNames:
    - pass
    - ' rng'
    - work_factor
    - version
    argTypes:
    - std::string_view
    - RandomNumberGenerator
    - uint16_t
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 145
    functionDepth: 5
    functionLinenumber: 145
    functionLinenumberEnd: 158
    functionName: Botan::generate_bcrypt
    functionSourceFile: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp
    functionUses: 12
    functionsReached:
    - Botan::Invalid_Argument
    - Botan::make_bcrypt
    - std::string
    - Botan::random_vec
    linkageType: ''
    returnType: std::string
    signature: std::string generate_bcrypt(std::string_view pass, RandomNumberGenerator&
      rng, uint16_t work_factor, char version)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::string_view::size
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:161,1
    - Dst: Botan::to_uint16
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:171,1
    - Dst: std::string_view::substr
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:171,1
    - Dst: Botan::bcrypt_base64_decode
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:173,1
    - Dst: std::string_view::substr
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:173,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:174,1
    - Dst: Botan::make_bcrypt
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:178,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:180,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:180,1
    - Dst: Botan::as_span_of_bytes
      Src: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp:180,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 2
    argNames:
    - pass
    - hash
    argTypes:
    - std::string_view
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 160
    functionDepth: 5
    functionLinenumber: 160
    functionLinenumberEnd: 181
    functionName: Botan::check_bcrypt
    functionSourceFile: /src/botan/src/lib/passhash/bcrypt/bcrypt.cpp
    functionUses: 10
    functionsReached:
    - Botan::CT::is_equal
    - Botan::bcrypt_base64_decode
    - Botan::as_span_of_bytes
    - std::string_view::size
    - Botan::to_uint16
    - Botan::make_bcrypt
    - std::vector::size
    - std::string_view::substr
    linkageType: ''
    returnType: bool
    signature: bool check_bcrypt(std::string_view pass, std::string_view hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:22,1
    - Dst: std::string::size
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:22,1
    - Dst: std::string::resize
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:23,1
    - Dst: std::string::size
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:23,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: Botan::strip_padding
    functionSourceFile: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - std::string::size
    - std::string::resize
    linkageType: ''
    returnType: std::string
    signature: std::string strip_padding(std::string s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:36,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - y
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 38
    functionName: Botan::argon2_family
    functionSourceFile: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp
    functionUses: 0
    functionsReached:
    - Not_Implemented
    linkageType: ''
    returnType: std::string
    signature: std::string argon2_family(uint8_t y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:22,1
    - Dst: std::string::size
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:22,1
    - Dst: std::string::resize
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:23,1
    - Dst: std::string::size
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:23,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: Botan::strip_padding
    functionSourceFile: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    - std::string::size
    - std::string::resize
    linkageType: ''
    returnType: std::string
    signature: std::string strip_padding(std::string s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:36,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - y
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 38
    functionName: Botan::argon2_family
    functionSourceFile: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp
    functionUses: 0
    functionsReached:
    - Not_Implemented
    linkageType: ''
    returnType: std::string
    signature: std::string argon2_family(uint8_t y)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::randomize
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:52,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:52,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:52,1
    - Dst: Botan::PasswordHashFamily::create_or_throw
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:56,1
    - Dst: Botan::argon2_family
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:56,1
    - Dst: auto::from_params
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:57,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:59,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:59,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:59,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:59,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:59,1
    - Dst: Botan::strip_padding
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:61,1
    - Dst: Botan::base64_encode
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:61,1
    - Dst: Botan::strip_padding
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:62,1
    - Dst: Botan::base64_encode
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:62,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 9
    argNames:
    - password
    - password_len
    - ' rng'
    - p
    - M
    - t
    - y
    - salt_len
    - output_len
    argTypes:
    - char*
    - size_t
    - RandomNumberGenerator
    - size_t
    - size_t
    - size_t
    - uint8_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 42
    functionDepth: 3
    functionLinenumber: 42
    functionLinenumberEnd: 75
    functionName: Botan::argon2_generate_pwhash
    functionSourceFile: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp
    functionUses: 6
    functionsReached:
    - Botan::PasswordHashFamily::create_or_throw
    - auto::from_params
    - Botan::fmt
    - Botan::argon2_family
    - Botan::base64_encode
    - auto::derive_key
    - std::vector::data
    - Botan::strip_padding
    - Botan::randomize
    - std::vector::size
    linkageType: ''
    returnType: std::string
    signature: "std::string argon2_generate_pwhash(const char* password,\n                                   size_t
      password_len,\n                                   RandomNumberGenerator& rng,\n
      \                                  size_t p,\n                                   size_t
      M,\n                                   size_t t,\n                                   uint8_t
      y,\n                                   size_t salt_len,\n                                   size_t
      output_len)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Botan::split_on
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:78,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:80,1
    - Dst: Botan::split_on
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:100,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:102,1
    - Dst: Botan::split_on
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:111,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:113,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:118,1
    - Dst: Botan::base64_decode_max_output
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:130,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:130,1
    - Dst: std::vector::resize
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:131,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:131,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:131,1
    - Dst: Botan::base64_decode_max_output
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:133,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:133,1
    - Dst: std::vector::resize
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:134,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:134,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:134,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:136,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:140,1
    - Dst: Botan::PasswordHashFamily::create_or_throw
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:141,1
    - Dst: Botan::argon2_family
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:141,1
    - Dst: auto::from_params
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:142,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:144,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:144,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:144,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:144,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:144,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:146,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:146,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:146,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:146,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 3
    argNames:
    - password
    - password_len
    - input_hash
    argTypes:
    - char*
    - size_t
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 77
    functionDepth: 3
    functionLinenumber: 77
    functionLinenumberEnd: 147
    functionName: Botan::argon2_check_pwhash
    functionSourceFile: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp
    functionUses: 6
    functionsReached:
    - Botan::PasswordHashFamily::create_or_throw
    - auto::from_params
    - Botan::CT::is_equal
    - Botan::argon2_family
    - auto::derive_key
    - std::vector::data
    - Botan::split_on
    - Botan::to_u32bit
    - std::vector::resize
    - Botan::base64_decode_max_output
    - Botan::base64_decode
    - std::vector::size
    - Botan::size
    linkageType: ''
    returnType: bool
    signature: bool argon2_check_pwhash(const char* password, size_t password_len,
      std::string_view input_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:22,1
    - Dst: std::string::size
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:22,1
    - Dst: std::string::resize
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:23,1
    - Dst: std::string::size
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:23,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: Botan::strip_padding
    functionSourceFile: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp
    functionUses: 1
    functionsReached:
    - std::string::empty
    - std::string::size
    - std::string::resize
    linkageType: ''
    returnType: std::string
    signature: std::string strip_padding(std::string s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:36,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - y
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 38
    functionName: Botan::argon2_family
    functionSourceFile: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp
    functionUses: 2
    functionsReached:
    - Not_Implemented
    linkageType: ''
    returnType: std::string
    signature: std::string argon2_family(uint8_t y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:22,1
    - Dst: std::string::size
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:22,1
    - Dst: std::string::resize
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:23,1
    - Dst: std::string::size
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:23,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: Botan::strip_padding
    functionSourceFile: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp
    functionUses: 1
    functionsReached:
    - std::string::empty
    - std::string::size
    - std::string::resize
    linkageType: ''
    returnType: std::string
    signature: std::string strip_padding(std::string s)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Not_Implemented
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:36,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - y
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 38
    functionName: Botan::argon2_family
    functionSourceFile: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp
    functionUses: 2
    functionsReached:
    - Not_Implemented
    linkageType: ''
    returnType: std::string
    signature: std::string argon2_family(uint8_t y)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::randomize
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:52,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:52,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:52,1
    - Dst: Botan::PasswordHashFamily::create_or_throw
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:56,1
    - Dst: Botan::argon2_family
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:56,1
    - Dst: auto::from_params
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:57,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:59,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:59,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:59,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:59,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:59,1
    - Dst: Botan::strip_padding
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:61,1
    - Dst: Botan::base64_encode
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:61,1
    - Dst: Botan::strip_padding
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:62,1
    - Dst: Botan::base64_encode
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:62,1
    - Dst: Botan::fmt
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 9
    argNames:
    - password
    - password_len
    - ' rng'
    - p
    - M
    - t
    - y
    - salt_len
    - output_len
    argTypes:
    - char*
    - size_t
    - RandomNumberGenerator
    - size_t
    - size_t
    - size_t
    - uint8_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 42
    functionDepth: 3
    functionLinenumber: 42
    functionLinenumberEnd: 75
    functionName: Botan::argon2_generate_pwhash
    functionSourceFile: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp
    functionUses: 6
    functionsReached:
    - Botan::PasswordHashFamily::create_or_throw
    - auto::from_params
    - Botan::fmt
    - Botan::argon2_family
    - Botan::base64_encode
    - auto::derive_key
    - std::vector::data
    - Botan::strip_padding
    - Botan::randomize
    - std::vector::size
    linkageType: ''
    returnType: std::string
    signature: "std::string argon2_generate_pwhash(const char* password,\n                                   size_t
      password_len,\n                                   RandomNumberGenerator& rng,\n
      \                                  size_t p,\n                                   size_t
      M,\n                                   size_t t,\n                                   uint8_t
      y,\n                                   size_t salt_len,\n                                   size_t
      output_len)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Botan::split_on
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:78,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:80,1
    - Dst: Botan::split_on
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:100,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:102,1
    - Dst: Botan::split_on
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:111,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:113,1
    - Dst: Botan::to_u32bit
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:118,1
    - Dst: Botan::base64_decode_max_output
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:130,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:130,1
    - Dst: std::vector::resize
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:131,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:131,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:131,1
    - Dst: Botan::base64_decode_max_output
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:133,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:133,1
    - Dst: std::vector::resize
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:134,1
    - Dst: Botan::base64_decode
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:134,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:134,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:136,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:140,1
    - Dst: Botan::PasswordHashFamily::create_or_throw
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:141,1
    - Dst: Botan::argon2_family
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:141,1
    - Dst: auto::from_params
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:142,1
    - Dst: auto::derive_key
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:144,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:144,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:144,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:144,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:144,1
    - Dst: Botan::CT::is_equal
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:146,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:146,1
    - Dst: std::vector::data
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:146,1
    - Dst: std::vector::size
      Src: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp:146,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 3
    argNames:
    - password
    - password_len
    - input_hash
    argTypes:
    - char*
    - size_t
    - std::string_view
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 77
    functionDepth: 3
    functionLinenumber: 77
    functionLinenumberEnd: 147
    functionName: Botan::argon2_check_pwhash
    functionSourceFile: /src/botan/src/lib/passhash/argon2fmt/argon2fmt.cpp
    functionUses: 6
    functionsReached:
    - Botan::PasswordHashFamily::create_or_throw
    - auto::from_params
    - Botan::CT::is_equal
    - Botan::argon2_family
    - auto::derive_key
    - std::vector::data
    - Botan::split_on
    - Botan::to_u32bit
    - std::vector::resize
    - Botan::base64_decode_max_output
    - Botan::base64_decode
    - std::vector::size
    - Botan::size
    linkageType: ''
    returnType: bool
    signature: bool argon2_check_pwhash(const char* password, size_t password_len,
      std::string_view input_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/x509/x509_ext.cpp:33,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/lib/x509/x509_ext.cpp:33,1
    - Dst: std::make_unique<T>
      Src: /src/botan/src/lib/x509/x509_ext.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: Botan::make_extension
    functionSourceFile: /src/botan/src/lib/x509/x509_ext.cpp
    functionUses: 0
    functionsReached:
    - Botan::Cert_Extension::static_oid
    - std::make_unique<T>
    - BOTAN_DEBUG_ASSERT
    linkageType: ''
    returnType: auto
    signature: auto make_extension([[maybe_unused]] const OID& oid)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: Botan::is_sub_element_of
      Src: /src/botan/src/lib/x509/x509_ext.cpp:38,1
    - Dst: Botan::make_extension
      Src: /src/botan/src/lib/x509/x509_ext.cpp:42,1
    - Dst: Botan::make_extension
      Src: /src/botan/src/lib/x509/x509_ext.cpp:44,1
    - Dst: Botan::make_extension
      Src: /src/botan/src/lib/x509/x509_ext.cpp:46,1
    - Dst: Botan::make_extension
      Src: /src/botan/src/lib/x509/x509_ext.cpp:48,1
    - Dst: Botan::make_extension
      Src: /src/botan/src/lib/x509/x509_ext.cpp:50,1
    - Dst: Botan::make_extension
      Src: /src/botan/src/lib/x509/x509_ext.cpp:52,1
    - Dst: Botan::make_extension
      Src: /src/botan/src/lib/x509/x509_ext.cpp:54,1
    - Dst: Botan::make_extension
      Src: /src/botan/src/lib/x509/x509_ext.cpp:56,1
    - Dst: Botan::make_extension
      Src: /src/botan/src/lib/x509/x509_ext.cpp:58,1
    - Dst: Botan::make_extension
      Src: /src/botan/src/lib/x509/x509_ext.cpp:60,1
    - Dst: Botan::make_extension
      Src: /src/botan/src/lib/x509/x509_ext.cpp:62,1
    - Dst: Botan::make_extension
      Src: /src/botan/src/lib/x509/x509_ext.cpp:64,1
    - Dst: Botan::make_extension
      Src: /src/botan/src/lib/x509/x509_ext.cpp:66,1
    - Dst: Botan::is_sub_element_of
      Src: /src/botan/src/lib/x509/x509_ext.cpp:70,1
    - Dst: Botan::make_extension
      Src: /src/botan/src/lib/x509/x509_ext.cpp:74,1
    - Dst: Botan::make_extension
      Src: /src/botan/src/lib/x509/x509_ext.cpp:76,1
    - Dst: Botan::make_extension
      Src: /src/botan/src/lib/x509/x509_ext.cpp:78,1
    - Dst: Botan::make_extension
      Src: /src/botan/src/lib/x509/x509_ext.cpp:80,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 44
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 85
    functionName: Botan::extension_from_oid
    functionSourceFile: /src/botan/src/lib/x509/x509_ext.cpp
    functionUses: 0
    functionsReached:
    - Botan::make_extension
    - Botan::is_sub_element_of
    linkageType: ''
    returnType: std::unique_ptr<Certificate_Extension>
    signature: std::unique_ptr<Certificate_Extension> extension_from_oid(const OID&
      oid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::empty
      Src: /src/botan/src/lib/x509/x509_ext.cpp:91,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/x509/x509_ext.cpp:91,1
    - Dst: Botan::value
      Src: /src/botan/src/lib/x509/x509_ext.cpp:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' tn'
    argTypes:
    - ASN1_String
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 100
    functionName: Botan::is_valid_telephone_number
    functionSourceFile: /src/botan/src/lib/x509/x509_ext.cpp
    functionUses: 0
    functionsReached:
    - Botan::value
    - Botan::size
    - Botan::empty
    linkageType: ''
    returnType: bool
    signature: bool is_valid_telephone_number(const ASN1_String& tn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_DEBUG_ASSERT
      Src: /src/botan/src/lib/x509/x509_ext.cpp:33,1
    - Dst: Botan::Cert_Extension::static_oid
      Src: /src/botan/src/lib/x509/x509_ext.cpp:33,1
    - Dst: std::make_unique<T>
      Src: /src/botan/src/lib/x509/x509_ext.cpp:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 35
    functionName: Botan::make_extension
    functionSourceFile: /src/botan/src/lib/x509/x509_ext.cpp
    functionUses: 1
    functionsReached:
    - Botan::Cert_Extension::static_oid
    - std::make_unique<T>
    - BOTAN_DEBUG_ASSERT
    linkageType: ''
    returnType: auto
    signature: auto make_extension([[maybe_unused]] const OID& oid)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: Botan::is_sub_element_of
      Src: /src/botan/src/lib/x509/x509_ext.cpp:38,1
    - Dst: Botan::make_extension
      Src: /src/botan/src/lib/x509/x509_ext.cpp:42,1
    - Dst: Botan::make_extension
      Src: /src/botan/src/lib/x509/x509_ext.cpp:44,1
    - Dst: Botan::make_extension
      Src: /src/botan/src/lib/x509/x509_ext.cpp:46,1
    - Dst: Botan::make_extension
      Src: /src/botan/src/lib/x509/x509_ext.cpp:48,1
    - Dst: Botan::make_extension
      Src: /src/botan/src/lib/x509/x509_ext.cpp:50,1
    - Dst: Botan::make_extension
      Src: /src/botan/src/lib/x509/x509_ext.cpp:52,1
    - Dst: Botan::make_extension
      Src: /src/botan/src/lib/x509/x509_ext.cpp:54,1
    - Dst: Botan::make_extension
      Src: /src/botan/src/lib/x509/x509_ext.cpp:56,1
    - Dst: Botan::make_extension
      Src: /src/botan/src/lib/x509/x509_ext.cpp:58,1
    - Dst: Botan::make_extension
      Src: /src/botan/src/lib/x509/x509_ext.cpp:60,1
    - Dst: Botan::make_extension
      Src: /src/botan/src/lib/x509/x509_ext.cpp:62,1
    - Dst: Botan::make_extension
      Src: /src/botan/src/lib/x509/x509_ext.cpp:64,1
    - Dst: Botan::make_extension
      Src: /src/botan/src/lib/x509/x509_ext.cpp:66,1
    - Dst: Botan::is_sub_element_of
      Src: /src/botan/src/lib/x509/x509_ext.cpp:70,1
    - Dst: Botan::make_extension
      Src: /src/botan/src/lib/x509/x509_ext.cpp:74,1
    - Dst: Botan::make_extension
      Src: /src/botan/src/lib/x509/x509_ext.cpp:76,1
    - Dst: Botan::make_extension
      Src: /src/botan/src/lib/x509/x509_ext.cpp:78,1
    - Dst: Botan::make_extension
      Src: /src/botan/src/lib/x509/x509_ext.cpp:80,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 44
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 37
    functionDepth: 2
    functionLinenumber: 37
    functionLinenumberEnd: 85
    functionName: Botan::extension_from_oid
    functionSourceFile: /src/botan/src/lib/x509/x509_ext.cpp
    functionUses: 0
    functionsReached:
    - Botan::make_extension
    - Botan::is_sub_element_of
    linkageType: ''
    returnType: std::unique_ptr<Certificate_Extension>
    signature: std::unique_ptr<Certificate_Extension> extension_from_oid(const OID&
      oid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Botan::empty
      Src: /src/botan/src/lib/x509/x509_ext.cpp:91,1
    - Dst: Botan::size
      Src: /src/botan/src/lib/x509/x509_ext.cpp:91,1
    - Dst: Botan::value
      Src: /src/botan/src/lib/x509/x509_ext.cpp:95,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' tn'
    argTypes:
    - ASN1_String
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 100
    functionName: Botan::is_valid_telephone_number
    functionSourceFile: /src/botan/src/lib/x509/x509_ext.cpp
    functionUses: 0
    functionsReached:
    - Botan::value
    - Botan::size
    - Botan::empty
    linkageType: ''
    returnType: bool
    signature: bool is_valid_telephone_number(const ASN1_String& tn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extension_from_oid
      Src: /src/botan/src/lib/x509/x509_ext.cpp:110,1
    - Dst: std::make_unique<Cert_Extension::Unknown_Extension>
      Src: /src/botan/src/lib/x509/x509_ext.cpp:114,1
    - Dst: auto::decode_inner
      Src: /src/botan/src/lib/x509/x509_ext.cpp:118,1
    - Dst: std::make_unique<Cert_Extension::Unknown_Extension>
      Src: /src/botan/src/lib/x509/x509_ext.cpp:120,1
    - Dst: auto::decode_inner
      Src: /src/botan/src/lib/x509/x509_ext.cpp:121,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - ' oid'
    - critical
    - ' body'
    argTypes:
    - OID
    - bool
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 124
    functionName: Botan::Extensions::create_extn_obj
    functionSourceFile: /src/botan/src/lib/x509/x509_ext.cpp
    functionUses: 0
    functionsReached:
    - auto::decode_inner
    - std::make_unique<Cert_Extension::Unknown_Extension>
    - extension_from_oid
    linkageType: ''
    returnType: std::unique_ptr<Certificate_Extension>
    signature: "std::unique_ptr<Certificate_Extension> Extensions::create_extn_obj(const
      OID& oid,\n                                                                   bool
      critical,\n                                                                   const
      std::vector<uint8_t>& body)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOTAN_ASSERT_NONNULL
      Src: /src/botan/src/lib/x509/x509_ext.cpp:127,1
    - Dst: get
      Src: /src/botan/src/lib/x509/x509_ext.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: '& Extensions::Extensions_Info::obj() const'
    functionSourceFile: /src/botan/src/lib/x509/x509_ext.cpp
    functionUses: 0
    functionsReached:
    - BOTAN_ASSERT_NONNULL
    - get
    linkageType: ''
    returnType: Certificate_Extension
    signature: Certificate_Extension & Extensions::Extensions_Info::obj() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: Botan::Certificate_Extension::validate
    functionSourceFile: /src/botan/src/lib/x509/x509_ext.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void Certificate_Extension::validate(const X509_Certificate& /*unused*/,\n
      \                                    const std::optional<X509_Certificate>&
      /*unused*/,\n                                     const std::vector<X509_Certificate>&
      /*unused*/,\n                                     std::vector<std::set<Certificate_Status_Code>>&
      /*unused*/,\n                                     size_t /*unused*/)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/botan/src/lib/x509/x509_ext.cpp:145,1
    - Dst: std::unique_ptr<Certificate_Extension>::oid_of
      Src: /src/botan/src/lib/x509/x509_ext.cpp:145,1
    - Dst: std::unique_ptr<Certificate_Extension>::oid_name
      Src: /src/botan/src/lib/x509/x509_ext.cpp:146,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/x509/x509_ext.cpp:147,1
    - Dst: std::unique_ptr<Certificate_Extension>::oid_of
      Src: /src/botan/src/lib/x509/x509_ext.cpp:150,1
    - Dst: push_back
      Src: /src/botan/src/lib/x509/x509_ext.cpp:152,1
    - Dst: emplace
      Src: /src/botan/src/lib/x509/x509_ext.cpp:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - extn
    - critical
    argTypes:
    - std::unique_ptr<Certificate_Extension>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 154
    functionName: Botan::Extensions::add
    functionSourceFile: /src/botan/src/lib/x509/x509_ext.cpp
    functionUses: 12
    functionsReached:
    - std::unique_ptr<Certificate_Extension>::oid_of
    - push_back
    - Invalid_Argument
    - contains
    - std::unique_ptr<Certificate_Extension>::oid_name
    - emplace
    linkageType: ''
    returnType: void
    signature: void Extensions::add(std::unique_ptr<Certificate_Extension> extn, bool
      critical)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/botan/src/lib/x509/x509_ext.cpp:157,1
    - Dst: std::unique_ptr<Certificate_Extension>::oid_of
      Src: /src/botan/src/lib/x509/x509_ext.cpp:157,1
    - Dst: std::unique_ptr<Certificate_Extension>::oid_of
      Src: /src/botan/src/lib/x509/x509_ext.cpp:161,1
    - Dst: push_back
      Src: /src/botan/src/lib/x509/x509_ext.cpp:163,1
    - Dst: emplace
      Src: /src/botan/src/lib/x509/x509_ext.cpp:164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - extn
    - critical
    argTypes:
    - std::unique_ptr<Certificate_Extension>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 166
    functionName: Botan::Extensions::add_new
    functionSourceFile: /src/botan/src/lib/x509/x509_ext.cpp
    functionUses: 4
    functionsReached:
    - push_back
    - std::unique_ptr<Certificate_Extension>::oid_of
    - emplace
    - contains
    linkageType: ''
    returnType: bool
    signature: bool Extensions::add_new(std::unique_ptr<Certificate_Extension> extn,
      bool critical)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: erase
      Src: /src/botan/src/lib/x509/x509_ext.cpp:169,1
    - Dst: erase
      Src: /src/botan/src/lib/x509/x509_ext.cpp:172,1
    - Dst: std::find
      Src: /src/botan/src/lib/x509/x509_ext.cpp:172,1
    - Dst: begin
      Src: /src/botan/src/lib/x509/x509_ext.cpp:172,1
    - Dst: end
      Src: /src/botan/src/lib/x509/x509_ext.cpp:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 176
    functionName: Botan::Extensions::remove
    functionSourceFile: /src/botan/src/lib/x509/x509_ext.cpp
    functionUses: 4
    functionsReached:
    - std::find
    - begin
    - erase
    - end
    linkageType: ''
    returnType: bool
    signature: bool Extensions::remove(const OID& oid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Extensions::remove
      Src: /src/botan/src/lib/x509/x509_ext.cpp:180,1
    - Dst: std::unique_ptr<Certificate_Extension>::oid_of
      Src: /src/botan/src/lib/x509/x509_ext.cpp:180,1
    - Dst: std::unique_ptr<Certificate_Extension>::oid_of
      Src: /src/botan/src/lib/x509/x509_ext.cpp:182,1
    - Dst: push_back
      Src: /src/botan/src/lib/x509/x509_ext.cpp:184,1
    - Dst: emplace
      Src: /src/botan/src/lib/x509/x509_ext.cpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - extn
    - critical
    argTypes:
    - std::unique_ptr<Certificate_Extension>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 186
    functionName: Botan::Extensions::replace
    functionSourceFile: /src/botan/src/lib/x509/x509_ext.cpp
    functionUses: 4
    functionsReached:
    - push_back
    - Botan::Extensions::remove
    - emplace
    - std::unique_ptr<Certificate_Extension>::oid_of
    linkageType: ''
    returnType: void
    signature: void Extensions::replace(std::unique_ptr<Certificate_Extension> extn,
      bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/botan/src/lib/x509/x509_ext.cpp:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 190
    functionName: Botan::Extensions::extension_set
    functionSourceFile: /src/botan/src/lib/x509/x509_ext.cpp
    functionUses: 4
    functionsReached:
    - contains
    linkageType: ''
    returnType: bool
    signature: bool Extensions::extension_set(const OID& oid) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/lib/x509/x509_ext.cpp:193,1
    - Dst: end
      Src: /src/botan/src/lib/x509/x509_ext.cpp:194,1
    - Dst: auto::second::is_critical
      Src: /src/botan/src/lib/x509/x509_ext.cpp:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 198
    functionName: Botan::Extensions::critical_extension_set
    functionSourceFile: /src/botan/src/lib/x509/x509_ext.cpp
    functionUses: 4
    functionsReached:
    - find
    - end
    - auto::second::is_critical
    linkageType: ''
    returnType: bool
    signature: bool Extensions::critical_extension_set(const OID& oid) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/lib/x509/x509_ext.cpp:201,1
    - Dst: end
      Src: /src/botan/src/lib/x509/x509_ext.cpp:202,1
    - Dst: Invalid_Argument
      Src: /src/botan/src/lib/x509/x509_ext.cpp:203,1
    - Dst: auto::second::bits
      Src: /src/botan/src/lib/x509/x509_ext.cpp:206,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 200
    functionDepth: 1
    functionLinenumber: 200
    functionLinenumberEnd: 207
    functionName: Botan::Extensions::get_extension_bits
    functionSourceFile: /src/botan/src/lib/x509/x509_ext.cpp
    functionUses: 4
    functionsReached:
    - find
    - Invalid_Argument
    - end
    - auto::second::bits
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Extensions::get_extension_bits(const OID& oid)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/botan/src/lib/x509/x509_ext.cpp:210,1
    - Dst: end
      Src: /src/botan/src/lib/x509/x509_ext.cpp:211,1
    - Dst: auto::second::obj
      Src: /src/botan/src/lib/x509/x509_ext.cpp:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 216
    functionName: Botan::Extensions::get_extension_object
    functionSourceFile: /src/botan/src/lib/x509/x509_ext.cpp
    functionUses: 0
    functionsReached:
    - find
    - auto::second::obj
    - end
    linkageType: ''
    returnType: Certificate_Extension
    signature: Certificate_Extension * Extensions::get_extension_object(const OID&
      oid) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Extensions::get_extension_object
      Src: /src/botan/src/lib/x509/x509_ext.cpp:219,1
    - Dst: Certificate_Extension*::copy
      Src: /src/botan/src/lib/x509/x509_ext.cpp:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' oid'
    argTypes:
    - OID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 223
    functionName: Botan::Extensions::get
    functionSourceFile: /src/botan/src/lib/x509/x509_ext.cpp
    functionUses: 0
    functionsReached:
    - Botan::Extensions::get_extension_object
    - Certificate_Extension*::copy
    linkageType: ''
    returnType: std::unique_ptr<Certificate_Extension>
    signature: std::unique_ptr<Certificate_Extension> Extensions::get(const OID& oid)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/botan/src/lib/x509/x509_ext.cpp:227,1
    - Dst: size
      Src: /src/botan/src/lib/x509/x509_ext.cpp:227,1
    - Dst: std::vector::push_back
      Src: /src/botan/src/lib/x509/x509_ext.cpp:229,1
    - Dst: std::make_pair
      Src: /src/botan/src/lib/x509/x509_ext.cpp:229,1
    - Dst: second::obj
      Src: /src/botan/src/lib/x509/x509_ext.cpp:229,1
    - Dst: second::is_critical
      Src: /src/botan/src/lib/x509/x509_ext.cpp:229,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 232
    functionName: Botan::Extensions::extensions
    functionSourceFile: /src/botan/src/lib/x509/x509_ext.cpp
    functionUses: 0
    functionsReached:
    - second::obj
    - std::vector::push_b